diff --git a/coverage/clover.xml b/coverage/clover.xml new file mode 100644 index 00000000..45f2bba3 --- /dev/null +++ b/coverage/clover.xml @@ -0,0 +1,3705 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/coverage/coverage-final.json b/coverage/coverage-final.json new file mode 100644 index 00000000..2c5f210f --- /dev/null +++ b/coverage/coverage-final.json @@ -0,0 +1,17510 @@ +{ + "C:\\dev\\git\\ssi-mobile-wallet\\src\\@config\\constants\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\@config\\constants\\index.ts", + "statementMap": { + "0": {"start": {"line": 1, "column": 49}, "end": {"line": 1, "column": 51}}, + "1": {"start": {"line": 2, "column": 48}, "end": {"line": 2, "column": 50}}, + "2": {"start": {"line": 3, "column": 33}, "end": {"line": 3, "column": 34}}, + "3": {"start": {"line": 4, "column": 34}, "end": {"line": 6, "column": 1}}, + "4": {"start": {"line": 9, "column": 48}, "end": {"line": 9, "column": 102}}, + "5": {"start": {"line": 10, "column": 43}, "end": {"line": 10, "column": 87}}, + "6": {"start": {"line": 12, "column": 22}, "end": {"line": 12, "column": 43}}, + "7": {"start": {"line": 13, "column": 26}, "end": {"line": 13, "column": 31}}, + "8": {"start": {"line": 15, "column": 40}, "end": {"line": 15, "column": 42}}, + "9": {"start": {"line": 16, "column": 37}, "end": {"line": 16, "column": 39}}, + "10": {"start": {"line": 17, "column": 36}, "end": {"line": 17, "column": 38}}, + "11": {"start": {"line": 18, "column": 40}, "end": {"line": 18, "column": 42}}, + "12": {"start": {"line": 20, "column": 45}, "end": {"line": 20, "column": 46}}, + "13": {"start": {"line": 21, "column": 31}, "end": {"line": 21, "column": 32}}, + "14": {"start": {"line": 23, "column": 46}, "end": {"line": 23, "column": 116}}, + "15": {"start": {"line": 24, "column": 40}, "end": {"line": 24, "column": 47}}, + "16": {"start": {"line": 26, "column": 34}, "end": {"line": 26, "column": 84}}, + "17": {"start": {"line": 27, "column": 34}, "end": {"line": 27, "column": 67}} + }, + "fnMap": {}, + "branchMap": {}, + "s": { + "0": 1, + "1": 1, + "2": 1, + "3": 1, + "4": 1, + "5": 1, + "6": 1, + "7": 1, + "8": 1, + "9": 1, + "10": 1, + "11": 1, + "12": 1, + "13": 1, + "14": 1, + "15": 1, + "16": 1, + "17": 1 + }, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "5caca595dae28b30112e62aa8ef373e46299169c" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\@config\\credentials\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\@config\\credentials\\index.ts", + "statementMap": {"0": {"start": {"line": 3, "column": 26}, "end": {"line": 1362, "column": 2}}}, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "b2c8fd902422a4b5d654ccd54c0e92b75edcd455" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\@config\\database\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\@config\\database\\index.ts", + "statementMap": { + "0": {"start": {"line": 6, "column": 27}, "end": {"line": 6, "column": 36}}, + "1": {"start": {"line": 7, "column": 26}, "end": {"line": 7, "column": 92}}, + "2": {"start": {"line": 9, "column": 44}, "end": {"line": 20, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "e61df97d9d80cf44a8c2ecb5b1e4eee20a079b43" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\@config\\toasts\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\@config\\toasts\\index.tsx", + "statementMap": { + "0": {"start": {"line": 7, "column": 34}, "end": {"line": 7, "column": 35}}, + "1": {"start": {"line": 8, "column": 30}, "end": {"line": 8, "column": 34}}, + "2": {"start": {"line": 9, "column": 36}, "end": {"line": 9, "column": 40}}, + "3": {"start": {"line": 11, "column": 27}, "end": {"line": 22, "column": 1}}, + "4": {"start": {"line": 13, "column": 27}, "end": {"line": 13, "column": 33}}, + "5": {"start": {"line": 14, "column": 31}, "end": {"line": 14, "column": 43}}, + "6": {"start": {"line": 15, "column": 4}, "end": {"line": 15, "column": 111}}, + "7": {"start": {"line": 18, "column": 27}, "end": {"line": 18, "column": 33}}, + "8": {"start": {"line": 19, "column": 31}, "end": {"line": 19, "column": 43}}, + "9": {"start": {"line": 20, "column": 4}, "end": {"line": 20, "column": 109}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 12, "column": 24}, "end": {"line": 12, "column": 25}}, + "loc": {"start": {"line": 12, "column": 74}, "end": {"line": 16, "column": 3}}, + "line": 12 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 17, "column": 22}, "end": {"line": 17, "column": 23}}, + "loc": {"start": {"line": 17, "column": 72}, "end": {"line": 21, "column": 3}}, + "line": 17 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 14, "column": 11}, "end": {"line": 14, "column": 27}}, + "type": "default-arg", + "locations": [{"start": {"line": 14, "column": 23}, "end": {"line": 14, "column": 27}}], + "line": 14 + }, + "1": { + "loc": {"start": {"line": 19, "column": 11}, "end": {"line": 19, "column": 27}}, + "type": "default-arg", + "locations": [{"start": {"line": 19, "column": 23}, "end": {"line": 19, "column": 27}}], + "line": 19 + } + }, + "s": {"0": 1, "1": 1, "2": 1, "3": 1, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0}, + "f": {"0": 0, "1": 0}, + "b": {"0": [0], "1": [0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "20a5506f682f3b13f1183556db43395015950a14" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\agent\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\agent\\index.ts", + "statementMap": { + "0": {"start": {"line": 38, "column": 27}, "end": {"line": 46, "column": 2}}, + "1": {"start": {"line": 48, "column": 35}, "end": {"line": 48, "column": 127}}, + "2": {"start": {"line": 48, "column": 86}, "end": {"line": 48, "column": 126}}, + "3": {"start": {"line": 50, "column": 28}, "end": {"line": 64, "column": 1}}, + "4": {"start": {"line": 66, "column": 44}, "end": {"line": 66, "column": 79}}, + "5": {"start": {"line": 67, "column": 41}, "end": {"line": 67, "column": 108}}, + "6": {"start": {"line": 69, "column": 14}, "end": {"line": 124, "column": 2}}, + "7": {"start": {"line": 126, "column": 32}, "end": {"line": 126, "column": 54}}, + "8": {"start": {"line": 127, "column": 30}, "end": {"line": 127, "column": 50}}, + "9": {"start": {"line": 128, "column": 29}, "end": {"line": 128, "column": 48}}, + "10": {"start": {"line": 129, "column": 28}, "end": {"line": 129, "column": 46}}, + "11": {"start": {"line": 130, "column": 31}, "end": {"line": 130, "column": 52}}, + "12": {"start": {"line": 131, "column": 31}, "end": {"line": 131, "column": 52}}, + "13": {"start": {"line": 132, "column": 29}, "end": {"line": 132, "column": 48}}, + "14": {"start": {"line": 133, "column": 29}, "end": {"line": 133, "column": 48}}, + "15": {"start": {"line": 134, "column": 52}, "end": {"line": 134, "column": 94}}, + "16": {"start": {"line": 135, "column": 49}, "end": {"line": 135, "column": 88}}, + "17": {"start": {"line": 136, "column": 30}, "end": {"line": 136, "column": 50}}, + "18": {"start": {"line": 137, "column": 48}, "end": {"line": 137, "column": 86}}, + "19": {"start": {"line": 138, "column": 51}, "end": {"line": 138, "column": 92}}, + "20": {"start": {"line": 139, "column": 42}, "end": {"line": 139, "column": 74}}, + "21": {"start": {"line": 140, "column": 39}, "end": {"line": 140, "column": 68}}, + "22": {"start": {"line": 141, "column": 39}, "end": {"line": 141, "column": 68}}, + "23": {"start": {"line": 142, "column": 46}, "end": {"line": 142, "column": 82}}, + "24": {"start": {"line": 143, "column": 42}, "end": {"line": 143, "column": 74}}, + "25": {"start": {"line": 147, "column": 28}, "end": {"line": 147, "column": 53}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 48, "column": 76}, "end": {"line": 48, "column": 77}}, + "loc": {"start": {"line": 48, "column": 86}, "end": {"line": 48, "column": 126}}, + "line": 48 + } + }, + "branchMap": {}, + "s": { + "0": 1, + "1": 1, + "2": 5, + "3": 1, + "4": 1, + "5": 1, + "6": 1, + "7": 1, + "8": 1, + "9": 1, + "10": 1, + "11": 1, + "12": 1, + "13": 1, + "14": 1, + "15": 1, + "16": 1, + "17": 1, + "18": 1, + "19": 1, + "20": 1, + "21": 1, + "22": 1, + "23": 1, + "24": 1, + "25": 1 + }, + "f": {"0": 5}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "527d3ed51f8ad48e0b1f519bfe52c4c43e10d45a" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSIAddIcon\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSIAddIcon\\index.tsx", + "statementMap": { + "0": {"start": {"line": 12, "column": 31}, "end": {"line": 25, "column": 1}}, + "1": {"start": {"line": 13, "column": 42}, "end": {"line": 13, "column": 47}}, + "2": {"start": {"line": 15, "column": 2}, "end": {"line": 24, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 12, "column": 31}, "end": {"line": 12, "column": 32}}, + "loc": {"start": {"line": 12, "column": 63}, "end": {"line": 25, "column": 1}}, + "line": 12 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 13, "column": 9}, "end": {"line": 13, "column": 18}}, + "type": "default-arg", + "locations": [{"start": {"line": 13, "column": 16}, "end": {"line": 13, "column": 18}}], + "line": 13 + }, + "1": { + "loc": {"start": {"line": 13, "column": 20}, "end": {"line": 13, "column": 38}}, + "type": "default-arg", + "locations": [{"start": {"line": 13, "column": 28}, "end": {"line": 13, "column": 38}}], + "line": 13 + } + }, + "s": {"0": 1, "1": 0, "2": 0}, + "f": {"0": 0}, + "b": {"0": [0], "1": [0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "02a75308d426d7f12d61996e369a41a8af668611" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSIBackIcon\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSIBackIcon\\index.tsx", + "statementMap": { + "0": {"start": {"line": 13, "column": 32}, "end": {"line": 26, "column": 1}}, + "1": {"start": {"line": 14, "column": 57}, "end": {"line": 14, "column": 62}}, + "2": {"start": {"line": 16, "column": 2}, "end": {"line": 25, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 13, "column": 32}, "end": {"line": 13, "column": 33}}, + "loc": {"start": {"line": 13, "column": 64}, "end": {"line": 26, "column": 1}}, + "line": 13 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 14, "column": 9}, "end": {"line": 14, "column": 19}}, + "type": "default-arg", + "locations": [{"start": {"line": 14, "column": 17}, "end": {"line": 14, "column": 19}}], + "line": 14 + }, + "1": { + "loc": {"start": {"line": 14, "column": 21}, "end": {"line": 14, "column": 32}}, + "type": "default-arg", + "locations": [{"start": {"line": 14, "column": 30}, "end": {"line": 14, "column": 32}}], + "line": 14 + }, + "2": { + "loc": {"start": {"line": 14, "column": 34}, "end": {"line": 14, "column": 53}}, + "type": "default-arg", + "locations": [{"start": {"line": 14, "column": 42}, "end": {"line": 14, "column": 53}}], + "line": 14 + } + }, + "s": {"0": 1, "1": 112, "2": 112}, + "f": {"0": 112}, + "b": {"0": [112], "1": [112], "2": [112]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "f2d048da3c877a690b3ba38a88b935fa05a61206" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSIBellIcon\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSIBellIcon\\index.tsx", + "statementMap": { + "0": {"start": {"line": 9, "column": 32}, "end": {"line": 24, "column": 1}}, + "1": {"start": {"line": 10, "column": 2}, "end": {"line": 23, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 9, "column": 32}, "end": {"line": 9, "column": 33}}, + "loc": {"start": {"line": 9, "column": 64}, "end": {"line": 24, "column": 1}}, + "line": 9 + } + }, + "branchMap": {}, + "s": {"0": 1, "1": 0}, + "f": {"0": 0}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "436552c991d21d3360c9948e157bd05bd40f21a3" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSICheckmarkIcon\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSICheckmarkIcon\\index.tsx", + "statementMap": { + "0": {"start": {"line": 14, "column": 37}, "end": {"line": 27, "column": 1}}, + "1": {"start": {"line": 15, "column": 57}, "end": {"line": 15, "column": 62}}, + "2": {"start": {"line": 17, "column": 2}, "end": {"line": 26, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 14, "column": 37}, "end": {"line": 14, "column": 38}}, + "loc": {"start": {"line": 14, "column": 69}, "end": {"line": 27, "column": 1}}, + "line": 14 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 15, "column": 9}, "end": {"line": 15, "column": 20}}, + "type": "default-arg", + "locations": [{"start": {"line": 15, "column": 18}, "end": {"line": 15, "column": 20}}], + "line": 15 + }, + "1": { + "loc": {"start": {"line": 15, "column": 22}, "end": {"line": 15, "column": 32}}, + "type": "default-arg", + "locations": [{"start": {"line": 15, "column": 30}, "end": {"line": 15, "column": 32}}], + "line": 15 + }, + "2": { + "loc": {"start": {"line": 15, "column": 34}, "end": {"line": 15, "column": 53}}, + "type": "default-arg", + "locations": [{"start": {"line": 15, "column": 42}, "end": {"line": 15, "column": 53}}], + "line": 15 + } + }, + "s": {"0": 1, "1": 0, "2": 0}, + "f": {"0": 0}, + "b": {"0": [0], "1": [0], "2": [0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "9929585c7d0ed8ff026cd0d70149c76ff237069c" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSICloseIcon\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSICloseIcon\\index.tsx", + "statementMap": { + "0": {"start": {"line": 12, "column": 33}, "end": {"line": 25, "column": 1}}, + "1": {"start": {"line": 13, "column": 42}, "end": {"line": 13, "column": 47}}, + "2": {"start": {"line": 15, "column": 2}, "end": {"line": 24, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 12, "column": 33}, "end": {"line": 12, "column": 34}}, + "loc": {"start": {"line": 12, "column": 65}, "end": {"line": 25, "column": 1}}, + "line": 12 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 13, "column": 9}, "end": {"line": 13, "column": 18}}, + "type": "default-arg", + "locations": [{"start": {"line": 13, "column": 16}, "end": {"line": 13, "column": 18}}], + "line": 13 + }, + "1": { + "loc": {"start": {"line": 13, "column": 20}, "end": {"line": 13, "column": 38}}, + "type": "default-arg", + "locations": [{"start": {"line": 13, "column": 28}, "end": {"line": 13, "column": 38}}], + "line": 13 + } + }, + "s": {"0": 1, "1": 0, "2": 0}, + "f": {"0": 0}, + "b": {"0": [0], "1": [0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "9a69a7984dd2fdd76b754d8b7ec3b2d95c100434" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSIContactsIcon\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSIContactsIcon\\index.tsx", + "statementMap": { + "0": {"start": {"line": 9, "column": 36}, "end": {"line": 24, "column": 1}}, + "1": {"start": {"line": 10, "column": 2}, "end": {"line": 23, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 9, "column": 36}, "end": {"line": 9, "column": 37}}, + "loc": {"start": {"line": 9, "column": 68}, "end": {"line": 24, "column": 1}}, + "line": 9 + } + }, + "branchMap": {}, + "s": {"0": 1, "1": 0}, + "f": {"0": 0}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "aad3bb119f315fc6c818bce181fbf95c577efb1a" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSIDeleteIcon\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSIDeleteIcon\\index.tsx", + "statementMap": { + "0": {"start": {"line": 13, "column": 34}, "end": {"line": 26, "column": 1}}, + "1": {"start": {"line": 14, "column": 57}, "end": {"line": 14, "column": 62}}, + "2": {"start": {"line": 16, "column": 2}, "end": {"line": 25, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 13, "column": 34}, "end": {"line": 13, "column": 35}}, + "loc": {"start": {"line": 13, "column": 66}, "end": {"line": 26, "column": 1}}, + "line": 13 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 14, "column": 9}, "end": {"line": 14, "column": 19}}, + "type": "default-arg", + "locations": [{"start": {"line": 14, "column": 17}, "end": {"line": 14, "column": 19}}], + "line": 14 + }, + "1": { + "loc": {"start": {"line": 14, "column": 21}, "end": {"line": 14, "column": 32}}, + "type": "default-arg", + "locations": [{"start": {"line": 14, "column": 30}, "end": {"line": 14, "column": 32}}], + "line": 14 + }, + "2": { + "loc": {"start": {"line": 14, "column": 34}, "end": {"line": 14, "column": 53}}, + "type": "default-arg", + "locations": [{"start": {"line": 14, "column": 42}, "end": {"line": 14, "column": 53}}], + "line": 14 + } + }, + "s": {"0": 1, "1": 0, "2": 0}, + "f": {"0": 0}, + "b": {"0": [0], "1": [0], "2": [0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "5c16894c08fb8e707a721a3773a86c38b1521714" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSIDownloadIcon\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSIDownloadIcon\\index.tsx", + "statementMap": { + "0": {"start": {"line": 13, "column": 36}, "end": {"line": 38, "column": 1}}, + "1": {"start": {"line": 14, "column": 57}, "end": {"line": 14, "column": 62}}, + "2": {"start": {"line": 16, "column": 2}, "end": {"line": 37, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 13, "column": 36}, "end": {"line": 13, "column": 37}}, + "loc": {"start": {"line": 13, "column": 68}, "end": {"line": 38, "column": 1}}, + "line": 13 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 14, "column": 9}, "end": {"line": 14, "column": 19}}, + "type": "default-arg", + "locations": [{"start": {"line": 14, "column": 17}, "end": {"line": 14, "column": 19}}], + "line": 14 + }, + "1": { + "loc": {"start": {"line": 14, "column": 21}, "end": {"line": 14, "column": 32}}, + "type": "default-arg", + "locations": [{"start": {"line": 14, "column": 30}, "end": {"line": 14, "column": 32}}], + "line": 14 + }, + "2": { + "loc": {"start": {"line": 14, "column": 34}, "end": {"line": 14, "column": 53}}, + "type": "default-arg", + "locations": [{"start": {"line": 14, "column": 42}, "end": {"line": 14, "column": 53}}], + "line": 14 + } + }, + "s": {"0": 1, "1": 0, "2": 0}, + "f": {"0": 0}, + "b": {"0": [0], "1": [0], "2": [0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "0e7b1c94aff94e51791ca24ca482ef0ad2b30c4a" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSIEditIcon\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSIEditIcon\\index.tsx", + "statementMap": { + "0": {"start": {"line": 13, "column": 32}, "end": {"line": 26, "column": 1}}, + "1": {"start": {"line": 14, "column": 56}, "end": {"line": 14, "column": 61}}, + "2": {"start": {"line": 16, "column": 2}, "end": {"line": 25, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 13, "column": 32}, "end": {"line": 13, "column": 33}}, + "loc": {"start": {"line": 13, "column": 64}, "end": {"line": 26, "column": 1}}, + "line": 13 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 14, "column": 9}, "end": {"line": 14, "column": 19}}, + "type": "default-arg", + "locations": [{"start": {"line": 14, "column": 17}, "end": {"line": 14, "column": 19}}], + "line": 14 + }, + "1": { + "loc": {"start": {"line": 14, "column": 21}, "end": {"line": 14, "column": 32}}, + "type": "default-arg", + "locations": [{"start": {"line": 14, "column": 30}, "end": {"line": 14, "column": 32}}], + "line": 14 + }, + "2": { + "loc": {"start": {"line": 14, "column": 34}, "end": {"line": 14, "column": 52}}, + "type": "default-arg", + "locations": [{"start": {"line": 14, "column": 42}, "end": {"line": 14, "column": 52}}], + "line": 14 + } + }, + "s": {"0": 1, "1": 0, "2": 0}, + "f": {"0": 0}, + "b": {"0": [0], "1": [0], "2": [0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "d2a1f20dc6f8d4f2fead0fdc66f36ac2ab37a4e7" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSIEyeIcon\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSIEyeIcon\\index.tsx", + "statementMap": { + "0": {"start": {"line": 12, "column": 31}, "end": {"line": 25, "column": 1}}, + "1": {"start": {"line": 13, "column": 43}, "end": {"line": 13, "column": 48}}, + "2": {"start": {"line": 15, "column": 2}, "end": {"line": 24, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 12, "column": 31}, "end": {"line": 12, "column": 32}}, + "loc": {"start": {"line": 12, "column": 63}, "end": {"line": 25, "column": 1}}, + "line": 12 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 13, "column": 9}, "end": {"line": 13, "column": 18}}, + "type": "default-arg", + "locations": [{"start": {"line": 13, "column": 16}, "end": {"line": 13, "column": 18}}], + "line": 13 + }, + "1": { + "loc": {"start": {"line": 13, "column": 20}, "end": {"line": 13, "column": 39}}, + "type": "default-arg", + "locations": [{"start": {"line": 13, "column": 28}, "end": {"line": 13, "column": 39}}], + "line": 13 + } + }, + "s": {"0": 1, "1": 0, "2": 0}, + "f": {"0": 0}, + "b": {"0": [0], "1": [0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "a50814e9c12e13c956b5373c1e1580e76135cd4a" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSIHomeIcon\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSIHomeIcon\\index.tsx", + "statementMap": { + "0": {"start": {"line": 9, "column": 32}, "end": {"line": 24, "column": 1}}, + "1": {"start": {"line": 10, "column": 2}, "end": {"line": 23, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 9, "column": 32}, "end": {"line": 9, "column": 33}}, + "loc": {"start": {"line": 9, "column": 64}, "end": {"line": 24, "column": 1}}, + "line": 9 + } + }, + "branchMap": {}, + "s": {"0": 1, "1": 0}, + "f": {"0": 0}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "2b26da0198d0113e9f4c292261e38896d9fcf71f" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSILogoutIcon\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSILogoutIcon\\index.tsx", + "statementMap": { + "0": {"start": {"line": 13, "column": 34}, "end": {"line": 26, "column": 1}}, + "1": {"start": {"line": 14, "column": 57}, "end": {"line": 14, "column": 62}}, + "2": {"start": {"line": 16, "column": 2}, "end": {"line": 25, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 13, "column": 34}, "end": {"line": 13, "column": 35}}, + "loc": {"start": {"line": 13, "column": 66}, "end": {"line": 26, "column": 1}}, + "line": 13 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 14, "column": 9}, "end": {"line": 14, "column": 19}}, + "type": "default-arg", + "locations": [{"start": {"line": 14, "column": 17}, "end": {"line": 14, "column": 19}}], + "line": 14 + }, + "1": { + "loc": {"start": {"line": 14, "column": 21}, "end": {"line": 14, "column": 32}}, + "type": "default-arg", + "locations": [{"start": {"line": 14, "column": 30}, "end": {"line": 14, "column": 32}}], + "line": 14 + }, + "2": { + "loc": {"start": {"line": 14, "column": 34}, "end": {"line": 14, "column": 53}}, + "type": "default-arg", + "locations": [{"start": {"line": 14, "column": 42}, "end": {"line": 14, "column": 53}}], + "line": 14 + } + }, + "s": {"0": 1, "1": 0, "2": 0}, + "f": {"0": 0}, + "b": {"0": [0], "1": [0], "2": [0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "357ccf56fa5f6161a43871f1ee36ec1b1169c0b0" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSIMoreIcon\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSIMoreIcon\\index.tsx", + "statementMap": { + "0": {"start": {"line": 13, "column": 32}, "end": {"line": 25, "column": 1}}, + "1": {"start": {"line": 14, "column": 56}, "end": {"line": 14, "column": 61}}, + "2": {"start": {"line": 16, "column": 2}, "end": {"line": 24, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 13, "column": 32}, "end": {"line": 13, "column": 33}}, + "loc": {"start": {"line": 13, "column": 64}, "end": {"line": 25, "column": 1}}, + "line": 13 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 14, "column": 9}, "end": {"line": 14, "column": 19}}, + "type": "default-arg", + "locations": [{"start": {"line": 14, "column": 17}, "end": {"line": 14, "column": 19}}], + "line": 14 + }, + "1": { + "loc": {"start": {"line": 14, "column": 21}, "end": {"line": 14, "column": 31}}, + "type": "default-arg", + "locations": [{"start": {"line": 14, "column": 30}, "end": {"line": 14, "column": 31}}], + "line": 14 + }, + "2": { + "loc": {"start": {"line": 14, "column": 33}, "end": {"line": 14, "column": 52}}, + "type": "default-arg", + "locations": [{"start": {"line": 14, "column": 41}, "end": {"line": 14, "column": 52}}], + "line": 14 + } + }, + "s": {"0": 1, "1": 0, "2": 0}, + "f": {"0": 0}, + "b": {"0": [0], "1": [0], "2": [0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "efb8b115c200102059cd36027b5a2819d1daff76" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSIProfileIcon\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSIProfileIcon\\index.tsx", + "statementMap": { + "0": {"start": {"line": 16, "column": 35}, "end": {"line": 25, "column": 1}}, + "1": {"start": {"line": 17, "column": 71}, "end": {"line": 17, "column": 76}}, + "2": {"start": {"line": 18, "column": 23}, "end": {"line": 18, "column": 51}}, + "3": {"start": {"line": 20, "column": 2}, "end": {"line": 24, "column": 4}}, + "4": {"start": {"line": 27, "column": 24}, "end": {"line": 31, "column": 1}}, + "5": {"start": {"line": 28, "column": 2}, "end": {"line": 30, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 16, "column": 35}, "end": {"line": 16, "column": 36}}, + "loc": {"start": {"line": 16, "column": 67}, "end": {"line": 25, "column": 1}}, + "line": 16 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 27, "column": 24}, "end": {"line": 27, "column": 25}}, + "loc": {"start": {"line": 27, "column": 46}, "end": {"line": 31, "column": 1}}, + "line": 27 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 17, "column": 9}, "end": {"line": 17, "column": 32}}, + "type": "default-arg", + "locations": [{"start": {"line": 17, "column": 21}, "end": {"line": 17, "column": 32}}], + "line": 17 + }, + "1": { + "loc": {"start": {"line": 17, "column": 34}, "end": {"line": 17, "column": 67}}, + "type": "default-arg", + "locations": [{"start": {"line": 17, "column": 52}, "end": {"line": 17, "column": 67}}], + "line": 17 + } + }, + "s": {"0": 1, "1": 0, "2": 0, "3": 0, "4": 1, "5": 0}, + "f": {"0": 0, "1": 0}, + "b": {"0": [0], "1": [0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "774363632ae4263b9817c514487b085b025493e0" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSIQRIcon\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\icons\\SSIQRIcon\\index.tsx", + "statementMap": { + "0": {"start": {"line": 9, "column": 30}, "end": {"line": 24, "column": 1}}, + "1": {"start": {"line": 10, "column": 2}, "end": {"line": 23, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 9, "column": 30}, "end": {"line": 9, "column": 31}}, + "loc": {"start": {"line": 9, "column": 62}, "end": {"line": 24, "column": 1}}, + "line": 9 + } + }, + "branchMap": {}, + "s": {"0": 1, "1": 0}, + "f": {"0": 0}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "d3f007a09ca3b399c89ffcb1d9ab1d139e4b8e19" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\images\\SSINotificationsImage\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\images\\SSINotificationsImage\\index.tsx", + "statementMap": { + "0": {"start": {"line": 11, "column": 42}, "end": {"line": 135, "column": 1}}, + "1": {"start": {"line": 12, "column": 45}, "end": {"line": 12, "column": 50}}, + "2": {"start": {"line": 14, "column": 2}, "end": {"line": 134, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 11, "column": 42}, "end": {"line": 11, "column": 43}}, + "loc": {"start": {"line": 11, "column": 74}, "end": {"line": 135, "column": 1}}, + "line": 11 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 12, "column": 16}, "end": {"line": 12, "column": 28}}, + "type": "default-arg", + "locations": [{"start": {"line": 12, "column": 25}, "end": {"line": 12, "column": 28}}], + "line": 12 + }, + "1": { + "loc": {"start": {"line": 12, "column": 30}, "end": {"line": 12, "column": 41}}, + "type": "default-arg", + "locations": [{"start": {"line": 12, "column": 38}, "end": {"line": 12, "column": 41}}], + "line": 12 + } + }, + "s": {"0": 1, "1": 0, "2": 0}, + "f": {"0": 0}, + "b": {"0": [0], "1": [0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "3af90292a713988aa95500ee9100d91d09c03135" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\images\\SSISecurityImage\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\images\\SSISecurityImage\\index.tsx", + "statementMap": { + "0": {"start": {"line": 11, "column": 37}, "end": {"line": 133, "column": 1}}, + "1": {"start": {"line": 12, "column": 45}, "end": {"line": 12, "column": 50}}, + "2": {"start": {"line": 14, "column": 2}, "end": {"line": 132, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 11, "column": 37}, "end": {"line": 11, "column": 38}}, + "loc": {"start": {"line": 11, "column": 69}, "end": {"line": 133, "column": 1}}, + "line": 11 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 12, "column": 16}, "end": {"line": 12, "column": 28}}, + "type": "default-arg", + "locations": [{"start": {"line": 12, "column": 25}, "end": {"line": 12, "column": 28}}], + "line": 12 + }, + "1": { + "loc": {"start": {"line": 12, "column": 30}, "end": {"line": 12, "column": 41}}, + "type": "default-arg", + "locations": [{"start": {"line": 12, "column": 38}, "end": {"line": 12, "column": 41}}], + "line": 12 + } + }, + "s": {"0": 1, "1": 0, "2": 0}, + "f": {"0": 0}, + "b": {"0": [0], "1": [0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "27916120a6d3e8e14196227dc0e1b68c1704285f" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\images\\SSIWarningImage\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\assets\\images\\SSIWarningImage\\index.tsx", + "statementMap": { + "0": {"start": {"line": 11, "column": 36}, "end": {"line": 101, "column": 1}}, + "1": {"start": {"line": 12, "column": 45}, "end": {"line": 12, "column": 50}}, + "2": {"start": {"line": 14, "column": 2}, "end": {"line": 100, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 11, "column": 36}, "end": {"line": 11, "column": 37}}, + "loc": {"start": {"line": 11, "column": 68}, "end": {"line": 101, "column": 1}}, + "line": 11 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 12, "column": 16}, "end": {"line": 12, "column": 28}}, + "type": "default-arg", + "locations": [{"start": {"line": 12, "column": 25}, "end": {"line": 12, "column": 28}}], + "line": 12 + }, + "1": { + "loc": {"start": {"line": 12, "column": 30}, "end": {"line": 12, "column": 41}}, + "type": "default-arg", + "locations": [{"start": {"line": 12, "column": 38}, "end": {"line": 12, "column": 41}}], + "line": 12 + } + }, + "s": {"0": 1, "1": 0, "2": 0}, + "f": {"0": 0}, + "b": {"0": [0], "1": [0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "109a54c0cbbddfaeb830923933fc56148bfb2eb5" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\bars\\SSIHeaderBar\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\bars\\SSIHeaderBar\\index.tsx", + "statementMap": { + "0": {"start": {"line": 40, "column": 41}, "end": {"line": 146, "column": 1}}, + "1": {"start": {"line": 41, "column": 96}, "end": {"line": 41, "column": 101}}, + "2": {"start": {"line": 42, "column": 19}, "end": {"line": 42, "column": 32}}, + "3": {"start": {"line": 43, "column": 79}, "end": {"line": 43, "column": 105}}, + "4": {"start": {"line": 45, "column": 17}, "end": {"line": 47, "column": 3}}, + "5": {"start": {"line": 46, "column": 4}, "end": {"line": 46, "column": 90}}, + "6": {"start": {"line": 49, "column": 20}, "end": {"line": 52, "column": 3}}, + "7": {"start": {"line": 50, "column": 4}, "end": {"line": 50, "column": 27}}, + "8": {"start": {"line": 51, "column": 4}, "end": {"line": 51, "column": 41}}, + "9": {"start": {"line": 54, "column": 24}, "end": {"line": 56, "column": 3}}, + "10": {"start": {"line": 55, "column": 4}, "end": {"line": 55, "column": 44}}, + "11": {"start": {"line": 58, "column": 17}, "end": {"line": 61, "column": 3}}, + "12": {"start": {"line": 59, "column": 4}, "end": {"line": 59, "column": 30}}, + "13": {"start": {"line": 60, "column": 4}, "end": {"line": 60, "column": 35}}, + "14": {"start": {"line": 63, "column": 19}, "end": {"line": 66, "column": 3}}, + "15": {"start": {"line": 64, "column": 4}, "end": {"line": 64, "column": 30}}, + "16": {"start": {"line": 65, "column": 4}, "end": {"line": 65, "column": 28}}, + "17": {"start": {"line": 68, "column": 25}, "end": {"line": 84, "column": 3}}, + "18": {"start": {"line": 69, "column": 4}, "end": {"line": 69, "column": 30}}, + "19": {"start": {"line": 70, "column": 30}, "end": {"line": 70, "column": 63}}, + "20": {"start": {"line": 72, "column": 4}, "end": {"line": 83, "column": 7}}, + "21": {"start": {"line": 77, "column": 29}, "end": {"line": 77, "column": 69}}, + "22": {"start": {"line": 81, "column": 29}, "end": {"line": 81, "column": 54}}, + "23": {"start": {"line": 86, "column": 23}, "end": {"line": 88, "column": 3}}, + "24": {"start": {"line": 87, "column": 4}, "end": {"line": 87, "column": 28}}, + "25": {"start": {"line": 90, "column": 2}, "end": {"line": 145, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 40, "column": 41}, "end": {"line": 40, "column": 42}}, + "loc": {"start": {"line": 40, "column": 81}, "end": {"line": 146, "column": 1}}, + "line": 40 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 45, "column": 17}, "end": {"line": 45, "column": 18}}, + "loc": {"start": {"line": 45, "column": 44}, "end": {"line": 47, "column": 3}}, + "line": 45 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 49, "column": 20}, "end": {"line": 49, "column": 21}}, + "loc": {"start": {"line": 49, "column": 47}, "end": {"line": 52, "column": 3}}, + "line": 49 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 54, "column": 24}, "end": {"line": 54, "column": 25}}, + "loc": {"start": {"line": 54, "column": 51}, "end": {"line": 56, "column": 3}}, + "line": 54 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 58, "column": 17}, "end": {"line": 58, "column": 18}}, + "loc": {"start": {"line": 58, "column": 44}, "end": {"line": 61, "column": 3}}, + "line": 58 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 63, "column": 19}, "end": {"line": 63, "column": 20}}, + "loc": {"start": {"line": 63, "column": 46}, "end": {"line": 66, "column": 3}}, + "line": 63 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 68, "column": 25}, "end": {"line": 68, "column": 26}}, + "loc": {"start": {"line": 68, "column": 52}, "end": {"line": 84, "column": 3}}, + "line": 68 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 77, "column": 17}, "end": {"line": 77, "column": 18}}, + "loc": {"start": {"line": 77, "column": 29}, "end": {"line": 77, "column": 69}}, + "line": 77 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 81, "column": 17}, "end": {"line": 81, "column": 18}}, + "loc": {"start": {"line": 81, "column": 29}, "end": {"line": 81, "column": 54}}, + "line": 81 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 86, "column": 23}, "end": {"line": 86, "column": 24}}, + "loc": {"start": {"line": 86, "column": 63}, "end": {"line": 88, "column": 3}}, + "line": 86 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 41, "column": 9}, "end": {"line": 41, "column": 27}}, + "type": "default-arg", + "locations": [{"start": {"line": 41, "column": 22}, "end": {"line": 41, "column": 27}}], + "line": 41 + }, + "1": { + "loc": {"start": {"line": 41, "column": 29}, "end": {"line": 41, "column": 50}}, + "type": "default-arg", + "locations": [{"start": {"line": 41, "column": 46}, "end": {"line": 41, "column": 50}}], + "line": 41 + }, + "2": { + "loc": {"start": {"line": 41, "column": 52}, "end": {"line": 41, "column": 74}}, + "type": "default-arg", + "locations": [{"start": {"line": 41, "column": 70}, "end": {"line": 41, "column": 74}}], + "line": 41 + }, + "3": { + "loc": {"start": {"line": 41, "column": 76}, "end": {"line": 41, "column": 92}}, + "type": "default-arg", + "locations": [{"start": {"line": 41, "column": 90}, "end": {"line": 41, "column": 92}}], + "line": 41 + }, + "4": { + "loc": {"start": {"line": 46, "column": 4}, "end": {"line": 46, "column": 89}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 46, "column": 41}, "end": {"line": 46, "column": 61}}, + {"start": {"line": 46, "column": 64}, "end": {"line": 46, "column": 89}} + ], + "line": 46 + }, + "5": { + "loc": {"start": {"line": 94, "column": 11}, "end": {"line": 98, "column": 11}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 94, "column": 11}, "end": {"line": 94, "column": 25}}, + {"start": {"line": 95, "column": 12}, "end": {"line": 97, "column": 32}} + ], + "line": 94 + }, + "6": { + "loc": {"start": {"line": 99, "column": 44}, "end": {"line": 99, "column": 70}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 99, "column": 61}, "end": {"line": 99, "column": 65}}, + {"start": {"line": 99, "column": 68}, "end": {"line": 99, "column": 70}} + ], + "line": 99 + }, + "7": { + "loc": {"start": {"line": 99, "column": 86}, "end": {"line": 99, "column": 115}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 99, "column": 109}, "end": {"line": 99, "column": 110}}, + {"start": {"line": 99, "column": 113}, "end": {"line": 99, "column": 115}} + ], + "line": 99 + }, + "8": { + "loc": {"start": {"line": 102, "column": 11}, "end": {"line": 102, "column": 94}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 102, "column": 11}, "end": {"line": 102, "column": 31}}, + {"start": {"line": 102, "column": 35}, "end": {"line": 102, "column": 94}} + ], + "line": 102 + }, + "9": { + "loc": {"start": {"line": 105, "column": 11}, "end": {"line": 112, "column": 11}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 105, "column": 11}, "end": {"line": 105, "column": 26}}, + {"start": {"line": 107, "column": 12}, "end": {"line": 111, "column": 19}} + ], + "line": 105 + }, + "10": { + "loc": {"start": {"line": 113, "column": 11}, "end": {"line": 130, "column": 11}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 113, "column": 11}, "end": {"line": 113, "column": 26}}, + {"start": {"line": 114, "column": 12}, "end": {"line": 129, "column": 35}} + ], + "line": 113 + }, + "11": { + "loc": {"start": {"line": 131, "column": 11}, "end": {"line": 136, "column": 11}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 131, "column": 11}, "end": {"line": 131, "column": 33}}, + {"start": {"line": 133, "column": 12}, "end": {"line": 135, "column": 19}} + ], + "line": 131 + }, + "12": { + "loc": {"start": {"line": 137, "column": 11}, "end": {"line": 141, "column": 11}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 137, "column": 11}, "end": {"line": 137, "column": 23}}, + {"start": {"line": 138, "column": 12}, "end": {"line": 140, "column": 32}} + ], + "line": 137 + } + }, + "s": { + "0": 1, + "1": 112, + "2": 112, + "3": 112, + "4": 112, + "5": 0, + "6": 112, + "7": 0, + "8": 0, + "9": 112, + "10": 0, + "11": 112, + "12": 0, + "13": 0, + "14": 112, + "15": 0, + "16": 0, + "17": 112, + "18": 0, + "19": 0, + "20": 0, + "21": 0, + "22": 0, + "23": 112, + "24": 0, + "25": 112 + }, + "f": {"0": 112, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0}, + "b": { + "0": [112], + "1": [112], + "2": [0], + "3": [112], + "4": [0, 0], + "5": [112, 112], + "6": [112, 0], + "7": [112, 0], + "8": [112, 112], + "9": [112, 0], + "10": [112, 0], + "11": [112, 0], + "12": [112, 0] + }, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "fd4d13be30ef70ba3ffc73bb8cf48be4d552c773" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\bars\\SSINavigationBar\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\bars\\SSINavigationBar\\index.tsx", + "statementMap": { + "0": {"start": {"line": 26, "column": 18}, "end": {"line": 28, "column": 3}}, + "1": {"start": {"line": 30, "column": 22}, "end": {"line": 33, "column": 3}}, + "2": {"start": {"line": 31, "column": 4}, "end": {"line": 31, "column": 98}}, + "3": {"start": {"line": 32, "column": 4}, "end": {"line": 32, "column": 98}}, + "4": {"start": {"line": 36, "column": 4}, "end": {"line": 36, "column": 42}}, + "5": {"start": {"line": 37, "column": 4}, "end": {"line": 37, "column": 42}}, + "6": {"start": {"line": 40, "column": 21}, "end": {"line": 42, "column": 3}}, + "7": {"start": {"line": 41, "column": 4}, "end": {"line": 41, "column": 43}}, + "8": {"start": {"line": 44, "column": 21}, "end": {"line": 46, "column": 3}}, + "9": {"start": {"line": 45, "column": 4}, "end": {"line": 45, "column": 44}}, + "10": {"start": {"line": 49, "column": 4}, "end": {"line": 91, "column": 13}}, + "11": {"start": {"line": 54, "column": 32}, "end": {"line": 54, "column": 65}}, + "12": {"start": {"line": 55, "column": 32}, "end": {"line": 55, "column": 64}}, + "13": {"start": {"line": 57, "column": 30}, "end": {"line": 68, "column": 15}}, + "14": {"start": {"line": 58, "column": 30}, "end": {"line": 62, "column": 18}}, + "15": {"start": {"line": 64, "column": 16}, "end": {"line": 67, "column": 17}}, + "16": {"start": {"line": 66, "column": 18}, "end": {"line": 66, "column": 76}}, + "17": {"start": {"line": 70, "column": 14}, "end": {"line": 86, "column": 16}}, + "18": {"start": {"line": 95, "column": 26}, "end": {"line": 128, "column": 1}}, + "19": {"start": {"line": 96, "column": 2}, "end": {"line": 127, "column": 3}}, + "20": {"start": {"line": 98, "column": 6}, "end": {"line": 103, "column": 8}}, + "21": {"start": {"line": 105, "column": 6}, "end": {"line": 110, "column": 8}}, + "22": {"start": {"line": 112, "column": 6}, "end": {"line": 117, "column": 8}}, + "23": {"start": {"line": 119, "column": 6}, "end": {"line": 124, "column": 8}}, + "24": {"start": {"line": 126, "column": 6}, "end": {"line": 126, "column": 22}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 30, "column": 22}, "end": {"line": 30, "column": 23}}, + "loc": {"start": {"line": 30, "column": 28}, "end": {"line": 33, "column": 3}}, + "line": 30 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 35, "column": 2}, "end": {"line": 35, "column": 3}}, + "loc": {"start": {"line": 35, "column": 25}, "end": {"line": 38, "column": 3}}, + "line": 35 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 40, "column": 21}, "end": {"line": 40, "column": 22}}, + "loc": {"start": {"line": 40, "column": 27}, "end": {"line": 42, "column": 3}}, + "line": 40 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 44, "column": 21}, "end": {"line": 44, "column": 22}}, + "loc": {"start": {"line": 44, "column": 27}, "end": {"line": 46, "column": 3}}, + "line": 44 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 48, "column": 2}, "end": {"line": 48, "column": 3}}, + "loc": {"start": {"line": 48, "column": 11}, "end": {"line": 92, "column": 3}}, + "line": 48 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 53, "column": 41}, "end": {"line": 53, "column": 42}}, + "loc": {"start": {"line": 53, "column": 67}, "end": {"line": 87, "column": 13}}, + "line": 53 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 57, "column": 30}, "end": {"line": 57, "column": 31}}, + "loc": {"start": {"line": 57, "column": 36}, "end": {"line": 68, "column": 15}}, + "line": 57 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 95, "column": 26}, "end": {"line": 95, "column": 27}}, + "loc": {"start": {"line": 95, "column": 78}, "end": {"line": 128, "column": 1}}, + "line": 95 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 49, "column": 11}, "end": {"line": 91, "column": 12}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 50, "column": 6}, "end": {"line": 90, "column": 26}}, + {"start": {"line": 91, "column": 8}, "end": {"line": 91, "column": 12}} + ], + "line": 49 + }, + "1": { + "loc": {"start": {"line": 64, "column": 16}, "end": {"line": 67, "column": 17}}, + "type": "if", + "locations": [ + {"start": {"line": 64, "column": 16}, "end": {"line": 67, "column": 17}}, + {"start": {}, "end": {}} + ], + "line": 64 + }, + "2": { + "loc": {"start": {"line": 64, "column": 20}, "end": {"line": 64, "column": 57}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 64, "column": 20}, "end": {"line": 64, "column": 30}}, + {"start": {"line": 64, "column": 34}, "end": {"line": 64, "column": 57}} + ], + "line": 64 + }, + "3": { + "loc": {"start": {"line": 74, "column": 38}, "end": {"line": 74, "column": 71}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 74, "column": 50}, "end": {"line": 74, "column": 66}}, + {"start": {"line": 74, "column": 69}, "end": {"line": 74, "column": 71}} + ], + "line": 74 + }, + "4": { + "loc": {"start": {"line": 96, "column": 2}, "end": {"line": 127, "column": 3}}, + "type": "switch", + "locations": [ + {"start": {"line": 97, "column": 4}, "end": {"line": 103, "column": 8}}, + {"start": {"line": 104, "column": 4}, "end": {"line": 110, "column": 8}}, + {"start": {"line": 111, "column": 4}, "end": {"line": 117, "column": 8}}, + {"start": {"line": 118, "column": 4}, "end": {"line": 124, "column": 8}}, + {"start": {"line": 125, "column": 4}, "end": {"line": 126, "column": 22}} + ], + "line": 96 + }, + "5": { + "loc": {"start": {"line": 100, "column": 24}, "end": {"line": 100, "column": 88}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 100, "column": 36}, "end": {"line": 100, "column": 74}}, + {"start": {"line": 100, "column": 77}, "end": {"line": 100, "column": 88}} + ], + "line": 100 + }, + "6": { + "loc": {"start": {"line": 101, "column": 26}, "end": {"line": 101, "column": 92}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 101, "column": 38}, "end": {"line": 101, "column": 78}}, + {"start": {"line": 101, "column": 81}, "end": {"line": 101, "column": 92}} + ], + "line": 101 + }, + "7": { + "loc": {"start": {"line": 107, "column": 24}, "end": {"line": 107, "column": 88}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 107, "column": 36}, "end": {"line": 107, "column": 74}}, + {"start": {"line": 107, "column": 77}, "end": {"line": 107, "column": 88}} + ], + "line": 107 + }, + "8": { + "loc": {"start": {"line": 108, "column": 26}, "end": {"line": 108, "column": 92}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 108, "column": 38}, "end": {"line": 108, "column": 78}}, + {"start": {"line": 108, "column": 81}, "end": {"line": 108, "column": 92}} + ], + "line": 108 + }, + "9": { + "loc": {"start": {"line": 114, "column": 24}, "end": {"line": 114, "column": 88}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 114, "column": 36}, "end": {"line": 114, "column": 74}}, + {"start": {"line": 114, "column": 77}, "end": {"line": 114, "column": 88}} + ], + "line": 114 + }, + "10": { + "loc": {"start": {"line": 115, "column": 26}, "end": {"line": 115, "column": 92}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 115, "column": 38}, "end": {"line": 115, "column": 78}}, + {"start": {"line": 115, "column": 81}, "end": {"line": 115, "column": 92}} + ], + "line": 115 + }, + "11": { + "loc": {"start": {"line": 121, "column": 24}, "end": {"line": 121, "column": 88}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 121, "column": 36}, "end": {"line": 121, "column": 74}}, + {"start": {"line": 121, "column": 77}, "end": {"line": 121, "column": 88}} + ], + "line": 121 + }, + "12": { + "loc": {"start": {"line": 122, "column": 26}, "end": {"line": 122, "column": 92}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 122, "column": 38}, "end": {"line": 122, "column": 78}}, + {"start": {"line": 122, "column": 81}, "end": {"line": 122, "column": 92}} + ], + "line": 122 + } + }, + "s": { + "0": 0, + "1": 0, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 1, + "19": 0, + "20": 0, + "21": 0, + "22": 0, + "23": 0, + "24": 0 + }, + "f": {"0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0}, + "b": { + "0": [0, 0], + "1": [0, 0], + "2": [0, 0], + "3": [0, 0], + "4": [0, 0, 0, 0, 0], + "5": [0, 0], + "6": [0, 0], + "7": [0, 0], + "8": [0, 0], + "9": [0, 0], + "10": [0, 0], + "11": [0, 0], + "12": [0, 0] + }, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "b91504613c6157bf9d6c2844e3b7914f231a7d0b" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\buttons\\SSIIconButton\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\buttons\\SSIIconButton\\index.tsx", + "statementMap": { + "0": {"start": {"line": 20, "column": 33}, "end": {"line": 35, "column": 1}}, + "1": {"start": {"line": 21, "column": 2}, "end": {"line": 34, "column": 4}}, + "2": {"start": {"line": 37, "column": 16}, "end": {"line": 48, "column": 1}}, + "3": {"start": {"line": 38, "column": 2}, "end": {"line": 47, "column": 3}}, + "4": {"start": {"line": 40, "column": 6}, "end": {"line": 40, "column": 29}}, + "5": {"start": {"line": 42, "column": 6}, "end": {"line": 42, "column": 29}}, + "6": {"start": {"line": 44, "column": 6}, "end": {"line": 44, "column": 56}}, + "7": {"start": {"line": 46, "column": 6}, "end": {"line": 46, "column": 22}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 20, "column": 33}, "end": {"line": 20, "column": 34}}, + "loc": {"start": {"line": 20, "column": 64}, "end": {"line": 35, "column": 1}}, + "line": 20 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 37, "column": 16}, "end": {"line": 37, "column": 17}}, + "loc": {"start": {"line": 37, "column": 91}, "end": {"line": 48, "column": 1}}, + "line": 37 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 38, "column": 2}, "end": {"line": 47, "column": 3}}, + "type": "switch", + "locations": [ + {"start": {"line": 39, "column": 4}, "end": {"line": 40, "column": 29}}, + {"start": {"line": 41, "column": 4}, "end": {"line": 42, "column": 29}}, + {"start": {"line": 43, "column": 4}, "end": {"line": 44, "column": 56}}, + {"start": {"line": 45, "column": 4}, "end": {"line": 46, "column": 22}} + ], + "line": 38 + } + }, + "s": {"0": 1, "1": 112, "2": 1, "3": 112, "4": 112, "5": 0, "6": 0, "7": 0}, + "f": {"0": 112, "1": 112}, + "b": {"0": [112, 0, 0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "d17d26f3caad9f2e32e700fc9ad866a104c4b5b4" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\buttons\\SSIPrimaryButton\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\buttons\\SSIPrimaryButton\\index.tsx", + "statementMap": { + "0": {"start": {"line": 18, "column": 36}, "end": {"line": 33, "column": 1}}, + "1": {"start": {"line": 19, "column": 44}, "end": {"line": 19, "column": 49}}, + "2": {"start": {"line": 21, "column": 2}, "end": {"line": 32, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 18, "column": 36}, "end": {"line": 18, "column": 37}}, + "loc": {"start": {"line": 18, "column": 67}, "end": {"line": 33, "column": 1}}, + "line": 18 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 26, "column": 12}, "end": {"line": 26, "column": 60}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 26, "column": 12}, "end": {"line": 26, "column": 20}}, + {"start": {"line": 26, "column": 24}, "end": {"line": 26, "column": 60}} + ], + "line": 26 + } + }, + "s": {"0": 1, "1": 49, "2": 49}, + "f": {"0": 49}, + "b": {"0": [49, 22]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "21edf26d80a21978ec6d0a10b48f3f376e5b9e92" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\buttons\\SSISecondaryButton\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\buttons\\SSISecondaryButton\\index.tsx", + "statementMap": { + "0": {"start": {"line": 21, "column": 38}, "end": {"line": 41, "column": 1}}, + "1": {"start": {"line": 22, "column": 37}, "end": {"line": 22, "column": 42}}, + "2": {"start": {"line": 24, "column": 2}, "end": {"line": 40, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 21, "column": 38}, "end": {"line": 21, "column": 39}}, + "loc": {"start": {"line": 21, "column": 69}, "end": {"line": 41, "column": 1}}, + "line": 21 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 31, "column": 14}, "end": {"line": 31, "column": 62}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 31, "column": 14}, "end": {"line": 31, "column": 22}}, + {"start": {"line": 31, "column": 26}, "end": {"line": 31, "column": 62}} + ], + "line": 31 + }, + "1": { + "loc": {"start": {"line": 34, "column": 52}, "end": {"line": 34, "column": 125}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 34, "column": 77}, "end": {"line": 34, "column": 99}}, + {"start": {"line": 34, "column": 102}, "end": {"line": 34, "column": 125}} + ], + "line": 34 + } + }, + "s": {"0": 1, "1": 16, "2": 16}, + "f": {"0": 16}, + "b": {"0": [16, 0], "1": [0, 16]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "fb9ee24cf1f90614d7450698f4d0e194e8a0e34f" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\buttons\\SSISwipeDeleteButton\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\buttons\\SSISwipeDeleteButton\\index.tsx", + "statementMap": { + "0": {"start": {"line": 15, "column": 41}, "end": {"line": 24, "column": 1}}, + "1": {"start": {"line": 16, "column": 2}, "end": {"line": 23, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 15, "column": 41}, "end": {"line": 15, "column": 42}}, + "loc": {"start": {"line": 15, "column": 73}, "end": {"line": 24, "column": 1}}, + "line": 15 + } + }, + "branchMap": {}, + "s": {"0": 1, "1": 0}, + "f": {"0": 0}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "09d25ea90012db541427bf759dccae0d2cde9f72" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\containers\\SSIButtonsContainer\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\containers\\SSIButtonsContainer\\index.tsx", + "statementMap": { + "0": {"start": {"line": 22, "column": 18}, "end": {"line": 24, "column": 3}}, + "1": {"start": {"line": 26, "column": 22}, "end": {"line": 29, "column": 3}}, + "2": {"start": {"line": 27, "column": 4}, "end": {"line": 27, "column": 98}}, + "3": {"start": {"line": 28, "column": 4}, "end": {"line": 28, "column": 98}}, + "4": {"start": {"line": 31, "column": 25}, "end": {"line": 34, "column": 3}}, + "5": {"start": {"line": 32, "column": 4}, "end": {"line": 32, "column": 42}}, + "6": {"start": {"line": 33, "column": 4}, "end": {"line": 33, "column": 42}}, + "7": {"start": {"line": 36, "column": 21}, "end": {"line": 38, "column": 3}}, + "8": {"start": {"line": 37, "column": 4}, "end": {"line": 37, "column": 43}}, + "9": {"start": {"line": 40, "column": 21}, "end": {"line": 42, "column": 3}}, + "10": {"start": {"line": 41, "column": 4}, "end": {"line": 41, "column": 44}}, + "11": {"start": {"line": 45, "column": 62}, "end": {"line": 45, "column": 72}}, + "12": {"start": {"line": 46, "column": 30}, "end": {"line": 46, "column": 40}}, + "13": {"start": {"line": 48, "column": 4}, "end": {"line": 70, "column": 6}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 26, "column": 22}, "end": {"line": 26, "column": 23}}, + "loc": {"start": {"line": 26, "column": 28}, "end": {"line": 29, "column": 3}}, + "line": 26 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 31, "column": 25}, "end": {"line": 31, "column": 26}}, + "loc": {"start": {"line": 31, "column": 31}, "end": {"line": 34, "column": 3}}, + "line": 31 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 36, "column": 21}, "end": {"line": 36, "column": 22}}, + "loc": {"start": {"line": 36, "column": 27}, "end": {"line": 38, "column": 3}}, + "line": 36 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 40, "column": 21}, "end": {"line": 40, "column": 22}}, + "loc": {"start": {"line": 40, "column": 27}, "end": {"line": 42, "column": 3}}, + "line": 40 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 44, "column": 2}, "end": {"line": 44, "column": 3}}, + "loc": {"start": {"line": 44, "column": 11}, "end": {"line": 71, "column": 3}}, + "line": 44 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 49, "column": 46}, "end": {"line": 49, "column": 71}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 49, "column": 64}, "end": {"line": 49, "column": 66}}, + {"start": {"line": 49, "column": 69}, "end": {"line": 49, "column": 71}} + ], + "line": 49 + }, + "1": { + "loc": {"start": {"line": 49, "column": 77}, "end": {"line": 49, "column": 113}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 49, "column": 77}, "end": {"line": 49, "column": 92}}, + {"start": {"line": 49, "column": 96}, "end": {"line": 49, "column": 113}} + ], + "line": 49 + }, + "2": { + "loc": {"start": {"line": 50, "column": 9}, "end": {"line": 58, "column": 9}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 50, "column": 9}, "end": {"line": 50, "column": 24}}, + {"start": {"line": 51, "column": 10}, "end": {"line": 57, "column": 12}} + ], + "line": 50 + }, + "3": { + "loc": {"start": {"line": 56, "column": 54}, "end": {"line": 56, "column": 85}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 56, "column": 70}, "end": {"line": 56, "column": 79}}, + {"start": {"line": 56, "column": 82}, "end": {"line": 56, "column": 85}} + ], + "line": 56 + }, + "4": { + "loc": {"start": {"line": 60, "column": 9}, "end": {"line": 68, "column": 9}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 60, "column": 9}, "end": {"line": 60, "column": 22}}, + {"start": {"line": 61, "column": 10}, "end": {"line": 67, "column": 12}} + ], + "line": 60 + }, + "5": { + "loc": {"start": {"line": 66, "column": 54}, "end": {"line": 66, "column": 87}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 66, "column": 72}, "end": {"line": 66, "column": 81}}, + {"start": {"line": 66, "column": 84}, "end": {"line": 66, "column": 87}} + ], + "line": 66 + } + }, + "s": {"0": 13, "1": 13, "2": 13, "3": 13, "4": 13, "5": 13, "6": 13, "7": 13, "8": 0, "9": 13, "10": 0, "11": 35, "12": 35, "13": 35}, + "f": {"0": 13, "1": 13, "2": 0, "3": 0, "4": 35}, + "b": {"0": [0, 35], "1": [35, 4], "2": [35, 16], "3": [16, 0], "4": [35, 35], "5": [16, 19]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "fee735575d95db08523d6a11464c929f2f818a0d" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\dropDownLists\\SSIDropDownList\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\dropDownLists\\SSIDropDownList\\index.tsx", + "statementMap": { + "0": {"start": {"line": 11, "column": 36}, "end": {"line": 30, "column": 1}}, + "1": {"start": {"line": 12, "column": 19}, "end": {"line": 27, "column": 3}}, + "2": {"start": {"line": 13, "column": 22}, "end": {"line": 13, "column": 27}}, + "3": {"start": {"line": 14, "column": 4}, "end": {"line": 26, "column": 7}}, + "4": {"start": {"line": 15, "column": 25}, "end": {"line": 15, "column": 75}}, + "5": {"start": {"line": 16, "column": 6}, "end": {"line": 25, "column": 8}}, + "6": {"start": {"line": 29, "column": 2}, "end": {"line": 29, "column": 45}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 11, "column": 36}, "end": {"line": 11, "column": 37}}, + "loc": {"start": {"line": 11, "column": 68}, "end": {"line": 30, "column": 1}}, + "line": 11 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 12, "column": 19}, "end": {"line": 12, "column": 20}}, + "loc": {"start": {"line": 12, "column": 25}, "end": {"line": 27, "column": 3}}, + "line": 12 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 14, "column": 23}, "end": {"line": 14, "column": 24}}, + "loc": {"start": {"line": 14, "column": 67}, "end": {"line": 26, "column": 5}}, + "line": 14 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 15, "column": 25}, "end": {"line": 15, "column": 75}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 15, "column": 25}, "end": {"line": 15, "column": 43}}, + {"start": {"line": 15, "column": 47}, "end": {"line": 15, "column": 75}} + ], + "line": 15 + } + }, + "s": {"0": 1, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0}, + "f": {"0": 0, "1": 0, "2": 0}, + "b": {"0": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "ccf5d647c5822f5f649f0afcb12970ef6f18de51" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\dropDownLists\\SSIDropDownListItem\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\dropDownLists\\SSIDropDownListItem\\index.tsx", + "statementMap": { + "0": {"start": {"line": 26, "column": 40}, "end": {"line": 63, "column": 1}}, + "1": {"start": {"line": 27, "column": 80}, "end": {"line": 27, "column": 85}}, + "2": {"start": {"line": 29, "column": 18}, "end": {"line": 31, "column": 3}}, + "3": {"start": {"line": 30, "column": 4}, "end": {"line": 30, "column": 26}}, + "4": {"start": {"line": 33, "column": 18}, "end": {"line": 48, "column": 3}}, + "5": {"start": {"line": 34, "column": 37}, "end": {"line": 34, "column": 42}}, + "6": {"start": {"line": 36, "column": 4}, "end": {"line": 47, "column": 5}}, + "7": {"start": {"line": 38, "column": 8}, "end": {"line": 38, "column": 51}}, + "8": {"start": {"line": 40, "column": 8}, "end": {"line": 40, "column": 48}}, + "9": {"start": {"line": 42, "column": 8}, "end": {"line": 42, "column": 51}}, + "10": {"start": {"line": 44, "column": 8}, "end": {"line": 44, "column": 53}}, + "11": {"start": {"line": 46, "column": 8}, "end": {"line": 46, "column": 24}}, + "12": {"start": {"line": 50, "column": 2}, "end": {"line": 62, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 26, "column": 40}, "end": {"line": 26, "column": 41}}, + "loc": {"start": {"line": 26, "column": 72}, "end": {"line": 63, "column": 1}}, + "line": 26 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 29, "column": 18}, "end": {"line": 29, "column": 19}}, + "loc": {"start": {"line": 29, "column": 30}, "end": {"line": 31, "column": 3}}, + "line": 29 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 33, "column": 18}, "end": {"line": 33, "column": 19}}, + "loc": {"start": {"line": 33, "column": 62}, "end": {"line": 48, "column": 3}}, + "line": 33 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 27, "column": 34}, "end": {"line": 27, "column": 52}}, + "type": "default-arg", + "locations": [{"start": {"line": 27, "column": 47}, "end": {"line": 27, "column": 52}}], + "line": 27 + }, + "1": { + "loc": {"start": {"line": 27, "column": 54}, "end": {"line": 27, "column": 76}}, + "type": "default-arg", + "locations": [{"start": {"line": 27, "column": 66}, "end": {"line": 27, "column": 76}}], + "line": 27 + }, + "2": { + "loc": {"start": {"line": 34, "column": 11}, "end": {"line": 34, "column": 33}}, + "type": "default-arg", + "locations": [{"start": {"line": 34, "column": 23}, "end": {"line": 34, "column": 33}}], + "line": 34 + }, + "3": { + "loc": {"start": {"line": 36, "column": 4}, "end": {"line": 47, "column": 5}}, + "type": "switch", + "locations": [ + {"start": {"line": 37, "column": 6}, "end": {"line": 38, "column": 51}}, + {"start": {"line": 39, "column": 6}, "end": {"line": 40, "column": 48}}, + {"start": {"line": 41, "column": 6}, "end": {"line": 42, "column": 51}}, + {"start": {"line": 43, "column": 6}, "end": {"line": 44, "column": 53}}, + {"start": {"line": 45, "column": 6}, "end": {"line": 46, "column": 24}} + ], + "line": 36 + }, + "4": { + "loc": {"start": {"line": 55, "column": 12}, "end": {"line": 55, "column": 60}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 55, "column": 12}, "end": {"line": 55, "column": 20}}, + {"start": {"line": 55, "column": 24}, "end": {"line": 55, "column": 60}} + ], + "line": 55 + }, + "5": { + "loc": {"start": {"line": 57, "column": 29}, "end": {"line": 57, "column": 99}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 57, "column": 29}, "end": {"line": 57, "column": 39}}, + {"start": {"line": 57, "column": 43}, "end": {"line": 57, "column": 99}} + ], + "line": 57 + }, + "6": { + "loc": {"start": {"line": 59, "column": 9}, "end": {"line": 59, "column": 63}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 59, "column": 9}, "end": {"line": 59, "column": 13}}, + {"start": {"line": 59, "column": 17}, "end": {"line": 59, "column": 63}} + ], + "line": 59 + } + }, + "s": {"0": 1, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0, "10": 0, "11": 0, "12": 0}, + "f": {"0": 0, "1": 0, "2": 0}, + "b": {"0": [0], "1": [0], "2": [0], "3": [0, 0, 0, 0, 0], "4": [0, 0], "5": [0, 0], "6": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "9dff5877b3a33a7b038d62a49078ea501bed6b92" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\fields\\SSICheckbox\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\fields\\SSICheckbox\\index.tsx", + "statementMap": { + "0": {"start": {"line": 27, "column": 32}, "end": {"line": 73, "column": 1}}, + "1": {"start": {"line": 36, "column": 6}, "end": {"line": 36, "column": 11}}, + "2": {"start": {"line": 37, "column": 34}, "end": {"line": 37, "column": 71}}, + "3": {"start": {"line": 38, "column": 16}, "end": {"line": 38, "column": 75}}, + "4": {"start": {"line": 40, "column": 24}, "end": {"line": 47, "column": 3}}, + "5": {"start": {"line": 41, "column": 28}, "end": {"line": 41, "column": 33}}, + "6": {"start": {"line": 42, "column": 4}, "end": {"line": 46, "column": 5}}, + "7": {"start": {"line": 43, "column": 6}, "end": {"line": 43, "column": 67}}, + "8": {"start": {"line": 43, "column": 43}, "end": {"line": 43, "column": 65}}, + "9": {"start": {"line": 45, "column": 6}, "end": {"line": 45, "column": 29}}, + "10": {"start": {"line": 49, "column": 2}, "end": {"line": 72, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 27, "column": 32}, "end": {"line": 27, "column": 33}}, + "loc": {"start": {"line": 27, "column": 64}, "end": {"line": 73, "column": 1}}, + "line": 27 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 40, "column": 24}, "end": {"line": 40, "column": 25}}, + "loc": {"start": {"line": 40, "column": 30}, "end": {"line": 47, "column": 3}}, + "line": 40 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 43, "column": 37}, "end": {"line": 43, "column": 38}}, + "loc": {"start": {"line": 43, "column": 43}, "end": {"line": 43, "column": 65}}, + "line": 43 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 30, "column": 4}, "end": {"line": 30, "column": 53}}, + "type": "default-arg", + "locations": [{"start": {"line": 30, "column": 18}, "end": {"line": 30, "column": 53}}], + "line": 30 + }, + "1": { + "loc": {"start": {"line": 31, "column": 4}, "end": {"line": 31, "column": 20}}, + "type": "default-arg", + "locations": [{"start": {"line": 31, "column": 15}, "end": {"line": 31, "column": 20}}], + "line": 31 + }, + "2": { + "loc": {"start": {"line": 34, "column": 4}, "end": {"line": 34, "column": 49}}, + "type": "default-arg", + "locations": [{"start": {"line": 34, "column": 20}, "end": {"line": 34, "column": 49}}], + "line": 34 + }, + "3": { + "loc": {"start": {"line": 35, "column": 4}, "end": {"line": 35, "column": 28}}, + "type": "default-arg", + "locations": [{"start": {"line": 35, "column": 17}, "end": {"line": 35, "column": 28}}], + "line": 35 + }, + "4": { + "loc": {"start": {"line": 37, "column": 49}, "end": {"line": 37, "column": 70}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 37, "column": 49}, "end": {"line": 37, "column": 61}}, + {"start": {"line": 37, "column": 65}, "end": {"line": 37, "column": 70}} + ], + "line": 37 + }, + "5": { + "loc": {"start": {"line": 38, "column": 16}, "end": {"line": 38, "column": 75}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 38, "column": 48}, "end": {"line": 38, "column": 63}}, + {"start": {"line": 38, "column": 66}, "end": {"line": 38, "column": 75}} + ], + "line": 38 + }, + "6": { + "loc": {"start": {"line": 42, "column": 4}, "end": {"line": 46, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 42, "column": 4}, "end": {"line": 46, "column": 5}}, + {"start": {"line": 44, "column": 11}, "end": {"line": 46, "column": 5}} + ], + "line": 42 + }, + "7": { + "loc": {"start": {"line": 60, "column": 9}, "end": {"line": 68, "column": 9}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 61, "column": 10}, "end": {"line": 63, "column": 12}}, + {"start": {"line": 65, "column": 10}, "end": {"line": 67, "column": 12}} + ], + "line": 60 + }, + "8": { + "loc": {"start": {"line": 62, "column": 56}, "end": {"line": 62, "column": 82}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 62, "column": 56}, "end": {"line": 62, "column": 61}}, + {"start": {"line": 62, "column": 65}, "end": {"line": 62, "column": 82}} + ], + "line": 62 + }, + "9": { + "loc": {"start": {"line": 62, "column": 89}, "end": {"line": 62, "column": 137}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 62, "column": 89}, "end": {"line": 62, "column": 97}}, + {"start": {"line": 62, "column": 101}, "end": {"line": 62, "column": 137}} + ], + "line": 62 + }, + "10": { + "loc": {"start": {"line": 66, "column": 41}, "end": {"line": 66, "column": 67}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 66, "column": 41}, "end": {"line": 66, "column": 46}}, + {"start": {"line": 66, "column": 50}, "end": {"line": 66, "column": 67}} + ], + "line": 66 + }, + "11": { + "loc": {"start": {"line": 66, "column": 87}, "end": {"line": 66, "column": 135}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 66, "column": 87}, "end": {"line": 66, "column": 95}}, + {"start": {"line": 66, "column": 99}, "end": {"line": 66, "column": 135}} + ], + "line": 66 + }, + "12": { + "loc": {"start": {"line": 69, "column": 9}, "end": {"line": 69, "column": 137}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 69, "column": 9}, "end": {"line": 69, "column": 14}}, + {"start": {"line": 69, "column": 18}, "end": {"line": 69, "column": 137}} + ], + "line": 69 + }, + "13": { + "loc": {"start": {"line": 69, "column": 63}, "end": {"line": 69, "column": 111}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 69, "column": 63}, "end": {"line": 69, "column": 71}}, + {"start": {"line": 69, "column": 75}, "end": {"line": 69, "column": 111}} + ], + "line": 69 + } + }, + "s": {"0": 1, "1": 38, "2": 38, "3": 38, "4": 38, "5": 6, "6": 6, "7": 6, "8": 6, "9": 0, "10": 38}, + "f": {"0": 38, "1": 6, "2": 6}, + "b": { + "0": [38], + "1": [38], + "2": [38], + "3": [38], + "4": [38, 18], + "5": [0, 38], + "6": [6, 0], + "7": [14, 24], + "8": [14, 14], + "9": [14, 0], + "10": [24, 24], + "11": [24, 0], + "12": [38, 38], + "13": [38, 0] + }, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "f83a982c1153fc716cacba80b8d396671d192e85" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\fields\\SSIImageField\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\fields\\SSIImageField\\index.tsx", + "statementMap": { + "0": {"start": {"line": 19, "column": 34}, "end": {"line": 44, "column": 1}}, + "1": {"start": {"line": 20, "column": 24}, "end": {"line": 20, "column": 29}}, + "2": {"start": {"line": 22, "column": 30}, "end": {"line": 22, "column": 97}}, + "3": {"start": {"line": 23, "column": 2}, "end": {"line": 43, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 19, "column": 34}, "end": {"line": 19, "column": 35}}, + "loc": {"start": {"line": 19, "column": 66}, "end": {"line": 44, "column": 1}}, + "line": 19 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 24, "column": 48}, "end": {"line": 24, "column": 69}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 24, "column": 62}, "end": {"line": 24, "column": 64}}, + {"start": {"line": 24, "column": 67}, "end": {"line": 24, "column": 69}} + ], + "line": 24 + } + }, + "s": {"0": 1, "1": 0, "2": 0, "3": 0}, + "f": {"0": 0}, + "b": {"0": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "98ee9bd11a81c2c134ad704cf13d7b5ce54a16dd" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\fields\\SSITextField\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\fields\\SSITextField\\index.tsx", + "statementMap": { + "0": {"start": {"line": 22, "column": 33}, "end": {"line": 47, "column": 1}}, + "1": {"start": {"line": 23, "column": 24}, "end": {"line": 23, "column": 29}}, + "2": {"start": {"line": 25, "column": 2}, "end": {"line": 46, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 22, "column": 33}, "end": {"line": 22, "column": 34}}, + "loc": {"start": {"line": 22, "column": 65}, "end": {"line": 47, "column": 1}}, + "line": 22 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 26, "column": 48}, "end": {"line": 26, "column": 69}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 26, "column": 62}, "end": {"line": 26, "column": 64}}, + {"start": {"line": 26, "column": 67}, "end": {"line": 26, "column": 69}} + ], + "line": 26 + }, + "1": { + "loc": {"start": {"line": 29, "column": 9}, "end": {"line": 33, "column": 9}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 29, "column": 9}, "end": {"line": 29, "column": 20}}, + {"start": {"line": 30, "column": 10}, "end": {"line": 32, "column": 33}} + ], + "line": 29 + }, + "2": { + "loc": {"start": {"line": 37, "column": 11}, "end": {"line": 41, "column": 11}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 37, "column": 11}, "end": {"line": 37, "column": 26}}, + {"start": {"line": 38, "column": 12}, "end": {"line": 40, "column": 33}} + ], + "line": 37 + } + }, + "s": {"0": 1, "1": 12, "2": 12}, + "f": {"0": 12}, + "b": {"0": [4, 8], "1": [12, 0], "2": [12, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "88bce5a15e82493d14ad1f143b18d79901a4a45e" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\fields\\SSITextInputField\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\fields\\SSITextInputField\\index.tsx", + "statementMap": { + "0": {"start": {"line": 78, "column": 38}, "end": {"line": 196, "column": 1}}, + "1": {"start": {"line": 98, "column": 6}, "end": {"line": 98, "column": 11}}, + "2": {"start": {"line": 100, "column": 28}, "end": {"line": 100, "column": 56}}, + "3": {"start": {"line": 101, "column": 28}, "end": {"line": 101, "column": 52}}, + "4": {"start": {"line": 102, "column": 34}, "end": {"line": 102, "column": 55}}, + "5": {"start": {"line": 104, "column": 19}, "end": {"line": 111, "column": 3}}, + "6": {"start": {"line": 105, "column": 4}, "end": {"line": 105, "column": 20}}, + "7": {"start": {"line": 106, "column": 4}, "end": {"line": 110, "column": 5}}, + "8": {"start": {"line": 107, "column": 6}, "end": {"line": 109, "column": 58}}, + "9": {"start": {"line": 108, "column": 20}, "end": {"line": 108, "column": 39}}, + "10": {"start": {"line": 109, "column": 33}, "end": {"line": 109, "column": 56}}, + "11": {"start": {"line": 113, "column": 23}, "end": {"line": 119, "column": 3}}, + "12": {"start": {"line": 114, "column": 4}, "end": {"line": 118, "column": 5}}, + "13": {"start": {"line": 115, "column": 6}, "end": {"line": 117, "column": 58}}, + "14": {"start": {"line": 116, "column": 20}, "end": {"line": 116, "column": 39}}, + "15": {"start": {"line": 117, "column": 33}, "end": {"line": 117, "column": 56}}, + "16": {"start": {"line": 121, "column": 17}, "end": {"line": 123, "column": 3}}, + "17": {"start": {"line": 122, "column": 4}, "end": {"line": 122, "column": 23}}, + "18": {"start": {"line": 125, "column": 19}, "end": {"line": 130, "column": 3}}, + "19": {"start": {"line": 126, "column": 4}, "end": {"line": 126, "column": 22}}, + "20": {"start": {"line": 127, "column": 4}, "end": {"line": 129, "column": 5}}, + "21": {"start": {"line": 128, "column": 6}, "end": {"line": 128, "column": 22}}, + "22": {"start": {"line": 132, "column": 2}, "end": {"line": 195, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 78, "column": 38}, "end": {"line": 78, "column": 39}}, + "loc": {"start": {"line": 78, "column": 70}, "end": {"line": 196, "column": 1}}, + "line": 78 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 104, "column": 19}, "end": {"line": 104, "column": 20}}, + "loc": {"start": {"line": 104, "column": 59}, "end": {"line": 111, "column": 3}}, + "line": 104 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 108, "column": 14}, "end": {"line": 108, "column": 15}}, + "loc": {"start": {"line": 108, "column": 20}, "end": {"line": 108, "column": 39}}, + "line": 108 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 109, "column": 15}, "end": {"line": 109, "column": 16}}, + "loc": {"start": {"line": 109, "column": 33}, "end": {"line": 109, "column": 56}}, + "line": 109 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 113, "column": 23}, "end": {"line": 113, "column": 24}}, + "loc": {"start": {"line": 113, "column": 107}, "end": {"line": 119, "column": 3}}, + "line": 113 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 116, "column": 14}, "end": {"line": 116, "column": 15}}, + "loc": {"start": {"line": 116, "column": 20}, "end": {"line": 116, "column": 39}}, + "line": 116 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 117, "column": 15}, "end": {"line": 117, "column": 16}}, + "loc": {"start": {"line": 117, "column": 33}, "end": {"line": 117, "column": 56}}, + "line": 117 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 121, "column": 17}, "end": {"line": 121, "column": 18}}, + "loc": {"start": {"line": 121, "column": 44}, "end": {"line": 123, "column": 3}}, + "line": 121 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 125, "column": 19}, "end": {"line": 125, "column": 20}}, + "loc": {"start": {"line": 125, "column": 46}, "end": {"line": 130, "column": 3}}, + "line": 125 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 80, "column": 4}, "end": {"line": 80, "column": 30}}, + "type": "default-arg", + "locations": [{"start": {"line": 80, "column": 21}, "end": {"line": 80, "column": 30}}], + "line": 80 + }, + "1": { + "loc": {"start": {"line": 82, "column": 4}, "end": {"line": 82, "column": 21}}, + "type": "default-arg", + "locations": [{"start": {"line": 82, "column": 16}, "end": {"line": 82, "column": 21}}], + "line": 82 + }, + "2": { + "loc": {"start": {"line": 83, "column": 4}, "end": {"line": 83, "column": 53}}, + "type": "default-arg", + "locations": [{"start": {"line": 83, "column": 18}, "end": {"line": 83, "column": 53}}], + "line": 83 + }, + "3": { + "loc": {"start": {"line": 84, "column": 4}, "end": {"line": 84, "column": 20}}, + "type": "default-arg", + "locations": [{"start": {"line": 84, "column": 15}, "end": {"line": 84, "column": 20}}], + "line": 84 + }, + "4": { + "loc": {"start": {"line": 85, "column": 4}, "end": {"line": 85, "column": 19}}, + "type": "default-arg", + "locations": [{"start": {"line": 85, "column": 15}, "end": {"line": 85, "column": 19}}], + "line": 85 + }, + "5": { + "loc": {"start": {"line": 90, "column": 4}, "end": {"line": 90, "column": 28}}, + "type": "default-arg", + "locations": [{"start": {"line": 90, "column": 19}, "end": {"line": 90, "column": 28}}], + "line": 90 + }, + "6": { + "loc": {"start": {"line": 96, "column": 4}, "end": {"line": 96, "column": 27}}, + "type": "default-arg", + "locations": [{"start": {"line": 96, "column": 22}, "end": {"line": 96, "column": 27}}], + "line": 96 + }, + "7": { + "loc": {"start": {"line": 97, "column": 4}, "end": {"line": 97, "column": 21}}, + "type": "default-arg", + "locations": [{"start": {"line": 97, "column": 17}, "end": {"line": 97, "column": 21}}], + "line": 97 + }, + "8": { + "loc": {"start": {"line": 106, "column": 4}, "end": {"line": 110, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 106, "column": 4}, "end": {"line": 110, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 106 + }, + "9": { + "loc": {"start": {"line": 114, "column": 4}, "end": {"line": 118, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 114, "column": 4}, "end": {"line": 118, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 114 + }, + "10": { + "loc": {"start": {"line": 127, "column": 4}, "end": {"line": 129, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 127, "column": 4}, "end": {"line": 129, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 127 + }, + "11": { + "loc": {"start": {"line": 134, "column": 7}, "end": {"line": 148, "column": 14}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 135, "column": 8}, "end": {"line": 147, "column": 9}}, + {"start": {"line": 148, "column": 10}, "end": {"line": 148, "column": 14}} + ], + "line": 134 + }, + "12": { + "loc": {"start": {"line": 135, "column": 8}, "end": {"line": 147, "column": 9}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 136, "column": 10}, "end": {"line": 142, "column": 25}}, + {"start": {"line": 144, "column": 10}, "end": {"line": 146, "column": 31}} + ], + "line": 135 + }, + "13": { + "loc": {"start": {"line": 135, "column": 8}, "end": {"line": 135, "column": 27}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 135, "column": 8}, "end": {"line": 135, "column": 18}}, + {"start": {"line": 135, "column": 22}, "end": {"line": 135, "column": 27}} + ], + "line": 135 + }, + "14": { + "loc": {"start": {"line": 138, "column": 21}, "end": {"line": 138, "column": 56}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 138, "column": 29}, "end": {"line": 138, "column": 43}}, + {"start": {"line": 138, "column": 46}, "end": {"line": 138, "column": 56}} + ], + "line": 138 + }, + "15": { + "loc": {"start": {"line": 139, "column": 18}, "end": {"line": 139, "column": 66}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 139, "column": 18}, "end": {"line": 139, "column": 26}}, + {"start": {"line": 139, "column": 30}, "end": {"line": 139, "column": 66}} + ], + "line": 139 + }, + "16": { + "loc": {"start": {"line": 144, "column": 42}, "end": {"line": 144, "column": 90}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 144, "column": 42}, "end": {"line": 144, "column": 50}}, + {"start": {"line": 144, "column": 54}, "end": {"line": 144, "column": 90}} + ], + "line": 144 + }, + "17": { + "loc": {"start": {"line": 155, "column": 20}, "end": {"line": 155, "column": 41}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 155, "column": 20}, "end": {"line": 155, "column": 28}}, + {"start": {"line": 155, "column": 32}, "end": {"line": 155, "column": 41}} + ], + "line": 155 + }, + "18": { + "loc": {"start": {"line": 164, "column": 22}, "end": {"line": 164, "column": 70}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 164, "column": 22}, "end": {"line": 164, "column": 30}}, + {"start": {"line": 164, "column": 34}, "end": {"line": 164, "column": 70}} + ], + "line": 164 + }, + "19": { + "loc": {"start": {"line": 166, "column": 9}, "end": {"line": 171, "column": 9}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 166, "column": 9}, "end": {"line": 166, "column": 24}}, + {"start": {"line": 168, "column": 10}, "end": {"line": 170, "column": 26}} + ], + "line": 166 + }, + "20": { + "loc": {"start": {"line": 168, "column": 37}, "end": {"line": 168, "column": 85}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 168, "column": 37}, "end": {"line": 168, "column": 45}}, + {"start": {"line": 168, "column": 49}, "end": {"line": 168, "column": 85}} + ], + "line": 168 + }, + "21": { + "loc": {"start": {"line": 173, "column": 7}, "end": {"line": 182, "column": 7}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 174, "column": 8}, "end": {"line": 174, "column": 35}}, + {"start": {"line": 176, "column": 8}, "end": {"line": 181, "column": 10}} + ], + "line": 173 + }, + "22": { + "loc": {"start": {"line": 173, "column": 7}, "end": {"line": 173, "column": 25}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 173, "column": 7}, "end": {"line": 173, "column": 15}}, + {"start": {"line": 173, "column": 19}, "end": {"line": 173, "column": 25}} + ], + "line": 173 + }, + "23": { + "loc": {"start": {"line": 178, "column": 16}, "end": {"line": 178, "column": 109}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 178, "column": 16}, "end": {"line": 178, "column": 26}}, + {"start": {"line": 178, "column": 30}, "end": {"line": 178, "column": 109}} + ], + "line": 178 + }, + "24": { + "loc": {"start": {"line": 178, "column": 72}, "end": {"line": 178, "column": 108}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 178, "column": 80}, "end": {"line": 178, "column": 94}}, + {"start": {"line": 178, "column": 97}, "end": {"line": 178, "column": 108}} + ], + "line": 178 + }, + "25": { + "loc": {"start": {"line": 179, "column": 16}, "end": {"line": 179, "column": 64}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 179, "column": 16}, "end": {"line": 179, "column": 24}}, + {"start": {"line": 179, "column": 28}, "end": {"line": 179, "column": 64}} + ], + "line": 179 + }, + "26": { + "loc": {"start": {"line": 184, "column": 9}, "end": {"line": 192, "column": 9}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 184, "column": 10}, "end": {"line": 184, "column": 20}}, + {"start": {"line": 184, "column": 24}, "end": {"line": 184, "column": 29}}, + {"start": {"line": 185, "column": 10}, "end": {"line": 191, "column": 25}} + ], + "line": 184 + }, + "27": { + "loc": {"start": {"line": 187, "column": 21}, "end": {"line": 187, "column": 64}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 187, "column": 29}, "end": {"line": 187, "column": 43}}, + {"start": {"line": 187, "column": 46}, "end": {"line": 187, "column": 64}} + ], + "line": 187 + }, + "28": { + "loc": {"start": {"line": 188, "column": 18}, "end": {"line": 188, "column": 66}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 188, "column": 18}, "end": {"line": 188, "column": 26}}, + {"start": {"line": 188, "column": 30}, "end": {"line": 188, "column": 66}} + ], + "line": 188 + }, + "29": { + "loc": {"start": {"line": 190, "column": 13}, "end": {"line": 190, "column": 39}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 190, "column": 21}, "end": {"line": 190, "column": 26}}, + {"start": {"line": 190, "column": 29}, "end": {"line": 190, "column": 39}} + ], + "line": 190 + } + }, + "s": { + "0": 1, + "1": 45, + "2": 45, + "3": 45, + "4": 45, + "5": 45, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 45, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 45, + "17": 0, + "18": 45, + "19": 0, + "20": 0, + "21": 0, + "22": 45 + }, + "f": {"0": 45, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0}, + "b": { + "0": [45], + "1": [30], + "2": [45], + "3": [45], + "4": [45], + "5": [45], + "6": [45], + "7": [45], + "8": [0, 0], + "9": [0, 0], + "10": [0, 0], + "11": [45, 0], + "12": [0, 45], + "13": [45, 45], + "14": [0, 0], + "15": [0, 0], + "16": [45, 0], + "17": [45, 45], + "18": [45, 0], + "19": [45, 0], + "20": [0, 0], + "21": [0, 45], + "22": [45, 0], + "23": [45, 45], + "24": [0, 45], + "25": [45, 0], + "26": [45, 45, 0], + "27": [0, 0], + "28": [0, 0], + "29": [0, 0] + }, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "85e9c459c32855c2106843b399ecb07a2b77ca09" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\indicators\\SSIProgressIndicator\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\indicators\\SSIProgressIndicator\\index.tsx", + "statementMap": { + "0": {"start": {"line": 6, "column": 21}, "end": {"line": 6, "column": 36}}, + "1": {"start": {"line": 13, "column": 41}, "end": {"line": 30, "column": 1}}, + "2": {"start": {"line": 14, "column": 27}, "end": {"line": 14, "column": 32}}, + "3": {"start": {"line": 16, "column": 2}, "end": {"line": 18, "column": 3}}, + "4": {"start": {"line": 17, "column": 4}, "end": {"line": 17, "column": 46}}, + "5": {"start": {"line": 20, "column": 19}, "end": {"line": 20, "column": 21}}, + "6": {"start": {"line": 21, "column": 2}, "end": {"line": 27, "column": 3}}, + "7": {"start": {"line": 21, "column": 15}, "end": {"line": 21, "column": 16}}, + "8": {"start": {"line": 22, "column": 4}, "end": {"line": 26, "column": 5}}, + "9": {"start": {"line": 23, "column": 6}, "end": {"line": 23, "column": 107}}, + "10": {"start": {"line": 25, "column": 6}, "end": {"line": 25, "column": 93}}, + "11": {"start": {"line": 29, "column": 2}, "end": {"line": 29, "column": 43}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 13, "column": 41}, "end": {"line": 13, "column": 42}}, + "loc": {"start": {"line": 13, "column": 73}, "end": {"line": 30, "column": 1}}, + "line": 13 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 16, "column": 2}, "end": {"line": 18, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 16, "column": 2}, "end": {"line": 18, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 16 + }, + "1": { + "loc": {"start": {"line": 22, "column": 4}, "end": {"line": 26, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 22, "column": 4}, "end": {"line": 26, "column": 5}}, + {"start": {"line": 24, "column": 11}, "end": {"line": 26, "column": 5}} + ], + "line": 22 + }, + "2": { + "loc": {"start": {"line": 23, "column": 79}, "end": {"line": 23, "column": 100}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 23, "column": 94}, "end": {"line": 23, "column": 96}}, + {"start": {"line": 23, "column": 99}, "end": {"line": 23, "column": 100}} + ], + "line": 23 + }, + "3": { + "loc": {"start": {"line": 25, "column": 65}, "end": {"line": 25, "column": 86}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 25, "column": 80}, "end": {"line": 25, "column": 82}}, + {"start": {"line": 25, "column": 85}, "end": {"line": 25, "column": 86}} + ], + "line": 25 + } + }, + "s": {"0": 1, "1": 1, "2": 14, "3": 14, "4": 0, "5": 14, "6": 14, "7": 14, "8": 42, "9": 14, "10": 28, "11": 14}, + "f": {"0": 14}, + "b": {"0": [0, 14], "1": [14, 28], "2": [9, 5], "3": [19, 9]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "d71a0b08df0fc38d44eda4d7608856949363c8ff" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\messageBoxes\\alerts\\SSIAlert\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\messageBoxes\\alerts\\SSIAlert\\index.tsx", + "statementMap": { + "0": {"start": {"line": 18, "column": 29}, "end": {"line": 35, "column": 1}}, + "1": {"start": {"line": 19, "column": 2}, "end": {"line": 34, "column": 4}}, + "2": {"start": {"line": 27, "column": 12}, "end": {"line": 29, "column": 21}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 18, "column": 29}, "end": {"line": 18, "column": 30}}, + "loc": {"start": {"line": 18, "column": 61}, "end": {"line": 35, "column": 1}}, + "line": 18 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 26, "column": 29}, "end": {"line": 26, "column": 30}}, + "loc": {"start": {"line": 27, "column": 12}, "end": {"line": 29, "column": 21}}, + "line": 27 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 24, "column": 7}, "end": {"line": 32, "column": 7}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 24, "column": 7}, "end": {"line": 24, "column": 20}}, + {"start": {"line": 25, "column": 8}, "end": {"line": 31, "column": 26}} + ], + "line": 24 + } + }, + "s": {"0": 1, "1": 0, "2": 0}, + "f": {"0": 0, "1": 0}, + "b": {"0": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "fcdfbe025e45156748e9ef1841a893e0c225ae16" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\messageBoxes\\popups\\SSIPopup\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\messageBoxes\\popups\\SSIPopup\\index.tsx", + "statementMap": { + "0": {"start": {"line": 43, "column": 29}, "end": {"line": 101, "column": 1}}, + "1": {"start": {"line": 44, "column": 134}, "end": {"line": 44, "column": 139}}, + "2": {"start": {"line": 46, "column": 2}, "end": {"line": 100, "column": 4}}, + "3": {"start": {"line": 103, "column": 17}, "end": {"line": 112, "column": 1}}, + "4": {"start": {"line": 104, "column": 2}, "end": {"line": 111, "column": 3}}, + "5": {"start": {"line": 106, "column": 6}, "end": {"line": 106, "column": 35}}, + "6": {"start": {"line": 108, "column": 6}, "end": {"line": 108, "column": 41}}, + "7": {"start": {"line": 110, "column": 6}, "end": {"line": 110, "column": 22}}, + "8": {"start": {"line": 114, "column": 17}, "end": {"line": 123, "column": 1}}, + "9": {"start": {"line": 115, "column": 2}, "end": {"line": 122, "column": 3}}, + "10": {"start": {"line": 117, "column": 6}, "end": {"line": 117, "column": 34}}, + "11": {"start": {"line": 119, "column": 6}, "end": {"line": 119, "column": 33}}, + "12": {"start": {"line": 121, "column": 6}, "end": {"line": 121, "column": 22}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 43, "column": 29}, "end": {"line": 43, "column": 30}}, + "loc": {"start": {"line": 43, "column": 61}, "end": {"line": 101, "column": 1}}, + "line": 43 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 103, "column": 17}, "end": {"line": 103, "column": 18}}, + "loc": {"start": {"line": 103, "column": 58}, "end": {"line": 112, "column": 1}}, + "line": 103 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 114, "column": 17}, "end": {"line": 114, "column": 18}}, + "loc": {"start": {"line": 114, "column": 58}, "end": {"line": 123, "column": 1}}, + "line": 114 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 44, "column": 114}, "end": {"line": 44, "column": 130}}, + "type": "default-arg", + "locations": [{"start": {"line": 44, "column": 125}, "end": {"line": 44, "column": 130}}], + "line": 44 + }, + "1": { + "loc": {"start": {"line": 47, "column": 40}, "end": {"line": 47, "column": 101}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 47, "column": 51}, "end": {"line": 47, "column": 74}}, + {"start": {"line": 47, "column": 77}, "end": {"line": 47, "column": 101}} + ], + "line": 47 + }, + "2": { + "loc": {"start": {"line": 49, "column": 9}, "end": {"line": 53, "column": 9}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 49, "column": 9}, "end": {"line": 49, "column": 16}}, + {"start": {"line": 50, "column": 10}, "end": {"line": 52, "column": 33}} + ], + "line": 49 + }, + "3": { + "loc": {"start": {"line": 51, "column": 67}, "end": {"line": 51, "column": 101}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 51, "column": 78}, "end": {"line": 51, "column": 89}}, + {"start": {"line": 51, "column": 92}, "end": {"line": 51, "column": 101}} + ], + "line": 51 + }, + "4": { + "loc": {"start": {"line": 55, "column": 7}, "end": {"line": 55, "column": 66}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 55, "column": 7}, "end": {"line": 55, "column": 12}}, + {"start": {"line": 55, "column": 16}, "end": {"line": 55, "column": 66}} + ], + "line": 55 + }, + "5": { + "loc": {"start": {"line": 57, "column": 9}, "end": {"line": 62, "column": 9}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 57, "column": 9}, "end": {"line": 57, "column": 14}}, + {"start": {"line": 58, "column": 10}, "end": {"line": 61, "column": 27}} + ], + "line": 57 + }, + "6": { + "loc": {"start": {"line": 59, "column": 13}, "end": {"line": 59, "column": 92}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 59, "column": 13}, "end": {"line": 59, "column": 23}}, + {"start": {"line": 59, "column": 27}, "end": {"line": 59, "column": 92}} + ], + "line": 59 + }, + "7": { + "loc": {"start": {"line": 60, "column": 41}, "end": {"line": 60, "column": 75}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 60, "column": 52}, "end": {"line": 60, "column": 63}}, + {"start": {"line": 60, "column": 66}, "end": {"line": 60, "column": 75}} + ], + "line": 60 + }, + "8": { + "loc": {"start": {"line": 63, "column": 9}, "end": {"line": 63, "column": 128}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 63, "column": 9}, "end": {"line": 63, "column": 16}}, + {"start": {"line": 63, "column": 20}, "end": {"line": 63, "column": 128}} + ], + "line": 63 + }, + "9": { + "loc": {"start": {"line": 63, "column": 48}, "end": {"line": 63, "column": 82}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 63, "column": 59}, "end": {"line": 63, "column": 70}}, + {"start": {"line": 63, "column": 73}, "end": {"line": 63, "column": 82}} + ], + "line": 63 + }, + "10": { + "loc": {"start": {"line": 64, "column": 9}, "end": {"line": 64, "column": 96}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 64, "column": 9}, "end": {"line": 64, "column": 21}}, + {"start": {"line": 64, "column": 25}, "end": {"line": 64, "column": 96}} + ], + "line": 64 + }, + "11": { + "loc": {"start": {"line": 65, "column": 9}, "end": {"line": 71, "column": 9}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 65, "column": 9}, "end": {"line": 65, "column": 22}}, + {"start": {"line": 66, "column": 10}, "end": {"line": 70, "column": 35}} + ], + "line": 65 + }, + "12": { + "loc": {"start": {"line": 74, "column": 7}, "end": {"line": 98, "column": 7}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 74, "column": 8}, "end": {"line": 74, "column": 21}}, + {"start": {"line": 74, "column": 25}, "end": {"line": 74, "column": 40}}, + {"start": {"line": 75, "column": 8}, "end": {"line": 97, "column": 27}} + ], + "line": 74 + }, + "13": { + "loc": {"start": {"line": 76, "column": 11}, "end": {"line": 88, "column": 11}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 76, "column": 11}, "end": {"line": 76, "column": 26}}, + {"start": {"line": 77, "column": 12}, "end": {"line": 87, "column": 14}} + ], + "line": 76 + }, + "14": { + "loc": {"start": {"line": 83, "column": 23}, "end": {"line": 83, "column": 57}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 83, "column": 39}, "end": {"line": 83, "column": 48}}, + {"start": {"line": 83, "column": 51}, "end": {"line": 83, "column": 57}} + ], + "line": 83 + }, + "15": { + "loc": {"start": {"line": 89, "column": 11}, "end": {"line": 96, "column": 11}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 89, "column": 11}, "end": {"line": 89, "column": 24}}, + {"start": {"line": 90, "column": 12}, "end": {"line": 95, "column": 14}} + ], + "line": 89 + }, + "16": { + "loc": {"start": {"line": 92, "column": 56}, "end": {"line": 92, "column": 92}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 92, "column": 74}, "end": {"line": 92, "column": 83}}, + {"start": {"line": 92, "column": 86}, "end": {"line": 92, "column": 92}} + ], + "line": 92 + }, + "17": { + "loc": {"start": {"line": 104, "column": 2}, "end": {"line": 111, "column": 3}}, + "type": "switch", + "locations": [ + {"start": {"line": 105, "column": 4}, "end": {"line": 106, "column": 35}}, + {"start": {"line": 107, "column": 4}, "end": {"line": 108, "column": 41}}, + {"start": {"line": 109, "column": 4}, "end": {"line": 110, "column": 22}} + ], + "line": 104 + }, + "18": { + "loc": {"start": {"line": 115, "column": 2}, "end": {"line": 122, "column": 3}}, + "type": "switch", + "locations": [ + {"start": {"line": 116, "column": 4}, "end": {"line": 117, "column": 34}}, + {"start": {"line": 118, "column": 4}, "end": {"line": 119, "column": 33}}, + {"start": {"line": 120, "column": 4}, "end": {"line": 121, "column": 22}} + ], + "line": 115 + } + }, + "s": {"0": 1, "1": 0, "2": 0, "3": 1, "4": 0, "5": 0, "6": 0, "7": 0, "8": 1, "9": 0, "10": 0, "11": 0, "12": 0}, + "f": {"0": 0, "1": 0, "2": 0}, + "b": { + "0": [0], + "1": [0, 0], + "2": [0, 0], + "3": [0, 0], + "4": [0, 0], + "5": [0, 0], + "6": [0, 0], + "7": [0, 0], + "8": [0, 0], + "9": [0, 0], + "10": [0, 0], + "11": [0, 0], + "12": [0, 0, 0], + "13": [0, 0], + "14": [0, 0], + "15": [0, 0], + "16": [0, 0], + "17": [0, 0, 0], + "18": [0, 0, 0] + }, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "628baaf66a6321104549c01a4e45bbf08e394a46" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\messageBoxes\\toasts\\SSIToast\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\messageBoxes\\toasts\\SSIToast\\index.tsx", + "statementMap": { + "0": {"start": {"line": 19, "column": 17}, "end": {"line": 28, "column": 1}}, + "1": {"start": {"line": 20, "column": 2}, "end": {"line": 27, "column": 3}}, + "2": {"start": {"line": 22, "column": 6}, "end": {"line": 22, "column": 35}}, + "3": {"start": {"line": 24, "column": 6}, "end": {"line": 24, "column": 41}}, + "4": {"start": {"line": 26, "column": 6}, "end": {"line": 26, "column": 22}}, + "5": {"start": {"line": 30, "column": 29}, "end": {"line": 47, "column": 1}}, + "6": {"start": {"line": 31, "column": 51}, "end": {"line": 31, "column": 56}}, + "7": {"start": {"line": 33, "column": 2}, "end": {"line": 46, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 19, "column": 17}, "end": {"line": 19, "column": 18}}, + "loc": {"start": {"line": 19, "column": 42}, "end": {"line": 28, "column": 1}}, + "line": 19 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 30, "column": 29}, "end": {"line": 30, "column": 30}}, + "loc": {"start": {"line": 30, "column": 61}, "end": {"line": 47, "column": 1}}, + "line": 30 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 20, "column": 2}, "end": {"line": 27, "column": 3}}, + "type": "switch", + "locations": [ + {"start": {"line": 21, "column": 4}, "end": {"line": 22, "column": 35}}, + {"start": {"line": 23, "column": 4}, "end": {"line": 24, "column": 41}}, + {"start": {"line": 25, "column": 4}, "end": {"line": 26, "column": 22}} + ], + "line": 20 + }, + "1": { + "loc": {"start": {"line": 31, "column": 31}, "end": {"line": 31, "column": 47}}, + "type": "default-arg", + "locations": [{"start": {"line": 31, "column": 43}, "end": {"line": 31, "column": 47}}], + "line": 31 + }, + "2": { + "loc": {"start": {"line": 35, "column": 7}, "end": {"line": 40, "column": 7}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 35, "column": 7}, "end": {"line": 35, "column": 12}}, + {"start": {"line": 36, "column": 8}, "end": {"line": 39, "column": 25}} + ], + "line": 35 + }, + "3": { + "loc": {"start": {"line": 37, "column": 11}, "end": {"line": 37, "column": 83}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 37, "column": 11}, "end": {"line": 37, "column": 20}}, + {"start": {"line": 37, "column": 24}, "end": {"line": 37, "column": 83}} + ], + "line": 37 + }, + "4": { + "loc": {"start": {"line": 42, "column": 9}, "end": {"line": 42, "column": 91}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 42, "column": 9}, "end": {"line": 42, "column": 15}}, + {"start": {"line": 42, "column": 19}, "end": {"line": 42, "column": 28}}, + {"start": {"line": 42, "column": 32}, "end": {"line": 42, "column": 91}} + ], + "line": 42 + }, + "5": { + "loc": {"start": {"line": 43, "column": 9}, "end": {"line": 43, "column": 116}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 43, "column": 9}, "end": {"line": 43, "column": 16}}, + {"start": {"line": 43, "column": 20}, "end": {"line": 43, "column": 116}} + ], + "line": 43 + }, + "6": { + "loc": {"start": {"line": 43, "column": 55}, "end": {"line": 43, "column": 87}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 43, "column": 67}, "end": {"line": 43, "column": 76}}, + {"start": {"line": 43, "column": 79}, "end": {"line": 43, "column": 87}} + ], + "line": 43 + } + }, + "s": {"0": 1, "1": 0, "2": 0, "3": 0, "4": 0, "5": 1, "6": 0, "7": 0}, + "f": {"0": 0, "1": 0}, + "b": {"0": [0, 0, 0], "1": [0], "2": [0, 0], "3": [0, 0], "4": [0, 0, 0], "5": [0, 0], "6": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "8d520454e41d4d6731ac767f3c306bac98925da6" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\pinCodes\\SSIPinCode\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\pinCodes\\SSIPinCode\\index.tsx", + "statementMap": { + "0": {"start": {"line": 15, "column": 21}, "end": {"line": 15, "column": 36}}, + "1": {"start": {"line": 41, "column": 18}, "end": {"line": 51, "column": 3}}, + "2": {"start": {"line": 53, "column": 21}, "end": {"line": 73, "column": 3}}, + "3": {"start": {"line": 54, "column": 50}, "end": {"line": 54, "column": 60}}, + "4": {"start": {"line": 56, "column": 19}, "end": {"line": 56, "column": 41}}, + "5": {"start": {"line": 57, "column": 26}, "end": {"line": 57, "column": 29}}, + "6": {"start": {"line": 58, "column": 31}, "end": {"line": 58, "column": 34}}, + "7": {"start": {"line": 60, "column": 4}, "end": {"line": 60, "column": 146}}, + "8": {"start": {"line": 60, "column": 44}, "end": {"line": 60, "column": 135}}, + "9": {"start": {"line": 62, "column": 4}, "end": {"line": 72, "column": 7}}, + "10": {"start": {"line": 67, "column": 6}, "end": {"line": 71, "column": 17}}, + "11": {"start": {"line": 75, "column": 11}, "end": {"line": 81, "column": 3}}, + "12": {"start": {"line": 76, "column": 29}, "end": {"line": 76, "column": 39}}, + "13": {"start": {"line": 78, "column": 4}, "end": {"line": 80, "column": 40}}, + "14": {"start": {"line": 79, "column": 18}, "end": {"line": 79, "column": 43}}, + "15": {"start": {"line": 83, "column": 25}, "end": {"line": 104, "column": 3}}, + "16": {"start": {"line": 84, "column": 35}, "end": {"line": 84, "column": 45}}, + "17": {"start": {"line": 85, "column": 32}, "end": {"line": 85, "column": 42}}, + "18": {"start": {"line": 86, "column": 4}, "end": {"line": 90, "column": 5}}, + "19": {"start": {"line": 87, "column": 6}, "end": {"line": 87, "column": 55}}, + "20": {"start": {"line": 88, "column": 6}, "end": {"line": 88, "column": 30}}, + "21": {"start": {"line": 89, "column": 6}, "end": {"line": 89, "column": 13}}, + "22": {"start": {"line": 92, "column": 20}, "end": {"line": 92, "column": 29}}, + "23": {"start": {"line": 93, "column": 4}, "end": {"line": 103, "column": 5}}, + "24": {"start": {"line": 94, "column": 6}, "end": {"line": 99, "column": 9}}, + "25": {"start": {"line": 95, "column": 8}, "end": {"line": 95, "column": 43}}, + "26": {"start": {"line": 96, "column": 8}, "end": {"line": 98, "column": 9}}, + "27": {"start": {"line": 97, "column": 10}, "end": {"line": 97, "column": 33}}, + "28": {"start": {"line": 101, "column": 6}, "end": {"line": 101, "column": 30}}, + "29": {"start": {"line": 102, "column": 6}, "end": {"line": 102, "column": 71}}, + "30": {"start": {"line": 106, "column": 18}, "end": {"line": 113, "column": 3}}, + "31": {"start": {"line": 107, "column": 23}, "end": {"line": 107, "column": 33}}, + "32": {"start": {"line": 109, "column": 4}, "end": {"line": 112, "column": 5}}, + "33": {"start": {"line": 110, "column": 6}, "end": {"line": 110, "column": 22}}, + "34": {"start": {"line": 111, "column": 6}, "end": {"line": 111, "column": 23}}, + "35": {"start": {"line": 115, "column": 17}, "end": {"line": 122, "column": 3}}, + "36": {"start": {"line": 116, "column": 23}, "end": {"line": 116, "column": 33}}, + "37": {"start": {"line": 118, "column": 4}, "end": {"line": 121, "column": 5}}, + "38": {"start": {"line": 119, "column": 6}, "end": {"line": 119, "column": 23}}, + "39": {"start": {"line": 120, "column": 6}, "end": {"line": 120, "column": 22}}, + "40": {"start": {"line": 124, "column": 20}, "end": {"line": 154, "column": 3}}, + "41": {"start": {"line": 125, "column": 26}, "end": {"line": 125, "column": 36}}, + "42": {"start": {"line": 126, "column": 4}, "end": {"line": 153, "column": 5}}, + "43": {"start": {"line": 127, "column": 6}, "end": {"line": 152, "column": 7}}, + "44": {"start": {"line": 129, "column": 10}, "end": {"line": 133, "column": 11}}, + "45": {"start": {"line": 130, "column": 12}, "end": {"line": 132, "column": 15}}, + "46": {"start": {"line": 134, "column": 10}, "end": {"line": 134, "column": 17}}, + "47": {"start": {"line": 136, "column": 10}, "end": {"line": 138, "column": 11}}, + "48": {"start": {"line": 137, "column": 12}, "end": {"line": 137, "column": 19}}, + "49": {"start": {"line": 140, "column": 24}, "end": {"line": 140, "column": 39}}, + "50": {"start": {"line": 142, "column": 10}, "end": {"line": 146, "column": 13}}, + "51": {"start": {"line": 148, "column": 10}, "end": {"line": 150, "column": 11}}, + "52": {"start": {"line": 149, "column": 12}, "end": {"line": 149, "column": 31}}, + "53": {"start": {"line": 156, "column": 20}, "end": {"line": 165, "column": 3}}, + "54": {"start": {"line": 157, "column": 21}, "end": {"line": 157, "column": 31}}, + "55": {"start": {"line": 159, "column": 4}, "end": {"line": 164, "column": 5}}, + "56": {"start": {"line": 160, "column": 6}, "end": {"line": 160, "column": 42}}, + "57": {"start": {"line": 162, "column": 6}, "end": {"line": 162, "column": 30}}, + "58": {"start": {"line": 163, "column": 6}, "end": {"line": 163, "column": 27}}, + "59": {"start": {"line": 167, "column": 10}, "end": {"line": 169, "column": 3}}, + "60": {"start": {"line": 168, "column": 4}, "end": {"line": 168, "column": 37}}, + "61": {"start": {"line": 172, "column": 66}, "end": {"line": 172, "column": 76}}, + "62": {"start": {"line": 173, "column": 112}, "end": {"line": 173, "column": 122}}, + "63": {"start": {"line": 175, "column": 37}, "end": {"line": 180, "column": 5}}, + "64": {"start": {"line": 182, "column": 21}, "end": {"line": 182, "column": 23}}, + "65": {"start": {"line": 183, "column": 4}, "end": {"line": 193, "column": 5}}, + "66": {"start": {"line": 183, "column": 17}, "end": {"line": 183, "column": 18}}, + "67": {"start": {"line": 184, "column": 6}, "end": {"line": 192, "column": 8}}, + "68": {"start": {"line": 196, "column": 4}, "end": {"line": 219, "column": 6}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 53, "column": 21}, "end": {"line": 53, "column": 22}}, + "loc": {"start": {"line": 53, "column": 33}, "end": {"line": 73, "column": 3}}, + "line": 53 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 60, "column": 33}, "end": {"line": 60, "column": 34}}, + "loc": {"start": {"line": 60, "column": 44}, "end": {"line": 60, "column": 135}}, + "line": 60 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 66, "column": 13}, "end": {"line": 66, "column": 14}}, + "loc": {"start": {"line": 66, "column": 19}, "end": {"line": 72, "column": 5}}, + "line": 66 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 75, "column": 11}, "end": {"line": 75, "column": 12}}, + "loc": {"start": {"line": 75, "column": 36}, "end": {"line": 81, "column": 3}}, + "line": 75 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 79, "column": 12}, "end": {"line": 79, "column": 13}}, + "loc": {"start": {"line": 79, "column": 18}, "end": {"line": 79, "column": 43}}, + "line": 79 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 83, "column": 25}, "end": {"line": 83, "column": 26}}, + "loc": {"start": {"line": 83, "column": 52}, "end": {"line": 104, "column": 3}}, + "line": 83 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 94, "column": 31}, "end": {"line": 94, "column": 32}}, + "loc": {"start": {"line": 94, "column": 37}, "end": {"line": 99, "column": 7}}, + "line": 94 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 106, "column": 18}, "end": {"line": 106, "column": 19}}, + "loc": {"start": {"line": 106, "column": 30}, "end": {"line": 113, "column": 3}}, + "line": 106 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 115, "column": 17}, "end": {"line": 115, "column": 18}}, + "loc": {"start": {"line": 115, "column": 44}, "end": {"line": 122, "column": 3}}, + "line": 115 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 124, "column": 20}, "end": {"line": 124, "column": 21}}, + "loc": {"start": {"line": 124, "column": 97}, "end": {"line": 154, "column": 3}}, + "line": 124 + }, + "10": { + "name": "(anonymous_10)", + "decl": {"start": {"line": 156, "column": 20}, "end": {"line": 156, "column": 21}}, + "loc": {"start": {"line": 156, "column": 83}, "end": {"line": 165, "column": 3}}, + "line": 156 + }, + "11": { + "name": "(anonymous_11)", + "decl": {"start": {"line": 167, "column": 10}, "end": {"line": 167, "column": 11}}, + "loc": {"start": {"line": 167, "column": 60}, "end": {"line": 169, "column": 3}}, + "line": 167 + }, + "12": { + "name": "(anonymous_12)", + "decl": {"start": {"line": 171, "column": 2}, "end": {"line": 171, "column": 3}}, + "loc": {"start": {"line": 171, "column": 11}, "end": {"line": 220, "column": 3}}, + "line": 171 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 43, "column": 12}, "end": {"line": 43, "column": 34}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 43, "column": 12}, "end": {"line": 43, "column": 29}}, + {"start": {"line": 43, "column": 33}, "end": {"line": 43, "column": 34}} + ], + "line": 43 + }, + "1": { + "loc": {"start": {"line": 47, "column": 16}, "end": {"line": 47, "column": 45}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 47, "column": 16}, "end": {"line": 47, "column": 37}}, + {"start": {"line": 47, "column": 41}, "end": {"line": 47, "column": 45}} + ], + "line": 47 + }, + "2": { + "loc": {"start": {"line": 86, "column": 4}, "end": {"line": 90, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 86, "column": 4}, "end": {"line": 90, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 86 + }, + "3": { + "loc": {"start": {"line": 93, "column": 4}, "end": {"line": 103, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 93, "column": 4}, "end": {"line": 103, "column": 5}}, + {"start": {"line": 100, "column": 11}, "end": {"line": 103, "column": 5}} + ], + "line": 93 + }, + "4": { + "loc": {"start": {"line": 96, "column": 8}, "end": {"line": 98, "column": 9}}, + "type": "if", + "locations": [ + {"start": {"line": 96, "column": 8}, "end": {"line": 98, "column": 9}}, + {"start": {}, "end": {}} + ], + "line": 96 + }, + "5": { + "loc": {"start": {"line": 109, "column": 4}, "end": {"line": 112, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 109, "column": 4}, "end": {"line": 112, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 109 + }, + "6": { + "loc": {"start": {"line": 118, "column": 4}, "end": {"line": 121, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 118, "column": 4}, "end": {"line": 121, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 118 + }, + "7": { + "loc": {"start": {"line": 126, "column": 4}, "end": {"line": 153, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 126, "column": 4}, "end": {"line": 153, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 126 + }, + "8": { + "loc": {"start": {"line": 127, "column": 6}, "end": {"line": 152, "column": 7}}, + "type": "switch", + "locations": [ + {"start": {"line": 128, "column": 8}, "end": {"line": 134, "column": 17}}, + {"start": {"line": 135, "column": 8}, "end": {"line": 151, "column": 9}} + ], + "line": 127 + }, + "9": { + "loc": {"start": {"line": 129, "column": 10}, "end": {"line": 133, "column": 11}}, + "type": "if", + "locations": [ + {"start": {"line": 129, "column": 10}, "end": {"line": 133, "column": 11}}, + {"start": {}, "end": {}} + ], + "line": 129 + }, + "10": { + "loc": {"start": {"line": 136, "column": 10}, "end": {"line": 138, "column": 11}}, + "type": "if", + "locations": [ + {"start": {"line": 136, "column": 10}, "end": {"line": 138, "column": 11}}, + {"start": {}, "end": {}} + ], + "line": 136 + }, + "11": { + "loc": {"start": {"line": 148, "column": 10}, "end": {"line": 150, "column": 11}}, + "type": "if", + "locations": [ + {"start": {"line": 148, "column": 10}, "end": {"line": 150, "column": 11}}, + {"start": {}, "end": {}} + ], + "line": 148 + }, + "12": { + "loc": {"start": {"line": 159, "column": 4}, "end": {"line": 164, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 159, "column": 4}, "end": {"line": 164, "column": 5}}, + {"start": {"line": 161, "column": 11}, "end": {"line": 164, "column": 5}} + ], + "line": 159 + }, + "13": { + "loc": {"start": {"line": 185, "column": 50}, "end": {"line": 185, "column": 75}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 185, "column": 69}, "end": {"line": 185, "column": 70}}, + {"start": {"line": 185, "column": 73}, "end": {"line": 185, "column": 75}} + ], + "line": 185 + }, + "14": { + "loc": {"start": {"line": 187, "column": 19}, "end": {"line": 187, "column": 115}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 187, "column": 33}, "end": {"line": 187, "column": 98}}, + {"start": {"line": 187, "column": 102}, "end": {"line": 187, "column": 115}} + ], + "line": 187 + }, + "15": { + "loc": {"start": {"line": 187, "column": 33}, "end": {"line": 187, "column": 98}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 187, "column": 56}, "end": {"line": 187, "column": 69}}, + {"start": {"line": 187, "column": 72}, "end": {"line": 187, "column": 98}} + ], + "line": 187 + }, + "16": { + "loc": {"start": {"line": 187, "column": 72}, "end": {"line": 187, "column": 98}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 187, "column": 90}, "end": {"line": 187, "column": 92}}, + {"start": {"line": 187, "column": 95}, "end": {"line": 187, "column": 98}} + ], + "line": 187 + }, + "17": { + "loc": {"start": {"line": 200, "column": 11}, "end": {"line": 200, "column": 98}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 200, "column": 11}, "end": {"line": 200, "column": 23}}, + {"start": {"line": 200, "column": 27}, "end": {"line": 200, "column": 43}}, + {"start": {"line": 200, "column": 47}, "end": {"line": 200, "column": 98}} + ], + "line": 200 + }, + "18": { + "loc": {"start": {"line": 201, "column": 11}, "end": {"line": 201, "column": 147}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 201, "column": 11}, "end": {"line": 201, "column": 21}}, + {"start": {"line": 201, "column": 25}, "end": {"line": 201, "column": 34}}, + {"start": {"line": 201, "column": 38}, "end": {"line": 201, "column": 147}} + ], + "line": 201 + } + }, + "s": { + "0": 1, + "1": 9, + "2": 9, + "3": 1, + "4": 1, + "5": 1, + "6": 1, + "7": 1, + "8": 5, + "9": 1, + "10": 1, + "11": 9, + "12": 9, + "13": 9, + "14": 8, + "15": 9, + "16": 1, + "17": 1, + "18": 1, + "19": 1, + "20": 1, + "21": 1, + "22": 0, + "23": 0, + "24": 0, + "25": 0, + "26": 0, + "27": 0, + "28": 0, + "29": 0, + "30": 9, + "31": 0, + "32": 0, + "33": 0, + "34": 0, + "35": 9, + "36": 0, + "37": 0, + "38": 0, + "39": 0, + "40": 9, + "41": 0, + "42": 0, + "43": 0, + "44": 0, + "45": 0, + "46": 0, + "47": 0, + "48": 0, + "49": 0, + "50": 0, + "51": 0, + "52": 0, + "53": 9, + "54": 9, + "55": 9, + "56": 9, + "57": 0, + "58": 0, + "59": 9, + "60": 18, + "61": 19, + "62": 19, + "63": 19, + "64": 19, + "65": 19, + "66": 19, + "67": 114, + "68": 19 + }, + "f": {"0": 1, "1": 5, "2": 1, "3": 9, "4": 8, "5": 1, "6": 0, "7": 0, "8": 0, "9": 0, "10": 9, "11": 18, "12": 19}, + "b": { + "0": [9, 0], + "1": [9, 9], + "2": [1, 0], + "3": [0, 0], + "4": [0, 0], + "5": [0, 0], + "6": [0, 0], + "7": [0, 0], + "8": [0, 0], + "9": [0, 0], + "10": [0, 0], + "11": [0, 0], + "12": [9, 0], + "13": [19, 95], + "14": [114, 0], + "15": [0, 114], + "16": [114, 0], + "17": [19, 19, 1], + "18": [19, 0, 0] + }, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "7ff0d6a9b1deaee62267a5311cc3ccf447f963df" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\pinCodes\\SSIPinCodeSegment\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\pinCodes\\SSIPinCodeSegment\\index.tsx", + "statementMap": { + "0": {"start": {"line": 18, "column": 38}, "end": {"line": 29, "column": 1}}, + "1": {"start": {"line": 19, "column": 23}, "end": {"line": 19, "column": 94}}, + "2": {"start": {"line": 20, "column": 2}, "end": {"line": 28, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 18, "column": 38}, "end": {"line": 18, "column": 39}}, + "loc": {"start": {"line": 18, "column": 70}, "end": {"line": 29, "column": 1}}, + "line": 18 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 19, "column": 23}, "end": {"line": 19, "column": 94}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 19, "column": 37}, "end": {"line": 19, "column": 48}}, + {"start": {"line": 19, "column": 51}, "end": {"line": 19, "column": 94}} + ], + "line": 19 + }, + "1": { + "loc": {"start": {"line": 25, "column": 7}, "end": {"line": 25, "column": 53}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 25, "column": 7}, "end": {"line": 25, "column": 22}}, + {"start": {"line": 25, "column": 26}, "end": {"line": 25, "column": 53}} + ], + "line": 25 + }, + "2": { + "loc": {"start": {"line": 26, "column": 7}, "end": {"line": 26, "column": 74}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 26, "column": 7}, "end": {"line": 26, "column": 23}}, + {"start": {"line": 26, "column": 27}, "end": {"line": 26, "column": 74}} + ], + "line": 26 + } + }, + "s": {"0": 1, "1": 114, "2": 114}, + "f": {"0": 114}, + "b": {"0": [114, 0], "1": [114, 19], "2": [114, 95]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "8ffadd391b1ce06b92c3104d2ff9123193280baf" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\qrCodes\\SSIQRCustomMarker\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\qrCodes\\SSIQRCustomMarker\\index.tsx", + "statementMap": { + "0": {"start": {"line": 19, "column": 38}, "end": {"line": 34, "column": 1}}, + "1": {"start": {"line": 20, "column": 2}, "end": {"line": 33, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 19, "column": 38}, "end": {"line": 19, "column": 39}}, + "loc": {"start": {"line": 19, "column": 70}, "end": {"line": 34, "column": 1}}, + "line": 19 + } + }, + "branchMap": {}, + "s": {"0": 1, "1": 0}, + "f": {"0": 0}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "d7a697c94f2c0973d47a4c678be5768b23bac761" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSIActivityView\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSIActivityView\\index.tsx", + "statementMap": { + "0": {"start": {"line": 10, "column": 36}, "end": {"line": 12, "column": 1}}, + "1": {"start": {"line": 11, "column": 2}, "end": {"line": 11, "column": 65}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 10, "column": 36}, "end": {"line": 10, "column": 37}}, + "loc": {"start": {"line": 10, "column": 68}, "end": {"line": 12, "column": 1}}, + "line": 10 + } + }, + "branchMap": {}, + "s": {"0": 1, "1": 0}, + "f": {"0": 0}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "03145f41ba097704212d9a330531e1d0cf12f3e3" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSIContactViewItem\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSIContactViewItem\\index.tsx", + "statementMap": { + "0": {"start": {"line": 22, "column": 38}, "end": {"line": 40, "column": 1}}, + "1": {"start": {"line": 23, "column": 29}, "end": {"line": 23, "column": 34}}, + "2": {"start": {"line": 25, "column": 2}, "end": {"line": 39, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 22, "column": 38}, "end": {"line": 22, "column": 39}}, + "loc": {"start": {"line": 22, "column": 69}, "end": {"line": 40, "column": 1}}, + "line": 22 + } + }, + "branchMap": {}, + "s": {"0": 1, "1": 0, "2": 0}, + "f": {"0": 0}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "e6987c43fcd2549d956115b4104d455d418096f0" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSICredentialDetailsView\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSICredentialDetailsView\\index.tsx", + "statementMap": { + "0": {"start": {"line": 24, "column": 45}, "end": {"line": 57, "column": 1}}, + "1": {"start": {"line": 25, "column": 21}, "end": {"line": 31, "column": 3}}, + "2": {"start": {"line": 26, "column": 4}, "end": {"line": 30, "column": 5}}, + "3": {"start": {"line": 27, "column": 6}, "end": {"line": 27, "column": 75}}, + "4": {"start": {"line": 29, "column": 6}, "end": {"line": 29, "column": 74}}, + "5": {"start": {"line": 33, "column": 23}, "end": {"line": 42, "column": 3}}, + "6": {"start": {"line": 34, "column": 4}, "end": {"line": 41, "column": 22}}, + "7": {"start": {"line": 44, "column": 2}, "end": {"line": 56, "column": 4}}, + "8": {"start": {"line": 50, "column": 55}, "end": {"line": 50, "column": 62}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 24, "column": 45}, "end": {"line": 24, "column": 46}}, + "loc": {"start": {"line": 24, "column": 77}, "end": {"line": 57, "column": 1}}, + "line": 24 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 25, "column": 21}, "end": {"line": 25, "column": 22}}, + "loc": {"start": {"line": 25, "column": 78}, "end": {"line": 31, "column": 3}}, + "line": 25 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 33, "column": 23}, "end": {"line": 33, "column": 24}}, + "loc": {"start": {"line": 34, "column": 4}, "end": {"line": 41, "column": 22}}, + "line": 34 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 50, "column": 22}, "end": {"line": 50, "column": 23}}, + "loc": {"start": {"line": 50, "column": 55}, "end": {"line": 50, "column": 62}}, + "line": 50 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 26, "column": 4}, "end": {"line": 30, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 26, "column": 4}, "end": {"line": 30, "column": 5}}, + {"start": {"line": 28, "column": 11}, "end": {"line": 30, "column": 5}} + ], + "line": 26 + }, + "1": { + "loc": {"start": {"line": 35, "column": 7}, "end": {"line": 40, "column": 7}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 35, "column": 7}, "end": {"line": 35, "column": 19}}, + {"start": {"line": 36, "column": 8}, "end": {"line": 39, "column": 11}} + ], + "line": 35 + } + }, + "s": {"0": 1, "1": 4, "2": 12, "3": 0, "4": 12, "5": 4, "6": 4, "7": 4, "8": 12}, + "f": {"0": 4, "1": 12, "2": 4, "3": 12}, + "b": {"0": [0, 12], "1": [4, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "b9afb1fca759c337793a813f77efb1d89adc553e" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSICredentialRequiredViewItem\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSICredentialRequiredViewItem\\index.tsx", + "statementMap": { + "0": {"start": {"line": 36, "column": 49}, "end": {"line": 80, "column": 2}}, + "1": {"start": {"line": 37, "column": 84}, "end": {"line": 37, "column": 89}}, + "2": {"start": {"line": 39, "column": 2}, "end": {"line": 79, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 36, "column": 66}, "end": {"line": 36, "column": 67}}, + "loc": {"start": {"line": 36, "column": 126}, "end": {"line": 80, "column": 1}}, + "line": 36 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 40, "column": 49}, "end": {"line": 40, "column": 121}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 40, "column": 70}, "end": {"line": 40, "column": 95}}, + {"start": {"line": 40, "column": 98}, "end": {"line": 40, "column": 121}} + ], + "line": 40 + }, + "1": { + "loc": {"start": {"line": 42, "column": 9}, "end": {"line": 46, "column": 9}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 42, "column": 9}, "end": {"line": 42, "column": 19}}, + {"start": {"line": 43, "column": 10}, "end": {"line": 45, "column": 26}} + ], + "line": 42 + }, + "2": { + "loc": {"start": {"line": 47, "column": 38}, "end": {"line": 47, "column": 69}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 47, "column": 38}, "end": {"line": 47, "column": 49}}, + {"start": {"line": 47, "column": 53}, "end": {"line": 47, "column": 69}} + ], + "line": 47 + }, + "3": { + "loc": {"start": {"line": 50, "column": 13}, "end": {"line": 50, "column": 86}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 50, "column": 13}, "end": {"line": 50, "column": 20}}, + {"start": {"line": 50, "column": 24}, "end": {"line": 50, "column": 86}} + ], + "line": 50 + }, + "4": { + "loc": {"start": {"line": 51, "column": 13}, "end": {"line": 60, "column": 13}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 53, "column": 14}, "end": {"line": 53, "column": 130}}, + {"start": {"line": 54, "column": 16}, "end": {"line": 60, "column": 13}} + ], + "line": 51 + }, + "5": { + "loc": {"start": {"line": 54, "column": 16}, "end": {"line": 60, "column": 13}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 55, "column": 14}, "end": {"line": 55, "column": 113}}, + {"start": {"line": 57, "column": 14}, "end": {"line": 59, "column": 44}} + ], + "line": 54 + }, + "6": { + "loc": {"start": {"line": 54, "column": 16}, "end": {"line": 54, "column": 51}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 54, "column": 16}, "end": {"line": 54, "column": 25}}, + {"start": {"line": 54, "column": 29}, "end": {"line": 54, "column": 51}} + ], + "line": 54 + }, + "7": { + "loc": {"start": {"line": 63, "column": 42}, "end": {"line": 63, "column": 79}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 63, "column": 42}, "end": {"line": 63, "column": 52}}, + {"start": {"line": 63, "column": 56}, "end": {"line": 63, "column": 79}} + ], + "line": 63 + }, + "8": { + "loc": {"start": {"line": 64, "column": 15}, "end": {"line": 68, "column": 66}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 65, "column": 18}, "end": {"line": 65, "column": 90}}, + {"start": {"line": 66, "column": 18}, "end": {"line": 68, "column": 66}} + ], + "line": 64 + }, + "9": { + "loc": {"start": {"line": 66, "column": 18}, "end": {"line": 68, "column": 66}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 67, "column": 18}, "end": {"line": 67, "column": 92}}, + {"start": {"line": 68, "column": 18}, "end": {"line": 68, "column": 66}} + ], + "line": 66 + }, + "10": { + "loc": {"start": {"line": 73, "column": 7}, "end": {"line": 77, "column": 7}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 73, "column": 7}, "end": {"line": 73, "column": 16}}, + {"start": {"line": 73, "column": 20}, "end": {"line": 73, "column": 42}}, + {"start": {"line": 74, "column": 8}, "end": {"line": 76, "column": 33}} + ], + "line": 73 + } + }, + "s": {"0": 1, "1": 0, "2": 0}, + "f": {"0": 0}, + "b": { + "0": [0, 0], + "1": [0, 0], + "2": [0, 0], + "3": [0, 0], + "4": [0, 0], + "5": [0, 0], + "6": [0, 0], + "7": [0, 0], + "8": [0, 0], + "9": [0, 0], + "10": [0, 0, 0] + }, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "0fb0bf795d14c72015cea0930106b8896970bac7" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSICredentialSelectTypeViewItem\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSICredentialSelectTypeViewItem\\index.tsx", + "statementMap": { + "0": {"start": {"line": 23, "column": 51}, "end": {"line": 46, "column": 1}}, + "1": {"start": {"line": 24, "column": 59}, "end": {"line": 24, "column": 64}}, + "2": {"start": {"line": 26, "column": 2}, "end": {"line": 45, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 23, "column": 51}, "end": {"line": 23, "column": 52}}, + "loc": {"start": {"line": 23, "column": 82}, "end": {"line": 46, "column": 1}}, + "line": 23 + } + }, + "branchMap": {}, + "s": {"0": 1, "1": 0, "2": 0}, + "f": {"0": 0}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "eb4afe4a49bb99d0e916f237d2371c54f544ebfa" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSICredentialSelectViewItem\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSICredentialSelectViewItem\\index.tsx", + "statementMap": { + "0": {"start": {"line": 27, "column": 47}, "end": {"line": 57, "column": 1}}, + "1": {"start": {"line": 28, "column": 55}, "end": {"line": 28, "column": 60}}, + "2": {"start": {"line": 30, "column": 2}, "end": {"line": 56, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 27, "column": 47}, "end": {"line": 27, "column": 48}}, + "loc": {"start": {"line": 27, "column": 78}, "end": {"line": 57, "column": 1}}, + "line": 27 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 52, "column": 11}, "end": {"line": 52, "column": 60}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 52, "column": 11}, "end": {"line": 52, "column": 17}}, + {"start": {"line": 52, "column": 21}, "end": {"line": 52, "column": 60}} + ], + "line": 52 + } + }, + "s": {"0": 1, "1": 0, "2": 0}, + "f": {"0": 0}, + "b": {"0": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "0506653547bf59a45f3c9c89c2b33d6f92f2d59c" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSICredentialViewItem\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSICredentialViewItem\\index.tsx", + "statementMap": { + "0": {"start": {"line": 25, "column": 41}, "end": {"line": 50, "column": 1}}, + "1": {"start": {"line": 26, "column": 99}, "end": {"line": 26, "column": 104}}, + "2": {"start": {"line": 27, "column": 2}, "end": {"line": 49, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 25, "column": 41}, "end": {"line": 25, "column": 42}}, + "loc": {"start": {"line": 25, "column": 72}, "end": {"line": 50, "column": 1}}, + "line": 25 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 26, "column": 72}, "end": {"line": 26, "column": 88}}, + "type": "default-arg", + "locations": [{"start": {"line": 26, "column": 83}, "end": {"line": 26, "column": 88}}], + "line": 26 + }, + "1": { + "loc": {"start": {"line": 39, "column": 27}, "end": {"line": 39, "column": 101}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 39, "column": 38}, "end": {"line": 39, "column": 70}}, + {"start": {"line": 39, "column": 73}, "end": {"line": 39, "column": 101}} + ], + "line": 39 + }, + "2": { + "loc": {"start": {"line": 41, "column": 11}, "end": {"line": 45, "column": 69}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 42, "column": 14}, "end": {"line": 44, "column": 16}}, + {"start": {"line": 45, "column": 14}, "end": {"line": 45, "column": 69}} + ], + "line": 41 + }, + "3": { + "loc": {"start": {"line": 43, "column": 16}, "end": {"line": 43, "column": 100}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 43, "column": 27}, "end": {"line": 43, "column": 64}}, + {"start": {"line": 43, "column": 67}, "end": {"line": 43, "column": 100}} + ], + "line": 43 + } + }, + "s": {"0": 1, "1": 0, "2": 0}, + "f": {"0": 0}, + "b": {"0": [0], "1": [0, 0], "2": [0, 0], "3": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "90c297a31b75e147df2396fa782a1ed0296ee507" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSIIdentitiesView\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSIIdentitiesView\\index.tsx", + "statementMap": { + "0": {"start": {"line": 15, "column": 38}, "end": {"line": 49, "column": 1}}, + "1": {"start": {"line": 16, "column": 23}, "end": {"line": 16, "column": 28}}, + "2": {"start": {"line": 17, "column": 38}, "end": {"line": 17, "column": 59}}, + "3": {"start": {"line": 19, "column": 20}, "end": {"line": 21, "column": 3}}, + "4": {"start": {"line": 20, "column": 4}, "end": {"line": 20, "column": 25}}, + "5": {"start": {"line": 23, "column": 21}, "end": {"line": 32, "column": 3}}, + "6": {"start": {"line": 24, "column": 4}, "end": {"line": 31, "column": 6}}, + "7": {"start": {"line": 34, "column": 2}, "end": {"line": 48, "column": 4}}, + "8": {"start": {"line": 38, "column": 47}, "end": {"line": 38, "column": 58}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 15, "column": 38}, "end": {"line": 15, "column": 39}}, + "loc": {"start": {"line": 15, "column": 70}, "end": {"line": 49, "column": 1}}, + "line": 15 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 19, "column": 20}, "end": {"line": 19, "column": 21}}, + "loc": {"start": {"line": 19, "column": 47}, "end": {"line": 21, "column": 3}}, + "line": 19 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 23, "column": 21}, "end": {"line": 23, "column": 22}}, + "loc": {"start": {"line": 24, "column": 4}, "end": {"line": 31, "column": 6}}, + "line": 24 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 38, "column": 22}, "end": {"line": 38, "column": 23}}, + "loc": {"start": {"line": 38, "column": 47}, "end": {"line": 38, "column": 58}}, + "line": 38 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 26, "column": 25}, "end": {"line": 26, "column": 103}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 26, "column": 52}, "end": {"line": 26, "column": 77}}, + {"start": {"line": 26, "column": 80}, "end": {"line": 26, "column": 103}} + ], + "line": 26 + }, + "1": { + "loc": {"start": {"line": 27, "column": 12}, "end": {"line": 27, "column": 139}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 27, "column": 12}, "end": {"line": 27, "column": 52}}, + {"start": {"line": 27, "column": 56}, "end": {"line": 27, "column": 80}}, + {"start": {"line": 27, "column": 84}, "end": {"line": 27, "column": 139}} + ], + "line": 27 + } + }, + "s": {"0": 1, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0}, + "f": {"0": 0, "1": 0, "2": 0, "3": 0}, + "b": {"0": [0, 0], "1": [0, 0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "5eae1eb8f9b7827232d81784793d245945832769" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSIIdentityViewItem\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSIIdentityViewItem\\index.tsx", + "statementMap": { + "0": {"start": {"line": 18, "column": 40}, "end": {"line": 29, "column": 2}}, + "1": {"start": {"line": 19, "column": 31}, "end": {"line": 19, "column": 36}}, + "2": {"start": {"line": 21, "column": 2}, "end": {"line": 28, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 18, "column": 57}, "end": {"line": 18, "column": 58}}, + "loc": {"start": {"line": 18, "column": 117}, "end": {"line": 29, "column": 1}}, + "line": 18 + } + }, + "branchMap": {}, + "s": {"0": 1, "1": 0, "2": 0}, + "f": {"0": 0}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "948c96ee5864e312d648f4987421eb373c517fd5" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSISwipeRowViewItem\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSISwipeRowViewItem\\index.tsx", + "statementMap": { + "0": {"start": {"line": 19, "column": 40}, "end": {"line": 34, "column": 2}}, + "1": {"start": {"line": 20, "column": 60}, "end": {"line": 20, "column": 65}}, + "2": {"start": {"line": 22, "column": 2}, "end": {"line": 33, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 19, "column": 57}, "end": {"line": 19, "column": 58}}, + "loc": {"start": {"line": 19, "column": 117}, "end": {"line": 34, "column": 1}}, + "line": 19 + } + }, + "branchMap": {}, + "s": {"0": 1, "1": 0, "2": 0}, + "f": {"0": 0}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "1aace4a55338bb79b2c38c6a9c1f0e2c4fb09861" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSITabView\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSITabView\\index.tsx", + "statementMap": { + "0": {"start": {"line": 13, "column": 31}, "end": {"line": 31, "column": 1}}, + "1": {"start": {"line": 14, "column": 28}, "end": {"line": 14, "column": 45}}, + "2": {"start": {"line": 15, "column": 19}, "end": {"line": 15, "column": 47}}, + "3": {"start": {"line": 17, "column": 19}, "end": {"line": 17, "column": 118}}, + "4": {"start": {"line": 17, "column": 86}, "end": {"line": 17, "column": 112}}, + "5": {"start": {"line": 19, "column": 2}, "end": {"line": 30, "column": 4}}, + "6": {"start": {"line": 25, "column": 10}, "end": {"line": 25, "column": 121}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 13, "column": 31}, "end": {"line": 13, "column": 32}}, + "loc": {"start": {"line": 13, "column": 63}, "end": {"line": 31, "column": 1}}, + "line": 13 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 17, "column": 39}, "end": {"line": 17, "column": 40}}, + "loc": {"start": {"line": 17, "column": 86}, "end": {"line": 17, "column": 112}}, + "line": 17 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 24, "column": 22}, "end": {"line": 24, "column": 23}}, + "loc": {"start": {"line": 25, "column": 10}, "end": {"line": 25, "column": 121}}, + "line": 25 + } + }, + "branchMap": {}, + "s": {"0": 1, "1": 9, "2": 9, "3": 9, "4": 14, "5": 9, "6": 9}, + "f": {"0": 9, "1": 14, "2": 9}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "196d7da8bb1edaf7e76636dfd1bbf72ba14f1733" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSITabView\\SSITabViewHeader\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSITabView\\SSITabViewHeader\\index.tsx", + "statementMap": { + "0": {"start": {"line": 12, "column": 21}, "end": {"line": 12, "column": 36}}, + "1": {"start": {"line": 20, "column": 37}, "end": {"line": 54, "column": 1}}, + "2": {"start": {"line": 21, "column": 53}, "end": {"line": 21, "column": 58}}, + "3": {"start": {"line": 23, "column": 21}, "end": {"line": 23, "column": 91}}, + "4": {"start": {"line": 23, "column": 85}, "end": {"line": 23, "column": 90}}, + "5": {"start": {"line": 24, "column": 23}, "end": {"line": 24, "column": 40}}, + "6": {"start": {"line": 29, "column": 29}, "end": {"line": 29, "column": 39}}, + "7": {"start": {"line": 30, "column": 2}, "end": {"line": 30, "column": 53}}, + "8": {"start": {"line": 30, "column": 26}, "end": {"line": 30, "column": 53}}, + "9": {"start": {"line": 32, "column": 2}, "end": {"line": 53, "column": 4}}, + "10": {"start": {"line": 35, "column": 24}, "end": {"line": 38, "column": 10}}, + "11": {"start": {"line": 37, "column": 66}, "end": {"line": 37, "column": 87}}, + "12": {"start": {"line": 39, "column": 8}, "end": {"line": 50, "column": 10}}, + "13": {"start": {"line": 46, "column": 27}, "end": {"line": 46, "column": 43}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 20, "column": 37}, "end": {"line": 20, "column": 38}}, + "loc": {"start": {"line": 20, "column": 69}, "end": {"line": 54, "column": 1}}, + "line": 20 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 23, "column": 48}, "end": {"line": 23, "column": 49}}, + "loc": {"start": {"line": 23, "column": 85}, "end": {"line": 23, "column": 90}}, + "line": 23 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 34, "column": 34}, "end": {"line": 34, "column": 35}}, + "loc": {"start": {"line": 34, "column": 67}, "end": {"line": 51, "column": 7}}, + "line": 34 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 37, "column": 46}, "end": {"line": 37, "column": 47}}, + "loc": {"start": {"line": 37, "column": 66}, "end": {"line": 37, "column": 87}}, + "line": 37 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 46, "column": 21}, "end": {"line": 46, "column": 22}}, + "loc": {"start": {"line": 46, "column": 27}, "end": {"line": 46, "column": 43}}, + "line": 46 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 30, "column": 2}, "end": {"line": 30, "column": 53}}, + "type": "if", + "locations": [ + {"start": {"line": 30, "column": 2}, "end": {"line": 30, "column": 53}}, + {"start": {}, "end": {}} + ], + "line": 30 + }, + "1": { + "loc": {"start": {"line": 37, "column": 66}, "end": {"line": 37, "column": 87}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 37, "column": 80}, "end": {"line": 37, "column": 81}}, + {"start": {"line": 37, "column": 84}, "end": {"line": 37, "column": 87}} + ], + "line": 37 + }, + "2": { + "loc": {"start": {"line": 42, "column": 26}, "end": {"line": 42, "column": 61}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 42, "column": 47}, "end": {"line": 42, "column": 49}}, + {"start": {"line": 42, "column": 52}, "end": {"line": 42, "column": 61}} + ], + "line": 42 + }, + "3": { + "loc": {"start": {"line": 43, "column": 26}, "end": {"line": 43, "column": 65}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 43, "column": 45}, "end": {"line": 43, "column": 53}}, + {"start": {"line": 43, "column": 56}, "end": {"line": 43, "column": 65}} + ], + "line": 43 + }, + "4": { + "loc": {"start": {"line": 48, "column": 13}, "end": {"line": 48, "column": 89}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 48, "column": 63}, "end": {"line": 48, "column": 82}}, + {"start": {"line": 48, "column": 85}, "end": {"line": 48, "column": 89}} + ], + "line": 48 + }, + "5": { + "loc": {"start": {"line": 48, "column": 13}, "end": {"line": 48, "column": 60}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 48, "column": 13}, "end": {"line": 48, "column": 29}}, + {"start": {"line": 48, "column": 33}, "end": {"line": 48, "column": 60}} + ], + "line": 48 + } + }, + "s": {"0": 1, "1": 1, "2": 9, "3": 9, "4": 14, "5": 9, "6": 9, "7": 9, "8": 4, "9": 9, "10": 14, "11": 28, "12": 14, "13": 0}, + "f": {"0": 9, "1": 14, "2": 14, "3": 28, "4": 0}, + "b": {"0": [4, 5], "1": [14, 14], "2": [4, 10], "3": [10, 4], "4": [5, 9], "5": [14, 10]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "b14c0008fb6086be997ec4fc1c468da927cb6694" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSITermsOfServiceView\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSITermsOfServiceView\\index.tsx", + "statementMap": { + "0": {"start": {"line": 16, "column": 42}, "end": {"line": 38, "column": 1}}, + "1": {"start": {"line": 17, "column": 36}, "end": {"line": 17, "column": 41}}, + "2": {"start": {"line": 19, "column": 26}, "end": {"line": 21, "column": 3}}, + "3": {"start": {"line": 20, "column": 4}, "end": {"line": 20, "column": 106}}, + "4": {"start": {"line": 23, "column": 19}, "end": {"line": 29, "column": 3}}, + "5": {"start": {"line": 24, "column": 4}, "end": {"line": 28, "column": 5}}, + "6": {"start": {"line": 25, "column": 6}, "end": {"line": 27, "column": 7}}, + "7": {"start": {"line": 26, "column": 8}, "end": {"line": 26, "column": 31}}, + "8": {"start": {"line": 31, "column": 2}, "end": {"line": 37, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 16, "column": 42}, "end": {"line": 16, "column": 43}}, + "loc": {"start": {"line": 16, "column": 74}, "end": {"line": 38, "column": 1}}, + "line": 16 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 19, "column": 26}, "end": {"line": 19, "column": 27}}, + "loc": {"start": {"line": 19, "column": 107}, "end": {"line": 21, "column": 3}}, + "line": 19 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 23, "column": 19}, "end": {"line": 23, "column": 20}}, + "loc": {"start": {"line": 23, "column": 85}, "end": {"line": 29, "column": 3}}, + "line": 23 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 24, "column": 4}, "end": {"line": 28, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 24, "column": 4}, "end": {"line": 28, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 24 + }, + "1": { + "loc": {"start": {"line": 25, "column": 6}, "end": {"line": 27, "column": 7}}, + "type": "if", + "locations": [ + {"start": {"line": 25, "column": 6}, "end": {"line": 27, "column": 7}}, + {"start": {}, "end": {}} + ], + "line": 25 + } + }, + "s": {"0": 1, "1": 5, "2": 5, "3": 0, "4": 5, "5": 0, "6": 0, "7": 0, "8": 5}, + "f": {"0": 5, "1": 0, "2": 0}, + "b": {"0": [0, 0], "1": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "39a0fea23cd76e0769f640afaa1aec829c3d7c27" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSIWelcomeView\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\components\\views\\SSIWelcomeView\\index.tsx", + "statementMap": { + "0": {"start": {"line": 26, "column": 35}, "end": {"line": 51, "column": 1}}, + "1": {"start": {"line": 27, "column": 56}, "end": {"line": 27, "column": 61}}, + "2": {"start": {"line": 29, "column": 2}, "end": {"line": 50, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 26, "column": 35}, "end": {"line": 26, "column": 36}}, + "loc": {"start": {"line": 26, "column": 67}, "end": {"line": 51, "column": 1}}, + "line": 26 + } + }, + "branchMap": {}, + "s": {"0": 1, "1": 14, "2": 14}, + "f": {"0": 14}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "a696bea93ac3c59fcdfa0805f0b16f296230c040" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\contexts\\OnTouchContext.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\contexts\\OnTouchContext.ts", + "statementMap": {"0": {"start": {"line": 10, "column": 23}, "end": {"line": 17, "column": 2}}}, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 13, "column": 22}, "end": {"line": 13, "column": 23}}, + "loc": {"start": {"line": 13, "column": 28}, "end": {"line": 13, "column": 30}}, + "line": 13 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 16, "column": 19}, "end": {"line": 16, "column": 20}}, + "loc": {"start": {"line": 16, "column": 25}, "end": {"line": 16, "column": 27}}, + "line": 16 + } + }, + "branchMap": {}, + "s": {"0": 1}, + "f": {"0": 0, "1": 0}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "afea196fad603ea0023ab80de85960c2cea35919" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\handlers\\IntentHandler\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\handlers\\IntentHandler\\index.ts", + "statementMap": { + "0": {"start": {"line": 18, "column": 30}, "end": {"line": 18, "column": 62}}, + "1": {"start": {"line": 25, "column": 21}, "end": {"line": 25, "column": 26}}, + "2": {"start": {"line": 31, "column": 4}, "end": {"line": 31, "column": 25}}, + "3": {"start": {"line": 34, "column": 18}, "end": {"line": 51, "column": 3}}, + "4": {"start": {"line": 35, "column": 4}, "end": {"line": 35, "column": 38}}, + "5": {"start": {"line": 36, "column": 4}, "end": {"line": 50, "column": 5}}, + "6": {"start": {"line": 37, "column": 6}, "end": {"line": 37, "column": 49}}, + "7": {"start": {"line": 39, "column": 6}, "end": {"line": 39, "column": 27}}, + "8": {"start": {"line": 40, "column": 6}, "end": {"line": 48, "column": 7}}, + "9": {"start": {"line": 41, "column": 8}, "end": {"line": 41, "column": 51}}, + "10": {"start": {"line": 42, "column": 8}, "end": {"line": 42, "column": 47}}, + "11": {"start": {"line": 43, "column": 8}, "end": {"line": 43, "column": 46}}, + "12": {"start": {"line": 45, "column": 8}, "end": {"line": 45, "column": 58}}, + "13": {"start": {"line": 46, "column": 8}, "end": {"line": 46, "column": 43}}, + "14": {"start": {"line": 47, "column": 8}, "end": {"line": 47, "column": 30}}, + "15": {"start": {"line": 49, "column": 6}, "end": {"line": 49, "column": 37}}, + "16": {"start": {"line": 54, "column": 4}, "end": {"line": 56, "column": 5}}, + "17": {"start": {"line": 55, "column": 6}, "end": {"line": 55, "column": 51}}, + "18": {"start": {"line": 57, "column": 4}, "end": {"line": 57, "column": 34}}, + "19": {"start": {"line": 60, "column": 19}, "end": {"line": 71, "column": 3}}, + "20": {"start": {"line": 61, "column": 4}, "end": {"line": 61, "column": 26}}, + "21": {"start": {"line": 64, "column": 4}, "end": {"line": 64, "column": 33}}, + "22": {"start": {"line": 65, "column": 4}, "end": {"line": 70, "column": 5}}, + "23": {"start": {"line": 66, "column": 6}, "end": {"line": 66, "column": 35}}, + "24": {"start": {"line": 68, "column": 6}, "end": {"line": 68, "column": 57}}, + "25": {"start": {"line": 69, "column": 6}, "end": {"line": 69, "column": 41}}, + "26": {"start": {"line": 73, "column": 37}, "end": {"line": 84, "column": 3}}, + "27": {"start": {"line": 78, "column": 4}, "end": {"line": 80, "column": 5}}, + "28": {"start": {"line": 79, "column": 6}, "end": {"line": 79, "column": 84}}, + "29": {"start": {"line": 81, "column": 4}, "end": {"line": 83, "column": 5}}, + "30": {"start": {"line": 82, "column": 6}, "end": {"line": 82, "column": 84}}, + "31": {"start": {"line": 86, "column": 28}, "end": {"line": 89, "column": 3}}, + "32": {"start": {"line": 87, "column": 4}, "end": {"line": 87, "column": 36}}, + "33": {"start": {"line": 88, "column": 4}, "end": {"line": 88, "column": 33}}, + "34": {"start": {"line": 96, "column": 4}, "end": {"line": 96, "column": 40}}, + "35": {"start": {"line": 97, "column": 4}, "end": {"line": 97, "column": 38}}, + "36": {"start": {"line": 101, "column": 16}, "end": {"line": 101, "column": 45}}, + "37": {"start": {"line": 104, "column": 4}, "end": {"line": 107, "column": 5}}, + "38": {"start": {"line": 105, "column": 6}, "end": {"line": 105, "column": 36}}, + "39": {"start": {"line": 106, "column": 6}, "end": {"line": 106, "column": 13}}, + "40": {"start": {"line": 108, "column": 4}, "end": {"line": 108, "column": 39}}, + "41": {"start": {"line": 109, "column": 4}, "end": {"line": 109, "column": 27}}, + "42": {"start": {"line": 113, "column": 4}, "end": {"line": 121, "column": 7}}, + "43": {"start": {"line": 114, "column": 6}, "end": {"line": 117, "column": 7}}, + "44": {"start": {"line": 115, "column": 8}, "end": {"line": 115, "column": 47}}, + "45": {"start": {"line": 116, "column": 8}, "end": {"line": 116, "column": 15}}, + "46": {"start": {"line": 118, "column": 6}, "end": {"line": 118, "column": 77}}, + "47": {"start": {"line": 120, "column": 6}, "end": {"line": 120, "column": 38}}, + "48": {"start": {"line": 124, "column": 28}, "end": {"line": 132, "column": 3}}, + "49": {"start": {"line": 125, "column": 4}, "end": {"line": 130, "column": 5}}, + "50": {"start": {"line": 126, "column": 6}, "end": {"line": 126, "column": 54}}, + "51": {"start": {"line": 127, "column": 6}, "end": {"line": 127, "column": 35}}, + "52": {"start": {"line": 129, "column": 6}, "end": {"line": 129, "column": 76}}, + "53": {"start": {"line": 131, "column": 4}, "end": {"line": 131, "column": 46}}, + "54": {"start": {"line": 135, "column": 4}, "end": {"line": 139, "column": 5}}, + "55": {"start": {"line": 136, "column": 6}, "end": {"line": 136, "column": 31}}, + "56": {"start": {"line": 138, "column": 6}, "end": {"line": 138, "column": 149}}, + "57": {"start": {"line": 142, "column": 23}, "end": {"line": 145, "column": 3}}, + "58": {"start": {"line": 143, "column": 20}, "end": {"line": 143, "column": 38}}, + "59": {"start": {"line": 144, "column": 4}, "end": {"line": 144, "column": 19}}, + "60": {"start": {"line": 148, "column": 4}, "end": {"line": 148, "column": 63}}, + "61": {"start": {"line": 149, "column": 4}, "end": {"line": 149, "column": 28}}, + "62": {"start": {"line": 152, "column": 24}, "end": {"line": 161, "column": 3}}, + "63": {"start": {"line": 153, "column": 4}, "end": {"line": 153, "column": 51}}, + "64": {"start": {"line": 154, "column": 16}, "end": {"line": 154, "column": 32}}, + "65": {"start": {"line": 155, "column": 4}, "end": {"line": 155, "column": 33}}, + "66": {"start": {"line": 156, "column": 4}, "end": {"line": 160, "column": 5}}, + "67": {"start": {"line": 159, "column": 6}, "end": {"line": 159, "column": 62}}, + "68": {"start": {"line": 164, "column": 4}, "end": {"line": 166, "column": 5}}, + "69": {"start": {"line": 165, "column": 6}, "end": {"line": 165, "column": 13}}, + "70": {"start": {"line": 169, "column": 17}, "end": {"line": 169, "column": 73}}, + "71": {"start": {"line": 171, "column": 4}, "end": {"line": 216, "column": 95}}, + "72": {"start": {"line": 174, "column": 41}, "end": {"line": 174, "column": 99}}, + "73": {"start": {"line": 175, "column": 8}, "end": {"line": 178, "column": 9}}, + "74": {"start": {"line": 176, "column": 10}, "end": {"line": 176, "column": 116}}, + "75": {"start": {"line": 177, "column": 10}, "end": {"line": 177, "column": 17}}, + "76": {"start": {"line": 181, "column": 32}, "end": {"line": 181, "column": 124}}, + "77": {"start": {"line": 181, "column": 68}, "end": {"line": 181, "column": 124}}, + "78": {"start": {"line": 184, "column": 8}, "end": {"line": 214, "column": 11}}, + "79": {"start": {"line": 192, "column": 16}, "end": {"line": 204, "column": 106}}, + "80": {"start": {"line": 194, "column": 20}, "end": {"line": 196, "column": 22}}, + "81": {"start": {"line": 199, "column": 20}, "end": {"line": 202, "column": 22}}, + "82": {"start": {"line": 204, "column": 43}, "end": {"line": 204, "column": 105}}, + "83": {"start": {"line": 209, "column": 16}, "end": {"line": 211, "column": 18}}, + "84": {"start": {"line": 216, "column": 31}, "end": {"line": 216, "column": 93}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 28, "column": 2}, "end": {"line": 28, "column": 3}}, + "loc": {"start": {"line": 28, "column": 24}, "end": {"line": 28, "column": 26}}, + "line": 28 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 30, "column": 2}, "end": {"line": 30, "column": 3}}, + "loc": {"start": {"line": 30, "column": 30}, "end": {"line": 32, "column": 3}}, + "line": 30 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 34, "column": 18}, "end": {"line": 34, "column": 19}}, + "loc": {"start": {"line": 34, "column": 45}, "end": {"line": 51, "column": 3}}, + "line": 34 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 53, "column": 2}, "end": {"line": 53, "column": 3}}, + "loc": {"start": {"line": 53, "column": 45}, "end": {"line": 58, "column": 3}}, + "line": 53 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 60, "column": 19}, "end": {"line": 60, "column": 20}}, + "loc": {"start": {"line": 60, "column": 46}, "end": {"line": 71, "column": 3}}, + "line": 60 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 73, "column": 37}, "end": {"line": 73, "column": 38}}, + "loc": {"start": {"line": 73, "column": 64}, "end": {"line": 84, "column": 3}}, + "line": 73 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 86, "column": 28}, "end": {"line": 86, "column": 29}}, + "loc": {"start": {"line": 86, "column": 55}, "end": {"line": 89, "column": 3}}, + "line": 86 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 91, "column": 2}, "end": {"line": 91, "column": 3}}, + "loc": {"start": {"line": 91, "column": 59}, "end": {"line": 98, "column": 3}}, + "line": 91 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 100, "column": 2}, "end": {"line": 100, "column": 3}}, + "loc": {"start": {"line": 100, "column": 56}, "end": {"line": 110, "column": 3}}, + "line": 100 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 112, "column": 2}, "end": {"line": 112, "column": 3}}, + "loc": {"start": {"line": 112, "column": 54}, "end": {"line": 122, "column": 3}}, + "line": 112 + }, + "10": { + "name": "(anonymous_10)", + "decl": {"start": {"line": 113, "column": 28}, "end": {"line": 113, "column": 29}}, + "loc": {"start": {"line": 113, "column": 50}, "end": {"line": 121, "column": 5}}, + "line": 113 + }, + "11": { + "name": "(anonymous_11)", + "decl": {"start": {"line": 124, "column": 28}, "end": {"line": 124, "column": 29}}, + "loc": {"start": {"line": 124, "column": 75}, "end": {"line": 132, "column": 3}}, + "line": 124 + }, + "12": { + "name": "(anonymous_12)", + "decl": {"start": {"line": 134, "column": 2}, "end": {"line": 134, "column": 3}}, + "loc": {"start": {"line": 134, "column": 46}, "end": {"line": 140, "column": 3}}, + "line": 134 + }, + "13": { + "name": "(anonymous_13)", + "decl": {"start": {"line": 142, "column": 23}, "end": {"line": 142, "column": 24}}, + "loc": {"start": {"line": 142, "column": 38}, "end": {"line": 145, "column": 3}}, + "line": 142 + }, + "14": { + "name": "(anonymous_14)", + "decl": {"start": {"line": 147, "column": 2}, "end": {"line": 147, "column": 3}}, + "loc": {"start": {"line": 147, "column": 43}, "end": {"line": 150, "column": 3}}, + "line": 147 + }, + "15": { + "name": "(anonymous_15)", + "decl": {"start": {"line": 152, "column": 24}, "end": {"line": 152, "column": 25}}, + "loc": {"start": {"line": 152, "column": 51}, "end": {"line": 161, "column": 3}}, + "line": 152 + }, + "16": { + "name": "(anonymous_16)", + "decl": {"start": {"line": 163, "column": 2}, "end": {"line": 163, "column": 3}}, + "loc": {"start": {"line": 163, "column": 55}, "end": {"line": 217, "column": 3}}, + "line": 163 + }, + "17": { + "name": "(anonymous_17)", + "decl": {"start": {"line": 172, "column": 12}, "end": {"line": 172, "column": 13}}, + "loc": {"start": {"line": 172, "column": 36}, "end": {"line": 215, "column": 7}}, + "line": 172 + }, + "18": { + "name": "(anonymous_18)", + "decl": {"start": {"line": 181, "column": 32}, "end": {"line": 181, "column": 33}}, + "loc": {"start": {"line": 181, "column": 68}, "end": {"line": 181, "column": 124}}, + "line": 181 + }, + "19": { + "name": "(anonymous_19)", + "decl": {"start": {"line": 191, "column": 23}, "end": {"line": 191, "column": 24}}, + "loc": {"start": {"line": 192, "column": 16}, "end": {"line": 204, "column": 106}}, + "line": 192 + }, + "20": { + "name": "(anonymous_20)", + "decl": {"start": {"line": 193, "column": 24}, "end": {"line": 193, "column": 25}}, + "loc": {"start": {"line": 194, "column": 20}, "end": {"line": 196, "column": 22}}, + "line": 194 + }, + "21": { + "name": "(anonymous_21)", + "decl": {"start": {"line": 198, "column": 24}, "end": {"line": 198, "column": 25}}, + "loc": {"start": {"line": 199, "column": 20}, "end": {"line": 202, "column": 22}}, + "line": 199 + }, + "22": { + "name": "(anonymous_22)", + "decl": {"start": {"line": 204, "column": 25}, "end": {"line": 204, "column": 26}}, + "loc": {"start": {"line": 204, "column": 43}, "end": {"line": 204, "column": 105}}, + "line": 204 + }, + "23": { + "name": "(anonymous_23)", + "decl": {"start": {"line": 208, "column": 23}, "end": {"line": 208, "column": 24}}, + "loc": {"start": {"line": 209, "column": 16}, "end": {"line": 211, "column": 18}}, + "line": 209 + }, + "24": { + "name": "(anonymous_24)", + "decl": {"start": {"line": 216, "column": 13}, "end": {"line": 216, "column": 14}}, + "loc": {"start": {"line": 216, "column": 31}, "end": {"line": 216, "column": 93}}, + "line": 216 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 36, "column": 4}, "end": {"line": 50, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 36, "column": 4}, "end": {"line": 50, "column": 5}}, + {"start": {"line": 38, "column": 11}, "end": {"line": 50, "column": 5}} + ], + "line": 36 + }, + "1": { + "loc": {"start": {"line": 54, "column": 4}, "end": {"line": 56, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 54, "column": 4}, "end": {"line": 56, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 54 + }, + "2": { + "loc": {"start": {"line": 78, "column": 4}, "end": {"line": 80, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 78, "column": 4}, "end": {"line": 80, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 78 + }, + "3": { + "loc": {"start": {"line": 81, "column": 4}, "end": {"line": 83, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 81, "column": 4}, "end": {"line": 83, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 81 + }, + "4": { + "loc": {"start": {"line": 104, "column": 4}, "end": {"line": 107, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 104, "column": 4}, "end": {"line": 107, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 104 + }, + "5": { + "loc": {"start": {"line": 104, "column": 8}, "end": {"line": 104, "column": 55}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 104, "column": 8}, "end": {"line": 104, "column": 12}}, + {"start": {"line": 104, "column": 16}, "end": {"line": 104, "column": 55}} + ], + "line": 104 + }, + "6": { + "loc": {"start": {"line": 114, "column": 6}, "end": {"line": 117, "column": 7}}, + "type": "if", + "locations": [ + {"start": {"line": 114, "column": 6}, "end": {"line": 117, "column": 7}}, + {"start": {}, "end": {}} + ], + "line": 114 + }, + "7": { + "loc": {"start": {"line": 114, "column": 10}, "end": {"line": 114, "column": 78}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 114, "column": 10}, "end": {"line": 114, "column": 15}}, + {"start": {"line": 114, "column": 21}, "end": {"line": 114, "column": 31}}, + {"start": {"line": 114, "column": 35}, "end": {"line": 114, "column": 57}}, + {"start": {"line": 114, "column": 62}, "end": {"line": 114, "column": 77}} + ], + "line": 114 + }, + "8": { + "loc": {"start": {"line": 125, "column": 4}, "end": {"line": 130, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 125, "column": 4}, "end": {"line": 130, "column": 5}}, + {"start": {"line": 128, "column": 11}, "end": {"line": 130, "column": 5}} + ], + "line": 125 + }, + "9": { + "loc": {"start": {"line": 135, "column": 4}, "end": {"line": 139, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 135, "column": 4}, "end": {"line": 139, "column": 5}}, + {"start": {"line": 137, "column": 11}, "end": {"line": 139, "column": 5}} + ], + "line": 135 + }, + "10": { + "loc": {"start": {"line": 135, "column": 8}, "end": {"line": 135, "column": 88}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 135, "column": 8}, "end": {"line": 135, "column": 24}}, + {"start": {"line": 135, "column": 28}, "end": {"line": 135, "column": 46}}, + {"start": {"line": 135, "column": 50}, "end": {"line": 135, "column": 88}} + ], + "line": 135 + }, + "11": { + "loc": {"start": {"line": 156, "column": 4}, "end": {"line": 160, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 156, "column": 4}, "end": {"line": 160, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 156 + }, + "12": { + "loc": {"start": {"line": 164, "column": 4}, "end": {"line": 166, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 164, "column": 4}, "end": {"line": 166, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 164 + }, + "13": { + "loc": {"start": {"line": 164, "column": 8}, "end": {"line": 164, "column": 27}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 164, "column": 8}, "end": {"line": 164, "column": 13}}, + {"start": {"line": 164, "column": 17}, "end": {"line": 164, "column": 27}} + ], + "line": 164 + }, + "14": { + "loc": {"start": {"line": 169, "column": 17}, "end": {"line": 169, "column": 73}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 169, "column": 49}, "end": {"line": 169, "column": 58}}, + {"start": {"line": 169, "column": 61}, "end": {"line": 169, "column": 73}} + ], + "line": 169 + }, + "15": { + "loc": {"start": {"line": 175, "column": 8}, "end": {"line": 178, "column": 9}}, + "type": "if", + "locations": [ + {"start": {"line": 175, "column": 8}, "end": {"line": 178, "column": 9}}, + {"start": {}, "end": {}} + ], + "line": 175 + } + }, + "s": { + "0": 1, + "1": 1, + "2": 1, + "3": 1, + "4": 1, + "5": 1, + "6": 0, + "7": 1, + "8": 1, + "9": 1, + "10": 1, + "11": 0, + "12": 1, + "13": 1, + "14": 1, + "15": 1, + "16": 1, + "17": 1, + "18": 1, + "19": 1, + "20": 0, + "21": 0, + "22": 0, + "23": 0, + "24": 0, + "25": 0, + "26": 1, + "27": 0, + "28": 0, + "29": 0, + "30": 0, + "31": 1, + "32": 0, + "33": 0, + "34": 1, + "35": 1, + "36": 1, + "37": 1, + "38": 1, + "39": 1, + "40": 0, + "41": 0, + "42": 1, + "43": 0, + "44": 0, + "45": 0, + "46": 0, + "47": 0, + "48": 1, + "49": 0, + "50": 0, + "51": 0, + "52": 0, + "53": 0, + "54": 0, + "55": 0, + "56": 0, + "57": 1, + "58": 1, + "59": 1, + "60": 0, + "61": 0, + "62": 1, + "63": 0, + "64": 0, + "65": 0, + "66": 0, + "67": 0, + "68": 0, + "69": 0, + "70": 0, + "71": 0, + "72": 0, + "73": 0, + "74": 0, + "75": 0, + "76": 0, + "77": 0, + "78": 0, + "79": 0, + "80": 0, + "81": 0, + "82": 0, + "83": 0, + "84": 0 + }, + "f": { + "0": 1, + "1": 1, + "2": 1, + "3": 1, + "4": 0, + "5": 0, + "6": 0, + "7": 1, + "8": 1, + "9": 1, + "10": 0, + "11": 0, + "12": 0, + "13": 1, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 0, + "22": 0, + "23": 0, + "24": 0 + }, + "b": { + "0": [0, 1], + "1": [1, 0], + "2": [0, 0], + "3": [0, 0], + "4": [1, 0], + "5": [1, 0], + "6": [0, 0], + "7": [0, 0, 0, 0], + "8": [0, 0], + "9": [0, 0], + "10": [0, 0, 0], + "11": [0, 0], + "12": [0, 0], + "13": [0, 0], + "14": [0, 0], + "15": [0, 0] + }, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "ea8d5f72a1d2e4a366bfe38979c93dc367beae06" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\handlers\\LockingHandler\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\handlers\\LockingHandler\\index.ts", + "statementMap": { + "0": {"start": {"line": 10, "column": 30}, "end": {"line": 10, "column": 63}}, + "1": {"start": {"line": 14, "column": 22}, "end": {"line": 14, "column": 27}}, + "2": {"start": {"line": 21, "column": 4}, "end": {"line": 23, "column": 5}}, + "3": {"start": {"line": 22, "column": 6}, "end": {"line": 22, "column": 53}}, + "4": {"start": {"line": 24, "column": 4}, "end": {"line": 24, "column": 35}}, + "5": {"start": {"line": 27, "column": 25}, "end": {"line": 76, "column": 3}}, + "6": {"start": {"line": 28, "column": 4}, "end": {"line": 28, "column": 42}}, + "7": {"start": {"line": 29, "column": 4}, "end": {"line": 75, "column": 5}}, + "8": {"start": {"line": 32, "column": 37}, "end": {"line": 46, "column": 9}}, + "9": {"start": {"line": 33, "column": 10}, "end": {"line": 44, "column": 11}}, + "10": {"start": {"line": 34, "column": 12}, "end": {"line": 43, "column": 13}}, + "11": {"start": {"line": 35, "column": 14}, "end": {"line": 38, "column": 15}}, + "12": {"start": {"line": 36, "column": 16}, "end": {"line": 36, "column": 56}}, + "13": {"start": {"line": 37, "column": 16}, "end": {"line": 37, "column": 23}}, + "14": {"start": {"line": 39, "column": 14}, "end": {"line": 39, "column": 46}}, + "15": {"start": {"line": 40, "column": 14}, "end": {"line": 40, "column": 35}}, + "16": {"start": {"line": 41, "column": 14}, "end": {"line": 41, "column": 50}}, + "17": {"start": {"line": 42, "column": 14}, "end": {"line": 42, "column": 21}}, + "18": {"start": {"line": 45, "column": 10}, "end": {"line": 45, "column": 32}}, + "19": {"start": {"line": 47, "column": 8}, "end": {"line": 47, "column": 49}}, + "20": {"start": {"line": 48, "column": 8}, "end": {"line": 48, "column": 94}}, + "21": {"start": {"line": 49, "column": 8}, "end": {"line": 49, "column": 14}}, + "22": {"start": {"line": 52, "column": 37}, "end": {"line": 65, "column": 9}}, + "23": {"start": {"line": 53, "column": 10}, "end": {"line": 64, "column": 11}}, + "24": {"start": {"line": 54, "column": 12}, "end": {"line": 57, "column": 13}}, + "25": {"start": {"line": 55, "column": 14}, "end": {"line": 55, "column": 54}}, + "26": {"start": {"line": 56, "column": 14}, "end": {"line": 56, "column": 21}}, + "27": {"start": {"line": 58, "column": 12}, "end": {"line": 58, "column": 44}}, + "28": {"start": {"line": 59, "column": 12}, "end": {"line": 59, "column": 33}}, + "29": {"start": {"line": 60, "column": 12}, "end": {"line": 60, "column": 42}}, + "30": {"start": {"line": 62, "column": 12}, "end": {"line": 62, "column": 69}}, + "31": {"start": {"line": 63, "column": 12}, "end": {"line": 63, "column": 34}}, + "32": {"start": {"line": 66, "column": 8}, "end": {"line": 66, "column": 49}}, + "33": {"start": {"line": 67, "column": 8}, "end": {"line": 67, "column": 107}}, + "34": {"start": {"line": 68, "column": 8}, "end": {"line": 68, "column": 14}}, + "35": {"start": {"line": 71, "column": 24}, "end": {"line": 71, "column": 86}}, + "36": {"start": {"line": 72, "column": 8}, "end": {"line": 72, "column": 23}}, + "37": {"start": {"line": 73, "column": 8}, "end": {"line": 73, "column": 46}}, + "38": {"start": {"line": 80, "column": 4}, "end": {"line": 80, "column": 75}}, + "39": {"start": {"line": 83, "column": 26}, "end": {"line": 86, "column": 3}}, + "40": {"start": {"line": 84, "column": 4}, "end": {"line": 84, "column": 49}}, + "41": {"start": {"line": 85, "column": 4}, "end": {"line": 85, "column": 40}}, + "42": {"start": {"line": 89, "column": 4}, "end": {"line": 89, "column": 26}}, + "43": {"start": {"line": 93, "column": 4}, "end": {"line": 93, "column": 27}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 18, "column": 2}, "end": {"line": 18, "column": 3}}, + "loc": {"start": {"line": 18, "column": 24}, "end": {"line": 18, "column": 26}}, + "line": 18 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 20, "column": 2}, "end": {"line": 20, "column": 3}}, + "loc": {"start": {"line": 20, "column": 46}, "end": {"line": 25, "column": 3}}, + "line": 20 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 27, "column": 25}, "end": {"line": 27, "column": 26}}, + "loc": {"start": {"line": 27, "column": 52}, "end": {"line": 76, "column": 3}}, + "line": 27 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 32, "column": 37}, "end": {"line": 32, "column": 38}}, + "loc": {"start": {"line": 32, "column": 84}, "end": {"line": 46, "column": 9}}, + "line": 32 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 52, "column": 37}, "end": {"line": 52, "column": 38}}, + "loc": {"start": {"line": 52, "column": 59}, "end": {"line": 65, "column": 9}}, + "line": 52 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 79, "column": 2}, "end": {"line": 79, "column": 3}}, + "loc": {"start": {"line": 79, "column": 48}, "end": {"line": 81, "column": 3}}, + "line": 79 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 83, "column": 26}, "end": {"line": 83, "column": 27}}, + "loc": {"start": {"line": 83, "column": 53}, "end": {"line": 86, "column": 3}}, + "line": 83 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 88, "column": 2}, "end": {"line": 88, "column": 3}}, + "loc": {"start": {"line": 88, "column": 26}, "end": {"line": 90, "column": 3}}, + "line": 88 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 92, "column": 2}, "end": {"line": 92, "column": 3}}, + "loc": {"start": {"line": 92, "column": 31}, "end": {"line": 94, "column": 3}}, + "line": 92 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 21, "column": 4}, "end": {"line": 23, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 21, "column": 4}, "end": {"line": 23, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 21 + }, + "1": { + "loc": {"start": {"line": 29, "column": 4}, "end": {"line": 75, "column": 5}}, + "type": "switch", + "locations": [ + {"start": {"line": 30, "column": 6}, "end": {"line": 50, "column": 7}}, + {"start": {"line": 51, "column": 6}, "end": {"line": 69, "column": 7}}, + {"start": {"line": 70, "column": 6}, "end": {"line": 74, "column": 7}} + ], + "line": 29 + }, + "2": { + "loc": {"start": {"line": 33, "column": 10}, "end": {"line": 44, "column": 11}}, + "type": "if", + "locations": [ + {"start": {"line": 33, "column": 10}, "end": {"line": 44, "column": 11}}, + {"start": {}, "end": {}} + ], + "line": 33 + }, + "3": { + "loc": {"start": {"line": 33, "column": 14}, "end": {"line": 33, "column": 72}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 33, "column": 14}, "end": {"line": 33, "column": 43}}, + {"start": {"line": 33, "column": 47}, "end": {"line": 33, "column": 72}} + ], + "line": 33 + }, + "4": { + "loc": {"start": {"line": 34, "column": 12}, "end": {"line": 43, "column": 13}}, + "type": "if", + "locations": [ + {"start": {"line": 34, "column": 12}, "end": {"line": 43, "column": 13}}, + {"start": {}, "end": {}} + ], + "line": 34 + }, + "5": { + "loc": {"start": {"line": 35, "column": 14}, "end": {"line": 38, "column": 15}}, + "type": "if", + "locations": [ + {"start": {"line": 35, "column": 14}, "end": {"line": 38, "column": 15}}, + {"start": {}, "end": {}} + ], + "line": 35 + }, + "6": { + "loc": {"start": {"line": 53, "column": 10}, "end": {"line": 64, "column": 11}}, + "type": "if", + "locations": [ + {"start": {"line": 53, "column": 10}, "end": {"line": 64, "column": 11}}, + {"start": {"line": 61, "column": 17}, "end": {"line": 64, "column": 11}} + ], + "line": 53 + }, + "7": { + "loc": {"start": {"line": 54, "column": 12}, "end": {"line": 57, "column": 13}}, + "type": "if", + "locations": [ + {"start": {"line": 54, "column": 12}, "end": {"line": 57, "column": 13}}, + {"start": {}, "end": {}} + ], + "line": 54 + } + }, + "s": { + "0": 1, + "1": 1, + "2": 1, + "3": 1, + "4": 1, + "5": 1, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 0, + "22": 0, + "23": 0, + "24": 0, + "25": 0, + "26": 0, + "27": 0, + "28": 0, + "29": 0, + "30": 0, + "31": 0, + "32": 0, + "33": 0, + "34": 0, + "35": 0, + "36": 0, + "37": 0, + "38": 0, + "39": 1, + "40": 0, + "41": 0, + "42": 0, + "43": 1 + }, + "f": {"0": 1, "1": 1, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 1}, + "b": {"0": [1, 0], "1": [0, 0, 0], "2": [0, 0], "3": [0, 0], "4": [0, 0], "5": [0, 0], "6": [0, 0], "7": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "b9553a49fc26bfab58d26f94ab394da1600eca10" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\localization\\Localization.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\localization\\Localization.ts", + "statementMap": { + "0": {"start": {"line": 6, "column": 37}, "end": {"line": 9, "column": 3}}, + "1": {"start": {"line": 11, "column": 72}, "end": {"line": 14, "column": 3}}, + "2": {"start": {"line": 12, "column": 53}, "end": {"line": 12, "column": 86}}, + "3": {"start": {"line": 13, "column": 51}, "end": {"line": 13, "column": 84}}, + "4": {"start": {"line": 16, "column": 28}, "end": {"line": 19, "column": 3}}, + "5": {"start": {"line": 17, "column": 47}, "end": {"line": 17, "column": 66}}, + "6": {"start": {"line": 18, "column": 48}, "end": {"line": 18, "column": 91}}, + "7": {"start": {"line": 21, "column": 41}, "end": {"line": 27, "column": 3}}, + "8": {"start": {"line": 22, "column": 4}, "end": {"line": 26, "column": 5}}, + "9": {"start": {"line": 23, "column": 6}, "end": {"line": 25, "column": 7}}, + "10": {"start": {"line": 24, "column": 8}, "end": {"line": 24, "column": 24}}, + "11": {"start": {"line": 29, "column": 32}, "end": {"line": 44, "column": 3}}, + "12": {"start": {"line": 31, "column": 30}, "end": {"line": 31, "column": 39}}, + "13": {"start": {"line": 32, "column": 4}, "end": {"line": 34, "column": 5}}, + "14": {"start": {"line": 33, "column": 6}, "end": {"line": 33, "column": 43}}, + "15": {"start": {"line": 35, "column": 21}, "end": {"line": 35, "column": 60}}, + "16": {"start": {"line": 36, "column": 25}, "end": {"line": 36, "column": 84}}, + "17": {"start": {"line": 37, "column": 24}, "end": {"line": 37, "column": 69}}, + "18": {"start": {"line": 39, "column": 4}, "end": {"line": 41, "column": 6}}, + "19": {"start": {"line": 42, "column": 4}, "end": {"line": 42, "column": 30}}, + "20": {"start": {"line": 46, "column": 35}, "end": {"line": 54, "column": 3}}, + "21": {"start": {"line": 47, "column": 4}, "end": {"line": 49, "column": 5}}, + "22": {"start": {"line": 48, "column": 6}, "end": {"line": 48, "column": 43}}, + "23": {"start": {"line": 50, "column": 4}, "end": {"line": 52, "column": 6}}, + "24": {"start": {"line": 53, "column": 4}, "end": {"line": 53, "column": 30}}, + "25": {"start": {"line": 56, "column": 28}, "end": {"line": 58, "column": 3}}, + "26": {"start": {"line": 57, "column": 4}, "end": {"line": 57, "column": 23}}, + "27": {"start": {"line": 61, "column": 25}, "end": {"line": 61, "column": 47}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 12, "column": 47}, "end": {"line": 12, "column": 48}}, + "loc": {"start": {"line": 12, "column": 53}, "end": {"line": 12, "column": 86}}, + "line": 12 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 13, "column": 45}, "end": {"line": 13, "column": 46}}, + "loc": {"start": {"line": 13, "column": 51}, "end": {"line": 13, "column": 84}}, + "line": 13 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 17, "column": 4}, "end": {"line": 17, "column": 5}}, + "loc": {"start": {"line": 17, "column": 47}, "end": {"line": 17, "column": 66}}, + "line": 17 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 18, "column": 4}, "end": {"line": 18, "column": 5}}, + "loc": {"start": {"line": 18, "column": 48}, "end": {"line": 18, "column": 91}}, + "line": 18 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 21, "column": 41}, "end": {"line": 21, "column": 42}}, + "loc": {"start": {"line": 21, "column": 81}, "end": {"line": 27, "column": 3}}, + "line": 21 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 29, "column": 32}, "end": {"line": 29, "column": 33}}, + "loc": {"start": {"line": 29, "column": 44}, "end": {"line": 44, "column": 3}}, + "line": 29 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 46, "column": 35}, "end": {"line": 46, "column": 36}}, + "loc": {"start": {"line": 46, "column": 108}, "end": {"line": 54, "column": 3}}, + "line": 46 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 56, "column": 28}, "end": {"line": 56, "column": 29}}, + "loc": {"start": {"line": 56, "column": 42}, "end": {"line": 58, "column": 3}}, + "line": 56 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 18, "column": 48}, "end": {"line": 18, "column": 91}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 18, "column": 57}, "end": {"line": 18, "column": 85}}, + {"start": {"line": 18, "column": 88}, "end": {"line": 18, "column": 91}} + ], + "line": 18 + }, + "1": { + "loc": {"start": {"line": 23, "column": 6}, "end": {"line": 25, "column": 7}}, + "type": "if", + "locations": [ + {"start": {"line": 23, "column": 6}, "end": {"line": 25, "column": 7}}, + {"start": {}, "end": {}} + ], + "line": 23 + }, + "2": { + "loc": {"start": {"line": 32, "column": 4}, "end": {"line": 34, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 32, "column": 4}, "end": {"line": 34, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 32 + }, + "3": { + "loc": {"start": {"line": 37, "column": 24}, "end": {"line": 37, "column": 69}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 37, "column": 24}, "end": {"line": 37, "column": 41}}, + {"start": {"line": 37, "column": 45}, "end": {"line": 37, "column": 57}}, + {"start": {"line": 37, "column": 61}, "end": {"line": 37, "column": 69}} + ], + "line": 37 + }, + "4": { + "loc": {"start": {"line": 46, "column": 36}, "end": {"line": 46, "column": 97}}, + "type": "default-arg", + "locations": [{"start": {"line": 46, "column": 58}, "end": {"line": 46, "column": 97}}], + "line": 46 + }, + "5": { + "loc": {"start": {"line": 47, "column": 4}, "end": {"line": 49, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 47, "column": 4}, "end": {"line": 49, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 47 + } + }, + "s": { + "0": 1, + "1": 1, + "2": 1, + "3": 0, + "4": 1, + "5": 36, + "6": 578, + "7": 1, + "8": 1, + "9": 2, + "10": 0, + "11": 1, + "12": 1, + "13": 1, + "14": 1, + "15": 1, + "16": 1, + "17": 1, + "18": 1, + "19": 1, + "20": 1, + "21": 0, + "22": 0, + "23": 0, + "24": 0, + "25": 1, + "26": 1, + "27": 1 + }, + "f": {"0": 1, "1": 0, "2": 36, "3": 578, "4": 1, "5": 1, "6": 0, "7": 1}, + "b": {"0": [0, 578], "1": [0, 2], "2": [1, 0], "3": [1, 1, 1], "4": [0], "5": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "9074531907ab3904680d10e63de6186778c0b9b9" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\machines\\onboardingMachine.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\machines\\onboardingMachine.tsx", + "statementMap": { + "0": {"start": {"line": 26, "column": 36}, "end": {"line": 27, "column": 58}}, + "1": {"start": {"line": 27, "column": 2}, "end": {"line": 27, "column": 58}}, + "2": {"start": {"line": 29, "column": 36}, "end": {"line": 32, "column": 1}}, + "3": {"start": {"line": 30, "column": 46}, "end": {"line": 30, "column": 62}}, + "4": {"start": {"line": 31, "column": 2}, "end": {"line": 31, "column": 147}}, + "5": {"start": {"line": 34, "column": 34}, "end": {"line": 37, "column": 1}}, + "6": {"start": {"line": 35, "column": 20}, "end": {"line": 35, "column": 23}}, + "7": {"start": {"line": 36, "column": 2}, "end": {"line": 36, "column": 41}}, + "8": {"start": {"line": 39, "column": 37}, "end": {"line": 41, "column": 1}}, + "9": {"start": {"line": 40, "column": 2}, "end": {"line": 40, "column": 77}}, + "10": {"start": {"line": 43, "column": 34}, "end": {"line": 45, "column": 1}}, + "11": {"start": {"line": 44, "column": 2}, "end": {"line": 44, "column": 37}}, + "12": {"start": {"line": 47, "column": 32}, "end": {"line": 203, "column": 1}}, + "13": {"start": {"line": 48, "column": 25}, "end": {"line": 63, "column": 3}}, + "14": {"start": {"line": 65, "column": 25}, "end": {"line": 71, "column": 32}}, + "15": {"start": {"line": 73, "column": 2}, "end": {"line": 202, "column": 5}}, + "16": {"start": {"line": 110, "column": 85}, "end": {"line": 110, "column": 91}}, + "17": {"start": {"line": 113, "column": 89}, "end": {"line": 113, "column": 95}}, + "18": {"start": {"line": 128, "column": 75}, "end": {"line": 128, "column": 81}}, + "19": {"start": {"line": 140, "column": 64}, "end": {"line": 140, "column": 70}}, + "20": {"start": {"line": 206, "column": 33}, "end": {"line": 206, "column": 75}}, + "21": {"start": {"line": 212, "column": 4}, "end": {"line": 212, "column": 41}}, + "22": {"start": {"line": 216, "column": 4}, "end": {"line": 218, "column": 5}}, + "23": {"start": {"line": 217, "column": 6}, "end": {"line": 217, "column": 67}}, + "24": {"start": {"line": 219, "column": 4}, "end": {"line": 219, "column": 26}}, + "25": {"start": {"line": 223, "column": 4}, "end": {"line": 223, "column": 36}}, + "26": {"start": {"line": 224, "column": 4}, "end": {"line": 226, "column": 5}}, + "27": {"start": {"line": 225, "column": 6}, "end": {"line": 225, "column": 13}}, + "28": {"start": {"line": 227, "column": 4}, "end": {"line": 227, "column": 38}}, + "29": {"start": {"line": 228, "column": 4}, "end": {"line": 228, "column": 44}}, + "30": {"start": {"line": 229, "column": 4}, "end": {"line": 229, "column": 36}}, + "31": {"start": {"line": 234, "column": 45}, "end": {"line": 239, "column": 5}}, + "32": {"start": {"line": 240, "column": 4}, "end": {"line": 247, "column": 5}}, + "33": {"start": {"line": 241, "column": 6}, "end": {"line": 241, "column": 46}}, + "34": {"start": {"line": 242, "column": 11}, "end": {"line": 247, "column": 5}}, + "35": {"start": {"line": 243, "column": 6}, "end": {"line": 246, "column": 9}}, + "36": {"start": {"line": 244, "column": 8}, "end": {"line": 244, "column": 118}}, + "37": {"start": {"line": 245, "column": 8}, "end": {"line": 245, "column": 61}}, + "38": {"start": {"line": 248, "column": 4}, "end": {"line": 248, "column": 19}}, + "39": {"start": {"line": 256, "column": 4}, "end": {"line": 261, "column": 5}}, + "40": {"start": {"line": 257, "column": 6}, "end": {"line": 259, "column": 7}}, + "41": {"start": {"line": 258, "column": 8}, "end": {"line": 258, "column": 99}}, + "42": {"start": {"line": 260, "column": 6}, "end": {"line": 260, "column": 72}}, + "43": {"start": {"line": 262, "column": 4}, "end": {"line": 262, "column": 39}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 26, "column": 36}, "end": {"line": 26, "column": 37}}, + "loc": {"start": {"line": 27, "column": 2}, "end": {"line": 27, "column": 58}}, + "line": 27 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 29, "column": 36}, "end": {"line": 29, "column": 37}}, + "loc": {"start": {"line": 29, "column": 102}, "end": {"line": 32, "column": 1}}, + "line": 29 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 34, "column": 34}, "end": {"line": 34, "column": 35}}, + "loc": {"start": {"line": 34, "column": 100}, "end": {"line": 37, "column": 1}}, + "line": 34 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 39, "column": 37}, "end": {"line": 39, "column": 38}}, + "loc": {"start": {"line": 39, "column": 91}, "end": {"line": 41, "column": 1}}, + "line": 39 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 43, "column": 34}, "end": {"line": 43, "column": 35}}, + "loc": {"start": {"line": 43, "column": 82}, "end": {"line": 45, "column": 1}}, + "line": 43 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 47, "column": 32}, "end": {"line": 47, "column": 33}}, + "loc": {"start": {"line": 47, "column": 73}, "end": {"line": 203, "column": 1}}, + "line": 47 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 110, "column": 52}, "end": {"line": 110, "column": 53}}, + "loc": {"start": {"line": 110, "column": 85}, "end": {"line": 110, "column": 91}}, + "line": 110 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 113, "column": 54}, "end": {"line": 113, "column": 55}}, + "loc": {"start": {"line": 113, "column": 89}, "end": {"line": 113, "column": 95}}, + "line": 113 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 128, "column": 43}, "end": {"line": 128, "column": 44}}, + "loc": {"start": {"line": 128, "column": 75}, "end": {"line": 128, "column": 81}}, + "line": 128 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 140, "column": 38}, "end": {"line": 140, "column": 39}}, + "loc": {"start": {"line": 140, "column": 64}, "end": {"line": 140, "column": 70}}, + "line": 140 + }, + "10": { + "name": "(anonymous_10)", + "decl": {"start": {"line": 211, "column": 2}, "end": {"line": 211, "column": 3}}, + "loc": {"start": {"line": 211, "column": 32}, "end": {"line": 213, "column": 3}}, + "line": 211 + }, + "11": { + "name": "(anonymous_11)", + "decl": {"start": {"line": 215, "column": 2}, "end": {"line": 215, "column": 3}}, + "loc": {"start": {"line": 215, "column": 49}, "end": {"line": 220, "column": 3}}, + "line": 215 + }, + "12": { + "name": "(anonymous_12)", + "decl": {"start": {"line": 222, "column": 2}, "end": {"line": 222, "column": 3}}, + "loc": {"start": {"line": 222, "column": 24}, "end": {"line": 230, "column": 3}}, + "line": 222 + }, + "13": { + "name": "(anonymous_13)", + "decl": {"start": {"line": 233, "column": 2}, "end": {"line": 233, "column": 3}}, + "loc": {"start": {"line": 233, "column": 93}, "end": {"line": 249, "column": 3}}, + "line": 233 + }, + "14": { + "name": "(anonymous_14)", + "decl": {"start": {"line": 243, "column": 27}, "end": {"line": 243, "column": 28}}, + "loc": {"start": {"line": 243, "column": 39}, "end": {"line": 246, "column": 7}}, + "line": 243 + }, + "15": { + "name": "(anonymous_15)", + "decl": {"start": {"line": 251, "column": 2}, "end": {"line": 251, "column": 3}}, + "loc": {"start": {"line": 255, "column": 29}, "end": {"line": 263, "column": 3}}, + "line": 255 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 27, "column": 2}, "end": {"line": 27, "column": 58}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 27, "column": 2}, "end": {"line": 27, "column": 29}}, + {"start": {"line": 27, "column": 33}, "end": {"line": 27, "column": 58}} + ], + "line": 27 + }, + "1": { + "loc": {"start": {"line": 31, "column": 9}, "end": {"line": 31, "column": 146}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 31, "column": 9}, "end": {"line": 31, "column": 18}}, + {"start": {"line": 31, "column": 22}, "end": {"line": 31, "column": 42}}, + {"start": {"line": 31, "column": 46}, "end": {"line": 31, "column": 54}}, + {"start": {"line": 31, "column": 58}, "end": {"line": 31, "column": 77}}, + {"start": {"line": 31, "column": 81}, "end": {"line": 31, "column": 93}}, + {"start": {"line": 31, "column": 97}, "end": {"line": 31, "column": 146}} + ], + "line": 31 + }, + "2": { + "loc": {"start": {"line": 36, "column": 9}, "end": {"line": 36, "column": 40}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 36, "column": 9}, "end": {"line": 36, "column": 16}}, + {"start": {"line": 36, "column": 20}, "end": {"line": 36, "column": 40}} + ], + "line": 36 + }, + "3": { + "loc": {"start": {"line": 40, "column": 9}, "end": {"line": 40, "column": 76}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 40, "column": 9}, "end": {"line": 40, "column": 46}}, + {"start": {"line": 40, "column": 50}, "end": {"line": 40, "column": 76}} + ], + "line": 40 + }, + "4": { + "loc": {"start": {"line": 49, "column": 15}, "end": {"line": 49, "column": 80}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 49, "column": 15}, "end": {"line": 49, "column": 46}}, + {"start": {"line": 49, "column": 50}, "end": {"line": 49, "column": 80}} + ], + "line": 49 + }, + "5": { + "loc": {"start": {"line": 50, "column": 17}, "end": {"line": 50, "column": 59}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 50, "column": 17}, "end": {"line": 50, "column": 50}}, + {"start": {"line": 50, "column": 54}, "end": {"line": 50, "column": 59}} + ], + "line": 50 + }, + "6": { + "loc": {"start": {"line": 52, "column": 6}, "end": {"line": 62, "column": 38}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 52, "column": 6}, "end": {"line": 52, "column": 38}}, + {"start": {"line": 53, "column": 7}, "end": {"line": 62, "column": 37}} + ], + "line": 52 + }, + "7": { + "loc": {"start": {"line": 74, "column": 8}, "end": {"line": 74, "column": 39}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 74, "column": 8}, "end": {"line": 74, "column": 23}}, + {"start": {"line": 74, "column": 27}, "end": {"line": 74, "column": 39}} + ], + "line": 74 + }, + "8": { + "loc": {"start": {"line": 216, "column": 4}, "end": {"line": 218, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 216, "column": 4}, "end": {"line": 218, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 216 + }, + "9": { + "loc": {"start": {"line": 224, "column": 4}, "end": {"line": 226, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 224, "column": 4}, "end": {"line": 226, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 224 + }, + "10": { + "loc": {"start": {"line": 240, "column": 4}, "end": {"line": 247, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 240, "column": 4}, "end": {"line": 247, "column": 5}}, + {"start": {"line": 242, "column": 11}, "end": {"line": 247, "column": 5}} + ], + "line": 240 + }, + "11": { + "loc": {"start": {"line": 242, "column": 11}, "end": {"line": 247, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 242, "column": 11}, "end": {"line": 247, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 242 + }, + "12": { + "loc": {"start": {"line": 256, "column": 4}, "end": {"line": 261, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 256, "column": 4}, "end": {"line": 261, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 256 + }, + "13": { + "loc": {"start": {"line": 257, "column": 6}, "end": {"line": 259, "column": 7}}, + "type": "if", + "locations": [ + {"start": {"line": 257, "column": 6}, "end": {"line": 259, "column": 7}}, + {"start": {}, "end": {}} + ], + "line": 257 + } + }, + "s": { + "0": 1, + "1": 24, + "2": 1, + "3": 24, + "4": 24, + "5": 1, + "6": 8, + "7": 8, + "8": 1, + "9": 4, + "10": 1, + "11": 0, + "12": 1, + "13": 3, + "14": 3, + "15": 3, + "16": 3, + "17": 3, + "18": 5, + "19": 4, + "20": 1, + "21": 3, + "22": 3, + "23": 0, + "24": 3, + "25": 3, + "26": 3, + "27": 0, + "28": 3, + "29": 3, + "30": 3, + "31": 3, + "32": 3, + "33": 0, + "34": 3, + "35": 3, + "36": 55, + "37": 55, + "38": 3, + "39": 6, + "40": 3, + "41": 0, + "42": 3, + "43": 6 + }, + "f": {"0": 24, "1": 24, "2": 8, "3": 4, "4": 0, "5": 3, "6": 3, "7": 3, "8": 5, "9": 4, "10": 3, "11": 3, "12": 3, "13": 3, "14": 55, "15": 6}, + "b": { + "0": [24, 14], + "1": [24, 18, 18, 16, 16, 14], + "2": [8, 8], + "3": [4, 4], + "4": [3, 3], + "5": [3, 3], + "6": [3, 3], + "7": [3, 3], + "8": [0, 3], + "9": [0, 3], + "10": [0, 3], + "11": [3, 0], + "12": [3, 3], + "13": [0, 3] + }, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "1c151c9f75cd7014d36dc3a313e99c2166f85f25" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\modals\\SSIAlertModal\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\modals\\SSIAlertModal\\index.tsx", + "statementMap": { + "0": {"start": {"line": 12, "column": 33}, "end": {"line": 34, "column": 1}}, + "1": {"start": {"line": 13, "column": 48}, "end": {"line": 13, "column": 66}}, + "2": {"start": {"line": 15, "column": 19}, "end": {"line": 17, "column": 3}}, + "3": {"start": {"line": 16, "column": 4}, "end": {"line": 16, "column": 30}}, + "4": {"start": {"line": 19, "column": 2}, "end": {"line": 33, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 12, "column": 33}, "end": {"line": 12, "column": 34}}, + "loc": {"start": {"line": 12, "column": 64}, "end": {"line": 34, "column": 1}}, + "line": 12 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 15, "column": 19}, "end": {"line": 15, "column": 20}}, + "loc": {"start": {"line": 15, "column": 46}, "end": {"line": 17, "column": 3}}, + "line": 15 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 13, "column": 27}, "end": {"line": 13, "column": 44}}, + "type": "default-arg", + "locations": [{"start": {"line": 13, "column": 40}, "end": {"line": 13, "column": 44}}], + "line": 13 + }, + "1": { + "loc": {"start": {"line": 23, "column": 9}, "end": {"line": 30, "column": 16}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 24, "column": 10}, "end": {"line": 29, "column": 12}}, + {"start": {"line": 30, "column": 12}, "end": {"line": 30, "column": 16}} + ], + "line": 23 + } + }, + "s": {"0": 1, "1": 0, "2": 0, "3": 0, "4": 0}, + "f": {"0": 0, "1": 0}, + "b": {"0": [0], "1": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "51e0fd317586d61a4c8bcd2ef391fe32425e6af8" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\modals\\SSIPopupModal\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\modals\\SSIPopupModal\\index.tsx", + "statementMap": { + "0": {"start": {"line": 14, "column": 33}, "end": {"line": 61, "column": 1}}, + "1": {"start": {"line": 15, "column": 115}, "end": {"line": 15, "column": 133}}, + "2": {"start": {"line": 16, "column": 50}, "end": {"line": 16, "column": 71}}, + "3": {"start": {"line": 18, "column": 29}, "end": {"line": 20, "column": 3}}, + "4": {"start": {"line": 19, "column": 4}, "end": {"line": 19, "column": 30}}, + "5": {"start": {"line": 22, "column": 30}, "end": {"line": 24, "column": 3}}, + "6": {"start": {"line": 23, "column": 4}, "end": {"line": 23, "column": 31}}, + "7": {"start": {"line": 26, "column": 2}, "end": {"line": 60, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 14, "column": 33}, "end": {"line": 14, "column": 34}}, + "loc": {"start": {"line": 14, "column": 64}, "end": {"line": 61, "column": 1}}, + "line": 14 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 18, "column": 29}, "end": {"line": 18, "column": 30}}, + "loc": {"start": {"line": 18, "column": 56}, "end": {"line": 20, "column": 3}}, + "line": 18 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 22, "column": 30}, "end": {"line": 22, "column": 31}}, + "loc": {"start": {"line": 22, "column": 57}, "end": {"line": 24, "column": 3}}, + "line": 22 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 29, "column": 9}, "end": {"line": 38, "column": 9}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 29, "column": 9}, "end": {"line": 29, "column": 25}}, + {"start": {"line": 29, "column": 29}, "end": {"line": 29, "column": 41}}, + {"start": {"line": 30, "column": 10}, "end": {"line": 37, "column": 34}} + ], + "line": 29 + }, + "1": { + "loc": {"start": {"line": 48, "column": 12}, "end": {"line": 53, "column": 25}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 49, "column": 16}, "end": {"line": 52, "column": 17}}, + {"start": {"line": 53, "column": 16}, "end": {"line": 53, "column": 25}} + ], + "line": 48 + } + }, + "s": {"0": 1, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0}, + "f": {"0": 0, "1": 0, "2": 0}, + "b": {"0": [0, 0, 0], "1": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "cedb196b9f4925b5334f24c2e05047d84be103f7" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\navigation\\navigation.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\navigation\\navigation.tsx", + "statementMap": { + "0": {"start": {"line": 53, "column": 14}, "end": {"line": 53, "column": 43}}, + "1": {"start": {"line": 55, "column": 14}, "end": {"line": 55, "column": 58}}, + "2": {"start": {"line": 56, "column": 12}, "end": {"line": 56, "column": 38}}, + "3": {"start": {"line": 58, "column": 27}, "end": {"line": 95, "column": 1}}, + "4": {"start": {"line": 59, "column": 2}, "end": {"line": 94, "column": 4}}, + "5": {"start": {"line": 70, "column": 10}, "end": {"line": 73, "column": 13}}, + "6": {"start": {"line": 83, "column": 10}, "end": {"line": 86, "column": 13}}, + "7": {"start": {"line": 97, "column": 26}, "end": {"line": 146, "column": 1}}, + "8": {"start": {"line": 98, "column": 2}, "end": {"line": 145, "column": 4}}, + "9": {"start": {"line": 105, "column": 44}, "end": {"line": 105, "column": 75}}, + "10": {"start": {"line": 111, "column": 10}, "end": {"line": 114, "column": 13}}, + "11": {"start": {"line": 120, "column": 10}, "end": {"line": 123, "column": 13}}, + "12": {"start": {"line": 129, "column": 10}, "end": {"line": 132, "column": 13}}, + "13": {"start": {"line": 138, "column": 10}, "end": {"line": 141, "column": 13}}, + "14": {"start": {"line": 148, "column": 25}, "end": {"line": 211, "column": 1}}, + "15": {"start": {"line": 149, "column": 2}, "end": {"line": 210, "column": 4}}, + "16": {"start": {"line": 160, "column": 53}, "end": {"line": 160, "column": 114}}, + "17": {"start": {"line": 166, "column": 31}, "end": {"line": 186, "column": 9}}, + "18": {"start": {"line": 169, "column": 12}, "end": {"line": 184, "column": 14}}, + "19": {"start": {"line": 178, "column": 20}, "end": {"line": 180, "column": 22}}, + "20": {"start": {"line": 194, "column": 12}, "end": {"line": 198, "column": 14}}, + "21": {"start": {"line": 206, "column": 53}, "end": {"line": 206, "column": 80}}, + "22": {"start": {"line": 213, "column": 22}, "end": {"line": 252, "column": 1}}, + "23": {"start": {"line": 214, "column": 2}, "end": {"line": 251, "column": 4}}, + "24": {"start": {"line": 225, "column": 53}, "end": {"line": 225, "column": 114}}, + "25": {"start": {"line": 234, "column": 12}, "end": {"line": 239, "column": 14}}, + "26": {"start": {"line": 247, "column": 53}, "end": {"line": 247, "column": 80}}, + "27": {"start": {"line": 254, "column": 16}, "end": {"line": 409, "column": 1}}, + "28": {"start": {"line": 255, "column": 2}, "end": {"line": 408, "column": 4}}, + "29": {"start": {"line": 271, "column": 31}, "end": {"line": 281, "column": 9}}, + "30": {"start": {"line": 274, "column": 12}, "end": {"line": 279, "column": 14}}, + "31": {"start": {"line": 286, "column": 31}, "end": {"line": 307, "column": 9}}, + "32": {"start": {"line": 289, "column": 12}, "end": {"line": 305, "column": 14}}, + "33": {"start": {"line": 299, "column": 20}, "end": {"line": 301, "column": 22}}, + "34": {"start": {"line": 312, "column": 31}, "end": {"line": 322, "column": 9}}, + "35": {"start": {"line": 315, "column": 12}, "end": {"line": 320, "column": 14}}, + "36": {"start": {"line": 330, "column": 12}, "end": {"line": 334, "column": 14}}, + "37": {"start": {"line": 344, "column": 12}, "end": {"line": 349, "column": 14}}, + "38": {"start": {"line": 356, "column": 31}, "end": {"line": 368, "column": 9}}, + "39": {"start": {"line": 359, "column": 12}, "end": {"line": 366, "column": 14}}, + "40": {"start": {"line": 373, "column": 31}, "end": {"line": 383, "column": 9}}, + "41": {"start": {"line": 376, "column": 12}, "end": {"line": 381, "column": 14}}, + "42": {"start": {"line": 396, "column": 53}, "end": {"line": 396, "column": 80}}, + "43": {"start": {"line": 404, "column": 53}, "end": {"line": 404, "column": 143}}, + "44": {"start": {"line": 411, "column": 27}, "end": {"line": 435, "column": 1}}, + "45": {"start": {"line": 412, "column": 2}, "end": {"line": 434, "column": 4}}, + "46": {"start": {"line": 423, "column": 53}, "end": {"line": 423, "column": 114}}, + "47": {"start": {"line": 430, "column": 53}, "end": {"line": 430, "column": 80}}, + "48": {"start": {"line": 437, "column": 31}, "end": {"line": 560, "column": 1}}, + "49": {"start": {"line": 440, "column": 2}, "end": {"line": 559, "column": 4}}, + "50": {"start": {"line": 457, "column": 31}, "end": {"line": 469, "column": 9}}, + "51": {"start": {"line": 460, "column": 12}, "end": {"line": 467, "column": 14}}, + "52": {"start": {"line": 474, "column": 31}, "end": {"line": 486, "column": 9}}, + "53": {"start": {"line": 477, "column": 12}, "end": {"line": 484, "column": 14}}, + "54": {"start": {"line": 491, "column": 31}, "end": {"line": 505, "column": 9}}, + "55": {"start": {"line": 496, "column": 12}, "end": {"line": 503, "column": 14}}, + "56": {"start": {"line": 510, "column": 31}, "end": {"line": 524, "column": 9}}, + "57": {"start": {"line": 515, "column": 12}, "end": {"line": 522, "column": 14}}, + "58": {"start": {"line": 529, "column": 31}, "end": {"line": 541, "column": 9}}, + "59": {"start": {"line": 532, "column": 12}, "end": {"line": 539, "column": 14}}, + "60": {"start": {"line": 562, "column": 28}, "end": {"line": 582, "column": 1}}, + "61": {"start": {"line": 563, "column": 2}, "end": {"line": 581, "column": 4}}, + "62": {"start": {"line": 576, "column": 12}, "end": {"line": 576, "column": 130}}, + "63": {"start": {"line": 584, "column": 48}, "end": {"line": 591, "column": 1}}, + "64": {"start": {"line": 585, "column": 2}, "end": {"line": 590, "column": 4}}, + "65": {"start": {"line": 597, "column": 21}, "end": {"line": 651, "column": 1}}, + "66": {"start": {"line": 598, "column": 20}, "end": {"line": 598, "column": 41}}, + "67": {"start": {"line": 600, "column": 2}, "end": {"line": 617, "column": 9}}, + "68": {"start": {"line": 601, "column": 4}, "end": {"line": 603, "column": 5}}, + "69": {"start": {"line": 602, "column": 6}, "end": {"line": 602, "column": 13}}, + "70": {"start": {"line": 604, "column": 4}, "end": {"line": 604, "column": 38}}, + "71": {"start": {"line": 607, "column": 31}, "end": {"line": 607, "column": 85}}, + "72": {"start": {"line": 608, "column": 21}, "end": {"line": 608, "column": 53}}, + "73": {"start": {"line": 609, "column": 4}, "end": {"line": 613, "column": 5}}, + "74": {"start": {"line": 610, "column": 6}, "end": {"line": 610, "column": 38}}, + "75": {"start": {"line": 611, "column": 6}, "end": {"line": 611, "column": 33}}, + "76": {"start": {"line": 612, "column": 6}, "end": {"line": 612, "column": 34}}, + "77": {"start": {"line": 618, "column": 2}, "end": {"line": 628, "column": 3}}, + "78": {"start": {"line": 619, "column": 4}, "end": {"line": 627, "column": 5}}, + "79": {"start": {"line": 620, "column": 33}, "end": {"line": 620, "column": 100}}, + "80": {"start": {"line": 630, "column": 2}, "end": {"line": 650, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 58, "column": 27}, "end": {"line": 58, "column": 28}}, + "loc": {"start": {"line": 58, "column": 46}, "end": {"line": 95, "column": 1}}, + "line": 58 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 69, "column": 18}, "end": {"line": 69, "column": 19}}, + "loc": {"start": {"line": 70, "column": 10}, "end": {"line": 73, "column": 13}}, + "line": 70 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 82, "column": 18}, "end": {"line": 82, "column": 19}}, + "loc": {"start": {"line": 83, "column": 10}, "end": {"line": 86, "column": 13}}, + "line": 83 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 97, "column": 26}, "end": {"line": 97, "column": 27}}, + "loc": {"start": {"line": 97, "column": 45}, "end": {"line": 146, "column": 1}}, + "line": 97 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 105, "column": 14}, "end": {"line": 105, "column": 15}}, + "loc": {"start": {"line": 105, "column": 44}, "end": {"line": 105, "column": 75}}, + "line": 105 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 110, "column": 18}, "end": {"line": 110, "column": 19}}, + "loc": {"start": {"line": 111, "column": 10}, "end": {"line": 114, "column": 13}}, + "line": 111 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 119, "column": 18}, "end": {"line": 119, "column": 19}}, + "loc": {"start": {"line": 120, "column": 10}, "end": {"line": 123, "column": 13}}, + "line": 120 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 128, "column": 18}, "end": {"line": 128, "column": 19}}, + "loc": {"start": {"line": 129, "column": 10}, "end": {"line": 132, "column": 13}}, + "line": 129 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 137, "column": 18}, "end": {"line": 137, "column": 19}}, + "loc": {"start": {"line": 138, "column": 10}, "end": {"line": 141, "column": 13}}, + "line": 138 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 148, "column": 25}, "end": {"line": 148, "column": 26}}, + "loc": {"start": {"line": 148, "column": 44}, "end": {"line": 211, "column": 1}}, + "line": 148 + }, + "10": { + "name": "(anonymous_10)", + "decl": {"start": {"line": 160, "column": 18}, "end": {"line": 160, "column": 19}}, + "loc": {"start": {"line": 160, "column": 53}, "end": {"line": 160, "column": 114}}, + "line": 160 + }, + "11": { + "name": "(anonymous_11)", + "decl": {"start": {"line": 166, "column": 17}, "end": {"line": 166, "column": 18}}, + "loc": {"start": {"line": 166, "column": 31}, "end": {"line": 186, "column": 9}}, + "line": 166 + }, + "12": { + "name": "(anonymous_12)", + "decl": {"start": {"line": 168, "column": 18}, "end": {"line": 168, "column": 19}}, + "loc": {"start": {"line": 169, "column": 12}, "end": {"line": 184, "column": 14}}, + "line": 169 + }, + "13": { + "name": "(anonymous_13)", + "decl": {"start": {"line": 177, "column": 27}, "end": {"line": 177, "column": 28}}, + "loc": {"start": {"line": 178, "column": 20}, "end": {"line": 180, "column": 22}}, + "line": 178 + }, + "14": { + "name": "(anonymous_14)", + "decl": {"start": {"line": 193, "column": 18}, "end": {"line": 193, "column": 19}}, + "loc": {"start": {"line": 194, "column": 12}, "end": {"line": 198, "column": 14}}, + "line": 194 + }, + "15": { + "name": "(anonymous_15)", + "decl": {"start": {"line": 206, "column": 18}, "end": {"line": 206, "column": 19}}, + "loc": {"start": {"line": 206, "column": 53}, "end": {"line": 206, "column": 80}}, + "line": 206 + }, + "16": { + "name": "(anonymous_16)", + "decl": {"start": {"line": 213, "column": 22}, "end": {"line": 213, "column": 23}}, + "loc": {"start": {"line": 213, "column": 41}, "end": {"line": 252, "column": 1}}, + "line": 213 + }, + "17": { + "name": "(anonymous_17)", + "decl": {"start": {"line": 225, "column": 18}, "end": {"line": 225, "column": 19}}, + "loc": {"start": {"line": 225, "column": 53}, "end": {"line": 225, "column": 114}}, + "line": 225 + }, + "18": { + "name": "(anonymous_18)", + "decl": {"start": {"line": 233, "column": 18}, "end": {"line": 233, "column": 19}}, + "loc": {"start": {"line": 234, "column": 12}, "end": {"line": 239, "column": 14}}, + "line": 234 + }, + "19": { + "name": "(anonymous_19)", + "decl": {"start": {"line": 247, "column": 18}, "end": {"line": 247, "column": 19}}, + "loc": {"start": {"line": 247, "column": 53}, "end": {"line": 247, "column": 80}}, + "line": 247 + }, + "20": { + "name": "(anonymous_20)", + "decl": {"start": {"line": 254, "column": 16}, "end": {"line": 254, "column": 17}}, + "loc": {"start": {"line": 254, "column": 35}, "end": {"line": 409, "column": 1}}, + "line": 254 + }, + "21": { + "name": "(anonymous_21)", + "decl": {"start": {"line": 271, "column": 17}, "end": {"line": 271, "column": 18}}, + "loc": {"start": {"line": 271, "column": 31}, "end": {"line": 281, "column": 9}}, + "line": 271 + }, + "22": { + "name": "(anonymous_22)", + "decl": {"start": {"line": 273, "column": 18}, "end": {"line": 273, "column": 19}}, + "loc": {"start": {"line": 274, "column": 12}, "end": {"line": 279, "column": 14}}, + "line": 274 + }, + "23": { + "name": "(anonymous_23)", + "decl": {"start": {"line": 286, "column": 17}, "end": {"line": 286, "column": 18}}, + "loc": {"start": {"line": 286, "column": 31}, "end": {"line": 307, "column": 9}}, + "line": 286 + }, + "24": { + "name": "(anonymous_24)", + "decl": {"start": {"line": 288, "column": 18}, "end": {"line": 288, "column": 19}}, + "loc": {"start": {"line": 289, "column": 12}, "end": {"line": 305, "column": 14}}, + "line": 289 + }, + "25": { + "name": "(anonymous_25)", + "decl": {"start": {"line": 298, "column": 27}, "end": {"line": 298, "column": 28}}, + "loc": {"start": {"line": 299, "column": 20}, "end": {"line": 301, "column": 22}}, + "line": 299 + }, + "26": { + "name": "(anonymous_26)", + "decl": {"start": {"line": 312, "column": 17}, "end": {"line": 312, "column": 18}}, + "loc": {"start": {"line": 312, "column": 31}, "end": {"line": 322, "column": 9}}, + "line": 312 + }, + "27": { + "name": "(anonymous_27)", + "decl": {"start": {"line": 314, "column": 18}, "end": {"line": 314, "column": 19}}, + "loc": {"start": {"line": 315, "column": 12}, "end": {"line": 320, "column": 14}}, + "line": 315 + }, + "28": { + "name": "(anonymous_28)", + "decl": {"start": {"line": 329, "column": 18}, "end": {"line": 329, "column": 19}}, + "loc": {"start": {"line": 330, "column": 12}, "end": {"line": 334, "column": 14}}, + "line": 330 + }, + "29": { + "name": "(anonymous_29)", + "decl": {"start": {"line": 343, "column": 18}, "end": {"line": 343, "column": 19}}, + "loc": {"start": {"line": 344, "column": 12}, "end": {"line": 349, "column": 14}}, + "line": 344 + }, + "30": { + "name": "(anonymous_30)", + "decl": {"start": {"line": 356, "column": 17}, "end": {"line": 356, "column": 18}}, + "loc": {"start": {"line": 356, "column": 31}, "end": {"line": 368, "column": 9}}, + "line": 356 + }, + "31": { + "name": "(anonymous_31)", + "decl": {"start": {"line": 358, "column": 18}, "end": {"line": 358, "column": 19}}, + "loc": {"start": {"line": 359, "column": 12}, "end": {"line": 366, "column": 14}}, + "line": 359 + }, + "32": { + "name": "(anonymous_32)", + "decl": {"start": {"line": 373, "column": 17}, "end": {"line": 373, "column": 18}}, + "loc": {"start": {"line": 373, "column": 31}, "end": {"line": 383, "column": 9}}, + "line": 373 + }, + "33": { + "name": "(anonymous_33)", + "decl": {"start": {"line": 375, "column": 18}, "end": {"line": 375, "column": 19}}, + "loc": {"start": {"line": 376, "column": 12}, "end": {"line": 381, "column": 14}}, + "line": 376 + }, + "34": { + "name": "(anonymous_34)", + "decl": {"start": {"line": 396, "column": 18}, "end": {"line": 396, "column": 19}}, + "loc": {"start": {"line": 396, "column": 53}, "end": {"line": 396, "column": 80}}, + "line": 396 + }, + "35": { + "name": "(anonymous_35)", + "decl": {"start": {"line": 404, "column": 18}, "end": {"line": 404, "column": 19}}, + "loc": {"start": {"line": 404, "column": 53}, "end": {"line": 404, "column": 143}}, + "line": 404 + }, + "36": { + "name": "(anonymous_36)", + "decl": {"start": {"line": 411, "column": 27}, "end": {"line": 411, "column": 28}}, + "loc": {"start": {"line": 411, "column": 46}, "end": {"line": 435, "column": 1}}, + "line": 411 + }, + "37": { + "name": "(anonymous_37)", + "decl": {"start": {"line": 423, "column": 18}, "end": {"line": 423, "column": 19}}, + "loc": {"start": {"line": 423, "column": 53}, "end": {"line": 423, "column": 114}}, + "line": 423 + }, + "38": { + "name": "(anonymous_38)", + "decl": {"start": {"line": 430, "column": 18}, "end": {"line": 430, "column": 19}}, + "loc": {"start": {"line": 430, "column": 53}, "end": {"line": 430, "column": 80}}, + "line": 430 + }, + "39": { + "name": "(anonymous_39)", + "decl": {"start": {"line": 437, "column": 31}, "end": {"line": 437, "column": 32}}, + "loc": {"start": {"line": 437, "column": 81}, "end": {"line": 560, "column": 1}}, + "line": 437 + }, + "40": { + "name": "(anonymous_40)", + "decl": {"start": {"line": 457, "column": 17}, "end": {"line": 457, "column": 18}}, + "loc": {"start": {"line": 457, "column": 31}, "end": {"line": 469, "column": 9}}, + "line": 457 + }, + "41": { + "name": "(anonymous_41)", + "decl": {"start": {"line": 459, "column": 18}, "end": {"line": 459, "column": 19}}, + "loc": {"start": {"line": 460, "column": 12}, "end": {"line": 467, "column": 14}}, + "line": 460 + }, + "42": { + "name": "(anonymous_42)", + "decl": {"start": {"line": 474, "column": 17}, "end": {"line": 474, "column": 18}}, + "loc": {"start": {"line": 474, "column": 31}, "end": {"line": 486, "column": 9}}, + "line": 474 + }, + "43": { + "name": "(anonymous_43)", + "decl": {"start": {"line": 476, "column": 18}, "end": {"line": 476, "column": 19}}, + "loc": {"start": {"line": 477, "column": 12}, "end": {"line": 484, "column": 14}}, + "line": 477 + }, + "44": { + "name": "(anonymous_44)", + "decl": {"start": {"line": 491, "column": 17}, "end": {"line": 491, "column": 18}}, + "loc": {"start": {"line": 491, "column": 31}, "end": {"line": 505, "column": 9}}, + "line": 491 + }, + "45": { + "name": "(anonymous_45)", + "decl": {"start": {"line": 495, "column": 18}, "end": {"line": 495, "column": 19}}, + "loc": {"start": {"line": 496, "column": 12}, "end": {"line": 503, "column": 14}}, + "line": 496 + }, + "46": { + "name": "(anonymous_46)", + "decl": {"start": {"line": 510, "column": 17}, "end": {"line": 510, "column": 18}}, + "loc": {"start": {"line": 510, "column": 31}, "end": {"line": 524, "column": 9}}, + "line": 510 + }, + "47": { + "name": "(anonymous_47)", + "decl": {"start": {"line": 514, "column": 18}, "end": {"line": 514, "column": 19}}, + "loc": {"start": {"line": 515, "column": 12}, "end": {"line": 522, "column": 14}}, + "line": 515 + }, + "48": { + "name": "(anonymous_48)", + "decl": {"start": {"line": 529, "column": 17}, "end": {"line": 529, "column": 18}}, + "loc": {"start": {"line": 529, "column": 31}, "end": {"line": 541, "column": 9}}, + "line": 529 + }, + "49": { + "name": "(anonymous_49)", + "decl": {"start": {"line": 531, "column": 18}, "end": {"line": 531, "column": 19}}, + "loc": {"start": {"line": 532, "column": 12}, "end": {"line": 539, "column": 14}}, + "line": 532 + }, + "50": { + "name": "(anonymous_50)", + "decl": {"start": {"line": 562, "column": 28}, "end": {"line": 562, "column": 29}}, + "loc": {"start": {"line": 562, "column": 47}, "end": {"line": 582, "column": 1}}, + "line": 562 + }, + "51": { + "name": "(anonymous_51)", + "decl": {"start": {"line": 575, "column": 18}, "end": {"line": 575, "column": 19}}, + "loc": {"start": {"line": 576, "column": 12}, "end": {"line": 576, "column": 130}}, + "line": 576 + }, + "52": { + "name": "(anonymous_52)", + "decl": {"start": {"line": 584, "column": 48}, "end": {"line": 584, "column": 49}}, + "loc": {"start": {"line": 584, "column": 90}, "end": {"line": 591, "column": 1}}, + "line": 584 + }, + "53": { + "name": "(anonymous_53)", + "decl": {"start": {"line": 597, "column": 21}, "end": {"line": 597, "column": 22}}, + "loc": {"start": {"line": 597, "column": 40}, "end": {"line": 651, "column": 1}}, + "line": 597 + }, + "54": { + "name": "(anonymous_54)", + "decl": {"start": {"line": 600, "column": 12}, "end": {"line": 600, "column": 13}}, + "loc": {"start": {"line": 600, "column": 18}, "end": {"line": 617, "column": 3}}, + "line": 600 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 287, "column": 23}, "end": {"line": 287, "column": 114}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 287, "column": 50}, "end": {"line": 287, "column": 74}}, + {"start": {"line": 287, "column": 77}, "end": {"line": 287, "column": 114}} + ], + "line": 287 + }, + "1": { + "loc": {"start": {"line": 364, "column": 16}, "end": {"line": 364, "column": 115}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 364, "column": 16}, "end": {"line": 364, "column": 59}}, + {"start": {"line": 364, "column": 63}, "end": {"line": 364, "column": 115}} + ], + "line": 364 + }, + "2": { + "loc": {"start": {"line": 380, "column": 77}, "end": {"line": 380, "column": 130}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 380, "column": 77}, "end": {"line": 380, "column": 97}}, + {"start": {"line": 380, "column": 101}, "end": {"line": 380, "column": 130}} + ], + "line": 380 + }, + "3": { + "loc": {"start": {"line": 601, "column": 4}, "end": {"line": 603, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 601, "column": 4}, "end": {"line": 603, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 601 + }, + "4": { + "loc": {"start": {"line": 601, "column": 8}, "end": {"line": 601, "column": 81}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 601, "column": 8}, "end": {"line": 601, "column": 33}}, + {"start": {"line": 601, "column": 37}, "end": {"line": 601, "column": 81}} + ], + "line": 601 + }, + "5": { + "loc": {"start": {"line": 609, "column": 4}, "end": {"line": 613, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 609, "column": 4}, "end": {"line": 613, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 609 + }, + "6": { + "loc": {"start": {"line": 609, "column": 8}, "end": {"line": 609, "column": 66}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 609, "column": 8}, "end": {"line": 609, "column": 17}}, + {"start": {"line": 609, "column": 21}, "end": {"line": 609, "column": 34}}, + {"start": {"line": 609, "column": 38}, "end": {"line": 609, "column": 66}} + ], + "line": 609 + }, + "7": { + "loc": {"start": {"line": 618, "column": 2}, "end": {"line": 628, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 618, "column": 2}, "end": {"line": 628, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 618 + }, + "8": { + "loc": {"start": {"line": 619, "column": 4}, "end": {"line": 627, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 619, "column": 4}, "end": {"line": 627, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 619 + }, + "9": { + "loc": {"start": {"line": 636, "column": 7}, "end": {"line": 648, "column": 7}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 637, "column": 8}, "end": {"line": 643, "column": 10}}, + {"start": {"line": 644, "column": 10}, "end": {"line": 648, "column": 7}} + ], + "line": 636 + }, + "10": { + "loc": {"start": {"line": 644, "column": 10}, "end": {"line": 648, "column": 7}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 645, "column": 8}, "end": {"line": 645, "column": 84}}, + {"start": {"line": 647, "column": 8}, "end": {"line": 647, "column": 95}} + ], + "line": 644 + } + }, + "s": { + "0": 1, + "1": 1, + "2": 1, + "3": 1, + "4": 0, + "5": 0, + "6": 0, + "7": 1, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 1, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 0, + "22": 1, + "23": 0, + "24": 0, + "25": 0, + "26": 0, + "27": 1, + "28": 0, + "29": 0, + "30": 0, + "31": 0, + "32": 0, + "33": 0, + "34": 0, + "35": 0, + "36": 0, + "37": 0, + "38": 0, + "39": 0, + "40": 0, + "41": 0, + "42": 0, + "43": 0, + "44": 1, + "45": 0, + "46": 0, + "47": 0, + "48": 1, + "49": 3, + "50": 49, + "51": 47, + "52": 33, + "53": 31, + "54": 17, + "55": 16, + "56": 11, + "57": 11, + "58": 7, + "59": 7, + "60": 1, + "61": 0, + "62": 0, + "63": 1, + "64": 0, + "65": 1, + "66": 0, + "67": 0, + "68": 0, + "69": 0, + "70": 0, + "71": 0, + "72": 0, + "73": 0, + "74": 0, + "75": 0, + "76": 0, + "77": 0, + "78": 0, + "79": 0, + "80": 0 + }, + "f": { + "0": 0, + "1": 0, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 0, + "22": 0, + "23": 0, + "24": 0, + "25": 0, + "26": 0, + "27": 0, + "28": 0, + "29": 0, + "30": 0, + "31": 0, + "32": 0, + "33": 0, + "34": 0, + "35": 0, + "36": 0, + "37": 0, + "38": 0, + "39": 3, + "40": 49, + "41": 47, + "42": 33, + "43": 31, + "44": 17, + "45": 16, + "46": 11, + "47": 11, + "48": 7, + "49": 7, + "50": 0, + "51": 0, + "52": 0, + "53": 0, + "54": 0 + }, + "b": { + "0": [0, 0], + "1": [0, 0], + "2": [0, 0], + "3": [0, 0], + "4": [0, 0], + "5": [0, 0], + "6": [0, 0, 0], + "7": [0, 0], + "8": [0, 0], + "9": [0, 0], + "10": [0, 0] + }, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "7559a7db48c81a0313ba339a3851bc7e4fb05d27" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\navigation\\onboardingStateNavigation.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\navigation\\onboardingStateNavigation.tsx", + "statementMap": { + "0": {"start": {"line": 20, "column": 30}, "end": {"line": 20, "column": 63}}, + "1": {"start": {"line": 21, "column": 49}, "end": {"line": 136, "column": 1}}, + "2": {"start": {"line": 35, "column": 17}, "end": {"line": 35, "column": 72}}, + "3": {"start": {"line": 35, "column": 23}, "end": {"line": 35, "column": 72}}, + "4": {"start": {"line": 36, "column": 17}, "end": {"line": 36, "column": 68}}, + "5": {"start": {"line": 36, "column": 23}, "end": {"line": 36, "column": 68}}, + "6": {"start": {"line": 37, "column": 18}, "end": {"line": 37, "column": 57}}, + "7": {"start": {"line": 39, "column": 14}, "end": {"line": 39, "column": 42}}, + "8": {"start": {"line": 40, "column": 2}, "end": {"line": 43, "column": 3}}, + "9": {"start": {"line": 41, "column": 4}, "end": {"line": 41, "column": 38}}, + "10": {"start": {"line": 42, "column": 4}, "end": {"line": 42, "column": 11}}, + "11": {"start": {"line": 44, "column": 2}, "end": {"line": 135, "column": 3}}, + "12": {"start": {"line": 45, "column": 4}, "end": {"line": 53, "column": 6}}, + "13": {"start": {"line": 55, "column": 9}, "end": {"line": 135, "column": 3}}, + "14": {"start": {"line": 56, "column": 4}, "end": {"line": 73, "column": 7}}, + "15": {"start": {"line": 61, "column": 23}, "end": {"line": 61, "column": 71}}, + "16": {"start": {"line": 63, "column": 8}, "end": {"line": 66, "column": 10}}, + "17": {"start": {"line": 68, "column": 8}, "end": {"line": 71, "column": 10}}, + "18": {"start": {"line": 72, "column": 24}, "end": {"line": 72, "column": 92}}, + "19": {"start": {"line": 74, "column": 9}, "end": {"line": 135, "column": 3}}, + "20": {"start": {"line": 75, "column": 4}, "end": {"line": 93, "column": 7}}, + "21": {"start": {"line": 77, "column": 24}, "end": {"line": 77, "column": 92}}, + "22": {"start": {"line": 79, "column": 8}, "end": {"line": 82, "column": 10}}, + "23": {"start": {"line": 85, "column": 8}, "end": {"line": 91, "column": 11}}, + "24": {"start": {"line": 94, "column": 9}, "end": {"line": 135, "column": 3}}, + "25": {"start": {"line": 95, "column": 4}, "end": {"line": 108, "column": 7}}, + "26": {"start": {"line": 100, "column": 8}, "end": {"line": 106, "column": 11}}, + "27": {"start": {"line": 109, "column": 9}, "end": {"line": 135, "column": 3}}, + "28": {"start": {"line": 110, "column": 4}, "end": {"line": 120, "column": 7}}, + "29": {"start": {"line": 115, "column": 8}, "end": {"line": 118, "column": 11}}, + "30": {"start": {"line": 121, "column": 9}, "end": {"line": 135, "column": 3}}, + "31": {"start": {"line": 122, "column": 4}, "end": {"line": 122, "column": 81}}, + "32": {"start": {"line": 123, "column": 9}, "end": {"line": 135, "column": 3}}, + "33": {"start": {"line": 124, "column": 4}, "end": {"line": 127, "column": 7}}, + "34": {"start": {"line": 128, "column": 9}, "end": {"line": 135, "column": 3}}, + "35": {"start": {"line": 130, "column": 4}, "end": {"line": 130, "column": 36}}, + "36": {"start": {"line": 131, "column": 4}, "end": {"line": 131, "column": 90}}, + "37": {"start": {"line": 134, "column": 4}, "end": {"line": 134, "column": 64}}, + "38": {"start": {"line": 138, "column": 34}, "end": {"line": 144, "column": 1}}, + "39": {"start": {"line": 139, "column": 2}, "end": {"line": 143, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 21, "column": 49}, "end": {"line": 21, "column": 50}}, + "loc": {"start": {"line": 34, "column": 5}, "end": {"line": 136, "column": 1}}, + "line": 34 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 35, "column": 17}, "end": {"line": 35, "column": 18}}, + "loc": {"start": {"line": 35, "column": 23}, "end": {"line": 35, "column": 72}}, + "line": 35 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 36, "column": 17}, "end": {"line": 36, "column": 18}}, + "loc": {"start": {"line": 36, "column": 23}, "end": {"line": 36, "column": 68}}, + "line": 36 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 61, "column": 17}, "end": {"line": 61, "column": 18}}, + "loc": {"start": {"line": 61, "column": 23}, "end": {"line": 61, "column": 71}}, + "line": 61 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 62, "column": 21}, "end": {"line": 62, "column": 22}}, + "loc": {"start": {"line": 63, "column": 8}, "end": {"line": 66, "column": 10}}, + "line": 63 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 67, "column": 23}, "end": {"line": 67, "column": 24}}, + "loc": {"start": {"line": 68, "column": 8}, "end": {"line": 71, "column": 10}}, + "line": 68 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 72, "column": 18}, "end": {"line": 72, "column": 19}}, + "loc": {"start": {"line": 72, "column": 24}, "end": {"line": 72, "column": 92}}, + "line": 72 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 77, "column": 18}, "end": {"line": 77, "column": 19}}, + "loc": {"start": {"line": 77, "column": 24}, "end": {"line": 77, "column": 92}}, + "line": 77 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 78, "column": 22}, "end": {"line": 78, "column": 23}}, + "loc": {"start": {"line": 79, "column": 8}, "end": {"line": 82, "column": 10}}, + "line": 79 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 84, "column": 14}, "end": {"line": 84, "column": 15}}, + "loc": {"start": {"line": 84, "column": 57}, "end": {"line": 92, "column": 7}}, + "line": 84 + }, + "10": { + "name": "(anonymous_10)", + "decl": {"start": {"line": 99, "column": 14}, "end": {"line": 99, "column": 15}}, + "loc": {"start": {"line": 99, "column": 35}, "end": {"line": 107, "column": 7}}, + "line": 99 + }, + "11": { + "name": "(anonymous_11)", + "decl": {"start": {"line": 114, "column": 14}, "end": {"line": 114, "column": 15}}, + "loc": {"start": {"line": 114, "column": 35}, "end": {"line": 119, "column": 7}}, + "line": 114 + }, + "12": { + "name": "(anonymous_12)", + "decl": {"start": {"line": 138, "column": 34}, "end": {"line": 138, "column": 35}}, + "loc": {"start": {"line": 138, "column": 146}, "end": {"line": 144, "column": 1}}, + "line": 138 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 39, "column": 14}, "end": {"line": 39, "column": 42}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 39, "column": 14}, "end": {"line": 39, "column": 24}}, + {"start": {"line": 39, "column": 28}, "end": {"line": 39, "column": 42}} + ], + "line": 39 + }, + "1": { + "loc": {"start": {"line": 40, "column": 2}, "end": {"line": 43, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 40, "column": 2}, "end": {"line": 43, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 40 + }, + "2": { + "loc": {"start": {"line": 40, "column": 6}, "end": {"line": 40, "column": 41}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 40, "column": 6}, "end": {"line": 40, "column": 23}}, + {"start": {"line": 40, "column": 27}, "end": {"line": 40, "column": 41}} + ], + "line": 40 + }, + "3": { + "loc": {"start": {"line": 44, "column": 2}, "end": {"line": 135, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 44, "column": 2}, "end": {"line": 135, "column": 3}}, + {"start": {"line": 55, "column": 9}, "end": {"line": 135, "column": 3}} + ], + "line": 44 + }, + "4": { + "loc": {"start": {"line": 55, "column": 9}, "end": {"line": 135, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 55, "column": 9}, "end": {"line": 135, "column": 3}}, + {"start": {"line": 74, "column": 9}, "end": {"line": 135, "column": 3}} + ], + "line": 55 + }, + "5": { + "loc": {"start": {"line": 74, "column": 9}, "end": {"line": 135, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 74, "column": 9}, "end": {"line": 135, "column": 3}}, + {"start": {"line": 94, "column": 9}, "end": {"line": 135, "column": 3}} + ], + "line": 74 + }, + "6": { + "loc": {"start": {"line": 94, "column": 9}, "end": {"line": 135, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 94, "column": 9}, "end": {"line": 135, "column": 3}}, + {"start": {"line": 109, "column": 9}, "end": {"line": 135, "column": 3}} + ], + "line": 94 + }, + "7": { + "loc": {"start": {"line": 109, "column": 9}, "end": {"line": 135, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 109, "column": 9}, "end": {"line": 135, "column": 3}}, + {"start": {"line": 121, "column": 9}, "end": {"line": 135, "column": 3}} + ], + "line": 109 + }, + "8": { + "loc": {"start": {"line": 121, "column": 9}, "end": {"line": 135, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 121, "column": 9}, "end": {"line": 135, "column": 3}}, + {"start": {"line": 123, "column": 9}, "end": {"line": 135, "column": 3}} + ], + "line": 121 + }, + "9": { + "loc": {"start": {"line": 123, "column": 9}, "end": {"line": 135, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 123, "column": 9}, "end": {"line": 135, "column": 3}}, + {"start": {"line": 128, "column": 9}, "end": {"line": 135, "column": 3}} + ], + "line": 123 + }, + "10": { + "loc": {"start": {"line": 128, "column": 9}, "end": {"line": 135, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 128, "column": 9}, "end": {"line": 135, "column": 3}}, + {"start": {"line": 133, "column": 9}, "end": {"line": 135, "column": 3}} + ], + "line": 128 + }, + "11": { + "loc": {"start": {"line": 140, "column": 60}, "end": {"line": 140, "column": 148}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 140, "column": 60}, "end": {"line": 140, "column": 90}}, + {"start": {"line": 140, "column": 94}, "end": {"line": 140, "column": 148}} + ], + "line": 140 + } + }, + "s": { + "0": 1, + "1": 1, + "2": 55, + "3": 0, + "4": 55, + "5": 25, + "6": 55, + "7": 55, + "8": 55, + "9": 0, + "10": 0, + "11": 55, + "12": 5, + "13": 50, + "14": 16, + "15": 0, + "16": 3, + "17": 3, + "18": 16, + "19": 34, + "20": 15, + "21": 15, + "22": 5, + "23": 0, + "24": 19, + "25": 5, + "26": 4, + "27": 14, + "28": 4, + "29": 4, + "30": 10, + "31": 4, + "32": 6, + "33": 3, + "34": 3, + "35": 3, + "36": 3, + "37": 0, + "38": 1, + "39": 3 + }, + "f": {"0": 55, "1": 0, "2": 25, "3": 0, "4": 3, "5": 3, "6": 16, "7": 15, "8": 5, "9": 0, "10": 4, "11": 4, "12": 3}, + "b": { + "0": [55, 55], + "1": [0, 55], + "2": [55, 55], + "3": [5, 50], + "4": [16, 34], + "5": [15, 19], + "6": [5, 14], + "7": [4, 10], + "8": [4, 6], + "9": [3, 3], + "10": [3, 0], + "11": [3, 0] + }, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "22794cd5c90900615c684800db8bc9a9cb436dc7" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\navigation\\rootNavigation.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\navigation\\rootNavigation.ts", + "statementMap": { + "0": {"start": {"line": 6, "column": 29}, "end": {"line": 6, "column": 75}}, + "1": {"start": {"line": 11, "column": 81}, "end": {"line": 24, "column": 1}}, + "2": {"start": {"line": 12, "column": 91}, "end": {"line": 12, "column": 130}}, + "3": {"start": {"line": 13, "column": 30}, "end": {"line": 13, "column": 70}}, + "4": {"start": {"line": 15, "column": 69}, "end": {"line": 15, "column": 104}}, + "5": {"start": {"line": 16, "column": 16}, "end": {"line": 16, "column": 47}}, + "6": {"start": {"line": 17, "column": 19}, "end": {"line": 17, "column": 53}}, + "7": {"start": {"line": 18, "column": 19}, "end": {"line": 18, "column": 53}}, + "8": {"start": {"line": 19, "column": 15}, "end": {"line": 19, "column": 70}}, + "9": {"start": {"line": 20, "column": 30}, "end": {"line": 20, "column": 66}}, + "10": {"start": {"line": 21, "column": 18}, "end": {"line": 21, "column": 90}}, + "11": {"start": {"line": 22, "column": 25}, "end": {"line": 22, "column": 71}}, + "12": {"start": {"line": 23, "column": 17}, "end": {"line": 23, "column": 40}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 12, "column": 12}, "end": {"line": 12, "column": 13}}, + "loc": {"start": {"line": 12, "column": 91}, "end": {"line": 12, "column": 130}}, + "line": 12 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 13, "column": 12}, "end": {"line": 13, "column": 13}}, + "loc": {"start": {"line": 13, "column": 30}, "end": {"line": 13, "column": 70}}, + "line": 13 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 15, "column": 9}, "end": {"line": 15, "column": 10}}, + "loc": {"start": {"line": 15, "column": 69}, "end": {"line": 15, "column": 104}}, + "line": 15 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 16, "column": 10}, "end": {"line": 16, "column": 11}}, + "loc": {"start": {"line": 16, "column": 16}, "end": {"line": 16, "column": 47}}, + "line": 16 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 17, "column": 13}, "end": {"line": 17, "column": 14}}, + "loc": {"start": {"line": 17, "column": 19}, "end": {"line": 17, "column": 53}}, + "line": 17 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 18, "column": 13}, "end": {"line": 18, "column": 14}}, + "loc": {"start": {"line": 18, "column": 19}, "end": {"line": 18, "column": 53}}, + "line": 18 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 19, "column": 9}, "end": {"line": 19, "column": 10}}, + "loc": {"start": {"line": 19, "column": 15}, "end": {"line": 19, "column": 70}}, + "line": 19 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 20, "column": 13}, "end": {"line": 20, "column": 14}}, + "loc": {"start": {"line": 20, "column": 30}, "end": {"line": 20, "column": 66}}, + "line": 20 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 21, "column": 12}, "end": {"line": 21, "column": 13}}, + "loc": {"start": {"line": 21, "column": 18}, "end": {"line": 21, "column": 90}}, + "line": 21 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 22, "column": 19}, "end": {"line": 22, "column": 20}}, + "loc": {"start": {"line": 22, "column": 25}, "end": {"line": 22, "column": 71}}, + "line": 22 + }, + "10": { + "name": "(anonymous_10)", + "decl": {"start": {"line": 23, "column": 11}, "end": {"line": 23, "column": 12}}, + "loc": {"start": {"line": 23, "column": 17}, "end": {"line": 23, "column": 40}}, + "line": 23 + } + }, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 0, "3": 52, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0, "10": 0, "11": 0, "12": 55}, + "f": {"0": 0, "1": 52, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0, "10": 55}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "983a349c7d1e43995043856f1e415f852a9e4359" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\providers\\authentication\\SIOPv2Provider.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\providers\\authentication\\SIOPv2Provider.ts", + "statementMap": { + "0": {"start": {"line": 13, "column": 30}, "end": {"line": 13, "column": 63}}, + "1": {"start": {"line": 15, "column": 30}, "end": {"line": 24, "column": 1}}, + "2": {"start": {"line": 16, "column": 29}, "end": {"line": 18, "column": 3}}, + "3": {"start": {"line": 17, "column": 16}, "end": {"line": 17, "column": 109}}, + "4": {"start": {"line": 20, "column": 2}, "end": {"line": 20, "column": 65}}, + "5": {"start": {"line": 21, "column": 39}, "end": {"line": 21, "column": 78}}, + "6": {"start": {"line": 22, "column": 2}, "end": {"line": 22, "column": 83}}, + "7": {"start": {"line": 23, "column": 2}, "end": {"line": 23, "column": 38}}, + "8": {"start": {"line": 26, "column": 30}, "end": {"line": 28, "column": 1}}, + "9": {"start": {"line": 27, "column": 2}, "end": {"line": 27, "column": 45}}, + "10": {"start": {"line": 30, "column": 35}, "end": {"line": 42, "column": 1}}, + "11": {"start": {"line": 31, "column": 2}, "end": {"line": 41, "column": 5}}, + "12": {"start": {"line": 44, "column": 45}, "end": {"line": 107, "column": 1}}, + "13": {"start": {"line": 51, "column": 2}, "end": {"line": 53, "column": 3}}, + "14": {"start": {"line": 52, "column": 4}, "end": {"line": 52, "column": 101}}, + "15": {"start": {"line": 54, "column": 29}, "end": {"line": 54, "column": 86}}, + "16": {"start": {"line": 55, "column": 42}, "end": {"line": 55, "column": 81}}, + "17": {"start": {"line": 56, "column": 2}, "end": {"line": 58, "column": 3}}, + "18": {"start": {"line": 57, "column": 4}, "end": {"line": 57, "column": 89}}, + "19": {"start": {"line": 62, "column": 32}, "end": {"line": 62, "column": 46}}, + "20": {"start": {"line": 64, "column": 2}, "end": {"line": 92, "column": 3}}, + "21": {"start": {"line": 65, "column": 27}, "end": {"line": 65, "column": 52}}, + "22": {"start": {"line": 66, "column": 20}, "end": {"line": 66, "column": 59}}, + "23": {"start": {"line": 67, "column": 38}, "end": {"line": 69, "column": 61}}, + "24": {"start": {"line": 71, "column": 6}, "end": {"line": 75, "column": 38}}, + "25": {"start": {"line": 76, "column": 4}, "end": {"line": 76, "column": 62}}, + "26": {"start": {"line": 77, "column": 4}, "end": {"line": 83, "column": 7}}, + "27": {"start": {"line": 84, "column": 4}, "end": {"line": 88, "column": 5}}, + "28": {"start": {"line": 85, "column": 6}, "end": {"line": 85, "column": 66}}, + "29": {"start": {"line": 86, "column": 11}, "end": {"line": 88, "column": 5}}, + "30": {"start": {"line": 87, "column": 6}, "end": {"line": 87, "column": 108}}, + "31": {"start": {"line": 90, "column": 4}, "end": {"line": 90, "column": 91}}, + "32": {"start": {"line": 91, "column": 4}, "end": {"line": 91, "column": 76}}, + "33": {"start": {"line": 93, "column": 22}, "end": {"line": 93, "column": 87}}, + "34": {"start": {"line": 95, "column": 2}, "end": {"line": 95, "column": 44}}, + "35": {"start": {"line": 97, "column": 2}, "end": {"line": 97, "column": 87}}, + "36": {"start": {"line": 98, "column": 2}, "end": {"line": 98, "column": 42}}, + "37": {"start": {"line": 99, "column": 2}, "end": {"line": 99, "column": 63}}, + "38": {"start": {"line": 100, "column": 19}, "end": {"line": 104, "column": 4}}, + "39": {"start": {"line": 101, "column": 61}, "end": {"line": 101, "column": 86}}, + "40": {"start": {"line": 106, "column": 2}, "end": {"line": 106, "column": 24}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 15, "column": 30}, "end": {"line": 15, "column": 31}}, + "loc": {"start": {"line": 15, "column": 103}, "end": {"line": 24, "column": 1}}, + "line": 15 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 17, "column": 4}, "end": {"line": 17, "column": 5}}, + "loc": {"start": {"line": 17, "column": 16}, "end": {"line": 17, "column": 109}}, + "line": 17 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 26, "column": 30}, "end": {"line": 26, "column": 31}}, + "loc": {"start": {"line": 26, "column": 79}, "end": {"line": 28, "column": 1}}, + "line": 26 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 30, "column": 35}, "end": {"line": 30, "column": 36}}, + "loc": {"start": {"line": 30, "column": 142}, "end": {"line": 42, "column": 1}}, + "line": 30 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 44, "column": 45}, "end": {"line": 44, "column": 46}}, + "loc": {"start": {"line": 50, "column": 5}, "end": {"line": 107, "column": 1}}, + "line": 50 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 101, "column": 55}, "end": {"line": 101, "column": 56}}, + "loc": {"start": {"line": 101, "column": 61}, "end": {"line": 101, "column": 86}}, + "line": 101 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 51, "column": 2}, "end": {"line": 53, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 51, "column": 2}, "end": {"line": 53, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 51 + }, + "1": { + "loc": {"start": {"line": 56, "column": 2}, "end": {"line": 58, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 56, "column": 2}, "end": {"line": 58, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 56 + }, + "2": { + "loc": {"start": {"line": 56, "column": 6}, "end": {"line": 56, "column": 46}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 56, "column": 6}, "end": {"line": 56, "column": 18}}, + {"start": {"line": 56, "column": 22}, "end": {"line": 56, "column": 46}} + ], + "line": 56 + }, + "3": { + "loc": {"start": {"line": 64, "column": 2}, "end": {"line": 92, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 64, "column": 2}, "end": {"line": 92, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 64 + }, + "4": { + "loc": {"start": {"line": 67, "column": 38}, "end": {"line": 69, "column": 61}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 68, "column": 8}, "end": {"line": 68, "column": 48}}, + {"start": {"line": 69, "column": 8}, "end": {"line": 69, "column": 61}} + ], + "line": 67 + }, + "5": { + "loc": {"start": {"line": 71, "column": 6}, "end": {"line": 75, "column": 38}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 71, "column": 7}, "end": {"line": 71, "column": 84}}, + {"start": {"line": 72, "column": 6}, "end": {"line": 72, "column": 20}}, + {"start": {"line": 73, "column": 7}, "end": {"line": 75, "column": 37}} + ], + "line": 71 + }, + "6": { + "loc": {"start": {"line": 73, "column": 7}, "end": {"line": 75, "column": 37}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 74, "column": 10}, "end": {"line": 74, "column": 47}}, + {"start": {"line": 75, "column": 10}, "end": {"line": 75, "column": 37}} + ], + "line": 73 + }, + "7": { + "loc": {"start": {"line": 84, "column": 4}, "end": {"line": 88, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 84, "column": 4}, "end": {"line": 88, "column": 5}}, + {"start": {"line": 86, "column": 11}, "end": {"line": 88, "column": 5}} + ], + "line": 84 + }, + "8": { + "loc": {"start": {"line": 84, "column": 8}, "end": {"line": 84, "column": 66}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 84, "column": 8}, "end": {"line": 84, "column": 29}}, + {"start": {"line": 84, "column": 33}, "end": {"line": 84, "column": 66}} + ], + "line": 84 + }, + "9": { + "loc": {"start": {"line": 86, "column": 11}, "end": {"line": 88, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 86, "column": 11}, "end": {"line": 88, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 86 + }, + "10": { + "loc": {"start": {"line": 102, "column": 8}, "end": {"line": 102, "column": 58}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 102, "column": 8}, "end": {"line": 102, "column": 30}}, + {"start": {"line": 102, "column": 34}, "end": {"line": 102, "column": 58}} + ], + "line": 102 + } + }, + "s": { + "0": 1, + "1": 1, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 1, + "9": 0, + "10": 1, + "11": 0, + "12": 1, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 0, + "22": 0, + "23": 0, + "24": 0, + "25": 0, + "26": 0, + "27": 0, + "28": 0, + "29": 0, + "30": 0, + "31": 0, + "32": 0, + "33": 0, + "34": 0, + "35": 0, + "36": 0, + "37": 0, + "38": 0, + "39": 0, + "40": 0 + }, + "f": {"0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0}, + "b": { + "0": [0, 0], + "1": [0, 0], + "2": [0, 0], + "3": [0, 0], + "4": [0, 0], + "5": [0, 0, 0], + "6": [0, 0], + "7": [0, 0], + "8": [0, 0], + "9": [0, 0], + "10": [0, 0] + }, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "12371257b4ba75ccfd38dbf6396112cf844eb7f5" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\providers\\credential\\JwtVcPresentationProfileProvider.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\providers\\credential\\JwtVcPresentationProfileProvider.ts", + "statementMap": { + "0": {"start": {"line": 10, "column": 30}, "end": {"line": 10, "column": 52}}, + "1": {"start": {"line": 13, "column": 18}, "end": {"line": 26, "column": 3}}, + "2": {"start": {"line": 14, "column": 4}, "end": {"line": 17, "column": 5}}, + "3": {"start": {"line": 15, "column": 6}, "end": {"line": 15, "column": 40}}, + "4": {"start": {"line": 16, "column": 6}, "end": {"line": 16, "column": 50}}, + "5": {"start": {"line": 19, "column": 23}, "end": {"line": 19, "column": 67}}, + "6": {"start": {"line": 20, "column": 4}, "end": {"line": 23, "column": 5}}, + "7": {"start": {"line": 21, "column": 6}, "end": {"line": 21, "column": 36}}, + "8": {"start": {"line": 22, "column": 6}, "end": {"line": 22, "column": 59}}, + "9": {"start": {"line": 25, "column": 4}, "end": {"line": 25, "column": 22}}, + "10": {"start": {"line": 28, "column": 22}, "end": {"line": 48, "column": 3}}, + "11": {"start": {"line": 30, "column": 4}, "end": {"line": 47, "column": 9}}, + "12": {"start": {"line": 32, "column": 8}, "end": {"line": 38, "column": 9}}, + "13": {"start": {"line": 33, "column": 10}, "end": {"line": 35, "column": 11}}, + "14": {"start": {"line": 34, "column": 12}, "end": {"line": 34, "column": 93}}, + "15": {"start": {"line": 36, "column": 10}, "end": {"line": 36, "column": 70}}, + "16": {"start": {"line": 37, "column": 10}, "end": {"line": 37, "column": 93}}, + "17": {"start": {"line": 39, "column": 8}, "end": {"line": 39, "column": 31}}, + "18": {"start": {"line": 42, "column": 8}, "end": {"line": 42, "column": 37}}, + "19": {"start": {"line": 45, "column": 8}, "end": {"line": 45, "column": 59}}, + "20": {"start": {"line": 46, "column": 8}, "end": {"line": 46, "column": 37}}, + "21": {"start": {"line": 50, "column": 23}, "end": {"line": 70, "column": 3}}, + "22": {"start": {"line": 54, "column": 4}, "end": {"line": 69, "column": 9}}, + "23": {"start": {"line": 56, "column": 8}, "end": {"line": 59, "column": 9}}, + "24": {"start": {"line": 57, "column": 10}, "end": {"line": 57, "column": 44}}, + "25": {"start": {"line": 58, "column": 10}, "end": {"line": 58, "column": 67}}, + "26": {"start": {"line": 60, "column": 8}, "end": {"line": 60, "column": 31}}, + "27": {"start": {"line": 64, "column": 8}, "end": {"line": 64, "column": 48}}, + "28": {"start": {"line": 67, "column": 8}, "end": {"line": 67, "column": 59}}, + "29": {"start": {"line": 68, "column": 8}, "end": {"line": 68, "column": 37}}, + "30": {"start": {"line": 72, "column": 24}, "end": {"line": 81, "column": 3}}, + "31": {"start": {"line": 74, "column": 20}, "end": {"line": 74, "column": 35}}, + "32": {"start": {"line": 75, "column": 4}, "end": {"line": 80, "column": 5}}, + "33": {"start": {"line": 76, "column": 6}, "end": {"line": 76, "column": 43}}, + "34": {"start": {"line": 78, "column": 6}, "end": {"line": 78, "column": 43}}, + "35": {"start": {"line": 79, "column": 6}, "end": {"line": 79, "column": 35}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 13, "column": 18}, "end": {"line": 13, "column": 19}}, + "loc": {"start": {"line": 13, "column": 58}, "end": {"line": 26, "column": 3}}, + "line": 13 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 28, "column": 22}, "end": {"line": 28, "column": 23}}, + "loc": {"start": {"line": 28, "column": 59}, "end": {"line": 48, "column": 3}}, + "line": 28 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 31, "column": 12}, "end": {"line": 31, "column": 13}}, + "loc": {"start": {"line": 31, "column": 36}, "end": {"line": 40, "column": 7}}, + "line": 31 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 41, "column": 12}, "end": {"line": 41, "column": 13}}, + "loc": {"start": {"line": 41, "column": 29}, "end": {"line": 43, "column": 7}}, + "line": 41 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 44, "column": 13}, "end": {"line": 44, "column": 14}}, + "loc": {"start": {"line": 44, "column": 31}, "end": {"line": 47, "column": 7}}, + "line": 44 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 50, "column": 23}, "end": {"line": 50, "column": 24}}, + "loc": {"start": {"line": 50, "column": 61}, "end": {"line": 70, "column": 3}}, + "line": 50 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 55, "column": 12}, "end": {"line": 55, "column": 13}}, + "loc": {"start": {"line": 55, "column": 42}, "end": {"line": 61, "column": 7}}, + "line": 55 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 62, "column": 12}, "end": {"line": 62, "column": 13}}, + "loc": {"start": {"line": 62, "column": 31}, "end": {"line": 65, "column": 7}}, + "line": 62 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 66, "column": 13}, "end": {"line": 66, "column": 14}}, + "loc": {"start": {"line": 66, "column": 22}, "end": {"line": 69, "column": 7}}, + "line": 66 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 72, "column": 24}, "end": {"line": 72, "column": 25}}, + "loc": {"start": {"line": 72, "column": 46}, "end": {"line": 81, "column": 3}}, + "line": 72 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 14, "column": 4}, "end": {"line": 17, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 14, "column": 4}, "end": {"line": 17, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 14 + }, + "1": { + "loc": {"start": {"line": 20, "column": 4}, "end": {"line": 23, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 20, "column": 4}, "end": {"line": 23, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 20 + }, + "2": { + "loc": {"start": {"line": 32, "column": 8}, "end": {"line": 38, "column": 9}}, + "type": "if", + "locations": [ + {"start": {"line": 32, "column": 8}, "end": {"line": 38, "column": 9}}, + {"start": {}, "end": {}} + ], + "line": 32 + }, + "3": { + "loc": {"start": {"line": 33, "column": 10}, "end": {"line": 35, "column": 11}}, + "type": "if", + "locations": [ + {"start": {"line": 33, "column": 10}, "end": {"line": 35, "column": 11}}, + {"start": {}, "end": {}} + ], + "line": 33 + }, + "4": { + "loc": {"start": {"line": 56, "column": 8}, "end": {"line": 59, "column": 9}}, + "type": "if", + "locations": [ + {"start": {"line": 56, "column": 8}, "end": {"line": 59, "column": 9}}, + {"start": {}, "end": {}} + ], + "line": 56 + } + }, + "s": { + "0": 1, + "1": 0, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 0, + "22": 0, + "23": 0, + "24": 0, + "25": 0, + "26": 0, + "27": 0, + "28": 0, + "29": 0, + "30": 0, + "31": 0, + "32": 0, + "33": 0, + "34": 0, + "35": 0 + }, + "f": {"0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0}, + "b": {"0": [0, 0], "1": [0, 0], "2": [0, 0], "3": [0, 0], "4": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "d688d72ba80d42259021c9ecc1d3d70342b7240c" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\providers\\credential\\OpenId4VcIssuanceProvider.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\providers\\credential\\OpenId4VcIssuanceProvider.ts", + "statementMap": { + "0": {"start": {"line": 40, "column": 21}, "end": {"line": 40, "column": 36}}, + "1": {"start": {"line": 42, "column": 30}, "end": {"line": 42, "column": 59}}, + "2": {"start": {"line": 45, "column": 35}, "end": {"line": 45, "column": 70}}, + "3": {"start": {"line": 58, "column": 36}, "end": {"line": 58, "column": 132}}, + "4": {"start": {"line": 60, "column": 51}, "end": {"line": 66, "column": 1}}, + "5": {"start": {"line": 74, "column": 48}, "end": {"line": 74, "column": 139}}, + "6": {"start": {"line": 89, "column": 34}, "end": {"line": 144, "column": 3}}, + "7": {"start": {"line": 91, "column": 25}, "end": {"line": 95, "column": 5}}, + "8": {"start": {"line": 97, "column": 4}, "end": {"line": 143, "column": 5}}, + "9": {"start": {"line": 99, "column": 8}, "end": {"line": 102, "column": 10}}, + "10": {"start": {"line": 104, "column": 8}, "end": {"line": 107, "column": 10}}, + "11": {"start": {"line": 109, "column": 8}, "end": {"line": 112, "column": 10}}, + "12": {"start": {"line": 114, "column": 8}, "end": {"line": 117, "column": 10}}, + "13": {"start": {"line": 119, "column": 8}, "end": {"line": 122, "column": 10}}, + "14": {"start": {"line": 124, "column": 8}, "end": {"line": 127, "column": 10}}, + "15": {"start": {"line": 129, "column": 8}, "end": {"line": 132, "column": 10}}, + "16": {"start": {"line": 134, "column": 8}, "end": {"line": 137, "column": 10}}, + "17": {"start": {"line": 139, "column": 8}, "end": {"line": 142, "column": 10}}, + "18": {"start": {"line": 154, "column": 4}, "end": {"line": 154, "column": 25}}, + "19": {"start": {"line": 157, "column": 36}, "end": {"line": 168, "column": 3}}, + "20": {"start": {"line": 158, "column": 4}, "end": {"line": 161, "column": 5}}, + "21": {"start": {"line": 159, "column": 6}, "end": {"line": 159, "column": 41}}, + "22": {"start": {"line": 160, "column": 6}, "end": {"line": 160, "column": 50}}, + "23": {"start": {"line": 162, "column": 4}, "end": {"line": 167, "column": 6}}, + "24": {"start": {"line": 170, "column": 38}, "end": {"line": 194, "column": 3}}, + "25": {"start": {"line": 171, "column": 20}, "end": {"line": 171, "column": 74}}, + "26": {"start": {"line": 172, "column": 60}, "end": {"line": 172, "column": 62}}, + "27": {"start": {"line": 174, "column": 4}, "end": {"line": 187, "column": 5}}, + "28": {"start": {"line": 178, "column": 33}, "end": {"line": 181, "column": 8}}, + "29": {"start": {"line": 182, "column": 6}, "end": {"line": 186, "column": 9}}, + "30": {"start": {"line": 189, "column": 4}, "end": {"line": 191, "column": 5}}, + "31": {"start": {"line": 190, "column": 6}, "end": {"line": 190, "column": 113}}, + "32": {"start": {"line": 193, "column": 4}, "end": {"line": 193, "column": 31}}, + "33": {"start": {"line": 196, "column": 25}, "end": {"line": 243, "column": 3}}, + "34": {"start": {"line": 197, "column": 4}, "end": {"line": 199, "column": 5}}, + "35": {"start": {"line": 198, "column": 6}, "end": {"line": 198, "column": 77}}, + "36": {"start": {"line": 200, "column": 23}, "end": {"line": 203, "column": 6}}, + "37": {"start": {"line": 205, "column": 6}, "end": {"line": 206, "column": 110}}, + "38": {"start": {"line": 207, "column": 16}, "end": {"line": 207, "column": 46}}, + "39": {"start": {"line": 208, "column": 16}, "end": {"line": 208, "column": 46}}, + "40": {"start": {"line": 210, "column": 63}, "end": {"line": 224, "column": 5}}, + "41": {"start": {"line": 212, "column": 8}, "end": {"line": 212, "column": 71}}, + "42": {"start": {"line": 213, "column": 8}, "end": {"line": 213, "column": 68}}, + "43": {"start": {"line": 214, "column": 8}, "end": {"line": 222, "column": 11}}, + "44": {"start": {"line": 226, "column": 4}, "end": {"line": 242, "column": 5}}, + "45": {"start": {"line": 228, "column": 6}, "end": {"line": 228, "column": 43}}, + "46": {"start": {"line": 230, "column": 6}, "end": {"line": 230, "column": 126}}, + "47": {"start": {"line": 231, "column": 6}, "end": {"line": 238, "column": 9}}, + "48": {"start": {"line": 232, "column": 58}, "end": {"line": 232, "column": 89}}, + "49": {"start": {"line": 240, "column": 6}, "end": {"line": 240, "column": 56}}, + "50": {"start": {"line": 241, "column": 6}, "end": {"line": 241, "column": 35}}, + "51": {"start": {"line": 247, "column": 4}, "end": {"line": 247, "column": 103}}, + "52": {"start": {"line": 250, "column": 53}, "end": {"line": 303, "column": 3}}, + "53": {"start": {"line": 251, "column": 4}, "end": {"line": 253, "column": 5}}, + "54": {"start": {"line": 252, "column": 6}, "end": {"line": 252, "column": 71}}, + "55": {"start": {"line": 254, "column": 4}, "end": {"line": 266, "column": 5}}, + "56": {"start": {"line": 256, "column": 41}, "end": {"line": 256, "column": 50}}, + "57": {"start": {"line": 257, "column": 6}, "end": {"line": 264, "column": 7}}, + "58": {"start": {"line": 258, "column": 8}, "end": {"line": 260, "column": 57}}, + "59": {"start": {"line": 259, "column": 23}, "end": {"line": 259, "column": 44}}, + "60": {"start": {"line": 260, "column": 20}, "end": {"line": 260, "column": 55}}, + "61": {"start": {"line": 261, "column": 8}, "end": {"line": 263, "column": 9}}, + "62": {"start": {"line": 262, "column": 10}, "end": {"line": 262, "column": 29}}, + "63": {"start": {"line": 265, "column": 6}, "end": {"line": 265, "column": 126}}, + "64": {"start": {"line": 267, "column": 4}, "end": {"line": 269, "column": 5}}, + "65": {"start": {"line": 268, "column": 6}, "end": {"line": 268, "column": 82}}, + "66": {"start": {"line": 271, "column": 4}, "end": {"line": 294, "column": 5}}, + "67": {"start": {"line": 272, "column": 6}, "end": {"line": 272, "column": 89}}, + "68": {"start": {"line": 273, "column": 6}, "end": {"line": 293, "column": 8}}, + "69": {"start": {"line": 275, "column": 72}, "end": {"line": 280, "column": 11}}, + "70": {"start": {"line": 278, "column": 16}, "end": {"line": 278, "column": 115}}, + "71": {"start": {"line": 283, "column": 12}, "end": {"line": 287, "column": 30}}, + "72": {"start": {"line": 284, "column": 56}, "end": {"line": 284, "column": 87}}, + "73": {"start": {"line": 289, "column": 10}, "end": {"line": 291, "column": 11}}, + "74": {"start": {"line": 290, "column": 12}, "end": {"line": 290, "column": 76}}, + "75": {"start": {"line": 296, "column": 4}, "end": {"line": 302, "column": 6}}, + "76": {"start": {"line": 305, "column": 30}, "end": {"line": 312, "column": 3}}, + "77": {"start": {"line": 306, "column": 4}, "end": {"line": 310, "column": 5}}, + "78": {"start": {"line": 307, "column": 23}, "end": {"line": 307, "column": 95}}, + "79": {"start": {"line": 308, "column": 6}, "end": {"line": 308, "column": 87}}, + "80": {"start": {"line": 309, "column": 6}, "end": {"line": 309, "column": 116}}, + "81": {"start": {"line": 311, "column": 4}, "end": {"line": 311, "column": 36}}, + "82": {"start": {"line": 314, "column": 42}, "end": {"line": 340, "column": 3}}, + "83": {"start": {"line": 316, "column": 25}, "end": {"line": 323, "column": 5}}, + "84": {"start": {"line": 319, "column": 62}, "end": {"line": 319, "column": 146}}, + "85": {"start": {"line": 325, "column": 61}, "end": {"line": 325, "column": 63}}, + "86": {"start": {"line": 327, "column": 4}, "end": {"line": 337, "column": 5}}, + "87": {"start": {"line": 328, "column": 6}, "end": {"line": 336, "column": 7}}, + "88": {"start": {"line": 329, "column": 36}, "end": {"line": 331, "column": 9}}, + "89": {"start": {"line": 330, "column": 65}, "end": {"line": 330, "column": 114}}, + "90": {"start": {"line": 332, "column": 8}, "end": {"line": 335, "column": 9}}, + "91": {"start": {"line": 333, "column": 10}, "end": {"line": 333, "column": 57}}, + "92": {"start": {"line": 334, "column": 10}, "end": {"line": 334, "column": 16}}, + "93": {"start": {"line": 339, "column": 4}, "end": {"line": 339, "column": 32}}, + "94": {"start": {"line": 342, "column": 28}, "end": {"line": 370, "column": 3}}, + "95": {"start": {"line": 343, "column": 4}, "end": {"line": 345, "column": 5}}, + "96": {"start": {"line": 344, "column": 6}, "end": {"line": 344, "column": 31}}, + "97": {"start": {"line": 346, "column": 4}, "end": {"line": 348, "column": 5}}, + "98": {"start": {"line": 347, "column": 6}, "end": {"line": 347, "column": 63}}, + "99": {"start": {"line": 349, "column": 47}, "end": {"line": 349, "column": 49}}, + "100": {"start": {"line": 351, "column": 4}, "end": {"line": 366, "column": 5}}, + "101": {"start": {"line": 352, "column": 6}, "end": {"line": 355, "column": 7}}, + "102": {"start": {"line": 353, "column": 8}, "end": {"line": 353, "column": 73}}, + "103": {"start": {"line": 354, "column": 8}, "end": {"line": 354, "column": 17}}, + "104": {"start": {"line": 357, "column": 41}, "end": {"line": 357, "column": 97}}, + "105": {"start": {"line": 358, "column": 48}, "end": {"line": 358, "column": 100}}, + "106": {"start": {"line": 360, "column": 6}, "end": {"line": 365, "column": 26}}, + "107": {"start": {"line": 368, "column": 4}, "end": {"line": 368, "column": 37}}, + "108": {"start": {"line": 369, "column": 4}, "end": {"line": 369, "column": 29}}, + "109": {"start": {"line": 373, "column": 4}, "end": {"line": 377, "column": 6}}, + "110": {"start": {"line": 378, "column": 4}, "end": {"line": 382, "column": 6}}, + "111": {"start": {"line": 385, "column": 35}, "end": {"line": 407, "column": 3}}, + "112": {"start": {"line": 386, "column": 29}, "end": {"line": 386, "column": 85}}, + "113": {"start": {"line": 389, "column": 4}, "end": {"line": 406, "column": 5}}, + "114": {"start": {"line": 393, "column": 37}, "end": {"line": 393, "column": 145}}, + "115": {"start": {"line": 393, "column": 112}, "end": {"line": 393, "column": 144}}, + "116": {"start": {"line": 395, "column": 8}, "end": {"line": 395, "column": 111}}, + "117": {"start": {"line": 400, "column": 37}, "end": {"line": 400, "column": 132}}, + "118": {"start": {"line": 400, "column": 99}, "end": {"line": 400, "column": 131}}, + "119": {"start": {"line": 402, "column": 8}, "end": {"line": 402, "column": 114}}, + "120": {"start": {"line": 405, "column": 8}, "end": {"line": 405, "column": 104}}, + "121": {"start": {"line": 409, "column": 33}, "end": {"line": 427, "column": 3}}, + "122": {"start": {"line": 410, "column": 62}, "end": {"line": 410, "column": 81}}, + "123": {"start": {"line": 411, "column": 4}, "end": {"line": 420, "column": 5}}, + "124": {"start": {"line": 412, "column": 21}, "end": {"line": 414, "column": 7}}, + "125": {"start": {"line": 413, "column": 8}, "end": {"line": 413, "column": 107}}, + "126": {"start": {"line": 415, "column": 6}, "end": {"line": 419, "column": 7}}, + "127": {"start": {"line": 416, "column": 8}, "end": {"line": 416, "column": 22}}, + "128": {"start": {"line": 417, "column": 13}, "end": {"line": 419, "column": 7}}, + "129": {"start": {"line": 418, "column": 8}, "end": {"line": 418, "column": 74}}, + "130": {"start": {"line": 421, "column": 4}, "end": {"line": 426, "column": 5}}, + "131": {"start": {"line": 422, "column": 6}, "end": {"line": 422, "column": 72}}, + "132": {"start": {"line": 425, "column": 6}, "end": {"line": 425, "column": 37}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 89, "column": 34}, "end": {"line": 89, "column": 35}}, + "loc": {"start": {"line": 89, "column": 114}, "end": {"line": 144, "column": 3}}, + "line": 89 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 153, "column": 2}, "end": {"line": 153, "column": 3}}, + "loc": {"start": {"line": 153, "column": 48}, "end": {"line": 155, "column": 3}}, + "line": 153 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 157, "column": 36}, "end": {"line": 157, "column": 37}}, + "loc": {"start": {"line": 157, "column": 124}, "end": {"line": 168, "column": 3}}, + "line": 157 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 170, "column": 38}, "end": {"line": 170, "column": 39}}, + "loc": {"start": {"line": 170, "column": 126}, "end": {"line": 194, "column": 3}}, + "line": 170 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 196, "column": 25}, "end": {"line": 196, "column": 26}}, + "loc": {"start": {"line": 196, "column": 128}, "end": {"line": 243, "column": 3}}, + "line": 196 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 211, "column": 20}, "end": {"line": 211, "column": 21}}, + "loc": {"start": {"line": 211, "column": 48}, "end": {"line": 223, "column": 7}}, + "line": 211 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 232, "column": 50}, "end": {"line": 232, "column": 51}}, + "loc": {"start": {"line": 232, "column": 58}, "end": {"line": 232, "column": 89}}, + "line": 232 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 245, "column": 2}, "end": {"line": 245, "column": 3}}, + "loc": {"start": {"line": 245, "column": 52}, "end": {"line": 248, "column": 3}}, + "line": 245 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 250, "column": 53}, "end": {"line": 250, "column": 54}}, + "loc": {"start": {"line": 250, "column": 116}, "end": {"line": 303, "column": 3}}, + "line": 250 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 259, "column": 18}, "end": {"line": 259, "column": 19}}, + "loc": {"start": {"line": 259, "column": 23}, "end": {"line": 259, "column": 44}}, + "line": 259 + }, + "10": { + "name": "(anonymous_10)", + "decl": {"start": {"line": 260, "column": 15}, "end": {"line": 260, "column": 16}}, + "loc": {"start": {"line": 260, "column": 20}, "end": {"line": 260, "column": 55}}, + "line": 260 + }, + "11": { + "name": "(anonymous_11)", + "decl": {"start": {"line": 274, "column": 38}, "end": {"line": 274, "column": 39}}, + "loc": {"start": {"line": 274, "column": 94}, "end": {"line": 292, "column": 9}}, + "line": 274 + }, + "12": { + "name": "(anonymous_12)", + "decl": {"start": {"line": 277, "column": 14}, "end": {"line": 277, "column": 15}}, + "loc": {"start": {"line": 278, "column": 16}, "end": {"line": 278, "column": 115}}, + "line": 278 + }, + "13": { + "name": "(anonymous_13)", + "decl": {"start": {"line": 284, "column": 38}, "end": {"line": 284, "column": 39}}, + "loc": {"start": {"line": 284, "column": 56}, "end": {"line": 284, "column": 87}}, + "line": 284 + }, + "14": { + "name": "(anonymous_14)", + "decl": {"start": {"line": 305, "column": 30}, "end": {"line": 305, "column": 31}}, + "loc": {"start": {"line": 305, "column": 93}, "end": {"line": 312, "column": 3}}, + "line": 305 + }, + "15": { + "name": "(anonymous_15)", + "decl": {"start": {"line": 314, "column": 42}, "end": {"line": 314, "column": 43}}, + "loc": {"start": {"line": 314, "column": 130}, "end": {"line": 340, "column": 3}}, + "line": 314 + }, + "16": { + "name": "(anonymous_16)", + "decl": {"start": {"line": 319, "column": 10}, "end": {"line": 319, "column": 11}}, + "loc": {"start": {"line": 319, "column": 62}, "end": {"line": 319, "column": 146}}, + "line": 319 + }, + "17": { + "name": "(anonymous_17)", + "decl": {"start": {"line": 330, "column": 10}, "end": {"line": 330, "column": 11}}, + "loc": {"start": {"line": 330, "column": 65}, "end": {"line": 330, "column": 114}}, + "line": 330 + }, + "18": { + "name": "(anonymous_18)", + "decl": {"start": {"line": 342, "column": 28}, "end": {"line": 342, "column": 29}}, + "loc": {"start": {"line": 342, "column": 71}, "end": {"line": 370, "column": 3}}, + "line": 342 + }, + "19": { + "name": "(anonymous_19)", + "decl": {"start": {"line": 372, "column": 2}, "end": {"line": 372, "column": 3}}, + "loc": {"start": {"line": 372, "column": 87}, "end": {"line": 383, "column": 3}}, + "line": 372 + }, + "20": { + "name": "(anonymous_20)", + "decl": {"start": {"line": 385, "column": 35}, "end": {"line": 385, "column": 36}}, + "loc": {"start": {"line": 385, "column": 129}, "end": {"line": 407, "column": 3}}, + "line": 385 + }, + "21": { + "name": "(anonymous_21)", + "decl": {"start": {"line": 393, "column": 77}, "end": {"line": 393, "column": 78}}, + "loc": {"start": {"line": 393, "column": 112}, "end": {"line": 393, "column": 144}}, + "line": 393 + }, + "22": { + "name": "(anonymous_22)", + "decl": {"start": {"line": 400, "column": 80}, "end": {"line": 400, "column": 81}}, + "loc": {"start": {"line": 400, "column": 99}, "end": {"line": 400, "column": 131}}, + "line": 400 + }, + "23": { + "name": "(anonymous_23)", + "decl": {"start": {"line": 409, "column": 33}, "end": {"line": 409, "column": 34}}, + "loc": {"start": {"line": 409, "column": 118}, "end": {"line": 427, "column": 3}}, + "line": 409 + }, + "24": { + "name": "(anonymous_24)", + "decl": {"start": {"line": 412, "column": 47}, "end": {"line": 412, "column": 48}}, + "loc": {"start": {"line": 413, "column": 8}, "end": {"line": 413, "column": 107}}, + "line": 413 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 92, "column": 13}, "end": {"line": 92, "column": 60}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 92, "column": 13}, "end": {"line": 92, "column": 24}}, + {"start": {"line": 92, "column": 28}, "end": {"line": 92, "column": 60}} + ], + "line": 92 + }, + "1": { + "loc": {"start": {"line": 93, "column": 15}, "end": {"line": 93, "column": 66}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 93, "column": 15}, "end": {"line": 93, "column": 28}}, + {"start": {"line": 93, "column": 32}, "end": {"line": 93, "column": 66}} + ], + "line": 93 + }, + "2": { + "loc": {"start": {"line": 94, "column": 28}, "end": {"line": 94, "column": 94}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 94, "column": 28}, "end": {"line": 94, "column": 48}}, + {"start": {"line": 94, "column": 52}, "end": {"line": 94, "column": 94}} + ], + "line": 94 + }, + "3": { + "loc": {"start": {"line": 97, "column": 4}, "end": {"line": 143, "column": 5}}, + "type": "switch", + "locations": [ + {"start": {"line": 98, "column": 6}, "end": {"line": 102, "column": 10}}, + {"start": {"line": 103, "column": 6}, "end": {"line": 107, "column": 10}}, + {"start": {"line": 108, "column": 6}, "end": {"line": 112, "column": 10}}, + {"start": {"line": 113, "column": 6}, "end": {"line": 117, "column": 10}}, + {"start": {"line": 118, "column": 6}, "end": {"line": 122, "column": 10}}, + {"start": {"line": 123, "column": 6}, "end": {"line": 127, "column": 10}}, + {"start": {"line": 128, "column": 6}, "end": {"line": 132, "column": 10}}, + {"start": {"line": 133, "column": 6}, "end": {"line": 137, "column": 10}}, + {"start": {"line": 138, "column": 6}, "end": {"line": 142, "column": 10}} + ], + "line": 97 + }, + "4": { + "loc": {"start": {"line": 158, "column": 4}, "end": {"line": 161, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 158, "column": 4}, "end": {"line": 161, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 158 + }, + "5": { + "loc": {"start": {"line": 158, "column": 8}, "end": {"line": 158, "column": 126}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 158, "column": 8}, "end": {"line": 158, "column": 12}}, + {"start": {"line": 158, "column": 16}, "end": {"line": 158, "column": 126}} + ], + "line": 158 + }, + "6": { + "loc": {"start": {"line": 158, "column": 18}, "end": {"line": 158, "column": 125}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 158, "column": 18}, "end": {"line": 158, "column": 70}}, + {"start": {"line": 158, "column": 74}, "end": {"line": 158, "column": 125}} + ], + "line": 158 + }, + "7": { + "loc": {"start": {"line": 189, "column": 4}, "end": {"line": 191, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 189, "column": 4}, "end": {"line": 191, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 189 + }, + "8": { + "loc": {"start": {"line": 197, "column": 4}, "end": {"line": 199, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 197, "column": 4}, "end": {"line": 199, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 197 + }, + "9": { + "loc": {"start": {"line": 205, "column": 6}, "end": {"line": 206, "column": 110}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 205, "column": 7}, "end": {"line": 205, "column": 87}}, + {"start": {"line": 206, "column": 7}, "end": {"line": 206, "column": 109}} + ], + "line": 205 + }, + "10": { + "loc": {"start": {"line": 247, "column": 11}, "end": {"line": 247, "column": 102}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 247, "column": 68}, "end": {"line": 247, "column": 93}}, + {"start": {"line": 247, "column": 96}, "end": {"line": 247, "column": 102}} + ], + "line": 247 + }, + "11": { + "loc": {"start": {"line": 247, "column": 11}, "end": {"line": 247, "column": 65}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 247, "column": 11}, "end": {"line": 247, "column": 31}}, + {"start": {"line": 247, "column": 35}, "end": {"line": 247, "column": 65}} + ], + "line": 247 + }, + "12": { + "loc": {"start": {"line": 251, "column": 4}, "end": {"line": 253, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 251, "column": 4}, "end": {"line": 253, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 251 + }, + "13": { + "loc": {"start": {"line": 254, "column": 4}, "end": {"line": 266, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 254, "column": 4}, "end": {"line": 266, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 254 + }, + "14": { + "loc": {"start": {"line": 254, "column": 8}, "end": {"line": 254, "column": 76}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 254, "column": 8}, "end": {"line": 254, "column": 34}}, + {"start": {"line": 254, "column": 38}, "end": {"line": 254, "column": 76}} + ], + "line": 254 + }, + "15": { + "loc": {"start": {"line": 257, "column": 6}, "end": {"line": 264, "column": 7}}, + "type": "if", + "locations": [ + {"start": {"line": 257, "column": 6}, "end": {"line": 264, "column": 7}}, + {"start": {}, "end": {}} + ], + "line": 257 + }, + "16": { + "loc": {"start": {"line": 257, "column": 10}, "end": {"line": 257, "column": 130}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 257, "column": 10}, "end": {"line": 257, "column": 62}}, + {"start": {"line": 257, "column": 66}, "end": {"line": 257, "column": 130}} + ], + "line": 257 + }, + "17": { + "loc": {"start": {"line": 261, "column": 8}, "end": {"line": 263, "column": 9}}, + "type": "if", + "locations": [ + {"start": {"line": 261, "column": 8}, "end": {"line": 263, "column": 9}}, + {"start": {}, "end": {}} + ], + "line": 261 + }, + "18": { + "loc": {"start": {"line": 267, "column": 4}, "end": {"line": 269, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 267, "column": 4}, "end": {"line": 269, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 267 + }, + "19": { + "loc": {"start": {"line": 271, "column": 4}, "end": {"line": 294, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 271, "column": 4}, "end": {"line": 294, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 271 + }, + "20": { + "loc": {"start": {"line": 276, "column": 13}, "end": {"line": 276, "column": 35}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 276, "column": 13}, "end": {"line": 276, "column": 29}}, + {"start": {"line": 276, "column": 33}, "end": {"line": 276, "column": 35}} + ], + "line": 276 + }, + "21": { + "loc": {"start": {"line": 283, "column": 12}, "end": {"line": 287, "column": 30}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 284, "column": 16}, "end": {"line": 284, "column": 88}}, + {"start": {"line": 285, "column": 16}, "end": {"line": 287, "column": 30}} + ], + "line": 283 + }, + "22": { + "loc": {"start": {"line": 285, "column": 16}, "end": {"line": 287, "column": 30}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 286, "column": 16}, "end": {"line": 286, "column": 40}}, + {"start": {"line": 287, "column": 16}, "end": {"line": 287, "column": 30}} + ], + "line": 285 + }, + "23": { + "loc": {"start": {"line": 289, "column": 10}, "end": {"line": 291, "column": 11}}, + "type": "if", + "locations": [ + {"start": {"line": 289, "column": 10}, "end": {"line": 291, "column": 11}}, + {"start": {}, "end": {}} + ], + "line": 289 + }, + "24": { + "loc": {"start": {"line": 306, "column": 4}, "end": {"line": 310, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 306, "column": 4}, "end": {"line": 310, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 306 + }, + "25": { + "loc": {"start": {"line": 319, "column": 99}, "end": {"line": 319, "column": 136}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 319, "column": 99}, "end": {"line": 319, "column": 130}}, + {"start": {"line": 319, "column": 134}, "end": {"line": 319, "column": 136}} + ], + "line": 319 + }, + "26": { + "loc": {"start": {"line": 332, "column": 8}, "end": {"line": 335, "column": 9}}, + "type": "if", + "locations": [ + {"start": {"line": 332, "column": 8}, "end": {"line": 335, "column": 9}}, + {"start": {}, "end": {}} + ], + "line": 332 + }, + "27": { + "loc": {"start": {"line": 343, "column": 4}, "end": {"line": 345, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 343, "column": 4}, "end": {"line": 345, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 343 + }, + "28": { + "loc": {"start": {"line": 343, "column": 8}, "end": {"line": 343, "column": 57}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 343, "column": 8}, "end": {"line": 343, "column": 25}}, + {"start": {"line": 343, "column": 29}, "end": {"line": 343, "column": 57}} + ], + "line": 343 + }, + "29": { + "loc": {"start": {"line": 346, "column": 4}, "end": {"line": 348, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 346, "column": 4}, "end": {"line": 348, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 346 + }, + "30": { + "loc": {"start": {"line": 352, "column": 6}, "end": {"line": 355, "column": 7}}, + "type": "if", + "locations": [ + {"start": {"line": 352, "column": 6}, "end": {"line": 355, "column": 7}}, + {"start": {}, "end": {}} + ], + "line": 352 + }, + "31": { + "loc": {"start": {"line": 386, "column": 29}, "end": {"line": 386, "column": 85}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 386, "column": 29}, "end": {"line": 386, "column": 79}}, + {"start": {"line": 386, "column": 83}, "end": {"line": 386, "column": 85}} + ], + "line": 386 + }, + "32": { + "loc": {"start": {"line": 389, "column": 4}, "end": {"line": 406, "column": 5}}, + "type": "switch", + "locations": [ + {"start": {"line": 390, "column": 6}, "end": {"line": 390, "column": 17}}, + {"start": {"line": 391, "column": 6}, "end": {"line": 391, "column": 25}}, + {"start": {"line": 392, "column": 6}, "end": {"line": 396, "column": 7}}, + {"start": {"line": 397, "column": 6}, "end": {"line": 397, "column": 17}}, + {"start": {"line": 398, "column": 6}, "end": {"line": 398, "column": 28}}, + {"start": {"line": 399, "column": 6}, "end": {"line": 403, "column": 7}}, + {"start": {"line": 404, "column": 6}, "end": {"line": 405, "column": 104}} + ], + "line": 389 + }, + "33": { + "loc": {"start": {"line": 395, "column": 15}, "end": {"line": 395, "column": 110}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 395, "column": 49}, "end": {"line": 395, "column": 72}}, + {"start": {"line": 395, "column": 75}, "end": {"line": 395, "column": 110}} + ], + "line": 395 + }, + "34": { + "loc": {"start": {"line": 402, "column": 15}, "end": {"line": 402, "column": 113}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 402, "column": 49}, "end": {"line": 402, "column": 72}}, + {"start": {"line": 402, "column": 75}, "end": {"line": 402, "column": 113}} + ], + "line": 402 + }, + "35": { + "loc": {"start": {"line": 411, "column": 4}, "end": {"line": 420, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 411, "column": 4}, "end": {"line": 420, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 411 + }, + "36": { + "loc": {"start": {"line": 411, "column": 8}, "end": {"line": 411, "column": 105}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 411, "column": 8}, "end": {"line": 411, "column": 47}}, + {"start": {"line": 411, "column": 51}, "end": {"line": 411, "column": 105}} + ], + "line": 411 + }, + "37": { + "loc": {"start": {"line": 415, "column": 6}, "end": {"line": 419, "column": 7}}, + "type": "if", + "locations": [ + {"start": {"line": 415, "column": 6}, "end": {"line": 419, "column": 7}}, + {"start": {"line": 417, "column": 13}, "end": {"line": 419, "column": 7}} + ], + "line": 415 + }, + "38": { + "loc": {"start": {"line": 417, "column": 13}, "end": {"line": 419, "column": 7}}, + "type": "if", + "locations": [ + {"start": {"line": 417, "column": 13}, "end": {"line": 419, "column": 7}}, + {"start": {}, "end": {}} + ], + "line": 417 + }, + "39": { + "loc": {"start": {"line": 418, "column": 15}, "end": {"line": 418, "column": 73}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 418, "column": 24}, "end": {"line": 418, "column": 47}}, + {"start": {"line": 418, "column": 50}, "end": {"line": 418, "column": 73}} + ], + "line": 418 + }, + "40": { + "loc": {"start": {"line": 421, "column": 4}, "end": {"line": 426, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 421, "column": 4}, "end": {"line": 426, "column": 5}}, + {"start": {"line": 423, "column": 11}, "end": {"line": 426, "column": 5}} + ], + "line": 421 + }, + "41": { + "loc": {"start": {"line": 421, "column": 8}, "end": {"line": 421, "column": 82}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 421, "column": 8}, "end": {"line": 421, "column": 15}}, + {"start": {"line": 421, "column": 20}, "end": {"line": 421, "column": 42}}, + {"start": {"line": 421, "column": 46}, "end": {"line": 421, "column": 81}} + ], + "line": 421 + }, + "42": { + "loc": {"start": {"line": 422, "column": 13}, "end": {"line": 422, "column": 71}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 422, "column": 22}, "end": {"line": 422, "column": 45}}, + {"start": {"line": 422, "column": 48}, "end": {"line": 422, "column": 71}} + ], + "line": 422 + } + }, + "s": { + "0": 1, + "1": 1, + "2": 1, + "3": 1, + "4": 1, + "5": 1, + "6": 1, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 1, + "20": 0, + "21": 0, + "22": 0, + "23": 0, + "24": 0, + "25": 0, + "26": 0, + "27": 0, + "28": 0, + "29": 0, + "30": 0, + "31": 0, + "32": 0, + "33": 0, + "34": 0, + "35": 0, + "36": 0, + "37": 0, + "38": 0, + "39": 0, + "40": 0, + "41": 0, + "42": 0, + "43": 0, + "44": 0, + "45": 0, + "46": 0, + "47": 0, + "48": 0, + "49": 0, + "50": 0, + "51": 0, + "52": 0, + "53": 0, + "54": 0, + "55": 0, + "56": 0, + "57": 0, + "58": 0, + "59": 0, + "60": 0, + "61": 0, + "62": 0, + "63": 0, + "64": 0, + "65": 0, + "66": 0, + "67": 0, + "68": 0, + "69": 0, + "70": 0, + "71": 0, + "72": 0, + "73": 0, + "74": 0, + "75": 0, + "76": 0, + "77": 0, + "78": 0, + "79": 0, + "80": 0, + "81": 0, + "82": 0, + "83": 0, + "84": 0, + "85": 0, + "86": 0, + "87": 0, + "88": 0, + "89": 0, + "90": 0, + "91": 0, + "92": 0, + "93": 0, + "94": 0, + "95": 0, + "96": 0, + "97": 0, + "98": 0, + "99": 0, + "100": 0, + "101": 0, + "102": 0, + "103": 0, + "104": 0, + "105": 0, + "106": 0, + "107": 0, + "108": 0, + "109": 0, + "110": 0, + "111": 0, + "112": 0, + "113": 0, + "114": 0, + "115": 0, + "116": 0, + "117": 0, + "118": 0, + "119": 0, + "120": 0, + "121": 0, + "122": 0, + "123": 0, + "124": 0, + "125": 0, + "126": 0, + "127": 0, + "128": 0, + "129": 0, + "130": 0, + "131": 0, + "132": 0 + }, + "f": { + "0": 0, + "1": 0, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 0, + "22": 0, + "23": 0, + "24": 0 + }, + "b": { + "0": [0, 0], + "1": [0, 0], + "2": [0, 0], + "3": [0, 0, 0, 0, 0, 0, 0, 0, 0], + "4": [0, 0], + "5": [0, 0], + "6": [0, 0], + "7": [0, 0], + "8": [0, 0], + "9": [0, 0], + "10": [0, 0], + "11": [0, 0], + "12": [0, 0], + "13": [0, 0], + "14": [0, 0], + "15": [0, 0], + "16": [0, 0], + "17": [0, 0], + "18": [0, 0], + "19": [0, 0], + "20": [0, 0], + "21": [0, 0], + "22": [0, 0], + "23": [0, 0], + "24": [0, 0], + "25": [0, 0], + "26": [0, 0], + "27": [0, 0], + "28": [0, 0], + "29": [0, 0], + "30": [0, 0], + "31": [0, 0], + "32": [0, 0, 0, 0, 0, 0, 0], + "33": [0, 0], + "34": [0, 0], + "35": [0, 0], + "36": [0, 0], + "37": [0, 0], + "38": [0, 0], + "39": [0, 0], + "40": [0, 0], + "41": [0, 0, 0], + "42": [0, 0] + }, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "e5a5dc114ec9229618432063116b26f63a1305cf" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\providers\\touch\\OnTouchProvider.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\providers\\touch\\OnTouchProvider.tsx", + "statementMap": { + "0": {"start": {"line": 11, "column": 56}, "end": {"line": 46, "column": 1}}, + "1": {"start": {"line": 12, "column": 48}, "end": {"line": 12, "column": 63}}, + "2": {"start": {"line": 13, "column": 42}, "end": {"line": 13, "column": 57}}, + "3": {"start": {"line": 14, "column": 21}, "end": {"line": 14, "column": 36}}, + "4": {"start": {"line": 18, "column": 2}, "end": {"line": 26, "column": 50}}, + "5": {"start": {"line": 19, "column": 24}, "end": {"line": 21, "column": 6}}, + "6": {"start": {"line": 20, "column": 6}, "end": {"line": 20, "column": 20}}, + "7": {"start": {"line": 23, "column": 4}, "end": {"line": 25, "column": 6}}, + "8": {"start": {"line": 24, "column": 6}, "end": {"line": 24, "column": 20}}, + "9": {"start": {"line": 28, "column": 22}, "end": {"line": 31, "column": 3}}, + "10": {"start": {"line": 29, "column": 4}, "end": {"line": 29, "column": 30}}, + "11": {"start": {"line": 30, "column": 4}, "end": {"line": 30, "column": 27}}, + "12": {"start": {"line": 33, "column": 2}, "end": {"line": 45, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 11, "column": 56}, "end": {"line": 11, "column": 57}}, + "loc": {"start": {"line": 11, "column": 72}, "end": {"line": 46, "column": 1}}, + "line": 11 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 18, "column": 12}, "end": {"line": 18, "column": 13}}, + "loc": {"start": {"line": 18, "column": 18}, "end": {"line": 26, "column": 3}}, + "line": 18 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 19, "column": 56}, "end": {"line": 19, "column": 57}}, + "loc": {"start": {"line": 19, "column": 62}, "end": {"line": 21, "column": 5}}, + "line": 19 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 23, "column": 11}, "end": {"line": 23, "column": 12}}, + "loc": {"start": {"line": 23, "column": 17}, "end": {"line": 25, "column": 5}}, + "line": 23 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 28, "column": 22}, "end": {"line": 28, "column": 23}}, + "loc": {"start": {"line": 28, "column": 28}, "end": {"line": 31, "column": 3}}, + "line": 28 + } + }, + "branchMap": {}, + "s": {"0": 1, "1": 3, "2": 3, "3": 3, "4": 3, "5": 3, "6": 55, "7": 3, "8": 3, "9": 3, "10": 55, "11": 55, "12": 3}, + "f": {"0": 3, "1": 3, "2": 55, "3": 3, "4": 55}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "0353af6bf5d2e64c3d7a22f0e4410c96f517468e" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\Onboarding\\SSIPersonalDataScreen\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\Onboarding\\SSIPersonalDataScreen\\index.tsx", + "statementMap": { + "0": {"start": {"line": 20, "column": 53}, "end": {"line": 125, "column": 1}}, + "1": {"start": {"line": 21, "column": 2}, "end": {"line": 25, "column": 5}}, + "2": {"start": {"line": 22, "column": 4}, "end": {"line": 22, "column": 37}}, + "3": {"start": {"line": 24, "column": 4}, "end": {"line": 24, "column": 16}}, + "4": {"start": {"line": 26, "column": 23}, "end": {"line": 26, "column": 62}}, + "5": {"start": {"line": 28, "column": 28}, "end": {"line": 30, "column": 3}}, + "6": {"start": {"line": 29, "column": 4}, "end": {"line": 29, "column": 42}}, + "7": {"start": {"line": 32, "column": 32}, "end": {"line": 37, "column": 3}}, + "8": {"start": {"line": 33, "column": 4}, "end": {"line": 33, "column": 21}}, + "9": {"start": {"line": 34, "column": 4}, "end": {"line": 36, "column": 5}}, + "10": {"start": {"line": 35, "column": 6}, "end": {"line": 35, "column": 76}}, + "11": {"start": {"line": 39, "column": 27}, "end": {"line": 41, "column": 3}}, + "12": {"start": {"line": 40, "column": 4}, "end": {"line": 40, "column": 41}}, + "13": {"start": {"line": 43, "column": 31}, "end": {"line": 48, "column": 3}}, + "14": {"start": {"line": 44, "column": 4}, "end": {"line": 44, "column": 21}}, + "15": {"start": {"line": 45, "column": 4}, "end": {"line": 47, "column": 5}}, + "16": {"start": {"line": 46, "column": 6}, "end": {"line": 46, "column": 75}}, + "17": {"start": {"line": 50, "column": 31}, "end": {"line": 53, "column": 3}}, + "18": {"start": {"line": 51, "column": 4}, "end": {"line": 51, "column": 59}}, + "19": {"start": {"line": 52, "column": 4}, "end": {"line": 52, "column": 21}}, + "20": {"start": {"line": 55, "column": 35}, "end": {"line": 60, "column": 3}}, + "21": {"start": {"line": 56, "column": 4}, "end": {"line": 56, "column": 21}}, + "22": {"start": {"line": 57, "column": 4}, "end": {"line": 59, "column": 5}}, + "23": {"start": {"line": 58, "column": 6}, "end": {"line": 58, "column": 79}}, + "24": {"start": {"line": 62, "column": 17}, "end": {"line": 65, "column": 3}}, + "25": {"start": {"line": 63, "column": 4}, "end": {"line": 63, "column": 23}}, + "26": {"start": {"line": 64, "column": 4}, "end": {"line": 64, "column": 44}}, + "27": {"start": {"line": 67, "column": 21}, "end": {"line": 69, "column": 3}}, + "28": {"start": {"line": 68, "column": 4}, "end": {"line": 68, "column": 55}}, + "29": {"start": {"line": 71, "column": 25}, "end": {"line": 73, "column": 3}}, + "30": {"start": {"line": 72, "column": 4}, "end": {"line": 72, "column": 52}}, + "31": {"start": {"line": 76, "column": 2}, "end": {"line": 124, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 20, "column": 53}, "end": {"line": 20, "column": 54}}, + "loc": {"start": {"line": 20, "column": 96}, "end": {"line": 125, "column": 1}}, + "line": 20 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 21, "column": 17}, "end": {"line": 21, "column": 18}}, + "loc": {"start": {"line": 21, "column": 23}, "end": {"line": 25, "column": 3}}, + "line": 21 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 28, "column": 28}, "end": {"line": 28, "column": 29}}, + "loc": {"start": {"line": 28, "column": 68}, "end": {"line": 30, "column": 3}}, + "line": 28 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 32, "column": 32}, "end": {"line": 32, "column": 33}}, + "loc": {"start": {"line": 32, "column": 72}, "end": {"line": 37, "column": 3}}, + "line": 32 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 39, "column": 27}, "end": {"line": 39, "column": 28}}, + "loc": {"start": {"line": 39, "column": 67}, "end": {"line": 41, "column": 3}}, + "line": 39 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 43, "column": 31}, "end": {"line": 43, "column": 32}}, + "loc": {"start": {"line": 43, "column": 71}, "end": {"line": 48, "column": 3}}, + "line": 43 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 50, "column": 31}, "end": {"line": 50, "column": 32}}, + "loc": {"start": {"line": 50, "column": 71}, "end": {"line": 53, "column": 3}}, + "line": 50 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 55, "column": 35}, "end": {"line": 55, "column": 36}}, + "loc": {"start": {"line": 55, "column": 75}, "end": {"line": 60, "column": 3}}, + "line": 55 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 62, "column": 17}, "end": {"line": 62, "column": 18}}, + "loc": {"start": {"line": 62, "column": 44}, "end": {"line": 65, "column": 3}}, + "line": 62 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 67, "column": 21}, "end": {"line": 67, "column": 22}}, + "loc": {"start": {"line": 67, "column": 36}, "end": {"line": 69, "column": 3}}, + "line": 67 + }, + "10": { + "name": "(anonymous_10)", + "decl": {"start": {"line": 71, "column": 25}, "end": {"line": 71, "column": 26}}, + "loc": {"start": {"line": 71, "column": 31}, "end": {"line": 73, "column": 3}}, + "line": 71 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 34, "column": 4}, "end": {"line": 36, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 34, "column": 4}, "end": {"line": 36, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 34 + }, + "1": { + "loc": {"start": {"line": 45, "column": 4}, "end": {"line": 47, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 45, "column": 4}, "end": {"line": 47, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 45 + }, + "2": { + "loc": {"start": {"line": 57, "column": 4}, "end": {"line": 59, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 57, "column": 4}, "end": {"line": 59, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 57 + } + }, + "s": { + "0": 1, + "1": 15, + "2": 0, + "3": 0, + "4": 15, + "5": 15, + "6": 3, + "7": 15, + "8": 0, + "9": 0, + "10": 0, + "11": 15, + "12": 3, + "13": 15, + "14": 0, + "15": 0, + "16": 0, + "17": 15, + "18": 5, + "19": 5, + "20": 15, + "21": 0, + "22": 0, + "23": 0, + "24": 15, + "25": 0, + "26": 0, + "27": 15, + "28": 15, + "29": 15, + "30": 5, + "31": 15 + }, + "f": {"0": 15, "1": 0, "2": 3, "3": 0, "4": 3, "5": 0, "6": 5, "7": 0, "8": 0, "9": 15, "10": 5}, + "b": {"0": [0, 0], "1": [0, 0], "2": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "949f156abd478ddea2cf45b9dac15ed8fb8632b9" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\Onboarding\\SSIPinCodeSetScreen\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\Onboarding\\SSIPinCodeSetScreen\\index.tsx", + "statementMap": { + "0": {"start": {"line": 14, "column": 49}, "end": {"line": 46, "column": 1}}, + "1": {"start": {"line": 15, "column": 2}, "end": {"line": 19, "column": 5}}, + "2": {"start": {"line": 16, "column": 4}, "end": {"line": 16, "column": 37}}, + "3": {"start": {"line": 18, "column": 4}, "end": {"line": 18, "column": 16}}, + "4": {"start": {"line": 22, "column": 25}, "end": {"line": 24, "column": 3}}, + "5": {"start": {"line": 23, "column": 4}, "end": {"line": 23, "column": 43}}, + "6": {"start": {"line": 29, "column": 2}, "end": {"line": 29, "column": 41}}, + "7": {"start": {"line": 31, "column": 2}, "end": {"line": 45, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 14, "column": 49}, "end": {"line": 14, "column": 50}}, + "loc": {"start": {"line": 14, "column": 90}, "end": {"line": 46, "column": 1}}, + "line": 14 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 15, "column": 17}, "end": {"line": 15, "column": 18}}, + "loc": {"start": {"line": 15, "column": 23}, "end": {"line": 19, "column": 3}}, + "line": 15 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 22, "column": 25}, "end": {"line": 22, "column": 26}}, + "loc": {"start": {"line": 22, "column": 65}, "end": {"line": 24, "column": 3}}, + "line": 22 + } + }, + "branchMap": {}, + "s": {"0": 1, "1": 5, "2": 0, "3": 0, "4": 5, "5": 4, "6": 5, "7": 5}, + "f": {"0": 5, "1": 0, "2": 4}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "667478fd24884880a6518c6850b90468c0228f38" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\Onboarding\\SSIPinCodeVerifyScreen\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\Onboarding\\SSIPinCodeVerifyScreen\\index.tsx", + "statementMap": { + "0": {"start": {"line": 14, "column": 55}, "end": {"line": 43, "column": 1}}, + "1": {"start": {"line": 15, "column": 2}, "end": {"line": 19, "column": 5}}, + "2": {"start": {"line": 16, "column": 4}, "end": {"line": 16, "column": 37}}, + "3": {"start": {"line": 18, "column": 4}, "end": {"line": 18, "column": 16}}, + "4": {"start": {"line": 21, "column": 25}, "end": {"line": 26, "column": 3}}, + "5": {"start": {"line": 22, "column": 4}, "end": {"line": 24, "column": 5}}, + "6": {"start": {"line": 23, "column": 6}, "end": {"line": 23, "column": 51}}, + "7": {"start": {"line": 25, "column": 4}, "end": {"line": 25, "column": 43}}, + "8": {"start": {"line": 28, "column": 2}, "end": {"line": 42, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 14, "column": 55}, "end": {"line": 14, "column": 56}}, + "loc": {"start": {"line": 14, "column": 99}, "end": {"line": 43, "column": 1}}, + "line": 14 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 15, "column": 17}, "end": {"line": 15, "column": 18}}, + "loc": {"start": {"line": 15, "column": 23}, "end": {"line": 19, "column": 3}}, + "line": 15 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 21, "column": 25}, "end": {"line": 21, "column": 26}}, + "loc": {"start": {"line": 21, "column": 65}, "end": {"line": 26, "column": 3}}, + "line": 21 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 22, "column": 4}, "end": {"line": 24, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 22, "column": 4}, "end": {"line": 24, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 22 + } + }, + "s": {"0": 1, "1": 4, "2": 0, "3": 0, "4": 4, "5": 5, "6": 1, "7": 4, "8": 4}, + "f": {"0": 4, "1": 0, "2": 5}, + "b": {"0": [1, 4]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "715cf9ed2b9da9d81f6a8a1a0e15e3c481aee825" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\Onboarding\\SSISummaryScreen\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\Onboarding\\SSISummaryScreen\\index.tsx", + "statementMap": { + "0": {"start": {"line": 20, "column": 59}, "end": {"line": 64, "column": 1}}, + "1": {"start": {"line": 21, "column": 24}, "end": {"line": 41, "column": 3}}, + "2": {"start": {"line": 22, "column": 27}, "end": {"line": 22, "column": 53}}, + "3": {"start": {"line": 24, "column": 4}, "end": {"line": 40, "column": 6}}, + "4": {"start": {"line": 43, "column": 39}, "end": {"line": 50, "column": 3}}, + "5": {"start": {"line": 48, "column": 21}, "end": {"line": 48, "column": 88}}, + "6": {"start": {"line": 52, "column": 2}, "end": {"line": 63, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 20, "column": 59}, "end": {"line": 20, "column": 60}}, + "loc": {"start": {"line": 20, "column": 103}, "end": {"line": 64, "column": 1}}, + "line": 20 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 21, "column": 24}, "end": {"line": 21, "column": 25}}, + "loc": {"start": {"line": 21, "column": 60}, "end": {"line": 41, "column": 3}}, + "line": 21 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 48, "column": 15}, "end": {"line": 48, "column": 16}}, + "loc": {"start": {"line": 48, "column": 21}, "end": {"line": 48, "column": 88}}, + "line": 48 + } + }, + "branchMap": {}, + "s": {"0": 1, "1": 4, "2": 4, "3": 4, "4": 4, "5": 4, "6": 4}, + "f": {"0": 4, "1": 4, "2": 4}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "071033de6d8e53e15ff28f17114723c5749c9873" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\Onboarding\\SSITermsOfServiceScreen\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\Onboarding\\SSITermsOfServiceScreen\\index.tsx", + "statementMap": { + "0": {"start": {"line": 27, "column": 57}, "end": {"line": 113, "column": 1}}, + "1": {"start": {"line": 28, "column": 2}, "end": {"line": 32, "column": 5}}, + "2": {"start": {"line": 29, "column": 4}, "end": {"line": 29, "column": 37}}, + "3": {"start": {"line": 31, "column": 4}, "end": {"line": 31, "column": 16}}, + "4": {"start": {"line": 34, "column": 39}, "end": {"line": 45, "column": 3}}, + "5": {"start": {"line": 38, "column": 21}, "end": {"line": 38, "column": 108}}, + "6": {"start": {"line": 43, "column": 21}, "end": {"line": 43, "column": 102}}, + "7": {"start": {"line": 51, "column": 22}, "end": {"line": 51, "column": 71}}, + "8": {"start": {"line": 51, "column": 36}, "end": {"line": 51, "column": 66}}, + "9": {"start": {"line": 53, "column": 19}, "end": {"line": 55, "column": 3}}, + "10": {"start": {"line": 54, "column": 4}, "end": {"line": 54, "column": 38}}, + "11": {"start": {"line": 57, "column": 20}, "end": {"line": 76, "column": 3}}, + "12": {"start": {"line": 58, "column": 4}, "end": {"line": 75, "column": 7}}, + "13": {"start": {"line": 65, "column": 10}, "end": {"line": 65, "column": 32}}, + "14": {"start": {"line": 66, "column": 10}, "end": {"line": 66, "column": 47}}, + "15": {"start": {"line": 72, "column": 10}, "end": {"line": 72, "column": 36}}, + "16": {"start": {"line": 78, "column": 24}, "end": {"line": 80, "column": 3}}, + "17": {"start": {"line": 79, "column": 4}, "end": {"line": 79, "column": 54}}, + "18": {"start": {"line": 82, "column": 26}, "end": {"line": 84, "column": 3}}, + "19": {"start": {"line": 83, "column": 4}, "end": {"line": 83, "column": 56}}, + "20": {"start": {"line": 86, "column": 2}, "end": {"line": 112, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 27, "column": 57}, "end": {"line": 27, "column": 58}}, + "loc": {"start": {"line": 27, "column": 102}, "end": {"line": 113, "column": 1}}, + "line": 27 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 28, "column": 17}, "end": {"line": 28, "column": 18}}, + "loc": {"start": {"line": 28, "column": 23}, "end": {"line": 32, "column": 3}}, + "line": 28 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 38, "column": 15}, "end": {"line": 38, "column": 16}}, + "loc": {"start": {"line": 38, "column": 21}, "end": {"line": 38, "column": 108}}, + "line": 38 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 43, "column": 15}, "end": {"line": 43, "column": 16}}, + "loc": {"start": {"line": 43, "column": 21}, "end": {"line": 43, "column": 102}}, + "line": 43 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 51, "column": 30}, "end": {"line": 51, "column": 31}}, + "loc": {"start": {"line": 51, "column": 36}, "end": {"line": 51, "column": 66}}, + "line": 51 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 53, "column": 19}, "end": {"line": 53, "column": 20}}, + "loc": {"start": {"line": 53, "column": 46}, "end": {"line": 55, "column": 3}}, + "line": 53 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 57, "column": 20}, "end": {"line": 57, "column": 21}}, + "loc": {"start": {"line": 57, "column": 47}, "end": {"line": 76, "column": 3}}, + "line": 57 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 63, "column": 17}, "end": {"line": 63, "column": 18}}, + "loc": {"start": {"line": 63, "column": 29}, "end": {"line": 67, "column": 9}}, + "line": 63 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 71, "column": 17}, "end": {"line": 71, "column": 18}}, + "loc": {"start": {"line": 71, "column": 29}, "end": {"line": 73, "column": 9}}, + "line": 71 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 78, "column": 24}, "end": {"line": 78, "column": 25}}, + "loc": {"start": {"line": 78, "column": 69}, "end": {"line": 80, "column": 3}}, + "line": 78 + }, + "10": { + "name": "(anonymous_10)", + "decl": {"start": {"line": 82, "column": 26}, "end": {"line": 82, "column": 27}}, + "loc": {"start": {"line": 82, "column": 71}, "end": {"line": 84, "column": 3}}, + "line": 82 + } + }, + "branchMap": {}, + "s": { + "0": 1, + "1": 16, + "2": 0, + "3": 0, + "4": 16, + "5": 5, + "6": 0, + "7": 16, + "8": 5, + "9": 16, + "10": 0, + "11": 16, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 16, + "17": 3, + "18": 16, + "19": 3, + "20": 16 + }, + "f": {"0": 16, "1": 0, "2": 5, "3": 0, "4": 5, "5": 0, "6": 0, "7": 0, "8": 0, "9": 3, "10": 3}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "dd08a26ec0b19c1588f10d25dd61c7ee1cb17884" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\Onboarding\\SSIWelcomeScreen\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\Onboarding\\SSIWelcomeScreen\\index.tsx", + "statementMap": { + "0": {"start": {"line": 24, "column": 49}, "end": {"line": 118, "column": 1}}, + "1": {"start": {"line": 25, "column": 2}, "end": {"line": 28, "column": 3}}, + "2": {"start": {"line": 26, "column": 4}, "end": {"line": 26, "column": 35}}, + "3": {"start": {"line": 27, "column": 4}, "end": {"line": 27, "column": 48}}, + "4": {"start": {"line": 30, "column": 28}, "end": {"line": 34, "column": 4}}, + "5": {"start": {"line": 36, "column": 2}, "end": {"line": 61, "column": 5}}, + "6": {"start": {"line": 37, "column": 19}, "end": {"line": 37, "column": 24}}, + "7": {"start": {"line": 43, "column": 4}, "end": {"line": 60, "column": 5}}, + "8": {"start": {"line": 45, "column": 8}, "end": {"line": 45, "column": 132}}, + "9": {"start": {"line": 46, "column": 8}, "end": {"line": 46, "column": 20}}, + "10": {"start": {"line": 48, "column": 8}, "end": {"line": 52, "column": 11}}, + "11": {"start": {"line": 53, "column": 8}, "end": {"line": 53, "column": 20}}, + "12": {"start": {"line": 59, "column": 8}, "end": {"line": 59, "column": 21}}, + "13": {"start": {"line": 65, "column": 17}, "end": {"line": 82, "column": 3}}, + "14": {"start": {"line": 66, "column": 19}, "end": {"line": 66, "column": 24}}, + "15": {"start": {"line": 68, "column": 4}, "end": {"line": 81, "column": 5}}, + "16": {"start": {"line": 70, "column": 8}, "end": {"line": 70, "column": 132}}, + "17": {"start": {"line": 71, "column": 8}, "end": {"line": 71, "column": 14}}, + "18": {"start": {"line": 73, "column": 8}, "end": {"line": 77, "column": 11}}, + "19": {"start": {"line": 78, "column": 8}, "end": {"line": 78, "column": 14}}, + "20": {"start": {"line": 80, "column": 8}, "end": {"line": 80, "column": 42}}, + "21": {"start": {"line": 84, "column": 38}, "end": {"line": 84, "column": 43}}, + "22": {"start": {"line": 85, "column": 28}, "end": {"line": 85, "column": 29}}, + "23": {"start": {"line": 87, "column": 2}, "end": {"line": 117, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 24, "column": 49}, "end": {"line": 24, "column": 50}}, + "loc": {"start": {"line": 24, "column": 93}, "end": {"line": 118, "column": 1}}, + "line": 24 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 36, "column": 17}, "end": {"line": 36, "column": 18}}, + "loc": {"start": {"line": 36, "column": 23}, "end": {"line": 61, "column": 3}}, + "line": 36 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 65, "column": 17}, "end": {"line": 65, "column": 18}}, + "loc": {"start": {"line": 65, "column": 44}, "end": {"line": 82, "column": 3}}, + "line": 65 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 25, "column": 2}, "end": {"line": 28, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 25, "column": 2}, "end": {"line": 28, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 25 + }, + "1": { + "loc": {"start": {"line": 43, "column": 4}, "end": {"line": 60, "column": 5}}, + "type": "switch", + "locations": [ + {"start": {"line": 44, "column": 6}, "end": {"line": 46, "column": 20}}, + {"start": {"line": 47, "column": 6}, "end": {"line": 53, "column": 20}}, + {"start": {"line": 54, "column": 6}, "end": {"line": 59, "column": 21}} + ], + "line": 43 + }, + "2": { + "loc": {"start": {"line": 68, "column": 4}, "end": {"line": 81, "column": 5}}, + "type": "switch", + "locations": [ + {"start": {"line": 69, "column": 6}, "end": {"line": 71, "column": 14}}, + {"start": {"line": 72, "column": 6}, "end": {"line": 78, "column": 14}}, + {"start": {"line": 79, "column": 6}, "end": {"line": 80, "column": 42}} + ], + "line": 68 + } + }, + "s": { + "0": 1, + "1": 14, + "2": 0, + "3": 0, + "4": 14, + "5": 14, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 14, + "14": 31, + "15": 31, + "16": 3, + "17": 3, + "18": 3, + "19": 3, + "20": 25, + "21": 14, + "22": 14, + "23": 14 + }, + "f": {"0": 14, "1": 0, "2": 31}, + "b": {"0": [0, 14], "1": [0, 0, 0], "2": [3, 3, 25]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "d70adb5a7925e1c4cf288a0d7c17f8ee9d04544a" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSIContactAddScreen\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSIContactAddScreen\\index.tsx", + "statementMap": { + "0": {"start": {"line": 35, "column": 18}, "end": {"line": 38, "column": 3}}, + "1": {"start": {"line": 40, "column": 15}, "end": {"line": 54, "column": 3}}, + "2": {"start": {"line": 41, "column": 31}, "end": {"line": 41, "column": 36}}, + "3": {"start": {"line": 42, "column": 4}, "end": {"line": 42, "column": 39}}, + "4": {"start": {"line": 44, "column": 4}, "end": {"line": 47, "column": 5}}, + "5": {"start": {"line": 45, "column": 6}, "end": {"line": 45, "column": 40}}, + "6": {"start": {"line": 46, "column": 6}, "end": {"line": 46, "column": 78}}, + "7": {"start": {"line": 49, "column": 21}, "end": {"line": 49, "column": 73}}, + "8": {"start": {"line": 50, "column": 4}, "end": {"line": 53, "column": 5}}, + "9": {"start": {"line": 51, "column": 6}, "end": {"line": 51, "column": 40}}, + "10": {"start": {"line": 52, "column": 6}, "end": {"line": 52, "column": 82}}, + "11": {"start": {"line": 56, "column": 13}, "end": {"line": 69, "column": 3}}, + "12": {"start": {"line": 57, "column": 23}, "end": {"line": 57, "column": 46}}, + "13": {"start": {"line": 59, "column": 4}, "end": {"line": 59, "column": 23}}, + "14": {"start": {"line": 61, "column": 4}, "end": {"line": 68, "column": 9}}, + "15": {"start": {"line": 63, "column": 8}, "end": {"line": 63, "column": 28}}, + "16": {"start": {"line": 64, "column": 8}, "end": {"line": 64, "column": 25}}, + "17": {"start": {"line": 72, "column": 43}, "end": {"line": 72, "column": 53}}, + "18": {"start": {"line": 73, "column": 36}, "end": {"line": 73, "column": 59}}, + "19": {"start": {"line": 74, "column": 27}, "end": {"line": 74, "column": 37}}, + "20": {"start": {"line": 76, "column": 21}, "end": {"line": 76, "column": 64}}, + "21": {"start": {"line": 77, "column": 4}, "end": {"line": 88, "column": 5}}, + "22": {"start": {"line": 78, "column": 50}, "end": {"line": 78, "column": 72}}, + "23": {"start": {"line": 79, "column": 6}, "end": {"line": 79, "column": 51}}, + "24": {"start": {"line": 80, "column": 6}, "end": {"line": 80, "column": 37}}, + "25": {"start": {"line": 82, "column": 6}, "end": {"line": 87, "column": 9}}, + "26": {"start": {"line": 91, "column": 17}, "end": {"line": 93, "column": 3}}, + "27": {"start": {"line": 92, "column": 4}, "end": {"line": 92, "column": 41}}, + "28": {"start": {"line": 95, "column": 18}, "end": {"line": 100, "column": 3}}, + "29": {"start": {"line": 96, "column": 4}, "end": {"line": 96, "column": 43}}, + "30": {"start": {"line": 97, "column": 4}, "end": {"line": 99, "column": 5}}, + "31": {"start": {"line": 98, "column": 6}, "end": {"line": 98, "column": 97}}, + "32": {"start": {"line": 102, "column": 14}, "end": {"line": 120, "column": 3}}, + "33": {"start": {"line": 103, "column": 24}, "end": {"line": 103, "column": 47}}, + "34": {"start": {"line": 105, "column": 4}, "end": {"line": 105, "column": 23}}, + "35": {"start": {"line": 107, "column": 4}, "end": {"line": 119, "column": 7}}, + "36": {"start": {"line": 117, "column": 29}, "end": {"line": 117, "column": 84}}, + "37": {"start": {"line": 123, "column": 22}, "end": {"line": 123, "column": 32}}, + "38": {"start": {"line": 124, "column": 39}, "end": {"line": 124, "column": 49}}, + "39": {"start": {"line": 126, "column": 4}, "end": {"line": 159, "column": 6}}, + "40": {"start": {"line": 163, "column": 27}, "end": {"line": 168, "column": 1}}, + "41": {"start": {"line": 164, "column": 2}, "end": {"line": 167, "column": 4}}, + "42": {"start": {"line": 165, "column": 49}, "end": {"line": 165, "column": 77}}, + "43": {"start": {"line": 166, "column": 49}, "end": {"line": 166, "column": 76}}, + "44": {"start": {"line": 170, "column": 24}, "end": {"line": 174, "column": 1}}, + "45": {"start": {"line": 171, "column": 2}, "end": {"line": 173, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 40, "column": 15}, "end": {"line": 40, "column": 16}}, + "loc": {"start": {"line": 40, "column": 55}, "end": {"line": 54, "column": 3}}, + "line": 40 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 56, "column": 13}, "end": {"line": 56, "column": 14}}, + "loc": {"start": {"line": 56, "column": 40}, "end": {"line": 69, "column": 3}}, + "line": 56 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 62, "column": 12}, "end": {"line": 62, "column": 13}}, + "loc": {"start": {"line": 62, "column": 24}, "end": {"line": 65, "column": 7}}, + "line": 62 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 66, "column": 13}, "end": {"line": 66, "column": 14}}, + "loc": {"start": {"line": 66, "column": 19}, "end": {"line": 68, "column": 7}}, + "line": 66 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 71, "column": 2}, "end": {"line": 71, "column": 3}}, + "loc": {"start": {"line": 71, "column": 25}, "end": {"line": 89, "column": 3}}, + "line": 71 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 91, "column": 17}, "end": {"line": 91, "column": 18}}, + "loc": {"start": {"line": 91, "column": 57}, "end": {"line": 93, "column": 3}}, + "line": 91 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 95, "column": 18}, "end": {"line": 95, "column": 19}}, + "loc": {"start": {"line": 95, "column": 63}, "end": {"line": 100, "column": 3}}, + "line": 95 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 102, "column": 14}, "end": {"line": 102, "column": 15}}, + "loc": {"start": {"line": 102, "column": 41}, "end": {"line": 120, "column": 3}}, + "line": 102 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 117, "column": 17}, "end": {"line": 117, "column": 18}}, + "loc": {"start": {"line": 117, "column": 29}, "end": {"line": 117, "column": 84}}, + "line": 117 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 122, "column": 2}, "end": {"line": 122, "column": 3}}, + "loc": {"start": {"line": 122, "column": 11}, "end": {"line": 160, "column": 3}}, + "line": 122 + }, + "10": { + "name": "(anonymous_10)", + "decl": {"start": {"line": 163, "column": 27}, "end": {"line": 163, "column": 28}}, + "loc": {"start": {"line": 163, "column": 46}, "end": {"line": 168, "column": 1}}, + "line": 163 + }, + "11": { + "name": "(anonymous_11)", + "decl": {"start": {"line": 165, "column": 19}, "end": {"line": 165, "column": 20}}, + "loc": {"start": {"line": 165, "column": 49}, "end": {"line": 165, "column": 77}}, + "line": 165 + }, + "12": { + "name": "(anonymous_12)", + "decl": {"start": {"line": 166, "column": 19}, "end": {"line": 166, "column": 20}}, + "loc": {"start": {"line": 166, "column": 49}, "end": {"line": 166, "column": 76}}, + "line": 166 + }, + "13": { + "name": "(anonymous_13)", + "decl": {"start": {"line": 170, "column": 24}, "end": {"line": 170, "column": 25}}, + "loc": {"start": {"line": 170, "column": 46}, "end": {"line": 174, "column": 1}}, + "line": 170 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 36, "column": 18}, "end": {"line": 36, "column": 52}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 36, "column": 18}, "end": {"line": 36, "column": 46}}, + {"start": {"line": 36, "column": 50}, "end": {"line": 36, "column": 52}} + ], + "line": 36 + }, + "1": { + "loc": {"start": {"line": 44, "column": 4}, "end": {"line": 47, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 44, "column": 4}, "end": {"line": 47, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 44 + }, + "2": { + "loc": {"start": {"line": 50, "column": 4}, "end": {"line": 53, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 50, "column": 4}, "end": {"line": 53, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 50 + }, + "3": { + "loc": {"start": {"line": 77, "column": 4}, "end": {"line": 88, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 77, "column": 4}, "end": {"line": 88, "column": 5}}, + {"start": {"line": 81, "column": 11}, "end": {"line": 88, "column": 5}} + ], + "line": 77 + }, + "4": { + "loc": {"start": {"line": 97, "column": 4}, "end": {"line": 99, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 97, "column": 4}, "end": {"line": 99, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 97 + }, + "5": { + "loc": {"start": {"line": 152, "column": 26}, "end": {"line": 152, "column": 77}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 152, "column": 26}, "end": {"line": 152, "column": 37}}, + {"start": {"line": 152, "column": 41}, "end": {"line": 152, "column": 66}}, + {"start": {"line": 152, "column": 70}, "end": {"line": 152, "column": 77}} + ], + "line": 152 + } + }, + "s": { + "0": 0, + "1": 0, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 0, + "22": 0, + "23": 0, + "24": 0, + "25": 0, + "26": 0, + "27": 0, + "28": 0, + "29": 0, + "30": 0, + "31": 0, + "32": 0, + "33": 0, + "34": 0, + "35": 0, + "36": 0, + "37": 0, + "38": 0, + "39": 0, + "40": 1, + "41": 0, + "42": 0, + "43": 0, + "44": 1, + "45": 0 + }, + "f": {"0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0, "10": 0, "11": 0, "12": 0, "13": 0}, + "b": {"0": [0, 0], "1": [0, 0], "2": [0, 0], "3": [0, 0], "4": [0, 0], "5": [0, 0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "b5f78ac379d516e6693e13a00bc7f0dc271d1997" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSIContactDetailsScreen\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSIContactDetailsScreen\\index.tsx", + "statementMap": { + "0": {"start": {"line": 20, "column": 43}, "end": {"line": 49, "column": 1}}, + "1": {"start": {"line": 21, "column": 20}, "end": {"line": 21, "column": 38}}, + "2": {"start": {"line": 23, "column": 39}, "end": {"line": 41, "column": 3}}, + "3": {"start": {"line": 33, "column": 21}, "end": {"line": 33, "column": 74}}, + "4": {"start": {"line": 43, "column": 2}, "end": {"line": 48, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 20, "column": 43}, "end": {"line": 20, "column": 44}}, + "loc": {"start": {"line": 20, "column": 74}, "end": {"line": 49, "column": 1}}, + "line": 20 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 33, "column": 15}, "end": {"line": 33, "column": 16}}, + "loc": {"start": {"line": 33, "column": 21}, "end": {"line": 33, "column": 74}}, + "line": 33 + } + }, + "branchMap": {}, + "s": {"0": 1, "1": 0, "2": 0, "3": 0, "4": 0}, + "f": {"0": 0, "1": 0}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "7d553cad72c59ed55d2ac6da826effdbdd2ddb76" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSIContactsOverviewScreen\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSIContactsOverviewScreen\\index.tsx", + "statementMap": { + "0": {"start": {"line": 29, "column": 18}, "end": {"line": 31, "column": 3}}, + "1": {"start": {"line": 33, "column": 14}, "end": {"line": 36, "column": 3}}, + "2": {"start": {"line": 34, "column": 4}, "end": {"line": 34, "column": 29}}, + "3": {"start": {"line": 35, "column": 4}, "end": {"line": 35, "column": 39}}, + "4": {"start": {"line": 38, "column": 13}, "end": {"line": 56, "column": 3}}, + "5": {"start": {"line": 39, "column": 40}, "end": {"line": 39, "column": 50}}, + "6": {"start": {"line": 41, "column": 4}, "end": {"line": 55, "column": 7}}, + "7": {"start": {"line": 47, "column": 10}, "end": {"line": 47, "column": 36}}, + "8": {"start": {"line": 48, "column": 10}, "end": {"line": 48, "column": 30}}, + "9": {"start": {"line": 53, "column": 29}, "end": {"line": 53, "column": 48}}, + "10": {"start": {"line": 58, "column": 16}, "end": {"line": 60, "column": 3}}, + "11": {"start": {"line": 59, "column": 4}, "end": {"line": 59, "column": 80}}, + "12": {"start": {"line": 62, "column": 15}, "end": {"line": 86, "column": 3}}, + "13": {"start": {"line": 63, "column": 35}, "end": {"line": 63, "column": 45}}, + "14": {"start": {"line": 64, "column": 24}, "end": {"line": 64, "column": 125}}, + "15": {"start": {"line": 65, "column": 28}, "end": {"line": 67, "column": 5}}, + "16": {"start": {"line": 68, "column": 18}, "end": {"line": 71, "column": 5}}, + "17": {"start": {"line": 73, "column": 4}, "end": {"line": 85, "column": 6}}, + "18": {"start": {"line": 74, "column": 50}, "end": {"line": 74, "column": 81}}, + "19": {"start": {"line": 82, "column": 23}, "end": {"line": 82, "column": 54}}, + "20": {"start": {"line": 83, "column": 24}, "end": {"line": 83, "column": 52}}, + "21": {"start": {"line": 89, "column": 4}, "end": {"line": 103, "column": 6}}, + "22": {"start": {"line": 93, "column": 48}, "end": {"line": 93, "column": 59}}, + "23": {"start": {"line": 107, "column": 27}, "end": {"line": 112, "column": 1}}, + "24": {"start": {"line": 108, "column": 2}, "end": {"line": 111, "column": 4}}, + "25": {"start": {"line": 109, "column": 23}, "end": {"line": 109, "column": 46}}, + "26": {"start": {"line": 110, "column": 42}, "end": {"line": 110, "column": 76}}, + "27": {"start": {"line": 114, "column": 24}, "end": {"line": 119, "column": 1}}, + "28": {"start": {"line": 115, "column": 2}, "end": {"line": 118, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 33, "column": 14}, "end": {"line": 33, "column": 15}}, + "loc": {"start": {"line": 33, "column": 41}, "end": {"line": 36, "column": 3}}, + "line": 33 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 38, "column": 13}, "end": {"line": 38, "column": 14}}, + "loc": {"start": {"line": 38, "column": 57}, "end": {"line": 56, "column": 3}}, + "line": 38 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 46, "column": 17}, "end": {"line": 46, "column": 18}}, + "loc": {"start": {"line": 46, "column": 29}, "end": {"line": 49, "column": 9}}, + "line": 46 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 53, "column": 17}, "end": {"line": 53, "column": 18}}, + "loc": {"start": {"line": 53, "column": 29}, "end": {"line": 53, "column": 48}}, + "line": 53 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 58, "column": 16}, "end": {"line": 58, "column": 17}}, + "loc": {"start": {"line": 58, "column": 60}, "end": {"line": 60, "column": 3}}, + "line": 58 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 62, "column": 15}, "end": {"line": 62, "column": 16}}, + "loc": {"start": {"line": 62, "column": 72}, "end": {"line": 86, "column": 3}}, + "line": 62 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 74, "column": 44}, "end": {"line": 74, "column": 45}}, + "loc": {"start": {"line": 74, "column": 50}, "end": {"line": 74, "column": 81}}, + "line": 74 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 82, "column": 17}, "end": {"line": 82, "column": 18}}, + "loc": {"start": {"line": 82, "column": 23}, "end": {"line": 82, "column": 54}}, + "line": 82 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 83, "column": 18}, "end": {"line": 83, "column": 19}}, + "loc": {"start": {"line": 83, "column": 24}, "end": {"line": 83, "column": 52}}, + "line": 83 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 88, "column": 2}, "end": {"line": 88, "column": 3}}, + "loc": {"start": {"line": 88, "column": 11}, "end": {"line": 104, "column": 3}}, + "line": 88 + }, + "10": { + "name": "(anonymous_10)", + "decl": {"start": {"line": 93, "column": 24}, "end": {"line": 93, "column": 25}}, + "loc": {"start": {"line": 93, "column": 48}, "end": {"line": 93, "column": 59}}, + "line": 93 + }, + "11": { + "name": "(anonymous_11)", + "decl": {"start": {"line": 107, "column": 27}, "end": {"line": 107, "column": 28}}, + "loc": {"start": {"line": 107, "column": 46}, "end": {"line": 112, "column": 1}}, + "line": 107 + }, + "12": { + "name": "(anonymous_12)", + "decl": {"start": {"line": 109, "column": 17}, "end": {"line": 109, "column": 18}}, + "loc": {"start": {"line": 109, "column": 23}, "end": {"line": 109, "column": 46}}, + "line": 109 + }, + "13": { + "name": "(anonymous_13)", + "decl": {"start": {"line": 110, "column": 19}, "end": {"line": 110, "column": 20}}, + "loc": {"start": {"line": 110, "column": 42}, "end": {"line": 110, "column": 76}}, + "line": 110 + }, + "14": { + "name": "(anonymous_14)", + "decl": {"start": {"line": 114, "column": 24}, "end": {"line": 114, "column": 25}}, + "loc": {"start": {"line": 114, "column": 46}, "end": {"line": 119, "column": 1}}, + "line": 114 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 66, "column": 23}, "end": {"line": 66, "column": 101}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 66, "column": 50}, "end": {"line": 66, "column": 75}}, + {"start": {"line": 66, "column": 78}, "end": {"line": 66, "column": 101}} + ], + "line": 66 + }, + "1": { + "loc": {"start": {"line": 70, "column": 10}, "end": {"line": 70, "column": 135}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 70, "column": 10}, "end": {"line": 70, "column": 48}}, + {"start": {"line": 70, "column": 52}, "end": {"line": 70, "column": 76}}, + {"start": {"line": 70, "column": 80}, "end": {"line": 70, "column": 135}} + ], + "line": 70 + }, + "2": { + "loc": {"start": {"line": 73, "column": 11}, "end": {"line": 85, "column": 5}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 74, "column": 6}, "end": {"line": 76, "column": 22}}, + {"start": {"line": 78, "column": 6}, "end": {"line": 84, "column": 8}} + ], + "line": 73 + } + }, + "s": { + "0": 0, + "1": 0, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 0, + "22": 0, + "23": 1, + "24": 0, + "25": 0, + "26": 0, + "27": 1, + "28": 0 + }, + "f": {"0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0, "10": 0, "11": 0, "12": 0, "13": 0, "14": 0}, + "b": {"0": [0, 0], "1": [0, 0, 0], "2": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "0eedde8ae6e5f7e9efaf3a09c4a96eea496c3100" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSICredentialDetailsScreen\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSICredentialDetailsScreen\\index.tsx", + "statementMap": { + "0": {"start": {"line": 30, "column": 30}, "end": {"line": 39, "column": 1}}, + "1": {"start": {"line": 31, "column": 2}, "end": {"line": 33, "column": 3}}, + "2": {"start": {"line": 32, "column": 4}, "end": {"line": 32, "column": 36}}, + "3": {"start": {"line": 35, "column": 34}, "end": {"line": 35, "column": 80}}, + "4": {"start": {"line": 36, "column": 2}, "end": {"line": 38, "column": 3}}, + "5": {"start": {"line": 37, "column": 4}, "end": {"line": 37, "column": 17}}, + "6": {"start": {"line": 41, "column": 46}, "end": {"line": 123, "column": 1}}, + "7": {"start": {"line": 42, "column": 77}, "end": {"line": 42, "column": 95}}, + "8": {"start": {"line": 43, "column": 17}, "end": {"line": 43, "column": 40}}, + "9": {"start": {"line": 44, "column": 58}, "end": {"line": 44, "column": 91}}, + "10": {"start": {"line": 46, "column": 39}, "end": {"line": 61, "column": 3}}, + "11": {"start": {"line": 50, "column": 21}, "end": {"line": 50, "column": 110}}, + "12": {"start": {"line": 57, "column": 27}, "end": {"line": 57, "column": 46}}, + "13": {"start": {"line": 63, "column": 2}, "end": {"line": 122, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 30, "column": 30}, "end": {"line": 30, "column": 31}}, + "loc": {"start": {"line": 30, "column": 95}, "end": {"line": 39, "column": 1}}, + "line": 30 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 41, "column": 46}, "end": {"line": 41, "column": 47}}, + "loc": {"start": {"line": 41, "column": 77}, "end": {"line": 123, "column": 1}}, + "line": 41 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 50, "column": 15}, "end": {"line": 50, "column": 16}}, + "loc": {"start": {"line": 50, "column": 21}, "end": {"line": 50, "column": 110}}, + "line": 50 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 57, "column": 21}, "end": {"line": 57, "column": 22}}, + "loc": {"start": {"line": 57, "column": 27}, "end": {"line": 57, "column": 46}}, + "line": 57 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 31, "column": 2}, "end": {"line": 33, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 31, "column": 2}, "end": {"line": 33, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 31 + }, + "1": { + "loc": {"start": {"line": 31, "column": 6}, "end": {"line": 31, "column": 74}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 31, "column": 6}, "end": {"line": 31, "column": 36}}, + {"start": {"line": 31, "column": 40}, "end": {"line": 31, "column": 74}} + ], + "line": 31 + }, + "2": { + "loc": {"start": {"line": 36, "column": 2}, "end": {"line": 38, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 36, "column": 2}, "end": {"line": 38, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 36 + }, + "3": { + "loc": {"start": {"line": 42, "column": 53}, "end": {"line": 42, "column": 73}}, + "type": "default-arg", + "locations": [{"start": {"line": 42, "column": 68}, "end": {"line": 42, "column": 73}}], + "line": 42 + }, + "4": { + "loc": {"start": {"line": 52, "column": 8}, "end": {"line": 60, "column": 10}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 53, "column": 8}, "end": {"line": 59, "column": 9}}, + {"start": {"line": 60, "column": 8}, "end": {"line": 60, "column": 10}} + ], + "line": 52 + }, + "5": { + "loc": {"start": {"line": 70, "column": 31}, "end": {"line": 70, "column": 77}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 70, "column": 31}, "end": {"line": 70, "column": 47}}, + {"start": {"line": 70, "column": 51}, "end": {"line": 70, "column": 77}} + ], + "line": 70 + }, + "6": { + "loc": {"start": {"line": 75, "column": 26}, "end": {"line": 75, "column": 58}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 75, "column": 26}, "end": {"line": 75, "column": 32}}, + {"start": {"line": 75, "column": 36}, "end": {"line": 75, "column": 58}} + ], + "line": 75 + }, + "7": { + "loc": {"start": {"line": 90, "column": 9}, "end": {"line": 119, "column": 9}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 90, "column": 10}, "end": {"line": 90, "column": 23}}, + {"start": {"line": 90, "column": 27}, "end": {"line": 90, "column": 42}}, + {"start": {"line": 91, "column": 10}, "end": {"line": 118, "column": 28}} + ], + "line": 90 + }, + "8": { + "loc": {"start": {"line": 93, "column": 15}, "end": {"line": 104, "column": 15}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 93, "column": 15}, "end": {"line": 93, "column": 30}}, + {"start": {"line": 94, "column": 16}, "end": {"line": 103, "column": 18}} + ], + "line": 93 + }, + "9": { + "loc": {"start": {"line": 101, "column": 27}, "end": {"line": 101, "column": 61}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 101, "column": 43}, "end": {"line": 101, "column": 52}}, + {"start": {"line": 101, "column": 55}, "end": {"line": 101, "column": 61}} + ], + "line": 101 + }, + "10": { + "loc": {"start": {"line": 105, "column": 15}, "end": {"line": 116, "column": 15}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 105, "column": 15}, "end": {"line": 105, "column": 28}}, + {"start": {"line": 106, "column": 16}, "end": {"line": 115, "column": 18}} + ], + "line": 105 + }, + "11": { + "loc": {"start": {"line": 113, "column": 27}, "end": {"line": 113, "column": 63}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 113, "column": 45}, "end": {"line": 113, "column": 54}}, + {"start": {"line": 113, "column": 57}, "end": {"line": 113, "column": 63}} + ], + "line": 113 + } + }, + "s": {"0": 1, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 1, "7": 0, "8": 0, "9": 0, "10": 0, "11": 0, "12": 0, "13": 0}, + "f": {"0": 0, "1": 0, "2": 0, "3": 0}, + "b": { + "0": [0, 0], + "1": [0, 0], + "2": [0, 0], + "3": [0], + "4": [0, 0], + "5": [0, 0], + "6": [0, 0], + "7": [0, 0, 0], + "8": [0, 0], + "9": [0, 0], + "10": [0, 0], + "11": [0, 0] + }, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "e1dbbb9eaa434f2b8b70db67e5bd6626667b0cd1" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSICredentialRawJsonScreen\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSICredentialRawJsonScreen\\index.tsx", + "statementMap": { + "0": {"start": {"line": 21, "column": 46}, "end": {"line": 71, "column": 1}}, + "1": {"start": {"line": 22, "column": 18}, "end": {"line": 22, "column": 23}}, + "2": {"start": {"line": 24, "column": 16}, "end": {"line": 43, "column": 3}}, + "3": {"start": {"line": 45, "column": 24}, "end": {"line": 45, "column": 50}}, + "4": {"start": {"line": 47, "column": 2}, "end": {"line": 70, "column": 4}}, + "5": {"start": {"line": 58, "column": 33}, "end": {"line": 58, "column": 113}}, + "6": {"start": {"line": 59, "column": 35}, "end": {"line": 59, "column": 77}}, + "7": {"start": {"line": 60, "column": 16}, "end": {"line": 60, "column": 87}}, + "8": {"start": {"line": 60, "column": 67}, "end": {"line": 60, "column": 85}}, + "9": {"start": {"line": 61, "column": 16}, "end": {"line": 61, "column": 150}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 21, "column": 46}, "end": {"line": 21, "column": 47}}, + "loc": {"start": {"line": 21, "column": 77}, "end": {"line": 71, "column": 1}}, + "line": 21 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 57, "column": 23}, "end": {"line": 57, "column": 24}}, + "loc": {"start": {"line": 57, "column": 35}, "end": {"line": 62, "column": 15}}, + "line": 57 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 60, "column": 58}, "end": {"line": 60, "column": 59}}, + "loc": {"start": {"line": 60, "column": 67}, "end": {"line": 60, "column": 85}}, + "line": 60 + } + }, + "branchMap": {}, + "s": {"0": 1, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0}, + "f": {"0": 0, "1": 0, "2": 0}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "f395e9c6866b5078f2c460b6263cac9643e96bf1" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSICredentialSelectScreen\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSICredentialSelectScreen\\index.tsx", + "statementMap": { + "0": {"start": {"line": 21, "column": 46}, "end": {"line": 108, "column": 1}}, + "1": {"start": {"line": 22, "column": 21}, "end": {"line": 22, "column": 39}}, + "2": {"start": {"line": 23, "column": 56}, "end": {"line": 23, "column": 110}}, + "3": {"start": {"line": 25, "column": 23}, "end": {"line": 33, "column": 3}}, + "4": {"start": {"line": 26, "column": 25}, "end": {"line": 31, "column": 6}}, + "5": {"start": {"line": 27, "column": 25}, "end": {"line": 27, "column": 78}}, + "6": {"start": {"line": 28, "column": 6}, "end": {"line": 29, "column": 142}}, + "7": {"start": {"line": 30, "column": 6}, "end": {"line": 30, "column": 33}}, + "8": {"start": {"line": 32, "column": 4}, "end": {"line": 32, "column": 41}}, + "9": {"start": {"line": 35, "column": 22}, "end": {"line": 37, "column": 3}}, + "10": {"start": {"line": 36, "column": 4}, "end": {"line": 36, "column": 38}}, + "11": {"start": {"line": 39, "column": 24}, "end": {"line": 42, "column": 3}}, + "12": {"start": {"line": 40, "column": 4}, "end": {"line": 40, "column": 40}}, + "13": {"start": {"line": 41, "column": 4}, "end": {"line": 41, "column": 30}}, + "14": {"start": {"line": 44, "column": 22}, "end": {"line": 54, "column": 3}}, + "15": {"start": {"line": 45, "column": 4}, "end": {"line": 53, "column": 7}}, + "16": {"start": {"line": 51, "column": 23}, "end": {"line": 51, "column": 47}}, + "17": {"start": {"line": 56, "column": 21}, "end": {"line": 75, "column": 3}}, + "18": {"start": {"line": 57, "column": 28}, "end": {"line": 59, "column": 5}}, + "19": {"start": {"line": 60, "column": 18}, "end": {"line": 63, "column": 5}}, + "20": {"start": {"line": 64, "column": 4}, "end": {"line": 74, "column": 6}}, + "21": {"start": {"line": 65, "column": 50}, "end": {"line": 65, "column": 76}}, + "22": {"start": {"line": 65, "column": 97}, "end": {"line": 65, "column": 118}}, + "23": {"start": {"line": 71, "column": 25}, "end": {"line": 71, "column": 46}}, + "24": {"start": {"line": 77, "column": 2}, "end": {"line": 107, "column": 4}}, + "25": {"start": {"line": 82, "column": 58}, "end": {"line": 82, "column": 71}}, + "26": {"start": {"line": 94, "column": 95}, "end": {"line": 94, "column": 125}}, + "27": {"start": {"line": 96, "column": 14}, "end": {"line": 100, "column": 16}}, + "28": {"start": {"line": 98, "column": 73}, "end": {"line": 98, "column": 103}}, + "29": {"start": {"line": 99, "column": 70}, "end": {"line": 99, "column": 94}}, + "30": {"start": {"line": 101, "column": 14}, "end": {"line": 101, "column": 40}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 21, "column": 46}, "end": {"line": 21, "column": 47}}, + "loc": {"start": {"line": 21, "column": 77}, "end": {"line": 108, "column": 1}}, + "line": 21 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 25, "column": 23}, "end": {"line": 25, "column": 24}}, + "loc": {"start": {"line": 25, "column": 99}, "end": {"line": 33, "column": 3}}, + "line": 25 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 26, "column": 49}, "end": {"line": 26, "column": 50}}, + "loc": {"start": {"line": 26, "column": 96}, "end": {"line": 31, "column": 5}}, + "line": 26 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 35, "column": 22}, "end": {"line": 35, "column": 23}}, + "loc": {"start": {"line": 35, "column": 99}, "end": {"line": 37, "column": 3}}, + "line": 35 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 39, "column": 24}, "end": {"line": 39, "column": 25}}, + "loc": {"start": {"line": 39, "column": 82}, "end": {"line": 42, "column": 3}}, + "line": 39 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 44, "column": 22}, "end": {"line": 44, "column": 23}}, + "loc": {"start": {"line": 44, "column": 80}, "end": {"line": 54, "column": 3}}, + "line": 44 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 51, "column": 17}, "end": {"line": 51, "column": 18}}, + "loc": {"start": {"line": 51, "column": 23}, "end": {"line": 51, "column": 47}}, + "line": 51 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 56, "column": 21}, "end": {"line": 56, "column": 22}}, + "loc": {"start": {"line": 56, "column": 90}, "end": {"line": 75, "column": 3}}, + "line": 56 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 65, "column": 44}, "end": {"line": 65, "column": 45}}, + "loc": {"start": {"line": 65, "column": 50}, "end": {"line": 65, "column": 76}}, + "line": 65 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 65, "column": 91}, "end": {"line": 65, "column": 92}}, + "loc": {"start": {"line": 65, "column": 97}, "end": {"line": 65, "column": 118}}, + "line": 65 + }, + "10": { + "name": "(anonymous_10)", + "decl": {"start": {"line": 71, "column": 19}, "end": {"line": 71, "column": 20}}, + "loc": {"start": {"line": 71, "column": 25}, "end": {"line": 71, "column": 46}}, + "line": 71 + }, + "11": { + "name": "(anonymous_11)", + "decl": {"start": {"line": 82, "column": 22}, "end": {"line": 82, "column": 23}}, + "loc": {"start": {"line": 82, "column": 58}, "end": {"line": 82, "column": 71}}, + "line": 82 + }, + "12": { + "name": "(anonymous_12)", + "decl": {"start": {"line": 94, "column": 48}, "end": {"line": 94, "column": 49}}, + "loc": {"start": {"line": 94, "column": 95}, "end": {"line": 94, "column": 125}}, + "line": 94 + }, + "13": { + "name": "(anonymous_13)", + "decl": {"start": {"line": 95, "column": 21}, "end": {"line": 95, "column": 22}}, + "loc": {"start": {"line": 95, "column": 33}, "end": {"line": 102, "column": 13}}, + "line": 95 + }, + "14": { + "name": "(anonymous_14)", + "decl": {"start": {"line": 98, "column": 26}, "end": {"line": 98, "column": 27}}, + "loc": {"start": {"line": 98, "column": 73}, "end": {"line": 98, "column": 103}}, + "line": 98 + }, + "15": { + "name": "(anonymous_15)", + "decl": {"start": {"line": 99, "column": 23}, "end": {"line": 99, "column": 24}}, + "loc": {"start": {"line": 99, "column": 70}, "end": {"line": 99, "column": 94}}, + "line": 99 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 27, "column": 25}, "end": {"line": 27, "column": 78}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 27, "column": 48}, "end": {"line": 27, "column": 69}}, + {"start": {"line": 27, "column": 72}, "end": {"line": 27, "column": 78}} + ], + "line": 27 + }, + "1": { + "loc": {"start": {"line": 29, "column": 8}, "end": {"line": 29, "column": 141}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 29, "column": 54}, "end": {"line": 29, "column": 97}}, + {"start": {"line": 29, "column": 102}, "end": {"line": 29, "column": 140}} + ], + "line": 29 + }, + "2": { + "loc": {"start": {"line": 58, "column": 23}, "end": {"line": 58, "column": 101}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 58, "column": 50}, "end": {"line": 58, "column": 75}}, + {"start": {"line": 58, "column": 78}, "end": {"line": 58, "column": 101}} + ], + "line": 58 + }, + "3": { + "loc": {"start": {"line": 62, "column": 10}, "end": {"line": 62, "column": 146}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 62, "column": 10}, "end": {"line": 62, "column": 59}}, + {"start": {"line": 62, "column": 63}, "end": {"line": 62, "column": 87}}, + {"start": {"line": 62, "column": 91}, "end": {"line": 62, "column": 146}} + ], + "line": 62 + } + }, + "s": { + "0": 1, + "1": 0, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 0, + "22": 0, + "23": 0, + "24": 0, + "25": 0, + "26": 0, + "27": 0, + "28": 0, + "29": 0, + "30": 0 + }, + "f": {"0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0, "10": 0, "11": 0, "12": 0, "13": 0, "14": 0, "15": 0}, + "b": {"0": [0, 0], "1": [0, 0], "2": [0, 0], "3": [0, 0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "6845f41340038e2fd80c28b76c77a89136536265" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSICredentialSelectTypeScreen\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSICredentialSelectTypeScreen\\index.tsx", + "statementMap": { + "0": {"start": {"line": 20, "column": 49}, "end": {"line": 81, "column": 1}}, + "1": {"start": {"line": 21, "column": 48}, "end": {"line": 21, "column": 98}}, + "2": {"start": {"line": 23, "column": 18}, "end": {"line": 31, "column": 3}}, + "3": {"start": {"line": 24, "column": 22}, "end": {"line": 28, "column": 6}}, + "4": {"start": {"line": 25, "column": 6}, "end": {"line": 26, "column": 142}}, + "5": {"start": {"line": 27, "column": 6}, "end": {"line": 27, "column": 28}}, + "6": {"start": {"line": 30, "column": 4}, "end": {"line": 30, "column": 39}}, + "7": {"start": {"line": 33, "column": 19}, "end": {"line": 38, "column": 3}}, + "8": {"start": {"line": 34, "column": 39}, "end": {"line": 36, "column": 87}}, + "9": {"start": {"line": 35, "column": 69}, "end": {"line": 35, "column": 103}}, + "10": {"start": {"line": 36, "column": 57}, "end": {"line": 36, "column": 86}}, + "11": {"start": {"line": 37, "column": 4}, "end": {"line": 37, "column": 66}}, + "12": {"start": {"line": 40, "column": 21}, "end": {"line": 59, "column": 3}}, + "13": {"start": {"line": 41, "column": 28}, "end": {"line": 43, "column": 5}}, + "14": {"start": {"line": 44, "column": 18}, "end": {"line": 47, "column": 5}}, + "15": {"start": {"line": 49, "column": 4}, "end": {"line": 58, "column": 6}}, + "16": {"start": {"line": 50, "column": 50}, "end": {"line": 50, "column": 67}}, + "17": {"start": {"line": 52, "column": 31}, "end": {"line": 52, "column": 48}}, + "18": {"start": {"line": 61, "column": 2}, "end": {"line": 80, "column": 4}}, + "19": {"start": {"line": 67, "column": 62}, "end": {"line": 67, "column": 73}}, + "20": {"start": {"line": 76, "column": 88}, "end": {"line": 76, "column": 113}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 20, "column": 49}, "end": {"line": 20, "column": 50}}, + "loc": {"start": {"line": 20, "column": 80}, "end": {"line": 81, "column": 1}}, + "line": 20 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 23, "column": 18}, "end": {"line": 23, "column": 19}}, + "loc": {"start": {"line": 23, "column": 78}, "end": {"line": 31, "column": 3}}, + "line": 23 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 24, "column": 42}, "end": {"line": 24, "column": 43}}, + "loc": {"start": {"line": 24, "column": 88}, "end": {"line": 28, "column": 5}}, + "line": 24 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 33, "column": 19}, "end": {"line": 33, "column": 20}}, + "loc": {"start": {"line": 33, "column": 46}, "end": {"line": 38, "column": 3}}, + "line": 33 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 35, "column": 14}, "end": {"line": 35, "column": 15}}, + "loc": {"start": {"line": 35, "column": 69}, "end": {"line": 35, "column": 103}}, + "line": 35 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 36, "column": 11}, "end": {"line": 36, "column": 12}}, + "loc": {"start": {"line": 36, "column": 57}, "end": {"line": 36, "column": 86}}, + "line": 36 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 40, "column": 21}, "end": {"line": 40, "column": 22}}, + "loc": {"start": {"line": 40, "column": 94}, "end": {"line": 59, "column": 3}}, + "line": 40 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 50, "column": 44}, "end": {"line": 50, "column": 45}}, + "loc": {"start": {"line": 50, "column": 50}, "end": {"line": 50, "column": 67}}, + "line": 50 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 52, "column": 19}, "end": {"line": 52, "column": 20}}, + "loc": {"start": {"line": 52, "column": 31}, "end": {"line": 52, "column": 48}}, + "line": 52 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 67, "column": 22}, "end": {"line": 67, "column": 23}}, + "loc": {"start": {"line": 67, "column": 62}, "end": {"line": 67, "column": 73}}, + "line": 67 + }, + "10": { + "name": "(anonymous_10)", + "decl": {"start": {"line": 76, "column": 42}, "end": {"line": 76, "column": 43}}, + "loc": {"start": {"line": 76, "column": 88}, "end": {"line": 76, "column": 113}}, + "line": 76 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 26, "column": 8}, "end": {"line": 26, "column": 141}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 26, "column": 49}, "end": {"line": 26, "column": 102}}, + {"start": {"line": 26, "column": 107}, "end": {"line": 26, "column": 140}} + ], + "line": 26 + }, + "1": { + "loc": {"start": {"line": 42, "column": 23}, "end": {"line": 42, "column": 101}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 42, "column": 50}, "end": {"line": 42, "column": 75}}, + {"start": {"line": 42, "column": 78}, "end": {"line": 42, "column": 101}} + ], + "line": 42 + }, + "2": { + "loc": {"start": {"line": 46, "column": 10}, "end": {"line": 46, "column": 142}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 46, "column": 10}, "end": {"line": 46, "column": 55}}, + {"start": {"line": 46, "column": 59}, "end": {"line": 46, "column": 83}}, + {"start": {"line": 46, "column": 87}, "end": {"line": 46, "column": 142}} + ], + "line": 46 + } + }, + "s": { + "0": 1, + "1": 0, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0 + }, + "f": {"0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0, "10": 0}, + "b": {"0": [0, 0], "1": [0, 0], "2": [0, 0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "2f9866c400d6745a3603f101ec2abc81f1d935f7" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSICredentialsOverviewScreen\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSICredentialsOverviewScreen\\index.tsx", + "statementMap": { + "0": {"start": {"line": 35, "column": 18}, "end": {"line": 37, "column": 3}}, + "1": {"start": {"line": 39, "column": 14}, "end": {"line": 42, "column": 3}}, + "2": {"start": {"line": 40, "column": 4}, "end": {"line": 40, "column": 42}}, + "3": {"start": {"line": 41, "column": 4}, "end": {"line": 41, "column": 39}}, + "4": {"start": {"line": 44, "column": 13}, "end": {"line": 60, "column": 3}}, + "5": {"start": {"line": 45, "column": 4}, "end": {"line": 59, "column": 7}}, + "6": {"start": {"line": 51, "column": 10}, "end": {"line": 51, "column": 64}}, + "7": {"start": {"line": 52, "column": 10}, "end": {"line": 52, "column": 41}}, + "8": {"start": {"line": 57, "column": 29}, "end": {"line": 57, "column": 59}}, + "9": {"start": {"line": 62, "column": 16}, "end": {"line": 70, "column": 3}}, + "10": {"start": {"line": 63, "column": 4}, "end": {"line": 69, "column": 6}}, + "11": {"start": {"line": 64, "column": 6}, "end": {"line": 68, "column": 8}}, + "12": {"start": {"line": 72, "column": 15}, "end": {"line": 112, "column": 3}}, + "13": {"start": {"line": 73, "column": 48}, "end": {"line": 73, "column": 58}}, + "14": {"start": {"line": 76, "column": 6}, "end": {"line": 86, "column": 8}}, + "15": {"start": {"line": 89, "column": 28}, "end": {"line": 91, "column": 5}}, + "16": {"start": {"line": 92, "column": 18}, "end": {"line": 95, "column": 5}}, + "17": {"start": {"line": 97, "column": 4}, "end": {"line": 111, "column": 6}}, + "18": {"start": {"line": 98, "column": 39}, "end": {"line": 98, "column": 145}}, + "19": {"start": {"line": 100, "column": 50}, "end": {"line": 100, "column": 81}}, + "20": {"start": {"line": 108, "column": 23}, "end": {"line": 108, "column": 54}}, + "21": {"start": {"line": 109, "column": 24}, "end": {"line": 109, "column": 78}}, + "22": {"start": {"line": 115, "column": 4}, "end": {"line": 130, "column": 6}}, + "23": {"start": {"line": 120, "column": 58}, "end": {"line": 120, "column": 71}}, + "24": {"start": {"line": 134, "column": 27}, "end": {"line": 140, "column": 1}}, + "25": {"start": {"line": 136, "column": 2}, "end": {"line": 139, "column": 4}}, + "26": {"start": {"line": 137, "column": 36}, "end": {"line": 137, "column": 72}}, + "27": {"start": {"line": 138, "column": 60}, "end": {"line": 138, "column": 112}}, + "28": {"start": {"line": 142, "column": 24}, "end": {"line": 147, "column": 1}}, + "29": {"start": {"line": 143, "column": 2}, "end": {"line": 146, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 39, "column": 14}, "end": {"line": 39, "column": 15}}, + "loc": {"start": {"line": 39, "column": 41}, "end": {"line": 42, "column": 3}}, + "line": 39 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 44, "column": 13}, "end": {"line": 44, "column": 14}}, + "loc": {"start": {"line": 44, "column": 86}, "end": {"line": 60, "column": 3}}, + "line": 44 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 50, "column": 17}, "end": {"line": 50, "column": 18}}, + "loc": {"start": {"line": 50, "column": 29}, "end": {"line": 53, "column": 9}}, + "line": 50 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 57, "column": 17}, "end": {"line": 57, "column": 18}}, + "loc": {"start": {"line": 57, "column": 29}, "end": {"line": 57, "column": 59}}, + "line": 57 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 62, "column": 16}, "end": {"line": 62, "column": 17}}, + "loc": {"start": {"line": 62, "column": 73}, "end": {"line": 70, "column": 3}}, + "line": 62 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 63, "column": 58}, "end": {"line": 63, "column": 59}}, + "loc": {"start": {"line": 64, "column": 6}, "end": {"line": 68, "column": 8}}, + "line": 64 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 72, "column": 15}, "end": {"line": 72, "column": 16}}, + "loc": {"start": {"line": 72, "column": 82}, "end": {"line": 112, "column": 3}}, + "line": 72 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 98, "column": 6}, "end": {"line": 98, "column": 7}}, + "loc": {"start": {"line": 98, "column": 39}, "end": {"line": 98, "column": 145}}, + "line": 98 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 100, "column": 44}, "end": {"line": 100, "column": 45}}, + "loc": {"start": {"line": 100, "column": 50}, "end": {"line": 100, "column": 81}}, + "line": 100 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 108, "column": 17}, "end": {"line": 108, "column": 18}}, + "loc": {"start": {"line": 108, "column": 23}, "end": {"line": 108, "column": 54}}, + "line": 108 + }, + "10": { + "name": "(anonymous_10)", + "decl": {"start": {"line": 109, "column": 18}, "end": {"line": 109, "column": 19}}, + "loc": {"start": {"line": 109, "column": 24}, "end": {"line": 109, "column": 78}}, + "line": 109 + }, + "11": { + "name": "(anonymous_11)", + "decl": {"start": {"line": 114, "column": 2}, "end": {"line": 114, "column": 3}}, + "loc": {"start": {"line": 114, "column": 11}, "end": {"line": 131, "column": 3}}, + "line": 114 + }, + "12": { + "name": "(anonymous_12)", + "decl": {"start": {"line": 120, "column": 24}, "end": {"line": 120, "column": 25}}, + "loc": {"start": {"line": 120, "column": 58}, "end": {"line": 120, "column": 71}}, + "line": 120 + }, + "13": { + "name": "(anonymous_13)", + "decl": {"start": {"line": 134, "column": 27}, "end": {"line": 134, "column": 28}}, + "loc": {"start": {"line": 134, "column": 46}, "end": {"line": 140, "column": 1}}, + "line": 134 + }, + "14": { + "name": "(anonymous_14)", + "decl": {"start": {"line": 137, "column": 30}, "end": {"line": 137, "column": 31}}, + "loc": {"start": {"line": 137, "column": 36}, "end": {"line": 137, "column": 72}}, + "line": 137 + }, + "15": { + "name": "(anonymous_15)", + "decl": {"start": {"line": 138, "column": 32}, "end": {"line": 138, "column": 33}}, + "loc": {"start": {"line": 138, "column": 60}, "end": {"line": 138, "column": 112}}, + "line": 138 + }, + "16": { + "name": "(anonymous_16)", + "decl": {"start": {"line": 142, "column": 24}, "end": {"line": 142, "column": 25}}, + "loc": {"start": {"line": 142, "column": 46}, "end": {"line": 147, "column": 1}}, + "line": 142 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 90, "column": 23}, "end": {"line": 90, "column": 101}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 90, "column": 50}, "end": {"line": 90, "column": 75}}, + {"start": {"line": 90, "column": 78}, "end": {"line": 90, "column": 101}} + ], + "line": 90 + }, + "1": { + "loc": {"start": {"line": 94, "column": 10}, "end": {"line": 94, "column": 148}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 94, "column": 10}, "end": {"line": 94, "column": 61}}, + {"start": {"line": 94, "column": 65}, "end": {"line": 94, "column": 89}}, + {"start": {"line": 94, "column": 93}, "end": {"line": 94, "column": 148}} + ], + "line": 94 + }, + "2": { + "loc": {"start": {"line": 97, "column": 11}, "end": {"line": 111, "column": 5}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 100, "column": 6}, "end": {"line": 102, "column": 22}}, + {"start": {"line": 104, "column": 6}, "end": {"line": 110, "column": 8}} + ], + "line": 97 + }, + "3": { + "loc": {"start": {"line": 98, "column": 39}, "end": {"line": 98, "column": 145}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 98, "column": 39}, "end": {"line": 98, "column": 83}}, + {"start": {"line": 98, "column": 87}, "end": {"line": 98, "column": 145}} + ], + "line": 98 + } + }, + "s": { + "0": 0, + "1": 0, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 0, + "22": 0, + "23": 0, + "24": 1, + "25": 0, + "26": 0, + "27": 0, + "28": 1, + "29": 0 + }, + "f": { + "0": 0, + "1": 0, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0 + }, + "b": {"0": [0, 0], "1": [0, 0, 0], "2": [0, 0], "3": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "529905fcb4ce50c829a88ce8c72547d97d1a2ed2" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSICredentialsRequiredScreen\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSICredentialsRequiredScreen\\index.tsx", + "statementMap": { + "0": {"start": {"line": 30, "column": 48}, "end": {"line": 232, "column": 1}}, + "1": {"start": {"line": 31, "column": 82}, "end": {"line": 31, "column": 100}}, + "2": {"start": {"line": 32, "column": 56}, "end": {"line": 32, "column": 118}}, + "3": {"start": {"line": 33, "column": 58}, "end": {"line": 33, "column": 120}}, + "4": {"start": {"line": 34, "column": 14}, "end": {"line": 34, "column": 23}}, + "5": {"start": {"line": 36, "column": 2}, "end": {"line": 72, "column": 9}}, + "6": {"start": {"line": 38, "column": 4}, "end": {"line": 71, "column": 7}}, + "7": {"start": {"line": 40, "column": 63}, "end": {"line": 43, "column": 7}}, + "8": {"start": {"line": 42, "column": 10}, "end": {"line": 42, "column": 128}}, + "9": {"start": {"line": 44, "column": 27}, "end": {"line": 44, "column": 79}}, + "10": {"start": {"line": 45, "column": 6}, "end": {"line": 69, "column": 9}}, + "11": {"start": {"line": 46, "column": 39}, "end": {"line": 49, "column": 9}}, + "12": {"start": {"line": 50, "column": 44}, "end": {"line": 53, "column": 10}}, + "13": {"start": {"line": 54, "column": 8}, "end": {"line": 56, "column": 9}}, + "14": {"start": {"line": 55, "column": 10}, "end": {"line": 55, "column": 98}}, + "15": {"start": {"line": 58, "column": 10}, "end": {"line": 67, "column": 16}}, + "16": {"start": {"line": 61, "column": 36}, "end": {"line": 61, "column": 82}}, + "17": {"start": {"line": 62, "column": 18}, "end": {"line": 64, "column": 19}}, + "18": {"start": {"line": 63, "column": 20}, "end": {"line": 63, "column": 90}}, + "19": {"start": {"line": 66, "column": 120}, "end": {"line": 66, "column": 131}}, + "20": {"start": {"line": 68, "column": 8}, "end": {"line": 68, "column": 57}}, + "21": {"start": {"line": 70, "column": 6}, "end": {"line": 70, "column": 44}}, + "22": {"start": {"line": 74, "column": 2}, "end": {"line": 80, "column": 31}}, + "23": {"start": {"line": 75, "column": 24}, "end": {"line": 75, "column": 76}}, + "24": {"start": {"line": 76, "column": 4}, "end": {"line": 78, "column": 6}}, + "25": {"start": {"line": 77, "column": 6}, "end": {"line": 77, "column": 45}}, + "26": {"start": {"line": 79, "column": 4}, "end": {"line": 79, "column": 40}}, + "27": {"start": {"line": 82, "column": 20}, "end": {"line": 84, "column": 3}}, + "28": {"start": {"line": 83, "column": 4}, "end": {"line": 83, "column": 30}}, + "29": {"start": {"line": 86, "column": 17}, "end": {"line": 91, "column": 3}}, + "30": {"start": {"line": 87, "column": 21}, "end": {"line": 87, "column": 39}}, + "31": {"start": {"line": 88, "column": 24}, "end": {"line": 88, "column": 48}}, + "32": {"start": {"line": 90, "column": 4}, "end": {"line": 90, "column": 110}}, + "33": {"start": {"line": 90, "column": 45}, "end": {"line": 90, "column": 107}}, + "34": {"start": {"line": 93, "column": 33}, "end": {"line": 100, "column": 3}}, + "35": {"start": {"line": 94, "column": 66}, "end": {"line": 94, "column": 68}}, + "36": {"start": {"line": 95, "column": 4}, "end": {"line": 97, "column": 5}}, + "37": {"start": {"line": 96, "column": 6}, "end": {"line": 96, "column": 34}}, + "38": {"start": {"line": 99, "column": 4}, "end": {"line": 99, "column": 30}}, + "39": {"start": {"line": 102, "column": 43}, "end": {"line": 109, "column": 3}}, + "40": {"start": {"line": 103, "column": 4}, "end": {"line": 108, "column": 6}}, + "41": {"start": {"line": 106, "column": 49}, "end": {"line": 106, "column": 111}}, + "42": {"start": {"line": 111, "column": 22}, "end": {"line": 155, "column": 3}}, + "43": {"start": {"line": 113, "column": 46}, "end": {"line": 115, "column": 7}}, + "44": {"start": {"line": 113, "column": 129}, "end": {"line": 115, "column": 5}}, + "45": {"start": {"line": 116, "column": 60}, "end": {"line": 116, "column": 109}}, + "46": {"start": {"line": 118, "column": 4}, "end": {"line": 154, "column": 7}}, + "47": {"start": {"line": 122, "column": 70}, "end": {"line": 124, "column": 11}}, + "48": {"start": {"line": 123, "column": 47}, "end": {"line": 123, "column": 80}}, + "49": {"start": {"line": 125, "column": 36}, "end": {"line": 125, "column": 107}}, + "50": {"start": {"line": 126, "column": 32}, "end": {"line": 126, "column": 100}}, + "51": {"start": {"line": 127, "column": 29}, "end": {"line": 133, "column": 13}}, + "52": {"start": {"line": 131, "column": 16}, "end": {"line": 132, "column": 92}}, + "53": {"start": {"line": 134, "column": 10}, "end": {"line": 140, "column": 12}}, + "54": {"start": {"line": 146, "column": 28}, "end": {"line": 146, "column": 111}}, + "55": {"start": {"line": 146, "column": 86}, "end": {"line": 146, "column": 110}}, + "56": {"start": {"line": 147, "column": 8}, "end": {"line": 147, "column": 64}}, + "57": {"start": {"line": 148, "column": 29}, "end": {"line": 148, "column": 81}}, + "58": {"start": {"line": 149, "column": 8}, "end": {"line": 151, "column": 9}}, + "59": {"start": {"line": 150, "column": 10}, "end": {"line": 150, "column": 39}}, + "60": {"start": {"line": 152, "column": 8}, "end": {"line": 152, "column": 45}}, + "61": {"start": {"line": 158, "column": 21}, "end": {"line": 202, "column": 3}}, + "62": {"start": {"line": 160, "column": 6}, "end": {"line": 162, "column": 113}}, + "63": {"start": {"line": 162, "column": 16}, "end": {"line": 162, "column": 113}}, + "64": {"start": {"line": 164, "column": 28}, "end": {"line": 188, "column": 5}}, + "65": {"start": {"line": 168, "column": 6}, "end": {"line": 170, "column": 7}}, + "66": {"start": {"line": 169, "column": 8}, "end": {"line": 169, "column": 21}}, + "67": {"start": {"line": 171, "column": 80}, "end": {"line": 171, "column": 121}}, + "68": {"start": {"line": 172, "column": 6}, "end": {"line": 174, "column": 7}}, + "69": {"start": {"line": 173, "column": 8}, "end": {"line": 173, "column": 21}}, + "70": {"start": {"line": 176, "column": 63}, "end": {"line": 178, "column": 7}}, + "71": {"start": {"line": 177, "column": 8}, "end": {"line": 177, "column": 70}}, + "72": {"start": {"line": 179, "column": 6}, "end": {"line": 187, "column": 8}}, + "73": {"start": {"line": 190, "column": 4}, "end": {"line": 201, "column": 6}}, + "74": {"start": {"line": 204, "column": 2}, "end": {"line": 231, "column": 4}}, + "75": {"start": {"line": 209, "column": 75}, "end": {"line": 209, "column": 86}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 30, "column": 48}, "end": {"line": 30, "column": 49}}, + "loc": {"start": {"line": 30, "column": 79}, "end": {"line": 232, "column": 1}}, + "line": 30 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 36, "column": 12}, "end": {"line": 36, "column": 13}}, + "loc": {"start": {"line": 36, "column": 18}, "end": {"line": 72, "column": 3}}, + "line": 36 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 38, "column": 47}, "end": {"line": 38, "column": 48}}, + "loc": {"start": {"line": 38, "column": 97}, "end": {"line": 71, "column": 5}}, + "line": 38 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 41, "column": 8}, "end": {"line": 41, "column": 9}}, + "loc": {"start": {"line": 42, "column": 10}, "end": {"line": 42, "column": 128}}, + "line": 42 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 45, "column": 55}, "end": {"line": 45, "column": 56}}, + "loc": {"start": {"line": 45, "column": 115}, "end": {"line": 69, "column": 7}}, + "line": 45 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 60, "column": 21}, "end": {"line": 60, "column": 22}}, + "loc": {"start": {"line": 60, "column": 60}, "end": {"line": 65, "column": 17}}, + "line": 60 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 66, "column": 24}, "end": {"line": 66, "column": 25}}, + "loc": {"start": {"line": 66, "column": 120}, "end": {"line": 66, "column": 131}}, + "line": 66 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 74, "column": 12}, "end": {"line": 74, "column": 13}}, + "loc": {"start": {"line": 74, "column": 18}, "end": {"line": 80, "column": 3}}, + "line": 74 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 76, "column": 53}, "end": {"line": 76, "column": 54}}, + "loc": {"start": {"line": 77, "column": 6}, "end": {"line": 77, "column": 45}}, + "line": 77 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 82, "column": 20}, "end": {"line": 82, "column": 21}}, + "loc": {"start": {"line": 82, "column": 47}, "end": {"line": 84, "column": 3}}, + "line": 82 + }, + "10": { + "name": "(anonymous_10)", + "decl": {"start": {"line": 86, "column": 17}, "end": {"line": 86, "column": 18}}, + "loc": {"start": {"line": 86, "column": 44}, "end": {"line": 91, "column": 3}}, + "line": 86 + }, + "11": { + "name": "(anonymous_11)", + "decl": {"start": {"line": 90, "column": 33}, "end": {"line": 90, "column": 34}}, + "loc": {"start": {"line": 90, "column": 45}, "end": {"line": 90, "column": 107}}, + "line": 90 + }, + "12": { + "name": "(anonymous_12)", + "decl": {"start": {"line": 93, "column": 33}, "end": {"line": 93, "column": 34}}, + "loc": {"start": {"line": 93, "column": 74}, "end": {"line": 100, "column": 3}}, + "line": 93 + }, + "13": { + "name": "(anonymous_13)", + "decl": {"start": {"line": 102, "column": 43}, "end": {"line": 102, "column": 44}}, + "loc": {"start": {"line": 102, "column": 58}, "end": {"line": 109, "column": 3}}, + "line": 102 + }, + "14": { + "name": "(anonymous_14)", + "decl": {"start": {"line": 106, "column": 37}, "end": {"line": 106, "column": 38}}, + "loc": {"start": {"line": 106, "column": 49}, "end": {"line": 106, "column": 111}}, + "line": 106 + }, + "15": { + "name": "(anonymous_15)", + "decl": {"start": {"line": 111, "column": 22}, "end": {"line": 111, "column": 23}}, + "loc": {"start": {"line": 111, "column": 138}, "end": {"line": 155, "column": 3}}, + "line": 111 + }, + "16": { + "name": "(anonymous_16)", + "decl": {"start": {"line": 113, "column": 60}, "end": {"line": 113, "column": 61}}, + "loc": {"start": {"line": 113, "column": 129}, "end": {"line": 115, "column": 5}}, + "line": 113 + }, + "17": { + "name": "(anonymous_17)", + "decl": {"start": {"line": 120, "column": 22}, "end": {"line": 120, "column": 23}}, + "loc": {"start": {"line": 120, "column": 70}, "end": {"line": 141, "column": 9}}, + "line": 120 + }, + "18": { + "name": "(anonymous_18)", + "decl": {"start": {"line": 123, "column": 12}, "end": {"line": 123, "column": 13}}, + "loc": {"start": {"line": 123, "column": 47}, "end": {"line": 123, "column": 80}}, + "line": 123 + }, + "19": { + "name": "(anonymous_19)", + "decl": {"start": {"line": 130, "column": 14}, "end": {"line": 130, "column": 15}}, + "loc": {"start": {"line": 131, "column": 16}, "end": {"line": 132, "column": 92}}, + "line": 131 + }, + "20": { + "name": "(anonymous_20)", + "decl": {"start": {"line": 145, "column": 16}, "end": {"line": 145, "column": 17}}, + "loc": {"start": {"line": 145, "column": 49}, "end": {"line": 153, "column": 7}}, + "line": 145 + }, + "21": { + "name": "(anonymous_21)", + "decl": {"start": {"line": 146, "column": 80}, "end": {"line": 146, "column": 81}}, + "loc": {"start": {"line": 146, "column": 86}, "end": {"line": 146, "column": 110}}, + "line": 146 + }, + "22": { + "name": "(anonymous_22)", + "decl": {"start": {"line": 158, "column": 21}, "end": {"line": 158, "column": 22}}, + "loc": {"start": {"line": 158, "column": 107}, "end": {"line": 202, "column": 3}}, + "line": 158 + }, + "23": { + "name": "(anonymous_23)", + "decl": {"start": {"line": 162, "column": 10}, "end": {"line": 162, "column": 11}}, + "loc": {"start": {"line": 162, "column": 16}, "end": {"line": 162, "column": 113}}, + "line": 162 + }, + "24": { + "name": "(anonymous_24)", + "decl": {"start": {"line": 164, "column": 28}, "end": {"line": 164, "column": 29}}, + "loc": {"start": {"line": 167, "column": 18}, "end": {"line": 188, "column": 5}}, + "line": 167 + }, + "25": { + "name": "(anonymous_25)", + "decl": {"start": {"line": 176, "column": 86}, "end": {"line": 176, "column": 87}}, + "loc": {"start": {"line": 177, "column": 8}, "end": {"line": 177, "column": 70}}, + "line": 177 + }, + "26": { + "name": "(anonymous_26)", + "decl": {"start": {"line": 209, "column": 22}, "end": {"line": 209, "column": 23}}, + "loc": {"start": {"line": 209, "column": 75}, "end": {"line": 209, "column": 86}}, + "line": 209 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 54, "column": 8}, "end": {"line": 56, "column": 9}}, + "type": "if", + "locations": [ + {"start": {"line": 54, "column": 8}, "end": {"line": 56, "column": 9}}, + {"start": {}, "end": {}} + ], + "line": 54 + }, + "1": { + "loc": {"start": {"line": 58, "column": 10}, "end": {"line": 67, "column": 16}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 59, "column": 14}, "end": {"line": 66, "column": 132}}, + {"start": {"line": 67, "column": 14}, "end": {"line": 67, "column": 16}} + ], + "line": 58 + }, + "2": { + "loc": {"start": {"line": 58, "column": 10}, "end": {"line": 58, "column": 67}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 58, "column": 10}, "end": {"line": 58, "column": 30}}, + {"start": {"line": 58, "column": 34}, "end": {"line": 58, "column": 67}} + ], + "line": 58 + }, + "3": { + "loc": {"start": {"line": 62, "column": 18}, "end": {"line": 64, "column": 19}}, + "type": "if", + "locations": [ + {"start": {"line": 62, "column": 18}, "end": {"line": 64, "column": 19}}, + {"start": {}, "end": {}} + ], + "line": 62 + }, + "4": { + "loc": {"start": {"line": 62, "column": 22}, "end": {"line": 62, "column": 55}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 62, "column": 22}, "end": {"line": 62, "column": 31}}, + {"start": {"line": 62, "column": 35}, "end": {"line": 62, "column": 55}} + ], + "line": 62 + }, + "5": { + "loc": {"start": {"line": 131, "column": 16}, "end": {"line": 132, "column": 92}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 131, "column": 16}, "end": {"line": 131, "column": 86}}, + {"start": {"line": 132, "column": 16}, "end": {"line": 132, "column": 92}} + ], + "line": 131 + }, + "6": { + "loc": {"start": {"line": 160, "column": 6}, "end": {"line": 162, "column": 113}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 161, "column": 10}, "end": {"line": 161, "column": 19}}, + {"start": {"line": 162, "column": 10}, "end": {"line": 162, "column": 113}} + ], + "line": 160 + }, + "7": { + "loc": {"start": {"line": 160, "column": 6}, "end": {"line": 160, "column": 109}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 160, "column": 6}, "end": {"line": 160, "column": 49}}, + {"start": {"line": 160, "column": 53}, "end": {"line": 160, "column": 109}} + ], + "line": 160 + }, + "8": { + "loc": {"start": {"line": 168, "column": 6}, "end": {"line": 170, "column": 7}}, + "type": "if", + "locations": [ + {"start": {"line": 168, "column": 6}, "end": {"line": 170, "column": 7}}, + {"start": {}, "end": {}} + ], + "line": 168 + }, + "9": { + "loc": {"start": {"line": 172, "column": 6}, "end": {"line": 174, "column": 7}}, + "type": "if", + "locations": [ + {"start": {"line": 172, "column": 6}, "end": {"line": 174, "column": 7}}, + {"start": {}, "end": {}} + ], + "line": 172 + }, + "10": { + "loc": {"start": {"line": 193, "column": 15}, "end": {"line": 193, "column": 53}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 193, "column": 15}, "end": {"line": 193, "column": 33}}, + {"start": {"line": 193, "column": 37}, "end": {"line": 193, "column": 53}} + ], + "line": 193 + }, + "11": { + "loc": {"start": {"line": 195, "column": 19}, "end": {"line": 195, "column": 119}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 195, "column": 64}, "end": {"line": 195, "column": 107}}, + {"start": {"line": 195, "column": 110}, "end": {"line": 195, "column": 119}} + ], + "line": 195 + }, + "12": { + "loc": {"start": {"line": 196, "column": 18}, "end": {"line": 196, "column": 109}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 196, "column": 62}, "end": {"line": 196, "column": 104}}, + {"start": {"line": 196, "column": 107}, "end": {"line": 196, "column": 109}} + ], + "line": 196 + } + }, + "s": { + "0": 1, + "1": 0, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 0, + "22": 0, + "23": 0, + "24": 0, + "25": 0, + "26": 0, + "27": 0, + "28": 0, + "29": 0, + "30": 0, + "31": 0, + "32": 0, + "33": 0, + "34": 0, + "35": 0, + "36": 0, + "37": 0, + "38": 0, + "39": 0, + "40": 0, + "41": 0, + "42": 0, + "43": 0, + "44": 0, + "45": 0, + "46": 0, + "47": 0, + "48": 0, + "49": 0, + "50": 0, + "51": 0, + "52": 0, + "53": 0, + "54": 0, + "55": 0, + "56": 0, + "57": 0, + "58": 0, + "59": 0, + "60": 0, + "61": 0, + "62": 0, + "63": 0, + "64": 0, + "65": 0, + "66": 0, + "67": 0, + "68": 0, + "69": 0, + "70": 0, + "71": 0, + "72": 0, + "73": 0, + "74": 0, + "75": 0 + }, + "f": { + "0": 0, + "1": 0, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 0, + "22": 0, + "23": 0, + "24": 0, + "25": 0, + "26": 0 + }, + "b": { + "0": [0, 0], + "1": [0, 0], + "2": [0, 0], + "3": [0, 0], + "4": [0, 0], + "5": [0, 0], + "6": [0, 0], + "7": [0, 0], + "8": [0, 0], + "9": [0, 0], + "10": [0, 0], + "11": [0, 0], + "12": [0, 0] + }, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "350d5b0c8d949a35a55c2ce20be1e3eb1a8455c2" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSIErrorScreen\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSIErrorScreen\\index.tsx", + "statementMap": { + "0": {"start": {"line": 14, "column": 34}, "end": {"line": 54, "column": 1}}, + "1": {"start": {"line": 15, "column": 115}, "end": {"line": 15, "column": 133}}, + "2": {"start": {"line": 16, "column": 50}, "end": {"line": 16, "column": 71}}, + "3": {"start": {"line": 18, "column": 2}, "end": {"line": 53, "column": 4}}, + "4": {"start": {"line": 24, "column": 35}, "end": {"line": 24, "column": 61}}, + "5": {"start": {"line": 43, "column": 39}, "end": {"line": 43, "column": 64}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 14, "column": 34}, "end": {"line": 14, "column": 35}}, + "loc": {"start": {"line": 14, "column": 65}, "end": {"line": 54, "column": 1}}, + "line": 14 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 24, "column": 23}, "end": {"line": 24, "column": 24}}, + "loc": {"start": {"line": 24, "column": 35}, "end": {"line": 24, "column": 61}}, + "line": 24 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 43, "column": 27}, "end": {"line": 43, "column": 28}}, + "loc": {"start": {"line": 43, "column": 39}, "end": {"line": 43, "column": 64}}, + "line": 43 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 21, "column": 9}, "end": {"line": 31, "column": 9}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 21, "column": 9}, "end": {"line": 21, "column": 25}}, + {"start": {"line": 21, "column": 29}, "end": {"line": 21, "column": 41}}, + {"start": {"line": 22, "column": 10}, "end": {"line": 30, "column": 34}} + ], + "line": 21 + }, + "1": { + "loc": {"start": {"line": 40, "column": 12}, "end": {"line": 45, "column": 25}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 41, "column": 16}, "end": {"line": 44, "column": 17}}, + {"start": {"line": 45, "column": 16}, "end": {"line": 45, "column": 25}} + ], + "line": 40 + } + }, + "s": {"0": 1, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0}, + "f": {"0": 0, "1": 0, "2": 0}, + "b": {"0": [0, 0, 0], "1": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "55152dd08376403e7f20dfdf1f4d919d53735a76" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSILoadingScreen\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSILoadingScreen\\index.tsx", + "statementMap": { + "0": {"start": {"line": 18, "column": 22}, "end": {"line": 21, "column": 3}}, + "1": {"start": {"line": 20, "column": 4}, "end": {"line": 20, "column": 99}}, + "2": {"start": {"line": 20, "column": 93}, "end": {"line": 20, "column": 97}}, + "3": {"start": {"line": 23, "column": 25}, "end": {"line": 25, "column": 3}}, + "4": {"start": {"line": 24, "column": 4}, "end": {"line": 24, "column": 44}}, + "5": {"start": {"line": 28, "column": 22}, "end": {"line": 28, "column": 45}}, + "6": {"start": {"line": 29, "column": 4}, "end": {"line": 36, "column": 6}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 18, "column": 22}, "end": {"line": 18, "column": 23}}, + "loc": {"start": {"line": 18, "column": 34}, "end": {"line": 21, "column": 3}}, + "line": 18 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 20, "column": 87}, "end": {"line": 20, "column": 88}}, + "loc": {"start": {"line": 20, "column": 93}, "end": {"line": 20, "column": 97}}, + "line": 20 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 23, "column": 25}, "end": {"line": 23, "column": 26}}, + "loc": {"start": {"line": 23, "column": 37}, "end": {"line": 25, "column": 3}}, + "line": 23 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 27, "column": 2}, "end": {"line": 27, "column": 3}}, + "loc": {"start": {"line": 27, "column": 11}, "end": {"line": 37, "column": 3}}, + "line": 27 + } + }, + "branchMap": {}, + "s": {"0": 3, "1": 3, "2": 0, "3": 3, "4": 3, "5": 3, "6": 3}, + "f": {"0": 3, "1": 0, "2": 3, "3": 3}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "ae9c7e0d4ad60c09692693727d93937ea2c98243" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSILockScreen\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSILockScreen\\index.tsx", + "statementMap": { + "0": {"start": {"line": 18, "column": 33}, "end": {"line": 43, "column": 1}}, + "1": {"start": {"line": 19, "column": 25}, "end": {"line": 27, "column": 3}}, + "2": {"start": {"line": 20, "column": 29}, "end": {"line": 20, "column": 47}}, + "3": {"start": {"line": 23, "column": 4}, "end": {"line": 25, "column": 5}}, + "4": {"start": {"line": 24, "column": 6}, "end": {"line": 24, "column": 48}}, + "5": {"start": {"line": 26, "column": 4}, "end": {"line": 26, "column": 27}}, + "6": {"start": {"line": 29, "column": 2}, "end": {"line": 42, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 18, "column": 33}, "end": {"line": 18, "column": 34}}, + "loc": {"start": {"line": 18, "column": 64}, "end": {"line": 43, "column": 1}}, + "line": 18 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 19, "column": 25}, "end": {"line": 19, "column": 26}}, + "loc": {"start": {"line": 19, "column": 65}, "end": {"line": 27, "column": 3}}, + "line": 19 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 23, "column": 4}, "end": {"line": 25, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 23, "column": 4}, "end": {"line": 25, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 23 + } + }, + "s": {"0": 1, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0}, + "f": {"0": 0, "1": 0}, + "b": {"0": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "c50bed09e8bd58a3c7980d3b8b388050e4cb1e27" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSINotificationsOverviewScreen\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSINotificationsOverviewScreen\\index.tsx", + "statementMap": { + "0": {"start": {"line": 17, "column": 50}, "end": {"line": 30, "column": 1}}, + "1": {"start": {"line": 18, "column": 2}, "end": {"line": 29, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 17, "column": 50}, "end": {"line": 17, "column": 51}}, + "loc": {"start": {"line": 17, "column": 81}, "end": {"line": 30, "column": 1}}, + "line": 17 + } + }, + "branchMap": {}, + "s": {"0": 1, "1": 0}, + "f": {"0": 0}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "2e1626c25c3eae6235132ab4c33482c6cec6dca0" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSIQRReaderScreen\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSIQRReaderScreen\\index.tsx", + "statementMap": { + "0": {"start": {"line": 15, "column": 37}, "end": {"line": 40, "column": 1}}, + "1": {"start": {"line": 16, "column": 17}, "end": {"line": 18, "column": 3}}, + "2": {"start": {"line": 17, "column": 4}, "end": {"line": 17, "column": 73}}, + "3": {"start": {"line": 20, "column": 2}, "end": {"line": 23, "column": 3}}, + "4": {"start": {"line": 21, "column": 4}, "end": {"line": 21, "column": 35}}, + "5": {"start": {"line": 22, "column": 4}, "end": {"line": 22, "column": 48}}, + "6": {"start": {"line": 25, "column": 2}, "end": {"line": 39, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 15, "column": 37}, "end": {"line": 15, "column": 38}}, + "loc": {"start": {"line": 15, "column": 68}, "end": {"line": 40, "column": 1}}, + "line": 15 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 16, "column": 17}, "end": {"line": 16, "column": 18}}, + "loc": {"start": {"line": 16, "column": 71}, "end": {"line": 18, "column": 3}}, + "line": 16 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 20, "column": 2}, "end": {"line": 23, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 20, "column": 2}, "end": {"line": 23, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 20 + } + }, + "s": {"0": 1, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0}, + "f": {"0": 0, "1": 0}, + "b": {"0": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "30e3d59a154b04726dd91045a3558fdf1d04aee3" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSIVerificationCodeScreen\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\screens\\SSIVerificationCodeScreen\\index.tsx", + "statementMap": { + "0": {"start": {"line": 17, "column": 45}, "end": {"line": 54, "column": 1}}, + "1": {"start": {"line": 18, "column": 30}, "end": {"line": 18, "column": 35}}, + "2": {"start": {"line": 20, "column": 31}, "end": {"line": 36, "column": 3}}, + "3": {"start": {"line": 21, "column": 4}, "end": {"line": 35, "column": 7}}, + "4": {"start": {"line": 33, "column": 29}, "end": {"line": 33, "column": 80}}, + "5": {"start": {"line": 38, "column": 2}, "end": {"line": 53, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 17, "column": 45}, "end": {"line": 17, "column": 46}}, + "loc": {"start": {"line": 17, "column": 76}, "end": {"line": 54, "column": 1}}, + "line": 17 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 20, "column": 31}, "end": {"line": 20, "column": 32}}, + "loc": {"start": {"line": 20, "column": 58}, "end": {"line": 36, "column": 3}}, + "line": 20 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 33, "column": 17}, "end": {"line": 33, "column": 18}}, + "loc": {"start": {"line": 33, "column": 29}, "end": {"line": 33, "column": 80}}, + "line": 33 + } + }, + "branchMap": {}, + "s": {"0": 1, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0}, + "f": {"0": 0, "1": 0, "2": 0}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "4c6efddab323144a46b81c3e1c76f053f32793d6" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\services\\authenticationService.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\services\\authenticationService.ts", + "statementMap": { + "0": {"start": {"line": 12, "column": 30}, "end": {"line": 12, "column": 70}}, + "1": {"start": {"line": 14, "column": 28}, "end": {"line": 17, "column": 1}}, + "2": {"start": {"line": 16, "column": 2}, "end": {"line": 16, "column": 37}}, + "3": {"start": {"line": 19, "column": 21}, "end": {"line": 21, "column": 1}}, + "4": {"start": {"line": 20, "column": 2}, "end": {"line": 20, "column": 67}}, + "5": {"start": {"line": 23, "column": 21}, "end": {"line": 27, "column": 1}}, + "6": {"start": {"line": 25, "column": 25}, "end": {"line": 25, "column": 77}}, + "7": {"start": {"line": 26, "column": 2}, "end": {"line": 26, "column": 43}}, + "8": {"start": {"line": 29, "column": 35}, "end": {"line": 43, "column": 1}}, + "9": {"start": {"line": 30, "column": 32}, "end": {"line": 30, "column": 77}}, + "10": {"start": {"line": 30, "column": 66}, "end": {"line": 30, "column": 76}}, + "11": {"start": {"line": 31, "column": 2}, "end": {"line": 31, "column": 57}}, + "12": {"start": {"line": 33, "column": 2}, "end": {"line": 39, "column": 3}}, + "13": {"start": {"line": 34, "column": 4}, "end": {"line": 34, "column": 47}}, + "14": {"start": {"line": 35, "column": 9}, "end": {"line": 39, "column": 3}}, + "15": {"start": {"line": 36, "column": 4}, "end": {"line": 36, "column": 43}}, + "16": {"start": {"line": 38, "column": 4}, "end": {"line": 38, "column": 50}}, + "17": {"start": {"line": 40, "column": 2}, "end": {"line": 40, "column": 42}}, + "18": {"start": {"line": 42, "column": 2}, "end": {"line": 42, "column": 19}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 14, "column": 28}, "end": {"line": 14, "column": 29}}, + "loc": {"start": {"line": 14, "column": 90}, "end": {"line": 17, "column": 1}}, + "line": 14 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 19, "column": 21}, "end": {"line": 19, "column": 22}}, + "loc": {"start": {"line": 19, "column": 83}, "end": {"line": 21, "column": 1}}, + "line": 19 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 23, "column": 21}, "end": {"line": 23, "column": 22}}, + "loc": {"start": {"line": 23, "column": 48}, "end": {"line": 27, "column": 1}}, + "line": 23 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 29, "column": 35}, "end": {"line": 29, "column": 36}}, + "loc": {"start": {"line": 29, "column": 62}, "end": {"line": 43, "column": 1}}, + "line": 29 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 30, "column": 44}, "end": {"line": 30, "column": 45}}, + "loc": {"start": {"line": 30, "column": 66}, "end": {"line": 30, "column": 76}}, + "line": 30 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 33, "column": 2}, "end": {"line": 39, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 33, "column": 2}, "end": {"line": 39, "column": 3}}, + {"start": {"line": 35, "column": 9}, "end": {"line": 39, "column": 3}} + ], + "line": 33 + }, + "1": { + "loc": {"start": {"line": 33, "column": 6}, "end": {"line": 33, "column": 67}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 33, "column": 6}, "end": {"line": 33, "column": 32}}, + {"start": {"line": 33, "column": 36}, "end": {"line": 33, "column": 67}} + ], + "line": 33 + }, + "2": { + "loc": {"start": {"line": 35, "column": 9}, "end": {"line": 39, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 35, "column": 9}, "end": {"line": 39, "column": 3}}, + {"start": {"line": 37, "column": 9}, "end": {"line": 39, "column": 3}} + ], + "line": 35 + } + }, + "s": { + "0": 1, + "1": 1, + "2": 0, + "3": 1, + "4": 0, + "5": 1, + "6": 0, + "7": 0, + "8": 1, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0 + }, + "f": {"0": 0, "1": 0, "2": 0, "3": 0, "4": 0}, + "b": {"0": [0, 0], "1": [0, 0], "2": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "6d6b6d9d430232dd1facdbb45aa82b6929946732" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\services\\brandingService.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\services\\brandingService.ts", + "statementMap": { + "0": {"start": {"line": 11, "column": 30}, "end": {"line": 11, "column": 64}}, + "1": {"start": {"line": 13, "column": 37}, "end": {"line": 16, "column": 1}}, + "2": {"start": {"line": 14, "column": 2}, "end": {"line": 14, "column": 64}}, + "3": {"start": {"line": 15, "column": 2}, "end": {"line": 15, "column": 39}}, + "4": {"start": {"line": 18, "column": 40}, "end": {"line": 21, "column": 1}}, + "5": {"start": {"line": 19, "column": 2}, "end": {"line": 19, "column": 64}}, + "6": {"start": {"line": 20, "column": 2}, "end": {"line": 20, "column": 42}}, + "7": {"start": {"line": 23, "column": 39}, "end": {"line": 49, "column": 1}}, + "8": {"start": {"line": 28, "column": 28}, "end": {"line": 28, "column": 52}}, + "9": {"start": {"line": 29, "column": 98}, "end": {"line": 32, "column": 3}}, + "10": {"start": {"line": 31, "column": 6}, "end": {"line": 31, "column": 77}}, + "11": {"start": {"line": 34, "column": 35}, "end": {"line": 34, "column": 93}}, + "12": {"start": {"line": 35, "column": 2}, "end": {"line": 39, "column": 3}}, + "13": {"start": {"line": 36, "column": 4}, "end": {"line": 38, "column": 7}}, + "14": {"start": {"line": 41, "column": 46}, "end": {"line": 41, "column": 130}}, + "15": {"start": {"line": 42, "column": 2}, "end": {"line": 46, "column": 3}}, + "16": {"start": {"line": 43, "column": 4}, "end": {"line": 45, "column": 7}}, + "17": {"start": {"line": 48, "column": 2}, "end": {"line": 48, "column": 24}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 13, "column": 37}, "end": {"line": 13, "column": 38}}, + "loc": {"start": {"line": 13, "column": 111}, "end": {"line": 16, "column": 1}}, + "line": 13 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 18, "column": 40}, "end": {"line": 18, "column": 41}}, + "loc": {"start": {"line": 18, "column": 113}, "end": {"line": 21, "column": 1}}, + "line": 18 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 23, "column": 39}, "end": {"line": 23, "column": 40}}, + "loc": {"start": {"line": 25, "column": 87}, "end": {"line": 49, "column": 1}}, + "line": 25 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 30, "column": 4}, "end": {"line": 30, "column": 5}}, + "loc": {"start": {"line": 31, "column": 6}, "end": {"line": 31, "column": 77}}, + "line": 31 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 36, "column": 38}, "end": {"line": 36, "column": 39}}, + "loc": {"start": {"line": 36, "column": 50}, "end": {"line": 38, "column": 5}}, + "line": 36 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 43, "column": 49}, "end": {"line": 43, "column": 50}}, + "loc": {"start": {"line": 43, "column": 61}, "end": {"line": 45, "column": 5}}, + "line": 43 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 31, "column": 6}, "end": {"line": 31, "column": 77}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 31, "column": 6}, "end": {"line": 31, "column": 44}}, + {"start": {"line": 31, "column": 48}, "end": {"line": 31, "column": 77}} + ], + "line": 31 + }, + "1": { + "loc": {"start": {"line": 34, "column": 35}, "end": {"line": 34, "column": 93}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 34, "column": 35}, "end": {"line": 34, "column": 64}}, + {"start": {"line": 34, "column": 68}, "end": {"line": 34, "column": 93}} + ], + "line": 34 + }, + "2": { + "loc": {"start": {"line": 35, "column": 2}, "end": {"line": 39, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 35, "column": 2}, "end": {"line": 39, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 35 + }, + "3": { + "loc": {"start": {"line": 41, "column": 46}, "end": {"line": 41, "column": 130}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 41, "column": 46}, "end": {"line": 41, "column": 88}}, + {"start": {"line": 41, "column": 92}, "end": {"line": 41, "column": 130}} + ], + "line": 41 + }, + "4": { + "loc": {"start": {"line": 42, "column": 2}, "end": {"line": 46, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 42, "column": 2}, "end": {"line": 46, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 42 + } + }, + "s": { + "0": 1, + "1": 1, + "2": 0, + "3": 0, + "4": 1, + "5": 0, + "6": 0, + "7": 1, + "8": 1, + "9": 1, + "10": 0, + "11": 1, + "12": 1, + "13": 0, + "14": 1, + "15": 1, + "16": 0, + "17": 1 + }, + "f": {"0": 0, "1": 0, "2": 1, "3": 0, "4": 0, "5": 0}, + "b": {"0": [0, 0], "1": [1, 1], "2": [0, 1], "3": [1, 1], "4": [0, 1]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "46b3968a25c4eccb32ccb3532ab1aab47d6dd5e8" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\services\\contactService.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\services\\contactService.ts", + "statementMap": { + "0": {"start": {"line": 9, "column": 30}, "end": {"line": 9, "column": 63}}, + "1": {"start": {"line": 11, "column": 27}, "end": {"line": 14, "column": 1}}, + "2": {"start": {"line": 12, "column": 2}, "end": {"line": 12, "column": 51}}, + "3": {"start": {"line": 13, "column": 2}, "end": {"line": 13, "column": 35}}, + "4": {"start": {"line": 16, "column": 29}, "end": {"line": 24, "column": 1}}, + "5": {"start": {"line": 17, "column": 2}, "end": {"line": 17, "column": 53}}, + "6": {"start": {"line": 18, "column": 2}, "end": {"line": 23, "column": 97}}, + "7": {"start": {"line": 20, "column": 6}, "end": {"line": 20, "column": 64}}, + "8": {"start": {"line": 21, "column": 6}, "end": {"line": 21, "column": 21}}, + "9": {"start": {"line": 23, "column": 29}, "end": {"line": 23, "column": 95}}, + "10": {"start": {"line": 26, "column": 29}, "end": {"line": 34, "column": 1}}, + "11": {"start": {"line": 27, "column": 2}, "end": {"line": 27, "column": 53}}, + "12": {"start": {"line": 28, "column": 2}, "end": {"line": 33, "column": 97}}, + "13": {"start": {"line": 30, "column": 6}, "end": {"line": 30, "column": 64}}, + "14": {"start": {"line": 31, "column": 6}, "end": {"line": 31, "column": 21}}, + "15": {"start": {"line": 33, "column": 29}, "end": {"line": 33, "column": 95}}, + "16": {"start": {"line": 36, "column": 29}, "end": {"line": 44, "column": 1}}, + "17": {"start": {"line": 37, "column": 2}, "end": {"line": 37, "column": 53}}, + "18": {"start": {"line": 38, "column": 2}, "end": {"line": 43, "column": 97}}, + "19": {"start": {"line": 40, "column": 6}, "end": {"line": 40, "column": 64}}, + "20": {"start": {"line": 41, "column": 6}, "end": {"line": 41, "column": 23}}, + "21": {"start": {"line": 43, "column": 29}, "end": {"line": 43, "column": 95}}, + "22": {"start": {"line": 46, "column": 27}, "end": {"line": 54, "column": 1}}, + "23": {"start": {"line": 47, "column": 2}, "end": {"line": 47, "column": 51}}, + "24": {"start": {"line": 48, "column": 2}, "end": {"line": 53, "column": 124}}, + "25": {"start": {"line": 50, "column": 6}, "end": {"line": 50, "column": 66}}, + "26": {"start": {"line": 51, "column": 6}, "end": {"line": 51, "column": 22}}, + "27": {"start": {"line": 53, "column": 29}, "end": {"line": 53, "column": 122}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 11, "column": 27}, "end": {"line": 11, "column": 28}}, + "loc": {"start": {"line": 11, "column": 88}, "end": {"line": 14, "column": 1}}, + "line": 11 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 16, "column": 29}, "end": {"line": 16, "column": 30}}, + "loc": {"start": {"line": 16, "column": 84}, "end": {"line": 24, "column": 1}}, + "line": 16 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 19, "column": 10}, "end": {"line": 19, "column": 11}}, + "loc": {"start": {"line": 19, "column": 33}, "end": {"line": 22, "column": 5}}, + "line": 19 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 23, "column": 11}, "end": {"line": 23, "column": 12}}, + "loc": {"start": {"line": 23, "column": 29}, "end": {"line": 23, "column": 95}}, + "line": 23 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 26, "column": 29}, "end": {"line": 26, "column": 30}}, + "loc": {"start": {"line": 26, "column": 84}, "end": {"line": 34, "column": 1}}, + "line": 26 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 29, "column": 10}, "end": {"line": 29, "column": 11}}, + "loc": {"start": {"line": 29, "column": 33}, "end": {"line": 32, "column": 5}}, + "line": 29 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 33, "column": 11}, "end": {"line": 33, "column": 12}}, + "loc": {"start": {"line": 33, "column": 29}, "end": {"line": 33, "column": 95}}, + "line": 33 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 36, "column": 29}, "end": {"line": 36, "column": 30}}, + "loc": {"start": {"line": 36, "column": 83}, "end": {"line": 44, "column": 1}}, + "line": 36 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 39, "column": 10}, "end": {"line": 39, "column": 11}}, + "loc": {"start": {"line": 39, "column": 34}, "end": {"line": 42, "column": 5}}, + "line": 39 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 43, "column": 11}, "end": {"line": 43, "column": 12}}, + "loc": {"start": {"line": 43, "column": 29}, "end": {"line": 43, "column": 95}}, + "line": 43 + }, + "10": { + "name": "(anonymous_10)", + "decl": {"start": {"line": 46, "column": 27}, "end": {"line": 46, "column": 28}}, + "loc": {"start": {"line": 46, "column": 81}, "end": {"line": 54, "column": 1}}, + "line": 46 + }, + "11": { + "name": "(anonymous_11)", + "decl": {"start": {"line": 49, "column": 10}, "end": {"line": 49, "column": 11}}, + "loc": {"start": {"line": 49, "column": 35}, "end": {"line": 52, "column": 5}}, + "line": 49 + }, + "12": { + "name": "(anonymous_12)", + "decl": {"start": {"line": 53, "column": 11}, "end": {"line": 53, "column": 12}}, + "loc": {"start": {"line": 53, "column": 29}, "end": {"line": 53, "column": 122}}, + "line": 53 + } + }, + "branchMap": {}, + "s": { + "0": 1, + "1": 1, + "2": 1, + "3": 1, + "4": 1, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 1, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 1, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 0, + "22": 1, + "23": 0, + "24": 0, + "25": 0, + "26": 0, + "27": 0 + }, + "f": {"0": 1, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0, "10": 0, "11": 0, "12": 0}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "b342f1bf2ce8f11064cda9a7b579419c420ca3c6" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\services\\credentialService.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\services\\credentialService.ts", + "statementMap": { + "0": {"start": {"line": 22, "column": 51}, "end": {"line": 24, "column": 1}}, + "1": {"start": {"line": 23, "column": 2}, "end": {"line": 23, "column": 48}}, + "2": {"start": {"line": 26, "column": 41}, "end": {"line": 28, "column": 1}}, + "3": {"start": {"line": 27, "column": 2}, "end": {"line": 27, "column": 76}}, + "4": {"start": {"line": 30, "column": 39}, "end": {"line": 32, "column": 1}}, + "5": {"start": {"line": 31, "column": 2}, "end": {"line": 31, "column": 61}}, + "6": {"start": {"line": 34, "column": 42}, "end": {"line": 36, "column": 1}}, + "7": {"start": {"line": 35, "column": 2}, "end": {"line": 35, "column": 134}}, + "8": {"start": {"line": 35, "column": 78}, "end": {"line": 35, "column": 132}}, + "9": {"start": {"line": 38, "column": 42}, "end": {"line": 40, "column": 1}}, + "10": {"start": {"line": 39, "column": 2}, "end": {"line": 39, "column": 41}}, + "11": {"start": {"line": 42, "column": 32}, "end": {"line": 80, "column": 1}}, + "12": {"start": {"line": 44, "column": 42}, "end": {"line": 44, "column": 105}}, + "13": {"start": {"line": 46, "column": 2}, "end": {"line": 79, "column": 3}}, + "14": {"start": {"line": 47, "column": 4}, "end": {"line": 55, "column": 6}}, + "15": {"start": {"line": 57, "column": 49}, "end": {"line": 57, "column": 51}}, + "16": {"start": {"line": 60, "column": 4}, "end": {"line": 70, "column": 5}}, + "17": {"start": {"line": 61, "column": 6}, "end": {"line": 61, "column": 42}}, + "18": {"start": {"line": 62, "column": 6}, "end": {"line": 62, "column": 55}}, + "19": {"start": {"line": 63, "column": 6}, "end": {"line": 63, "column": 107}}, + "20": {"start": {"line": 64, "column": 6}, "end": {"line": 69, "column": 7}}, + "21": {"start": {"line": 65, "column": 8}, "end": {"line": 65, "column": 128}}, + "22": {"start": {"line": 65, "column": 88}, "end": {"line": 65, "column": 115}}, + "23": {"start": {"line": 66, "column": 8}, "end": {"line": 68, "column": 143}}, + "24": {"start": {"line": 68, "column": 45}, "end": {"line": 68, "column": 130}}, + "25": {"start": {"line": 72, "column": 4}, "end": {"line": 78, "column": 6}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 22, "column": 51}, "end": {"line": 22, "column": 52}}, + "loc": {"start": {"line": 22, "column": 107}, "end": {"line": 24, "column": 1}}, + "line": 22 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 26, "column": 41}, "end": {"line": 26, "column": 42}}, + "loc": {"start": {"line": 26, "column": 106}, "end": {"line": 28, "column": 1}}, + "line": 26 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 30, "column": 39}, "end": {"line": 30, "column": 40}}, + "loc": {"start": {"line": 30, "column": 116}, "end": {"line": 32, "column": 1}}, + "line": 30 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 34, "column": 42}, "end": {"line": 34, "column": 43}}, + "loc": {"start": {"line": 34, "column": 109}, "end": {"line": 36, "column": 1}}, + "line": 34 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 35, "column": 72}, "end": {"line": 35, "column": 73}}, + "loc": {"start": {"line": 35, "column": 78}, "end": {"line": 35, "column": 132}}, + "line": 35 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 38, "column": 42}, "end": {"line": 38, "column": 43}}, + "loc": {"start": {"line": 38, "column": 122}, "end": {"line": 40, "column": 1}}, + "line": 38 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 42, "column": 32}, "end": {"line": 42, "column": 33}}, + "loc": {"start": {"line": 42, "column": 101}, "end": {"line": 80, "column": 1}}, + "line": 42 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 65, "column": 79}, "end": {"line": 65, "column": 80}}, + "loc": {"start": {"line": 65, "column": 88}, "end": {"line": 65, "column": 115}}, + "line": 65 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 68, "column": 36}, "end": {"line": 68, "column": 37}}, + "loc": {"start": {"line": 68, "column": 45}, "end": {"line": 68, "column": 130}}, + "line": 68 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 46, "column": 2}, "end": {"line": 79, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 46, "column": 2}, "end": {"line": 79, "column": 3}}, + {"start": {"line": 56, "column": 9}, "end": {"line": 79, "column": 3}} + ], + "line": 46 + }, + "1": { + "loc": {"start": {"line": 50, "column": 10}, "end": {"line": 53, "column": 7}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 50, "column": 10}, "end": {"line": 50, "column": 17}}, + {"start": {"line": 50, "column": 21}, "end": {"line": 53, "column": 7}} + ], + "line": 50 + }, + "2": { + "loc": {"start": {"line": 60, "column": 4}, "end": {"line": 70, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 60, "column": 4}, "end": {"line": 70, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 60 + }, + "3": { + "loc": {"start": {"line": 61, "column": 14}, "end": {"line": 61, "column": 41}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 61, "column": 14}, "end": {"line": 61, "column": 35}}, + {"start": {"line": 61, "column": 39}, "end": {"line": 61, "column": 41}} + ], + "line": 61 + }, + "4": { + "loc": {"start": {"line": 62, "column": 21}, "end": {"line": 62, "column": 54}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 62, "column": 21}, "end": {"line": 62, "column": 48}}, + {"start": {"line": 62, "column": 52}, "end": {"line": 62, "column": 54}} + ], + "line": 62 + }, + "5": { + "loc": {"start": {"line": 63, "column": 22}, "end": {"line": 63, "column": 68}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 63, "column": 44}, "end": {"line": 63, "column": 63}}, + {"start": {"line": 63, "column": 66}, "end": {"line": 63, "column": 68}} + ], + "line": 63 + }, + "6": { + "loc": {"start": {"line": 63, "column": 73}, "end": {"line": 63, "column": 105}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 63, "column": 73}, "end": {"line": 63, "column": 99}}, + {"start": {"line": 63, "column": 103}, "end": {"line": 63, "column": 105}} + ], + "line": 63 + }, + "7": { + "loc": {"start": {"line": 64, "column": 6}, "end": {"line": 69, "column": 7}}, + "type": "if", + "locations": [ + {"start": {"line": 64, "column": 6}, "end": {"line": 69, "column": 7}}, + {"start": {}, "end": {}} + ], + "line": 64 + }, + "8": { + "loc": {"start": {"line": 65, "column": 17}, "end": {"line": 65, "column": 49}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 65, "column": 32}, "end": {"line": 65, "column": 44}}, + {"start": {"line": 65, "column": 47}, "end": {"line": 65, "column": 49}} + ], + "line": 65 + }, + "9": { + "loc": {"start": {"line": 65, "column": 88}, "end": {"line": 65, "column": 115}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 65, "column": 88}, "end": {"line": 65, "column": 101}}, + {"start": {"line": 65, "column": 105}, "end": {"line": 65, "column": 115}} + ], + "line": 65 + }, + "10": { + "loc": {"start": {"line": 67, "column": 11}, "end": {"line": 67, "column": 57}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 67, "column": 33}, "end": {"line": 67, "column": 52}}, + {"start": {"line": 67, "column": 55}, "end": {"line": 67, "column": 57}} + ], + "line": 67 + }, + "11": { + "loc": {"start": {"line": 68, "column": 46}, "end": {"line": 68, "column": 99}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 68, "column": 69}, "end": {"line": 68, "column": 94}}, + {"start": {"line": 68, "column": 97}, "end": {"line": 68, "column": 99}} + ], + "line": 68 + }, + "12": { + "loc": {"start": {"line": 68, "column": 104}, "end": {"line": 68, "column": 129}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 68, "column": 104}, "end": {"line": 68, "column": 123}}, + {"start": {"line": 68, "column": 127}, "end": {"line": 68, "column": 129}} + ], + "line": 68 + } + }, + "s": { + "0": 1, + "1": 1, + "2": 1, + "3": 1, + "4": 1, + "5": 0, + "6": 1, + "7": 0, + "8": 0, + "9": 1, + "10": 1, + "11": 1, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 0, + "22": 0, + "23": 0, + "24": 0, + "25": 0 + }, + "f": {"0": 1, "1": 1, "2": 0, "3": 0, "4": 0, "5": 1, "6": 0, "7": 0, "8": 0}, + "b": { + "0": [0, 0], + "1": [0, 0], + "2": [0, 0], + "3": [0, 0], + "4": [0, 0], + "5": [0, 0], + "6": [0, 0], + "7": [0, 0], + "8": [0, 0], + "9": [0, 0], + "10": [0, 0], + "11": [0, 0], + "12": [0, 0] + }, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "3ba4a85f9270862902a85a68d9c8e929d95c3bcb" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\services\\fileService.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\services\\fileService.ts", + "statementMap": { + "0": {"start": {"line": 5, "column": 24}, "end": {"line": 7, "column": 1}}, + "1": {"start": {"line": 6, "column": 2}, "end": {"line": 6, "column": 33}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 5, "column": 24}, "end": {"line": 5, "column": 25}}, + "loc": {"start": {"line": 5, "column": 78}, "end": {"line": 7, "column": 1}}, + "line": 5 + } + }, + "branchMap": {}, + "s": {"0": 1, "1": 0}, + "f": {"0": 0}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "2745279acdca969bc3484324958c583ead215e04" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\services\\identityService.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\services\\identityService.ts", + "statementMap": { + "0": {"start": {"line": 10, "column": 30}, "end": {"line": 13, "column": 1}}, + "1": {"start": {"line": 12, "column": 2}, "end": {"line": 12, "column": 26}}, + "2": {"start": {"line": 15, "column": 32}, "end": {"line": 32, "column": 1}}, + "3": {"start": {"line": 16, "column": 21}, "end": {"line": 21, "column": 4}}, + "4": {"start": {"line": 23, "column": 2}, "end": {"line": 29, "column": 3}}, + "5": {"start": {"line": 24, "column": 4}, "end": {"line": 28, "column": 7}}, + "6": {"start": {"line": 25, "column": 6}, "end": {"line": 27, "column": 15}}, + "7": {"start": {"line": 26, "column": 8}, "end": {"line": 26, "column": 43}}, + "8": {"start": {"line": 31, "column": 2}, "end": {"line": 31, "column": 20}}, + "9": {"start": {"line": 34, "column": 44}, "end": {"line": 46, "column": 1}}, + "10": {"start": {"line": 35, "column": 22}, "end": {"line": 38, "column": 3}}, + "11": {"start": {"line": 37, "column": 6}, "end": {"line": 37, "column": 136}}, + "12": {"start": {"line": 37, "column": 91}, "end": {"line": 37, "column": 135}}, + "13": {"start": {"line": 40, "column": 2}, "end": {"line": 40, "column": 129}}, + "14": {"start": {"line": 43, "column": 34}, "end": {"line": 43, "column": 121}}, + "15": {"start": {"line": 45, "column": 2}, "end": {"line": 45, "column": 46}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 10, "column": 30}, "end": {"line": 10, "column": 31}}, + "loc": {"start": {"line": 10, "column": 66}, "end": {"line": 13, "column": 1}}, + "line": 10 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 15, "column": 32}, "end": {"line": 15, "column": 33}}, + "loc": {"start": {"line": 15, "column": 94}, "end": {"line": 32, "column": 1}}, + "line": 15 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 24, "column": 73}, "end": {"line": 24, "column": 74}}, + "loc": {"start": {"line": 24, "column": 79}, "end": {"line": 28, "column": 5}}, + "line": 24 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 25, "column": 17}, "end": {"line": 25, "column": 18}}, + "loc": {"start": {"line": 25, "column": 23}, "end": {"line": 27, "column": 7}}, + "line": 25 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 34, "column": 44}, "end": {"line": 34, "column": 45}}, + "loc": {"start": {"line": 34, "column": 111}, "end": {"line": 46, "column": 1}}, + "line": 34 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 36, "column": 4}, "end": {"line": 36, "column": 5}}, + "loc": {"start": {"line": 37, "column": 6}, "end": {"line": 37, "column": 136}}, + "line": 37 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 37, "column": 76}, "end": {"line": 37, "column": 77}}, + "loc": {"start": {"line": 37, "column": 91}, "end": {"line": 37, "column": 135}}, + "line": 37 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 17, "column": 9}, "end": {"line": 17, "column": 63}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 17, "column": 9}, "end": {"line": 17, "column": 30}}, + {"start": {"line": 17, "column": 34}, "end": {"line": 17, "column": 63}} + ], + "line": 17 + }, + "1": { + "loc": {"start": {"line": 18, "column": 8}, "end": {"line": 18, "column": 67}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 18, "column": 8}, "end": {"line": 18, "column": 20}}, + {"start": {"line": 18, "column": 24}, "end": {"line": 18, "column": 67}} + ], + "line": 18 + }, + "2": { + "loc": {"start": {"line": 19, "column": 11}, "end": {"line": 19, "column": 149}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 19, "column": 11}, "end": {"line": 19, "column": 34}}, + {"start": {"line": 19, "column": 38}, "end": {"line": 19, "column": 149}} + ], + "line": 19 + }, + "3": { + "loc": {"start": {"line": 23, "column": 2}, "end": {"line": 29, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 23, "column": 2}, "end": {"line": 29, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 23 + }, + "4": { + "loc": {"start": {"line": 35, "column": 44}, "end": {"line": 35, "column": 107}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 35, "column": 59}, "end": {"line": 35, "column": 102}}, + {"start": {"line": 35, "column": 105}, "end": {"line": 35, "column": 107}} + ], + "line": 35 + }, + "5": { + "loc": {"start": {"line": 37, "column": 6}, "end": {"line": 37, "column": 136}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 37, "column": 6}, "end": {"line": 37, "column": 51}}, + {"start": {"line": 37, "column": 55}, "end": {"line": 37, "column": 136}} + ], + "line": 37 + }, + "6": { + "loc": {"start": {"line": 43, "column": 34}, "end": {"line": 43, "column": 121}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 43, "column": 76}, "end": {"line": 43, "column": 104}}, + {"start": {"line": 43, "column": 107}, "end": {"line": 43, "column": 121}} + ], + "line": 43 + }, + "7": { + "loc": {"start": {"line": 43, "column": 34}, "end": {"line": 43, "column": 73}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 43, "column": 34}, "end": {"line": 43, "column": 46}}, + {"start": {"line": 43, "column": 50}, "end": {"line": 43, "column": 73}} + ], + "line": 43 + } + }, + "s": {"0": 1, "1": 0, "2": 1, "3": 1, "4": 1, "5": 0, "6": 0, "7": 0, "8": 1, "9": 1, "10": 1, "11": 0, "12": 0, "13": 1, "14": 1, "15": 1}, + "f": {"0": 0, "1": 1, "2": 0, "3": 0, "4": 1, "5": 0, "6": 0}, + "b": {"0": [1, 1], "1": [1, 1], "2": [1, 1], "3": [0, 1], "4": [1, 0], "5": [0, 0], "6": [1, 0], "7": [1, 1]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "c03c590d115792ba4d8a4545f142e6bfdf281e53" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\services\\onboardingService.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\services\\onboardingService.ts", + "statementMap": { + "0": {"start": {"line": 15, "column": 27}, "end": {"line": 29, "column": 1}}, + "1": {"start": {"line": 18, "column": 16}, "end": {"line": 25, "column": 4}}, + "2": {"start": {"line": 24, "column": 27}, "end": {"line": 24, "column": 64}}, + "3": {"start": {"line": 24, "column": 44}, "end": {"line": 24, "column": 57}}, + "4": {"start": {"line": 27, "column": 2}, "end": {"line": 27, "column": 59}}, + "5": {"start": {"line": 28, "column": 2}, "end": {"line": 28, "column": 18}}, + "6": {"start": {"line": 31, "column": 30}, "end": {"line": 71, "column": 1}}, + "7": {"start": {"line": 34, "column": 21}, "end": {"line": 34, "column": 99}}, + "8": {"start": {"line": 36, "column": 23}, "end": {"line": 36, "column": 43}}, + "9": {"start": {"line": 37, "column": 15}, "end": {"line": 37, "column": 48}}, + "10": {"start": {"line": 38, "column": 14}, "end": {"line": 38, "column": 40}}, + "11": {"start": {"line": 39, "column": 14}, "end": {"line": 39, "column": 78}}, + "12": {"start": {"line": 40, "column": 31}, "end": {"line": 61, "column": 4}}, + "13": {"start": {"line": 62, "column": 2}, "end": {"line": 62, "column": 62}}, + "14": {"start": {"line": 64, "column": 15}, "end": {"line": 67, "column": 3}}, + "15": {"start": {"line": 69, "column": 28}, "end": {"line": 69, "column": 71}}, + "16": {"start": {"line": 70, "column": 2}, "end": {"line": 70, "column": 56}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 15, "column": 27}, "end": {"line": 15, "column": 28}}, + "loc": {"start": {"line": 17, "column": 104}, "end": {"line": 29, "column": 1}}, + "line": 17 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 24, "column": 16}, "end": {"line": 24, "column": 17}}, + "loc": {"start": {"line": 24, "column": 27}, "end": {"line": 24, "column": 64}}, + "line": 24 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 24, "column": 38}, "end": {"line": 24, "column": 39}}, + "loc": {"start": {"line": 24, "column": 44}, "end": {"line": 24, "column": 57}}, + "line": 24 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 31, "column": 30}, "end": {"line": 31, "column": 31}}, + "loc": {"start": {"line": 33, "column": 104}, "end": {"line": 71, "column": 1}}, + "line": 33 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 43, "column": 18}, "end": {"line": 46, "column": 7}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 43, "column": 18}, "end": {"line": 43, "column": 36}}, + {"start": {"line": 43, "column": 40}, "end": {"line": 46, "column": 7}} + ], + "line": 43 + }, + "1": { + "loc": {"start": {"line": 47, "column": 10}, "end": {"line": 47, "column": 44}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 47, "column": 10}, "end": {"line": 47, "column": 18}}, + {"start": {"line": 47, "column": 22}, "end": {"line": 47, "column": 44}} + ], + "line": 47 + }, + "2": { + "loc": {"start": {"line": 48, "column": 12}, "end": {"line": 48, "column": 86}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 48, "column": 12}, "end": {"line": 48, "column": 22}}, + {"start": {"line": 48, "column": 26}, "end": {"line": 48, "column": 86}} + ], + "line": 48 + }, + "3": { + "loc": {"start": {"line": 49, "column": 14}, "end": {"line": 49, "column": 44}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 49, "column": 14}, "end": {"line": 49, "column": 26}}, + {"start": {"line": 49, "column": 30}, "end": {"line": 49, "column": 44}} + ], + "line": 49 + }, + "4": { + "loc": {"start": {"line": 50, "column": 20}, "end": {"line": 50, "column": 52}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 50, "column": 20}, "end": {"line": 50, "column": 38}}, + {"start": {"line": 50, "column": 42}, "end": {"line": 50, "column": 52}} + ], + "line": 50 + }, + "5": { + "loc": {"start": {"line": 53, "column": 12}, "end": {"line": 53, "column": 38}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 53, "column": 12}, "end": {"line": 53, "column": 20}}, + {"start": {"line": 53, "column": 24}, "end": {"line": 53, "column": 38}} + ], + "line": 53 + }, + "6": { + "loc": {"start": {"line": 57, "column": 17}, "end": {"line": 57, "column": 60}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 57, "column": 17}, "end": {"line": 57, "column": 51}}, + {"start": {"line": 57, "column": 55}, "end": {"line": 57, "column": 60}} + ], + "line": 57 + } + }, + "s": { + "0": 1, + "1": 1, + "2": 1, + "3": 1, + "4": 1, + "5": 1, + "6": 1, + "7": 1, + "8": 1, + "9": 1, + "10": 1, + "11": 1, + "12": 1, + "13": 1, + "14": 1, + "15": 1, + "16": 1 + }, + "f": {"0": 1, "1": 1, "2": 1, "3": 1}, + "b": {"0": [1, 0], "1": [1, 0], "2": [1, 0], "3": [1, 1], "4": [1, 0], "5": [1, 0], "6": [1, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "0dc17c58085e5658fda8869e1908e1cc029d5759" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\services\\qrService.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\services\\qrService.ts", + "statementMap": { + "0": {"start": {"line": 76, "column": 21}, "end": {"line": 76, "column": 36}}, + "1": {"start": {"line": 77, "column": 30}, "end": {"line": 77, "column": 58}}, + "2": {"start": {"line": 79, "column": 22}, "end": {"line": 83, "column": 1}}, + "3": {"start": {"line": 80, "column": 2}, "end": {"line": 82, "column": 93}}, + "4": {"start": {"line": 81, "column": 31}, "end": {"line": 81, "column": 79}}, + "5": {"start": {"line": 82, "column": 29}, "end": {"line": 82, "column": 91}}, + "6": {"start": {"line": 85, "column": 23}, "end": {"line": 121, "column": 1}}, + "7": {"start": {"line": 86, "column": 2}, "end": {"line": 93, "column": 3}}, + "8": {"start": {"line": 87, "column": 23}, "end": {"line": 87, "column": 41}}, + "9": {"start": {"line": 88, "column": 4}, "end": {"line": 90, "column": 5}}, + "10": {"start": {"line": 89, "column": 6}, "end": {"line": 89, "column": 24}}, + "11": {"start": {"line": 92, "column": 4}, "end": {"line": 92, "column": 63}}, + "12": {"start": {"line": 95, "column": 2}, "end": {"line": 105, "column": 3}}, + "13": {"start": {"line": 96, "column": 18}, "end": {"line": 96, "column": 57}}, + "14": {"start": {"line": 97, "column": 4}, "end": {"line": 102, "column": 5}}, + "15": {"start": {"line": 98, "column": 6}, "end": {"line": 101, "column": 8}}, + "16": {"start": {"line": 104, "column": 4}, "end": {"line": 104, "column": 62}}, + "17": {"start": {"line": 107, "column": 2}, "end": {"line": 118, "column": 3}}, + "18": {"start": {"line": 108, "column": 4}, "end": {"line": 111, "column": 7}}, + "19": {"start": {"line": 109, "column": 6}, "end": {"line": 109, "column": 85}}, + "20": {"start": {"line": 110, "column": 6}, "end": {"line": 110, "column": 85}}, + "21": {"start": {"line": 112, "column": 9}, "end": {"line": 118, "column": 3}}, + "22": {"start": {"line": 113, "column": 4}, "end": {"line": 117, "column": 5}}, + "23": {"start": {"line": 114, "column": 6}, "end": {"line": 114, "column": 33}}, + "24": {"start": {"line": 116, "column": 6}, "end": {"line": 116, "column": 70}}, + "25": {"start": {"line": 120, "column": 2}, "end": {"line": 120, "column": 81}}, + "26": {"start": {"line": 123, "column": 20}, "end": {"line": 132, "column": 1}}, + "27": {"start": {"line": 124, "column": 2}, "end": {"line": 131, "column": 3}}, + "28": {"start": {"line": 125, "column": 4}, "end": {"line": 128, "column": 7}}, + "29": {"start": {"line": 130, "column": 4}, "end": {"line": 130, "column": 33}}, + "30": {"start": {"line": 134, "column": 24}, "end": {"line": 148, "column": 1}}, + "31": {"start": {"line": 135, "column": 2}, "end": {"line": 147, "column": 3}}, + "32": {"start": {"line": 136, "column": 4}, "end": {"line": 140, "column": 7}}, + "33": {"start": {"line": 142, "column": 4}, "end": {"line": 146, "column": 7}}, + "34": {"start": {"line": 150, "column": 25}, "end": {"line": 165, "column": 1}}, + "35": {"start": {"line": 151, "column": 2}, "end": {"line": 164, "column": 3}}, + "36": {"start": {"line": 153, "column": 6}, "end": {"line": 155, "column": 7}}, + "37": {"start": {"line": 154, "column": 8}, "end": {"line": 154, "column": 36}}, + "38": {"start": {"line": 156, "column": 6}, "end": {"line": 156, "column": 12}}, + "39": {"start": {"line": 160, "column": 6}, "end": {"line": 160, "column": 33}}, + "40": {"start": {"line": 163, "column": 6}, "end": {"line": 163, "column": 44}}, + "41": {"start": {"line": 168, "column": 23}, "end": {"line": 199, "column": 1}}, + "42": {"start": {"line": 169, "column": 21}, "end": {"line": 169, "column": 57}}, + "43": {"start": {"line": 170, "column": 19}, "end": {"line": 170, "column": 80}}, + "44": {"start": {"line": 171, "column": 39}, "end": {"line": 179, "column": 3}}, + "45": {"start": {"line": 181, "column": 18}, "end": {"line": 190, "column": 3}}, + "46": {"start": {"line": 182, "column": 71}, "end": {"line": 185, "column": 24}}, + "47": {"start": {"line": 186, "column": 4}, "end": {"line": 189, "column": 7}}, + "48": {"start": {"line": 192, "column": 2}, "end": {"line": 198, "column": 7}}, + "49": {"start": {"line": 193, "column": 16}, "end": {"line": 193, "column": 53}}, + "50": {"start": {"line": 195, "column": 6}, "end": {"line": 197, "column": 7}}, + "51": {"start": {"line": 196, "column": 8}, "end": {"line": 196, "column": 38}}, + "52": {"start": {"line": 201, "column": 22}, "end": {"line": 403, "column": 1}}, + "53": {"start": {"line": 203, "column": 17}, "end": {"line": 209, "column": 3}}, + "54": {"start": {"line": 212, "column": 2}, "end": {"line": 217, "column": 5}}, + "55": {"start": {"line": 223, "column": 2}, "end": {"line": 238, "column": 3}}, + "56": {"start": {"line": 224, "column": 4}, "end": {"line": 224, "column": 62}}, + "57": {"start": {"line": 226, "column": 4}, "end": {"line": 226, "column": 55}}, + "58": {"start": {"line": 227, "column": 4}, "end": {"line": 227, "column": 37}}, + "59": {"start": {"line": 228, "column": 4}, "end": {"line": 232, "column": 76}}, + "60": {"start": {"line": 234, "column": 4}, "end": {"line": 234, "column": 108}}, + "61": {"start": {"line": 235, "column": 4}, "end": {"line": 235, "column": 61}}, + "62": {"start": {"line": 236, "column": 4}, "end": {"line": 236, "column": 150}}, + "63": {"start": {"line": 237, "column": 4}, "end": {"line": 237, "column": 11}}, + "64": {"start": {"line": 240, "column": 14}, "end": {"line": 240, "column": 60}}, + "65": {"start": {"line": 241, "column": 28}, "end": {"line": 245, "column": 10}}, + "66": {"start": {"line": 246, "column": 23}, "end": {"line": 273, "column": 3}}, + "67": {"start": {"line": 250, "column": 4}, "end": {"line": 272, "column": 9}}, + "68": {"start": {"line": 260, "column": 8}, "end": {"line": 262, "column": 11}}, + "69": {"start": {"line": 263, "column": 8}, "end": {"line": 266, "column": 11}}, + "70": {"start": {"line": 269, "column": 8}, "end": {"line": 269, "column": 73}}, + "71": {"start": {"line": 270, "column": 8}, "end": {"line": 270, "column": 74}}, + "72": {"start": {"line": 271, "column": 8}, "end": {"line": 271, "column": 140}}, + "73": {"start": {"line": 275, "column": 36}, "end": {"line": 358, "column": 3}}, + "74": {"start": {"line": 277, "column": 39}, "end": {"line": 277, "column": 63}}, + "75": {"start": {"line": 278, "column": 67}, "end": {"line": 278, "column": 111}}, + "76": {"start": {"line": 279, "column": 41}, "end": {"line": 279, "column": 134}}, + "77": {"start": {"line": 280, "column": 46}, "end": {"line": 284, "column": 17}}, + "78": {"start": {"line": 285, "column": 4}, "end": {"line": 322, "column": 5}}, + "79": {"start": {"line": 286, "column": 40}, "end": {"line": 296, "column": 8}}, + "80": {"start": {"line": 297, "column": 6}, "end": {"line": 321, "column": 7}}, + "81": {"start": {"line": 298, "column": 50}, "end": {"line": 300, "column": 9}}, + "82": {"start": {"line": 299, "column": 10}, "end": {"line": 299, "column": 111}}, + "83": {"start": {"line": 299, "column": 59}, "end": {"line": 299, "column": 110}}, + "84": {"start": {"line": 301, "column": 8}, "end": {"line": 320, "column": 9}}, + "85": {"start": {"line": 302, "column": 43}, "end": {"line": 318, "column": 11}}, + "86": {"start": {"line": 319, "column": 10}, "end": {"line": 319, "column": 82}}, + "87": {"start": {"line": 326, "column": 4}, "end": {"line": 328, "column": 5}}, + "88": {"start": {"line": 327, "column": 6}, "end": {"line": 327, "column": 74}}, + "89": {"start": {"line": 329, "column": 4}, "end": {"line": 331, "column": 5}}, + "90": {"start": {"line": 330, "column": 6}, "end": {"line": 330, "column": 80}}, + "91": {"start": {"line": 332, "column": 83}, "end": {"line": 332, "column": 118}}, + "92": {"start": {"line": 334, "column": 4}, "end": {"line": 352, "column": 7}}, + "93": {"start": {"line": 343, "column": 10}, "end": {"line": 345, "column": 12}}, + "94": {"start": {"line": 347, "column": 10}, "end": {"line": 350, "column": 12}}, + "95": {"start": {"line": 348, "column": 12}, "end": {"line": 348, "column": 123}}, + "96": {"start": {"line": 349, "column": 12}, "end": {"line": 349, "column": 111}}, + "97": {"start": {"line": 353, "column": 4}, "end": {"line": 357, "column": 7}}, + "98": {"start": {"line": 360, "column": 2}, "end": {"line": 402, "column": 5}}, + "99": {"start": {"line": 371, "column": 4}, "end": {"line": 401, "column": 5}}, + "100": {"start": {"line": 372, "column": 6}, "end": {"line": 398, "column": 9}}, + "101": {"start": {"line": 392, "column": 12}, "end": {"line": 394, "column": 14}}, + "102": {"start": {"line": 396, "column": 26}, "end": {"line": 396, "column": 77}}, + "103": {"start": {"line": 396, "column": 49}, "end": {"line": 396, "column": 76}}, + "104": {"start": {"line": 400, "column": 6}, "end": {"line": 400, "column": 34}}, + "105": {"start": {"line": 405, "column": 40}, "end": {"line": 419, "column": 1}}, + "106": {"start": {"line": 406, "column": 2}, "end": {"line": 417, "column": 3}}, + "107": {"start": {"line": 407, "column": 21}, "end": {"line": 407, "column": 90}}, + "108": {"start": {"line": 408, "column": 4}, "end": {"line": 416, "column": 7}}, + "109": {"start": {"line": 413, "column": 8}, "end": {"line": 415, "column": 10}}, + "110": {"start": {"line": 423, "column": 4}, "end": {"line": 425, "column": 11}}, + "111": {"start": {"line": 424, "column": 14}, "end": {"line": 424, "column": 140}}, + "112": {"start": {"line": 426, "column": 2}, "end": {"line": 426, "column": 118}}, + "113": {"start": {"line": 426, "column": 39}, "end": {"line": 426, "column": 115}}, + "114": {"start": {"line": 432, "column": 19}, "end": {"line": 432, "column": 142}}, + "115": {"start": {"line": 434, "column": 2}, "end": {"line": 439, "column": 3}}, + "116": {"start": {"line": 435, "column": 4}, "end": {"line": 438, "column": 5}}, + "117": {"start": {"line": 436, "column": 6}, "end": {"line": 436, "column": 26}}, + "118": {"start": {"line": 437, "column": 6}, "end": {"line": 437, "column": 12}}, + "119": {"start": {"line": 440, "column": 2}, "end": {"line": 442, "column": 3}}, + "120": {"start": {"line": 441, "column": 4}, "end": {"line": 441, "column": 15}}, + "121": {"start": {"line": 443, "column": 2}, "end": {"line": 443, "column": 14}}, + "122": {"start": {"line": 446, "column": 33}, "end": {"line": 734, "column": 1}}, + "123": {"start": {"line": 447, "column": 38}, "end": {"line": 509, "column": 3}}, + "124": {"start": {"line": 448, "column": 63}, "end": {"line": 448, "column": 121}}, + "125": {"start": {"line": 449, "column": 45}, "end": {"line": 449, "column": 68}}, + "126": {"start": {"line": 450, "column": 26}, "end": {"line": 450, "column": 114}}, + "127": {"start": {"line": 451, "column": 25}, "end": {"line": 451, "column": 57}}, + "128": {"start": {"line": 452, "column": 4}, "end": {"line": 508, "column": 7}}, + "129": {"start": {"line": 463, "column": 6}, "end": {"line": 507, "column": 7}}, + "130": {"start": {"line": 464, "column": 8}, "end": {"line": 499, "column": 11}}, + "131": {"start": {"line": 493, "column": 14}, "end": {"line": 495, "column": 16}}, + "132": {"start": {"line": 497, "column": 28}, "end": {"line": 497, "column": 93}}, + "133": {"start": {"line": 497, "column": 51}, "end": {"line": 497, "column": 92}}, + "134": {"start": {"line": 500, "column": 8}, "end": {"line": 504, "column": 11}}, + "135": {"start": {"line": 506, "column": 8}, "end": {"line": 506, "column": 50}}, + "136": {"start": {"line": 511, "column": 42}, "end": {"line": 556, "column": 3}}, + "137": {"start": {"line": 512, "column": 63}, "end": {"line": 512, "column": 121}}, + "138": {"start": {"line": 513, "column": 33}, "end": {"line": 513, "column": 62}}, + "139": {"start": {"line": 514, "column": 69}, "end": {"line": 526, "column": 5}}, + "140": {"start": {"line": 517, "column": 31}, "end": {"line": 517, "column": 121}}, + "141": {"start": {"line": 517, "column": 66}, "end": {"line": 517, "column": 94}}, + "142": {"start": {"line": 518, "column": 8}, "end": {"line": 524, "column": 10}}, + "143": {"start": {"line": 528, "column": 4}, "end": {"line": 555, "column": 5}}, + "144": {"start": {"line": 529, "column": 6}, "end": {"line": 544, "column": 9}}, + "145": {"start": {"line": 535, "column": 12}, "end": {"line": 540, "column": 15}}, + "146": {"start": {"line": 541, "column": 12}, "end": {"line": 541, "column": 72}}, + "147": {"start": {"line": 545, "column": 6}, "end": {"line": 549, "column": 9}}, + "148": {"start": {"line": 551, "column": 6}, "end": {"line": 554, "column": 8}}, + "149": {"start": {"line": 553, "column": 87}, "end": {"line": 553, "column": 121}}, + "150": {"start": {"line": 558, "column": 37}, "end": {"line": 576, "column": 3}}, + "151": {"start": {"line": 559, "column": 4}, "end": {"line": 575, "column": 5}}, + "152": {"start": {"line": 560, "column": 6}, "end": {"line": 567, "column": 9}}, + "153": {"start": {"line": 565, "column": 49}, "end": {"line": 565, "column": 95}}, + "154": {"start": {"line": 568, "column": 6}, "end": {"line": 572, "column": 9}}, + "155": {"start": {"line": 574, "column": 6}, "end": {"line": 574, "column": 48}}, + "156": {"start": {"line": 578, "column": 23}, "end": {"line": 691, "column": 8}}, + "157": {"start": {"line": 579, "column": 4}, "end": {"line": 691, "column": 8}}, + "158": {"start": {"line": 582, "column": 67}, "end": {"line": 582, "column": 125}}, + "159": {"start": {"line": 584, "column": 55}, "end": {"line": 584, "column": 93}}, + "160": {"start": {"line": 585, "column": 60}, "end": {"line": 585, "column": 89}}, + "161": {"start": {"line": 586, "column": 55}, "end": {"line": 586, "column": 141}}, + "162": {"start": {"line": 587, "column": 56}, "end": {"line": 591, "column": 10}}, + "163": {"start": {"line": 592, "column": 8}, "end": {"line": 599, "column": 9}}, + "164": {"start": {"line": 593, "column": 10}, "end": {"line": 593, "column": 67}}, + "165": {"start": {"line": 594, "column": 10}, "end": {"line": 598, "column": 13}}, + "166": {"start": {"line": 600, "column": 49}, "end": {"line": 600, "column": 69}}, + "167": {"start": {"line": 602, "column": 36}, "end": {"line": 602, "column": 84}}, + "168": {"start": {"line": 603, "column": 42}, "end": {"line": 613, "column": 10}}, + "169": {"start": {"line": 614, "column": 8}, "end": {"line": 631, "column": 9}}, + "170": {"start": {"line": 615, "column": 40}, "end": {"line": 615, "column": 130}}, + "171": {"start": {"line": 616, "column": 43}, "end": {"line": 623, "column": 11}}, + "172": {"start": {"line": 624, "column": 52}, "end": {"line": 626, "column": 11}}, + "173": {"start": {"line": 625, "column": 12}, "end": {"line": 625, "column": 113}}, + "174": {"start": {"line": 625, "column": 61}, "end": {"line": 625, "column": 112}}, + "175": {"start": {"line": 627, "column": 10}, "end": {"line": 630, "column": 11}}, + "176": {"start": {"line": 628, "column": 12}, "end": {"line": 628, "column": 84}}, + "177": {"start": {"line": 629, "column": 12}, "end": {"line": 629, "column": 30}}, + "178": {"start": {"line": 633, "column": 52}, "end": {"line": 633, "column": 116}}, + "179": {"start": {"line": 635, "column": 32}, "end": {"line": 635, "column": 118}}, + "180": {"start": {"line": 635, "column": 68}, "end": {"line": 635, "column": 118}}, + "181": {"start": {"line": 637, "column": 82}, "end": {"line": 637, "column": 133}}, + "182": {"start": {"line": 639, "column": 8}, "end": {"line": 677, "column": 11}}, + "183": {"start": {"line": 648, "column": 16}, "end": {"line": 654, "column": 17}}, + "184": {"start": {"line": 649, "column": 18}, "end": {"line": 653, "column": 21}}, + "185": {"start": {"line": 655, "column": 16}, "end": {"line": 665, "column": 107}}, + "186": {"start": {"line": 657, "column": 20}, "end": {"line": 659, "column": 23}}, + "187": {"start": {"line": 660, "column": 20}, "end": {"line": 663, "column": 23}}, + "188": {"start": {"line": 665, "column": 43}, "end": {"line": 665, "column": 105}}, + "189": {"start": {"line": 671, "column": 16}, "end": {"line": 673, "column": 19}}, + "190": {"start": {"line": 678, "column": 8}, "end": {"line": 682, "column": 11}}, + "191": {"start": {"line": 686, "column": 30}, "end": {"line": 686, "column": 138}}, + "192": {"start": {"line": 687, "column": 8}, "end": {"line": 689, "column": 9}}, + "193": {"start": {"line": 688, "column": 10}, "end": {"line": 688, "column": 39}}, + "194": {"start": {"line": 690, "column": 8}, "end": {"line": 690, "column": 35}}, + "195": {"start": {"line": 693, "column": 22}, "end": {"line": 716, "column": 3}}, + "196": {"start": {"line": 694, "column": 40}, "end": {"line": 694, "column": 102}}, + "197": {"start": {"line": 695, "column": 25}, "end": {"line": 695, "column": 74}}, + "198": {"start": {"line": 697, "column": 4}, "end": {"line": 715, "column": 7}}, + "199": {"start": {"line": 712, "column": 31}, "end": {"line": 712, "column": 87}}, + "200": {"start": {"line": 718, "column": 2}, "end": {"line": 723, "column": 5}}, + "201": {"start": {"line": 725, "column": 2}, "end": {"line": 733, "column": 7}}, + "202": {"start": {"line": 727, "column": 6}, "end": {"line": 727, "column": 108}}, + "203": {"start": {"line": 727, "column": 70}, "end": {"line": 727, "column": 107}}, + "204": {"start": {"line": 730, "column": 6}, "end": {"line": 730, "column": 60}}, + "205": {"start": {"line": 731, "column": 6}, "end": {"line": 731, "column": 63}}, + "206": {"start": {"line": 732, "column": 6}, "end": {"line": 732, "column": 141}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 79, "column": 22}, "end": {"line": 79, "column": 23}}, + "loc": {"start": {"line": 79, "column": 66}, "end": {"line": 83, "column": 1}}, + "line": 79 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 81, "column": 10}, "end": {"line": 81, "column": 11}}, + "loc": {"start": {"line": 81, "column": 31}, "end": {"line": 81, "column": 79}}, + "line": 81 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 82, "column": 11}, "end": {"line": 82, "column": 12}}, + "loc": {"start": {"line": 82, "column": 29}, "end": {"line": 82, "column": 91}}, + "line": 82 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 85, "column": 23}, "end": {"line": 85, "column": 24}}, + "loc": {"start": {"line": 85, "column": 67}, "end": {"line": 121, "column": 1}}, + "line": 85 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 108, "column": 47}, "end": {"line": 108, "column": 48}}, + "loc": {"start": {"line": 108, "column": 56}, "end": {"line": 111, "column": 5}}, + "line": 108 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 123, "column": 20}, "end": {"line": 123, "column": 21}}, + "loc": {"start": {"line": 123, "column": 58}, "end": {"line": 132, "column": 1}}, + "line": 123 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 134, "column": 24}, "end": {"line": 134, "column": 25}}, + "loc": {"start": {"line": 134, "column": 68}, "end": {"line": 148, "column": 1}}, + "line": 134 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 150, "column": 25}, "end": {"line": 150, "column": 26}}, + "loc": {"start": {"line": 150, "column": 69}, "end": {"line": 165, "column": 1}}, + "line": 150 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 168, "column": 23}, "end": {"line": 168, "column": 24}}, + "loc": {"start": {"line": 168, "column": 67}, "end": {"line": 199, "column": 1}}, + "line": 168 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 181, "column": 18}, "end": {"line": 181, "column": 19}}, + "loc": {"start": {"line": 181, "column": 45}, "end": {"line": 190, "column": 3}}, + "line": 181 + }, + "10": { + "name": "(anonymous_10)", + "decl": {"start": {"line": 193, "column": 10}, "end": {"line": 193, "column": 11}}, + "loc": {"start": {"line": 193, "column": 16}, "end": {"line": 193, "column": 53}}, + "line": 193 + }, + "11": { + "name": "(anonymous_11)", + "decl": {"start": {"line": 194, "column": 11}, "end": {"line": 194, "column": 12}}, + "loc": {"start": {"line": 194, "column": 20}, "end": {"line": 198, "column": 5}}, + "line": 194 + }, + "12": { + "name": "(anonymous_12)", + "decl": {"start": {"line": 201, "column": 22}, "end": {"line": 201, "column": 23}}, + "loc": {"start": {"line": 201, "column": 66}, "end": {"line": 403, "column": 1}}, + "line": 201 + }, + "13": { + "name": "(anonymous_13)", + "decl": {"start": {"line": 246, "column": 23}, "end": {"line": 246, "column": 24}}, + "loc": {"start": {"line": 249, "column": 22}, "end": {"line": 273, "column": 3}}, + "line": 249 + }, + "14": { + "name": "(anonymous_14)", + "decl": {"start": {"line": 259, "column": 12}, "end": {"line": 259, "column": 13}}, + "loc": {"start": {"line": 259, "column": 18}, "end": {"line": 267, "column": 7}}, + "line": 259 + }, + "15": { + "name": "(anonymous_15)", + "decl": {"start": {"line": 268, "column": 13}, "end": {"line": 268, "column": 14}}, + "loc": {"start": {"line": 268, "column": 31}, "end": {"line": 272, "column": 7}}, + "line": 268 + }, + "16": { + "name": "(anonymous_16)", + "decl": {"start": {"line": 275, "column": 36}, "end": {"line": 275, "column": 37}}, + "loc": {"start": {"line": 275, "column": 63}, "end": {"line": 358, "column": 3}}, + "line": 275 + }, + "17": { + "name": "(anonymous_17)", + "decl": {"start": {"line": 298, "column": 64}, "end": {"line": 298, "column": 65}}, + "loc": {"start": {"line": 299, "column": 10}, "end": {"line": 299, "column": 111}}, + "line": 299 + }, + "18": { + "name": "(anonymous_18)", + "decl": {"start": {"line": 299, "column": 34}, "end": {"line": 299, "column": 35}}, + "loc": {"start": {"line": 299, "column": 59}, "end": {"line": 299, "column": 110}}, + "line": 299 + }, + "19": { + "name": "(anonymous_19)", + "decl": {"start": {"line": 342, "column": 19}, "end": {"line": 342, "column": 20}}, + "loc": {"start": {"line": 343, "column": 10}, "end": {"line": 345, "column": 12}}, + "line": 343 + }, + "20": { + "name": "(anonymous_20)", + "decl": {"start": {"line": 346, "column": 16}, "end": {"line": 346, "column": 17}}, + "loc": {"start": {"line": 347, "column": 10}, "end": {"line": 350, "column": 12}}, + "line": 347 + }, + "21": { + "name": "(anonymous_21)", + "decl": {"start": {"line": 347, "column": 23}, "end": {"line": 347, "column": 24}}, + "loc": {"start": {"line": 347, "column": 35}, "end": {"line": 350, "column": 11}}, + "line": 347 + }, + "22": { + "name": "(anonymous_22)", + "decl": {"start": {"line": 370, "column": 10}, "end": {"line": 370, "column": 11}}, + "loc": {"start": {"line": 370, "column": 41}, "end": {"line": 402, "column": 3}}, + "line": 370 + }, + "23": { + "name": "(anonymous_23)", + "decl": {"start": {"line": 391, "column": 21}, "end": {"line": 391, "column": 22}}, + "loc": {"start": {"line": 392, "column": 12}, "end": {"line": 394, "column": 14}}, + "line": 392 + }, + "24": { + "name": "(anonymous_24)", + "decl": {"start": {"line": 396, "column": 20}, "end": {"line": 396, "column": 21}}, + "loc": {"start": {"line": 396, "column": 26}, "end": {"line": 396, "column": 77}}, + "line": 396 + }, + "25": { + "name": "(anonymous_25)", + "decl": {"start": {"line": 396, "column": 43}, "end": {"line": 396, "column": 44}}, + "loc": {"start": {"line": 396, "column": 49}, "end": {"line": 396, "column": 76}}, + "line": 396 + }, + "26": { + "name": "(anonymous_26)", + "decl": {"start": {"line": 405, "column": 40}, "end": {"line": 405, "column": 41}}, + "loc": {"start": {"line": 405, "column": 84}, "end": {"line": 419, "column": 1}}, + "line": 405 + }, + "27": { + "name": "(anonymous_27)", + "decl": {"start": {"line": 412, "column": 22}, "end": {"line": 412, "column": 23}}, + "loc": {"start": {"line": 413, "column": 8}, "end": {"line": 415, "column": 10}}, + "line": 413 + }, + "28": { + "name": "getIssuerDisplays", + "decl": {"start": {"line": 421, "column": 16}, "end": {"line": 421, "column": 33}}, + "loc": {"start": {"line": 421, "column": 145}, "end": {"line": 427, "column": 1}}, + "line": 421 + }, + "29": { + "name": "(anonymous_29)", + "decl": {"start": {"line": 424, "column": 6}, "end": {"line": 424, "column": 7}}, + "loc": {"start": {"line": 424, "column": 14}, "end": {"line": 424, "column": 140}}, + "line": 424 + }, + "30": { + "name": "(anonymous_30)", + "decl": {"start": {"line": 426, "column": 30}, "end": {"line": 426, "column": 31}}, + "loc": {"start": {"line": 426, "column": 39}, "end": {"line": 426, "column": 115}}, + "line": 426 + }, + "31": { + "name": "getName", + "decl": {"start": {"line": 431, "column": 9}, "end": {"line": 431, "column": 16}}, + "loc": {"start": {"line": 431, "column": 82}, "end": {"line": 444, "column": 1}}, + "line": 431 + }, + "32": { + "name": "(anonymous_32)", + "decl": {"start": {"line": 446, "column": 33}, "end": {"line": 446, "column": 34}}, + "loc": {"start": {"line": 446, "column": 77}, "end": {"line": 734, "column": 1}}, + "line": 446 + }, + "33": { + "name": "(anonymous_33)", + "decl": {"start": {"line": 447, "column": 38}, "end": {"line": 447, "column": 39}}, + "loc": {"start": {"line": 447, "column": 100}, "end": {"line": 509, "column": 3}}, + "line": 447 + }, + "34": { + "name": "(anonymous_34)", + "decl": {"start": {"line": 462, "column": 12}, "end": {"line": 462, "column": 13}}, + "loc": {"start": {"line": 462, "column": 43}, "end": {"line": 508, "column": 5}}, + "line": 462 + }, + "35": { + "name": "(anonymous_35)", + "decl": {"start": {"line": 492, "column": 23}, "end": {"line": 492, "column": 24}}, + "loc": {"start": {"line": 493, "column": 14}, "end": {"line": 495, "column": 16}}, + "line": 493 + }, + "36": { + "name": "(anonymous_36)", + "decl": {"start": {"line": 497, "column": 22}, "end": {"line": 497, "column": 23}}, + "loc": {"start": {"line": 497, "column": 28}, "end": {"line": 497, "column": 93}}, + "line": 497 + }, + "37": { + "name": "(anonymous_37)", + "decl": {"start": {"line": 497, "column": 45}, "end": {"line": 497, "column": 46}}, + "loc": {"start": {"line": 497, "column": 51}, "end": {"line": 497, "column": 92}}, + "line": 497 + }, + "38": { + "name": "(anonymous_38)", + "decl": {"start": {"line": 511, "column": 42}, "end": {"line": 511, "column": 43}}, + "loc": {"start": {"line": 511, "column": 104}, "end": {"line": 556, "column": 3}}, + "line": 511 + }, + "39": { + "name": "(anonymous_39)", + "decl": {"start": {"line": 515, "column": 32}, "end": {"line": 515, "column": 33}}, + "loc": {"start": {"line": 515, "column": 83}, "end": {"line": 525, "column": 7}}, + "line": 515 + }, + "40": { + "name": "(anonymous_40)", + "decl": {"start": {"line": 517, "column": 61}, "end": {"line": 517, "column": 62}}, + "loc": {"start": {"line": 517, "column": 66}, "end": {"line": 517, "column": 94}}, + "line": 517 + }, + "41": { + "name": "(anonymous_41)", + "decl": {"start": {"line": 534, "column": 20}, "end": {"line": 534, "column": 21}}, + "loc": {"start": {"line": 534, "column": 62}, "end": {"line": 542, "column": 11}}, + "line": 534 + }, + "42": { + "name": "(anonymous_42)", + "decl": {"start": {"line": 553, "column": 36}, "end": {"line": 553, "column": 37}}, + "loc": {"start": {"line": 553, "column": 87}, "end": {"line": 553, "column": 121}}, + "line": 553 + }, + "43": { + "name": "(anonymous_43)", + "decl": {"start": {"line": 558, "column": 37}, "end": {"line": 558, "column": 38}}, + "loc": {"start": {"line": 558, "column": 127}, "end": {"line": 576, "column": 3}}, + "line": 558 + }, + "44": { + "name": "(anonymous_44)", + "decl": {"start": {"line": 565, "column": 26}, "end": {"line": 565, "column": 27}}, + "loc": {"start": {"line": 565, "column": 49}, "end": {"line": 565, "column": 95}}, + "line": 565 + }, + "45": { + "name": "(anonymous_45)", + "decl": {"start": {"line": 578, "column": 23}, "end": {"line": 578, "column": 24}}, + "loc": {"start": {"line": 579, "column": 4}, "end": {"line": 691, "column": 8}}, + "line": 579 + }, + "46": { + "name": "(anonymous_46)", + "decl": {"start": {"line": 581, "column": 12}, "end": {"line": 581, "column": 13}}, + "loc": {"start": {"line": 581, "column": 68}, "end": {"line": 683, "column": 7}}, + "line": 581 + }, + "47": { + "name": "(anonymous_47)", + "decl": {"start": {"line": 624, "column": 66}, "end": {"line": 624, "column": 67}}, + "loc": {"start": {"line": 625, "column": 12}, "end": {"line": 625, "column": 113}}, + "line": 625 + }, + "48": { + "name": "(anonymous_48)", + "decl": {"start": {"line": 625, "column": 36}, "end": {"line": 625, "column": 37}}, + "loc": {"start": {"line": 625, "column": 61}, "end": {"line": 625, "column": 112}}, + "line": 625 + }, + "49": { + "name": "(anonymous_49)", + "decl": {"start": {"line": 635, "column": 32}, "end": {"line": 635, "column": 33}}, + "loc": {"start": {"line": 635, "column": 68}, "end": {"line": 635, "column": 118}}, + "line": 635 + }, + "50": { + "name": "(anonymous_50)", + "decl": {"start": {"line": 647, "column": 23}, "end": {"line": 647, "column": 24}}, + "loc": {"start": {"line": 647, "column": 35}, "end": {"line": 666, "column": 15}}, + "line": 647 + }, + "51": { + "name": "(anonymous_51)", + "decl": {"start": {"line": 656, "column": 24}, "end": {"line": 656, "column": 25}}, + "loc": {"start": {"line": 656, "column": 30}, "end": {"line": 664, "column": 19}}, + "line": 656 + }, + "52": { + "name": "(anonymous_52)", + "decl": {"start": {"line": 665, "column": 25}, "end": {"line": 665, "column": 26}}, + "loc": {"start": {"line": 665, "column": 43}, "end": {"line": 665, "column": 105}}, + "line": 665 + }, + "53": { + "name": "(anonymous_53)", + "decl": {"start": {"line": 670, "column": 23}, "end": {"line": 670, "column": 24}}, + "loc": {"start": {"line": 670, "column": 35}, "end": {"line": 674, "column": 15}}, + "line": 670 + }, + "54": { + "name": "(anonymous_54)", + "decl": {"start": {"line": 684, "column": 13}, "end": {"line": 684, "column": 14}}, + "loc": {"start": {"line": 684, "column": 31}, "end": {"line": 691, "column": 7}}, + "line": 684 + }, + "55": { + "name": "(anonymous_55)", + "decl": {"start": {"line": 693, "column": 22}, "end": {"line": 693, "column": 23}}, + "loc": {"start": {"line": 693, "column": 92}, "end": {"line": 716, "column": 3}}, + "line": 693 + }, + "56": { + "name": "(anonymous_56)", + "decl": {"start": {"line": 712, "column": 19}, "end": {"line": 712, "column": 20}}, + "loc": {"start": {"line": 712, "column": 31}, "end": {"line": 712, "column": 87}}, + "line": 712 + }, + "57": { + "name": "(anonymous_57)", + "decl": {"start": {"line": 726, "column": 10}, "end": {"line": 726, "column": 11}}, + "loc": {"start": {"line": 727, "column": 6}, "end": {"line": 727, "column": 108}}, + "line": 727 + }, + "58": { + "name": "(anonymous_58)", + "decl": {"start": {"line": 727, "column": 64}, "end": {"line": 727, "column": 65}}, + "loc": {"start": {"line": 727, "column": 70}, "end": {"line": 727, "column": 107}}, + "line": 727 + }, + "59": { + "name": "(anonymous_59)", + "decl": {"start": {"line": 729, "column": 11}, "end": {"line": 729, "column": 12}}, + "loc": {"start": {"line": 729, "column": 29}, "end": {"line": 733, "column": 5}}, + "line": 729 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 88, "column": 4}, "end": {"line": 90, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 88, "column": 4}, "end": {"line": 90, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 88 + }, + "1": { + "loc": {"start": {"line": 88, "column": 8}, "end": {"line": 88, "column": 52}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 88, "column": 8}, "end": {"line": 88, "column": 18}}, + {"start": {"line": 88, "column": 22}, "end": {"line": 88, "column": 52}} + ], + "line": 88 + }, + "2": { + "loc": {"start": {"line": 97, "column": 4}, "end": {"line": 102, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 97, "column": 4}, "end": {"line": 102, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 97 + }, + "3": { + "loc": {"start": {"line": 107, "column": 2}, "end": {"line": 118, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 107, "column": 2}, "end": {"line": 118, "column": 3}}, + {"start": {"line": 112, "column": 9}, "end": {"line": 118, "column": 3}} + ], + "line": 107 + }, + "4": { + "loc": {"start": {"line": 107, "column": 6}, "end": {"line": 107, "column": 119}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 107, "column": 6}, "end": {"line": 107, "column": 61}}, + {"start": {"line": 107, "column": 65}, "end": {"line": 107, "column": 119}} + ], + "line": 107 + }, + "5": { + "loc": {"start": {"line": 112, "column": 9}, "end": {"line": 118, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 112, "column": 9}, "end": {"line": 118, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 112 + }, + "6": { + "loc": {"start": {"line": 112, "column": 13}, "end": {"line": 112, "column": 94}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 112, "column": 13}, "end": {"line": 112, "column": 53}}, + {"start": {"line": 112, "column": 57}, "end": {"line": 112, "column": 94}} + ], + "line": 112 + }, + "7": { + "loc": {"start": {"line": 135, "column": 2}, "end": {"line": 147, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 135, "column": 2}, "end": {"line": 147, "column": 3}}, + {"start": {"line": 141, "column": 9}, "end": {"line": 147, "column": 3}} + ], + "line": 135 + }, + "8": { + "loc": {"start": {"line": 151, "column": 2}, "end": {"line": 164, "column": 3}}, + "type": "switch", + "locations": [ + {"start": {"line": 152, "column": 4}, "end": {"line": 156, "column": 12}}, + {"start": {"line": 157, "column": 4}, "end": {"line": 157, "column": 28}}, + {"start": {"line": 158, "column": 4}, "end": {"line": 158, "column": 31}}, + {"start": {"line": 159, "column": 4}, "end": {"line": 160, "column": 33}}, + {"start": {"line": 161, "column": 4}, "end": {"line": 161, "column": 45}}, + {"start": {"line": 162, "column": 4}, "end": {"line": 163, "column": 44}} + ], + "line": 151 + }, + "9": { + "loc": {"start": {"line": 153, "column": 6}, "end": {"line": 155, "column": 7}}, + "type": "if", + "locations": [ + {"start": {"line": 153, "column": 6}, "end": {"line": 155, "column": 7}}, + {"start": {}, "end": {}} + ], + "line": 153 + }, + "10": { + "loc": {"start": {"line": 195, "column": 6}, "end": {"line": 197, "column": 7}}, + "type": "if", + "locations": [ + {"start": {"line": 195, "column": 6}, "end": {"line": 197, "column": 7}}, + {"start": {}, "end": {}} + ], + "line": 195 + }, + "11": { + "loc": {"start": {"line": 229, "column": 6}, "end": {"line": 232, "column": 75}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 229, "column": 6}, "end": {"line": 229, "column": 25}}, + {"start": {"line": 230, "column": 7}, "end": {"line": 232, "column": 74}} + ], + "line": 229 + }, + "12": { + "loc": {"start": {"line": 230, "column": 7}, "end": {"line": 232, "column": 74}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 231, "column": 10}, "end": {"line": 231, "column": 78}}, + {"start": {"line": 232, "column": 10}, "end": {"line": 232, "column": 74}} + ], + "line": 230 + }, + "13": { + "loc": {"start": {"line": 232, "column": 10}, "end": {"line": 232, "column": 74}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 232, "column": 10}, "end": {"line": 232, "column": 24}}, + {"start": {"line": 232, "column": 28}, "end": {"line": 232, "column": 74}} + ], + "line": 232 + }, + "14": { + "loc": {"start": {"line": 240, "column": 14}, "end": {"line": 240, "column": 60}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 240, "column": 36}, "end": {"line": 240, "column": 48}}, + {"start": {"line": 240, "column": 51}, "end": {"line": 240, "column": 60}} + ], + "line": 240 + }, + "15": { + "loc": {"start": {"line": 241, "column": 28}, "end": {"line": 245, "column": 10}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 242, "column": 6}, "end": {"line": 242, "column": 48}}, + {"start": {"line": 243, "column": 6}, "end": {"line": 245, "column": 10}} + ], + "line": 241 + }, + "16": { + "loc": {"start": {"line": 243, "column": 6}, "end": {"line": 245, "column": 10}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 244, "column": 6}, "end": {"line": 244, "column": 66}}, + {"start": {"line": 245, "column": 6}, "end": {"line": 245, "column": 10}} + ], + "line": 243 + }, + "17": { + "loc": {"start": {"line": 265, "column": 87}, "end": {"line": 265, "column": 133}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 265, "column": 87}, "end": {"line": 265, "column": 112}}, + {"start": {"line": 265, "column": 116}, "end": {"line": 265, "column": 133}} + ], + "line": 265 + }, + "18": { + "loc": {"start": {"line": 279, "column": 41}, "end": {"line": 279, "column": 134}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 279, "column": 42}, "end": {"line": 279, "column": 115}}, + {"start": {"line": 279, "column": 120}, "end": {"line": 279, "column": 134}} + ], + "line": 279 + }, + "19": { + "loc": {"start": {"line": 280, "column": 46}, "end": {"line": 284, "column": 17}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 281, "column": 8}, "end": {"line": 283, "column": 72}}, + {"start": {"line": 284, "column": 8}, "end": {"line": 284, "column": 17}} + ], + "line": 280 + }, + "20": { + "loc": {"start": {"line": 281, "column": 8}, "end": {"line": 283, "column": 72}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 282, "column": 10}, "end": {"line": 282, "column": 18}}, + {"start": {"line": 283, "column": 10}, "end": {"line": 283, "column": 72}} + ], + "line": 281 + }, + "21": { + "loc": {"start": {"line": 285, "column": 4}, "end": {"line": 322, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 285, "column": 4}, "end": {"line": 322, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 285 + }, + "22": { + "loc": {"start": {"line": 291, "column": 31}, "end": {"line": 291, "column": 112}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 291, "column": 31}, "end": {"line": 291, "column": 45}}, + {"start": {"line": 291, "column": 49}, "end": {"line": 291, "column": 95}}, + {"start": {"line": 291, "column": 99}, "end": {"line": 291, "column": 112}} + ], + "line": 291 + }, + "23": { + "loc": {"start": {"line": 297, "column": 6}, "end": {"line": 321, "column": 7}}, + "type": "if", + "locations": [ + {"start": {"line": 297, "column": 6}, "end": {"line": 321, "column": 7}}, + {"start": {}, "end": {}} + ], + "line": 297 + }, + "24": { + "loc": {"start": {"line": 301, "column": 8}, "end": {"line": 320, "column": 9}}, + "type": "if", + "locations": [ + {"start": {"line": 301, "column": 8}, "end": {"line": 320, "column": 9}}, + {"start": {}, "end": {}} + ], + "line": 301 + }, + "25": { + "loc": {"start": {"line": 306, "column": 20}, "end": {"line": 306, "column": 116}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 306, "column": 55}, "end": {"line": 306, "column": 84}}, + {"start": {"line": 306, "column": 87}, "end": {"line": 306, "column": 116}} + ], + "line": 306 + }, + "26": { + "loc": {"start": {"line": 309, "column": 16}, "end": {"line": 317, "column": 13}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 309, "column": 16}, "end": {"line": 309, "column": 49}}, + {"start": {"line": 309, "column": 53}, "end": {"line": 317, "column": 13}} + ], + "line": 309 + }, + "27": { + "loc": {"start": {"line": 326, "column": 4}, "end": {"line": 328, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 326, "column": 4}, "end": {"line": 328, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 326 + }, + "28": { + "loc": {"start": {"line": 326, "column": 8}, "end": {"line": 326, "column": 88}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 326, "column": 8}, "end": {"line": 326, "column": 40}}, + {"start": {"line": 326, "column": 44}, "end": {"line": 326, "column": 88}} + ], + "line": 326 + }, + "29": { + "loc": {"start": {"line": 329, "column": 4}, "end": {"line": 331, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 329, "column": 4}, "end": {"line": 331, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 329 + }, + "30": { + "loc": {"start": {"line": 337, "column": 18}, "end": {"line": 337, "column": 60}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 337, "column": 18}, "end": {"line": 337, "column": 22}}, + {"start": {"line": 337, "column": 26}, "end": {"line": 337, "column": 43}}, + {"start": {"line": 337, "column": 47}, "end": {"line": 337, "column": 60}} + ], + "line": 337 + }, + "31": { + "loc": {"start": {"line": 365, "column": 27}, "end": {"line": 365, "column": 65}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 365, "column": 33}, "end": {"line": 365, "column": 45}}, + {"start": {"line": 365, "column": 48}, "end": {"line": 365, "column": 65}} + ], + "line": 365 + }, + "32": { + "loc": {"start": {"line": 371, "column": 4}, "end": {"line": 401, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 371, "column": 4}, "end": {"line": 401, "column": 5}}, + {"start": {"line": 399, "column": 11}, "end": {"line": 401, "column": 5}} + ], + "line": 371 + }, + "33": { + "loc": {"start": {"line": 375, "column": 16}, "end": {"line": 375, "column": 58}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 375, "column": 16}, "end": {"line": 375, "column": 20}}, + {"start": {"line": 375, "column": 24}, "end": {"line": 375, "column": 41}}, + {"start": {"line": 375, "column": 45}, "end": {"line": 375, "column": 58}} + ], + "line": 375 + }, + "34": { + "loc": {"start": {"line": 406, "column": 2}, "end": {"line": 417, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 406, "column": 2}, "end": {"line": 417, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 406 + }, + "35": { + "loc": {"start": {"line": 410, "column": 22}, "end": {"line": 410, "column": 80}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 410, "column": 22}, "end": {"line": 410, "column": 49}}, + {"start": {"line": 410, "column": 53}, "end": {"line": 410, "column": 80}} + ], + "line": 410 + }, + "36": { + "loc": {"start": {"line": 423, "column": 4}, "end": {"line": 425, "column": 11}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 423, "column": 4}, "end": {"line": 425, "column": 5}}, + {"start": {"line": 425, "column": 9}, "end": {"line": 425, "column": 11}} + ], + "line": 423 + }, + "37": { + "loc": {"start": {"line": 424, "column": 14}, "end": {"line": 424, "column": 140}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 424, "column": 14}, "end": {"line": 424, "column": 32}}, + {"start": {"line": 424, "column": 36}, "end": {"line": 424, "column": 65}}, + {"start": {"line": 424, "column": 70}, "end": {"line": 424, "column": 81}}, + {"start": {"line": 424, "column": 85}, "end": {"line": 424, "column": 123}}, + {"start": {"line": 424, "column": 128}, "end": {"line": 424, "column": 140}} + ], + "line": 424 + }, + "38": { + "loc": {"start": {"line": 426, "column": 39}, "end": {"line": 426, "column": 115}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 426, "column": 53}, "end": {"line": 426, "column": 96}}, + {"start": {"line": 426, "column": 99}, "end": {"line": 426, "column": 115}} + ], + "line": 426 + }, + "39": { + "loc": {"start": {"line": 426, "column": 53}, "end": {"line": 426, "column": 96}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 426, "column": 53}, "end": {"line": 426, "column": 91}}, + {"start": {"line": 426, "column": 95}, "end": {"line": 426, "column": 96}} + ], + "line": 426 + }, + "40": { + "loc": {"start": {"line": 432, "column": 19}, "end": {"line": 432, "column": 142}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 432, "column": 70}, "end": {"line": 432, "column": 137}}, + {"start": {"line": 432, "column": 140}, "end": {"line": 432, "column": 142}} + ], + "line": 432 + }, + "41": { + "loc": {"start": {"line": 435, "column": 4}, "end": {"line": 438, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 435, "column": 4}, "end": {"line": 438, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 435 + }, + "42": { + "loc": {"start": {"line": 440, "column": 2}, "end": {"line": 442, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 440, "column": 2}, "end": {"line": 442, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 440 + }, + "43": { + "loc": {"start": {"line": 463, "column": 6}, "end": {"line": 507, "column": 7}}, + "type": "if", + "locations": [ + {"start": {"line": 463, "column": 6}, "end": {"line": 507, "column": 7}}, + {"start": {"line": 505, "column": 13}, "end": {"line": 507, "column": 7}} + ], + "line": 463 + }, + "44": { + "loc": {"start": {"line": 517, "column": 31}, "end": {"line": 517, "column": 121}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 517, "column": 31}, "end": {"line": 517, "column": 95}}, + {"start": {"line": 517, "column": 99}, "end": {"line": 517, "column": 121}} + ], + "line": 517 + }, + "45": { + "loc": {"start": {"line": 522, "column": 12}, "end": {"line": 522, "column": 135}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 522, "column": 12}, "end": {"line": 522, "column": 117}}, + {"start": {"line": 522, "column": 121}, "end": {"line": 522, "column": 135}} + ], + "line": 522 + }, + "46": { + "loc": {"start": {"line": 528, "column": 4}, "end": {"line": 555, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 528, "column": 4}, "end": {"line": 555, "column": 5}}, + {"start": {"line": 550, "column": 11}, "end": {"line": 555, "column": 5}} + ], + "line": 528 + }, + "47": { + "loc": {"start": {"line": 559, "column": 4}, "end": {"line": 575, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 559, "column": 4}, "end": {"line": 575, "column": 5}}, + {"start": {"line": 573, "column": 11}, "end": {"line": 575, "column": 5}} + ], + "line": 559 + }, + "48": { + "loc": {"start": {"line": 592, "column": 8}, "end": {"line": 599, "column": 9}}, + "type": "if", + "locations": [ + {"start": {"line": 592, "column": 8}, "end": {"line": 599, "column": 9}}, + {"start": {}, "end": {}} + ], + "line": 592 + }, + "49": { + "loc": {"start": {"line": 592, "column": 12}, "end": {"line": 592, "column": 66}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 592, "column": 12}, "end": {"line": 592, "column": 38}}, + {"start": {"line": 592, "column": 42}, "end": {"line": 592, "column": 66}} + ], + "line": 592 + }, + "50": { + "loc": {"start": {"line": 614, "column": 8}, "end": {"line": 631, "column": 9}}, + "type": "if", + "locations": [ + {"start": {"line": 614, "column": 8}, "end": {"line": 631, "column": 9}}, + {"start": {}, "end": {}} + ], + "line": 614 + }, + "51": { + "loc": {"start": {"line": 615, "column": 40}, "end": {"line": 615, "column": 130}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 615, "column": 79}, "end": {"line": 615, "column": 95}}, + {"start": {"line": 615, "column": 98}, "end": {"line": 615, "column": 130}} + ], + "line": 615 + }, + "52": { + "loc": {"start": {"line": 627, "column": 10}, "end": {"line": 630, "column": 11}}, + "type": "if", + "locations": [ + {"start": {"line": 627, "column": 10}, "end": {"line": 630, "column": 11}}, + {"start": {}, "end": {}} + ], + "line": 627 + }, + "53": { + "loc": {"start": {"line": 648, "column": 16}, "end": {"line": 654, "column": 17}}, + "type": "if", + "locations": [ + {"start": {"line": 648, "column": 16}, "end": {"line": 654, "column": 17}}, + {"start": {}, "end": {}} + ], + "line": 648 + }, + "54": { + "loc": {"start": {"line": 648, "column": 20}, "end": {"line": 648, "column": 64}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 648, "column": 20}, "end": {"line": 648, "column": 34}}, + {"start": {"line": 648, "column": 38}, "end": {"line": 648, "column": 64}} + ], + "line": 648 + }, + "55": { + "loc": {"start": {"line": 686, "column": 30}, "end": {"line": 686, "column": 138}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 686, "column": 68}, "end": {"line": 686, "column": 122}}, + {"start": {"line": 686, "column": 125}, "end": {"line": 686, "column": 138}} + ], + "line": 686 + }, + "56": { + "loc": {"start": {"line": 687, "column": 8}, "end": {"line": 689, "column": 9}}, + "type": "if", + "locations": [ + {"start": {"line": 687, "column": 8}, "end": {"line": 689, "column": 9}}, + {"start": {}, "end": {}} + ], + "line": 687 + }, + "57": { + "loc": {"start": {"line": 687, "column": 12}, "end": {"line": 687, "column": 73}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 687, "column": 12}, "end": {"line": 687, "column": 41}}, + {"start": {"line": 687, "column": 45}, "end": {"line": 687, "column": 73}} + ], + "line": 687 + }, + "58": { + "loc": {"start": {"line": 695, "column": 25}, "end": {"line": 695, "column": 74}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 695, "column": 25}, "end": {"line": 695, "column": 57}}, + {"start": {"line": 695, "column": 61}, "end": {"line": 695, "column": 74}} + ], + "line": 695 + }, + "59": { + "loc": {"start": {"line": 703, "column": 12}, "end": {"line": 709, "column": 9}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 703, "column": 12}, "end": {"line": 703, "column": 24}}, + {"start": {"line": 703, "column": 28}, "end": {"line": 709, "column": 9}} + ], + "line": 703 + } + }, + "s": { + "0": 1, + "1": 1, + "2": 1, + "3": 0, + "4": 0, + "5": 0, + "6": 1, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 0, + "22": 0, + "23": 0, + "24": 0, + "25": 0, + "26": 1, + "27": 0, + "28": 0, + "29": 0, + "30": 1, + "31": 0, + "32": 0, + "33": 0, + "34": 1, + "35": 0, + "36": 0, + "37": 0, + "38": 0, + "39": 0, + "40": 0, + "41": 1, + "42": 0, + "43": 0, + "44": 0, + "45": 0, + "46": 0, + "47": 0, + "48": 0, + "49": 0, + "50": 0, + "51": 0, + "52": 1, + "53": 0, + "54": 0, + "55": 0, + "56": 0, + "57": 0, + "58": 0, + "59": 0, + "60": 0, + "61": 0, + "62": 0, + "63": 0, + "64": 0, + "65": 0, + "66": 0, + "67": 0, + "68": 0, + "69": 0, + "70": 0, + "71": 0, + "72": 0, + "73": 0, + "74": 0, + "75": 0, + "76": 0, + "77": 0, + "78": 0, + "79": 0, + "80": 0, + "81": 0, + "82": 0, + "83": 0, + "84": 0, + "85": 0, + "86": 0, + "87": 0, + "88": 0, + "89": 0, + "90": 0, + "91": 0, + "92": 0, + "93": 0, + "94": 0, + "95": 0, + "96": 0, + "97": 0, + "98": 0, + "99": 0, + "100": 0, + "101": 0, + "102": 0, + "103": 0, + "104": 0, + "105": 1, + "106": 0, + "107": 0, + "108": 0, + "109": 0, + "110": 0, + "111": 0, + "112": 0, + "113": 0, + "114": 0, + "115": 0, + "116": 0, + "117": 0, + "118": 0, + "119": 0, + "120": 0, + "121": 0, + "122": 1, + "123": 0, + "124": 0, + "125": 0, + "126": 0, + "127": 0, + "128": 0, + "129": 0, + "130": 0, + "131": 0, + "132": 0, + "133": 0, + "134": 0, + "135": 0, + "136": 0, + "137": 0, + "138": 0, + "139": 0, + "140": 0, + "141": 0, + "142": 0, + "143": 0, + "144": 0, + "145": 0, + "146": 0, + "147": 0, + "148": 0, + "149": 0, + "150": 0, + "151": 0, + "152": 0, + "153": 0, + "154": 0, + "155": 0, + "156": 0, + "157": 0, + "158": 0, + "159": 0, + "160": 0, + "161": 0, + "162": 0, + "163": 0, + "164": 0, + "165": 0, + "166": 0, + "167": 0, + "168": 0, + "169": 0, + "170": 0, + "171": 0, + "172": 0, + "173": 0, + "174": 0, + "175": 0, + "176": 0, + "177": 0, + "178": 0, + "179": 0, + "180": 0, + "181": 0, + "182": 0, + "183": 0, + "184": 0, + "185": 0, + "186": 0, + "187": 0, + "188": 0, + "189": 0, + "190": 0, + "191": 0, + "192": 0, + "193": 0, + "194": 0, + "195": 0, + "196": 0, + "197": 0, + "198": 0, + "199": 0, + "200": 0, + "201": 0, + "202": 0, + "203": 0, + "204": 0, + "205": 0, + "206": 0 + }, + "f": { + "0": 0, + "1": 0, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 0, + "22": 0, + "23": 0, + "24": 0, + "25": 0, + "26": 0, + "27": 0, + "28": 0, + "29": 0, + "30": 0, + "31": 0, + "32": 0, + "33": 0, + "34": 0, + "35": 0, + "36": 0, + "37": 0, + "38": 0, + "39": 0, + "40": 0, + "41": 0, + "42": 0, + "43": 0, + "44": 0, + "45": 0, + "46": 0, + "47": 0, + "48": 0, + "49": 0, + "50": 0, + "51": 0, + "52": 0, + "53": 0, + "54": 0, + "55": 0, + "56": 0, + "57": 0, + "58": 0, + "59": 0 + }, + "b": { + "0": [0, 0], + "1": [0, 0], + "2": [0, 0], + "3": [0, 0], + "4": [0, 0], + "5": [0, 0], + "6": [0, 0], + "7": [0, 0], + "8": [0, 0, 0, 0, 0, 0], + "9": [0, 0], + "10": [0, 0], + "11": [0, 0], + "12": [0, 0], + "13": [0, 0], + "14": [0, 0], + "15": [0, 0], + "16": [0, 0], + "17": [0, 0], + "18": [0, 0], + "19": [0, 0], + "20": [0, 0], + "21": [0, 0], + "22": [0, 0, 0], + "23": [0, 0], + "24": [0, 0], + "25": [0, 0], + "26": [0, 0], + "27": [0, 0], + "28": [0, 0], + "29": [0, 0], + "30": [0, 0, 0], + "31": [0, 0], + "32": [0, 0], + "33": [0, 0, 0], + "34": [0, 0], + "35": [0, 0], + "36": [0, 0], + "37": [0, 0, 0, 0, 0], + "38": [0, 0], + "39": [0, 0], + "40": [0, 0], + "41": [0, 0], + "42": [0, 0], + "43": [0, 0], + "44": [0, 0], + "45": [0, 0], + "46": [0, 0], + "47": [0, 0], + "48": [0, 0], + "49": [0, 0], + "50": [0, 0], + "51": [0, 0], + "52": [0, 0], + "53": [0, 0], + "54": [0, 0], + "55": [0, 0], + "56": [0, 0], + "57": [0, 0], + "58": [0, 0], + "59": [0, 0] + }, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "6d8bf67bbeed7d0ef66e000f3994c9f069220d91" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\services\\signatureService.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\services\\signatureService.ts", + "statementMap": { + "0": {"start": {"line": 8, "column": 23}, "end": {"line": 15, "column": 1}}, + "1": {"start": {"line": 9, "column": 18}, "end": {"line": 12, "column": 3}}, + "2": {"start": {"line": 14, "column": 2}, "end": {"line": 14, "column": 55}}, + "3": {"start": {"line": 17, "column": 18}, "end": {"line": 32, "column": 1}}, + "4": {"start": {"line": 19, "column": 14}, "end": {"line": 19, "column": 32}}, + "5": {"start": {"line": 21, "column": 20}, "end": {"line": 21, "column": 50}}, + "6": {"start": {"line": 23, "column": 2}, "end": {"line": 31, "column": 4}}, + "7": {"start": {"line": 24, "column": 18}, "end": {"line": 24, "column": 133}}, + "8": {"start": {"line": 26, "column": 4}, "end": {"line": 30, "column": 7}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 8, "column": 23}, "end": {"line": 8, "column": 24}}, + "loc": {"start": {"line": 8, "column": 70}, "end": {"line": 15, "column": 1}}, + "line": 8 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 17, "column": 18}, "end": {"line": 17, "column": 19}}, + "loc": {"start": {"line": 17, "column": 55}, "end": {"line": 32, "column": 1}}, + "line": 17 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 23, "column": 9}, "end": {"line": 23, "column": 10}}, + "loc": {"start": {"line": 23, "column": 63}, "end": {"line": 31, "column": 3}}, + "line": 23 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 24, "column": 18}, "end": {"line": 24, "column": 133}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 24, "column": 70}, "end": {"line": 24, "column": 114}}, + {"start": {"line": 24, "column": 118}, "end": {"line": 24, "column": 132}} + ], + "line": 24 + } + }, + "s": {"0": 1, "1": 0, "2": 0, "3": 1, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0}, + "f": {"0": 0, "1": 0, "2": 0}, + "b": {"0": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "3bac4466402fa5fb673345a37de2cf8e6423d0b2" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\services\\storageService.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\services\\storageService.ts", + "statementMap": { + "0": {"start": {"line": 8, "column": 30}, "end": {"line": 8, "column": 63}}, + "1": {"start": {"line": 10, "column": 24}, "end": {"line": 10, "column": 29}}, + "2": {"start": {"line": 11, "column": 26}, "end": {"line": 11, "column": 33}}, + "3": {"start": {"line": 13, "column": 34}, "end": {"line": 38, "column": 1}}, + "4": {"start": {"line": 14, "column": 2}, "end": {"line": 14, "column": 49}}, + "5": {"start": {"line": 16, "column": 2}, "end": {"line": 37, "column": 125}}, + "6": {"start": {"line": 18, "column": 6}, "end": {"line": 24, "column": 7}}, + "7": {"start": {"line": 19, "column": 8}, "end": {"line": 19, "column": 67}}, + "8": {"start": {"line": 20, "column": 22}, "end": {"line": 20, "column": 46}}, + "9": {"start": {"line": 21, "column": 8}, "end": {"line": 21, "column": 33}}, + "10": {"start": {"line": 23, "column": 8}, "end": {"line": 23, "column": 90}}, + "11": {"start": {"line": 26, "column": 6}, "end": {"line": 26, "column": 62}}, + "12": {"start": {"line": 27, "column": 40}, "end": {"line": 27, "column": 64}}, + "13": {"start": {"line": 28, "column": 6}, "end": {"line": 30, "column": 9}}, + "14": {"start": {"line": 29, "column": 8}, "end": {"line": 29, "column": 30}}, + "15": {"start": {"line": 32, "column": 6}, "end": {"line": 32, "column": 31}}, + "16": {"start": {"line": 34, "column": 6}, "end": {"line": 34, "column": 63}}, + "17": {"start": {"line": 35, "column": 6}, "end": {"line": 35, "column": 81}}, + "18": {"start": {"line": 37, "column": 29}, "end": {"line": 37, "column": 123}}, + "19": {"start": {"line": 40, "column": 31}, "end": {"line": 58, "column": 1}}, + "20": {"start": {"line": 41, "column": 2}, "end": {"line": 41, "column": 23}}, + "21": {"start": {"line": 42, "column": 2}, "end": {"line": 57, "column": 132}}, + "22": {"start": {"line": 44, "column": 6}, "end": {"line": 47, "column": 7}}, + "23": {"start": {"line": 45, "column": 8}, "end": {"line": 45, "column": 43}}, + "24": {"start": {"line": 46, "column": 8}, "end": {"line": 46, "column": 40}}, + "25": {"start": {"line": 49, "column": 6}, "end": {"line": 49, "column": 38}}, + "26": {"start": {"line": 50, "column": 40}, "end": {"line": 50, "column": 64}}, + "27": {"start": {"line": 51, "column": 6}, "end": {"line": 53, "column": 9}}, + "28": {"start": {"line": 52, "column": 8}, "end": {"line": 52, "column": 30}}, + "29": {"start": {"line": 55, "column": 6}, "end": {"line": 55, "column": 19}}, + "30": {"start": {"line": 57, "column": 29}, "end": {"line": 57, "column": 130}}, + "31": {"start": {"line": 60, "column": 33}, "end": {"line": 81, "column": 1}}, + "32": {"start": {"line": 61, "column": 2}, "end": {"line": 61, "column": 36}}, + "33": {"start": {"line": 63, "column": 2}, "end": {"line": 80, "column": 125}}, + "34": {"start": {"line": 65, "column": 6}, "end": {"line": 68, "column": 7}}, + "35": {"start": {"line": 66, "column": 8}, "end": {"line": 66, "column": 54}}, + "36": {"start": {"line": 67, "column": 8}, "end": {"line": 67, "column": 15}}, + "37": {"start": {"line": 70, "column": 40}, "end": {"line": 70, "column": 64}}, + "38": {"start": {"line": 71, "column": 6}, "end": {"line": 73, "column": 9}}, + "39": {"start": {"line": 72, "column": 8}, "end": {"line": 72, "column": 30}}, + "40": {"start": {"line": 75, "column": 6}, "end": {"line": 75, "column": 51}}, + "41": {"start": {"line": 76, "column": 6}, "end": {"line": 76, "column": 27}}, + "42": {"start": {"line": 78, "column": 6}, "end": {"line": 78, "column": 81}}, + "43": {"start": {"line": 80, "column": 29}, "end": {"line": 80, "column": 123}}, + "44": {"start": {"line": 83, "column": 33}, "end": {"line": 86, "column": 1}}, + "45": {"start": {"line": 84, "column": 2}, "end": {"line": 84, "column": 29}}, + "46": {"start": {"line": 85, "column": 2}, "end": {"line": 85, "column": 68}}, + "47": {"start": {"line": 88, "column": 29}, "end": {"line": 91, "column": 1}}, + "48": {"start": {"line": 89, "column": 2}, "end": {"line": 89, "column": 21}}, + "49": {"start": {"line": 90, "column": 2}, "end": {"line": 90, "column": 133}}, + "50": {"start": {"line": 90, "column": 59}, "end": {"line": 90, "column": 131}}, + "51": {"start": {"line": 93, "column": 32}, "end": {"line": 96, "column": 1}}, + "52": {"start": {"line": 94, "column": 2}, "end": {"line": 94, "column": 24}}, + "53": {"start": {"line": 95, "column": 2}, "end": {"line": 95, "column": 143}}, + "54": {"start": {"line": 95, "column": 62}, "end": {"line": 95, "column": 141}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 13, "column": 34}, "end": {"line": 13, "column": 35}}, + "loc": {"start": {"line": 13, "column": 83}, "end": {"line": 38, "column": 1}}, + "line": 13 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 17, "column": 10}, "end": {"line": 17, "column": 11}}, + "loc": {"start": {"line": 17, "column": 37}, "end": {"line": 36, "column": 5}}, + "line": 17 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 28, "column": 33}, "end": {"line": 28, "column": 34}}, + "loc": {"start": {"line": 28, "column": 68}, "end": {"line": 30, "column": 7}}, + "line": 28 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 37, "column": 11}, "end": {"line": 37, "column": 12}}, + "loc": {"start": {"line": 37, "column": 29}, "end": {"line": 37, "column": 123}}, + "line": 37 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 40, "column": 31}, "end": {"line": 40, "column": 32}}, + "loc": {"start": {"line": 40, "column": 72}, "end": {"line": 58, "column": 1}}, + "line": 40 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 43, "column": 10}, "end": {"line": 43, "column": 11}}, + "loc": {"start": {"line": 43, "column": 37}, "end": {"line": 56, "column": 5}}, + "line": 43 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 51, "column": 33}, "end": {"line": 51, "column": 34}}, + "loc": {"start": {"line": 51, "column": 68}, "end": {"line": 53, "column": 7}}, + "line": 51 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 57, "column": 11}, "end": {"line": 57, "column": 12}}, + "loc": {"start": {"line": 57, "column": 29}, "end": {"line": 57, "column": 130}}, + "line": 57 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 60, "column": 33}, "end": {"line": 60, "column": 34}}, + "loc": {"start": {"line": 60, "column": 74}, "end": {"line": 81, "column": 1}}, + "line": 60 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 64, "column": 10}, "end": {"line": 64, "column": 11}}, + "loc": {"start": {"line": 64, "column": 37}, "end": {"line": 79, "column": 5}}, + "line": 64 + }, + "10": { + "name": "(anonymous_10)", + "decl": {"start": {"line": 71, "column": 33}, "end": {"line": 71, "column": 34}}, + "loc": {"start": {"line": 71, "column": 68}, "end": {"line": 73, "column": 7}}, + "line": 71 + }, + "11": { + "name": "(anonymous_11)", + "decl": {"start": {"line": 80, "column": 11}, "end": {"line": 80, "column": 12}}, + "loc": {"start": {"line": 80, "column": 29}, "end": {"line": 80, "column": 123}}, + "line": 80 + }, + "12": { + "name": "(anonymous_12)", + "decl": {"start": {"line": 83, "column": 33}, "end": {"line": 83, "column": 34}}, + "loc": {"start": {"line": 83, "column": 137}, "end": {"line": 86, "column": 1}}, + "line": 83 + }, + "13": { + "name": "(anonymous_13)", + "decl": {"start": {"line": 88, "column": 29}, "end": {"line": 88, "column": 30}}, + "loc": {"start": {"line": 88, "column": 58}, "end": {"line": 91, "column": 1}}, + "line": 88 + }, + "14": { + "name": "(anonymous_14)", + "decl": {"start": {"line": 90, "column": 53}, "end": {"line": 90, "column": 54}}, + "loc": {"start": {"line": 90, "column": 59}, "end": {"line": 90, "column": 131}}, + "line": 90 + }, + "15": { + "name": "(anonymous_15)", + "decl": {"start": {"line": 93, "column": 32}, "end": {"line": 93, "column": 33}}, + "loc": {"start": {"line": 93, "column": 59}, "end": {"line": 96, "column": 1}}, + "line": 93 + }, + "16": { + "name": "(anonymous_16)", + "decl": {"start": {"line": 95, "column": 56}, "end": {"line": 95, "column": 57}}, + "loc": {"start": {"line": 95, "column": 62}, "end": {"line": 95, "column": 141}}, + "line": 95 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 18, "column": 6}, "end": {"line": 24, "column": 7}}, + "type": "if", + "locations": [ + {"start": {"line": 18, "column": 6}, "end": {"line": 24, "column": 7}}, + {"start": {}, "end": {}} + ], + "line": 18 + }, + "1": { + "loc": {"start": {"line": 18, "column": 10}, "end": {"line": 18, "column": 36}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 18, "column": 10}, "end": {"line": 18, "column": 17}}, + {"start": {"line": 18, "column": 21}, "end": {"line": 18, "column": 36}} + ], + "line": 18 + }, + "2": { + "loc": {"start": {"line": 44, "column": 6}, "end": {"line": 47, "column": 7}}, + "type": "if", + "locations": [ + {"start": {"line": 44, "column": 6}, "end": {"line": 47, "column": 7}}, + {"start": {}, "end": {}} + ], + "line": 44 + }, + "3": { + "loc": {"start": {"line": 44, "column": 10}, "end": {"line": 44, "column": 36}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 44, "column": 10}, "end": {"line": 44, "column": 17}}, + {"start": {"line": 44, "column": 21}, "end": {"line": 44, "column": 36}} + ], + "line": 44 + }, + "4": { + "loc": {"start": {"line": 65, "column": 6}, "end": {"line": 68, "column": 7}}, + "type": "if", + "locations": [ + {"start": {"line": 65, "column": 6}, "end": {"line": 68, "column": 7}}, + {"start": {}, "end": {}} + ], + "line": 65 + }, + "5": { + "loc": {"start": {"line": 65, "column": 10}, "end": {"line": 65, "column": 36}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 65, "column": 10}, "end": {"line": 65, "column": 17}}, + {"start": {"line": 65, "column": 21}, "end": {"line": 65, "column": 36}} + ], + "line": 65 + }, + "6": { + "loc": {"start": {"line": 83, "column": 48}, "end": {"line": 83, "column": 102}}, + "type": "default-arg", + "locations": [{"start": {"line": 83, "column": 61}, "end": {"line": 83, "column": 102}}], + "line": 83 + } + }, + "s": { + "0": 1, + "1": 1, + "2": 1, + "3": 1, + "4": 1, + "5": 1, + "6": 1, + "7": 1, + "8": 1, + "9": 1, + "10": 1, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 1, + "20": 1, + "21": 1, + "22": 1, + "23": 0, + "24": 0, + "25": 1, + "26": 1, + "27": 1, + "28": 1, + "29": 1, + "30": 0, + "31": 1, + "32": 0, + "33": 0, + "34": 0, + "35": 0, + "36": 0, + "37": 0, + "38": 0, + "39": 0, + "40": 0, + "41": 0, + "42": 0, + "43": 0, + "44": 1, + "45": 1, + "46": 1, + "47": 1, + "48": 0, + "49": 0, + "50": 0, + "51": 1, + "52": 0, + "53": 0, + "54": 0 + }, + "f": { + "0": 1, + "1": 1, + "2": 0, + "3": 0, + "4": 1, + "5": 1, + "6": 1, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 1, + "13": 0, + "14": 0, + "15": 0, + "16": 0 + }, + "b": {"0": [1, 0], "1": [1, 0], "2": [0, 1], "3": [1, 1], "4": [0, 0], "5": [0, 0], "6": [1]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "709ecdea7d0b11dcec06b7d9ca5eaa605a723074" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\services\\userService.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\services\\userService.ts", + "statementMap": { + "0": {"start": {"line": 8, "column": 30}, "end": {"line": 8, "column": 60}}, + "1": {"start": {"line": 12, "column": 26}, "end": {"line": 30, "column": 1}}, + "2": {"start": {"line": 13, "column": 2}, "end": {"line": 13, "column": 50}}, + "3": {"start": {"line": 14, "column": 22}, "end": {"line": 22, "column": 3}}, + "4": {"start": {"line": 18, "column": 67}, "end": {"line": 18, "column": 132}}, + "5": {"start": {"line": 24, "column": 2}, "end": {"line": 29, "column": 94}}, + "6": {"start": {"line": 26, "column": 6}, "end": {"line": 26, "column": 61}}, + "7": {"start": {"line": 27, "column": 6}, "end": {"line": 27, "column": 18}}, + "8": {"start": {"line": 29, "column": 29}, "end": {"line": 29, "column": 92}}, + "9": {"start": {"line": 32, "column": 24}, "end": {"line": 35, "column": 1}}, + "10": {"start": {"line": 33, "column": 2}, "end": {"line": 33, "column": 23}}, + "11": {"start": {"line": 34, "column": 2}, "end": {"line": 34, "column": 140}}, + "12": {"start": {"line": 34, "column": 51}, "end": {"line": 34, "column": 138}}, + "13": {"start": {"line": 37, "column": 26}, "end": {"line": 50, "column": 1}}, + "14": {"start": {"line": 38, "column": 2}, "end": {"line": 38, "column": 50}}, + "15": {"start": {"line": 39, "column": 22}, "end": {"line": 42, "column": 3}}, + "16": {"start": {"line": 44, "column": 2}, "end": {"line": 49, "column": 94}}, + "17": {"start": {"line": 46, "column": 6}, "end": {"line": 46, "column": 61}}, + "18": {"start": {"line": 47, "column": 6}, "end": {"line": 47, "column": 18}}, + "19": {"start": {"line": 49, "column": 29}, "end": {"line": 49, "column": 92}}, + "20": {"start": {"line": 52, "column": 26}, "end": {"line": 54, "column": 1}}, + "21": {"start": {"line": 53, "column": 2}, "end": {"line": 53, "column": 136}}, + "22": {"start": {"line": 53, "column": 52}, "end": {"line": 53, "column": 134}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 12, "column": 26}, "end": {"line": 12, "column": 27}}, + "loc": {"start": {"line": 12, "column": 69}, "end": {"line": 30, "column": 1}}, + "line": 12 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 18, "column": 29}, "end": {"line": 18, "column": 30}}, + "loc": {"start": {"line": 18, "column": 67}, "end": {"line": 18, "column": 132}}, + "line": 18 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 25, "column": 10}, "end": {"line": 25, "column": 11}}, + "loc": {"start": {"line": 25, "column": 16}, "end": {"line": 28, "column": 5}}, + "line": 25 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 29, "column": 11}, "end": {"line": 29, "column": 12}}, + "loc": {"start": {"line": 29, "column": 29}, "end": {"line": 29, "column": 92}}, + "line": 29 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 32, "column": 24}, "end": {"line": 32, "column": 25}}, + "loc": {"start": {"line": 32, "column": 65}, "end": {"line": 35, "column": 1}}, + "line": 32 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 34, "column": 33}, "end": {"line": 34, "column": 34}}, + "loc": {"start": {"line": 34, "column": 51}, "end": {"line": 34, "column": 138}}, + "line": 34 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 37, "column": 26}, "end": {"line": 37, "column": 27}}, + "loc": {"start": {"line": 37, "column": 65}, "end": {"line": 50, "column": 1}}, + "line": 37 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 45, "column": 10}, "end": {"line": 45, "column": 11}}, + "loc": {"start": {"line": 45, "column": 16}, "end": {"line": 48, "column": 5}}, + "line": 45 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 49, "column": 11}, "end": {"line": 49, "column": 12}}, + "loc": {"start": {"line": 49, "column": 29}, "end": {"line": 49, "column": 92}}, + "line": 49 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 52, "column": 26}, "end": {"line": 52, "column": 27}}, + "loc": {"start": {"line": 52, "column": 67}, "end": {"line": 54, "column": 1}}, + "line": 52 + }, + "10": { + "name": "(anonymous_10)", + "decl": {"start": {"line": 53, "column": 34}, "end": {"line": 53, "column": 35}}, + "loc": {"start": {"line": 53, "column": 52}, "end": {"line": 53, "column": 134}}, + "line": 53 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 17, "column": 17}, "end": {"line": 19, "column": 10}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 18, "column": 8}, "end": {"line": 18, "column": 134}}, + {"start": {"line": 19, "column": 8}, "end": {"line": 19, "column": 10}} + ], + "line": 17 + } + }, + "s": { + "0": 1, + "1": 1, + "2": 1, + "3": 1, + "4": 1, + "5": 1, + "6": 1, + "7": 1, + "8": 0, + "9": 1, + "10": 1, + "11": 1, + "12": 0, + "13": 1, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 1, + "21": 0, + "22": 0 + }, + "f": {"0": 1, "1": 1, "2": 1, "3": 0, "4": 1, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0, "10": 0}, + "b": {"0": [1, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "ed0a06d6d1e3ab6db12965ddeff328e52ac947ac" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\store\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\store\\index.ts", + "statementMap": { + "0": {"start": {"line": 8, "column": 27}, "end": {"line": 12, "column": 2}}, + "1": {"start": {"line": 14, "column": 14}, "end": {"line": 18, "column": 2}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "01609db006f6d9575df0867ce98509873847080d" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\store\\actions\\contact.actions.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\store\\actions\\contact.actions.ts", + "statementMap": { + "0": {"start": {"line": 34, "column": 27}, "end": {"line": 43, "column": 1}}, + "1": {"start": {"line": 35, "column": 2}, "end": {"line": 42, "column": 4}}, + "2": {"start": {"line": 36, "column": 4}, "end": {"line": 36, "column": 39}}, + "3": {"start": {"line": 37, "column": 4}, "end": {"line": 41, "column": 7}}, + "4": {"start": {"line": 38, "column": 6}, "end": {"line": 40, "column": 60}}, + "5": {"start": {"line": 39, "column": 51}, "end": {"line": 39, "column": 126}}, + "6": {"start": {"line": 40, "column": 21}, "end": {"line": 40, "column": 58}}, + "7": {"start": {"line": 45, "column": 29}, "end": {"line": 55, "column": 1}}, + "8": {"start": {"line": 46, "column": 2}, "end": {"line": 54, "column": 4}}, + "9": {"start": {"line": 47, "column": 4}, "end": {"line": 47, "column": 39}}, + "10": {"start": {"line": 48, "column": 4}, "end": {"line": 53, "column": 60}}, + "11": {"start": {"line": 50, "column": 8}, "end": {"line": 50, "column": 67}}, + "12": {"start": {"line": 51, "column": 8}, "end": {"line": 51, "column": 116}}, + "13": {"start": {"line": 53, "column": 19}, "end": {"line": 53, "column": 58}}, + "14": {"start": {"line": 57, "column": 29}, "end": {"line": 67, "column": 1}}, + "15": {"start": {"line": 58, "column": 2}, "end": {"line": 66, "column": 4}}, + "16": {"start": {"line": 59, "column": 4}, "end": {"line": 59, "column": 39}}, + "17": {"start": {"line": 60, "column": 4}, "end": {"line": 65, "column": 60}}, + "18": {"start": {"line": 62, "column": 8}, "end": {"line": 62, "column": 67}}, + "19": {"start": {"line": 63, "column": 8}, "end": {"line": 63, "column": 119}}, + "20": {"start": {"line": 65, "column": 19}, "end": {"line": 65, "column": 58}}, + "21": {"start": {"line": 69, "column": 27}, "end": {"line": 85, "column": 1}}, + "22": {"start": {"line": 70, "column": 2}, "end": {"line": 84, "column": 4}}, + "23": {"start": {"line": 71, "column": 4}, "end": {"line": 71, "column": 39}}, + "24": {"start": {"line": 72, "column": 4}, "end": {"line": 83, "column": 9}}, + "25": {"start": {"line": 73, "column": 37}, "end": {"line": 73, "column": 123}}, + "26": {"start": {"line": 76, "column": 8}, "end": {"line": 80, "column": 10}}, + "27": {"start": {"line": 81, "column": 8}, "end": {"line": 81, "column": 27}}, + "28": {"start": {"line": 82, "column": 8}, "end": {"line": 82, "column": 46}}, + "29": {"start": {"line": 87, "column": 29}, "end": {"line": 106, "column": 1}}, + "30": {"start": {"line": 88, "column": 2}, "end": {"line": 105, "column": 4}}, + "31": {"start": {"line": 89, "column": 4}, "end": {"line": 89, "column": 39}}, + "32": {"start": {"line": 91, "column": 4}, "end": {"line": 104, "column": 9}}, + "33": {"start": {"line": 93, "column": 8}, "end": {"line": 99, "column": 9}}, + "34": {"start": {"line": 94, "column": 10}, "end": {"line": 94, "column": 71}}, + "35": {"start": {"line": 95, "column": 10}, "end": {"line": 95, "column": 122}}, + "36": {"start": {"line": 97, "column": 10}, "end": {"line": 97, "column": 50}}, + "37": {"start": {"line": 98, "column": 10}, "end": {"line": 98, "column": 101}}, + "38": {"start": {"line": 102, "column": 8}, "end": {"line": 102, "column": 48}}, + "39": {"start": {"line": 103, "column": 8}, "end": {"line": 103, "column": 99}}, + "40": {"start": {"line": 108, "column": 30}, "end": {"line": 137, "column": 1}}, + "41": {"start": {"line": 109, "column": 20}, "end": {"line": 109, "column": 41}}, + "42": {"start": {"line": 111, "column": 22}, "end": {"line": 111, "column": 43}}, + "43": {"start": {"line": 113, "column": 23}, "end": {"line": 113, "column": 59}}, + "44": {"start": {"line": 115, "column": 2}, "end": {"line": 136, "column": 4}}, + "45": {"start": {"line": 122, "column": 71}, "end": {"line": 133, "column": 5}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 34, "column": 27}, "end": {"line": 34, "column": 28}}, + "loc": {"start": {"line": 34, "column": 89}, "end": {"line": 43, "column": 1}}, + "line": 34 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 35, "column": 9}, "end": {"line": 35, "column": 10}}, + "loc": {"start": {"line": 35, "column": 72}, "end": {"line": 42, "column": 3}}, + "line": 35 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 37, "column": 32}, "end": {"line": 37, "column": 33}}, + "loc": {"start": {"line": 37, "column": 59}, "end": {"line": 41, "column": 5}}, + "line": 37 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 39, "column": 14}, "end": {"line": 39, "column": 15}}, + "loc": {"start": {"line": 39, "column": 51}, "end": {"line": 39, "column": 126}}, + "line": 39 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 40, "column": 15}, "end": {"line": 40, "column": 16}}, + "loc": {"start": {"line": 40, "column": 21}, "end": {"line": 40, "column": 58}}, + "line": 40 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 45, "column": 29}, "end": {"line": 45, "column": 30}}, + "loc": {"start": {"line": 45, "column": 115}, "end": {"line": 55, "column": 1}}, + "line": 45 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 46, "column": 9}, "end": {"line": 46, "column": 10}}, + "loc": {"start": {"line": 46, "column": 72}, "end": {"line": 54, "column": 3}}, + "line": 46 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 49, "column": 12}, "end": {"line": 49, "column": 13}}, + "loc": {"start": {"line": 49, "column": 35}, "end": {"line": 52, "column": 7}}, + "line": 49 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 53, "column": 13}, "end": {"line": 53, "column": 14}}, + "loc": {"start": {"line": 53, "column": 19}, "end": {"line": 53, "column": 58}}, + "line": 53 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 57, "column": 29}, "end": {"line": 57, "column": 30}}, + "loc": {"start": {"line": 57, "column": 115}, "end": {"line": 67, "column": 1}}, + "line": 57 + }, + "10": { + "name": "(anonymous_10)", + "decl": {"start": {"line": 58, "column": 9}, "end": {"line": 58, "column": 10}}, + "loc": {"start": {"line": 58, "column": 72}, "end": {"line": 66, "column": 3}}, + "line": 58 + }, + "11": { + "name": "(anonymous_11)", + "decl": {"start": {"line": 61, "column": 12}, "end": {"line": 61, "column": 13}}, + "loc": {"start": {"line": 61, "column": 35}, "end": {"line": 64, "column": 7}}, + "line": 61 + }, + "12": { + "name": "(anonymous_12)", + "decl": {"start": {"line": 65, "column": 13}, "end": {"line": 65, "column": 14}}, + "loc": {"start": {"line": 65, "column": 19}, "end": {"line": 65, "column": 58}}, + "line": 65 + }, + "13": { + "name": "(anonymous_13)", + "decl": {"start": {"line": 69, "column": 27}, "end": {"line": 69, "column": 28}}, + "loc": {"start": {"line": 69, "column": 111}, "end": {"line": 85, "column": 1}}, + "line": 69 + }, + "14": { + "name": "(anonymous_14)", + "decl": {"start": {"line": 70, "column": 9}, "end": {"line": 70, "column": 10}}, + "loc": {"start": {"line": 70, "column": 72}, "end": {"line": 84, "column": 3}}, + "line": 70 + }, + "15": { + "name": "(anonymous_15)", + "decl": {"start": {"line": 73, "column": 12}, "end": {"line": 73, "column": 13}}, + "loc": {"start": {"line": 73, "column": 37}, "end": {"line": 73, "column": 123}}, + "line": 73 + }, + "16": { + "name": "(anonymous_16)", + "decl": {"start": {"line": 74, "column": 13}, "end": {"line": 74, "column": 14}}, + "loc": {"start": {"line": 74, "column": 22}, "end": {"line": 83, "column": 7}}, + "line": 74 + }, + "17": { + "name": "(anonymous_17)", + "decl": {"start": {"line": 87, "column": 29}, "end": {"line": 87, "column": 30}}, + "loc": {"start": {"line": 87, "column": 108}, "end": {"line": 106, "column": 1}}, + "line": 87 + }, + "18": { + "name": "(anonymous_18)", + "decl": {"start": {"line": 88, "column": 9}, "end": {"line": 88, "column": 10}}, + "loc": {"start": {"line": 88, "column": 72}, "end": {"line": 105, "column": 3}}, + "line": 88 + }, + "19": { + "name": "(anonymous_19)", + "decl": {"start": {"line": 92, "column": 12}, "end": {"line": 92, "column": 13}}, + "loc": {"start": {"line": 92, "column": 36}, "end": {"line": 100, "column": 7}}, + "line": 92 + }, + "20": { + "name": "(anonymous_20)", + "decl": {"start": {"line": 101, "column": 13}, "end": {"line": 101, "column": 14}}, + "loc": {"start": {"line": 101, "column": 19}, "end": {"line": 104, "column": 7}}, + "line": 101 + }, + "21": { + "name": "(anonymous_21)", + "decl": {"start": {"line": 108, "column": 30}, "end": {"line": 108, "column": 31}}, + "loc": {"start": {"line": 108, "column": 61}, "end": {"line": 137, "column": 1}}, + "line": 108 + }, + "22": { + "name": "(anonymous_22)", + "decl": {"start": {"line": 122, "column": 37}, "end": {"line": 122, "column": 38}}, + "loc": {"start": {"line": 122, "column": 71}, "end": {"line": 133, "column": 5}}, + "line": 122 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 93, "column": 8}, "end": {"line": 99, "column": 9}}, + "type": "if", + "locations": [ + {"start": {"line": 93, "column": 8}, "end": {"line": 99, "column": 9}}, + {"start": {"line": 96, "column": 15}, "end": {"line": 99, "column": 9}} + ], + "line": 93 + } + }, + "s": { + "0": 1, + "1": 1, + "2": 1, + "3": 1, + "4": 1, + "5": 1, + "6": 0, + "7": 1, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 1, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 1, + "22": 0, + "23": 0, + "24": 0, + "25": 0, + "26": 0, + "27": 0, + "28": 0, + "29": 1, + "30": 0, + "31": 0, + "32": 0, + "33": 0, + "34": 0, + "35": 0, + "36": 0, + "37": 0, + "38": 0, + "39": 0, + "40": 1, + "41": 1, + "42": 1, + "43": 1, + "44": 1, + "45": 1 + }, + "f": { + "0": 1, + "1": 1, + "2": 1, + "3": 1, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 1, + "22": 1 + }, + "b": {"0": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "fcdf53a5c4a9caadea7cfa11c539530b42a5329d" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\store\\actions\\credential.actions.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\store\\actions\\credential.actions.ts", + "statementMap": { + "0": {"start": {"line": 30, "column": 40}, "end": {"line": 51, "column": 1}}, + "1": {"start": {"line": 31, "column": 2}, "end": {"line": 50, "column": 4}}, + "2": {"start": {"line": 32, "column": 4}, "end": {"line": 32, "column": 42}}, + "3": {"start": {"line": 33, "column": 4}, "end": {"line": 49, "column": 61}}, + "4": {"start": {"line": 35, "column": 50}, "end": {"line": 37, "column": 11}}, + "5": {"start": {"line": 35, "column": 135}, "end": {"line": 37, "column": 9}}, + "6": {"start": {"line": 38, "column": 64}, "end": {"line": 38, "column": 113}}, + "7": {"start": {"line": 39, "column": 63}, "end": {"line": 46, "column": 9}}, + "8": {"start": {"line": 41, "column": 72}, "end": {"line": 43, "column": 13}}, + "9": {"start": {"line": 42, "column": 49}, "end": {"line": 42, "column": 82}}, + "10": {"start": {"line": 44, "column": 12}, "end": {"line": 44, "column": 91}}, + "11": {"start": {"line": 47, "column": 8}, "end": {"line": 47, "column": 85}}, + "12": {"start": {"line": 49, "column": 19}, "end": {"line": 49, "column": 59}}, + "13": {"start": {"line": 53, "column": 41}, "end": {"line": 69, "column": 1}}, + "14": {"start": {"line": 54, "column": 2}, "end": {"line": 68, "column": 4}}, + "15": {"start": {"line": 55, "column": 4}, "end": {"line": 55, "column": 42}}, + "16": {"start": {"line": 56, "column": 21}, "end": {"line": 56, "column": 117}}, + "17": {"start": {"line": 57, "column": 4}, "end": {"line": 67, "column": 62}}, + "18": {"start": {"line": 59, "column": 63}, "end": {"line": 59, "column": 120}}, + "19": {"start": {"line": 60, "column": 8}, "end": {"line": 65, "column": 10}}, + "20": {"start": {"line": 61, "column": 10}, "end": {"line": 64, "column": 12}}, + "21": {"start": {"line": 67, "column": 19}, "end": {"line": 67, "column": 60}}, + "22": {"start": {"line": 71, "column": 42}, "end": {"line": 92, "column": 1}}, + "23": {"start": {"line": 72, "column": 2}, "end": {"line": 91, "column": 4}}, + "24": {"start": {"line": 73, "column": 4}, "end": {"line": 73, "column": 42}}, + "25": {"start": {"line": 74, "column": 4}, "end": {"line": 90, "column": 9}}, + "26": {"start": {"line": 76, "column": 8}, "end": {"line": 85, "column": 9}}, + "27": {"start": {"line": 77, "column": 10}, "end": {"line": 77, "column": 79}}, + "28": {"start": {"line": 78, "column": 10}, "end": {"line": 81, "column": 13}}, + "29": {"start": {"line": 83, "column": 10}, "end": {"line": 83, "column": 53}}, + "30": {"start": {"line": 84, "column": 10}, "end": {"line": 84, "column": 104}}, + "31": {"start": {"line": 88, "column": 8}, "end": {"line": 88, "column": 51}}, + "32": {"start": {"line": 89, "column": 8}, "end": {"line": 89, "column": 102}}, + "33": {"start": {"line": 94, "column": 42}, "end": {"line": 114, "column": 1}}, + "34": {"start": {"line": 95, "column": 2}, "end": {"line": 113, "column": 4}}, + "35": {"start": {"line": 96, "column": 4}, "end": {"line": 96, "column": 42}}, + "36": {"start": {"line": 97, "column": 4}, "end": {"line": 112, "column": 9}}, + "37": {"start": {"line": 99, "column": 8}, "end": {"line": 107, "column": 10}}, + "38": {"start": {"line": 100, "column": 10}, "end": {"line": 106, "column": 11}}, + "39": {"start": {"line": 102, "column": 12}, "end": {"line": 105, "column": 14}}, + "40": {"start": {"line": 110, "column": 8}, "end": {"line": 110, "column": 35}}, + "41": {"start": {"line": 111, "column": 8}, "end": {"line": 111, "column": 51}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 30, "column": 40}, "end": {"line": 30, "column": 41}}, + "loc": {"start": {"line": 30, "column": 102}, "end": {"line": 51, "column": 1}}, + "line": 30 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 31, "column": 9}, "end": {"line": 31, "column": 10}}, + "loc": {"start": {"line": 31, "column": 72}, "end": {"line": 50, "column": 3}}, + "line": 31 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 34, "column": 12}, "end": {"line": 34, "column": 13}}, + "loc": {"start": {"line": 34, "column": 70}, "end": {"line": 48, "column": 7}}, + "line": 34 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 35, "column": 66}, "end": {"line": 35, "column": 67}}, + "loc": {"start": {"line": 35, "column": 135}, "end": {"line": 37, "column": 9}}, + "line": 35 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 40, "column": 26}, "end": {"line": 40, "column": 27}}, + "loc": {"start": {"line": 40, "column": 103}, "end": {"line": 45, "column": 11}}, + "line": 40 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 42, "column": 14}, "end": {"line": 42, "column": 15}}, + "loc": {"start": {"line": 42, "column": 49}, "end": {"line": 42, "column": 82}}, + "line": 42 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 49, "column": 13}, "end": {"line": 49, "column": 14}}, + "loc": {"start": {"line": 49, "column": 19}, "end": {"line": 49, "column": 59}}, + "line": 49 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 53, "column": 41}, "end": {"line": 53, "column": 42}}, + "loc": {"start": {"line": 53, "column": 127}, "end": {"line": 69, "column": 1}}, + "line": 53 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 54, "column": 9}, "end": {"line": 54, "column": 10}}, + "loc": {"start": {"line": 54, "column": 72}, "end": {"line": 68, "column": 3}}, + "line": 54 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 58, "column": 12}, "end": {"line": 58, "column": 13}}, + "loc": {"start": {"line": 58, "column": 36}, "end": {"line": 66, "column": 7}}, + "line": 58 + }, + "10": { + "name": "(anonymous_10)", + "decl": {"start": {"line": 60, "column": 114}, "end": {"line": 60, "column": 115}}, + "loc": {"start": {"line": 61, "column": 10}, "end": {"line": 64, "column": 12}}, + "line": 61 + }, + "11": { + "name": "(anonymous_11)", + "decl": {"start": {"line": 67, "column": 13}, "end": {"line": 67, "column": 14}}, + "loc": {"start": {"line": 67, "column": 19}, "end": {"line": 67, "column": 60}}, + "line": 67 + }, + "12": { + "name": "(anonymous_12)", + "decl": {"start": {"line": 71, "column": 42}, "end": {"line": 71, "column": 43}}, + "loc": {"start": {"line": 71, "column": 126}, "end": {"line": 92, "column": 1}}, + "line": 71 + }, + "13": { + "name": "(anonymous_13)", + "decl": {"start": {"line": 72, "column": 9}, "end": {"line": 72, "column": 10}}, + "loc": {"start": {"line": 72, "column": 72}, "end": {"line": 91, "column": 3}}, + "line": 72 + }, + "14": { + "name": "(anonymous_14)", + "decl": {"start": {"line": 75, "column": 12}, "end": {"line": 75, "column": 13}}, + "loc": {"start": {"line": 75, "column": 36}, "end": {"line": 86, "column": 7}}, + "line": 75 + }, + "15": { + "name": "(anonymous_15)", + "decl": {"start": {"line": 87, "column": 13}, "end": {"line": 87, "column": 14}}, + "loc": {"start": {"line": 87, "column": 19}, "end": {"line": 90, "column": 7}}, + "line": 87 + }, + "16": { + "name": "(anonymous_16)", + "decl": {"start": {"line": 94, "column": 42}, "end": {"line": 94, "column": 43}}, + "loc": {"start": {"line": 94, "column": 141}, "end": {"line": 114, "column": 1}}, + "line": 94 + }, + "17": { + "name": "(anonymous_17)", + "decl": {"start": {"line": 95, "column": 9}, "end": {"line": 95, "column": 10}}, + "loc": {"start": {"line": 95, "column": 72}, "end": {"line": 113, "column": 3}}, + "line": 95 + }, + "18": { + "name": "(anonymous_18)", + "decl": {"start": {"line": 98, "column": 12}, "end": {"line": 98, "column": 13}}, + "loc": {"start": {"line": 98, "column": 42}, "end": {"line": 108, "column": 7}}, + "line": 98 + }, + "19": { + "name": "(anonymous_19)", + "decl": {"start": {"line": 99, "column": 35}, "end": {"line": 99, "column": 36}}, + "loc": {"start": {"line": 100, "column": 10}, "end": {"line": 106, "column": 11}}, + "line": 100 + }, + "20": { + "name": "(anonymous_20)", + "decl": {"start": {"line": 100, "column": 69}, "end": {"line": 100, "column": 70}}, + "loc": {"start": {"line": 102, "column": 12}, "end": {"line": 105, "column": 14}}, + "line": 102 + }, + "21": { + "name": "(anonymous_21)", + "decl": {"start": {"line": 109, "column": 13}, "end": {"line": 109, "column": 14}}, + "loc": {"start": {"line": 109, "column": 31}, "end": {"line": 112, "column": 7}}, + "line": 109 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 76, "column": 8}, "end": {"line": 85, "column": 9}}, + "type": "if", + "locations": [ + {"start": {"line": 76, "column": 8}, "end": {"line": 85, "column": 9}}, + {"start": {"line": 82, "column": 15}, "end": {"line": 85, "column": 9}} + ], + "line": 76 + } + }, + "s": { + "0": 1, + "1": 1, + "2": 1, + "3": 1, + "4": 1, + "5": 1, + "6": 1, + "7": 1, + "8": 1, + "9": 0, + "10": 1, + "11": 1, + "12": 0, + "13": 1, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 0, + "22": 1, + "23": 0, + "24": 0, + "25": 0, + "26": 0, + "27": 0, + "28": 0, + "29": 0, + "30": 0, + "31": 0, + "32": 0, + "33": 1, + "34": 0, + "35": 0, + "36": 0, + "37": 0, + "38": 0, + "39": 0, + "40": 0, + "41": 0 + }, + "f": { + "0": 1, + "1": 1, + "2": 1, + "3": 1, + "4": 1, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 0 + }, + "b": {"0": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "ccdd156c35d01fe3ca38faa376000fb90becece2" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\store\\actions\\user.actions.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\store\\actions\\user.actions.ts", + "statementMap": { + "0": {"start": {"line": 38, "column": 26}, "end": {"line": 51, "column": 1}}, + "1": {"start": {"line": 39, "column": 2}, "end": {"line": 50, "column": 4}}, + "2": {"start": {"line": 40, "column": 4}, "end": {"line": 40, "column": 36}}, + "3": {"start": {"line": 41, "column": 4}, "end": {"line": 49, "column": 9}}, + "4": {"start": {"line": 43, "column": 8}, "end": {"line": 43, "column": 61}}, + "5": {"start": {"line": 44, "column": 8}, "end": {"line": 44, "column": 20}}, + "6": {"start": {"line": 47, "column": 8}, "end": {"line": 47, "column": 45}}, + "7": {"start": {"line": 48, "column": 8}, "end": {"line": 48, "column": 37}}, + "8": {"start": {"line": 53, "column": 24}, "end": {"line": 60, "column": 1}}, + "9": {"start": {"line": 54, "column": 2}, "end": {"line": 59, "column": 4}}, + "10": {"start": {"line": 55, "column": 4}, "end": {"line": 55, "column": 36}}, + "11": {"start": {"line": 56, "column": 4}, "end": {"line": 58, "column": 55}}, + "12": {"start": {"line": 57, "column": 43}, "end": {"line": 57, "column": 94}}, + "13": {"start": {"line": 58, "column": 19}, "end": {"line": 58, "column": 53}}, + "14": {"start": {"line": 62, "column": 29}, "end": {"line": 81, "column": 1}}, + "15": {"start": {"line": 63, "column": 2}, "end": {"line": 80, "column": 4}}, + "16": {"start": {"line": 64, "column": 4}, "end": {"line": 64, "column": 36}}, + "17": {"start": {"line": 65, "column": 33}, "end": {"line": 65, "column": 48}}, + "18": {"start": {"line": 66, "column": 27}, "end": {"line": 70, "column": 5}}, + "19": {"start": {"line": 72, "column": 24}, "end": {"line": 75, "column": 5}}, + "20": {"start": {"line": 77, "column": 4}, "end": {"line": 79, "column": 57}}, + "21": {"start": {"line": 78, "column": 29}, "end": {"line": 78, "column": 81}}, + "22": {"start": {"line": 79, "column": 19}, "end": {"line": 79, "column": 55}}, + "23": {"start": {"line": 83, "column": 21}, "end": {"line": 125, "column": 1}}, + "24": {"start": {"line": 84, "column": 2}, "end": {"line": 124, "column": 4}}, + "25": {"start": {"line": 85, "column": 4}, "end": {"line": 85, "column": 36}}, + "26": {"start": {"line": 86, "column": 4}, "end": {"line": 123, "column": 51}}, + "27": {"start": {"line": 88, "column": 21}, "end": {"line": 88, "column": 38}}, + "28": {"start": {"line": 89, "column": 8}, "end": {"line": 121, "column": 9}}, + "29": {"start": {"line": 90, "column": 30}, "end": {"line": 90, "column": 34}}, + "30": {"start": {"line": 91, "column": 26}, "end": {"line": 91, "column": 36}}, + "31": {"start": {"line": 93, "column": 10}, "end": {"line": 93, "column": 57}}, + "32": {"start": {"line": 94, "column": 38}, "end": {"line": 94, "column": 53}}, + "33": {"start": {"line": 95, "column": 10}, "end": {"line": 99, "column": 11}}, + "34": {"start": {"line": 96, "column": 12}, "end": {"line": 96, "column": 45}}, + "35": {"start": {"line": 97, "column": 12}, "end": {"line": 97, "column": 66}}, + "36": {"start": {"line": 97, "column": 41}, "end": {"line": 97, "column": 64}}, + "37": {"start": {"line": 98, "column": 12}, "end": {"line": 98, "column": 40}}, + "38": {"start": {"line": 100, "column": 10}, "end": {"line": 100, "column": 61}}, + "39": {"start": {"line": 102, "column": 10}, "end": {"line": 102, "column": 40}}, + "40": {"start": {"line": 103, "column": 10}, "end": {"line": 103, "column": 33}}, + "41": {"start": {"line": 104, "column": 44}, "end": {"line": 104, "column": 62}}, + "42": {"start": {"line": 106, "column": 10}, "end": {"line": 109, "column": 11}}, + "43": {"start": {"line": 107, "column": 12}, "end": {"line": 107, "column": 66}}, + "44": {"start": {"line": 107, "column": 41}, "end": {"line": 107, "column": 64}}, + "45": {"start": {"line": 108, "column": 12}, "end": {"line": 108, "column": 46}}, + "46": {"start": {"line": 110, "column": 10}, "end": {"line": 110, "column": 53}}, + "47": {"start": {"line": 111, "column": 10}, "end": {"line": 111, "column": 56}}, + "48": {"start": {"line": 113, "column": 32}, "end": {"line": 113, "column": 59}}, + "49": {"start": {"line": 114, "column": 10}, "end": {"line": 114, "column": 39}}, + "50": {"start": {"line": 116, "column": 10}, "end": {"line": 118, "column": 11}}, + "51": {"start": {"line": 117, "column": 12}, "end": {"line": 117, "column": 63}}, + "52": {"start": {"line": 120, "column": 10}, "end": {"line": 120, "column": 41}}, + "53": {"start": {"line": 123, "column": 19}, "end": {"line": 123, "column": 49}}, + "54": {"start": {"line": 127, "column": 22}, "end": {"line": 134, "column": 1}}, + "55": {"start": {"line": 128, "column": 2}, "end": {"line": 133, "column": 4}}, + "56": {"start": {"line": 130, "column": 4}, "end": {"line": 130, "column": 37}}, + "57": {"start": {"line": 131, "column": 4}, "end": {"line": 131, "column": 40}}, + "58": {"start": {"line": 132, "column": 4}, "end": {"line": 132, "column": 37}}, + "59": {"start": {"line": 137, "column": 26}, "end": {"line": 156, "column": 1}}, + "60": {"start": {"line": 138, "column": 2}, "end": {"line": 155, "column": 4}}, + "61": {"start": {"line": 139, "column": 4}, "end": {"line": 139, "column": 36}}, + "62": {"start": {"line": 142, "column": 4}, "end": {"line": 154, "column": 9}}, + "63": {"start": {"line": 144, "column": 8}, "end": {"line": 144, "column": 63}}, + "64": {"start": {"line": 145, "column": 8}, "end": {"line": 145, "column": 41}}, + "65": {"start": {"line": 146, "column": 8}, "end": {"line": 146, "column": 47}}, + "66": {"start": {"line": 147, "column": 8}, "end": {"line": 147, "column": 32}}, + "67": {"start": {"line": 149, "column": 8}, "end": {"line": 149, "column": 44}}, + "68": {"start": {"line": 150, "column": 8}, "end": {"line": 150, "column": 41}}, + "69": {"start": {"line": 153, "column": 8}, "end": {"line": 153, "column": 45}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 38, "column": 26}, "end": {"line": 38, "column": 27}}, + "loc": {"start": {"line": 38, "column": 104}, "end": {"line": 51, "column": 1}}, + "line": 38 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 39, "column": 9}, "end": {"line": 39, "column": 10}}, + "loc": {"start": {"line": 39, "column": 72}, "end": {"line": 50, "column": 3}}, + "line": 39 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 42, "column": 12}, "end": {"line": 42, "column": 13}}, + "loc": {"start": {"line": 42, "column": 29}, "end": {"line": 45, "column": 7}}, + "line": 42 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 46, "column": 13}, "end": {"line": 46, "column": 14}}, + "loc": {"start": {"line": 46, "column": 31}, "end": {"line": 49, "column": 7}}, + "line": 46 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 53, "column": 24}, "end": {"line": 53, "column": 25}}, + "loc": {"start": {"line": 53, "column": 86}, "end": {"line": 60, "column": 1}}, + "line": 53 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 54, "column": 9}, "end": {"line": 54, "column": 10}}, + "loc": {"start": {"line": 54, "column": 72}, "end": {"line": 59, "column": 3}}, + "line": 54 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 57, "column": 12}, "end": {"line": 57, "column": 13}}, + "loc": {"start": {"line": 57, "column": 43}, "end": {"line": 57, "column": 94}}, + "line": 57 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 58, "column": 13}, "end": {"line": 58, "column": 14}}, + "loc": {"start": {"line": 58, "column": 19}, "end": {"line": 58, "column": 53}}, + "line": 58 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 62, "column": 29}, "end": {"line": 62, "column": 30}}, + "loc": {"start": {"line": 62, "column": 115}, "end": {"line": 81, "column": 1}}, + "line": 62 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 63, "column": 9}, "end": {"line": 63, "column": 10}}, + "loc": {"start": {"line": 63, "column": 102}, "end": {"line": 80, "column": 3}}, + "line": 63 + }, + "10": { + "name": "(anonymous_10)", + "decl": {"start": {"line": 78, "column": 12}, "end": {"line": 78, "column": 13}}, + "loc": {"start": {"line": 78, "column": 29}, "end": {"line": 78, "column": 81}}, + "line": 78 + }, + "11": { + "name": "(anonymous_11)", + "decl": {"start": {"line": 79, "column": 13}, "end": {"line": 79, "column": 14}}, + "loc": {"start": {"line": 79, "column": 19}, "end": {"line": 79, "column": 55}}, + "line": 79 + }, + "12": { + "name": "(anonymous_12)", + "decl": {"start": {"line": 83, "column": 21}, "end": {"line": 83, "column": 22}}, + "loc": {"start": {"line": 83, "column": 97}, "end": {"line": 125, "column": 1}}, + "line": 83 + }, + "13": { + "name": "(anonymous_13)", + "decl": {"start": {"line": 84, "column": 9}, "end": {"line": 84, "column": 10}}, + "loc": {"start": {"line": 84, "column": 102}, "end": {"line": 124, "column": 3}}, + "line": 84 + }, + "14": { + "name": "(anonymous_14)", + "decl": {"start": {"line": 87, "column": 12}, "end": {"line": 87, "column": 13}}, + "loc": {"start": {"line": 87, "column": 49}, "end": {"line": 122, "column": 7}}, + "line": 87 + }, + "15": { + "name": "(anonymous_15)", + "decl": {"start": {"line": 97, "column": 30}, "end": {"line": 97, "column": 31}}, + "loc": {"start": {"line": 97, "column": 41}, "end": {"line": 97, "column": 64}}, + "line": 97 + }, + "16": { + "name": "(anonymous_16)", + "decl": {"start": {"line": 107, "column": 30}, "end": {"line": 107, "column": 31}}, + "loc": {"start": {"line": 107, "column": 41}, "end": {"line": 107, "column": 64}}, + "line": 107 + }, + "17": { + "name": "(anonymous_17)", + "decl": {"start": {"line": 123, "column": 13}, "end": {"line": 123, "column": 14}}, + "loc": {"start": {"line": 123, "column": 19}, "end": {"line": 123, "column": 49}}, + "line": 123 + }, + "18": { + "name": "(anonymous_18)", + "decl": {"start": {"line": 127, "column": 22}, "end": {"line": 127, "column": 23}}, + "loc": {"start": {"line": 127, "column": 84}, "end": {"line": 134, "column": 1}}, + "line": 127 + }, + "19": { + "name": "(anonymous_19)", + "decl": {"start": {"line": 128, "column": 9}, "end": {"line": 128, "column": 10}}, + "loc": {"start": {"line": 128, "column": 72}, "end": {"line": 133, "column": 3}}, + "line": 128 + }, + "20": { + "name": "(anonymous_20)", + "decl": {"start": {"line": 137, "column": 26}, "end": {"line": 137, "column": 27}}, + "loc": {"start": {"line": 137, "column": 102}, "end": {"line": 156, "column": 1}}, + "line": 137 + }, + "21": { + "name": "(anonymous_21)", + "decl": {"start": {"line": 138, "column": 9}, "end": {"line": 138, "column": 10}}, + "loc": {"start": {"line": 138, "column": 72}, "end": {"line": 155, "column": 3}}, + "line": 138 + }, + "22": { + "name": "(anonymous_22)", + "decl": {"start": {"line": 143, "column": 12}, "end": {"line": 143, "column": 13}}, + "loc": {"start": {"line": 143, "column": 18}, "end": {"line": 151, "column": 7}}, + "line": 143 + }, + "23": { + "name": "(anonymous_23)", + "decl": {"start": {"line": 152, "column": 13}, "end": {"line": 152, "column": 14}}, + "loc": {"start": {"line": 152, "column": 19}, "end": {"line": 154, "column": 7}}, + "line": 152 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 89, "column": 8}, "end": {"line": 121, "column": 9}}, + "type": "if", + "locations": [ + {"start": {"line": 89, "column": 8}, "end": {"line": 121, "column": 9}}, + {"start": {"line": 119, "column": 15}, "end": {"line": 121, "column": 9}} + ], + "line": 89 + }, + "1": { + "loc": {"start": {"line": 95, "column": 17}, "end": {"line": 95, "column": 78}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 95, "column": 17}, "end": {"line": 95, "column": 38}}, + {"start": {"line": 95, "column": 42}, "end": {"line": 95, "column": 78}} + ], + "line": 95 + }, + "2": { + "loc": {"start": {"line": 106, "column": 17}, "end": {"line": 106, "column": 91}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 106, "column": 17}, "end": {"line": 106, "column": 51}}, + {"start": {"line": 106, "column": 55}, "end": {"line": 106, "column": 91}} + ], + "line": 106 + }, + "3": { + "loc": {"start": {"line": 116, "column": 10}, "end": {"line": 118, "column": 11}}, + "type": "if", + "locations": [ + {"start": {"line": 116, "column": 10}, "end": {"line": 118, "column": 11}}, + {"start": {}, "end": {}} + ], + "line": 116 + } + }, + "s": { + "0": 1, + "1": 1, + "2": 1, + "3": 1, + "4": 1, + "5": 1, + "6": 0, + "7": 0, + "8": 1, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 1, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 0, + "22": 0, + "23": 1, + "24": 1, + "25": 1, + "26": 1, + "27": 1, + "28": 1, + "29": 1, + "30": 1, + "31": 1, + "32": 1, + "33": 1, + "34": 0, + "35": 0, + "36": 0, + "37": 0, + "38": 1, + "39": 1, + "40": 1, + "41": 1, + "42": 1, + "43": 1, + "44": 1, + "45": 1, + "46": 1, + "47": 1, + "48": 1, + "49": 1, + "50": 1, + "51": 0, + "52": 0, + "53": 0, + "54": 1, + "55": 0, + "56": 0, + "57": 0, + "58": 0, + "59": 1, + "60": 0, + "61": 0, + "62": 0, + "63": 0, + "64": 0, + "65": 0, + "66": 0, + "67": 0, + "68": 0, + "69": 0 + }, + "f": { + "0": 1, + "1": 1, + "2": 1, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 1, + "13": 1, + "14": 1, + "15": 0, + "16": 1, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 0, + "22": 0, + "23": 0 + }, + "b": {"0": [1, 0], "1": [1, 0], "2": [2, 1], "3": [0, 1]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "fb8a0cc40d9e38a675352c2103da0a173cfb6da7" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\store\\reducers\\contact.reducer.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\store\\reducers\\contact.reducer.ts", + "statementMap": { + "0": {"start": {"line": 22, "column": 36}, "end": {"line": 25, "column": 1}}, + "1": {"start": {"line": 27, "column": 23}, "end": {"line": 112, "column": 1}}, + "2": {"start": {"line": 28, "column": 2}, "end": {"line": 111, "column": 3}}, + "3": {"start": {"line": 30, "column": 6}, "end": {"line": 33, "column": 8}}, + "4": {"start": {"line": 36, "column": 6}, "end": {"line": 40, "column": 8}}, + "5": {"start": {"line": 43, "column": 6}, "end": {"line": 46, "column": 8}}, + "6": {"start": {"line": 49, "column": 6}, "end": {"line": 53, "column": 8}}, + "7": {"start": {"line": 56, "column": 6}, "end": {"line": 59, "column": 8}}, + "8": {"start": {"line": 62, "column": 6}, "end": {"line": 68, "column": 8}}, + "9": {"start": {"line": 64, "column": 67}, "end": {"line": 64, "column": 99}}, + "10": {"start": {"line": 71, "column": 6}, "end": {"line": 74, "column": 8}}, + "11": {"start": {"line": 77, "column": 6}, "end": {"line": 81, "column": 8}}, + "12": {"start": {"line": 79, "column": 63}, "end": {"line": 79, "column": 92}}, + "13": {"start": {"line": 84, "column": 6}, "end": {"line": 87, "column": 8}}, + "14": {"start": {"line": 90, "column": 6}, "end": {"line": 98, "column": 8}}, + "15": {"start": {"line": 94, "column": 12}, "end": {"line": 94, "column": 139}}, + "16": {"start": {"line": 101, "column": 6}, "end": {"line": 104, "column": 8}}, + "17": {"start": {"line": 107, "column": 6}, "end": {"line": 107, "column": 26}}, + "18": {"start": {"line": 110, "column": 6}, "end": {"line": 110, "column": 19}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 27, "column": 23}, "end": {"line": 27, "column": 24}}, + "loc": {"start": {"line": 27, "column": 107}, "end": {"line": 112, "column": 1}}, + "line": 27 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 64, "column": 44}, "end": {"line": 64, "column": 45}}, + "loc": {"start": {"line": 64, "column": 67}, "end": {"line": 64, "column": 99}}, + "line": 64 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 79, "column": 40}, "end": {"line": 79, "column": 41}}, + "loc": {"start": {"line": 79, "column": 63}, "end": {"line": 79, "column": 92}}, + "line": 79 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 93, "column": 15}, "end": {"line": 93, "column": 16}}, + "loc": {"start": {"line": 94, "column": 12}, "end": {"line": 94, "column": 139}}, + "line": 94 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 27, "column": 24}, "end": {"line": 27, "column": 59}}, + "type": "default-arg", + "locations": [{"start": {"line": 27, "column": 47}, "end": {"line": 27, "column": 59}}], + "line": 27 + }, + "1": { + "loc": {"start": {"line": 28, "column": 2}, "end": {"line": 111, "column": 3}}, + "type": "switch", + "locations": [ + {"start": {"line": 29, "column": 4}, "end": {"line": 34, "column": 5}}, + {"start": {"line": 35, "column": 4}, "end": {"line": 41, "column": 5}}, + {"start": {"line": 42, "column": 4}, "end": {"line": 47, "column": 5}}, + {"start": {"line": 48, "column": 4}, "end": {"line": 54, "column": 5}}, + {"start": {"line": 55, "column": 4}, "end": {"line": 60, "column": 5}}, + {"start": {"line": 61, "column": 4}, "end": {"line": 69, "column": 5}}, + {"start": {"line": 70, "column": 4}, "end": {"line": 75, "column": 5}}, + {"start": {"line": 76, "column": 4}, "end": {"line": 82, "column": 5}}, + {"start": {"line": 83, "column": 4}, "end": {"line": 88, "column": 5}}, + {"start": {"line": 89, "column": 4}, "end": {"line": 99, "column": 5}}, + {"start": {"line": 100, "column": 4}, "end": {"line": 105, "column": 5}}, + {"start": {"line": 106, "column": 4}, "end": {"line": 108, "column": 5}}, + {"start": {"line": 109, "column": 4}, "end": {"line": 110, "column": 19}} + ], + "line": 28 + }, + "2": { + "loc": {"start": {"line": 94, "column": 12}, "end": {"line": 94, "column": 139}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 94, "column": 54}, "end": {"line": 94, "column": 129}}, + {"start": {"line": 94, "column": 132}, "end": {"line": 94, "column": 139}} + ], + "line": 94 + } + }, + "s": { + "0": 1, + "1": 1, + "2": 14, + "3": 1, + "4": 1, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 12 + }, + "f": {"0": 14, "1": 0, "2": 0, "3": 0}, + "b": {"0": [3], "1": [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12], "2": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "e1ff4f43de40b0a02650ea756b03b43bcac05b14" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\store\\reducers\\credential.reducer.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\store\\reducers\\credential.reducer.ts", + "statementMap": { + "0": {"start": {"line": 17, "column": 39}, "end": {"line": 20, "column": 1}}, + "1": {"start": {"line": 22, "column": 26}, "end": {"line": 90, "column": 1}}, + "2": {"start": {"line": 25, "column": 2}, "end": {"line": 89, "column": 3}}, + "3": {"start": {"line": 27, "column": 6}, "end": {"line": 30, "column": 8}}, + "4": {"start": {"line": 33, "column": 6}, "end": {"line": 37, "column": 8}}, + "5": {"start": {"line": 40, "column": 6}, "end": {"line": 43, "column": 8}}, + "6": {"start": {"line": 46, "column": 6}, "end": {"line": 50, "column": 8}}, + "7": {"start": {"line": 53, "column": 6}, "end": {"line": 56, "column": 8}}, + "8": {"start": {"line": 59, "column": 6}, "end": {"line": 63, "column": 8}}, + "9": {"start": {"line": 61, "column": 94}, "end": {"line": 61, "column": 120}}, + "10": {"start": {"line": 66, "column": 6}, "end": {"line": 69, "column": 8}}, + "11": {"start": {"line": 72, "column": 6}, "end": {"line": 76, "column": 8}}, + "12": {"start": {"line": 79, "column": 6}, "end": {"line": 82, "column": 8}}, + "13": {"start": {"line": 85, "column": 6}, "end": {"line": 85, "column": 26}}, + "14": {"start": {"line": 88, "column": 6}, "end": {"line": 88, "column": 19}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 22, "column": 26}, "end": {"line": 22, "column": 27}}, + "loc": {"start": {"line": 22, "column": 119}, "end": {"line": 90, "column": 1}}, + "line": 22 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 61, "column": 66}, "end": {"line": 61, "column": 67}}, + "loc": {"start": {"line": 61, "column": 94}, "end": {"line": 61, "column": 120}}, + "line": 61 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 22, "column": 27}, "end": {"line": 22, "column": 65}}, + "type": "default-arg", + "locations": [{"start": {"line": 22, "column": 53}, "end": {"line": 22, "column": 65}}], + "line": 22 + }, + "1": { + "loc": {"start": {"line": 25, "column": 2}, "end": {"line": 89, "column": 3}}, + "type": "switch", + "locations": [ + {"start": {"line": 26, "column": 4}, "end": {"line": 31, "column": 5}}, + {"start": {"line": 32, "column": 4}, "end": {"line": 38, "column": 5}}, + {"start": {"line": 39, "column": 4}, "end": {"line": 44, "column": 5}}, + {"start": {"line": 45, "column": 4}, "end": {"line": 51, "column": 5}}, + {"start": {"line": 52, "column": 4}, "end": {"line": 57, "column": 5}}, + {"start": {"line": 58, "column": 4}, "end": {"line": 64, "column": 5}}, + {"start": {"line": 65, "column": 4}, "end": {"line": 70, "column": 5}}, + {"start": {"line": 71, "column": 4}, "end": {"line": 77, "column": 5}}, + {"start": {"line": 78, "column": 4}, "end": {"line": 83, "column": 5}}, + {"start": {"line": 84, "column": 4}, "end": {"line": 86, "column": 5}}, + {"start": {"line": 87, "column": 4}, "end": {"line": 88, "column": 19}} + ], + "line": 25 + } + }, + "s": {"0": 1, "1": 1, "2": 14, "3": 1, "4": 1, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0, "10": 0, "11": 0, "12": 0, "13": 0, "14": 12}, + "f": {"0": 14, "1": 0}, + "b": {"0": [3], "1": [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 12]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "76293a32e24561eb5df244f255ee0ce6c92ef15b" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\store\\reducers\\user.reducer.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\store\\reducers\\user.reducer.ts", + "statementMap": { + "0": {"start": {"line": 19, "column": 33}, "end": {"line": 23, "column": 1}}, + "1": {"start": {"line": 25, "column": 20}, "end": {"line": 111, "column": 1}}, + "2": {"start": {"line": 28, "column": 2}, "end": {"line": 110, "column": 3}}, + "3": {"start": {"line": 30, "column": 6}, "end": {"line": 33, "column": 8}}, + "4": {"start": {"line": 36, "column": 6}, "end": {"line": 40, "column": 8}}, + "5": {"start": {"line": 43, "column": 6}, "end": {"line": 46, "column": 8}}, + "6": {"start": {"line": 49, "column": 6}, "end": {"line": 53, "column": 8}}, + "7": {"start": {"line": 56, "column": 6}, "end": {"line": 59, "column": 8}}, + "8": {"start": {"line": 62, "column": 6}, "end": {"line": 66, "column": 8}}, + "9": {"start": {"line": 69, "column": 6}, "end": {"line": 73, "column": 8}}, + "10": {"start": {"line": 76, "column": 6}, "end": {"line": 79, "column": 8}}, + "11": {"start": {"line": 82, "column": 6}, "end": {"line": 87, "column": 8}}, + "12": {"start": {"line": 90, "column": 6}, "end": {"line": 93, "column": 8}}, + "13": {"start": {"line": 96, "column": 6}, "end": {"line": 96, "column": 41}}, + "14": {"start": {"line": 97, "column": 6}, "end": {"line": 100, "column": 8}}, + "15": {"start": {"line": 103, "column": 6}, "end": {"line": 106, "column": 8}}, + "16": {"start": {"line": 109, "column": 6}, "end": {"line": 109, "column": 19}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 25, "column": 20}, "end": {"line": 25, "column": 21}}, + "loc": {"start": {"line": 25, "column": 95}, "end": {"line": 111, "column": 1}}, + "line": 25 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 25, "column": 21}, "end": {"line": 25, "column": 53}}, + "type": "default-arg", + "locations": [{"start": {"line": 25, "column": 41}, "end": {"line": 25, "column": 53}}], + "line": 25 + }, + "1": { + "loc": {"start": {"line": 28, "column": 2}, "end": {"line": 110, "column": 3}}, + "type": "switch", + "locations": [ + {"start": {"line": 29, "column": 4}, "end": {"line": 34, "column": 5}}, + {"start": {"line": 35, "column": 4}, "end": {"line": 41, "column": 5}}, + {"start": {"line": 42, "column": 4}, "end": {"line": 47, "column": 5}}, + {"start": {"line": 48, "column": 4}, "end": {"line": 54, "column": 5}}, + {"start": {"line": 55, "column": 4}, "end": {"line": 60, "column": 5}}, + {"start": {"line": 61, "column": 4}, "end": {"line": 67, "column": 5}}, + {"start": {"line": 68, "column": 4}, "end": {"line": 74, "column": 5}}, + {"start": {"line": 75, "column": 4}, "end": {"line": 80, "column": 5}}, + {"start": {"line": 81, "column": 4}, "end": {"line": 88, "column": 5}}, + {"start": {"line": 89, "column": 4}, "end": {"line": 94, "column": 5}}, + {"start": {"line": 95, "column": 4}, "end": {"line": 101, "column": 5}}, + {"start": {"line": 102, "column": 4}, "end": {"line": 107, "column": 5}}, + {"start": {"line": 108, "column": 4}, "end": {"line": 109, "column": 19}} + ], + "line": 28 + } + }, + "s": { + "0": 1, + "1": 1, + "2": 14, + "3": 2, + "4": 1, + "5": 0, + "6": 0, + "7": 0, + "8": 4, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 7 + }, + "f": {"0": 14}, + "b": {"0": [3], "1": [2, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 7]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "084773d3f1c3dbd7213a77c1349ead28996e4d5d" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\colors.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\colors.ts", + "statementMap": { + "0": {"start": {"line": 5, "column": 55}, "end": {"line": 10, "column": 1}}, + "1": {"start": {"line": 14, "column": 46}, "end": {"line": 17, "column": 1}}, + "2": {"start": {"line": 21, "column": 53}, "end": {"line": 23, "column": 1}}, + "3": {"start": {"line": 27, "column": 47}, "end": {"line": 30, "column": 1}}, + "4": {"start": {"line": 34, "column": 49}, "end": {"line": 40, "column": 1}}, + "5": {"start": {"line": 49, "column": 63}, "end": {"line": 70, "column": 1}}, + "6": {"start": {"line": 74, "column": 81}, "end": {"line": 87, "column": 1}}, + "7": {"start": {"line": 91, "column": 43}, "end": {"line": 96, "column": 1}}, + "8": {"start": {"line": 98, "column": 63}, "end": {"line": 105, "column": 1}}, + "9": {"start": {"line": 109, "column": 49}, "end": {"line": 111, "column": 1}}, + "10": {"start": {"line": 115, "column": 67}, "end": {"line": 118, "column": 1}}, + "11": {"start": {"line": 123, "column": 63}, "end": {"line": 125, "column": 1}}, + "12": {"start": {"line": 129, "column": 43}, "end": {"line": 131, "column": 1}}, + "13": {"start": {"line": 135, "column": 45}, "end": {"line": 138, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, "11": 1, "12": 1, "13": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "c6ce6b73913b0909ef4d9c1a5533e553db024af0" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\typography.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\typography.ts", + "statementMap": { + "0": {"start": {"line": 5, "column": 50}, "end": {"line": 14, "column": 1}}, + "1": {"start": {"line": 18, "column": 54}, "end": {"line": 27, "column": 1}}, + "2": {"start": {"line": 31, "column": 58}, "end": {"line": 43, "column": 1}}, + "3": {"start": {"line": 59, "column": 55}, "end": {"line": 133, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "dbc348c81b278ecb57293a9c4f209e8fb562dc4f" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "915e1ea07d65e3157a94721eada02b7a8dccfc0b" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\buttons\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\buttons\\index.ts", + "statementMap": { + "0": {"start": {"line": 6, "column": 54}, "end": {"line": 8, "column": 1}}, + "1": {"start": {"line": 10, "column": 54}, "end": {"line": 13, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "090af4a307bba0dcbca9b59a6800251f1b98694f" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "b18856895bc26bfd6d4975508bfb5a22103b9a6e" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIAlert\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIAlert\\index.ts", + "statementMap": { + "0": {"start": {"line": 8, "column": 39}, "end": {"line": 10, "column": 1}}, + "1": {"start": {"line": 12, "column": 46}, "end": {"line": 18, "column": 1}}, + "2": {"start": {"line": 20, "column": 41}, "end": {"line": 25, "column": 1}}, + "3": {"start": {"line": 27, "column": 45}, "end": {"line": 32, "column": 1}}, + "4": {"start": {"line": 34, "column": 36}, "end": {"line": 40, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1, "4": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "ebde145ef86bb09d8d657b54327d07976042d44c" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIButtonsContainer\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIButtonsContainer\\index.ts", + "statementMap": {"0": {"start": {"line": 3, "column": 47}, "end": {"line": 5, "column": 1}}}, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "a0b41755866232fe1b981b317a453c887ec468c5" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSICheckbox\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSICheckbox\\index.tsx", + "statementMap": { + "0": {"start": {"line": 5, "column": 52}, "end": {"line": 12, "column": 1}}, + "1": {"start": {"line": 14, "column": 50}, "end": {"line": 20, "column": 1}}, + "2": {"start": {"line": 23, "column": 47}, "end": {"line": 26, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "31c1a515fcc5fe18b3fea0a94383a709236f0457" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIConnectionDetailsView\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIConnectionDetailsView\\index.ts", + "statementMap": { + "0": {"start": {"line": 7, "column": 60}, "end": {"line": 9, "column": 1}}, + "1": {"start": {"line": 11, "column": 58}, "end": {"line": 14, "column": 1}}, + "2": {"start": {"line": 16, "column": 58}, "end": {"line": 18, "column": 1}}, + "3": {"start": {"line": 20, "column": 62}, "end": {"line": 25, "column": 1}}, + "4": {"start": {"line": 27, "column": 57}, "end": {"line": 30, "column": 1}}, + "5": {"start": {"line": 32, "column": 55}, "end": {"line": 36, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1, "4": 1, "5": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "ee6cd81cdcb139b476e4836d96305738e7a7465d" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIContactViewItem\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIContactViewItem\\index.ts", + "statementMap": { + "0": {"start": {"line": 7, "column": 49}, "end": {"line": 9, "column": 1}}, + "1": {"start": {"line": 11, "column": 58}, "end": {"line": 15, "column": 1}}, + "2": {"start": {"line": 17, "column": 53}, "end": {"line": 22, "column": 1}}, + "3": {"start": {"line": 24, "column": 63}, "end": {"line": 26, "column": 1}}, + "4": {"start": {"line": 28, "column": 57}, "end": {"line": 30, "column": 1}}, + "5": {"start": {"line": 32, "column": 55}, "end": {"line": 34, "column": 4}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1, "4": 1, "5": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "03f59c0dd6ee638cc5839d98dd7e9d11134f1efc" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSICredentialDetailsView\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSICredentialDetailsView\\index.ts", + "statementMap": { + "0": {"start": {"line": 6, "column": 55}, "end": {"line": 9, "column": 1}}, + "1": {"start": {"line": 11, "column": 61}, "end": {"line": 17, "column": 1}}, + "2": {"start": {"line": 18, "column": 64}, "end": {"line": 21, "column": 1}}, + "3": {"start": {"line": 23, "column": 62}, "end": {"line": 25, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "4b71589da8572dcc9bf6eb697759cc7ba98eabab" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSICredentialRequiredViewItem\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSICredentialRequiredViewItem\\index.ts", + "statementMap": { + "0": {"start": {"line": 7, "column": 60}, "end": {"line": 9, "column": 1}}, + "1": {"start": {"line": 11, "column": 64}, "end": {"line": 14, "column": 1}}, + "2": {"start": {"line": 16, "column": 73}, "end": {"line": 18, "column": 1}}, + "3": {"start": {"line": 20, "column": 75}, "end": {"line": 23, "column": 1}}, + "4": {"start": {"line": 25, "column": 69}, "end": {"line": 28, "column": 1}}, + "5": {"start": {"line": 30, "column": 67}, "end": {"line": 32, "column": 1}}, + "6": {"start": {"line": 34, "column": 77}, "end": {"line": 36, "column": 1}}, + "7": {"start": {"line": 38, "column": 71}, "end": {"line": 40, "column": 1}}, + "8": {"start": {"line": 42, "column": 69}, "end": {"line": 45, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "399c6a7bb8ab734d47eb773cc0802e0932fde096" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSICredentialSelectTypeViewItem\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSICredentialSelectTypeViewItem\\index.ts", + "statementMap": { + "0": {"start": {"line": 3, "column": 66}, "end": {"line": 5, "column": 1}}, + "1": {"start": {"line": 7, "column": 74}, "end": {"line": 11, "column": 1}}, + "2": {"start": {"line": 13, "column": 69}, "end": {"line": 15, "column": 1}}, + "3": {"start": {"line": 17, "column": 73}, "end": {"line": 19, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "f9f0422844d07a5f54825ec50ab50599ed28bf4d" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSICredentialSelectViewItem\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSICredentialSelectViewItem\\index.ts", + "statementMap": { + "0": {"start": {"line": 3, "column": 62}, "end": {"line": 5, "column": 1}}, + "1": {"start": {"line": 7, "column": 67}, "end": {"line": 10, "column": 1}}, + "2": {"start": {"line": 12, "column": 70}, "end": {"line": 16, "column": 1}}, + "3": {"start": {"line": 18, "column": 66}, "end": {"line": 22, "column": 1}}, + "4": {"start": {"line": 24, "column": 65}, "end": {"line": 26, "column": 1}}, + "5": {"start": {"line": 28, "column": 69}, "end": {"line": 30, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1, "4": 1, "5": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "3b170bf61fc7df4fca2fddffb00baa0f001022b8" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSICredentialViewItem\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSICredentialViewItem\\index.ts", + "statementMap": { + "0": {"start": {"line": 6, "column": 52}, "end": {"line": 8, "column": 1}}, + "1": {"start": {"line": 10, "column": 62}, "end": {"line": 12, "column": 1}}, + "2": {"start": {"line": 14, "column": 64}, "end": {"line": 16, "column": 1}}, + "3": {"start": {"line": 18, "column": 65}, "end": {"line": 20, "column": 1}}, + "4": {"start": {"line": 22, "column": 58}, "end": {"line": 26, "column": 1}}, + "5": {"start": {"line": 28, "column": 55}, "end": {"line": 30, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1, "4": 1, "5": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "9eadfc4da9166723c5dd7cb9856204e40f025aaf" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIDropDownList\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIDropDownList\\index.ts", + "statementMap": {"0": {"start": {"line": 5, "column": 46}, "end": {"line": 10, "column": 1}}}, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "044ad5c1668bb01016d03e50d8f75c9cc60c79a0" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIDropDownListItem\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIDropDownListItem\\index.ts", + "statementMap": { + "0": {"start": {"line": 7, "column": 50}, "end": {"line": 10, "column": 1}}, + "1": {"start": {"line": 12, "column": 57}, "end": {"line": 14, "column": 1}}, + "2": {"start": {"line": 16, "column": 54}, "end": {"line": 21, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "94f6eed20eb13b1a49c1621233bfade16c87fcaa" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIHeaderBar\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIHeaderBar\\index.ts", + "statementMap": { + "0": {"start": {"line": 10, "column": 43}, "end": {"line": 16, "column": 1}}, + "1": {"start": {"line": 13, "column": 51}, "end": {"line": 13, "column": 83}}, + "2": {"start": {"line": 18, "column": 50}, "end": {"line": 20, "column": 1}}, + "3": {"start": {"line": 22, "column": 54}, "end": {"line": 24, "column": 1}}, + "4": {"start": {"line": 27, "column": 42}, "end": {"line": 32, "column": 1}}, + "5": {"start": {"line": 34, "column": 51}, "end": {"line": 36, "column": 1}}, + "6": {"start": {"line": 39, "column": 42}, "end": {"line": 42, "column": 1}}, + "7": {"start": {"line": 44, "column": 51}, "end": {"line": 49, "column": 1}}, + "8": {"start": {"line": 52, "column": 54}, "end": {"line": 58, "column": 1}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 13, "column": 25}, "end": {"line": 13, "column": 26}}, + "loc": {"start": {"line": 13, "column": 51}, "end": {"line": 13, "column": 83}}, + "line": 13 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 13, "column": 51}, "end": {"line": 13, "column": 83}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 13, "column": 70}, "end": {"line": 13, "column": 75}}, + {"start": {"line": 13, "column": 78}, "end": {"line": 13, "column": 83}} + ], + "line": 13 + } + }, + "s": {"0": 1, "1": 112, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1}, + "f": {"0": 112}, + "b": {"0": [0, 112]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "1dbd5db599ca44859f4847b449059c2f2e791dab" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIIdentitiesView\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIIdentitiesView\\index.ts", + "statementMap": {"0": {"start": {"line": 5, "column": 48}, "end": {"line": 7, "column": 1}}}, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "f35f66a35ee50bcd225b4418d8ebd12cfc6427f8" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIIdentityViewItem\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIIdentityViewItem\\index.tsx", + "statementMap": { + "0": {"start": {"line": 3, "column": 50}, "end": {"line": 5, "column": 1}}, + "1": {"start": {"line": 7, "column": 64}, "end": {"line": 9, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "7bac18c3954747b98ec77a236aec4f58daa2b392" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIImageField\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIImageField\\index.ts", + "statementMap": { + "0": {"start": {"line": 6, "column": 44}, "end": {"line": 9, "column": 1}}, + "1": {"start": {"line": 11, "column": 50}, "end": {"line": 13, "column": 1}}, + "2": {"start": {"line": 15, "column": 51}, "end": {"line": 20, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "386aec90565bb43bd3de6613537a4be73b24ec09" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSINavigationBar\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSINavigationBar\\index.ts", + "statementMap": { + "0": {"start": {"line": 8, "column": 44}, "end": {"line": 11, "column": 1}}, + "1": {"start": {"line": 13, "column": 47}, "end": {"line": 19, "column": 1}}, + "2": {"start": {"line": 21, "column": 55}, "end": {"line": 23, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "d43d3078f65b71a09553cfc5f51a0ff7ad1e36d2" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIPinCode\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIPinCode\\index.ts", + "statementMap": { + "0": {"start": {"line": 7, "column": 41}, "end": {"line": 10, "column": 1}}, + "1": {"start": {"line": 12, "column": 49}, "end": {"line": 16, "column": 1}}, + "2": {"start": {"line": 18, "column": 48}, "end": {"line": 23, "column": 1}}, + "3": {"start": {"line": 25, "column": 48}, "end": {"line": 29, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "77cc5434a334f1a2462cc2ca1fd425584733603e" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIPinCodeSegment\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIPinCodeSegment\\index.ts", + "statementMap": { + "0": {"start": {"line": 7, "column": 56}, "end": {"line": 10, "column": 1}}, + "1": {"start": {"line": 12, "column": 52}, "end": {"line": 17, "column": 1}}, + "2": {"start": {"line": 19, "column": 43}, "end": {"line": 21, "column": 1}}, + "3": {"start": {"line": 23, "column": 62}, "end": {"line": 26, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "4dd401afb36c037297014d1bffa257bd53d9f354" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIPopup\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIPopup\\index.ts", + "statementMap": { + "0": {"start": {"line": 8, "column": 39}, "end": {"line": 10, "column": 1}}, + "1": {"start": {"line": 12, "column": 45}, "end": {"line": 15, "column": 1}}, + "2": {"start": {"line": 17, "column": 44}, "end": {"line": 21, "column": 1}}, + "3": {"start": {"line": 23, "column": 46}, "end": {"line": 26, "column": 1}}, + "4": {"start": {"line": 28, "column": 44}, "end": {"line": 30, "column": 1}}, + "5": {"start": {"line": 32, "column": 49}, "end": {"line": 36, "column": 1}}, + "6": {"start": {"line": 38, "column": 52}, "end": {"line": 40, "column": 1}}, + "7": {"start": {"line": 42, "column": 41}, "end": {"line": 45, "column": 1}}, + "8": {"start": {"line": 47, "column": 46}, "end": {"line": 51, "column": 1}}, + "9": {"start": {"line": 53, "column": 47}, "end": {"line": 56, "column": 1}}, + "10": {"start": {"line": 58, "column": 50}, "end": {"line": 61, "column": 1}}, + "11": {"start": {"line": 63, "column": 46}, "end": {"line": 68, "column": 1}}, + "12": {"start": {"line": 70, "column": 39}, "end": {"line": 72, "column": 4}}, + "13": {"start": {"line": 74, "column": 45}, "end": {"line": 76, "column": 4}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, "11": 1, "12": 1, "13": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "1914764209928d519ff53a7453bd8773dbe3f7b1" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIPopupModal\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIPopupModal\\index.ts", + "statementMap": {"0": {"start": {"line": 3, "column": 56}, "end": {"line": 5, "column": 1}}}, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "8d79778f2c192ed06939976ef7ace5980b59e7ca" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIProfileIcon\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIProfileIcon\\index.ts", + "statementMap": {"0": {"start": {"line": 4, "column": 45}, "end": {"line": 11, "column": 1}}}, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "d143d022dba48a8cbbe692eef250c2dd89d663eb" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIProgressIndicator\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIProgressIndicator\\index.ts", + "statementMap": { + "0": {"start": {"line": 6, "column": 43}, "end": {"line": 11, "column": 1}}, + "1": {"start": {"line": 13, "column": 57}, "end": {"line": 17, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "86edbf3d23cfc4241b6ce5cf55e5046d96b6df94" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIQRCustomMarker\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIQRCustomMarker\\index.ts", + "statementMap": { + "0": {"start": {"line": 4, "column": 19}, "end": {"line": 4, "column": 43}}, + "1": {"start": {"line": 6, "column": 48}, "end": {"line": 9, "column": 1}}, + "2": {"start": {"line": 13, "column": 39}, "end": {"line": 18, "column": 1}}, + "3": {"start": {"line": 20, "column": 54}, "end": {"line": 23, "column": 1}}, + "4": {"start": {"line": 25, "column": 51}, "end": {"line": 30, "column": 1}}, + "5": {"start": {"line": 32, "column": 49}, "end": {"line": 35, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1, "4": 1, "5": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "3012a38ecc4faa500c45f693c082b80386860f11" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSISecondaryButton\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSISecondaryButton\\index.ts", + "statementMap": { + "0": {"start": {"line": 7, "column": 49}, "end": {"line": 13, "column": 1}}, + "1": {"start": {"line": 15, "column": 69}, "end": {"line": 17, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "f4b14792a3fd99a861bcd86df59d4a8481588a40" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIStatusBar\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIStatusBar\\index.ts", + "statementMap": {"0": {"start": {"line": 6, "column": 42}, "end": {"line": 8, "column": 4}}}, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "4e4d2bbd5268b8663d02edd0247e7f5cece7d4ec" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSISwipeDeleteButton\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSISwipeDeleteButton\\index.ts", + "statementMap": { + "0": {"start": {"line": 6, "column": 49}, "end": {"line": 8, "column": 1}}, + "1": {"start": {"line": 10, "column": 56}, "end": {"line": 15, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "fc1bafe133f8d6048f646e54b2d4dc9ad0d61b0f" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSISwipeRowViewItem\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSISwipeRowViewItem\\index.ts", + "statementMap": { + "0": {"start": {"line": 5, "column": 50}, "end": {"line": 8, "column": 4}}, + "1": {"start": {"line": 10, "column": 60}, "end": {"line": 13, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "e8631024a337b728c1b28fc80e85c5d829ea26cc" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSITabView\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSITabView\\index.ts", + "statementMap": {"0": {"start": {"line": 5, "column": 41}, "end": {"line": 9, "column": 1}}}, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "b887750ecdbae986776a7c1ed0c4b13801393e00" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSITabViewHeader\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSITabViewHeader\\index.ts", + "statementMap": { + "0": {"start": {"line": 8, "column": 47}, "end": {"line": 12, "column": 1}}, + "1": {"start": {"line": 14, "column": 47}, "end": {"line": 16, "column": 1}}, + "2": {"start": {"line": 18, "column": 54}, "end": {"line": 20, "column": 1}}, + "3": {"start": {"line": 22, "column": 50}, "end": {"line": 25, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "28f75dc2c4e2a6d4076da76472ddb4976feca875" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSITermsOfServiceView\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSITermsOfServiceView\\index.ts", + "statementMap": { + "0": {"start": {"line": 8, "column": 43}, "end": {"line": 8, "column": 45}}, + "1": {"start": {"line": 10, "column": 52}, "end": {"line": 12, "column": 1}}, + "2": {"start": {"line": 14, "column": 53}, "end": {"line": 16, "column": 1}}, + "3": {"start": {"line": 18, "column": 54}, "end": {"line": 20, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "fbbccb764428a0d0f127cae67d184babe571ec97" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSITextField\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSITextField\\index.ts", + "statementMap": { + "0": {"start": {"line": 6, "column": 43}, "end": {"line": 9, "column": 1}}, + "1": {"start": {"line": 11, "column": 49}, "end": {"line": 13, "column": 1}}, + "2": {"start": {"line": 15, "column": 54}, "end": {"line": 17, "column": 1}}, + "3": {"start": {"line": 19, "column": 52}, "end": {"line": 21, "column": 1}}, + "4": {"start": {"line": 23, "column": 55}, "end": {"line": 25, "column": 1}}, + "5": {"start": {"line": 27, "column": 45}, "end": {"line": 29, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1, "4": 1, "5": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "f7cc18a008c76e90feb9e4231d6cec820127ccf8" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSITextInputField\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSITextInputField\\index.ts", + "statementMap": { + "0": {"start": {"line": 6, "column": 48}, "end": {"line": 8, "column": 1}}, + "1": {"start": {"line": 10, "column": 48}, "end": {"line": 12, "column": 1}}, + "2": {"start": {"line": 14, "column": 52}, "end": {"line": 18, "column": 1}}, + "3": {"start": {"line": 20, "column": 48}, "end": {"line": 23, "column": 1}}, + "4": {"start": {"line": 25, "column": 62}, "end": {"line": 29, "column": 1}}, + "5": {"start": {"line": 31, "column": 54}, "end": {"line": 33, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1, "4": 1, "5": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "624f14e31befab3be5590cd9fb1d25eae81c8559" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIToast\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIToast\\index.ts", + "statementMap": { + "0": {"start": {"line": 7, "column": 39}, "end": {"line": 13, "column": 1}}, + "1": {"start": {"line": 15, "column": 44}, "end": {"line": 18, "column": 1}}, + "2": {"start": {"line": 20, "column": 44}, "end": {"line": 23, "column": 1}}, + "3": {"start": {"line": 25, "column": 44}, "end": {"line": 27, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "79e84e7b9f5054edf2d631436921a74f5265af77" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIWelcomeView\\index.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\components\\SSIWelcomeView\\index.tsx", + "statementMap": { + "0": {"start": {"line": 6, "column": 45}, "end": {"line": 11, "column": 1}}, + "1": {"start": {"line": 13, "column": 46}, "end": {"line": 15, "column": 1}}, + "2": {"start": {"line": 17, "column": 45}, "end": {"line": 19, "column": 1}}, + "3": {"start": {"line": 21, "column": 52}, "end": {"line": 23, "column": 1}}, + "4": {"start": {"line": 25, "column": 49}, "end": {"line": 27, "column": 1}}, + "5": {"start": {"line": 29, "column": 62}, "end": {"line": 32, "column": 1}}, + "6": {"start": {"line": 34, "column": 51}, "end": {"line": 37, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "b67fab31978a3afdf4b4e7103aa7a26be5695ca7" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\containers\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\containers\\index.ts", + "statementMap": { + "0": {"start": {"line": 14, "column": 48}, "end": {"line": 17, "column": 1}}, + "1": {"start": {"line": 20, "column": 45}, "end": {"line": 22, "column": 1}}, + "2": {"start": {"line": 24, "column": 48}, "end": {"line": 26, "column": 1}}, + "3": {"start": {"line": 28, "column": 49}, "end": {"line": 30, "column": 1}}, + "4": {"start": {"line": 32, "column": 52}, "end": {"line": 34, "column": 1}}, + "5": {"start": {"line": 36, "column": 39}, "end": {"line": 39, "column": 1}}, + "6": {"start": {"line": 41, "column": 44}, "end": {"line": 44, "column": 1}}, + "7": {"start": {"line": 46, "column": 55}, "end": {"line": 48, "column": 1}}, + "8": {"start": {"line": 50, "column": 41}, "end": {"line": 53, "column": 1}}, + "9": {"start": {"line": 55, "column": 64}, "end": {"line": 58, "column": 1}}, + "10": {"start": {"line": 60, "column": 63}, "end": {"line": 63, "column": 1}}, + "11": {"start": {"line": 65, "column": 40}, "end": {"line": 76, "column": 4}}, + "12": {"start": {"line": 79, "column": 46}, "end": {"line": 81, "column": 1}}, + "13": {"start": {"line": 83, "column": 57}, "end": {"line": 85, "column": 1}}, + "14": {"start": {"line": 87, "column": 41}, "end": {"line": 93, "column": 1}}, + "15": {"start": {"line": 95, "column": 39}, "end": {"line": 98, "column": 1}}, + "16": {"start": {"line": 100, "column": 48}, "end": {"line": 106, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": { + "0": 1, + "1": 1, + "2": 1, + "3": 1, + "4": 1, + "5": 1, + "6": 1, + "7": 1, + "8": 1, + "9": 1, + "10": 1, + "11": 1, + "12": 1, + "13": 1, + "14": 1, + "15": 1, + "16": 1 + }, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "aaa3fbcfc5eec1740dc3ee4d98d30105700ecc44" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\css\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\css\\index.ts", + "statementMap": { + "0": {"start": {"line": 5, "column": 34}, "end": {"line": 7, "column": 1}}, + "1": {"start": {"line": 9, "column": 48}, "end": {"line": 11, "column": 1}}, + "2": {"start": {"line": 13, "column": 50}, "end": {"line": 15, "column": 1}}, + "3": {"start": {"line": 17, "column": 49}, "end": {"line": 19, "column": 1}}, + "4": {"start": {"line": 21, "column": 43}, "end": {"line": 27, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1, "4": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "b97d39838bd0b3c988fdcf7318038b85aef68996" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\fonts\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\fonts\\index.ts", + "statementMap": { + "0": {"start": {"line": 7, "column": 31}, "end": {"line": 13, "column": 1}}, + "1": {"start": {"line": 15, "column": 36}, "end": {"line": 17, "column": 1}}, + "2": {"start": {"line": 19, "column": 31}, "end": {"line": 25, "column": 1}}, + "3": {"start": {"line": 27, "column": 36}, "end": {"line": 29, "column": 1}}, + "4": {"start": {"line": 31, "column": 31}, "end": {"line": 37, "column": 1}}, + "5": {"start": {"line": 39, "column": 39}, "end": {"line": 45, "column": 1}}, + "6": {"start": {"line": 47, "column": 44}, "end": {"line": 49, "column": 1}}, + "7": {"start": {"line": 51, "column": 36}, "end": {"line": 53, "column": 1}}, + "8": {"start": {"line": 55, "column": 35}, "end": {"line": 57, "column": 1}}, + "9": {"start": {"line": 59, "column": 46}, "end": {"line": 61, "column": 1}}, + "10": {"start": {"line": 63, "column": 38}, "end": {"line": 69, "column": 1}}, + "11": {"start": {"line": 71, "column": 43}, "end": {"line": 73, "column": 1}}, + "12": {"start": {"line": 76, "column": 31}, "end": {"line": 82, "column": 1}}, + "13": {"start": {"line": 84, "column": 36}, "end": {"line": 86, "column": 1}}, + "14": {"start": {"line": 88, "column": 39}, "end": {"line": 94, "column": 1}}, + "15": {"start": {"line": 96, "column": 44}, "end": {"line": 98, "column": 1}}, + "16": {"start": {"line": 100, "column": 31}, "end": {"line": 106, "column": 1}}, + "17": {"start": {"line": 108, "column": 39}, "end": {"line": 114, "column": 1}}, + "18": {"start": {"line": 116, "column": 36}, "end": {"line": 118, "column": 1}}, + "19": {"start": {"line": 120, "column": 35}, "end": {"line": 122, "column": 1}}, + "20": {"start": {"line": 124, "column": 44}, "end": {"line": 126, "column": 1}}, + "21": {"start": {"line": 128, "column": 31}, "end": {"line": 134, "column": 1}}, + "22": {"start": {"line": 136, "column": 36}, "end": {"line": 138, "column": 1}}, + "23": {"start": {"line": 140, "column": 39}, "end": {"line": 146, "column": 1}}, + "24": {"start": {"line": 148, "column": 44}, "end": {"line": 150, "column": 1}}, + "25": {"start": {"line": 152, "column": 31}, "end": {"line": 158, "column": 1}}, + "26": {"start": {"line": 160, "column": 36}, "end": {"line": 162, "column": 1}}, + "27": {"start": {"line": 164, "column": 39}, "end": {"line": 170, "column": 1}}, + "28": {"start": {"line": 172, "column": 44}, "end": {"line": 174, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": { + "0": 1, + "1": 1, + "2": 1, + "3": 1, + "4": 1, + "5": 1, + "6": 1, + "7": 1, + "8": 1, + "9": 1, + "10": 1, + "11": 1, + "12": 1, + "13": 1, + "14": 1, + "15": 1, + "16": 1, + "17": 1, + "18": 1, + "19": 1, + "20": 1, + "21": 1, + "22": 1, + "23": 1, + "24": 1, + "25": 1, + "26": 1, + "27": 1, + "28": 1 + }, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "8767833f266bf9a338c8a958e5b37ca71d8381f4" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\gradients\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\gradients\\index.ts", + "statementMap": { + "0": {"start": {"line": 8, "column": 39}, "end": {"line": 12, "column": 4}}, + "1": {"start": {"line": 14, "column": 48}, "end": {"line": 18, "column": 4}}, + "2": {"start": {"line": 20, "column": 46}, "end": {"line": 24, "column": 4}}, + "3": {"start": {"line": 26, "column": 40}, "end": {"line": 28, "column": 1}}, + "4": {"start": {"line": 30, "column": 52}, "end": {"line": 35, "column": 4}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1, "4": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "e25a05f33beb06bde292ea6f1407696b5c98d914" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\modals\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\modals\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "2fe02339046bc1188167e769e9395002e4fec4e4" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\modals\\SSIAlertModal\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\modals\\SSIAlertModal\\index.ts", + "statementMap": {"0": {"start": {"line": 3, "column": 51}, "end": {"line": 9, "column": 1}}}, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "62085e50267b463e1257ed67d22ae628124f967c" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\modals\\SSIPopupModal\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\modals\\SSIPopupModal\\index.ts", + "statementMap": {"0": {"start": {"line": 3, "column": 51}, "end": {"line": 9, "column": 1}}}, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "714f0b31002e0f1fa59f65ddf87ddbb715e40bf5" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\providers\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\providers\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "da98fa978b21f171d5846ef38546c6b4c5e21aec" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\providers\\OnTouchProvider\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\providers\\OnTouchProvider\\index.ts", + "statementMap": {"0": {"start": {"line": 3, "column": 49}, "end": {"line": 5, "column": 1}}}, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "9435bbc172c22aa51c6e9669610cf99f2f20429b" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "2a5a27802f9ea0145a9d8409a203e3cc1abe2329" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSIContactAddScreen\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSIContactAddScreen\\index.ts", + "statementMap": { + "0": {"start": {"line": 5, "column": 50}, "end": {"line": 8, "column": 1}}, + "1": {"start": {"line": 10, "column": 59}, "end": {"line": 13, "column": 1}}, + "2": {"start": {"line": 15, "column": 60}, "end": {"line": 18, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "3e8cc3213268f7749c33d8f5b564c3bca7fbf743" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSICredentialDetailsScreen\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSICredentialDetailsScreen\\index.ts", + "statementMap": { + "0": {"start": {"line": 6, "column": 58}, "end": {"line": 9, "column": 1}}, + "1": {"start": {"line": 11, "column": 65}, "end": {"line": 14, "column": 1}}, + "2": {"start": {"line": 16, "column": 57}, "end": {"line": 21, "column": 1}}, + "3": {"start": {"line": 23, "column": 64}, "end": {"line": 27, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "ee10114de5199fd23be3ac23e57dcce790c6ed18" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSICredentialSelectTypeScreen\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSICredentialSelectTypeScreen\\index.ts", + "statementMap": { + "0": {"start": {"line": 5, "column": 68}, "end": {"line": 7, "column": 1}}, + "1": {"start": {"line": 9, "column": 66}, "end": {"line": 15, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "22bbc1246fa4d283c400978dd5265d2c41af0f93" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSICredentialsRequiredScreen\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSICredentialsRequiredScreen\\index.ts", + "statementMap": {"0": {"start": {"line": 3, "column": 65}, "end": {"line": 5, "column": 1}}}, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "9a62061f5dafc13e9d7c4291d3d4ba649aed7b66" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSIErrorScreen\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSIErrorScreen\\index.ts", + "statementMap": {"0": {"start": {"line": 3, "column": 52}, "end": {"line": 6, "column": 1}}}, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "61d11bf5cb222ec4e04534a576f52a34b27b74cd" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSILoadingScreen\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSILoadingScreen\\index.ts", + "statementMap": { + "0": {"start": {"line": 7, "column": 64}, "end": {"line": 9, "column": 1}}, + "1": {"start": {"line": 11, "column": 53}, "end": {"line": 13, "column": 1}}, + "2": {"start": {"line": 15, "column": 55}, "end": {"line": 18, "column": 4}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "1d92791e80803288a8450b4a66d30f80ce485fb6" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSILockScreen\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSILockScreen\\index.ts", + "statementMap": {"0": {"start": {"line": 3, "column": 51}, "end": {"line": 5, "column": 1}}}, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "ab4154909a0b9f2d657a276345d82849e0f2130f" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSINotificationsOverviewScreen\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSINotificationsOverviewScreen\\index.ts", + "statementMap": { + "0": {"start": {"line": 5, "column": 71}, "end": {"line": 8, "column": 1}}, + "1": {"start": {"line": 10, "column": 76}, "end": {"line": 12, "column": 1}}, + "2": {"start": {"line": 14, "column": 71}, "end": {"line": 16, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "e29fbfd5ef2a0e2d2d2ac30e5ce8adb8b5c29b53" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSIPersonalDataScreen\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSIPersonalDataScreen\\index.ts", + "statementMap": { + "0": {"start": {"line": 5, "column": 52}, "end": {"line": 8, "column": 1}}, + "1": {"start": {"line": 10, "column": 62}, "end": {"line": 13, "column": 1}}, + "2": {"start": {"line": 15, "column": 61}, "end": {"line": 17, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "2f0fd91c9642e5fe03124b0b4e754fad50769bc9" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSIQRReaderScreen\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSIQRReaderScreen\\index.ts", + "statementMap": {"0": {"start": {"line": 4, "column": 46}, "end": {"line": 9, "column": 4}}}, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "0e33151014ec6a060320b5cf53db8061d2f94576" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSITermsOfServiceScreen\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSITermsOfServiceScreen\\index.ts", + "statementMap": { + "0": {"start": {"line": 5, "column": 61}, "end": {"line": 8, "column": 1}}, + "1": {"start": {"line": 10, "column": 60}, "end": {"line": 14, "column": 1}}, + "2": {"start": {"line": 16, "column": 64}, "end": {"line": 18, "column": 1}}, + "3": {"start": {"line": 20, "column": 62}, "end": {"line": 22, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "dceacff7df4553388fb91f520edad65314644917" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSIVerificationCodeScreen\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSIVerificationCodeScreen\\index.ts", + "statementMap": {"0": {"start": {"line": 3, "column": 63}, "end": {"line": 5, "column": 1}}}, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "798cd69583340976a4a0ed19d76bdafca30d618c" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSIWelcomeScreen\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\screens\\SSIWelcomeScreen\\index.ts", + "statementMap": { + "0": {"start": {"line": 7, "column": 47}, "end": {"line": 9, "column": 1}}, + "1": {"start": {"line": 11, "column": 58}, "end": {"line": 13, "column": 1}}, + "2": {"start": {"line": 15, "column": 62}, "end": {"line": 25, "column": 1}}, + "3": {"start": {"line": 27, "column": 57}, "end": {"line": 30, "column": 1}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "8ff96f7d5ca2a0b1d71ad1e53b7c1fc7c6099427" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\text\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\text\\index.ts", + "statementMap": {"0": {"start": {"line": 7, "column": 31}, "end": {"line": 15, "column": 1}}}, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "91c21f50febe7c43dcb56b6ce2250be25a6a5a6c" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\views\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\styles\\components\\views\\index.ts", + "statementMap": {"0": {"start": {"line": 5, "column": 47}, "end": {"line": 7, "column": 31}}}, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "7d0c95594ee68cfb0b15f3f15984ebc8e66c4ee1" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "15058e83fb8a1825b5547c157707b48324d8e78d" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\authentication\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\authentication\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "b9758a0e45f2b0b95a8fa6d157d70475b3c69102" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\component\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\component\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "5737d636c13311487d759736a71937f0d5be0112" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\credential\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\credential\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "4ed4311bf0f49fd9834c2f6b398646c359f12f59" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\did\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\did\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "955c9db2633e06e761f1a3df3648233bf3f59f8c" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\error\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\error\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "ae0909baa4673ec0d31513b478baac143b1961a9" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\identity\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\identity\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "69c51ff15621651147524933fe2ba3056b6d09d9" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\image\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\image\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "4fefe21e4ff070e34d344c89b348ec937135dfd5" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\navigation\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\navigation\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "86367e72fe525a6a91cb7e9d3c8e5c7f8150bc4f" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\onboarding\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\onboarding\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "1158591f4ee565c0b052dd2417d0784b679f6f14" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\os\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\os\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "11671c2da37cf1adf1da0f2b7e2770efec0e6e0b" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\provider\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\provider\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "072bdeb199298bcbbcf10c3315bf145aee13e125" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\provider\\openIdVcIssuanceProvider\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\provider\\openIdVcIssuanceProvider\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "638a96f19c7f1d2f017556cee48b0321a22910ee" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\qr\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\qr\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "f8912e485abe7e4dfe84bdc8fc9d7c30d29db5bf" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\service\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\service\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "6c9e2691274dc95f4df8ef74099e4c2f86473882" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\service\\brandingService\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\service\\brandingService\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "4cd389adfc551f3a0878ffdfe0beffe83c1717cf" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\service\\contactService\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\service\\contactService\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "d029aa896a121098af69ad9cf8ebfd49724f0ca6" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\service\\credentialService\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\service\\credentialService\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "f4ce35fdab67e90069096533b98be0551cc6ea54" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\service\\fileService\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\service\\fileService\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "5039bf881812029fe1b135eb4622133a64ac4603" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\service\\storageService\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\service\\storageService\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "dfeec50ca7dc9717199093af98dca4f33948f2a0" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\signature\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\signature\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "3c85e48f42d33b99976a3f1f65c20faf9bd521a6" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\store\\contact.action.types.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\store\\contact.action.types.ts", + "statementMap": { + "0": {"start": {"line": 3, "column": 32}, "end": {"line": 3, "column": 60}}, + "1": {"start": {"line": 5, "column": 36}, "end": {"line": 5, "column": 68}}, + "2": {"start": {"line": 7, "column": 35}, "end": {"line": 7, "column": 67}}, + "3": {"start": {"line": 9, "column": 38}, "end": {"line": 9, "column": 72}}, + "4": {"start": {"line": 11, "column": 37}, "end": {"line": 11, "column": 69}}, + "5": {"start": {"line": 13, "column": 38}, "end": {"line": 13, "column": 72}}, + "6": {"start": {"line": 15, "column": 37}, "end": {"line": 15, "column": 70}}, + "7": {"start": {"line": 17, "column": 38}, "end": {"line": 17, "column": 72}}, + "8": {"start": {"line": 19, "column": 37}, "end": {"line": 19, "column": 70}}, + "9": {"start": {"line": 21, "column": 36}, "end": {"line": 21, "column": 68}}, + "10": {"start": {"line": 23, "column": 35}, "end": {"line": 23, "column": 66}}, + "11": {"start": {"line": 25, "column": 30}, "end": {"line": 25, "column": 56}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, "11": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "5cb3d393786ca1c5a12cedefd558d9e2221ee4c7" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\store\\credential.action.types.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\store\\credential.action.types.ts", + "statementMap": { + "0": {"start": {"line": 3, "column": 35}, "end": {"line": 3, "column": 69}}, + "1": {"start": {"line": 5, "column": 39}, "end": {"line": 5, "column": 77}}, + "2": {"start": {"line": 7, "column": 38}, "end": {"line": 7, "column": 76}}, + "3": {"start": {"line": 9, "column": 40}, "end": {"line": 9, "column": 79}}, + "4": {"start": {"line": 11, "column": 39}, "end": {"line": 11, "column": 77}}, + "5": {"start": {"line": 13, "column": 41}, "end": {"line": 13, "column": 81}}, + "6": {"start": {"line": 15, "column": 40}, "end": {"line": 15, "column": 79}}, + "7": {"start": {"line": 17, "column": 41}, "end": {"line": 17, "column": 81}}, + "8": {"start": {"line": 19, "column": 40}, "end": {"line": 19, "column": 79}}, + "9": {"start": {"line": 21, "column": 33}, "end": {"line": 21, "column": 65}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "8f746f71318499f62bfa16c503455bc064261c74" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\store\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\store\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "f8a5b63d443453d59b59b36c2ab7c7c7b1cd8f9f" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\store\\user.action.types.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\store\\user.action.types.ts", + "statementMap": { + "0": {"start": {"line": 3, "column": 29}, "end": {"line": 3, "column": 51}}, + "1": {"start": {"line": 5, "column": 35}, "end": {"line": 5, "column": 63}}, + "2": {"start": {"line": 7, "column": 34}, "end": {"line": 7, "column": 61}}, + "3": {"start": {"line": 9, "column": 33}, "end": {"line": 9, "column": 59}}, + "4": {"start": {"line": 11, "column": 32}, "end": {"line": 11, "column": 57}}, + "5": {"start": {"line": 13, "column": 29}, "end": {"line": 13, "column": 51}}, + "6": {"start": {"line": 15, "column": 28}, "end": {"line": 15, "column": 49}}, + "7": {"start": {"line": 17, "column": 30}, "end": {"line": 17, "column": 53}}, + "8": {"start": {"line": 19, "column": 35}, "end": {"line": 19, "column": 63}}, + "9": {"start": {"line": 21, "column": 34}, "end": {"line": 21, "column": 61}}, + "10": {"start": {"line": 23, "column": 35}, "end": {"line": 23, "column": 63}}, + "11": {"start": {"line": 25, "column": 34}, "end": {"line": 25, "column": 61}} + }, + "fnMap": {}, + "branchMap": {}, + "s": {"0": 1, "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, "11": 1}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "6040e255a4d6448e4b8e56ce98099e0f6a59f277" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\style\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\style\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "88b4b61ce62f158672ce55d151d01204b8d0f525" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\toast\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\toast\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "78525e1e90d19bef45bd704c12bf41200cb8fa72" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\user\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\user\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "d242c1fa7041d26d4c5de4027cffc4451c0574ed" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\util\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\util\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "78c596c3d0a925d128eaeeabb38bdd6a6b178464" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\util\\navigationUtils\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\util\\navigationUtils\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "50ce438af2af562f6c95384c452a166775357879" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\util\\sortUtils\\index.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\types\\util\\sortUtils\\index.ts", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "0dc7a1de7609f9c3e2815190a6aeab1c19fbba98" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\utils\\AppUtils.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\utils\\AppUtils.ts", + "statementMap": { + "0": {"start": {"line": 1, "column": 21}, "end": {"line": 1, "column": 84}}, + "1": {"start": {"line": 1, "column": 37}, "end": {"line": 1, "column": 84}}, + "2": {"start": {"line": 1, "column": 60}, "end": {"line": 1, "column": 83}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 1, "column": 21}, "end": {"line": 1, "column": 22}}, + "loc": {"start": {"line": 1, "column": 37}, "end": {"line": 1, "column": 84}}, + "line": 1 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 1, "column": 49}, "end": {"line": 1, "column": 50}}, + "loc": {"start": {"line": 1, "column": 60}, "end": {"line": 1, "column": 83}}, + "line": 1 + } + }, + "branchMap": {}, + "s": {"0": 1, "1": 0, "2": 0}, + "f": {"0": 0, "1": 0}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "1391d83bdb181a969f7234101246fa4fb69dfb06" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\utils\\CredentialUtils.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\utils\\CredentialUtils.ts", + "statementMap": { + "0": {"start": {"line": 15, "column": 41}, "end": {"line": 22, "column": 1}}, + "1": {"start": {"line": 16, "column": 2}, "end": {"line": 20, "column": 3}}, + "2": {"start": {"line": 17, "column": 4}, "end": {"line": 17, "column": 35}}, + "3": {"start": {"line": 18, "column": 9}, "end": {"line": 20, "column": 3}}, + "4": {"start": {"line": 19, "column": 4}, "end": {"line": 19, "column": 27}}, + "5": {"start": {"line": 21, "column": 2}, "end": {"line": 21, "column": 78}}, + "6": {"start": {"line": 21, "column": 37}, "end": {"line": 21, "column": 65}}, + "7": {"start": {"line": 29, "column": 53}, "end": {"line": 40, "column": 1}}, + "8": {"start": {"line": 34, "column": 2}, "end": {"line": 39, "column": 4}}, + "9": {"start": {"line": 36, "column": 6}, "end": {"line": 38, "column": 94}}, + "10": {"start": {"line": 46, "column": 47}, "end": {"line": 48, "column": 1}}, + "11": {"start": {"line": 47, "column": 2}, "end": {"line": 47, "column": 101}}, + "12": {"start": {"line": 50, "column": 35}, "end": {"line": 58, "column": 1}}, + "13": {"start": {"line": 51, "column": 2}, "end": {"line": 55, "column": 3}}, + "14": {"start": {"line": 52, "column": 4}, "end": {"line": 52, "column": 36}}, + "15": {"start": {"line": 53, "column": 9}, "end": {"line": 55, "column": 3}}, + "16": {"start": {"line": 54, "column": 4}, "end": {"line": 54, "column": 36}}, + "17": {"start": {"line": 57, "column": 2}, "end": {"line": 57, "column": 32}}, + "18": {"start": {"line": 65, "column": 25}, "end": {"line": 74, "column": 1}}, + "19": {"start": {"line": 66, "column": 2}, "end": {"line": 66, "column": 15}}, + "20": {"start": {"line": 82, "column": 25}, "end": {"line": 89, "column": 1}}, + "21": {"start": {"line": 83, "column": 2}, "end": {"line": 85, "column": 3}}, + "22": {"start": {"line": 84, "column": 4}, "end": {"line": 84, "column": 17}}, + "23": {"start": {"line": 86, "column": 23}, "end": {"line": 86, "column": 84}}, + "24": {"start": {"line": 87, "column": 2}, "end": {"line": 87, "column": 50}}, + "25": {"start": {"line": 88, "column": 2}, "end": {"line": 88, "column": 37}}, + "26": {"start": {"line": 91, "column": 44}, "end": {"line": 107, "column": 1}}, + "27": {"start": {"line": 92, "column": 19}, "end": {"line": 92, "column": 52}}, + "28": {"start": {"line": 93, "column": 21}, "end": {"line": 93, "column": 53}}, + "29": {"start": {"line": 95, "column": 18}, "end": {"line": 97, "column": 3}}, + "30": {"start": {"line": 96, "column": 4}, "end": {"line": 96, "column": 105}}, + "31": {"start": {"line": 96, "column": 53}, "end": {"line": 96, "column": 104}}, + "32": {"start": {"line": 98, "column": 2}, "end": {"line": 100, "column": 3}}, + "33": {"start": {"line": 99, "column": 4}, "end": {"line": 99, "column": 25}}, + "34": {"start": {"line": 102, "column": 2}, "end": {"line": 104, "column": 3}}, + "35": {"start": {"line": 102, "column": 81}, "end": {"line": 102, "column": 113}}, + "36": {"start": {"line": 103, "column": 4}, "end": {"line": 103, "column": 60}}, + "37": {"start": {"line": 106, "column": 2}, "end": {"line": 106, "column": 23}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 15, "column": 41}, "end": {"line": 15, "column": 42}}, + "loc": {"start": {"line": 15, "column": 101}, "end": {"line": 22, "column": 1}}, + "line": 15 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 21, "column": 32}, "end": {"line": 21, "column": 33}}, + "loc": {"start": {"line": 21, "column": 37}, "end": {"line": 21, "column": 65}}, + "line": 21 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 29, "column": 53}, "end": {"line": 29, "column": 54}}, + "loc": {"start": {"line": 32, "column": 45}, "end": {"line": 40, "column": 1}}, + "line": 32 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 35, "column": 4}, "end": {"line": 35, "column": 5}}, + "loc": {"start": {"line": 36, "column": 6}, "end": {"line": 38, "column": 94}}, + "line": 36 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 46, "column": 47}, "end": {"line": 46, "column": 48}}, + "loc": {"start": {"line": 46, "column": 91}, "end": {"line": 48, "column": 1}}, + "line": 46 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 50, "column": 35}, "end": {"line": 50, "column": 36}}, + "loc": {"start": {"line": 50, "column": 126}, "end": {"line": 58, "column": 1}}, + "line": 50 + }, + "6": { + "name": "(anonymous_6)", + "decl": {"start": {"line": 65, "column": 25}, "end": {"line": 65, "column": 26}}, + "loc": {"start": {"line": 65, "column": 40}, "end": {"line": 74, "column": 1}}, + "line": 65 + }, + "7": { + "name": "(anonymous_7)", + "decl": {"start": {"line": 82, "column": 25}, "end": {"line": 82, "column": 26}}, + "loc": {"start": {"line": 82, "column": 63}, "end": {"line": 89, "column": 1}}, + "line": 82 + }, + "8": { + "name": "(anonymous_8)", + "decl": {"start": {"line": 91, "column": 44}, "end": {"line": 91, "column": 45}}, + "loc": {"start": {"line": 91, "column": 79}, "end": {"line": 107, "column": 1}}, + "line": 91 + }, + "9": { + "name": "(anonymous_9)", + "decl": {"start": {"line": 95, "column": 32}, "end": {"line": 95, "column": 33}}, + "loc": {"start": {"line": 96, "column": 4}, "end": {"line": 96, "column": 105}}, + "line": 96 + }, + "10": { + "name": "(anonymous_10)", + "decl": {"start": {"line": 96, "column": 28}, "end": {"line": 96, "column": 29}}, + "loc": {"start": {"line": 96, "column": 53}, "end": {"line": 96, "column": 104}}, + "line": 96 + }, + "11": { + "name": "(anonymous_11)", + "decl": {"start": {"line": 102, "column": 48}, "end": {"line": 102, "column": 49}}, + "loc": {"start": {"line": 102, "column": 81}, "end": {"line": 102, "column": 113}}, + "line": 102 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 16, "column": 2}, "end": {"line": 20, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 16, "column": 2}, "end": {"line": 20, "column": 3}}, + {"start": {"line": 18, "column": 9}, "end": {"line": 20, "column": 3}} + ], + "line": 16 + }, + "1": { + "loc": {"start": {"line": 18, "column": 9}, "end": {"line": 20, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 18, "column": 9}, "end": {"line": 20, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 18 + }, + "2": { + "loc": {"start": {"line": 36, "column": 6}, "end": {"line": 38, "column": 94}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 36, "column": 7}, "end": {"line": 36, "column": 35}}, + {"start": {"line": 37, "column": 9}, "end": {"line": 37, "column": 57}}, + {"start": {"line": 37, "column": 61}, "end": {"line": 37, "column": 115}}, + {"start": {"line": 38, "column": 7}, "end": {"line": 38, "column": 35}}, + {"start": {"line": 38, "column": 39}, "end": {"line": 38, "column": 93}} + ], + "line": 36 + }, + "3": { + "loc": {"start": {"line": 51, "column": 2}, "end": {"line": 55, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 51, "column": 2}, "end": {"line": 55, "column": 3}}, + {"start": {"line": 53, "column": 9}, "end": {"line": 55, "column": 3}} + ], + "line": 51 + }, + "4": { + "loc": {"start": {"line": 53, "column": 9}, "end": {"line": 55, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 53, "column": 9}, "end": {"line": 55, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 53 + }, + "5": { + "loc": {"start": {"line": 83, "column": 2}, "end": {"line": 85, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 83, "column": 2}, "end": {"line": 85, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 83 + }, + "6": { + "loc": {"start": {"line": 86, "column": 23}, "end": {"line": 86, "column": 84}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 86, "column": 51}, "end": {"line": 86, "column": 76}}, + {"start": {"line": 86, "column": 79}, "end": {"line": 86, "column": 84}} + ], + "line": 86 + }, + "7": { + "loc": {"start": {"line": 98, "column": 2}, "end": {"line": 100, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 98, "column": 2}, "end": {"line": 100, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 98 + }, + "8": { + "loc": {"start": {"line": 102, "column": 2}, "end": {"line": 104, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 102, "column": 2}, "end": {"line": 104, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 102 + }, + "9": { + "loc": {"start": {"line": 102, "column": 6}, "end": {"line": 102, "column": 114}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 102, "column": 6}, "end": {"line": 102, "column": 16}}, + {"start": {"line": 102, "column": 20}, "end": {"line": 102, "column": 114}} + ], + "line": 102 + } + }, + "s": { + "0": 1, + "1": 0, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 1, + "8": 0, + "9": 0, + "10": 1, + "11": 0, + "12": 1, + "13": 1, + "14": 0, + "15": 1, + "16": 0, + "17": 1, + "18": 1, + "19": 1, + "20": 1, + "21": 1, + "22": 1, + "23": 0, + "24": 0, + "25": 0, + "26": 1, + "27": 1, + "28": 1, + "29": 1, + "30": 1, + "31": 1, + "32": 1, + "33": 1, + "34": 0, + "35": 0, + "36": 0, + "37": 0 + }, + "f": {"0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, "11": 0}, + "b": {"0": [0, 0], "1": [0, 0], "2": [0, 0, 0, 0, 0], "3": [0, 1], "4": [0, 1], "5": [1, 0], "6": [0, 0], "7": [1, 0], "8": [0, 0], "9": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "b212b88db693f3310988d1f37c616c2a75c26e75" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\utils\\DateUtils.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\utils\\DateUtils.ts", + "statementMap": { + "0": {"start": {"line": 3, "column": 34}, "end": {"line": 3, "column": 38}}, + "1": {"start": {"line": 4, "column": 35}, "end": {"line": 8, "column": 10}}, + "2": {"start": {"line": 10, "column": 37}, "end": {"line": 17, "column": 1}}, + "3": {"start": {"line": 11, "column": 2}, "end": {"line": 16, "column": 5}}, + "4": {"start": {"line": 19, "column": 33}, "end": {"line": 21, "column": 1}}, + "5": {"start": {"line": 20, "column": 2}, "end": {"line": 20, "column": 102}}, + "6": {"start": {"line": 23, "column": 19}, "end": {"line": 31, "column": 1}}, + "7": {"start": {"line": 24, "column": 22}, "end": {"line": 24, "column": 26}}, + "8": {"start": {"line": 25, "column": 2}, "end": {"line": 25, "column": 38}}, + "9": {"start": {"line": 26, "column": 2}, "end": {"line": 28, "column": 3}}, + "10": {"start": {"line": 27, "column": 4}, "end": {"line": 27, "column": 34}}, + "11": {"start": {"line": 30, "column": 2}, "end": {"line": 30, "column": 15}}, + "12": {"start": {"line": 33, "column": 30}, "end": {"line": 38, "column": 1}}, + "13": {"start": {"line": 34, "column": 2}, "end": {"line": 36, "column": 3}}, + "14": {"start": {"line": 35, "column": 4}, "end": {"line": 35, "column": 37}}, + "15": {"start": {"line": 37, "column": 2}, "end": {"line": 37, "column": 14}}, + "16": {"start": {"line": 40, "column": 21}, "end": {"line": 42, "column": 1}}, + "17": {"start": {"line": 41, "column": 2}, "end": {"line": 41, "column": 37}}, + "18": {"start": {"line": 44, "column": 29}, "end": {"line": 50, "column": 1}}, + "19": {"start": {"line": 45, "column": 2}, "end": {"line": 47, "column": 3}}, + "20": {"start": {"line": 46, "column": 4}, "end": {"line": 46, "column": 49}}, + "21": {"start": {"line": 49, "column": 2}, "end": {"line": 49, "column": 14}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 10, "column": 37}, "end": {"line": 10, "column": 38}}, + "loc": {"start": {"line": 10, "column": 63}, "end": {"line": 17, "column": 1}}, + "line": 10 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 19, "column": 33}, "end": {"line": 19, "column": 34}}, + "loc": {"start": {"line": 19, "column": 59}, "end": {"line": 21, "column": 1}}, + "line": 19 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 23, "column": 19}, "end": {"line": 23, "column": 20}}, + "loc": {"start": {"line": 23, "column": 45}, "end": {"line": 31, "column": 1}}, + "line": 23 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 33, "column": 30}, "end": {"line": 33, "column": 31}}, + "loc": {"start": {"line": 33, "column": 56}, "end": {"line": 38, "column": 1}}, + "line": 33 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 40, "column": 21}, "end": {"line": 40, "column": 22}}, + "loc": {"start": {"line": 40, "column": 48}, "end": {"line": 42, "column": 1}}, + "line": 40 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 44, "column": 29}, "end": {"line": 44, "column": 30}}, + "loc": {"start": {"line": 44, "column": 55}, "end": {"line": 50, "column": 1}}, + "line": 44 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 26, "column": 2}, "end": {"line": 28, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 26, "column": 2}, "end": {"line": 28, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 26 + }, + "1": { + "loc": {"start": {"line": 34, "column": 2}, "end": {"line": 36, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 34, "column": 2}, "end": {"line": 36, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 34 + }, + "2": { + "loc": {"start": {"line": 45, "column": 2}, "end": {"line": 47, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 45, "column": 2}, "end": {"line": 47, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 45 + } + }, + "s": { + "0": 1, + "1": 1, + "2": 1, + "3": 0, + "4": 1, + "5": 0, + "6": 1, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 1, + "13": 0, + "14": 0, + "15": 0, + "16": 1, + "17": 0, + "18": 1, + "19": 0, + "20": 0, + "21": 0 + }, + "f": {"0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0}, + "b": {"0": [0, 0], "1": [0, 0], "2": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "d1fe95382d3d56e9c1f4d1cc91cb15613bc38b46" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\utils\\ImageUtils.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\utils\\ImageUtils.ts", + "statementMap": { + "0": {"start": {"line": 8, "column": 23}, "end": {"line": 10, "column": 1}}, + "1": {"start": {"line": 9, "column": 2}, "end": {"line": 9, "column": 74}}, + "2": {"start": {"line": 12, "column": 28}, "end": {"line": 20, "column": 1}}, + "3": {"start": {"line": 13, "column": 2}, "end": {"line": 19, "column": 5}}, + "4": {"start": {"line": 14, "column": 4}, "end": {"line": 18, "column": 6}}, + "5": {"start": {"line": 16, "column": 41}, "end": {"line": 16, "column": 65}}, + "6": {"start": {"line": 17, "column": 15}, "end": {"line": 17, "column": 28}}, + "7": {"start": {"line": 22, "column": 28}, "end": {"line": 24, "column": 1}}, + "8": {"start": {"line": 23, "column": 2}, "end": {"line": 23, "column": 29}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 8, "column": 23}, "end": {"line": 8, "column": 24}}, + "loc": {"start": {"line": 8, "column": 66}, "end": {"line": 10, "column": 1}}, + "line": 8 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 12, "column": 28}, "end": {"line": 12, "column": 29}}, + "loc": {"start": {"line": 12, "column": 65}, "end": {"line": 20, "column": 1}}, + "line": 12 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 13, "column": 21}, "end": {"line": 13, "column": 22}}, + "loc": {"start": {"line": 13, "column": 42}, "end": {"line": 19, "column": 3}}, + "line": 13 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 16, "column": 6}, "end": {"line": 16, "column": 7}}, + "loc": {"start": {"line": 16, "column": 41}, "end": {"line": 16, "column": 65}}, + "line": 16 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 17, "column": 6}, "end": {"line": 17, "column": 7}}, + "loc": {"start": {"line": 17, "column": 15}, "end": {"line": 17, "column": 28}}, + "line": 17 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 22, "column": 28}, "end": {"line": 22, "column": 29}}, + "loc": {"start": {"line": 22, "column": 84}, "end": {"line": 24, "column": 1}}, + "line": 22 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 9, "column": 9}, "end": {"line": 9, "column": 73}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 9, "column": 9}, "end": {"line": 9, "column": 39}}, + {"start": {"line": 9, "column": 43}, "end": {"line": 9, "column": 73}} + ], + "line": 9 + } + }, + "s": {"0": 1, "1": 4, "2": 1, "3": 0, "4": 0, "5": 0, "6": 0, "7": 1, "8": 0}, + "f": {"0": 4, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0}, + "b": {"0": [4, 4]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "334e19abbb4d4cded72621f03dd4a8b2758a4510" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\utils\\KeyUtils.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\utils\\KeyUtils.ts", + "statementMap": { + "0": {"start": {"line": 5, "column": 45}, "end": {"line": 17, "column": 1}}, + "1": {"start": {"line": 6, "column": 2}, "end": {"line": 16, "column": 3}}, + "2": {"start": {"line": 9, "column": 6}, "end": {"line": 9, "column": 42}}, + "3": {"start": {"line": 11, "column": 6}, "end": {"line": 11, "column": 42}}, + "4": {"start": {"line": 13, "column": 6}, "end": {"line": 13, "column": 43}}, + "5": {"start": {"line": 15, "column": 6}, "end": {"line": 15, "column": 58}}, + "6": {"start": {"line": 19, "column": 41}, "end": {"line": 21, "column": 1}}, + "7": {"start": {"line": 20, "column": 2}, "end": {"line": 20, "column": 49}}, + "8": {"start": {"line": 24, "column": 45}, "end": {"line": 40, "column": 1}}, + "9": {"start": {"line": 25, "column": 2}, "end": {"line": 39, "column": 3}}, + "10": {"start": {"line": 30, "column": 6}, "end": {"line": 30, "column": 23}}, + "11": {"start": {"line": 33, "column": 6}, "end": {"line": 33, "column": 25}}, + "12": {"start": {"line": 36, "column": 6}, "end": {"line": 36, "column": 25}}, + "13": {"start": {"line": 38, "column": 6}, "end": {"line": 38, "column": 70}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 5, "column": 45}, "end": {"line": 5, "column": 46}}, + "loc": {"start": {"line": 5, "column": 65}, "end": {"line": 17, "column": 1}}, + "line": 5 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 19, "column": 41}, "end": {"line": 19, "column": 42}}, + "loc": {"start": {"line": 19, "column": 56}, "end": {"line": 21, "column": 1}}, + "line": 19 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 24, "column": 45}, "end": {"line": 24, "column": 46}}, + "loc": {"start": {"line": 24, "column": 74}, "end": {"line": 40, "column": 1}}, + "line": 24 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 6, "column": 2}, "end": {"line": 16, "column": 3}}, + "type": "switch", + "locations": [ + {"start": {"line": 7, "column": 4}, "end": {"line": 7, "column": 19}}, + {"start": {"line": 8, "column": 4}, "end": {"line": 9, "column": 42}}, + {"start": {"line": 10, "column": 4}, "end": {"line": 11, "column": 42}}, + {"start": {"line": 12, "column": 4}, "end": {"line": 13, "column": 43}}, + {"start": {"line": 14, "column": 4}, "end": {"line": 15, "column": 58}} + ], + "line": 6 + }, + "1": { + "loc": {"start": {"line": 25, "column": 2}, "end": {"line": 39, "column": 3}}, + "type": "switch", + "locations": [ + {"start": {"line": 26, "column": 4}, "end": {"line": 26, "column": 17}}, + {"start": {"line": 27, "column": 4}, "end": {"line": 27, "column": 32}}, + {"start": {"line": 28, "column": 4}, "end": {"line": 28, "column": 32}}, + {"start": {"line": 29, "column": 4}, "end": {"line": 30, "column": 23}}, + {"start": {"line": 31, "column": 4}, "end": {"line": 31, "column": 32}}, + {"start": {"line": 32, "column": 4}, "end": {"line": 33, "column": 25}}, + {"start": {"line": 34, "column": 4}, "end": {"line": 34, "column": 39}}, + {"start": {"line": 35, "column": 4}, "end": {"line": 36, "column": 25}}, + {"start": {"line": 37, "column": 4}, "end": {"line": 38, "column": 70}} + ], + "line": 25 + } + }, + "s": {"0": 1, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 1, "7": 0, "8": 1, "9": 0, "10": 0, "11": 0, "12": 0, "13": 0}, + "f": {"0": 0, "1": 0, "2": 0}, + "b": {"0": [0, 0, 0, 0, 0], "1": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "939ac319b805210b76622f820cca15fc93336f4d" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\utils\\NavigationUtils.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\utils\\NavigationUtils.ts", + "statementMap": { + "0": {"start": {"line": 15, "column": 37}, "end": {"line": 41, "column": 1}}, + "1": {"start": {"line": 16, "column": 49}, "end": {"line": 16, "column": 86}}, + "2": {"start": {"line": 17, "column": 2}, "end": {"line": 19, "column": 3}}, + "3": {"start": {"line": 18, "column": 4}, "end": {"line": 18, "column": 11}}, + "4": {"start": {"line": 21, "column": 20}, "end": {"line": 21, "column": 97}}, + "5": {"start": {"line": 21, "column": 68}, "end": {"line": 21, "column": 89}}, + "6": {"start": {"line": 22, "column": 2}, "end": {"line": 24, "column": 3}}, + "7": {"start": {"line": 23, "column": 4}, "end": {"line": 23, "column": 11}}, + "8": {"start": {"line": 26, "column": 20}, "end": {"line": 26, "column": 96}}, + "9": {"start": {"line": 26, "column": 68}, "end": {"line": 26, "column": 89}}, + "10": {"start": {"line": 27, "column": 23}, "end": {"line": 27, "column": 103}}, + "11": {"start": {"line": 27, "column": 71}, "end": {"line": 27, "column": 96}}, + "12": {"start": {"line": 29, "column": 2}, "end": {"line": 31, "column": 3}}, + "13": {"start": {"line": 30, "column": 4}, "end": {"line": 30, "column": 11}}, + "14": {"start": {"line": 33, "column": 25}, "end": {"line": 33, "column": 122}}, + "15": {"start": {"line": 33, "column": 88}, "end": {"line": 33, "column": 121}}, + "16": {"start": {"line": 35, "column": 2}, "end": {"line": 40, "column": 4}}, + "17": {"start": {"line": 38, "column": 60}, "end": {"line": 38, "column": 100}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 15, "column": 37}, "end": {"line": 15, "column": 38}}, + "loc": {"start": {"line": 15, "column": 80}, "end": {"line": 41, "column": 1}}, + "line": 15 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 21, "column": 42}, "end": {"line": 21, "column": 43}}, + "loc": {"start": {"line": 21, "column": 68}, "end": {"line": 21, "column": 89}}, + "line": 21 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 26, "column": 42}, "end": {"line": 26, "column": 43}}, + "loc": {"start": {"line": 26, "column": 68}, "end": {"line": 26, "column": 89}}, + "line": 26 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 27, "column": 45}, "end": {"line": 27, "column": 46}}, + "loc": {"start": {"line": 27, "column": 71}, "end": {"line": 27, "column": 96}}, + "line": 27 + }, + "4": { + "name": "(anonymous_4)", + "decl": {"start": {"line": 33, "column": 52}, "end": {"line": 33, "column": 53}}, + "loc": {"start": {"line": 33, "column": 88}, "end": {"line": 33, "column": 121}}, + "line": 33 + }, + "5": { + "name": "(anonymous_5)", + "decl": {"start": {"line": 38, "column": 33}, "end": {"line": 38, "column": 34}}, + "loc": {"start": {"line": 38, "column": 60}, "end": {"line": 38, "column": 100}}, + "line": 38 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 17, "column": 2}, "end": {"line": 19, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 17, "column": 2}, "end": {"line": 19, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 17 + }, + "1": { + "loc": {"start": {"line": 22, "column": 2}, "end": {"line": 24, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 22, "column": 2}, "end": {"line": 24, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 22 + }, + "2": { + "loc": {"start": {"line": 29, "column": 2}, "end": {"line": 31, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 29, "column": 2}, "end": {"line": 31, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 29 + } + }, + "s": { + "0": 1, + "1": 0, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0 + }, + "f": {"0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0}, + "b": {"0": [0, 0], "1": [0, 0], "2": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "a3af08e76f6127a2eaf737b7942a9a1f560bac82" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\utils\\SortUtils.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\utils\\SortUtils.ts", + "statementMap": { + "0": {"start": {"line": 4, "column": 2}, "end": {"line": 6, "column": 4}}, + "1": {"start": {"line": 5, "column": 4}, "end": {"line": 5, "column": 119}}, + "2": {"start": {"line": 9, "column": 4}, "end": {"line": 9, "column": 44}} + }, + "fnMap": { + "0": { + "name": "sortBy", + "decl": {"start": {"line": 3, "column": 16}, "end": {"line": 3, "column": 22}}, + "loc": {"start": {"line": 3, "column": 58}, "end": {"line": 11, "column": 1}}, + "line": 3 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 4, "column": 9}, "end": {"line": 4, "column": 10}}, + "loc": {"start": {"line": 4, "column": 31}, "end": {"line": 6, "column": 3}}, + "line": 4 + }, + "2": { + "name": "orderToNumberSign", + "decl": {"start": {"line": 8, "column": 11}, "end": {"line": 8, "column": 28}}, + "loc": {"start": {"line": 8, "column": 47}, "end": {"line": 10, "column": 3}}, + "line": 8 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 9, "column": 11}, "end": {"line": 9, "column": 43}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 9, "column": 37}, "end": {"line": 9, "column": 38}}, + {"start": {"line": 9, "column": 41}, "end": {"line": 9, "column": 43}} + ], + "line": 9 + } + }, + "s": {"0": 1, "1": 0, "2": 0}, + "f": {"0": 1, "1": 0, "2": 0}, + "b": {"0": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "691c10a1f0a760fbfa0aa7dd7dc0c8e9b51e8cdb" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\utils\\TextUtils.tsx": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\utils\\TextUtils.tsx", + "statementMap": { + "0": {"start": {"line": 4, "column": 21}, "end": {"line": 4, "column": 36}}, + "1": {"start": {"line": 6, "column": 34}, "end": {"line": 21, "column": 1}}, + "2": {"start": {"line": 7, "column": 16}, "end": {"line": 18, "column": 4}}, + "3": {"start": {"line": 8, "column": 4}, "end": {"line": 17, "column": 5}}, + "4": {"start": {"line": 9, "column": 20}, "end": {"line": 9, "column": 47}}, + "5": {"start": {"line": 10, "column": 6}, "end": {"line": 14, "column": 8}}, + "6": {"start": {"line": 16, "column": 6}, "end": {"line": 16, "column": 18}}, + "7": {"start": {"line": 20, "column": 2}, "end": {"line": 20, "column": 30}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 6, "column": 34}, "end": {"line": 6, "column": 35}}, + "loc": {"start": {"line": 6, "column": 65}, "end": {"line": 21, "column": 1}}, + "line": 6 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 7, "column": 48}, "end": {"line": 7, "column": 49}}, + "loc": {"start": {"line": 7, "column": 56}, "end": {"line": 18, "column": 3}}, + "line": 7 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 8, "column": 4}, "end": {"line": 17, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 8, "column": 4}, "end": {"line": 17, "column": 5}}, + {"start": {"line": 15, "column": 11}, "end": {"line": 17, "column": 5}} + ], + "line": 8 + } + }, + "s": {"0": 1, "1": 1, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0}, + "f": {"0": 0, "1": 0}, + "b": {"0": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "4ad0c81347e980c069359aa4af16adfb64a61cac" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\utils\\ToastUtils.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\utils\\ToastUtils.ts", + "statementMap": { + "0": {"start": {"line": 5, "column": 25}, "end": {"line": 16, "column": 1}}, + "1": {"start": {"line": 6, "column": 38}, "end": {"line": 6, "column": 44}}, + "2": {"start": {"line": 7, "column": 2}, "end": {"line": 15, "column": 5}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 5, "column": 25}, "end": {"line": 5, "column": 26}}, + "loc": {"start": {"line": 5, "column": 78}, "end": {"line": 16, "column": 1}}, + "line": 5 + } + }, + "branchMap": {}, + "s": {"0": 1, "1": 0, "2": 0}, + "f": {"0": 0}, + "b": {}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "23fe7c0b89570c09394c83b67e9848c9e3f285d3" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\utils\\UserUtils.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\utils\\UserUtils.ts", + "statementMap": { + "0": {"start": {"line": 1, "column": 27}, "end": {"line": 26, "column": 1}}, + "1": {"start": {"line": 2, "column": 2}, "end": {"line": 23, "column": 3}}, + "2": {"start": {"line": 3, "column": 27}, "end": {"line": 3, "column": 53}}, + "3": {"start": {"line": 5, "column": 23}, "end": {"line": 5, "column": 25}}, + "4": {"start": {"line": 6, "column": 22}, "end": {"line": 6, "column": 24}}, + "5": {"start": {"line": 8, "column": 4}, "end": {"line": 20, "column": 5}}, + "6": {"start": {"line": 9, "column": 24}, "end": {"line": 9, "column": 41}}, + "7": {"start": {"line": 10, "column": 6}, "end": {"line": 12, "column": 7}}, + "8": {"start": {"line": 11, "column": 8}, "end": {"line": 11, "column": 36}}, + "9": {"start": {"line": 14, "column": 6}, "end": {"line": 19, "column": 7}}, + "10": {"start": {"line": 15, "column": 25}, "end": {"line": 15, "column": 66}}, + "11": {"start": {"line": 16, "column": 8}, "end": {"line": 18, "column": 9}}, + "12": {"start": {"line": 17, "column": 10}, "end": {"line": 17, "column": 36}}, + "13": {"start": {"line": 21, "column": 21}, "end": {"line": 21, "column": 52}}, + "14": {"start": {"line": 22, "column": 4}, "end": {"line": 22, "column": 34}}, + "15": {"start": {"line": 25, "column": 2}, "end": {"line": 25, "column": 13}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 1, "column": 27}, "end": {"line": 1, "column": 28}}, + "loc": {"start": {"line": 1, "column": 57}, "end": {"line": 26, "column": 1}}, + "line": 1 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 2, "column": 2}, "end": {"line": 23, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 2, "column": 2}, "end": {"line": 23, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 2 + }, + "1": { + "loc": {"start": {"line": 2, "column": 6}, "end": {"line": 2, "column": 37}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 2, "column": 6}, "end": {"line": 2, "column": 14}}, + {"start": {"line": 2, "column": 18}, "end": {"line": 2, "column": 37}} + ], + "line": 2 + }, + "2": { + "loc": {"start": {"line": 8, "column": 4}, "end": {"line": 20, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 8, "column": 4}, "end": {"line": 20, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 8 + }, + "3": { + "loc": {"start": {"line": 10, "column": 6}, "end": {"line": 12, "column": 7}}, + "type": "if", + "locations": [ + {"start": {"line": 10, "column": 6}, "end": {"line": 12, "column": 7}}, + {"start": {}, "end": {}} + ], + "line": 10 + }, + "4": { + "loc": {"start": {"line": 14, "column": 6}, "end": {"line": 19, "column": 7}}, + "type": "if", + "locations": [ + {"start": {"line": 14, "column": 6}, "end": {"line": 19, "column": 7}}, + {"start": {}, "end": {}} + ], + "line": 14 + }, + "5": { + "loc": {"start": {"line": 16, "column": 8}, "end": {"line": 18, "column": 9}}, + "type": "if", + "locations": [ + {"start": {"line": 16, "column": 8}, "end": {"line": 18, "column": 9}}, + {"start": {}, "end": {}} + ], + "line": 16 + } + }, + "s": {"0": 1, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0, "10": 0, "11": 0, "12": 0, "13": 0, "14": 0, "15": 0}, + "f": {"0": 0}, + "b": {"0": [0, 0], "1": [0, 0], "2": [0, 0], "3": [0, 0], "4": [0, 0], "5": [0, 0]}, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "65996a2e46bbf7b949916d6826b63168266b11d4" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\utils\\mappers\\branding\\OIDC4VCIBrandingMapper.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\utils\\mappers\\branding\\OIDC4VCIBrandingMapper.ts", + "statementMap": { + "0": {"start": {"line": 4, "column": 44}, "end": {"line": 49, "column": 1}}, + "1": {"start": {"line": 5, "column": 2}, "end": {"line": 48, "column": 4}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 4, "column": 44}, "end": {"line": 4, "column": 45}}, + "loc": {"start": {"line": 4, "column": 143}, "end": {"line": 49, "column": 1}}, + "line": 4 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 6, "column": 8}, "end": {"line": 8, "column": 5}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 6, "column": 8}, "end": {"line": 6, "column": 30}}, + {"start": {"line": 6, "column": 34}, "end": {"line": 8, "column": 5}} + ], + "line": 6 + }, + "1": { + "loc": {"start": {"line": 9, "column": 8}, "end": {"line": 11, "column": 5}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 9, "column": 8}, "end": {"line": 9, "column": 32}}, + {"start": {"line": 9, "column": 36}, "end": {"line": 11, "column": 5}} + ], + "line": 9 + }, + "2": { + "loc": {"start": {"line": 12, "column": 8}, "end": {"line": 21, "column": 5}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 12, "column": 8}, "end": {"line": 12, "column": 30}}, + {"start": {"line": 12, "column": 34}, "end": {"line": 21, "column": 5}} + ], + "line": 12 + }, + "3": { + "loc": {"start": {"line": 14, "column": 12}, "end": {"line": 16, "column": 9}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 14, "column": 12}, "end": {"line": 14, "column": 38}}, + {"start": {"line": 14, "column": 42}, "end": {"line": 16, "column": 9}} + ], + "line": 14 + }, + "4": { + "loc": {"start": {"line": 17, "column": 12}, "end": {"line": 19, "column": 9}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 17, "column": 12}, "end": {"line": 17, "column": 43}}, + {"start": {"line": 17, "column": 47}, "end": {"line": 19, "column": 9}} + ], + "line": 17 + }, + "5": { + "loc": {"start": {"line": 22, "column": 8}, "end": {"line": 24, "column": 5}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 22, "column": 8}, "end": {"line": 22, "column": 37}}, + {"start": {"line": 22, "column": 41}, "end": {"line": 24, "column": 5}} + ], + "line": 22 + }, + "6": { + "loc": {"start": {"line": 26, "column": 8}, "end": {"line": 30, "column": 5}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 26, "column": 8}, "end": {"line": 26, "column": 36}}, + {"start": {"line": 26, "column": 40}, "end": {"line": 30, "column": 5}} + ], + "line": 26 + }, + "7": { + "loc": {"start": {"line": 31, "column": 8}, "end": {"line": 47, "column": 5}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 31, "column": 9}, "end": {"line": 31, "column": 43}}, + {"start": {"line": 31, "column": 47}, "end": {"line": 31, "column": 81}}, + {"start": {"line": 31, "column": 86}, "end": {"line": 47, "column": 5}} + ], + "line": 31 + }, + "8": { + "loc": {"start": {"line": 33, "column": 12}, "end": {"line": 42, "column": 9}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 33, "column": 12}, "end": {"line": 33, "column": 46}}, + {"start": {"line": 33, "column": 50}, "end": {"line": 42, "column": 9}} + ], + "line": 33 + }, + "9": { + "loc": {"start": {"line": 35, "column": 16}, "end": {"line": 37, "column": 13}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 35, "column": 16}, "end": {"line": 35, "column": 54}}, + {"start": {"line": 35, "column": 58}, "end": {"line": 37, "column": 13}} + ], + "line": 35 + }, + "10": { + "loc": {"start": {"line": 38, "column": 16}, "end": {"line": 40, "column": 13}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 38, "column": 16}, "end": {"line": 38, "column": 59}}, + {"start": {"line": 38, "column": 63}, "end": {"line": 40, "column": 13}} + ], + "line": 38 + }, + "11": { + "loc": {"start": {"line": 43, "column": 12}, "end": {"line": 45, "column": 9}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 43, "column": 12}, "end": {"line": 43, "column": 46}}, + {"start": {"line": 43, "column": 50}, "end": {"line": 45, "column": 9}} + ], + "line": 43 + } + }, + "s": {"0": 1, "1": 0}, + "f": {"0": 0}, + "b": { + "0": [0, 0], + "1": [0, 0], + "2": [0, 0], + "3": [0, 0], + "4": [0, 0], + "5": [0, 0], + "6": [0, 0], + "7": [0, 0, 0], + "8": [0, 0], + "9": [0, 0], + "10": [0, 0], + "11": [0, 0] + }, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "f9ed41daca572147fae1a5820d51f3751e8091c0" + }, + "C:\\dev\\git\\ssi-mobile-wallet\\src\\utils\\mappers\\credential\\CredentialMapper.ts": { + "path": "C:\\dev\\git\\ssi-mobile-wallet\\src\\utils\\mappers\\credential\\CredentialMapper.ts", + "statementMap": { + "0": {"start": {"line": 12, "column": 21}, "end": {"line": 12, "column": 36}}, + "1": {"start": {"line": 14, "column": 31}, "end": {"line": 71, "column": 1}}, + "2": {"start": {"line": 15, "column": 38}, "end": {"line": 15, "column": 40}}, + "3": {"start": {"line": 17, "column": 2}, "end": {"line": 68, "column": 3}}, + "4": {"start": {"line": 19, "column": 4}, "end": {"line": 35, "column": 5}}, + "5": {"start": {"line": 20, "column": 20}, "end": {"line": 20, "column": 64}}, + "6": {"start": {"line": 21, "column": 6}, "end": {"line": 26, "column": 9}}, + "7": {"start": {"line": 27, "column": 6}, "end": {"line": 27, "column": 15}}, + "8": {"start": {"line": 28, "column": 11}, "end": {"line": 35, "column": 5}}, + "9": {"start": {"line": 29, "column": 6}, "end": {"line": 33, "column": 9}}, + "10": {"start": {"line": 34, "column": 6}, "end": {"line": 34, "column": 15}}, + "11": {"start": {"line": 37, "column": 4}, "end": {"line": 67, "column": 5}}, + "12": {"start": {"line": 44, "column": 6}, "end": {"line": 44, "column": 62}}, + "13": {"start": {"line": 46, "column": 6}, "end": {"line": 46, "column": 40}}, + "14": {"start": {"line": 47, "column": 6}, "end": {"line": 49, "column": 7}}, + "15": {"start": {"line": 48, "column": 8}, "end": {"line": 48, "column": 17}}, + "16": {"start": {"line": 51, "column": 18}, "end": {"line": 51, "column": 21}}, + "17": {"start": {"line": 52, "column": 6}, "end": {"line": 54, "column": 7}}, + "18": {"start": {"line": 53, "column": 8}, "end": {"line": 53, "column": 26}}, + "19": {"start": {"line": 56, "column": 6}, "end": {"line": 59, "column": 7}}, + "20": {"start": {"line": 57, "column": 8}, "end": {"line": 57, "column": 37}}, + "21": {"start": {"line": 58, "column": 8}, "end": {"line": 58, "column": 52}}, + "22": {"start": {"line": 61, "column": 6}, "end": {"line": 66, "column": 9}}, + "23": {"start": {"line": 70, "column": 2}, "end": {"line": 70, "column": 14}}, + "24": {"start": {"line": 78, "column": 47}, "end": {"line": 89, "column": 1}}, + "25": {"start": {"line": 82, "column": 2}, "end": {"line": 88, "column": 4}}, + "26": {"start": {"line": 97, "column": 35}, "end": {"line": 159, "column": 1}}, + "27": {"start": {"line": 101, "column": 33}, "end": {"line": 103, "column": 7}}, + "28": {"start": {"line": 104, "column": 28}, "end": {"line": 104, "column": 102}}, + "29": {"start": {"line": 106, "column": 45}, "end": {"line": 106, "column": 86}}, + "30": {"start": {"line": 108, "column": 16}, "end": {"line": 114, "column": 103}}, + "31": {"start": {"line": 114, "column": 67}, "end": {"line": 114, "column": 99}}, + "32": {"start": {"line": 115, "column": 2}, "end": {"line": 115, "column": 95}}, + "33": {"start": {"line": 116, "column": 51}, "end": {"line": 116, "column": 119}}, + "34": {"start": {"line": 118, "column": 69}, "end": {"line": 118, "column": 126}}, + "35": {"start": {"line": 119, "column": 15}, "end": {"line": 119, "column": 66}}, + "36": {"start": {"line": 120, "column": 14}, "end": {"line": 120, "column": 107}}, + "37": {"start": {"line": 123, "column": 4}, "end": {"line": 125, "column": 76}}, + "38": {"start": {"line": 127, "column": 2}, "end": {"line": 127, "column": 31}}, + "39": {"start": {"line": 128, "column": 40}, "end": {"line": 128, "column": 49}}, + "40": {"start": {"line": 129, "column": 2}, "end": {"line": 133, "column": 3}}, + "41": {"start": {"line": 132, "column": 4}, "end": {"line": 132, "column": 51}}, + "42": {"start": {"line": 134, "column": 2}, "end": {"line": 139, "column": 3}}, + "43": {"start": {"line": 135, "column": 4}, "end": {"line": 138, "column": 72}}, + "44": {"start": {"line": 140, "column": 2}, "end": {"line": 142, "column": 3}}, + "45": {"start": {"line": 141, "column": 4}, "end": {"line": 141, "column": 49}}, + "46": {"start": {"line": 143, "column": 2}, "end": {"line": 158, "column": 4}}, + "47": {"start": {"line": 164, "column": 2}, "end": {"line": 166, "column": 3}}, + "48": {"start": {"line": 165, "column": 4}, "end": {"line": 165, "column": 66}}, + "49": {"start": {"line": 167, "column": 2}, "end": {"line": 173, "column": 3}}, + "50": {"start": {"line": 168, "column": 4}, "end": {"line": 172, "column": 5}}, + "51": {"start": {"line": 169, "column": 6}, "end": {"line": 169, "column": 74}}, + "52": {"start": {"line": 170, "column": 11}, "end": {"line": 172, "column": 5}}, + "53": {"start": {"line": 171, "column": 6}, "end": {"line": 171, "column": 75}}, + "54": {"start": {"line": 174, "column": 2}, "end": {"line": 174, "column": 14}}, + "55": {"start": {"line": 178, "column": 2}, "end": {"line": 190, "column": 3}}, + "56": {"start": {"line": 179, "column": 4}, "end": {"line": 179, "column": 21}}, + "57": {"start": {"line": 180, "column": 9}, "end": {"line": 190, "column": 3}}, + "58": {"start": {"line": 181, "column": 4}, "end": {"line": 181, "column": 17}}, + "59": {"start": {"line": 182, "column": 9}, "end": {"line": 190, "column": 3}}, + "60": {"start": {"line": 183, "column": 4}, "end": {"line": 189, "column": 5}}, + "61": {"start": {"line": 184, "column": 6}, "end": {"line": 184, "column": 22}}, + "62": {"start": {"line": 185, "column": 11}, "end": {"line": 189, "column": 5}}, + "63": {"start": {"line": 186, "column": 6}, "end": {"line": 186, "column": 23}}, + "64": {"start": {"line": 187, "column": 11}, "end": {"line": 189, "column": 5}}, + "65": {"start": {"line": 188, "column": 6}, "end": {"line": 188, "column": 23}}, + "66": {"start": {"line": 191, "column": 2}, "end": {"line": 191, "column": 19}} + }, + "fnMap": { + "0": { + "name": "(anonymous_0)", + "decl": {"start": {"line": 14, "column": 31}, "end": {"line": 14, "column": 32}}, + "loc": {"start": {"line": 14, "column": 104}, "end": {"line": 71, "column": 1}}, + "line": 14 + }, + "1": { + "name": "(anonymous_1)", + "decl": {"start": {"line": 78, "column": 47}, "end": {"line": 78, "column": 48}}, + "loc": {"start": {"line": 81, "column": 34}, "end": {"line": 89, "column": 1}}, + "line": 81 + }, + "2": { + "name": "(anonymous_2)", + "decl": {"start": {"line": 97, "column": 35}, "end": {"line": 97, "column": 36}}, + "loc": {"start": {"line": 100, "column": 34}, "end": {"line": 159, "column": 1}}, + "line": 100 + }, + "3": { + "name": "(anonymous_3)", + "decl": {"start": {"line": 114, "column": 39}, "end": {"line": 114, "column": 40}}, + "loc": {"start": {"line": 114, "column": 67}, "end": {"line": 114, "column": 99}}, + "line": 114 + }, + "4": { + "name": "getIssuerLogo", + "decl": {"start": {"line": 161, "column": 16}, "end": {"line": 161, "column": 29}}, + "loc": {"start": {"line": 161, "column": 144}, "end": {"line": 175, "column": 1}}, + "line": 161 + }, + "5": { + "name": "getImageFromObjectOrString", + "decl": {"start": {"line": 177, "column": 16}, "end": {"line": 177, "column": 42}}, + "loc": {"start": {"line": 177, "column": 88}, "end": {"line": 192, "column": 1}}, + "line": 177 + } + }, + "branchMap": { + "0": { + "loc": {"start": {"line": 19, "column": 4}, "end": {"line": 35, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 19, "column": 4}, "end": {"line": 35, "column": 5}}, + {"start": {"line": 28, "column": 11}, "end": {"line": 35, "column": 5}} + ], + "line": 19 + }, + "1": { + "loc": {"start": {"line": 20, "column": 20}, "end": {"line": 20, "column": 64}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 20, "column": 48}, "end": {"line": 20, "column": 53}}, + {"start": {"line": 20, "column": 56}, "end": {"line": 20, "column": 64}} + ], + "line": 20 + }, + "2": { + "loc": {"start": {"line": 25, "column": 19}, "end": {"line": 25, "column": 81}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 25, "column": 44}, "end": {"line": 25, "column": 69}}, + {"start": {"line": 25, "column": 72}, "end": {"line": 25, "column": 81}} + ], + "line": 25 + }, + "3": { + "loc": {"start": {"line": 28, "column": 11}, "end": {"line": 35, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 28, "column": 11}, "end": {"line": 35, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 28 + }, + "4": { + "loc": {"start": {"line": 37, "column": 4}, "end": {"line": 67, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 37, "column": 4}, "end": {"line": 67, "column": 5}}, + {"start": {"line": 45, "column": 11}, "end": {"line": 67, "column": 5}} + ], + "line": 37 + }, + "5": { + "loc": {"start": {"line": 47, "column": 6}, "end": {"line": 49, "column": 7}}, + "type": "if", + "locations": [ + {"start": {"line": 47, "column": 6}, "end": {"line": 49, "column": 7}}, + {"start": {}, "end": {}} + ], + "line": 47 + }, + "6": { + "loc": {"start": {"line": 47, "column": 10}, "end": {"line": 47, "column": 44}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 47, "column": 10}, "end": {"line": 47, "column": 21}}, + {"start": {"line": 47, "column": 25}, "end": {"line": 47, "column": 44}} + ], + "line": 47 + }, + "7": { + "loc": {"start": {"line": 52, "column": 6}, "end": {"line": 54, "column": 7}}, + "type": "if", + "locations": [ + {"start": {"line": 52, "column": 6}, "end": {"line": 54, "column": 7}}, + {"start": {}, "end": {}} + ], + "line": 52 + }, + "8": { + "loc": {"start": {"line": 52, "column": 10}, "end": {"line": 52, "column": 50}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 52, "column": 10}, "end": {"line": 52, "column": 22}}, + {"start": {"line": 52, "column": 26}, "end": {"line": 52, "column": 50}} + ], + "line": 52 + }, + "9": { + "loc": {"start": {"line": 56, "column": 6}, "end": {"line": 59, "column": 7}}, + "type": "if", + "locations": [ + {"start": {"line": 56, "column": 6}, "end": {"line": 59, "column": 7}}, + {"start": {}, "end": {}} + ], + "line": 56 + }, + "10": { + "loc": {"start": {"line": 65, "column": 19}, "end": {"line": 65, "column": 81}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 65, "column": 44}, "end": {"line": 65, "column": 69}}, + {"start": {"line": 65, "column": 72}, "end": {"line": 65, "column": 81}} + ], + "line": 65 + }, + "11": { + "loc": {"start": {"line": 85, "column": 12}, "end": {"line": 85, "column": 101}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 85, "column": 12}, "end": {"line": 85, "column": 35}}, + {"start": {"line": 85, "column": 39}, "end": {"line": 85, "column": 101}} + ], + "line": 85 + }, + "12": { + "loc": {"start": {"line": 101, "column": 33}, "end": {"line": 103, "column": 7}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 102, "column": 6}, "end": {"line": 102, "column": 82}}, + {"start": {"line": 103, "column": 6}, "end": {"line": 103, "column": 7}} + ], + "line": 101 + }, + "13": { + "loc": {"start": {"line": 108, "column": 16}, "end": {"line": 114, "column": 103}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 109, "column": 6}, "end": {"line": 109, "column": 31}}, + {"start": {"line": 110, "column": 6}, "end": {"line": 114, "column": 103}} + ], + "line": 108 + }, + "14": { + "loc": {"start": {"line": 110, "column": 6}, "end": {"line": 114, "column": 103}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 111, "column": 6}, "end": {"line": 111, "column": 15}}, + {"start": {"line": 112, "column": 6}, "end": {"line": 114, "column": 103}} + ], + "line": 110 + }, + "15": { + "loc": {"start": {"line": 112, "column": 6}, "end": {"line": 114, "column": 103}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 113, "column": 6}, "end": {"line": 113, "column": 31}}, + {"start": {"line": 114, "column": 6}, "end": {"line": 114, "column": 103}} + ], + "line": 112 + }, + "16": { + "loc": {"start": {"line": 120, "column": 14}, "end": {"line": 120, "column": 107}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 120, "column": 64}, "end": {"line": 120, "column": 95}}, + {"start": {"line": 120, "column": 98}, "end": {"line": 120, "column": 107}} + ], + "line": 120 + }, + "17": { + "loc": {"start": {"line": 123, "column": 4}, "end": {"line": 125, "column": 76}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 124, "column": 8}, "end": {"line": 124, "column": 35}}, + {"start": {"line": 125, "column": 8}, "end": {"line": 125, "column": 76}} + ], + "line": 123 + }, + "18": { + "loc": {"start": {"line": 125, "column": 8}, "end": {"line": 125, "column": 76}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 125, "column": 8}, "end": {"line": 125, "column": 41}}, + {"start": {"line": 125, "column": 45}, "end": {"line": 125, "column": 76}} + ], + "line": 125 + }, + "19": { + "loc": {"start": {"line": 129, "column": 2}, "end": {"line": 133, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 129, "column": 2}, "end": {"line": 133, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 129 + }, + "20": { + "loc": {"start": {"line": 129, "column": 6}, "end": {"line": 129, "column": 91}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 129, "column": 6}, "end": {"line": 129, "column": 54}}, + {"start": {"line": 129, "column": 58}, "end": {"line": 129, "column": 91}} + ], + "line": 129 + }, + "21": { + "loc": {"start": {"line": 134, "column": 2}, "end": {"line": 139, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 134, "column": 2}, "end": {"line": 139, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 134 + }, + "22": { + "loc": {"start": {"line": 136, "column": 6}, "end": {"line": 138, "column": 71}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 137, "column": 10}, "end": {"line": 137, "column": 67}}, + {"start": {"line": 138, "column": 10}, "end": {"line": 138, "column": 71}} + ], + "line": 136 + }, + "23": { + "loc": {"start": {"line": 140, "column": 2}, "end": {"line": 142, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 140, "column": 2}, "end": {"line": 142, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 140 + }, + "24": { + "loc": {"start": {"line": 146, "column": 11}, "end": {"line": 146, "column": 41}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 146, "column": 11}, "end": {"line": 146, "column": 32}}, + {"start": {"line": 146, "column": 36}, "end": {"line": 146, "column": 41}} + ], + "line": 146 + }, + "25": { + "loc": {"start": {"line": 154, "column": 13}, "end": {"line": 154, "column": 89}}, + "type": "cond-expr", + "locations": [ + {"start": {"line": 154, "column": 39}, "end": {"line": 154, "column": 75}}, + {"start": {"line": 154, "column": 78}, "end": {"line": 154, "column": 89}} + ], + "line": 154 + }, + "26": { + "loc": {"start": {"line": 164, "column": 2}, "end": {"line": 166, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 164, "column": 2}, "end": {"line": 166, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 164 + }, + "27": { + "loc": {"start": {"line": 165, "column": 11}, "end": {"line": 165, "column": 65}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 165, "column": 11}, "end": {"line": 165, "column": 38}}, + {"start": {"line": 165, "column": 42}, "end": {"line": 165, "column": 65}} + ], + "line": 165 + }, + "28": { + "loc": {"start": {"line": 167, "column": 2}, "end": {"line": 173, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 167, "column": 2}, "end": {"line": 173, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 167 + }, + "29": { + "loc": {"start": {"line": 167, "column": 6}, "end": {"line": 167, "column": 62}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 167, "column": 6}, "end": {"line": 167, "column": 11}}, + {"start": {"line": 167, "column": 15}, "end": {"line": 167, "column": 62}} + ], + "line": 167 + }, + "30": { + "loc": {"start": {"line": 168, "column": 4}, "end": {"line": 172, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 168, "column": 4}, "end": {"line": 172, "column": 5}}, + {"start": {"line": 170, "column": 11}, "end": {"line": 172, "column": 5}} + ], + "line": 168 + }, + "31": { + "loc": {"start": {"line": 168, "column": 8}, "end": {"line": 168, "column": 81}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 168, "column": 8}, "end": {"line": 168, "column": 45}}, + {"start": {"line": 168, "column": 49}, "end": {"line": 168, "column": 81}} + ], + "line": 168 + }, + "32": { + "loc": {"start": {"line": 170, "column": 11}, "end": {"line": 172, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 170, "column": 11}, "end": {"line": 172, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 170 + }, + "33": { + "loc": {"start": {"line": 178, "column": 2}, "end": {"line": 190, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 178, "column": 2}, "end": {"line": 190, "column": 3}}, + {"start": {"line": 180, "column": 9}, "end": {"line": 190, "column": 3}} + ], + "line": 178 + }, + "34": { + "loc": {"start": {"line": 180, "column": 9}, "end": {"line": 190, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 180, "column": 9}, "end": {"line": 190, "column": 3}}, + {"start": {"line": 182, "column": 9}, "end": {"line": 190, "column": 3}} + ], + "line": 180 + }, + "35": { + "loc": {"start": {"line": 180, "column": 13}, "end": {"line": 180, "column": 58}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 180, "column": 13}, "end": {"line": 180, "column": 38}}, + {"start": {"line": 180, "column": 42}, "end": {"line": 180, "column": 58}} + ], + "line": 180 + }, + "36": { + "loc": {"start": {"line": 182, "column": 9}, "end": {"line": 190, "column": 3}}, + "type": "if", + "locations": [ + {"start": {"line": 182, "column": 9}, "end": {"line": 190, "column": 3}}, + {"start": {}, "end": {}} + ], + "line": 182 + }, + "37": { + "loc": {"start": {"line": 183, "column": 4}, "end": {"line": 189, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 183, "column": 4}, "end": {"line": 189, "column": 5}}, + {"start": {"line": 185, "column": 11}, "end": {"line": 189, "column": 5}} + ], + "line": 183 + }, + "38": { + "loc": {"start": {"line": 183, "column": 8}, "end": {"line": 183, "column": 81}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 183, "column": 8}, "end": {"line": 183, "column": 21}}, + {"start": {"line": 183, "column": 25}, "end": {"line": 183, "column": 53}}, + {"start": {"line": 183, "column": 57}, "end": {"line": 183, "column": 81}} + ], + "line": 183 + }, + "39": { + "loc": {"start": {"line": 185, "column": 11}, "end": {"line": 189, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 185, "column": 11}, "end": {"line": 189, "column": 5}}, + {"start": {"line": 187, "column": 11}, "end": {"line": 189, "column": 5}} + ], + "line": 185 + }, + "40": { + "loc": {"start": {"line": 185, "column": 15}, "end": {"line": 185, "column": 91}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 185, "column": 15}, "end": {"line": 185, "column": 29}}, + {"start": {"line": 185, "column": 33}, "end": {"line": 185, "column": 62}}, + {"start": {"line": 185, "column": 66}, "end": {"line": 185, "column": 91}} + ], + "line": 185 + }, + "41": { + "loc": {"start": {"line": 187, "column": 11}, "end": {"line": 189, "column": 5}}, + "type": "if", + "locations": [ + {"start": {"line": 187, "column": 11}, "end": {"line": 189, "column": 5}}, + {"start": {}, "end": {}} + ], + "line": 187 + }, + "42": { + "loc": {"start": {"line": 187, "column": 15}, "end": {"line": 187, "column": 91}}, + "type": "binary-expr", + "locations": [ + {"start": {"line": 187, "column": 15}, "end": {"line": 187, "column": 29}}, + {"start": {"line": 187, "column": 33}, "end": {"line": 187, "column": 62}}, + {"start": {"line": 187, "column": 66}, "end": {"line": 187, "column": 91}} + ], + "line": 187 + } + }, + "s": { + "0": 1, + "1": 1, + "2": 1, + "3": 1, + "4": 4, + "5": 0, + "6": 0, + "7": 0, + "8": 4, + "9": 0, + "10": 0, + "11": 4, + "12": 0, + "13": 4, + "14": 4, + "15": 0, + "16": 4, + "17": 4, + "18": 0, + "19": 4, + "20": 0, + "21": 0, + "22": 4, + "23": 1, + "24": 1, + "25": 0, + "26": 1, + "27": 1, + "28": 1, + "29": 1, + "30": 1, + "31": 2, + "32": 1, + "33": 1, + "34": 1, + "35": 1, + "36": 1, + "37": 1, + "38": 1, + "39": 1, + "40": 1, + "41": 0, + "42": 1, + "43": 1, + "44": 1, + "45": 0, + "46": 1, + "47": 1, + "48": 0, + "49": 1, + "50": 1, + "51": 0, + "52": 1, + "53": 0, + "54": 1, + "55": 0, + "56": 0, + "57": 0, + "58": 0, + "59": 0, + "60": 0, + "61": 0, + "62": 0, + "63": 0, + "64": 0, + "65": 0, + "66": 0 + }, + "f": {"0": 1, "1": 0, "2": 1, "3": 2, "4": 1, "5": 0}, + "b": { + "0": [0, 4], + "1": [0, 0], + "2": [0, 0], + "3": [0, 4], + "4": [0, 4], + "5": [0, 4], + "6": [4, 4], + "7": [0, 4], + "8": [4, 1], + "9": [0, 4], + "10": [0, 4], + "11": [0, 0], + "12": [0, 1], + "13": [0, 1], + "14": [0, 1], + "15": [0, 1], + "16": [1, 0], + "17": [0, 1], + "18": [1, 1], + "19": [0, 1], + "20": [1, 1], + "21": [1, 0], + "22": [0, 1], + "23": [0, 1], + "24": [1, 1], + "25": [0, 1], + "26": [0, 1], + "27": [0, 0], + "28": [1, 0], + "29": [1, 1], + "30": [0, 1], + "31": [1, 0], + "32": [0, 1], + "33": [0, 0], + "34": [0, 0], + "35": [0, 0], + "36": [0, 0], + "37": [0, 0], + "38": [0, 0, 0], + "39": [0, 0], + "40": [0, 0, 0], + "41": [0, 0], + "42": [0, 0, 0] + }, + "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", + "hash": "401f8b119715b1ffdbe66a2b22f2fe23a28e43ee" + } +} diff --git a/coverage/lcov-report/@config/constants/index.html b/coverage/lcov-report/@config/constants/index.html new file mode 100644 index 00000000..36d751ae --- /dev/null +++ b/coverage/lcov-report/@config/constants/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for @config/constants + + + + + + + + + +
+
+

All files @config/constants

+
+
+ 100% + Statements + 18/18 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 18/18 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%18/18100%0/0100%0/0100%18/18
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/@config/constants/index.ts.html b/coverage/lcov-report/@config/constants/index.ts.html new file mode 100644 index 00000000..a4cb5682 --- /dev/null +++ b/coverage/lcov-report/@config/constants/index.ts.html @@ -0,0 +1,159 @@ + + + + Code coverage report for @config/constants/index.ts + + + + + + + + + +
+
+

All files / @config/constants index.ts

+
+
+ 100% + Statements + 18/18 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 18/18 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +281x +1x +1x +1x +  +  +  +  +1x +1x +  +1x +1x +  +1x +1x +1x +1x +  +1x +1x +  +1x +1x +  +1x +1x + 
export const OVERVIEW_INITIAL_NUMBER_TO_RENDER = 10; /* Sets the initial list render amount of the overview screen. */
+export const DETAILS_INITIAL_NUMBER_TO_RENDER = 15; /* Sets the initial list render amount of the details screen. */
+export const HIT_SLOP_DISTANCE = 5; /* Sets the additional distance outside the elements in which a press can be detected. */
+export const QR_SCANNER_TIMEOUT = {
+  reactivate: 5000,
+}; /* Sets the reactivation timeout for the qr code scanner. */
+ 
+// TODO we want this as an env var, but i read that just creating an .env does not work for expo. Needs to be figured out
+export const SPHEREON_UNIRESOLVER_RESOLVE_URL = 'https://uniresolver.test.sphereon.io/1.0/identifiers';
+export const DIF_UNIRESOLVER_RESOLVE_URL = 'https://dev.uniresolver.io/1.0/identifiers';
+ 
+export const APP_ID = 'sphereon:ssi-wallet';
+export const DID_PREFIX = 'did';
+ 
+export const CONTACT_ALIAS_MAX_LENGTH = 50;
+export const FIRST_NAME_MAX_LENGTH = 50;
+export const LAST_NAME_MAX_LENGTH = 50;
+export const EMAIL_ADDRESS_MAX_LENGTH = 50;
+ 
+export const VERIFICATION_CODE_MAX_RETRIES = 3;
+export const PIN_CODE_LENGTH = 6;
+ 
+export const EMAIL_ADDRESS_VALIDATION_REGEX = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
+export const ONLY_ALLOW_NUMBERS_REGEX = /^\d+$/;
+// TODO probably not supporting all mime variants
+export const IS_IMAGE_URI_REGEX = /^data:image\/(png|jpg|jpeg|bmp|gif|webp);base64,/;
+export const IS_IMAGE_URL_REGEX = /\.(jpg|jpeg|png|gif|bmp|webp)$/i;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/@config/credentials/index.html b/coverage/lcov-report/@config/credentials/index.html new file mode 100644 index 00000000..6f05916e --- /dev/null +++ b/coverage/lcov-report/@config/credentials/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for @config/credentials + + + + + + + + + +
+
+

All files @config/credentials

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/@config/credentials/index.ts.html b/coverage/lcov-report/@config/credentials/index.ts.html new file mode 100644 index 00000000..a00ab97b --- /dev/null +++ b/coverage/lcov-report/@config/credentials/index.ts.html @@ -0,0 +1,4164 @@ + + + + Code coverage report for @config/credentials/index.ts + + + + + + + + + +
+
+

All files / @config/credentials index.ts

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +450 +451 +452 +453 +454 +455 +456 +457 +458 +459 +460 +461 +462 +463 +464 +465 +466 +467 +468 +469 +470 +471 +472 +473 +474 +475 +476 +477 +478 +479 +480 +481 +482 +483 +484 +485 +486 +487 +488 +489 +490 +491 +492 +493 +494 +495 +496 +497 +498 +499 +500 +501 +502 +503 +504 +505 +506 +507 +508 +509 +510 +511 +512 +513 +514 +515 +516 +517 +518 +519 +520 +521 +522 +523 +524 +525 +526 +527 +528 +529 +530 +531 +532 +533 +534 +535 +536 +537 +538 +539 +540 +541 +542 +543 +544 +545 +546 +547 +548 +549 +550 +551 +552 +553 +554 +555 +556 +557 +558 +559 +560 +561 +562 +563 +564 +565 +566 +567 +568 +569 +570 +571 +572 +573 +574 +575 +576 +577 +578 +579 +580 +581 +582 +583 +584 +585 +586 +587 +588 +589 +590 +591 +592 +593 +594 +595 +596 +597 +598 +599 +600 +601 +602 +603 +604 +605 +606 +607 +608 +609 +610 +611 +612 +613 +614 +615 +616 +617 +618 +619 +620 +621 +622 +623 +624 +625 +626 +627 +628 +629 +630 +631 +632 +633 +634 +635 +636 +637 +638 +639 +640 +641 +642 +643 +644 +645 +646 +647 +648 +649 +650 +651 +652 +653 +654 +655 +656 +657 +658 +659 +660 +661 +662 +663 +664 +665 +666 +667 +668 +669 +670 +671 +672 +673 +674 +675 +676 +677 +678 +679 +680 +681 +682 +683 +684 +685 +686 +687 +688 +689 +690 +691 +692 +693 +694 +695 +696 +697 +698 +699 +700 +701 +702 +703 +704 +705 +706 +707 +708 +709 +710 +711 +712 +713 +714 +715 +716 +717 +718 +719 +720 +721 +722 +723 +724 +725 +726 +727 +728 +729 +730 +731 +732 +733 +734 +735 +736 +737 +738 +739 +740 +741 +742 +743 +744 +745 +746 +747 +748 +749 +750 +751 +752 +753 +754 +755 +756 +757 +758 +759 +760 +761 +762 +763 +764 +765 +766 +767 +768 +769 +770 +771 +772 +773 +774 +775 +776 +777 +778 +779 +780 +781 +782 +783 +784 +785 +786 +787 +788 +789 +790 +791 +792 +793 +794 +795 +796 +797 +798 +799 +800 +801 +802 +803 +804 +805 +806 +807 +808 +809 +810 +811 +812 +813 +814 +815 +816 +817 +818 +819 +820 +821 +822 +823 +824 +825 +826 +827 +828 +829 +830 +831 +832 +833 +834 +835 +836 +837 +838 +839 +840 +841 +842 +843 +844 +845 +846 +847 +848 +849 +850 +851 +852 +853 +854 +855 +856 +857 +858 +859 +860 +861 +862 +863 +864 +865 +866 +867 +868 +869 +870 +871 +872 +873 +874 +875 +876 +877 +878 +879 +880 +881 +882 +883 +884 +885 +886 +887 +888 +889 +890 +891 +892 +893 +894 +895 +896 +897 +898 +899 +900 +901 +902 +903 +904 +905 +906 +907 +908 +909 +910 +911 +912 +913 +914 +915 +916 +917 +918 +919 +920 +921 +922 +923 +924 +925 +926 +927 +928 +929 +930 +931 +932 +933 +934 +935 +936 +937 +938 +939 +940 +941 +942 +943 +944 +945 +946 +947 +948 +949 +950 +951 +952 +953 +954 +955 +956 +957 +958 +959 +960 +961 +962 +963 +964 +965 +966 +967 +968 +969 +970 +971 +972 +973 +974 +975 +976 +977 +978 +979 +980 +981 +982 +983 +984 +985 +986 +987 +988 +989 +990 +991 +992 +993 +994 +995 +996 +997 +998 +999 +1000 +1001 +1002 +1003 +1004 +1005 +1006 +1007 +1008 +1009 +1010 +1011 +1012 +1013 +1014 +1015 +1016 +1017 +1018 +1019 +1020 +1021 +1022 +1023 +1024 +1025 +1026 +1027 +1028 +1029 +1030 +1031 +1032 +1033 +1034 +1035 +1036 +1037 +1038 +1039 +1040 +1041 +1042 +1043 +1044 +1045 +1046 +1047 +1048 +1049 +1050 +1051 +1052 +1053 +1054 +1055 +1056 +1057 +1058 +1059 +1060 +1061 +1062 +1063 +1064 +1065 +1066 +1067 +1068 +1069 +1070 +1071 +1072 +1073 +1074 +1075 +1076 +1077 +1078 +1079 +1080 +1081 +1082 +1083 +1084 +1085 +1086 +1087 +1088 +1089 +1090 +1091 +1092 +1093 +1094 +1095 +1096 +1097 +1098 +1099 +1100 +1101 +1102 +1103 +1104 +1105 +1106 +1107 +1108 +1109 +1110 +1111 +1112 +1113 +1114 +1115 +1116 +1117 +1118 +1119 +1120 +1121 +1122 +1123 +1124 +1125 +1126 +1127 +1128 +1129 +1130 +1131 +1132 +1133 +1134 +1135 +1136 +1137 +1138 +1139 +1140 +1141 +1142 +1143 +1144 +1145 +1146 +1147 +1148 +1149 +1150 +1151 +1152 +1153 +1154 +1155 +1156 +1157 +1158 +1159 +1160 +1161 +1162 +1163 +1164 +1165 +1166 +1167 +1168 +1169 +1170 +1171 +1172 +1173 +1174 +1175 +1176 +1177 +1178 +1179 +1180 +1181 +1182 +1183 +1184 +1185 +1186 +1187 +1188 +1189 +1190 +1191 +1192 +1193 +1194 +1195 +1196 +1197 +1198 +1199 +1200 +1201 +1202 +1203 +1204 +1205 +1206 +1207 +1208 +1209 +1210 +1211 +1212 +1213 +1214 +1215 +1216 +1217 +1218 +1219 +1220 +1221 +1222 +1223 +1224 +1225 +1226 +1227 +1228 +1229 +1230 +1231 +1232 +1233 +1234 +1235 +1236 +1237 +1238 +1239 +1240 +1241 +1242 +1243 +1244 +1245 +1246 +1247 +1248 +1249 +1250 +1251 +1252 +1253 +1254 +1255 +1256 +1257 +1258 +1259 +1260 +1261 +1262 +1263 +1264 +1265 +1266 +1267 +1268 +1269 +1270 +1271 +1272 +1273 +1274 +1275 +1276 +1277 +1278 +1279 +1280 +1281 +1282 +1283 +1284 +1285 +1286 +1287 +1288 +1289 +1290 +1291 +1292 +1293 +1294 +1295 +1296 +1297 +1298 +1299 +1300 +1301 +1302 +1303 +1304 +1305 +1306 +1307 +1308 +1309 +1310 +1311 +1312 +1313 +1314 +1315 +1316 +1317 +1318 +1319 +1320 +1321 +1322 +1323 +1324 +1325 +1326 +1327 +1328 +1329 +1330 +1331 +1332 +1333 +1334 +1335 +1336 +1337 +1338 +1339 +1340 +1341 +1342 +1343 +1344 +1345 +1346 +1347 +1348 +1349 +1350 +1351 +1352 +1353 +1354 +1355 +1356 +1357 +1358 +1359 +1360 +1361 +1362 +1363  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
// TODO import from the context dir. currently import gave some issues with jsonld
+ 
+export const LdContexts = new Map([
+  [
+    'https://www.w3.org/2018/credentials/v1',
+    {
+      '@context': {
+        '@version': 1.1,
+        '@protected': true,
+ 
+        id: '@id',
+        type: '@type',
+ 
+        VerifiableCredential: {
+          '@id': 'https://www.w3.org/2018/credentials#VerifiableCredential',
+          '@context': {
+            '@version': 1.1,
+            '@protected': true,
+ 
+            id: '@id',
+            type: '@type',
+ 
+            cred: 'https://www.w3.org/2018/credentials#',
+            sec: 'https://w3id.org/security#',
+            xsd: 'http://www.w3.org/2001/XMLSchema#',
+ 
+            credentialSchema: {
+              '@id': 'cred:credentialSchema',
+              '@type': '@id',
+              '@context': {
+                '@version': 1.1,
+                '@protected': true,
+ 
+                id: '@id',
+                type: '@type',
+ 
+                cred: 'https://www.w3.org/2018/credentials#',
+ 
+                JsonSchemaValidator2018: 'cred:JsonSchemaValidator2018',
+              },
+            },
+            credentialStatus: {'@id': 'cred:credentialStatus', '@type': '@id'},
+            credentialSubject: {'@id': 'cred:credentialSubject', '@type': '@id'},
+            evidence: {'@id': 'cred:evidence', '@type': '@id'},
+            expirationDate: {'@id': 'cred:expirationDate', '@type': 'xsd:dateTime'},
+            holder: {'@id': 'cred:holder', '@type': '@id'},
+            issued: {'@id': 'cred:issued', '@type': 'xsd:dateTime'},
+            issuer: {'@id': 'cred:issuer', '@type': '@id'},
+            issuanceDate: {'@id': 'cred:issuanceDate', '@type': 'xsd:dateTime'},
+            proof: {'@id': 'sec:proof', '@type': '@id', '@container': '@graph'},
+            refreshService: {
+              '@id': 'cred:refreshService',
+              '@type': '@id',
+              '@context': {
+                '@version': 1.1,
+                '@protected': true,
+ 
+                id: '@id',
+                type: '@type',
+ 
+                cred: 'https://www.w3.org/2018/credentials#',
+ 
+                ManualRefreshService2018: 'cred:ManualRefreshService2018',
+              },
+            },
+            termsOfUse: {'@id': 'cred:termsOfUse', '@type': '@id'},
+            validFrom: {'@id': 'cred:validFrom', '@type': 'xsd:dateTime'},
+            validUntil: {'@id': 'cred:validUntil', '@type': 'xsd:dateTime'},
+          },
+        },
+ 
+        VerifiablePresentation: {
+          '@id': 'https://www.w3.org/2018/credentials#VerifiablePresentation',
+          '@context': {
+            '@version': 1.1,
+            '@protected': true,
+ 
+            id: '@id',
+            type: '@type',
+ 
+            cred: 'https://www.w3.org/2018/credentials#',
+            sec: 'https://w3id.org/security#',
+ 
+            holder: {'@id': 'cred:holder', '@type': '@id'},
+            proof: {'@id': 'sec:proof', '@type': '@id', '@container': '@graph'},
+            verifiableCredential: {'@id': 'cred:verifiableCredential', '@type': '@id', '@container': '@graph'},
+          },
+        },
+ 
+        EcdsaSecp256k1Signature2019: {
+          '@id': 'https://w3id.org/security#EcdsaSecp256k1Signature2019',
+          '@context': {
+            '@version': 1.1,
+            '@protected': true,
+ 
+            id: '@id',
+            type: '@type',
+ 
+            sec: 'https://w3id.org/security#',
+            xsd: 'http://www.w3.org/2001/XMLSchema#',
+ 
+            challenge: 'sec:challenge',
+            created: {'@id': 'http://purl.org/dc/terms/created', '@type': 'xsd:dateTime'},
+            domain: 'sec:domain',
+            expires: {'@id': 'sec:expiration', '@type': 'xsd:dateTime'},
+            jws: 'sec:jws',
+            nonce: 'sec:nonce',
+            proofPurpose: {
+              '@id': 'sec:proofPurpose',
+              '@type': '@vocab',
+              '@context': {
+                '@version': 1.1,
+                '@protected': true,
+ 
+                id: '@id',
+                type: '@type',
+ 
+                sec: 'https://w3id.org/security#',
+ 
+                assertionMethod: {'@id': 'sec:assertionMethod', '@type': '@id', '@container': '@set'},
+                authentication: {'@id': 'sec:authenticationMethod', '@type': '@id', '@container': '@set'},
+              },
+            },
+            proofValue: 'sec:proofValue',
+            verificationMethod: {'@id': 'sec:verificationMethod', '@type': '@id'},
+          },
+        },
+ 
+        EcdsaSecp256r1Signature2019: {
+          '@id': 'https://w3id.org/security#EcdsaSecp256r1Signature2019',
+          '@context': {
+            '@version': 1.1,
+            '@protected': true,
+ 
+            id: '@id',
+            type: '@type',
+ 
+            sec: 'https://w3id.org/security#',
+            xsd: 'http://www.w3.org/2001/XMLSchema#',
+ 
+            challenge: 'sec:challenge',
+            created: {'@id': 'http://purl.org/dc/terms/created', '@type': 'xsd:dateTime'},
+            domain: 'sec:domain',
+            expires: {'@id': 'sec:expiration', '@type': 'xsd:dateTime'},
+            jws: 'sec:jws',
+            nonce: 'sec:nonce',
+            proofPurpose: {
+              '@id': 'sec:proofPurpose',
+              '@type': '@vocab',
+              '@context': {
+                '@version': 1.1,
+                '@protected': true,
+ 
+                id: '@id',
+                type: '@type',
+ 
+                sec: 'https://w3id.org/security#',
+ 
+                assertionMethod: {'@id': 'sec:assertionMethod', '@type': '@id', '@container': '@set'},
+                authentication: {'@id': 'sec:authenticationMethod', '@type': '@id', '@container': '@set'},
+              },
+            },
+            proofValue: 'sec:proofValue',
+            verificationMethod: {'@id': 'sec:verificationMethod', '@type': '@id'},
+          },
+        },
+ 
+        Ed25519Signature2018: {
+          '@id': 'https://w3id.org/security#Ed25519Signature2018',
+          '@context': {
+            '@version': 1.1,
+            '@protected': true,
+ 
+            id: '@id',
+            type: '@type',
+ 
+            sec: 'https://w3id.org/security#',
+            xsd: 'http://www.w3.org/2001/XMLSchema#',
+ 
+            challenge: 'sec:challenge',
+            created: {'@id': 'http://purl.org/dc/terms/created', '@type': 'xsd:dateTime'},
+            domain: 'sec:domain',
+            expires: {'@id': 'sec:expiration', '@type': 'xsd:dateTime'},
+            jws: 'sec:jws',
+            nonce: 'sec:nonce',
+            proofPurpose: {
+              '@id': 'sec:proofPurpose',
+              '@type': '@vocab',
+              '@context': {
+                '@version': 1.1,
+                '@protected': true,
+ 
+                id: '@id',
+                type: '@type',
+ 
+                sec: 'https://w3id.org/security#',
+ 
+                assertionMethod: {'@id': 'sec:assertionMethod', '@type': '@id', '@container': '@set'},
+                authentication: {'@id': 'sec:authenticationMethod', '@type': '@id', '@container': '@set'},
+              },
+            },
+            proofValue: 'sec:proofValue',
+            verificationMethod: {'@id': 'sec:verificationMethod', '@type': '@id'},
+          },
+        },
+ 
+        RsaSignature2018: {
+          '@id': 'https://w3id.org/security#RsaSignature2018',
+          '@context': {
+            '@version': 1.1,
+            '@protected': true,
+ 
+            challenge: 'sec:challenge',
+            created: {'@id': 'http://purl.org/dc/terms/created', '@type': 'xsd:dateTime'},
+            domain: 'sec:domain',
+            expires: {'@id': 'sec:expiration', '@type': 'xsd:dateTime'},
+            jws: 'sec:jws',
+            nonce: 'sec:nonce',
+            proofPurpose: {
+              '@id': 'sec:proofPurpose',
+              '@type': '@vocab',
+              '@context': {
+                '@version': 1.1,
+                '@protected': true,
+ 
+                id: '@id',
+                type: '@type',
+ 
+                sec: 'https://w3id.org/security#',
+ 
+                assertionMethod: {'@id': 'sec:assertionMethod', '@type': '@id', '@container': '@set'},
+                authentication: {'@id': 'sec:authenticationMethod', '@type': '@id', '@container': '@set'},
+              },
+            },
+            proofValue: 'sec:proofValue',
+            verificationMethod: {'@id': 'sec:verificationMethod', '@type': '@id'},
+          },
+        },
+ 
+        proof: {'@id': 'https://w3id.org/security#proof', '@type': '@id', '@container': '@graph'},
+      },
+    },
+  ],
+  [
+    'https://www.w3.org/ns/did/v1',
+    {
+      '@context': {
+        '@protected': true,
+        id: '@id',
+        type: '@type',
+ 
+        alsoKnownAs: {
+          '@id': 'https://www.w3.org/ns/activitystreams#alsoKnownAs',
+          '@type': '@id',
+        },
+        assertionMethod: {
+          '@id': 'https://w3id.org/security#assertionMethod',
+          '@type': '@id',
+          '@container': '@set',
+        },
+        authentication: {
+          '@id': 'https://w3id.org/security#authenticationMethod',
+          '@type': '@id',
+          '@container': '@set',
+        },
+        capabilityDelegation: {
+          '@id': 'https://w3id.org/security#capabilityDelegationMethod',
+          '@type': '@id',
+          '@container': '@set',
+        },
+        capabilityInvocation: {
+          '@id': 'https://w3id.org/security#capabilityInvocationMethod',
+          '@type': '@id',
+          '@container': '@set',
+        },
+        controller: {
+          '@id': 'https://w3id.org/security#controller',
+          '@type': '@id',
+        },
+        keyAgreement: {
+          '@id': 'https://w3id.org/security#keyAgreementMethod',
+          '@type': '@id',
+          '@container': '@set',
+        },
+        service: {
+          '@id': 'https://www.w3.org/ns/did#service',
+          '@type': '@id',
+          '@context': {
+            '@protected': true,
+            id: '@id',
+            type: '@type',
+            serviceEndpoint: {
+              '@id': 'https://www.w3.org/ns/did#serviceEndpoint',
+              '@type': '@id',
+            },
+          },
+        },
+        verificationMethod: {
+          '@id': 'https://w3id.org/security#verificationMethod',
+          '@type': '@id',
+        },
+      },
+    },
+  ],
+  [
+    'https://w3id.org/did/v0.11',
+    {
+      '@context': {
+        '@version': 1.1,
+        id: '@id',
+        type: '@type',
+ 
+        dc: 'http://purl.org/dc/terms/',
+        schema: 'http://schema.org/',
+        sec: 'https://w3id.org/security#',
+        didv: 'https://w3id.org/did#',
+        xsd: 'http://www.w3.org/2001/XMLSchema#',
+ 
+        EcdsaSecp256k1Signature2019: 'sec:EcdsaSecp256k1Signature2019',
+        EcdsaSecp256k1VerificationKey2019: 'sec:EcdsaSecp256k1VerificationKey2019',
+        Ed25519Signature2018: 'sec:Ed25519Signature2018',
+        Ed25519VerificationKey2018: 'sec:Ed25519VerificationKey2018',
+        RsaSignature2018: 'sec:RsaSignature2018',
+        RsaVerificationKey2018: 'sec:RsaVerificationKey2018',
+        SchnorrSecp256k1Signature2019: 'sec:SchnorrSecp256k1Signature2019',
+        SchnorrSecp256k1VerificationKey2019: 'sec:SchnorrSecp256k1VerificationKey2019',
+        ServiceEndpointProxyService: 'didv:ServiceEndpointProxyService',
+ 
+        allowedAction: 'sec:allowedAction',
+        assertionMethod: {'@id': 'sec:assertionMethod', '@type': '@id', '@container': '@set'},
+        authentication: {'@id': 'sec:authenticationMethod', '@type': '@id', '@container': '@set'},
+        capability: {'@id': 'sec:capability', '@type': '@id'},
+        capabilityAction: 'sec:capabilityAction',
+        capabilityChain: {'@id': 'sec:capabilityChain', '@type': '@id', '@container': '@list'},
+        capabilityDelegation: {'@id': 'sec:capabilityDelegationMethod', '@type': '@id', '@container': '@set'},
+        capabilityInvocation: {'@id': 'sec:capabilityInvocationMethod', '@type': '@id', '@container': '@set'},
+        capabilityStatusList: {'@id': 'sec:capabilityStatusList', '@type': '@id'},
+        canonicalizationAlgorithm: 'sec:canonicalizationAlgorithm',
+        caveat: {'@id': 'sec:caveat', '@type': '@id', '@container': '@set'},
+        challenge: 'sec:challenge',
+        controller: {'@id': 'sec:controller', '@type': '@id'},
+        created: {'@id': 'dc:created', '@type': 'xsd:dateTime'},
+        creator: {'@id': 'dc:creator', '@type': '@id'},
+        delegator: {'@id': 'sec:delegator', '@type': '@id'},
+        domain: 'sec:domain',
+        expirationDate: {'@id': 'sec:expiration', '@type': 'xsd:dateTime'},
+        invocationTarget: {'@id': 'sec:invocationTarget', '@type': '@id'},
+        invoker: {'@id': 'sec:invoker', '@type': '@id'},
+        jws: 'sec:jws',
+        keyAgreement: {'@id': 'sec:keyAgreementMethod', '@type': '@id', '@container': '@set'},
+        nonce: 'sec:nonce',
+        owner: {'@id': 'sec:owner', '@type': '@id'},
+        proof: {'@id': 'sec:proof', '@type': '@id', '@container': '@graph'},
+        proofPurpose: {'@id': 'sec:proofPurpose', '@type': '@vocab'},
+        proofValue: 'sec:proofValue',
+        publicKey: {'@id': 'sec:publicKey', '@type': '@id', '@container': '@set'},
+        publicKeyBase58: 'sec:publicKeyBase58',
+        publicKeyPem: 'sec:publicKeyPem',
+        revoked: {'@id': 'sec:revoked', '@type': 'xsd:dateTime'},
+        service: {'@id': 'didv:service', '@type': '@id', '@container': '@set'},
+        serviceEndpoint: {'@id': 'didv:serviceEndpoint', '@type': '@id'},
+        verificationMethod: {'@id': 'sec:verificationMethod', '@type': '@id'},
+      },
+    },
+  ],
+  [
+    'https://ns.did.ai/transmute/v1',
+    {
+      '@context': [
+        {
+          '@version': 1.1,
+        },
+        'https://www.w3.org/ns/did/v1',
+        {
+          JsonWebKey2020: 'https://w3id.org/security#JsonWebKey2020',
+          Ed25519VerificationKey2018: 'https://w3id.org/security#Ed25519VerificationKey2018',
+          X25519KeyAgreementKey2019: 'https://w3id.org/security#X25519KeyAgreementKey2019',
+ 
+          publicKeyJwk: {
+            '@id': 'https://w3id.org/security#publicKeyJwk',
+            '@type': '@json',
+          },
+          publicKeyBase58: {
+            '@id': 'https://w3id.org/security#publicKeyBase58',
+          },
+        },
+      ],
+    },
+  ],
+  [
+    'https://identity.foundation/EcdsaSecp256k1RecoverySignature2020/lds-ecdsa-secp256k1-recovery2020-0.0.jsonld',
+    {
+      '@context': {
+        '@version': 1.1,
+        id: '@id',
+        type: '@type',
+        esrs2020: 'https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#',
+ 
+        EcdsaSecp256k1RecoverySignature2020: {
+          '@id': 'https://w3id.org/security#EcdsaSecp256k1RecoverySignature2020',
+          '@context': {
+            '@version': 1.1,
+            '@protected': true,
+ 
+            id: '@id',
+            type: '@type',
+ 
+            sec: 'https://w3id.org/security#',
+            xsd: 'http://www.w3.org/2001/XMLSchema#',
+ 
+            challenge: 'sec:challenge',
+            created: {'@id': 'http://purl.org/dc/terms/created', '@type': 'xsd:dateTime'},
+            domain: 'sec:domain',
+            expires: {'@id': 'sec:expiration', '@type': 'xsd:dateTime'},
+            jws: 'sec:jws',
+            nonce: 'sec:nonce',
+            proofPurpose: {
+              '@id': 'sec:proofPurpose',
+              '@type': '@vocab',
+              '@context': {
+                '@version': 1.1,
+                '@protected': true,
+ 
+                id: '@id',
+                type: '@type',
+ 
+                sec: 'https://w3id.org/security#',
+ 
+                assertionMethod: {'@id': 'sec:assertionMethod', '@type': '@id', '@container': '@set'},
+                authentication: {'@id': 'sec:authenticationMethod', '@type': '@id', '@container': '@set'},
+              },
+            },
+            proofValue: 'sec:proofValue',
+            verificationMethod: {'@id': 'sec:verificationMethod', '@type': '@id'},
+          },
+        },
+ 
+        EcdsaSecp256k1RecoveryMethod2020: 'esrs2020:EcdsaSecp256k1RecoveryMethod2020',
+        publicKeyJwk: {
+          '@id': 'esrs2020:publicKeyJwk',
+          '@type': '@json',
+        },
+        privateKeyJwk: {
+          '@id': 'esrs2020:privateKeyJwk',
+          '@type': '@json',
+        },
+        publicKeyHex: 'esrs2020:publicKeyHex',
+        privateKeyHex: 'esrs2020:privateKeyHex',
+        ethereumAddress: 'esrs2020:ethereumAddress',
+      },
+    },
+  ],
+  [
+    'https://w3id.org/security/suites/ed25519-2018/v1',
+    {
+      '@context': {
+        id: '@id',
+        type: '@type',
+        '@protected': true,
+        proof: {
+          '@id': 'https://w3id.org/security#proof',
+          '@type': '@id',
+          '@container': '@graph',
+        },
+        Ed25519VerificationKey2018: {
+          '@id': 'https://w3id.org/security#Ed25519VerificationKey2018',
+          '@context': {
+            '@protected': true,
+            id: '@id',
+            type: '@type',
+            controller: {
+              '@id': 'https://w3id.org/security#controller',
+              '@type': '@id',
+            },
+            revoked: {
+              '@id': 'https://w3id.org/security#revoked',
+              '@type': 'http://www.w3.org/2001/XMLSchema#dateTime',
+            },
+            publicKeyBase58: {
+              '@id': 'https://w3id.org/security#publicKeyBase58',
+            },
+          },
+        },
+        Ed25519Signature2018: {
+          '@id': 'https://w3id.org/security#Ed25519Signature2018',
+          '@context': {
+            '@protected': true,
+            id: '@id',
+            type: '@type',
+            challenge: 'https://w3id.org/security#challenge',
+            created: {
+              '@id': 'http://purl.org/dc/terms/created',
+              '@type': 'http://www.w3.org/2001/XMLSchema#dateTime',
+            },
+            domain: 'https://w3id.org/security#domain',
+            expires: {
+              '@id': 'https://w3id.org/security#expiration',
+              '@type': 'http://www.w3.org/2001/XMLSchema#dateTime',
+            },
+            nonce: 'https://w3id.org/security#nonce',
+            proofPurpose: {
+              '@id': 'https://w3id.org/security#proofPurpose',
+              '@type': '@vocab',
+              '@context': {
+                '@protected': true,
+                id: '@id',
+                type: '@type',
+                assertionMethod: {
+                  '@id': 'https://w3id.org/security#assertionMethod',
+                  '@type': '@id',
+                  '@container': '@set',
+                },
+                authentication: {
+                  '@id': 'https://w3id.org/security#authenticationMethod',
+                  '@type': '@id',
+                  '@container': '@set',
+                },
+                capabilityInvocation: {
+                  '@id': 'https://w3id.org/security#capabilityInvocationMethod',
+                  '@type': '@id',
+                  '@container': '@set',
+                },
+                capabilityDelegation: {
+                  '@id': 'https://w3id.org/security#capabilityDelegationMethod',
+                  '@type': '@id',
+                  '@container': '@set',
+                },
+                keyAgreement: {
+                  '@id': 'https://w3id.org/security#keyAgreementMethod',
+                  '@type': '@id',
+                  '@container': '@set',
+                },
+              },
+            },
+            jws: {
+              '@id': 'https://w3id.org/security#jws',
+            },
+            verificationMethod: {
+              '@id': 'https://w3id.org/security#verificationMethod',
+              '@type': '@id',
+            },
+          },
+        },
+      },
+    },
+  ],
+  [
+    'https://w3id.org/security/suites/ed25519-2020/v1',
+    {
+      '@context': {
+        id: '@id',
+        type: '@type',
+        '@protected': true,
+        proof: {
+          '@id': 'https://w3id.org/security#proof',
+          '@type': '@id',
+          '@container': '@graph',
+        },
+        Ed25519VerificationKey2020: {
+          '@id': 'https://w3id.org/security#Ed25519VerificationKey2020',
+          '@context': {
+            '@protected': true,
+            id: '@id',
+            type: '@type',
+            controller: {
+              '@id': 'https://w3id.org/security#controller',
+              '@type': '@id',
+            },
+            revoked: {
+              '@id': 'https://w3id.org/security#revoked',
+              '@type': 'http://www.w3.org/2001/XMLSchema#dateTime',
+            },
+            publicKeyMultibase: {
+              '@id': 'https://w3id.org/security#publicKeyMultibase',
+              '@type': 'https://w3id.org/security#multibase',
+            },
+          },
+        },
+        Ed25519Signature2020: {
+          '@id': 'https://w3id.org/security#Ed25519Signature2020',
+          '@context': {
+            '@protected': true,
+            id: '@id',
+            type: '@type',
+            challenge: 'https://w3id.org/security#challenge',
+            created: {
+              '@id': 'http://purl.org/dc/terms/created',
+              '@type': 'http://www.w3.org/2001/XMLSchema#dateTime',
+            },
+            domain: 'https://w3id.org/security#domain',
+            expires: {
+              '@id': 'https://w3id.org/security#expiration',
+              '@type': 'http://www.w3.org/2001/XMLSchema#dateTime',
+            },
+            nonce: 'https://w3id.org/security#nonce',
+            proofPurpose: {
+              '@id': 'https://w3id.org/security#proofPurpose',
+              '@type': '@vocab',
+              '@context': {
+                '@protected': true,
+                id: '@id',
+                type: '@type',
+                assertionMethod: {
+                  '@id': 'https://w3id.org/security#assertionMethod',
+                  '@type': '@id',
+                  '@container': '@set',
+                },
+                authentication: {
+                  '@id': 'https://w3id.org/security#authenticationMethod',
+                  '@type': '@id',
+                  '@container': '@set',
+                },
+                capabilityInvocation: {
+                  '@id': 'https://w3id.org/security#capabilityInvocationMethod',
+                  '@type': '@id',
+                  '@container': '@set',
+                },
+                capabilityDelegation: {
+                  '@id': 'https://w3id.org/security#capabilityDelegationMethod',
+                  '@type': '@id',
+                  '@container': '@set',
+                },
+                keyAgreement: {
+                  '@id': 'https://w3id.org/security#keyAgreementMethod',
+                  '@type': '@id',
+                  '@container': '@set',
+                },
+              },
+            },
+            proofValue: {
+              '@id': 'https://w3id.org/security#proofValue',
+              '@type': 'https://w3id.org/security#multibase',
+            },
+            verificationMethod: {
+              '@id': 'https://w3id.org/security#verificationMethod',
+              '@type': '@id',
+            },
+          },
+        },
+      },
+    },
+  ],
+  [
+    'https://w3id.org/security/suites/x25519-2019/v1',
+    {
+      '@context': {
+        id: '@id',
+        type: '@type',
+        '@protected': true,
+        X25519KeyAgreementKey2019: {
+          '@id': 'https://w3id.org/security#X25519KeyAgreementKey2019',
+          '@context': {
+            '@protected': true,
+            id: '@id',
+            type: '@type',
+            controller: {
+              '@id': 'https://w3id.org/security#controller',
+              '@type': '@id',
+            },
+            revoked: {
+              '@id': 'https://w3id.org/security#revoked',
+              '@type': 'http://www.w3.org/2001/XMLSchema#dateTime',
+            },
+            publicKeyBase58: {
+              '@id': 'https://w3id.org/security#publicKeyBase58',
+            },
+          },
+        },
+      },
+    },
+  ],
+  [
+    'https://w3id.org/security/suites/jws-2020/v1',
+    {
+      '@context': {
+        privateKeyJwk: {
+          '@id': 'https://w3id.org/security#privateKeyJwk',
+          '@type': '@json',
+        },
+        JsonWebKey2020: {
+          '@id': 'https://w3id.org/security#JsonWebKey2020',
+          '@context': {
+            '@protected': true,
+            id: '@id',
+            type: '@type',
+            publicKeyJwk: {
+              '@id': 'https://w3id.org/security#publicKeyJwk',
+              '@type': '@json',
+            },
+          },
+        },
+        JsonWebSignature2020: {
+          '@id': 'https://w3id.org/security#JsonWebSignature2020',
+          '@context': {
+            '@protected': true,
+ 
+            id: '@id',
+            type: '@type',
+ 
+            challenge: 'https://w3id.org/security#challenge',
+            created: {
+              '@id': 'http://purl.org/dc/terms/created',
+              '@type': 'http://www.w3.org/2001/XMLSchema#dateTime',
+            },
+            domain: 'https://w3id.org/security#domain',
+            expires: {
+              '@id': 'https://w3id.org/security#expiration',
+              '@type': 'http://www.w3.org/2001/XMLSchema#dateTime',
+            },
+            jws: 'https://w3id.org/security#jws',
+            nonce: 'https://w3id.org/security#nonce',
+            proofPurpose: {
+              '@id': 'https://w3id.org/security#proofPurpose',
+              '@type': '@vocab',
+              '@context': {
+                '@protected': true,
+ 
+                id: '@id',
+                type: '@type',
+ 
+                assertionMethod: {
+                  '@id': 'https://w3id.org/security#assertionMethod',
+                  '@type': '@id',
+                  '@container': '@set',
+                },
+                authentication: {
+                  '@id': 'https://w3id.org/security#authenticationMethod',
+                  '@type': '@id',
+                  '@container': '@set',
+                },
+                capabilityInvocation: {
+                  '@id': 'https://w3id.org/security#capabilityInvocationMethod',
+                  '@type': '@id',
+                  '@container': '@set',
+                },
+                capabilityDelegation: {
+                  '@id': 'https://w3id.org/security#capabilityDelegationMethod',
+                  '@type': '@id',
+                  '@container': '@set',
+                },
+                keyAgreement: {
+                  '@id': 'https://w3id.org/security#keyAgreementMethod',
+                  '@type': '@id',
+                  '@container': '@set',
+                },
+              },
+            },
+            verificationMethod: {
+              '@id': 'https://w3id.org/security#verificationMethod',
+              '@type': '@id',
+            },
+          },
+        },
+      },
+    },
+  ],
+  [
+    'https://w3c.github.io/vc-jws-2020/contexts/v1/',
+    {
+      '@context': {
+        privateKeyJwk: {
+          '@id': 'https://w3id.org/security#privateKeyJwk',
+          '@type': '@json',
+        },
+        JsonWebKey2020: {
+          '@id': 'https://w3id.org/security#JsonWebKey2020',
+          '@context': {
+            '@protected': true,
+            id: '@id',
+            type: '@type',
+            publicKeyJwk: {
+              '@id': 'https://w3id.org/security#publicKeyJwk',
+              '@type': '@json',
+            },
+          },
+        },
+        JsonWebSignature2020: {
+          '@id': 'https://w3id.org/security#JsonWebSignature2020',
+          '@context': {
+            '@protected': true,
+ 
+            id: '@id',
+            type: '@type',
+ 
+            challenge: 'https://w3id.org/security#challenge',
+            created: {
+              '@id': 'http://purl.org/dc/terms/created',
+              '@type': 'http://www.w3.org/2001/XMLSchema#dateTime',
+            },
+            domain: 'https://w3id.org/security#domain',
+            expires: {
+              '@id': 'https://w3id.org/security#expiration',
+              '@type': 'http://www.w3.org/2001/XMLSchema#dateTime',
+            },
+            jws: 'https://w3id.org/security#jws',
+            nonce: 'https://w3id.org/security#nonce',
+            proofPurpose: {
+              '@id': 'https://w3id.org/security#proofPurpose',
+              '@type': '@vocab',
+              '@context': {
+                '@protected': true,
+ 
+                id: '@id',
+                type: '@type',
+ 
+                assertionMethod: {
+                  '@id': 'https://w3id.org/security#assertionMethod',
+                  '@type': '@id',
+                  '@container': '@set',
+                },
+                authentication: {
+                  '@id': 'https://w3id.org/security#authenticationMethod',
+                  '@type': '@id',
+                  '@container': '@set',
+                },
+                capabilityInvocation: {
+                  '@id': 'https://w3id.org/security#capabilityInvocationMethod',
+                  '@type': '@id',
+                  '@container': '@set',
+                },
+                capabilityDelegation: {
+                  '@id': 'https://w3id.org/security#capabilityDelegationMethod',
+                  '@type': '@id',
+                  '@container': '@set',
+                },
+                keyAgreement: {
+                  '@id': 'https://w3id.org/security#keyAgreementMethod',
+                  '@type': '@id',
+                  '@container': '@set',
+                },
+              },
+            },
+            verificationMethod: {
+              '@id': 'https://w3id.org/security#verificationMethod',
+              '@type': '@id',
+            },
+          },
+        },
+      },
+    },
+  ],
+  [
+    'https://w3id.org/vc-revocation-list-2020/v1',
+    {
+      '@context': {
+        '@protected': true,
+ 
+        RevocationList2020Credential: {
+          '@id': 'https://w3id.org/vc-revocation-list-2020#RevocationList2020Credential',
+          '@context': {
+            '@protected': true,
+ 
+            id: '@id',
+            type: '@type',
+ 
+            description: 'http://schema.org/description',
+            name: 'http://schema.org/name',
+          },
+        },
+ 
+        RevocationList2020: {
+          '@id': 'https://w3id.org/vc-revocation-list-2020#RevocationList2020',
+          '@context': {
+            '@protected': true,
+ 
+            id: '@id',
+            type: '@type',
+ 
+            encodedList: 'https://w3id.org/vc-revocation-list-2020#encodedList',
+          },
+        },
+ 
+        RevocationList2020Status: {
+          '@id': 'https://w3id.org/vc-revocation-list-2020#RevocationList2020Status',
+          '@context': {
+            '@protected': true,
+ 
+            id: '@id',
+            type: '@type',
+ 
+            revocationListCredential: {
+              '@id': 'https://w3id.org/vc-revocation-list-2020#revocationListCredential',
+              '@type': '@id',
+            },
+            revocationListIndex: 'https://w3id.org/vc-revocation-list-2020#revocationListIndex',
+          },
+        },
+      },
+    },
+  ],
+  [
+    'https://w3id.org/security/bbs/v1',
+    {
+      '@context': {
+        '@version': 1.1,
+        id: '@id',
+        type: '@type',
+        BbsBlsSignature2020: {
+          '@id': 'https://w3id.org/security#BbsBlsSignature2020',
+          '@context': {
+            '@version': 1.1,
+            '@protected': true,
+            id: '@id',
+            type: '@type',
+            challenge: 'https://w3id.org/security#challenge',
+            created: {
+              '@id': 'http://purl.org/dc/terms/created',
+              '@type': 'http://www.w3.org/2001/XMLSchema#dateTime',
+            },
+            domain: 'https://w3id.org/security#domain',
+            proofValue: 'https://w3id.org/security#proofValue',
+            nonce: 'https://w3id.org/security#nonce',
+            proofPurpose: {
+              '@id': 'https://w3id.org/security#proofPurpose',
+              '@type': '@vocab',
+              '@context': {
+                '@version': 1.1,
+                '@protected': true,
+                id: '@id',
+                type: '@type',
+                assertionMethod: {
+                  '@id': 'https://w3id.org/security#assertionMethod',
+                  '@type': '@id',
+                  '@container': '@set',
+                },
+                authentication: {
+                  '@id': 'https://w3id.org/security#authenticationMethod',
+                  '@type': '@id',
+                  '@container': '@set',
+                },
+              },
+            },
+            verificationMethod: {
+              '@id': 'https://w3id.org/security#verificationMethod',
+              '@type': '@id',
+            },
+          },
+        },
+        BbsBlsSignatureProof2020: {
+          '@id': 'https://w3id.org/security#BbsBlsSignatureProof2020',
+          '@context': {
+            '@version': 1.1,
+            '@protected': true,
+            id: '@id',
+            type: '@type',
+ 
+            challenge: 'https://w3id.org/security#challenge',
+            created: {
+              '@id': 'http://purl.org/dc/terms/created',
+              '@type': 'http://www.w3.org/2001/XMLSchema#dateTime',
+            },
+            domain: 'https://w3id.org/security#domain',
+            nonce: 'https://w3id.org/security#nonce',
+            proofPurpose: {
+              '@id': 'https://w3id.org/security#proofPurpose',
+              '@type': '@vocab',
+              '@context': {
+                '@version': 1.1,
+                '@protected': true,
+                id: '@id',
+                type: '@type',
+                sec: 'https://w3id.org/security#',
+                assertionMethod: {
+                  '@id': 'https://w3id.org/security#assertionMethod',
+                  '@type': '@id',
+                  '@container': '@set',
+                },
+                authentication: {
+                  '@id': 'https://w3id.org/security#authenticationMethod',
+                  '@type': '@id',
+                  '@container': '@set',
+                },
+              },
+            },
+            proofValue: 'https://w3id.org/security#proofValue',
+            verificationMethod: {
+              '@id': 'https://w3id.org/security#verificationMethod',
+              '@type': '@id',
+            },
+          },
+        },
+        Bls12381G1Key2020: {
+          '@id': 'https://w3id.org/security#Bls12381G1Key2020',
+          '@context': {
+            '@protected': true,
+            id: '@id',
+            type: '@type',
+            controller: {
+              '@id': 'https://w3id.org/security#controller',
+              '@type': '@id',
+            },
+            revoked: {
+              '@id': 'https://w3id.org/security#revoked',
+              '@type': 'http://www.w3.org/2001/XMLSchema#dateTime',
+            },
+            publicKeyBase58: {
+              '@id': 'https://w3id.org/security#publicKeyBase58',
+            },
+          },
+        },
+        Bls12381G2Key2020: {
+          '@id': 'https://w3id.org/security#Bls12381G2Key2020',
+          '@context': {
+            '@protected': true,
+            id: '@id',
+            type: '@type',
+            controller: {
+              '@id': 'https://w3id.org/security#controller',
+              '@type': '@id',
+            },
+            revoked: {
+              '@id': 'https://w3id.org/security#revoked',
+              '@type': 'http://www.w3.org/2001/XMLSchema#dateTime',
+            },
+            publicKeyBase58: {
+              '@id': 'https://w3id.org/security#publicKeyBase58',
+            },
+          },
+        },
+      },
+    },
+  ],
+  [
+    'https://www.w3.org/2018/credentials/examples/v1',
+    {
+      '@context': [
+        {
+          '@version': 1.1,
+        },
+        'https://www.w3.org/ns/odrl.jsonld',
+        {
+          ex: 'https://example.org/examples#',
+          schema: 'http://schema.org/',
+          rdf: 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',
+ 
+          '3rdPartyCorrelation': 'ex:3rdPartyCorrelation',
+          AllVerifiers: 'ex:AllVerifiers',
+          Archival: 'ex:Archival',
+          BachelorDegree: 'ex:BachelorDegree',
+          Child: 'ex:Child',
+          CLCredentialDefinition2019: 'ex:CLCredentialDefinition2019',
+          CLSignature2019: 'ex:CLSignature2019',
+          IssuerPolicy: 'ex:IssuerPolicy',
+          HolderPolicy: 'ex:HolderPolicy',
+          Mother: 'ex:Mother',
+          RelationshipCredential: 'ex:RelationshipCredential',
+          UniversityDegreeCredential: 'ex:UniversityDegreeCredential',
+          AlumniCredential: 'ex:AlumniCredential',
+          DisputeCredential: 'ex:DisputeCredential',
+          PrescriptionCredential: 'ex:PrescriptionCredential',
+          ZkpExampleSchema2018: 'ex:ZkpExampleSchema2018',
+ 
+          issuerData: 'ex:issuerData',
+          attributes: 'ex:attributes',
+          signature: 'ex:signature',
+          signatureCorrectnessProof: 'ex:signatureCorrectnessProof',
+          primaryProof: 'ex:primaryProof',
+          nonRevocationProof: 'ex:nonRevocationProof',
+ 
+          alumniOf: {'@id': 'schema:alumniOf', '@type': 'rdf:HTML'},
+          child: {'@id': 'ex:child', '@type': '@id'},
+          degree: 'ex:degree',
+          degreeType: 'ex:degreeType',
+          degreeSchool: 'ex:degreeSchool',
+          college: 'ex:college',
+          name: {'@id': 'schema:name', '@type': 'rdf:HTML'},
+          givenName: 'schema:givenName',
+          familyName: 'schema:familyName',
+          parent: {'@id': 'ex:parent', '@type': '@id'},
+          referenceId: 'ex:referenceId',
+          documentPresence: 'ex:documentPresence',
+          evidenceDocument: 'ex:evidenceDocument',
+          spouse: 'schema:spouse',
+          subjectPresence: 'ex:subjectPresence',
+          verifier: {'@id': 'ex:verifier', '@type': '@id'},
+          currentStatus: 'ex:currentStatus',
+          statusReason: 'ex:statusReason',
+          prescription: 'ex:prescription',
+        },
+      ],
+    },
+  ],
+  [
+    'https://www.w3.org/ns/odrl.jsonld',
+    {
+      '@context': {
+        odrl: 'http://www.w3.org/ns/odrl/2/',
+        rdf: 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',
+        rdfs: 'http://www.w3.org/2000/01/rdf-schema#',
+        owl: 'http://www.w3.org/2002/07/owl#',
+        skos: 'http://www.w3.org/2004/02/skos/core#',
+        dct: 'http://purl.org/dc/terms/',
+        xsd: 'http://www.w3.org/2001/XMLSchema#',
+        vcard: 'http://www.w3.org/2006/vcard/ns#',
+        foaf: 'http://xmlns.com/foaf/0.1/',
+        schema: 'http://schema.org/',
+        cc: 'http://creativecommons.org/ns#',
+ 
+        uid: '@id',
+        type: '@type',
+ 
+        Policy: 'odrl:Policy',
+        Rule: 'odrl:Rule',
+        profile: {'@type': '@id', '@id': 'odrl:profile'},
+ 
+        inheritFrom: {'@type': '@id', '@id': 'odrl:inheritFrom'},
+ 
+        ConflictTerm: 'odrl:ConflictTerm',
+        conflict: {'@type': '@vocab', '@id': 'odrl:conflict'},
+        perm: 'odrl:perm',
+        prohibit: 'odrl:prohibit',
+        invalid: 'odrl:invalid',
+ 
+        Agreement: 'odrl:Agreement',
+        Assertion: 'odrl:Assertion',
+        Offer: 'odrl:Offer',
+        Privacy: 'odrl:Privacy',
+        Request: 'odrl:Request',
+        Set: 'odrl:Set',
+        Ticket: 'odrl:Ticket',
+ 
+        Asset: 'odrl:Asset',
+        AssetCollection: 'odrl:AssetCollection',
+        relation: {'@type': '@id', '@id': 'odrl:relation'},
+        hasPolicy: {'@type': '@id', '@id': 'odrl:hasPolicy'},
+ 
+        target: {'@type': '@id', '@id': 'odrl:target'},
+        output: {'@type': '@id', '@id': 'odrl:output'},
+ 
+        partOf: {'@type': '@id', '@id': 'odrl:partOf'},
+        source: {'@type': '@id', '@id': 'odrl:source'},
+ 
+        Party: 'odrl:Party',
+        PartyCollection: 'odrl:PartyCollection',
+        function: {'@type': '@vocab', '@id': 'odrl:function'},
+        PartyScope: 'odrl:PartyScope',
+ 
+        assignee: {'@type': '@id', '@id': 'odrl:assignee'},
+        assigner: {'@type': '@id', '@id': 'odrl:assigner'},
+        assigneeOf: {'@type': '@id', '@id': 'odrl:assigneeOf'},
+        assignerOf: {'@type': '@id', '@id': 'odrl:assignerOf'},
+        attributedParty: {'@type': '@id', '@id': 'odrl:attributedParty'},
+        attributingParty: {'@type': '@id', '@id': 'odrl:attributingParty'},
+        compensatedParty: {'@type': '@id', '@id': 'odrl:compensatedParty'},
+        compensatingParty: {'@type': '@id', '@id': 'odrl:compensatingParty'},
+        consentingParty: {'@type': '@id', '@id': 'odrl:consentingParty'},
+        consentedParty: {'@type': '@id', '@id': 'odrl:consentedParty'},
+        informedParty: {'@type': '@id', '@id': 'odrl:informedParty'},
+        informingParty: {'@type': '@id', '@id': 'odrl:informingParty'},
+        trackingParty: {'@type': '@id', '@id': 'odrl:trackingParty'},
+        trackedParty: {'@type': '@id', '@id': 'odrl:trackedParty'},
+        contractingParty: {'@type': '@id', '@id': 'odrl:contractingParty'},
+        contractedParty: {'@type': '@id', '@id': 'odrl:contractedParty'},
+ 
+        Action: 'odrl:Action',
+        action: {'@type': '@vocab', '@id': 'odrl:action'},
+        includedIn: {'@type': '@id', '@id': 'odrl:includedIn'},
+        implies: {'@type': '@id', '@id': 'odrl:implies'},
+ 
+        Permission: 'odrl:Permission',
+        permission: {'@type': '@id', '@id': 'odrl:permission'},
+ 
+        Prohibition: 'odrl:Prohibition',
+        prohibition: {'@type': '@id', '@id': 'odrl:prohibition'},
+ 
+        obligation: {'@type': '@id', '@id': 'odrl:obligation'},
+ 
+        use: 'odrl:use',
+        grantUse: 'odrl:grantUse',
+        aggregate: 'odrl:aggregate',
+        annotate: 'odrl:annotate',
+        anonymize: 'odrl:anonymize',
+        archive: 'odrl:archive',
+        concurrentUse: 'odrl:concurrentUse',
+        derive: 'odrl:derive',
+        digitize: 'odrl:digitize',
+        display: 'odrl:display',
+        distribute: 'odrl:distribute',
+        execute: 'odrl:execute',
+        extract: 'odrl:extract',
+        give: 'odrl:give',
+        index: 'odrl:index',
+        install: 'odrl:install',
+        modify: 'odrl:modify',
+        move: 'odrl:move',
+        play: 'odrl:play',
+        present: 'odrl:present',
+        print: 'odrl:print',
+        read: 'odrl:read',
+        reproduce: 'odrl:reproduce',
+        sell: 'odrl:sell',
+        stream: 'odrl:stream',
+        textToSpeech: 'odrl:textToSpeech',
+        transfer: 'odrl:transfer',
+        transform: 'odrl:transform',
+        translate: 'odrl:translate',
+ 
+        Duty: 'odrl:Duty',
+        duty: {'@type': '@id', '@id': 'odrl:duty'},
+        consequence: {'@type': '@id', '@id': 'odrl:consequence'},
+        remedy: {'@type': '@id', '@id': 'odrl:remedy'},
+ 
+        acceptTracking: 'odrl:acceptTracking',
+        attribute: 'odrl:attribute',
+        compensate: 'odrl:compensate',
+        delete: 'odrl:delete',
+        ensureExclusivity: 'odrl:ensureExclusivity',
+        include: 'odrl:include',
+        inform: 'odrl:inform',
+        nextPolicy: 'odrl:nextPolicy',
+        obtainConsent: 'odrl:obtainConsent',
+        reviewPolicy: 'odrl:reviewPolicy',
+        uninstall: 'odrl:uninstall',
+        watermark: 'odrl:watermark',
+ 
+        Constraint: 'odrl:Constraint',
+        LogicalConstraint: 'odrl:LogicalConstraint',
+        constraint: {'@type': '@id', '@id': 'odrl:constraint'},
+        refinement: {'@type': '@id', '@id': 'odrl:refinement'},
+        Operator: 'odrl:Operator',
+        operator: {'@type': '@vocab', '@id': 'odrl:operator'},
+        RightOperand: 'odrl:RightOperand',
+        rightOperand: 'odrl:rightOperand',
+        rightOperandReference: {'@type': 'xsd:anyURI', '@id': 'odrl:rightOperandReference'},
+        LeftOperand: 'odrl:LeftOperand',
+        leftOperand: {'@type': '@vocab', '@id': 'odrl:leftOperand'},
+        unit: 'odrl:unit',
+        dataType: {'@type': 'xsd:anyType', '@id': 'odrl:datatype'},
+        status: 'odrl:status',
+ 
+        absolutePosition: 'odrl:absolutePosition',
+        absoluteSpatialPosition: 'odrl:absoluteSpatialPosition',
+        absoluteTemporalPosition: 'odrl:absoluteTemporalPosition',
+        absoluteSize: 'odrl:absoluteSize',
+        count: 'odrl:count',
+        dateTime: 'odrl:dateTime',
+        delayPeriod: 'odrl:delayPeriod',
+        deliveryChannel: 'odrl:deliveryChannel',
+        elapsedTime: 'odrl:elapsedTime',
+        event: 'odrl:event',
+        fileFormat: 'odrl:fileFormat',
+        industry: 'odrl:industry:',
+        language: 'odrl:language',
+        media: 'odrl:media',
+        meteredTime: 'odrl:meteredTime',
+        payAmount: 'odrl:payAmount',
+        percentage: 'odrl:percentage',
+        product: 'odrl:product',
+        purpose: 'odrl:purpose',
+        recipient: 'odrl:recipient',
+        relativePosition: 'odrl:relativePosition',
+        relativeSpatialPosition: 'odrl:relativeSpatialPosition',
+        relativeTemporalPosition: 'odrl:relativeTemporalPosition',
+        relativeSize: 'odrl:relativeSize',
+        resolution: 'odrl:resolution',
+        spatial: 'odrl:spatial',
+        spatialCoordinates: 'odrl:spatialCoordinates',
+        systemDevice: 'odrl:systemDevice',
+        timeInterval: 'odrl:timeInterval',
+        unitOfCount: 'odrl:unitOfCount',
+        version: 'odrl:version',
+        virtualLocation: 'odrl:virtualLocation',
+ 
+        eq: 'odrl:eq',
+        gt: 'odrl:gt',
+        gteq: 'odrl:gteq',
+        lt: 'odrl:lt',
+        lteq: 'odrl:lteq',
+        neq: 'odrl:neg',
+        isA: 'odrl:isA',
+        hasPart: 'odrl:hasPart',
+        isPartOf: 'odrl:isPartOf',
+        isAllOf: 'odrl:isAllOf',
+        isAnyOf: 'odrl:isAnyOf',
+        isNoneOf: 'odrl:isNoneOf',
+        or: 'odrl:or',
+        xone: 'odrl:xone',
+        and: 'odrl:and',
+        andSequence: 'odrl:andSequence',
+ 
+        policyUsage: 'odrl:policyUsage',
+      },
+    },
+  ],
+  [
+    'https://w3id.org/citizenship/v1',
+    {
+      '@context': {
+        '@version': 1.1,
+        '@protected': true,
+ 
+        name: 'http://schema.org/name',
+        description: 'http://schema.org/description',
+        identifier: 'http://schema.org/identifier',
+        image: {'@id': 'http://schema.org/image', '@type': '@id'},
+ 
+        PermanentResidentCard: {
+          '@id': 'https://w3id.org/citizenship#PermanentResidentCard',
+          '@context': {
+            '@version': 1.1,
+            '@protected': true,
+ 
+            id: '@id',
+            type: '@type',
+ 
+            description: 'http://schema.org/description',
+            name: 'http://schema.org/name',
+            identifier: 'http://schema.org/identifier',
+            image: {'@id': 'http://schema.org/image', '@type': '@id'},
+          },
+        },
+ 
+        PermanentResident: {
+          '@id': 'https://w3id.org/citizenship#PermanentResident',
+          '@context': {
+            '@version': 1.1,
+            '@protected': true,
+ 
+            id: '@id',
+            type: '@type',
+ 
+            ctzn: 'https://w3id.org/citizenship#',
+            schema: 'http://schema.org/',
+            xsd: 'http://www.w3.org/2001/XMLSchema#',
+ 
+            birthCountry: 'ctzn:birthCountry',
+            birthDate: {'@id': 'schema:birthDate', '@type': 'xsd:dateTime'},
+            commuterClassification: 'ctzn:commuterClassification',
+            familyName: 'schema:familyName',
+            gender: 'schema:gender',
+            givenName: 'schema:givenName',
+            lprCategory: 'ctzn:lprCategory',
+            lprNumber: 'ctzn:lprNumber',
+            residentSince: {'@id': 'ctzn:residentSince', '@type': 'xsd:dateTime'},
+          },
+        },
+ 
+        Person: 'http://schema.org/Person',
+      },
+    },
+  ],
+  [
+    'https://sphereon-opensource.github.io/ssi-mobile-wallet/context/sphereon-wallet-identity-v1.jsonld',
+    {
+      '@context': {
+        '@version': 1.1,
+        '@protected': true,
+        swi: 'https://sphereon-opensource.github.io/ssi-mobile-wallet/context/sphereon-wallet-identity-v1#',
+        schema: 'https://schema.org/',
+        SphereonWalletIdentityCredential: 'swi:SphereonWalletIdentityCredential',
+        id: '@id',
+        type: '@type',
+        firstName: 'swi:firstName',
+        lastName: 'swi:lastName',
+        emailAddress: {
+          '@id': 'swi:emailAddress',
+          '@type': 'schema:email',
+        },
+      },
+    },
+  ],
+]);
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/@config/database/index.html b/coverage/lcov-report/@config/database/index.html new file mode 100644 index 00000000..c6c63197 --- /dev/null +++ b/coverage/lcov-report/@config/database/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for @config/database + + + + + + + + + +
+
+

All files @config/database

+
+
+ 100% + Statements + 3/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%3/3100%0/0100%0/0100%3/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/@config/database/index.ts.html b/coverage/lcov-report/@config/database/index.ts.html new file mode 100644 index 00000000..869253a5 --- /dev/null +++ b/coverage/lcov-report/@config/database/index.ts.html @@ -0,0 +1,144 @@ + + + + Code coverage report for @config/database/index.ts + + + + + + + + + +
+
+

All files / @config/database index.ts

+
+
+ 100% + Statements + 3/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23  +  +  +  +  +1x +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {DataStoreContactEntities, DataStoreIssuanceBrandingEntities, DataStoreMigrations} from '@sphereon/ssi-sdk.data-store';
+import {Entities as VeramoDataStoreEntities, migrations as VeramoDataStoreMigrations} from '@veramo/data-store';
+import * as driver from 'expo-sqlite';
+import {ExpoConnectionOptions} from 'typeorm/driver/expo/ExpoConnectionOptions';
+ 
+const DB_CONNECTION_NAME = 'default';
+const DB_ENCRYPTION_KEY = '29739248cad1bd1a0fc4d9b75cd4d2990de535baf5caadfdf8d8f86664aa830c';
+ 
+const sqliteConfig: ExpoConnectionOptions = {
+  type: 'expo',
+  database: 'sphereon-wallet.sqlite',
+  driver,
+  entities: [...VeramoDataStoreEntities, ...DataStoreContactEntities, ...DataStoreIssuanceBrandingEntities],
+  migrations: [...VeramoDataStoreMigrations, ...DataStoreMigrations],
+  migrationsRun: false, // We run migrations from code to ensure proper ordering with Redux
+  synchronize: false, // We do not enable synchronize, as we use migrations from code
+  migrationsTransactionMode: 'each', // protect every migration with a separate transaction
+  logging: 'all', // 'all' means to enable all logging
+  logger: 'advanced-console',
+};
+ 
+export {sqliteConfig, DB_CONNECTION_NAME, DB_ENCRYPTION_KEY};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/@config/toasts/index.html b/coverage/lcov-report/@config/toasts/index.html new file mode 100644 index 00000000..3fc5b4b6 --- /dev/null +++ b/coverage/lcov-report/@config/toasts/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for @config/toasts + + + + + + + + + +
+
+

All files @config/toasts

+
+
+ 40% + Statements + 4/10 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/2 +
+ +
+ 40% + Lines + 4/10 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
40%4/100%0/20%0/240%4/10
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/@config/toasts/index.tsx.html b/coverage/lcov-report/@config/toasts/index.tsx.html new file mode 100644 index 00000000..d03c043b --- /dev/null +++ b/coverage/lcov-report/@config/toasts/index.tsx.html @@ -0,0 +1,144 @@ + + + + Code coverage report for @config/toasts/index.tsx + + + + + + + + + +
+
+

All files / @config/toasts index.tsx

+
+
+ 40% + Statements + 4/10 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/2 +
+ +
+ 40% + Lines + 4/10 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23  +  +  +  +  +  +1x +1x +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  + 
import React from 'react';
+import {ToastConfigParams} from 'react-native-toast-message';
+ 
+import SSIToast from '../../components/messageBoxes/toasts/SSIToast';
+import {IToastCustomProps, ToastTypeEnum} from '../../types';
+ 
+export const toastsBottomOffset = 0;
+export const toastsAutoHide = true;
+export const toastsVisibilityTime = 6000;
+ 
+export const toastConfig = {
+  ssiAlertToastSuccess: (params: ToastConfigParams<IToastCustomProps>) => {
+    const {text1, text2} = params;
+    const {showBadge = true} = params.props;
+    return <SSIToast type={ToastTypeEnum.TOAST_SUCCESS} title={text1} message={text2} showBadge={showBadge} />;
+  },
+  ssiAlertToastError: (params: ToastConfigParams<IToastCustomProps>) => {
+    const {text1, text2} = params;
+    const {showBadge = true} = params.props;
+    return <SSIToast type={ToastTypeEnum.TOAST_ERROR} title={text1} message={text2} showBadge={showBadge} />;
+  },
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/agent/index.html b/coverage/lcov-report/agent/index.html new file mode 100644 index 00000000..f39ce8ee --- /dev/null +++ b/coverage/lcov-report/agent/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for agent + + + + + + + + + +
+
+

All files agent

+
+
+ 100% + Statements + 26/26 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 1/1 +
+ +
+ 100% + Lines + 25/25 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%26/26100%0/0100%1/1100%25/25
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/agent/index.ts.html b/coverage/lcov-report/agent/index.ts.html new file mode 100644 index 00000000..8124aebb --- /dev/null +++ b/coverage/lcov-report/agent/index.ts.html @@ -0,0 +1,519 @@ + + + + Code coverage report for agent/index.ts + + + + + + + + + +
+
+

All files / agent index.ts

+
+
+ 100% + Statements + 26/26 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 1/1 +
+ +
+ 100% + Lines + 25/25 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +5x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +  +  +  +1x + 
import {getUniResolver} from '@sphereon/did-uni-client';
+import {JwkDIDProvider} from '@sphereon/ssi-sdk-ext.did-provider-jwk';
+import {getDidJwkResolver} from '@sphereon/ssi-sdk-ext.did-resolver-jwk';
+import {SphereonKeyManager} from '@sphereon/ssi-sdk-ext.key-manager';
+import {SphereonKeyManagementSystem} from '@sphereon/ssi-sdk-ext.kms-local';
+import {ContactManager, IContactManager} from '@sphereon/ssi-sdk.contact-manager';
+import {ContactStore, IssuanceBrandingStore} from '@sphereon/ssi-sdk.data-store';
+import {IIssuanceBranding, IssuanceBranding} from '@sphereon/ssi-sdk.issuance-branding';
+import {DidAuthSiopOpAuthenticator, IDidAuthSiopOpAuthenticator} from '@sphereon/ssi-sdk.siopv2-oid4vp-op-auth';
+import {
+  CredentialHandlerLDLocal,
+  ICredentialHandlerLDLocal,
+  MethodNames,
+  SphereonEd25519Signature2018,
+  SphereonEd25519Signature2020,
+  SphereonJsonWebSignature2020,
+} from '@sphereon/ssi-sdk.vc-handler-ld-local';
+import {createAgent, ICredentialPlugin, IDataStore, IDataStoreORM, IDIDManager, IKeyManager, IResolver} from '@veramo/core';
+import {CredentialPlugin, ICredentialIssuer} from '@veramo/credential-w3c';
+import {DataStore, DataStoreORM, DIDStore, KeyStore, PrivateKeyStore} from '@veramo/data-store';
+import {DIDManager} from '@veramo/did-manager';
+import {EthrDIDProvider} from '@veramo/did-provider-ethr';
+import {getDidIonResolver, IonDIDProvider} from '@veramo/did-provider-ion';
+import {getDidKeyResolver, KeyDIDProvider} from '@veramo/did-provider-key';
+import {DIDResolverPlugin} from '@veramo/did-resolver';
+import {SecretBox} from '@veramo/kms-local';
+import {OrPromise} from '@veramo/utils';
+import {Resolver} from 'did-resolver';
+import {DataSource} from 'typeorm';
+import {getResolver as webDIDResolver} from 'web-did-resolver';
+ 
+import {DID_PREFIX, DIF_UNIRESOLVER_RESOLVE_URL, SPHEREON_UNIRESOLVER_RESOLVE_URL} from '../@config/constants';
+import {LdContexts} from '../@config/credentials';
+import {DB_CONNECTION_NAME, DB_ENCRYPTION_KEY} from '../@config/database';
+import {getDbConnection} from '../services/databaseService';
+import {KeyManagementSystemEnum, SupportedDidMethodEnum} from '../types';
+ 
+export const didResolver = new Resolver({
+  ...getUniResolver(SupportedDidMethodEnum.DID_ETHR, {
+    resolveUrl: DIF_UNIRESOLVER_RESOLVE_URL,
+  }),
+  ...getDidKeyResolver(),
+  ...webDIDResolver(),
+  ...getDidIonResolver(),
+  ...getDidJwkResolver(),
+});
+ 
+export const didMethodsSupported = Object.keys(didResolver['registry']).map(method => method.toLowerCase().replace('did:', ''));
+ 
+export const didProviders = {
+  [`${DID_PREFIX}:${SupportedDidMethodEnum.DID_ETHR}`]: new EthrDIDProvider({
+    defaultKms: KeyManagementSystemEnum.LOCAL,
+    network: 'goerli',
+  }),
+  [`${DID_PREFIX}:${SupportedDidMethodEnum.DID_KEY}`]: new KeyDIDProvider({
+    defaultKms: KeyManagementSystemEnum.LOCAL,
+  }),
+  [`${DID_PREFIX}:${SupportedDidMethodEnum.DID_ION}`]: new IonDIDProvider({
+    defaultKms: KeyManagementSystemEnum.LOCAL,
+  }),
+  [`${DID_PREFIX}:${SupportedDidMethodEnum.DID_JWK}`]: new JwkDIDProvider({
+    defaultKms: KeyManagementSystemEnum.LOCAL,
+  }),
+};
+ 
+const dbConnection: OrPromise<DataSource> = getDbConnection(DB_CONNECTION_NAME);
+const privateKeyStore: PrivateKeyStore = new PrivateKeyStore(dbConnection, new SecretBox(DB_ENCRYPTION_KEY));
+ 
+const agent = createAgent<
+  IDIDManager &
+    IKeyManager &
+    IDataStore &
+    IDataStoreORM &
+    IResolver &
+    IDidAuthSiopOpAuthenticator &
+    IContactManager &
+    ICredentialPlugin &
+    ICredentialIssuer &
+    ICredentialHandlerLDLocal &
+    IIssuanceBranding
+>({
+  plugins: [
+    new DataStore(dbConnection),
+    new DataStoreORM(dbConnection),
+    new SphereonKeyManager({
+      store: new KeyStore(dbConnection),
+      kms: {
+        local: new SphereonKeyManagementSystem(privateKeyStore),
+      },
+    }),
+    new DIDManager({
+      store: new DIDStore(dbConnection),
+      defaultProvider: `${DID_PREFIX}:${SupportedDidMethodEnum.DID_KEY}`,
+      providers: didProviders,
+    }),
+    new DIDResolverPlugin({
+      resolver: didResolver,
+    }),
+    new DidAuthSiopOpAuthenticator(),
+    new ContactManager({
+      store: new ContactStore(dbConnection),
+    }),
+    new IssuanceBranding({
+      store: new IssuanceBrandingStore(dbConnection),
+    }),
+    new CredentialPlugin(),
+    new CredentialHandlerLDLocal({
+      contextMaps: [LdContexts],
+      suites: [
+        new SphereonEd25519Signature2018(),
+        new SphereonEd25519Signature2020(),
+        // new SphereonBbsBlsSignature2020(),
+        new SphereonJsonWebSignature2020(),
+      ],
+      bindingOverrides: new Map([
+        ['verifyCredentialLD', MethodNames.verifyCredentialLDLocal],
+        ['verifyPresentationLD', MethodNames.verifyPresentationLDLocal],
+        ['createVerifiableCredentialLD', MethodNames.createVerifiableCredentialLDLocal],
+        ['createVerifiablePresentationLD', MethodNames.createVerifiablePresentationLDLocal],
+      ]),
+      keyStore: privateKeyStore,
+    }),
+  ],
+});
+ 
+export const didManagerCreate = agent.didManagerCreate;
+export const didManagerFind = agent.didManagerFind;
+export const cmGetContacts = agent.cmGetContacts;
+export const cmAddContact = agent.cmAddContact;
+export const cmUpdateContact = agent.cmUpdateContact;
+export const cmRemoveContact = agent.cmRemoveContact;
+export const cmAddIdentity = agent.cmAddIdentity;
+export const didManagerGet = agent.didManagerGet;
+export const dataStoreORMGetVerifiableCredentials = agent.dataStoreORMGetVerifiableCredentials;
+export const dataStoreSaveVerifiableCredential = agent.dataStoreSaveVerifiableCredential;
+export const keyManagerSign = agent.keyManagerSign;
+export const dataStoreGetVerifiableCredential = agent.dataStoreGetVerifiableCredential;
+export const dataStoreDeleteVerifiableCredential = agent.dataStoreDeleteVerifiableCredential;
+export const createVerifiableCredential = agent.createVerifiableCredential;
+export const ibAddCredentialBranding = agent.ibAddCredentialBranding;
+export const ibGetCredentialBranding = agent.ibGetCredentialBranding;
+export const ibCredentialLocaleBrandingFrom = agent.ibCredentialLocaleBrandingFrom;
+export const ibRemoveCredentialBranding = agent.ibRemoveCredentialBranding;
+ 
+export default agent;
+ 
+export const agentContext = {...agent.context, agent};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/base.css b/coverage/lcov-report/base.css new file mode 100644 index 00000000..92b10f52 --- /dev/null +++ b/coverage/lcov-report/base.css @@ -0,0 +1,354 @@ +body, +html { + margin: 0; + padding: 0; + height: 100%; +} +body { + font-family: Helvetica Neue, Helvetica, Arial; + font-size: 14px; + color: #333; +} +.small { + font-size: 12px; +} +*, +*:after, +*:before { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +h1 { + font-size: 20px; + margin: 0; +} +h2 { + font-size: 14px; +} +pre { + font: 12px/1.4 Consolas, 'Liberation Mono', Menlo, Courier, monospace; + margin: 0; + padding: 0; + -moz-tab-size: 2; + -o-tab-size: 2; + tab-size: 2; +} +a { + color: #0074d9; + text-decoration: none; +} +a:hover { + text-decoration: underline; +} +.strong { + font-weight: bold; +} +.space-top1 { + padding: 10px 0 0 0; +} +.pad2y { + padding: 20px 0; +} +.pad1y { + padding: 10px 0; +} +.pad2x { + padding: 0 20px; +} +.pad2 { + padding: 20px; +} +.pad1 { + padding: 10px; +} +.space-left2 { + padding-left: 55px; +} +.space-right2 { + padding-right: 20px; +} +.center { + text-align: center; +} +.clearfix { + display: block; +} +.clearfix:after { + content: ''; + display: block; + height: 0; + clear: both; + visibility: hidden; +} +.fl { + float: left; +} +@media only screen and (max-width: 640px) { + .col3 { + width: 100%; + max-width: 100%; + } + .hide-mobile { + display: none !important; + } +} + +.quiet { + color: #7f7f7f; + color: rgba(0, 0, 0, 0.5); +} +.quiet a { + opacity: 0.7; +} + +.fraction { + font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; + font-size: 10px; + color: #555; + background: #e8e8e8; + padding: 4px 5px; + border-radius: 3px; + vertical-align: middle; +} + +div.path a:link, +div.path a:visited { + color: #333; +} +table.coverage { + border-collapse: collapse; + margin: 10px 0 0 0; + padding: 0; +} + +table.coverage td { + margin: 0; + padding: 0; + vertical-align: top; +} +table.coverage td.line-count { + text-align: right; + padding: 0 5px 0 20px; +} +table.coverage td.line-coverage { + text-align: right; + padding-right: 10px; + min-width: 20px; +} + +table.coverage td span.cline-any { + display: inline-block; + padding: 0 5px; + width: 100%; +} +.missing-if-branch { + display: inline-block; + margin-right: 5px; + border-radius: 3px; + position: relative; + padding: 0 4px; + background: #333; + color: yellow; +} + +.skip-if-branch { + display: none; + margin-right: 10px; + position: relative; + padding: 0 4px; + background: #ccc; + color: white; +} +.missing-if-branch .typ, +.skip-if-branch .typ { + color: inherit !important; +} +.coverage-summary { + border-collapse: collapse; + width: 100%; +} +.coverage-summary tr { + border-bottom: 1px solid #bbb; +} +.keyline-all { + border: 1px solid #ddd; +} +.coverage-summary td, +.coverage-summary th { + padding: 10px; +} +.coverage-summary tbody { + border: 1px solid #bbb; +} +.coverage-summary td { + border-right: 1px solid #bbb; +} +.coverage-summary td:last-child { + border-right: none; +} +.coverage-summary th { + text-align: left; + font-weight: normal; + white-space: nowrap; +} +.coverage-summary th.file { + border-right: none !important; +} +.coverage-summary th.pct { +} +.coverage-summary th.pic, +.coverage-summary th.abs, +.coverage-summary td.pct, +.coverage-summary td.abs { + text-align: right; +} +.coverage-summary td.file { + white-space: nowrap; +} +.coverage-summary td.pic { + min-width: 120px !important; +} +.coverage-summary tfoot td { +} + +.coverage-summary .sorter { + height: 10px; + width: 7px; + display: inline-block; + margin-left: 0.5em; + background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; +} +.coverage-summary .sorted .sorter { + background-position: 0 -20px; +} +.coverage-summary .sorted-desc .sorter { + background-position: 0 -10px; +} +.status-line { + height: 10px; +} +/* yellow */ +.cbranch-no { + background: yellow !important; + color: #111; +} +/* dark red */ +.red.solid, +.status-line.low, +.low .cover-fill { + background: #c21f39; +} +.low .chart { + border: 1px solid #c21f39; +} +.highlighted, +.highlighted .cstat-no, +.highlighted .fstat-no, +.highlighted .cbranch-no { + background: #c21f39 !important; +} +/* medium red */ +.cstat-no, +.fstat-no, +.cbranch-no, +.cbranch-no { + background: #f6c6ce; +} +/* light red */ +.low, +.cline-no { + background: #fce1e5; +} +/* light green */ +.high, +.cline-yes { + background: rgb(230, 245, 208); +} +/* medium green */ +.cstat-yes { + background: rgb(161, 215, 106); +} +/* dark green */ +.status-line.high, +.high .cover-fill { + background: rgb(77, 146, 33); +} +.high .chart { + border: 1px solid rgb(77, 146, 33); +} +/* dark yellow (gold) */ +.status-line.medium, +.medium .cover-fill { + background: #f9cd0b; +} +.medium .chart { + border: 1px solid #f9cd0b; +} +/* light yellow */ +.medium { + background: #fff4c2; +} + +.cstat-skip { + background: #ddd; + color: #111; +} +.fstat-skip { + background: #ddd; + color: #111 !important; +} +.cbranch-skip { + background: #ddd !important; + color: #111; +} + +span.cline-neutral { + background: #eaeaea; +} + +.coverage-summary td.empty { + opacity: 0.5; + padding-top: 4px; + padding-bottom: 4px; + line-height: 1; + color: #888; +} + +.cover-fill, +.cover-empty { + display: inline-block; + height: 12px; +} +.chart { + line-height: 0; +} +.cover-empty { + background: white; +} +.cover-full { + border-right: none !important; +} +pre.prettyprint { + border: none !important; + padding: 0 !important; + margin: 0 !important; +} +.com { + color: #999 !important; +} +.ignore-none { + color: #999; + font-weight: normal; +} + +.wrapper { + min-height: 100%; + height: auto !important; + height: 100%; + margin: 0 auto -48px; +} +.footer, +.push { + height: 48px; +} diff --git a/coverage/lcov-report/block-navigation.js b/coverage/lcov-report/block-navigation.js new file mode 100644 index 00000000..495a10bd --- /dev/null +++ b/coverage/lcov-report/block-navigation.js @@ -0,0 +1,75 @@ +/* eslint-disable */ +var jumpToCode = (function init() { + // Classes of code we would like to highlight in the file view + var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; + + // Elements to highlight in the file listing view + var fileListingElements = ['td.pct.low']; + + // We don't want to select elements that are direct descendants of another match + var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` + + // Selecter that finds elements on the page to which we can jump + var selector = fileListingElements.join(', ') + ', ' + notSelector + missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` + + // The NodeList of matching elements + var missingCoverageElements = document.querySelectorAll(selector); + + var currentIndex; + + function toggleClass(index) { + missingCoverageElements.item(currentIndex).classList.remove('highlighted'); + missingCoverageElements.item(index).classList.add('highlighted'); + } + + function makeCurrent(index) { + toggleClass(index); + currentIndex = index; + missingCoverageElements.item(index).scrollIntoView({ + behavior: 'smooth', + block: 'center', + inline: 'center', + }); + } + + function goToPrevious() { + var nextIndex = 0; + if (typeof currentIndex !== 'number' || currentIndex === 0) { + nextIndex = missingCoverageElements.length - 1; + } else if (missingCoverageElements.length > 1) { + nextIndex = currentIndex - 1; + } + + makeCurrent(nextIndex); + } + + function goToNext() { + var nextIndex = 0; + + if (typeof currentIndex === 'number' && currentIndex < missingCoverageElements.length - 1) { + nextIndex = currentIndex + 1; + } + + makeCurrent(nextIndex); + } + + return function jump(event) { + if (document.getElementById('fileSearch') === document.activeElement && document.activeElement != null) { + // if we're currently focused on the search input, we don't want to navigate + return; + } + + switch (event.which) { + case 78: // n + case 74: // j + goToNext(); + break; + case 66: // b + case 75: // k + case 80: // p + goToPrevious(); + break; + } + }; +})(); +window.addEventListener('keydown', jumpToCode); diff --git a/coverage/lcov-report/components/assets/icons/SSIAddIcon/index.html b/coverage/lcov-report/components/assets/icons/SSIAddIcon/index.html new file mode 100644 index 00000000..1602462d --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSIAddIcon/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/assets/icons/SSIAddIcon + + + + + + + + + +
+
+

All files components/assets/icons/SSIAddIcon

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
33.33%1/30%0/20%0/133.33%1/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSIAddIcon/index.tsx.html b/coverage/lcov-report/components/assets/icons/SSIAddIcon/index.tsx.html new file mode 100644 index 00000000..35403394 --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSIAddIcon/index.tsx.html @@ -0,0 +1,159 @@ + + + + Code coverage report for components/assets/icons/SSIAddIcon/index.tsx + + + + + + + + + +
+
+

All files / components/assets/icons/SSIAddIcon index.tsx

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {ColorValue, View} from 'react-native';
+import Svg, {Path} from 'react-native-svg';
+ 
+import {fonts} from '../../../../styles/colors';
+ 
+export interface IProps {
+  size?: number;
+  color?: ColorValue;
+}
+ 
+const SSIAddIcon: FC<IProps> = (props: IProps): JSX.Element => {
+  const {size = 20, color = fonts.dark} = props;
+ 
+  return (
+    <View style={{width: size, aspectRatio: 1}}>
+      <Svg width="100%" height="100%" viewBox="0 0 19 21" fill="none">
+        <Path
+          d="M10 0C9.53978 0 9.16667 0.373111 9.16667 0.833333V9.1667H0.833333C0.373083 9.1667 0 9.53978 0 10C0 10.4603 0.373083 10.8334 0.833333 10.8334H9.16667V19.1667C9.16667 19.6269 9.53978 20 10 20C10.4603 20 10.8333 19.6269 10.8333 19.1667V10.8334H19.1667C19.6269 10.8334 20 10.4603 20 10C20 9.53978 19.6269 9.1667 19.1667 9.1667H10.8333V0.833333C10.8333 0.373111 10.4603 0 10 0Z"
+          fill={color}
+        />
+      </Svg>
+    </View>
+  );
+};
+ 
+export default SSIAddIcon;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSIBackIcon/index.html b/coverage/lcov-report/components/assets/icons/SSIBackIcon/index.html new file mode 100644 index 00000000..73146ba3 --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSIBackIcon/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/assets/icons/SSIBackIcon + + + + + + + + + +
+
+

All files components/assets/icons/SSIBackIcon

+
+
+ 100% + Statements + 3/3 +
+ +
+ 100% + Branches + 3/3 +
+ +
+ 100% + Functions + 1/1 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
100%3/3100%3/3100%1/1100%3/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSIBackIcon/index.tsx.html b/coverage/lcov-report/components/assets/icons/SSIBackIcon/index.tsx.html new file mode 100644 index 00000000..61405b18 --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSIBackIcon/index.tsx.html @@ -0,0 +1,162 @@ + + + + Code coverage report for components/assets/icons/SSIBackIcon/index.tsx + + + + + + + + + +
+
+

All files / components/assets/icons/SSIBackIcon index.tsx

+
+
+ 100% + Statements + 3/3 +
+ +
+ 100% + Branches + 3/3 +
+ +
+ 100% + Functions + 1/1 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29  +  +  +  +  +  +  +  +  +  +  +  +1x +112x +  +112x +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {ColorValue, View} from 'react-native';
+import Svg, {Path} from 'react-native-svg';
+ 
+import {fonts} from '../../../../styles/colors';
+ 
+export interface IProps {
+  width?: number;
+  height?: number;
+  color?: ColorValue;
+}
+ 
+const SSIBackIcon: FC<IProps> = (props: IProps): JSX.Element => {
+  const {width = 10, height = 19, color = fonts.light} = props;
+ 
+  return (
+    <View style={{width, height}}>
+      <Svg width="100%" height="100%" viewBox="0 0 10 19" fill="none">
+        <Path
+          d="M0.00139137 9.29184C0.00995381 9.436 0.0666855 9.5731 0.162486 9.68116L7.89504 18.2729C7.95055 18.3391 8.01879 18.3934 8.09571 18.4327C8.17264 18.4719 8.25667 18.4954 8.34282 18.5015C8.42897 18.5077 8.51548 18.4964 8.59721 18.4685C8.67893 18.4406 8.7542 18.3965 8.81856 18.3389C8.88291 18.2813 8.93504 18.2113 8.97182 18.1332C9.00861 18.055 9.0293 17.9703 9.03269 17.884C9.03608 17.7977 9.0221 17.7116 8.99156 17.6308C8.96101 17.55 8.91455 17.4762 8.85491 17.4137L1.51167 9.25157L8.85491 1.08943C8.91455 1.02695 8.96101 0.95313 8.99155 0.872342C9.0221 0.791554 9.0361 0.705451 9.03271 0.619148C9.02932 0.532845 9.00861 0.448105 8.97182 0.369961C8.93504 0.291818 8.88291 0.221866 8.81856 0.164263C8.7542 0.10666 8.67893 0.0625803 8.59721 0.0346436C8.51548 0.00670688 8.42897 -0.00451693 8.34282 0.00163914C8.25667 0.00779521 8.17264 0.0312055 8.09571 0.070479C8.01879 0.109753 7.95055 0.164088 7.89504 0.230256L0.162486 8.82198C0.105887 8.88575 0.0625138 8.96012 0.034861 9.04077C0.00720827 9.12142 -0.00417405 9.20676 0.00139137 9.29184V9.29184Z"
+          fill={color}
+        />
+      </Svg>
+    </View>
+  );
+};
+ 
+export default SSIBackIcon;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSIBellIcon/index.html b/coverage/lcov-report/components/assets/icons/SSIBellIcon/index.html new file mode 100644 index 00000000..540c744d --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSIBellIcon/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/assets/icons/SSIBellIcon + + + + + + + + + +
+
+

All files components/assets/icons/SSIBellIcon

+
+
+ 50% + Statements + 1/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 50% + Lines + 1/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
50%1/2100%0/00%0/150%1/2
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSIBellIcon/index.tsx.html b/coverage/lcov-report/components/assets/icons/SSIBellIcon/index.tsx.html new file mode 100644 index 00000000..60651342 --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSIBellIcon/index.tsx.html @@ -0,0 +1,156 @@ + + + + Code coverage report for components/assets/icons/SSIBellIcon/index.tsx + + + + + + + + + +
+
+

All files / components/assets/icons/SSIBellIcon index.tsx

+
+
+ 50% + Statements + 1/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 50% + Lines + 1/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import Svg, {Defs, LinearGradient, Path, Stop} from 'react-native-svg';
+ 
+export interface IProps {
+  primaryColor: string;
+  secondaryColor: string;
+}
+ 
+const SSIBellIcon: FC<IProps> = (props: IProps): JSX.Element => {
+  return (
+    <Svg width="17" height="21" viewBox="0 0 17 21" fill="none">
+      <Path
+        d="M11.194 18.6282C11.0761 19.2022 10.8155 19.7112 10.4517 20.1065C9.95026 20.6588 9.262 21 8.5 21C7.738 21 7.04974 20.6588 6.54829 20.1065C6.1845 19.7112 5.92394 19.2022 5.80596 18.6282H1.82389C1.32244 18.6282 0.86524 18.4061 0.535859 18.0379C0.206478 17.6751 0 17.1715 0 16.6191C0 16.0668 0.206478 15.5632 0.535859 15.2004C0.86524 14.8321 1.32244 14.6047 1.82389 14.6047H2.15327V8.95126C2.15327 7.02888 2.86611 5.27978 4.01648 4.01264C4.52285 3.45487 5.11278 2.98917 5.76171 2.64801C5.84529 1.9657 6.13042 1.35379 6.54829 0.893502C7.04974 0.341155 7.738 0 8.5 0C9.262 0 9.95026 0.341155 10.4517 0.893502C10.8745 1.35379 11.1596 1.9657 11.2383 2.64801C11.8921 2.98917 12.4821 3.45487 12.9835 4.01264C14.1339 5.27978 14.8516 7.02888 14.8516 8.95126V14.6047H15.1761C15.6776 14.6047 16.1348 14.8321 16.4641 15.2004C16.7984 15.5632 17 16.0668 17 16.6191C17 17.1715 16.7984 17.6751 16.4641 18.0379C16.1348 18.4061 15.6776 18.6282 15.1761 18.6282H11.194ZM7.21197 2.1065C7.62984 2.00903 8.05755 1.96029 8.5 1.96029C8.94245 1.96029 9.37507 2.00903 9.79294 2.1065C9.73395 2.00903 9.66512 1.91697 9.59138 1.83574C9.31608 1.53249 8.9277 1.34296 8.5 1.34296C8.0723 1.34296 7.68884 1.53249 7.40862 1.83574C7.33488 1.91697 7.27097 2.00903 7.21197 2.1065ZM5.74205 17.2906H11.2629H15.1761C15.3433 17.2906 15.4957 17.2148 15.6038 17.0903C15.7169 16.9711 15.7857 16.8032 15.7857 16.6191C15.7857 16.435 15.7169 16.2671 15.6038 16.148C15.4957 16.0235 15.3433 15.9477 15.1761 15.9477H14.8516H2.15327H1.82389C1.66165 15.9477 1.50925 16.0235 1.39618 16.148C1.28803 16.2671 1.2192 16.435 1.2192 16.6191C1.2192 16.8032 1.28803 16.9711 1.39618 17.0903C1.50925 17.2148 1.66165 17.2906 1.82389 17.2906H5.74205V17.2906ZM12.1232 4.96029C11.194 3.93682 9.91093 3.29783 8.5 3.29783C7.08907 3.29783 5.80596 3.93682 4.87681 4.96029C3.94766 5.98375 3.36755 7.39711 3.36755 8.95126V14.6047H13.6324V8.95126C13.6324 7.39711 13.0523 5.98375 12.1232 4.96029V4.96029ZM9.59138 19.1643C9.72903 19.0126 9.84211 18.8339 9.92076 18.6282H7.07924C7.1579 18.8339 7.27097 19.0126 7.40862 19.1643C7.68884 19.4729 8.0723 19.6625 8.5 19.6625C8.9277 19.6625 9.31608 19.4729 9.59138 19.1643V19.1643Z"
+        fill="url(#paint0_linear_250:3488)"
+      />
+      <Defs>
+        <LinearGradient id="paint0_linear_250:3488" x1="0" y1="0" x2="20.5397" y2="16.6274" gradientUnits="userSpaceOnUse">
+          <Stop stopColor={props.primaryColor} />
+          <Stop offset="1" stopColor={props.secondaryColor} />
+        </LinearGradient>
+      </Defs>
+    </Svg>
+  );
+};
+ 
+export default SSIBellIcon;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSICheckmarkIcon/index.html b/coverage/lcov-report/components/assets/icons/SSICheckmarkIcon/index.html new file mode 100644 index 00000000..1728a018 --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSICheckmarkIcon/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/assets/icons/SSICheckmarkIcon + + + + + + + + + +
+
+

All files components/assets/icons/SSICheckmarkIcon

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/3 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
33.33%1/30%0/30%0/133.33%1/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSICheckmarkIcon/index.tsx.html b/coverage/lcov-report/components/assets/icons/SSICheckmarkIcon/index.tsx.html new file mode 100644 index 00000000..1cab922a --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSICheckmarkIcon/index.tsx.html @@ -0,0 +1,165 @@ + + + + Code coverage report for components/assets/icons/SSICheckmarkIcon/index.tsx + + + + + + + + + +
+
+

All files / components/assets/icons/SSICheckmarkIcon index.tsx

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/3 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {ColorValue, View} from 'react-native';
+import Svg, {Path} from 'react-native-svg';
+ 
+import {fonts} from '../../../../styles/colors';
+ 
+export interface IProps {
+  height?: number;
+  width?: number;
+  color?: ColorValue;
+}
+ 
+// TODO use checkmark in checkmark badge
+const SSICheckmarkIcon: FC<IProps> = (props: IProps): JSX.Element => {
+  const {height = 14, width = 17, color = fonts.light} = props;
+ 
+  return (
+    <View style={{height, width}}>
+      <Svg width={width} height={height} viewBox="0 0 17 14" fill="none">
+        <Path
+          d="M5.65824 13.5H5.65216C5.5371 13.4991 5.42336 13.4739 5.31754 13.4258C5.21171 13.3778 5.11592 13.3078 5.03573 13.2199L0.260569 7.9866C0.177876 7.90034 0.112223 7.79733 0.0674744 7.68365C0.0227257 7.56997 -0.000214902 7.44791 1.51707e-06 7.32465C0.000217936 7.20139 0.023587 7.07942 0.0687346 6.96592C0.113882 6.85242 0.179896 6.74968 0.262892 6.66374C0.345888 6.5778 0.44419 6.51041 0.552013 6.46552C0.659837 6.42063 0.775004 6.39915 0.89074 6.40235C1.00648 6.40555 1.12044 6.43336 1.22593 6.48414C1.33142 6.53493 1.42631 6.60766 1.505 6.69807L5.66663 11.2582L15.5286 0.759474C15.6924 0.591097 15.9117 0.497929 16.1393 0.500035C16.367 0.502141 16.5847 0.599353 16.7457 0.770734C16.9067 0.942115 16.998 1.17395 17 1.41631C17.0019 1.65867 16.9144 1.89216 16.7563 2.06649L6.27206 13.2292C6.10928 13.4025 5.88848 13.4999 5.65824 13.5Z"
+          fill={color}
+        />
+      </Svg>
+    </View>
+  );
+};
+ 
+export default SSICheckmarkIcon;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSICloseIcon/index.html b/coverage/lcov-report/components/assets/icons/SSICloseIcon/index.html new file mode 100644 index 00000000..814eca66 --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSICloseIcon/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/assets/icons/SSICloseIcon + + + + + + + + + +
+
+

All files components/assets/icons/SSICloseIcon

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
33.33%1/30%0/20%0/133.33%1/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSICloseIcon/index.tsx.html b/coverage/lcov-report/components/assets/icons/SSICloseIcon/index.tsx.html new file mode 100644 index 00000000..8a0998a6 --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSICloseIcon/index.tsx.html @@ -0,0 +1,159 @@ + + + + Code coverage report for components/assets/icons/SSICloseIcon/index.tsx + + + + + + + + + +
+
+

All files / components/assets/icons/SSICloseIcon index.tsx

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {ColorValue, View} from 'react-native';
+import Svg, {Path} from 'react-native-svg';
+ 
+import {fonts} from '../../../../styles/colors';
+ 
+export interface IProps {
+  size?: number;
+  color?: ColorValue;
+}
+ 
+const SSICloseIcon: FC<IProps> = (props: IProps): JSX.Element => {
+  const {size = 12, color = fonts.dark} = props;
+ 
+  return (
+    <View style={{width: size, aspectRatio: 1}}>
+      <Svg width="100%" height="100%" viewBox="0 0 12 12" fill="none">
+        <Path
+          d="M11.3763 0.623718C11.2113 0.45875 10.9439 0.458771 10.7789 0.623718L5.99999 5.40265L1.22108 0.623744C1.05612 0.458776 0.788685 0.458776 0.62372 0.623744C0.458759 0.788692 0.458761 1.05613 0.623722 1.2211L5.40263 6L0.623735 10.7789C0.458779 10.9439 0.458773 11.2113 0.623733 11.3763C0.788697 11.5412 1.05614 11.5412 1.2211 11.3763L5.99999 6.59737L10.7789 11.3763C10.9439 11.5412 11.2113 11.5412 11.3763 11.3763C11.5412 11.2113 11.5412 10.9439 11.3763 10.7789L6.59736 6L11.3763 1.22107C11.5412 1.05612 11.5412 0.788687 11.3763 0.623718Z"
+          fill={color}
+        />
+      </Svg>
+    </View>
+  );
+};
+ 
+export default SSICloseIcon;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSIContactsIcon/index.html b/coverage/lcov-report/components/assets/icons/SSIContactsIcon/index.html new file mode 100644 index 00000000..d139c4da --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSIContactsIcon/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/assets/icons/SSIContactsIcon + + + + + + + + + +
+
+

All files components/assets/icons/SSIContactsIcon

+
+
+ 50% + Statements + 1/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 50% + Lines + 1/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
50%1/2100%0/00%0/150%1/2
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSIContactsIcon/index.tsx.html b/coverage/lcov-report/components/assets/icons/SSIContactsIcon/index.tsx.html new file mode 100644 index 00000000..f1cb41ac --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSIContactsIcon/index.tsx.html @@ -0,0 +1,156 @@ + + + + Code coverage report for components/assets/icons/SSIContactsIcon/index.tsx + + + + + + + + + +
+
+

All files / components/assets/icons/SSIContactsIcon index.tsx

+
+
+ 50% + Statements + 1/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 50% + Lines + 1/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import Svg, {Defs, LinearGradient, Path, Stop} from 'react-native-svg';
+ 
+export interface IProps {
+  primaryColor: string;
+  secondaryColor: string;
+}
+ 
+const SSIContactsIcon: FC<IProps> = (props: IProps): JSX.Element => {
+  return (
+    <Svg width="21" height="19" viewBox="0 0 21 19" fill="none">
+      <Path
+        d="M17.552 5.05709C18.9414 5.05709 20.0723 3.92621 20.0723 2.53685C20.0723 1.14749 18.9414 0.0166016 17.552 0.0166016C16.1627 0.0166016 15.0318 1.14749 15.0318 2.53685C15.0318 3.02155 15.1609 3.4415 15.3872 3.82916L12.0916 6.60792C11.5746 6.28484 10.9284 6.05862 10.2822 6.05862C9.28071 6.05862 8.34358 6.51105 7.72972 7.22178L4.98345 5.54163C5.14507 5.21855 5.24195 4.8309 5.24195 4.44307C5.24195 3.02139 4.07878 1.85822 2.65711 1.85822C1.23543 1.85822 0.0722656 3.02139 0.0722656 4.44307C0.0722656 5.86474 1.23543 7.02791 2.65711 7.02791C3.33556 7.02791 3.94942 6.76941 4.40185 6.31717L7.18061 8.02964C6.98669 8.44959 6.85753 8.93429 6.85753 9.45132C6.85753 11.3252 8.37608 12.8439 10.2501 12.8439C10.8963 12.8439 11.4779 12.65 11.9949 12.3592L13.8365 14.7178C13.4488 15.1703 13.1903 15.7519 13.1903 16.398C13.1903 17.8197 14.3535 18.9828 15.7752 18.9828C17.1968 18.9828 18.36 17.8197 18.36 16.398C18.36 14.9763 17.1968 13.8131 15.7752 13.8131C15.3552 13.8131 14.9351 13.91 14.5797 14.1039L12.7381 11.7453C13.2874 11.1315 13.6428 10.3237 13.6428 9.45128C13.6428 8.61118 13.3197 7.83569 12.8027 7.22183L16.0014 4.50783C16.4535 4.86321 16.9704 5.05713 17.552 5.05713L17.552 5.05709ZM2.62489 6.09094C1.75252 6.09094 1.0093 5.3802 1.0093 4.47534C1.0093 3.60297 1.72004 2.85975 2.62489 2.85975C3.49727 2.85975 4.24049 3.57049 4.24049 4.47534C4.24032 5.34788 3.49727 6.09094 2.62489 6.09094ZM17.552 0.985892C18.4244 0.985892 19.1029 1.69663 19.1029 2.53672C19.1029 3.4091 18.3921 4.08755 17.552 4.08755C16.6796 4.08755 16.0012 3.37682 16.0012 2.53672C15.9689 1.66435 16.6796 0.985892 17.552 0.985892ZM7.82673 9.48322C7.82673 8.15842 8.92529 7.06002 10.2499 7.06002C11.5747 7.06002 12.6731 8.15859 12.6731 9.48322C12.6731 10.808 11.5746 11.9064 10.2499 11.9064C8.92529 11.9064 7.82673 10.808 7.82673 9.48322ZM17.3904 16.4298C17.3904 17.3022 16.6797 18.0454 15.7748 18.0454C14.9025 18.0454 14.1592 17.3347 14.1592 16.4298C14.1592 15.5574 14.87 14.8142 15.7748 14.8142C16.6795 14.8142 17.3904 15.5251 17.3904 16.4298Z"
+        fill="url(#paint0_linear_3126_10891)"
+      />
+      <Defs>
+        <LinearGradient id="paint0_linear_3126_10891" x1="0.0722656" y1="0.0175781" x2="19.0118" y2="19.9894" gradientUnits="userSpaceOnUse">
+          <Stop stopColor={props.primaryColor} />
+          <Stop offset="1" stopColor={props.secondaryColor} />
+        </LinearGradient>
+      </Defs>
+    </Svg>
+  );
+};
+ 
+export default SSIContactsIcon;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSIDeleteIcon/index.html b/coverage/lcov-report/components/assets/icons/SSIDeleteIcon/index.html new file mode 100644 index 00000000..a8f3b1cd --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSIDeleteIcon/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/assets/icons/SSIDeleteIcon + + + + + + + + + +
+
+

All files components/assets/icons/SSIDeleteIcon

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/3 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
33.33%1/30%0/30%0/133.33%1/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSIDeleteIcon/index.tsx.html b/coverage/lcov-report/components/assets/icons/SSIDeleteIcon/index.tsx.html new file mode 100644 index 00000000..e505fbe9 --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSIDeleteIcon/index.tsx.html @@ -0,0 +1,162 @@ + + + + Code coverage report for components/assets/icons/SSIDeleteIcon/index.tsx + + + + + + + + + +
+
+

All files / components/assets/icons/SSIDeleteIcon index.tsx

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/3 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {ColorValue, View} from 'react-native';
+import Svg, {Path} from 'react-native-svg';
+ 
+import {fonts} from '../../../../styles/colors';
+ 
+export interface IProps {
+  width?: number;
+  height?: number;
+  color?: ColorValue;
+}
+ 
+const SSIDeleteIcon: FC<IProps> = (props: IProps): JSX.Element => {
+  const {width = 19, height = 21, color = fonts.light} = props;
+ 
+  return (
+    <View style={{width, height}}>
+      <Svg width="100%" height="100%" viewBox="0 0 19 21" fill="none">
+        <Path
+          d="M17.2651 4.36542V18.0301C17.2651 19.6588 15.9313 21 14.3115 21H4.69164C3.06874 21 1.73485 19.6588 1.73485 18.0301V4.36542H0.683619C-0.227873 4.36542 -0.227873 2.97308 0.683619 2.97308H6.07952V1.63823C6.07952 0.766423 6.75917 0 7.64526 0H11.3579C12.2408 0 12.9237 0.769617 12.9237 1.63823V2.97308H18.3164C19.2279 2.97308 19.2279 4.36542 18.3164 4.36542H17.2651ZM7.46423 2.97308H11.5358V1.63823C11.5358 1.53604 11.4754 1.39234 11.3579 1.39234H7.64526C7.52457 1.39234 7.46423 1.53604 7.46423 1.63823V2.97308ZM12.5171 15.7181C12.5171 16.6314 11.1324 16.6314 11.1324 15.7181V8.13686C11.1324 7.22354 12.5171 7.22354 12.5171 8.13686V15.7181ZM7.86757 15.7181C7.86757 16.6314 6.48287 16.6314 6.48287 15.7181V8.13686C6.48287 7.22354 7.86757 7.22035 7.86757 8.13686V15.7181ZM15.8804 4.36542C11.6279 4.36542 7.3753 4.36542 3.12273 4.36542V18.0301C3.12273 18.8987 3.82461 19.6077 4.69164 19.6077H14.3115C15.1754 19.6077 15.8804 18.8987 15.8804 18.0301V4.36542Z"
+          fill={color}
+        />
+      </Svg>
+    </View>
+  );
+};
+ 
+export default SSIDeleteIcon;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSIDownloadIcon/index.html b/coverage/lcov-report/components/assets/icons/SSIDownloadIcon/index.html new file mode 100644 index 00000000..a4feecec --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSIDownloadIcon/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/assets/icons/SSIDownloadIcon + + + + + + + + + +
+
+

All files components/assets/icons/SSIDownloadIcon

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/3 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
33.33%1/30%0/30%0/133.33%1/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSIDownloadIcon/index.tsx.html b/coverage/lcov-report/components/assets/icons/SSIDownloadIcon/index.tsx.html new file mode 100644 index 00000000..87f5f771 --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSIDownloadIcon/index.tsx.html @@ -0,0 +1,198 @@ + + + + Code coverage report for components/assets/icons/SSIDownloadIcon/index.tsx + + + + + + + + + +
+
+

All files / components/assets/icons/SSIDownloadIcon index.tsx

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/3 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {ColorValue, View} from 'react-native';
+import Svg, {Path} from 'react-native-svg';
+ 
+import {fonts} from '../../../../styles/colors';
+ 
+export interface IProps {
+  width?: number;
+  height?: number;
+  color?: ColorValue;
+}
+ 
+const SSIDownloadIcon: FC<IProps> = (props: IProps): JSX.Element => {
+  const {width = 16, height = 20, color = fonts.light} = props;
+ 
+  return (
+    <View style={{width, height}}>
+      <Svg width="100%" height="100%" viewBox="0 0 16 20" fill="none">
+        <Path
+          d="M10.7888 10.0579L8.70288 12.1898L8.70288 0.583638C8.70288 0.26123 8.44727 -1.07803e-05 8.13182 -1.08079e-05C7.81637 -1.08355e-05 7.56077 0.26123 7.56077 0.583638L7.56077 12.1898L5.47482 10.0579C5.36335 9.94396 5.21716 9.88699 5.07097 9.88699C4.92478 9.88699 4.77882 9.94396 4.66712 10.0579C4.44395 10.2857 4.44395 10.6553 4.66712 10.8832L7.72729 14.0111C7.83099 14.117 7.97398 14.1826 8.13182 14.1826C8.28966 14.1826 8.43265 14.117 8.53636 14.0111L11.5963 10.8832C11.8195 10.6551 11.8195 10.2855 11.5963 10.0579C11.3731 9.8298 11.0118 9.8298 10.7888 10.0579Z"
+          fill={color}
+        />
+        <Path
+          d="M10.7888 10.0579L8.70288 12.1898L8.70288 0.583638C8.70288 0.26123 8.44727 -1.07803e-05 8.13182 -1.08079e-05C7.81637 -1.08355e-05 7.56077 0.26123 7.56077 0.583638L7.56077 12.1898L5.47482 10.0579C5.36335 9.94396 5.21716 9.88699 5.07097 9.88699C4.92478 9.88699 4.77882 9.94396 4.66712 10.0579C4.44395 10.2857 4.44395 10.6553 4.66712 10.8832L7.72729 14.0111C7.83099 14.117 7.97398 14.1826 8.13182 14.1826C8.28966 14.1826 8.43265 14.117 8.53636 14.0111L11.5963 10.8832C11.8195 10.6551 11.8195 10.2855 11.5963 10.0579C11.3731 9.8298 11.0118 9.8298 10.7888 10.0579Z"
+          fill={color}
+        />
+        <Path
+          d="M14.0153 6.50769H10.2557C9.94021 6.50769 9.68461 6.76893 9.68461 7.09134C9.68461 7.41375 9.94021 7.67499 10.2557 7.67499H14.0153C14.2042 7.67499 14.3579 7.83211 14.3579 8.02518V18.4825C14.3579 18.6756 14.2042 18.8327 14.0153 18.8327H1.98474C1.79584 18.8327 1.64211 18.6756 1.64211 18.4825V8.02518C1.64211 7.83211 1.79584 7.67499 1.98474 7.67499H5.74434C6.05979 7.67499 6.31539 7.41375 6.31539 7.09134C6.31539 6.76893 6.05979 6.50769 5.74434 6.50769H1.98474C1.16608 6.50769 0.5 7.18846 0.5 8.02518V18.4825C0.5 19.3192 1.16608 20 1.98474 20H14.0153C14.8339 20 15.5 19.3192 15.5 18.4825V8.02518C15.5 7.18846 14.8339 6.50769 14.0153 6.50769Z"
+          fill={color}
+        />
+        <Path
+          d="M14.0153 6.50769H10.2557C9.94021 6.50769 9.68461 6.76893 9.68461 7.09134C9.68461 7.41375 9.94021 7.67499 10.2557 7.67499H14.0153C14.2042 7.67499 14.3579 7.83211 14.3579 8.02518V18.4825C14.3579 18.6756 14.2042 18.8327 14.0153 18.8327H1.98474C1.79584 18.8327 1.64211 18.6756 1.64211 18.4825V8.02518C1.64211 7.83211 1.79584 7.67499 1.98474 7.67499H5.74434C6.05979 7.67499 6.31539 7.41375 6.31539 7.09134C6.31539 6.76893 6.05979 6.50769 5.74434 6.50769H1.98474C1.16608 6.50769 0.5 7.18846 0.5 8.02518V18.4825C0.5 19.3192 1.16608 20 1.98474 20H14.0153C14.8339 20 15.5 19.3192 15.5 18.4825V8.02518C15.5 7.18846 14.8339 6.50769 14.0153 6.50769Z"
+          fill={color}
+        />
+      </Svg>
+    </View>
+  );
+};
+ 
+export default SSIDownloadIcon;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSIEditIcon/index.html b/coverage/lcov-report/components/assets/icons/SSIEditIcon/index.html new file mode 100644 index 00000000..87215a4a --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSIEditIcon/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/assets/icons/SSIEditIcon + + + + + + + + + +
+
+

All files components/assets/icons/SSIEditIcon

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/3 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
33.33%1/30%0/30%0/133.33%1/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSIEditIcon/index.tsx.html b/coverage/lcov-report/components/assets/icons/SSIEditIcon/index.tsx.html new file mode 100644 index 00000000..36693d38 --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSIEditIcon/index.tsx.html @@ -0,0 +1,162 @@ + + + + Code coverage report for components/assets/icons/SSIEditIcon/index.tsx + + + + + + + + + +
+
+

All files / components/assets/icons/SSIEditIcon index.tsx

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/3 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {ColorValue, View} from 'react-native';
+import Svg, {Path} from 'react-native-svg';
+ 
+import {fonts} from '../../../../styles/colors';
+ 
+export interface IProps {
+  width?: number;
+  height?: number;
+  color?: ColorValue;
+}
+ 
+const SSIEditIcon: FC<IProps> = (props: IProps): JSX.Element => {
+  const {width = 13, height = 12, color = fonts.dark} = props;
+ 
+  return (
+    <View style={{width, height}}>
+      <Svg width="100%" height="100%" viewBox="0 0 13 12" fill="none">
+        <Path
+          d="M1.77973 11.9686L3.99925 11.4125C4.18046 11.3675 4.346 11.2736 4.47786 11.1413L11.854 3.75143C12.2676 3.33702 12.5 2.77489 12.5 2.1888C12.5 1.60271 12.2677 1.04058 11.854 0.626068C11.4339 0.224291 10.8752 0 10.2943 0C9.7133 0 9.15469 0.224291 8.73453 0.626068L1.35586 8.0149C1.22402 8.14699 1.13041 8.31253 1.08509 8.49378L0.530641 10.7174C0.454077 11.025 0.522758 11.3509 0.716973 11.6013C0.911287 11.8515 1.20955 11.9986 1.52595 12C1.61148 12.0001 1.69671 11.9896 1.77969 11.9688L1.77973 11.9686ZM8.37893 2.22924L10.2518 4.1056L4.10692 10.2619L2.23403 8.38494L8.37893 2.22924ZM10.2936 0.860594C10.6449 0.860594 10.9817 1.00038 11.2301 1.24915C11.4784 1.49803 11.6179 1.83544 11.6179 2.18738C11.6179 2.53922 11.4784 2.87673 11.2301 3.12551L10.8769 3.47933L9.00286 1.60415L9.35601 1.25034C9.60383 0.99989 9.94162 0.859508 10.2936 0.860594ZM1.38702 10.9336L1.81496 9.21824L3.27763 10.6842L1.56359 11.1105C1.51324 11.1245 1.45944 11.1095 1.42347 11.0716C1.38771 11.0354 1.37381 10.9829 1.38702 10.9336Z"
+          fill={color}
+        />
+      </Svg>
+    </View>
+  );
+};
+ 
+export default SSIEditIcon;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSIEyeIcon/index.html b/coverage/lcov-report/components/assets/icons/SSIEyeIcon/index.html new file mode 100644 index 00000000..60af4170 --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSIEyeIcon/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/assets/icons/SSIEyeIcon + + + + + + + + + +
+
+

All files components/assets/icons/SSIEyeIcon

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
33.33%1/30%0/20%0/133.33%1/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSIEyeIcon/index.tsx.html b/coverage/lcov-report/components/assets/icons/SSIEyeIcon/index.tsx.html new file mode 100644 index 00000000..e8367084 --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSIEyeIcon/index.tsx.html @@ -0,0 +1,159 @@ + + + + Code coverage report for components/assets/icons/SSIEyeIcon/index.tsx + + + + + + + + + +
+
+

All files / components/assets/icons/SSIEyeIcon index.tsx

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {ColorValue, View} from 'react-native';
+import Svg, {Path} from 'react-native-svg';
+ 
+import {fonts} from '../../../../styles/colors';
+ 
+export interface IProps {
+  size?: number;
+  color?: ColorValue;
+}
+ 
+const SSIEyeIcon: FC<IProps> = (props: IProps): JSX.Element => {
+  const {size = 15, color = fonts.light} = props;
+ 
+  return (
+    <View style={{width: size, aspectRatio: 1}}>
+      <Svg width="100%" height="100%" viewBox="0 0 15 15" fill="none">
+        <Path
+          d="M7.50028 3.39288C4.5959 3.39288 2.01889 4.92865 0.418981 7.29681C0.378963 7.35517 0.357422 7.42534 0.357422 7.49735C0.357422 7.56936 0.378963 7.63954 0.418981 7.6979C2.01889 10.0661 4.5959 11.6072 7.50028 11.6072C10.4047 11.6072 12.9817 10.0661 14.5816 7.6979C14.6216 7.63954 14.6431 7.56936 14.6431 7.49735C14.6431 7.42534 14.6216 7.35517 14.5816 7.29681C12.9817 4.92865 10.4047 3.39288 7.50028 3.39288ZM7.50028 4.07741C10.1023 4.07741 12.4085 5.41789 13.9019 7.50003C12.4084 9.58077 10.1013 10.9226 7.50028 10.9226C4.89929 10.9226 2.59215 9.58077 1.0987 7.50003C2.59209 5.41789 4.89826 4.07741 7.50028 4.07741ZM7.50028 5.10419C6.24905 5.10419 5.22777 6.18089 5.22777 7.50003C5.22777 8.81916 6.24905 9.89586 7.50028 9.89586C8.75151 9.89586 9.77279 8.81916 9.77279 7.50003C9.77279 6.18089 8.75151 5.10419 7.50028 5.10419ZM7.50028 5.78872C8.40061 5.78872 9.1235 6.55084 9.1235 7.50003C9.1235 8.4492 8.40061 9.21134 7.50028 9.21134C6.59995 9.21134 5.87706 8.4492 5.87706 7.50003C5.87706 6.55084 6.59995 5.78872 7.50028 5.78872Z"
+          fill={color}
+        />
+      </Svg>
+    </View>
+  );
+};
+ 
+export default SSIEyeIcon;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSIHomeIcon/index.html b/coverage/lcov-report/components/assets/icons/SSIHomeIcon/index.html new file mode 100644 index 00000000..025ac31a --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSIHomeIcon/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/assets/icons/SSIHomeIcon + + + + + + + + + +
+
+

All files components/assets/icons/SSIHomeIcon

+
+
+ 50% + Statements + 1/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 50% + Lines + 1/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
50%1/2100%0/00%0/150%1/2
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSIHomeIcon/index.tsx.html b/coverage/lcov-report/components/assets/icons/SSIHomeIcon/index.tsx.html new file mode 100644 index 00000000..c5c2b758 --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSIHomeIcon/index.tsx.html @@ -0,0 +1,156 @@ + + + + Code coverage report for components/assets/icons/SSIHomeIcon/index.tsx + + + + + + + + + +
+
+

All files / components/assets/icons/SSIHomeIcon index.tsx

+
+
+ 50% + Statements + 1/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 50% + Lines + 1/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import Svg, {Defs, LinearGradient, Path, Stop} from 'react-native-svg';
+ 
+export interface IProps {
+  primaryColor: string;
+  secondaryColor: string;
+}
+ 
+const SSIHomeIcon: FC<IProps> = (props: IProps): JSX.Element => {
+  return (
+    <Svg width="18" height="22" viewBox="0 0 18 22" fill="none">
+      <Path
+        d="M1.93132 8.68397C1.72638 8.88891 1.56024 9.29185 1.56024 9.57087V18.9408C1.56024 19.2257 1.78898 19.4566 2.07852 19.4566H15.6042C15.8904 19.4566 16.1225 19.2199 16.1225 18.9408V9.57087C16.1225 9.28599 15.9567 8.8893 15.7514 8.68397L9.21244 2.14502C9.0075 1.94007 8.6756 1.93969 8.47028 2.14502L1.93132 8.68397ZM0 9.45128C0 8.87552 0.330455 8.07832 0.738602 7.67018L8.10276 0.306024C8.51067 -0.101894 9.17181 -0.102122 9.57996 0.306024L16.9441 7.67018C17.352 8.0781 17.6827 8.87246 17.6827 9.45128V19.9744C17.6827 20.5501 17.2188 21.0169 16.6426 21.0169H1.04012C0.465677 21.0169 0 20.5532 0 19.9744V9.45128Z"
+        fill="url(#paint0_linear_250:3487)"
+      />
+      <Defs>
+        <LinearGradient id="paint0_linear_250:3487" x1="0" y1="0" x2="20.7072" y2="17.4221" gradientUnits="userSpaceOnUse">
+          <Stop stopColor={props.primaryColor} />
+          <Stop offset="1" stopColor={props.secondaryColor} />
+        </LinearGradient>
+      </Defs>
+    </Svg>
+  );
+};
+ 
+export default SSIHomeIcon;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSILogoutIcon/index.html b/coverage/lcov-report/components/assets/icons/SSILogoutIcon/index.html new file mode 100644 index 00000000..fb0c4591 --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSILogoutIcon/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/assets/icons/SSILogoutIcon + + + + + + + + + +
+
+

All files components/assets/icons/SSILogoutIcon

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/3 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
33.33%1/30%0/30%0/133.33%1/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSILogoutIcon/index.tsx.html b/coverage/lcov-report/components/assets/icons/SSILogoutIcon/index.tsx.html new file mode 100644 index 00000000..d4255c8b --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSILogoutIcon/index.tsx.html @@ -0,0 +1,162 @@ + + + + Code coverage report for components/assets/icons/SSILogoutIcon/index.tsx + + + + + + + + + +
+
+

All files / components/assets/icons/SSILogoutIcon index.tsx

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/3 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {ColorValue, View} from 'react-native';
+import Svg, {Path} from 'react-native-svg';
+ 
+import {fonts} from '../../../../styles/colors';
+ 
+export interface IProps {
+  width?: number;
+  height?: number;
+  color?: ColorValue;
+}
+ 
+const SSILogoutIcon: FC<IProps> = (props: IProps): JSX.Element => {
+  const {width = 18, height = 19, color = fonts.light} = props;
+ 
+  return (
+    <View style={{width, height}}>
+      <Svg width="100%" height="100%" viewBox="0 0 18 19" fill="none">
+        <Path
+          d="M8.875 18.1444H0.633928C0.4658 18.1444 0.304558 18.0762 0.185673 17.9546C0.0667887 17.8331 0 17.6683 0 17.4964V0.648016C0 0.476151 0.0667887 0.311326 0.185673 0.189799C0.304558 0.0682729 0.4658 0 0.633928 0H8.875C9.04313 0 9.20437 0.0682729 9.32325 0.189799C9.44214 0.311326 9.50893 0.476151 9.50893 0.648016C9.50893 0.81988 9.44214 0.984706 9.32325 1.10623C9.20437 1.22776 9.04313 1.29603 8.875 1.29603H1.26786V16.8484H8.875C9.04313 16.8484 9.20437 16.9167 9.32325 17.0382C9.44214 17.1597 9.50893 17.3246 9.50893 17.4964C9.50893 17.6683 9.44214 17.8331 9.32325 17.9546C9.20437 18.0762 9.04313 18.1444 8.875 18.1444ZM17.5979 8.65101L13.7943 4.1149C13.7402 4.05022 13.6741 3.99708 13.5999 3.95849C13.5257 3.91991 13.4448 3.89664 13.3618 3.89002C13.2788 3.88341 13.1953 3.89356 13.1162 3.91992C13.037 3.94627 12.9637 3.9883 12.9004 4.04362C12.8372 4.09893 12.7852 4.16644 12.7474 4.2423C12.7097 4.31815 12.6869 4.40086 12.6805 4.48571C12.674 4.57055 12.6839 4.65587 12.7097 4.73679C12.7355 4.81771 12.7766 4.89264 12.8307 4.95732L15.7341 8.4242H5.07143C4.9033 8.4242 4.74206 8.49248 4.62317 8.614C4.50429 8.73553 4.4375 8.90036 4.4375 9.07222C4.4375 9.24408 4.50429 9.40891 4.62317 9.53044C4.74206 9.65196 4.9033 9.72023 5.07143 9.72023H15.7341L12.8307 13.1871C12.7214 13.3177 12.6674 13.4874 12.6805 13.6587C12.6935 13.8301 12.7727 13.9891 12.9004 14.1008C13.0282 14.2125 13.1942 14.2678 13.3618 14.2544C13.5294 14.241 13.685 14.1602 13.7943 14.0295L17.5979 9.49343C17.6961 9.37605 17.75 9.22668 17.75 9.07222C17.75 8.91776 17.6961 8.76839 17.5979 8.65101Z"
+          fill={color}
+        />
+      </Svg>
+    </View>
+  );
+};
+ 
+export default SSILogoutIcon;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSIMoreIcon/index.html b/coverage/lcov-report/components/assets/icons/SSIMoreIcon/index.html new file mode 100644 index 00000000..7aa90cf3 --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSIMoreIcon/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/assets/icons/SSIMoreIcon + + + + + + + + + +
+
+

All files components/assets/icons/SSIMoreIcon

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/3 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
33.33%1/30%0/30%0/133.33%1/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSIMoreIcon/index.tsx.html b/coverage/lcov-report/components/assets/icons/SSIMoreIcon/index.tsx.html new file mode 100644 index 00000000..d142630a --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSIMoreIcon/index.tsx.html @@ -0,0 +1,159 @@ + + + + Code coverage report for components/assets/icons/SSIMoreIcon/index.tsx + + + + + + + + + +
+
+

All files / components/assets/icons/SSIMoreIcon index.tsx

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/3 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {ColorValue, View} from 'react-native';
+import Svg, {Circle} from 'react-native-svg';
+ 
+import {fonts} from '../../../../styles/colors';
+ 
+export interface IProps {
+  width?: number;
+  height?: number;
+  color?: ColorValue;
+}
+ 
+const SSIMoreIcon: FC<IProps> = (props: IProps): JSX.Element => {
+  const {width = 20, height = 4, color = fonts.light} = props;
+ 
+  return (
+    <View style={{width, height}}>
+      <Svg width="100%" height="100%" viewBox="0 0 20 4" fill="none">
+        <Circle cx="2" cy="2" r="2" fill={color} />
+        <Circle cx="10" cy="2" r="2" fill={color} />
+        <Circle cx="18" cy="2" r="2" fill={color} />
+      </Svg>
+    </View>
+  );
+};
+ 
+export default SSIMoreIcon;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSIProfileIcon/index.html b/coverage/lcov-report/components/assets/icons/SSIProfileIcon/index.html new file mode 100644 index 00000000..8632fc0d --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSIProfileIcon/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/assets/icons/SSIProfileIcon + + + + + + + + + +
+
+

All files components/assets/icons/SSIProfileIcon

+
+
+ 33.33% + Statements + 2/6 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/2 +
+ +
+ 33.33% + Lines + 2/6 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
33.33%2/60%0/20%0/233.33%2/6
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSIProfileIcon/index.tsx.html b/coverage/lcov-report/components/assets/icons/SSIProfileIcon/index.tsx.html new file mode 100644 index 00000000..42bed005 --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSIProfileIcon/index.tsx.html @@ -0,0 +1,177 @@ + + + + Code coverage report for components/assets/icons/SSIProfileIcon/index.tsx + + + + + + + + + +
+
+

All files / components/assets/icons/SSIProfileIcon index.tsx

+
+
+ 33.33% + Statements + 2/6 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/2 +
+ +
+ 33.33% + Lines + 2/6 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {ColorValue} from 'react-native';
+import {useSelector} from 'react-redux';
+import {connect} from 'react-redux';
+ 
+import {fonts, profiles} from '../../../../styles/colors';
+import {SSIProfileIconContainerStyled as Container, SSITextH2LightStyled as ProfileIconText} from '../../../../styles/components';
+import {RootState} from '../../../../types';
+import {getInitials} from '../../../../utils/UserUtils';
+ 
+export interface IProps {
+  fontColor?: ColorValue;
+  backgroundColor?: ColorValue;
+}
+ 
+const SSIProfileIcon: FC<IProps> = (props: IProps): JSX.Element => {
+  const {fontColor = fonts.light, backgroundColor = profiles['100']} = props;
+  const {activeUser} = useSelector(mapStateToProps);
+ 
+  return (
+    <Container style={{backgroundColor}}>
+      <ProfileIconText style={{color: fontColor}}>{getInitials(`${activeUser?.firstName} ${activeUser?.lastName}`)}</ProfileIconText>
+    </Container>
+  );
+};
+ 
+const mapStateToProps = (state: RootState) => {
+  return {
+    activeUser: state.user.activeUser,
+  };
+};
+ 
+export default connect(mapStateToProps, null)(SSIProfileIcon);
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSIQRIcon/index.html b/coverage/lcov-report/components/assets/icons/SSIQRIcon/index.html new file mode 100644 index 00000000..172b2b01 --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSIQRIcon/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/assets/icons/SSIQRIcon + + + + + + + + + +
+
+

All files components/assets/icons/SSIQRIcon

+
+
+ 50% + Statements + 1/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 50% + Lines + 1/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
50%1/2100%0/00%0/150%1/2
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/icons/SSIQRIcon/index.tsx.html b/coverage/lcov-report/components/assets/icons/SSIQRIcon/index.tsx.html new file mode 100644 index 00000000..ca1fe3ab --- /dev/null +++ b/coverage/lcov-report/components/assets/icons/SSIQRIcon/index.tsx.html @@ -0,0 +1,156 @@ + + + + Code coverage report for components/assets/icons/SSIQRIcon/index.tsx + + + + + + + + + +
+
+

All files / components/assets/icons/SSIQRIcon index.tsx

+
+
+ 50% + Statements + 1/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 50% + Lines + 1/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import Svg, {Defs, LinearGradient, Path, Stop} from 'react-native-svg';
+ 
+export interface IProps {
+  primaryColor: string;
+  secondaryColor: string;
+}
+ 
+const SSIQRIcon: FC<IProps> = (props: IProps): JSX.Element => {
+  return (
+    <Svg width="21" height="21" viewBox="0 0 21 21" fill="none">
+      <Path
+        d="M5.83333 0H0V5.83333H5.83333V0ZM4.66667 4.66667H1.16667V1.16667H4.66667V4.66667ZM15.1667 0V5.83333H21V0H15.1667ZM19.8333 4.66667H16.3333V1.16667H19.8333V4.66667ZM0 21H5.83333V15.1667H0V21ZM1.16667 16.3333H4.66667V19.8333H1.16667V16.3333ZM7 19.8333H14V21H7V19.8333ZM19.8333 7H21V18.6667H19.8333V7ZM14 8.16667V18.6667H12.8333V0H14V7H16.3333V12.8333H15.1667V8.16667H14ZM18.6667 11.6667H17.5V7H18.6667V11.6667ZM17.5 15.75H18.6667V18.6667H15.1667V14H16.3333V17.5H17.5V15.75ZM17.5 12.8333H18.6667V14.5833H17.5V12.8333ZM8.16667 2.33333H7V0H8.16667V2.33333ZM8.16667 5.83333H7V3.5H8.16667V5.83333ZM6.41667 11.6667H0V10.5H5.25V8.75H7V7H10.5V5.83333H9.33333V0H11.6667V1.16667H10.5V4.66667H11.6667V8.16667H8.16667V9.91667H6.41667V11.6667ZM4.08333 9.33333H0V7H1.16667V8.16667H4.08333V9.33333ZM1.16667 14H0V12.8333H1.16667V14ZM11.6667 12.25H8.75V14H2.33333V12.8333H7.58333V11.0833H10.5V9.33333H11.6667V12.25ZM8.16667 16.3333V17.5H11.6667V18.6667H7V15.1667H10.5V13.4167H11.6667V16.3333H8.16667ZM3.5 3.5H2.33333V2.33333H3.5V3.5ZM18.6667 3.5H17.5V2.33333H18.6667V3.5ZM2.33333 17.5H3.5V18.6667H2.33333V17.5ZM15.1667 19.8333H21V21H15.1667V19.8333Z"
+        fill="url(#paint0_linear_250:3486)"
+      />
+      <Defs>
+        <LinearGradient id="paint0_linear_250:3486" x1="0" y1="0" x2="21" y2="21" gradientUnits="userSpaceOnUse">
+          <Stop stopColor={props.primaryColor} />
+          <Stop offset="1" stopColor={props.secondaryColor} />
+        </LinearGradient>
+      </Defs>
+    </Svg>
+  );
+};
+ 
+export default SSIQRIcon;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/images/SSINotificationsImage/index.html b/coverage/lcov-report/components/assets/images/SSINotificationsImage/index.html new file mode 100644 index 00000000..24092382 --- /dev/null +++ b/coverage/lcov-report/components/assets/images/SSINotificationsImage/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/assets/images/SSINotificationsImage + + + + + + + + + +
+
+

All files components/assets/images/SSINotificationsImage

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
33.33%1/30%0/20%0/133.33%1/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/images/SSINotificationsImage/index.tsx.html b/coverage/lcov-report/components/assets/images/SSINotificationsImage/index.tsx.html new file mode 100644 index 00000000..cf83c468 --- /dev/null +++ b/coverage/lcov-report/components/assets/images/SSINotificationsImage/index.tsx.html @@ -0,0 +1,489 @@ + + + + Code coverage report for components/assets/images/SSINotificationsImage/index.tsx + + + + + + + + + +
+
+

All files / components/assets/images/SSINotificationsImage index.tsx

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {View, ViewStyle} from 'react-native';
+import Svg, {ClipPath, Defs, G, Path, Rect} from 'react-native-svg';
+ 
+export interface IProps {
+  height?: number;
+  width?: number;
+  style?: ViewStyle;
+}
+ 
+const SSINotificationsImage: FC<IProps> = (props: IProps): JSX.Element => {
+  const {style, height = 141, width = 181} = props;
+ 
+  return (
+    <View style={[style, {height, width}]}>
+      <Svg width="100%" height="100%" viewBox="0 0 181 141" fill="none">
+        <G clip-path="url(#clip0_2439_24983)">
+          <Path
+            d="M71.4358 37.4211C71.3525 37.5916 71.2829 37.7683 71.2275 37.9497L54.9534 42.8551L51.9402 40.0315L47.085 44.0225L51.9336 49.5395C52.3253 49.9852 52.851 50.2918 53.4317 50.4133C54.0125 50.5348 54.617 50.4645 55.1545 50.2132L72.6713 42.021C73.2804 42.4245 73.9978 42.633 74.7283 42.6187C75.4587 42.6045 76.1675 42.3681 76.7604 41.9412C77.3533 41.5142 77.8021 40.9168 78.0472 40.2285C78.2923 39.5402 78.3221 38.7936 78.1326 38.088C77.943 37.3823 77.5432 36.7511 76.9862 36.2783C76.4292 35.8055 75.7415 35.5134 75.0145 35.441C74.2875 35.3687 73.5557 35.5193 72.9164 35.873C72.2772 36.2267 71.7607 36.7667 71.4358 37.4211L71.4358 37.4211Z"
+            fill="#FFB6B6"
+          />
+          <Path
+            d="M54.4132 43.0532L48.4259 48.0363C48.2555 48.1781 48.0566 48.2815 47.8427 48.3395C47.6288 48.3975 47.4049 48.4086 47.1862 48.3723C46.9676 48.3359 46.7594 48.2528 46.5757 48.1287C46.3921 48.0046 46.2374 47.8424 46.1221 47.6531L42.0829 41.0197C41.3631 40.1439 41.0198 39.0183 41.1283 37.8898C41.2368 36.7613 41.7882 35.7218 42.6617 34.9991C43.5352 34.2765 44.6595 33.9296 45.7882 34.0345C46.917 34.1394 47.9581 34.6875 48.6835 35.5588L54.4548 40.7179C54.62 40.8657 54.7514 41.0473 54.8401 41.2504C54.9287 41.4536 54.9726 41.6734 54.9686 41.8951C54.9647 42.1167 54.913 42.3348 54.8172 42.5347C54.7213 42.7345 54.5835 42.9114 54.4132 43.0532Z"
+            fill="#3F3D56"
+          />
+          <Path
+            d="M70.4916 126.022L73.0976 124.362C73.2173 122.904 73.2547 121.441 73.2097 119.979L71.8578 120.324L73.1921 119.474C73.1184 117.667 72.9552 116.475 72.9552 116.475C72.9552 116.475 67.6861 119.898 64.3256 124.538L64.8987 128.461L63.532 125.717C63.1825 126.277 62.8685 126.858 62.5919 127.457C59.8231 133.506 59.5541 139.315 61.991 140.43C64.4278 141.546 68.6478 137.546 71.4166 131.497C72.2517 129.551 72.7838 127.489 72.9942 125.383L70.4916 126.022Z"
+            fill="#E6E6E6"
+          />
+          <Path
+            d="M75.8446 131.861L78.9337 131.787C79.7895 130.601 80.5778 129.368 81.2948 128.093L79.959 127.69L81.5406 127.652C82.4116 126.067 82.888 124.962 82.888 124.962C82.888 124.962 76.6082 125.168 71.3335 127.403L69.796 131.058L70.0444 128.002C69.456 128.301 68.8868 128.636 68.3404 129.006C62.8436 132.753 59.6113 137.586 61.1208 139.801C62.6303 142.015 68.31 140.773 73.8067 137.026C75.5272 135.792 77.0485 134.302 78.3175 132.607L75.8446 131.861Z"
+            fill="#E6E6E6"
+          />
+          <Path d="M57.5877 137.317L60.9602 137.316L62.2253 124.198L57.5872 124.308L57.5877 137.317Z" fill="#FFB6B6" />
+          <Path
+            d="M56.7275 136.215L63.3691 136.215H63.3693C64.4918 136.215 65.5683 136.661 66.3621 137.455C67.1558 138.248 67.6018 139.325 67.6019 140.448V140.585L56.7277 140.586L56.7275 136.215Z"
+            fill="#757B93"
+          />
+          <Path d="M17.801 127.581L20.0129 130.126L30.8846 122.806L27.62 119.048L17.801 127.581Z" fill="#FFB6B6" />
+          <Path
+            d="M18.0681 126.209L22.4242 131.223L22.4244 131.223C23.1605 132.071 23.5299 133.176 23.4513 134.296C23.3727 135.415 22.8526 136.458 22.0053 137.195L21.9015 137.285L14.7693 129.076L18.0681 126.209Z"
+            fill="#757B93"
+          />
+          <Path
+            d="M0.327511 141H92.285C92.3719 141 92.4552 140.966 92.5166 140.904C92.578 140.843 92.6125 140.76 92.6125 140.673C92.6125 140.586 92.578 140.503 92.5166 140.441C92.4552 140.38 92.3719 140.345 92.285 140.345H0.327511C0.284418 140.345 0.241722 140.353 0.201875 140.37C0.162027 140.386 0.12581 140.41 0.0952946 140.441C0.0647796 140.471 0.0405678 140.507 0.0240482 140.547C0.00752867 140.587 -0.000976562 140.63 -0.000976562 140.673C-0.000976562 140.716 0.00752867 140.759 0.0240482 140.798C0.0405678 140.838 0.0647796 140.874 0.0952946 140.905C0.12581 140.935 0.162027 140.959 0.201875 140.976C0.241722 140.992 0.284418 141.001 0.327511 141Z"
+            fill="#CACACA"
+          />
+          <Path d="M50.1783 106.436L57.2739 132.726H62.7755L61.5671 103.974L58.3776 75.9609L46.7925 75.3452L50.1783 106.436Z" fill="#FF9900" />
+          <Path
+            d="M37.8661 75.9604C37.8661 75.9604 37.2505 79.9623 39.713 84.272C42.1754 88.5817 40.6364 103.05 40.6364 103.05L19.863 123.922C19.863 123.922 23.0915 129.524 24.6305 129.216C26.1695 128.908 50.4861 109.207 50.4861 109.207L58.3776 77.1918L37.8661 75.9604Z"
+            fill="#FF9900"
+          />
+          <Path
+            d="M49.3203 29.3601C53.2302 29.3601 56.3998 26.1902 56.3998 22.2799C56.3998 18.3696 53.2302 15.1997 49.3203 15.1997C45.4103 15.1997 42.2407 18.3696 42.2407 22.2799C42.2407 26.1902 45.4103 29.3601 49.3203 29.3601Z"
+            fill="#FFB6B6"
+          />
+          <Path
+            d="M49.0215 33.4126C49.0215 33.4126 40.7691 30.2882 40.7691 31.2117C40.7691 32.1352 32.6335 39.9438 34.4803 50.1024C36.3271 60.2609 38.4818 65.1862 37.5583 70.7273C36.6349 76.2683 37.2505 77.4996 37.2505 77.4996C37.2505 77.4996 58.6854 79.3466 58.9932 77.1918C59.301 75.0369 58.0991 71.7505 58.0991 70.827C58.0991 69.9035 49.5939 35.7891 49.0215 33.4126Z"
+            fill="#3F3D56"
+          />
+          <Path
+            d="M46.1161 26.534C46.6893 26.231 47.355 26.1685 47.9754 25.9801C50.1948 25.3062 51.6816 22.797 51.2069 20.5264C51.1192 20.2352 51.0798 19.9316 51.0903 19.6276C51.1733 18.9551 51.8614 18.5212 52.5211 18.3671C53.1809 18.213 53.8829 18.2354 54.5135 17.9876C55.4871 17.6051 56.1339 16.6044 56.2741 15.5676C56.3748 14.518 56.1411 13.4634 55.6064 12.5547L55.3681 13.2405C55.0046 12.9328 54.7348 12.5292 54.5894 12.0758C54.3186 12.1213 54.0639 12.2356 53.8499 12.4077C53.6359 12.5798 53.4697 12.804 53.3671 13.0588C52.9846 13.2844 52.9294 12.358 52.5069 12.2213C52.3211 12.1981 52.1332 12.2444 51.9795 12.3514C51.1281 12.7485 50.1389 12.409 49.2255 12.1888C47.644 11.8094 45.9954 11.8075 44.4129 12.1832C43.3616 12.4339 42.321 12.8706 41.5687 13.6467C40.9803 14.3148 40.5284 15.0916 40.2382 15.9332C39.4313 17.964 38.8983 20.1614 39.1647 22.3304C39.3865 24.1053 40.129 25.7747 41.2984 27.1281C41.9076 27.8301 43.8953 30.2791 44.9851 29.8615C46.3545 29.3369 44.5026 27.3872 46.1161 26.534Z"
+            fill="#757B93"
+          />
+          <Path opacity="0.2" d="M58.1255 87.9493L50.0256 109.188L50.4349 109.345L58.5347 88.1053L58.1255 87.9493Z" fill="black" />
+          <Path
+            d="M75.611 34.2383C75.0957 34.2389 74.6017 34.4439 74.2374 34.8082C73.8731 35.1726 73.6681 35.6667 73.6675 36.182V57.7893C73.6681 58.3046 73.8731 58.7987 74.2374 59.1631C74.6017 59.5274 75.0957 59.7324 75.611 59.733H179.056C179.572 59.7324 180.066 59.5274 180.43 59.1631C180.794 58.7987 180.999 58.3046 181 57.7893V36.182C180.999 35.6667 180.794 35.1726 180.43 34.8083C180.066 34.4439 179.572 34.2389 179.056 34.2383L75.611 34.2383Z"
+            fill="#E6E6E6"
+          />
+          <Path
+            d="M76.3099 35.7539C76.0111 35.7542 75.7247 35.873 75.5134 36.0843C75.3021 36.2956 75.1832 36.582 75.1829 36.8808V57.0904C75.1832 57.3892 75.3021 57.6756 75.5134 57.8869C75.7246 58.0982 76.0111 58.217 76.3099 58.2173H178.358C178.656 58.217 178.943 58.0982 179.154 57.8869C179.365 57.6756 179.484 57.3891 179.484 57.0904V36.8808C179.484 36.5821 179.365 36.2956 179.154 36.0843C178.943 35.8731 178.656 35.7542 178.358 35.7539H76.3099Z"
+            fill="white"
+          />
+          <Path
+            d="M171.95 52.6758C172.435 52.6746 172.899 52.4815 173.241 52.1388C173.584 51.7961 173.776 51.3316 173.777 50.8472C173.777 50.3628 173.586 49.8979 173.245 49.5542C172.903 49.2105 172.44 49.0162 171.955 49.0137C171.954 49.0137 171.952 49.0137 171.95 49.0137H85.636C85.1517 49.0156 84.6879 49.2094 84.3461 49.5526C84.0044 49.8958 83.8125 50.3604 83.8125 50.8448C83.8125 51.3291 84.0044 51.7937 84.3461 52.1369C84.6879 52.4801 85.1517 52.6739 85.636 52.6758H171.95Z"
+            fill="#E6E6E6"
+          />
+          <Path
+            d="M122.777 44.7208C123.018 44.7211 123.256 44.6739 123.479 44.582C123.701 44.4901 123.903 44.3553 124.073 44.1852C124.244 44.0152 124.379 43.8132 124.471 43.5909C124.563 43.3686 124.61 43.1303 124.61 42.8897C124.61 42.649 124.563 42.4107 124.471 42.1884C124.379 41.9661 124.244 41.7642 124.073 41.5941C123.903 41.4241 123.701 41.2892 123.479 41.1973C123.256 41.1054 123.018 41.0583 122.777 41.0586H85.6359C85.3953 41.0583 85.1569 41.1054 84.9346 41.1973C84.7122 41.2892 84.5101 41.4241 84.3398 41.5941C84.1695 41.7642 84.0345 41.9661 83.9423 42.1884C83.8502 42.4107 83.8027 42.649 83.8027 42.8897C83.8027 43.1303 83.8502 43.3686 83.9423 43.5909C84.0345 43.8132 84.1695 44.0152 84.3398 44.1852C84.5101 44.3553 84.7122 44.4901 84.9346 44.582C85.1569 44.6739 85.3953 44.7211 85.6359 44.7208H122.777Z"
+            fill="#6C63FF"
+          />
+          <Path
+            d="M90.7301 75.9292C90.3655 75.9296 90.0159 76.0747 89.7581 76.3326C89.5002 76.5904 89.3552 76.94 89.3547 77.3047V92.5959C89.3552 92.9606 89.5002 93.3102 89.7581 93.5681C90.0159 93.826 90.3655 93.971 90.7301 93.9715H163.937C164.302 93.971 164.651 93.826 164.909 93.5681C165.167 93.3102 165.312 92.9606 165.312 92.5959V77.3047C165.312 76.94 165.167 76.5904 164.909 76.3326C164.651 76.0747 164.302 75.9296 163.937 75.9292H90.7301Z"
+            fill="#E6E6E6"
+          />
+          <Path
+            d="M91.2248 77.002C91.0134 77.0022 90.8107 77.0863 90.6611 77.2358C90.5116 77.3853 90.4275 77.588 90.4272 77.7995V92.1015C90.4275 92.3129 90.5116 92.5157 90.6611 92.6652C90.8107 92.8147 91.0134 92.8988 91.2248 92.899H163.443C163.654 92.8988 163.857 92.8147 164.006 92.6651C164.156 92.5156 164.24 92.3129 164.24 92.1015V77.7995C164.24 77.588 164.156 77.3853 164.006 77.2358C163.857 77.0863 163.654 77.0022 163.443 77.002H91.2248Z"
+            fill="white"
+          />
+          <Path
+            d="M158.908 88.9769C159.252 88.9772 159.581 88.841 159.825 88.5984C160.068 88.3557 160.205 88.0264 160.205 87.6828C160.206 87.3393 160.07 87.0096 159.827 86.7663C159.585 86.523 159.255 86.3859 158.912 86.3853C158.911 86.3853 158.91 86.3853 158.908 86.3853H97.8248C97.4815 86.3858 97.1524 86.5225 96.9098 86.7655C96.6673 87.0084 96.531 87.3377 96.531 87.6811C96.531 88.0244 96.6673 88.3537 96.9098 88.5967C97.1524 88.8397 97.4815 88.9764 97.8248 88.9769H158.908Z"
+            fill="#E6E6E6"
+          />
+          <Path
+            d="M124.109 83.3475C124.279 83.3478 124.448 83.3145 124.606 83.2494C124.763 83.1844 124.906 83.089 125.027 82.9687C125.147 82.8483 125.243 82.7054 125.308 82.548C125.373 82.3907 125.407 82.222 125.407 82.0517C125.407 81.8814 125.373 81.7127 125.308 81.5554C125.243 81.398 125.147 81.2551 125.027 81.1347C124.906 81.0144 124.763 80.919 124.606 80.854C124.448 80.789 124.279 80.7556 124.109 80.7559H97.8247C97.6544 80.7556 97.4857 80.789 97.3283 80.854C97.1708 80.919 97.0278 81.0144 96.9073 81.1347C96.7867 81.2551 96.6911 81.398 96.6259 81.5554C96.5607 81.7127 96.5271 81.8814 96.5271 82.0517C96.5271 82.222 96.5607 82.3907 96.6259 82.548C96.6911 82.7054 96.7867 82.8483 96.9073 82.9687C97.0278 83.089 97.1708 83.1844 97.3283 83.2494C97.4857 83.3145 97.6544 83.3478 97.8247 83.3475H124.109Z"
+            fill="#E4E4E4"
+          />
+          <Path
+            d="M90.7301 0C90.3655 0.000428111 90.0159 0.145487 89.7581 0.403356C89.5002 0.661225 89.3552 1.01085 89.3547 1.37553V16.6667C89.3552 17.0314 89.5002 17.381 89.7581 17.6389C90.0159 17.8968 90.3655 18.0418 90.7301 18.0423H163.937C164.302 18.0418 164.651 17.8968 164.909 17.6389C165.167 17.381 165.312 17.0314 165.312 16.6667V1.37553C165.312 1.01085 165.167 0.661225 164.909 0.403356C164.651 0.145487 164.302 0.000428111 163.937 0H90.7301Z"
+            fill="#E6E6E6"
+          />
+          <Path
+            d="M91.2248 1.07275C91.0134 1.07297 90.8107 1.15705 90.6611 1.30656C90.5116 1.45607 90.4275 1.6588 90.4272 1.87027V16.1723C90.4275 16.3837 90.5116 16.5865 90.6611 16.736C90.8107 16.8855 91.0134 16.9696 91.2248 16.9698H163.443C163.654 16.9696 163.857 16.8855 164.006 16.7359C164.156 16.5864 164.24 16.3837 164.24 16.1723V1.87027C164.24 1.65883 164.156 1.45612 164.006 1.3066C163.857 1.15708 163.654 1.07298 163.443 1.07275H91.2248Z"
+            fill="white"
+          />
+          <Path
+            d="M158.908 13.0477C159.252 13.048 159.581 12.9118 159.825 12.6692C160.068 12.4265 160.205 12.0972 160.205 11.7536C160.206 11.4101 160.07 11.0804 159.827 10.8371C159.585 10.5938 159.255 10.4567 158.912 10.4561C158.911 10.4561 158.91 10.4561 158.908 10.4561H97.8248C97.4815 10.4566 97.1524 10.5933 96.9098 10.8363C96.6673 11.0792 96.531 11.4085 96.531 11.7519C96.531 12.0952 96.6673 12.4246 96.9098 12.6675C97.1524 12.9105 97.4815 13.0472 97.8248 13.0477H158.908Z"
+            fill="#E6E6E6"
+          />
+          <Path
+            d="M124.109 7.41784C124.279 7.41809 124.448 7.38475 124.606 7.31974C124.763 7.25473 124.906 7.15932 125.027 7.03897C125.147 6.91862 125.243 6.77568 125.308 6.61834C125.373 6.461 125.407 6.29234 125.407 6.12201C125.407 5.95168 125.373 5.78302 125.308 5.62567C125.243 5.46833 125.147 5.3254 125.027 5.20504C124.906 5.08469 124.763 4.98928 124.606 4.92427C124.448 4.85926 124.279 4.82593 124.109 4.82617H97.8247C97.6544 4.82593 97.4857 4.85926 97.3283 4.92427C97.1708 4.98928 97.0278 5.08469 96.9073 5.20504C96.7867 5.3254 96.6911 5.46833 96.6259 5.62567C96.5607 5.78302 96.5271 5.95168 96.5271 6.12201C96.5271 6.29234 96.5607 6.461 96.6259 6.61834C96.6911 6.77568 96.7867 6.91862 96.9073 7.03897C97.0278 7.15932 97.1708 7.25473 97.3283 7.31974C97.4857 7.38475 97.6544 7.41809 97.8247 7.41784H124.109Z"
+            fill="#E4E4E4"
+          />
+          <Path
+            d="M69.1707 49.8253C69.0338 49.9565 68.9074 50.0983 68.7928 50.2494L51.826 49.2343L49.9727 45.5439L44.0383 47.6132L46.6843 54.4651C46.8981 55.0186 47.2856 55.4879 47.7887 55.8024C48.2919 56.1169 48.8834 56.2597 49.4746 56.2094L68.7424 54.5689C69.1747 55.1579 69.7761 55.6013 70.4666 55.8401C71.157 56.0789 71.9038 56.1019 72.6076 55.9058C73.3114 55.7098 73.9389 55.3042 74.4065 54.7428C74.8742 54.1815 75.1599 53.491 75.2256 52.7633C75.2913 52.0356 75.1339 51.3052 74.7744 50.6691C74.4149 50.0331 73.8703 49.5215 73.213 49.2026C72.5557 48.8836 71.8168 48.7724 71.0948 48.8836C70.3727 48.9948 69.7016 49.3233 69.1707 49.8253L69.1707 49.8253Z"
+            fill="#FFB6B6"
+          />
+          <Path
+            d="M51.2504 49.234L43.911 51.8436C43.7022 51.9178 43.4798 51.9462 43.259 51.9267C43.0382 51.9073 42.8242 51.8404 42.6316 51.7308C42.439 51.6212 42.2722 51.4714 42.1427 51.2915C42.0132 51.1116 41.924 50.9059 41.8812 50.6884L40.3802 43.0683C40.0072 41.9978 40.0736 40.8231 40.5651 39.8016C41.0565 38.78 41.9328 37.9949 43.0019 37.6183C44.071 37.2417 45.2459 37.3043 46.2689 37.7923C47.292 38.2804 48.08 39.1541 48.4601 40.2221L52.0956 47.0567C52.1996 47.2524 52.2602 47.4683 52.2733 47.6895C52.2864 47.9108 52.2517 48.1323 52.1715 48.3389C52.0913 48.5455 51.9675 48.7324 51.8085 48.8869C51.6496 49.0414 51.4592 49.1598 51.2504 49.234H51.2504Z"
+            fill="#3F3D56"
+          />
+          <Path
+            d="M76.4698 41.1607C79.0525 41.1607 81.1462 39.0669 81.1462 36.4839C81.1462 33.901 79.0525 31.8071 76.4698 31.8071C73.8871 31.8071 71.7935 33.901 71.7935 36.4839C71.7935 39.0669 73.8871 41.1607 76.4698 41.1607Z"
+            fill="#6C63FF"
+          />
+        </G>
+        <Defs>
+          <ClipPath id="clip0_2439_24983">
+            <Rect width="181" height="141" fill="white" />
+          </ClipPath>
+        </Defs>
+      </Svg>
+    </View>
+  );
+};
+ 
+export default SSINotificationsImage;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/images/SSISecurityImage/index.html b/coverage/lcov-report/components/assets/images/SSISecurityImage/index.html new file mode 100644 index 00000000..425d53e3 --- /dev/null +++ b/coverage/lcov-report/components/assets/images/SSISecurityImage/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/assets/images/SSISecurityImage + + + + + + + + + +
+
+

All files components/assets/images/SSISecurityImage

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
33.33%1/30%0/20%0/133.33%1/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/images/SSISecurityImage/index.tsx.html b/coverage/lcov-report/components/assets/images/SSISecurityImage/index.tsx.html new file mode 100644 index 00000000..84cdbe57 --- /dev/null +++ b/coverage/lcov-report/components/assets/images/SSISecurityImage/index.tsx.html @@ -0,0 +1,483 @@ + + + + Code coverage report for components/assets/images/SSISecurityImage/index.tsx + + + + + + + + + +
+
+

All files / components/assets/images/SSISecurityImage index.tsx

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {View, ViewStyle} from 'react-native';
+import Svg, {ClipPath, Defs, G, Path, Rect} from 'react-native-svg';
+ 
+export interface IProps {
+  height?: number;
+  width?: number;
+  style?: ViewStyle;
+}
+ 
+const SSISecurityImage: FC<IProps> = (props: IProps): JSX.Element => {
+  const {style, height = 162, width = 233} = props;
+ 
+  return (
+    <View style={[style, {height, width}]}>
+      <Svg width="100%" height="100%" viewBox="0 0 233 162" fill="none">
+        <G clip-path="url(#clip0_2986_20748)">
+          <Path
+            d="M46.4237 162C72.0628 162 92.8474 160.422 92.8474 158.477C92.8474 156.531 72.0628 154.953 46.4237 154.953C20.7846 154.953 0 156.531 0 158.477C0 160.422 20.7846 162 46.4237 162Z"
+            fill="black"
+          />
+          <Path
+            d="M35.4854 35.945C43.5645 32.511 53.6272 34.6867 63.4545 36.1968C63.546 34.3681 64.6544 32.1425 63.4933 30.8667C62.0826 29.3167 62.2125 27.6882 63.0614 26.0502C65.2321 21.8617 62.122 17.4049 58.9819 13.6991C58.2741 12.8657 57.3796 12.2109 56.371 11.7879C55.3625 11.3649 54.2683 11.1856 53.1773 11.2645L47.3604 11.6797C45.9449 11.7807 44.5941 12.3114 43.4886 13.2006C42.3831 14.0898 41.5758 15.2952 41.1746 16.6554C39.7856 18.5432 39.0422 20.4257 39.5103 22.2984C37.4298 23.7192 37.0803 25.4342 38.0152 27.3676C38.8079 28.5849 38.7995 29.7699 37.9791 30.9221C36.9017 32.391 36.0766 34.0289 35.5374 35.7686L35.4854 35.945Z"
+            fill="black"
+          />
+          <Path
+            d="M227.479 140.046H62.8163C61.352 140.046 59.9476 139.465 58.9122 138.43C57.8768 137.396 57.2951 135.992 57.2951 134.529C116.985 127.597 175.554 127.597 233 134.529C233 135.992 232.418 137.396 231.383 138.43C230.347 139.465 228.943 140.046 227.479 140.046Z"
+            fill="black"
+          />
+          <Path
+            d="M233 134.853L57.2951 134.529L77.6587 100.288L77.7561 100.126V24.6631C77.756 23.7471 77.9365 22.8401 78.2872 21.9939C78.638 21.1476 79.1521 20.3787 79.8002 19.7311C80.4483 19.0834 81.2177 18.5696 82.0646 18.2191C82.9114 17.8686 83.819 17.6883 84.7356 17.6884H204.585C205.502 17.6883 206.409 17.8686 207.256 18.2191C208.103 18.5696 208.872 19.0834 209.521 19.7311C210.169 20.3787 210.683 21.1476 211.034 21.9939C211.384 22.8401 211.565 23.7471 211.565 24.6631V100.645L233 134.853Z"
+            fill="#525252"
+          />
+          <Path
+            d="M84.5764 22.5567C83.9737 22.5574 83.3958 22.797 82.9696 23.2229C82.5434 23.6488 82.3037 24.2263 82.303 24.8286V93.6347C82.3037 94.2371 82.5434 94.8145 82.9696 95.2404C83.3958 95.6663 83.9737 95.9059 84.5764 95.9066H205.719C206.321 95.9059 206.899 95.6663 207.325 95.2404C207.752 94.8145 207.991 94.2371 207.992 93.6347V24.8286C207.991 24.2263 207.752 23.6488 207.325 23.2229C206.899 22.797 206.321 22.5574 205.719 22.5567H84.5764Z"
+            fill="white"
+          />
+          <Path
+            d="M85.0841 104.994C84.8978 104.995 84.7155 105.048 84.5587 105.148C84.4019 105.249 84.277 105.392 84.1989 105.561L77.9242 119.192C77.8559 119.341 77.826 119.504 77.8373 119.667C77.8486 119.83 77.9007 119.987 77.9889 120.125C78.077 120.262 78.1984 120.375 78.3417 120.454C78.4851 120.532 78.6458 120.573 78.8092 120.573H210.762C210.928 120.573 211.091 120.531 211.236 120.45C211.381 120.369 211.503 120.252 211.591 120.111C211.678 119.97 211.728 119.809 211.735 119.643C211.743 119.477 211.707 119.312 211.633 119.164L204.813 105.532C204.732 105.37 204.608 105.234 204.454 105.139C204.3 105.044 204.123 104.994 203.942 104.994H85.0841Z"
+            fill="black"
+          />
+          <Path
+            d="M144.66 21.4208C145.468 21.4208 146.122 20.7669 146.122 19.9603C146.122 19.1536 145.468 18.4998 144.66 18.4998C143.853 18.4998 143.199 19.1536 143.199 19.9603C143.199 20.7669 143.853 21.4208 144.66 21.4208Z"
+            fill="white"
+          />
+          <Path
+            d="M131.691 123.169C131.476 123.17 131.268 123.24 131.098 123.371C130.928 123.501 130.806 123.683 130.75 123.89L129.176 129.732C129.137 129.876 129.132 130.028 129.161 130.174C129.19 130.321 129.252 130.459 129.343 130.577C129.434 130.696 129.551 130.792 129.685 130.858C129.819 130.924 129.967 130.959 130.117 130.959H160.049C160.205 130.959 160.358 130.922 160.496 130.851C160.634 130.779 160.753 130.676 160.843 130.55C160.933 130.423 160.991 130.277 161.014 130.124C161.036 129.97 161.021 129.813 160.97 129.667L158.946 123.825C158.88 123.633 158.756 123.467 158.591 123.35C158.426 123.233 158.228 123.169 158.025 123.169H131.691Z"
+            fill="black"
+          />
+          <Path d="M211.565 98.9899V100.288H77.6586L77.7594 100.126V98.9899H211.565Z" fill="black" />
+          <Path
+            d="M207.83 45.438C220.386 45.438 230.564 35.2664 230.564 22.719C230.564 10.1716 220.386 0 207.83 0C195.274 0 185.095 10.1716 185.095 22.719C185.095 35.2664 195.274 45.438 207.83 45.438Z"
+            fill="#F9A826"
+          />
+          <Path
+            d="M217.248 32.618H198.411C198.067 32.6177 197.736 32.4808 197.493 32.2374C197.249 31.994 197.112 31.664 197.112 31.3198V19.9603C197.112 19.6161 197.249 19.2861 197.493 19.0427C197.736 18.7993 198.067 18.6624 198.411 18.662H217.248C217.593 18.6624 217.923 18.7993 218.166 19.0427C218.41 19.2861 218.547 19.6161 218.547 19.9603V31.3198C218.547 31.664 218.41 31.994 218.166 32.2374C217.923 32.4808 217.593 32.6177 217.248 32.618ZM198.411 19.9603V31.3198H217.249L217.248 19.9603L198.411 19.9603Z"
+            fill="white"
+          />
+          <Path
+            d="M213.676 19.9603H201.984V14.7674C201.984 11.0061 204.442 8.27621 207.83 8.27621C211.217 8.27621 213.676 11.0061 213.676 14.7674L213.676 19.9603ZM203.283 18.662H212.377V14.7674C212.377 11.7099 210.507 9.57444 207.83 9.57444C205.153 9.57444 203.283 11.7099 203.283 14.7674L203.283 18.662Z"
+            fill="white"
+          />
+          <Path
+            d="M207.83 26.6137C208.547 26.6137 209.129 26.0324 209.129 25.3155C209.129 24.5985 208.547 24.0172 207.83 24.0172C207.112 24.0172 206.531 24.5985 206.531 25.3155C206.531 26.0324 207.112 26.6137 207.83 26.6137Z"
+            fill="white"
+          />
+          <Path
+            d="M191.959 72.5683H98.336C97.8763 72.5678 97.4357 72.385 97.1107 72.0602C96.7856 71.7354 96.6028 71.2951 96.6023 70.8357V47.6276C96.6028 47.1683 96.7856 46.7279 97.1107 46.4031C97.4357 46.0783 97.8763 45.8956 98.336 45.895H191.959C192.419 45.8956 192.859 46.0783 193.184 46.4031C193.509 46.7279 193.692 47.1683 193.693 47.6276V70.8357C193.692 71.2951 193.509 71.7354 193.184 72.0602C192.859 72.385 192.419 72.5678 191.959 72.5683ZM98.336 46.5881C98.0602 46.5884 97.7958 46.698 97.6008 46.8929C97.4058 47.0878 97.2961 47.352 97.2958 47.6276V70.8357C97.2961 71.1113 97.4058 71.3756 97.6008 71.5705C97.7958 71.7653 98.0602 71.875 98.336 71.8753H191.959C192.235 71.875 192.499 71.7653 192.694 71.5705C192.889 71.3756 192.999 71.1113 192.999 70.8357V47.6276C192.999 47.352 192.889 47.0878 192.694 46.8929C192.499 46.698 192.235 46.5884 191.959 46.5881L98.336 46.5881Z"
+            fill="black"
+          />
+          <Path
+            d="M112.883 65.3988C116.784 65.3988 119.946 62.239 119.946 58.3412C119.946 54.4434 116.784 51.2836 112.883 51.2836C108.983 51.2836 105.821 54.4434 105.821 58.3412C105.821 62.239 108.983 65.3988 112.883 65.3988Z"
+            fill="black"
+          />
+          <Path
+            d="M129.194 53.6361C129.039 53.6359 128.886 53.6661 128.743 53.7251C128.6 53.7841 128.47 53.8707 128.36 53.98C128.251 54.0892 128.164 54.219 128.105 54.3618C128.046 54.5046 128.015 54.6578 128.015 54.8124C128.015 54.967 128.046 55.1201 128.105 55.2629C128.164 55.4058 128.251 55.5355 128.36 55.6448C128.47 55.754 128.6 55.8406 128.743 55.8996C128.886 55.9586 129.039 55.9889 129.194 55.9886H184.684C184.996 55.9886 185.296 55.8647 185.517 55.6441C185.737 55.4235 185.861 55.1243 185.861 54.8124C185.861 54.5004 185.737 54.2012 185.517 53.9806C185.296 53.76 184.996 53.6361 184.684 53.6361H129.194Z"
+            fill="black"
+          />
+          <Path
+            d="M129.194 60.6937C128.882 60.6937 128.582 60.8176 128.362 61.0382C128.141 61.2588 128.017 61.558 128.017 61.87C128.017 62.1819 128.141 62.4811 128.362 62.7017C128.582 62.9223 128.882 63.0462 129.194 63.0462H153.072C153.384 63.0462 153.683 62.9223 153.904 62.7017C154.125 62.4811 154.249 62.1819 154.249 61.87C154.249 61.558 154.125 61.2588 153.904 61.0382C153.683 60.8176 153.384 60.6937 153.072 60.6937H129.194Z"
+            fill="black"
+          />
+          <Path
+            d="M77.4283 61.1695L60.1213 70.3645L59.9022 62.702C65.5511 61.7597 70.9254 60.1189 75.8947 57.4478L77.7048 52.9789C77.9021 52.4919 78.2226 52.0646 78.635 51.7388C79.0475 51.4131 79.5376 51.2001 80.0573 51.1208C80.5769 51.0415 81.1083 51.0986 81.5992 51.2865C82.0901 51.4744 82.5237 51.7867 82.8574 52.1926C83.3456 52.7865 83.5896 53.5437 83.5401 54.3107C83.4905 55.0777 83.1511 55.7973 82.5905 56.3235L77.4283 61.1695Z"
+            fill="#FFB8B8"
+          />
+          <Path
+            d="M35.1404 114.258C35.0142 113.795 34.9874 113.311 35.0618 112.837C35.1362 112.363 35.3101 111.91 35.5722 111.508L39.374 105.678C40.2732 104.299 41.653 103.303 43.2457 102.883C44.8383 102.463 46.5303 102.649 47.9932 103.405C46.3954 106.123 46.6182 108.508 48.5451 110.58C45.5538 112.039 42.7892 113.922 40.3369 116.172C39.8892 116.477 39.375 116.67 38.8373 116.736C38.2995 116.803 37.7537 116.74 37.2453 116.552C36.7369 116.365 36.2806 116.059 35.9145 115.66C35.5484 115.261 35.283 114.78 35.1404 114.258Z"
+            fill="black"
+          />
+          <Path
+            d="M78.2165 106.634C77.6412 107.592 76.8291 108.386 75.8582 108.941C74.8872 109.495 73.79 109.79 72.6719 109.799L47.4149 109.99L46.3196 103.641L57.4924 100.357L48.0722 93.1328L58.3687 81.0918L77.0704 98.5107C78.1635 99.5288 78.8737 100.891 79.0823 102.37C79.2909 103.848 78.9853 105.354 78.2165 106.634Z"
+            fill="black"
+          />
+          <Path
+            d="M43.4716 150.054H37.5566C32.2457 113.675 26.8398 77.1939 42.8144 63.5777L61.6548 66.6427L59.245 82.6243L48.7294 94.6653L43.4716 150.054Z"
+            fill="black"
+          />
+          <Path
+            d="M48.6712 158.295C48.2081 158.421 47.7236 158.448 47.2494 158.373C46.7753 158.299 46.3222 158.125 45.9201 157.863L39.4976 157.001C38.1175 156.102 37.1206 154.723 36.7004 153.132C36.2801 151.54 36.4664 149.849 37.2231 148.387C39.943 149.984 42.3289 149.761 44.4022 147.836C45.8672 150.792 48.2809 150.611 50.5861 153.102C50.8914 153.549 51.0852 154.063 51.1515 154.6C51.2178 155.138 51.1546 155.683 50.9673 156.191C50.7799 156.699 50.4738 157.155 50.0744 157.521C49.675 157.887 49.1939 158.152 48.6712 158.295Z"
+            fill="black"
+          />
+          <Path
+            d="M57.4924 39.2769L46.5386 36.6498C48.3579 32.9285 48.5077 28.7877 47.634 24.3899L55.0826 24.171C55.316 29.6398 56.0221 34.749 57.4924 39.2769Z"
+            fill="#FFB8B8"
+          />
+          <Path
+            d="M60.5029 73.2344C52.529 78.6644 46.8948 73.4202 42.5953 65.3291C43.1927 60.3781 42.2254 54.4532 40.4337 48.0154C39.6369 45.1758 39.9344 42.1409 41.2674 39.5099C42.6005 36.8788 44.8721 34.8428 47.634 33.8038L57.0543 37.7444C65.0531 44.26 66.6275 51.3177 63.6265 58.7614L60.5029 73.2344Z"
+            fill="#F9A826"
+          />
+          <Path
+            d="M37.5566 44.7501L28.7935 49.3475L44.3479 58.5424L46.5122 63.8774C46.6566 64.2335 46.727 64.6152 46.719 64.9993C46.711 65.3835 46.6248 65.762 46.4656 66.1117C46.3065 66.4615 46.0777 66.7752 45.7932 67.0337C45.5088 67.2923 45.1747 67.4902 44.8112 67.6154C44.398 67.7578 43.9574 67.8027 43.524 67.7465C43.0906 67.6903 42.676 67.5347 42.3128 67.2917C41.9497 67.0487 41.6477 66.7249 41.4306 66.3459C41.2135 65.9668 41.0872 65.5426 41.0616 65.1066L40.8427 61.3885L21.0733 54.869C20.4072 54.6494 19.7999 54.2811 19.2973 53.7921C18.7947 53.3032 18.4101 52.7064 18.1725 52.0469C17.8262 51.0856 17.8086 50.0366 18.1224 49.0642C18.4362 48.0918 19.0637 47.2508 19.9068 46.6729L35.804 35.7741L37.5566 44.7501Z"
+            fill="#FFB8B8"
+          />
+          <Path
+            d="M46.3196 45.6258C42.6648 44.0252 39.3415 45.7639 35.1467 47.1583L34.4895 35.5552C38.6548 33.3367 42.626 32.7385 46.3196 34.4605L46.3196 45.6258Z"
+            fill="#F9A826"
+          />
+          <Path
+            d="M50.6914 29.9184C54.5539 29.9184 57.685 26.7894 57.685 22.9296C57.685 19.0698 54.5539 15.9408 50.6914 15.9408C46.829 15.9408 43.6979 19.0698 43.6979 22.9296C43.6979 26.7894 46.829 29.9184 50.6914 29.9184Z"
+            fill="#FFB8B8"
+          />
+          <Path d="M59.058 22.0478C52.1338 22.7255 46.8576 21.5938 43.4855 18.3716V15.7767H58.4704L59.058 22.0478Z" fill="black" />
+        </G>
+        <Defs>
+          <ClipPath id="clip0_2986_20748">
+            <Rect width="233" height="162" fill="white" />
+          </ClipPath>
+        </Defs>
+      </Svg>
+    </View>
+  );
+};
+ 
+export default SSISecurityImage;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/images/SSIWarningImage/index.html b/coverage/lcov-report/components/assets/images/SSIWarningImage/index.html new file mode 100644 index 00000000..39ab4f9c --- /dev/null +++ b/coverage/lcov-report/components/assets/images/SSIWarningImage/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/assets/images/SSIWarningImage + + + + + + + + + +
+
+

All files components/assets/images/SSIWarningImage

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
33.33%1/30%0/20%0/133.33%1/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/assets/images/SSIWarningImage/index.tsx.html b/coverage/lcov-report/components/assets/images/SSIWarningImage/index.tsx.html new file mode 100644 index 00000000..a00b3119 --- /dev/null +++ b/coverage/lcov-report/components/assets/images/SSIWarningImage/index.tsx.html @@ -0,0 +1,387 @@ + + + + Code coverage report for components/assets/images/SSIWarningImage/index.tsx + + + + + + + + + +
+
+

All files / components/assets/images/SSIWarningImage index.tsx

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {View, ViewStyle} from 'react-native';
+import Svg, {ClipPath, Defs, G, Path, Rect} from 'react-native-svg';
+ 
+export interface IProps {
+  height?: number;
+  width?: number;
+  style?: ViewStyle;
+}
+ 
+const SSIWarningImage: FC<IProps> = (props: IProps): JSX.Element => {
+  const {style, height = 162, width = 233} = props;
+ 
+  return (
+    <View style={[style, {height, width}]}>
+      <Svg width="100%" height="100%" viewBox="0 0 233 162" fill="none">
+        <G clip-path="url(#clip0_7923_5726)">
+          <Path
+            d="M196.364 155.109C197.282 155.158 197.789 154.164 197.094 153.585L197.025 153.345C197.034 153.326 197.043 153.307 197.052 153.288C197.6 152.149 199.107 151.61 200.415 152.082C204.551 153.574 200.184 157.001 200.512 159.32C200.627 160.12 204.223 160.164 204.019 160.95C205.931 157.305 206.936 153.324 206.935 149.322C206.934 148.316 206.871 147.311 206.741 146.307C206.635 145.487 206.488 144.672 206.298 143.864C205.273 139.496 203.054 135.337 199.854 131.863C198.317 131.13 199.255 129.984 198.48 128.611C198.201 128.116 195.718 128.105 195.615 127.562C195.726 127.575 197.331 126.121 196.801 125.402C196.452 124.929 196.56 124.327 197.009 123.923C197.052 123.883 197.094 123.841 197.132 123.796C198.456 122.23 200.281 122.503 201.234 124.63C203.269 125.526 203.29 127.011 202.042 128.44C201.248 129.349 201.139 130.579 200.442 131.553C200.514 131.633 200.589 131.71 200.66 131.79C201.976 133.261 203.114 134.841 204.073 136.502C203.802 134.656 204.201 132.432 204.882 130.998C205.663 129.353 207.134 127.969 208.421 126.546C209.959 124.846 213.089 125.617 213.361 127.769C213.363 127.79 213.366 127.811 213.368 127.831C213.178 127.925 212.991 128.025 212.809 128.13C211.77 128.729 212.13 130.134 213.361 130.299L213.389 130.303C213.321 130.901 210.888 132.784 210.716 133.367C212.361 138.909 211.13 139.641 206.068 139.733L205.802 140.063C206.282 141.266 206.668 142.498 206.958 143.746C207.231 144.904 207.421 146.075 207.527 147.25C207.66 148.734 207.649 150.225 207.506 151.706L207.515 151.653C207.878 150.022 208.893 148.498 210.367 147.442C212.563 145.868 215.666 145.288 218.034 144.022C219.175 143.413 220.637 144.199 220.438 145.353L220.428 145.408C220.076 145.533 219.731 145.678 219.399 145.841C219.208 145.935 219.022 146.034 218.839 146.14C217.8 146.739 218.161 148.144 219.392 148.309L219.42 148.312C219.44 148.315 219.457 148.317 219.477 148.32C218.873 149.573 213.111 151.341 212.056 152.345C211.03 157.185 211.534 157.041 206.811 155.633H206.808C206.292 157.595 205.539 159.511 204.57 161.338L196.568 161.34C196.539 161.262 196.513 161.182 196.487 161.105C197.227 161.145 197.973 161.107 198.701 160.989C198.107 160.354 197.513 159.714 196.919 159.078C196.905 159.066 196.894 159.053 196.882 159.041L196.873 159.031L196.049 156.666C196.114 156.141 196.22 155.621 196.364 155.109L196.364 155.108V155.109V155.109Z"
+            fill="#F2F2F2"
+          />
+          <Path
+            d="M111.797 161.283L40.9838 161.304C37.4263 161.305 34.2397 159.702 32.4598 157.016C31.5698 155.672 31.1247 154.199 31.1241 152.725C31.1236 151.251 31.5677 149.777 32.4564 148.433L67.8405 92.2542C69.6184 89.5666 72.8038 87.9615 76.3612 87.9604C79.9187 87.9594 83.1054 89.5625 84.8854 92.2491L120.319 148.413C121.206 149.753 121.65 151.225 121.65 152.698C121.65 154.171 121.206 155.645 120.317 156.989C118.54 159.677 115.354 161.282 111.797 161.283H111.797H111.797ZM32.0143 152.724C32.0142 154.065 39.8281 151.174 40.6377 152.396C42.2569 154.84 37.7469 160.531 40.9835 160.53C40.9835 160.53 117.931 159.047 119.548 156.602C120.357 155.38 120.761 154.038 120.76 152.698C120.76 151.357 120.355 150.016 119.545 148.794L84.1117 92.6296C82.497 90.1926 79.5981 88.7341 76.3615 88.7351C73.1265 88.736 32.0144 151.382 32.0143 152.724H32.0143Z"
+            fill="#D2D2D2"
+          />
+          <Path
+            d="M112.583 160.508C111.696 162.058 153.268 161.582 153.759 161.582C153.759 161.582 165.444 161.356 165.69 160.985C165.813 160.799 165.874 160.596 165.874 160.392C165.874 160.189 165.812 159.985 165.689 159.799L160.309 151.271C160.063 150.901 159.623 150.679 159.132 150.679C159.111 150.679 159.081 150.695 159.042 150.725C151.864 156.32 143.018 160.018 133.393 160.143C123.158 160.275 112.64 160.41 112.583 160.508H112.583Z"
+            fill="#D2D2D2"
+          />
+          <Path
+            d="M3.32406e-08 161.539C0.000102174 161.795 0.235562 162 0.528674 162L232.472 161.93C232.765 161.93 233 161.725 233 161.469C233 161.213 232.764 161.008 232.471 161.008L0.52831 161.078C0.235198 161.078 -0.000102107 161.284 3.32406e-08 161.539H3.32406e-08Z"
+            fill="#CCCCCC"
+          />
+          <Path d="M179.358 159.302L175.341 159.303L173.425 145.791L179.353 145.79L179.358 159.302Z" fill="#9E616A" />
+          <Path
+            d="M165.596 159.227C165.471 159.41 165.405 160.003 165.405 160.217C165.406 160.874 166.016 161.406 166.769 161.405L179.208 161.402C179.722 161.402 180.138 161.038 180.138 160.59L180.138 160.139C180.138 160.139 180.752 158.781 179.485 157.108C179.485 157.108 177.911 158.419 175.557 156.368L174.863 155.271L169.842 158.476L167.058 158.776C166.449 158.842 165.909 158.766 165.596 159.227H165.596Z"
+            fill="#757B93"
+          />
+          <Path d="M163.956 147.746L160.151 148.869L153.375 136.604L158.99 134.947L163.956 147.746Z" fill="#9E616A" />
+          <Path
+            d="M150.892 151.518C150.841 151.727 150.996 152.307 151.075 152.51C151.316 153.132 152.09 153.465 152.803 153.255L164.586 149.777C165.072 149.633 165.333 149.173 165.169 148.748L165.003 148.321C165.003 148.321 165.086 146.863 163.271 145.632C163.271 145.632 162.261 147.313 159.278 146.027L158.218 145.183L154.639 149.622L152.112 150.683C151.559 150.915 151.02 150.995 150.892 151.518L150.892 151.518Z"
+            fill="#757B93"
+          />
+          <Path
+            d="M157.752 69.363L149.961 91.866L140.764 112.107L155.325 141.013L160.724 138.919L154.263 112.365L167.811 94.3461L174.134 150.596L179.533 150.332L186.856 82.436L187.9 67.6533L157.752 69.363Z"
+            fill="#757B93"
+          />
+          <Path
+            d="M181.281 19.5146L169.882 21.3495L168.984 25.7976L162.086 28.6777L158.499 61.3831C158.499 61.3831 152.502 68.1874 157.302 70.279L187.9 67.6535C187.9 67.6535 189.398 62.8158 187.898 62.3569C186.398 61.8979 186.393 50.3428 186.393 50.3428L193.284 26.5752L183.083 23.4386L181.281 19.5146Z"
+            fill="#E6E6E6"
+          />
+          <Path
+            d="M174.558 19.4285C179.642 19.4285 183.763 15.8343 183.763 11.4005C183.763 6.96681 179.642 3.37256 174.558 3.37256C169.474 3.37256 165.353 6.96681 165.353 11.4005C165.353 15.8343 169.474 19.4285 174.558 19.4285Z"
+            fill="#9E616A"
+          />
+          <Path
+            d="M180.654 12.5923C179.919 12.943 180.616 14.6174 180.157 14.7622C179.626 14.9295 177.691 13.0088 177.667 10.8574C177.66 10.2063 177.832 9.89363 177.667 9.12163C177.451 8.1118 176.787 6.92074 176.173 6.95235C175.809 6.9711 175.454 7.41993 175.427 7.82047C175.39 8.38184 176.015 8.60279 175.925 8.90518C175.754 9.48115 173.128 9.8788 172.194 8.90631C171.461 8.14389 172.023 6.80527 171.695 6.73673C171.454 6.68621 171.194 7.4232 170.203 8.25599C169.83 8.56975 169.274 9.03638 168.959 8.90728C168.505 8.72073 168.835 7.40598 168.71 7.38855C168.606 7.37411 168.541 8.29822 167.964 9.12456C167.223 10.1862 165.693 11.0045 164.98 10.6443C164.542 10.4236 164.508 9.80921 164.481 9.34258C164.426 8.35953 162.788 6.09832 163.212 5.04669C164.074 2.9063 165.552 4.41507 166.221 3.70077C167.126 2.73378 167.937 3.25369 169.454 2.18099C170.936 1.13307 170.949 0.0798251 171.941 0.0105123C172.835 -0.0519063 173.153 0.779429 174.18 0.660753C175.051 0.56022 175.241 -0.0845681 175.922 0.00930782C176.545 0.0952516 176.586 0.663275 177.415 0.876748C177.944 1.01303 178.06 0.815774 178.659 0.876372C179.905 1.00246 180.741 1.99214 180.898 2.17753C181.502 2.89222 181.268 3.1936 181.894 3.91301C182.434 4.5334 183.63 4.26995 184.08 4.57981C185.549 5.59227 186.181 7.45943 186.194 9.58756C186.202 11.076 185.98 11.8281 185.483 13.7068C185.106 15.1335 183.36 16.977 182.397 17.7991C182.139 18.0198 181.414 18.6384 180.905 18.4505C180.422 18.2724 180.407 17.4715 180.407 17.3658C180.404 17.0021 180.516 16.5521 181.401 15.4127C182.331 14.2159 182.701 14.0793 182.644 13.6765C182.545 12.9646 181.239 12.3127 180.653 12.5923H180.654Z"
+            fill="#757B93"
+          />
+          <Path
+            d="M148.545 87.439C148.259 89.5315 149.264 91.3566 150.791 91.5156C152.318 91.6747 153.788 90.1073 154.074 88.0148C154.2 87.0988 154.077 86.2341 153.772 85.5379L154.859 76.6581L150.07 76.3022L149.507 85.0937C149.023 85.7077 148.671 86.523 148.545 87.439H148.545H148.545Z"
+            fill="#9E616A"
+          />
+          <Path
+            d="M162.31 28.4663C162.31 28.4663 159.829 28.4971 158.187 31.2952C157.314 32.782 152.644 60.5864 152.644 60.5864L148.341 83.3634L155.67 83.3956L161.38 61.8252L166.184 49.3148L162.31 28.4663L162.31 28.4663Z"
+            fill="#E6E6E6"
+          />
+          <Path
+            d="M182.933 84.0966C182.232 86.1132 182.855 88.0636 184.327 88.4531C185.798 88.8425 187.56 87.5236 188.262 85.5071C188.569 84.6244 188.622 83.7543 188.461 83.0223L191.312 74.4452L186.668 73.3643L184.351 81.9343C183.751 82.4649 183.24 83.2139 182.933 84.0966V84.0966Z"
+            fill="#9E616A"
+          />
+          <Path
+            d="M188.034 26.969C188.034 26.969 191.633 24.6132 194.634 28.2752C197.636 31.9372 198.848 62.0248 198.848 62.0248L190.455 80.6034L184.155 78.7738L190.146 56.0098L179.639 38.7451L188.034 26.969H188.034Z"
+            fill="#E6E6E6"
+          />
+          <Path
+            d="M97.0243 148.894C114.929 148.894 129.443 136.235 129.443 120.62C129.443 105.005 114.929 92.3467 97.0243 92.3467C79.1201 92.3467 64.6058 105.005 64.6058 120.62C64.6058 136.235 79.1201 148.894 97.0243 148.894Z"
+            fill="#FF3403"
+          />
+          <Path
+            d="M97.0302 137.952C98.6741 137.952 100.007 136.79 100.007 135.356C100.007 133.923 98.6741 132.76 97.0302 132.76C95.3862 132.76 94.0536 133.923 94.0536 135.356C94.0536 136.79 95.3862 137.952 97.0302 137.952Z"
+            fill="white"
+          />
+          <Path
+            d="M97.0174 103.288C96.744 104.873 97.2339 105.204 97.2366 112.036C97.2393 118.867 98.8646 128.026 97.0272 128.026C95.1899 128.027 94.5179 109.125 88.138 107.452C80.637 105.485 97.9026 98.1586 97.0174 103.288Z"
+            fill="white"
+          />
+          <Path
+            d="M53.5141 135.055L50.5852 140.453C54.126 138.238 59.6566 136.329 64.0577 135.307C59.957 133.579 54.9392 130.794 51.9415 128.036L53.6261 133.739C33.8757 130.231 19.6926 117.017 19.6866 101.88L18.9732 101.666C18.9795 117.477 32.9663 131.473 53.5141 135.055V135.055Z"
+            fill="#D2D2D2"
+          />
+        </G>
+        <Defs>
+          <ClipPath id="clip0_7923_5726">
+            <Rect width="233" height="162" fill="white" />
+          </ClipPath>
+        </Defs>
+      </Svg>
+    </View>
+  );
+};
+ 
+export default SSIWarningImage;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/bars/SSIHeaderBar/index.html b/coverage/lcov-report/components/bars/SSIHeaderBar/index.html new file mode 100644 index 00000000..a1d32cdc --- /dev/null +++ b/coverage/lcov-report/components/bars/SSIHeaderBar/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/bars/SSIHeaderBar + + + + + + + + + +
+
+

All files components/bars/SSIHeaderBar

+
+
+ 46.15% + Statements + 12/26 +
+ +
+ 59.09% + Branches + 13/22 +
+ +
+ 10% + Functions + 1/10 +
+ +
+ 46.15% + Lines + 12/26 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
46.15%12/2659.09%13/2210%1/1046.15%12/26
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/bars/SSIHeaderBar/index.tsx.html b/coverage/lcov-report/components/bars/SSIHeaderBar/index.tsx.html new file mode 100644 index 00000000..c34c472f --- /dev/null +++ b/coverage/lcov-report/components/bars/SSIHeaderBar/index.tsx.html @@ -0,0 +1,522 @@ + + + + Code coverage report for components/bars/SSIHeaderBar/index.tsx + + + + + + + + + +
+
+

All files / components/bars/SSIHeaderBar index.tsx

+
+
+ 46.15% + Statements + 12/26 +
+ +
+ 59.09% + Branches + 13/22 +
+ +
+ 10% + Functions + 1/10 +
+ +
+ 46.15% + Lines + 12/26 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +112x +112x +112x +  +112x +  +  +  +112x +  +  +  +  +112x +  +  +  +112x +  +  +  +  +112x +  +  +  +  +112x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +112x +  +  +  +112x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {NativeStackHeaderProps} from '@react-navigation/native-stack';
+import React, {FC, useContext} from 'react';
+import {GestureResponderEvent, View} from 'react-native';
+import {useSafeAreaInsets} from 'react-native-safe-area-context';
+import {useDispatch} from 'react-redux';
+ 
+import OnTouchContext from '../../../contexts/OnTouchContext';
+import {translate} from '../../../localization/Localization';
+import store from '../../../store';
+import {deleteUser, logout} from '../../../store/actions/user.actions';
+import {
+  SSIHeaderBarBackIconStyled as BackIcon,
+  SSIHeaderBarBackIconContainerStyled as BackIconContainer,
+  SSIHeaderBarContainerStyled as Container,
+  SSITextH1LightStyled as HeaderCaption,
+  SSIHeaderBarHeaderSubCaptionStyled as HeaderSubCaption,
+  SSIFlexDirectionColumnViewStyled as LeftColumn,
+  SSIHeaderBarMoreIconStyled as MoreIcon,
+  SSIHeaderBarMoreMenuContainerStyled as MoreMenuContainer,
+  SSIHeaderBarProfileIconContainerStyled as ProfileIconContainer,
+  SSIHeaderBarProfileMenuContainerStyled as ProfileMenuContainer,
+  SSIRightColumnRightAlignedContainerStyled as RightColumn,
+  SSIFlexDirectionRowViewStyled as Row,
+} from '../../../styles/components';
+import {ButtonIconsEnum, HeaderMenuIconsEnum, IHeaderMenuButton, IUser, MainRoutesEnum} from '../../../types';
+import SSIProfileIcon from '../../assets/icons/SSIProfileIcon';
+import SSIDropDownList from '../../dropDownLists/SSIDropDownList';
+ 
+export interface HeaderBarProps extends NativeStackHeaderProps {
+  headerSubTitle?: string;
+  showBorder?: boolean;
+  showBackButton?: boolean;
+  moreActions?: Array<IHeaderMenuButton>;
+  showProfileIcon?: boolean;
+  onBack?: () => void | Promise<void>;
+}
+ 
+// TODO fix that there is a slight flash of elements moving when navigating
+// NK: Probably has todo with us passing in a new headerbar element via props on every screen, causing a rerender of the entire dom
+const SSIHeaderBar: FC<HeaderBarProps> = (props: HeaderBarProps): JSX.Element => {
+  const {showBorder = false, showBackButton = true, showProfileIcon = true, moreActions = []} = props;
+  const dispatch = useDispatch();
+  const {showProfileMenu, setShowProfileMenu, showMoreMenu, setShowMoreMenu} = useContext(OnTouchContext);
+ 
+  const onBack = async (): Promise<void> => {
+    typeof props.onBack === 'function' ? await props.onBack() : props.navigation.goBack();
+  };
+ 
+  const onProfile = async (): Promise<void> => {
+    setShowMoreMenu(false);
+    setShowProfileMenu(!showProfileMenu);
+  };
+ 
+  const onProfileLong = async (): Promise<void> => {
+    props.navigation.navigate('Veramo', {});
+  };
+ 
+  const onMore = async (): Promise<void> => {
+    setShowProfileMenu(false);
+    setShowMoreMenu(!showMoreMenu);
+  };
+ 
+  const onLogout = async (): Promise<void> => {
+    setShowProfileMenu(false);
+    dispatch<any>(logout());
+  };
+ 
+  const onDeleteWallet = async (): Promise<void> => {
+    setShowProfileMenu(false);
+    const activeUser: IUser = store.getState().user.activeUser!;
+ 
+    props.navigation.navigate(MainRoutesEnum.POPUP_MODAL, {
+      title: translate('profile_delete_wallet_action_title'),
+      details: translate('profile_delete_wallet_action_subtitle', {userName: `${activeUser.firstName} ${activeUser.lastName}`}),
+      primaryButton: {
+        caption: translate('action_confirm_label'),
+        onPress: async () => dispatch<any>(deleteUser(activeUser.id)),
+      },
+      secondaryButton: {
+        caption: translate('action_cancel_label'),
+        onPress: async () => props.navigation.goBack(),
+      },
+    });
+  };
+ 
+  const onTouchStart = (event: GestureResponderEvent): void => {
+    event.stopPropagation();
+  };
+ 
+  return (
+    <Container style={{paddingTop: useSafeAreaInsets().top}} showBorder={showBorder}>
+      <Row>
+        <LeftColumn>
+          {showBackButton && (
+            <BackIconContainer>
+              <BackIcon icon={ButtonIconsEnum.BACK} onPress={onBack} />
+            </BackIconContainer>
+          )}
+          <HeaderCaption style={{marginTop: showBackButton ? 21.5 : 15, marginBottom: props.headerSubTitle ? 0 : 10}}>
+            {props.options.headerTitle as string}
+          </HeaderCaption>
+          {props.headerSubTitle && <HeaderSubCaption>{props.headerSubTitle}</HeaderSubCaption>}
+        </LeftColumn>
+        <RightColumn>
+          {showProfileIcon && (
+            // we need this view wrapper to stop the event from propagating to the onTouch provider which will catch the onTouch set show menu to false and then the onPress would set it to true again, as onTouch will be before onPress
+            <View onTouchStart={onTouchStart}>
+              <ProfileIconContainer onPress={onProfile} onLongPress={onProfileLong}>
+                <SSIProfileIcon />
+              </ProfileIconContainer>
+            </View>
+          )}
+          {showProfileMenu && (
+            <ProfileMenuContainer onTouchStart={onTouchStart}>
+              <SSIDropDownList
+                buttons={[
+                  {
+                    caption: translate('profile_logout_action_caption'),
+                    onPress: onLogout,
+                    icon: HeaderMenuIconsEnum.LOGOUT,
+                  },
+                  {
+                    caption: translate('profile_delete_wallet_action_caption'),
+                    onPress: onDeleteWallet,
+                    icon: HeaderMenuIconsEnum.DELETE,
+                  },
+                ]}
+              />
+            </ProfileMenuContainer>
+          )}
+          {moreActions.length > 0 && (
+            // we need this view wrapper to stop the event from propagating to the onTouch provider which will catch the onTouch set show menu to false and then the onPress would set it to true again, as onTouch will be before onPress
+            <View onTouchStart={onTouchStart}>
+              <MoreIcon icon={ButtonIconsEnum.MORE} onPress={onMore} />
+            </View>
+          )}
+          {showMoreMenu && (
+            <MoreMenuContainer onTouchStart={onTouchStart}>
+              <SSIDropDownList buttons={moreActions} />
+            </MoreMenuContainer>
+          )}
+        </RightColumn>
+      </Row>
+    </Container>
+  );
+};
+ 
+export default SSIHeaderBar;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/bars/SSINavigationBar/index.html b/coverage/lcov-report/components/bars/SSINavigationBar/index.html new file mode 100644 index 00000000..2438d8da --- /dev/null +++ b/coverage/lcov-report/components/bars/SSINavigationBar/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/bars/SSINavigationBar + + + + + + + + + +
+
+

All files components/bars/SSINavigationBar

+
+
+ 4% + Statements + 1/25 +
+ +
+ 0% + Branches + 0/29 +
+ +
+ 0% + Functions + 0/8 +
+ +
+ 4% + Lines + 1/25 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
4%1/250%0/290%0/84%1/25
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/bars/SSINavigationBar/index.tsx.html b/coverage/lcov-report/components/bars/SSINavigationBar/index.tsx.html new file mode 100644 index 00000000..7f406783 --- /dev/null +++ b/coverage/lcov-report/components/bars/SSINavigationBar/index.tsx.html @@ -0,0 +1,468 @@ + + + + Code coverage report for components/bars/SSINavigationBar/index.tsx + + + + + + + + + +
+
+

All files / components/bars/SSINavigationBar index.tsx

+
+
+ 4% + Statements + 1/25 +
+ +
+ 0% + Branches + 0/29 +
+ +
+ 0% + Functions + 0/8 +
+ +
+ 4% + Lines + 1/25 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {BottomTabBarProps} from '@react-navigation/bottom-tabs';
+import React, {PureComponent} from 'react';
+import {EmitterSubscription, Keyboard, View} from 'react-native';
+import {SafeAreaView} from 'react-native-safe-area-context';
+ 
+import {HIT_SLOP_DISTANCE} from '../../../@config/constants';
+import {backgrounds, fonts, highLightGradients} from '../../../styles/colors';
+import {
+  SSINavigationBarButtonStyled as Button,
+  SSINavigationBarContainerStyled as Container,
+  SSINavigationBarSafeAreaContainerStyled as SafeAreaContainer,
+} from '../../../styles/components';
+import {NavigationBarRoutesEnum} from '../../../types';
+import SSIBellIcon from '../../assets/icons/SSIBellIcon';
+import SSIContactsIcon from '../../assets/icons/SSIContactsIcon';
+import SSIHomeIcon from '../../assets/icons/SSIHomeIcon';
+import SSIQRIcon from '../../assets/icons/SSIQRIcon';
+ 
+interface IState {
+  keyboardVisible: boolean;
+}
+ 
+class SSINavigationBar extends PureComponent<BottomTabBarProps, IState> {
+  private keyboardDidShowListener: EmitterSubscription;
+  private keyboardDidHideListener: EmitterSubscription;
+  state: IState = {
+    keyboardVisible: false,
+  };
+ 
+  componentDidMount = () => {
+    this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this._keyboardDidShow);
+    this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this._keyboardDidHide);
+  };
+ 
+  componentWillUnmount() {
+    this.keyboardDidShowListener.remove();
+    this.keyboardDidHideListener.remove();
+  }
+ 
+  _keyboardDidShow = () => {
+    this.setState({keyboardVisible: true});
+  };
+ 
+  _keyboardDidHide = () => {
+    this.setState({keyboardVisible: false});
+  };
+ 
+  render() {
+    return !this.state.keyboardVisible ? (
+      <SafeAreaContainer>
+        <SafeAreaView edges={['bottom']}>
+          <Container>
+            {this.props.state.routes.map((route, index: number) => {
+              const {options} = this.props.descriptors[route.key];
+              const isFocused = this.props.state.index === index;
+ 
+              const onPress = () => {
+                const event = this.props.navigation.emit({
+                  type: 'tabPress',
+                  target: route.key,
+                  canPreventDefault: true,
+                });
+ 
+                if (!isFocused && !event.defaultPrevented) {
+                  // The `merge: true` option makes sure that the params inside the tab screen are preserved
+                  this.props.navigation.navigate(route.name, {merge: true});
+                }
+              };
+ 
+              return (
+                <Button
+                  key={route.key}
+                  accessibilityRole="button"
+                  accessibilityState={isFocused ? {selected: true} : {}}
+                  accessibilityLabel={options.tabBarAccessibilityLabel}
+                  testID={options.tabBarTestID}
+                  onPress={onPress}
+                  hitSlop={{
+                    top: HIT_SLOP_DISTANCE,
+                    bottom: HIT_SLOP_DISTANCE,
+                    left: HIT_SLOP_DISTANCE,
+                    right: HIT_SLOP_DISTANCE,
+                  }}>
+                  {getNavigationIcon(route.name, isFocused)}
+                </Button>
+              );
+            })}
+          </Container>
+        </SafeAreaView>
+      </SafeAreaContainer>
+    ) : null;
+  }
+}
+ 
+const getNavigationIcon = (route: string, isFocused: boolean): JSX.Element => {
+  switch (route) {
+    case NavigationBarRoutesEnum.QR:
+      return (
+        <SSIQRIcon
+          primaryColor={isFocused ? highLightGradients['200'].primaryColor : fonts.light}
+          secondaryColor={isFocused ? highLightGradients['200'].secondaryColor : fonts.light}
+        />
+      );
+    case NavigationBarRoutesEnum.NOTIFICATIONS:
+      return (
+        <SSIBellIcon
+          primaryColor={isFocused ? highLightGradients['200'].primaryColor : fonts.light}
+          secondaryColor={isFocused ? highLightGradients['200'].secondaryColor : fonts.light}
+        />
+      );
+    case NavigationBarRoutesEnum.CREDENTIALS:
+      return (
+        <SSIHomeIcon
+          primaryColor={isFocused ? highLightGradients['200'].primaryColor : fonts.light}
+          secondaryColor={isFocused ? highLightGradients['200'].secondaryColor : fonts.light}
+        />
+      );
+    case NavigationBarRoutesEnum.CONTACTS:
+      return (
+        <SSIContactsIcon
+          primaryColor={isFocused ? highLightGradients['200'].primaryColor : fonts.light}
+          secondaryColor={isFocused ? highLightGradients['200'].secondaryColor : fonts.light}
+        />
+      );
+    default:
+      return <View />;
+  }
+};
+ 
+export default SSINavigationBar;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/buttons/SSIIconButton/index.html b/coverage/lcov-report/components/buttons/SSIIconButton/index.html new file mode 100644 index 00000000..b0cc68b4 --- /dev/null +++ b/coverage/lcov-report/components/buttons/SSIIconButton/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/buttons/SSIIconButton + + + + + + + + + +
+
+

All files components/buttons/SSIIconButton

+
+
+ 62.5% + Statements + 5/8 +
+ +
+ 25% + Branches + 1/4 +
+ +
+ 100% + Functions + 2/2 +
+ +
+ 62.5% + Lines + 5/8 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
62.5%5/825%1/4100%2/262.5%5/8
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/buttons/SSIIconButton/index.tsx.html b/coverage/lcov-report/components/buttons/SSIIconButton/index.tsx.html new file mode 100644 index 00000000..9c4bf99b --- /dev/null +++ b/coverage/lcov-report/components/buttons/SSIIconButton/index.tsx.html @@ -0,0 +1,228 @@ + + + + Code coverage report for components/buttons/SSIIconButton/index.tsx + + + + + + + + + +
+
+

All files / components/buttons/SSIIconButton index.tsx

+
+
+ 62.5% + Statements + 5/8 +
+ +
+ 25% + Branches + 1/4 +
+ +
+ 100% + Functions + 2/2 +
+ +
+ 62.5% + Lines + 5/8 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +112x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +112x +  +112x +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {ColorValue, PressableProps, TouchableOpacity, View, ViewStyle} from 'react-native';
+ 
+import {HIT_SLOP_DISTANCE} from '../../../@config/constants';
+import SSIBackIcon from '../../../components/assets/icons/SSIBackIcon';
+import SSIMoreIcon from '../../../components/assets/icons/SSIMoreIcon';
+import {ButtonIconsEnum} from '../../../types';
+import SSICloseIcon from '../../assets/icons/SSICloseIcon';
+ 
+export interface Props extends PressableProps {
+  icon: ButtonIconsEnum;
+  onPress: () => Promise<void>;
+  disabled?: boolean | undefined;
+  style?: ViewStyle;
+  iconSize?: number;
+  iconColor?: ColorValue;
+}
+ 
+// TODO add feedback to button
+const SSIIconButton: FC<Props> = (props: Props): JSX.Element => {
+  return (
+    <TouchableOpacity
+      style={props.style}
+      onPress={props.onPress}
+      disabled={props.disabled}
+      hitSlop={{
+        top: HIT_SLOP_DISTANCE,
+        bottom: HIT_SLOP_DISTANCE,
+        left: HIT_SLOP_DISTANCE,
+        right: HIT_SLOP_DISTANCE,
+      }}>
+      {getIcon(props.icon, props.iconSize, props.iconColor)}
+    </TouchableOpacity>
+  );
+};
+ 
+const getIcon = (icon: ButtonIconsEnum, size?: number, color?: ColorValue): JSX.Element => {
+  switch (icon) {
+    case ButtonIconsEnum.BACK:
+      return <SSIBackIcon />;
+    case ButtonIconsEnum.MORE:
+      return <SSIMoreIcon />;
+    case ButtonIconsEnum.CLOSE:
+      return <SSICloseIcon size={size} color={color} />;
+    default:
+      return <View />;
+  }
+};
+ 
+export default SSIIconButton;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/buttons/SSIPrimaryButton/index.html b/coverage/lcov-report/components/buttons/SSIPrimaryButton/index.html new file mode 100644 index 00000000..4a992d59 --- /dev/null +++ b/coverage/lcov-report/components/buttons/SSIPrimaryButton/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/buttons/SSIPrimaryButton + + + + + + + + + +
+
+

All files components/buttons/SSIPrimaryButton

+
+
+ 100% + Statements + 3/3 +
+ +
+ 100% + Branches + 2/2 +
+ +
+ 100% + Functions + 1/1 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
100%3/3100%2/2100%1/1100%3/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/buttons/SSIPrimaryButton/index.tsx.html b/coverage/lcov-report/components/buttons/SSIPrimaryButton/index.tsx.html new file mode 100644 index 00000000..00a589d8 --- /dev/null +++ b/coverage/lcov-report/components/buttons/SSIPrimaryButton/index.tsx.html @@ -0,0 +1,183 @@ + + + + Code coverage report for components/buttons/SSIPrimaryButton/index.tsx + + + + + + + + + +
+
+

All files / components/buttons/SSIPrimaryButton index.tsx

+
+
+ 100% + Statements + 3/3 +
+ +
+ 100% + Branches + 2/2 +
+ +
+ 100% + Functions + 1/1 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +49x +  +49x +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {PressableProps, ViewStyle} from 'react-native';
+ 
+import {
+  SSITouchableOpacityButtonFlexRowStyled as Button,
+  SSITextH2LightStyled as ButtonCaption,
+  SSIRoundedCenteredLinearGradientStyled as LinearGradient,
+} from '../../../styles/components';
+import {OpacityStyleEnum} from '../../../types';
+ 
+export interface Props extends PressableProps {
+  title: string; // TODO rename to caption
+  disabled?: boolean | undefined;
+  onPress?: () => void;
+  style?: ViewStyle;
+}
+ 
+const SSIPrimaryButton: FC<Props> = (props: Props): JSX.Element => {
+  const {onPress, disabled, style, title} = props;
+ 
+  return (
+    <Button
+      onPress={onPress}
+      disabled={disabled}
+      style={{
+        ...(disabled && {opacity: OpacityStyleEnum.DISABLED}),
+      }}>
+      <LinearGradient style={{...style}}>
+        <ButtonCaption>{title}</ButtonCaption>
+      </LinearGradient>
+    </Button>
+  );
+};
+ 
+export default SSIPrimaryButton;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/buttons/SSISecondaryButton/index.html b/coverage/lcov-report/components/buttons/SSISecondaryButton/index.html new file mode 100644 index 00000000..e94f48ec --- /dev/null +++ b/coverage/lcov-report/components/buttons/SSISecondaryButton/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/buttons/SSISecondaryButton + + + + + + + + + +
+
+

All files components/buttons/SSISecondaryButton

+
+
+ 100% + Statements + 3/3 +
+ +
+ 50% + Branches + 2/4 +
+ +
+ 100% + Functions + 1/1 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
100%3/350%2/4100%1/1100%3/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/buttons/SSISecondaryButton/index.tsx.html b/coverage/lcov-report/components/buttons/SSISecondaryButton/index.tsx.html new file mode 100644 index 00000000..e63f59f4 --- /dev/null +++ b/coverage/lcov-report/components/buttons/SSISecondaryButton/index.tsx.html @@ -0,0 +1,207 @@ + + + + Code coverage report for components/buttons/SSISecondaryButton/index.tsx + + + + + + + + + +
+
+

All files / components/buttons/SSISecondaryButton index.tsx

+
+
+ 100% + Statements + 3/3 +
+ +
+ 50% + Branches + 2/4 +
+ +
+ 100% + Functions + 1/1 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +16x +  +16x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {PressableProps, ViewStyle} from 'react-native';
+ 
+import {backgrounds} from '../../../styles/colors';
+import {
+  SSIRoundedContainerBackgroundSecondaryDarkStyled as Background,
+  SSITouchableOpacityButtonFlexRowStyled as Button,
+  SSITextH2SecondaryButtonStyled as ButtonCaption,
+  SSISecondaryButtonContainerStyled as ButtonContainer,
+  SSIRoundedCenteredLinearGradientSecondaryButtonStyled as LinearGradient,
+} from '../../../styles/components';
+import {OpacityStyleEnum} from '../../../types';
+ 
+export interface Props extends PressableProps {
+  title: string; // TODO rename to caption
+  disabled?: boolean | undefined;
+  onPress?: () => void;
+  style?: ViewStyle;
+}
+ 
+const SSISecondaryButton: FC<Props> = (props: Props): JSX.Element => {
+  const {onPress, disabled, style} = props;
+ 
+  return (
+    <Background>
+      <Button
+        onPress={onPress}
+        disabled={disabled}
+        activeOpacity={0.5}
+        style={{
+          ...(disabled && {opacity: OpacityStyleEnum.DISABLED}),
+        }}>
+        <LinearGradient style={{...props.style}}>
+          <ButtonContainer style={{backgroundColor: style?.backgroundColor ? style?.backgroundColor : backgrounds.primaryDark}}>
+            <ButtonCaption>{props.title}</ButtonCaption>
+          </ButtonContainer>
+        </LinearGradient>
+      </Button>
+    </Background>
+  );
+};
+ 
+export default SSISecondaryButton;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/buttons/SSISwipeDeleteButton/index.html b/coverage/lcov-report/components/buttons/SSISwipeDeleteButton/index.html new file mode 100644 index 00000000..51e9b75b --- /dev/null +++ b/coverage/lcov-report/components/buttons/SSISwipeDeleteButton/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/buttons/SSISwipeDeleteButton + + + + + + + + + +
+
+

All files components/buttons/SSISwipeDeleteButton

+
+
+ 50% + Statements + 1/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 50% + Lines + 1/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
50%1/2100%0/00%0/150%1/2
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/buttons/SSISwipeDeleteButton/index.tsx.html b/coverage/lcov-report/components/buttons/SSISwipeDeleteButton/index.tsx.html new file mode 100644 index 00000000..4ac48342 --- /dev/null +++ b/coverage/lcov-report/components/buttons/SSISwipeDeleteButton/index.tsx.html @@ -0,0 +1,156 @@ + + + + Code coverage report for components/buttons/SSISwipeDeleteButton/index.tsx + + + + + + + + + +
+
+

All files / components/buttons/SSISwipeDeleteButton index.tsx

+
+
+ 50% + Statements + 1/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 50% + Lines + 1/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {Pressable} from 'react-native';
+ 
+import SSIDeleteIcon from '../../../components/assets/icons/SSIDeleteIcon';
+import {translate} from '../../../localization/Localization';
+import {
+  SSISwipeDeleteButtonCaptionStyled as ButtonCaption,
+  SSISwipeDeleteButtonLinearGradientStyled as LinearGradient,
+} from '../../../styles/components';
+ 
+export interface IProps {
+  onPress?: () => void;
+}
+ 
+const SSISwipeDeleteButton: FC<IProps> = (props: IProps): JSX.Element => {
+  return (
+    <Pressable onPress={props.onPress}>
+      <LinearGradient>
+        <SSIDeleteIcon />
+        <ButtonCaption>{translate('swipe_delete_button_caption')}</ButtonCaption>
+      </LinearGradient>
+    </Pressable>
+  );
+};
+ 
+export default SSISwipeDeleteButton;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/containers/SSIButtonsContainer/index.html b/coverage/lcov-report/components/containers/SSIButtonsContainer/index.html new file mode 100644 index 00000000..a9b88e3d --- /dev/null +++ b/coverage/lcov-report/components/containers/SSIButtonsContainer/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/containers/SSIButtonsContainer + + + + + + + + + +
+
+

All files components/containers/SSIButtonsContainer

+
+
+ 85.71% + Statements + 12/14 +
+ +
+ 83.33% + Branches + 10/12 +
+ +
+ 60% + Functions + 3/5 +
+ +
+ 85.71% + Lines + 12/14 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
85.71%12/1483.33%10/1260%3/585.71%12/14
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/containers/SSIButtonsContainer/index.tsx.html b/coverage/lcov-report/components/containers/SSIButtonsContainer/index.tsx.html new file mode 100644 index 00000000..1d693fa9 --- /dev/null +++ b/coverage/lcov-report/components/containers/SSIButtonsContainer/index.tsx.html @@ -0,0 +1,300 @@ + + + + Code coverage report for components/containers/SSIButtonsContainer/index.tsx + + + + + + + + + +
+
+

All files / components/containers/SSIButtonsContainer index.tsx

+
+
+ 85.71% + Statements + 12/14 +
+ +
+ 83.33% + Branches + 10/12 +
+ +
+ 60% + Functions + 3/5 +
+ +
+ 85.71% + Lines + 12/14 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +13x +  +  +  +13x +13x +13x +  +  +13x +13x +13x +  +  +13x +  +  +  +13x +  +  +  +  +35x +35x +  +35x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {PureComponent} from 'react';
+import {ColorValue, EmitterSubscription, Keyboard} from 'react-native';
+ 
+import {SSIButtonBottomContainerStyled as ButtonContainer, SSIButtonsContainerSpacerStyled as Spacer} from '../../../styles/components';
+import {IButton} from '../../../types';
+import SSIPrimaryButton from '../../buttons/SSIPrimaryButton';
+import SSISecondaryButton from '../../buttons/SSISecondaryButton';
+ 
+export interface Props {
+  primaryButton?: IButton;
+  secondaryButton?: IButton;
+  backgroundColor?: ColorValue;
+}
+ 
+interface IState {
+  keyboardVisible: boolean;
+}
+ 
+class SSIButtonsContainer extends PureComponent<Props, IState> {
+  keyboardDidShowListener: EmitterSubscription;
+  keyboardDidHideListener: EmitterSubscription;
+  state: IState = {
+    keyboardVisible: false,
+  };
+ 
+  componentDidMount = () => {
+    this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this._keyboardDidShow);
+    this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this._keyboardDidHide);
+  };
+ 
+  componentWillUnmount = () => {
+    this.keyboardDidShowListener.remove();
+    this.keyboardDidHideListener.remove();
+  };
+ 
+  _keyboardDidShow = () => {
+    this.setState({keyboardVisible: true});
+  };
+ 
+  _keyboardDidHide = () => {
+    this.setState({keyboardVisible: false});
+  };
+ 
+  render() {
+    const {backgroundColor, primaryButton, secondaryButton} = this.props;
+    const {keyboardVisible} = this.state;
+ 
+    return (
+      <ButtonContainer style={{paddingBottom: keyboardVisible ? 18 : 36, ...(backgroundColor && {backgroundColor})}}>
+        {secondaryButton && (
+          <SSISecondaryButton
+            title={secondaryButton.caption}
+            onPress={secondaryButton.onPress}
+            disabled={secondaryButton.disabled}
+            // TODO move styling to styled components (currently there is an issue where this styling prop is not being set correctly)
+            style={{height: 42, minWidth: 145, width: primaryButton ? undefined : 300}}
+          />
+        )}
+        <Spacer />
+        {primaryButton && (
+          <SSIPrimaryButton
+            title={primaryButton.caption}
+            onPress={primaryButton.onPress}
+            disabled={primaryButton.disabled}
+            // TODO move styling to styled components (currently there is an issue where this styling prop is not being set correctly)
+            style={{height: 42, minWidth: 145, width: secondaryButton ? undefined : 300}}
+          />
+        )}
+      </ButtonContainer>
+    );
+  }
+}
+ 
+export default SSIButtonsContainer;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/dropDownLists/SSIDropDownList/index.html b/coverage/lcov-report/components/dropDownLists/SSIDropDownList/index.html new file mode 100644 index 00000000..fe2f3271 --- /dev/null +++ b/coverage/lcov-report/components/dropDownLists/SSIDropDownList/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/dropDownLists/SSIDropDownList + + + + + + + + + +
+
+

All files components/dropDownLists/SSIDropDownList

+
+
+ 14.28% + Statements + 1/7 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/3 +
+ +
+ 14.28% + Lines + 1/7 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
14.28%1/70%0/20%0/314.28%1/7
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/dropDownLists/SSIDropDownList/index.tsx.html b/coverage/lcov-report/components/dropDownLists/SSIDropDownList/index.tsx.html new file mode 100644 index 00000000..d73889be --- /dev/null +++ b/coverage/lcov-report/components/dropDownLists/SSIDropDownList/index.tsx.html @@ -0,0 +1,174 @@ + + + + Code coverage report for components/dropDownLists/SSIDropDownList/index.tsx + + + + + + + + + +
+
+

All files / components/dropDownLists/SSIDropDownList index.tsx

+
+
+ 14.28% + Statements + 1/7 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/3 +
+ +
+ 14.28% + Lines + 1/7 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+ 
+import {SSIDropDownListContainerStyled as Container} from '../../../styles/components';
+import {IHeaderMenuButton} from '../../../types';
+import SSIDropDownListItem from '../SSIDropDownListItem';
+ 
+export interface IProps {
+  buttons: Array<IHeaderMenuButton>;
+}
+ 
+const SSIDropDownList: FC<IProps> = (props: IProps): JSX.Element => {
+  const getItems = () => {
+    const {buttons} = props;
+    return buttons.map((item: IHeaderMenuButton, index: number) => {
+      const showBorder = buttons.length > 1 && index !== buttons.length - 1;
+      return (
+        <SSIDropDownListItem
+          key={index}
+          showBorder={showBorder}
+          caption={item.caption}
+          onPress={item.onPress}
+          icon={item.icon}
+          fontColor={item.fontColor}
+        />
+      );
+    });
+  };
+ 
+  return <Container>{getItems()}</Container>;
+};
+ 
+export default SSIDropDownList;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/dropDownLists/SSIDropDownListItem/index.html b/coverage/lcov-report/components/dropDownLists/SSIDropDownListItem/index.html new file mode 100644 index 00000000..ada1bde2 --- /dev/null +++ b/coverage/lcov-report/components/dropDownLists/SSIDropDownListItem/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/dropDownLists/SSIDropDownListItem + + + + + + + + + +
+
+

All files components/dropDownLists/SSIDropDownListItem

+
+
+ 7.69% + Statements + 1/13 +
+ +
+ 0% + Branches + 0/14 +
+ +
+ 0% + Functions + 0/3 +
+ +
+ 7.69% + Lines + 1/13 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
7.69%1/130%0/140%0/37.69%1/13
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/dropDownLists/SSIDropDownListItem/index.tsx.html b/coverage/lcov-report/components/dropDownLists/SSIDropDownListItem/index.tsx.html new file mode 100644 index 00000000..2ac5939f --- /dev/null +++ b/coverage/lcov-report/components/dropDownLists/SSIDropDownListItem/index.tsx.html @@ -0,0 +1,273 @@ + + + + Code coverage report for components/dropDownLists/SSIDropDownListItem/index.tsx + + + + + + + + + +
+
+

All files / components/dropDownLists/SSIDropDownListItem index.tsx

+
+
+ 7.69% + Statements + 1/13 +
+ +
+ 0% + Branches + 0/14 +
+ +
+ 0% + Functions + 0/3 +
+ +
+ 7.69% + Lines + 1/13 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {ColorValue, View} from 'react-native';
+ 
+import {borders, fonts} from '../../../styles/colors';
+import {
+  SSITouchableOpacityButtonFlexRowStyled as Button,
+  SSIDropDownListItemContainerStyled as Container,
+  SSIDropDownListItemIconContainerStyled as IconContainer,
+  SSIDropDownListItemCaptionContainerStyled as ListItemCaption,
+} from '../../../styles/components';
+import {HeaderMenuIconsEnum, OpacityStyleEnum} from '../../../types';
+import SSIAddIcon from '../../assets/icons/SSIAddIcon';
+import SSIDeleteIcon from '../../assets/icons/SSIDeleteIcon';
+import SSIDownloadIcon from '../../assets/icons/SSIDownloadIcon';
+import SSILogoutIcon from '../../assets/icons/SSILogoutIcon';
+ 
+export interface IProps {
+  caption: string;
+  onPress: () => Promise<void>;
+  disabled?: boolean;
+  icon?: HeaderMenuIconsEnum;
+  showBorder?: boolean;
+  fontColor?: ColorValue;
+}
+ 
+const SSIDropDownListItem: FC<IProps> = (props: IProps): JSX.Element => {
+  const {disabled, caption, icon, showBorder = false, fontColor = fonts.dark} = props;
+ 
+  const onPress = async () => {
+    await props.onPress();
+  };
+ 
+  const getIcon = (icon: HeaderMenuIconsEnum): JSX.Element => {
+    const {fontColor = fonts.dark} = props;
+ 
+    switch (icon) {
+      case HeaderMenuIconsEnum.DELETE:
+        return <SSIDeleteIcon color={fontColor} />;
+      case HeaderMenuIconsEnum.ADD:
+        return <SSIAddIcon color={fontColor} />;
+      case HeaderMenuIconsEnum.LOGOUT:
+        return <SSILogoutIcon color={fontColor} />;
+      case HeaderMenuIconsEnum.DOWNLOAD:
+        return <SSIDownloadIcon color={fontColor} />;
+      default:
+        return <View />;
+    }
+  };
+ 
+  return (
+    <Button
+      onPress={onPress}
+      disabled={disabled}
+      style={{
+        ...(disabled && {opacity: OpacityStyleEnum.DISABLED}),
+      }}>
+      <Container style={{...(showBorder && {borderBottomWidth: 2, borderBottomColor: borders.light})}}>
+        <ListItemCaption style={{color: fontColor}}>{caption}</ListItemCaption>
+        {icon && <IconContainer>{getIcon(icon)}</IconContainer>}
+      </Container>
+    </Button>
+  );
+};
+ 
+export default SSIDropDownListItem;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/fields/SSICheckbox/index.html b/coverage/lcov-report/components/fields/SSICheckbox/index.html new file mode 100644 index 00000000..fc47f6cc --- /dev/null +++ b/coverage/lcov-report/components/fields/SSICheckbox/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/fields/SSICheckbox + + + + + + + + + +
+
+

All files components/fields/SSICheckbox

+
+
+ 90.9% + Statements + 10/11 +
+ +
+ 79.16% + Branches + 19/24 +
+ +
+ 100% + Functions + 3/3 +
+ +
+ 90% + Lines + 9/10 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
90.9%10/1179.16%19/24100%3/390%9/10
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/fields/SSICheckbox/index.tsx.html b/coverage/lcov-report/components/fields/SSICheckbox/index.tsx.html new file mode 100644 index 00000000..02f13345 --- /dev/null +++ b/coverage/lcov-report/components/fields/SSICheckbox/index.tsx.html @@ -0,0 +1,303 @@ + + + + Code coverage report for components/fields/SSICheckbox/index.tsx + + + + + + + + + +
+
+

All files / components/fields/SSICheckbox index.tsx

+
+
+ 90.9% + Statements + 10/11 +
+ +
+ 79.16% + Branches + 19/24 +
+ +
+ 100% + Functions + 3/3 +
+ +
+ 90% + Lines + 9/10 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +38x +38x +38x +  +38x +6x +6x +6x +  +  +  +  +  +38x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {ColorValue, TouchableOpacity} from 'react-native';
+ 
+import {HIT_SLOP_DISTANCE} from '../../../@config/constants';
+import {fonts, selectionElements} from '../../../styles/colors';
+import {
+  SSIFlexDirectionRowViewStyled as Container,
+  SSICheckboxLabelContainerStyled as LabelCaption,
+  SSICheckboxSelectedContainerStyled as SelectedContainer,
+  SSICheckboxUnselectedContainerStyled as UnselectedContainer,
+} from '../../../styles/components';
+import {OpacityStyleEnum} from '../../../types';
+ 
+export interface IProps {
+  onValueChange?: (isChecked: boolean) => Promise<void>;
+  initialValue?: boolean;
+  // This value can be used to control the checkbox from the outside
+  isChecked?: boolean;
+  label?: string;
+  disabled?: boolean;
+  backgroundColor?: ColorValue;
+  borderColor?: ColorValue;
+  selectedColor?: ColorValue;
+  labelColor?: ColorValue;
+}
+ 
+const SSICheckbox: FC<IProps> = (props: IProps): JSX.Element => {
+  const {
+    backgroundColor,
+    borderColor = selectionElements.primaryBorderDark,
+    disabled = false,
+    initialValue,
+    label,
+    selectedColor = selectionElements.primaryDark,
+    labelColor = fonts.light,
+  } = props;
+  const [isChecked, setChecked] = React.useState(initialValue || false);
+  const value = props.isChecked !== undefined ? props.isChecked : isChecked;
+ 
+  const onValueChange = () => {
+    const {onValueChange} = props;
+    if (onValueChange) {
+      onValueChange(!isChecked).then(() => setChecked(!isChecked));
+    } else E{
+      setChecked(!isChecked);
+    }
+  };
+ 
+  return (
+    <TouchableOpacity
+      disabled={disabled}
+      onPress={onValueChange}
+      hitSlop={{
+        top: HIT_SLOP_DISTANCE,
+        bottom: HIT_SLOP_DISTANCE,
+        left: HIT_SLOP_DISTANCE,
+        right: HIT_SLOP_DISTANCE,
+      }}>
+      <Container>
+        {value ? (
+          <SelectedContainer
+            style={{backgroundColor: selectedColor, ...(label && {marginRight: 10}), ...(disabled && {opacity: OpacityStyleEnum.DISABLED})}}
+          />
+        ) : (
+          <UnselectedContainer
+            style={{backgroundColor, ...(label && {marginRight: 10}), borderColor, ...(disabled && {opacity: OpacityStyleEnum.DISABLED})}}
+          />
+        )}
+        {label && <LabelCaption style={{color: labelColor, ...(disabled && {opacity: OpacityStyleEnum.DISABLED})}}>{label}</LabelCaption>}
+      </Container>
+    </TouchableOpacity>
+  );
+};
+ 
+export default SSICheckbox;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/fields/SSIImageField/index.html b/coverage/lcov-report/components/fields/SSIImageField/index.html new file mode 100644 index 00000000..433b4bbc --- /dev/null +++ b/coverage/lcov-report/components/fields/SSIImageField/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/fields/SSIImageField + + + + + + + + + +
+
+

All files components/fields/SSIImageField

+
+
+ 25% + Statements + 1/4 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 25% + Lines + 1/4 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
25%1/40%0/20%0/125%1/4
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/fields/SSIImageField/index.tsx.html b/coverage/lcov-report/components/fields/SSIImageField/index.tsx.html new file mode 100644 index 00000000..8e205266 --- /dev/null +++ b/coverage/lcov-report/components/fields/SSIImageField/index.tsx.html @@ -0,0 +1,216 @@ + + + + Code coverage report for components/fields/SSIImageField/index.tsx + + + + + + + + + +
+
+

All files / components/fields/SSIImageField index.tsx

+
+
+ 25% + Statements + 1/4 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 25% + Lines + 1/4 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {calculateAspectRatio} from '@sphereon/ui-components.core';
+import React, {FC} from 'react';
+import FastImage from 'react-native-fast-image';
+ 
+import {
+  SSIImageFieldContainerStyled as Container,
+  SSIImageFieldContentContainerStyled as ContentContainer,
+  SSIImageFieldHeaderContainerStyled as HeaderContainer,
+  SSITextH5LightStyled as HeaderLabel,
+} from '../../../styles/components';
+import {ICredentialDetailsRow} from '../../../types';
+ 
+export interface IProps {
+  item: ICredentialDetailsRow;
+  index?: number;
+}
+ 
+// TODO refactor whole component when we start using images more
+const SSIImageField: FC<IProps> = (props: IProps): JSX.Element => {
+  const {item, index} = props;
+  // TODO fix non-null assertion
+  const aspectRatio: number = calculateAspectRatio(item.imageSize!.width, item.imageSize!.height);
+  return (
+    <Container key={item.id} style={{marginTop: index === 0 ? 16 : 10}}>
+      <HeaderContainer style={{marginBottom: 4}}>
+        <HeaderLabel>{item.label}</HeaderLabel>
+      </HeaderContainer>
+      <ContentContainer
+        style={{
+          aspectRatio,
+          height: 150,
+        }}>
+        <FastImage
+          source={{uri: item.value}}
+          style={{
+            aspectRatio,
+            height: 130,
+          }}
+          resizeMode="contain"
+        />
+      </ContentContainer>
+    </Container>
+  );
+};
+ 
+export default SSIImageField;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/fields/SSITextField/index.html b/coverage/lcov-report/components/fields/SSITextField/index.html new file mode 100644 index 00000000..66f9cc84 --- /dev/null +++ b/coverage/lcov-report/components/fields/SSITextField/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/fields/SSITextField + + + + + + + + + +
+
+

All files components/fields/SSITextField

+
+
+ 100% + Statements + 3/3 +
+ +
+ 66.66% + Branches + 4/6 +
+ +
+ 100% + Functions + 1/1 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
100%3/366.66%4/6100%1/1100%3/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/fields/SSITextField/index.tsx.html b/coverage/lcov-report/components/fields/SSITextField/index.tsx.html new file mode 100644 index 00000000..f31ce219 --- /dev/null +++ b/coverage/lcov-report/components/fields/SSITextField/index.tsx.html @@ -0,0 +1,225 @@ + + + + Code coverage report for components/fields/SSITextField/index.tsx + + + + + + + + + +
+
+

All files / components/fields/SSITextField index.tsx

+
+
+ 100% + Statements + 3/3 +
+ +
+ 66.66% + Branches + 4/6 +
+ +
+ 100% + Functions + 1/1 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +12x +  +12x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+ 
+import SSIEditIcon from '../../../components/assets/icons/SSIEditIcon';
+import {
+  SSITextFieldContainerStyled as Container,
+  SSITextFieldContentBadgeContainerStyled as ContentBadgeContainer,
+  SSIFlexDirectionRowViewStyled as ContentContainer,
+  SSITextFieldContentTextStyled as ContentText,
+  SSITextFieldEditBadgeContainerStyled as EditBadgeContainer,
+  SSITextFieldHeaderContainerStyled as HeaderContainer,
+  SSITextH5LightStyled as HeaderLabel,
+  SSITextFieldStatusLabelContainerStyled as StatusLabelContainer,
+} from '../../../styles/components';
+import {ICredentialDetailsRow} from '../../../types';
+import {SSIStatusLabel} from '@sphereon/ui-components.ssi-react-native';
+ 
+export interface IProps {
+  item: ICredentialDetailsRow;
+  index?: number;
+}
+ 
+const SSITextField: FC<IProps> = (props: IProps): JSX.Element => {
+  const {item, index} = props;
+ 
+  return (
+    <Container key={item.id} style={{marginTop: index === 0 ? 16 : 10}}>
+      <HeaderContainer>
+        <HeaderLabel>{item.label}</HeaderLabel>
+        {item.status && (
+          <StatusLabelContainer>
+            <SSIStatusLabel status={item.status} showIcon />
+          </StatusLabelContainer>
+        )}
+      </HeaderContainer>
+      <ContentContainer>
+        <ContentBadgeContainer>
+          {item.isEditable && (
+            <EditBadgeContainer>
+              <SSIEditIcon />
+            </EditBadgeContainer>
+          )}
+        </ContentBadgeContainer>
+        <ContentText>{item.value}</ContentText>
+      </ContentContainer>
+    </Container>
+  );
+};
+ 
+export default SSITextField;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/fields/SSITextInputField/index.html b/coverage/lcov-report/components/fields/SSITextInputField/index.html new file mode 100644 index 00000000..40d9c50f --- /dev/null +++ b/coverage/lcov-report/components/fields/SSITextInputField/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/fields/SSITextInputField + + + + + + + + + +
+
+

All files components/fields/SSITextInputField

+
+
+ 43.47% + Statements + 10/23 +
+ +
+ 47.16% + Branches + 25/53 +
+ +
+ 11.11% + Functions + 1/9 +
+ +
+ 43.47% + Lines + 10/23 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
43.47%10/2347.16%25/5311.11%1/943.47%10/23
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/fields/SSITextInputField/index.tsx.html b/coverage/lcov-report/components/fields/SSITextInputField/index.tsx.html new file mode 100644 index 00000000..7cba4300 --- /dev/null +++ b/coverage/lcov-report/components/fields/SSITextInputField/index.tsx.html @@ -0,0 +1,672 @@ + + + + Code coverage report for components/fields/SSITextInputField/index.tsx + + + + + + + + + +
+
+

All files / components/fields/SSITextInputField index.tsx

+
+
+ 43.47% + Statements + 10/23 +
+ +
+ 47.16% + Branches + 25/53 +
+ +
+ 11.11% + Functions + 1/9 +
+ +
+ 43.47% + Lines + 10/23 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +45x +  +45x +45x +45x +  +45x +  +  +  +  +  +  +  +  +45x +  +  +  +  +  +  +  +45x +  +  +  +45x +  +  +  +  +  +  +45x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {ColorValue, KeyboardTypeOptions, NativeSyntheticEvent, TextInputEndEditingEventData} from 'react-native';
+ 
+import {inputs, selectionElements, statuses} from '../../../styles/colors';
+import {
+  SSITextInputFieldContainerStyled as Container,
+  SSITextInputFieldHelperContainerStyled as HelperContainer,
+  SSITextInputFieldIconContainerStyled as IconContainer,
+  SSIFlexDirectionRowViewStyled as InputContainer,
+  SSITextH5Styled as LabelCaption,
+  SSITextFieldLinearTextGradientStyled as LinearTextGradient,
+  SSITextInputFieldTextInputStyled as TextInput,
+  SSITextInputFieldUnderlineStyled as Underline,
+  SSITextInputFieldUnderlineLinearGradientStyled as UnderlineLinearGradient,
+} from '../../../styles/components';
+import {OpacityStyleEnum} from '../../../types';
+import SSIEyeIcon from '../../assets/icons/SSIEyeIcon';
+ 
+export interface IProps {
+  autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters' | undefined;
+  autoFocus?: boolean;
+  autoComplete?:
+    | 'birthdate-day'
+    | 'birthdate-full'
+    | 'birthdate-month'
+    | 'birthdate-year'
+    | 'cc-csc'
+    | 'cc-exp'
+    | 'cc-exp-day'
+    | 'cc-exp-month'
+    | 'cc-exp-year'
+    | 'cc-number'
+    | 'email'
+    | 'gender'
+    | 'name'
+    | 'name-family'
+    | 'name-given'
+    | 'name-middle'
+    | 'name-middle-initial'
+    | 'name-prefix'
+    | 'name-suffix'
+    | 'password'
+    | 'password-new'
+    | 'postal-address'
+    | 'postal-address-country'
+    | 'postal-address-extended'
+    | 'postal-address-extended-postal-code'
+    | 'postal-address-locality'
+    | 'postal-address-region'
+    | 'postal-code'
+    | 'street-address'
+    | 'sms-otp'
+    | 'tel'
+    | 'tel-country-code'
+    | 'tel-national'
+    | 'tel-device'
+    | 'username'
+    | 'username-new'
+    | 'off'
+    | undefined;
+  borderColor?: ColorValue;
+  disabled?: boolean;
+  editable?: boolean;
+  helperText?: string;
+  initialValue?: string;
+  label?: string;
+  labelColor?: ColorValue;
+  keyboardType?: KeyboardTypeOptions | undefined;
+  maxLength?: number;
+  onChangeText?: (value: string) => Promise<void>;
+  onEndEditing?: (value: string) => Promise<void>;
+  onFocus?: () => Promise<void>;
+  placeholderValue?: string;
+  secureTextEntry?: boolean;
+  showBorder?: boolean;
+}
+ 
+const SSITextInputField: FC<IProps> = (props: IProps): JSX.Element => {
+  const {
+    autoCapitalize = undefined,
+    autoComplete,
+    autoFocus = false,
+    borderColor = selectionElements.primaryBorderDark,
+    disabled = false,
+    editable = true,
+    helperText,
+    initialValue,
+    label,
+    labelColor,
+    keyboardType = undefined,
+    maxLength,
+    onChangeText,
+    onEndEditing,
+    onFocus,
+    placeholderValue,
+    secureTextEntry = false,
+    showBorder = true,
+  } = props;
+ 
+  const [value, setValue] = React.useState(initialValue);
+  const [error, setError] = React.useState<string>();
+  const [hasFocus, setHasFocus] = React.useState(false);
+ 
+  const onChange = async (value: string): Promise<void> => {
+    setValue(value);
+    if (onChangeText) {
+      onChangeText(value)
+        .then(() => setError(undefined))
+        .catch((error: Error) => setError(error.message));
+    }
+  };
+ 
+  const onEditingEnd = async (event: NativeSyntheticEvent<TextInputEndEditingEventData>): Promise<void> => {
+    if (onEndEditing) {
+      onEndEditing(event.nativeEvent.text)
+        .then(() => setError(undefined))
+        .catch((error: Error) => setError(error.message));
+    }
+  };
+ 
+  const onBlur = async (): Promise<void> => {
+    setHasFocus(false);
+  };
+ 
+  const _onFocus = async (): Promise<void> => {
+    setHasFocus(true);
+    if (onFocus) {
+      await onFocus();
+    }
+  };
+ 
+  return (
+    <Container>
+      {label ? (
+        labelColor || error ? (
+          <LabelCaption
+            style={{
+              color: error ? statuses.error : labelColor,
+              ...(disabled && {opacity: OpacityStyleEnum.DISABLED}),
+            }}>
+            {label}
+          </LabelCaption>
+        ) : (
+          <LinearTextGradient style={{...(disabled && {opacity: OpacityStyleEnum.DISABLED})}}>
+            <LabelCaption>{label}</LabelCaption>
+          </LinearTextGradient>
+        )
+      ) : null}
+      <InputContainer>
+        <TextInput
+          secureTextEntry={secureTextEntry}
+          autoComplete={autoComplete}
+          autoCapitalize={autoCapitalize}
+          autoFocus={autoFocus}
+          editable={editable && !disabled}
+          keyboardType={keyboardType}
+          placeholder={placeholderValue}
+          maxLength={maxLength}
+          onBlur={onBlur}
+          onChangeText={onChange}
+          onEndEditing={onEditingEnd}
+          onFocus={_onFocus}
+          value={value}
+          style={{...(disabled && {opacity: OpacityStyleEnum.DISABLED})}}
+        />
+        {secureTextEntry && (
+          // TODO pressing the icon should reveal the input. Will be implemented when we start using this for sensitive data etc
+          <IconContainer style={{...(disabled && {opacity: OpacityStyleEnum.DISABLED})}}>
+            <SSIEyeIcon />
+          </IconContainer>
+        )}
+      </InputContainer>
+      {hasFocus && !error ? (
+        <UnderlineLinearGradient />
+      ) : (
+        <Underline
+          style={{
+            ...(showBorder && {borderBottomWidth: 1, borderBottomColor: error ? statuses.error : borderColor}),
+            ...(disabled && {opacity: OpacityStyleEnum.DISABLED}),
+          }}
+        />
+      )}
+      <HelperContainer>
+        {(helperText || error) && (
+          <LabelCaption
+            style={{
+              color: error ? statuses.error : inputs.placeholder,
+              ...(disabled && {opacity: OpacityStyleEnum.DISABLED}),
+            }}>
+            {error ? error : helperText}
+          </LabelCaption>
+        )}
+      </HelperContainer>
+    </Container>
+  );
+};
+ 
+export default SSITextInputField;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/indicators/SSIProgressIndicator/index.html b/coverage/lcov-report/components/indicators/SSIProgressIndicator/index.html new file mode 100644 index 00000000..6924d65d --- /dev/null +++ b/coverage/lcov-report/components/indicators/SSIProgressIndicator/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/indicators/SSIProgressIndicator + + + + + + + + + +
+
+

All files components/indicators/SSIProgressIndicator

+
+
+ 91.66% + Statements + 11/12 +
+ +
+ 87.5% + Branches + 7/8 +
+ +
+ 100% + Functions + 1/1 +
+ +
+ 90.9% + Lines + 10/11 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
91.66%11/1287.5%7/8100%1/190.9%10/11
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/indicators/SSIProgressIndicator/index.tsx.html b/coverage/lcov-report/components/indicators/SSIProgressIndicator/index.tsx.html new file mode 100644 index 00000000..34ff4849 --- /dev/null +++ b/coverage/lcov-report/components/indicators/SSIProgressIndicator/index.tsx.html @@ -0,0 +1,174 @@ + + + + Code coverage report for components/indicators/SSIProgressIndicator/index.tsx + + + + + + + + + +
+
+

All files / components/indicators/SSIProgressIndicator index.tsx

+
+
+ 91.66% + Statements + 11/12 +
+ +
+ 87.5% + Branches + 7/8 +
+ +
+ 100% + Functions + 1/1 +
+ +
+ 90.9% + Lines + 10/11 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33  +  +  +  +  +1x +  +  +  +  +  +  +1x +14x +  +14x +  +  +  +14x +14x +42x +14x +  +28x +  +  +  +14x +  +  +  + 
import React, {FC} from 'react';
+ 
+import {SSIProgressIndicatorLinearGradientSegment as LinearGradientSegment, SSIProgressIndicatorSegment as Segment} from '../../../styles/components';
+import {SSIFlexDirectionRowViewStyled as Container} from '../../../styles/components';
+ 
+const {v4: uuidv4} = require('uuid');
+ 
+export interface IProps {
+  step: number;
+  maxSteps: number;
+}
+ 
+const SSIProgressIndicator: FC<IProps> = (props: IProps): JSX.Element => {
+  const {step, maxSteps} = props;
+ 
+  Iif (step > maxSteps) {
+    throw new Error('step exceeds max steps');
+  }
+ 
+  const segments = [];
+  for (let i = 1; i <= maxSteps; i++) {
+    if (i === step) {
+      segments.push(<LinearGradientSegment key={uuidv4()} style={{marginRight: i < maxSteps ? 16 : 0}} />);
+    } else {
+      segments.push(<Segment key={uuidv4()} style={{marginRight: i < maxSteps ? 16 : 0}} />);
+    }
+  }
+ 
+  return <Container>{segments}</Container>;
+};
+ 
+export default SSIProgressIndicator;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/messageBoxes/alerts/SSIAlert/index.html b/coverage/lcov-report/components/messageBoxes/alerts/SSIAlert/index.html new file mode 100644 index 00000000..ee8a2563 --- /dev/null +++ b/coverage/lcov-report/components/messageBoxes/alerts/SSIAlert/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/messageBoxes/alerts/SSIAlert + + + + + + + + + +
+
+

All files components/messageBoxes/alerts/SSIAlert

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/2 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
33.33%1/30%0/20%0/233.33%1/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/messageBoxes/alerts/SSIAlert/index.tsx.html b/coverage/lcov-report/components/messageBoxes/alerts/SSIAlert/index.tsx.html new file mode 100644 index 00000000..d5dbac7f --- /dev/null +++ b/coverage/lcov-report/components/messageBoxes/alerts/SSIAlert/index.tsx.html @@ -0,0 +1,189 @@ + + + + Code coverage report for components/messageBoxes/alerts/SSIAlert/index.tsx + + + + + + + + + +
+
+

All files / components/messageBoxes/alerts/SSIAlert index.tsx

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/2 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+ 
+import {
+  SSIAlertButtonStyled as Button,
+  SSITextH2DarkStyled as ButtonCaption,
+  SSIAlertButtonContainerStyled as ButtonContainer,
+  SSIAlertContainerStyled as Container,
+  SSIAlertMessageContainerStyled as MessageContainer,
+  SSIAlertMessageTextStyled as MessageText,
+} from '../../../../styles/components';
+import {IButton} from '../../../../types';
+ 
+export interface IProps {
+  message: string;
+  buttons: Array<IButton>;
+}
+ 
+const SSIAlert: FC<IProps> = (props: IProps): JSX.Element => {
+  return (
+    <Container>
+      <MessageContainer>
+        <MessageText>{props.message}</MessageText>
+      </MessageContainer>
+      {props.buttons && (
+        <ButtonContainer>
+          {props.buttons.map((button: IButton, index: number) => (
+            <Button key={index} onPress={button.onPress}>
+              <ButtonCaption>{button.caption}</ButtonCaption>
+            </Button>
+          ))}
+        </ButtonContainer>
+      )}
+    </Container>
+  );
+};
+ 
+export default SSIAlert;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/messageBoxes/popups/SSIPopup/index.html b/coverage/lcov-report/components/messageBoxes/popups/SSIPopup/index.html new file mode 100644 index 00000000..1e99ddda --- /dev/null +++ b/coverage/lcov-report/components/messageBoxes/popups/SSIPopup/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/messageBoxes/popups/SSIPopup + + + + + + + + + +
+
+

All files components/messageBoxes/popups/SSIPopup

+
+
+ 23.07% + Statements + 3/13 +
+ +
+ 0% + Branches + 0/40 +
+ +
+ 0% + Functions + 0/3 +
+ +
+ 23.07% + Lines + 3/13 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
23.07%3/130%0/400%0/323.07%3/13
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/messageBoxes/popups/SSIPopup/index.tsx.html b/coverage/lcov-report/components/messageBoxes/popups/SSIPopup/index.tsx.html new file mode 100644 index 00000000..7bef6867 --- /dev/null +++ b/coverage/lcov-report/components/messageBoxes/popups/SSIPopup/index.tsx.html @@ -0,0 +1,453 @@ + + + + Code coverage report for components/messageBoxes/popups/SSIPopup/index.tsx + + + + + + + + + +
+
+

All files / components/messageBoxes/popups/SSIPopup index.tsx

+
+
+ 23.07% + Statements + 3/13 +
+ +
+ 0% + Branches + 0/40 +
+ +
+ 0% + Functions + 0/3 +
+ +
+ 23.07% + Lines + 3/13 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {TouchableOpacity, View} from 'react-native';
+ 
+import SSISecurityImage from '../../../../components/assets/images/SSISecurityImage';
+import SSIWarningImage from '../../../../components/assets/images/SSIWarningImage';
+import {backgrounds, fonts} from '../../../../styles/colors';
+import {
+  SSIPopupButtonsContainerStyled as ButtonsContainer,
+  SSIPopupCloseButtonContainerStyled as CloseButtonContainer,
+  SSIPopupContainerStyled as Container,
+  SSIPopupContentContainerStyled as ContentContainer,
+  SSIPopupDetailsButtonContainerStyled as DetailsButtonContainer,
+  SSIPopupDetailsButtonTextStyled as DetailsButtonText,
+  SSIPopupDetailsTextStyled as DetailsText,
+  SSIPopupExtraDetailsTextStyled as ExtraDetailsText,
+  SSIPopupHeaderContainerStyled as HeaderContainer,
+  SSIPopupImageContainerStyled as ImageContainer,
+  SSICheckmarkBadgeStyled as SSICheckmarkBadge,
+  SSIExclamationMarkBadgeStyled as SSIExclamationMarkBadge,
+  SSIPopupTitleBadgeContainerStyled as TitleBadgeContainer,
+  SSIPopupTitleContainerStyled as TitleContainer,
+} from '../../../../styles/components';
+import {SSITextH2SemiBoldStyled as TitleCaption} from '../../../../styles/components';
+import {ButtonIconsEnum, IButton, PopupBadgesEnum, PopupImagesEnum} from '../../../../types';
+import {parseTextToElement} from '../../../../utils/TextUtils';
+import SSIIconButton from '../../../buttons/SSIIconButton';
+import SSIPrimaryButton from '../../../buttons/SSIPrimaryButton';
+import SSISecondaryButton from '../../../buttons/SSISecondaryButton';
+ 
+export interface IProps {
+  onClose?: () => Promise<void>;
+  image?: PopupImagesEnum;
+  title?: string;
+  titleBadge?: PopupBadgesEnum;
+  details?: string;
+  extraDetails?: string;
+  detailsButton?: IButton;
+  primaryButton?: IButton;
+  secondaryButton?: IButton;
+  darkMode?: boolean;
+}
+ 
+const SSIPopup: FC<IProps> = (props: IProps): JSX.Element => {
+  const {onClose, image, title, titleBadge, details, extraDetails, detailsButton, primaryButton, secondaryButton, darkMode = false} = props;
+ 
+  return (
+    <Container style={{backgroundColor: darkMode ? backgrounds.primaryDark : backgrounds.primaryLight}}>
+      <HeaderContainer>
+        {onClose && (
+          <CloseButtonContainer>
+            <SSIIconButton icon={ButtonIconsEnum.CLOSE} iconColor={darkMode ? fonts.light : undefined} onPress={onClose} />
+          </CloseButtonContainer>
+        )}
+      </HeaderContainer>
+      {image && <ImageContainer>{getImage(image)}</ImageContainer>}
+      <ContentContainer>
+        {title && (
+          <TitleContainer>
+            {titleBadge && <TitleBadgeContainer>{getBadge(titleBadge)}</TitleBadgeContainer>}
+            <TitleCaption style={{color: darkMode ? fonts.light : undefined}}>{title}</TitleCaption>
+          </TitleContainer>
+        )}
+        {details && <DetailsText style={{color: darkMode ? fonts.light : undefined}}>{parseTextToElement(details)}</DetailsText>}
+        {extraDetails && <ExtraDetailsText>{parseTextToElement(extraDetails)}</ExtraDetailsText>}
+        {detailsButton && (
+          <DetailsButtonContainer>
+            <TouchableOpacity onPress={detailsButton.onPress}>
+              <DetailsButtonText>{detailsButton.caption}</DetailsButtonText>
+            </TouchableOpacity>
+          </DetailsButtonContainer>
+        )}
+      </ContentContainer>
+      {/* TODO we use this 2 button structure a lot, we should make a component out of it */}
+      {(primaryButton || secondaryButton) && (
+        <ButtonsContainer>
+          {secondaryButton && (
+            <SSISecondaryButton
+              style={{
+                height: 42,
+                minWidth: 160,
+                backgroundColor: backgrounds.primaryLight,
+                // Scales the button based on presence of other button
+                width: primaryButton ? undefined : '100%',
+              }}
+              title={secondaryButton.caption}
+              onPress={secondaryButton.onPress}
+            />
+          )}
+          {primaryButton && (
+            <SSIPrimaryButton
+              // Scales the button based on presence of other button
+              style={{height: 42, minWidth: 160, width: secondaryButton ? undefined : '100%'}}
+              title={primaryButton.caption}
+              onPress={primaryButton.onPress}
+            />
+          )}
+        </ButtonsContainer>
+      )}
+    </Container>
+  );
+};
+ 
+const getBadge = (badge: PopupBadgesEnum): JSX.Element => {
+  switch (badge) {
+    case PopupBadgesEnum.CHECK_MARK:
+      return <SSICheckmarkBadge />;
+    case PopupBadgesEnum.EXCLAMATION_MARK:
+      return <SSIExclamationMarkBadge />;
+    default:
+      return <View />;
+  }
+};
+ 
+const getImage = (image: PopupImagesEnum): JSX.Element => {
+  switch (image) {
+    case PopupImagesEnum.SECURITY:
+      return <SSISecurityImage />;
+    case PopupImagesEnum.WARNING:
+      return <SSIWarningImage />;
+    default:
+      return <View />;
+  }
+};
+ 
+export default SSIPopup;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/messageBoxes/toasts/SSIToast/index.html b/coverage/lcov-report/components/messageBoxes/toasts/SSIToast/index.html new file mode 100644 index 00000000..3e6a525e --- /dev/null +++ b/coverage/lcov-report/components/messageBoxes/toasts/SSIToast/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/messageBoxes/toasts/SSIToast + + + + + + + + + +
+
+

All files components/messageBoxes/toasts/SSIToast

+
+
+ 25% + Statements + 2/8 +
+ +
+ 0% + Branches + 0/15 +
+ +
+ 0% + Functions + 0/2 +
+ +
+ 25% + Lines + 2/8 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
25%2/80%0/150%0/225%2/8
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/messageBoxes/toasts/SSIToast/index.tsx.html b/coverage/lcov-report/components/messageBoxes/toasts/SSIToast/index.tsx.html new file mode 100644 index 00000000..3cfe911b --- /dev/null +++ b/coverage/lcov-report/components/messageBoxes/toasts/SSIToast/index.tsx.html @@ -0,0 +1,225 @@ + + + + Code coverage report for components/messageBoxes/toasts/SSIToast/index.tsx + + + + + + + + + +
+
+

All files / components/messageBoxes/toasts/SSIToast index.tsx

+
+
+ 25% + Statements + 2/8 +
+ +
+ 0% + Branches + 0/15 +
+ +
+ 0% + Functions + 0/2 +
+ +
+ 25% + Lines + 2/8 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {View} from 'react-native';
+ 
+import {
+  SSIToastMessageCaptionStyled as MessageCaption,
+  SSIFlexDirectionRowViewStyled as MessageContainer,
+  SSITextH2SemiBoldStyled as TitleCaption,
+  SSIToastTitleContainerStyled as TitleContainer,
+  SSIToastBadgeContainerStyled as ToastBadgeContainer,
+  SSIToastContainerStyled as ToastContainer,
+} from '../../../../styles/components';
+import {IToastConfigParams, ToastTypeEnum} from '../../../../types';
+import {SSICheckmarkBadge, SSIExclamationMarkBadge} from '@sphereon/ui-components.ssi-react-native';
+ 
+export interface IProps extends IToastConfigParams {
+  type: ToastTypeEnum;
+}
+ 
+const getBadge = (type: ToastTypeEnum) => {
+  switch (type) {
+    case ToastTypeEnum.TOAST_SUCCESS:
+      return <SSICheckmarkBadge />;
+    case ToastTypeEnum.TOAST_ERROR:
+      return <SSIExclamationMarkBadge />;
+    default:
+      return <View />;
+  }
+};
+ 
+const SSIToast: FC<IProps> = (props: IProps): JSX.Element => {
+  const {type, title, message, showBadge = true} = props;
+ 
+  return (
+    <ToastContainer>
+      {title && (
+        <TitleContainer>
+          {showBadge && <ToastBadgeContainer>{getBadge(type)}</ToastBadgeContainer>}
+          <TitleCaption>{title}</TitleCaption>
+        </TitleContainer>
+      )}
+      <MessageContainer>
+        {!title && showBadge && <ToastBadgeContainer>{getBadge(type)}</ToastBadgeContainer>}
+        {message && <MessageCaption style={{textAlign: showBadge ? undefined : 'center'}}>{message}</MessageCaption>}
+      </MessageContainer>
+    </ToastContainer>
+  );
+};
+ 
+export default SSIToast;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/pinCodes/SSIPinCode/index.html b/coverage/lcov-report/components/pinCodes/SSIPinCode/index.html new file mode 100644 index 00000000..449f800b --- /dev/null +++ b/coverage/lcov-report/components/pinCodes/SSIPinCode/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/pinCodes/SSIPinCode + + + + + + + + + +
+
+

All files components/pinCodes/SSIPinCode

+
+
+ 56.52% + Statements + 39/69 +
+ +
+ 35% + Branches + 14/40 +
+ +
+ 69.23% + Functions + 9/13 +
+ +
+ 55.22% + Lines + 37/67 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
56.52%39/6935%14/4069.23%9/1355.22%37/67
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/pinCodes/SSIPinCode/index.tsx.html b/coverage/lcov-report/components/pinCodes/SSIPinCode/index.tsx.html new file mode 100644 index 00000000..a5b49f89 --- /dev/null +++ b/coverage/lcov-report/components/pinCodes/SSIPinCode/index.tsx.html @@ -0,0 +1,747 @@ + + + + Code coverage report for components/pinCodes/SSIPinCode/index.tsx + + + + + + + + + +
+
+

All files / components/pinCodes/SSIPinCode index.tsx

+
+
+ 56.52% + Statements + 39/69 +
+ +
+ 35% + Branches + 14/40 +
+ +
+ 69.23% + Functions + 9/13 +
+ +
+ 55.22% + Lines + 37/67 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +9x +  +  +  +  +  +  +  +  +  +  +  +9x +1x +  +1x +1x +1x +  +5x +  +1x +  +  +  +  +1x +  +  +  +  +  +  +  +9x +9x +  +9x +8x +  +  +  +9x +1x +1x +1x +1x +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +9x +  +  +  +  +  +  +  +  +9x +  +  +  +  +  +  +  +  +9x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +9x +9x +  +9x +9x +  +  +  +  +  +  +9x +18x +  +  +  +19x +19x +  +19x +  +  +  +  +  +  +19x +19x +114x +  +  +  +  +  +  +  +  +  +  +  +19x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {PureComponent} from 'react';
+import {Animated, TextInput, TouchableOpacity, View} from 'react-native';
+ 
+import {ONLY_ALLOW_NUMBERS_REGEX} from '../../../@config/constants';
+import {translate} from '../../../localization/Localization';
+import {backgrounds, statuses} from '../../../styles/colors';
+import {
+  SSIPinCodeAttemptsLeftTextStyled as AttemptsLeftText,
+  SSIPinCodeContainerStyled as Container,
+  SSIPinCodeErrorMessageTextStyled as ErrorMessageText,
+  SSIPinCodeContainerAnimatedStyled as SegmentsContainer,
+} from '../../../styles/components';
+import SSIPinCodeSegment from '../SSIPinCodeSegment';
+ 
+const {v4: uuidv4} = require('uuid');
+ 
+interface IProps {
+  length?: number;
+  maxRetries?: number;
+  secureCode?: boolean;
+  accessibilityLabel?: string;
+  accessibilityHint?: string;
+  errorMessage?: string;
+  onMaxRetriesExceeded?: () => Promise<void>;
+  onVerification: (value: string) => Promise<void>;
+}
+ 
+interface IState {
+  length: number;
+  maxRetries: number | undefined;
+  pin: string;
+  retry: number;
+  inputRef: TextInput | null;
+  secureCode: boolean;
+  shakeAnimation: any; // TODO fix type
+  colorShiftAnimation: any; // TODO fix type
+  showErrorMessage: boolean;
+}
+ 
+class SSIPinCode extends PureComponent<IProps, IState> {
+  state: IState = {
+    inputRef: null,
+    length: this.props.length || 4,
+    maxRetries: this.props.maxRetries,
+    pin: '',
+    retry: 0,
+    secureCode: this.props.secureCode || true,
+    shakeAnimation: new Animated.Value(0),
+    colorShiftAnimation: new Animated.Value(0),
+    showErrorMessage: false,
+  };
+ 
+  failureAnimation = (): void => {
+    const {colorShiftAnimation, shakeAnimation} = this.state;
+ 
+    const values = [10, -7.5, 5, -2.5, 0];
+    const shakeDuration = 100;
+    const colorShiftDuration = 100;
+ 
+    Animated.sequence(values.map(toValue => Animated.timing(shakeAnimation, {toValue, duration: shakeDuration, useNativeDriver: false}))).start();
+ 
+    Animated.timing(colorShiftAnimation, {
+      toValue: 1,
+      duration: colorShiftDuration,
+      useNativeDriver: false,
+    }).start(() => {
+      Animated.timing(colorShiftAnimation, {
+        toValue: 0,
+        duration: colorShiftDuration,
+        useNativeDriver: false,
+      }).start();
+    });
+  };
+ 
+  submit = (value: string): void => {
+    const {onVerification} = this.props;
+ 
+    onVerification(value)
+      .then(() => this.setState({retry: 0}))
+      .catch(this.onVerificationFailed);
+  };
+ 
+  onVerificationFailed = async (): Promise<void> => {
+    const {onMaxRetriesExceeded} = this.props;
+    const {retry, maxRetries} = this.state;
+    Eif (!maxRetries) {
+      this.setState({pin: '', showErrorMessage: true});
+      this.failureAnimation();
+      return;
+    }
+ 
+    const retries = retry + 1;
+    if (retries >= maxRetries) {
+      this.hideKeyboard().then(() => {
+        this.setState({retry: 0, pin: ''});
+        if (onMaxRetriesExceeded) {
+          onMaxRetriesExceeded();
+        }
+      });
+    } else {
+      this.failureAnimation();
+      this.setState({retry: retries, pin: '', showErrorMessage: true});
+    }
+  };
+ 
+  setInputFocus = (): void => {
+    const {inputRef} = this.state;
+ 
+    if (inputRef !== null) {
+      inputRef.blur();
+      inputRef.focus();
+    }
+  };
+ 
+  hideKeyboard = async (): Promise<void> => {
+    const {inputRef} = this.state;
+ 
+    if (inputRef !== null) {
+      inputRef.focus();
+      inputRef.blur();
+    }
+  };
+ 
+  onKeyPressInput = async ({nativeEvent: {key}}: {nativeEvent: {key: string}}): Promise<void> => {
+    const {length, pin} = this.state;
+    if (pin.length < length) {
+      switch (key) {
+        case 'Backspace':
+          if (pin.length > 0) {
+            this.setState({
+              pin: pin.slice(0, -1),
+            });
+          }
+          return;
+        default: {
+          if (!ONLY_ALLOW_NUMBERS_REGEX.test(key)) {
+            return;
+          }
+ 
+          const value = pin.concat(key);
+ 
+          this.setState({
+            pin: value,
+            // We only want to hide the message if a valid key has been pressed
+            showErrorMessage: value === pin,
+          });
+ 
+          if (value.length >= length) {
+            this.submit(value);
+          }
+        }
+      }
+    }
+  };
+ 
+  onSubmitEditing = async (event: {nativeEvent: {text: string}}): Promise<void> => {
+    const {length} = this.state;
+ 
+    if (event.nativeEvent.text.length >= length) {
+      this.submit(event.nativeEvent.text);
+    } else E{
+      this.failureAnimation();
+      this.setInputFocus();
+    }
+  };
+ 
+  onRef = async (input: TextInput | null): Promise<void> => {
+    this.setState({inputRef: input});
+  };
+ 
+  render() {
+    const {accessibilityLabel, accessibilityHint, errorMessage} = this.props;
+    const {pin, length, shakeAnimation, colorShiftAnimation, secureCode, maxRetries, retry, showErrorMessage} = this.state;
+ 
+    const colorShiftAnimationStyle = {
+      backgroundColor: colorShiftAnimation.interpolate({
+        inputRange: [0, 1],
+        outputRange: [backgrounds.primaryLight, statuses.error],
+      }),
+    };
+ 
+    const segments = [];
+    for (let i = 0; i < length; i++) {
+      segments.push(
+        <View key={uuidv4()} style={{marginRight: i === length - 1 ? 0 : 12}}>
+          <SSIPinCodeSegment
+            value={secureCode ? (pin.length === i + 1 ? pin.charAt(i) : i >= pin.length ? '' : '*') : pin.charAt(i)}
+            isCurrent={pin.length === i}
+            style={colorShiftAnimationStyle}
+          />
+        </View>,
+      );
+    }
+ 
+    // TODO remove TouchableOpacity once we have a stable keyboard that does not hide
+    return (
+      <TouchableOpacity activeOpacity={1} onPress={this.setInputFocus}>
+        <Container>
+          <SegmentsContainer style={{left: shakeAnimation}}>{segments}</SegmentsContainer>
+          {errorMessage && showErrorMessage && <ErrorMessageText>{errorMessage}</ErrorMessageText>}
+          {maxRetries && retry > 0 && <AttemptsLeftText>{`${translate('pin_code_attempts_left_message')} ${maxRetries - retry}`}</AttemptsLeftText>}
+          <TextInput
+            ref={this.onRef}
+            style={{display: 'none'}}
+            accessible
+            accessibilityLabel={accessibilityLabel}
+            accessibilityHint={accessibilityHint}
+            accessibilityRole={'text'}
+            keyboardType={'number-pad'}
+            autoFocus
+            caretHidden
+            maxLength={length}
+            onKeyPress={this.onKeyPressInput}
+            value={pin}
+            onSubmitEditing={this.onSubmitEditing}
+          />
+        </Container>
+      </TouchableOpacity>
+    );
+  }
+}
+ 
+export default SSIPinCode;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/pinCodes/SSIPinCodeSegment/index.html b/coverage/lcov-report/components/pinCodes/SSIPinCodeSegment/index.html new file mode 100644 index 00000000..d0424293 --- /dev/null +++ b/coverage/lcov-report/components/pinCodes/SSIPinCodeSegment/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/pinCodes/SSIPinCodeSegment + + + + + + + + + +
+
+

All files components/pinCodes/SSIPinCodeSegment

+
+
+ 100% + Statements + 3/3 +
+ +
+ 83.33% + Branches + 5/6 +
+ +
+ 100% + Functions + 1/1 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
100%3/383.33%5/6100%1/1100%3/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/pinCodes/SSIPinCodeSegment/index.tsx.html b/coverage/lcov-report/components/pinCodes/SSIPinCodeSegment/index.tsx.html new file mode 100644 index 00000000..702ee20c --- /dev/null +++ b/coverage/lcov-report/components/pinCodes/SSIPinCodeSegment/index.tsx.html @@ -0,0 +1,171 @@ + + + + Code coverage report for components/pinCodes/SSIPinCodeSegment/index.tsx + + + + + + + + + +
+
+

All files / components/pinCodes/SSIPinCodeSegment index.tsx

+
+
+ 100% + Statements + 3/3 +
+ +
+ 83.33% + Branches + 5/6 +
+ +
+ 100% + Functions + 1/1 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +114x +114x +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {View, ViewStyle} from 'react-native';
+ 
+import {backgrounds} from '../../../styles/colors';
+import {
+  SSIPinCodeSegmentUnderlineAnimatedStyled as AnimatedUnderline,
+  SSIPinCodeSegmentUnderlineLinearGradientStyled as LinearGradientUnderline,
+  SSIPinCodeSegmentTextStyled as SegmentText,
+  SSIPinCodeSegmentTextContainerStyled as TextContainer,
+} from '../../../styles/components';
+ 
+export interface IProps {
+  value: string;
+  isCurrent: boolean;
+  style?: ViewStyle;
+}
+ 
+const SSIPinCodeSegment: FC<IProps> = (props: IProps): JSX.Element => {
+  const segmentStyle = props.style ? props.style : {backgroundColor: backgrounds.primaryLight};
+  return (
+    <View>
+      <TextContainer>
+        <SegmentText>{props.value}</SegmentText>
+      </TextContainer>
+      {props.isCurrent && <LinearGradientUnderline />}
+      {!props.isCurrent && <AnimatedUnderline style={{...segmentStyle}} />}
+    </View>
+  );
+};
+ 
+export default SSIPinCodeSegment;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/qrCodes/SSIQRCustomMarker/index.html b/coverage/lcov-report/components/qrCodes/SSIQRCustomMarker/index.html new file mode 100644 index 00000000..74c16622 --- /dev/null +++ b/coverage/lcov-report/components/qrCodes/SSIQRCustomMarker/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/qrCodes/SSIQRCustomMarker + + + + + + + + + +
+
+

All files components/qrCodes/SSIQRCustomMarker

+
+
+ 50% + Statements + 1/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 50% + Lines + 1/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
50%1/2100%0/00%0/150%1/2
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/qrCodes/SSIQRCustomMarker/index.tsx.html b/coverage/lcov-report/components/qrCodes/SSIQRCustomMarker/index.tsx.html new file mode 100644 index 00000000..e6b0b8f2 --- /dev/null +++ b/coverage/lcov-report/components/qrCodes/SSIQRCustomMarker/index.tsx.html @@ -0,0 +1,186 @@ + + + + Code coverage report for components/qrCodes/SSIQRCustomMarker/index.tsx + + + + + + + + + +
+
+

All files / components/qrCodes/SSIQRCustomMarker index.tsx

+
+
+ 50% + Statements + 1/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 50% + Lines + 1/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+ 
+import {
+  SSIQRCustomMarkerBottomContainerStyled as BottomContainer,
+  SSIFullFlexDirectionRowViewStyled as Container,
+  SSIQRCustomMarkerContentContainer as ContentContainer,
+  SSIQRCustomMarkerStyled as Marker,
+  SSIQRCustomMarkerSideSpaceStyled as SideSpace,
+  SSITextH4LightStyled as SubTitle,
+  SSITextH1LightStyled as Title,
+  SSIQRCustomMarkerTopContainerStyled as TopContainer,
+} from '../../../styles/components';
+ 
+export interface IProps {
+  title: string;
+  subtitle: string;
+}
+ 
+const SSIQRCustomMarker: FC<IProps> = (props: IProps): JSX.Element => {
+  return (
+    <Container>
+      <SideSpace />
+      <ContentContainer>
+        <TopContainer>
+          <Title>{props.title}</Title>
+          <SubTitle>{props.subtitle}</SubTitle>
+        </TopContainer>
+        <Marker />
+        <BottomContainer />
+      </ContentContainer>
+      <SideSpace />
+    </Container>
+  );
+};
+ 
+export default SSIQRCustomMarker;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSIActivityView/index.html b/coverage/lcov-report/components/views/SSIActivityView/index.html new file mode 100644 index 00000000..d223439e --- /dev/null +++ b/coverage/lcov-report/components/views/SSIActivityView/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/views/SSIActivityView + + + + + + + + + +
+
+

All files components/views/SSIActivityView

+
+
+ 50% + Statements + 1/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 50% + Lines + 1/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
50%1/2100%0/00%0/150%1/2
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSIActivityView/index.tsx.html b/coverage/lcov-report/components/views/SSIActivityView/index.tsx.html new file mode 100644 index 00000000..da66ed87 --- /dev/null +++ b/coverage/lcov-report/components/views/SSIActivityView/index.tsx.html @@ -0,0 +1,120 @@ + + + + Code coverage report for components/views/SSIActivityView/index.tsx + + + + + + + + + +
+
+

All files / components/views/SSIActivityView index.tsx

+
+
+ 50% + Statements + 1/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 50% + Lines + 1/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15  +  +  +  +  +  +  +  +  +1x +  +  +  +  + 
import React, {FC} from 'react';
+ 
+import {SSIBasicContainerStyled as RouteContainer} from '../../../styles/components';
+ 
+// TODO implement activity view
+ 
+// eslint-disable-next-line @typescript-eslint/no-empty-interface
+export interface IProps {}
+ 
+const SSIActivityView: FC<IProps> = (props: IProps): JSX.Element => {
+  return <RouteContainer style={{backgroundColor: '#2C334B'}} />;
+};
+ 
+export default SSIActivityView;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSIContactViewItem/index.html b/coverage/lcov-report/components/views/SSIContactViewItem/index.html new file mode 100644 index 00000000..cbf2d095 --- /dev/null +++ b/coverage/lcov-report/components/views/SSIContactViewItem/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/views/SSIContactViewItem + + + + + + + + + +
+
+

All files components/views/SSIContactViewItem

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
33.33%1/3100%0/00%0/133.33%1/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSIContactViewItem/index.tsx.html b/coverage/lcov-report/components/views/SSIContactViewItem/index.tsx.html new file mode 100644 index 00000000..69d2926a --- /dev/null +++ b/coverage/lcov-report/components/views/SSIContactViewItem/index.tsx.html @@ -0,0 +1,204 @@ + + + + Code coverage report for components/views/SSIContactViewItem/index.tsx + + + + + + + + + +
+
+

All files / components/views/SSIContactViewItem index.tsx

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {IdentityRoleEnum} from '@sphereon/ssi-sdk.data-store';
+import React, {FC} from 'react';
+import {View} from 'react-native';
+ 
+import {
+  SSIContactViewItemContactDetailsContainerStyled as ContactDetailsContainer,
+  SSITextH3LightStyled as ContactNameCaption,
+  SSITextH4LightStyled as ContactRolesCaption,
+  SSIContactViewItemContactUriCaptionStyled as ContactUriCaption,
+  SSIContactViewItemContainerStyled as Container,
+  SSIContactViewItemLogoContainerStyled as LogoContainer,
+  SSIContactViewItemPlaceholderLogoStyled as PlaceholderLogo,
+  SSIContactViewItemNewStatusContainerStyled as StatusContainer,
+} from '../../../styles/components';
+ 
+export interface Props {
+  name: string;
+  uri?: string;
+  roles: Array<IdentityRoleEnum>;
+}
+ 
+const SSIContactViewItem: FC<Props> = (props: Props): JSX.Element => {
+  const {name, uri, roles} = props;
+ 
+  return (
+    <Container>
+      <StatusContainer />
+      <LogoContainer>
+        <PlaceholderLogo />
+      </LogoContainer>
+      <View>
+        <ContactDetailsContainer>
+          <ContactNameCaption>{name}</ContactNameCaption>
+          <ContactRolesCaption>{roles.join(', ')}</ContactRolesCaption>
+        </ContactDetailsContainer>
+        <ContactUriCaption>{uri}</ContactUriCaption>
+      </View>
+    </Container>
+  );
+};
+ 
+export default SSIContactViewItem;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSICredentialDetailsView/index.html b/coverage/lcov-report/components/views/SSICredentialDetailsView/index.html new file mode 100644 index 00000000..c7ca23c2 --- /dev/null +++ b/coverage/lcov-report/components/views/SSICredentialDetailsView/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/views/SSICredentialDetailsView + + + + + + + + + +
+
+

All files components/views/SSICredentialDetailsView

+
+
+ 88.88% + Statements + 8/9 +
+ +
+ 50% + Branches + 2/4 +
+ +
+ 100% + Functions + 4/4 +
+ +
+ 88.88% + Lines + 8/9 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
88.88%8/950%2/4100%4/488.88%8/9
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSICredentialDetailsView/index.tsx.html b/coverage/lcov-report/components/views/SSICredentialDetailsView/index.tsx.html new file mode 100644 index 00000000..64252c44 --- /dev/null +++ b/coverage/lcov-report/components/views/SSICredentialDetailsView/index.tsx.html @@ -0,0 +1,255 @@ + + + + Code coverage report for components/views/SSICredentialDetailsView/index.tsx + + + + + + + + + +
+
+

All files / components/views/SSICredentialDetailsView index.tsx

+
+
+ 88.88% + Statements + 8/9 +
+ +
+ 50% + Branches + 2/4 +
+ +
+ 100% + Functions + 4/4 +
+ +
+ 88.88% + Lines + 8/9 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +4x +12x +  +  +12x +  +  +  +4x +4x +  +  +  +  +  +  +  +  +  +4x +  +  +  +  +  +12x +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {ListRenderItemInfo} from 'react-native';
+ 
+import {DETAILS_INITIAL_NUMBER_TO_RENDER} from '../../../@config/constants';
+import {translate} from '../../../localization/Localization';
+import {
+  SSICredentialDetailsViewContainerStyled as Container,
+  SSIDetailsViewDetailsListStyled as DetailsList,
+  SSICredentialDetailsViewFooterContainerStyled as FooterContainer,
+  SSICredentialDetailsViewFooterLabelValueStyled as IssuedBy,
+  SSICredentialDetailsViewFooterLabelCaptionStyled as IssuedByLabel,
+} from '../../../styles/components';
+import {ICredentialDetailsRow} from '../../../types';
+import SSIImageField from '../../fields/SSIImageField';
+import SSITextField from '../../fields/SSITextField';
+ 
+export interface IProps {
+  credentialProperties: Array<ICredentialDetailsRow>;
+  issuer?: string;
+}
+ 
+// TODO we are now using this for more than just credential information. Would be nice to refactor it to be a more general usage component
+ 
+const SSICredentialDetailsView: FC<IProps> = (props: IProps): JSX.Element => {
+  const renderItem = (itemInfo: ListRenderItemInfo<ICredentialDetailsRow>) => {
+    Iif (itemInfo.item.imageSize) {
+      return <SSIImageField item={itemInfo.item} index={itemInfo.index} />;
+    } else {
+      return <SSITextField item={itemInfo.item} index={itemInfo.index} />;
+    }
+  };
+ 
+  const renderFooter = () => (
+    <FooterContainer>
+      {props.issuer && (
+        <>
+          <IssuedByLabel>{translate('credential_details_view_issued_by')}</IssuedByLabel>
+          <IssuedBy>{props.issuer}</IssuedBy>
+        </>
+      )}
+    </FooterContainer>
+  );
+ 
+  return (
+    <Container>
+      <DetailsList
+        // TODO has a ItemSeparatorComponent which is a bit nicer to use then the logic now with margins
+        data={props.credentialProperties}
+        renderItem={renderItem}
+        keyExtractor={(item: ICredentialDetailsRow) => item.id}
+        initialNumToRender={DETAILS_INITIAL_NUMBER_TO_RENDER}
+        removeClippedSubviews
+        ListFooterComponent={renderFooter}
+      />
+    </Container>
+  );
+};
+ 
+export default SSICredentialDetailsView;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSICredentialRequiredViewItem/index.html b/coverage/lcov-report/components/views/SSICredentialRequiredViewItem/index.html new file mode 100644 index 00000000..cdc96501 --- /dev/null +++ b/coverage/lcov-report/components/views/SSICredentialRequiredViewItem/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/views/SSICredentialRequiredViewItem + + + + + + + + + +
+
+

All files components/views/SSICredentialRequiredViewItem

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/23 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
33.33%1/30%0/230%0/133.33%1/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSICredentialRequiredViewItem/index.tsx.html b/coverage/lcov-report/components/views/SSICredentialRequiredViewItem/index.tsx.html new file mode 100644 index 00000000..8cf4c291 --- /dev/null +++ b/coverage/lcov-report/components/views/SSICredentialRequiredViewItem/index.tsx.html @@ -0,0 +1,324 @@ + + + + Code coverage report for components/views/SSICredentialRequiredViewItem/index.tsx + + + + + + + + + +
+
+

All files / components/views/SSICredentialRequiredViewItem index.tsx

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/23 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {UniqueVerifiableCredential} from '@veramo/core';
+import React, {FC, ForwardedRef} from 'react';
+import {View} from 'react-native';
+ 
+import {translate} from '../../../localization/Localization';
+import {backgrounds, statuses} from '../../../styles/colors';
+import {
+  SSICredentialRequiredViewItemContainerStyled as Container,
+  SSIFullFlexDirectionRowViewStyled as ContentContainer,
+  SSICredentialRequiredViewItemCredentialPurposeCaptionStyled as CredentialPurposeCaption,
+  SSICredentialRequiredViewItemSelectedCredentialsCaptionStyled as CredentialSelectedCaption,
+  SSITextH4Styled as CredentialSubtitleCaption,
+  SSICredentialRequiredViewItemCredentialTitleCaptionStyled as CredentialTitleCaption,
+  SSICredentialRequiredViewItemIconContainerStyled as IconContainer,
+  SSITextFieldLinearTextGradientStyled as LinearGradientTextContainer,
+  SSICredentialRequiredViewItemMatchInfoCaptionStyled as MatchInfoCaption,
+  SSICredentialRequiredViewItemMatchInfoContainerStyled as MatchInfoContainer,
+  SSICredentialRequiredViewItemNoneAvailableCaptionStyled as NoneAvailableCaption,
+  SSICredentialRequiredViewNoneAvailableContainerStyled as NoneAvailableContainer,
+  SSITextH5LightStyled as NoneAvailableSubCaption,
+} from '../../../styles/components';
+import {getCredentialTypeAsString} from '../../../utils/CredentialUtils';
+import SSICheckmarkIcon from '../../assets/icons/SSICheckmarkIcon';
+ 
+export interface Props {
+  id: string;
+  title: string;
+  selected: Array<UniqueVerifiableCredential>;
+  available?: Array<UniqueVerifiableCredential>;
+  purpose?: string;
+  isMatching: boolean;
+  listIndex: number;
+  onPress?: () => Promise<void>;
+}
+ 
+const SSICredentialRequiredViewItem: FC<Props> = React.forwardRef((props: Props, ref?: ForwardedRef<unknown>): JSX.Element => {
+  const {id, isMatching, selected, available, title, listIndex, purpose, onPress} = props;
+ 
+  return (
+    <Container key={id} style={{backgroundColor: listIndex % 2 == 0 ? backgrounds.secondaryDark : backgrounds.primaryDark}} onPress={onPress}>
+      <ContentContainer>
+        {isMatching && (
+          <IconContainer>
+            <SSICheckmarkIcon color={statuses.valid} />
+          </IconContainer>
+        )}
+        <ContentContainer style={{...(!isMatching && {marginLeft: 29})}}>
+          <View>
+            <CredentialTitleCaption>{title}</CredentialTitleCaption>
+            {purpose && <CredentialPurposeCaption>{purpose}</CredentialPurposeCaption>}
+            {selected.length > 0 ? (
+              // TODO currently only supporting one selected credential, Also fix the naming
+              <CredentialSelectedCaption>{getCredentialTypeAsString(selected[0].verifiableCredential)}</CredentialSelectedCaption>
+            ) : available && available.length === 0 ? (
+              <NoneAvailableCaption>{translate('credentials_required_no_available_label')}</NoneAvailableCaption>
+            ) : (
+              <LinearGradientTextContainer>
+                <CredentialSubtitleCaption>{translate('credentials_required_credential_select_label')}</CredentialSubtitleCaption>
+              </LinearGradientTextContainer>
+            )}
+          </View>
+          <MatchInfoContainer>
+            <MatchInfoCaption style={{...(isMatching && {color: statuses.valid})}}>
+              {selected.length > 0
+                ? `${selected.length} ${translate('credentials_required_selected_label')}`
+                : available
+                ? `${available.length} ${translate('credentials_required_available_label')}`
+                : translate('credentials_required_checking_label')}
+            </MatchInfoCaption>
+          </MatchInfoContainer>
+        </ContentContainer>
+      </ContentContainer>
+      {available && available.length === 0 && (
+        <NoneAvailableContainer>
+          <NoneAvailableSubCaption>{translate('credentials_required_no_available_additional_label')}</NoneAvailableSubCaption>
+        </NoneAvailableContainer>
+      )}
+    </Container>
+  );
+});
+ 
+export default SSICredentialRequiredViewItem;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSICredentialSelectTypeViewItem/index.html b/coverage/lcov-report/components/views/SSICredentialSelectTypeViewItem/index.html new file mode 100644 index 00000000..98a53ebe --- /dev/null +++ b/coverage/lcov-report/components/views/SSICredentialSelectTypeViewItem/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/views/SSICredentialSelectTypeViewItem + + + + + + + + + +
+
+

All files components/views/SSICredentialSelectTypeViewItem

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
33.33%1/3100%0/00%0/133.33%1/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSICredentialSelectTypeViewItem/index.tsx.html b/coverage/lcov-report/components/views/SSICredentialSelectTypeViewItem/index.tsx.html new file mode 100644 index 00000000..0249a99d --- /dev/null +++ b/coverage/lcov-report/components/views/SSICredentialSelectTypeViewItem/index.tsx.html @@ -0,0 +1,222 @@ + + + + Code coverage report for components/views/SSICredentialSelectTypeViewItem/index.tsx + + + + + + + + + +
+
+

All files / components/views/SSICredentialSelectTypeViewItem index.tsx

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {ViewStyle} from 'react-native';
+import {SSICredentialMiniCardView} from '@sphereon/ui-components.ssi-react-native';
+import SSICheckbox from '../../fields/SSICheckbox';
+import {
+  SSIFlexDirectionRowViewStyled as Container,
+  SSICredentialSelectTypeViewItemContentContainerStyled as ContentContainer,
+  SSICredentialSelectTypeViewItemContentTextContainerStyled as ContentTextContainer,
+  SSITextH4LightStyled as CredentialTypeCaption,
+  SSICredentialSelectTypeViewItemLogoCheckboxContainerStyled as LogoCheckboxContainer,
+  SSICredentialSelectTypeViewItemLogoContainerStyled as LogoContainer,
+} from '../../../styles/components';
+import {CredentialMiniCardDisplay} from '../../../types';
+ 
+interface Props {
+  title: string;
+  isSelected: boolean;
+  onPress: () => Promise<void>;
+  cardDisplay?: CredentialMiniCardDisplay;
+  style?: ViewStyle;
+}
+ 
+const SSICredentialSelectTypeViewItem: FC<Props> = (props: Props): JSX.Element => {
+  const {cardDisplay, isSelected, style, title, onPress} = props;
+ 
+  return (
+    <Container>
+      <LogoContainer>
+        <SSICredentialMiniCardView
+          backgroundColor={cardDisplay?.backgroundColor}
+          backgroundImage={cardDisplay?.backgroundImage}
+          logoColor={cardDisplay?.logoColor}
+          logo={cardDisplay?.logo}
+        />
+        <LogoCheckboxContainer>
+          <SSICheckbox onValueChange={onPress} isChecked={isSelected} backgroundColor={style?.backgroundColor} />
+        </LogoCheckboxContainer>
+      </LogoContainer>
+      <ContentContainer>
+        <ContentTextContainer>
+          <CredentialTypeCaption>{title}</CredentialTypeCaption>
+        </ContentTextContainer>
+      </ContentContainer>
+    </Container>
+  );
+};
+ 
+export default SSICredentialSelectTypeViewItem;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSICredentialSelectViewItem/index.html b/coverage/lcov-report/components/views/SSICredentialSelectViewItem/index.html new file mode 100644 index 00000000..c1bf1ce1 --- /dev/null +++ b/coverage/lcov-report/components/views/SSICredentialSelectViewItem/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/views/SSICredentialSelectViewItem + + + + + + + + + +
+
+

All files components/views/SSICredentialSelectViewItem

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
33.33%1/30%0/20%0/133.33%1/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSICredentialSelectViewItem/index.tsx.html b/coverage/lcov-report/components/views/SSICredentialSelectViewItem/index.tsx.html new file mode 100644 index 00000000..c7cf4e90 --- /dev/null +++ b/coverage/lcov-report/components/views/SSICredentialSelectViewItem/index.tsx.html @@ -0,0 +1,255 @@ + + + + Code coverage report for components/views/SSICredentialSelectViewItem/index.tsx + + + + + + + + + +
+
+

All files / components/views/SSICredentialSelectViewItem index.tsx

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {TouchableOpacity, ViewStyle} from 'react-native';
+import {SSICredentialMiniCardView} from '@sphereon/ui-components.ssi-react-native';
+import SSICheckbox from '../../fields/SSICheckbox';
+import {
+  SSICredentialSelectViewItemCheckboxContainerStyled as CheckboxContainer,
+  SSIFlexDirectionRowViewStyled as Container,
+  SSICredentialSelectViewItemContentContainerStyled as ContentContainer,
+  SSICredentialSelectViewItemContentTextContainerStyled as ContentTextContainer,
+  SSITextH3LightStyled as CredentialTypeCaption,
+  SSITextH4LightStyled as IssuerCaption,
+  SSICredentialSelectViewItemLogoCheckboxContainerStyled as LogoCheckboxContainer,
+  SSICredentialSelectViewItemLogoContainerStyled as LogoContainer,
+  SSICredentialSelectViewItemLogoOuterContainerStyled as LogoOuterContainer,
+} from '../../../styles/components';
+import {CredentialMiniCardDisplay} from '../../../types';
+ 
+export interface Props {
+  title: string;
+  isSelected: boolean;
+  onPress: () => Promise<void>;
+  issuer?: string;
+  cardDisplay?: CredentialMiniCardDisplay;
+  style?: ViewStyle;
+}
+ 
+const SSICredentialSelectViewItem: FC<Props> = (props: Props): JSX.Element => {
+  const {cardDisplay, style, title, issuer, onPress} = props;
+ 
+  return (
+    <Container>
+      <LogoContainer>
+        <LogoOuterContainer>
+          <LogoCheckboxContainer>
+            <TouchableOpacity onPress={onPress}>
+              <SSICredentialMiniCardView
+                backgroundColor={cardDisplay?.backgroundColor}
+                backgroundImage={cardDisplay?.backgroundImage}
+                logoColor={cardDisplay?.logoColor}
+                logo={cardDisplay?.logo}
+              />
+            </TouchableOpacity>
+            <CheckboxContainer>
+              <SSICheckbox onValueChange={onPress} isChecked={props.isSelected} backgroundColor={style?.backgroundColor} />
+            </CheckboxContainer>
+          </LogoCheckboxContainer>
+        </LogoOuterContainer>
+      </LogoContainer>
+      <ContentContainer>
+        <ContentTextContainer>
+          <CredentialTypeCaption>{title}</CredentialTypeCaption>
+          {issuer && <IssuerCaption>{issuer}</IssuerCaption>}
+        </ContentTextContainer>
+      </ContentContainer>
+    </Container>
+  );
+};
+ 
+export default SSICredentialSelectViewItem;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSICredentialViewItem/index.html b/coverage/lcov-report/components/views/SSICredentialViewItem/index.html new file mode 100644 index 00000000..6828fa82 --- /dev/null +++ b/coverage/lcov-report/components/views/SSICredentialViewItem/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/views/SSICredentialViewItem + + + + + + + + + +
+
+

All files components/views/SSICredentialViewItem

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/7 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
33.33%1/30%0/70%0/133.33%1/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSICredentialViewItem/index.tsx.html b/coverage/lcov-report/components/views/SSICredentialViewItem/index.tsx.html new file mode 100644 index 00000000..36ff697c --- /dev/null +++ b/coverage/lcov-report/components/views/SSICredentialViewItem/index.tsx.html @@ -0,0 +1,234 @@ + + + + Code coverage report for components/views/SSICredentialViewItem/index.tsx + + + + + + + + + +
+
+

All files / components/views/SSICredentialViewItem index.tsx

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/7 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {SSIStatusLabel} from '@sphereon/ui-components.ssi-react-native';
+import React, {FC} from 'react';
+ 
+import {translate} from '../../../localization/Localization';
+import {
+  SSICredentialViewItemContainerStyled as Container,
+  SSIFlexDirectionRowViewStyled as ContentBottomContainer,
+  SSICredentialViewItemContentMiddleContainerStyled as ContentMiddleContainer,
+  SSICredentialViewItemContentTopContainerStyled as ContentTopContainer,
+  SSICredentialViewItemStatusContainerStyled as CredentialStatusContainer,
+  SSICredentialViewItemExpirationDateCaptionStyled as ExpirationDateCaption,
+  SSITextH5LightStyled as IssueDateCaption,
+  SSITextH4LightStyled as IssuerCaption,
+  SSICredentialViewItemTitleCaptionStyled as TitleCaption,
+} from '../../../styles/components';
+import {ICredentialSummary} from '../../../types';
+import {toLocalDateString, toLocalDateTimeString} from '../../../utils/DateUtils';
+ 
+// TODO fix to many properties
+export interface Props extends ICredentialSummary {
+  // TODO should only contain info this screen needs, ICredentialSummary is to much
+  showTime?: boolean;
+}
+ 
+const SSICredentialViewItem: FC<Props> = (props: Props): JSX.Element => {
+  const {branding, credentialStatus, expirationDate, issueDate, issuer, showTime = false, title} = props;
+  return (
+    <Container>
+      <ContentTopContainer>
+        <TitleCaption numberOfLines={2}>{title}</TitleCaption>
+        <CredentialStatusContainer>
+          <SSIStatusLabel status={credentialStatus} />
+        </CredentialStatusContainer>
+      </ContentTopContainer>
+      <ContentMiddleContainer>
+        <IssuerCaption>{issuer.alias}</IssuerCaption>
+      </ContentMiddleContainer>
+      <ContentBottomContainer>
+        <IssueDateCaption>{showTime ? toLocalDateTimeString(issueDate) : toLocalDateString(issueDate)}</IssueDateCaption>
+        <ExpirationDateCaption>
+          {expirationDate
+            ? `${translate('credentials_view_item_expires_on')} ${
+                showTime ? toLocalDateTimeString(expirationDate) : toLocalDateString(expirationDate)
+              }`
+            : translate('credential_status_never_expires_date_label')}
+        </ExpirationDateCaption>
+      </ContentBottomContainer>
+    </Container>
+  );
+};
+ 
+export default SSICredentialViewItem;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSIIdentitiesView/index.html b/coverage/lcov-report/components/views/SSIIdentitiesView/index.html new file mode 100644 index 00000000..fa10a567 --- /dev/null +++ b/coverage/lcov-report/components/views/SSIIdentitiesView/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/views/SSIIdentitiesView + + + + + + + + + +
+
+

All files components/views/SSIIdentitiesView

+
+
+ 11.11% + Statements + 1/9 +
+ +
+ 0% + Branches + 0/5 +
+ +
+ 0% + Functions + 0/4 +
+ +
+ 11.11% + Lines + 1/9 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
11.11%1/90%0/50%0/411.11%1/9
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSIIdentitiesView/index.tsx.html b/coverage/lcov-report/components/views/SSIIdentitiesView/index.tsx.html new file mode 100644 index 00000000..cd7818ef --- /dev/null +++ b/coverage/lcov-report/components/views/SSIIdentitiesView/index.tsx.html @@ -0,0 +1,231 @@ + + + + Code coverage report for components/views/SSIIdentitiesView/index.tsx + + + + + + + + + +
+
+

All files / components/views/SSIIdentitiesView index.tsx

+
+
+ 11.11% + Statements + 1/9 +
+ +
+ 0% + Branches + 0/5 +
+ +
+ 0% + Functions + 0/4 +
+ +
+ 11.11% + Lines + 1/9 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {IIdentity} from '@sphereon/ssi-sdk.data-store';
+import React, {FC} from 'react';
+import {ListRenderItemInfo, RefreshControl} from 'react-native';
+import {SwipeListView} from 'react-native-swipe-list-view';
+ 
+import {OVERVIEW_INITIAL_NUMBER_TO_RENDER} from '../../../@config/constants';
+import {backgrounds, borders} from '../../../styles/colors';
+import {SSIIdentitiesViewContainerStyled as Container} from '../../../styles/components';
+import SSIIdentityViewItem from '../SSIIdentityViewItem';
+ 
+export interface IProps {
+  identities: Array<IIdentity>;
+}
+ 
+const SSIIdentitiesView: FC<IProps> = (props: IProps): JSX.Element => {
+  const {identities} = props;
+  const [refreshing, setRefreshing] = React.useState(false);
+ 
+  const onRefresh = async (): Promise<void> => {
+    setRefreshing(false);
+  };
+ 
+  const renderItem = (itemInfo: ListRenderItemInfo<IIdentity>): JSX.Element => (
+    <SSIIdentityViewItem
+      style={{
+        backgroundColor: itemInfo.index % 2 === 0 ? backgrounds.secondaryDark : backgrounds.primaryDark,
+        ...(itemInfo.index === identities.length - 1 && itemInfo.index % 2 === 0 && {borderBottomWidth: 1, borderBottomColor: borders.dark}),
+      }}
+      name={itemInfo.item.alias}
+      roles={itemInfo.item.roles}
+    />
+  );
+ 
+  return (
+    <Container>
+      <SwipeListView
+        data={identities}
+        keyExtractor={(itemInfo: IIdentity) => itemInfo.id}
+        renderItem={renderItem}
+        closeOnRowOpen
+        closeOnRowBeginSwipe
+        useFlatList
+        initialNumToRender={OVERVIEW_INITIAL_NUMBER_TO_RENDER}
+        removeClippedSubviews
+        refreshControl={<RefreshControl refreshing={refreshing} onRefresh={onRefresh} />}
+      />
+    </Container>
+  );
+};
+ 
+export default SSIIdentitiesView;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSIIdentityViewItem/index.html b/coverage/lcov-report/components/views/SSIIdentityViewItem/index.html new file mode 100644 index 00000000..39083dad --- /dev/null +++ b/coverage/lcov-report/components/views/SSIIdentityViewItem/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/views/SSIIdentityViewItem + + + + + + + + + +
+
+

All files components/views/SSIIdentityViewItem

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
33.33%1/3100%0/00%0/133.33%1/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSIIdentityViewItem/index.tsx.html b/coverage/lcov-report/components/views/SSIIdentityViewItem/index.tsx.html new file mode 100644 index 00000000..49d71cb1 --- /dev/null +++ b/coverage/lcov-report/components/views/SSIIdentityViewItem/index.tsx.html @@ -0,0 +1,171 @@ + + + + Code coverage report for components/views/SSIIdentityViewItem/index.tsx + + + + + + + + + +
+
+

All files / components/views/SSIIdentityViewItem index.tsx

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {IdentityRoleEnum} from '@sphereon/ssi-sdk.data-store';
+import React, {FC, ForwardedRef} from 'react';
+import {ViewStyle} from 'react-native';
+ 
+import {
+  SSIIdentityViewItemContainerStyled as Container,
+  SSIIdentityViewItemContactDetailsContainerStyled as IdentityDetailsContainer,
+  SSITextH3LightStyled as NameCaption,
+  SSITextH4LightStyled as RolesCaption,
+} from '../../../styles/components';
+ 
+export interface IProps {
+  name: string;
+  roles: Array<IdentityRoleEnum>;
+  style?: ViewStyle;
+}
+ 
+const SSIIdentityViewItem: FC<IProps> = React.forwardRef((props: IProps, ref: ForwardedRef<unknown>): JSX.Element => {
+  const {name, roles, style} = props;
+ 
+  return (
+    <Container style={style}>
+      <IdentityDetailsContainer>
+        <NameCaption>{name}</NameCaption>
+        <RolesCaption>{roles.join(', ')}</RolesCaption>
+      </IdentityDetailsContainer>
+    </Container>
+  );
+});
+ 
+export default SSIIdentityViewItem;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSISwipeRowViewItem/index.html b/coverage/lcov-report/components/views/SSISwipeRowViewItem/index.html new file mode 100644 index 00000000..6d5d6138 --- /dev/null +++ b/coverage/lcov-report/components/views/SSISwipeRowViewItem/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/views/SSISwipeRowViewItem + + + + + + + + + +
+
+

All files components/views/SSISwipeRowViewItem

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
33.33%1/3100%0/00%0/133.33%1/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSISwipeRowViewItem/index.tsx.html b/coverage/lcov-report/components/views/SSISwipeRowViewItem/index.tsx.html new file mode 100644 index 00000000..bcac9694 --- /dev/null +++ b/coverage/lcov-report/components/views/SSISwipeRowViewItem/index.tsx.html @@ -0,0 +1,186 @@ + + + + Code coverage report for components/views/SSISwipeRowViewItem/index.tsx + + + + + + + + + +
+
+

All files / components/views/SSISwipeRowViewItem index.tsx

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC, ForwardedRef} from 'react';
+import {ViewStyle} from 'react-native';
+import {SwipeRow} from 'react-native-swipe-list-view';
+ 
+import {
+  SSISwipeRowViewItemHiddenItemContainerStyled as HiddenItemContainer,
+  SSIRippleContainerStyled as ItemContainer,
+} from '../../../styles/components';
+import SSISwipeDeleteButton from '../../buttons/SSISwipeDeleteButton';
+ 
+export interface IProps {
+  viewItem: JSX.Element;
+  onPress: () => Promise<void>;
+  onDelete: () => Promise<void>;
+  style?: ViewStyle;
+  hiddenStyle?: ViewStyle;
+}
+ 
+const SSISwipeRowViewItem: FC<IProps> = React.forwardRef((props: IProps, ref: ForwardedRef<unknown>): JSX.Element => {
+  const {viewItem, onPress, onDelete, style, hiddenStyle} = props;
+ 
+  return (
+    // TODO fix style issue being an array when using styled component (rightOpenValue / stopRightSwipe)
+    // https://github.com/jemise111/react-native-swipe-list-view/issues/614
+    <SwipeRow disableRightSwipe rightOpenValue={-97} stopRightSwipe={-97}>
+      <HiddenItemContainer style={hiddenStyle}>
+        <SSISwipeDeleteButton onPress={onDelete} />
+      </HiddenItemContainer>
+      <ItemContainer style={style} onPress={onPress}>
+        {viewItem}
+      </ItemContainer>
+    </SwipeRow>
+  );
+});
+ 
+export default SSISwipeRowViewItem;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSITabView/SSITabViewHeader/index.html b/coverage/lcov-report/components/views/SSITabView/SSITabViewHeader/index.html new file mode 100644 index 00000000..ac89bda4 --- /dev/null +++ b/coverage/lcov-report/components/views/SSITabView/SSITabViewHeader/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/views/SSITabView/SSITabViewHeader + + + + + + + + + +
+
+

All files components/views/SSITabView/SSITabViewHeader

+
+
+ 92.85% + Statements + 13/14 +
+ +
+ 100% + Branches + 12/12 +
+ +
+ 80% + Functions + 4/5 +
+ +
+ 91.66% + Lines + 11/12 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
92.85%13/14100%12/1280%4/591.66%11/12
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSITabView/SSITabViewHeader/index.tsx.html b/coverage/lcov-report/components/views/SSITabView/SSITabViewHeader/index.tsx.html new file mode 100644 index 00000000..274b7b4c --- /dev/null +++ b/coverage/lcov-report/components/views/SSITabView/SSITabViewHeader/index.tsx.html @@ -0,0 +1,246 @@ + + + + Code coverage report for components/views/SSITabView/SSITabViewHeader/index.tsx + + + + + + + + + +
+
+

All files / components/views/SSITabView/SSITabViewHeader index.tsx

+
+
+ 92.85% + Statements + 13/14 +
+ +
+ 100% + Branches + 12/12 +
+ +
+ 80% + Functions + 4/5 +
+ +
+ 91.66% + Lines + 11/12 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +1x +9x +  +14x +9x +  +  +  +  +9x +9x +  +9x +  +  +14x +  +28x +  +14x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {Animated} from 'react-native';
+ 
+import {
+  SSITabViewHeaderContainerStyled as Container,
+  SSITabViewHeaderTabHeaderStyled as Header,
+  SSITabViewHeaderTabHeaderCaptionStyled as HeaderCaption,
+  SSITabViewHeaderTabIndicatorStyled as HeaderIndicator,
+} from '../../../../styles/components';
+import {ITabRoute} from '../../../../types';
+ 
+const {v4: uuidv4} = require('uuid');
+ 
+export interface IProps {
+  navigationState: {index: number; routes: Array<ITabRoute>};
+  position: Animated.AnimatedInterpolation<number>;
+  onIndexChange: (index: number) => void;
+}
+ 
+const SSITabViewHeader: FC<IProps> = (props: IProps): JSX.Element => {
+  const {navigationState, position, onIndexChange} = props;
+ 
+  const inputRange = navigationState.routes.map((route: ITabRoute, index: number) => index);
+  const numberOfTabs = inputRange.length;
+  /*
+    TODO figure out this opacity interpolate down below. it needs 2 or more values for some reason. Currently they are based on the tab indexes, which I do not think is right.
+    When there is only 1 tab, a "second" index is added to make it also work with 1 tab
+  */
+  const opacityInterpolate = inputRange;
+  if (numberOfTabs === 1) opacityInterpolate.push(1);
+ 
+  return (
+    <Container>
+      {navigationState.routes.map((route: ITabRoute, i: number) => {
+        const opacity = position.interpolate({
+          inputRange,
+          outputRange: opacityInterpolate.map((index: number) => (index === i ? 1 : 0.5)),
+        });
+        return (
+          <Header
+            style={{
+              marginLeft: numberOfTabs === 1 ? 24 : undefined,
+              alignItems: numberOfTabs > 1 ? 'center' : undefined,
+            }}
+            key={uuidv4()}
+            onPress={() => onIndexChange(i)}>
+            <HeaderCaption style={{opacity, marginBottom: 2}}>{route.title}</HeaderCaption>
+            {numberOfTabs > 1 && navigationState.index === i ? <HeaderIndicator /> : null}
+          </Header>
+        );
+      })}
+    </Container>
+  );
+};
+ 
+export default SSITabViewHeader;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSITabView/index.html b/coverage/lcov-report/components/views/SSITabView/index.html new file mode 100644 index 00000000..6b52d387 --- /dev/null +++ b/coverage/lcov-report/components/views/SSITabView/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/views/SSITabView + + + + + + + + + +
+
+

All files components/views/SSITabView

+
+
+ 100% + Statements + 7/7 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 3/3 +
+ +
+ 100% + Lines + 6/6 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
100%7/7100%0/0100%3/3100%6/6
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSITabView/index.tsx.html b/coverage/lcov-report/components/views/SSITabView/index.tsx.html new file mode 100644 index 00000000..d64b1dc9 --- /dev/null +++ b/coverage/lcov-report/components/views/SSITabView/index.tsx.html @@ -0,0 +1,177 @@ + + + + Code coverage report for components/views/SSITabView/index.tsx + + + + + + + + + +
+
+

All files / components/views/SSITabView index.tsx

+
+
+ 100% + Statements + 7/7 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 3/3 +
+ +
+ 100% + Lines + 6/6 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34  +  +  +  +  +  +  +  +  +  +  +  +1x +9x +9x +  +14x +  +9x +  +  +  +  +  +9x +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {SceneMap, SceneRendererProps, TabView} from 'react-native-tab-view';
+ 
+import {SSITabViewContainerStyled as Container} from '../../../styles/components';
+import {ITabRoute, ITabViewRoute} from '../../../types';
+ 
+import SSITabViewHeader from './SSITabViewHeader';
+ 
+export interface IProps {
+  routes: Array<ITabViewRoute>;
+}
+ 
+const SSITabView: FC<IProps> = (props: IProps): JSX.Element => {
+  const [index, setIndex] = React.useState(0);
+  const [routes] = React.useState(props.routes);
+ 
+  const sceneMap = props.routes.reduce((a: Record<string, any>, v: ITabViewRoute) => ({...a, [v.key]: v.content}), {});
+ 
+  return (
+    <Container>
+      <TabView
+        navigationState={{index, routes}}
+        renderScene={SceneMap(sceneMap)}
+        renderTabBar={(props: SceneRendererProps & {navigationState: {index: number; routes: Array<ITabRoute>}}) => (
+          <SSITabViewHeader navigationState={props.navigationState} position={props.position} onIndexChange={setIndex} />
+        )}
+        onIndexChange={setIndex}
+      />
+    </Container>
+  );
+};
+ 
+export default SSITabView;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSITermsOfServiceView/index.html b/coverage/lcov-report/components/views/SSITermsOfServiceView/index.html new file mode 100644 index 00000000..b9e195bd --- /dev/null +++ b/coverage/lcov-report/components/views/SSITermsOfServiceView/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/views/SSITermsOfServiceView + + + + + + + + + +
+
+

All files components/views/SSITermsOfServiceView

+
+
+ 55.55% + Statements + 5/9 +
+ +
+ 0% + Branches + 0/4 +
+ +
+ 33.33% + Functions + 1/3 +
+ +
+ 55.55% + Lines + 5/9 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
55.55%5/90%0/433.33%1/355.55%5/9
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSITermsOfServiceView/index.tsx.html b/coverage/lcov-report/components/views/SSITermsOfServiceView/index.tsx.html new file mode 100644 index 00000000..8ff897a4 --- /dev/null +++ b/coverage/lcov-report/components/views/SSITermsOfServiceView/index.tsx.html @@ -0,0 +1,198 @@ + + + + Code coverage report for components/views/SSITermsOfServiceView/index.tsx + + + + + + + + + +
+
+

All files / components/views/SSITermsOfServiceView index.tsx

+
+
+ 55.55% + Statements + 5/9 +
+ +
+ 0% + Branches + 0/4 +
+ +
+ 33.33% + Functions + 1/3 +
+ +
+ 55.55% + Lines + 5/9 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +5x +  +5x +  +  +  +5x +  +  +  +  +  +  +  +5x +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {NativeScrollEvent, NativeSyntheticEvent} from 'react-native';
+ 
+import {
+  SSITermsOfServiceViewContentTextStyled as ContentText,
+  SSITermsOfServiceViewContainerStyled as RouteContainer,
+  SSITermsOfServiceViewScrollViewStyled as ScrollView,
+  TERMS_CONTENT_BOTTOM_MARGIN,
+} from '../../../styles/components';
+ 
+export interface IProps {
+  content: string;
+  onScrollBottom?: () => Promise<void>;
+}
+ 
+const SSITermsOfServiceView: FC<IProps> = (props: IProps): JSX.Element => {
+  const {content, onScrollBottom} = props;
+ 
+  const isCloseToBottom = ({layoutMeasurement, contentOffset, contentSize}: NativeScrollEvent): boolean => {
+    return layoutMeasurement.height + contentOffset.y >= contentSize.height - TERMS_CONTENT_BOTTOM_MARGIN;
+  };
+ 
+  const onScroll = async ({nativeEvent}: NativeSyntheticEvent<NativeScrollEvent>) => {
+    if (onScrollBottom) {
+      if (isCloseToBottom(nativeEvent)) {
+        await onScrollBottom();
+      }
+    }
+  };
+ 
+  return (
+    <RouteContainer>
+      <ScrollView onScroll={onScroll}>
+        <ContentText>{content}</ContentText>
+      </ScrollView>
+    </RouteContainer>
+  );
+};
+ 
+export default SSITermsOfServiceView;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSIWelcomeView/index.html b/coverage/lcov-report/components/views/SSIWelcomeView/index.html new file mode 100644 index 00000000..4a7db73f --- /dev/null +++ b/coverage/lcov-report/components/views/SSIWelcomeView/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for components/views/SSIWelcomeView + + + + + + + + + +
+
+

All files components/views/SSIWelcomeView

+
+
+ 100% + Statements + 3/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 1/1 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
100%3/3100%0/0100%1/1100%3/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/components/views/SSIWelcomeView/index.tsx.html b/coverage/lcov-report/components/views/SSIWelcomeView/index.tsx.html new file mode 100644 index 00000000..6c5cf0e3 --- /dev/null +++ b/coverage/lcov-report/components/views/SSIWelcomeView/index.tsx.html @@ -0,0 +1,237 @@ + + + + Code coverage report for components/views/SSIWelcomeView/index.tsx + + + + + + + + + +
+
+

All files / components/views/SSIWelcomeView index.tsx

+
+
+ 100% + Statements + 3/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 1/1 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +14x +  +14x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+ 
+import {
+  SSIWelcomeViewBodyContainerStyled as BodyContainer,
+  SSITextH3RegularLightStyled as BodyText,
+  SSIButtonBottomContainerStyled as ButtonContainer,
+  SSIWelcomeViewContainerStyled as Container,
+  SSIWelcomeViewContentContainerStyled as ContentContainer,
+  SSIWelcomeViewHeaderTextStyled as HeaderCaption,
+  SSIWelcomeViewProgressIndicatorContainerStyled as ProgressIndicatorContainer,
+  SSIWelcomeViewTitleTextStyled as TitleCaption,
+} from '../../../styles/components';
+import {IButton} from '../../../types';
+import SSIPrimaryButton from '../../buttons/SSIPrimaryButton';
+import SSIProgressIndicator from '../../indicators/SSIProgressIndicator';
+ 
+export interface IProps {
+  step: number;
+  maxSteps: number;
+  header: string;
+  title: string;
+  body: string;
+  action: IButton;
+}
+ 
+const SSIWelcomeView: FC<IProps> = (props: IProps): JSX.Element => {
+  const {action, body, header, step, title, maxSteps} = props;
+ 
+  return (
+    <Container>
+      <ProgressIndicatorContainer>
+        <SSIProgressIndicator step={step} maxSteps={maxSteps} />
+      </ProgressIndicatorContainer>
+      <ContentContainer>
+        <HeaderCaption>{header}</HeaderCaption>
+        <TitleCaption>{title}</TitleCaption>
+        <BodyContainer>
+          <BodyText>{body}</BodyText>
+        </BodyContainer>
+      </ContentContainer>
+      <ButtonContainer>
+        <SSIPrimaryButton
+          // TODO move styling to styled components (currently there is an issue where this styling prop is not being set correctly)
+          style={{height: 42, width: 300}}
+          title={action.caption}
+          onPress={action.onPress}
+        />
+      </ButtonContainer>
+    </Container>
+  );
+};
+ 
+export default SSIWelcomeView;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/contexts/OnTouchContext.ts.html b/coverage/lcov-report/contexts/OnTouchContext.ts.html new file mode 100644 index 00000000..681f7f74 --- /dev/null +++ b/coverage/lcov-report/contexts/OnTouchContext.ts.html @@ -0,0 +1,135 @@ + + + + Code coverage report for contexts/OnTouchContext.ts + + + + + + + + + +
+
+

All files / contexts OnTouchContext.ts

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/2 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  + 
import {createContext, Dispatch, SetStateAction} from 'react';
+ 
+interface OnTouchContextType {
+  showProfileMenu: boolean;
+  setShowProfileMenu: Dispatch<SetStateAction<boolean>>;
+  showMoreMenu: boolean;
+  setShowMoreMenu: Dispatch<SetStateAction<boolean>>;
+}
+ 
+const OnTouchContext = createContext<OnTouchContextType>({
+  showProfileMenu: false,
+  // eslint-disable-next-line @typescript-eslint/no-empty-function
+  setShowProfileMenu: () => {},
+  showMoreMenu: false,
+  // eslint-disable-next-line @typescript-eslint/no-empty-function
+  setShowMoreMenu: () => {},
+});
+ 
+export default OnTouchContext;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/contexts/index.html b/coverage/lcov-report/contexts/index.html new file mode 100644 index 00000000..acde32c1 --- /dev/null +++ b/coverage/lcov-report/contexts/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for contexts + + + + + + + + + +
+
+

All files contexts

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/2 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
OnTouchContext.ts +
+
+
+
+
100%1/1100%0/00%0/2100%1/1
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/favicon.png b/coverage/lcov-report/favicon.png new file mode 100644 index 00000000..c1525b81 Binary files /dev/null and b/coverage/lcov-report/favicon.png differ diff --git a/coverage/lcov-report/handlers/IntentHandler/index.html b/coverage/lcov-report/handlers/IntentHandler/index.html new file mode 100644 index 00000000..3c5642c8 --- /dev/null +++ b/coverage/lcov-report/handlers/IntentHandler/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for handlers/IntentHandler + + + + + + + + + +
+
+

All files handlers/IntentHandler

+
+
+ 37.64% + Statements + 32/85 +
+ +
+ 11.42% + Branches + 4/35 +
+ +
+ 32% + Functions + 8/25 +
+ +
+ 38.09% + Lines + 32/84 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
37.64%32/8511.42%4/3532%8/2538.09%32/84
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/handlers/IntentHandler/index.ts.html b/coverage/lcov-report/handlers/IntentHandler/index.ts.html new file mode 100644 index 00000000..1a2f4da8 --- /dev/null +++ b/coverage/lcov-report/handlers/IntentHandler/index.ts.html @@ -0,0 +1,738 @@ + + + + Code coverage report for handlers/IntentHandler/index.ts + + + + + + + + + +
+
+

All files / handlers/IntentHandler index.ts

+
+
+ 37.64% + Statements + 32/85 +
+ +
+ 11.42% + Branches + 4/35 +
+ +
+ 32% + Functions + 8/25 +
+ +
+ 38.09% + Lines + 32/84 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  +1x +  +  +1x +1x +1x +  +  +1x +1x +1x +1x +  +  +1x +1x +1x +  +1x +  +  +  +  +1x +1x +  +1x +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +1x +  +  +1x +1x +1x +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +1x +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {VerifiableCredential} from '@veramo/core';
+import Debug from 'debug';
+import {EmitterSubscription, Linking} from 'react-native';
+import ShareMenu, {ShareData, ShareListener} from 'react-native-share-menu';
+ 
+import {APP_ID} from '../../@config/constants';
+import {translate} from '../../localization/Localization';
+import RootNavigation from '../../navigation/rootNavigation';
+import {readFile} from '../../services/fileService';
+import {readQr} from '../../services/qrService';
+import store from '../../store';
+import {storeVerifiableCredential} from '../../store/actions/credential.actions';
+import {NavigationBarRoutesEnum, ScreenRoutesEnum, ToastTypeEnum} from '../../types';
+import {showToast} from '../../utils/ToastUtils';
+import {toNonPersistedCredentialSummary} from '../../utils/mappers/credential/CredentialMapper';
+import LockingHandler from '../LockingHandler';
+ 
+const debug: Debug.Debugger = Debug(`${APP_ID}:IntentHandler`);
+ 
+class IntentHandler {
+  private static instance: IntentHandler;
+  private deeplinkListener: EmitterSubscription;
+  private shareListener: ShareListener;
+  private _initialUrl?: string;
+  private _enabled = false;
+ 
+  // eslint-disable-next-line @typescript-eslint/no-empty-function
+  private constructor() {}
+ 
+  public isEnabled(): boolean {
+    return this._enabled;
+  }
+ 
+  public enable = async (): Promise<void> => {
+    debug(`Enable intenthandler... `);
+    Iif (this.isEnabled()) {
+      debug('intenthandler was already enabled');
+    } else {
+      this._enabled = true;
+      try {
+        debug(`intenthandler was not enabled yet`);
+        await this.handleLinksForStartingApp();
+        await this.handleLinksForRunningApp();
+      } catch (error) {
+        console.log('Enable intenthandler had an error:');
+        console.log(JSON.stringify(error));
+        this._enabled = false;
+      }
+      debug(`intenthandler enabled`);
+    }
+  };
+ 
+  public static getInstance(): IntentHandler {
+    Eif (typeof IntentHandler.instance !== 'object') {
+      IntentHandler.instance = new IntentHandler();
+    }
+    return IntentHandler.instance;
+  }
+ 
+  public disable = async (): Promise<void> => {
+    this._enabled = false;
+ 
+    // this._propagateEvents = false;
+    this._initialUrl = undefined;
+    try {
+      await this.removeListeners();
+    } catch (error) {
+      console.log('Disable intenthandler had an error:');
+      console.log(JSON.stringify(error));
+    }
+  };
+ 
+  private handleLinksForRunningApp = async (): Promise<void> => {
+    /**
+     * 1. If the app is already open, the app is foregrounded and a Linking event is fired
+     * You can handle these events with Linking.addEventListener('url', callback).
+     */
+    if (!this.deeplinkListener) {
+      this.deeplinkListener = Linking.addEventListener('url', this.deepLinkHandler);
+    }
+    if (!this.shareListener) {
+      this.shareListener = ShareMenu.addNewShareListener(this.sharedFileDataAction);
+    }
+  };
+ 
+  private removeListeners = async (): Promise<void> => {
+    this.deeplinkListener?.remove();
+    this.shareListener?.remove();
+  };
+ 
+  private async handleLinksForStartingApp(): Promise<void> {
+    /**
+     * 2. If the app is not already open, it is opened and the url is passed in as the initialURL
+     * You can handle these events with Linking.getInitialURL() -- it returns a Promise that resolves to the url, if there is one.
+     */
+    await this.storeInitialURLOnStart();
+    await this.handleSharedFileData();
+  }
+ 
+  private async storeInitialURLOnStart(): Promise<void> {
+    const url = await Linking.getInitialURL();
+ 
+    // Added expo-development-client check because of how the expo works in development
+    Eif (!url || url.includes('expo-development-client')) {
+      debug('No deeplink on start');
+      return;
+    }
+    debug(`deeplink on start: ${url}`);
+    this._initialUrl = url;
+  }
+ 
+  private async handleSharedFileData(): Promise<void> {
+    ShareMenu.getSharedText((data?: ShareData) => {
+      if (!data || ((!data.data || data.data.length === 0) && !data.extraData)) {
+        console.log('No shared data received');
+        return;
+      }
+      console.log(`Receiving shared data: ${JSON.stringify(data, null, 2)}`);
+ 
+      this.sharedFileDataAction(data);
+    });
+  }
+ 
+  private deepLinkHandler = async (event: {url: string}): Promise<void> => {
+    if (event.url) {
+      debug(`Deeplink for running app: ${event.url}`);
+      this._initialUrl = event.url;
+    } else {
+      debug(`No deeplink for running app. Event: ${JSON.stringify(event)}`);
+    }
+    this.openDeepLinkIfExistsAndAppUnlocked();
+  };
+ 
+  public openDeepLinkIfExistsAndAppUnlocked() {
+    if (this.isEnabled() && this.hasDeepLink() && !LockingHandler.getInstance().isLocked) {
+      void this.openDeepLink();
+    } else {
+      debug(`intent handler enabled: ${this.isEnabled()}, has deeplink: ${this.hasDeepLink()}, is locked: ${LockingHandler.getInstance().isLocked}`);
+    }
+  }
+ 
+  public hasDeepLink = (): boolean => {
+    const hasLink = !!this._initialUrl;
+    return hasLink;
+  };
+ 
+  public getDeepLink(): string | undefined {
+    debug(`get deeplink called. Value: (${this._initialUrl})`);
+    return this._initialUrl;
+  }
+ 
+  public openDeepLink = async (): Promise<void> => {
+    debug(`Open deeplink for ${this._initialUrl}`);
+    const url = this._initialUrl;
+    this._initialUrl = undefined;
+    if (url) {
+      // TODO this DeepLinkingProvider is now hard-coupled to assume the links are QR flows
+      // TODO fix this type issue
+      await readQr({qrData: url, navigation: RootNavigation});
+    }
+  };
+ 
+  private sharedFileDataAction(item?: ShareData): void {
+    if (!item || !item.data) {
+      return;
+    }
+ 
+    // TODO currently on supporting one file
+    const file = typeof item.data === 'string' ? item.data : item.data[0];
+ 
+    readFile({filePath: file})
+      .then(async (file: string) => {
+        // Currently we only support receiving one credential, we are missing ui to display multiple
+        const vc: VerifiableCredential = JSON.parse(file).credential?.data?.verifiableCredential[0];
+        if (!vc) {
+          showToast(ToastTypeEnum.TOAST_ERROR, {message: translate('intent_share_file_unable_to_receive_message')});
+          return;
+        }
+ 
+        // TODO fix the store not having the correct action types (should include ThunkAction)
+        const storeCredential = async (vc: VerifiableCredential) => await store.dispatch<any>(storeVerifiableCredential(vc));
+ 
+        // We navigate to the QR stack as this is the stack for incoming credentials
+        RootNavigation.navigate(NavigationBarRoutesEnum.QR, {
+          screen: ScreenRoutesEnum.CREDENTIAL_DETAILS,
+          params: {
+            rawCredential: vc,
+            credential: await toNonPersistedCredentialSummary(vc),
+            primaryAction: {
+              caption: translate('action_accept_label'),
+              onPress: async () =>
+                storeCredential(vc)
+                  .then(() =>
+                    RootNavigation.navigate(NavigationBarRoutesEnum.CREDENTIALS, {
+                      screen: ScreenRoutesEnum.CREDENTIALS_OVERVIEW,
+                    }),
+                  )
+                  .then(() =>
+                    showToast(ToastTypeEnum.TOAST_SUCCESS, {
+                      message: translate('credential_offer_accepted_toast'),
+                      showBadge: false,
+                    }),
+                  )
+                  .catch((error: Error) => showToast(ToastTypeEnum.TOAST_ERROR, {message: error.message})),
+            },
+            secondaryAction: {
+              caption: translate('action_decline_label'),
+              onPress: async () =>
+                RootNavigation.navigate(NavigationBarRoutesEnum.CREDENTIALS, {
+                  screen: ScreenRoutesEnum.CREDENTIALS_OVERVIEW,
+                }),
+            },
+          },
+        });
+      })
+      .catch((error: Error) => showToast(ToastTypeEnum.TOAST_ERROR, {message: error.message}));
+  }
+}
+ 
+export default IntentHandler;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/handlers/LockingHandler/index.html b/coverage/lcov-report/handlers/LockingHandler/index.html new file mode 100644 index 00000000..2cff61f2 --- /dev/null +++ b/coverage/lcov-report/handlers/LockingHandler/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for handlers/LockingHandler + + + + + + + + + +
+
+

All files handlers/LockingHandler

+
+
+ 18.18% + Statements + 8/44 +
+ +
+ 5.88% + Branches + 1/17 +
+ +
+ 33.33% + Functions + 3/9 +
+ +
+ 18.18% + Lines + 8/44 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
18.18%8/445.88%1/1733.33%3/918.18%8/44
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/handlers/LockingHandler/index.ts.html b/coverage/lcov-report/handlers/LockingHandler/index.ts.html new file mode 100644 index 00000000..f7b2e1cb --- /dev/null +++ b/coverage/lcov-report/handlers/LockingHandler/index.ts.html @@ -0,0 +1,369 @@ + + + + Code coverage report for handlers/LockingHandler/index.ts + + + + + + + + + +
+
+

All files / handlers/LockingHandler index.ts

+
+
+ 18.18% + Statements + 8/44 +
+ +
+ 5.88% + Branches + 1/17 +
+ +
+ 33.33% + Functions + 3/9 +
+ +
+ 18.18% + Lines + 8/44 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98  +  +  +  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  +  +1x +1x +  +1x +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +1x +  +  +  +  + 
import Debug from 'debug';
+import {AppState, DeviceEventEmitter, EmitterSubscription, NativeEventSubscription, Platform} from 'react-native';
+ 
+import {APP_ID} from '../../@config/constants';
+import RootNavigation from '../../navigation/rootNavigation';
+import store from '../../store';
+import {logout} from '../../store/actions/user.actions';
+import {PlatformsEnum, ScreenRoutesEnum} from '../../types';
+ 
+const debug: Debug.Debugger = Debug(`${APP_ID}:LockingHandler`);
+ 
+class LockingHandler {
+  private static instance: LockingHandler;
+  private _isLocked = false;
+  private lockingEventListener: NativeEventSubscription | EmitterSubscription;
+ 
+  // eslint-disable-next-line @typescript-eslint/no-empty-function
+  private constructor() {}
+ 
+  public static getInstance(): LockingHandler {
+    Eif (!LockingHandler.instance) {
+      LockingHandler.instance = new LockingHandler();
+    }
+    return LockingHandler.instance;
+  }
+ 
+  public enableLocking = async (): Promise<void> => {
+    debug('Enabling locking listener...');
+    switch (Platform.OS) {
+      case PlatformsEnum.IOS: {
+        // TODO WAL-601, refactor locking mechanism
+        const handleAppStateChange = async (nextAppState: string): Promise<void> => {
+          if (nextAppState === 'background' || nextAppState === 'active') {
+            if (this.isLockingRequiredForScreen()) {
+              if (this._isLocked) {
+                debug('Application was already locked');
+                return;
+              }
+              debug('Locking application...');
+              this.isLocked = true;
+              await store.dispatch<any>(logout());
+              return;
+            }
+          }
+          this.isLocked = false;
+        };
+        debug('Subscribing to locking event...');
+        this.lockingEventListener = AppState.addEventListener('change', handleAppStateChange);
+        break;
+      }
+      case PlatformsEnum.ANDROID: {
+        const handleAppStateChange = (event: any): void => {
+          if (event.event === 'appMovingToBackground') {
+            if (this.isLocked) {
+              debug('Application was already locked');
+              return;
+            }
+            debug('Locking application...');
+            this.isLocked = true;
+            store.dispatch<any>(logout());
+          } else {
+            debug('Not locking for event: ' + JSON.stringify(event));
+            this.isLocked = false;
+          }
+        };
+        debug('Subscribing to locking event...');
+        this.lockingEventListener = DeviceEventEmitter.addListener('appStateChange', handleAppStateChange);
+        break;
+      }
+      default: {
+        const message = 'Unable to enable locking listener. OS type is not supported.';
+        debug(message);
+        return Promise.reject(Error(message));
+      }
+    }
+  };
+ 
+  // TODO WAL-601, remove function when refactoring iOS locking mechanism
+  private isLockingRequiredForScreen(): boolean {
+    return ScreenRoutesEnum.QR_READER !== RootNavigation.getCurrentRoute();
+  }
+ 
+  public disableLocking = async (): Promise<void> => {
+    debug('Unsubscribing from locking event...');
+    this.lockingEventListener?.remove();
+  };
+ 
+  get isLocked(): boolean {
+    return this._isLocked;
+  }
+ 
+  set isLocked(value: boolean) {
+    this._isLocked = value;
+  }
+}
+ 
+export default LockingHandler;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/index.html b/coverage/lcov-report/index.html new file mode 100644 index 00000000..3228972b --- /dev/null +++ b/coverage/lcov-report/index.html @@ -0,0 +1,3764 @@ + + + + Code coverage report for All files + + + + + + + + + +
+
+

All files

+
+
+ 43.24% + Statements + 1094/2530 +
+ +
+ 22.29% + Branches + 276/1238 +
+ +
+ 24.21% + Functions + 177/731 +
+ +
+ 43.53% + Lines + 1080/2481 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
@config/constants +
+
+
+
+
100%18/18100%0/0100%0/0100%18/18
@config/credentials +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
@config/database +
+
+
+
+
100%3/3100%0/0100%0/0100%3/3
@config/toasts +
+
+
+
+
40%4/100%0/20%0/240%4/10
agent +
+
+
+
+
100%26/26100%0/0100%1/1100%25/25
+ components/assets/icons/SSIAddIcon + +
+
+
+
+
33.33%1/30%0/20%0/133.33%1/3
+ components/assets/icons/SSIBackIcon + +
+
+
+
+
100%3/3100%3/3100%1/1100%3/3
+ components/assets/icons/SSIBellIcon + +
+
+
+
+
50%1/2100%0/00%0/150%1/2
+ components/assets/icons/SSICheckmarkIcon + +
+
+
+
+
33.33%1/30%0/30%0/133.33%1/3
+ components/assets/icons/SSICloseIcon + +
+
+
+
+
33.33%1/30%0/20%0/133.33%1/3
+ components/assets/icons/SSIContactsIcon + +
+
+
+
+
50%1/2100%0/00%0/150%1/2
+ components/assets/icons/SSIDeleteIcon + +
+
+
+
+
33.33%1/30%0/30%0/133.33%1/3
+ components/assets/icons/SSIDownloadIcon + +
+
+
+
+
33.33%1/30%0/30%0/133.33%1/3
+ components/assets/icons/SSIEditIcon + +
+
+
+
+
33.33%1/30%0/30%0/133.33%1/3
+ components/assets/icons/SSIEyeIcon + +
+
+
+
+
33.33%1/30%0/20%0/133.33%1/3
+ components/assets/icons/SSIHomeIcon + +
+
+
+
+
50%1/2100%0/00%0/150%1/2
+ components/assets/icons/SSILogoutIcon + +
+
+
+
+
33.33%1/30%0/30%0/133.33%1/3
+ components/assets/icons/SSIMoreIcon + +
+
+
+
+
33.33%1/30%0/30%0/133.33%1/3
+ components/assets/icons/SSIProfileIcon + +
+
+
+
+
33.33%2/60%0/20%0/233.33%2/6
+ components/assets/icons/SSIQRIcon + +
+
+
+
+
50%1/2100%0/00%0/150%1/2
+ components/assets/images/SSINotificationsImage + +
+
+
+
+
33.33%1/30%0/20%0/133.33%1/3
+ components/assets/images/SSISecurityImage + +
+
+
+
+
33.33%1/30%0/20%0/133.33%1/3
+ components/assets/images/SSIWarningImage + +
+
+
+
+
33.33%1/30%0/20%0/133.33%1/3
+ components/bars/SSIHeaderBar + +
+
+
+
+
46.15%12/2659.09%13/2210%1/1046.15%12/26
+ components/bars/SSINavigationBar + +
+
+
+
+
4%1/250%0/290%0/84%1/25
+ components/buttons/SSIIconButton + +
+
+
+
+
62.5%5/825%1/4100%2/262.5%5/8
+ components/buttons/SSIPrimaryButton + +
+
+
+
+
100%3/3100%2/2100%1/1100%3/3
+ components/buttons/SSISecondaryButton + +
+
+
+
+
100%3/350%2/4100%1/1100%3/3
+ components/buttons/SSISwipeDeleteButton + +
+
+
+
+
50%1/2100%0/00%0/150%1/2
+ components/containers/SSIButtonsContainer + +
+
+
+
+
85.71%12/1483.33%10/1260%3/585.71%12/14
+ components/dropDownLists/SSIDropDownList + +
+
+
+
+
14.28%1/70%0/20%0/314.28%1/7
+ components/dropDownLists/SSIDropDownListItem + +
+
+
+
+
7.69%1/130%0/140%0/37.69%1/13
+ components/fields/SSICheckbox + +
+
+
+
+
90.9%10/1179.16%19/24100%3/390%9/10
+ components/fields/SSIImageField + +
+
+
+
+
25%1/40%0/20%0/125%1/4
+ components/fields/SSITextField + +
+
+
+
+
100%3/366.66%4/6100%1/1100%3/3
+ components/fields/SSITextInputField + +
+
+
+
+
43.47%10/2347.16%25/5311.11%1/943.47%10/23
+ components/indicators/SSIProgressIndicator + +
+
+
+
+
91.66%11/1287.5%7/8100%1/190.9%10/11
+ components/messageBoxes/alerts/SSIAlert + +
+
+
+
+
33.33%1/30%0/20%0/233.33%1/3
+ components/messageBoxes/popups/SSIPopup + +
+
+
+
+
23.07%3/130%0/400%0/323.07%3/13
+ components/messageBoxes/toasts/SSIToast + +
+
+
+
+
25%2/80%0/150%0/225%2/8
+ components/pinCodes/SSIPinCode + +
+
+
+
+
56.52%39/6935%14/4069.23%9/1355.22%37/67
+ components/pinCodes/SSIPinCodeSegment + +
+
+
+
+
100%3/383.33%5/6100%1/1100%3/3
+ components/qrCodes/SSIQRCustomMarker + +
+
+
+
+
50%1/2100%0/00%0/150%1/2
+ components/views/SSIActivityView + +
+
+
+
+
50%1/2100%0/00%0/150%1/2
+ components/views/SSIContactViewItem + +
+
+
+
+
33.33%1/3100%0/00%0/133.33%1/3
+ components/views/SSICredentialDetailsView + +
+
+
+
+
88.88%8/950%2/4100%4/488.88%8/9
+ components/views/SSICredentialRequiredViewItem + +
+
+
+
+
33.33%1/30%0/230%0/133.33%1/3
+ components/views/SSICredentialSelectTypeViewItem + +
+
+
+
+
33.33%1/3100%0/00%0/133.33%1/3
+ components/views/SSICredentialSelectViewItem + +
+
+
+
+
33.33%1/30%0/20%0/133.33%1/3
+ components/views/SSICredentialViewItem + +
+
+
+
+
33.33%1/30%0/70%0/133.33%1/3
+ components/views/SSIIdentitiesView + +
+
+
+
+
11.11%1/90%0/50%0/411.11%1/9
+ components/views/SSIIdentityViewItem + +
+
+
+
+
33.33%1/3100%0/00%0/133.33%1/3
+ components/views/SSISwipeRowViewItem + +
+
+
+
+
33.33%1/3100%0/00%0/133.33%1/3
+ components/views/SSITabView + +
+
+
+
+
100%7/7100%0/0100%3/3100%6/6
+ components/views/SSITabView/SSITabViewHeader + +
+
+
+
+
92.85%13/14100%12/1280%4/591.66%11/12
+ components/views/SSITermsOfServiceView + +
+
+
+
+
55.55%5/90%0/433.33%1/355.55%5/9
+ components/views/SSIWelcomeView + +
+
+
+
+
100%3/3100%0/0100%1/1100%3/3
contexts +
+
+
+
+
100%1/1100%0/00%0/2100%1/1
handlers/IntentHandler +
+
+
+
+
37.64%32/8511.42%4/3532%8/2538.09%32/84
handlers/LockingHandler +
+
+
+
+
18.18%8/445.88%1/1733.33%3/918.18%8/44
localization +
+
+
+
+
78.57%22/2850%6/1275%6/878.57%22/28
machines +
+
+
+
+
88.63%39/4484.37%27/3293.75%15/1688.63%39/44
modals/SSIAlertModal +
+
+
+
+
20%1/50%0/30%0/220%1/5
modals/SSIPopupModal +
+
+
+
+
12.5%1/80%0/50%0/312.5%1/8
navigation +
+
+
+
+
46.26%62/13444.68%21/4729.11%23/7946.21%61/132
+ providers/authentication + +
+
+
+
+
12.19%5/410%0/230%0/612.19%5/41
providers/credential +
+
+
+
+
5.32%9/1690%0/1090%0/355.38%9/167
providers/touch +
+
+
+
+
100%13/13100%0/0100%5/5100%13/13
+ screens/Onboarding/SSIPersonalDataScreen + +
+
+
+
+
59.37%19/320%0/654.54%6/1159.37%19/32
+ screens/Onboarding/SSIPinCodeSetScreen + +
+
+
+
+
75%6/8100%0/066.66%2/375%6/8
+ screens/Onboarding/SSIPinCodeVerifyScreen + +
+
+
+
+
77.77%7/9100%2/266.66%2/377.77%7/9
+ screens/Onboarding/SSISummaryScreen + +
+
+
+
+
100%7/7100%0/0100%3/3100%7/7
+ screens/Onboarding/SSITermsOfServiceScreen + +
+
+
+
+
61.9%13/21100%0/045.45%5/1160%12/20
+ screens/Onboarding/SSIWelcomeScreen + +
+
+
+
+
62.5%15/2450%4/866.66%2/362.5%15/24
+ screens/SSIContactAddScreen + +
+
+
+
+
4.34%2/460%0/130%0/144.34%2/46
+ screens/SSIContactDetailsScreen + +
+
+
+
+
20%1/5100%0/00%0/220%1/5
+ screens/SSIContactsOverviewScreen + +
+
+
+
+
6.89%2/290%0/70%0/156.89%2/29
+ screens/SSICredentialDetailsScreen + +
+
+
+
+
14.28%2/140%0/240%0/414.28%2/14
+ screens/SSICredentialRawJsonScreen + +
+
+
+
+
10%1/10100%0/00%0/311.11%1/9
+ screens/SSICredentialSelectScreen + +
+
+
+
+
3.22%1/310%0/90%0/163.33%1/30
+ screens/SSICredentialSelectTypeScreen + +
+
+
+
+
4.76%1/210%0/70%0/114.76%1/21
+ screens/SSICredentialsOverviewScreen + +
+
+
+
+
6.66%2/300%0/90%0/176.66%2/30
+ screens/SSICredentialsRequiredScreen + +
+
+
+
+
1.31%1/760%0/260%0/271.36%1/73
screens/SSIErrorScreen +
+
+
+
+
16.66%1/60%0/50%0/316.66%1/6
+ screens/SSILoadingScreen + +
+
+
+
+
85.71%6/7100%0/075%3/4100%6/6
screens/SSILockScreen +
+
+
+
+
14.28%1/70%0/20%0/214.28%1/7
+ screens/SSINotificationsOverviewScreen + +
+
+
+
+
50%1/2100%0/00%0/150%1/2
+ screens/SSIQRReaderScreen + +
+
+
+
+
14.28%1/70%0/20%0/214.28%1/7
+ screens/SSIVerificationCodeScreen + +
+
+
+
+
16.66%1/6100%0/00%0/316.66%1/6
services +
+
+
+
+
26.9%113/42014.61%32/21915.44%21/13627.79%112/403
store +
+
+
+
+
100%2/2100%0/0100%0/0100%2/2
store/actions +
+
+
+
+
40.5%64/15841.66%5/1226.08%18/6940%62/155
store/reducers +
+
+
+
+
37.25%19/5130.95%13/4242.85%3/737.25%19/51
styles +
+
+
+
+
100%18/18100%0/0100%0/0100%18/18
styles/components +
+
+
+
+
0%0/00%0/00%0/00%0/0
+ styles/components/buttons + +
+
+
+
+
100%2/2100%0/0100%0/0100%2/2
+ styles/components/components + +
+
+
+
+
0%0/00%0/00%0/00%0/0
+ styles/components/components/SSIAlert + +
+
+
+
+
100%5/5100%0/0100%0/0100%5/5
+ styles/components/components/SSIButtonsContainer + +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+ styles/components/components/SSICheckbox + +
+
+
+
+
100%3/3100%0/0100%0/0100%3/3
+ styles/components/components/SSIConnectionDetailsView + +
+
+
+
+
100%6/6100%0/0100%0/0100%6/6
+ styles/components/components/SSIContactViewItem + +
+
+
+
+
100%6/6100%0/0100%0/0100%6/6
+ styles/components/components/SSICredentialDetailsView + +
+
+
+
+
100%4/4100%0/0100%0/0100%4/4
+ styles/components/components/SSICredentialRequiredViewItem + +
+
+
+
+
100%9/9100%0/0100%0/0100%9/9
+ styles/components/components/SSICredentialSelectTypeViewItem + +
+
+
+
+
100%4/4100%0/0100%0/0100%4/4
+ styles/components/components/SSICredentialSelectViewItem + +
+
+
+
+
100%6/6100%0/0100%0/0100%6/6
+ styles/components/components/SSICredentialViewItem + +
+
+
+
+
100%6/6100%0/0100%0/0100%6/6
+ styles/components/components/SSIDropDownList + +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+ styles/components/components/SSIDropDownListItem + +
+
+
+
+
100%3/3100%0/0100%0/0100%3/3
+ styles/components/components/SSIHeaderBar + +
+
+
+
+
100%9/950%1/2100%1/1100%9/9
+ styles/components/components/SSIIdentitiesView + +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+ styles/components/components/SSIIdentityViewItem + +
+
+
+
+
100%2/2100%0/0100%0/0100%2/2
+ styles/components/components/SSIImageField + +
+
+
+
+
100%3/3100%0/0100%0/0100%3/3
+ styles/components/components/SSINavigationBar + +
+
+
+
+
100%3/3100%0/0100%0/0100%3/3
+ styles/components/components/SSIPinCode + +
+
+
+
+
100%4/4100%0/0100%0/0100%4/4
+ styles/components/components/SSIPinCodeSegment + +
+
+
+
+
100%4/4100%0/0100%0/0100%4/4
+ styles/components/components/SSIPopup + +
+
+
+
+
100%14/14100%0/0100%0/0100%14/14
+ styles/components/components/SSIPopupModal + +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+ styles/components/components/SSIProfileIcon + +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+ styles/components/components/SSIProgressIndicator + +
+
+
+
+
100%2/2100%0/0100%0/0100%2/2
+ styles/components/components/SSIQRCustomMarker + +
+
+
+
+
100%6/6100%0/0100%0/0100%6/6
+ styles/components/components/SSISecondaryButton + +
+
+
+
+
100%2/2100%0/0100%0/0100%2/2
+ styles/components/components/SSIStatusBar + +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+ styles/components/components/SSISwipeDeleteButton + +
+
+
+
+
100%2/2100%0/0100%0/0100%2/2
+ styles/components/components/SSISwipeRowViewItem + +
+
+
+
+
100%2/2100%0/0100%0/0100%2/2
+ styles/components/components/SSITabView + +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+ styles/components/components/SSITabViewHeader + +
+
+
+
+
100%4/4100%0/0100%0/0100%4/4
+ styles/components/components/SSITermsOfServiceView + +
+
+
+
+
100%4/4100%0/0100%0/0100%4/4
+ styles/components/components/SSITextField + +
+
+
+
+
100%6/6100%0/0100%0/0100%6/6
+ styles/components/components/SSITextInputField + +
+
+
+
+
100%6/6100%0/0100%0/0100%6/6
+ styles/components/components/SSIToast + +
+
+
+
+
100%4/4100%0/0100%0/0100%4/4
+ styles/components/components/SSIWelcomeView + +
+
+
+
+
100%7/7100%0/0100%0/0100%7/7
+ styles/components/containers + +
+
+
+
+
100%17/17100%0/0100%0/0100%17/17
styles/components/css +
+
+
+
+
100%5/5100%0/0100%0/0100%5/5
styles/components/fonts +
+
+
+
+
100%29/29100%0/0100%0/0100%29/29
+ styles/components/gradients + +
+
+
+
+
100%5/5100%0/0100%0/0100%5/5
+ styles/components/modals + +
+
+
+
+
0%0/00%0/00%0/00%0/0
+ styles/components/modals/SSIAlertModal + +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+ styles/components/modals/SSIPopupModal + +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+ styles/components/providers + +
+
+
+
+
0%0/00%0/00%0/00%0/0
+ styles/components/providers/OnTouchProvider + +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+ styles/components/screens + +
+
+
+
+
0%0/00%0/00%0/00%0/0
+ styles/components/screens/SSIContactAddScreen + +
+
+
+
+
100%3/3100%0/0100%0/0100%3/3
+ styles/components/screens/SSICredentialDetailsScreen + +
+
+
+
+
100%4/4100%0/0100%0/0100%4/4
+ styles/components/screens/SSICredentialSelectTypeScreen + +
+
+
+
+
100%2/2100%0/0100%0/0100%2/2
+ styles/components/screens/SSICredentialsRequiredScreen + +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+ styles/components/screens/SSIErrorScreen + +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+ styles/components/screens/SSILoadingScreen + +
+
+
+
+
100%3/3100%0/0100%0/0100%3/3
+ styles/components/screens/SSILockScreen + +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+ styles/components/screens/SSINotificationsOverviewScreen + +
+
+
+
+
100%3/3100%0/0100%0/0100%3/3
+ styles/components/screens/SSIPersonalDataScreen + +
+
+
+
+
100%3/3100%0/0100%0/0100%3/3
+ styles/components/screens/SSIQRReaderScreen + +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+ styles/components/screens/SSITermsOfServiceScreen + +
+
+
+
+
100%4/4100%0/0100%0/0100%4/4
+ styles/components/screens/SSIVerificationCodeScreen + +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+ styles/components/screens/SSIWelcomeScreen + +
+
+
+
+
100%4/4100%0/0100%0/0100%4/4
styles/components/text +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
styles/components/views +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
types +
+
+
+
+
0%0/00%0/00%0/00%0/0
types/authentication +
+
+
+
+
0%0/00%0/00%0/00%0/0
types/component +
+
+
+
+
0%0/00%0/00%0/00%0/0
types/credential +
+
+
+
+
0%0/00%0/00%0/00%0/0
types/did +
+
+
+
+
0%0/00%0/00%0/00%0/0
types/error +
+
+
+
+
0%0/00%0/00%0/00%0/0
types/identity +
+
+
+
+
0%0/00%0/00%0/00%0/0
types/image +
+
+
+
+
0%0/00%0/00%0/00%0/0
types/navigation +
+
+
+
+
0%0/00%0/00%0/00%0/0
types/onboarding +
+
+
+
+
0%0/00%0/00%0/00%0/0
types/os +
+
+
+
+
0%0/00%0/00%0/00%0/0
types/provider +
+
+
+
+
0%0/00%0/00%0/00%0/0
+ types/provider/openIdVcIssuanceProvider + +
+
+
+
+
0%0/00%0/00%0/00%0/0
types/qr +
+
+
+
+
0%0/00%0/00%0/00%0/0
types/service +
+
+
+
+
0%0/00%0/00%0/00%0/0
+ types/service/brandingService + +
+
+
+
+
0%0/00%0/00%0/00%0/0
+ types/service/contactService + +
+
+
+
+
0%0/00%0/00%0/00%0/0
+ types/service/credentialService + +
+
+
+
+
0%0/00%0/00%0/00%0/0
+ types/service/fileService + +
+
+
+
+
0%0/00%0/00%0/00%0/0
+ types/service/storageService + +
+
+
+
+
0%0/00%0/00%0/00%0/0
types/signature +
+
+
+
+
0%0/00%0/00%0/00%0/0
types/store +
+
+
+
+
100%34/34100%0/0100%0/0100%34/34
types/style +
+
+
+
+
0%0/00%0/00%0/00%0/0
types/toast +
+
+
+
+
0%0/00%0/00%0/00%0/0
types/user +
+
+
+
+
0%0/00%0/00%0/00%0/0
types/util +
+
+
+
+
0%0/00%0/00%0/00%0/0
+ types/util/navigationUtils + +
+
+
+
+
0%0/00%0/00%0/00%0/0
types/util/sortUtils +
+
+
+
+
0%0/00%0/00%0/00%0/0
utils +
+
+
+
+
31.34%42/1348.95%6/6719.04%8/4232.8%41/125
utils/mappers/branding +
+
+
+
+
50%1/20%0/250%0/150%1/2
+ utils/mappers/credential + +
+
+
+
+
58.2%39/6739.32%35/8966.66%4/658.2%39/67
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/localization/Localization.ts.html b/coverage/lcov-report/localization/Localization.ts.html new file mode 100644 index 00000000..a4ca2d32 --- /dev/null +++ b/coverage/lcov-report/localization/Localization.ts.html @@ -0,0 +1,264 @@ + + + + Code coverage report for localization/Localization.ts + + + + + + + + + +
+
+

All files / localization Localization.ts

+
+
+ 78.57% + Statements + 22/28 +
+ +
+ 50% + Branches + 6/12 +
+ +
+ 75% + Functions + 6/8 +
+ +
+ 78.57% + Lines + 22/28 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63  +  +  +  +  +1x +  +  +  +  +1x +1x +  +  +  +1x +36x +578x +  +  +1x +1x +2x +  +  +  +  +  +1x +  +1x +1x +1x +  +1x +1x +1x +  +1x +  +  +1x +  +  +  +1x +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +1x +  + 
import * as ExpoLocalization from 'expo-localization';
+import i18n, {Scope, TranslateOptions} from 'i18n-js';
+import memoize from 'lodash.memoize';
+ 
+class Localization {
+  public static supportedLanguages = {
+    ENGLISH: 'en',
+    DUTCH: 'nl',
+  };
+ 
+  private static translationGetters: {[locale: string]: () => object} = {
+    [Localization.supportedLanguages.ENGLISH]: () => require('./translations/en.json'),
+    [Localization.supportedLanguages.DUTCH]: () => require('./translations/nl.json'),
+  };
+ 
+  public static translate = memoize(
+    (key: Scope, config?: TranslateOptions) => i18n.t(key, config),
+    (key: Scope, config?: TranslateOptions) => (config ? key + JSON.stringify(config) : key),
+  );
+ 
+  private static findSupportedLanguage = (locale: string): string | undefined => {
+    for (const language of Object.values(Localization.supportedLanguages)) {
+      Iif (language === locale.split('-')[0]) {
+        return language;
+      }
+    }
+  };
+ 
+  public static setI18nConfig = (): void => {
+    // getPreferredLanguage().then(preferredLanguage => { //TODO add implementation
+    const preferredLanguage = undefined;
+    Eif (Localization.translate.cache.clear) {
+      Localization.translate.cache.clear();
+    }
+    const fallback = Localization.supportedLanguages.ENGLISH;
+    const deviceLocale = Localization.findSupportedLanguage(ExpoLocalization.locale);
+    const languageTag = preferredLanguage ?? deviceLocale ?? fallback;
+ 
+    i18n.translations = {
+      [languageTag]: Localization.translationGetters[languageTag](),
+    };
+    i18n.locale = languageTag;
+    // });
+  };
+ 
+  public static switchToLanguage = (languageTag: string = Localization.supportedLanguages.ENGLISH): void => {
+    if (Localization.translate.cache.clear) {
+      Localization.translate.cache.clear();
+    }
+    i18n.translations = {
+      [languageTag]: Localization.translationGetters[languageTag](),
+    };
+    i18n.locale = languageTag;
+  };
+ 
+  public static getLocale = (): string => {
+    return i18n.locale;
+  };
+}
+ 
+export const translate = Localization.translate;
+export default Localization;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/localization/index.html b/coverage/lcov-report/localization/index.html new file mode 100644 index 00000000..4734c465 --- /dev/null +++ b/coverage/lcov-report/localization/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for localization + + + + + + + + + +
+
+

All files localization

+
+
+ 78.57% + Statements + 22/28 +
+ +
+ 50% + Branches + 6/12 +
+ +
+ 75% + Functions + 6/8 +
+ +
+ 78.57% + Lines + 22/28 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
Localization.ts +
+
+
+
+
78.57%22/2850%6/1275%6/878.57%22/28
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/machines/index.html b/coverage/lcov-report/machines/index.html new file mode 100644 index 00000000..4c64e3d4 --- /dev/null +++ b/coverage/lcov-report/machines/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for machines + + + + + + + + + +
+
+

All files machines

+
+
+ 88.63% + Statements + 39/44 +
+ +
+ 84.37% + Branches + 27/32 +
+ +
+ 93.75% + Functions + 15/16 +
+ +
+ 88.63% + Lines + 39/44 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
onboardingMachine.tsx +
+
+
+
+
88.63%39/4484.37%27/3293.75%15/1688.63%39/44
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/machines/onboardingMachine.tsx.html b/coverage/lcov-report/machines/onboardingMachine.tsx.html new file mode 100644 index 00000000..b8303c72 --- /dev/null +++ b/coverage/lcov-report/machines/onboardingMachine.tsx.html @@ -0,0 +1,870 @@ + + + + Code coverage report for machines/onboardingMachine.tsx + + + + + + + + + +
+
+

All files / machines onboardingMachine.tsx

+
+
+ 88.63% + Statements + 39/44 +
+ +
+ 84.37% + Branches + 27/32 +
+ +
+ 93.75% + Functions + 15/16 +
+ +
+ 88.63% + Lines + 39/44 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +24x +  +1x +24x +24x +  +  +1x +8x +8x +  +  +1x +4x +  +  +1x +  +  +  +1x +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +3x +  +  +  +  +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +3x +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +5x +  +  +  +  +  +  +  +  +  +  +  +4x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +3x +  +  +  +3x +  +  +3x +  +  +  +3x +3x +  +  +3x +3x +3x +  +  +  +  +3x +  +  +  +  +  +3x +  +3x +3x +55x +55x +  +  +3x +  +  +  +  +  +  +  +6x +3x +  +  +3x +  +6x +  +  + 
import {CredentialPayload} from '@veramo/core';
+import {createContext} from 'react';
+import {v4 as uuidv4} from 'uuid';
+import {assign, createMachine, interpret} from 'xstate';
+import {EMAIL_ADDRESS_VALIDATION_REGEX} from '../@config/constants';
+import {onboardingStateNavigationListener} from '../navigation/onboardingStateNavigation';
+import {walletSetup} from '../services/onboardingService';
+import {SupportedDidMethodEnum} from '../types';
+import {
+  ICreateOnboardingMachineOpts,
+  IInstanceOnboardingMachineOpts,
+  IOnboardingMachineContext,
+  NextEvent,
+  OnboardingContextType,
+  OnboardingEvents,
+  OnboardingEventTypes,
+  OnboardingGuards,
+  OnboardingInterpretType,
+  OnboardingStates,
+  PersonalDataEvent,
+  PinSetEvent,
+  PrivacyPolicyEvent,
+  TermsConditionsEvent,
+} from '../types/onboarding';
+ 
+const onboardingToSAgreementGuard = (ctx: IOnboardingMachineContext, _event: OnboardingEventTypes) =>
+  ctx.termsConditionsAccepted && ctx.privacyPolicyAccepted;
+ 
+const onboardingPersonalDataGuard = (ctx: IOnboardingMachineContext, _event: OnboardingEventTypes) => {
+  const {firstName, lastName, emailAddress} = ctx.personalData;
+  return firstName && firstName.length > 0 && lastName && lastName.length > 0 && emailAddress && EMAIL_ADDRESS_VALIDATION_REGEX.test(emailAddress);
+};
+ 
+const onboardingPinCodeSetGuard = (ctx: IOnboardingMachineContext, _event: OnboardingEventTypes) => {
+  const {pinCode} = ctx;
+  return pinCode && pinCode.length === 6;
+};
+ 
+const onboardingPinCodeVerifyGuard = (ctx: IOnboardingMachineContext, event: NextEvent) => {
+  return onboardingPinCodeSetGuard(ctx, event) && ctx.pinCode === event.data;
+};
+ 
+export const onboardingSelector = (state: any, matchesState: OnboardingStates) => {
+  return state.matches(matchesState);
+};
+ 
+const createOnboardingMachine = (opts?: ICreateOnboardingMachineOpts) => {
+  const credentialData = {
+    didMethod: opts?.credentialData?.didMethod ?? SupportedDidMethodEnum.DID_KEY,
+    proofFormat: opts?.credentialData?.proofFormat ?? 'jwt',
+    credential:
+      opts?.credentialData?.credential ??
+      ({
+        '@context': [
+          'https://www.w3.org/2018/credentials/v1',
+          'https://sphereon-opensource.github.io/ssi-mobile-wallet/context/sphereon-wallet-identity-v1.jsonld',
+        ],
+        id: `urn:uuid:${uuidv4()}`,
+        type: ['VerifiableCredential', 'SphereonWalletIdentityCredential'],
+        issuanceDate: new Date(),
+        credentialSubject: {},
+      } as Partial<CredentialPayload>),
+  };
+ 
+  const initialContext = {
+    credentialData,
+    termsConditionsAccepted: false,
+    privacyPolicyAccepted: false,
+    personalData: {},
+    pinCode: '',
+  } as IOnboardingMachineContext;
+ 
+  return createMachine<IOnboardingMachineContext, OnboardingEventTypes>({
+    id: opts?.machineId ?? 'Onboarding',
+    predictableActionArguments: true,
+    initial: OnboardingStates.welcomeIntro,
+    schema: {
+      events: {} as OnboardingEventTypes,
+      guards: {} as
+        | {
+            type: OnboardingGuards.onboardingPersonalDataGuard;
+          }
+        | {
+            type: OnboardingGuards.onboardingToSAgreementGuard;
+          }
+        | {
+            type: OnboardingGuards.onboardingPinCodeSetGuard;
+          }
+        | {
+            type: OnboardingGuards.onboardingPinCodeVerifyGuard;
+          },
+    },
+    context: {
+      ...initialContext,
+    },
+ 
+    states: {
+      [OnboardingStates.welcomeIntro]: {
+        on: {
+          [OnboardingEvents.NEXT]: [
+            {
+              target: OnboardingStates.tosAgreement,
+            },
+          ],
+        },
+      },
+      [OnboardingStates.tosAgreement]: {
+        on: {
+          [OnboardingEvents.SET_POLICY]: {
+            actions: assign({privacyPolicyAccepted: (_ctx, e: PrivacyPolicyEvent) => e.data}),
+          },
+          [OnboardingEvents.SET_TOC]: {
+            actions: assign({termsConditionsAccepted: (_ctx, e: TermsConditionsEvent) => e.data}),
+          },
+          [OnboardingEvents.DECLINE]: {
+            target: OnboardingStates.onboardingDeclined,
+          },
+          [OnboardingEvents.NEXT]: {
+            cond: OnboardingGuards.onboardingToSAgreementGuard,
+            target: OnboardingStates.personalDetailsEntry,
+          },
+          [OnboardingEvents.PREVIOUS]: {target: OnboardingStates.welcomeIntro},
+        },
+      },
+      [OnboardingStates.personalDetailsEntry]: {
+        on: {
+          [OnboardingEvents.SET_PERSONAL_DATA]: {
+            actions: assign({personalData: (_ctx, e: PersonalDataEvent) => e.data}),
+          },
+          [OnboardingEvents.NEXT]: {
+            cond: OnboardingGuards.onboardingPersonalDataGuard,
+            target: OnboardingStates.pinEntry,
+          },
+          [OnboardingEvents.PREVIOUS]: {target: OnboardingStates.tosAgreement},
+        },
+      },
+      [OnboardingStates.pinEntry]: {
+        on: {
+          [OnboardingEvents.SET_PIN]: {
+            actions: assign({pinCode: (_ctx, e: PinSetEvent) => e.data}),
+          },
+          [OnboardingEvents.NEXT]: {
+            cond: OnboardingGuards.onboardingPinCodeSetGuard,
+            target: OnboardingStates.pinVerify,
+          },
+          [OnboardingEvents.PREVIOUS]: {
+            target: OnboardingStates.personalDetailsEntry,
+          },
+        },
+      },
+      [OnboardingStates.pinVerify]: {
+        on: {
+          [OnboardingEvents.NEXT]: {
+            cond: OnboardingGuards.onboardingPinCodeVerifyGuard,
+            target: OnboardingStates.personalDetailsVerify,
+          },
+          [OnboardingEvents.PREVIOUS]: {
+            target: OnboardingStates.pinEntry,
+          },
+        },
+      },
+      [OnboardingStates.personalDetailsVerify]: {
+        on: {
+          [OnboardingEvents.NEXT]: {
+            target: OnboardingStates.walletSetup,
+          },
+          [OnboardingEvents.PREVIOUS]: {
+            target: OnboardingStates.pinEntry, // We are going back to pin entry and then verify
+          },
+        },
+      },
+      [OnboardingStates.walletSetup]: {
+        invoke: {
+          id: OnboardingStates.walletSetup,
+          src: OnboardingStates.walletSetup,
+          onDone: {
+            target: OnboardingStates.onboardingDone,
+          },
+          // todo: On Error
+        },
+      },
+      [OnboardingStates.onboardingDeclined]: {
+        id: OnboardingStates.onboardingDeclined,
+        always: OnboardingStates.welcomeIntro,
+        entry: assign({
+          ...initialContext,
+        }),
+        // Since we are not allowed to exit an app by Apple/Google, we go back to the onboarding state when the user declines
+      },
+      [OnboardingStates.onboardingDone]: {
+        type: 'final',
+        id: OnboardingStates.onboardingDone,
+        entry: assign({
+          pinCode: '',
+          personalData: undefined,
+          credentialData: undefined,
+          privacyPolicyAccepted: false,
+          termsConditionsAccepted: false,
+        }),
+      },
+    },
+  });
+};
+ 
+export type CreateOnboardingMachineType = typeof createOnboardingMachine;
+export const OnboardingContext = createContext({} as OnboardingContextType);
+ 
+export class OnboardingMachine {
+  private static _instance: OnboardingInterpretType | undefined;
+ 
+  static hasInstance(): boolean {
+    return !!OnboardingMachine._instance;
+  }
+ 
+  static get instance(): OnboardingInterpretType {
+    Iif (!this._instance) {
+      throw Error('Please initialize an onboarding machine first');
+    }
+    return this._instance;
+  }
+ 
+  static stopInstance() {
+    console.log(`Stop instance...`);
+    Iif (!OnboardingMachine.hasInstance()) {
+      return;
+    }
+    OnboardingMachine.instance.stop();
+    OnboardingMachine._instance = undefined;
+    console.log(`Stopped instance`);
+  }
+ 
+  // todo: Determine whether we need to make this public for the onboarding machine as there normally should only be 1
+  private static newInstance(opts?: IInstanceOnboardingMachineOpts): OnboardingInterpretType {
+    const newInst: OnboardingInterpretType = interpret(
+      createOnboardingMachine(opts).withConfig({
+        services: {walletSetup, ...opts?.services},
+        guards: {onboardingToSAgreementGuard, onboardingPersonalDataGuard, onboardingPinCodeSetGuard, onboardingPinCodeVerifyGuard, ...opts?.guards},
+      }),
+    );
+    Iif (typeof opts?.subscription === 'function') {
+      newInst.onTransition(opts.subscription);
+    } else Eif (opts?.requireCustomNavigationHook !== true) {
+      newInst.onTransition(snapshot => {
+        console.log(`CURRENT STATE: ${JSON.stringify(snapshot.value)}: context: ${JSON.stringify(snapshot.context)}`);
+        onboardingStateNavigationListener(newInst, snapshot);
+      });
+    }
+    return newInst;
+  }
+ 
+  static getInstance(
+    opts?: IInstanceOnboardingMachineOpts & {
+      requireExisting?: boolean;
+    },
+  ): OnboardingInterpretType {
+    if (!OnboardingMachine._instance) {
+      Iif (opts?.requireExisting === true) {
+        throw Error(`Existing onboarding instance requested, but none was created at this point!`);
+      }
+      OnboardingMachine._instance = OnboardingMachine.newInstance(opts);
+    }
+    return OnboardingMachine._instance;
+  }
+}
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/modals/SSIAlertModal/index.html b/coverage/lcov-report/modals/SSIAlertModal/index.html new file mode 100644 index 00000000..8a7f6f05 --- /dev/null +++ b/coverage/lcov-report/modals/SSIAlertModal/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for modals/SSIAlertModal + + + + + + + + + +
+
+

All files modals/SSIAlertModal

+
+
+ 20% + Statements + 1/5 +
+ +
+ 0% + Branches + 0/3 +
+ +
+ 0% + Functions + 0/2 +
+ +
+ 20% + Lines + 1/5 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
20%1/50%0/30%0/220%1/5
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/modals/SSIAlertModal/index.tsx.html b/coverage/lcov-report/modals/SSIAlertModal/index.tsx.html new file mode 100644 index 00000000..3d5ba567 --- /dev/null +++ b/coverage/lcov-report/modals/SSIAlertModal/index.tsx.html @@ -0,0 +1,186 @@ + + + + Code coverage report for modals/SSIAlertModal/index.tsx + + + + + + + + + +
+
+

All files / modals/SSIAlertModal index.tsx

+
+
+ 20% + Statements + 1/5 +
+ +
+ 0% + Branches + 0/3 +
+ +
+ 0% + Functions + 0/2 +
+ +
+ 20% + Lines + 1/5 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {NativeStackScreenProps} from '@react-navigation/native-stack';
+import React, {FC} from 'react';
+ 
+import SSISecondaryButton from '../../components/buttons/SSISecondaryButton';
+import SSIAlert from '../../components/messageBoxes/alerts/SSIAlert';
+import {translate} from '../../localization/Localization';
+import {SSIBasicModalContainerStyled as Container, SSIAlertModalContentContainerStyled as ModalContentContainer} from '../../styles/components';
+import {MainRoutesEnum, StackParamList} from '../../types';
+ 
+type Props = NativeStackScreenProps<StackParamList, MainRoutesEnum.ALERT_MODAL>;
+ 
+const SSIAlertModal: FC<Props> = (props: Props): JSX.Element => {
+  const {message, buttons, showCancel = true} = props.route.params;
+ 
+  const onCancel = async (): Promise<void> => {
+    props.navigation.goBack();
+  };
+ 
+  return (
+    <Container>
+      <ModalContentContainer>
+        <SSIAlert message={message} buttons={buttons} />
+        {showCancel ? (
+          <SSISecondaryButton
+            title={translate('action_cancel_label')}
+            onPress={onCancel}
+            // TODO move styling to styled components (currently there is an issue where this styling prop is not being set correctly)
+            style={{height: 42, flex: 1}}
+          />
+        ) : null}
+      </ModalContentContainer>
+    </Container>
+  );
+};
+ 
+export default SSIAlertModal;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/modals/SSIPopupModal/index.html b/coverage/lcov-report/modals/SSIPopupModal/index.html new file mode 100644 index 00000000..10ac42a4 --- /dev/null +++ b/coverage/lcov-report/modals/SSIPopupModal/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for modals/SSIPopupModal + + + + + + + + + +
+
+

All files modals/SSIPopupModal

+
+
+ 12.5% + Statements + 1/8 +
+ +
+ 0% + Branches + 0/5 +
+ +
+ 0% + Functions + 0/3 +
+ +
+ 12.5% + Lines + 1/8 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
12.5%1/80%0/50%0/312.5%1/8
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/modals/SSIPopupModal/index.tsx.html b/coverage/lcov-report/modals/SSIPopupModal/index.tsx.html new file mode 100644 index 00000000..13551c3a --- /dev/null +++ b/coverage/lcov-report/modals/SSIPopupModal/index.tsx.html @@ -0,0 +1,267 @@ + + + + Code coverage report for modals/SSIPopupModal/index.tsx + + + + + + + + + +
+
+

All files / modals/SSIPopupModal index.tsx

+
+
+ 12.5% + Statements + 1/8 +
+ +
+ 0% + Branches + 0/5 +
+ +
+ 0% + Functions + 0/3 +
+ +
+ 12.5% + Lines + 1/8 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {NativeStackScreenProps} from '@react-navigation/native-stack';
+import React, {FC} from 'react';
+ 
+import SSIPopup from '../../components/messageBoxes/popups/SSIPopup';
+import {
+  SSIBasicModalContainerStyled as Container,
+  SSIPopupModalDetailsModalContainerStyled as ExtraDetailsContainer,
+  SSIPopupModalContentContainerStyled as ModalContentContainer,
+} from '../../styles/components';
+import {MainRoutesEnum, StackParamList} from '../../types';
+ 
+type Props = NativeStackScreenProps<StackParamList, MainRoutesEnum.POPUP_MODAL>;
+ 
+const SSIPopupModal: FC<Props> = (props: Props): JSX.Element => {
+  const {onClose, image, title, titleBadge, details, extraDetails, detailsPopup, primaryButton, secondaryButton} = props.route.params;
+  const [showExtraDetails, setShowExtraDetails] = React.useState(false);
+ 
+  const onShowExtraDetails = async (): Promise<void> => {
+    setShowExtraDetails(true);
+  };
+ 
+  const onCloseExtraDetails = async (): Promise<void> => {
+    setShowExtraDetails(false);
+  };
+ 
+  return (
+    <Container>
+      <ModalContentContainer>
+        {showExtraDetails && detailsPopup && (
+          <ExtraDetailsContainer>
+            <SSIPopup
+              onClose={onCloseExtraDetails}
+              title={detailsPopup.title}
+              details={detailsPopup.details}
+              extraDetails={detailsPopup.extraDetails}
+            />
+          </ExtraDetailsContainer>
+        )}
+ 
+        <SSIPopup
+          onClose={onClose}
+          image={image}
+          title={title}
+          titleBadge={titleBadge}
+          details={details}
+          extraDetails={extraDetails}
+          detailsButton={
+            detailsPopup
+              ? {
+                  caption: detailsPopup.buttonCaption,
+                  onPress: onShowExtraDetails,
+                }
+              : undefined
+          }
+          primaryButton={primaryButton}
+          secondaryButton={secondaryButton}
+        />
+      </ModalContentContainer>
+    </Container>
+  );
+};
+ 
+export default SSIPopupModal;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/navigation/index.html b/coverage/lcov-report/navigation/index.html new file mode 100644 index 00000000..94f5ebe4 --- /dev/null +++ b/coverage/lcov-report/navigation/index.html @@ -0,0 +1,150 @@ + + + + Code coverage report for navigation + + + + + + + + + +
+
+

All files navigation

+
+
+ 46.26% + Statements + 62/134 +
+ +
+ 44.68% + Branches + 21/47 +
+ +
+ 29.11% + Functions + 23/79 +
+ +
+ 46.21% + Lines + 61/132 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
navigation.tsx +
+
+
+
+
29.62%24/810%0/2320%11/5529.62%24/81
+ onboardingStateNavigation.tsx + +
+
+
+
+
85%34/4087.5%21/2476.92%10/1386.84%33/38
rootNavigation.ts +
+
+
+
+
30.76%4/13100%0/018.18%2/1130.76%4/13
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/navigation/navigation.tsx.html b/coverage/lcov-report/navigation/navigation.tsx.html new file mode 100644 index 00000000..3dabcd37 --- /dev/null +++ b/coverage/lcov-report/navigation/navigation.tsx.html @@ -0,0 +1,2037 @@ + + + + Code coverage report for navigation/navigation.tsx + + + + + + + + + +
+
+

All files / navigation navigation.tsx

+
+
+ 29.62% + Statements + 24/81 +
+ +
+ 0% + Branches + 0/23 +
+ +
+ 20% + Functions + 11/55 +
+ +
+ 29.62% + Lines + 24/81 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +450 +451 +452 +453 +454 +455 +456 +457 +458 +459 +460 +461 +462 +463 +464 +465 +466 +467 +468 +469 +470 +471 +472 +473 +474 +475 +476 +477 +478 +479 +480 +481 +482 +483 +484 +485 +486 +487 +488 +489 +490 +491 +492 +493 +494 +495 +496 +497 +498 +499 +500 +501 +502 +503 +504 +505 +506 +507 +508 +509 +510 +511 +512 +513 +514 +515 +516 +517 +518 +519 +520 +521 +522 +523 +524 +525 +526 +527 +528 +529 +530 +531 +532 +533 +534 +535 +536 +537 +538 +539 +540 +541 +542 +543 +544 +545 +546 +547 +548 +549 +550 +551 +552 +553 +554 +555 +556 +557 +558 +559 +560 +561 +562 +563 +564 +565 +566 +567 +568 +569 +570 +571 +572 +573 +574 +575 +576 +577 +578 +579 +580 +581 +582 +583 +584 +585 +586 +587 +588 +589 +590 +591 +592 +593 +594 +595 +596 +597 +598 +599 +600 +601 +602 +603 +604 +605 +606 +607 +608 +609 +610 +611 +612 +613 +614 +615 +616 +617 +618 +619 +620 +621 +622 +623 +624 +625 +626 +627 +628 +629 +630 +631 +632 +633 +634 +635 +636 +637 +638 +639 +640 +641 +642 +643 +644 +645 +646 +647 +648 +649 +650 +651 +652 +653 +654  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +1x +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +49x +  +  +47x +  +  +  +  +  +  +  +  +  +  +  +  +  +33x +  +  +31x +  +  +  +  +  +  +  +  +  +  +  +  +  +17x +  +  +  +  +16x +  +  +  +  +  +  +  +  +  +  +  +  +  +11x +  +  +  +  +11x +  +  +  +  +  +  +  +  +  +  +  +  +  +7x +  +  +7x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {BottomTabBarProps, createBottomTabNavigator} from '@react-navigation/bottom-tabs';
+import {createNativeStackNavigator, NativeStackHeaderProps} from '@react-navigation/native-stack';
+ 
+import Debug from 'debug';
+import React, {useEffect} from 'react';
+import Toast from 'react-native-toast-message';
+import {State} from 'xstate';
+import {APP_ID} from '../@config/constants';
+ 
+import {toastConfig, toastsAutoHide, toastsBottomOffset, toastsVisibilityTime} from '../@config/toasts';
+import SSIHeaderBar, {HeaderBarProps} from '../components/bars/SSIHeaderBar';
+import SSINavigationBar from '../components/bars/SSINavigationBar';
+import {translate} from '../localization/Localization';
+import {OnboardingMachine} from '../machines/onboardingMachine';
+import SSIAlertModal from '../modals/SSIAlertModal';
+import SSIPopupModal from '../modals/SSIPopupModal';
+import RootNavigation from '../navigation/rootNavigation';
+import SSIPersonalDataScreen from '../screens/Onboarding/SSIPersonalDataScreen';
+import SSIPinCodeSetScreen from '../screens/Onboarding/SSIPinCodeSetScreen';
+import SSIPinCodeVerifyScreen from '../screens/Onboarding/SSIPinCodeVerifyScreen';
+import SSIOnboardingSummaryScreen from '../screens/Onboarding/SSISummaryScreen';
+import SSITermsOfServiceScreen from '../screens/Onboarding/SSITermsOfServiceScreen';
+import SSIWelcomeScreen from '../screens/Onboarding/SSIWelcomeScreen';
+import SSIContactAddScreen from '../screens/SSIContactAddScreen';
+import SSIContactDetailsScreen from '../screens/SSIContactDetailsScreen';
+import SSIContactsOverviewScreen from '../screens/SSIContactsOverviewScreen';
+import SSICredentialDetailsScreen from '../screens/SSICredentialDetailsScreen';
+import SSICredentialRawJsonScreen from '../screens/SSICredentialRawJsonScreen';
+import SSICredentialsSelectScreen from '../screens/SSICredentialSelectScreen';
+import SSICredentialSelectTypeScreen from '../screens/SSICredentialSelectTypeScreen';
+import SSICredentialsOverviewScreen from '../screens/SSICredentialsOverviewScreen';
+import SSICredentialsRequiredScreen from '../screens/SSICredentialsRequiredScreen';
+import SSIErrorScreen from '../screens/SSIErrorScreen';
+import SSILoadingScreen from '../screens/SSILoadingScreen';
+import SSILockScreen from '../screens/SSILockScreen';
+import SSINotificationsOverviewScreen from '../screens/SSINotificationsOverviewScreen';
+import SSIQRReaderScreen from '../screens/SSIQRReaderScreen';
+import SSIVerificationCodeScreen from '../screens/SSIVerificationCodeScreen';
+import {login, walletAuthLockState} from '../services/authenticationService';
+import {
+  HeaderMenuIconsEnum,
+  IOnboardingProps,
+  MainRoutesEnum,
+  NavigationBarRoutesEnum,
+  ScreenRoutesEnum,
+  StackParamList,
+  SwitchRoutesEnum,
+  WalletAuthLockState,
+} from '../types';
+import {IOnboardingMachineContext, OnboardingEvents, OnboardingEventTypes} from '../types/onboarding';
+import {OnboardingProvider, onboardingStateNavigationListener} from './onboardingStateNavigation';
+ 
+const debug = Debug(`${APP_ID}:navigation`);
+ 
+const Stack = createNativeStackNavigator<StackParamList>();
+const Tab = createBottomTabNavigator();
+ 
+const MainStackNavigator = (): JSX.Element => {
+  return (
+    <Stack.Navigator
+      initialRouteName={MainRoutesEnum.HOME}
+      screenOptions={{
+        animation: 'none',
+        headerShown: false,
+      }}>
+      <Stack.Screen name={MainRoutesEnum.HOME} component={TabStackNavigator} />
+      <Stack.Screen
+        name={MainRoutesEnum.ALERT_MODAL}
+        children={({navigation, route}) => (
+          <>
+            <SSIAlertModal navigation={navigation} route={route} />
+            <Toast bottomOffset={toastsBottomOffset} autoHide={toastsAutoHide} visibilityTime={toastsVisibilityTime} config={toastConfig} />
+          </>
+        )}
+        options={{
+          presentation: 'transparentModal',
+        }}
+      />
+      <Stack.Screen
+        // TODO WAL-541 fix navigation hierarchy
+        name={MainRoutesEnum.POPUP_MODAL}
+        children={({navigation, route}) => (
+          <>
+            <SSIPopupModal navigation={navigation} route={route} />
+            <Toast bottomOffset={toastsBottomOffset} autoHide={toastsAutoHide} visibilityTime={toastsVisibilityTime} config={toastConfig} />
+          </>
+        )}
+        options={{
+          presentation: 'transparentModal',
+        }}
+      />
+      {/*<Stack.Screen name="Veramo" component={Veramo} />*/}
+    </Stack.Navigator>
+  );
+};
+ 
+const TabStackNavigator = (): JSX.Element => {
+  return (
+    <Tab.Navigator
+      screenOptions={{
+        headerShown: false,
+        // unmountOnBlur resets the stack back to initial state
+        unmountOnBlur: true,
+      }}
+      tabBar={(props: BottomTabBarProps) => <SSINavigationBar {...props} />}
+      initialRouteName={NavigationBarRoutesEnum.CREDENTIALS}
+      backBehavior="none">
+      <Tab.Screen
+        name={NavigationBarRoutesEnum.QR}
+        children={() => (
+          <>
+            <QRStack />
+            <Toast bottomOffset={toastsBottomOffset} autoHide={toastsAutoHide} visibilityTime={toastsVisibilityTime} config={toastConfig} />
+          </>
+        )}
+      />
+      <Tab.Screen
+        name={NavigationBarRoutesEnum.NOTIFICATIONS}
+        children={() => (
+          <>
+            <NotificationsStack />
+            <Toast bottomOffset={toastsBottomOffset} autoHide={toastsAutoHide} visibilityTime={toastsVisibilityTime} config={toastConfig} />
+          </>
+        )}
+      />
+      <Tab.Screen
+        name={NavigationBarRoutesEnum.CREDENTIALS}
+        children={() => (
+          <>
+            <CredentialsStack />
+            <Toast bottomOffset={toastsBottomOffset} autoHide={toastsAutoHide} visibilityTime={toastsVisibilityTime} config={toastConfig} />
+          </>
+        )}
+      />
+      <Tab.Screen
+        name={NavigationBarRoutesEnum.CONTACTS}
+        children={() => (
+          <>
+            <ContactsStack />
+            <Toast bottomOffset={toastsBottomOffset} autoHide={toastsAutoHide} visibilityTime={toastsVisibilityTime} config={toastConfig} />
+          </>
+        )}
+      />
+    </Tab.Navigator>
+  );
+};
+ 
+const CredentialsStack = (): JSX.Element => {
+  return (
+    <Stack.Navigator
+      initialRouteName={ScreenRoutesEnum.CREDENTIALS_OVERVIEW}
+      screenOptions={{
+        animation: 'none',
+      }}>
+      <Stack.Screen
+        name={ScreenRoutesEnum.CREDENTIALS_OVERVIEW}
+        component={SSICredentialsOverviewScreen}
+        options={{
+          headerTitle: translate('credentials_overview_title'),
+          header: (props: NativeStackHeaderProps) => <SSIHeaderBar {...props} showBorder showBackButton={false} />,
+        }}
+      />
+      <Stack.Screen
+        name={ScreenRoutesEnum.CREDENTIAL_DETAILS}
+        component={SSICredentialDetailsScreen}
+        options={({route}) => ({
+          headerTitle: translate('credential_details_title'),
+          header: (props: NativeStackHeaderProps) => (
+            <SSIHeaderBar
+              {...props}
+              // TODO rethink back button visibility for Android
+              //showBackButton={Platform.OS === PlatformsEnum.IOS}
+              // TODO create actions that can be passed in
+              moreActions={[
+                {
+                  caption: translate('show_raw_credential_button_caption'),
+                  onPress: async () =>
+                    RootNavigation.navigate(ScreenRoutesEnum.CREDENTIAL_RAW_JSON, {
+                      rawCredential: route.params.rawCredential,
+                    }),
+                  icon: HeaderMenuIconsEnum.DOWNLOAD,
+                },
+              ]}
+            />
+          ),
+        })}
+      />
+      <Stack.Screen
+        name={ScreenRoutesEnum.CREDENTIAL_RAW_JSON}
+        component={SSICredentialRawJsonScreen}
+        options={{
+          headerTitle: translate('raw_credential_title'),
+          header: (props: NativeStackHeaderProps) => (
+            <SSIHeaderBar
+              {...props}
+              // TODO rethink back button visibility for Android
+              //showBackButton={Platform.OS === PlatformsEnum.IOS}
+            />
+          ),
+        }}
+      />
+      <Stack.Screen
+        name={ScreenRoutesEnum.ERROR}
+        component={SSIErrorScreen}
+        options={{
+          header: (props: NativeStackHeaderProps) => <SSIHeaderBar {...props} />,
+        }}
+      />
+    </Stack.Navigator>
+  );
+};
+ 
+const ContactsStack = (): JSX.Element => {
+  return (
+    <Stack.Navigator
+      initialRouteName={ScreenRoutesEnum.CONTACTS_OVERVIEW}
+      screenOptions={{
+        animation: 'none',
+      }}>
+      <Stack.Screen
+        name={ScreenRoutesEnum.CONTACTS_OVERVIEW}
+        component={SSIContactsOverviewScreen}
+        options={{
+          headerTitle: translate('contacts_overview_title'),
+          header: (props: NativeStackHeaderProps) => <SSIHeaderBar {...props} showBackButton={false} showBorder />,
+        }}
+      />
+      <Stack.Screen
+        name={ScreenRoutesEnum.CONTACT_DETAILS}
+        component={SSIContactDetailsScreen}
+        options={{
+          headerTitle: translate('contact_details_title'),
+          header: (props: NativeStackHeaderProps) => (
+            <SSIHeaderBar
+              {...props}
+              // TODO rethink back button visibility for Android
+              //showBackButton={Platform.OS === PlatformsEnum.IOS}
+              showBorder
+            />
+          ),
+        }}
+      />
+      <Stack.Screen
+        name={ScreenRoutesEnum.ERROR}
+        component={SSIErrorScreen}
+        options={{
+          header: (props: NativeStackHeaderProps) => <SSIHeaderBar {...props} />,
+        }}
+      />
+    </Stack.Navigator>
+  );
+};
+ 
+const QRStack = (): JSX.Element => {
+  return (
+    <Stack.Navigator
+      initialRouteName={ScreenRoutesEnum.QR_READER}
+      screenOptions={{
+        animation: 'none',
+      }}>
+      <Stack.Screen
+        name={ScreenRoutesEnum.QR_READER}
+        component={SSIQRReaderScreen}
+        options={{
+          headerShown: false,
+        }}
+      />
+      <Stack.Screen
+        name={ScreenRoutesEnum.VERIFICATION_CODE}
+        component={SSIVerificationCodeScreen}
+        options={({route}) => ({
+          headerTitle: translate('verification_code_title'),
+          header: (props: NativeStackHeaderProps) => (
+            <SSIHeaderBar
+              {...props}
+              // TODO rethink back button visibility for Android
+              //showBackButton={Platform.OS === PlatformsEnum.IOS}
+              headerSubTitle={translate('verification_code_subtitle', {credentialName: route.params.credentialName})}
+            />
+          ),
+        })}
+      />
+      <Stack.Screen
+        name={ScreenRoutesEnum.CREDENTIAL_DETAILS}
+        component={SSICredentialDetailsScreen}
+        options={({route}) => ({
+          headerTitle: route.params.headerTitle ? route.params.headerTitle : translate('credential_details_title'),
+          header: (props: NativeStackHeaderProps) => (
+            <SSIHeaderBar
+              {...props}
+              // TODO rethink back button visibility for Android
+              //showBackButton={Platform.OS === PlatformsEnum.IOS}
+              headerSubTitle={translate('credential_details_subtitle')}
+              // TODO create actions that can be passed in
+              moreActions={[
+                {
+                  caption: translate('show_raw_credential_button_caption'),
+                  onPress: async () =>
+                    RootNavigation.navigate(ScreenRoutesEnum.CREDENTIAL_RAW_JSON, {
+                      rawCredential: route.params.rawCredential,
+                    }),
+                  icon: HeaderMenuIconsEnum.DOWNLOAD,
+                },
+              ]}
+            />
+          ),
+        })}
+      />
+      <Stack.Screen
+        name={ScreenRoutesEnum.CREDENTIAL_SELECT_TYPE}
+        component={SSICredentialSelectTypeScreen}
+        options={({route}) => ({
+          headerTitle: translate('credential_select_type_title'),
+          header: (props: NativeStackHeaderProps) => (
+            <SSIHeaderBar
+              {...props}
+              // TODO rethink back button visibility for Android
+              //showBackButton={Platform.OS === PlatformsEnum.IOS}
+              headerSubTitle={translate('credential_select_type_subtitle', {issuerName: route.params.issuer})}
+            />
+          ),
+        })}
+      />
+      <Stack.Screen
+        name={ScreenRoutesEnum.CREDENTIAL_RAW_JSON}
+        component={SSICredentialRawJsonScreen}
+        options={{
+          headerTitle: translate('raw_credential_title'),
+          header: (props: NativeStackHeaderProps) => (
+            <SSIHeaderBar
+              {...props}
+              // TODO rethink back button visibility for Android
+              //showBackButton={Platform.OS === PlatformsEnum.IOS}
+            />
+          ),
+        }}
+      />
+      <Stack.Screen
+        name={ScreenRoutesEnum.CONTACT_ADD}
+        component={SSIContactAddScreen}
+        options={{
+          headerTitle: translate('contact_add_new_contact_detected_title'),
+          header: (props: NativeStackHeaderProps) => (
+            <SSIHeaderBar
+              {...props}
+              // TODO rethink back button visibility for Android
+              //showBackButton={Platform.OS === PlatformsEnum.IOS}
+              headerSubTitle={translate('contact_add_new_contact_detected_subtitle')}
+            />
+          ),
+        }}
+      />
+      <Stack.Screen
+        name={ScreenRoutesEnum.CREDENTIALS_REQUIRED}
+        component={SSICredentialsRequiredScreen}
+        options={({route}) => ({
+          headerTitle: translate('credentials_required_title'),
+          header: (props: NativeStackHeaderProps) => (
+            <SSIHeaderBar
+              {...props}
+              // TODO rethink back button visibility for Android
+              //showBackButton={Platform.OS === PlatformsEnum.IOS}
+              headerSubTitle={`${translate('credentials_required_subtitle', {verifierName: route.params.verifier})} ${
+                route.params.presentationDefinition.purpose && `\n\n${route.params.presentationDefinition.purpose}`
+              }`}
+            />
+          ),
+        })}
+      />
+      <Stack.Screen
+        name={ScreenRoutesEnum.CREDENTIALS_SELECT}
+        component={SSICredentialsSelectScreen}
+        options={({route}) => ({
+          headerTitle: translate('credentials_select_title'),
+          header: (props: NativeStackHeaderProps) => (
+            <SSIHeaderBar
+              {...props}
+              // TODO rethink back button visibility for Android
+              //showBackButton={Platform.OS === PlatformsEnum.IOS}
+              headerSubTitle={`${translate('credentials_select_subtitle')} ${route.params.purpose && `\n\n${route.params.purpose}`}`}
+            />
+          ),
+        })}
+      />
+      <Stack.Screen
+        name={ScreenRoutesEnum.LOADING}
+        component={SSILoadingScreen}
+        options={{
+          headerShown: false,
+        }}
+      />
+      <Stack.Screen
+        name={ScreenRoutesEnum.ERROR}
+        component={SSIErrorScreen}
+        options={{
+          header: (props: NativeStackHeaderProps) => <SSIHeaderBar {...props} />,
+        }}
+      />
+      <Stack.Screen
+        name={ScreenRoutesEnum.LOCK}
+        component={SSILockScreen}
+        options={{
+          headerTitle: translate('authentication_pin_code_title'),
+          header: (props: NativeStackHeaderProps) => <SSIHeaderBar {...props} headerSubTitle={translate('authentication_pin_code_subtitle')} />,
+        }}
+      />
+    </Stack.Navigator>
+  );
+};
+ 
+const NotificationsStack = (): JSX.Element => {
+  return (
+    <Stack.Navigator
+      initialRouteName={ScreenRoutesEnum.NOTIFICATIONS_OVERVIEW}
+      screenOptions={{
+        animation: 'none',
+      }}>
+      <Stack.Screen
+        name={ScreenRoutesEnum.NOTIFICATIONS_OVERVIEW}
+        component={SSINotificationsOverviewScreen}
+        options={{
+          headerTitle: translate('notifications_overview_title'),
+          header: (props: NativeStackHeaderProps) => <SSIHeaderBar {...props} showBackButton={false} showBorder />,
+        }}
+      />
+      <Stack.Screen
+        name={ScreenRoutesEnum.ERROR}
+        component={SSIErrorScreen}
+        options={{
+          header: (props: NativeStackHeaderProps) => <SSIHeaderBar {...props} />,
+        }}
+      />
+    </Stack.Navigator>
+  );
+};
+ 
+export const OnboardingStack = (/*props: {onBack: () => void}*/): JSX.Element => {
+  // const {onBack} = props;
+  // const onBack = (): void => OnboardingMachine.getInstance({requireExisting: true}).send(OnboardingEvents.PREVIOUS)
+  return (
+    <Stack.Navigator
+      // initialRouteName={ScreenRoutesEnum.WELCOME}
+      screenOptions={{
+        animation: 'none',
+      }}>
+      <Stack.Screen
+        name={ScreenRoutesEnum.WELCOME}
+        component={SSIWelcomeScreen}
+        options={{
+          headerShown: false,
+          // onNext
+        }}
+      />
+      <Stack.Screen
+        name={ScreenRoutesEnum.TERMS_OF_SERVICE}
+        component={SSITermsOfServiceScreen}
+        options={({route}) => ({
+          headerTitle: translate('terms_of_service_title'),
+          header: (props: HeaderBarProps) => (
+            <SSIHeaderBar
+              {...props}
+              onBack={route.params.onBack}
+              // TODO rethink back button visibility for Android
+              //showBackButton={Platform.OS === PlatformsEnum.IOS}
+              showProfileIcon={false}
+              headerSubTitle={translate('terms_of_service_subtitle')}
+            />
+          ),
+        })}
+      />
+      <Stack.Screen
+        name={ScreenRoutesEnum.PERSONAL_DATA}
+        component={SSIPersonalDataScreen}
+        options={({route}) => ({
+          headerTitle: translate('personal_data_title'),
+          header: (props: HeaderBarProps) => (
+            <SSIHeaderBar
+              {...props}
+              onBack={route.params.onBack}
+              // TODO rethink back button visibility for Android
+              //showBackButton={Platform.OS === PlatformsEnum.IOS}
+              showProfileIcon={false}
+              headerSubTitle={translate('personal_data_subtitle')}
+            />
+          ),
+        })}
+      />
+      <Stack.Screen
+        name={ScreenRoutesEnum.PIN_CODE_SET}
+        component={SSIPinCodeSetScreen}
+        options={({route}) => ({
+          // unmountOnBlur resets the screen back to initial state
+          unmountOnBlur: true,
+          headerTitle: translate('pin_code_choose_pin_code_title'),
+          header: (props: HeaderBarProps) => (
+            <SSIHeaderBar
+              {...props}
+              onBack={route.params.onBack}
+              // TODO rethink back button visibility for Android
+              //showBackButton={Platform.OS === PlatformsEnum.IOS}
+              showProfileIcon={false}
+              headerSubTitle={translate('pin_code_choose_pin_code_subtitle')}
+            />
+          ),
+        })}
+      />
+      <Stack.Screen
+        name={ScreenRoutesEnum.PIN_CODE_VERIFY}
+        component={SSIPinCodeVerifyScreen}
+        options={({route}) => ({
+          // unmountOnBlur resets the screen back to initial state
+          unmountOnBlur: true,
+          headerTitle: translate('pin_code_confirm_pin_code_title'),
+          header: (props: HeaderBarProps) => (
+            <SSIHeaderBar
+              {...props}
+              onBack={route.params.onBack}
+              // TODO rethink back button visibility for Android
+              //showBackButton={Platform.OS === PlatformsEnum.IOS}
+              showProfileIcon={false}
+              headerSubTitle={translate('pin_code_confirm_pin_code_subtitle')}
+            />
+          ),
+        })}
+      />
+      <Stack.Screen
+        name={ScreenRoutesEnum.ONBOARDING_SUMMARY}
+        component={SSIOnboardingSummaryScreen}
+        options={({route}) => ({
+          headerTitle: translate('onboard_summary_title'),
+          header: (props: HeaderBarProps) => (
+            <SSIHeaderBar
+              {...props}
+              onBack={route.params.onBack}
+              // TODO rethink back button visibility for Android
+              //showBackButton={Platform.OS === PlatformsEnum.IOS}
+              showProfileIcon={false}
+              headerSubTitle={translate('onboard_summary_subtitle')}
+            />
+          ),
+        })}
+      />
+      <Stack.Screen
+        name={ScreenRoutesEnum.LOADING}
+        component={SSILoadingScreen}
+        options={{
+          headerShown: false,
+        }}
+      />
+      <Stack.Screen
+        name={MainRoutesEnum.POPUP_MODAL}
+        component={SSIPopupModal}
+        options={{
+          presentation: 'transparentModal',
+          headerShown: false,
+        }}
+      />
+    </Stack.Navigator>
+  );
+};
+ 
+const AuthenticationStack = (): JSX.Element => {
+  return (
+    <Stack.Navigator
+      initialRouteName={ScreenRoutesEnum.LOCK}
+      screenOptions={{
+        animation: 'none',
+      }}>
+      <Stack.Screen
+        name={ScreenRoutesEnum.LOCK}
+        component={SSILockScreen}
+        initialParams={{onAuthenticate: login}}
+        options={{
+          headerTitle: translate('lock_title'),
+          header: (props: NativeStackHeaderProps) => (
+            <SSIHeaderBar {...props} showBackButton={false} showProfileIcon={false} headerSubTitle={translate('lock_subtitle')} />
+          ),
+        }}
+      />
+    </Stack.Navigator>
+  );
+};
+ 
+export const OnboardingStackScreenWithContext = (props: IOnboardingProps): JSX.Element => {
+  return (
+    <OnboardingProvider customOnboardingInstance={props?.customOnboardingInstance}>
+      <OnboardingStack />
+      {/*<OnboardingStack onBack={props.onBack} />*/}
+    </OnboardingProvider>
+  );
+};
+ 
+/**
+ * Solution below allows to navigate based on the redux state. so there is no need to specifically navigate to another stack, as setting the state does that already
+ * https://reactnavigation.org/docs/auth-flow/
+ */
+const AppNavigator = (): JSX.Element => {
+  const lockState = walletAuthLockState();
+ 
+  useEffect(() => {
+    if (!RootNavigation.isReady() || lockState !== WalletAuthLockState.ONBOARDING) {
+      return;
+    }
+    debug(`app and navigation ready`);
+ 
+    // Existing instance is already created by the provider. So we make sure by requiring an existing instance
+    const onboardingInstance = OnboardingMachine.getInstance({requireExisting: true});
+    const snapshot = onboardingInstance.getSnapshot();
+    if (!snapshot || snapshot.done || snapshot.events.length === 0) {
+      debug(`ONBOARDING starting...`);
+      onboardingInstance.start();
+      debug(`ONBOARDING started`);
+    }
+   /* return () => {
+      OnboardingMachine.stopInstance();
+    };*/
+  }, []);
+  if (lockState === WalletAuthLockState.ONBOARDING) {
+    if (!OnboardingMachine.hasInstance()) {
+      const onboardingInstance = OnboardingMachine.getInstance({requireCustomNavigationHook: false});
+      /*onboardingInstance.subscribe(
+        (state: State<IOnboardingMachineContext, OnboardingEventTypes, any, {value: any; context: IOnboardingMachineContext}, any>) => {
+          console.log(`CURRENT STATE: ${JSON.stringify(state.value)}: context: ${JSON.stringify(state.context)}`);
+          onboardingStateNavigationListener(onboardingInstance, state);
+        },
+      );*/
+    }
+  }
+ 
+  return (
+    <Stack.Navigator
+      screenOptions={{
+        animation: 'none',
+        headerShown: false,
+      }}>
+      {lockState === WalletAuthLockState.ONBOARDING ? (
+        <Stack.Screen
+          name={SwitchRoutesEnum.ONBOARDING}
+          component={OnboardingStackScreenWithContext}
+          initialParams={{
+            customOnboardingInstance: OnboardingMachine.getInstance({requireExisting: true}),
+          }}
+        />
+      ) : lockState === WalletAuthLockState.AUTHENTICATED ? (
+        <Stack.Screen name={SwitchRoutesEnum.MAIN} component={MainStackNavigator} />
+      ) : (
+        <Stack.Screen name={SwitchRoutesEnum.AUTHENTICATION} component={AuthenticationStack} />
+      )}
+    </Stack.Navigator>
+  );
+};
+ 
+export default AppNavigator;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/navigation/onboardingStateNavigation.tsx.html b/coverage/lcov-report/navigation/onboardingStateNavigation.tsx.html new file mode 100644 index 00000000..8da88f21 --- /dev/null +++ b/coverage/lcov-report/navigation/onboardingStateNavigation.tsx.html @@ -0,0 +1,510 @@ + + + + Code coverage report for navigation/onboardingStateNavigation.tsx + + + + + + + + + +
+
+

All files / navigation onboardingStateNavigation.tsx

+
+
+ 85% + Statements + 34/40 +
+ +
+ 87.5% + Branches + 21/24 +
+ +
+ 76.92% + Functions + 10/13 +
+ +
+ 86.84% + Lines + 33/38 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +55x +55x +55x +  +55x +55x +  +  +  +55x +5x +  +  +  +  +  +  +  +  +  +50x +16x +  +  +  +  +  +  +3x +  +  +  +  +3x +  +  +  +16x +  +34x +15x +  +15x +  +5x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +19x +5x +  +  +  +  +4x +  +  +  +  +  +  +  +  +14x +4x +  +  +  +  +4x +  +  +  +  +  +10x +4x +6x +3x +  +  +  +3x +  +3x +3x +  +  +  +  +  +  +1x +3x +  +  +  +  +  + 
import Debug from 'debug';
+import React, {ReactNode} from 'react';
+import {State} from 'xstate';
+import {APP_ID} from '../@config/constants';
+import {translate} from '../localization/Localization';
+import {OnboardingContext, OnboardingMachine} from '../machines/onboardingMachine';
+import store from '../store';
+import {ScreenRoutesEnum} from '../types';
+import {
+  IOnboardingMachineContext,
+  IOnboardingPersonalData,
+  OnboardingEvents,
+  OnboardingEventTypes,
+  OnboardingInterpretType,
+  OnboardingStates,
+} from '../types/onboarding';
+import {LOGIN_SUCCESS} from '../types/store/user.action.types';
+import RootNavigation from './rootNavigation';
+ 
+const debug: Debug.Debugger = Debug(`${APP_ID}:storageService`);
+export const onboardingStateNavigationListener = (
+  onboardingMachine: OnboardingInterpretType,
+  state: State<
+    IOnboardingMachineContext,
+    OnboardingEventTypes,
+    any,
+    {
+      value: any;
+      context: IOnboardingMachineContext;
+    },
+    any
+  >,
+  navigation?: any,
+) => {
+  const onBack = () => onboardingMachine.send(OnboardingEvents.PREVIOUS);
+  const onNext = () => onboardingMachine.send(OnboardingEvents.NEXT);
+  const context = onboardingMachine.getSnapshot().context;
+ 
+  const nav = navigation ?? RootNavigation;
+  Iif (nav === undefined || !nav.isReady()) {
+    debug(`navigation not ready yet`);
+    return;
+  }
+  if (state.matches(OnboardingStates.welcomeIntro)) {
+    nav.navigate(
+      ScreenRoutesEnum.WELCOME,
+      /*{
+        index: 0,
+        routes: [{name: ScreenRoutesEnum.WELCOME}],
+ 
+      },*/
+      {context, onNext},
+    );
+    // navigation.navigate(ScreenRoutesEnum.WELCOME, {step: 1});
+  } else if (state.matches(OnboardingStates.tosAgreement)) {
+    nav.navigate(ScreenRoutesEnum.TERMS_OF_SERVICE, {
+      headerTitle: translate('terms_of_service_title'),
+      context,
+      onBack,
+      onNext,
+      onDecline: () => onboardingMachine.send(OnboardingEvents.DECLINE),
+      onAcceptTerms: (accept: boolean) =>
+        onboardingMachine.send({
+          type: OnboardingEvents.SET_TOC,
+          data: accept,
+        }),
+      onAcceptPrivacy: (accept: boolean) =>
+        onboardingMachine.send({
+          type: OnboardingEvents.SET_POLICY,
+          data: accept,
+        }),
+      isDisabled: () => onboardingMachine.getSnapshot()?.can(OnboardingEvents.NEXT) !== true,
+    });
+  } else if (state.matches(OnboardingStates.personalDetailsEntry)) {
+    nav.navigate(ScreenRoutesEnum.PERSONAL_DATA, {
+      context,
+      isDisabled: () => onboardingMachine.getSnapshot()?.can(OnboardingEvents.NEXT) !== true,
+      onPersonalData: (personalData: IOnboardingPersonalData) =>
+        onboardingMachine.send({
+          type: OnboardingEvents.SET_PERSONAL_DATA,
+          data: personalData,
+        }),
+      onBack,
+      onNext: (personalData: IOnboardingPersonalData) => {
+        onboardingMachine.send([
+          {
+            type: OnboardingEvents.SET_PERSONAL_DATA,
+            data: personalData,
+          },
+          OnboardingEvents.NEXT,
+        ]);
+      },
+    });
+  } else if (state.matches(OnboardingStates.pinEntry)) {
+    nav.navigate(ScreenRoutesEnum.PIN_CODE_SET, {
+      headerSubTitle: translate('pin_code_choose_pin_code_subtitle'),
+      context,
+      onBack,
+      onNext: (pinCode: string) => {
+        onboardingMachine.send([
+          {
+            type: OnboardingEvents.SET_PIN,
+            data: pinCode,
+          },
+          OnboardingEvents.NEXT,
+        ]);
+      },
+    });
+  } else if (state.matches(OnboardingStates.pinVerify)) {
+    nav.navigate(ScreenRoutesEnum.PIN_CODE_VERIFY, {
+      headerSubTitle: translate('pin_code_confirm_pin_code_subtitle'),
+      context,
+      onBack,
+      onNext: (pinCode: string) => {
+        onboardingMachine.send({
+          type: OnboardingEvents.NEXT,
+          data: pinCode,
+        });
+      },
+    });
+  } else if (state.matches(OnboardingStates.personalDetailsVerify)) {
+    nav.navigate(ScreenRoutesEnum.ONBOARDING_SUMMARY, {context, onBack, onNext});
+  } else if (state.matches(OnboardingStates.walletSetup)) {
+    nav.navigate(ScreenRoutesEnum.LOADING, {
+      message: translate('action_onboarding_setup_message'),
+      context,
+    });
+  } else if (state.matches(OnboardingStates.onboardingDone)) {
+    // Cleans up the machine, triggering the main navigator
+    OnboardingMachine.stopInstance()
+    store.dispatch<any>({type: LOGIN_SUCCESS, payload: store.getState().user.activeUser}); // Yuck, but we need a rerender
+    // nav.navigate(MainRoutesEnum.HOME, {})
+  } else E{
+    console.log(`TODO navigation for ${JSON.stringify(state)}`);
+  }
+};
+ 
+export const OnboardingProvider = (props: {children?: ReactNode | undefined, customOnboardingInstance?: OnboardingInterpretType}): JSX.Element => {
+  return (
+    <OnboardingContext.Provider value={{onboardingInstance: props.customOnboardingInstance ?? OnboardingMachine.getInstance({requireExisting: true})}}>
+      {props.children}
+    </OnboardingContext.Provider>
+  );
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/navigation/rootNavigation.ts.html b/coverage/lcov-report/navigation/rootNavigation.ts.html new file mode 100644 index 00000000..3d9737d5 --- /dev/null +++ b/coverage/lcov-report/navigation/rootNavigation.ts.html @@ -0,0 +1,156 @@ + + + + Code coverage report for navigation/rootNavigation.ts + + + + + + + + + +
+
+

All files / navigation rootNavigation.ts

+
+
+ 30.76% + Statements + 4/13 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 18.18% + Functions + 2/11 +
+ +
+ 30.76% + Lines + 4/13 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27  +  +  +  +  +1x +  +  +  +  +1x +  +52x +  +  +  +  +  +  +  +  +  +55x +  +  +  + 
import {createNavigationContainerRef} from '@react-navigation/native';
+import type {NavigationAction, NavigationState, PartialState} from '@react-navigation/routers';
+ 
+import {StackParamList} from '../types';
+ 
+export const navigationRef = createNavigationContainerRef<StackParamList>();
+ 
+// TODO fix missing type / refactor to correct version of @react-navigation
+// eslint-disable-next-line @typescript-eslint/ban-ts-comment
+// @ts-ignore
+const RootNavigation: NavigationHelpersCommon<StackParamList, NavigationState> = {
+  dispatch: (action: NavigationAction | ((state: NavigationState) => NavigationAction)) => navigationRef.current?.dispatch(action),
+  navigate: (...args: any) => navigationRef.current?.navigate(...args),
+  // setParams: <RouteName extends keyof StackParamList>(params: Partial<StackParamList[RouteName]>) => navigationRef.current?.setParams(params),
+  reset: (state: PartialState<NavigationState> | NavigationState) => navigationRef.current?.reset(state),
+  goBack: () => navigationRef.current?.goBack(),
+  isFocused: () => navigationRef.current?.isFocused(),
+  canGoBack: () => navigationRef.current?.canGoBack(),
+  getId: () => navigationRef.current?.getRootState().routeNames.join(),
+  getParent: (id?: string) => navigationRef.current?.getParent(id),
+  getState: () => navigationRef.current?.getRootState() as NavigationState<StackParamList>,
+  getCurrentRoute: () => navigationRef.current?.getCurrentRoute()?.name,
+  isReady: () => navigationRef.isReady(),
+};
+ 
+export default RootNavigation;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/prettify.css b/coverage/lcov-report/prettify.css new file mode 100644 index 00000000..006492ca --- /dev/null +++ b/coverage/lcov-report/prettify.css @@ -0,0 +1,101 @@ +.pln { + color: #000; +} +@media screen { + .str { + color: #080; + } + .kwd { + color: #008; + } + .com { + color: #800; + } + .typ { + color: #606; + } + .lit { + color: #066; + } + .pun, + .opn, + .clo { + color: #660; + } + .tag { + color: #008; + } + .atn { + color: #606; + } + .atv { + color: #080; + } + .dec, + .var { + color: #606; + } + .fun { + color: red; + } +} +@media print, projection { + .str { + color: #060; + } + .kwd { + color: #006; + font-weight: bold; + } + .com { + color: #600; + font-style: italic; + } + .typ { + color: #404; + font-weight: bold; + } + .lit { + color: #044; + } + .pun, + .opn, + .clo { + color: #440; + } + .tag { + color: #006; + font-weight: bold; + } + .atn { + color: #404; + } + .atv { + color: #060; + } +} +pre.prettyprint { + padding: 2px; + border: 1px solid #888; +} +ol.linenums { + margin-top: 0; + margin-bottom: 0; +} +li.L0, +li.L1, +li.L2, +li.L3, +li.L5, +li.L6, +li.L7, +li.L8 { + list-style-type: none; +} +li.L1, +li.L3, +li.L5, +li.L7, +li.L9 { + background: #eee; +} diff --git a/coverage/lcov-report/prettify.js b/coverage/lcov-report/prettify.js new file mode 100644 index 00000000..a398bf22 --- /dev/null +++ b/coverage/lcov-report/prettify.js @@ -0,0 +1,855 @@ +/* eslint-disable */ +window.PR_SHOULD_USE_CONTINUATION = true; +(function () { + var h = ['break,continue,do,else,for,if,return,while']; + var u = [ + h, + 'auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile', + ]; + var p = [u, 'catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof']; + var l = [ + p, + 'alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where', + ]; + var x = [ + p, + 'abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient', + ]; + var R = [ + x, + 'as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var', + ]; + var r = + 'all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes'; + var w = [p, 'debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN']; + var s = + 'caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END'; + var I = [ + h, + 'and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None', + ]; + var f = [ + h, + 'alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END', + ]; + var H = [h, 'case,done,elif,esac,eval,fi,function,in,local,set,then,until']; + var A = [l, R, w, s + I, f, H]; + var e = /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/; + var C = 'str'; + var z = 'kwd'; + var j = 'com'; + var O = 'typ'; + var G = 'lit'; + var L = 'pun'; + var F = 'pln'; + var m = 'tag'; + var E = 'dec'; + var J = 'src'; + var P = 'atn'; + var n = 'atv'; + var N = 'nocode'; + var M = + '(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*'; + function k(Z) { + var ad = 0; + var S = false; + var ac = false; + for (var V = 0, U = Z.length; V < U; ++V) { + var ae = Z[V]; + if (ae.ignoreCase) { + ac = true; + } else { + if (/[a-z]/i.test(ae.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) { + S = true; + ac = false; + break; + } + } + } + var Y = {b: 8, t: 9, n: 10, v: 11, f: 12, r: 13}; + function ab(ah) { + var ag = ah.charCodeAt(0); + if (ag !== 92) { + return ag; + } + var af = ah.charAt(1); + ag = Y[af]; + if (ag) { + return ag; + } else { + if ('0' <= af && af <= '7') { + return parseInt(ah.substring(1), 8); + } else { + if (af === 'u' || af === 'x') { + return parseInt(ah.substring(2), 16); + } else { + return ah.charCodeAt(1); + } + } + } + } + function T(af) { + if (af < 32) { + return (af < 16 ? '\\x0' : '\\x') + af.toString(16); + } + var ag = String.fromCharCode(af); + if (ag === '\\' || ag === '-' || ag === '[' || ag === ']') { + ag = '\\' + ag; + } + return ag; + } + function X(am) { + var aq = am + .substring(1, am.length - 1) + .match(new RegExp('\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]', 'g')); + var ak = []; + var af = []; + var ao = aq[0] === '^'; + for (var ar = ao ? 1 : 0, aj = aq.length; ar < aj; ++ar) { + var ah = aq[ar]; + if (/\\[bdsw]/i.test(ah)) { + ak.push(ah); + } else { + var ag = ab(ah); + var al; + if (ar + 2 < aj && '-' === aq[ar + 1]) { + al = ab(aq[ar + 2]); + ar += 2; + } else { + al = ag; + } + af.push([ag, al]); + if (!(al < 65 || ag > 122)) { + if (!(al < 65 || ag > 90)) { + af.push([Math.max(65, ag) | 32, Math.min(al, 90) | 32]); + } + if (!(al < 97 || ag > 122)) { + af.push([Math.max(97, ag) & ~32, Math.min(al, 122) & ~32]); + } + } + } + } + af.sort(function (av, au) { + return av[0] - au[0] || au[1] - av[1]; + }); + var ai = []; + var ap = [NaN, NaN]; + for (var ar = 0; ar < af.length; ++ar) { + var at = af[ar]; + if (at[0] <= ap[1] + 1) { + ap[1] = Math.max(ap[1], at[1]); + } else { + ai.push((ap = at)); + } + } + var an = ['[']; + if (ao) { + an.push('^'); + } + an.push.apply(an, ak); + for (var ar = 0; ar < ai.length; ++ar) { + var at = ai[ar]; + an.push(T(at[0])); + if (at[1] > at[0]) { + if (at[1] + 1 > at[0]) { + an.push('-'); + } + an.push(T(at[1])); + } + } + an.push(']'); + return an.join(''); + } + function W(al) { + var aj = al.source.match( + new RegExp( + '(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)', + 'g', + ), + ); + var ah = aj.length; + var an = []; + for (var ak = 0, am = 0; ak < ah; ++ak) { + var ag = aj[ak]; + if (ag === '(') { + ++am; + } else { + if ('\\' === ag.charAt(0)) { + var af = +ag.substring(1); + if (af && af <= am) { + an[af] = -1; + } + } + } + } + for (var ak = 1; ak < an.length; ++ak) { + if (-1 === an[ak]) { + an[ak] = ++ad; + } + } + for (var ak = 0, am = 0; ak < ah; ++ak) { + var ag = aj[ak]; + if (ag === '(') { + ++am; + if (an[am] === undefined) { + aj[ak] = '(?:'; + } + } else { + if ('\\' === ag.charAt(0)) { + var af = +ag.substring(1); + if (af && af <= am) { + aj[ak] = '\\' + an[am]; + } + } + } + } + for (var ak = 0, am = 0; ak < ah; ++ak) { + if ('^' === aj[ak] && '^' !== aj[ak + 1]) { + aj[ak] = ''; + } + } + if (al.ignoreCase && S) { + for (var ak = 0; ak < ah; ++ak) { + var ag = aj[ak]; + var ai = ag.charAt(0); + if (ag.length >= 2 && ai === '[') { + aj[ak] = X(ag); + } else { + if (ai !== '\\') { + aj[ak] = ag.replace(/[a-zA-Z]/g, function (ao) { + var ap = ao.charCodeAt(0); + return '[' + String.fromCharCode(ap & ~32, ap | 32) + ']'; + }); + } + } + } + } + return aj.join(''); + } + var aa = []; + for (var V = 0, U = Z.length; V < U; ++V) { + var ae = Z[V]; + if (ae.global || ae.multiline) { + throw new Error('' + ae); + } + aa.push('(?:' + W(ae) + ')'); + } + return new RegExp(aa.join('|'), ac ? 'gi' : 'g'); + } + function a(V) { + var U = /(?:^|\s)nocode(?:\s|$)/; + var X = []; + var T = 0; + var Z = []; + var W = 0; + var S; + if (V.currentStyle) { + S = V.currentStyle.whiteSpace; + } else { + if (window.getComputedStyle) { + S = document.defaultView.getComputedStyle(V, null).getPropertyValue('white-space'); + } + } + var Y = S && 'pre' === S.substring(0, 3); + function aa(ab) { + switch (ab.nodeType) { + case 1: + if (U.test(ab.className)) { + return; + } + for (var ae = ab.firstChild; ae; ae = ae.nextSibling) { + aa(ae); + } + var ad = ab.nodeName; + if ('BR' === ad || 'LI' === ad) { + X[W] = '\n'; + Z[W << 1] = T++; + Z[(W++ << 1) | 1] = ab; + } + break; + case 3: + case 4: + var ac = ab.nodeValue; + if (ac.length) { + if (!Y) { + ac = ac.replace(/[ \t\r\n]+/g, ' '); + } else { + ac = ac.replace(/\r\n?/g, '\n'); + } + X[W] = ac; + Z[W << 1] = T; + T += ac.length; + Z[(W++ << 1) | 1] = ab; + } + break; + } + } + aa(V); + return {sourceCode: X.join('').replace(/\n$/, ''), spans: Z}; + } + function B(S, U, W, T) { + if (!U) { + return; + } + var V = {sourceCode: U, basePos: S}; + W(V); + T.push.apply(T, V.decorations); + } + var v = /\S/; + function o(S) { + var V = undefined; + for (var U = S.firstChild; U; U = U.nextSibling) { + var T = U.nodeType; + V = T === 1 ? (V ? S : U) : T === 3 ? (v.test(U.nodeValue) ? S : V) : V; + } + return V === S ? undefined : V; + } + function g(U, T) { + var S = {}; + var V; + (function () { + var ad = U.concat(T); + var ah = []; + var ag = {}; + for (var ab = 0, Z = ad.length; ab < Z; ++ab) { + var Y = ad[ab]; + var ac = Y[3]; + if (ac) { + for (var ae = ac.length; --ae >= 0; ) { + S[ac.charAt(ae)] = Y; + } + } + var af = Y[1]; + var aa = '' + af; + if (!ag.hasOwnProperty(aa)) { + ah.push(af); + ag[aa] = null; + } + } + ah.push(/[\0-\uffff]/); + V = k(ah); + })(); + var X = T.length; + var W = function (ah) { + var Z = ah.sourceCode, + Y = ah.basePos; + var ad = [Y, F]; + var af = 0; + var an = Z.match(V) || []; + var aj = {}; + for (var ae = 0, aq = an.length; ae < aq; ++ae) { + var ag = an[ae]; + var ap = aj[ag]; + var ai = void 0; + var am; + if (typeof ap === 'string') { + am = false; + } else { + var aa = S[ag.charAt(0)]; + if (aa) { + ai = ag.match(aa[1]); + ap = aa[0]; + } else { + for (var ao = 0; ao < X; ++ao) { + aa = T[ao]; + ai = ag.match(aa[1]); + if (ai) { + ap = aa[0]; + break; + } + } + if (!ai) { + ap = F; + } + } + am = ap.length >= 5 && 'lang-' === ap.substring(0, 5); + if (am && !(ai && typeof ai[1] === 'string')) { + am = false; + ap = J; + } + if (!am) { + aj[ag] = ap; + } + } + var ab = af; + af += ag.length; + if (!am) { + ad.push(Y + ab, ap); + } else { + var al = ai[1]; + var ak = ag.indexOf(al); + var ac = ak + al.length; + if (ai[2]) { + ac = ag.length - ai[2].length; + ak = ac - al.length; + } + var ar = ap.substring(5); + B(Y + ab, ag.substring(0, ak), W, ad); + B(Y + ab + ak, al, q(ar, al), ad); + B(Y + ab + ac, ag.substring(ac), W, ad); + } + } + ah.decorations = ad; + }; + return W; + } + function i(T) { + var W = [], + S = []; + if (T.tripleQuotedStrings) { + W.push([ + C, + /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/, + null, + '\'"', + ]); + } else { + if (T.multiLineStrings) { + W.push([C, /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/, null, '\'"`']); + } else { + W.push([C, /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/, null, '"\'']); + } + } + if (T.verbatimStrings) { + S.push([C, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]); + } + var Y = T.hashComments; + if (Y) { + if (T.cStyleComments) { + if (Y > 1) { + W.push([j, /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, null, '#']); + } else { + W.push([j, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/, null, '#']); + } + S.push([C, /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/, null]); + } else { + W.push([j, /^#[^\r\n]*/, null, '#']); + } + } + if (T.cStyleComments) { + S.push([j, /^\/\/[^\r\n]*/, null]); + S.push([j, /^\/\*[\s\S]*?(?:\*\/|$)/, null]); + } + if (T.regexLiterals) { + var X = '/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/'; + S.push(['lang-regex', new RegExp('^' + M + '(' + X + ')')]); + } + var V = T.types; + if (V) { + S.push([O, V]); + } + var U = ('' + T.keywords).replace(/^ | $/g, ''); + if (U.length) { + S.push([z, new RegExp('^(?:' + U.replace(/[\s,]+/g, '|') + ')\\b'), null]); + } + W.push([F, /^\s+/, null, ' \r\n\t\xA0']); + S.push( + [G, /^@[a-z_$][a-z_$@0-9]*/i, null], + [O, /^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/, null], + [F, /^[a-z_$][a-z_$@0-9]*/i, null], + [G, new RegExp('^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*', 'i'), null, '0123456789'], + [F, /^\\[\s\S]?/, null], + [L, /^.[^\s\w\.$@\'\"\`\/\#\\]*/, null], + ); + return g(W, S); + } + var K = i({keywords: A, hashComments: true, cStyleComments: true, multiLineStrings: true, regexLiterals: true}); + function Q(V, ag) { + var U = /(?:^|\s)nocode(?:\s|$)/; + var ab = /\r\n?|\n/; + var ac = V.ownerDocument; + var S; + if (V.currentStyle) { + S = V.currentStyle.whiteSpace; + } else { + if (window.getComputedStyle) { + S = ac.defaultView.getComputedStyle(V, null).getPropertyValue('white-space'); + } + } + var Z = S && 'pre' === S.substring(0, 3); + var af = ac.createElement('LI'); + while (V.firstChild) { + af.appendChild(V.firstChild); + } + var W = [af]; + function ae(al) { + switch (al.nodeType) { + case 1: + if (U.test(al.className)) { + break; + } + if ('BR' === al.nodeName) { + ad(al); + if (al.parentNode) { + al.parentNode.removeChild(al); + } + } else { + for (var an = al.firstChild; an; an = an.nextSibling) { + ae(an); + } + } + break; + case 3: + case 4: + if (Z) { + var am = al.nodeValue; + var aj = am.match(ab); + if (aj) { + var ai = am.substring(0, aj.index); + al.nodeValue = ai; + var ah = am.substring(aj.index + aj[0].length); + if (ah) { + var ak = al.parentNode; + ak.insertBefore(ac.createTextNode(ah), al.nextSibling); + } + ad(al); + if (!ai) { + al.parentNode.removeChild(al); + } + } + } + break; + } + } + function ad(ak) { + while (!ak.nextSibling) { + ak = ak.parentNode; + if (!ak) { + return; + } + } + function ai(al, ar) { + var aq = ar ? al.cloneNode(false) : al; + var ao = al.parentNode; + if (ao) { + var ap = ai(ao, 1); + var an = al.nextSibling; + ap.appendChild(aq); + for (var am = an; am; am = an) { + an = am.nextSibling; + ap.appendChild(am); + } + } + return aq; + } + var ah = ai(ak.nextSibling, 0); + for (var aj; (aj = ah.parentNode) && aj.nodeType === 1; ) { + ah = aj; + } + W.push(ah); + } + for (var Y = 0; Y < W.length; ++Y) { + ae(W[Y]); + } + if (ag === (ag | 0)) { + W[0].setAttribute('value', ag); + } + var aa = ac.createElement('OL'); + aa.className = 'linenums'; + var X = Math.max(0, (ag - 1) | 0) || 0; + for (var Y = 0, T = W.length; Y < T; ++Y) { + af = W[Y]; + af.className = 'L' + ((Y + X) % 10); + if (!af.firstChild) { + af.appendChild(ac.createTextNode('\xA0')); + } + aa.appendChild(af); + } + V.appendChild(aa); + } + function D(ac) { + var aj = /\bMSIE\b/.test(navigator.userAgent); + var am = /\n/g; + var al = ac.sourceCode; + var an = al.length; + var V = 0; + var aa = ac.spans; + var T = aa.length; + var ah = 0; + var X = ac.decorations; + var Y = X.length; + var Z = 0; + X[Y] = an; + var ar, aq; + for (aq = ar = 0; aq < Y; ) { + if (X[aq] !== X[aq + 2]) { + X[ar++] = X[aq++]; + X[ar++] = X[aq++]; + } else { + aq += 2; + } + } + Y = ar; + for (aq = ar = 0; aq < Y; ) { + var at = X[aq]; + var ab = X[aq + 1]; + var W = aq + 2; + while (W + 2 <= Y && X[W + 1] === ab) { + W += 2; + } + X[ar++] = at; + X[ar++] = ab; + aq = W; + } + Y = X.length = ar; + var ae = null; + while (ah < T) { + var af = aa[ah]; + var S = aa[ah + 2] || an; + var ag = X[Z]; + var ap = X[Z + 2] || an; + var W = Math.min(S, ap); + var ak = aa[ah + 1]; + var U; + if (ak.nodeType !== 1 && (U = al.substring(V, W))) { + if (aj) { + U = U.replace(am, '\r'); + } + ak.nodeValue = U; + var ai = ak.ownerDocument; + var ao = ai.createElement('SPAN'); + ao.className = X[Z + 1]; + var ad = ak.parentNode; + ad.replaceChild(ao, ak); + ao.appendChild(ak); + if (V < S) { + aa[ah + 1] = ak = ai.createTextNode(al.substring(W, S)); + ad.insertBefore(ak, ao.nextSibling); + } + } + V = W; + if (V >= S) { + ah += 2; + } + if (V >= ap) { + Z += 2; + } + } + } + var t = {}; + function c(U, V) { + for (var S = V.length; --S >= 0; ) { + var T = V[S]; + if (!t.hasOwnProperty(T)) { + t[T] = U; + } else { + if (window.console) { + console.warn('cannot override language handler %s', T); + } + } + } + } + function q(T, S) { + if (!(T && t.hasOwnProperty(T))) { + T = /^\s*]*(?:>|$)/], + [j, /^<\!--[\s\S]*?(?:-\->|$)/], + ['lang-', /^<\?([\s\S]+?)(?:\?>|$)/], + ['lang-', /^<%([\s\S]+?)(?:%>|$)/], + [L, /^(?:<[%?]|[%?]>)/], + ['lang-', /^]*>([\s\S]+?)<\/xmp\b[^>]*>/i], + ['lang-js', /^]*>([\s\S]*?)(<\/script\b[^>]*>)/i], + ['lang-css', /^]*>([\s\S]*?)(<\/style\b[^>]*>)/i], + ['lang-in.tag', /^(<\/?[a-z][^<>]*>)/i], + ], + ), + ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl'], + ); + c( + g( + [ + [F, /^[\s]+/, null, ' \t\r\n'], + [n, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '"\''], + ], + [ + [m, /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i], + [P, /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i], + ['lang-uq.val', /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/], + [L, /^[=<>\/]+/], + ['lang-js', /^on\w+\s*=\s*\"([^\"]+)\"/i], + ['lang-js', /^on\w+\s*=\s*\'([^\']+)\'/i], + ['lang-js', /^on\w+\s*=\s*([^\"\'>\s]+)/i], + ['lang-css', /^style\s*=\s*\"([^\"]+)\"/i], + ['lang-css', /^style\s*=\s*\'([^\']+)\'/i], + ['lang-css', /^style\s*=\s*([^\"\'>\s]+)/i], + ], + ), + ['in.tag'], + ); + c(g([], [[n, /^[\s\S]+/]]), ['uq.val']); + c(i({keywords: l, hashComments: true, cStyleComments: true, types: e}), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']); + c(i({keywords: 'null,true,false'}), ['json']); + c(i({keywords: R, hashComments: true, cStyleComments: true, verbatimStrings: true, types: e}), ['cs']); + c(i({keywords: x, cStyleComments: true}), ['java']); + c(i({keywords: H, hashComments: true, multiLineStrings: true}), ['bsh', 'csh', 'sh']); + c(i({keywords: I, hashComments: true, multiLineStrings: true, tripleQuotedStrings: true}), ['cv', 'py']); + c(i({keywords: s, hashComments: true, multiLineStrings: true, regexLiterals: true}), ['perl', 'pl', 'pm']); + c(i({keywords: f, hashComments: true, multiLineStrings: true, regexLiterals: true}), ['rb']); + c(i({keywords: w, cStyleComments: true, regexLiterals: true}), ['js']); + c(i({keywords: r, hashComments: 3, cStyleComments: true, multilineStrings: true, tripleQuotedStrings: true, regexLiterals: true}), ['coffee']); + c(g([], [[C, /^[\s\S]+/]]), ['regex']); + function d(V) { + var U = V.langExtension; + try { + var S = a(V.sourceNode); + var T = S.sourceCode; + V.sourceCode = T; + V.spans = S.spans; + V.basePos = 0; + q(U, T)(V); + D(V); + } catch (W) { + if ('console' in window) { + console.log(W && W.stack ? W.stack : W); + } + } + } + function y(W, V, U) { + var S = document.createElement('PRE'); + S.innerHTML = W; + if (U) { + Q(S, U); + } + var T = {langExtension: V, numberLines: U, sourceNode: S}; + d(T); + return S.innerHTML; + } + function b(ad) { + function Y(af) { + return document.getElementsByTagName(af); + } + var ac = [Y('pre'), Y('code'), Y('xmp')]; + var T = []; + for (var aa = 0; aa < ac.length; ++aa) { + for (var Z = 0, V = ac[aa].length; Z < V; ++Z) { + T.push(ac[aa][Z]); + } + } + ac = null; + var W = Date; + if (!W.now) { + W = { + now: function () { + return +new Date(); + }, + }; + } + var X = 0; + var S; + var ab = /\blang(?:uage)?-([\w.]+)(?!\S)/; + var ae = /\bprettyprint\b/; + function U() { + var ag = window.PR_SHOULD_USE_CONTINUATION ? W.now() + 250 : Infinity; + for (; X < T.length && W.now() < ag; X++) { + var aj = T[X]; + var ai = aj.className; + if (ai.indexOf('prettyprint') >= 0) { + var ah = ai.match(ab); + var am; + if (!ah && (am = o(aj)) && 'CODE' === am.tagName) { + ah = am.className.match(ab); + } + if (ah) { + ah = ah[1]; + } + var al = false; + for (var ak = aj.parentNode; ak; ak = ak.parentNode) { + if ((ak.tagName === 'pre' || ak.tagName === 'code' || ak.tagName === 'xmp') && ak.className && ak.className.indexOf('prettyprint') >= 0) { + al = true; + break; + } + } + if (!al) { + var af = aj.className.match(/\blinenums\b(?::(\d+))?/); + af = af ? (af[1] && af[1].length ? +af[1] : true) : false; + if (af) { + Q(aj, af); + } + S = {langExtension: ah, sourceNode: aj, numberLines: af}; + d(S); + } + } + } + if (X < T.length) { + setTimeout(U, 250); + } else { + if (ad) { + ad(); + } + } + } + U(); + } + window.prettyPrintOne = y; + window.prettyPrint = b; + window.PR = { + createSimpleLexer: g, + registerLangHandler: c, + sourceDecorator: i, + PR_ATTRIB_NAME: P, + PR_ATTRIB_VALUE: n, + PR_COMMENT: j, + PR_DECLARATION: E, + PR_KEYWORD: z, + PR_LITERAL: G, + PR_NOCODE: N, + PR_PLAIN: F, + PR_PUNCTUATION: L, + PR_SOURCE: J, + PR_STRING: C, + PR_TAG: m, + PR_TYPE: O, + }; +})(); +PR.registerLangHandler( + PR.createSimpleLexer( + [], + [ + [PR.PR_DECLARATION, /^]*(?:>|$)/], + [PR.PR_COMMENT, /^<\!--[\s\S]*?(?:-\->|$)/], + [PR.PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/], + ['lang-', /^<\?([\s\S]+?)(?:\?>|$)/], + ['lang-', /^<%([\s\S]+?)(?:%>|$)/], + ['lang-', /^]*>([\s\S]+?)<\/xmp\b[^>]*>/i], + ['lang-handlebars', /^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i], + ['lang-js', /^]*>([\s\S]*?)(<\/script\b[^>]*>)/i], + ['lang-css', /^]*>([\s\S]*?)(<\/style\b[^>]*>)/i], + ['lang-in.tag', /^(<\/?[a-z][^<>]*>)/i], + [PR.PR_DECLARATION, /^{{[#^>/]?\s*[\w.][^}]*}}/], + [PR.PR_DECLARATION, /^{{&?\s*[\w.][^}]*}}/], + [PR.PR_DECLARATION, /^{{{>?\s*[\w.][^}]*}}}/], + [PR.PR_COMMENT, /^{{![^}]*}}/], + ], + ), + ['handlebars', 'hbs'], +); +PR.registerLangHandler( + PR.createSimpleLexer( + [[PR.PR_PLAIN, /^[ \t\r\n\f]+/, null, ' \t\r\n\f']], + [ + [PR.PR_STRING, /^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/, null], + [PR.PR_STRING, /^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/, null], + ['lang-css-str', /^url\(([^\)\"\']*)\)/i], + [PR.PR_KEYWORD, /^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i, null], + ['lang-css-kw', /^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i], + [PR.PR_COMMENT, /^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//], + [PR.PR_COMMENT, /^(?:)/], + [PR.PR_LITERAL, /^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i], + [PR.PR_LITERAL, /^#(?:[0-9a-f]{3}){1,2}/i], + [PR.PR_PLAIN, /^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i], + [PR.PR_PUNCTUATION, /^[^\s\w\'\"]+/], + ], + ), + ['css'], +); +PR.registerLangHandler(PR.createSimpleLexer([], [[PR.PR_KEYWORD, /^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]), ['css-kw']); +PR.registerLangHandler(PR.createSimpleLexer([], [[PR.PR_STRING, /^[^\)\"\']+/]]), ['css-str']); diff --git a/coverage/lcov-report/providers/authentication/SIOPv2Provider.ts.html b/coverage/lcov-report/providers/authentication/SIOPv2Provider.ts.html new file mode 100644 index 00000000..9a088f8f --- /dev/null +++ b/coverage/lcov-report/providers/authentication/SIOPv2Provider.ts.html @@ -0,0 +1,399 @@ + + + + Code coverage report for providers/authentication/SIOPv2Provider.ts + + + + + + + + + +
+
+

All files / providers/authentication SIOPv2Provider.ts

+
+
+ 12.19% + Statements + 5/41 +
+ +
+ 0% + Branches + 0/23 +
+ +
+ 0% + Functions + 0/6 +
+ +
+ 12.19% + Lines + 5/41 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108  +  +  +  +  +  +  +  +  +  +  +  +1x +  +1x +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {CheckLinkedDomain, SupportedVersion, VerifiedAuthorizationRequest} from '@sphereon/did-auth-siop';
+import {getIdentifier, getKey} from '@sphereon/ssi-sdk-ext.did-utils';
+import {ConnectionTypeEnum, IDidAuthConfig} from '@sphereon/ssi-sdk.data-store';
+import {OpSession, VerifiableCredentialsWithDefinition, VerifiablePresentationWithDefinition} from '@sphereon/ssi-sdk.siopv2-oid4vp-op-auth';
+import {OID4VP} from '@sphereon/ssi-sdk.siopv2-oid4vp-op-auth/dist/session/OID4VP';
+import {PresentationSubmission} from '@sphereon/ssi-types'; // FIXME we should fix the export of these objects
+import {IIdentifier} from '@veramo/core';
+import Debug from 'debug';
+ 
+import {APP_ID} from '../../@config/constants';
+import agent, {agentContext, didMethodsSupported, didResolver} from '../../agent';
+ 
+const debug: Debug.Debugger = Debug(`${APP_ID}:authentication`);
+ 
+export const siopGetRequest = async (config: IDidAuthConfig): Promise<VerifiedAuthorizationRequest> => {
+  const session: OpSession = await siopGetSession(config.sessionId).catch(
+    async () => await siopRegisterSession({requestJwtOrUri: config.redirectUrl, sessionId: config.sessionId}),
+  );
+ 
+  console.log(`session: ${JSON.stringify(session.id, null, 2)}`);
+  const verifiedAuthorizationRequest = await session.getAuthorizationRequest();
+  console.log('Request: ' + JSON.stringify(verifiedAuthorizationRequest, null, 2));
+  return verifiedAuthorizationRequest;
+};
+ 
+export const siopGetSession = async (sessionId: string): Promise<OpSession> => {
+  return agent.siopGetOPSession({sessionId});
+};
+ 
+export const siopRegisterSession = async ({requestJwtOrUri, sessionId}: {requestJwtOrUri: string; sessionId?: string}): Promise<OpSession> => {
+  return agent.siopRegisterOPSession({
+    sessionId,
+    op: {
+      checkLinkedDomains: CheckLinkedDomain.NEVER, // fixme: check whether it works and enable
+      resolveOpts: {
+        resolver: didResolver,
+      },
+      supportedDIDMethods: didMethodsSupported,
+    },
+    requestJwtOrUri,
+  });
+};
+ 
+export const siopSendAuthorizationResponse = async (
+  connectionType: ConnectionTypeEnum,
+  args: {
+    sessionId: string;
+    verifiableCredentialsWithDefinition?: VerifiableCredentialsWithDefinition[];
+  },
+) => {
+  if (connectionType !== ConnectionTypeEnum.SIOPv2_OpenID4VP) {
+    return Promise.reject(Error(`No supported authentication provider for type: ${connectionType}`));
+  }
+  const session: OpSession = await agent.siopGetOPSession({sessionId: args.sessionId});
+  const identifiers: Array<IIdentifier> = await session.getSupportedIdentifiers();
+  if (!identifiers || identifiers.length === 0) {
+    throw Error(`No DID methods found in agent that are supported by the relying party`);
+  }
+ 
+  // todo: This should be moved to code calling the sendAuthorizationResponse (this) method, as to allow the user to subselect and approve credentials!
+  let presentationsAndDefs: VerifiablePresentationWithDefinition[] | undefined;
+  let identifier: IIdentifier = identifiers[0];
+  let presentationSubmission: PresentationSubmission | undefined;
+  if (await session.hasPresentationDefinitions()) {
+    const oid4vp: OID4VP = await session.getOID4VP();
+    const request = await session.getAuthorizationRequest();
+    const credentialsAndDefinitions = args.verifiableCredentialsWithDefinition
+      ? args.verifiableCredentialsWithDefinition
+      : await oid4vp.filterCredentialsAgainstAllDefinitions();
+    const domain =
+      ((await request.authorizationRequest.getMergedProperty('client_id')) as string) ??
+      request.issuer ??
+      (request.versions.includes(SupportedVersion.JWT_VC_PRESENTATION_PROFILE_v1)
+        ? 'https://self-issued.me/v2/openid-vc'
+        : 'https://self-issued.me/v2');
+    console.log(`NONCE: ${session.nonce}, domain: ${domain}`);
+    presentationsAndDefs = await oid4vp.createVerifiablePresentations(credentialsAndDefinitions, {
+      identifierOpts: {identifier},
+      proofOpts: {
+        nonce: session.nonce,
+        domain,
+      },
+    });
+    if (!presentationsAndDefs || presentationsAndDefs.length === 0) {
+      throw Error('No verifiable presentations could be created');
+    } else if (presentationsAndDefs.length > 1) {
+      throw Error(`Only one verifiable presentation supported for now. Got ${presentationsAndDefs.length}`);
+    }
+ 
+    identifier = await getIdentifier(presentationsAndDefs[0].identifierOpts, agentContext);
+    presentationSubmission = presentationsAndDefs[0].presentationSubmission;
+  }
+  const kid: string = (await getKey(identifier, 'authentication', session.context)).kid;
+ 
+  console.log('definitions and locations:');
+  // @ts-ignore
+  console.log(JSON.stringify(presentationsAndDefs[0].verifiablePresentation, null, 2));
+  console.log('PRESENTATION SUBMISSION:');
+  console.log(JSON.stringify(presentationSubmission, null, 2));
+  const response = session.sendAuthorizationResponse({
+    verifiablePresentations: presentationsAndDefs?.map(pd => pd.verifiablePresentation),
+    ...(presentationSubmission && {presentationSubmission}),
+    responseSignerOpts: {identifier, kid},
+  });
+ 
+  return await response;
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/providers/authentication/index.html b/coverage/lcov-report/providers/authentication/index.html new file mode 100644 index 00000000..50df8ab4 --- /dev/null +++ b/coverage/lcov-report/providers/authentication/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for providers/authentication + + + + + + + + + +
+
+

All files providers/authentication

+
+
+ 12.19% + Statements + 5/41 +
+ +
+ 0% + Branches + 0/23 +
+ +
+ 0% + Functions + 0/6 +
+ +
+ 12.19% + Lines + 5/41 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
SIOPv2Provider.ts +
+
+
+
+
12.19%5/410%0/230%0/612.19%5/41
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/providers/credential/JwtVcPresentationProfileProvider.ts.html b/coverage/lcov-report/providers/credential/JwtVcPresentationProfileProvider.ts.html new file mode 100644 index 00000000..824897c8 --- /dev/null +++ b/coverage/lcov-report/providers/credential/JwtVcPresentationProfileProvider.ts.html @@ -0,0 +1,330 @@ + + + + Code coverage report for providers/credential/JwtVcPresentationProfileProvider.ts + + + + + + + + + +
+
+

All files / providers/credential JwtVcPresentationProfileProvider.ts

+
+
+ 2.77% + Statements + 1/36 +
+ +
+ 0% + Branches + 0/10 +
+ +
+ 0% + Functions + 0/10 +
+ +
+ 2.77% + Lines + 1/36 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import fetch from 'cross-fetch';
+import Debug from 'debug';
+import jwt_decode from 'jwt-decode';
+import {URL} from 'react-native-url-polyfill';
+ 
+import {APP_ID} from '../../@config/constants';
+import {translate} from '../../localization/Localization';
+import {QrTypesEnum} from '../../types';
+ 
+const debug: Debug.Debugger = Debug(`${APP_ID}:jwt`);
+ 
+class JwtVcPresentationProfileProvider {
+  public getUrl = async (uri: string): Promise<string> => {
+    if (!uri.startsWith(QrTypesEnum.OPENID_VC)) {
+      debug(`Invalid Uri. Uri: ${uri}`);
+      return Promise.reject(Error('Invalid Uri'));
+    }
+ 
+    const requestUri = new URL(uri).searchParams.get('request_uri');
+    if (!requestUri) {
+      debug(`No request uri found`);
+      return Promise.reject(Error('No request uri found'));
+    }
+ 
+    return requestUri;
+  };
+ 
+  public getRequest = async (url: string): Promise<any> => {
+    // TODO typings when process is clear
+    return fetch(url)
+      .then((response: Response) => {
+        if (response.status >= 400) {
+          if (response.status === 404) {
+            return Promise.reject(Error(translate('qr_scanner_qr_no_longer_valid_message')));
+          }
+          debug(`Bad response from server. Code: ${response.status}`);
+          return Promise.reject(Error(`Bad response from server. Code: ${response.status}`));
+        }
+        return response.text();
+      })
+      .then((jwt: string) => {
+        return this.decodeToken(jwt);
+      })
+      .catch((error: Error) => {
+        debug(`Unable to contact server. Error: ${error}`);
+        return Promise.reject(error);
+      });
+  };
+ 
+  public getManifest = async (request: any): Promise<any> => {
+    // TODO typings when process is clear
+    // TODO we need to think about how we can handle getting the credential name
+    // TODO add request type checks when process is clear
+    return fetch(request.claims.vp_token.presentation_definition.input_descriptors[0].issuance[0].manifest)
+      .then(async (response: Response) => {
+        if (response.status >= 400) {
+          debug(`Bad response from server`);
+          return Promise.reject(Error('Bad response from server'));
+        }
+        return response.json();
+      })
+      .then((response: any) => {
+        // TODO typings when process is clear
+        return this.decodeToken(response.token);
+      })
+      .catch(error => {
+        debug(`Unable to contact server. Error: ${error}`);
+        return Promise.reject(error);
+      });
+  };
+ 
+  private decodeToken = (jwt: string): any => {
+    // TODO jwt typings when process is clear
+    const options = {header: false};
+    try {
+      return jwt_decode<any>(jwt, options);
+    } catch (error: unknown) {
+      debug(`Error parsing JWT. ${error}`);
+      return Promise.reject(error);
+    }
+  };
+}
+ 
+export default JwtVcPresentationProfileProvider;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/providers/credential/OpenId4VcIssuanceProvider.ts.html b/coverage/lcov-report/providers/credential/OpenId4VcIssuanceProvider.ts.html new file mode 100644 index 00000000..17604939 --- /dev/null +++ b/coverage/lcov-report/providers/credential/OpenId4VcIssuanceProvider.ts.html @@ -0,0 +1,1368 @@ + + + + Code coverage report for providers/credential/OpenId4VcIssuanceProvider.ts + + + + + + + + + +
+
+

All files / providers/credential OpenId4VcIssuanceProvider.ts

+
+
+ 6.01% + Statements + 8/133 +
+ +
+ 0% + Branches + 0/99 +
+ +
+ 0% + Functions + 0/25 +
+ +
+ 6.1% + Lines + 8/131 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +1x +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {OpenID4VCIClient} from '@sphereon/oid4vci-client';
+import {
+  AccessTokenResponse,
+  AuthzFlowType,
+  CredentialOfferFormat,
+  CredentialResponse,
+  CredentialsSupportedDisplay,
+  CredentialSupported,
+  EndpointMetadataResult,
+  Jwt,
+  OpenId4VCIVersion,
+  ProofOfPossessionCallbacks,
+} from '@sphereon/oid4vci-common';
+import {MetadataDisplay} from '@sphereon/oid4vci-common/lib/types/Generic.types';
+import {KeyUse} from '@sphereon/ssi-sdk-ext.did-resolver-jwk';
+import {getFirstKeyWithRelation} from '@sphereon/ssi-sdk-ext.did-utils';
+import {IBasicCredentialLocaleBranding} from '@sphereon/ssi-sdk.data-store';
+import {_ExtendedIKey} from '@veramo/utils';
+import Debug from 'debug';
+import {DIDDocument} from 'did-resolver';
+ 
+import {APP_ID} from '../../@config/constants';
+import {agentContext, ibCredentialLocaleBrandingFrom} from '../../agent';
+import {translate} from '../../localization/Localization';
+import {getOrCreatePrimaryIdentifier} from '../../services/identityService';
+import {signJWT} from '../../services/signatureService';
+import {
+  IErrorDetails,
+  IGetCredentialsArgs,
+  IGetIssuanceInitiationFromUriArgs,
+  IIssuanceOpts,
+  IServerMetadataAndCryptoMatchingResponse,
+  Oidc4vciErrorEnum,
+  QrTypesEnum,
+  SupportedDidMethodEnum,
+} from '../../types';
+import {KeyTypeFromCryptographicSuite, SignatureAlgorithmFromKey} from '../../utils/KeyUtils';
+import {credentialLocaleBrandingFrom} from '../../utils/mappers/branding/OIDC4VCIBrandingMapper';
+ 
+const {v4: uuidv4} = require('uuid');
+ 
+const debug: Debug.Debugger = Debug(`${APP_ID}:openid4vci`);
+ 
+// TODO these preferences need to come from the user
+export const vcFormatPreferences = ['jwt_vc_json', 'jwt_vc', 'ldp_vc'];
+ 
+export type JsonLdSignatureSuite = 'Ed25519Signature2018' | 'EcdsaSecp256k1Signature2019' | 'Ed25519Signature2020' | 'JsonWebSignature2020'; //|
+// "JcsEd25519Signature2020"
+ 
+export enum LDPProofTypeEnum {
+  Ed25519Signature2018 = 'Ed25519Signature2018',
+  EcdsaSecp256k1Signature2019 = 'EcdsaSecp256k1Signature2019',
+  Ed25519Signature2020 = 'Ed25519Signature2020',
+  JsonWebSignature2020 = 'JsonWebSignature2020',
+  JcsEd25519Signature2020 = 'JcsEd25519Signature2020',
+}
+ 
+export const didMethodPreferences = [SupportedDidMethodEnum.DID_KEY, SupportedDidMethodEnum.DID_JWK, SupportedDidMethodEnum.DID_ION];
+ 
+export const jsonldCryptographicSuitePreferences = [
+  'Ed25519Signature2018',
+  'EcdsaSecp256k1Signature2019',
+  'Ed25519Signature2020',
+  'JsonWebSignature2020',
+  // "JcsEd25519Signature2020"
+];
+ 
+export enum SignatureAlgorithmEnum {
+  EdDSA = 'EdDSA',
+  ES256 = 'ES256',
+  ES256K = 'ES256K',
+}
+ 
+export const jwtCryptographicSuitePreferences = [SignatureAlgorithmEnum.ES256K, SignatureAlgorithmEnum.ES256, SignatureAlgorithmEnum.EdDSA];
+ 
+export interface IErrorDetailsOpts {
+  title?: string;
+  message?: string;
+  detailsMessage?: string;
+}
+ 
+export interface CredentialFromOffer {
+  id?: string;
+  issuanceOpt: IIssuanceOpts;
+  credentialResponse: CredentialResponse;
+}
+ 
+class OpenId4VcIssuanceProvider {
+  public static getErrorDetails = (error: Oidc4vciErrorEnum | string, opts?: IErrorDetailsOpts): IErrorDetails => {
+    // We want to move this over to some general error handling within the app
+    const genericError = {
+      title: opts?.title ?? translate('error_generic_title'),
+      message: opts?.message ?? translate('error_generic_message'),
+      detailsMessage: `<b>${opts?.detailsMessage ?? translate('error_details_generic_message')}</b>`,
+    };
+ 
+    switch (error) {
+      case Oidc4vciErrorEnum.INVALID_REQUEST:
+        return {
+          ...genericError,
+          detailsTitle: translate('oidc4vci_error_invalid_request'),
+        };
+      case Oidc4vciErrorEnum.INVALID_CLIENT:
+        return {
+          ...genericError,
+          detailsTitle: translate('oidc4vci_error_invalid_client'),
+        };
+      case Oidc4vciErrorEnum.INVALID_GRANT:
+        return {
+          ...genericError,
+          detailsTitle: translate('oidc4vci_error_invalid_grant'),
+        };
+      case Oidc4vciErrorEnum.UNAUTHORIZED_CLIENT:
+        return {
+          ...genericError,
+          detailsTitle: translate('oidc4vci_error_unauthorized_client'),
+        };
+      case Oidc4vciErrorEnum.UNSUPPORTED_GRANT_TYPE:
+        return {
+          ...genericError,
+          detailsTitle: translate('oidc4vci_error_unsupported_grant_type'),
+        };
+      case Oidc4vciErrorEnum.INVALID_SCOPE:
+        return {
+          ...genericError,
+          detailsTitle: translate('oidc4vci_error_unsupported_invalid_scope'),
+        };
+      case Oidc4vciErrorEnum.INVALID_OR_MISSING_PROOF:
+        return {
+          ...genericError,
+          detailsTitle: translate('oidc4vci_error_invalid_or_missing_proof'),
+        };
+      case Oidc4vciErrorEnum.VERIFICATION_FAILED:
+        return {
+          ...genericError,
+          detailsTitle: translate('credential_verification_failed_message'),
+        };
+      default:
+        return {
+          ...genericError,
+          detailsTitle: translate('error_details_generic_title'),
+        };
+    }
+  };
+  private readonly client: OpenID4VCIClient;
+  private serverMetadata: EndpointMetadataResult | undefined;
+  private credentialsSupported: Array<CredentialSupported> | undefined;
+  private issuanceOpts: Array<IIssuanceOpts> | undefined;
+  private accessTokenResponse: AccessTokenResponse | undefined;
+  private credentialBranding: Map<string, Array<IBasicCredentialLocaleBranding>> | undefined;
+  private issuerBranding: MetadataDisplay[] | undefined;
+ 
+  private constructor(client: OpenID4VCIClient) {
+    this.client = client;
+  }
+ 
+  public static initiationFromUri = async ({uri}: IGetIssuanceInitiationFromUriArgs): Promise<OpenId4VcIssuanceProvider> => {
+    if (!uri || !(uri.startsWith(QrTypesEnum.OPENID_INITIATE_ISSUANCE) || uri.startsWith(QrTypesEnum.OPENID_CREDENTIAL_OFFER))) {
+      console.log(`Invalid Uri: ${uri}`);
+      return Promise.reject(Error('Invalid Uri'));
+    }
+    return new OpenId4VcIssuanceProvider(
+      await OpenID4VCIClient.fromURI({
+        uri,
+        flowType: AuthzFlowType.PRE_AUTHORIZED_CODE_FLOW,
+      }),
+    );
+  };
+ 
+  public getCredentialsFromIssuance = async ({pin, credentials}: IGetCredentialsArgs): Promise<Array<CredentialFromOffer>> => {
+    const matches = await this.getServerMetadataAndPerformCryptoMatching();
+    const credentialResponses: Array<CredentialFromOffer> = [];
+    // const initTypes = this.client.getCredentialTypes();
+    for (const issuanceOpt of matches.issuanceOpts) {
+      /*  if (!initTypes.includes(credentialType)) {
+        continue;
+      }*/
+      const credentialResponse = await this.getCredential({
+        issuanceOpt,
+        pin,
+      });
+      credentialResponses.push({
+        id: issuanceOpt.id,
+        issuanceOpt,
+        credentialResponse,
+      });
+    }
+ 
+    if (credentialResponses.length === 0) {
+      return Promise.reject(Error('Could not get credentials from issuance and match them on supported types.'));
+    }
+ 
+    return credentialResponses;
+  };
+ 
+  public getCredential = async ({issuanceOpt, pin}: {pin?: string; issuanceOpt: IIssuanceOpts}): Promise<CredentialResponse> => {
+    if (!issuanceOpt) {
+      return Promise.reject(Error(`Cannot get credential issuance options`));
+    }
+    const identifier = await getOrCreatePrimaryIdentifier({
+      method: issuanceOpt.didMethod,
+      createOpts: {options: {type: issuanceOpt.keyType, use: KeyUse.Signature}},
+    });
+    const key =
+      (await getFirstKeyWithRelation(identifier, agentContext, 'authentication', false)) ||
+      ((await getFirstKeyWithRelation(identifier, agentContext, 'verificationMethod', true)) as _ExtendedIKey);
+    const kid = key.meta.verificationMethod.id;
+    const alg = SignatureAlgorithmFromKey(key);
+ 
+    const callbacks: ProofOfPossessionCallbacks<DIDDocument> = {
+      signCallback: (jwt: Jwt, kid?: string) => {
+        console.log(`header: ${JSON.stringify({...jwt.header, kid})}`);
+        console.log(`payload: ${JSON.stringify({...jwt.payload})}`);
+        return signJWT({
+          identifier,
+          // eslint-disable-next-line @typescript-eslint/ban-ts-comment
+          // @ts-ignore
+          header: {...jwt.header, kid},
+          payload: {...jwt.payload},
+          // TODO fix non null assertion
+          options: {issuer: jwt.payload.iss!, expiresIn: jwt.payload.exp, canonicalize: false},
+        });
+      },
+    };
+ 
+    try {
+      // We need to make sure we have acquired the access token
+      await this.acquireAccessToken({pin});
+ 
+      console.log(`cred type: ${JSON.stringify(issuanceOpt.types)}, format: ${issuanceOpt.format}, kid: ${kid}, alg: ${alg}`);
+      return await this.client.acquireCredentials({
+        credentialTypes: issuanceOpt.types.filter(type => type !== 'VerifiableCredential'),
+        proofCallbacks: callbacks,
+        format: issuanceOpt.format,
+        kid,
+        alg,
+        jti: uuidv4(),
+      });
+    } catch (error) {
+      console.log(`Unable to get credential: ${error}`);
+      return Promise.reject(error);
+    }
+  };
+ 
+  private static determineClientId(issuer?: string) {
+    //FIXME: Remove. Needs to move to party/connection management. Crossword expects a certain clientID
+    return issuer !== undefined && issuer.includes('identiproof') ? 'default-pre-auth-client' : APP_ID;
+  }
+ 
+  public getServerMetadataAndPerformCryptoMatching = async (): Promise<IServerMetadataAndCryptoMatchingResponse> => {
+    if (!this.serverMetadata) {
+      this.serverMetadata = await this.client.retrieveServerMetadata();
+    }
+    if (!this.credentialsSupported || this.credentialsSupported.length === 0) {
+      // todo: remove format here. This is just a temp hack for V11+ issuance of only one credential. Having a single array with formats for multiple credentials will not work. This should be handled in VCI itself
+      let format: string[] | undefined = undefined;
+      if (this.client.version() > OpenId4VCIVersion.VER_1_0_09 && typeof this.client.credentialOffer.credential_offer === 'object') {
+        format = this.client.credentialOffer.credential_offer.credentials
+          .filter(c => typeof c !== 'string')
+          .map(c => (c as CredentialOfferFormat).format);
+        if (format.length === 0) {
+          format = undefined; // Otherwise we would match nothing
+        }
+      }
+      this.credentialsSupported = await this.getPreferredCredentialFormats(this.client.getCredentialsSupported(true, format));
+    }
+    if (!this.issuerBranding) {
+      this.issuerBranding = this.serverMetadata.credentialIssuerMetadata?.display;
+    }
+ 
+    if (!this.credentialBranding) {
+      this.credentialBranding = new Map<string, Array<IBasicCredentialLocaleBranding>>();
+      await Promise.all(
+        this.credentialsSupported.map(async (metadata: CredentialSupported): Promise<void> => {
+          const localeBranding: Array<IBasicCredentialLocaleBranding> = await Promise.all(
+            (metadata.display ?? []).map(
+              async (display: CredentialsSupportedDisplay): Promise<IBasicCredentialLocaleBranding> =>
+                await ibCredentialLocaleBrandingFrom({localeBranding: await credentialLocaleBrandingFrom(display)}),
+            ),
+          );
+ 
+          const credentialTypes: Array<string> =
+            metadata.types.length > 1
+              ? metadata.types.filter((type: string) => type !== 'VerifiableCredential')
+              : metadata.types.length === 0
+              ? ['VerifiableCredential']
+              : metadata.types;
+ 
+          if (this.credentialBranding) {
+            this.credentialBranding.set(credentialTypes[0], localeBranding); // TODO for now taking the first type
+          }
+        }),
+      );
+    }
+ 
+    return {
+      issuerBranding: this.issuerBranding,
+      serverMetadata: this.serverMetadata,
+      credentialsSupported: this.credentialsSupported,
+      issuanceOpts: await this.getIssuanceOpts(),
+      credentialBranding: this.credentialBranding,
+    };
+  };
+ 
+  public acquireAccessToken = async ({pin}: {pin?: string}): Promise<AccessTokenResponse> => {
+    if (!this.accessTokenResponse) {
+      const clientId = OpenId4VcIssuanceProvider.determineClientId(this.serverMetadata?.issuer);
+      this.accessTokenResponse = await this.client.acquireAccessToken({pin, clientId});
+      console.log(`OpenId4VcIssuanceProvider.accessTokenResponse accessTokenResponse: ${this.accessTokenResponse}`);
+    }
+    return this.accessTokenResponse;
+  };
+ 
+  private getPreferredCredentialFormats = async (credentials: Array<CredentialSupported>): Promise<Array<CredentialSupported>> => {
+    // Group credentials based on types as we now have multiple entries for one vc with different formats
+    const groupedTypes = Array.from(
+      credentials
+        .reduce(
+          (map: Map<any, any>, value: CredentialSupported) => map.set(value.types.toString(), [...(map.get(value.types.toString()) || []), value]),
+          new Map(),
+        )
+        .values(),
+    );
+ 
+    const preferredCredentials: Array<CredentialSupported> = [];
+ 
+    for (const group of groupedTypes) {
+      for (const vcFormatPreference of vcFormatPreferences) {
+        const credentialSupported = group.find(
+          (credentialSupported: CredentialSupported): boolean => credentialSupported.format === vcFormatPreference,
+        );
+        if (credentialSupported) {
+          preferredCredentials.push(credentialSupported);
+          break;
+        }
+      }
+    }
+ 
+    return preferredCredentials;
+  };
+ 
+  private getIssuanceOpts = async (): Promise<Array<IIssuanceOpts>> => {
+    if (this.issuanceOpts && this.issuanceOpts.length > 0) {
+      return this.issuanceOpts;
+    }
+    if (!this.credentialsSupported) {
+      return Promise.reject(Error('No credentials supported'));
+    }
+    const issuanceOpts: Array<IIssuanceOpts> = [];
+ 
+    for (const credentialSupported of this.credentialsSupported) {
+      if (!this.serverMetadata?.credentialIssuerMetadata) {
+        issuanceOpts.push(this.defaultIssuanceOpts(credentialSupported));
+        continue;
+      }
+ 
+      const cryptographicSuite: string = await this.getIssuanceCryptoSuite({credentialSupported});
+      const didMethod: SupportedDidMethodEnum = await this.getIssuanceDidMethod(credentialSupported);
+ 
+      issuanceOpts.push({
+        ...credentialSupported,
+        didMethod,
+        format: credentialSupported.format,
+        keyType: KeyTypeFromCryptographicSuite(cryptographicSuite),
+      } as IIssuanceOpts);
+    }
+ 
+    this.issuanceOpts = issuanceOpts;
+    return this.issuanceOpts;
+  };
+ 
+  private defaultIssuanceOpts(credentialSupported: CredentialSupported): IIssuanceOpts {
+    console.log(
+      `WARNING: Reverting to default for key/signature suites for credential type '${JSON.stringify(
+        credentialSupported.types,
+      )}', as no Server Metadata or no metadata match was present!`,
+    );
+    return {
+      ...credentialSupported,
+      didMethod: SupportedDidMethodEnum.DID_JWK,
+      keyType: 'Secp256k1',
+    };
+  }
+ 
+  private getIssuanceCryptoSuite = async ({credentialSupported}: {credentialSupported: CredentialSupported}): Promise<string> => {
+    const suites_supported = credentialSupported.cryptographic_suites_supported ?? [];
+ 
+    // TODO: Return array, so the wallet/user could choose
+    switch (credentialSupported.format) {
+      case 'jwt':
+      case 'jwt_vc_json':
+      case 'jwt_vc': {
+        const supportedPreferences = jwtCryptographicSuitePreferences.filter((suite: SignatureAlgorithmEnum) => suites_supported.includes(suite));
+        // if we cannot find supported cryptographic suites, we just try with the first preference
+        return supportedPreferences.length > 0 ? supportedPreferences[0] : jwtCryptographicSuitePreferences[0];
+      }
+      case 'ldp':
+      case 'jwt_vc_json_ld':
+      case 'ldp_vc': {
+        const supportedPreferences = jsonldCryptographicSuitePreferences.filter((suite: string) => suites_supported.includes(suite));
+        // if we cannot find supported cryptographic suites, we just try with the first preference
+        return supportedPreferences.length > 0 ? supportedPreferences[0] : jsonldCryptographicSuitePreferences[0];
+      }
+      default:
+        return Promise.reject(Error(`Credential format '${credentialSupported.format}' not supported`));
+    }
+  };
+ 
+  private getIssuanceDidMethod = async (credentialSupported: CredentialSupported): Promise<SupportedDidMethodEnum> => {
+    const {format, cryptographic_binding_methods_supported} = credentialSupported;
+    if (cryptographic_binding_methods_supported && Array.isArray(cryptographic_binding_methods_supported)) {
+      const method = didMethodPreferences.find(method =>
+        cryptographic_binding_methods_supported.includes(`did:${method.toLowerCase().replace('did:', '')}`),
+      );
+      if (method) {
+        return method;
+      } else if (cryptographic_binding_methods_supported.includes('did')) {
+        return format ? didMethodPreferences[1] : didMethodPreferences[0];
+      }
+    }
+    if (!format || (format.includes('jwt') && !format?.includes('jwt_vc_json_ld'))) {
+      return format ? didMethodPreferences[1] : didMethodPreferences[0];
+    } else {
+      // JsonLD
+      return didMethodPreferences[0];
+    }
+  };
+}
+ 
+export default OpenId4VcIssuanceProvider;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/providers/credential/index.html b/coverage/lcov-report/providers/credential/index.html new file mode 100644 index 00000000..28003226 --- /dev/null +++ b/coverage/lcov-report/providers/credential/index.html @@ -0,0 +1,134 @@ + + + + Code coverage report for providers/credential + + + + + + + + + +
+
+

All files providers/credential

+
+
+ 5.32% + Statements + 9/169 +
+ +
+ 0% + Branches + 0/109 +
+ +
+ 0% + Functions + 0/35 +
+ +
+ 5.38% + Lines + 9/167 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
+ JwtVcPresentationProfileProvider.ts + +
+
+
+
+
2.77%1/360%0/100%0/102.77%1/36
+ OpenId4VcIssuanceProvider.ts + +
+
+
+
+
6.01%8/1330%0/990%0/256.1%8/131
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/providers/touch/OnTouchProvider.tsx.html b/coverage/lcov-report/providers/touch/OnTouchProvider.tsx.html new file mode 100644 index 00000000..789a168e --- /dev/null +++ b/coverage/lcov-report/providers/touch/OnTouchProvider.tsx.html @@ -0,0 +1,222 @@ + + + + Code coverage report for providers/touch/OnTouchProvider.tsx + + + + + + + + + +
+
+

All files / providers/touch OnTouchProvider.tsx

+
+
+ 100% + Statements + 13/13 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 5/5 +
+ +
+ 100% + Lines + 13/13 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49  +  +  +  +  +  +  +  +  +  +1x +3x +3x +3x +  +  +  +3x +3x +55x +  +  +3x +3x +  +  +  +3x +55x +55x +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {useNavigation} from '@react-navigation/native';
+import React, {ReactNode, useEffect, useState} from 'react';
+ 
+import OnTouchContext from '../../contexts/OnTouchContext';
+import {SSIOnTouchProviderContainerStyled as Container} from '../../styles/components';
+ 
+interface OnTouchProviderProps {
+  children: ReactNode;
+}
+ 
+const OnTouchProvider: React.FC<OnTouchProviderProps> = ({children}) => {
+  const [showProfileMenu, setShowProfileMenu] = useState(false);
+  const [showMoreMenu, setShowMoreMenu] = useState(false);
+  const navigation = useNavigation();
+ 
+  // we need this as the app can navigate (lock) when pressing os specific buttons which will not trigger handleTouch.
+  // This will listen to any navigation state changes and closes the menus
+  useEffect(() => {
+    const unsubscribe = navigation.addListener('state', () => {
+      handleTouch();
+    });
+ 
+    return () => {
+      unsubscribe();
+    };
+  }, [navigation, showProfileMenu, showMoreMenu]);
+ 
+  const handleTouch = () => {
+    setShowProfileMenu(false);
+    setShowMoreMenu(false);
+  };
+ 
+  return (
+    <Container onTouchStart={handleTouch}>
+      <OnTouchContext.Provider
+        value={{
+          showProfileMenu,
+          setShowProfileMenu,
+          showMoreMenu,
+          setShowMoreMenu,
+        }}>
+        {children}
+      </OnTouchContext.Provider>
+    </Container>
+  );
+};
+ 
+export default OnTouchProvider;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/providers/touch/index.html b/coverage/lcov-report/providers/touch/index.html new file mode 100644 index 00000000..298a4271 --- /dev/null +++ b/coverage/lcov-report/providers/touch/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for providers/touch + + + + + + + + + +
+
+

All files providers/touch

+
+
+ 100% + Statements + 13/13 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 5/5 +
+ +
+ 100% + Lines + 13/13 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
OnTouchProvider.tsx +
+
+
+
+
100%13/13100%0/0100%5/5100%13/13
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/Onboarding/SSIPersonalDataScreen/index.html b/coverage/lcov-report/screens/Onboarding/SSIPersonalDataScreen/index.html new file mode 100644 index 00000000..bfadaa23 --- /dev/null +++ b/coverage/lcov-report/screens/Onboarding/SSIPersonalDataScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for screens/Onboarding/SSIPersonalDataScreen + + + + + + + + + +
+
+

All files screens/Onboarding/SSIPersonalDataScreen

+
+
+ 59.37% + Statements + 19/32 +
+ +
+ 0% + Branches + 0/6 +
+ +
+ 54.54% + Functions + 6/11 +
+ +
+ 59.37% + Lines + 19/32 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
59.37%19/320%0/654.54%6/1159.37%19/32
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/Onboarding/SSIPersonalDataScreen/index.tsx.html b/coverage/lcov-report/screens/Onboarding/SSIPersonalDataScreen/index.tsx.html new file mode 100644 index 00000000..2154dfc2 --- /dev/null +++ b/coverage/lcov-report/screens/Onboarding/SSIPersonalDataScreen/index.tsx.html @@ -0,0 +1,459 @@ + + + + Code coverage report for screens/Onboarding/SSIPersonalDataScreen/index.tsx + + + + + + + + + +
+
+

All files / screens/Onboarding/SSIPersonalDataScreen index.tsx

+
+
+ 59.37% + Statements + 19/32 +
+ +
+ 0% + Branches + 0/6 +
+ +
+ 54.54% + Functions + 6/11 +
+ +
+ 59.37% + Lines + 19/32 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +15x +  +  +  +  +15x +  +15x +3x +  +  +15x +  +  +  +  +  +  +15x +3x +  +  +15x +  +  +  +  +  +  +15x +5x +5x +  +  +15x +  +  +  +  +  +  +15x +  +  +  +  +15x +15x +  +  +15x +5x +  +  +  +15x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {useBackHandler} from '@react-native-community/hooks';
+import {NativeStackScreenProps} from '@react-navigation/native-stack';
+import React, {FC} from 'react';
+import {Keyboard, TouchableWithoutFeedback} from 'react-native';
+ 
+import {EMAIL_ADDRESS_MAX_LENGTH, EMAIL_ADDRESS_VALIDATION_REGEX, FIRST_NAME_MAX_LENGTH, LAST_NAME_MAX_LENGTH} from '../../../@config/constants';
+import SSIButtonsContainer from '../../../components/containers/SSIButtonsContainer';
+import SSITextInputField from '../../../components/fields/SSITextInputField';
+import {translate} from '../../../localization/Localization';
+import {
+  SSIFullHeightScrollViewContainer as SSIScrollView,
+  SSIPersonalDataScreenContainerStyled as Container,
+  SSIPersonalDataScreenTextInputContainerStyled as TextInputContainer,
+  SSIPersonalDataScreenTextInputsContainerStyled as TextInputsContainer,
+} from '../../../styles/components';
+import {ScreenRoutesEnum, StackParamList} from '../../../types';
+ 
+type PersonalDataProps = NativeStackScreenProps<StackParamList, ScreenRoutesEnum.PERSONAL_DATA>;
+ 
+const SSIPersonalDataScreen: FC<PersonalDataProps> = (props: PersonalDataProps): JSX.Element => {
+  useBackHandler(() => {
+    void props.route.params.onBack();
+    // make sure event stops here
+    return true;
+  });
+  const personalData = props.route.params.context.personalData;
+ 
+  const onFirstNameChange = async (value: string): Promise<void> => {
+    personalData.firstName = value.trim();
+  };
+ 
+  const onFirstNameValidation = async (value: string): Promise<void> => {
+    onPersonalData();
+    if (value.length === 0) {
+      return Promise.reject(Error(translate('first_name_invalid_message')));
+    }
+  };
+ 
+  const onLastNameChange = async (value: string): Promise<void> => {
+    personalData.lastName = value.trim();
+  };
+ 
+  const onLastNameValidation = async (value: string): Promise<void> => {
+    onPersonalData();
+    if (value.length === 0) {
+      return Promise.reject(Error(translate('last_name_invalid_message')));
+    }
+  };
+ 
+  const onEmailAddressChange = async (value: string): Promise<void> => {
+    personalData.emailAddress = value.toLowerCase().trim();
+    onPersonalData(); // We are doing this on change, given the user otherwise need to tap outside of the input to trigger validation and enable the next button
+  };
+ 
+  const onEmailAddressValidation = async (value: string): Promise<void> => {
+    onPersonalData();
+    if (!EMAIL_ADDRESS_VALIDATION_REGEX.test(value)) {
+      return Promise.reject(Error(translate('email_address_invalid_message')));
+    }
+  };
+ 
+  const onNext = async (): Promise<void> => {
+    Keyboard.dismiss();
+    props.route.params.onNext(personalData);
+  };
+ 
+  const isDisabled = (): boolean => {
+    return props.route.params.isDisabled(personalData);
+  };
+ 
+  const onPersonalData = () => {
+    props.route.params.onPersonalData(personalData);
+  };
+ 
+ 
+  return (
+    <TouchableWithoutFeedback onPress={Keyboard.dismiss} accessible={false}>
+      <Container>
+        <SSIScrollView>
+          <TextInputsContainer>
+            <TextInputContainer>
+              <SSITextInputField
+                autoComplete={'name-given'}
+                autoFocus={true}
+                initialValue={personalData.firstName}
+                label={translate('first_name_label')}
+                maxLength={FIRST_NAME_MAX_LENGTH}
+                onChangeText={onFirstNameChange}
+                onEndEditing={onFirstNameValidation}
+                placeholderValue={translate('first_name_placeholder')}
+              />
+            </TextInputContainer>
+            <TextInputContainer>
+              <SSITextInputField
+                autoComplete={'name-family'}
+                initialValue={personalData.lastName}
+                label={translate('last_name_label')}
+                maxLength={LAST_NAME_MAX_LENGTH}
+                onChangeText={onLastNameChange}
+                onEndEditing={onLastNameValidation}
+                placeholderValue={translate('last_name_placeholder')}
+              />
+            </TextInputContainer>
+            <SSITextInputField
+              label={translate('email_address_label')}
+              initialValue={personalData.emailAddress}
+              maxLength={EMAIL_ADDRESS_MAX_LENGTH}
+              autoComplete={'email'}
+              onChangeText={onEmailAddressChange}
+              onEndEditing={onEmailAddressValidation}
+              placeholderValue={translate('email_address_placeholder')}
+            />
+          </TextInputsContainer>
+          <SSIButtonsContainer
+            primaryButton={{
+              caption: translate('action_next_label'),
+              disabled: isDisabled(),
+              onPress: onNext,
+            }}
+          />
+        </SSIScrollView>
+      </Container>
+    </TouchableWithoutFeedback>
+  );
+};
+ 
+export default SSIPersonalDataScreen;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/Onboarding/SSIPinCodeSetScreen/index.html b/coverage/lcov-report/screens/Onboarding/SSIPinCodeSetScreen/index.html new file mode 100644 index 00000000..85a783d2 --- /dev/null +++ b/coverage/lcov-report/screens/Onboarding/SSIPinCodeSetScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for screens/Onboarding/SSIPinCodeSetScreen + + + + + + + + + +
+
+

All files screens/Onboarding/SSIPinCodeSetScreen

+
+
+ 75% + Statements + 6/8 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 66.66% + Functions + 2/3 +
+ +
+ 75% + Lines + 6/8 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
75%6/8100%0/066.66%2/375%6/8
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/Onboarding/SSIPinCodeSetScreen/index.tsx.html b/coverage/lcov-report/screens/Onboarding/SSIPinCodeSetScreen/index.tsx.html new file mode 100644 index 00000000..b5f2a48f --- /dev/null +++ b/coverage/lcov-report/screens/Onboarding/SSIPinCodeSetScreen/index.tsx.html @@ -0,0 +1,222 @@ + + + + Code coverage report for screens/Onboarding/SSIPinCodeSetScreen/index.tsx + + + + + + + + + +
+
+

All files / screens/Onboarding/SSIPinCodeSetScreen index.tsx

+
+
+ 75% + Statements + 6/8 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 66.66% + Functions + 2/3 +
+ +
+ 75% + Lines + 6/8 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49  +  +  +  +  +  +  +  +  +  +  +  +  +1x +5x +  +  +  +  +  +  +5x +4x +  +  +  +  +  +5x +  +5x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {useBackHandler} from '@react-native-community/hooks';
+import {NativeStackScreenProps} from '@react-navigation/native-stack';
+import React, {FC} from 'react';
+import {View} from 'react-native';
+import {v4} from 'uuid';
+import {PIN_CODE_LENGTH} from '../../../@config/constants';
+import SSIPinCode from '../../../components/pinCodes/SSIPinCode';
+import {translate} from '../../../localization/Localization';
+import {SSIBasicHorizontalCenterContainerStyled as Container, SSIStatusBarDarkModeStyled as StatusBar} from '../../../styles/components';
+import {PinCodeMode, ScreenRoutesEnum, StackParamList} from '../../../types';
+ 
+type PinCodeSetProps = NativeStackScreenProps<StackParamList, ScreenRoutesEnum.PIN_CODE_SET>;
+ 
+const SSIPinCodeSetScreen: FC<PinCodeSetProps> = (props: PinCodeSetProps): JSX.Element => {
+  useBackHandler(() => {
+    void props.route.params.onBack();
+    // make sure event stops here
+    return true;
+  });
+ 
+ 
+  const onVerification = async (value: string): Promise<void> => {
+    await props.route.params.onNext(value);
+  };
+ 
+  // We use a UUID in the key to ensure we always refresh the pincode on the Set screen
+ 
+  // We always set the pincode to an empty value for this screen
+  props.route.params.context.pinCode = ''
+ 
+  return (
+    <Container>
+      <StatusBar />
+      <View style={{marginTop: 110}} id={PinCodeMode.CHOOSE_PIN}>
+        <SSIPinCode
+          key={`${PinCodeMode.CHOOSE_PIN}-${v4()}`}
+          length={PIN_CODE_LENGTH}
+          accessibilityLabel={translate('pin_code_accessibility_label')}
+          accessibilityHint={translate('pin_code_accessibility_hint')}
+          errorMessage={translate('pin_code_invalid_code_message')}
+          onVerification={onVerification}
+        />
+      </View>
+    </Container>
+  );
+};
+ 
+export default SSIPinCodeSetScreen;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/Onboarding/SSIPinCodeVerifyScreen/index.html b/coverage/lcov-report/screens/Onboarding/SSIPinCodeVerifyScreen/index.html new file mode 100644 index 00000000..6135c1f4 --- /dev/null +++ b/coverage/lcov-report/screens/Onboarding/SSIPinCodeVerifyScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for screens/Onboarding/SSIPinCodeVerifyScreen + + + + + + + + + +
+
+

All files screens/Onboarding/SSIPinCodeVerifyScreen

+
+
+ 77.77% + Statements + 7/9 +
+ +
+ 100% + Branches + 2/2 +
+ +
+ 66.66% + Functions + 2/3 +
+ +
+ 77.77% + Lines + 7/9 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
77.77%7/9100%2/266.66%2/377.77%7/9
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/Onboarding/SSIPinCodeVerifyScreen/index.tsx.html b/coverage/lcov-report/screens/Onboarding/SSIPinCodeVerifyScreen/index.tsx.html new file mode 100644 index 00000000..ca818a44 --- /dev/null +++ b/coverage/lcov-report/screens/Onboarding/SSIPinCodeVerifyScreen/index.tsx.html @@ -0,0 +1,213 @@ + + + + Code coverage report for screens/Onboarding/SSIPinCodeVerifyScreen/index.tsx + + + + + + + + + +
+
+

All files / screens/Onboarding/SSIPinCodeVerifyScreen index.tsx

+
+
+ 77.77% + Statements + 7/9 +
+ +
+ 100% + Branches + 2/2 +
+ +
+ 66.66% + Functions + 2/3 +
+ +
+ 77.77% + Lines + 7/9 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46  +  +  +  +  +  +  +  +  +  +  +  +  +1x +4x +  +  +  +  +  +4x +5x +1x +  +4x +  +  +4x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {useBackHandler} from '@react-native-community/hooks';
+import {NativeStackScreenProps} from '@react-navigation/native-stack';
+import React, {FC} from 'react';
+import {View} from 'react-native';
+ 
+import {PIN_CODE_LENGTH} from '../../../@config/constants';
+import SSIPinCode from '../../../components/pinCodes/SSIPinCode';
+import {translate} from '../../../localization/Localization';
+import {SSIBasicHorizontalCenterContainerStyled as Container, SSIStatusBarDarkModeStyled as StatusBar} from '../../../styles/components';
+import {PinCodeMode, ScreenRoutesEnum, StackParamList} from '../../../types';
+ 
+type PinCodeVerifyProps = NativeStackScreenProps<StackParamList, ScreenRoutesEnum.PIN_CODE_VERIFY>;
+ 
+const SSIPinCodeVerifyScreen: FC<PinCodeVerifyProps> = (props: PinCodeVerifyProps): JSX.Element => {
+  useBackHandler(() => {
+    void props.route.params.onBack();
+    // make sure event stops here
+    return true;
+  });
+ 
+  const onVerification = async (value: string): Promise<void> => {
+    if (value !== props.route.params.context.pinCode) {
+      return Promise.reject(Error('Invalid code'));
+    }
+    await props.route.params.onNext(value);
+  };
+ 
+  return (
+    <Container>
+      <StatusBar />
+      <View style={{marginTop: 127}} id={PinCodeMode.CONFIRM_PIN}>
+        <SSIPinCode
+          key={PinCodeMode.CONFIRM_PIN}
+          length={PIN_CODE_LENGTH}
+          accessibilityLabel={translate('pin_code_accessibility_label')}
+          accessibilityHint={translate('pin_code_accessibility_hint')}
+          errorMessage={translate('pin_code_invalid_code_message')}
+          onVerification={onVerification}
+        />
+      </View>
+    </Container>
+  );
+};
+ 
+export default SSIPinCodeVerifyScreen;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/Onboarding/SSISummaryScreen/index.html b/coverage/lcov-report/screens/Onboarding/SSISummaryScreen/index.html new file mode 100644 index 00000000..80d13ee5 --- /dev/null +++ b/coverage/lcov-report/screens/Onboarding/SSISummaryScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for screens/Onboarding/SSISummaryScreen + + + + + + + + + +
+
+

All files screens/Onboarding/SSISummaryScreen

+
+
+ 100% + Statements + 7/7 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 3/3 +
+ +
+ 100% + Lines + 7/7 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
100%7/7100%0/0100%3/3100%7/7
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/Onboarding/SSISummaryScreen/index.tsx.html b/coverage/lcov-report/screens/Onboarding/SSISummaryScreen/index.tsx.html new file mode 100644 index 00000000..2b0e0c6a --- /dev/null +++ b/coverage/lcov-report/screens/Onboarding/SSISummaryScreen/index.tsx.html @@ -0,0 +1,276 @@ + + + + Code coverage report for screens/Onboarding/SSISummaryScreen/index.tsx + + + + + + + + + +
+
+

All files / screens/Onboarding/SSISummaryScreen index.tsx

+
+
+ 100% + Statements + 7/7 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 3/3 +
+ +
+ 100% + Lines + 7/7 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +4x +4x +  +4x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +  +  +  +  +4x +  +  +  +4x +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {NativeStackScreenProps} from '@react-navigation/native-stack';
+import React, {FC} from 'react';
+ 
+import {v4 as uuidv4} from 'uuid';
+ 
+import SSIButtonsContainer from '../../../components/containers/SSIButtonsContainer';
+import SSICredentialDetailsView from '../../../components/views/SSICredentialDetailsView';
+import SSITabView from '../../../components/views/SSITabView';
+import {translate} from '../../../localization/Localization';
+import {backgrounds} from '../../../styles/colors';
+import {SSIBasicHorizontalCenterContainerStyled as Container} from '../../../styles/components';
+import {ICredentialDetailsRow, ITabViewRoute, ScreenRoutesEnum, StackParamList} from '../../../types';
+ 
+type SummaryScreenProps = NativeStackScreenProps<StackParamList, ScreenRoutesEnum.ONBOARDING_SUMMARY>;
+ 
+enum SummaryTabRoutesEnum {
+  INFO = 'info',
+}
+ 
+const SSIOnboardingSummaryScreen: FC<SummaryScreenProps> = (props: SummaryScreenProps): JSX.Element => {
+  const getProperties = (): Array<ICredentialDetailsRow> => {
+    const {personalData} = props.route.params.context;
+ 
+    return [
+      {
+        id: uuidv4(),
+        label: translate('first_name_label'),
+        value: personalData.firstName,
+      },
+      {
+        id: uuidv4(),
+        label: translate('last_name_label'),
+        value: personalData.lastName,
+      },
+      {
+        id: uuidv4(),
+        label: translate('email_address_label'),
+        value: personalData.emailAddress,
+      },
+    ];
+  };
+ 
+  const routes: Array<ITabViewRoute> = [
+    {
+      key: SummaryTabRoutesEnum.INFO,
+      title: translate('onboard_summary_info_tab_header_label'),
+      // TODO replace refactored SSICredentialDetailsView to general component
+      content: () => <SSICredentialDetailsView credentialProperties={getProperties()} />,
+    },
+  ];
+ 
+  return (
+    <Container>
+      <SSITabView routes={routes} />
+      <SSIButtonsContainer
+        backgroundColor={backgrounds.secondaryDark}
+        primaryButton={{
+          caption: translate('onboard_summary_button_caption'),
+          onPress: props.route.params.onNext,
+        }}
+      />
+    </Container>
+  );
+};
+ 
+export default SSIOnboardingSummaryScreen;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/Onboarding/SSITermsOfServiceScreen/index.html b/coverage/lcov-report/screens/Onboarding/SSITermsOfServiceScreen/index.html new file mode 100644 index 00000000..2ae96274 --- /dev/null +++ b/coverage/lcov-report/screens/Onboarding/SSITermsOfServiceScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for screens/Onboarding/SSITermsOfServiceScreen + + + + + + + + + +
+
+

All files screens/Onboarding/SSITermsOfServiceScreen

+
+
+ 61.9% + Statements + 13/21 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 45.45% + Functions + 5/11 +
+ +
+ 60% + Lines + 12/20 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
61.9%13/21100%0/045.45%5/1160%12/20
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/Onboarding/SSITermsOfServiceScreen/index.tsx.html b/coverage/lcov-report/screens/Onboarding/SSITermsOfServiceScreen/index.tsx.html new file mode 100644 index 00000000..3fb51753 --- /dev/null +++ b/coverage/lcov-report/screens/Onboarding/SSITermsOfServiceScreen/index.tsx.html @@ -0,0 +1,423 @@ + + + + Code coverage report for screens/Onboarding/SSITermsOfServiceScreen/index.tsx + + + + + + + + + +
+
+

All files / screens/Onboarding/SSITermsOfServiceScreen index.tsx

+
+
+ 61.9% + Statements + 13/21 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 45.45% + Functions + 5/11 +
+ +
+ 60% + Lines + 12/20 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +16x +  +  +  +  +  +16x +  +  +  +5x +  +  +  +  +  +  +  +  +  +  +  +  +16x +  +16x +  +  +  +16x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +16x +3x +  +  +16x +3x +  +  +16x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {useBackHandler} from '@react-native-community/hooks';
+import {NativeStackScreenProps} from '@react-navigation/native-stack';
+import React, {FC, useMemo} from 'react';
+import {BackHandler} from 'react-native';
+ 
+import SSIButtonsContainer from '../../../components/containers/SSIButtonsContainer';
+import SSICheckbox from '../../../components/fields/SSICheckbox';
+import SSITabView from '../../../components/views/SSITabView';
+import SSITermsOfServiceView from '../../../components/views/SSITermsOfServiceView';
+import {translate} from '../../../localization/Localization';
+import {
+  SSIBasicContainerStyled as Container,
+  SSIStatusBarDarkModeStyled as StatusBar,
+  SSITermsOfServiceScreenBottomContainerStyled as BottomContainer,
+  SSITermsOfServiceScreenCheckboxContainerStyled as CheckboxContainer,
+  SSITermsOfServiceScreenCheckboxesContainerStyled as CheckboxesContainer,
+  SSITermsOfServiceScreenTabViewContainerStyled as TabViewContainer,
+} from '../../../styles/components';
+import {ITabViewRoute, MainRoutesEnum, ScreenRoutesEnum, StackParamList} from '../../../types';
+ 
+type TermsOfServiceProps = NativeStackScreenProps<StackParamList, ScreenRoutesEnum.TERMS_OF_SERVICE>;
+enum TermsTabRoutesEnum {
+  TERMS = 'terms',
+  PRIVACY = 'privacy',
+}
+ 
+const SSITermsOfServiceScreen: FC<TermsOfServiceProps> = (props: TermsOfServiceProps): JSX.Element => {
+  useBackHandler(() => {
+    void props.route.params.onBack();
+    // make sure event stops here
+    return true;
+  });
+ 
+  const routes: Array<ITabViewRoute> = [
+    {
+      key: TermsTabRoutesEnum.TERMS,
+      title: translate('terms_of_service_terms_tab_header_label'),
+      content: () => <SSITermsOfServiceView content={translate('terms_and_conditions_agreement_message')} />,
+    },
+    {
+      key: TermsTabRoutesEnum.PRIVACY,
+      title: translate('terms_of_service_privacy_tab_header_label'),
+      content: () => <SSITermsOfServiceView content={translate('privacy_policy_agreement_message')} />,
+    },
+  ];
+ 
+  /**
+   * As we update the state for the checkboxes, the other elements of this screen will also rerender. In this case the ScrollView will reset it`s position.
+   * useMemo will make sure it will not rerender if the state of the parent gets updated
+   */
+  const memoTabView = useMemo(() => <SSITabView routes={routes} />, []);
+ 
+  const onAccept = async (): Promise<void> => {
+    await props.route.params.onNext();
+  };
+ 
+  const onDecline = async (): Promise<void> => {
+    props.navigation.navigate(MainRoutesEnum.POPUP_MODAL, {
+      title: translate('terms_of_service_decline_title'),
+      details: translate('terms_of_service_decline_message'),
+      primaryButton: {
+        caption: translate('terms_of_service_decline_action_caption'),
+        onPress: async () => {
+          // Will only push it to the background, we are not allowed by Apple (and Google?) to shutdown apps. A user needs to do this.
+          BackHandler.exitApp();
+          await props.route.params.onDecline();
+        },
+      },
+      secondaryButton: {
+        caption: translate('action_cancel_label'),
+        onPress: async () => {
+          props.navigation.goBack();
+        },
+      },
+    });
+  };
+ 
+  const onAcceptTerms = async (isChecked: boolean): Promise<void> => {
+    await props.route.params.onAcceptTerms(isChecked);
+  };
+ 
+  const onAcceptPrivacy = async (isChecked: boolean): Promise<void> => {
+    await props.route.params.onAcceptPrivacy(isChecked);
+  };
+ 
+  return (
+    <Container>
+      <StatusBar />
+      <TabViewContainer>{memoTabView}</TabViewContainer>
+      <BottomContainer>
+        <CheckboxesContainer>
+          <CheckboxContainer>
+            <SSICheckbox initialValue={props.route.params.context.termsConditionsAccepted} onValueChange={onAcceptTerms} label={translate('terms_of_service_consent_terms_message')} />
+          </CheckboxContainer>
+          <CheckboxContainer>
+            <SSICheckbox initialValue={props.route.params.context.privacyPolicyAccepted} onValueChange={onAcceptPrivacy} label={translate('terms_of_service_consent_privacy_message')} />
+          </CheckboxContainer>
+        </CheckboxesContainer>
+        <SSIButtonsContainer
+          secondaryButton={{
+            caption: translate('action_decline_label'),
+            onPress: onDecline,
+          }}
+          primaryButton={{
+            caption: translate('action_accept_label'),
+            disabled: props.route.params.isDisabled(),
+            onPress: onAccept,
+          }}
+        />
+      </BottomContainer>
+    </Container>
+  );
+};
+ 
+export default SSITermsOfServiceScreen;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/Onboarding/SSIWelcomeScreen/index.html b/coverage/lcov-report/screens/Onboarding/SSIWelcomeScreen/index.html new file mode 100644 index 00000000..415fe95d --- /dev/null +++ b/coverage/lcov-report/screens/Onboarding/SSIWelcomeScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for screens/Onboarding/SSIWelcomeScreen + + + + + + + + + +
+
+

All files screens/Onboarding/SSIWelcomeScreen

+
+
+ 62.5% + Statements + 15/24 +
+ +
+ 50% + Branches + 4/8 +
+ +
+ 66.66% + Functions + 2/3 +
+ +
+ 62.5% + Lines + 15/24 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
62.5%15/2450%4/866.66%2/362.5%15/24
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/Onboarding/SSIWelcomeScreen/index.tsx.html b/coverage/lcov-report/screens/Onboarding/SSIWelcomeScreen/index.tsx.html new file mode 100644 index 00000000..5aa7d776 --- /dev/null +++ b/coverage/lcov-report/screens/Onboarding/SSIWelcomeScreen/index.tsx.html @@ -0,0 +1,438 @@ + + + + Code coverage report for screens/Onboarding/SSIWelcomeScreen/index.tsx + + + + + + + + + +
+
+

All files / screens/Onboarding/SSIWelcomeScreen index.tsx

+
+
+ 62.5% + Statements + 15/24 +
+ +
+ 50% + Branches + 4/8 +
+ +
+ 66.66% + Functions + 2/3 +
+ +
+ 62.5% + Lines + 15/24 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +14x +  +  +  +  +14x +  +  +  +  +  +14x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +14x +31x +  +31x +  +3x +3x +  +3x +  +  +  +  +3x +  +25x +  +  +  +14x +14x +  +14x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {useBackHandler} from '@react-native-community/hooks';
+import {NativeStackScreenProps} from '@react-navigation/native-stack';
+import React, {FC, useState} from 'react';
+import {Platform, StatusBar} from 'react-native';
+ 
+import WelcomeBackground from '../../../assets/images/welcomeIntroBackground.svg';
+import SSIWelcomeView from '../../../components/views/SSIWelcomeView';
+import {translate} from '../../../localization/Localization';
+import {
+  SSIWelcomeScreenContainerStyled as Container,
+  SSIWelcomeScreenIntroBackgroundContainerStyled as IntroBackgroundContainer,
+  SSIWelcomeScreenWelcomeViewContainerStyled as WelcomeViewContainer,
+} from '../../../styles/components';
+import {PlatformsEnum, ScreenRoutesEnum, StackParamList} from '../../../types';
+ 
+type WelcomeScreenProps = NativeStackScreenProps<StackParamList, ScreenRoutesEnum.WELCOME>;
+ 
+interface IState {
+  body: string;
+  buttonCaption: string;
+  step: number;
+}
+ 
+const SSIWelcomeScreen: FC<WelcomeScreenProps> = (props: WelcomeScreenProps): JSX.Element => {
+  Iif (Platform.OS === PlatformsEnum.ANDROID) {
+    StatusBar.setTranslucent(true);
+    StatusBar.setBackgroundColor('transparent');
+  }
+ 
+  const [state, setState] = useState<IState>({
+    body: translate('onboarding_welcome_intro_body'),
+    buttonCaption: translate('action_next_label'),
+    step: 1,
+  });
+ 
+  useBackHandler(() => {
+    const {step} = state;
+ 
+    /**
+     * When true is returned the event will not be bubbled up
+     * & no other back action will execute
+     */
+    switch (step) {
+      case 2:
+        setState({step: step - 1, body: translate('onboarding_welcome_intro_body'), buttonCaption: translate('action_next_label')});
+        return true;
+      case 3:
+        setState({
+          step: step - 1,
+          body: translate('onboarding_welcome_store_body'),
+          buttonCaption: translate('action_next_label'),
+        });
+        return true;
+      default:
+        /**
+         * Returning false will let the event bubble up & let other event listeners
+         * or the system's default back action to be executed.
+         */
+        return false;
+    }
+  });
+ 
+ 
+ 
+  const onNext = async (): Promise<void> => {
+    const {step} = state;
+ 
+    switch (step) {
+      case 1:
+        setState({step: step + 1, body: translate('onboarding_welcome_store_body'), buttonCaption: translate('action_next_label')});
+        break;
+      case 2:
+        setState({
+          step: step + 1,
+          body: translate('onboarding_welcome_share_body'),
+          buttonCaption: translate('action_go_label'),
+        });
+        break;
+      default:
+        await props.route.params.onNext();
+    }
+  };
+ 
+  const {body, buttonCaption, step} = state;
+  const MAX_WELCOME_STEPS = 3;
+ 
+  return (
+    <Container>
+      {/* TODO WAL-406 for now we show the svg background for all welcome steps */}
+      <IntroBackgroundContainer>
+        <WelcomeBackground />
+      </IntroBackgroundContainer>
+      {/*{step === 1 ? (*/}
+      {/*  <IntroBackgroundContainer>*/}
+      {/*    <WelcomeBackground />*/}
+      {/*  </IntroBackgroundContainer>*/}
+      {/*) : (*/}
+      {/*  <BackgroundContainer>*/}
+      {/*     TODO WAL-406 fix images not loading */}
+      {/*     <Image source={require('../../assets/images/test.png')} style={{ resizeMode: 'stretch', width: 290, height: 586, backgroundColor: 'red', marginTop: 80}}/>*/}
+      {/*  </BackgroundContainer>*/}
+      {/*)}*/}
+      <WelcomeViewContainer>
+        <SSIWelcomeView
+          step={step}
+          maxSteps={MAX_WELCOME_STEPS}
+          body={body}
+          header={translate('onboarding_welcome_header')}
+          title={translate('onboarding_welcome_title')}
+          action={{
+            caption: buttonCaption,
+            onPress: onNext,
+          }}
+        />
+      </WelcomeViewContainer>
+    </Container>
+  );
+};
+ 
+export default SSIWelcomeScreen;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSIContactAddScreen/index.html b/coverage/lcov-report/screens/SSIContactAddScreen/index.html new file mode 100644 index 00000000..750e0681 --- /dev/null +++ b/coverage/lcov-report/screens/SSIContactAddScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for screens/SSIContactAddScreen + + + + + + + + + +
+
+

All files screens/SSIContactAddScreen

+
+
+ 4.34% + Statements + 2/46 +
+ +
+ 0% + Branches + 0/13 +
+ +
+ 0% + Functions + 0/14 +
+ +
+ 4.34% + Lines + 2/46 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
4.34%2/460%0/130%0/144.34%2/46
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSIContactAddScreen/index.tsx.html b/coverage/lcov-report/screens/SSIContactAddScreen/index.tsx.html new file mode 100644 index 00000000..be1beaa5 --- /dev/null +++ b/coverage/lcov-report/screens/SSIContactAddScreen/index.tsx.html @@ -0,0 +1,606 @@ + + + + Code coverage report for screens/SSIContactAddScreen/index.tsx + + + + + + + + + +
+
+

All files / screens/SSIContactAddScreen index.tsx

+
+
+ 4.34% + Statements + 2/46 +
+ +
+ 0% + Branches + 0/13 +
+ +
+ 0% + Functions + 0/14 +
+ +
+ 4.34% + Lines + 2/46 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  +  + 
import {NativeStackScreenProps} from '@react-navigation/native-stack';
+import React, {PureComponent} from 'react';
+import {Keyboard, TouchableWithoutFeedback} from 'react-native';
+import {connect} from 'react-redux';
+ 
+import {CONTACT_ALIAS_MAX_LENGTH} from '../../@config/constants';
+import SSIButtonsContainer from '../../components/containers/SSIButtonsContainer';
+import SSICheckbox from '../../components/fields/SSICheckbox';
+import SSITextInputField from '../../components/fields/SSITextInputField';
+import {translate} from '../../localization/Localization';
+import {getContacts} from '../../services/contactService';
+import {updateContact as editContact, createContact as StoreContact} from '../../store/actions/contact.actions';
+import {
+  SSIContactAddScreenContainerStyled as Container,
+  SSIContactAddScreenDisclaimerContainerStyled as DisclaimerContainer,
+  SSIFullHeightScrollViewContainer as SSIScrollView,
+  SSIStatusBarDarkModeStyled as StatusBar,
+  SSIContactAddScreenTextInputContainerStyled as TextInputContainer,
+} from '../../styles/components';
+import {ICreateContactArgs, IUpdateContactArgs, MainRoutesEnum, RootState, ScreenRoutesEnum, StackParamList, ToastTypeEnum} from '../../types';
+import {showToast} from '../../utils/ToastUtils';
+ 
+interface IProps extends NativeStackScreenProps<StackParamList, ScreenRoutesEnum.CONTACT_ADD> {
+  createContact: (args: ICreateContactArgs) => void;
+  updateContact: (args: IUpdateContactArgs) => void;
+  loading: boolean;
+}
+ 
+interface IState {
+  contactAlias: string;
+  hasConsent: boolean;
+}
+ 
+class SSIContactAddScreen extends PureComponent<IProps, IState> {
+  state: IState = {
+    contactAlias: this.props.route.params.name || '',
+    hasConsent: true,
+  };
+ 
+  onValidate = async (value: string): Promise<void> => {
+    let contactAlias: string = value;
+    contactAlias = contactAlias.trim();
+ 
+    if (contactAlias.length === 0) {
+      this.setState({contactAlias: ''});
+      return Promise.reject(Error(translate('contact_name_invalid_message')));
+    }
+ 
+    const contacts = await getContacts({filter: [{alias: contactAlias}]});
+    if (contacts.length !== 0) {
+      this.setState({contactAlias: ''});
+      return Promise.reject(Error(translate('contact_name_unavailable_message')));
+    }
+  };
+ 
+  onCreate = async (): Promise<void> => {
+    const {onCreate} = this.props.route.params;
+ 
+    Keyboard.dismiss();
+ 
+    this.onValidate(this.state.contactAlias)
+      .then(async () => {
+        await this.upsert();
+        await onCreate();
+      })
+      .catch(() => {
+        // do nothing as the state is already handled by the validate function, and we do not want to create the contact
+      });
+  };
+ 
+  private async upsert() {
+    const {createContact, updateContact} = this.props;
+    const {identities, name, uri} = this.props.route.params;
+    const {contactAlias} = this.state;
+ 
+    const contacts = await getContacts({filter: [{name: name}]});
+    if (contacts.length !== 0) {
+      const contactToUpdate: IUpdateContactArgs = {contact: contacts[0]};
+      contactToUpdate.contact.alias = contactAlias;
+      updateContact(contactToUpdate);
+    } else {
+      createContact({
+        name,
+        alias: contactAlias.trim(),
+        uri,
+        identities,
+      });
+    }
+  }
+ 
+  onChangeText = async (value: string): Promise<void> => {
+    this.setState({contactAlias: value});
+  };
+ 
+  onValueChange = async (isChecked: boolean): Promise<void> => {
+    this.setState({hasConsent: isChecked});
+    if (!isChecked) {
+      showToast(ToastTypeEnum.TOAST_ERROR, {message: translate('contact_add_no_consent_toast')});
+    }
+  };
+ 
+  onDecline = async (): Promise<void> => {
+    const {onDecline} = this.props.route.params;
+ 
+    Keyboard.dismiss();
+ 
+    this.props.navigation.navigate(MainRoutesEnum.POPUP_MODAL, {
+      title: translate('contact_add_cancel_title'),
+      details: translate('contact_add_cancel_message'),
+      primaryButton: {
+        caption: translate('action_confirm_label'),
+        onPress: onDecline,
+      },
+      secondaryButton: {
+        caption: translate('action_cancel_label'),
+        // TODO WAL-541 fix navigation hierarchy
+        onPress: async () => this.props.navigation.navigate(MainRoutesEnum.HOME, {}),
+      },
+    });
+  };
+ 
+  render() {
+    const {loading} = this.props;
+    const {contactAlias, hasConsent} = this.state;
+ 
+    return (
+      <TouchableWithoutFeedback onPress={Keyboard.dismiss} accessible={false}>
+        <Container>
+          <SSIScrollView>
+            <StatusBar />
+            <TextInputContainer>
+              <SSITextInputField
+                autoFocus={true}
+                label={translate('contact_name_label')}
+                maxLength={CONTACT_ALIAS_MAX_LENGTH}
+                onChangeText={this.onChangeText}
+                onEndEditing={this.onValidate}
+                placeholderValue={translate('contact_name_placeholder')}
+                initialValue={contactAlias}
+              />
+            </TextInputContainer>
+            <DisclaimerContainer>
+              <SSICheckbox initialValue label={translate('contact_add_disclaimer')} onValueChange={this.onValueChange} />
+            </DisclaimerContainer>
+            <SSIButtonsContainer
+              secondaryButton={{
+                caption: translate('action_decline_label'),
+                onPress: this.onDecline,
+              }}
+              primaryButton={{
+                caption: translate('action_accept_label'),
+                disabled: !hasConsent || contactAlias.length === 0 || loading,
+                onPress: this.onCreate,
+              }}
+            />
+          </SSIScrollView>
+        </Container>
+      </TouchableWithoutFeedback>
+    );
+  }
+}
+ 
+const mapDispatchToProps = (dispatch: any) => {
+  return {
+    createContact: (args: ICreateContactArgs) => dispatch(StoreContact(args)),
+    updateContact: (args: IUpdateContactArgs) => dispatch(editContact(args)),
+  };
+};
+ 
+const mapStateToProps = (state: RootState) => {
+  return {
+    loading: state.contact.loading,
+  };
+};
+ 
+export default connect(mapStateToProps, mapDispatchToProps)(SSIContactAddScreen);
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSIContactDetailsScreen/index.html b/coverage/lcov-report/screens/SSIContactDetailsScreen/index.html new file mode 100644 index 00000000..48d9dd0d --- /dev/null +++ b/coverage/lcov-report/screens/SSIContactDetailsScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for screens/SSIContactDetailsScreen + + + + + + + + + +
+
+

All files screens/SSIContactDetailsScreen

+
+
+ 20% + Statements + 1/5 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/2 +
+ +
+ 20% + Lines + 1/5 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
20%1/5100%0/00%0/220%1/5
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSIContactDetailsScreen/index.tsx.html b/coverage/lcov-report/screens/SSIContactDetailsScreen/index.tsx.html new file mode 100644 index 00000000..d2aae9d1 --- /dev/null +++ b/coverage/lcov-report/screens/SSIContactDetailsScreen/index.tsx.html @@ -0,0 +1,231 @@ + + + + Code coverage report for screens/SSIContactDetailsScreen/index.tsx + + + + + + + + + +
+
+

All files / screens/SSIContactDetailsScreen index.tsx

+
+
+ 20% + Statements + 1/5 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/2 +
+ +
+ 20% + Lines + 1/5 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {NativeStackScreenProps} from '@react-navigation/native-stack';
+import React, {FC} from 'react';
+ 
+import SSIActivityView from '../../components/views/SSIActivityView';
+import SSIContactViewItem from '../../components/views/SSIContactViewItem';
+import SSIIdentitiesView from '../../components/views/SSIIdentitiesView';
+import SSITabView from '../../components/views/SSITabView';
+import {translate} from '../../localization/Localization';
+import {SSIBasicContainerSecondaryStyled as Container} from '../../styles/components';
+import {ITabViewRoute, ScreenRoutesEnum, StackParamList} from '../../types';
+ 
+type Props = NativeStackScreenProps<StackParamList, ScreenRoutesEnum.CONTACT_DETAILS>;
+ 
+enum ContactTabRoutesEnum {
+  INFO = 'info',
+  IDENTITIES = 'identities',
+  ACTIVITY = 'activity',
+}
+ 
+const SSIContactDetailsScreen: FC<Props> = (props: Props): JSX.Element => {
+  const {contact} = props.route.params;
+ 
+  const routes: Array<ITabViewRoute> = [
+    // {
+    //   key: ContactTabRoutesEnum.INFO,
+    //   title: translate('contact_details_info_tab_header_label'),
+    //   // TODO WAL-584 implement content
+    //   content: () => <SSIActivityView />,
+    // },
+    {
+      key: ContactTabRoutesEnum.IDENTITIES,
+      title: translate('contact_details_identities_tab_header_label'),
+      content: () => <SSIIdentitiesView identities={contact.identities} />,
+    },
+    // {
+    //   key: ContactTabRoutesEnum.ACTIVITY,
+    //   title: translate('contact_details_activity_tab_header_label'),
+    //   // TODO WAL-358 implement content
+    //   content: () => <SSIActivityView />
+    // }
+  ];
+ 
+  return (
+    <Container>
+      <SSIContactViewItem name={contact.alias} uri={contact.uri} roles={contact.roles} />
+      <SSITabView routes={routes} />
+    </Container>
+  );
+};
+ 
+export default SSIContactDetailsScreen;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSIContactsOverviewScreen/index.html b/coverage/lcov-report/screens/SSIContactsOverviewScreen/index.html new file mode 100644 index 00000000..564621fb --- /dev/null +++ b/coverage/lcov-report/screens/SSIContactsOverviewScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for screens/SSIContactsOverviewScreen + + + + + + + + + +
+
+

All files screens/SSIContactsOverviewScreen

+
+
+ 6.89% + Statements + 2/29 +
+ +
+ 0% + Branches + 0/7 +
+ +
+ 0% + Functions + 0/15 +
+ +
+ 6.89% + Lines + 2/29 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
6.89%2/290%0/70%0/156.89%2/29
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSIContactsOverviewScreen/index.tsx.html b/coverage/lcov-report/screens/SSIContactsOverviewScreen/index.tsx.html new file mode 100644 index 00000000..2bc66e94 --- /dev/null +++ b/coverage/lcov-report/screens/SSIContactsOverviewScreen/index.tsx.html @@ -0,0 +1,441 @@ + + + + Code coverage report for screens/SSIContactsOverviewScreen/index.tsx + + + + + + + + + +
+
+

All files / screens/SSIContactsOverviewScreen index.tsx

+
+
+ 6.89% + Statements + 2/29 +
+ +
+ 0% + Branches + 0/7 +
+ +
+ 0% + Functions + 0/15 +
+ +
+ 6.89% + Lines + 2/29 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  +  +  + 
import {NativeStackScreenProps} from '@react-navigation/native-stack';
+import {IContact} from '@sphereon/ssi-sdk.data-store';
+import React, {PureComponent} from 'react';
+import {ListRenderItemInfo, RefreshControl} from 'react-native';
+import {SwipeListView} from 'react-native-swipe-list-view';
+import {connect} from 'react-redux';
+ 
+import {OVERVIEW_INITIAL_NUMBER_TO_RENDER} from '../../@config/constants';
+import SSIContactViewItem from '../../components/views/SSIContactViewItem';
+import SSISwipeRowViewItem from '../../components/views/SSISwipeRowViewItem';
+import {translate} from '../../localization/Localization';
+import {deleteContact, getContacts} from '../../store/actions/contact.actions';
+import {backgrounds, borders} from '../../styles/colors';
+import {SSIBasicContainerStyled as Container, SSIRippleContainerStyled as ItemContainer} from '../../styles/components';
+import {IUser, MainRoutesEnum, RootState, ScreenRoutesEnum, StackParamList} from '../../types';
+ 
+interface IProps extends NativeStackScreenProps<StackParamList, ScreenRoutesEnum.CONTACTS_OVERVIEW> {
+  getContacts: () => void;
+  contacts: Array<IContact>;
+  deleteContact: (contactId: string) => void;
+  activeUser: IUser;
+}
+ 
+interface IState {
+  refreshing: boolean;
+}
+ 
+class SSIContactsOverviewScreen extends PureComponent<IProps, IState> {
+  state: IState = {
+    refreshing: false,
+  };
+ 
+  onRefresh = async (): Promise<void> => {
+    this.props.getContacts();
+    this.setState({refreshing: false});
+  };
+ 
+  onDelete = async (contact: IContact): Promise<void> => {
+    const {navigation, deleteContact} = this.props;
+ 
+    navigation.navigate(MainRoutesEnum.POPUP_MODAL, {
+      title: translate('contact_delete_title'),
+      details: translate('contact_delete_message', {contactName: contact.alias}),
+      primaryButton: {
+        caption: translate('action_confirm_label'),
+        onPress: async () => {
+          deleteContact(contact.id);
+          navigation.goBack();
+        },
+      },
+      secondaryButton: {
+        caption: translate('action_cancel_label'),
+        onPress: async () => navigation.goBack(),
+      },
+    });
+  };
+ 
+  onItemPress = async (contact: IContact): Promise<void> => {
+    this.props.navigation.navigate(ScreenRoutesEnum.CONTACT_DETAILS, {contact});
+  };
+ 
+  renderItem = (itemInfo: ListRenderItemInfo<IContact>): JSX.Element => {
+    const {activeUser, contacts} = this.props;
+    const contactItem = <SSIContactViewItem name={itemInfo.item.alias} uri={itemInfo.item.uri} roles={itemInfo.item.roles} />;
+    const backgroundStyle = {
+      backgroundColor: itemInfo.index % 2 === 0 ? backgrounds.secondaryDark : backgrounds.primaryDark,
+    };
+    const style = {
+      ...backgroundStyle,
+      ...(itemInfo.index === contacts.length - 1 && itemInfo.index % 2 !== 0 && {borderBottomWidth: 1, borderBottomColor: borders.dark}),
+    };
+ 
+    return itemInfo.item.id === activeUser.id ? (
+      <ItemContainer style={style} onPress={() => this.onItemPress(itemInfo.item)}>
+        {contactItem}
+      </ItemContainer>
+    ) : (
+      <SSISwipeRowViewItem
+        style={style}
+        hiddenStyle={backgroundStyle}
+        viewItem={contactItem}
+        onPress={() => this.onItemPress(itemInfo.item)}
+        onDelete={() => this.onDelete(itemInfo.item)}
+      />
+    );
+  };
+ 
+  render() {
+    return (
+      <Container>
+        <SwipeListView
+          data={this.props.contacts}
+          keyExtractor={(itemInfo: IContact) => itemInfo.id}
+          renderItem={this.renderItem}
+          closeOnRowOpen
+          closeOnRowBeginSwipe
+          useFlatList
+          initialNumToRender={OVERVIEW_INITIAL_NUMBER_TO_RENDER}
+          removeClippedSubviews
+          refreshControl={<RefreshControl refreshing={this.state.refreshing} onRefresh={this.onRefresh} />}
+        />
+      </Container>
+    );
+  }
+}
+ 
+const mapDispatchToProps = (dispatch: any) => {
+  return {
+    getContacts: () => dispatch(getContacts()),
+    deleteContact: (contactId: string) => dispatch(deleteContact(contactId)),
+  };
+};
+ 
+const mapStateToProps = (state: RootState) => {
+  return {
+    contacts: state.contact.contacts,
+    activeUser: state.user.activeUser!,
+  };
+};
+ 
+export default connect(mapStateToProps, mapDispatchToProps)(SSIContactsOverviewScreen);
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSICredentialDetailsScreen/index.html b/coverage/lcov-report/screens/SSICredentialDetailsScreen/index.html new file mode 100644 index 00000000..4e02bc64 --- /dev/null +++ b/coverage/lcov-report/screens/SSICredentialDetailsScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for screens/SSICredentialDetailsScreen + + + + + + + + + +
+
+

All files screens/SSICredentialDetailsScreen

+
+
+ 14.28% + Statements + 2/14 +
+ +
+ 0% + Branches + 0/24 +
+ +
+ 0% + Functions + 0/4 +
+ +
+ 14.28% + Lines + 2/14 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
14.28%2/140%0/240%0/414.28%2/14
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSICredentialDetailsScreen/index.tsx.html b/coverage/lcov-report/screens/SSICredentialDetailsScreen/index.tsx.html new file mode 100644 index 00000000..3c046df7 --- /dev/null +++ b/coverage/lcov-report/screens/SSICredentialDetailsScreen/index.tsx.html @@ -0,0 +1,453 @@ + + + + Code coverage report for screens/SSICredentialDetailsScreen/index.tsx + + + + + + + + + +
+
+

All files / screens/SSICredentialDetailsScreen index.tsx

+
+
+ 14.28% + Statements + 2/14 +
+ +
+ 0% + Branches + 0/24 +
+ +
+ 0% + Functions + 0/4 +
+ +
+ 14.28% + Lines + 2/14 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, {FC} from 'react';
+import {NativeStackScreenProps} from '@react-navigation/native-stack';
+import {ImageAttributes} from '@sphereon/ui-components.core';
+import {SSICredentialCardView} from '@sphereon/ui-components.ssi-react-native';
+import SSIPrimaryButton from '../../components/buttons/SSIPrimaryButton';
+import SSISecondaryButton from '../../components/buttons/SSISecondaryButton';
+import SSIActivityView from '../../components/views/SSIActivityView';
+import SSICredentialDetailsView from '../../components/views/SSICredentialDetailsView';
+import SSITabView from '../../components/views/SSITabView';
+import {getCredentialStatus} from '../../utils/CredentialUtils';
+import {getIssuerLogo} from '../../utils/mappers/credential/CredentialMapper';
+import {translate} from '../../localization/Localization';
+import {
+  SSICredentialDetailsScreenButtonContainer as ButtonContainer,
+  SSICredentialDetailsScreenButtonContentContainer as ButtonContainerContent,
+  SSICredentialDetailsScreenCredentialCardContainer as CardContainer,
+  SSIBasicHorizontalCenterContainerStyled as Container,
+  SSICredentialDetailsScreenContentContainer as ContentContainer,
+  SSIStatusBarDarkModeStyled as StatusBar,
+} from '../../styles/components';
+import {ICredentialSummary, ITabViewRoute, ScreenRoutesEnum, StackParamList} from '../../types';
+ 
+type Props = NativeStackScreenProps<StackParamList, ScreenRoutesEnum.CREDENTIAL_DETAILS>;
+ 
+enum CredentialTabRoutesEnum {
+  INFO = 'info',
+  ACTIVITY = 'activity',
+}
+ 
+const getCredentialCardLogo = (credential: ICredentialSummary): ImageAttributes | undefined => {
+  if (credential.branding?.logo?.uri || credential.branding?.logo?.dataUri) {
+    return credential.branding.logo;
+  }
+ 
+  const uri: string | undefined = getIssuerLogo(credential, credential.branding);
+  if (uri) {
+    return {uri};
+  }
+};
+ 
+const SSICredentialDetailsScreen: FC<Props> = (props: Props): JSX.Element => {
+  const {credential, primaryAction, secondaryAction, showActivity = false} = props.route.params;
+  const issuer = credential.issuer.alias;
+  const credentialCardLogo: ImageAttributes | undefined = getCredentialCardLogo(credential);
+ 
+  const routes: Array<ITabViewRoute> = [
+    {
+      key: CredentialTabRoutesEnum.INFO,
+      title: translate('credential_details_info_tab_header_label'),
+      content: () => <SSICredentialDetailsView credentialProperties={credential.properties} issuer={issuer} />,
+    },
+    ...(showActivity
+      ? [
+          {
+            key: CredentialTabRoutesEnum.ACTIVITY,
+            title: translate('credential_details_activity_tab_header_label'),
+            content: () => <SSIActivityView />,
+          },
+        ]
+      : []),
+  ];
+ 
+  return (
+    <Container>
+      <StatusBar />
+      <ContentContainer>
+        <CardContainer>
+          <SSICredentialCardView
+            header={{
+              credentialTitle: credential.title ?? credential.branding?.alias,
+              credentialSubtitle: credential.branding?.description,
+              logo: credentialCardLogo,
+            }}
+            body={{
+              issuerName: issuer ?? credential.issuer.name,
+            }}
+            footer={{
+              credentialStatus: getCredentialStatus(credential),
+              expirationDate: credential.expirationDate,
+            }}
+            display={{
+              backgroundColor: credential.branding?.background?.color,
+              backgroundImage: credential.branding?.background?.image,
+              textColor: credential.branding?.text?.color,
+            }}
+          />
+        </CardContainer>
+        <SSITabView routes={routes} />
+        {/* TODO we use this 2 button structure a lot, we should make a component out of it */}
+        {(primaryAction || secondaryAction) && (
+          <ButtonContainer>
+            <ButtonContainerContent>
+              {secondaryAction && (
+                <SSISecondaryButton
+                  title={secondaryAction.caption}
+                  onPress={secondaryAction.onPress}
+                  // TODO move styling to styled components (currently there is an issue where this styling prop is not being set correctly)
+                  style={{
+                    height: 42,
+                    minWidth: 160.5,
+                    width: primaryAction ? undefined : '100%',
+                  }}
+                />
+              )}
+              {primaryAction && (
+                <SSIPrimaryButton
+                  title={primaryAction.caption}
+                  onPress={primaryAction.onPress}
+                  // TODO move styling to styled components (currently there is an issue where this styling prop is not being set correctly)
+                  style={{
+                    height: 42,
+                    minWidth: 160.5,
+                    width: secondaryAction ? undefined : '100%',
+                  }}
+                />
+              )}
+            </ButtonContainerContent>
+          </ButtonContainer>
+        )}
+      </ContentContainer>
+    </Container>
+  );
+};
+ 
+export default SSICredentialDetailsScreen;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSICredentialRawJsonScreen/index.html b/coverage/lcov-report/screens/SSICredentialRawJsonScreen/index.html new file mode 100644 index 00000000..632128ec --- /dev/null +++ b/coverage/lcov-report/screens/SSICredentialRawJsonScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for screens/SSICredentialRawJsonScreen + + + + + + + + + +
+
+

All files screens/SSICredentialRawJsonScreen

+
+
+ 10% + Statements + 1/10 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/3 +
+ +
+ 11.11% + Lines + 1/9 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
10%1/10100%0/00%0/311.11%1/9
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSICredentialRawJsonScreen/index.tsx.html b/coverage/lcov-report/screens/SSICredentialRawJsonScreen/index.tsx.html new file mode 100644 index 00000000..7fab7ac8 --- /dev/null +++ b/coverage/lcov-report/screens/SSICredentialRawJsonScreen/index.tsx.html @@ -0,0 +1,297 @@ + + + + Code coverage report for screens/SSICredentialRawJsonScreen/index.tsx + + + + + + + + + +
+
+

All files / screens/SSICredentialRawJsonScreen index.tsx

+
+
+ 10% + Statements + 1/10 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/3 +
+ +
+ 11.11% + Lines + 1/9 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {NativeStackScreenProps} from '@react-navigation/native-stack';
+import {CredentialMapper, OriginalVerifiableCredential} from '@sphereon/ssi-types';
+import React, {FC} from 'react';
+import {View} from 'react-native';
+import {ScrollView} from 'react-native-gesture-handler';
+import JSONTree from 'react-native-json-tree';
+import Share from 'react-native-share';
+ 
+import SSIPrimaryButton from '../../components/buttons/SSIPrimaryButton';
+import {
+  SSIBasicHorizontalCenterContainerStyled as Container,
+  SSIBasicHorizontalCenterContainerStyled,
+  SSIButtonBottomContainerStyled,
+} from '../../styles/components';
+import {ScreenRoutesEnum, StackParamList} from '../../types';
+ 
+type Props = NativeStackScreenProps<StackParamList, ScreenRoutesEnum.CREDENTIAL_RAW_JSON>;
+ 
+// The screen is WIP and created for the plugfest demo
+ 
+const SSICredentialRawJsonScreen: FC<Props> = (props: Props): JSX.Element => {
+  const {route} = props;
+ 
+  const theme = {
+    scheme: 'monokai',
+    author: 'wimer hazenberg (http://www.monokai.nl)',
+    base00: '#202537',
+    base01: '#383830',
+    base02: '#49483e',
+    base03: '#75715e',
+    base04: '#a59f85',
+    base05: '#f8f8f2',
+    base06: '#f5f4f1',
+    base07: '#f9f8f5',
+    base08: '#f92672',
+    base09: '#fd971f',
+    base0A: '#f4bf75',
+    base0B: '#a6e22e',
+    base0C: '#a1efe4',
+    base0D: '#66d9ef',
+    base0E: '#ae81ff',
+    base0F: '#cc6633',
+  };
+ 
+  const rawCredential = route.params.rawCredential;
+ 
+  return (
+    <Container>
+      <ScrollView style={{width: '100%'}}>
+        <JSONTree theme={theme} data={rawCredential} invertTheme={false} />
+      </ScrollView>
+      <View style={{backgroundColor: '#202537', height: 100, marginTop: 'auto', marginRight: 38, marginLeft: 38}}>
+        <SSIBasicHorizontalCenterContainerStyled>
+          <SSIButtonBottomContainerStyled>
+            <SSIPrimaryButton
+              title={'Share'} // TODO translation
+              onPress={async () => {
+                const base64VC = Buffer.from(JSON.stringify(rawCredential, null, 2), 'binary').toString('base64');
+                const base64Data = `data:application/json;base64,${base64VC}`;
+                await Share.open({url: base64Data}).catch(error => console.log(error));
+                console.log(`VC:\r\n${JSON.stringify(CredentialMapper.toUniformCredential(rawCredential as OriginalVerifiableCredential), null, 2)}`);
+              }}
+              // TODO move styling to styled components (currently there is an issue where this styling prop is not being set correctly)
+              style={{flex: 1, height: 42}}
+            />
+          </SSIButtonBottomContainerStyled>
+        </SSIBasicHorizontalCenterContainerStyled>
+      </View>
+    </Container>
+  );
+};
+ 
+export default SSICredentialRawJsonScreen;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSICredentialSelectScreen/index.html b/coverage/lcov-report/screens/SSICredentialSelectScreen/index.html new file mode 100644 index 00000000..e1494096 --- /dev/null +++ b/coverage/lcov-report/screens/SSICredentialSelectScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for screens/SSICredentialSelectScreen + + + + + + + + + +
+
+

All files screens/SSICredentialSelectScreen

+
+
+ 3.22% + Statements + 1/31 +
+ +
+ 0% + Branches + 0/9 +
+ +
+ 0% + Functions + 0/16 +
+ +
+ 3.33% + Lines + 1/30 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
3.22%1/310%0/90%0/163.33%1/30
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSICredentialSelectScreen/index.tsx.html b/coverage/lcov-report/screens/SSICredentialSelectScreen/index.tsx.html new file mode 100644 index 00000000..a9aba979 --- /dev/null +++ b/coverage/lcov-report/screens/SSICredentialSelectScreen/index.tsx.html @@ -0,0 +1,408 @@ + + + + Code coverage report for screens/SSICredentialSelectScreen/index.tsx + + + + + + + + + +
+
+

All files / screens/SSICredentialSelectScreen index.tsx

+
+
+ 3.22% + Statements + 1/31 +
+ +
+ 0% + Branches + 0/9 +
+ +
+ 0% + Functions + 0/16 +
+ +
+ 3.33% + Lines + 1/30 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {NativeStackScreenProps} from '@react-navigation/native-stack';
+import React, {FC} from 'react';
+import {ListRenderItemInfo} from 'react-native';
+import {SwipeListView} from 'react-native-swipe-list-view';
+ 
+import {OVERVIEW_INITIAL_NUMBER_TO_RENDER} from '../../@config/constants';
+import SSIButtonsContainer from '../../components/containers/SSIButtonsContainer';
+import SSICredentialSelectViewItem from '../../components/views/SSICredentialSelectViewItem';
+import {translate} from '../../localization/Localization';
+import {backgrounds, borders} from '../../styles/colors';
+import {
+  SSICredentialsRequiredScreenButtonContainerStyled as ButtonContainer,
+  SSIBasicContainerStyled as Container,
+  SSICredentialSelectTypeScreenViewItemContainerStyled as ItemContainer,
+  SSIStatusBarDarkModeStyled as StatusBar,
+} from '../../styles/components';
+import {ICredentialSelection, ScreenRoutesEnum, StackParamList} from '../../types';
+ 
+type Props = NativeStackScreenProps<StackParamList, ScreenRoutesEnum.CREDENTIALS_SELECT>;
+ 
+const SSICredentialsSelectScreen: FC<Props> = (props: Props): JSX.Element => {
+  const {onSelect} = props.route.params;
+  const [credentialSelection, setCredentialSelection] = React.useState(props.route.params.credentialSelection);
+ 
+  const setSelection = async (selection: ICredentialSelection, select?: boolean): Promise<void> => {
+    const newSelection = credentialSelection.map((credentialSelection: ICredentialSelection) => {
+      const isSelected = select === undefined ? !selection.isSelected : select;
+      credentialSelection.isSelected =
+        credentialSelection.hash == selection.hash ? (credentialSelection.isSelected = isSelected) : (credentialSelection.isSelected = false);
+      return credentialSelection;
+    });
+    setCredentialSelection(newSelection);
+  };
+ 
+  const onLongPress = async (itemInfo: ListRenderItemInfo<ICredentialSelection>): Promise<void> => {
+    await setSelection(itemInfo.item);
+  };
+ 
+  const onSelectPress = async (selection: ICredentialSelection): Promise<void> => {
+    await setSelection(selection, true);
+    props.navigation.goBack();
+  };
+ 
+  const onItemPress = async (selection: ICredentialSelection): Promise<void> => {
+    props.navigation.navigate(ScreenRoutesEnum.CREDENTIAL_DETAILS, {
+      rawCredential: selection.rawCredential,
+      credential: selection.credential,
+      showActivity: false,
+      primaryAction: {
+        caption: translate('action_select_label'),
+        onPress: () => onSelectPress(selection),
+      },
+    });
+  };
+ 
+  const renderItem = (itemInfo: ListRenderItemInfo<ICredentialSelection>): JSX.Element => {
+    const backgroundStyle = {
+      backgroundColor: itemInfo.index % 2 === 0 ? backgrounds.secondaryDark : backgrounds.primaryDark,
+    };
+    const style = {
+      ...backgroundStyle,
+      ...(itemInfo.index === credentialSelection.length - 1 && itemInfo.index % 2 !== 0 && {borderBottomWidth: 1, borderBottomColor: borders.dark}),
+    };
+    return (
+      <ItemContainer style={style} onPress={() => onItemPress(itemInfo.item)} onLongPress={() => onLongPress(itemInfo)}>
+        <SSICredentialSelectViewItem
+          title={itemInfo.item.credential.title}
+          issuer={itemInfo.item.credential.issuer.alias}
+          isSelected={itemInfo.item.isSelected}
+          style={backgroundStyle}
+          onPress={() => onLongPress(itemInfo)}
+        />
+      </ItemContainer>
+    );
+  };
+ 
+  return (
+    <Container>
+      <StatusBar />
+      <SwipeListView
+        data={credentialSelection}
+        keyExtractor={(itemInfo: ICredentialSelection) => itemInfo.hash}
+        renderItem={renderItem}
+        closeOnRowOpen
+        closeOnRowBeginSwipe
+        useFlatList
+        initialNumToRender={OVERVIEW_INITIAL_NUMBER_TO_RENDER}
+        removeClippedSubviews
+      />
+      <ButtonContainer>
+        <SSIButtonsContainer
+          primaryButton={{
+            caption: translate('action_accept_label'),
+            disabled: !credentialSelection.some((credentialSelection: ICredentialSelection) => credentialSelection.isSelected),
+            onPress: async () => {
+              await onSelect(
+                credentialSelection
+                  .filter((credentialSelection: ICredentialSelection) => credentialSelection.isSelected)
+                  .map((credentialSelection: ICredentialSelection) => credentialSelection.hash),
+              );
+              props.navigation.goBack();
+            },
+          }}
+        />
+      </ButtonContainer>
+    </Container>
+  );
+};
+ 
+export default SSICredentialsSelectScreen;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSICredentialSelectTypeScreen/index.html b/coverage/lcov-report/screens/SSICredentialSelectTypeScreen/index.html new file mode 100644 index 00000000..68019098 --- /dev/null +++ b/coverage/lcov-report/screens/SSICredentialSelectTypeScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for screens/SSICredentialSelectTypeScreen + + + + + + + + + +
+
+

All files screens/SSICredentialSelectTypeScreen

+
+
+ 4.76% + Statements + 1/21 +
+ +
+ 0% + Branches + 0/7 +
+ +
+ 0% + Functions + 0/11 +
+ +
+ 4.76% + Lines + 1/21 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
4.76%1/210%0/70%0/114.76%1/21
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSICredentialSelectTypeScreen/index.tsx.html b/coverage/lcov-report/screens/SSICredentialSelectTypeScreen/index.tsx.html new file mode 100644 index 00000000..76e23fba --- /dev/null +++ b/coverage/lcov-report/screens/SSICredentialSelectTypeScreen/index.tsx.html @@ -0,0 +1,327 @@ + + + + Code coverage report for screens/SSICredentialSelectTypeScreen/index.tsx + + + + + + + + + +
+
+

All files / screens/SSICredentialSelectTypeScreen index.tsx

+
+
+ 4.76% + Statements + 1/21 +
+ +
+ 0% + Branches + 0/7 +
+ +
+ 0% + Functions + 0/11 +
+ +
+ 4.76% + Lines + 1/21 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {NativeStackScreenProps} from '@react-navigation/native-stack';
+import React, {FC} from 'react';
+import {FlatList, ListRenderItemInfo} from 'react-native';
+ 
+import {OVERVIEW_INITIAL_NUMBER_TO_RENDER} from '../../@config/constants';
+import SSIPrimaryButton from '../../components/buttons/SSIPrimaryButton';
+import SSICredentialSelectTypeViewItem from '../../components/views/SSICredentialSelectTypeViewItem';
+import {translate} from '../../localization/Localization';
+import {backgrounds, borders} from '../../styles/colors';
+import {
+  SSICredentialSelectTypeScreenButtonContainerStyled as ButtonContainer,
+  SSIBasicContainerStyled as Container,
+  SSICredentialSelectTypeScreenViewItemContainerStyled as ItemContainer,
+  SSIStatusBarDarkModeStyled as StatusBar,
+} from '../../styles/components';
+import {ICredentialTypeSelection, ScreenRoutesEnum, StackParamList} from '../../types';
+ 
+type Props = NativeStackScreenProps<StackParamList, ScreenRoutesEnum.CREDENTIAL_SELECT_TYPE>;
+ 
+const SSICredentialSelectTypeScreen: FC<Props> = (props: Props): JSX.Element => {
+  const [credentialTypes, setCredentialTypes] = React.useState(props.route.params.credentialTypes);
+ 
+  const onPress = (itemInfo: ListRenderItemInfo<ICredentialTypeSelection>) => {
+    const selection = credentialTypes.map((credentialType: ICredentialTypeSelection) => {
+      credentialType.isSelected =
+        credentialType.id == itemInfo.item.id ? (credentialType.isSelected = !itemInfo.item.isSelected) : (credentialType.isSelected = false);
+      return credentialType;
+    });
+    // Creating a copy of the array as React-Native does not see a difference between the new and old array if a value is changed on one of the objects, and therefor will not trigger a rerender
+    setCredentialTypes([...selection]);
+  };
+ 
+  const onSelect = async (): Promise<void> => {
+    const selectedTypesOfCredentials = credentialTypes
+      .filter((credentialTypeSelection: ICredentialTypeSelection) => credentialTypeSelection.isSelected)
+      .map((credentialType: ICredentialTypeSelection) => credentialType.credentialType);
+    await props.route.params.onSelect(selectedTypesOfCredentials);
+  };
+ 
+  const renderItem = (itemInfo: ListRenderItemInfo<ICredentialTypeSelection>): JSX.Element => {
+    const backgroundStyle = {
+      backgroundColor: itemInfo.index % 2 === 0 ? backgrounds.secondaryDark : backgrounds.primaryDark,
+    };
+    const style = {
+      ...backgroundStyle,
+      ...(itemInfo.index === credentialTypes.length - 1 && itemInfo.index % 2 !== 0 && {borderBottomWidth: 1, borderBottomColor: borders.dark}),
+    };
+ 
+    return (
+      <ItemContainer style={style} onPress={() => onPress(itemInfo)}>
+        <SSICredentialSelectTypeViewItem
+          onPress={async () => onPress(itemInfo)}
+          title={itemInfo.item.credentialAlias}
+          isSelected={itemInfo.item.isSelected}
+          style={backgroundStyle}
+        />
+      </ItemContainer>
+    );
+  };
+ 
+  return (
+    <Container>
+      <StatusBar />
+      <FlatList
+        data={credentialTypes}
+        renderItem={renderItem}
+        keyExtractor={(itemInfo: ICredentialTypeSelection) => itemInfo.id}
+        initialNumToRender={OVERVIEW_INITIAL_NUMBER_TO_RENDER}
+        removeClippedSubviews
+      />
+      <ButtonContainer>
+        <SSIPrimaryButton
+          style={{height: 42, width: '100%'}}
+          title={translate('action_select_label')}
+          onPress={onSelect}
+          disabled={!credentialTypes.some((credentialType: ICredentialTypeSelection) => credentialType.isSelected)}
+        />
+      </ButtonContainer>
+    </Container>
+  );
+};
+ 
+export default SSICredentialSelectTypeScreen;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSICredentialsOverviewScreen/index.html b/coverage/lcov-report/screens/SSICredentialsOverviewScreen/index.html new file mode 100644 index 00000000..a412785a --- /dev/null +++ b/coverage/lcov-report/screens/SSICredentialsOverviewScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for screens/SSICredentialsOverviewScreen + + + + + + + + + +
+
+

All files screens/SSICredentialsOverviewScreen

+
+
+ 6.66% + Statements + 2/30 +
+ +
+ 0% + Branches + 0/9 +
+ +
+ 0% + Functions + 0/17 +
+ +
+ 6.66% + Lines + 2/30 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
6.66%2/300%0/90%0/176.66%2/30
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSICredentialsOverviewScreen/index.tsx.html b/coverage/lcov-report/screens/SSICredentialsOverviewScreen/index.tsx.html new file mode 100644 index 00000000..53cb184d --- /dev/null +++ b/coverage/lcov-report/screens/SSICredentialsOverviewScreen/index.tsx.html @@ -0,0 +1,525 @@ + + + + Code coverage report for screens/SSICredentialsOverviewScreen/index.tsx + + + + + + + + + +
+
+

All files / screens/SSICredentialsOverviewScreen index.tsx

+
+
+ 6.66% + Statements + 2/30 +
+ +
+ 0% + Branches + 0/9 +
+ +
+ 0% + Functions + 0/17 +
+ +
+ 6.66% + Lines + 2/30 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  + 
import {NativeStackScreenProps} from '@react-navigation/native-stack';
+import {VerifiableCredential} from '@veramo/core';
+import React, {PureComponent} from 'react';
+import {ListRenderItemInfo, RefreshControl} from 'react-native';
+import {SwipeListView} from 'react-native-swipe-list-view';
+import {connect} from 'react-redux';
+ 
+import {OVERVIEW_INITIAL_NUMBER_TO_RENDER} from '../../@config/constants';
+import SSICredentialViewItem from '../../components/views/SSICredentialViewItem';
+import SSISwipeRowViewItem from '../../components/views/SSISwipeRowViewItem';
+import {translate} from '../../localization/Localization';
+import {getVerifiableCredential} from '../../services/credentialService';
+import {deleteVerifiableCredential, getVerifiableCredentials} from '../../store/actions/credential.actions';
+import {backgrounds, borders} from '../../styles/colors';
+import {
+  SSIBasicContainerStyled as Container,
+  SSIRippleContainerStyled as ItemContainer,
+  SSIStatusBarDarkModeStyled as StatusBar,
+} from '../../styles/components';
+import {ICredentialSummary, IUser, IUserIdentifier, MainRoutesEnum, RootState, ScreenRoutesEnum, StackParamList} from '../../types';
+import {getOriginalVerifiableCredential} from '../../utils/CredentialUtils';
+ 
+interface IProps extends NativeStackScreenProps<StackParamList, ScreenRoutesEnum.CREDENTIALS_OVERVIEW> {
+  getVerifiableCredentials: () => void;
+  deleteVerifiableCredential: (credentialHash: string) => void;
+  verifiableCredentials: Array<ICredentialSummary>;
+  activeUser: IUser;
+}
+ 
+interface IState {
+  refreshing: boolean;
+}
+ 
+class SSICredentialsOverviewScreen extends PureComponent<IProps, IState> {
+  state: IState = {
+    refreshing: false,
+  };
+ 
+  onRefresh = async (): Promise<void> => {
+    this.props.getVerifiableCredentials();
+    this.setState({refreshing: false});
+  };
+ 
+  onDelete = async (credentialHash: string, credentialName: string): Promise<void> => {
+    this.props.navigation.navigate(MainRoutesEnum.POPUP_MODAL, {
+      title: translate('credential_delete_title'),
+      details: translate('credential_delete_message', {credentialName}),
+      primaryButton: {
+        caption: translate('action_confirm_label'),
+        onPress: async () => {
+          this.props.deleteVerifiableCredential(credentialHash);
+          this.props.navigation.goBack();
+        },
+      },
+      secondaryButton: {
+        caption: translate('action_cancel_label'),
+        onPress: async () => this.props.navigation.goBack(),
+      },
+    });
+  };
+ 
+  onItemPress = async (credential: ICredentialSummary): Promise<void> => {
+    getVerifiableCredential({hash: credential.hash}).then((vc: VerifiableCredential) =>
+      this.props.navigation.navigate(ScreenRoutesEnum.CREDENTIAL_DETAILS, {
+        rawCredential: getOriginalVerifiableCredential(vc),
+        credential,
+        showActivity: false,
+      }),
+    );
+  };
+ 
+  renderItem = (itemInfo: ListRenderItemInfo<ICredentialSummary>): JSX.Element => {
+    const {activeUser, verifiableCredentials} = this.props;
+ 
+    const credentialItem = (
+      <SSICredentialViewItem
+        hash={itemInfo.item.hash}
+        id={itemInfo.item.id}
+        branding={itemInfo.item.branding}
+        title={itemInfo.item.title}
+        issuer={itemInfo.item.issuer}
+        issueDate={itemInfo.item.issueDate}
+        expirationDate={itemInfo.item.expirationDate}
+        credentialStatus={itemInfo.item.credentialStatus}
+        properties={[]}
+      />
+    );
+ 
+    const backgroundStyle = {
+      backgroundColor: itemInfo.index % 2 === 0 ? backgrounds.secondaryDark : backgrounds.primaryDark,
+    };
+    const style = {
+      ...backgroundStyle,
+      ...(itemInfo.index === verifiableCredentials.length - 1 && itemInfo.index % 2 !== 0 && {borderBottomWidth: 1, borderBottomColor: borders.dark}),
+    };
+ 
+    return activeUser.identifiers.some(
+      (identifier: IUserIdentifier) => itemInfo.item.issuer.name === identifier.did && itemInfo.item.title === 'SphereonWalletIdentityCredential',
+    ) ? (
+      <ItemContainer style={style} onPress={() => this.onItemPress(itemInfo.item)}>
+        {credentialItem}
+      </ItemContainer>
+    ) : (
+      <SSISwipeRowViewItem
+        style={style}
+        hiddenStyle={backgroundStyle}
+        viewItem={credentialItem}
+        onPress={() => this.onItemPress(itemInfo.item)}
+        onDelete={() => this.onDelete(itemInfo.item.hash, itemInfo.item.title)}
+      />
+    );
+  };
+ 
+  render() {
+    return (
+      <Container>
+        <StatusBar />
+        <SwipeListView
+          data={this.props.verifiableCredentials}
+          keyExtractor={(itemInfo: ICredentialSummary) => itemInfo.hash}
+          renderItem={this.renderItem}
+          closeOnRowOpen
+          closeOnRowBeginSwipe
+          useFlatList
+          initialNumToRender={OVERVIEW_INITIAL_NUMBER_TO_RENDER}
+          removeClippedSubviews
+          refreshControl={<RefreshControl refreshing={this.state.refreshing} onRefresh={this.onRefresh} />}
+        />
+      </Container>
+    );
+  }
+}
+ 
+const mapDispatchToProps = (dispatch: any) => {
+  // TODO ThunkDispatch<any, unknown, Action>
+  return {
+    getVerifiableCredentials: () => dispatch(getVerifiableCredentials()),
+    deleteVerifiableCredential: (credentialHash: string) => dispatch(deleteVerifiableCredential(credentialHash)),
+  };
+};
+ 
+const mapStateToProps = (state: RootState) => {
+  return {
+    verifiableCredentials: state.credential.verifiableCredentials,
+    activeUser: state.user.activeUser!,
+  };
+};
+ 
+export default connect(mapStateToProps, mapDispatchToProps)(SSICredentialsOverviewScreen);
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSICredentialsRequiredScreen/index.html b/coverage/lcov-report/screens/SSICredentialsRequiredScreen/index.html new file mode 100644 index 00000000..592ab21d --- /dev/null +++ b/coverage/lcov-report/screens/SSICredentialsRequiredScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for screens/SSICredentialsRequiredScreen + + + + + + + + + +
+
+

All files screens/SSICredentialsRequiredScreen

+
+
+ 1.31% + Statements + 1/76 +
+ +
+ 0% + Branches + 0/26 +
+ +
+ 0% + Functions + 0/27 +
+ +
+ 1.36% + Lines + 1/73 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
1.31%1/760%0/260%0/271.36%1/73
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSICredentialsRequiredScreen/index.tsx.html b/coverage/lcov-report/screens/SSICredentialsRequiredScreen/index.tsx.html new file mode 100644 index 00000000..8ec3855c --- /dev/null +++ b/coverage/lcov-report/screens/SSICredentialsRequiredScreen/index.tsx.html @@ -0,0 +1,780 @@ + + + + Code coverage report for screens/SSICredentialsRequiredScreen/index.tsx + + + + + + + + + +
+
+

All files / screens/SSICredentialsRequiredScreen index.tsx

+
+
+ 1.31% + Statements + 1/76 +
+ +
+ 0% + Branches + 0/26 +
+ +
+ 0% + Functions + 0/27 +
+ +
+ 1.36% + Lines + 1/73 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {NativeStackScreenProps} from '@react-navigation/native-stack';
+import {PEX, SelectResults, SubmissionRequirementMatch} from '@sphereon/pex';
+import {Status} from '@sphereon/pex/dist/main/lib/ConstraintUtils';
+import {InputDescriptorV1, InputDescriptorV2} from '@sphereon/pex-models';
+import {ICredentialBranding} from '@sphereon/ssi-sdk.data-store';
+import {CredentialMapper, OriginalVerifiableCredential} from '@sphereon/ssi-types';
+import {UniqueVerifiableCredential} from '@veramo/core';
+import React, {FC, useEffect, useState} from 'react';
+import {ListRenderItemInfo} from 'react-native';
+import {SwipeListView} from 'react-native-swipe-list-view';
+ 
+import {OVERVIEW_INITIAL_NUMBER_TO_RENDER} from '../../@config/constants';
+import {ibGetCredentialBranding} from '../../agent';
+import SSIButtonsContainer from '../../components/containers/SSIButtonsContainer';
+import SSICredentialRequiredViewItem from '../../components/views/SSICredentialRequiredViewItem';
+import {translate} from '../../localization/Localization';
+import {getVerifiableCredentialsFromStorage} from '../../services/credentialService';
+import {
+  SSICredentialsRequiredScreenButtonContainerStyled as ButtonContainer,
+  SSIBasicContainerStyled as Container,
+  SSIStatusBarDarkModeStyled as StatusBar,
+} from '../../styles/components';
+import {ScreenRoutesEnum, StackParamList} from '../../types';
+import {getMatchingUniqueVerifiableCredential, getOriginalVerifiableCredential} from '../../utils/CredentialUtils';
+import {toCredentialSummary} from '../../utils/mappers/credential/CredentialMapper';
+import {JSONPath} from '@astronautlabs/jsonpath';
+ 
+type Props = NativeStackScreenProps<StackParamList, ScreenRoutesEnum.CREDENTIALS_REQUIRED>;
+ 
+const SSICredentialsRequiredScreen: FC<Props> = (props: Props): JSX.Element => {
+  const {presentationDefinition, format, subjectSyntaxTypesSupported, verifier} = props.route.params;
+  const [selectedCredentials, setSelectedCredentials] = useState(new Map<string, Array<UniqueVerifiableCredential>>());
+  const [availableCredentials, setAvailableCredentials] = useState(new Map<string, Array<UniqueVerifiableCredential>>());
+  const pex = new PEX();
+ 
+  useEffect(() => {
+    // TODO we need to have one source for these credentials as then all the data is always available
+    getVerifiableCredentialsFromStorage().then((uniqueVCs: Array<UniqueVerifiableCredential>) => {
+      // We need to go to a wrapped VC first to get an actual original Verifiable Credential in JWT format, as they are stored with a special Proof value in Veramo
+      const originalVcs: Array<OriginalVerifiableCredential> = uniqueVCs.map(
+        (uniqueVC: UniqueVerifiableCredential) =>
+          CredentialMapper.toWrappedVerifiableCredential(uniqueVC.verifiableCredential as OriginalVerifiableCredential).original,
+      );
+      const availableVCs = new Map<string, Array<UniqueVerifiableCredential>>();
+      presentationDefinition.input_descriptors.forEach((inputDescriptor: InputDescriptorV1 | InputDescriptorV2) => {
+        const presentationDefinition = {
+          id: inputDescriptor.id,
+          input_descriptors: [inputDescriptor],
+        };
+        const selectResult: SelectResults = pex.selectFrom(presentationDefinition, originalVcs, {
+          restrictToFormats: format,
+          restrictToDIDMethods: subjectSyntaxTypesSupported,
+        });
+        if (selectResult.areRequiredCredentialsPresent === Status.ERROR) {
+          console.debug('pex.selectFrom returned errors:\n', JSON.stringify(selectResult.errors));
+        }
+        const matchedVCs: Array<UniqueVerifiableCredential> =
+          selectResult.matches && selectResult.verifiableCredential
+            ? selectResult.matches
+                .map((match: SubmissionRequirementMatch) => {
+                  const matchedVC = JSONPath.query(selectResult, match.vc_path[0]); // TODO Can we have multiple vc_path elements for a single match?
+                  if (matchedVC && matchedVC.length > 0) {
+                    return getMatchingUniqueVerifiableCredential(uniqueVCs, matchedVC[0]);
+                  }
+                })
+                .filter((matchedVC: UniqueVerifiableCredential | undefined): matchedVC is UniqueVerifiableCredential => !!matchedVC) // filter out the undefined (should not happen)
+            : [];
+        availableVCs.set(inputDescriptor.id, matchedVCs);
+      });
+      setAvailableCredentials(availableVCs);
+    });
+  }, []);
+ 
+  useEffect(() => {
+    const selectedVCs = new Map<string, Array<UniqueVerifiableCredential>>();
+    presentationDefinition.input_descriptors.forEach((inputDescriptor: InputDescriptorV1 | InputDescriptorV2) =>
+      selectedVCs.set(inputDescriptor.id, []),
+    );
+    setSelectedCredentials(selectedVCs);
+  }, [presentationDefinition]);
+ 
+  const onDecline = async (): Promise<void> => {
+    props.navigation.goBack();
+  };
+ 
+  const onSend = async (): Promise<void> => {
+    const {onSend} = props.route.params;
+    const selectedVCs = getSelectedCredentials();
+ 
+    await onSend(selectedVCs.map(uniqueVC => getOriginalVerifiableCredential(uniqueVC.verifiableCredential)));
+  };
+ 
+  const getSelectedCredentials = (): Array<UniqueVerifiableCredential> => {
+    const selectedVCs: Array<Array<UniqueVerifiableCredential>> = [];
+    for (const uniqueVCs of selectedCredentials.values()) {
+      selectedVCs.push(uniqueVCs);
+    }
+ 
+    return selectedVCs.flat();
+  };
+ 
+  const isMatchingPresentationDefinition = (): boolean => {
+    return (
+      pex.evaluateCredentials(
+        presentationDefinition,
+        getSelectedCredentials().map(uniqueVC => getOriginalVerifiableCredential(uniqueVC.verifiableCredential)),
+      ).areRequiredCredentialsPresent === Status.INFO
+    );
+  };
+ 
+  const onItemPress = async (inputDescriptorId: string, uniqueVCs: Array<UniqueVerifiableCredential>, inputDescriptorPurpose?: string) => {
+    // TODO we need to have one source for these credentials as then all the data is always available
+    const vcHashes: Array<{vcHash: string}> = uniqueVCs.map((uniqueCredential: UniqueVerifiableCredential): {vcHash: string} => ({
+      vcHash: uniqueCredential.hash,
+    }));
+    const credentialsBranding: Array<ICredentialBranding> = await ibGetCredentialBranding({filter: vcHashes});
+ 
+    props.navigation.navigate(ScreenRoutesEnum.CREDENTIALS_SELECT, {
+      credentialSelection: await Promise.all(
+        uniqueVCs.map(async (uniqueVC: UniqueVerifiableCredential) => {
+          // TODO we need to have one source for these credentials as then all the data is always available
+          const credentialBranding: ICredentialBranding | undefined = credentialsBranding.find(
+            (branding: ICredentialBranding) => branding.vcHash === uniqueVC.hash,
+          );
+          const credentialSummary = await toCredentialSummary(uniqueVC, credentialBranding?.localeBranding);
+          const rawCredential = await getOriginalVerifiableCredential(uniqueVC.verifiableCredential);
+          const isSelected = selectedCredentials
+            .get(inputDescriptorId)!
+            .some(
+              matchedVC =>
+                matchedVC.verifiableCredential.id === uniqueVC.verifiableCredential.id ||
+                matchedVC.verifiableCredential.proof === uniqueVC.verifiableCredential.proof,
+            );
+          return {
+            hash: credentialSummary.hash,
+            id: credentialSummary.id,
+            credential: credentialSummary,
+            rawCredential: rawCredential,
+            isSelected: isSelected,
+          };
+        }),
+      ),
+      purpose: inputDescriptorPurpose,
+      // TODO move this to a function, would be nicer
+      onSelect: async (hashes: Array<string>) => {
+        const selectedVCs = availableCredentials.get(inputDescriptorId)!.filter(vc => hashes.includes(vc.hash));
+        selectedCredentials.set(inputDescriptorId, selectedVCs);
+        const newSelection = new Map<string, Array<UniqueVerifiableCredential>>();
+        for (const [key, value] of selectedCredentials) {
+          newSelection.set(key, value);
+        }
+        setSelectedCredentials(newSelection);
+      },
+    });
+  };
+ 
+  // TODO add support for multiple versions of pex, currently using V1
+  const renderItem = (itemInfo: ListRenderItemInfo<InputDescriptorV1 | InputDescriptorV2>): JSX.Element => {
+    const onPress =
+      !availableCredentials.has(itemInfo.item.id) || availableCredentials.get(itemInfo.item.id)!.length === 0
+        ? undefined
+        : () => onItemPress(itemInfo.item.id, availableCredentials.get(itemInfo.item.id)!, itemInfo.item.purpose);
+ 
+    const checkIsMatching = (
+      itemInfo: ListRenderItemInfo<InputDescriptorV1 | InputDescriptorV2>,
+      selectedCredentials: Map<string, Array<UniqueVerifiableCredential>>,
+    ): boolean => {
+      if (!selectedCredentials.has(itemInfo.item.id)) {
+        return false;
+      }
+      const selectedCredential: Array<UniqueVerifiableCredential> | undefined = selectedCredentials.get(itemInfo.item.id);
+      if (!selectedCredential) {
+        return false;
+      }
+ 
+      const credentials: Array<OriginalVerifiableCredential> = selectedCredential.map((uniqueVC: UniqueVerifiableCredential) =>
+        getOriginalVerifiableCredential(uniqueVC.verifiableCredential),
+      );
+      return (
+        pex.evaluateCredentials(
+          {
+            id: itemInfo.item.id,
+            input_descriptors: [itemInfo.item],
+          },
+          credentials,
+        ).areRequiredCredentialsPresent === Status.INFO
+      );
+    };
+ 
+    return (
+      <SSICredentialRequiredViewItem
+        id={itemInfo.item.id}
+        title={itemInfo.item.name || itemInfo.item.id}
+        purpose={itemInfo.item.purpose}
+        available={availableCredentials.has(itemInfo.item.id) ? availableCredentials.get(itemInfo.item.id)! : undefined}
+        selected={selectedCredentials.has(itemInfo.item.id) ? selectedCredentials.get(itemInfo.item.id)! : []}
+        isMatching={checkIsMatching(itemInfo, selectedCredentials)}
+        listIndex={itemInfo.index}
+        onPress={onPress}
+      />
+    );
+  };
+ 
+  return (
+    <Container>
+      <StatusBar />
+      <SwipeListView
+        data={presentationDefinition.input_descriptors}
+        keyExtractor={(itemInfo: InputDescriptorV1 | InputDescriptorV2) => itemInfo.id}
+        renderItem={renderItem}
+        closeOnRowOpen
+        closeOnRowBeginSwipe
+        useFlatList
+        initialNumToRender={OVERVIEW_INITIAL_NUMBER_TO_RENDER}
+        removeClippedSubviews
+      />
+      <ButtonContainer>
+        <SSIButtonsContainer
+          secondaryButton={{
+            caption: translate('action_decline_label'),
+            onPress: onDecline,
+          }}
+          primaryButton={{
+            caption: translate('action_share_label'),
+            disabled: !isMatchingPresentationDefinition(),
+            onPress: onSend,
+          }}
+        />
+      </ButtonContainer>
+    </Container>
+  );
+};
+ 
+export default SSICredentialsRequiredScreen;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSIErrorScreen/index.html b/coverage/lcov-report/screens/SSIErrorScreen/index.html new file mode 100644 index 00000000..71fcfb96 --- /dev/null +++ b/coverage/lcov-report/screens/SSIErrorScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for screens/SSIErrorScreen + + + + + + + + + +
+
+

All files screens/SSIErrorScreen

+
+
+ 16.66% + Statements + 1/6 +
+ +
+ 0% + Branches + 0/5 +
+ +
+ 0% + Functions + 0/3 +
+ +
+ 16.66% + Lines + 1/6 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
16.66%1/60%0/50%0/316.66%1/6
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSIErrorScreen/index.tsx.html b/coverage/lcov-report/screens/SSIErrorScreen/index.tsx.html new file mode 100644 index 00000000..0946d8d7 --- /dev/null +++ b/coverage/lcov-report/screens/SSIErrorScreen/index.tsx.html @@ -0,0 +1,246 @@ + + + + Code coverage report for screens/SSIErrorScreen/index.tsx + + + + + + + + + +
+
+

All files / screens/SSIErrorScreen index.tsx

+
+
+ 16.66% + Statements + 1/6 +
+ +
+ 0% + Branches + 0/5 +
+ +
+ 0% + Functions + 0/3 +
+ +
+ 16.66% + Lines + 1/6 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {NativeStackScreenProps} from '@react-navigation/native-stack';
+import React, {FC} from 'react';
+ 
+import SSIPopup from '../../components/messageBoxes/popups/SSIPopup';
+import {
+  SSIBasicContainerStyled as Container,
+  SSIErrorScreenContentContainerStyled as ContentContainer,
+  SSIPopupModalDetailsModalContainerStyled as ExtraDetailsContainer,
+} from '../../styles/components';
+import {ScreenRoutesEnum, StackParamList} from '../../types';
+ 
+type Props = NativeStackScreenProps<StackParamList, ScreenRoutesEnum.ERROR>;
+ 
+const SSIErrorScreen: FC<Props> = (props: Props): JSX.Element => {
+  const {onClose, image, title, titleBadge, details, extraDetails, detailsPopup, primaryButton, secondaryButton} = props.route.params;
+  const [showExtraDetails, setShowExtraDetails] = React.useState(false);
+ 
+  return (
+    <Container>
+      <ContentContainer>
+        {showExtraDetails && detailsPopup && (
+          <ExtraDetailsContainer>
+            <SSIPopup
+              onClose={async () => setShowExtraDetails(false)}
+              title={detailsPopup.title}
+              details={detailsPopup.details}
+              extraDetails={detailsPopup.extraDetails}
+              darkMode
+            />
+          </ExtraDetailsContainer>
+        )}
+        <SSIPopup
+          onClose={onClose}
+          image={image}
+          title={title}
+          titleBadge={titleBadge}
+          details={details}
+          extraDetails={extraDetails}
+          detailsButton={
+            detailsPopup
+              ? {
+                  caption: detailsPopup.buttonCaption,
+                  onPress: async () => setShowExtraDetails(true),
+                }
+              : undefined
+          }
+          primaryButton={primaryButton}
+          secondaryButton={secondaryButton}
+          darkMode
+        />
+      </ContentContainer>
+    </Container>
+  );
+};
+ 
+export default SSIErrorScreen;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSILoadingScreen/index.html b/coverage/lcov-report/screens/SSILoadingScreen/index.html new file mode 100644 index 00000000..14091b8d --- /dev/null +++ b/coverage/lcov-report/screens/SSILoadingScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for screens/SSILoadingScreen + + + + + + + + + +
+
+

All files screens/SSILoadingScreen

+
+
+ 85.71% + Statements + 6/7 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 75% + Functions + 3/4 +
+ +
+ 100% + Lines + 6/6 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
85.71%6/7100%0/075%3/4100%6/6
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSILoadingScreen/index.tsx.html b/coverage/lcov-report/screens/SSILoadingScreen/index.tsx.html new file mode 100644 index 00000000..7ebf18a9 --- /dev/null +++ b/coverage/lcov-report/screens/SSILoadingScreen/index.tsx.html @@ -0,0 +1,198 @@ + + + + Code coverage report for screens/SSILoadingScreen/index.tsx + + + + + + + + + +
+
+

All files / screens/SSILoadingScreen index.tsx

+
+
+ 85.71% + Statements + 6/7 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 75% + Functions + 3/4 +
+ +
+ 100% + Lines + 6/6 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +3x +  +3x +  +  +3x +3x +  +  +  +3x +3x +  +  +  +  +  +  +  +  +  +  +  + 
import {NativeStackScreenProps} from '@react-navigation/native-stack';
+import {PureComponent} from 'react';
+import {BackHandler, NativeEventSubscription} from 'react-native';
+ 
+import {
+  SSILoadingScreenActivityCaptionStyled as ActivityCaption,
+  SSILoadingScreenActivityIndicatorStyled as ActivityIndicator,
+  SSILoadingScreenActivityIndicatorContainerStyled as ActivityIndicatorContainer,
+  SSIBasicHorizontalCenterContainerStyled as Container,
+} from '../../styles/components';
+import {ScreenRoutesEnum, StackParamList} from '../../types';
+ 
+type Props = NativeStackScreenProps<StackParamList, ScreenRoutesEnum.LOADING>;
+ 
+class SSILoadingScreen extends PureComponent<Props> {
+  hardwareBackPressListener: NativeEventSubscription;
+ 
+  componentDidMount = (): void => {
+    // we add this listener to block the os back button from executing on the loading screen. returning true will not let the event bubble up.
+    this.hardwareBackPressListener = BackHandler.addEventListener('hardwareBackPress', () => true);
+  };
+ 
+  componentWillUnmount = (): void => {
+    this.hardwareBackPressListener.remove();
+  };
+ 
+  render() {
+    const {message} = this.props.route.params;
+    return (
+      <Container>
+        <ActivityIndicatorContainer>
+          <ActivityIndicator />
+        </ActivityIndicatorContainer>
+        <ActivityCaption>{message}</ActivityCaption>
+      </Container>
+    );
+  }
+}
+ 
+export default SSILoadingScreen;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSILockScreen/index.html b/coverage/lcov-report/screens/SSILockScreen/index.html new file mode 100644 index 00000000..02ab9b4f --- /dev/null +++ b/coverage/lcov-report/screens/SSILockScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for screens/SSILockScreen + + + + + + + + + +
+
+

All files screens/SSILockScreen

+
+
+ 14.28% + Statements + 1/7 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/2 +
+ +
+ 14.28% + Lines + 1/7 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
14.28%1/70%0/20%0/214.28%1/7
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSILockScreen/index.tsx.html b/coverage/lcov-report/screens/SSILockScreen/index.tsx.html new file mode 100644 index 00000000..0c40c92d --- /dev/null +++ b/coverage/lcov-report/screens/SSILockScreen/index.tsx.html @@ -0,0 +1,213 @@ + + + + Code coverage report for screens/SSILockScreen/index.tsx + + + + + + + + + +
+
+

All files / screens/SSILockScreen index.tsx

+
+
+ 14.28% + Statements + 1/7 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/2 +
+ +
+ 14.28% + Lines + 1/7 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {NativeStackScreenProps} from '@react-navigation/native-stack';
+import React, {FC} from 'react';
+ 
+import {PIN_CODE_LENGTH} from '../../@config/constants';
+import SSIPinCode from '../../components/pinCodes/SSIPinCode';
+import {translate} from '../../localization/Localization';
+import {storageGetPin} from '../../services/storageService';
+import {
+  SSIBasicHorizontalCenterContainerStyled as Container,
+  SSILockScreenPinCodeContainerStyled as PinCodeContainer,
+  SSIStatusBarDarkModeStyled as StatusBar,
+} from '../../styles/components';
+import {ScreenRoutesEnum, StackParamList} from '../../types';
+ 
+type Props = NativeStackScreenProps<StackParamList, ScreenRoutesEnum.LOCK>;
+ 
+// TODO This screen should be extended to do pin code or biometrics authentication
+const SSILockScreen: FC<Props> = (props: Props): JSX.Element => {
+  const onVerification = async (value: string): Promise<void> => {
+    const {onAuthenticate} = props.route.params;
+ 
+    // TODO We are currently only supporting a single user right now
+    if (value !== (await storageGetPin())) {
+      return Promise.reject('Invalid pin code');
+    }
+    await onAuthenticate();
+  };
+ 
+  return (
+    <Container>
+      <StatusBar />
+      <PinCodeContainer>
+        <SSIPinCode
+          length={PIN_CODE_LENGTH}
+          accessibilityLabel={translate('pin_code_accessibility_label')}
+          accessibilityHint={translate('pin_code_accessibility_hint')}
+          errorMessage={translate('pin_code_invalid_code_message')}
+          onVerification={onVerification}
+        />
+      </PinCodeContainer>
+    </Container>
+  );
+};
+ 
+export default SSILockScreen;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSINotificationsOverviewScreen/index.html b/coverage/lcov-report/screens/SSINotificationsOverviewScreen/index.html new file mode 100644 index 00000000..9ac9329c --- /dev/null +++ b/coverage/lcov-report/screens/SSINotificationsOverviewScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for screens/SSINotificationsOverviewScreen + + + + + + + + + +
+
+

All files screens/SSINotificationsOverviewScreen

+
+
+ 50% + Statements + 1/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 50% + Lines + 1/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
50%1/2100%0/00%0/150%1/2
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSINotificationsOverviewScreen/index.tsx.html b/coverage/lcov-report/screens/SSINotificationsOverviewScreen/index.tsx.html new file mode 100644 index 00000000..d68754ec --- /dev/null +++ b/coverage/lcov-report/screens/SSINotificationsOverviewScreen/index.tsx.html @@ -0,0 +1,174 @@ + + + + Code coverage report for screens/SSINotificationsOverviewScreen/index.tsx + + + + + + + + + +
+
+

All files / screens/SSINotificationsOverviewScreen index.tsx

+
+
+ 50% + Statements + 1/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 50% + Lines + 1/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {NativeStackScreenProps} from '@react-navigation/native-stack';
+import React, {FC} from 'react';
+ 
+import SSINotificationsImage from '../../components/assets/images/SSINotificationsImage';
+import {translate} from '../../localization/Localization';
+import {
+  SSIBasicContainerStyled as Container,
+  SSINotificationsOverviewScreenEmptyStateContainerStyled as EmptyStateContainer,
+  SSINotificationsOverviewScreenEmptyStateImageContainerStyled as EmptyStateImageContainer,
+  SSITextH4LightStyled as SubTitleText,
+  SSINotificationsOverviewScreenEmptyStateTitleTextStyled as TitleText,
+} from '../../styles/components';
+import {ScreenRoutesEnum, StackParamList} from '../../types';
+ 
+type Props = NativeStackScreenProps<StackParamList, ScreenRoutesEnum.NOTIFICATIONS_OVERVIEW>;
+ 
+const SSINotificationsOverviewScreen: FC<Props> = (props: Props): JSX.Element => {
+  return (
+    // This currently now only shows the empty state.
+    <Container>
+      <EmptyStateContainer>
+        <EmptyStateImageContainer>
+          <SSINotificationsImage />
+        </EmptyStateImageContainer>
+        <TitleText>{translate('notifications_overview_empty_state_title')}</TitleText>
+        <SubTitleText>{translate('notifications_overview_empty_state_subtitle')}</SubTitleText>
+      </EmptyStateContainer>
+    </Container>
+  );
+};
+ 
+export default SSINotificationsOverviewScreen;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSIQRReaderScreen/index.html b/coverage/lcov-report/screens/SSIQRReaderScreen/index.html new file mode 100644 index 00000000..311cb7b7 --- /dev/null +++ b/coverage/lcov-report/screens/SSIQRReaderScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for screens/SSIQRReaderScreen + + + + + + + + + +
+
+

All files screens/SSIQRReaderScreen

+
+
+ 14.28% + Statements + 1/7 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/2 +
+ +
+ 14.28% + Lines + 1/7 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
14.28%1/70%0/20%0/214.28%1/7
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSIQRReaderScreen/index.tsx.html b/coverage/lcov-report/screens/SSIQRReaderScreen/index.tsx.html new file mode 100644 index 00000000..5a3cbf4b --- /dev/null +++ b/coverage/lcov-report/screens/SSIQRReaderScreen/index.tsx.html @@ -0,0 +1,204 @@ + + + + Code coverage report for screens/SSIQRReaderScreen/index.tsx + + + + + + + + + +
+
+

All files / screens/SSIQRReaderScreen index.tsx

+
+
+ 14.28% + Statements + 1/7 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/2 +
+ +
+ 14.28% + Lines + 1/7 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {NativeStackScreenProps} from '@react-navigation/native-stack';
+import React, {FC} from 'react';
+import {Platform, StatusBar} from 'react-native';
+import {BarCodeReadEvent, RNCamera} from 'react-native-camera';
+ 
+import {QR_SCANNER_TIMEOUT} from '../../@config/constants';
+import SSIQRCustomMarker from '../../components/qrCodes/SSIQRCustomMarker';
+import {translate} from '../../localization/Localization';
+import {readQr} from '../../services/qrService';
+import {SSIFullFlexDirectionRowViewStyled as Container, SSIQRReaderScreenScannerStyled as QRScanner} from '../../styles/components';
+import {PlatformsEnum, ScreenRoutesEnum, StackParamList} from '../../types';
+ 
+type Props = NativeStackScreenProps<StackParamList, ScreenRoutesEnum.QR_READER>;
+ 
+const SSIQRReaderScreen: FC<Props> = (props: Props): JSX.Element => {
+  const onRead = async (readEvent: BarCodeReadEvent): Promise<void> => {
+    await readQr({qrData: readEvent.data, navigation: props.navigation});
+  };
+ 
+  if (Platform.OS === PlatformsEnum.ANDROID) {
+    StatusBar.setTranslucent(true);
+    StatusBar.setBackgroundColor('transparent');
+  }
+ 
+  return (
+    <Container>
+      <QRScanner
+        onRead={onRead}
+        reactivate
+        reactivateTimeout={QR_SCANNER_TIMEOUT.reactivate}
+        containerStyle={{backgroundColor: 'black'}}
+        showMarker
+        customMarker={<SSIQRCustomMarker title={translate('qr_scanner_marker_title')} subtitle={translate('qr_scanner_marker_subtitle')} />}
+        cameraProps={{
+          flashMode: RNCamera.Constants.FlashMode.auto,
+        }}
+      />
+    </Container>
+  );
+};
+ 
+export default SSIQRReaderScreen;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSIVerificationCodeScreen/index.html b/coverage/lcov-report/screens/SSIVerificationCodeScreen/index.html new file mode 100644 index 00000000..0f9fc8db --- /dev/null +++ b/coverage/lcov-report/screens/SSIVerificationCodeScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for screens/SSIVerificationCodeScreen + + + + + + + + + +
+
+

All files screens/SSIVerificationCodeScreen

+
+
+ 16.66% + Statements + 1/6 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/3 +
+ +
+ 16.66% + Lines + 1/6 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
16.66%1/6100%0/00%0/316.66%1/6
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/screens/SSIVerificationCodeScreen/index.tsx.html b/coverage/lcov-report/screens/SSIVerificationCodeScreen/index.tsx.html new file mode 100644 index 00000000..97dce23e --- /dev/null +++ b/coverage/lcov-report/screens/SSIVerificationCodeScreen/index.tsx.html @@ -0,0 +1,246 @@ + + + + Code coverage report for screens/SSIVerificationCodeScreen/index.tsx + + + + + + + + + +
+
+

All files / screens/SSIVerificationCodeScreen index.tsx

+
+
+ 16.66% + Statements + 1/6 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/3 +
+ +
+ 16.66% + Lines + 1/6 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {NativeStackScreenProps} from '@react-navigation/native-stack';
+import React, {FC} from 'react';
+ 
+import {VERIFICATION_CODE_MAX_RETRIES} from '../../@config/constants';
+import SSIPinCode from '../../components/pinCodes/SSIPinCode';
+import {translate} from '../../localization/Localization';
+import {
+  SSIBasicHorizontalCenterContainerStyled as Container,
+  SSIVerificationCodeScreenPinCodeContainerStyled as PinCodeContainer,
+  SSIStatusBarDarkModeStyled as StatusBar,
+} from '../../styles/components';
+import {MainRoutesEnum, PopupImagesEnum, ScreenRoutesEnum, StackParamList} from '../../types';
+import {toLocalDateTimeString} from '../../utils/DateUtils';
+ 
+type Props = NativeStackScreenProps<StackParamList, ScreenRoutesEnum.VERIFICATION_CODE>;
+ 
+const SSIVerificationCodeScreen: FC<Props> = (props: Props): JSX.Element => {
+  const {route, navigation} = props;
+ 
+  const onMaxRetriesExceeded = async (): Promise<void> => {
+    navigation.navigate(MainRoutesEnum.POPUP_MODAL, {
+      image: PopupImagesEnum.SECURITY,
+      title: translate('verification_code_invalid_code_title'),
+      details: translate('verification_code_invalid_code_details'),
+      detailsPopup: {
+        buttonCaption: translate('action_view_extra_details'),
+        title: translate('verification_code_invalid_code_details_title'),
+        details: '<b>Error Details:</b> Invalid OpenID token hint PIN provided.', // TODO WAL-277 get this information from the auth process once we have it
+        extraDetails: `<b>Timestamp:</b> ${toLocalDateTimeString(new Date().getTime())}\n<b>Correlationid:</b> uDVppai+Q0mlGbosRL4M5w.9`, // TODO WAL-277 get this information from the auth process once we have it
+      },
+      primaryButton: {
+        caption: translate('action_ok_label'),
+        onPress: async () => navigation.navigate(ScreenRoutesEnum.QR_READER, {}),
+      },
+    });
+  };
+ 
+  return (
+    <Container>
+      <StatusBar />
+      <PinCodeContainer>
+        <SSIPinCode
+          maxRetries={VERIFICATION_CODE_MAX_RETRIES}
+          length={route.params.pinLength}
+          accessibilityLabel={translate('verification_code_accessibility_label')}
+          accessibilityHint={translate('verification_code_accessibility_hint')}
+          onMaxRetriesExceeded={onMaxRetriesExceeded}
+          onVerification={route.params.onVerification}
+          errorMessage={translate('verification_code_invalid_code_message')}
+        />
+      </PinCodeContainer>
+    </Container>
+  );
+};
+ 
+export default SSIVerificationCodeScreen;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/services/authenticationService.ts.html b/coverage/lcov-report/services/authenticationService.ts.html new file mode 100644 index 00000000..273c63fa --- /dev/null +++ b/coverage/lcov-report/services/authenticationService.ts.html @@ -0,0 +1,207 @@ + + + + Code coverage report for services/authenticationService.ts + + + + + + + + + +
+
+

All files / services authenticationService.ts

+
+
+ 26.31% + Statements + 5/19 +
+ +
+ 0% + Branches + 0/6 +
+ +
+ 0% + Functions + 0/5 +
+ +
+ 27.77% + Lines + 5/18 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44  +  +  +  +  +  +  +  +  +  +  +1x +  +1x +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Debug from 'debug';
+import {useSelector} from 'react-redux';
+ 
+import {APP_ID} from '../@config/constants';
+import { OnboardingMachine } from "../machines/onboardingMachine";
+import RootNavigation from '../navigation/rootNavigation';
+import store from '../store';
+import {login as loginAction} from '../store/actions/user.actions';
+import {RootState, ScreenRoutesEnum, WalletAuthLockState} from '../types';
+import {IUserState} from '../types/store/user.types';
+ 
+const debug: Debug.Debugger = Debug(`${APP_ID}:authenticationService`);
+ 
+export const authenticate = async (onAuthenticate: () => Promise<void>): Promise<void> => {
+  // TODO extend this function to look for the preference (biometrics or pin code). If no preference is present, use pin code
+  await enterPinCode(onAuthenticate);
+};
+ 
+const enterPinCode = async (onAuthenticate: () => Promise<void>): Promise<void> => {
+  RootNavigation.navigate(ScreenRoutesEnum.LOCK, {onAuthenticate});
+};
+ 
+export const login = async (): Promise<void> => {
+  // TODO currently only supporting 1 user
+  const userId: string = store.getState().user.users.values().next().value.id;
+  store.dispatch<any>(loginAction(userId));
+};
+ 
+export const walletAuthLockState = (): WalletAuthLockState => {
+  const userState: IUserState = useSelector((state: RootState) => state.user);
+  console.log(`User state: ${JSON.stringify(userState)}`)
+  let lockState: WalletAuthLockState;
+  if (userState.users.size === 0 || OnboardingMachine.hasInstance()) {
+    lockState = WalletAuthLockState.ONBOARDING;
+  } else if (!userState.activeUser) {
+    lockState = WalletAuthLockState.LOCKED;
+  } else {
+    lockState = WalletAuthLockState.AUTHENTICATED;
+  }
+  console.log(`Lock state: ${lockState}`);
+ 
+  return lockState;
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/services/brandingService.ts.html b/coverage/lcov-report/services/brandingService.ts.html new file mode 100644 index 00000000..99a1204d --- /dev/null +++ b/coverage/lcov-report/services/brandingService.ts.html @@ -0,0 +1,225 @@ + + + + Code coverage report for services/brandingService.ts + + + + + + + + + +
+
+

All files / services brandingService.ts

+
+
+ 61.11% + Statements + 11/18 +
+ +
+ 60% + Branches + 6/10 +
+ +
+ 16.66% + Functions + 1/6 +
+ +
+ 61.11% + Lines + 11/18 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50  +  +  +  +  +  +  +  +  +  +1x +  +1x +  +  +  +  +1x +  +  +  +  +1x +  +  +  +  +1x +1x +  +  +  +  +1x +1x +  +  +  +  +  +1x +1x +  +  +  +  +  +1x +  + 
import {IBasicCredentialLocaleBranding, IBasicIssuerLocaleBranding, ICredentialBranding} from '@sphereon/ssi-sdk.data-store';
+import {IDeletionResult} from '@sphereon/ssi-sdk.issuance-branding';
+import Debug from 'debug';
+ 
+import {APP_ID} from '../@config/constants';
+import {ibAddCredentialBranding, ibRemoveCredentialBranding} from '../agent';
+import Localization from '../localization/Localization';
+import {IAddCredentialBrandingArgs, IRemoveCredentialBrandingArgs, ISelectAppLocaleBrandingArgs} from '../types';
+import {preloadImage} from '../utils/ImageUtils';
+ 
+const debug: Debug.Debugger = Debug(`${APP_ID}:brandingService`);
+ 
+export const addCredentialBranding = async (args: IAddCredentialBrandingArgs): Promise<ICredentialBranding> => {
+  debug(`createCredentialBranding(${JSON.stringify(args)})...`);
+  return ibAddCredentialBranding(args);
+};
+ 
+export const removeCredentialBranding = async (args: IRemoveCredentialBrandingArgs): Promise<IDeletionResult> => {
+  debug(`removeCredentialBranding(${JSON.stringify(args)})...`);
+  return ibRemoveCredentialBranding(args);
+};
+ 
+export const selectAppLocaleBranding = async (
+  args: ISelectAppLocaleBrandingArgs,
+): Promise<IBasicCredentialLocaleBranding | IBasicIssuerLocaleBranding | undefined> => {
+  // We need to retrieve the locale of the app and select a matching branding or fallback on a branding without a locale
+  // We search for a first match that starts with the app locale
+  const appLocale: string = Localization.getLocale();
+  const localeBranding: IBasicCredentialLocaleBranding | IBasicIssuerLocaleBranding | undefined = args.localeBranding?.find(
+    (branding: IBasicCredentialLocaleBranding | IBasicIssuerLocaleBranding) =>
+      branding.locale?.startsWith(appLocale) || branding.locale === undefined,
+  );
+ 
+  const logo: string | undefined = localeBranding?.logo?.dataUri || localeBranding?.logo?.uri;
+  Iif (logo) {
+    preloadImage([{uri: logo}]).catch((): void => {
+      //ignore
+    });
+  }
+ 
+  const backgroundImage: string | undefined = localeBranding?.background?.image?.dataUri || localeBranding?.background?.image?.uri;
+  Iif (backgroundImage) {
+    preloadImage([{uri: backgroundImage}]).catch((): void => {
+      //ignore
+    });
+  }
+ 
+  return localeBranding;
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/services/contactService.ts.html b/coverage/lcov-report/services/contactService.ts.html new file mode 100644 index 00000000..ce9b21e2 --- /dev/null +++ b/coverage/lcov-report/services/contactService.ts.html @@ -0,0 +1,240 @@ + + + + Code coverage report for services/contactService.ts + + + + + + + + + +
+
+

All files / services contactService.ts

+
+
+ 28.57% + Statements + 8/28 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 7.69% + Functions + 1/13 +
+ +
+ 28.57% + Lines + 8/28 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55  +  +  +  +  +  +  +  +1x +  +1x +1x +1x +  +  +1x +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  + 
import {IRemoveContactArgs} from '@sphereon/ssi-sdk.contact-manager';
+import {IContact, IIdentity} from '@sphereon/ssi-sdk.data-store';
+import Debug from 'debug';
+ 
+import {APP_ID} from '../@config/constants';
+import {cmAddContact, cmAddIdentity, cmGetContacts, cmRemoveContact, cmUpdateContact} from '../agent';
+import {IAddIdentityArgs, ICreateContactArgs, IGetContactsArgs, IUpdateContactArgs} from '../types';
+ 
+const debug: Debug.Debugger = Debug(`${APP_ID}:contactService`);
+ 
+export const getContacts = async (args?: IGetContactsArgs): Promise<Array<IContact>> => {
+  debug(`getContacts(${JSON.stringify(args)})...`);
+  return await cmGetContacts(args);
+};
+ 
+export const createContact = async (args: ICreateContactArgs): Promise<IContact> => {
+  debug(`createContact(${JSON.stringify(args)})...`);
+  return cmAddContact(args)
+    .then((contact: IContact) => {
+      debug(`createContact(${JSON.stringify(args)}) succeeded`);
+      return contact;
+    })
+    .catch((error: Error) => Promise.reject(Error(`Unable to create contact. Error: ${error}`)));
+};
+ 
+export const updateContact = async (args: IUpdateContactArgs): Promise<IContact> => {
+  debug(`updateContact(${JSON.stringify(args)})...`);
+  return cmUpdateContact(args)
+    .then((contact: IContact) => {
+      debug(`updateContact(${JSON.stringify(args)}) succeeded`);
+      return contact;
+    })
+    .catch((error: Error) => Promise.reject(Error(`Unable to update contact. Error: ${error}`)));
+};
+ 
+export const removeContact = async (args: IRemoveContactArgs): Promise<boolean> => {
+  debug(`removeContact(${JSON.stringify(args)})...`);
+  return cmRemoveContact(args)
+    .then((isDeleted: boolean) => {
+      debug(`removeContact(${JSON.stringify(args)}) succeeded`);
+      return isDeleted;
+    })
+    .catch((error: Error) => Promise.reject(Error(`Unable to remove contact. Error: ${error}`)));
+};
+ 
+export const addIdentity = async (args: IAddIdentityArgs): Promise<IIdentity> => {
+  debug(`addIdentity(${JSON.stringify(args)})...`);
+  return cmAddIdentity({contactId: args.contactId, identity: args.identity})
+    .then((identity: IIdentity) => {
+      debug(`addIdentity(${JSON.stringify(identity)}) succeeded`);
+      return identity;
+    })
+    .catch((error: Error) => Promise.reject(Error(`Unable to add identity to contact ${args.contactId}. Error: ${error}`)));
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/services/credentialService.ts.html b/coverage/lcov-report/services/credentialService.ts.html new file mode 100644 index 00000000..34e777d0 --- /dev/null +++ b/coverage/lcov-report/services/credentialService.ts.html @@ -0,0 +1,318 @@ + + + + Code coverage report for services/credentialService.ts + + + + + + + + + +
+
+

All files / services credentialService.ts

+
+
+ 34.61% + Statements + 9/26 +
+ +
+ 0% + Branches + 0/26 +
+ +
+ 33.33% + Functions + 3/9 +
+ +
+ 37.5% + Lines + 9/24 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +  +  +1x +1x +  +  +1x +  +  +  +1x +  +  +  +1x +1x +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {CredentialMapper, IVerifyResult, OriginalVerifiableCredential} from '@sphereon/ssi-types';
+import {ICreateVerifiableCredentialArgs, UniqueVerifiableCredential, VerifiableCredential} from '@veramo/core';
+import {IVerifyCredentialArgs} from '@veramo/core/src/types/ICredentialVerifier';
+ 
+import agent, {
+  dataStoreDeleteVerifiableCredential,
+  dataStoreGetVerifiableCredential,
+  dataStoreORMGetVerifiableCredentials,
+  dataStoreSaveVerifiableCredential,
+  createVerifiableCredential as issueVerifiableCredential,
+} from '../agent';
+import {
+  IDeleteVerifiableCredentialArgs,
+  IGetVerifiableCredentialArgs,
+  IStoreVerifiableCredentialArgs,
+  IVerificationResult,
+  IVerificationSubResult,
+} from '../types';
+ 
+import {removeCredentialBranding} from './brandingService';
+ 
+export const getVerifiableCredentialsFromStorage = async (): Promise<Array<UniqueVerifiableCredential>> => {
+  return dataStoreORMGetVerifiableCredentials();
+};
+ 
+export const storeVerifiableCredential = async (args: IStoreVerifiableCredentialArgs): Promise<string> => {
+  return dataStoreSaveVerifiableCredential({verifiableCredential: args.vc});
+};
+ 
+export const getVerifiableCredential = async (args: IGetVerifiableCredentialArgs): Promise<VerifiableCredential> => {
+  return dataStoreGetVerifiableCredential({hash: args.hash});
+};
+ 
+export const deleteVerifiableCredential = async (args: IDeleteVerifiableCredentialArgs): Promise<boolean> => {
+  return removeCredentialBranding({filter: [{vcHash: args.hash}]}).then(() => dataStoreDeleteVerifiableCredential({hash: args.hash}));
+};
+ 
+export const createVerifiableCredential = async (args: ICreateVerifiableCredentialArgs): Promise<VerifiableCredential> => {
+  return issueVerifiableCredential(args);
+};
+ 
+export const verifyCredential = async (args: IVerifyCredentialArgs): Promise<IVerificationResult> => {
+  // We also allow/add boolean, because 4.x Veramo returns a boolean for JWTs. 5.X will return better results
+  const result: IVerifyResult | boolean = (await agent.verifyCredential(args)) as IVerifyResult | boolean;
+ 
+  if (typeof result === 'boolean') {
+    return {
+      source: CredentialMapper.toWrappedVerifiableCredential(args.credential as OriginalVerifiableCredential),
+      result,
+      ...(!result && {
+        error: 'Invalid JWT VC',
+        errorDetails: `JWT VC could was not valid with policies: ${JSON.stringify(args.policies)}`,
+      }),
+      subResults: [],
+    };
+  } else {
+    const subResults: IVerificationSubResult[] = [];
+    let error: string | undefined;
+    let errorDetails: string | undefined;
+    if (result.error) {
+      error = result.error?.message ?? '';
+      errorDetails = result.error?.details?.code ?? '';
+      errorDetails = (errorDetails !== '' ? `${errorDetails}, ` : '') + (result.error?.details?.url ?? '');
+      if (result.error?.errors) {
+        error = (error !== '' ? `${error}, ` : '') + result.error?.errors?.map(error => error.message ?? error.name).join(', ');
+        errorDetails =
+          (errorDetails !== '' ? `${errorDetails}, ` : '') +
+          result.error?.errors?.map(error => (error?.details?.code ? `${error.details.code}, ` : '') + (error?.details?.url ?? '')).join(', ');
+      }
+    }
+ 
+    return {
+      source: CredentialMapper.toWrappedVerifiableCredential(args.credential as OriginalVerifiableCredential),
+      result: result.verified,
+      subResults,
+      error,
+      errorDetails,
+    };
+  }
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/services/fileService.ts.html b/coverage/lcov-report/services/fileService.ts.html new file mode 100644 index 00000000..2ee6454c --- /dev/null +++ b/coverage/lcov-report/services/fileService.ts.html @@ -0,0 +1,99 @@ + + + + Code coverage report for services/fileService.ts + + + + + + + + + +
+
+

All files / services fileService.ts

+
+
+ 50% + Statements + 1/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 50% + Lines + 1/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8  +  +  +  +1x +  +  + 
import * as RNFS from 'react-native-fs';
+ 
+import {IReadFileArgs} from '../types';
+ 
+export const readFile = async ({filePath}: IReadFileArgs): Promise<string> => {
+  return RNFS.readFile(filePath);
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/services/identityService.ts.html b/coverage/lcov-report/services/identityService.ts.html new file mode 100644 index 00000000..81be7980 --- /dev/null +++ b/coverage/lcov-report/services/identityService.ts.html @@ -0,0 +1,216 @@ + + + + Code coverage report for services/identityService.ts + + + + + + + + + +
+
+

All files / services identityService.ts

+
+
+ 62.5% + Statements + 10/16 +
+ +
+ 68.75% + Branches + 11/16 +
+ +
+ 28.57% + Functions + 2/7 +
+ +
+ 66.66% + Lines + 10/15 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47  +  +  +  +  +  +  +  +  +1x +  +  +  +  +1x +1x +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +1x +1x +  +  +  +  +1x +  +  +1x +  +1x +  + 
import {IIdentifier, IKey} from '@veramo/core';
+ 
+import {DID_PREFIX} from '../@config/constants';
+import {didManagerCreate, didManagerFind, didManagerGet} from '../agent';
+import store from '../store';
+import {getContacts} from '../store/actions/contact.actions';
+import {addIdentifier} from '../store/actions/user.actions';
+import {ICreateIdentifierArgs, ICreateOrGetIdentifierArgs, IdentifierAliasEnum, KeyManagementSystemEnum} from '../types';
+ 
+export const getIdentifiers = async (): Promise<IIdentifier[]> => {
+  // TODO fully implement
+  return didManagerFind();
+};
+ 
+export const createIdentifier = async (args?: ICreateIdentifierArgs): Promise<IIdentifier> => {
+  const identifier = await didManagerCreate({
+    kms: args?.createOpts?.kms || KeyManagementSystemEnum.LOCAL,
+    ...(args?.method && {provider: `${DID_PREFIX}:${args?.method}`}),
+    alias: args?.createOpts?.alias || `${IdentifierAliasEnum.PRIMARY}-${args?.method}-${args?.createOpts?.options?.type}-${new Date().toUTCString()}`,
+    options: args?.createOpts?.options,
+  });
+ 
+  Iif (store.getState().user.users.size > 0) {
+    await store.dispatch<any>(addIdentifier({did: identifier.did})).then(() => {
+      setTimeout(() => {
+        store.dispatch<any>(getContacts());
+      }, 1000);
+    });
+  }
+ 
+  return identifier;
+};
+ 
+export const getOrCreatePrimaryIdentifier = async (args?: ICreateOrGetIdentifierArgs): Promise<IIdentifier> => {
+  const identifiers = (await didManagerFind(args?.method ? {provider: `${DID_PREFIX}:${args?.method}`} : {})).filter(
+    (identifier: IIdentifier) =>
+      args?.createOpts?.options?.type === undefined || identifier.keys.some((key: IKey) => key.type === args?.createOpts?.options?.type),
+  );
+ 
+  console.log(`Currently available identifiers for ${args?.method} / ${args?.createOpts?.options?.type}: ${identifiers.length}`);
+ 
+  // Currently we only support one identifier
+  const identifier: IIdentifier = !identifiers || identifiers.length == 0 ? await createIdentifier(args) : identifiers[0];
+ 
+  return didManagerGet({did: identifier.did});
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/services/index.html b/coverage/lcov-report/services/index.html new file mode 100644 index 00000000..db16f346 --- /dev/null +++ b/coverage/lcov-report/services/index.html @@ -0,0 +1,292 @@ + + + + Code coverage report for services + + + + + + + + + +
+
+

All files services

+
+
+ 26.9% + Statements + 113/420 +
+ +
+ 14.61% + Branches + 32/219 +
+ +
+ 15.44% + Functions + 21/136 +
+ +
+ 27.79% + Lines + 112/403 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
authenticationService.ts +
+
+
+
+
26.31%5/190%0/60%0/527.77%5/18
brandingService.ts +
+
+
+
+
61.11%11/1860%6/1016.66%1/661.11%11/18
contactService.ts +
+
+
+
+
28.57%8/28100%0/07.69%1/1328.57%8/28
credentialService.ts +
+
+
+
+
34.61%9/260%0/2633.33%3/937.5%9/24
fileService.ts +
+
+
+
+
50%1/2100%0/00%0/150%1/2
identityService.ts +
+
+
+
+
62.5%10/1668.75%11/1628.57%2/766.66%10/15
onboardingService.ts +
+
+
+
+
100%17/1757.14%8/14100%4/4100%16/16
qrService.ts +
+
+
+
+
5.31%11/2070%0/1300%0/605.52%11/199
signatureService.ts +
+
+
+
+
22.22%2/90%0/20%0/322.22%2/9
storageService.ts +
+
+
+
+
47.27%26/5546.15%6/1335.29%6/1749.05%26/53
userService.ts +
+
+
+
+
56.52%13/2350%1/236.36%4/1161.9%13/21
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/services/onboardingService.ts.html b/coverage/lcov-report/services/onboardingService.ts.html new file mode 100644 index 00000000..8bc7a75b --- /dev/null +++ b/coverage/lcov-report/services/onboardingService.ts.html @@ -0,0 +1,291 @@ + + + + Code coverage report for services/onboardingService.ts + + + + + + + + + +
+
+

All files / services onboardingService.ts

+
+
+ 100% + Statements + 17/17 +
+ +
+ 57.14% + Branches + 8/14 +
+ +
+ 100% + Functions + 4/4 +
+ +
+ 100% + Lines + 16/16 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +1x +  +  +  +  +  +1x +  +  +1x +1x +  +  +1x +  +  +1x +  +1x +1x +1x +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +1x +  +  +  +  +1x +1x +  + 
import {getFirstKeyWithRelation} from '@sphereon/ssi-sdk-ext.did-utils';
+import {IIdentifier, VerifiableCredential} from '@veramo/core';
+import {v4 as uuidv4} from 'uuid';
+ 
+import agent from '../agent';
+import store from '../store';
+ 
+import {createUser, login} from '../store/actions/user.actions';
+import {IUser} from '../types';
+import {IOnboardingMachineContext} from '../types/onboarding';
+import {createVerifiableCredential, storeVerifiableCredential} from './credentialService';
+import {getOrCreatePrimaryIdentifier} from './identityService';
+import {storagePersistPin} from './storageService';
+ 
+export const walletSetup = async (
+  context: IOnboardingMachineContext,
+): Promise<{identifier: IIdentifier; storedUser: IUser; verifiableCredential: VerifiableCredential}> => {
+  const setup = await Promise.all([
+    storagePersistPin({
+      value: context.pinCode,
+    }),
+    createUserAndIdentity(context),
+    // Make sure we never finish before the timeout, to ensure the UI doesn't change too fast as a user might get confused
+    new Promise(resolve => setTimeout(() => resolve(true), 1500)),
+  ]);
+ 
+  await store.dispatch<any>(login(setup[1].storedUser.id));
+  return setup[1];
+};
+ 
+const createUserAndIdentity = async (
+  context: IOnboardingMachineContext,
+): Promise<{identifier: IIdentifier; storedUser: IUser; verifiableCredential: VerifiableCredential}> => {
+  const identifier = await getOrCreatePrimaryIdentifier({method: context.credentialData.didMethod});
+ 
+  const personalData = context.personalData;
+  const cred = context.credentialData.credential;
+  const ctx = {...agent?.context, agent};
+  const key = await getFirstKeyWithRelation(identifier, ctx, 'authentication');
+  const verifiableCredential = await createVerifiableCredential({
+    credential: {
+      ...cred,
+      '@context': cred?.['@context'] ?? [
+        'https://www.w3.org/2018/credentials/v1',
+        'https://sphereon-opensource.github.io/ssi-mobile-wallet/context/sphereon-wallet-identity-v1.jsonld',
+      ],
+      id: cred?.id ?? `urn:uuid:${uuidv4()}`,
+      type: cred?.type ?? ['VerifiableCredential', 'SphereonWalletIdentityCredential'],
+      issuer: cred?.issuer ?? identifier.did,
+      issuanceDate: cred?.issuanceDate ?? new Date(),
+      credentialSubject: {
+        ...cred?.credentialSubject,
+        id: cred?.id ?? identifier.did,
+        ...personalData,
+      },
+    },
+    proofFormat: context.credentialData.proofFormat ?? 'jwt',
+    header: {
+      kid: key?.meta?.verificationMethod?.id,
+    },
+  });
+  await storeVerifiableCredential({vc: verifiableCredential});
+ 
+  const user = {
+    ...personalData,
+    identifiers: [{did: identifier.did}],
+  };
+ 
+  const storedUser: IUser = await store.dispatch<any>(createUser(user));
+  return {identifier, storedUser, verifiableCredential};
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/services/qrService.ts.html b/coverage/lcov-report/services/qrService.ts.html new file mode 100644 index 00000000..41a2dfc8 --- /dev/null +++ b/coverage/lcov-report/services/qrService.ts.html @@ -0,0 +1,2280 @@ + + + + Code coverage report for services/qrService.ts + + + + + + + + + +
+
+

All files / services qrService.ts

+
+
+ 5.31% + Statements + 11/207 +
+ +
+ 0% + Branches + 0/130 +
+ +
+ 0% + Functions + 0/60 +
+ +
+ 5.52% + Lines + 11/199 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +450 +451 +452 +453 +454 +455 +456 +457 +458 +459 +460 +461 +462 +463 +464 +465 +466 +467 +468 +469 +470 +471 +472 +473 +474 +475 +476 +477 +478 +479 +480 +481 +482 +483 +484 +485 +486 +487 +488 +489 +490 +491 +492 +493 +494 +495 +496 +497 +498 +499 +500 +501 +502 +503 +504 +505 +506 +507 +508 +509 +510 +511 +512 +513 +514 +515 +516 +517 +518 +519 +520 +521 +522 +523 +524 +525 +526 +527 +528 +529 +530 +531 +532 +533 +534 +535 +536 +537 +538 +539 +540 +541 +542 +543 +544 +545 +546 +547 +548 +549 +550 +551 +552 +553 +554 +555 +556 +557 +558 +559 +560 +561 +562 +563 +564 +565 +566 +567 +568 +569 +570 +571 +572 +573 +574 +575 +576 +577 +578 +579 +580 +581 +582 +583 +584 +585 +586 +587 +588 +589 +590 +591 +592 +593 +594 +595 +596 +597 +598 +599 +600 +601 +602 +603 +604 +605 +606 +607 +608 +609 +610 +611 +612 +613 +614 +615 +616 +617 +618 +619 +620 +621 +622 +623 +624 +625 +626 +627 +628 +629 +630 +631 +632 +633 +634 +635 +636 +637 +638 +639 +640 +641 +642 +643 +644 +645 +646 +647 +648 +649 +650 +651 +652 +653 +654 +655 +656 +657 +658 +659 +660 +661 +662 +663 +664 +665 +666 +667 +668 +669 +670 +671 +672 +673 +674 +675 +676 +677 +678 +679 +680 +681 +682 +683 +684 +685 +686 +687 +688 +689 +690 +691 +692 +693 +694 +695 +696 +697 +698 +699 +700 +701 +702 +703 +704 +705 +706 +707 +708 +709 +710 +711 +712 +713 +714 +715 +716 +717 +718 +719 +720 +721 +722 +723 +724 +725 +726 +727 +728 +729 +730 +731 +732 +733 +734 +735  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +  +1x +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {PresentationDefinitionWithLocation, RPRegistrationMetadataPayload, VerifiedAuthorizationRequest} from '@sphereon/did-auth-siop';
+import {CredentialOfferClient} from '@sphereon/oid4vci-client';
+import {
+  CredentialIssuerMetadata,
+  CredentialResponse,
+  CredentialSupported,
+  EndpointMetadata,
+  IssuerMetadataV1_0_08,
+  MetadataDisplay,
+} from '@sphereon/oid4vci-common';
+import {Format} from '@sphereon/pex-models';
+import {
+  ConnectionTypeEnum,
+  CorrelationIdentifierEnum,
+  IBasicConnection,
+  IBasicCredentialLocaleBranding,
+  IBasicIdentity,
+  IContact,
+  IdentityRoleEnum,
+  IDidAuthConfig,
+  IIdentity,
+} from '@sphereon/ssi-sdk.data-store';
+import {
+  CredentialMapper,
+  IVerifiableCredential,
+  OriginalVerifiableCredential,
+  PresentationSubmission,
+  W3CVerifiableCredential,
+  WrappedVerifiableCredential,
+} from '@sphereon/ssi-types';
+import {IIssuer} from '@sphereon/ssi-types/src/types/vc';
+import {VerifiableCredential} from '@veramo/core';
+import {CompactJWT} from '@veramo/core/src/types/vc-data-model';
+import {computeEntryHash} from '@veramo/utils';
+import Debug from 'debug';
+import {URL} from 'react-native-url-polyfill';
+ 
+import {APP_ID} from '../@config/constants';
+import {translate} from '../localization/Localization';
+import {siopGetRequest, siopSendAuthorizationResponse} from '../providers/authentication/SIOPv2Provider';
+import JwtVcPresentationProfileProvider from '../providers/credential/JwtVcPresentationProfileProvider';
+import OpenId4VcIssuanceProvider, {CredentialFromOffer, IErrorDetailsOpts} from '../providers/credential/OpenId4VcIssuanceProvider';
+import store from '../store';
+import {addIdentity} from '../store/actions/contact.actions';
+import {storeVerifiableCredential} from '../store/actions/credential.actions';
+import {
+  ICredentialTypeSelection,
+  IErrorDetails,
+  IQrAuthentication,
+  IQrData,
+  IQrDataArgs,
+  IQrDidSiopAuthenticationRequest,
+  IReadQrArgs,
+  IServerMetadataAndCryptoMatchingResponse,
+  IVerificationResult,
+  NavigationBarRoutesEnum,
+  Oidc4vciErrorEnum,
+  PopupImagesEnum,
+  QrTypesEnum,
+  ScreenRoutesEnum,
+  ToastTypeEnum,
+} from '../types';
+import {delay} from '../utils/AppUtils';
+import {translateCorrelationIdToName} from '../utils/CredentialUtils';
+import {filterNavigationStack} from '../utils/NavigationUtils';
+import {showToast} from '../utils/ToastUtils';
+import {toNonPersistedCredentialSummary} from '../utils/mappers/credential/CredentialMapper';
+ 
+import {authenticate} from './authenticationService';
+import {addCredentialBranding, selectAppLocaleBranding} from './brandingService';
+import {getContacts} from './contactService';
+import {verifyCredential} from './credentialService';
+import {getOrCreatePrimaryIdentifier} from './identityService';
+import RootNavigation from '../navigation/rootNavigation';
+ 
+const {v4: uuidv4} = require('uuid');
+const debug: Debug.Debugger = Debug(`${APP_ID}:qrService`);
+ 
+export const readQr = async (args: IReadQrArgs): Promise<void> => {
+  parseQr(args.qrData)
+    .then((qrData: IQrData) => processQr({qrData, navigation: args.navigation}))
+    .catch((error: Error) => showToast(ToastTypeEnum.TOAST_ERROR, {message: error.message}));
+};
+ 
+export const parseQr = async (qrData: string): Promise<IQrData> => {
+  try {
+    const parsedJson = JSON.parse(qrData);
+    if (parsedJson && typeof parsedJson === 'object') {
+      return parsedJson;
+    }
+  } catch (error: unknown) {
+    debug(`Unable to parse QR value as JSON. Error: ${error}`);
+  }
+ 
+  try {
+    const param = new URL(qrData).searchParams.get('oob');
+    if (param) {
+      return {
+        ...JSON.parse(Buffer.from(param, 'base64').toString('utf8')),
+        redirectUrl: qrData,
+      };
+    }
+  } catch (error: unknown) {
+    debug(`Unable to parse QR value as URL. Error: ${error}`);
+  }
+ 
+  if (qrData.startsWith(QrTypesEnum.OPENID_INITIATE_ISSUANCE) || qrData.startsWith(QrTypesEnum.OPENID_CREDENTIAL_OFFER)) {
+    return await parseOpenID4VCI(qrData).catch(error => {
+      debug(`Unable to parse QR value as openid-initiate-issuance. Error: ${error}`);
+      return Promise.reject(Error(translate('qr_scanner_qr_not_supported_message')));
+    });
+  } else if (qrData.startsWith(QrTypesEnum.OPENID_VC) || qrData.startsWith(QrTypesEnum.OPENID)) {
+    try {
+      return parseSIOPv2(qrData);
+    } catch (error: unknown) {
+      debug(`Unable to parse QR value as openid-vc. Error: ${error}`);
+    }
+  }
+ 
+  return Promise.reject(Error(translate('qr_scanner_qr_not_supported_message')));
+};
+ 
+const parseSIOPv2 = (qrData: string): Promise<IQrData> => {
+  try {
+    return Promise.resolve({
+      type: QrTypesEnum.OPENID_VC,
+      uri: qrData,
+    });
+  } catch (error: unknown) {
+    return Promise.reject(error);
+  }
+};
+ 
+const parseOpenID4VCI = async (qrData: string): Promise<IQrData> => {
+  if (qrData.includes(QrTypesEnum.OPENID_INITIATE_ISSUANCE)) {
+    return Promise.resolve({
+      type: QrTypesEnum.OPENID_INITIATE_ISSUANCE,
+      credentialOffer: await CredentialOfferClient.fromURI(qrData),
+      uri: qrData,
+    });
+  } else {
+    return Promise.resolve({
+      type: QrTypesEnum.OPENID_CREDENTIAL_OFFER,
+      credentialOffer: await CredentialOfferClient.fromURI(qrData),
+      uri: qrData,
+    });
+  }
+};
+ 
+export const processQr = async (args: IQrDataArgs): Promise<void> => {
+  switch (args.qrData.type) {
+    case QrTypesEnum.AUTH:
+      if ((args.qrData as IQrAuthentication).mode === ConnectionTypeEnum.SIOPv2) {
+        return connectDidAuth(args);
+      }
+      break;
+    case QrTypesEnum.SIOPV2:
+    case QrTypesEnum.OPENID_VC:
+    case QrTypesEnum.OPENID4VC:
+      return connectSiopV2(args);
+    case QrTypesEnum.OPENID_CREDENTIAL_OFFER:
+    case QrTypesEnum.OPENID_INITIATE_ISSUANCE:
+      return connectOpenId4VcIssuance(args);
+  }
+};
+ 
+// TODO remove old flow
+const connectDidAuth = async (args: IQrDataArgs): Promise<void> => {
+  const identifier = await getOrCreatePrimaryIdentifier(); // TODO replace getOrCreatePrimaryIdentifier() when we have proper identities in place
+  const verifier = decodeURIComponent(args.qrData.uri.split('?request_uri=')[1]);
+  const connection: IBasicConnection = {
+    type: ConnectionTypeEnum.SIOPv2,
+    config: {
+      identifier,
+      stateId: (args.qrData as IQrDidSiopAuthenticationRequest).state,
+      redirectUrl: (args.qrData as IQrDidSiopAuthenticationRequest).redirectUrl,
+      sessionId: (args.qrData as IQrDidSiopAuthenticationRequest).redirectUrl + identifier.did,
+    },
+  };
+ 
+  const connect = async (): Promise<void> => {
+    const verifiedAuthorizationRequest: VerifiedAuthorizationRequest = await siopGetRequest({
+      ...connection.config,
+      id: uuidv4,
+    } as IDidAuthConfig);
+    args.navigation.navigate(ScreenRoutesEnum.CREDENTIALS_REQUIRED, {
+      verifier,
+      presentationDefinition: verifiedAuthorizationRequest.presentationDefinitions![0].definition,
+    });
+  };
+ 
+  authenticate(connect)
+    .then(() => console.log('authentication success'))
+    .catch(error => {
+      if (!/UserCancel|UserFallback|SystemCancel/.test(error.name)) {
+        console.error('Error', error);
+      }
+    });
+};
+ 
+const connectSiopV2 = async (args: IQrDataArgs): Promise<void> => {
+  //const url: URL = new URL(decodeURIComponent(args.qrData.uri.split('?request_uri=')[1].trim()));
+  const config = {
+    // FIXME: Update these values in SSI-SDK. Only the URI (not a redirectURI) would be available at this point
+    sessionId: uuidv4(),
+    redirectUrl: args.qrData.uri,
+    stateId: args.qrData.state,
+    identifier: await getOrCreatePrimaryIdentifier(), // TODO replace getOrCreatePrimaryIdentifier() when we have proper identities in place
+  };
+ 
+  // Adding a loading screen as the next action is to contact the other side
+  args.navigation.navigate(NavigationBarRoutesEnum.QR, {
+    screen: ScreenRoutesEnum.LOADING,
+    params: {
+      message: translate('action_getting_information_message'),
+    },
+  });
+ 
+  let request: VerifiedAuthorizationRequest;
+  let registration: RPRegistrationMetadataPayload | undefined;
+  let url: string;
+  let name: string | undefined;
+  try {
+    request = await siopGetRequest({...config, id: uuidv4()});
+    // TODO: Makes sense to move these types of common queries/retrievals to the SIOP auth request object
+    registration = request.registrationMetadataPayload;
+    name = registration?.client_name;
+    url =
+      request.responseURI ??
+      (args.qrData.uri.includes('request_uri')
+        ? decodeURIComponent(args.qrData.uri.split('?request_uri=')[1].trim())
+        : request.issuer ?? request.registrationMetadataPayload?.client_id);
+  } catch (error: unknown) {
+    debug(translate('information_retrieve_failed_toast_message', {errorMessage: (error as Error).message}));
+    args.navigation.navigate(ScreenRoutesEnum.QR_READER, {});
+    showToast(ToastTypeEnum.TOAST_ERROR, {message: translate('information_retrieve_failed_toast_message', {errorMessage: (error as Error).message})});
+    return;
+  }
+ 
+  const uri = url.includes('://') ? new URL(url) : undefined;
+  const correlationIdName = uri
+    ? translateCorrelationIdToName(uri.hostname)
+    : request.issuer
+    ? translateCorrelationIdToName(request.issuer.split('://')[1])
+    : name;
+  const sendResponse = async (
+    presentationDefinitionWithLocation: PresentationDefinitionWithLocation,
+    credentials: Array<VerifiableCredential>,
+  ): Promise<void> => {
+    siopSendAuthorizationResponse(ConnectionTypeEnum.SIOPv2_OpenID4VP, {
+      sessionId: config.sessionId,
+      verifiableCredentialsWithDefinition: [
+        {
+          definition: presentationDefinitionWithLocation,
+          credentials: credentials as Array<W3CVerifiableCredential>,
+        },
+      ],
+    })
+      .then(() => {
+        args.navigation.navigate(NavigationBarRoutesEnum.CREDENTIALS, {
+          screen: ScreenRoutesEnum.CREDENTIALS_OVERVIEW,
+        });
+        showToast(ToastTypeEnum.TOAST_SUCCESS, {
+          title: translate('credentials_share_success_toast_title'),
+          message: translate('credentials_share_success_toast_message', {verifierName: registration?.client_name ?? correlationIdName}),
+        });
+      })
+      .catch((error: Error) => {
+        debug(`Unable to present credentials. Error: ${error.message}.`);
+        args.navigation.navigate(NavigationBarRoutesEnum.CREDENTIALS, {});
+        showToast(ToastTypeEnum.TOAST_ERROR, {message: translate('credentials_share_failed_toast_message', {errorMessage: error.message})});
+      });
+  };
+ 
+  const selectRequiredCredentials = async (): Promise<void> => {
+    // TODO: Makes sense to move these types of common queries/retrievals to the SIOP auth request object
+    const format: Format | undefined = registration?.vp_formats;
+    const subjectSyntaxTypesSupported: Array<string> | undefined = registration?.subject_syntax_types_supported;
+    const clientId: string | undefined = (await request.authorizationRequest.getMergedProperty<string>('client_id')) ?? request.issuer;
+    const correlationId: string | undefined = clientId
+      ? clientId.startsWith('did:')
+        ? clientId
+        : `${new URL(clientId).protocol}//${new URL(clientId).hostname}`
+      : undefined;
+    if (correlationId) {
+      const contacts: Array<IContact> = await getContacts({
+        filter: [
+          {
+            identities: {
+              identifier: {
+                correlationId: request.issuer ?? request.registrationMetadataPayload?.client_id ?? correlationId,
+              },
+            },
+          },
+        ],
+      });
+      if (contacts.length === 1) {
+        const hasIdentity: IContact | undefined = contacts.find((contact: IContact) =>
+          contact.identities.some((identity: IIdentity) => identity.identifier.correlationId === correlationId),
+        );
+        if (!hasIdentity) {
+          const identity: IBasicIdentity = {
+            alias: correlationId,
+            roles: [IdentityRoleEnum.VERIFIER],
+            identifier: {
+              type: correlationId.startsWith('did:') ? CorrelationIdentifierEnum.DID : CorrelationIdentifierEnum.URL,
+              correlationId,
+            },
+            ...(!correlationId.startsWith('did:') && {
+              connection: {
+                type: ConnectionTypeEnum.SIOPv2,
+                config: {
+                  ...config,
+                  redirectUrl: correlationId,
+                },
+              },
+            }),
+          };
+          store.dispatch<any>(addIdentity({contactId: contacts[0].id, identity}));
+        }
+      }
+    }
+ 
+    // TODO SIOPv2 and OID4VP are separate. In other words SIOP doesn't require OID4VP. This means that presentation definitions are optional.
+    // TODO In that case we should skip the required credentials and send the response
+    if (!request.presentationDefinitions || request.presentationDefinitions.length === 0) {
+      return Promise.reject(Error('No presentation definitions present'));
+    }
+    if (request.presentationDefinitions.length > 1) {
+      return Promise.reject(Error('Multiple presentation definitions present'));
+    }
+    const presentationDefinitionWithLocation: PresentationDefinitionWithLocation = request.presentationDefinitions![0];
+ 
+    args.navigation.navigate(NavigationBarRoutesEnum.QR, {
+      screen: ScreenRoutesEnum.CREDENTIALS_REQUIRED,
+      params: {
+        verifier: name ?? correlationIdName ?? correlationId,
+        // TODO currently only supporting 1 presentation definition
+        presentationDefinition: presentationDefinitionWithLocation.definition,
+        format,
+        subjectSyntaxTypesSupported,
+        onDecline: async (): Promise<void> =>
+          args.navigation.navigate(NavigationBarRoutesEnum.CREDENTIALS, {
+            screen: ScreenRoutesEnum.CREDENTIALS_OVERVIEW,
+          }),
+        onSend: async (credentials: Array<OriginalVerifiableCredential>) =>
+          authenticate(async () => {
+            args.navigation.navigate(ScreenRoutesEnum.LOADING, {message: translate('action_sharing_credentials_message')});
+            await sendResponse(presentationDefinitionWithLocation, credentials as Array<VerifiableCredential>);
+          }),
+      },
+    });
+    filterNavigationStack({
+      navigation: args.navigation,
+      stack: NavigationBarRoutesEnum.QR,
+      filter: [ScreenRoutesEnum.LOADING, ScreenRoutesEnum.CONTACT_ADD],
+    });
+  };
+ 
+  getContacts({
+    filter: [
+      {
+        identities: {
+          identifier: {
+            correlationId: uri ? uri.hostname : correlationIdName,
+          },
+        },
+      },
+    ],
+  }).then((contacts: Array<IContact>) => {
+    if (contacts.length === 0) {
+      args.navigation.navigate(NavigationBarRoutesEnum.QR, {
+        screen: ScreenRoutesEnum.CONTACT_ADD,
+        params: {
+          name: name ?? correlationIdName ?? uri?.hostname,
+          uri: `${uri?.protocol}//${uri?.hostname}`,
+          identities: [
+            {
+              alias: uri?.hostname,
+              roles: [IdentityRoleEnum.VERIFIER],
+              identifier: {
+                type: CorrelationIdentifierEnum.URL,
+                correlationId: uri?.hostname,
+              },
+              connection: {
+                type: ConnectionTypeEnum.SIOPv2,
+                config,
+              },
+            },
+          ],
+          onDecline: async (): Promise<void> =>
+            args.navigation.navigate(NavigationBarRoutesEnum.CREDENTIALS, {
+              screen: ScreenRoutesEnum.CREDENTIALS_OVERVIEW,
+            }),
+          // Adding a delay here, so the store is updated with the new contact. And we only have a delay when a new contact is created
+          onCreate: () => delay(1000).then(() => selectRequiredCredentials()),
+        },
+      });
+    } else {
+      selectRequiredCredentials();
+    }
+  });
+};
+ 
+const connectJwtVcPresentationProfile = async (args: IQrDataArgs): Promise<void> => {
+  if (args.qrData.pin) {
+    const manifest = await new JwtVcPresentationProfileProvider().getManifest(args.qrData);
+    args.navigation.navigate(ScreenRoutesEnum.VERIFICATION_CODE, {
+      pinLength: args.qrData.pin.length,
+      credentialName: manifest.display.card.title || '[MISSING CREDENTIAL NAME]', // TODO translate
+      // TODO WAL-301 need to send a response with a pin code to complete the process.
+      onVerification: async (pin: string) =>
+        await args.navigation.navigate(NavigationBarRoutesEnum.CREDENTIALS, {
+          screen: ScreenRoutesEnum.CREDENTIALS_OVERVIEW,
+        }),
+    });
+  }
+  // TODO WAL-301 need to send a response when we do not need a pin code
+};
+ 
+export function getIssuerDisplays(metadata: CredentialIssuerMetadata | IssuerMetadataV1_0_08, opts?: {prefLocales: string[]}): MetadataDisplay[] {
+  const matchedDisplays =
+    metadata.display?.filter(
+      item => !opts?.prefLocales || opts.prefLocales.length === 0 || (item.locale && opts.prefLocales.includes(item.locale)) || !item.locale,
+    ) ?? [];
+  return matchedDisplays.sort(item => (item.locale ? opts?.prefLocales.indexOf(item.locale) ?? 1 : Number.MAX_VALUE));
+}
+/**
+ * TODO check again when WAL-617 is done to replace how we get the issuer name.
+ */
+function getName(metadata: IServerMetadataAndCryptoMatchingResponse, url: string) {
+  const displays = metadata.serverMetadata.credentialIssuerMetadata ? getIssuerDisplays(metadata.serverMetadata.credentialIssuerMetadata) : [];
+  let name;
+  for (const display of displays) {
+    if (display.name) {
+      name = display.name;
+      break;
+    }
+  }
+  if (!name) {
+    name = url;
+  }
+  return name;
+}
+ 
+const connectOpenId4VcIssuance = async (args: IQrDataArgs): Promise<void> => {
+  const sendResponseOrCreateContact = async (provider: OpenId4VcIssuanceProvider): Promise<void> => {
+    const metadata: IServerMetadataAndCryptoMatchingResponse = await provider.getServerMetadataAndPerformCryptoMatching();
+    const serverMetadata: EndpointMetadata = metadata.serverMetadata;
+    const correlationId = `${new URL(serverMetadata.issuer).protocol}//${new URL(serverMetadata.issuer).hostname}`;
+    const name: string = getName(metadata, correlationId);
+    getContacts({
+      filter: [
+        {
+          identities: {
+            identifier: {
+              correlationId: new URL(serverMetadata.issuer).hostname,
+            },
+          },
+        },
+      ],
+    }).then((contacts: Array<IContact>) => {
+      if (contacts.length === 0) {
+        args.navigation.navigate(NavigationBarRoutesEnum.QR, {
+          screen: ScreenRoutesEnum.CONTACT_ADD,
+          params: {
+            name,
+            uri: correlationId,
+            identities: [
+              {
+                alias: correlationId,
+                roles: [IdentityRoleEnum.ISSUER],
+                identifier: {
+                  type: CorrelationIdentifierEnum.URL,
+                  correlationId: new URL(serverMetadata.issuer).hostname,
+                },
+                // TODO WAL-476 add support for correct connection
+                connection: {
+                  type: ConnectionTypeEnum.OPENID_CONNECT,
+                  config: {
+                    clientId: '138d7bf8-c930-4c6e-b928-97d3a4928b01',
+                    clientSecret: '03b3955f-d020-4f2a-8a27-4e452d4e27a0',
+                    scopes: ['auth'],
+                    issuer: 'https://example.com/app-test',
+                    redirectUrl: 'app:/callback',
+                    dangerouslyAllowInsecureHttpRequests: true,
+                    clientAuthMethod: 'post' as const,
+                  },
+                },
+              },
+            ],
+            onDecline: async (): Promise<void> =>
+              args.navigation.navigate(NavigationBarRoutesEnum.CREDENTIALS, {
+                screen: ScreenRoutesEnum.CREDENTIALS_OVERVIEW,
+              }),
+            // Adding a delay here, so the store is updated with the new contact. And we only have a delay when a new contact is created
+            onCreate: () => delay(1000).then(() => sendResponseOrSelectCredentials(provider)),
+          },
+        });
+        filterNavigationStack({
+          navigation: args.navigation,
+          stack: NavigationBarRoutesEnum.QR,
+          filter: [ScreenRoutesEnum.LOADING],
+        });
+      } else {
+        sendResponseOrSelectCredentials(provider);
+      }
+    });
+  };
+ 
+  const sendResponseOrSelectCredentials = async (provider: OpenId4VcIssuanceProvider): Promise<void> => {
+    const metadata: IServerMetadataAndCryptoMatchingResponse = await provider.getServerMetadataAndPerformCryptoMatching();
+    const credentialsSupported = metadata.credentialsSupported;
+    const credentialTypeSelection: Array<ICredentialTypeSelection> = await Promise.all(
+      credentialsSupported?.map(async (credentialMetadata: CredentialSupported) => {
+        // FIXME this allows for duplicate VerifiableCredential, which the user has no idea which ones those are and we also have a branding map with unique keys, so some branding will not match
+        const credentialType = credentialMetadata.types.find(t => t !== 'VerifiableCredential') ?? 'VerifiableCredential';
+        return {
+          id: uuidv4(),
+          credentialType,
+          credentialAlias:
+            (await selectAppLocaleBranding({localeBranding: metadata.credentialBranding.get(credentialType)}))?.alias || credentialType,
+          isSelected: false,
+        };
+      }),
+    );
+ 
+    if (credentialTypeSelection.length > 1) {
+      args.navigation.navigate(NavigationBarRoutesEnum.QR, {
+        screen: ScreenRoutesEnum.CREDENTIAL_SELECT_TYPE,
+        params: {
+          issuer: translateCorrelationIdToName(new URL(metadata.serverMetadata.issuer).hostname),
+          credentialTypes: credentialTypeSelection,
+          onSelect: async (credentialTypes: Array<string>) => {
+            args.navigation.navigate(NavigationBarRoutesEnum.QR, {
+              screen: ScreenRoutesEnum.LOADING,
+              params: {
+                message: translate('action_getting_credentials_message'),
+              },
+            });
+            await sendResponseOrAuthenticate(provider, credentialTypes);
+          },
+        },
+      });
+      filterNavigationStack({
+        navigation: args.navigation,
+        stack: NavigationBarRoutesEnum.QR,
+        filter: [ScreenRoutesEnum.LOADING],
+      });
+    } else {
+      await sendResponseOrAuthenticate(
+        provider,
+        credentialTypeSelection.map((credentialSelection: ICredentialTypeSelection) => credentialSelection.credentialType),
+      );
+    }
+  };
+ 
+  const sendResponseOrAuthenticate = async (provider: OpenId4VcIssuanceProvider, credentials: Array<string>): Promise<void> => {
+    if (args.qrData.credentialOffer.userPinRequired) {
+      args.navigation.navigate(NavigationBarRoutesEnum.QR, {
+        screen: ScreenRoutesEnum.VERIFICATION_CODE,
+        params: {
+          // Currently we only support receiving one credential, we are missing ui to display multiple
+          credentialName: credentials[0],
+          onVerification: async (pin: string) => await sendResponse(provider, credentials, pin),
+        },
+      });
+      filterNavigationStack({
+        navigation: args.navigation,
+        stack: NavigationBarRoutesEnum.QR,
+        filter: [ScreenRoutesEnum.LOADING],
+      });
+    } else {
+      await sendResponse(provider, credentials);
+    }
+  };
+ 
+  const sendResponse = async (provider: OpenId4VcIssuanceProvider, credentialTypes: Array<string>, pin?: string): Promise<void> =>
+    provider
+      .getCredentialsFromIssuance({pin, credentials: credentialTypes})
+      .then(async (credentialOffers: Array<CredentialFromOffer>) => {
+        const metadata: IServerMetadataAndCryptoMatchingResponse = await provider.getServerMetadataAndPerformCryptoMatching();
+        // TODO only supporting one credential for now
+        const credentialResponse: CredentialResponse = credentialOffers[0].credentialResponse;
+        const origVC: W3CVerifiableCredential | undefined = credentialResponse.credential;
+        const wrappedVC: WrappedVerifiableCredential = CredentialMapper.toWrappedVerifiableCredential(origVC as OriginalVerifiableCredential);
+        const verificationResult: IVerificationResult = await verifyCredential({
+          credential: origVC as VerifiableCredential | CompactJWT,
+          fetchRemoteContexts: true,
+          policies: {credentialStatus: false, expirationDate: false, issuanceDate: false},
+        });
+        if (!verificationResult.result || verificationResult.error) {
+          console.log(JSON.stringify(verificationResult, null, 2));
+          return handleError(Oidc4vciErrorEnum.VERIFICATION_FAILED, {
+            detailsMessage: verificationResult.errorDetails,
+            message: verificationResult.error,
+            title: 'Invalid credential',
+          });
+        }
+        const uniformVC: IVerifiableCredential = wrappedVC.credential;
+ 
+        const issuerCorrelationId = new URL(metadata.serverMetadata.issuer).hostname;
+        const contacts: Array<IContact> = await getContacts({
+          filter: [
+            {
+              identities: {
+                identifier: {
+                  correlationId: issuerCorrelationId,
+                },
+              },
+            },
+          ],
+        });
+        if (contacts.length === 1) {
+          const correlationId: string = typeof uniformVC.issuer === 'string' ? uniformVC.issuer : (uniformVC.issuer as IIssuer).id;
+          const identity: IBasicIdentity = {
+            alias: correlationId,
+            roles: [IdentityRoleEnum.ISSUER],
+            identifier: {
+              type: CorrelationIdentifierEnum.DID,
+              correlationId,
+            },
+          };
+          const hasIdentity: IContact | undefined = contacts.find((contact: IContact) =>
+            contact.identities.some((identity: IIdentity) => identity.identifier.correlationId === correlationId),
+          );
+          if (!hasIdentity) {
+            store.dispatch<any>(addIdentity({contactId: contacts[0].id, identity}));
+            await delay(1000);
+          }
+        }
+ 
+        const rawCredential: VerifiableCredential = credentialResponse.credential as unknown as VerifiableCredential;
+        // TODO fix the store not having the correct action types (should include ThunkAction)
+        const storeCredential = async (vc: VerifiableCredential) => store.dispatch<any>(storeVerifiableCredential(vc));
+ 
+        const localeBranding: Array<IBasicCredentialLocaleBranding> | undefined = metadata.credentialBranding.get(credentialTypes[0]); // TODO only supporting one credential for now
+        // We are specifically navigating to a stack, so that when a deeplink is used the navigator knows in which stack it is
+        args.navigation.navigate(NavigationBarRoutesEnum.QR, {
+          screen: ScreenRoutesEnum.CREDENTIAL_DETAILS,
+          params: {
+            headerTitle: translate('credential_offer_title'),
+            rawCredential,
+            credential: await toNonPersistedCredentialSummary(uniformVC, localeBranding),
+            primaryAction: {
+              caption: translate('action_accept_label'),
+              onPress: async () => {
+                if (localeBranding && localeBranding?.length > 0) {
+                  await addCredentialBranding({
+                    vcHash: computeEntryHash(rawCredential),
+                    issuerCorrelationId,
+                    localeBranding,
+                  });
+                }
+                storeCredential(rawCredential)
+                  .then(() => {
+                    args.navigation.navigate(NavigationBarRoutesEnum.CREDENTIALS, {
+                      screen: ScreenRoutesEnum.CREDENTIALS_OVERVIEW,
+                    });
+                    showToast(ToastTypeEnum.TOAST_SUCCESS, {
+                      message: translate('credential_offer_accepted_toast'),
+                      showBadge: false,
+                    });
+                  })
+                  .catch((error: Error) => showToast(ToastTypeEnum.TOAST_ERROR, {message: error.message}));
+              },
+            },
+            secondaryAction: {
+              caption: translate('action_decline_label'),
+              onPress: async () => {
+                args.navigation.navigate(NavigationBarRoutesEnum.CREDENTIALS, {
+                  screen: ScreenRoutesEnum.CREDENTIALS_OVERVIEW,
+                });
+              },
+            },
+          },
+        });
+        filterNavigationStack({
+          navigation: args.navigation,
+          stack: NavigationBarRoutesEnum.QR,
+          filter: [ScreenRoutesEnum.LOADING, ScreenRoutesEnum.VERIFICATION_CODE],
+        });
+      })
+      .catch((error: Error) => {
+        // TODO refactor once the lib returns a proper response object
+        const errorResponse = error.message.includes('response:') ? JSON.parse(error.message.split('response:')[1].trim()) : error.message;
+        if (error.message.includes('403') || errorResponse.status === 403) {
+          return Promise.reject(error);
+        }
+        handleError(errorResponse);
+      });
+ 
+  const handleError = (errorResponse: Oidc4vciErrorEnum | any, opts?: IErrorDetailsOpts) => {
+    const errorDetails: IErrorDetails = OpenId4VcIssuanceProvider.getErrorDetails(errorResponse, opts);
+    const errorMessage = errorResponse?.error_description || errorResponse;
+ 
+    args.navigation.navigate(NavigationBarRoutesEnum.QR, {
+      screen: ScreenRoutesEnum.ERROR,
+      params: {
+        image: PopupImagesEnum.WARNING,
+        title: errorDetails.title,
+        details: errorDetails.message,
+        ...(errorMessage && {
+          detailsPopup: {
+            buttonCaption: translate('action_view_extra_details'),
+            title: errorDetails.detailsTitle,
+            details: `${errorDetails?.detailsMessage} ${errorMessage}`,
+          },
+        }),
+        primaryButton: {
+          caption: translate('action_ok_label'),
+          onPress: async () => args.navigation.navigate(ScreenRoutesEnum.QR_READER, {}),
+        },
+      },
+    });
+  };
+ 
+  args.navigation.navigate(NavigationBarRoutesEnum.QR, {
+    screen: ScreenRoutesEnum.LOADING,
+    params: {
+      message: translate('action_getting_information_message'),
+    },
+  });
+ 
+  OpenId4VcIssuanceProvider.initiationFromUri({uri: args.qrData.uri})
+    .then((provider: OpenId4VcIssuanceProvider) =>
+      provider.getServerMetadataAndPerformCryptoMatching().then(() => sendResponseOrCreateContact(provider)),
+    )
+    .catch((error: Error) => {
+      console.log(`Unable to retrieve vc. Error: ${error}`);
+      args.navigation.navigate(ScreenRoutesEnum.QR_READER, {});
+      showToast(ToastTypeEnum.TOAST_ERROR, {message: translate('information_retrieve_failed_toast_message', {errorMessage: error.message})});
+    });
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/services/signatureService.ts.html b/coverage/lcov-report/services/signatureService.ts.html new file mode 100644 index 00000000..e0159650 --- /dev/null +++ b/coverage/lcov-report/services/signatureService.ts.html @@ -0,0 +1,174 @@ + + + + Code coverage report for services/signatureService.ts + + + + + + + + + +
+
+

All files / services signatureService.ts

+
+
+ 22.22% + Statements + 2/9 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/3 +
+ +
+ 22.22% + Lines + 2/9 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {IIdentifier} from '@veramo/core';
+import {createJWT, Signer} from 'did-jwt';
+ 
+import {keyManagerSign} from '../agent';
+import {ISignJwtArgs} from '../types';
+import {SignatureAlgorithmFromKey} from '../utils/KeyUtils';
+ 
+export const signJWT = async (args: ISignJwtArgs): Promise<string> => {
+  const options = {
+    ...args.options,
+    signer: getSigner(args.identifier),
+  };
+ 
+  return createJWT(args.payload, options, args.header);
+};
+ 
+const getSigner = (identifier: IIdentifier): Signer => {
+  // TODO currently we assume an identifier only has one key
+  const key = identifier.keys[0];
+  // TODO See if this is mandatory for a correct JWT
+  const algorithm = SignatureAlgorithmFromKey(key);
+ 
+  return async (data: string | Uint8Array): Promise<string> => {
+    const input = data instanceof Object.getPrototypeOf(Uint8Array) ? new TextDecoder().decode(data as Uint8Array) : (data as string);
+ 
+    return await keyManagerSign({
+      keyRef: key.kid,
+      algorithm,
+      data: input,
+    });
+  };
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/services/storageService.ts.html b/coverage/lcov-report/services/storageService.ts.html new file mode 100644 index 00000000..fbaa9701 --- /dev/null +++ b/coverage/lcov-report/services/storageService.ts.html @@ -0,0 +1,366 @@ + + + + Code coverage report for services/storageService.ts + + + + + + + + + +
+
+

All files / services storageService.ts

+
+
+ 47.27% + Statements + 26/55 +
+ +
+ 46.15% + Branches + 6/13 +
+ +
+ 35.29% + Functions + 6/17 +
+ +
+ 49.05% + Lines + 26/53 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97  +  +  +  +  +  +  +1x +  +1x +1x +  +1x +1x +  +1x +  +1x +1x +1x +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +1x +  +1x +  +  +  +  +1x +1x +1x +1x +  +  +1x +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +1x +  +  +1x +  +  +  +  +1x +  +  +  + 
import AsyncStorage from '@react-native-async-storage/async-storage';
+import Debug from 'debug';
+import RNSecureKeyStore, {ACCESSIBLE} from 'react-native-secure-key-store';
+ 
+import {APP_ID} from '../@config/constants';
+import {IStorePinArgs, IStoreUserArgs, IUser} from '../types';
+ 
+const debug: Debug.Debugger = Debug(`${APP_ID}:storageService`);
+ 
+const STORAGE_PIN_KEY = 'pin';
+const STORAGE_USERS_KEY = 'users';
+ 
+export const storagePersistUser = async ({user}: IStoreUserArgs): Promise<void> => {
+  debug(`storeUser(${JSON.stringify(user)})...`);
+ 
+  await AsyncStorage.getItem(STORAGE_USERS_KEY)
+    .then((result: string | null) => {
+      Eif (!result || result === '{}') {
+        debug(`storeUser(${JSON.stringify(user)}) no users found`);
+        const users = new Map<string, IUser>();
+        users.set(user.id, user);
+ 
+        return AsyncStorage.setItem(STORAGE_USERS_KEY, JSON.stringify(Array.from(users)));
+      }
+ 
+      debug(`storeUser(${JSON.stringify(user)}) users found`);
+      const users: Map<string, IUser> = new Map<string, IUser>();
+      JSON.parse(result).forEach(([key, value]: [string, IUser]) => {
+        users.set(key, value);
+      });
+ 
+      users.set(user.id, user);
+ 
+      debug(`storeUser(${JSON.stringify(user)}) storing user`);
+      AsyncStorage.setItem(STORAGE_USERS_KEY, JSON.stringify(Array.from(users)));
+    })
+    .catch((error: Error) => Promise.reject(new Error(`Unable to set value for key: ${STORAGE_PIN_KEY}. ${error.message}`)));
+};
+ 
+export const storageGetUsers = async (): Promise<Map<string, IUser>> => {
+  debug(`getUsers...`);
+  return await AsyncStorage.getItem(STORAGE_USERS_KEY)
+    .then((result: string | null) => {
+      Iif (!result || result === '{}') {
+        debug(`getUsers() no users found`);
+        return new Map<string, IUser>();
+      }
+ 
+      debug(`getUsers() users found`);
+      const users: Map<string, IUser> = new Map<string, IUser>();
+      JSON.parse(result).forEach(([key, value]: [string, IUser]) => {
+        users.set(key, value);
+      });
+ 
+      return users;
+    })
+    .catch((error: Error) => Promise.reject(new Error(`Unable to retrieve value for key: ${STORAGE_USERS_KEY}. ${error.message}`)));
+};
+ 
+export const storageDeleteUser = async (userId: string): Promise<void> => {
+  debug(`deleteUser(${userId})...`);
+ 
+  await AsyncStorage.getItem(STORAGE_USERS_KEY)
+    .then((result: string | null) => {
+      if (!result || result === '{}') {
+        debug(`deleteUser(${userId}) no users found`);
+        return;
+      }
+ 
+      const users: Map<string, IUser> = new Map<string, IUser>();
+      JSON.parse(result).forEach(([key, value]: [string, IUser]) => {
+        users.set(key, value);
+      });
+ 
+      debug(`deleteUser(${userId}) deleting user`);
+      users.delete(userId);
+ 
+      AsyncStorage.setItem(STORAGE_USERS_KEY, JSON.stringify(Array.from(users)));
+    })
+    .catch((error: Error) => Promise.reject(new Error(`Unable to set value for key: ${STORAGE_PIN_KEY}. ${error.message}`)));
+};
+ 
+export const storagePersistPin = async ({value, accessible = ACCESSIBLE.WHEN_UNLOCKED_THIS_DEVICE_ONLY}: IStorePinArgs): Promise<any> => {
+  console.log(`storePin...`);
+  return RNSecureKeyStore.set(STORAGE_PIN_KEY, value, {accessible});
+};
+ 
+export const storageGetPin = async (): Promise<string> => {
+  debug(`getPin...`);
+  return RNSecureKeyStore.get(STORAGE_PIN_KEY).catch(() => Promise.reject(new Error(`Value not found for key: ${STORAGE_PIN_KEY}`)));
+};
+ 
+export const storageDeletePin = async (): Promise<void> => {
+  debug(`deletePin...`);
+  return RNSecureKeyStore.remove(STORAGE_PIN_KEY).catch(() => Promise.reject(new Error(`Unable to remove value for key: ${STORAGE_PIN_KEY}`)));
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/services/userService.ts.html b/coverage/lcov-report/services/userService.ts.html new file mode 100644 index 00000000..48ac4f4e --- /dev/null +++ b/coverage/lcov-report/services/userService.ts.html @@ -0,0 +1,240 @@ + + + + Code coverage report for services/userService.ts + + + + + + + + + +
+
+

All files / services userService.ts

+
+
+ 56.52% + Statements + 13/23 +
+ +
+ 50% + Branches + 1/2 +
+ +
+ 36.36% + Functions + 4/11 +
+ +
+ 61.9% + Lines + 13/21 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55  +  +  +  +  +  +  +1x +  +  +  +1x +1x +1x +  +  +  +1x +  +  +  +  +  +1x +  +1x +1x +  +  +  +  +1x +1x +1x +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  + 
import Debug from 'debug';
+ 
+import {APP_ID} from '../@config/constants';
+import {BasicUser, BasicUserIdentifier, IUser} from '../types';
+ 
+import {storageGetUsers, storageDeleteUser, storagePersistUser} from './storageService';
+ 
+const debug: Debug.Debugger = Debug(`${APP_ID}:userService`);
+ 
+import {v4 as uuidv4} from 'uuid';
+ 
+export const createUser = async (args: BasicUser): Promise<IUser> => {
+  debug(`createUser(${JSON.stringify(args)})...`);
+  const user: IUser = {
+    ...args,
+    id: uuidv4(),
+    identifiers: args.identifiers
+      ? args.identifiers.map((identifier: BasicUserIdentifier) => ({...identifier, createdAt: new Date(), lastUpdatedAt: new Date()}))
+      : [],
+    createdAt: new Date(),
+    lastUpdatedAt: new Date(),
+  };
+ 
+  return storagePersistUser({user})
+    .then(() => {
+      debug(`createUser(${JSON.stringify(args)}) succeeded`);
+      return user;
+    })
+    .catch((error: Error) => Promise.reject(Error(`Unable to create user. Error: ${error}`)));
+};
+ 
+export const getUsers = async (): Promise<Map<string, IUser>> => {
+  debug(`getUsers...`);
+  return storageGetUsers().catch((error: Error) => Promise.reject(Error(`Unable to retrieve users from storage. Error: ${error.message}`)));
+};
+ 
+export const updateUser = async (args: IUser): Promise<IUser> => {
+  debug(`updateUser(${JSON.stringify(args)})...`);
+  const user: IUser = {
+    ...args,
+    lastUpdatedAt: new Date(),
+  };
+ 
+  return storagePersistUser({user})
+    .then(() => {
+      debug(`updateUser(${JSON.stringify(args)}) succeeded`);
+      return user;
+    })
+    .catch((error: Error) => Promise.reject(Error(`Unable to update user. Error: ${error}`)));
+};
+ 
+export const deleteUser = async (userId: string): Promise<void> => {
+  storageDeleteUser(userId).catch((error: Error) => Promise.reject(Error(`Unable to delete user with id: ${userId}. Error: ${error}`)));
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/sort-arrow-sprite.png b/coverage/lcov-report/sort-arrow-sprite.png new file mode 100644 index 00000000..6ed68316 Binary files /dev/null and b/coverage/lcov-report/sort-arrow-sprite.png differ diff --git a/coverage/lcov-report/sorter.js b/coverage/lcov-report/sorter.js new file mode 100644 index 00000000..ade79a76 --- /dev/null +++ b/coverage/lcov-report/sorter.js @@ -0,0 +1,189 @@ +/* eslint-disable */ +var addSorting = (function () { + 'use strict'; + var cols, + currentSort = { + index: 0, + desc: false, + }; + + // returns the summary table element + function getTable() { + return document.querySelector('.coverage-summary'); + } + // returns the thead element of the summary table + function getTableHeader() { + return getTable().querySelector('thead tr'); + } + // returns the tbody element of the summary table + function getTableBody() { + return getTable().querySelector('tbody'); + } + // returns the th element for nth column + function getNthColumn(n) { + return getTableHeader().querySelectorAll('th')[n]; + } + + function onFilterInput() { + const searchValue = document.getElementById('fileSearch').value; + const rows = document.getElementsByTagName('tbody')[0].children; + for (let i = 0; i < rows.length; i++) { + const row = rows[i]; + if (row.textContent.toLowerCase().includes(searchValue.toLowerCase())) { + row.style.display = ''; + } else { + row.style.display = 'none'; + } + } + } + + // loads the search box + function addSearchBox() { + var template = document.getElementById('filterTemplate'); + var templateClone = template.content.cloneNode(true); + templateClone.getElementById('fileSearch').oninput = onFilterInput; + template.parentElement.appendChild(templateClone); + } + + // loads all columns + function loadColumns() { + var colNodes = getTableHeader().querySelectorAll('th'), + colNode, + cols = [], + col, + i; + + for (i = 0; i < colNodes.length; i += 1) { + colNode = colNodes[i]; + col = { + key: colNode.getAttribute('data-col'), + sortable: !colNode.getAttribute('data-nosort'), + type: colNode.getAttribute('data-type') || 'string', + }; + cols.push(col); + if (col.sortable) { + col.defaultDescSort = col.type === 'number'; + colNode.innerHTML = colNode.innerHTML + ''; + } + } + return cols; + } + // attaches a data attribute to every tr element with an object + // of data values keyed by column name + function loadRowData(tableRow) { + var tableCols = tableRow.querySelectorAll('td'), + colNode, + col, + data = {}, + i, + val; + for (i = 0; i < tableCols.length; i += 1) { + colNode = tableCols[i]; + col = cols[i]; + val = colNode.getAttribute('data-value'); + if (col.type === 'number') { + val = Number(val); + } + data[col.key] = val; + } + return data; + } + // loads all row data + function loadData() { + var rows = getTableBody().querySelectorAll('tr'), + i; + + for (i = 0; i < rows.length; i += 1) { + rows[i].data = loadRowData(rows[i]); + } + } + // sorts the table using the data for the ith column + function sortByIndex(index, desc) { + var key = cols[index].key, + sorter = function (a, b) { + a = a.data[key]; + b = b.data[key]; + return a < b ? -1 : a > b ? 1 : 0; + }, + finalSorter = sorter, + tableBody = document.querySelector('.coverage-summary tbody'), + rowNodes = tableBody.querySelectorAll('tr'), + rows = [], + i; + + if (desc) { + finalSorter = function (a, b) { + return -1 * sorter(a, b); + }; + } + + for (i = 0; i < rowNodes.length; i += 1) { + rows.push(rowNodes[i]); + tableBody.removeChild(rowNodes[i]); + } + + rows.sort(finalSorter); + + for (i = 0; i < rows.length; i += 1) { + tableBody.appendChild(rows[i]); + } + } + // removes sort indicators for current column being sorted + function removeSortIndicators() { + var col = getNthColumn(currentSort.index), + cls = col.className; + + cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); + col.className = cls; + } + // adds sort indicators for current column being sorted + function addSortIndicators() { + getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted'; + } + // adds event listeners for all sorter widgets + function enableUI() { + var i, + el, + ithSorter = function ithSorter(i) { + var col = cols[i]; + + return function () { + var desc = col.defaultDescSort; + + if (currentSort.index === i) { + desc = !currentSort.desc; + } + sortByIndex(i, desc); + removeSortIndicators(); + currentSort.index = i; + currentSort.desc = desc; + addSortIndicators(); + }; + }; + for (i = 0; i < cols.length; i += 1) { + if (cols[i].sortable) { + // add the click event handler on the th so users + // dont have to click on those tiny arrows + el = getNthColumn(i).querySelector('.sorter').parentElement; + if (el.addEventListener) { + el.addEventListener('click', ithSorter(i)); + } else { + el.attachEvent('onclick', ithSorter(i)); + } + } + } + } + // adds sorting functionality to the UI + return function () { + if (!getTable()) { + return; + } + cols = loadColumns(); + loadData(); + addSearchBox(); + addSortIndicators(); + enableUI(); + }; +})(); + +window.addEventListener('load', addSorting); diff --git a/coverage/lcov-report/store/actions/contact.actions.ts.html b/coverage/lcov-report/store/actions/contact.actions.ts.html new file mode 100644 index 00000000..25197c5e --- /dev/null +++ b/coverage/lcov-report/store/actions/contact.actions.ts.html @@ -0,0 +1,489 @@ + + + + Code coverage report for store/actions/contact.actions.ts + + + + + + + + + +
+
+

All files / store/actions contact.actions.ts

+
+
+ 34.78% + Statements + 16/46 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 26.08% + Functions + 6/23 +
+ +
+ 34.78% + Lines + 16/46 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +1x +1x +1x +1x +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +  +1x +  +1x +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {CorrelationIdentifierEnum, IContact, IdentityRoleEnum, IIdentity} from '@sphereon/ssi-sdk.data-store';
+import {Action} from 'redux';
+import {ThunkAction, ThunkDispatch} from 'redux-thunk';
+import {v4 as uuidv4} from 'uuid';
+ 
+import {translate} from '../../localization/Localization';
+import {
+  updateContact as editContact,
+  getContacts as getContactsFromStorage,
+  addIdentity as identityAdd,
+  removeContact,
+  createContact as storeContact,
+} from '../../services/contactService';
+import {IUser, IUserIdentifier, RootState, ToastTypeEnum} from '../../types';
+import {
+  ADD_IDENTITY_FAILED,
+  ADD_IDENTITY_SUCCESS,
+  CONTACTS_LOADING,
+  CREATE_CONTACT_FAILED,
+  CREATE_CONTACT_SUCCESS,
+  DELETE_CONTACT_FAILED,
+  DELETE_CONTACT_SUCCESS,
+  GET_CONTACTS_FAILED,
+  GET_CONTACTS_SUCCESS,
+  IAddIdentityArgs,
+  ICreateContactArgs,
+  IUpdateContactArgs,
+  UPDATE_CONTACT_FAILED,
+  UPDATE_CONTACT_SUCCESS,
+} from '../../types/store/contact.action.types';
+import {showToast} from '../../utils/ToastUtils';
+import store from '../index';
+ 
+export const getContacts = (): ThunkAction<Promise<void>, RootState, unknown, Action> => {
+  return async (dispatch: ThunkDispatch<RootState, unknown, Action>) => {
+    dispatch({type: CONTACTS_LOADING});
+    await getUserContact().then((userContact: IContact) => {
+      getContactsFromStorage()
+        .then(async (contacts: Array<IContact>) => dispatch({type: GET_CONTACTS_SUCCESS, payload: [...contacts, userContact]}))
+        .catch(() => dispatch({type: GET_CONTACTS_FAILED}));
+    });
+  };
+};
+ 
+export const createContact = (args: ICreateContactArgs): ThunkAction<Promise<void>, RootState, unknown, Action> => {
+  return async (dispatch: ThunkDispatch<RootState, unknown, Action>) => {
+    dispatch({type: CONTACTS_LOADING});
+    await storeContact(args)
+      .then((contact: IContact) => {
+        dispatch({type: CREATE_CONTACT_SUCCESS, payload: contact});
+        showToast(ToastTypeEnum.TOAST_SUCCESS, {message: translate('contact_add_success_toast'), showBadge: false});
+      })
+      .catch(() => dispatch({type: CREATE_CONTACT_FAILED}));
+  };
+};
+ 
+export const updateContact = (args: IUpdateContactArgs): ThunkAction<Promise<void>, RootState, unknown, Action> => {
+  return async (dispatch: ThunkDispatch<RootState, unknown, Action>) => {
+    dispatch({type: CONTACTS_LOADING});
+    await editContact(args)
+      .then((contact: IContact) => {
+        dispatch({type: UPDATE_CONTACT_SUCCESS, payload: contact});
+        showToast(ToastTypeEnum.TOAST_SUCCESS, {message: translate('contact_update_success_toast'), showBadge: false});
+      })
+      .catch(() => dispatch({type: UPDATE_CONTACT_FAILED}));
+  };
+};
+ 
+export const addIdentity = (args: IAddIdentityArgs): ThunkAction<Promise<void>, RootState, unknown, Action> => {
+  return async (dispatch: ThunkDispatch<RootState, unknown, Action>) => {
+    dispatch({type: CONTACTS_LOADING});
+    await identityAdd(args)
+      .then((identity: IIdentity) => dispatch({type: ADD_IDENTITY_SUCCESS, payload: {contactId: args.contactId, identity}}))
+      .catch(error => {
+        //FIXME:
+        console.log(
+          `FIXME: We had a constraint violation, because 2 distinct issuers shared the same DID. We only search for current issuer and then look whether it has the DID: ${
+            args.contactId
+          }, ${JSON.stringify(args.identity)}`,
+        );
+        console.log(error);
+        dispatch({type: ADD_IDENTITY_FAILED});
+      });
+  };
+};
+ 
+export const deleteContact = (contactId: string): ThunkAction<Promise<void>, RootState, unknown, Action> => {
+  return async (dispatch: ThunkDispatch<RootState, unknown, Action>) => {
+    dispatch({type: CONTACTS_LOADING});
+ 
+    await removeContact({contactId: contactId})
+      .then((isDeleted: boolean) => {
+        if (isDeleted) {
+          dispatch({type: DELETE_CONTACT_SUCCESS, payload: contactId});
+          showToast(ToastTypeEnum.TOAST_SUCCESS, {message: translate('contact_deleted_success_toast'), showBadge: false});
+        } else {
+          dispatch({type: DELETE_CONTACT_FAILED});
+          showToast(ToastTypeEnum.TOAST_ERROR, {message: translate('contact_deleted_failed_toast')});
+        }
+      })
+      .catch(() => {
+        dispatch({type: DELETE_CONTACT_FAILED});
+        showToast(ToastTypeEnum.TOAST_ERROR, {message: translate('contact_deleted_failed_toast')});
+      });
+  };
+};
+ 
+export const getUserContact = async (): Promise<IContact> => {
+  const userState = store.getState().user;
+  // TODO supporting only one user at the moment
+  const user: IUser = userState.activeUser!;
+ 
+  const userFullName = `${user.firstName} ${user.lastName}`;
+ 
+  return {
+    id: user.id,
+    name: userFullName,
+    alias: userFullName,
+    uri: user.emailAddress,
+    //todo: (WAL-545) handle this based on the identities available in the wallet
+    roles: [IdentityRoleEnum.HOLDER],
+    identities: user.identifiers.map((identifier: IUserIdentifier) => ({
+      id: uuidv4(),
+      alias: identifier.did,
+      roles: [IdentityRoleEnum.HOLDER],
+      identifier: {
+        id: uuidv4(),
+        type: CorrelationIdentifierEnum.DID,
+        correlationId: identifier.did,
+      },
+      createdAt: identifier.createdAt,
+      lastUpdatedAt: identifier.lastUpdatedAt,
+    })),
+    createdAt: user.createdAt,
+    lastUpdatedAt: user.lastUpdatedAt,
+  };
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/store/actions/credential.actions.ts.html b/coverage/lcov-report/store/actions/credential.actions.ts.html new file mode 100644 index 00000000..16add1ea --- /dev/null +++ b/coverage/lcov-report/store/actions/credential.actions.ts.html @@ -0,0 +1,420 @@ + + + + Code coverage report for store/actions/credential.actions.ts + + + + + + + + + +
+
+

All files / store/actions credential.actions.ts

+
+
+ 33.33% + Statements + 14/42 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 22.72% + Functions + 5/22 +
+ +
+ 31.7% + Lines + 13/41 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +1x +1x +  +1x +  +  +1x +1x +  +1x +  +  +1x +  +  +1x +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {ICredentialBranding} from '@sphereon/ssi-sdk.data-store';
+import {CredentialMapper, OriginalVerifiableCredential} from '@sphereon/ssi-types';
+import {ICreateVerifiableCredentialArgs, UniqueVerifiableCredential, VerifiableCredential} from '@veramo/core';
+import {Action} from 'redux';
+import {ThunkAction, ThunkDispatch} from 'redux-thunk';
+ 
+import {ibGetCredentialBranding} from '../../agent';
+import {translate} from '../../localization/Localization';
+import {
+  createVerifiableCredential as createCredential,
+  deleteVerifiableCredential as deleteCredential,
+  getVerifiableCredentialsFromStorage,
+  storeVerifiableCredential as storeCredential,
+} from '../../services/credentialService';
+import {ICredentialSummary, RootState, ToastTypeEnum} from '../../types';
+import {
+  CREATE_CREDENTIAL_FAILED,
+  CREATE_CREDENTIAL_SUCCESS,
+  CREDENTIALS_LOADING,
+  DELETE_CREDENTIAL_FAILED,
+  DELETE_CREDENTIAL_SUCCESS,
+  GET_CREDENTIALS_FAILED,
+  GET_CREDENTIALS_SUCCESS,
+  STORE_CREDENTIAL_FAILED,
+  STORE_CREDENTIAL_SUCCESS,
+} from '../../types/store/credential.action.types';
+import {showToast} from '../../utils/ToastUtils';
+import {toCredentialSummary} from '../../utils/mappers/credential/CredentialMapper';
+ 
+export const getVerifiableCredentials = (): ThunkAction<Promise<void>, RootState, unknown, Action> => {
+  return async (dispatch: ThunkDispatch<RootState, unknown, Action>) => {
+    dispatch({type: CREDENTIALS_LOADING});
+    getVerifiableCredentialsFromStorage()
+      .then(async (credentials: Array<UniqueVerifiableCredential>) => {
+        const vcHashes: Array<{vcHash: string}> = credentials.map((uniqueCredential: UniqueVerifiableCredential): {vcHash: string} => ({
+          vcHash: uniqueCredential.hash,
+        }));
+        const credentialsBranding: Array<ICredentialBranding> = await ibGetCredentialBranding({filter: vcHashes});
+        const credentialSummaries: Array<ICredentialSummary> = await Promise.all(
+          credentials.map(async (uniqueVC: UniqueVerifiableCredential): Promise<ICredentialSummary> => {
+            const credentialBranding: ICredentialBranding | undefined = credentialsBranding.find(
+              (branding: ICredentialBranding) => branding.vcHash === uniqueVC.hash,
+            );
+            return await toCredentialSummary(uniqueVC, credentialBranding?.localeBranding);
+          }),
+        );
+        dispatch({type: GET_CREDENTIALS_SUCCESS, payload: [...credentialSummaries]});
+      })
+      .catch(() => dispatch({type: GET_CREDENTIALS_FAILED}));
+  };
+};
+ 
+export const storeVerifiableCredential = (vc: VerifiableCredential): ThunkAction<Promise<void>, RootState, unknown, Action> => {
+  return async (dispatch: ThunkDispatch<RootState, unknown, Action>) => {
+    dispatch({type: CREDENTIALS_LOADING});
+    const mappedVc = CredentialMapper.toUniformCredential(vc as OriginalVerifiableCredential) as VerifiableCredential;
+    storeCredential({vc: mappedVc})
+      .then(async (hash: string) => {
+        const credentialBranding: Array<ICredentialBranding> = await ibGetCredentialBranding({filter: [{vcHash: hash}]});
+        toCredentialSummary({verifiableCredential: mappedVc, hash}, credentialBranding?.[0]?.localeBranding).then((summary: ICredentialSummary) =>
+          dispatch({
+            type: STORE_CREDENTIAL_SUCCESS,
+            payload: summary,
+          }),
+        );
+      })
+      .catch(() => dispatch({type: STORE_CREDENTIAL_FAILED}));
+  };
+};
+ 
+export const deleteVerifiableCredential = (credentialHash: string): ThunkAction<Promise<void>, RootState, unknown, Action> => {
+  return async (dispatch: ThunkDispatch<RootState, unknown, Action>) => {
+    dispatch({type: CREDENTIALS_LOADING});
+    deleteCredential({hash: credentialHash})
+      .then((isDeleted: boolean) => {
+        if (isDeleted) {
+          dispatch({type: DELETE_CREDENTIAL_SUCCESS, payload: credentialHash});
+          showToast(ToastTypeEnum.TOAST_SUCCESS, {
+            message: translate('credential_deleted_success_toast'),
+            showBadge: false,
+          });
+        } else {
+          dispatch({type: DELETE_CREDENTIAL_FAILED});
+          showToast(ToastTypeEnum.TOAST_ERROR, {message: translate('credential_deleted_failed_toast')});
+        }
+      })
+      .catch(() => {
+        dispatch({type: DELETE_CREDENTIAL_FAILED});
+        showToast(ToastTypeEnum.TOAST_ERROR, {message: translate('credential_deleted_failed_toast')});
+      });
+  };
+};
+ 
+export const createVerifiableCredential = (args: ICreateVerifiableCredentialArgs): ThunkAction<Promise<void>, RootState, unknown, Action> => {
+  return async (dispatch: ThunkDispatch<RootState, unknown, Action>) => {
+    dispatch({type: CREDENTIALS_LOADING});
+    createCredential(args)
+      .then((vc: VerifiableCredential) => {
+        storeCredential({vc}).then((hash: string) =>
+          toCredentialSummary({verifiableCredential: vc, hash}).then((summary: ICredentialSummary) =>
+            // TODO fix mismatch in types
+            dispatch({
+              type: CREATE_CREDENTIAL_SUCCESS,
+              payload: summary,
+            }),
+          ),
+        );
+      })
+      .catch((error: Error) => {
+        console.log(error.message);
+        dispatch({type: CREATE_CREDENTIAL_FAILED});
+      });
+  };
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/store/actions/index.html b/coverage/lcov-report/store/actions/index.html new file mode 100644 index 00000000..63a9a881 --- /dev/null +++ b/coverage/lcov-report/store/actions/index.html @@ -0,0 +1,148 @@ + + + + Code coverage report for store/actions + + + + + + + + + +
+
+

All files store/actions

+
+
+ 40.5% + Statements + 64/158 +
+ +
+ 41.66% + Branches + 5/12 +
+ +
+ 26.08% + Functions + 18/69 +
+ +
+ 40% + Lines + 62/155 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
contact.actions.ts +
+
+
+
+
34.78%16/460%0/226.08%6/2334.78%16/46
credential.actions.ts +
+
+
+
+
33.33%14/420%0/222.72%5/2231.7%13/41
user.actions.ts +
+
+
+
+
48.57%34/7062.5%5/829.16%7/2448.52%33/68
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/store/actions/user.actions.ts.html b/coverage/lcov-report/store/actions/user.actions.ts.html new file mode 100644 index 00000000..805fabea --- /dev/null +++ b/coverage/lcov-report/store/actions/user.actions.ts.html @@ -0,0 +1,546 @@ + + + + Code coverage report for store/actions/user.actions.ts + + + + + + + + + +
+
+

All files / store/actions user.actions.ts

+
+
+ 48.57% + Statements + 34/70 +
+ +
+ 62.5% + Branches + 5/8 +
+ +
+ 29.16% + Functions + 7/24 +
+ +
+ 48.52% + Lines + 33/68 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +1x +1x +  +1x +1x +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +1x +1x +  +1x +1x +1x +1x +  +1x +1x +1x +  +  +  +  +1x +  +1x +1x +1x +  +1x +1x +1x +  +1x +1x +  +1x +1x +  +1x +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {Action, CombinedState} from 'redux';
+import {ThunkAction, ThunkDispatch} from 'redux-thunk';
+ 
+import {DB_CONNECTION_NAME} from '../../@config/database';
+import IntentHandler from '../../handlers/IntentHandler';
+import LockingHandler from '../../handlers/LockingHandler';
+import {resetDatabase} from '../../services/databaseService';
+import {storageDeletePin} from '../../services/storageService';
+import {
+  getUsers as userServiceGetUsers,
+  deleteUser as userServiceDeleteUser,
+  updateUser as userServiceUpdateUser,
+  createUser as userServiceCreateUser,
+} from '../../services/userService';
+import {BasicUser, IAddIdentifierArgs, IUser, RootState} from '../../types';
+import {CLEAR_CONTACTS} from '../../types/store/contact.action.types';
+import {IContactState} from '../../types/store/contact.types';
+import {CLEAR_CREDENTIALS} from '../../types/store/credential.action.types';
+import {
+  CREATE_USER_FAILED,
+  CREATE_USER_SUCCESS,
+  DELETE_USER_FAILED,
+  DELETE_USER_SUCCESS,
+  GET_USERS_FAILED,
+  GET_USERS_SUCCESS,
+  LOGIN_FAILED,
+  LOGIN_SUCCESS,
+  LOGOUT_SUCCESS,
+  UPDATE_USER_FAILED,
+  UPDATE_USER_SUCCESS,
+  USERS_LOADING,
+} from '../../types/store/user.action.types';
+import {IUserState} from '../../types/store/user.types';
+ 
+import {getContacts} from './contact.actions';
+import {getVerifiableCredentials} from './credential.actions';
+ 
+export const createUser = (args: BasicUser): ThunkAction<Promise<IUser>, RootState, unknown, Action> => {
+  return async (dispatch: ThunkDispatch<RootState, unknown, Action>) => {
+    dispatch({type: USERS_LOADING});
+    return await userServiceCreateUser(args)
+      .then((user: IUser) => {
+        dispatch({type: CREATE_USER_SUCCESS, payload: user});
+        return user;
+      })
+      .catch((error: Error) => {
+        dispatch({type: CREATE_USER_FAILED});
+        return Promise.reject(error);
+      });
+  };
+};
+ 
+export const getUsers = (): ThunkAction<Promise<void>, RootState, unknown, Action> => {
+  return async (dispatch: ThunkDispatch<RootState, unknown, Action>) => {
+    dispatch({type: USERS_LOADING});
+    userServiceGetUsers()
+      .then((users: Map<string, IUser>) => dispatch({type: GET_USERS_SUCCESS, payload: users}))
+      .catch(() => dispatch({type: GET_USERS_FAILED}));
+  };
+};
+ 
+export const addIdentifier = (args: IAddIdentifierArgs): ThunkAction<Promise<void>, RootState, unknown, Action> => {
+  return async (dispatch: ThunkDispatch<RootState, unknown, Action>, getState: CombinedState<any>) => {
+    dispatch({type: USERS_LOADING});
+    const userSate: IUserState = getState().user;
+    const userIdentifier = {
+      did: args.did,
+      createdAt: new Date(),
+      lastUpdatedAt: new Date(),
+    };
+    // We are currently only supporting a single user right now
+    const user: IUser = {
+      ...userSate.users.values().next().value,
+      identifiers: [...userSate.users.values().next().value.identifiers, userIdentifier],
+    };
+ 
+    userServiceUpdateUser(user)
+      .then((user: IUser) => dispatch({type: UPDATE_USER_SUCCESS, payload: user}))
+      .catch(() => dispatch({type: UPDATE_USER_FAILED}));
+  };
+};
+ 
+export const login = (userId: string): ThunkAction<Promise<void>, RootState, unknown, Action> => {
+  return async (dispatch: ThunkDispatch<RootState, unknown, Action>, getState: CombinedState<any>) => {
+    dispatch({type: USERS_LOADING});
+    await userServiceGetUsers()
+      .then(async (users: Map<string, IUser>) => {
+        const user = users.get(userId);
+        if (user) {
+          const maxWaitTime = 5000;
+          let startTime = Date.now();
+ 
+          dispatch({type: LOGIN_SUCCESS, payload: user});
+          let userState: IUserState = getState().user;
+          while (!userState.activeUser && Date.now() - startTime < maxWaitTime) {
+            console.log(`No active user yet`)
+            await new Promise(resolve => setTimeout(resolve, 50));
+            userState = getState().user;
+          }
+          console.log(`ACTIVE USER: ${userState.activeUser}`)
+ 
+          await dispatch(getContacts());
+          startTime = Date.now();
+          let contactState: IContactState = getState().contact;
+          // this will work because we generate a contact from the user so there is always 1 present
+          while (contactState.contacts.length === 0 && Date.now() - startTime < maxWaitTime) {
+            await new Promise(resolve => setTimeout(resolve, 50));
+            contactState = getState().contact;
+          }
+          await dispatch(getVerifiableCredentials());
+          LockingHandler.getInstance().isLocked = false;
+ 
+          const intentHandler = IntentHandler.getInstance();
+          await intentHandler.enable();
+ 
+          Iif (intentHandler.hasDeepLink()) {
+            intentHandler.openDeepLinkIfExistsAndAppUnlocked();
+          }
+        } else E{
+          dispatch({type: LOGIN_FAILED});
+        }
+      })
+      .catch(() => dispatch({type: LOGIN_FAILED}));
+  };
+};
+ 
+export const logout = (): ThunkAction<Promise<void>, RootState, unknown, Action> => {
+  return async (dispatch: ThunkDispatch<RootState, unknown, Action>) => {
+    // dispatch({type: USERS_LOADING});
+    dispatch({type: LOGOUT_SUCCESS});
+    dispatch({type: CLEAR_CREDENTIALS});
+    dispatch({type: CLEAR_CONTACTS});
+  };
+};
+ 
+// This action acts like there is only one user present, so everything is getting removed. in the future we might just only want to delete a user
+export const deleteUser = (userId: string): ThunkAction<Promise<void>, RootState, unknown, Action> => {
+  return async (dispatch: ThunkDispatch<RootState, unknown, Action>) => {
+    dispatch({type: USERS_LOADING});
+    // first delete the user (including redux store) then logout (remove active user). As then the switch navigator will navigate directly to the onboarding stack
+    // without an active user the switch navigator will navigate to the login screen. So doing this first would flicker the login screen
+    userServiceDeleteUser(userId)
+      .then(() => {
+        dispatch({type: DELETE_USER_SUCCESS, payload: userId});
+        dispatch({type: LOGOUT_SUCCESS});
+        void resetDatabase(DB_CONNECTION_NAME);
+        void storageDeletePin();
+        // TODO would be nice if we have 1 action that deletes the content a user has
+        dispatch({type: CLEAR_CREDENTIALS});
+        dispatch({type: CLEAR_CONTACTS});
+      })
+      .catch(() => {
+        dispatch({type: DELETE_USER_FAILED});
+      });
+  };
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/store/index.html b/coverage/lcov-report/store/index.html new file mode 100644 index 00000000..e04e63cc --- /dev/null +++ b/coverage/lcov-report/store/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for store + + + + + + + + + +
+
+

All files store

+
+
+ 100% + Statements + 2/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 2/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%2/2100%0/0100%0/0100%2/2
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/store/index.ts.html b/coverage/lcov-report/store/index.ts.html new file mode 100644 index 00000000..95200f6b --- /dev/null +++ b/coverage/lcov-report/store/index.ts.html @@ -0,0 +1,138 @@ + + + + Code coverage report for store/index.ts + + + + + + + + + +
+
+

All files / store index.ts

+
+
+ 100% + Statements + 2/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 2/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21  +  +  +  +  +  +  +1x +  +  +  +  +  +1x +  +  +  +  +  +  + 
import {configureStore} from '@reduxjs/toolkit';
+import {combineReducers} from 'redux';
+import thunk from 'redux-thunk';
+import contactReducer from './reducers/contact.reducer';
+import credentialReducer from './reducers/credential.reducer';
+import userReducer from './reducers/user.reducer';
+ 
+export const rootReducer = combineReducers({
+  user: userReducer,
+  credential: credentialReducer,
+  contact: contactReducer,
+});
+ 
+const store = configureStore({
+  reducer: rootReducer,
+  middleware: [thunk],
+  devTools: true,
+});
+ 
+export default store;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/store/reducers/contact.reducer.ts.html b/coverage/lcov-report/store/reducers/contact.reducer.ts.html new file mode 100644 index 00000000..21cf9d9c --- /dev/null +++ b/coverage/lcov-report/store/reducers/contact.reducer.ts.html @@ -0,0 +1,420 @@ + + + + Code coverage report for store/reducers/contact.reducer.ts + + + + + + + + + +
+
+

All files / store/reducers contact.reducer.ts

+
+
+ 31.57% + Statements + 6/19 +
+ +
+ 25% + Branches + 4/16 +
+ +
+ 25% + Functions + 1/4 +
+ +
+ 31.57% + Lines + 6/19 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +1x +14x +  +1x +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +12x +  +  +  +  + 
import {IContact} from '@sphereon/ssi-sdk.data-store';
+ 
+import {SortOrder} from '../../types';
+import {
+  ADD_IDENTITY_FAILED,
+  ADD_IDENTITY_SUCCESS,
+  CLEAR_CONTACTS,
+  ContactActionTypes,
+  CONTACTS_LOADING,
+  CREATE_CONTACT_FAILED,
+  CREATE_CONTACT_SUCCESS,
+  DELETE_CONTACT_FAILED,
+  DELETE_CONTACT_SUCCESS,
+  GET_CONTACTS_FAILED,
+  GET_CONTACTS_SUCCESS,
+  UPDATE_CONTACT_FAILED,
+  UPDATE_CONTACT_SUCCESS,
+} from '../../types/store/contact.action.types';
+import {IContactState} from '../../types/store/contact.types';
+import {sortBy} from '../../utils/SortUtils';
+ 
+const initialState: IContactState = {
+  loading: false,
+  contacts: [],
+};
+ 
+const contactReducer = (state: IContactState = initialState, action: ContactActionTypes): IContactState => {
+  switch (action.type) {
+    case CONTACTS_LOADING: {
+      return {
+        ...state,
+        loading: true,
+      };
+    }
+    case GET_CONTACTS_SUCCESS: {
+      return {
+        ...state,
+        contacts: action.payload.sort(sortBy('alias', SortOrder.ASC)),
+        loading: false,
+      };
+    }
+    case GET_CONTACTS_FAILED: {
+      return {
+        ...state,
+        loading: false,
+      };
+    }
+    case CREATE_CONTACT_SUCCESS: {
+      return {
+        ...state,
+        contacts: [...state.contacts, action.payload].sort(sortBy('alias', SortOrder.ASC)),
+        loading: false,
+      };
+    }
+    case CREATE_CONTACT_FAILED: {
+      return {
+        ...state,
+        loading: false,
+      };
+    }
+    case UPDATE_CONTACT_SUCCESS: {
+      return {
+        ...state,
+        contacts: [...state.contacts.filter((contact: IContact) => contact.id !== action.payload.id), action.payload].sort(
+          sortBy('alias', SortOrder.ASC),
+        ),
+        loading: false,
+      };
+    }
+    case UPDATE_CONTACT_FAILED: {
+      return {
+        ...state,
+        loading: false,
+      };
+    }
+    case DELETE_CONTACT_SUCCESS: {
+      return {
+        ...state,
+        contacts: state.contacts.filter((contact: IContact) => contact.id !== action.payload).sort(sortBy('alias', SortOrder.ASC)),
+        loading: false,
+      };
+    }
+    case DELETE_CONTACT_FAILED: {
+      return {
+        ...state,
+        loading: false,
+      };
+    }
+    case ADD_IDENTITY_SUCCESS: {
+      return {
+        ...state,
+        contacts: state.contacts
+          .map((contact: IContact) =>
+            contact.id === action.payload.contactId ? {...contact, identities: [...contact!.identities, action.payload.identity]} : contact,
+          )
+          .sort(sortBy('alias', SortOrder.ASC)),
+        loading: false,
+      };
+    }
+    case ADD_IDENTITY_FAILED: {
+      return {
+        ...state,
+        loading: false,
+      };
+    }
+    case CLEAR_CONTACTS: {
+      return initialState;
+    }
+    default:
+      return state;
+  }
+};
+ 
+export default contactReducer;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/store/reducers/credential.reducer.ts.html b/coverage/lcov-report/store/reducers/credential.reducer.ts.html new file mode 100644 index 00000000..b8e0fb30 --- /dev/null +++ b/coverage/lcov-report/store/reducers/credential.reducer.ts.html @@ -0,0 +1,354 @@ + + + + Code coverage report for store/reducers/credential.reducer.ts + + + + + + + + + +
+
+

All files / store/reducers credential.reducer.ts

+
+
+ 40% + Statements + 6/15 +
+ +
+ 33.33% + Branches + 4/12 +
+ +
+ 50% + Functions + 1/2 +
+ +
+ 40% + Lines + 6/15 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +1x +  +  +14x +  +1x +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +12x +  +  +  +  + 
import {ICredentialSummary} from '../../types';
+import {
+  CLEAR_CREDENTIALS,
+  CREATE_CREDENTIAL_FAILED,
+  CREATE_CREDENTIAL_SUCCESS,
+  CredentialActionTypes,
+  CREDENTIALS_LOADING,
+  DELETE_CREDENTIAL_FAILED,
+  DELETE_CREDENTIAL_SUCCESS,
+  GET_CREDENTIALS_FAILED,
+  GET_CREDENTIALS_SUCCESS,
+  STORE_CREDENTIAL_FAILED,
+  STORE_CREDENTIAL_SUCCESS,
+} from '../../types/store/credential.action.types';
+import {ICredentialState} from '../../types/store/credential.types';
+ 
+const initialState: ICredentialState = {
+  loading: false,
+  verifiableCredentials: [],
+};
+ 
+const credentialReducer = (state: ICredentialState = initialState, action: CredentialActionTypes): ICredentialState => {
+  // For WAL-605 add sorting taking inspiration from contactReducer WAL-540
+ 
+  switch (action.type) {
+    case CREDENTIALS_LOADING: {
+      return {
+        ...state,
+        loading: true,
+      };
+    }
+    case GET_CREDENTIALS_SUCCESS: {
+      return {
+        ...state,
+        verifiableCredentials: action.payload,
+        loading: false,
+      };
+    }
+    case GET_CREDENTIALS_FAILED: {
+      return {
+        ...state,
+        loading: false,
+      };
+    }
+    case STORE_CREDENTIAL_SUCCESS: {
+      return {
+        ...state,
+        verifiableCredentials: [...state.verifiableCredentials, action.payload],
+        loading: false,
+      };
+    }
+    case STORE_CREDENTIAL_FAILED: {
+      return {
+        ...state,
+        loading: false,
+      };
+    }
+    case DELETE_CREDENTIAL_SUCCESS: {
+      return {
+        ...state,
+        verifiableCredentials: state.verifiableCredentials.filter((vc: ICredentialSummary) => vc.hash !== action.payload),
+        loading: false,
+      };
+    }
+    case DELETE_CREDENTIAL_FAILED: {
+      return {
+        ...state,
+        loading: false,
+      };
+    }
+    case CREATE_CREDENTIAL_SUCCESS: {
+      return {
+        ...state,
+        verifiableCredentials: [...state.verifiableCredentials, action.payload],
+        loading: false,
+      };
+    }
+    case CREATE_CREDENTIAL_FAILED: {
+      return {
+        ...state,
+        loading: false,
+      };
+    }
+    case CLEAR_CREDENTIALS: {
+      return initialState;
+    }
+    default:
+      return state;
+  }
+};
+ 
+export default credentialReducer;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/store/reducers/index.html b/coverage/lcov-report/store/reducers/index.html new file mode 100644 index 00000000..6285116d --- /dev/null +++ b/coverage/lcov-report/store/reducers/index.html @@ -0,0 +1,148 @@ + + + + Code coverage report for store/reducers + + + + + + + + + +
+
+

All files store/reducers

+
+
+ 37.25% + Statements + 19/51 +
+ +
+ 30.95% + Branches + 13/42 +
+ +
+ 42.85% + Functions + 3/7 +
+ +
+ 37.25% + Lines + 19/51 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
contact.reducer.ts +
+
+
+
+
31.57%6/1925%4/1625%1/431.57%6/19
credential.reducer.ts +
+
+
+
+
40%6/1533.33%4/1250%1/240%6/15
user.reducer.ts +
+
+
+
+
41.17%7/1735.71%5/14100%1/141.17%7/17
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/store/reducers/user.reducer.ts.html b/coverage/lcov-report/store/reducers/user.reducer.ts.html new file mode 100644 index 00000000..1bb38ec6 --- /dev/null +++ b/coverage/lcov-report/store/reducers/user.reducer.ts.html @@ -0,0 +1,417 @@ + + + + Code coverage report for store/reducers/user.reducer.ts + + + + + + + + + +
+
+

All files / store/reducers user.reducer.ts

+
+
+ 41.17% + Statements + 7/17 +
+ +
+ 35.71% + Branches + 5/14 +
+ +
+ 100% + Functions + 1/1 +
+ +
+ 41.17% + Lines + 7/17 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +1x +  +  +14x +  +2x +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +7x +  +  +  +  + 
import {IUser} from '../../types';
+import {
+  CREATE_USER_FAILED,
+  CREATE_USER_SUCCESS,
+  DELETE_USER_FAILED,
+  DELETE_USER_SUCCESS,
+  GET_USERS_FAILED,
+  GET_USERS_SUCCESS,
+  LOGIN_FAILED,
+  LOGIN_SUCCESS,
+  LOGOUT_SUCCESS,
+  UPDATE_USER_FAILED,
+  UPDATE_USER_SUCCESS,
+  UserActionTypes,
+  USERS_LOADING,
+} from '../../types/store/user.action.types';
+import {IUserState} from '../../types/store/user.types';
+ 
+const initialState: IUserState = {
+  loading: false,
+  users: new Map<string, IUser>(),
+  activeUser: undefined,
+};
+ 
+const userReducer = (state: IUserState = initialState, action: UserActionTypes): IUserState => {
+  // For WAL-605 we can add sorting taking inspiration from contactReducer WAL-540
+ 
+  switch (action.type) {
+    case USERS_LOADING: {
+      return {
+        ...state,
+        loading: true,
+      };
+    }
+    case CREATE_USER_SUCCESS: {
+      return {
+        ...state,
+        users: state.users.set(action.payload.id, action.payload),
+        loading: false,
+      };
+    }
+    case CREATE_USER_FAILED: {
+      return {
+        ...state,
+        loading: false,
+      };
+    }
+    case GET_USERS_SUCCESS: {
+      return {
+        ...state,
+        users: action.payload,
+        loading: false,
+      };
+    }
+    case GET_USERS_FAILED: {
+      return {
+        ...state,
+        loading: false,
+      };
+    }
+    case LOGIN_SUCCESS: {
+      return {
+        ...state,
+        activeUser: action.payload,
+        loading: false,
+      };
+    }
+    case LOGOUT_SUCCESS: {
+      return {
+        ...state,
+        activeUser: undefined,
+        loading: false,
+      };
+    }
+    case LOGIN_FAILED: {
+      return {
+        ...state,
+        loading: false,
+      };
+    }
+    case UPDATE_USER_SUCCESS: {
+      return {
+        ...state,
+        users: state.users.set(action.payload.id, action.payload),
+        activeUser: action.payload,
+        loading: false,
+      };
+    }
+    case UPDATE_USER_FAILED: {
+      return {
+        ...state,
+        loading: false,
+      };
+    }
+    case DELETE_USER_SUCCESS: {
+      state.users.delete(action.payload);
+      return {
+        ...state,
+        loading: false,
+      };
+    }
+    case DELETE_USER_FAILED: {
+      return {
+        ...state,
+        loading: false,
+      };
+    }
+    default:
+      return state;
+  }
+};
+ 
+export default userReducer;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/colors.ts.html b/coverage/lcov-report/styles/colors.ts.html new file mode 100644 index 00000000..81c2b21f --- /dev/null +++ b/coverage/lcov-report/styles/colors.ts.html @@ -0,0 +1,492 @@ + + + + Code coverage report for styles/colors.ts + + + + + + + + + +
+
+

All files / styles colors.ts

+
+
+ 100% + Statements + 14/14 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 14/14 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139  +  +  +  +1x +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +  +  +  +1x +  +  +  +  +  +1x +  +  +  + 
import {LabelStatus} from '../types';
+ 
+type Background = 'primaryDark' | 'secondaryDark' | 'primaryLight' | 'secondaryLight';
+ 
+export const backgrounds: Record<Background, string> = {
+  primaryDark: '#202537',
+  secondaryDark: '#2C334B',
+  primaryLight: '#FBFBFB',
+  secondaryLight: '#E3E3FF',
+};
+ 
+type Alerts = 'primaryLight' | 'secondaryLight';
+ 
+export const alerts: Record<Alerts, string> = {
+  primaryLight: '#FBFBFB',
+  secondaryLight: '#EBEBEB',
+};
+ 
+type Highlight = 'dark';
+ 
+export const highlights: Record<Highlight, string> = {
+  dark: '#3B425E',
+};
+ 
+type Border = 'dark' | 'light';
+ 
+export const borders: Record<Border, string> = {
+  dark: '#404D7A',
+  light: '#E3E3E3',
+};
+ 
+type Profile = 100 | 200 | 300 | 400 | 500;
+ 
+export const profiles: Record<Profile, string> = {
+  100: '#EE5209',
+  200: '#FF9900',
+  300: '#5BDED3',
+  400: '#0B81FF',
+  500: '#BD2DFF',
+};
+ 
+type GradientProperties = {
+  primaryColor: string;
+  secondaryColor: string;
+};
+ 
+type Gradient = 100 | 200 | 300 | 400 | 500;
+ 
+export const gradients: Record<Gradient, GradientProperties> = {
+  100: {
+    primaryColor: 'rgba(111,105,224,1)',
+    secondaryColor: 'rgba(69,64,164,1)',
+  },
+  200: {
+    primaryColor: 'rgba(250,182,81,1)',
+    secondaryColor: 'rgba(202,122,2,1)',
+  },
+  300: {
+    primaryColor: 'rgba(108,240,228,1)',
+    secondaryColor: 'rgba(0,169,153,1)',
+  },
+  400: {
+    primaryColor: 'rgba(50,156,245,1)',
+    secondaryColor: 'rgba(0,91,168,1)',
+  },
+  500: {
+    primaryColor: 'rgba(188,45,255,1)',
+    secondaryColor: 'rgba(122,3,177,1)',
+  },
+};
+ 
+type HighLightGradient = 100 | 200 | 300;
+ 
+export const highLightGradients: Record<HighLightGradient, GradientProperties> = {
+  100: {
+    primaryColor: 'rgba(114,118,247,1)',
+    secondaryColor: 'rgba(124,64,232,1)',
+  },
+  200: {
+    primaryColor: 'rgba(255,153,0,1)',
+    secondaryColor: 'rgba(238,83,9,1)',
+  },
+  300: {
+    primaryColor: 'rgba(67,71,225,1)',
+    secondaryColor: 'rgba(76,22,174,1)',
+  },
+};
+ 
+type Font = 'dark' | 'light' | 'secondaryButton' | 'greyedOut';
+ 
+export const fonts: Record<Font, string> = {
+  dark: '#303030',
+  light: '#FBFBFB',
+  secondaryButton: '#7664F2',
+  greyedOut: '#8F8F8F',
+};
+ 
+export const statuses: Record<LabelStatus | 'error', string> = {
+  valid: '#00C249',
+  expired: '#FF9900',
+  revoked: '#EE5309',
+  verified: '#00C249',
+  unverified: '#FF9900',
+  error: '#D74500',
+};
+ 
+type Element = 'blue';
+ 
+export const elements: Record<Element, string> = {
+  blue: '#0B81FF',
+};
+ 
+type SelectionElement = 'primaryDark' | 'primaryBorderDark';
+ 
+export const selectionElements: Record<SelectionElement, string> = {
+  primaryDark: '#0B81FF',
+  primaryBorderDark: '#FBFBFB',
+};
+ 
+// TODO WAL-303 add support for randomized colors to avoid getting the same color multiple times
+type CredentialCard = 'default';
+ 
+export const credentialCards: Record<CredentialCard, string> = {
+  default: '#5BDED2',
+};
+ 
+type Logo = 'default';
+ 
+export const logos: Record<Logo, string> = {
+  default: '#FBFBFB',
+};
+ 
+type Input = 'placeholder' | 'disabled'; // TODO check other disabled colors and use correct one
+ 
+export const inputs: Record<Input, string> = {
+  placeholder: '#8D9099',
+  disabled: '#8D9099',
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/buttons/index.html b/coverage/lcov-report/styles/components/buttons/index.html new file mode 100644 index 00000000..84550000 --- /dev/null +++ b/coverage/lcov-report/styles/components/buttons/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/buttons + + + + + + + + + +
+
+

All files styles/components/buttons

+
+
+ 100% + Statements + 2/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 2/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%2/2100%0/0100%0/0100%2/2
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/buttons/index.ts.html b/coverage/lcov-report/styles/components/buttons/index.ts.html new file mode 100644 index 00000000..82a1545b --- /dev/null +++ b/coverage/lcov-report/styles/components/buttons/index.ts.html @@ -0,0 +1,117 @@ + + + + Code coverage report for styles/components/buttons/index.ts + + + + + + + + + +
+
+

All files / styles/components/buttons index.ts

+
+
+ 100% + Statements + 2/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 2/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14  +  +  +  +  +1x +  +  +  +1x +  +  +  + 
import {TouchableOpacity} from 'react-native';
+import styled from 'styled-components/native';
+ 
+import {SSIRoundedLinearGradient} from '../gradients';
+ 
+export const SSITouchableOpacityButtonFlexRowStyled = styled(TouchableOpacity)`
+  flex-direction: row;
+`;
+ 
+export const SSIRoundedCenteredLinearGradientStyled = styled(SSIRoundedLinearGradient)`
+  align-items: center;
+  justify-content: center;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIAlert/index.html b/coverage/lcov-report/styles/components/components/SSIAlert/index.html new file mode 100644 index 00000000..ed20eae0 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIAlert/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSIAlert + + + + + + + + + +
+
+

All files styles/components/components/SSIAlert

+
+
+ 100% + Statements + 5/5 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 5/5 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%5/5100%0/0100%0/0100%5/5
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIAlert/index.ts.html b/coverage/lcov-report/styles/components/components/SSIAlert/index.ts.html new file mode 100644 index 00000000..1992b56e --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIAlert/index.ts.html @@ -0,0 +1,198 @@ + + + + Code coverage report for styles/components/components/SSIAlert/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSIAlert index.ts

+
+
+ 100% + Statements + 5/5 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 5/5 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41  +  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  +  + 
import styled from 'styled-components/native';
+ 
+import {alerts} from '../../../colors';
+import {SSITouchableOpacityButtonFlexRowStyled} from '../../buttons';
+import {SSIFlexDirectionRowViewStyled, SSIRoundedContainerStyled} from '../../containers';
+import {SSITextH4DarkStyled} from '../../fonts';
+ 
+export const SSIAlertContainerStyled = styled(SSIRoundedContainerStyled)`
+  margin-bottom: 10px;
+`;
+ 
+export const SSIAlertMessageContainerStyled = styled.View`
+  justify-content: center;
+  align-items: center;
+  background-color: ${alerts.primaryLight};
+  padding-left: 28px;
+  padding-right: 28px;
+`;
+ 
+export const SSIAlertMessageTextStyled = styled(SSITextH4DarkStyled)`
+  text-align: center;
+  margin-top: 14px;
+  margin-bottom: 17px;
+  height: 31px;
+`;
+ 
+export const SSIAlertButtonContainerStyled = styled(SSIFlexDirectionRowViewStyled)`
+  height: 48px;
+  display: flex;
+  flex-wrap: wrap;
+  background-color: ${alerts.secondaryLight};
+`;
+ 
+export const SSIAlertButtonStyled = styled(SSITouchableOpacityButtonFlexRowStyled)`
+  background-color: ${alerts.secondaryLight};
+  flex: 1;
+  height: 100%;
+  justify-content: center;
+  align-items: center;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIButtonsContainer/index.html b/coverage/lcov-report/styles/components/components/SSIButtonsContainer/index.html new file mode 100644 index 00000000..addfeb79 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIButtonsContainer/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSIButtonsContainer + + + + + + + + + +
+
+

All files styles/components/components/SSIButtonsContainer

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIButtonsContainer/index.ts.html b/coverage/lcov-report/styles/components/components/SSIButtonsContainer/index.ts.html new file mode 100644 index 00000000..48268f3c --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIButtonsContainer/index.ts.html @@ -0,0 +1,93 @@ + + + + Code coverage report for styles/components/components/SSIButtonsContainer/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSIButtonsContainer index.ts

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6  +  +1x +  +  + 
import styled from 'styled-components/native';
+ 
+export const SSIButtonsContainerSpacerStyled = styled.View`
+  width: 5.45px;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSICheckbox/index.html b/coverage/lcov-report/styles/components/components/SSICheckbox/index.html new file mode 100644 index 00000000..c2ec8829 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSICheckbox/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSICheckbox + + + + + + + + + +
+
+

All files styles/components/components/SSICheckbox

+
+
+ 100% + Statements + 3/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
100%3/3100%0/0100%0/0100%3/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSICheckbox/index.tsx.html b/coverage/lcov-report/styles/components/components/SSICheckbox/index.tsx.html new file mode 100644 index 00000000..f4c952d2 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSICheckbox/index.tsx.html @@ -0,0 +1,156 @@ + + + + Code coverage report for styles/components/components/SSICheckbox/index.tsx + + + + + + + + + +
+
+

All files / styles/components/components/SSICheckbox index.tsx

+
+
+ 100% + Statements + 3/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27  +  +  +  +1x +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +1x +  +  +  + 
import styled from 'styled-components/native';
+ 
+import {SSITextH4LightStyled} from '../../fonts';
+ 
+export const SSICheckboxUnselectedContainerStyled = styled.View`
+  width: 18px;
+  aspect-ratio: 1;
+  border-radius: 4px;
+  border-width: 1px;
+  align-items: center;
+  justify-content: center;
+`;
+ 
+export const SSICheckboxSelectedContainerStyled = styled.View`
+  width: 18px;
+  aspect-ratio: 1;
+  border-radius: 4px;
+  align-items: center;
+  justify-content: center;
+`;
+ 
+// TODO this might be a solution for more text wrapping issues
+export const SSICheckboxLabelContainerStyled = styled(SSITextH4LightStyled)`
+  flex: 1;
+  flex-wrap: wrap;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIConnectionDetailsView/index.html b/coverage/lcov-report/styles/components/components/SSIConnectionDetailsView/index.html new file mode 100644 index 00000000..07812a02 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIConnectionDetailsView/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSIConnectionDetailsView + + + + + + + + + +
+
+

All files styles/components/components/SSIConnectionDetailsView

+
+
+ 100% + Statements + 6/6 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 6/6 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%6/6100%0/0100%0/0100%6/6
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIConnectionDetailsView/index.ts.html b/coverage/lcov-report/styles/components/components/SSIConnectionDetailsView/index.ts.html new file mode 100644 index 00000000..99427f98 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIConnectionDetailsView/index.ts.html @@ -0,0 +1,188 @@ + + + + Code coverage report for styles/components/components/SSIConnectionDetailsView/index.ts + + + + + + + + + +
+
+

+ All files / styles/components/components/SSIConnectionDetailsView index.ts +

+
+
+ 100% + Statements + 6/6 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 6/6 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +1x +  +  +  +  + 
import styled from 'styled-components/native';
+ 
+import {fonts} from '../../../colors';
+import {SSIFlexDirectionRowViewStyled, SSIRoundedContainerBackgroundSecondaryDarkStyled} from '../../containers';
+import {SSITextH5LightSemiBoldStyled} from '../../fonts';
+ 
+export const SSIConnectionDetailsViewCaptionDetailsStyled = styled(SSITextH5LightSemiBoldStyled)`
+  margin-bottom: 9px;
+`;
+ 
+export const SSIConnectionDetailsViewValueCaptionStyled = styled(SSITextH5LightSemiBoldStyled)`
+  color: ${fonts.light};
+  height: auto;
+`;
+ 
+export const SSIConnectionDetailsViewLabelRowViewStyled = styled(SSIFlexDirectionRowViewStyled)`
+  margin-bottom: 9px;
+`;
+ 
+export const SSIConnectionDetailsViewRoundedContainerStyled = styled(SSIRoundedContainerBackgroundSecondaryDarkStyled)`
+  max-height: 75%;
+  width: 86.67%;
+  margin-top: 10px;
+  padding: 16px 17px 0px 17px;
+`;
+ 
+export const SSIConnectionDetailsLabelsContainerStyled = styled.View`
+  padding-top: 16px;
+  height: 270px;
+`;
+ 
+export const SSIConnectionDetailsViewSeparatorStyled = styled.View`
+  border-bottom-width: 1px;
+  padding-bottom: 5px;
+  border-bottom-color: #404d7a;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIContactViewItem/index.html b/coverage/lcov-report/styles/components/components/SSIContactViewItem/index.html new file mode 100644 index 00000000..d1f175f4 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIContactViewItem/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSIContactViewItem + + + + + + + + + +
+
+

All files styles/components/components/SSIContactViewItem

+
+
+ 100% + Statements + 6/6 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 6/6 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%6/6100%0/0100%0/0100%6/6
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIContactViewItem/index.ts.html b/coverage/lcov-report/styles/components/components/SSIContactViewItem/index.ts.html new file mode 100644 index 00000000..901cea25 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIContactViewItem/index.ts.html @@ -0,0 +1,180 @@ + + + + Code coverage report for styles/components/components/SSIContactViewItem/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSIContactViewItem index.ts

+
+
+ 100% + Statements + 6/6 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 6/6 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  + 
import styled from 'styled-components/native';
+ 
+import {SSIPlaceholderLogo} from '@sphereon/ui-components.ssi-react-native';
+import {SSIFlexDirectionRowViewStyled} from '../../containers';
+import {SSITextH5LightStyled} from '../../fonts';
+ 
+export const SSIContactViewItemContainerStyled = styled(SSIFlexDirectionRowViewStyled)`
+  padding: 16px 24px 18px 7px;
+`;
+ 
+export const SSIContactViewItemNewStatusContainerStyled = styled.View`
+  height: 10px;
+  width: 17px;
+  margin: auto 0 auto 0;
+`;
+ 
+export const SSIContactViewItemLogoContainerStyled = styled.View`
+  width: 78px;
+  margin: 2.5px 4px 2.5px 0px;
+  align-items: center;
+  justify-content: center;
+`;
+ 
+export const SSIContactViewItemContactDetailsContainerStyled = styled.View`
+  margin-bottom: 6px;
+`;
+ 
+export const SSIContactViewItemContactUriCaptionStyled = styled(SSITextH5LightStyled)`
+  opacity: 0.8;
+`;
+ 
+export const SSIContactViewItemPlaceholderLogoStyled = styled(SSIPlaceholderLogo).attrs({
+  size: 26,
+})``;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSICredentialDetailsView/index.html b/coverage/lcov-report/styles/components/components/SSICredentialDetailsView/index.html new file mode 100644 index 00000000..ce6708b5 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSICredentialDetailsView/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSICredentialDetailsView + + + + + + + + + +
+
+

All files styles/components/components/SSICredentialDetailsView

+
+
+ 100% + Statements + 4/4 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 4/4 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%4/4100%0/0100%0/0100%4/4
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSICredentialDetailsView/index.ts.html b/coverage/lcov-report/styles/components/components/SSICredentialDetailsView/index.ts.html new file mode 100644 index 00000000..67212656 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSICredentialDetailsView/index.ts.html @@ -0,0 +1,155 @@ + + + + Code coverage report for styles/components/components/SSICredentialDetailsView/index.ts + + + + + + + + + +
+
+

+ All files / styles/components/components/SSICredentialDetailsView index.ts +

+
+
+ 100% + Statements + 4/4 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 4/4 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26  +  +  +  +  +1x +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +1x +  +  + 
import styled from 'styled-components/native';
+ 
+import {SSIBackgroundSecondaryDarkColorCss} from '../../css';
+import {SSITextH5LightStyled, SSITextH7SemiBoldLightStyled} from '../../fonts';
+ 
+export const SSICredentialDetailsViewContainerStyled = styled.View`
+  ${SSIBackgroundSecondaryDarkColorCss};
+  flex: 1;
+`;
+ 
+export const SSICredentialDetailsViewFooterContainerStyled = styled.View`
+  width: 100%;
+  margin-bottom: 8px;
+  margin-top: 18px;
+  padding-left: 24px;
+  padding-right: 24px;
+`;
+export const SSICredentialDetailsViewFooterLabelCaptionStyled = styled(SSITextH5LightStyled)`
+  margin-top: 2px;
+  margin-left: auto;
+`;
+ 
+export const SSICredentialDetailsViewFooterLabelValueStyled = styled(SSITextH7SemiBoldLightStyled)`
+  margin-left: auto;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSICredentialRequiredViewItem/index.html b/coverage/lcov-report/styles/components/components/SSICredentialRequiredViewItem/index.html new file mode 100644 index 00000000..74f0f950 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSICredentialRequiredViewItem/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSICredentialRequiredViewItem + + + + + + + + + +
+
+

All files styles/components/components/SSICredentialRequiredViewItem

+
+
+ 100% + Statements + 9/9 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 9/9 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%9/9100%0/0100%0/0100%9/9
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSICredentialRequiredViewItem/index.ts.html b/coverage/lcov-report/styles/components/components/SSICredentialRequiredViewItem/index.ts.html new file mode 100644 index 00000000..8347ec4a --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSICredentialRequiredViewItem/index.ts.html @@ -0,0 +1,216 @@ + + + + Code coverage report for styles/components/components/SSICredentialRequiredViewItem/index.ts + + + + + + + + + +
+
+

+ All files / + styles/components/components/SSICredentialRequiredViewItem index.ts +

+
+
+ 100% + Statements + 9/9 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 9/9 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +  +1x +  +  +  +1x +  +  +  +  +1x +  +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  + 
import styled from 'styled-components/native';
+ 
+import {fonts, statuses} from '../../../colors';
+import {SSIRippleContainerStyled} from '../../containers';
+import {SSITextH3LightStyled, SSITextH4LightStyled, SSITextH5LightStyled} from '../../fonts';
+ 
+export const SSICredentialRequiredViewItemContainerStyled = styled(SSIRippleContainerStyled)`
+  padding: 16px 22px 18px 24px;
+`;
+ 
+export const SSICredentialRequiredViewItemIconContainerStyled = styled.View`
+  justify-content: center;
+  margin-right: 12px;
+`;
+ 
+export const SSICredentialRequiredViewItemCredentialTitleCaptionStyled = styled(SSITextH3LightStyled)`
+  margin-bottom: 2px;
+`;
+ 
+export const SSICredentialRequiredViewItemCredentialPurposeCaptionStyled = styled(SSITextH4LightStyled)`
+  margin-bottom: 2px;
+  color: ${fonts.greyedOut};
+`;
+ 
+export const SSICredentialRequiredViewItemMatchInfoContainerStyled = styled.View`
+  width: 100px;
+  margin-left: auto;
+`;
+ 
+export const SSICredentialRequiredViewItemMatchInfoCaptionStyled = styled(SSITextH5LightStyled)`
+  margin: 2px 0 0 auto;
+`;
+ 
+export const SSICredentialRequiredViewItemSelectedCredentialsCaptionStyled = styled(SSITextH4LightStyled)`
+  opacity: 0.8;
+`;
+ 
+export const SSICredentialRequiredViewItemNoneAvailableCaptionStyled = styled(SSITextH4LightStyled)`
+  color: ${statuses.error};
+`;
+ 
+export const SSICredentialRequiredViewNoneAvailableContainerStyled = styled.View`
+  margin-left: 28px;
+  margin-top: 6px;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSICredentialSelectTypeViewItem/index.html b/coverage/lcov-report/styles/components/components/SSICredentialSelectTypeViewItem/index.html new file mode 100644 index 00000000..b5337b1a --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSICredentialSelectTypeViewItem/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSICredentialSelectTypeViewItem + + + + + + + + + +
+
+

All files styles/components/components/SSICredentialSelectTypeViewItem

+
+
+ 100% + Statements + 4/4 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 4/4 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%4/4100%0/0100%0/0100%4/4
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSICredentialSelectTypeViewItem/index.ts.html b/coverage/lcov-report/styles/components/components/SSICredentialSelectTypeViewItem/index.ts.html new file mode 100644 index 00000000..37d49f46 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSICredentialSelectTypeViewItem/index.ts.html @@ -0,0 +1,138 @@ + + + + Code coverage report for styles/components/components/SSICredentialSelectTypeViewItem/index.ts + + + + + + + + + +
+
+

+ All files / + styles/components/components/SSICredentialSelectTypeViewItem index.ts +

+
+
+ 100% + Statements + 4/4 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 4/4 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20  +  +1x +  +  +  +1x +  +  +  +  +  +1x +  +  +  +1x +  +  + 
import styled from 'styled-components/native';
+ 
+export const SSICredentialSelectTypeViewItemLogoContainerStyled = styled.View`
+  margin-right: 11px;
+`;
+ 
+export const SSICredentialSelectTypeViewItemLogoCheckboxContainerStyled = styled.View`
+  position: absolute;
+  bottom: -5px;
+  right: -5px;
+`;
+ 
+export const SSICredentialSelectTypeViewItemContentContainerStyled = styled.View`
+  flex: 1;
+`;
+ 
+export const SSICredentialSelectTypeViewItemContentTextContainerStyled = styled.View`
+  margin-top: 7px;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSICredentialSelectViewItem/index.html b/coverage/lcov-report/styles/components/components/SSICredentialSelectViewItem/index.html new file mode 100644 index 00000000..197477c5 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSICredentialSelectViewItem/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSICredentialSelectViewItem + + + + + + + + + +
+
+

All files styles/components/components/SSICredentialSelectViewItem

+
+
+ 100% + Statements + 6/6 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 6/6 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%6/6100%0/0100%0/0100%6/6
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSICredentialSelectViewItem/index.ts.html b/coverage/lcov-report/styles/components/components/SSICredentialSelectViewItem/index.ts.html new file mode 100644 index 00000000..c4cb9675 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSICredentialSelectViewItem/index.ts.html @@ -0,0 +1,170 @@ + + + + Code coverage report for styles/components/components/SSICredentialSelectViewItem/index.ts + + + + + + + + + +
+
+

+ All files / styles/components/components/SSICredentialSelectViewItem index.ts +

+
+
+ 100% + Statements + 6/6 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 6/6 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31  +  +1x +  +  +  +1x +  +  +  +  +1x +  +  +  +  +  +1x +  +  +  +  +  +1x +  +  +  +1x +  +  + 
import styled from 'styled-components/native';
+ 
+export const SSICredentialSelectViewItemLogoContainerStyled = styled.View`
+  width: 86px;
+`;
+ 
+export const SSICredentialSelectViewItemLogoOuterContainerStyled = styled.View`
+  flex: 1;
+  justify-content: center;
+`;
+ 
+export const SSICredentialSelectViewItemLogoCheckboxContainerStyled = styled.View`
+  height: 60px
+  width: 80px
+  justify-content: center
+`;
+ 
+export const SSICredentialSelectViewItemCheckboxContainerStyled = styled.View`
+  position: absolute;
+  bottom: 0px;
+  right: 0px;
+`;
+ 
+export const SSICredentialSelectViewItemContentContainerStyled = styled.View`
+  flex: 1;
+`;
+ 
+export const SSICredentialSelectViewItemContentTextContainerStyled = styled.View`
+  margin-top: 7px;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSICredentialViewItem/index.html b/coverage/lcov-report/styles/components/components/SSICredentialViewItem/index.html new file mode 100644 index 00000000..9c0416b0 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSICredentialViewItem/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSICredentialViewItem + + + + + + + + + +
+
+

All files styles/components/components/SSICredentialViewItem

+
+
+ 100% + Statements + 6/6 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 6/6 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%6/6100%0/0100%0/0100%6/6
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSICredentialViewItem/index.ts.html b/coverage/lcov-report/styles/components/components/SSICredentialViewItem/index.ts.html new file mode 100644 index 00000000..904e4a18 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSICredentialViewItem/index.ts.html @@ -0,0 +1,168 @@ + + + + Code coverage report for styles/components/components/SSICredentialViewItem/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSICredentialViewItem index.ts

+
+
+ 100% + Statements + 6/6 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 6/6 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31  +  +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  +  +  +1x +  +  + 
import styled from 'styled-components/native';
+ 
+import {SSIFlexDirectionRowViewStyled} from '../../containers';
+import {SSITextH3LightStyled, SSITextH5LightStyled} from '../../fonts';
+ 
+export const SSICredentialViewItemContainerStyled = styled.View`
+  padding: 16px 21px 18px 24px;
+`;
+ 
+export const SSICredentialViewItemContentTopContainerStyled = styled(SSIFlexDirectionRowViewStyled)`
+  margin-bottom: 2px;
+`;
+ 
+export const SSICredentialViewItemExpirationDateCaptionStyled = styled(SSITextH5LightStyled)`
+  margin-left: auto;
+`;
+ 
+export const SSICredentialViewItemContentMiddleContainerStyled = styled(SSIFlexDirectionRowViewStyled)`
+  margin-bottom: 13px;
+`;
+ 
+export const SSICredentialViewItemStatusContainerStyled = styled.View`
+  margin-top: 3px;
+  margin-left: auto;
+  padding-left: 9px;
+`;
+ 
+export const SSICredentialViewItemTitleCaptionStyled = styled(SSITextH3LightStyled)`
+  flex: 1;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIDropDownList/index.html b/coverage/lcov-report/styles/components/components/SSIDropDownList/index.html new file mode 100644 index 00000000..69d0417d --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIDropDownList/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSIDropDownList + + + + + + + + + +
+
+

All files styles/components/components/SSIDropDownList

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIDropDownList/index.ts.html b/coverage/lcov-report/styles/components/components/SSIDropDownList/index.ts.html new file mode 100644 index 00000000..41917920 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIDropDownList/index.ts.html @@ -0,0 +1,108 @@ + + + + Code coverage report for styles/components/components/SSIDropDownList/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSIDropDownList index.ts

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11  +  +  +  +1x +  +  +  +  +  + 
import styled from 'styled-components/native';
+ 
+import {backgrounds} from '../../../colors';
+ 
+export const SSIDropDownListContainerStyled = styled.View`
+  width: 250px;
+  background-color: ${backgrounds.primaryLight};
+  border-radius: 8px
+  overflow: hidden;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIDropDownListItem/index.html b/coverage/lcov-report/styles/components/components/SSIDropDownListItem/index.html new file mode 100644 index 00000000..dea17fdc --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIDropDownListItem/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSIDropDownListItem + + + + + + + + + +
+
+

All files styles/components/components/SSIDropDownListItem

+
+
+ 100% + Statements + 3/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%3/3100%0/0100%0/0100%3/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIDropDownListItem/index.ts.html b/coverage/lcov-report/styles/components/components/SSIDropDownListItem/index.ts.html new file mode 100644 index 00000000..55d964b8 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIDropDownListItem/index.ts.html @@ -0,0 +1,141 @@ + + + + Code coverage report for styles/components/components/SSIDropDownListItem/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSIDropDownListItem index.ts

+
+
+ 100% + Statements + 3/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22  +  +  +  +  +  +1x +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  + 
import styled from 'styled-components/native';
+ 
+import {backgrounds} from '../../../colors';
+import {SSIFlexDirectionRowViewStyled} from '../../containers';
+import {SSITextH2Styled} from '../../fonts';
+ 
+export const SSIDropDownListItemContainerStyled = styled(SSIFlexDirectionRowViewStyled)`
+  flex: 1;
+  background-color: ${backgrounds.primaryLight};
+`;
+ 
+export const SSIDropDownListItemCaptionContainerStyled = styled(SSITextH2Styled)`
+  margin: 13px 0px 11px 16px;
+`;
+ 
+export const SSIDropDownListItemIconContainerStyled = styled.View`
+  width: 42px;
+  margin: 4px 6px 2px auto;
+  align-items: center;
+  justify-content: center;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIHeaderBar/index.html b/coverage/lcov-report/styles/components/components/SSIHeaderBar/index.html new file mode 100644 index 00000000..02858dbf --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIHeaderBar/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSIHeaderBar + + + + + + + + + +
+
+

All files styles/components/components/SSIHeaderBar

+
+
+ 100% + Statements + 9/9 +
+ +
+ 50% + Branches + 1/2 +
+ +
+ 100% + Functions + 1/1 +
+ +
+ 100% + Lines + 9/9 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%9/950%1/2100%1/1100%9/9
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIHeaderBar/index.ts.html b/coverage/lcov-report/styles/components/components/SSIHeaderBar/index.ts.html new file mode 100644 index 00000000..6bff7c1e --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIHeaderBar/index.ts.html @@ -0,0 +1,252 @@ + + + + Code coverage report for styles/components/components/SSIHeaderBar/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSIHeaderBar index.ts

+
+
+ 100% + Statements + 9/9 +
+ +
+ 50% + Branches + 1/2 +
+ +
+ 100% + Functions + 1/1 +
+ +
+ 100% + Lines + 9/9 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59  +  +  +  +  +  +  +  +  +1x +  +  +112x +  +  +  +  +1x +  +  +  +1x +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +1x +  +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +  +  +  +  + 
import {TouchableOpacity} from 'react-native';
+import styled from 'styled-components/native';
+ 
+import SSIIconButton from '../../../../components/buttons/SSIIconButton';
+import {IHeaderProps} from '../../../../types';
+import {borders} from '../../../colors';
+import {SSIBackgroundPrimaryDarkColorCss} from '../../css';
+import {SSITextH4LightStyled} from '../../fonts';
+ 
+export const SSIHeaderBarContainerStyled = styled.View`
+  ${SSIBackgroundPrimaryDarkColorCss};
+  border-bottom-color: ${borders.dark};
+  border-bottom-width: ${(props: IHeaderProps) => (props.showBorder ? '1px' : '0px')};
+  padding-right: 24px;
+  padding-left: 24px;
+`;
+ 
+export const SSIHeaderBarHeaderSubCaptionStyled = styled(SSITextH4LightStyled)`
+  margin-bottom: 14px;
+`;
+ 
+export const SSIHeaderBarProfileIconContainerStyled = styled(TouchableOpacity)`
+  margin: 7px 0px 15px auto;
+`;
+ 
+// TODO move height to attributes of SSIIconButton
+export const SSIHeaderBarMoreIconStyled = styled(SSIIconButton)`
+  margintop: 2px;
+  margin-left: auto;
+  height: 36px;
+  justify-content: center;
+`;
+ 
+export const SSIHeaderBarBackIconContainerStyled = styled.View`
+  width: 50px;
+`;
+ 
+// TODO move width to attributes of SSIIconButton
+export const SSIHeaderBarBackIconStyled = styled(SSIIconButton)`
+  margin-top: 18px;
+  width: 20px;
+`;
+ 
+export const SSIHeaderBarMoreMenuContainerStyled = styled.View`
+  position: absolute;
+  width: 250px;
+  right: -14px;
+  top: 92px;
+`;
+ 
+// we need this zIndex as the logout button is displayed over the more button and without it, when you press the logout button on the exact place where the more button is, the more button would also be triggered
+export const SSIHeaderBarProfileMenuContainerStyled = styled.View`
+  position: absolute;
+  width: 250px;
+  right: -14px;
+  top: 46px;
+  z-index: 1000;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIIdentitiesView/index.html b/coverage/lcov-report/styles/components/components/SSIIdentitiesView/index.html new file mode 100644 index 00000000..60526aa2 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIIdentitiesView/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSIIdentitiesView + + + + + + + + + +
+
+

All files styles/components/components/SSIIdentitiesView

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIIdentitiesView/index.ts.html b/coverage/lcov-report/styles/components/components/SSIIdentitiesView/index.ts.html new file mode 100644 index 00000000..012ea7ad --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIIdentitiesView/index.ts.html @@ -0,0 +1,99 @@ + + + + Code coverage report for styles/components/components/SSIIdentitiesView/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSIIdentitiesView index.ts

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8  +  +  +  +1x +  +  + 
import styled from 'styled-components/native';
+ 
+import {SSIBackgroundSecondaryDarkColorCss} from '../../css';
+ 
+export const SSIIdentitiesViewContainerStyled = styled.View`
+  ${SSIBackgroundSecondaryDarkColorCss};
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIIdentityViewItem/index.html b/coverage/lcov-report/styles/components/components/SSIIdentityViewItem/index.html new file mode 100644 index 00000000..b055b63e --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIIdentityViewItem/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSIIdentityViewItem + + + + + + + + + +
+
+

All files styles/components/components/SSIIdentityViewItem

+
+
+ 100% + Statements + 2/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 2/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
100%2/2100%0/0100%0/0100%2/2
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIIdentityViewItem/index.tsx.html b/coverage/lcov-report/styles/components/components/SSIIdentityViewItem/index.tsx.html new file mode 100644 index 00000000..bcef2f64 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIIdentityViewItem/index.tsx.html @@ -0,0 +1,105 @@ + + + + Code coverage report for styles/components/components/SSIIdentityViewItem/index.tsx + + + + + + + + + +
+
+

All files / styles/components/components/SSIIdentityViewItem index.tsx

+
+
+ 100% + Statements + 2/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 2/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10  +  +1x +  +  +  +1x +  +  + 
import styled from 'styled-components/native';
+ 
+export const SSIIdentityViewItemContainerStyled = styled.View`
+  padding: 16px 24px 18px 24px;
+`;
+ 
+export const SSIIdentityViewItemContactDetailsContainerStyled = styled.View`
+  margin-bottom: 6px;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIImageField/index.html b/coverage/lcov-report/styles/components/components/SSIImageField/index.html new file mode 100644 index 00000000..7a71d13b --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIImageField/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSIImageField + + + + + + + + + +
+
+

All files styles/components/components/SSIImageField

+
+
+ 100% + Statements + 3/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%3/3100%0/0100%0/0100%3/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIImageField/index.ts.html b/coverage/lcov-report/styles/components/components/SSIImageField/index.ts.html new file mode 100644 index 00000000..e570bb7b --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIImageField/index.ts.html @@ -0,0 +1,138 @@ + + + + Code coverage report for styles/components/components/SSIImageField/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSIImageField index.ts

+
+
+ 100% + Statements + 3/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21  +  +  +  +  +1x +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  + 
import styled from 'styled-components/native';
+ 
+import {backgrounds} from '../../../colors';
+import {SSIFlexDirectionRowViewStyled} from '../../containers';
+ 
+export const SSIImageFieldContainerStyled = styled.View`
+  flex: 0;
+  padding: 2px 24px 4px 0px;
+`;
+ 
+export const SSIImageFieldHeaderContainerStyled = styled(SSIFlexDirectionRowViewStyled)`
+  padding-left: 24px;
+`;
+ 
+export const SSIImageFieldContentContainerStyled = styled.View`
+  margin-left: 24px;
+  padding: 10px;
+  background-color: ${backgrounds.primaryDark};
+  border-radius: 10px;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSINavigationBar/index.html b/coverage/lcov-report/styles/components/components/SSINavigationBar/index.html new file mode 100644 index 00000000..6f9cef4c --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSINavigationBar/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSINavigationBar + + + + + + + + + +
+
+

All files styles/components/components/SSINavigationBar

+
+
+ 100% + Statements + 3/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%3/3100%0/0100%0/0100%3/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSINavigationBar/index.ts.html b/coverage/lcov-report/styles/components/components/SSINavigationBar/index.ts.html new file mode 100644 index 00000000..de9bc3de --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSINavigationBar/index.ts.html @@ -0,0 +1,147 @@ + + + + Code coverage report for styles/components/components/SSINavigationBar/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSINavigationBar index.ts

+
+
+ 100% + Statements + 3/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24  +  +  +  +  +  +  +1x +  +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  + 
import {TouchableOpacity, View} from 'react-native';
+import styled from 'styled-components/native';
+ 
+import {backgrounds, borders} from '../../../colors';
+import {SSIFlexDirectionRowViewStyled} from '../../containers';
+import {SSIBackgroundPrimaryDarkColorCss} from '../../css';
+ 
+export const SSINavigationBarButtonStyled = styled(TouchableOpacity)`
+  flex: 1;
+  align-items: center;
+`;
+ 
+export const SSINavigationBarContainerStyled = styled(SSIFlexDirectionRowViewStyled)`
+  align-items: center;
+  height: 53px;
+  ${SSIBackgroundPrimaryDarkColorCss};
+  border-top-color: ${borders.dark};
+  border-top-width: 1px;
+`;
+ 
+export const SSINavigationBarSafeAreaContainerStyled = styled.View`
+  background-color: ${backgrounds.primaryDark};
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIPinCode/index.html b/coverage/lcov-report/styles/components/components/SSIPinCode/index.html new file mode 100644 index 00000000..86a73977 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIPinCode/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSIPinCode + + + + + + + + + +
+
+

All files styles/components/components/SSIPinCode

+
+
+ 100% + Statements + 4/4 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 4/4 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%4/4100%0/0100%0/0100%4/4
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIPinCode/index.ts.html b/coverage/lcov-report/styles/components/components/SSIPinCode/index.ts.html new file mode 100644 index 00000000..61debcb1 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIPinCode/index.ts.html @@ -0,0 +1,165 @@ + + + + Code coverage report for styles/components/components/SSIPinCode/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSIPinCode index.ts

+
+
+ 100% + Statements + 4/4 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 4/4 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30  +  +  +  +  +  +1x +  +  +  +  +1x +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  + 
import {Animated} from 'react-native';
+import styled from 'styled-components/native';
+ 
+import {fonts, statuses} from '../../../colors';
+import {SSITextH4LightStyled} from '../../fonts';
+ 
+export const SSIPinCodeContainerStyled = styled(Animated.View)`
+  width: 100%;
+  align-items: center;
+`;
+ 
+export const SSIPinCodeContainerAnimatedStyled = styled(Animated.View)`
+  height: 52px;
+  flex-direction: row;
+  margin-bottom: 17px;
+`;
+ 
+export const SSIPinCodeErrorMessageTextStyled = styled(SSITextH4LightStyled)`
+  text-align: center;
+  font-size: 11px;
+  color: ${statuses.error};
+  margin-bottom: 5px;
+`;
+ 
+export const SSIPinCodeAttemptsLeftTextStyled = styled(SSITextH4LightStyled)`
+  text-align: center;
+  font-size: 11px;
+  color: ${fonts.light};
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIPinCodeSegment/index.html b/coverage/lcov-report/styles/components/components/SSIPinCodeSegment/index.html new file mode 100644 index 00000000..30cc1d3a --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIPinCodeSegment/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSIPinCodeSegment + + + + + + + + + +
+
+

All files styles/components/components/SSIPinCodeSegment

+
+
+ 100% + Statements + 4/4 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 4/4 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%4/4100%0/0100%0/0100%4/4
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIPinCodeSegment/index.ts.html b/coverage/lcov-report/styles/components/components/SSIPinCodeSegment/index.ts.html new file mode 100644 index 00000000..698f9ed5 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIPinCodeSegment/index.ts.html @@ -0,0 +1,156 @@ + + + + Code coverage report for styles/components/components/SSIPinCodeSegment/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSIPinCodeSegment index.ts

+
+
+ 100% + Statements + 4/4 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 4/4 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27  +  +  +  +  +  +1x +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +1x +  +  +  + 
import {Animated} from 'react-native';
+import styled from 'styled-components/native';
+ 
+import {SSITextH0LightStyled} from '../../fonts';
+import {SSILinearGradientStyled} from '../../gradients';
+ 
+export const SSIPinCodeSegmentUnderlineAnimatedStyled = styled(Animated.View)`
+  width: 44px;
+  height: 2px;
+`;
+ 
+export const SSIPinCodeSegmentTextContainerStyled = styled.View`
+  width: 44px;
+  height: 48px;
+  margin-top: auto;
+  margin-bottom: 2px;
+`;
+ 
+export const SSIPinCodeSegmentTextStyled = styled(SSITextH0LightStyled)`
+  text-align: center;
+`;
+ 
+export const SSIPinCodeSegmentUnderlineLinearGradientStyled = styled(SSILinearGradientStyled)`
+  width: 44px;
+  height: 2px;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIPopup/index.html b/coverage/lcov-report/styles/components/components/SSIPopup/index.html new file mode 100644 index 00000000..28ab1d41 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIPopup/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSIPopup + + + + + + + + + +
+
+

All files styles/components/components/SSIPopup

+
+
+ 100% + Statements + 14/14 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 14/14 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%14/14100%0/0100%0/0100%14/14
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIPopup/index.ts.html b/coverage/lcov-report/styles/components/components/SSIPopup/index.ts.html new file mode 100644 index 00000000..f1716c35 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIPopup/index.ts.html @@ -0,0 +1,306 @@ + + + + Code coverage report for styles/components/components/SSIPopup/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSIPopup index.ts

+
+
+ 100% + Statements + 14/14 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 14/14 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77  +  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +  +1x +  +  +  +  +  +1x +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  +1x +  +  +  +1x +  +  +  +  +1x +  +  +  +  +  +1x +  +  +  +  +1x +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +1x +  +  + 
import styled from 'styled-components/native';
+ 
+import {SSICheckmarkBadge, SSIExclamationMarkBadge} from '@sphereon/ui-components.ssi-react-native';
+import {elements, fonts} from '../../../colors';
+import {SSIFlexDirectionRowViewStyled, SSIRoundedContainerBackgroundPrimaryLightStyled} from '../../containers';
+import {SSITextH4SemiBoldStyled, SSITextH5Styled} from '../../fonts';
+ 
+export const SSIPopupContainerStyled = styled(SSIRoundedContainerBackgroundPrimaryLightStyled)`
+  width: 100%;
+`;
+ 
+export const SSIPopupHeaderContainerStyled = styled.View`
+  height: 18px;
+  padding-right: 12.5px;
+`;
+ 
+export const SSIPopupImageContainerStyled = styled.View`
+  padding-top: 21px;
+  padding-bottom: 21px;
+  align-items: center;
+`;
+ 
+export const SSIPopupContentContainerStyled = styled.View`
+  padding-left: 18px;
+  padding-right: 18px;
+`;
+ 
+export const SSIPopupTitleContainerStyled = styled(SSIFlexDirectionRowViewStyled)`
+  margin-bottom: 12px;
+`;
+ 
+export const SSIPopupTitleBadgeContainerStyled = styled(SSIFlexDirectionRowViewStyled)`
+  width: 22px;
+  margin-top: auto;
+  margin-bottom: auto;
+`;
+ 
+export const SSIPopupDetailsButtonContainerStyled = styled.View`
+  margin-bottom: 16px;
+`;
+ 
+export const SSIPopupDetailsTextStyled = styled(SSITextH5Styled)`
+  margin-bottom: 16px;
+  flex-wrap: wrap;
+`;
+ 
+export const SSIPopupExtraDetailsTextStyled = styled(SSITextH5Styled)`
+  margin-bottom: 16px;
+  flex-wrap: wrap;
+  color: ${fonts.greyedOut};
+`;
+ 
+export const SSIPopupDetailsButtonTextStyled = styled(SSITextH4SemiBoldStyled)`
+  flex-wrap: wrap;
+  color: ${elements.blue};
+`;
+ 
+export const SSIPopupCloseButtonContainerStyled = styled.View`
+  margin-left: auto;
+  margin-top: auto;
+`;
+ 
+export const SSIPopupButtonsContainerStyled = styled(SSIFlexDirectionRowViewStyled)`
+  justify-content: space-between;
+  margin-bottom: 16px;
+  padding-left: 18px;
+  padding-right: 18px;
+`;
+ 
+export const SSICheckmarkBadgeStyled = styled(SSICheckmarkBadge).attrs({
+  size: 12,
+})``;
+ 
+export const SSIExclamationMarkBadgeStyled = styled(SSIExclamationMarkBadge).attrs({
+  size: 12,
+})``;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIPopupModal/index.html b/coverage/lcov-report/styles/components/components/SSIPopupModal/index.html new file mode 100644 index 00000000..b1ff1a8b --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIPopupModal/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSIPopupModal + + + + + + + + + +
+
+

All files styles/components/components/SSIPopupModal

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIPopupModal/index.ts.html b/coverage/lcov-report/styles/components/components/SSIPopupModal/index.ts.html new file mode 100644 index 00000000..01fe6dc5 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIPopupModal/index.ts.html @@ -0,0 +1,93 @@ + + + + Code coverage report for styles/components/components/SSIPopupModal/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSIPopupModal index.ts

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6  +  +1x +  +  + 
import styled from 'styled-components/native';
+ 
+export const SSIPopupModalDetailsModalContainerStyled = styled.View`
+  margin-bottom: 6px;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIProfileIcon/index.html b/coverage/lcov-report/styles/components/components/SSIProfileIcon/index.html new file mode 100644 index 00000000..2acda2d2 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIProfileIcon/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSIProfileIcon + + + + + + + + + +
+
+

All files styles/components/components/SSIProfileIcon

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIProfileIcon/index.ts.html b/coverage/lcov-report/styles/components/components/SSIProfileIcon/index.ts.html new file mode 100644 index 00000000..95eaff8f --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIProfileIcon/index.ts.html @@ -0,0 +1,111 @@ + + + + Code coverage report for styles/components/components/SSIProfileIcon/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSIProfileIcon index.ts

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12  +  +  +1x +  +  +  +  +  +  +  + 
import styled from 'styled-components/native';
+ 
+// TODO do we need white-space: nowrap? text should not even get close to leaving the container
+export const SSIProfileIconContainerStyled = styled.View`
+  white-space: nowrap;
+  width: 34px;
+  align-items: center;
+  justify-content: center;
+  aspect-ratio: 1;
+  border-radius: 17px;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIProgressIndicator/index.html b/coverage/lcov-report/styles/components/components/SSIProgressIndicator/index.html new file mode 100644 index 00000000..26d438d6 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIProgressIndicator/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSIProgressIndicator + + + + + + + + + +
+
+

All files styles/components/components/SSIProgressIndicator

+
+
+ 100% + Statements + 2/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 2/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%2/2100%0/0100%0/0100%2/2
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIProgressIndicator/index.ts.html b/coverage/lcov-report/styles/components/components/SSIProgressIndicator/index.ts.html new file mode 100644 index 00000000..6c63f50d --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIProgressIndicator/index.ts.html @@ -0,0 +1,129 @@ + + + + Code coverage report for styles/components/components/SSIProgressIndicator/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSIProgressIndicator index.ts

+
+
+ 100% + Statements + 2/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 2/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  + 
import styled from 'styled-components/native';
+ 
+import {backgrounds} from '../../../colors';
+import {SSILinearGradientSecondaryStyled} from '../../gradients';
+ 
+export const SSIProgressIndicatorSegment = styled.View`
+  border-radius: 3px;
+  height: 4px;
+  width: 34px;
+  background-color: ${backgrounds.primaryLight};
+`;
+ 
+export const SSIProgressIndicatorLinearGradientSegment = styled(SSILinearGradientSecondaryStyled)`
+  border-radius: 3px;
+  height: 4px;
+  width: 34px;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIQRCustomMarker/index.html b/coverage/lcov-report/styles/components/components/SSIQRCustomMarker/index.html new file mode 100644 index 00000000..e2b333d6 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIQRCustomMarker/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSIQRCustomMarker + + + + + + + + + +
+
+

All files styles/components/components/SSIQRCustomMarker

+
+
+ 100% + Statements + 6/6 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 6/6 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%6/6100%0/0100%0/0100%6/6
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIQRCustomMarker/index.ts.html b/coverage/lcov-report/styles/components/components/SSIQRCustomMarker/index.ts.html new file mode 100644 index 00000000..8bfcc4e2 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIQRCustomMarker/index.ts.html @@ -0,0 +1,183 @@ + + + + Code coverage report for styles/components/components/SSIQRCustomMarker/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSIQRCustomMarker index.ts

+
+
+ 100% + Statements + 6/6 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 6/6 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36  +  +  +1x +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  + 
import {Dimensions} from 'react-native';
+import styled from 'styled-components/native';
+ 
+const dimensions = Dimensions.get('window');
+ 
+export const SSIQRCustomMarkerSideSpaceStyled = styled.View`
+  flex: 1;
+  background-color: rgba(0, 0, 0, 0.44);
+`;
+ 
+// TODO move color to color file
+// TODO https://sphereon.atlassian.net/browse/WAL-542 (for making qr code marker rounded)
+export const SSIQRCustomMarkerStyled = styled.View`
+  width: ${dimensions.width * 0.8}px;
+  height: ${dimensions.width * 0.8}px;
+  border-color: #2a3046;
+  border-width: 2px;
+`;
+ 
+export const SSIQRCustomMarkerBottomContainerStyled = styled.View`
+  flex-grow: 3;
+  background-color: rgba(0, 0, 0, 0.44);
+`;
+ 
+export const SSIQRCustomMarkerTopContainerStyled = styled.View`
+  flex-grow: 2;
+  background-color: rgba(0, 0, 0, 0.44);
+  justify-content: flex-end;
+  padding-bottom: 32px;
+`;
+ 
+export const SSIQRCustomMarkerContentContainer = styled.View`
+  flex-grow: 2;
+  max-width: 80%;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSISecondaryButton/index.html b/coverage/lcov-report/styles/components/components/SSISecondaryButton/index.html new file mode 100644 index 00000000..8cf96ae8 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSISecondaryButton/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSISecondaryButton + + + + + + + + + +
+
+

All files styles/components/components/SSISecondaryButton

+
+
+ 100% + Statements + 2/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 2/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%2/2100%0/0100%0/0100%2/2
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSISecondaryButton/index.ts.html b/coverage/lcov-report/styles/components/components/SSISecondaryButton/index.ts.html new file mode 100644 index 00000000..70352625 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSISecondaryButton/index.ts.html @@ -0,0 +1,129 @@ + + + + Code coverage report for styles/components/components/SSISecondaryButton/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSISecondaryButton index.ts

+
+
+ 100% + Statements + 2/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 2/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18  +  +  +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  + 
import styled from 'styled-components/native';
+ 
+import {backgrounds} from '../../../colors';
+import {SSIRoundedCenteredLinearGradientStyled} from '../../buttons';
+import {SSIRoundedContainerStyled} from '../../containers';
+ 
+export const SSISecondaryButtonContainerStyled = styled(SSIRoundedContainerStyled)`
+  width: 100%;
+  height: 100%;
+  align-items: center;
+  justify-content: center;
+  background-color: ${backgrounds.primaryDark};
+`;
+ 
+export const SSIRoundedCenteredLinearGradientSecondaryButtonStyled = styled(SSIRoundedCenteredLinearGradientStyled)`
+  padding: 1.2px;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIStatusBar/index.html b/coverage/lcov-report/styles/components/components/SSIStatusBar/index.html new file mode 100644 index 00000000..ce704ec9 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIStatusBar/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSIStatusBar + + + + + + + + + +
+
+

All files styles/components/components/SSIStatusBar

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIStatusBar/index.ts.html b/coverage/lcov-report/styles/components/components/SSIStatusBar/index.ts.html new file mode 100644 index 00000000..d945147b --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIStatusBar/index.ts.html @@ -0,0 +1,102 @@ + + + + Code coverage report for styles/components/components/SSIStatusBar/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSIStatusBar index.ts

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9  +  +  +  +  +1x +  +  + 
import {StatusBar} from 'react-native';
+import styled from 'styled-components/native';
+ 
+import {backgrounds} from '../../../colors';
+ 
+export const SSIStatusBarDarkModeStyled = styled(StatusBar).attrs({
+  backgroundColor: backgrounds.primaryDark,
+})``;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSISwipeDeleteButton/index.html b/coverage/lcov-report/styles/components/components/SSISwipeDeleteButton/index.html new file mode 100644 index 00000000..00f2ff02 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSISwipeDeleteButton/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSISwipeDeleteButton + + + + + + + + + +
+
+

All files styles/components/components/SSISwipeDeleteButton

+
+
+ 100% + Statements + 2/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 2/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%2/2100%0/0100%0/0100%2/2
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSISwipeDeleteButton/index.ts.html b/coverage/lcov-report/styles/components/components/SSISwipeDeleteButton/index.ts.html new file mode 100644 index 00000000..a6df472f --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSISwipeDeleteButton/index.ts.html @@ -0,0 +1,123 @@ + + + + Code coverage report for styles/components/components/SSISwipeDeleteButton/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSISwipeDeleteButton index.ts

+
+
+ 100% + Statements + 2/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 2/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16  +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  + 
import styled from 'styled-components/native';
+ 
+import {SSITextH4LightStyled} from '../../fonts';
+import {SSILinearGradientStyled} from '../../gradients';
+ 
+export const SSISwipeDeleteButtonCaptionStyled = styled(SSITextH4LightStyled)`
+  margin-top: 14px;
+`;
+ 
+export const SSISwipeDeleteButtonLinearGradientStyled = styled(SSILinearGradientStyled)`
+  width: 97px;
+  flex: 1;
+  justify-content: center;
+  align-items: center;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSISwipeRowViewItem/index.html b/coverage/lcov-report/styles/components/components/SSISwipeRowViewItem/index.html new file mode 100644 index 00000000..371ddacc --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSISwipeRowViewItem/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSISwipeRowViewItem + + + + + + + + + +
+
+

All files styles/components/components/SSISwipeRowViewItem

+
+
+ 100% + Statements + 2/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 2/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%2/2100%0/0100%0/0100%2/2
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSISwipeRowViewItem/index.ts.html b/coverage/lcov-report/styles/components/components/SSISwipeRowViewItem/index.ts.html new file mode 100644 index 00000000..0601c89e --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSISwipeRowViewItem/index.ts.html @@ -0,0 +1,117 @@ + + + + Code coverage report for styles/components/components/SSISwipeRowViewItem/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSISwipeRowViewItem index.ts

+
+
+ 100% + Statements + 2/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 2/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14  +  +  +  +1x +  +  +  +  +1x +  +  +  + 
// TODO fix style issue being an array when using styled component
+import {SwipeRow} from 'react-native-swipe-list-view';
+import styled from 'styled-components/native';
+ 
+export const SSISwipeRowViewItemContainerStyled = styled(SwipeRow).attrs({
+  rightOpenValue: -97,
+  stopRightSwipe: -97,
+})``;
+ 
+export const SSISwipeRowViewItemHiddenItemContainerStyled = styled.View`
+  align-items: flex-end;
+  height: 100%;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSITabView/index.html b/coverage/lcov-report/styles/components/components/SSITabView/index.html new file mode 100644 index 00000000..fced433f --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSITabView/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSITabView + + + + + + + + + +
+
+

All files styles/components/components/SSITabView

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSITabView/index.ts.html b/coverage/lcov-report/styles/components/components/SSITabView/index.ts.html new file mode 100644 index 00000000..d3b37721 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSITabView/index.ts.html @@ -0,0 +1,105 @@ + + + + Code coverage report for styles/components/components/SSITabView/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSITabView index.ts

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10  +  +  +  +1x +  +  +  +  + 
import styled from 'styled-components/native';
+ 
+import {backgrounds} from '../../../colors';
+ 
+export const SSITabViewContainerStyled = styled.View`
+  flex: 1;
+  width: 100%;
+  backgroundcolor: ${backgrounds.primaryDark};
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSITabViewHeader/index.html b/coverage/lcov-report/styles/components/components/SSITabViewHeader/index.html new file mode 100644 index 00000000..3158b11f --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSITabViewHeader/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSITabViewHeader + + + + + + + + + +
+
+

All files styles/components/components/SSITabViewHeader

+
+
+ 100% + Statements + 4/4 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 4/4 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%4/4100%0/0100%0/0100%4/4
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSITabViewHeader/index.ts.html b/coverage/lcov-report/styles/components/components/SSITabViewHeader/index.ts.html new file mode 100644 index 00000000..daf2a5f1 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSITabViewHeader/index.ts.html @@ -0,0 +1,153 @@ + + + + Code coverage report for styles/components/components/SSITabViewHeader/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSITabViewHeader index.ts

+
+
+ 100% + Statements + 4/4 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 4/4 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26  +  +  +  +  +  +  +1x +  +  +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  + 
import {TouchableOpacity} from 'react-native';
+import styled from 'styled-components/native';
+ 
+import {borders} from '../../../colors';
+import {SSITextH3AnimatedLightStyled} from '../../fonts';
+import {SSILinearGradientStyled} from '../../gradients';
+ 
+export const SSITabViewHeaderContainerStyled = styled.View`
+  flex-direction: row;
+  border-bottom-color: ${borders.dark};
+  border-bottom-width: 1px;
+`;
+ 
+export const SSITabViewHeaderTabHeaderStyled = styled(TouchableOpacity)`
+  flex: 1;
+`;
+ 
+export const SSITabViewHeaderTabHeaderCaptionStyled = styled(SSITextH3AnimatedLightStyled)`
+  margin-bottom: 2px;
+`;
+ 
+export const SSITabViewHeaderTabIndicatorStyled = styled(SSILinearGradientStyled)`
+  width: 92px;
+  height: 2px;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSITermsOfServiceView/index.html b/coverage/lcov-report/styles/components/components/SSITermsOfServiceView/index.html new file mode 100644 index 00000000..b30e9500 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSITermsOfServiceView/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSITermsOfServiceView + + + + + + + + + +
+
+

All files styles/components/components/SSITermsOfServiceView

+
+
+ 100% + Statements + 4/4 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 4/4 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%4/4100%0/0100%0/0100%4/4
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSITermsOfServiceView/index.ts.html b/coverage/lcov-report/styles/components/components/SSITermsOfServiceView/index.ts.html new file mode 100644 index 00000000..1381136f --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSITermsOfServiceView/index.ts.html @@ -0,0 +1,138 @@ + + + + Code coverage report for styles/components/components/SSITermsOfServiceView/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSITermsOfServiceView index.ts

+
+
+ 100% + Statements + 4/4 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 4/4 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21  +  +  +  +  +  +  +1x +  +1x +  +  +  +1x +  +  +  +1x +  +  + 
import {ScrollView} from 'react-native-gesture-handler';
+import styled from 'styled-components/native';
+ 
+import {backgrounds} from '../../../colors';
+import {SSIBasicContainerStyled} from '../../containers';
+import {SSITextH5LightStyled} from '../../fonts';
+ 
+export const TERMS_CONTENT_BOTTOM_MARGIN = 18;
+ 
+export const SSITermsOfServiceViewContainerStyled = styled(SSIBasicContainerStyled)`
+  background-color: ${backgrounds.primaryDark};
+`;
+ 
+export const SSITermsOfServiceViewScrollViewStyled = styled(ScrollView)`
+  margin: 16px 24px 0px 24px;
+`;
+ 
+export const SSITermsOfServiceViewContentTextStyled = styled(SSITextH5LightStyled)`
+  margin-bottom: ${TERMS_CONTENT_BOTTOM_MARGIN}px;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSITextField/index.html b/coverage/lcov-report/styles/components/components/SSITextField/index.html new file mode 100644 index 00000000..1f5f4552 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSITextField/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSITextField + + + + + + + + + +
+
+

All files styles/components/components/SSITextField

+
+
+ 100% + Statements + 6/6 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 6/6 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%6/6100%0/0100%0/0100%6/6
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSITextField/index.ts.html b/coverage/lcov-report/styles/components/components/SSITextField/index.ts.html new file mode 100644 index 00000000..e77cf6cc --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSITextField/index.ts.html @@ -0,0 +1,165 @@ + + + + Code coverage report for styles/components/components/SSITextField/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSITextField index.ts

+
+
+ 100% + Statements + 6/6 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 6/6 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30  +  +  +  +  +1x +  +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  + 
import styled from 'styled-components/native';
+ 
+import {SSIFlexDirectionRowViewStyled} from '../../containers';
+import {SSITextH7SemiBoldLightStyled} from '../../fonts';
+ 
+export const SSITextFieldContainerStyled = styled.View`
+  width: 100%;
+  padding: 2px 24px 4px 0px;
+`;
+ 
+export const SSITextFieldHeaderContainerStyled = styled(SSIFlexDirectionRowViewStyled)`
+  padding-left: 24px;
+`;
+ 
+export const SSITextFieldStatusLabelContainerStyled = styled.View`
+  width: 24px;
+`;
+ 
+export const SSITextFieldEditBadgeContainerStyled = styled.View`
+  margin: 3px auto auto auto;
+`;
+ 
+export const SSITextFieldContentBadgeContainerStyled = styled.View`
+  width: 24px;
+`;
+ 
+export const SSITextFieldContentTextStyled = styled(SSITextH7SemiBoldLightStyled)`
+  margin-right: 24px;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSITextInputField/index.html b/coverage/lcov-report/styles/components/components/SSITextInputField/index.html new file mode 100644 index 00000000..ed3aec90 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSITextInputField/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSITextInputField + + + + + + + + + +
+
+

All files styles/components/components/SSITextInputField

+
+
+ 100% + Statements + 6/6 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 6/6 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%6/6100%0/0100%0/0100%6/6
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSITextInputField/index.ts.html b/coverage/lcov-report/styles/components/components/SSITextInputField/index.ts.html new file mode 100644 index 00000000..9d4f0663 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSITextInputField/index.ts.html @@ -0,0 +1,177 @@ + + + + Code coverage report for styles/components/components/SSITextInputField/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSITextInputField index.ts

+
+
+ 100% + Statements + 6/6 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 6/6 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34  +  +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  +  +  +1x +  +  +  +  +1x +  +  +  +  +  +1x +  +  + 
import styled from 'styled-components/native';
+ 
+import {SSILinearGradientStyled} from '../../gradients';
+import {TextInputStyled} from '../../text';
+ 
+export const SSITextInputFieldContainerStyled = styled.View`
+  width: 100%;
+`;
+ 
+export const SSITextInputFieldTextInputStyled = styled(TextInputStyled)`
+  flex: 1;
+`;
+ 
+export const SSITextInputFieldIconContainerStyled = styled.View`
+  margin-left: auto;
+  padding-left: 10px;
+  justify-content: center;
+`;
+ 
+export const SSITextInputFieldUnderlineStyled = styled.View`
+  width: 100%;
+  margin-bottom: 4px;
+`;
+ 
+export const SSITextInputFieldUnderlineLinearGradientStyled = styled(SSILinearGradientStyled)`
+  height: 1px;
+  width: 100%;
+  margin-bottom: 4px;
+`;
+ 
+export const SSITextInputFieldHelperContainerStyled = styled.View`
+  min-height: 15px;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIToast/index.html b/coverage/lcov-report/styles/components/components/SSIToast/index.html new file mode 100644 index 00000000..0200ec9a --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIToast/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSIToast + + + + + + + + + +
+
+

All files styles/components/components/SSIToast

+
+
+ 100% + Statements + 4/4 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 4/4 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%4/4100%0/0100%0/0100%4/4
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIToast/index.ts.html b/coverage/lcov-report/styles/components/components/SSIToast/index.ts.html new file mode 100644 index 00000000..cbc3446e --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIToast/index.ts.html @@ -0,0 +1,159 @@ + + + + Code coverage report for styles/components/components/SSIToast/index.ts + + + + + + + + + +
+
+

All files / styles/components/components/SSIToast index.ts

+
+
+ 100% + Statements + 4/4 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 4/4 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28  +  +  +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +  +  +1x +  +  +  +  +1x +  +  + 
import styled from 'styled-components/native';
+ 
+import {alerts} from '../../../colors';
+import {SSIFlexDirectionRowViewStyled, SSIRoundedContainerStyled} from '../../containers';
+import {SSITextH4DarkStyled} from '../../fonts';
+ 
+export const SSIToastContainerStyled = styled(SSIRoundedContainerStyled)`
+  width: 96.8%;
+  background-color: ${alerts.secondaryLight};
+  border-radius: 8px;
+  justify-content: center;
+  padding: 18px 18px 15px 18px;
+`;
+ 
+export const SSIToastBadgeContainerStyled = styled.View`
+  margin-right: 10px;
+  justify-content: center;
+`;
+ 
+export const SSIToastTitleContainerStyled = styled(SSIFlexDirectionRowViewStyled)`
+  margin-bottom: 12px;
+  width: 100%;
+`;
+ 
+export const SSIToastMessageCaptionStyled = styled(SSITextH4DarkStyled)`
+  width: 100%;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIWelcomeView/index.html b/coverage/lcov-report/styles/components/components/SSIWelcomeView/index.html new file mode 100644 index 00000000..e0b2d001 --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIWelcomeView/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components/SSIWelcomeView + + + + + + + + + +
+
+

All files styles/components/components/SSIWelcomeView

+
+
+ 100% + Statements + 7/7 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 7/7 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.tsx +
+
+
+
+
100%7/7100%0/0100%0/0100%7/7
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/SSIWelcomeView/index.tsx.html b/coverage/lcov-report/styles/components/components/SSIWelcomeView/index.tsx.html new file mode 100644 index 00000000..5e2fdcdb --- /dev/null +++ b/coverage/lcov-report/styles/components/components/SSIWelcomeView/index.tsx.html @@ -0,0 +1,189 @@ + + + + Code coverage report for styles/components/components/SSIWelcomeView/index.tsx + + + + + + + + + +
+
+

All files / styles/components/components/SSIWelcomeView index.tsx

+
+
+ 100% + Statements + 7/7 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 7/7 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  +  +1x +  +  +  + 
import styled from 'styled-components/native';
+ 
+import {backgrounds, borders} from '../../../colors';
+import {SSITextH1LightStyled, SSITextH2LightStyled} from '../../fonts';
+ 
+export const SSIWelcomeViewContainerStyled = styled.View`
+  border-top-width: 1px;
+  border-top-color: ${borders.dark};
+  background-color: ${backgrounds.primaryDark};
+  width: 100%;
+`;
+ 
+export const SSIWelcomeViewHeaderTextStyled = styled(SSITextH2LightStyled)`
+  margin-bottom: 4px;
+`;
+ 
+export const SSIWelcomeViewTitleTextStyled = styled(SSITextH1LightStyled)`
+  margin-bottom: 6px;
+`;
+ 
+export const SSIWelcomeViewContentContainerStyled = styled.View`
+  margin: 0px 24px 14px 24px;
+`;
+ 
+export const SSIWelcomeViewBodyContainerStyled = styled.View`
+  min-height: 170px;
+`;
+ 
+export const SSIWelcomeViewProgressIndicatorContainerStyled = styled.View`
+  align-items: center;
+  padding: 14px 0px 12px 0px;
+`;
+ 
+export const SSIWelcomeViewButtonContainerStyled = styled.View`
+  margin-bottom: 36px;
+  align-items: center;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/index.html b/coverage/lcov-report/styles/components/components/index.html new file mode 100644 index 00000000..d6bc9ebb --- /dev/null +++ b/coverage/lcov-report/styles/components/components/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/components + + + + + + + + + +
+
+

All files styles/components/components

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/components/index.ts.html b/coverage/lcov-report/styles/components/components/index.ts.html new file mode 100644 index 00000000..078092ae --- /dev/null +++ b/coverage/lcov-report/styles/components/components/index.ts.html @@ -0,0 +1,183 @@ + + + + Code coverage report for styles/components/components/index.ts + + + + + + + + + +
+
+

All files / styles/components/components index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
export * from './SSIPopup';
+export * from './SSIPopupModal';
+export * from './SSIPinCode';
+export * from './SSITabView';
+export * from './SSITabViewHeader';
+export * from './SSICredentialDetailsView';
+export * from './SSITextField';
+export * from './SSICredentialSelectTypeViewItem';
+export * from './SSICheckbox';
+export * from './SSIContactViewItem';
+export * from './SSICredentialViewItem';
+export * from './SSIIdentityViewItem';
+export * from './SSIIdentitiesView';
+export * from './SSIProgressIndicator';
+export * from './SSIPinCodeSegment';
+export * from './SSIAlert';
+export * from './SSIQRCustomMarker';
+export * from './SSIHeaderBar';
+export * from './SSIConnectionDetailsView';
+export * from './SSINavigationBar';
+export * from './SSISecondaryButton';
+export * from './SSISwipeDeleteButton';
+export * from './SSISwipeRowViewItem';
+export * from './SSIStatusBar';
+export * from './SSITextInputField';
+export * from './SSIWelcomeView';
+export * from './SSIButtonsContainer';
+export * from './SSITermsOfServiceView';
+export * from './SSIDropDownList';
+export * from './SSIDropDownListItem';
+export * from './SSIProfileIcon';
+export * from './SSICredentialRequiredViewItem';
+export * from './SSICredentialSelectViewItem';
+export * from './SSIToast';
+export * from './SSIImageField';
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/containers/index.html b/coverage/lcov-report/styles/components/containers/index.html new file mode 100644 index 00000000..af3b6dbc --- /dev/null +++ b/coverage/lcov-report/styles/components/containers/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/containers + + + + + + + + + +
+
+

All files styles/components/containers

+
+
+ 100% + Statements + 17/17 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 17/17 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%17/17100%0/0100%0/0100%17/17
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/containers/index.ts.html b/coverage/lcov-report/styles/components/containers/index.ts.html new file mode 100644 index 00000000..b598df54 --- /dev/null +++ b/coverage/lcov-report/styles/components/containers/index.ts.html @@ -0,0 +1,396 @@ + + + + Code coverage report for styles/components/containers/index.ts + + + + + + + + + +
+
+

All files / styles/components/containers index.ts

+
+
+ 100% + Statements + 17/17 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 17/17 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  +  +1x +  +  +  +  +1x +  +  +  +1x +  +  +  +  +1x +  +  +  +  +1x +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +  +  +1x +  +  +  +  +  +  + 
import {BlurView} from '@react-native-community/blur';
+import Ripple from 'react-native-material-ripple';
+import styled from 'styled-components/native';
+ 
+import {highlights} from '../../colors';
+import {
+  SSIBackgroundPrimaryDarkColorCss,
+  SSIBackgroundPrimaryLightColorCss,
+  SSIBackgroundSecondaryDarkColorCss,
+  SSIButtonBottomContainerCss,
+  SSIRoundedEdgesCss,
+} from '../css';
+ 
+export const SSIBasicContainerSecondaryStyled = styled.View`
+  flex: 1;
+  ${SSIBackgroundSecondaryDarkColorCss};
+`;
+ 
+// CONTAINERS (These should not contain any properties that changes the placement of the container e.g. margin. If you need specific properties, then extend the container element)
+export const SSIFlexDirectionRowViewStyled = styled.View`
+  flex-direction: row;
+`;
+ 
+export const SSIFlexDirectionColumnViewStyled = styled.View`
+  flex-direction: column;
+`;
+ 
+export const SSIFullFlexDirectionRowViewStyled = styled(SSIFlexDirectionRowViewStyled)`
+  flex: 1;
+`;
+ 
+export const SSIFlexDirectionColumnHalfViewStyled = styled(SSIFlexDirectionColumnViewStyled)`
+  width: 45%;
+`;
+ 
+export const SSIBasicContainerStyled = styled.View`
+  flex: 1;
+  ${SSIBackgroundPrimaryDarkColorCss};
+`;
+ 
+export const SSIBasicModalContainerStyled = styled.View`
+  flex: 1;
+  background-color: 'rgba(16,16,16,0.5)';
+`;
+ 
+export const SSIBasicHorizontalCenterContainerStyled = styled(SSIBasicContainerStyled)`
+  align-items: center;
+`;
+ 
+export const SSIRoundedContainerStyled = styled.View`
+  ${SSIRoundedEdgesCss};
+  overflow: hidden;
+`;
+ 
+export const SSIRoundedContainerBackgroundSecondaryDarkStyled = styled(SSIRoundedContainerStyled)`
+  ${SSIRoundedEdgesCss};
+  ${SSIBackgroundSecondaryDarkColorCss};
+`;
+ 
+export const SSIRoundedContainerBackgroundPrimaryLightStyled = styled(SSIRoundedContainerStyled)`
+  ${SSIRoundedEdgesCss};
+  ${SSIBackgroundPrimaryLightColorCss};
+`;
+ 
+export const SSIRippleContainerStyled = styled(Ripple).attrs({
+  // TODO fix react-native-material-ripple package to start ripple effect on PressIn. Currently it only starts the effect when you release.
+  // A fork was made to fix this (works) https://github.com/vjsingh/react-native-material-ripple
+  // this commit fixes it https://github.com/vjsingh/react-native-material-ripple/commit/12e8f8d872ee780caa94e7de8080701e67dc6a9a
+ 
+  // displayUntilPressOut: false, // TODO currently not implemented in latest version
+  pointerEvents: 'box-none',
+  rippleSequential: false,
+  rippleColor: highlights.dark,
+  rippleCentered: true,
+  rippleFades: false,
+})``;
+ 
+// TODO we should be able to merge these 2 justify-content: center;
+export const SSIButtonBottomContainerStyled = styled(SSIFlexDirectionRowViewStyled)`
+  ${SSIButtonBottomContainerCss};
+`;
+ 
+export const SSIRightColumnRightAlignedContainerStyled = styled(SSIFlexDirectionColumnViewStyled)`
+  margin-left: auto;
+`;
+ 
+export const SSIBlurredContainerStyled = styled(BlurView).attrs({
+  blurType: 'light',
+  blurAmount: 3,
+})`
+  flex: 1;
+  background-color: rgba(255, 255, 255, 0.25);
+`;
+ 
+export const SSIAlphaContainerStyled = styled.View`
+  flex: 1;
+  background-color: rgba(0, 0, 0, 0.2);
+`;
+ 
+export const SSIFullHeightScrollViewContainer = styled.ScrollView.attrs({
+  contentContainerStyle: {flexGrow: 1},
+  keyboardShouldPersistTaps: 'handled',
+})`
+  flex: 1;
+  width: 100%;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/css/index.html b/coverage/lcov-report/styles/components/css/index.html new file mode 100644 index 00000000..5a28760d --- /dev/null +++ b/coverage/lcov-report/styles/components/css/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/css + + + + + + + + + +
+
+

All files styles/components/css

+
+
+ 100% + Statements + 5/5 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 5/5 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%5/5100%0/0100%0/0100%5/5
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/css/index.ts.html b/coverage/lcov-report/styles/components/css/index.ts.html new file mode 100644 index 00000000..d61be6b0 --- /dev/null +++ b/coverage/lcov-report/styles/components/css/index.ts.html @@ -0,0 +1,159 @@ + + + + Code coverage report for styles/components/css/index.ts + + + + + + + + + +
+
+

All files / styles/components/css index.ts

+
+
+ 100% + Statements + 5/5 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 5/5 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28  +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  +  +  +  + 
import {css} from 'styled-components/native';
+ 
+import {backgrounds} from '../../colors';
+ 
+export const SSIRoundedEdgesCss = css`
+  border-radius: 8px;
+`;
+ 
+export const SSIBackgroundPrimaryDarkColorCss = css`
+  background-color: ${backgrounds.primaryDark};
+`;
+ 
+export const SSIBackgroundSecondaryDarkColorCss = css`
+  background-color: ${backgrounds.secondaryDark};
+`;
+ 
+export const SSIBackgroundPrimaryLightColorCss = css`
+  background-color: ${backgrounds.primaryLight};
+`;
+ 
+export const SSIButtonBottomContainerCss = css`
+  width: 100%;
+  margin-top: auto;
+  padding-bottom: 36px;
+  align-items: center;
+  justify-content: center;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/fonts/index.html b/coverage/lcov-report/styles/components/fonts/index.html new file mode 100644 index 00000000..a0dfa7dc --- /dev/null +++ b/coverage/lcov-report/styles/components/fonts/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/fonts + + + + + + + + + +
+
+

All files styles/components/fonts

+
+
+ 100% + Statements + 29/29 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 29/29 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%29/29100%0/0100%0/0100%29/29
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/fonts/index.ts.html b/coverage/lcov-report/styles/components/fonts/index.ts.html new file mode 100644 index 00000000..77274afd --- /dev/null +++ b/coverage/lcov-report/styles/components/fonts/index.ts.html @@ -0,0 +1,600 @@ + + + + Code coverage report for styles/components/fonts/index.ts + + + + + + + + + +
+
+

All files / styles/components/fonts index.ts

+
+
+ 100% + Statements + 29/29 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 29/29 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175  +  +  +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  + 
import {Animated} from 'react-native';
+import styled from 'styled-components/native';
+ 
+import {fonts} from '../../colors';
+import {fontStyle} from '../../typography';
+ 
+export const SSITextH0Styled = styled.Text`
+  font-family: ${fontStyle.h0SemiBold.fontFamily};
+  font-size: ${fontStyle.h0SemiBold.fontSize}px;
+  font-weight: ${fontStyle.h0SemiBold.fontWeight};
+  line-height: ${fontStyle.h0SemiBold.lineHeight}px;
+  height: auto;
+`;
+ 
+export const SSITextH0LightStyled = styled(SSITextH0Styled)`
+  color: ${fonts.light};
+`;
+ 
+export const SSITextH1Styled = styled.Text`
+  font-family: ${fontStyle.h1SemiBold.fontFamily};
+  font-size: ${fontStyle.h1SemiBold.fontSize}px;
+  font-weight: ${fontStyle.h1SemiBold.fontWeight};
+  line-height: ${fontStyle.h1SemiBold.lineHeight}px;
+  height: auto;
+`;
+ 
+export const SSITextH1LightStyled = styled(SSITextH1Styled)`
+  color: ${fonts.light};
+`;
+ 
+export const SSITextH2Styled = styled.Text`
+  font-family: ${fontStyle.h2Regular.fontFamily};
+  font-size: ${fontStyle.h2Regular.fontSize}px;
+  font-weight: ${fontStyle.h2Regular.fontWeight};
+  line-height: ${fontStyle.h2Regular.lineHeight}px;
+  height: auto;
+`;
+ 
+export const SSITextH2SemiBoldStyled = styled.Text`
+  font-family: ${fontStyle.h2SemiBold.fontFamily};
+  font-size: ${fontStyle.h2SemiBold.fontSize}px;
+  font-weight: ${fontStyle.h2SemiBold.fontWeight};
+  line-height: ${fontStyle.h2SemiBold.lineHeight}px;
+  height: auto;
+`;
+ 
+export const SSITextH2SemiBoldLightStyled = styled(SSITextH2SemiBoldStyled)`
+  color: ${fonts.light};
+`;
+ 
+export const SSITextH2LightStyled = styled(SSITextH2Styled)`
+  color: ${fonts.light};
+`;
+ 
+export const SSITextH2DarkStyled = styled(SSITextH2Styled)`
+  color: ${fonts.dark};
+`;
+ 
+export const SSITextH2SecondaryButtonStyled = styled(SSITextH2Styled)`
+  color: ${fonts.secondaryButton};
+`;
+ 
+export const SSITextH3RegularStyled = styled.Text`
+  font-family: ${fontStyle.h3Regular.fontFamily};
+  font-size: ${fontStyle.h3Regular.fontSize}px;
+  font-weight: ${fontStyle.h3Regular.fontWeight};
+  line-height: ${fontStyle.h3Regular.lineHeight}px;
+  height: auto;
+`;
+ 
+export const SSITextH3RegularLightStyled = styled(SSITextH3RegularStyled)`
+  color: ${fonts.light};
+`;
+ 
+// TODO name semibold
+export const SSITextH3Styled = styled.Text`
+  font-family: ${fontStyle.h3SemiBold.fontFamily};
+  font-size: ${fontStyle.h3SemiBold.fontSize}px;
+  font-weight: ${fontStyle.h3SemiBold.fontWeight};
+  line-height: ${fontStyle.h3SemiBold.lineHeight}px;
+  height: auto;
+`;
+ 
+export const SSITextH3LightStyled = styled(SSITextH3Styled)`
+  color: ${fonts.light};
+`;
+ 
+export const SSITextH3AnimatedStyled = styled(Animated.Text)`
+  font-family: ${fontStyle.h3SemiBold.fontFamily};
+  font-size: ${fontStyle.h3SemiBold.fontSize}px;
+  font-weight: ${fontStyle.h3SemiBold.fontWeight};
+  line-height: ${fontStyle.h3SemiBold.lineHeight}px;
+  height: auto;
+`;
+ 
+export const SSITextH3AnimatedLightStyled = styled(SSITextH3AnimatedStyled)`
+  color: ${fonts.light};
+`;
+ 
+export const SSITextH4Styled = styled.Text`
+  font-family: ${fontStyle.h4Regular.fontFamily};
+  font-size: ${fontStyle.h4Regular.fontSize}px;
+  font-weight: ${fontStyle.h4Regular.fontWeight};
+  line-height: ${fontStyle.h4Regular.lineHeight}px;
+  height: auto;
+`;
+ 
+export const SSITextH4SemiBoldStyled = styled.Text`
+  font-family: ${fontStyle.h4SemiBold.fontFamily};
+  font-size: ${fontStyle.h4SemiBold.fontSize}px;
+  font-weight: ${fontStyle.h4SemiBold.fontWeight};
+  line-height: ${fontStyle.h4SemiBold.lineHeight}px;
+  height: auto;
+`;
+ 
+export const SSITextH4LightStyled = styled(SSITextH4Styled)`
+  color: ${fonts.light};
+`;
+ 
+export const SSITextH4DarkStyled = styled(SSITextH4Styled)`
+  color: ${fonts.dark};
+`;
+ 
+export const SSITextH4SemiBoldLightStyled = styled(SSITextH4SemiBoldStyled)`
+  color: ${fonts.light};
+`;
+ 
+export const SSITextH5Styled = styled.Text`
+  font-family: ${fontStyle.h5Regular.fontFamily};
+  font-size: ${fontStyle.h5Regular.fontSize}px;
+  font-weight: ${fontStyle.h5Regular.fontWeight};
+  line-height: ${fontStyle.h5Regular.lineHeight}px;
+  height: auto;
+`;
+ 
+export const SSITextH5LightStyled = styled(SSITextH5Styled)`
+  color: ${fonts.light};
+`;
+ 
+export const SSITextH5SemiBoldStyled = styled.Text`
+  font-family: ${fontStyle.h5SemiBold.fontFamily};
+  font-size: ${fontStyle.h5SemiBold.fontSize}px;
+  font-weight: ${fontStyle.h5SemiBold.fontWeight};
+  line-height: ${fontStyle.h5SemiBold.lineHeight}px;
+  height: auto;
+`;
+ 
+export const SSITextH5LightSemiBoldStyled = styled(SSITextH5SemiBoldStyled)`
+  color: ${fonts.light};
+`;
+ 
+export const SSITextH6Styled = styled.Text`
+  font-family: ${fontStyle.h6.fontFamily};
+  font-size: ${fontStyle.h6.fontSize}px;
+  font-weight: ${fontStyle.h6.fontWeight};
+  line-height: ${fontStyle.h6.lineHeight}px;
+  height: auto;
+`;
+ 
+export const SSITextH6LightStyled = styled(SSITextH6Styled)`
+  color: ${fonts.light};
+`;
+ 
+export const SSITextH7SemiBoldStyled = styled.Text`
+  font-family: ${fontStyle.h7SemiBold.fontFamily};
+  font-size: ${fontStyle.h7SemiBold.fontSize}px;
+  font-weight: ${fontStyle.h7SemiBold.fontWeight};
+  line-height: ${fontStyle.h7SemiBold.lineHeight}px;
+  height: auto;
+`;
+ 
+export const SSITextH7SemiBoldLightStyled = styled(SSITextH7SemiBoldStyled)`
+  color: ${fonts.light};
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/gradients/index.html b/coverage/lcov-report/styles/components/gradients/index.html new file mode 100644 index 00000000..8caa48cd --- /dev/null +++ b/coverage/lcov-report/styles/components/gradients/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/gradients + + + + + + + + + +
+
+

All files styles/components/gradients

+
+
+ 100% + Statements + 5/5 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 5/5 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%5/5100%0/0100%0/0100%5/5
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/gradients/index.ts.html b/coverage/lcov-report/styles/components/gradients/index.ts.html new file mode 100644 index 00000000..a960f859 --- /dev/null +++ b/coverage/lcov-report/styles/components/gradients/index.ts.html @@ -0,0 +1,183 @@ + + + + Code coverage report for styles/components/gradients/index.ts + + + + + + + + + +
+
+

All files / styles/components/gradients index.ts

+
+
+ 100% + Statements + 5/5 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 5/5 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36  +  +  +  +  +  +  +1x +  +  +  +  +  +1x +  +  +  +  +  +1x +  +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  + 
import {LinearGradient} from 'expo-linear-gradient';
+import {LinearTextGradient} from 'react-native-text-gradient';
+import styled from 'styled-components/native';
+ 
+import {highLightGradients} from '../../colors';
+import {SSIRoundedEdgesCss} from '../css';
+ 
+export const SSILinearGradientStyled = styled(LinearGradient).attrs({
+  colors: [highLightGradients['100'].secondaryColor, highLightGradients['100'].primaryColor],
+  start: {x: 1, y: 1},
+  end: {x: 0, y: 0},
+})``;
+ 
+export const SSILinearGradientSecondaryStyled = styled(LinearGradient).attrs({
+  colors: [highLightGradients['200'].secondaryColor, highLightGradients['200'].primaryColor],
+  start: {x: 1, y: 1},
+  end: {x: 0, y: 0},
+})``;
+ 
+export const SSILinearGradientWelcomeStyled = styled(LinearGradient).attrs({
+  colors: [highLightGradients['300'].secondaryColor, highLightGradients['300'].primaryColor],
+  start: {x: 1, y: 1},
+  end: {x: 0, y: 0},
+})``;
+ 
+export const SSIRoundedLinearGradient = styled(SSILinearGradientStyled)`
+  ${SSIRoundedEdgesCss}
+`;
+ 
+export const SSITextFieldLinearTextGradientStyled = styled(LinearTextGradient).attrs({
+  locations: [0, 1],
+  colors: [highLightGradients['100'].secondaryColor, highLightGradients['100'].primaryColor],
+  start: {x: 1, y: 1},
+  end: {x: 0, y: 0},
+})``;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/index.html b/coverage/lcov-report/styles/components/index.html new file mode 100644 index 00000000..db0f5fa0 --- /dev/null +++ b/coverage/lcov-report/styles/components/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components + + + + + + + + + +
+
+

All files styles/components

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/index.ts.html b/coverage/lcov-report/styles/components/index.ts.html new file mode 100644 index 00000000..fdb737b4 --- /dev/null +++ b/coverage/lcov-report/styles/components/index.ts.html @@ -0,0 +1,111 @@ + + + + Code coverage report for styles/components/index.ts + + + + + + + + + +
+
+

All files / styles/components index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12  +  +  +  +  +  +  +  +  +  +  + 
export * from './components';
+export * from './containers';
+export * from './screens';
+export * from './gradients';
+export * from './fonts';
+export * from './css';
+export * from './modals';
+export * from './buttons';
+export * from './views';
+export * from './text';
+export * from './providers';
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/modals/SSIAlertModal/index.html b/coverage/lcov-report/styles/components/modals/SSIAlertModal/index.html new file mode 100644 index 00000000..682b7c5a --- /dev/null +++ b/coverage/lcov-report/styles/components/modals/SSIAlertModal/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/modals/SSIAlertModal + + + + + + + + + +
+
+

All files styles/components/modals/SSIAlertModal

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/modals/SSIAlertModal/index.ts.html b/coverage/lcov-report/styles/components/modals/SSIAlertModal/index.ts.html new file mode 100644 index 00000000..9eb08cca --- /dev/null +++ b/coverage/lcov-report/styles/components/modals/SSIAlertModal/index.ts.html @@ -0,0 +1,105 @@ + + + + Code coverage report for styles/components/modals/SSIAlertModal/index.ts + + + + + + + + + +
+
+

All files / styles/components/modals/SSIAlertModal index.ts

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10  +  +1x +  +  +  +  +  +  + 
import styled from 'styled-components/native';
+ 
+export const SSIAlertModalContentContainerStyled = styled.View`
+  margin-top: auto;
+  margin-bottom: 14px;
+  padding-left: 6px;
+  padding-right: 6px;
+  width: 100%;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/modals/SSIPopupModal/index.html b/coverage/lcov-report/styles/components/modals/SSIPopupModal/index.html new file mode 100644 index 00000000..ac92d6d9 --- /dev/null +++ b/coverage/lcov-report/styles/components/modals/SSIPopupModal/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/modals/SSIPopupModal + + + + + + + + + +
+
+

All files styles/components/modals/SSIPopupModal

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/modals/SSIPopupModal/index.ts.html b/coverage/lcov-report/styles/components/modals/SSIPopupModal/index.ts.html new file mode 100644 index 00000000..6d745287 --- /dev/null +++ b/coverage/lcov-report/styles/components/modals/SSIPopupModal/index.ts.html @@ -0,0 +1,105 @@ + + + + Code coverage report for styles/components/modals/SSIPopupModal/index.ts + + + + + + + + + +
+
+

All files / styles/components/modals/SSIPopupModal index.ts

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10  +  +1x +  +  +  +  +  +  + 
import styled from 'styled-components/native';
+ 
+export const SSIPopupModalContentContainerStyled = styled.View`
+  margin-top: auto;
+  margin-bottom: 6px;
+  padding-left: 6px;
+  padding-right: 6px;
+  width: 100%;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/modals/index.html b/coverage/lcov-report/styles/components/modals/index.html new file mode 100644 index 00000000..d0805179 --- /dev/null +++ b/coverage/lcov-report/styles/components/modals/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/modals + + + + + + + + + +
+
+

All files styles/components/modals

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/modals/index.ts.html b/coverage/lcov-report/styles/components/modals/index.ts.html new file mode 100644 index 00000000..e4279ae1 --- /dev/null +++ b/coverage/lcov-report/styles/components/modals/index.ts.html @@ -0,0 +1,84 @@ + + + + Code coverage report for styles/components/modals/index.ts + + + + + + + + + +
+
+

All files / styles/components/modals index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3  +  + 
export * from './SSIAlertModal';
+export * from './SSIPopupModal';
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/providers/OnTouchProvider/index.html b/coverage/lcov-report/styles/components/providers/OnTouchProvider/index.html new file mode 100644 index 00000000..23d030ab --- /dev/null +++ b/coverage/lcov-report/styles/components/providers/OnTouchProvider/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/providers/OnTouchProvider + + + + + + + + + +
+
+

All files styles/components/providers/OnTouchProvider

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/providers/OnTouchProvider/index.ts.html b/coverage/lcov-report/styles/components/providers/OnTouchProvider/index.ts.html new file mode 100644 index 00000000..de30b7d2 --- /dev/null +++ b/coverage/lcov-report/styles/components/providers/OnTouchProvider/index.ts.html @@ -0,0 +1,93 @@ + + + + Code coverage report for styles/components/providers/OnTouchProvider/index.ts + + + + + + + + + +
+
+

All files / styles/components/providers/OnTouchProvider index.ts

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6  +  +1x +  +  + 
import styled from 'styled-components/native';
+ 
+export const SSIOnTouchProviderContainerStyled = styled.View`
+  flex: 1;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/providers/index.html b/coverage/lcov-report/styles/components/providers/index.html new file mode 100644 index 00000000..6da332cd --- /dev/null +++ b/coverage/lcov-report/styles/components/providers/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/providers + + + + + + + + + +
+
+

All files styles/components/providers

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/providers/index.ts.html b/coverage/lcov-report/styles/components/providers/index.ts.html new file mode 100644 index 00000000..e6d3fd9e --- /dev/null +++ b/coverage/lcov-report/styles/components/providers/index.ts.html @@ -0,0 +1,81 @@ + + + + Code coverage report for styles/components/providers/index.ts + + + + + + + + + +
+
+

All files / styles/components/providers index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2  + 
export * from './OnTouchProvider';
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSIContactAddScreen/index.html b/coverage/lcov-report/styles/components/screens/SSIContactAddScreen/index.html new file mode 100644 index 00000000..1fc62657 --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSIContactAddScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/screens/SSIContactAddScreen + + + + + + + + + +
+
+

All files styles/components/screens/SSIContactAddScreen

+
+
+ 100% + Statements + 3/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%3/3100%0/0100%0/0100%3/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSIContactAddScreen/index.ts.html b/coverage/lcov-report/styles/components/screens/SSIContactAddScreen/index.ts.html new file mode 100644 index 00000000..a2b0aaf6 --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSIContactAddScreen/index.ts.html @@ -0,0 +1,132 @@ + + + + Code coverage report for styles/components/screens/SSIContactAddScreen/index.ts + + + + + + + + + +
+
+

All files / styles/components/screens/SSIContactAddScreen index.ts

+
+
+ 100% + Statements + 3/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19  +  +  +  +1x +  +  +  +  +1x +  +  +  +  +1x +  +  +  + 
import styled from 'styled-components/native';
+ 
+import {SSIBasicHorizontalCenterContainerStyled} from '../../containers';
+ 
+export const SSIContactAddScreenContainerStyled = styled(SSIBasicHorizontalCenterContainerStyled)`
+  padding-left: 24px;
+  padding-right: 24px;
+`;
+ 
+export const SSIContactAddScreenTextInputContainerStyled = styled.View`
+  width: 100%;
+  margin-top: 10px;
+`;
+ 
+export const SSIContactAddScreenDisclaimerContainerStyled = styled.View`
+  width: 100%;
+  margin-top: 17px;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSICredentialDetailsScreen/index.html b/coverage/lcov-report/styles/components/screens/SSICredentialDetailsScreen/index.html new file mode 100644 index 00000000..96d7d258 --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSICredentialDetailsScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/screens/SSICredentialDetailsScreen + + + + + + + + + +
+
+

All files styles/components/screens/SSICredentialDetailsScreen

+
+
+ 100% + Statements + 4/4 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 4/4 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%4/4100%0/0100%0/0100%4/4
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSICredentialDetailsScreen/index.ts.html b/coverage/lcov-report/styles/components/screens/SSICredentialDetailsScreen/index.ts.html new file mode 100644 index 00000000..9eb9ec42 --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSICredentialDetailsScreen/index.ts.html @@ -0,0 +1,161 @@ + + + + Code coverage report for styles/components/screens/SSICredentialDetailsScreen/index.ts + + + + + + + + + +
+
+

+ All files / styles/components/screens/SSICredentialDetailsScreen index.ts +

+
+
+ 100% + Statements + 4/4 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 4/4 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28  +  +  +  +  +1x +  +  +  +  +1x +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  + 
import styled from 'styled-components/native';
+ 
+import {backgrounds} from '../../../colors';
+import {SSIFlexDirectionRowViewStyled} from '../../containers';
+ 
+export const SSICredentialDetailsScreenContentContainer = styled.View`
+  width: 100%;
+  flex: 1;
+`;
+ 
+export const SSICredentialDetailsScreenCredentialCardContainer = styled.View`
+  align-items: center;
+  margin-bottom: 8px;
+`;
+ 
+export const SSICredentialDetailsScreenButtonContainer = styled.View`
+  height: 80px;
+  width: 100%;
+  margin-top: auto;
+  background-color: ${backgrounds.secondaryDark};
+`;
+ 
+export const SSICredentialDetailsScreenButtonContentContainer = styled(SSIFlexDirectionRowViewStyled)`
+  margin: auto auto;
+  justify-content: space-between;
+  padding: 0 24px;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSICredentialSelectTypeScreen/index.html b/coverage/lcov-report/styles/components/screens/SSICredentialSelectTypeScreen/index.html new file mode 100644 index 00000000..570e1e91 --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSICredentialSelectTypeScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/screens/SSICredentialSelectTypeScreen + + + + + + + + + +
+
+

All files styles/components/screens/SSICredentialSelectTypeScreen

+
+
+ 100% + Statements + 2/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 2/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%2/2100%0/0100%0/0100%2/2
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSICredentialSelectTypeScreen/index.ts.html b/coverage/lcov-report/styles/components/screens/SSICredentialSelectTypeScreen/index.ts.html new file mode 100644 index 00000000..9f79a3ba --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSICredentialSelectTypeScreen/index.ts.html @@ -0,0 +1,125 @@ + + + + Code coverage report for styles/components/screens/SSICredentialSelectTypeScreen/index.ts + + + + + + + + + +
+
+

+ All files / styles/components/screens/SSICredentialSelectTypeScreen index.ts +

+
+
+ 100% + Statements + 2/2 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 2/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16  +  +  +  +1x +  +  +  +1x +  +  +  +  +  +  + 
import styled from 'styled-components/native';
+ 
+import {SSIRippleContainerStyled} from '../../containers';
+ 
+export const SSICredentialSelectTypeScreenViewItemContainerStyled = styled(SSIRippleContainerStyled)`
+  padding: 10px 24px 13.5px 24px;
+`;
+ 
+export const SSICredentialSelectTypeScreenButtonContainerStyled = styled.View`
+  height: 80px;
+  width: 100%;
+  margin-top: auto;
+  justify-content: center;
+  padding: 0px 38px 0px 38px;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSICredentialsRequiredScreen/index.html b/coverage/lcov-report/styles/components/screens/SSICredentialsRequiredScreen/index.html new file mode 100644 index 00000000..dd1f457b --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSICredentialsRequiredScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/screens/SSICredentialsRequiredScreen + + + + + + + + + +
+
+

All files styles/components/screens/SSICredentialsRequiredScreen

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSICredentialsRequiredScreen/index.ts.html b/coverage/lcov-report/styles/components/screens/SSICredentialsRequiredScreen/index.ts.html new file mode 100644 index 00000000..7f5e04c2 --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSICredentialsRequiredScreen/index.ts.html @@ -0,0 +1,95 @@ + + + + Code coverage report for styles/components/screens/SSICredentialsRequiredScreen/index.ts + + + + + + + + + +
+
+

+ All files / styles/components/screens/SSICredentialsRequiredScreen index.ts +

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6  +  +1x +  +  + 
import styled from 'styled-components/native';
+ 
+export const SSICredentialsRequiredScreenButtonContainerStyled = styled.View`
+  margin-top: 18px;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSIErrorScreen/index.html b/coverage/lcov-report/styles/components/screens/SSIErrorScreen/index.html new file mode 100644 index 00000000..458f7e23 --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSIErrorScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/screens/SSIErrorScreen + + + + + + + + + +
+
+

All files styles/components/screens/SSIErrorScreen

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSIErrorScreen/index.ts.html b/coverage/lcov-report/styles/components/screens/SSIErrorScreen/index.ts.html new file mode 100644 index 00000000..d2a8e4a3 --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSIErrorScreen/index.ts.html @@ -0,0 +1,96 @@ + + + + Code coverage report for styles/components/screens/SSIErrorScreen/index.ts + + + + + + + + + +
+
+

All files / styles/components/screens/SSIErrorScreen index.ts

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7  +  +1x +  +  +  + 
import styled from 'styled-components/native';
+ 
+export const SSIErrorScreenContentContainerStyled = styled.View`
+  margin-top: auto;
+  width: 100%;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSILoadingScreen/index.html b/coverage/lcov-report/styles/components/screens/SSILoadingScreen/index.html new file mode 100644 index 00000000..dcf23a41 --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSILoadingScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/screens/SSILoadingScreen + + + + + + + + + +
+
+

All files styles/components/screens/SSILoadingScreen

+
+
+ 100% + Statements + 3/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%3/3100%0/0100%0/0100%3/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSILoadingScreen/index.ts.html b/coverage/lcov-report/styles/components/screens/SSILoadingScreen/index.ts.html new file mode 100644 index 00000000..e3ef43cf --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSILoadingScreen/index.ts.html @@ -0,0 +1,132 @@ + + + + Code coverage report for styles/components/screens/SSILoadingScreen/index.ts + + + + + + + + + +
+
+

All files / styles/components/screens/SSILoadingScreen index.ts

+
+
+ 100% + Statements + 3/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  + 
import {ActivityIndicator} from 'react-native';
+import styled from 'styled-components/native';
+ 
+import {elements} from '../../../colors';
+import {SSITextH2SemiBoldLightStyled} from '../../fonts';
+ 
+export const SSILoadingScreenActivityIndicatorContainerStyled = styled.View`
+  margin-top: 282px;
+`;
+ 
+export const SSILoadingScreenActivityCaptionStyled = styled(SSITextH2SemiBoldLightStyled)`
+  margin-top: 69px;
+`;
+ 
+export const SSILoadingScreenActivityIndicatorStyled = styled(ActivityIndicator).attrs({
+  size: 80,
+  color: elements.blue,
+})``;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSILockScreen/index.html b/coverage/lcov-report/styles/components/screens/SSILockScreen/index.html new file mode 100644 index 00000000..921dacba --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSILockScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/screens/SSILockScreen + + + + + + + + + +
+
+

All files styles/components/screens/SSILockScreen

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSILockScreen/index.ts.html b/coverage/lcov-report/styles/components/screens/SSILockScreen/index.ts.html new file mode 100644 index 00000000..8cf3d0b5 --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSILockScreen/index.ts.html @@ -0,0 +1,93 @@ + + + + Code coverage report for styles/components/screens/SSILockScreen/index.ts + + + + + + + + + +
+
+

All files / styles/components/screens/SSILockScreen index.ts

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6  +  +1x +  +  + 
import styled from 'styled-components/native';
+ 
+export const SSILockScreenPinCodeContainerStyled = styled.View`
+  margin-top: 130px;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSINotificationsOverviewScreen/index.html b/coverage/lcov-report/styles/components/screens/SSINotificationsOverviewScreen/index.html new file mode 100644 index 00000000..d263fa89 --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSINotificationsOverviewScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/screens/SSINotificationsOverviewScreen + + + + + + + + + +
+
+

All files styles/components/screens/SSINotificationsOverviewScreen

+
+
+ 100% + Statements + 3/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%3/3100%0/0100%0/0100%3/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSINotificationsOverviewScreen/index.ts.html b/coverage/lcov-report/styles/components/screens/SSINotificationsOverviewScreen/index.ts.html new file mode 100644 index 00000000..c413fc4d --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSINotificationsOverviewScreen/index.ts.html @@ -0,0 +1,128 @@ + + + + Code coverage report for styles/components/screens/SSINotificationsOverviewScreen/index.ts + + + + + + + + + +
+
+

+ All files / styles/components/screens/SSINotificationsOverviewScreen index.ts +

+
+
+ 100% + Statements + 3/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17  +  +  +  +1x +  +  +  +  +1x +  +  +  +1x +  +  + 
import styled from 'styled-components/native';
+ 
+import {SSITextH1LightStyled} from '../../fonts';
+ 
+export const SSINotificationsOverviewScreenEmptyStateContainerStyled = styled.View`
+  margin-top: 149px;
+  align-items: center;
+`;
+ 
+export const SSINotificationsOverviewScreenEmptyStateImageContainerStyled = styled.View`
+  margin-bottom: 56px;
+`;
+ 
+export const SSINotificationsOverviewScreenEmptyStateTitleTextStyled = styled(SSITextH1LightStyled)`
+  margin-bottom: 18px;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSIPersonalDataScreen/index.html b/coverage/lcov-report/styles/components/screens/SSIPersonalDataScreen/index.html new file mode 100644 index 00000000..3a7badbf --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSIPersonalDataScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/screens/SSIPersonalDataScreen + + + + + + + + + +
+
+

All files styles/components/screens/SSIPersonalDataScreen

+
+
+ 100% + Statements + 3/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%3/3100%0/0100%0/0100%3/3
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSIPersonalDataScreen/index.ts.html b/coverage/lcov-report/styles/components/screens/SSIPersonalDataScreen/index.ts.html new file mode 100644 index 00000000..5aaf7260 --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSIPersonalDataScreen/index.ts.html @@ -0,0 +1,129 @@ + + + + Code coverage report for styles/components/screens/SSIPersonalDataScreen/index.ts + + + + + + + + + +
+
+

All files / styles/components/screens/SSIPersonalDataScreen index.ts

+
+
+ 100% + Statements + 3/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 3/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18  +  +  +  +1x +  +  +  +  +1x +  +  +  +  +1x +  +  + 
import styled from 'styled-components/native';
+ 
+import {SSIBasicHorizontalCenterContainerStyled} from '../../containers';
+ 
+export const SSIPersonalDataScreenContainerStyled = styled(SSIBasicHorizontalCenterContainerStyled)`
+  padding-left: 24px;
+  padding-right: 24px;
+`;
+ 
+export const SSIPersonalDataScreenTextInputsContainerStyled = styled.View`
+  width: 100%;
+  margin-top: 10px;
+`;
+ 
+export const SSIPersonalDataScreenTextInputContainerStyled = styled.View`
+  margin-bottom: 18px;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSIQRReaderScreen/index.html b/coverage/lcov-report/styles/components/screens/SSIQRReaderScreen/index.html new file mode 100644 index 00000000..ab079d5a --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSIQRReaderScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/screens/SSIQRReaderScreen + + + + + + + + + +
+
+

All files styles/components/screens/SSIQRReaderScreen

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSIQRReaderScreen/index.ts.html b/coverage/lcov-report/styles/components/screens/SSIQRReaderScreen/index.ts.html new file mode 100644 index 00000000..7fa1b241 --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSIQRReaderScreen/index.ts.html @@ -0,0 +1,105 @@ + + + + Code coverage report for styles/components/screens/SSIQRReaderScreen/index.ts + + + + + + + + + +
+
+

All files / styles/components/screens/SSIQRReaderScreen index.ts

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10  +  +  +1x +  +  +  +  +  + 
import QRCodeScanner from 'react-native-qrcode-scanner';
+import styled from 'styled-components/native';
+ 
+export const SSIQRReaderScreenScannerStyled = styled(QRCodeScanner).attrs({
+  cameraStyle: {
+    height: '100%',
+    width: '100%',
+  },
+})``;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSITermsOfServiceScreen/index.html b/coverage/lcov-report/styles/components/screens/SSITermsOfServiceScreen/index.html new file mode 100644 index 00000000..a0de4971 --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSITermsOfServiceScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/screens/SSITermsOfServiceScreen + + + + + + + + + +
+
+

All files styles/components/screens/SSITermsOfServiceScreen

+
+
+ 100% + Statements + 4/4 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 4/4 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%4/4100%0/0100%0/0100%4/4
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSITermsOfServiceScreen/index.ts.html b/coverage/lcov-report/styles/components/screens/SSITermsOfServiceScreen/index.ts.html new file mode 100644 index 00000000..fcaf1f97 --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSITermsOfServiceScreen/index.ts.html @@ -0,0 +1,144 @@ + + + + Code coverage report for styles/components/screens/SSITermsOfServiceScreen/index.ts + + + + + + + + + +
+
+

All files / styles/components/screens/SSITermsOfServiceScreen index.ts

+
+
+ 100% + Statements + 4/4 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 4/4 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23  +  +  +  +1x +  +  +  +  +1x +  +  +  +  +  +1x +  +  +  +1x +  +  + 
import styled from 'styled-components/native';
+ 
+import {borders} from '../../../colors';
+ 
+export const SSITermsOfServiceScreenTabViewContainerStyled = styled.View`
+  flex: 1;
+  margin-top: 17px;
+`;
+ 
+export const SSITermsOfServiceScreenBottomContainerStyled = styled.View`
+  margin-top: auto;
+  border-top-width: 1px;
+  border-top-color: ${borders.dark};
+`;
+ 
+export const SSITermsOfServiceScreenCheckboxesContainerStyled = styled.View`
+  margin: 16px 24px 16px 24px;
+`;
+ 
+export const SSITermsOfServiceScreenCheckboxContainerStyled = styled.View`
+  margin-bottom: 14px;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSIVerificationCodeScreen/index.html b/coverage/lcov-report/styles/components/screens/SSIVerificationCodeScreen/index.html new file mode 100644 index 00000000..fd782a7e --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSIVerificationCodeScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/screens/SSIVerificationCodeScreen + + + + + + + + + +
+
+

All files styles/components/screens/SSIVerificationCodeScreen

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSIVerificationCodeScreen/index.ts.html b/coverage/lcov-report/styles/components/screens/SSIVerificationCodeScreen/index.ts.html new file mode 100644 index 00000000..9c33d866 --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSIVerificationCodeScreen/index.ts.html @@ -0,0 +1,95 @@ + + + + Code coverage report for styles/components/screens/SSIVerificationCodeScreen/index.ts + + + + + + + + + +
+
+

+ All files / styles/components/screens/SSIVerificationCodeScreen index.ts +

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6  +  +1x +  +  + 
import styled from 'styled-components/native';
+ 
+export const SSIVerificationCodeScreenPinCodeContainerStyled = styled.View`
+  margin-top: 83px;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSIWelcomeScreen/index.html b/coverage/lcov-report/styles/components/screens/SSIWelcomeScreen/index.html new file mode 100644 index 00000000..da8dc0c6 --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSIWelcomeScreen/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/screens/SSIWelcomeScreen + + + + + + + + + +
+
+

All files styles/components/screens/SSIWelcomeScreen

+
+
+ 100% + Statements + 4/4 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 4/4 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%4/4100%0/0100%0/0100%4/4
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/SSIWelcomeScreen/index.ts.html b/coverage/lcov-report/styles/components/screens/SSIWelcomeScreen/index.ts.html new file mode 100644 index 00000000..fe63c2c7 --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/SSIWelcomeScreen/index.ts.html @@ -0,0 +1,168 @@ + + + + Code coverage report for styles/components/screens/SSIWelcomeScreen/index.ts + + + + + + + + + +
+
+

All files / styles/components/screens/SSIWelcomeScreen index.ts

+
+
+ 100% + Statements + 4/4 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 4/4 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  + 
import styled from 'styled-components/native';
+ 
+import {backgrounds} from '../../../colors';
+import {SSIBasicContainerStyled} from '../../containers';
+import {SSILinearGradientWelcomeStyled} from '../../gradients';
+ 
+export const SSIWelcomeScreenContainerStyled = styled(SSIBasicContainerStyled)`
+  overflow: hidden;
+`;
+ 
+export const SSIWelcomeScreenWelcomeViewContainerStyled = styled.View`
+  margin-top: auto;
+`;
+ 
+export const SSIWelcomeScreenIntroBackgroundContainerStyled = styled.View`
+  background-color: ${backgrounds.primaryDark};
+  position: absolute;
+  z-index: -1;
+  width: 500px;
+  height: 915px;
+  left: 50%;
+  margin-left: -250px;
+  top: 50%;
+  margin-top: -457.5px;
+`;
+ 
+export const SSIWelcomeScreenBackgroundContainerStyled = styled(SSILinearGradientWelcomeStyled)`
+  flex: 1;
+  align-items: center;
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/index.html b/coverage/lcov-report/styles/components/screens/index.html new file mode 100644 index 00000000..130ee7dc --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/screens + + + + + + + + + +
+
+

All files styles/components/screens

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/screens/index.ts.html b/coverage/lcov-report/styles/components/screens/index.ts.html new file mode 100644 index 00000000..f58e0c4f --- /dev/null +++ b/coverage/lcov-report/styles/components/screens/index.ts.html @@ -0,0 +1,117 @@ + + + + Code coverage report for styles/components/screens/index.ts + + + + + + + + + +
+
+

All files / styles/components/screens index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14  +  +  +  +  +  +  +  +  +  +  +  +  + 
export * from './SSICredentialDetailsScreen';
+export * from './SSIErrorScreen';
+export * from './SSICredentialSelectTypeScreen';
+export * from './SSIVerificationCodeScreen';
+export * from './SSIQRReaderScreen';
+export * from './SSIContactAddScreen';
+export * from './SSIWelcomeScreen';
+export * from './SSITermsOfServiceScreen';
+export * from './SSIPersonalDataScreen';
+export * from './SSINotificationsOverviewScreen';
+export * from './SSICredentialsRequiredScreen';
+export * from './SSILockScreen';
+export * from './SSILoadingScreen';
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/text/index.html b/coverage/lcov-report/styles/components/text/index.html new file mode 100644 index 00000000..dcc8cd3e --- /dev/null +++ b/coverage/lcov-report/styles/components/text/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/text + + + + + + + + + +
+
+

All files styles/components/text

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/text/index.ts.html b/coverage/lcov-report/styles/components/text/index.ts.html new file mode 100644 index 00000000..c269692d --- /dev/null +++ b/coverage/lcov-report/styles/components/text/index.ts.html @@ -0,0 +1,123 @@ + + + + Code coverage report for styles/components/text/index.ts + + + + + + + + + +
+
+

All files / styles/components/text index.ts

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  + 
import {TextInput} from 'react-native';
+import styled from 'styled-components/native';
+ 
+import {fonts, inputs} from '../../colors';
+import {fontStyle} from '../../typography';
+ 
+export const TextInputStyled = styled(TextInput).attrs({
+  placeholderTextColor: inputs.placeholder,
+})`
+  font-family: ${fontStyle.h3Regular.fontFamily};
+  font-size: ${fontStyle.h3Regular.fontSize}px;
+  font-weight: ${fontStyle.h3Regular.fontWeight};
+  line-height: ${fontStyle.h3Regular.lineHeight}px;
+  color: ${fonts.light};
+`;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/views/index.html b/coverage/lcov-report/styles/components/views/index.html new file mode 100644 index 00000000..642986e9 --- /dev/null +++ b/coverage/lcov-report/styles/components/views/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for styles/components/views + + + + + + + + + +
+
+

All files styles/components/views

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
100%1/1100%0/0100%0/0100%1/1
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/components/views/index.ts.html b/coverage/lcov-report/styles/components/views/index.ts.html new file mode 100644 index 00000000..196b13c2 --- /dev/null +++ b/coverage/lcov-report/styles/components/views/index.ts.html @@ -0,0 +1,99 @@ + + + + Code coverage report for styles/components/views/index.ts + + + + + + + + + +
+
+

All files / styles/components/views index.ts

+
+
+ 100% + Statements + 1/1 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8  +  +  +  +1x +  +  + 
import {FlatList} from 'react-native';
+import styled from 'styled-components/native';
+ 
+// added a typing workaround as styled.FlatList does not support typing definition of styled-components
+export const SSIDetailsViewDetailsListStyled = styled.FlatList`
+  margin-bottom: 12px;
+` as unknown as typeof FlatList;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/index.html b/coverage/lcov-report/styles/index.html new file mode 100644 index 00000000..5f0fdbad --- /dev/null +++ b/coverage/lcov-report/styles/index.html @@ -0,0 +1,130 @@ + + + + Code coverage report for styles + + + + + + + + + +
+
+

All files styles

+
+
+ 100% + Statements + 18/18 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 18/18 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
colors.ts +
+
+
+
+
100%14/14100%0/0100%0/0100%14/14
typography.ts +
+
+
+
+
100%4/4100%0/0100%0/0100%4/4
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/styles/typography.ts.html b/coverage/lcov-report/styles/typography.ts.html new file mode 100644 index 00000000..270b18ae --- /dev/null +++ b/coverage/lcov-report/styles/typography.ts.html @@ -0,0 +1,477 @@ + + + + Code coverage report for styles/typography.ts + + + + + + + + + +
+
+

All files / styles typography.ts

+
+
+ 100% + Statements + 4/4 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 4/4 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {TextStyle} from 'react-native';
+import {moderateScale} from 'react-native-size-matters';
+type FontSize = 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800;
+ 
+export const fontSize: Record<FontSize, number> = {
+  100: moderateScale(9),
+  200: moderateScale(10),
+  300: moderateScale(11),
+  400: moderateScale(14),
+  500: moderateScale(16),
+  600: moderateScale(24),
+  700: moderateScale(36), // TODO fix order
+  800: moderateScale(12), // TODO fix order
+};
+ 
+type LineHeight = 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800;
+ 
+export const lineHeight: Record<LineHeight, number> = {
+  100: moderateScale(13.5),
+  200: moderateScale(15),
+  300: moderateScale(16.5),
+  400: moderateScale(21),
+  500: moderateScale(24),
+  600: moderateScale(34), // TODO design says 36 which makes a part of the line disappear
+  700: moderateScale(54),
+  800: moderateScale(18), // TODO fix the order
+};
+ 
+type FontWeight = 'normal' | 'bold' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900';
+ 
+export const fontWeight: Record<FontWeight, FontWeight> = {
+  normal: 'normal',
+  bold: 'bold',
+  100: '100',
+  200: '200',
+  300: '300',
+  400: '400',
+  500: '500',
+  600: '600',
+  700: '700',
+  800: '800',
+  900: '900',
+};
+ 
+type FontStyle =
+  | 'h0SemiBold'
+  | 'h1SemiBold'
+  | 'h2Regular'
+  | 'h2SemiBold'
+  | 'h3Regular'
+  | 'h3SemiBold'
+  | 'h4Regular'
+  | 'h4SemiBold'
+  | 'h5Regular'
+  | 'h5SemiBold'
+  | 'h6'
+  | 'h7SemiBold';
+ 
+export const fontStyle: Record<FontStyle, TextStyle> = {
+  h0SemiBold: {
+    fontFamily: 'Poppins-SemiBold', // TODO fix solution for just having Poppins as font family and using font weight (which is now baked into the font family)
+    fontSize: fontSize[700],
+    fontWeight: fontWeight[600],
+    lineHeight: lineHeight[700],
+  },
+  h1SemiBold: {
+    fontFamily: 'Poppins-SemiBold', // TODO fix solution for just having Poppins as font family and using font weight (which is now baked into the font family)
+    fontSize: fontSize[600],
+    fontWeight: fontWeight[600],
+    lineHeight: lineHeight[600],
+  },
+  h2Regular: {
+    fontFamily: 'Poppins-Regular', // TODO fix solution for just having Poppins as font family and using font weight (which is now baked into the font family)
+    fontSize: fontSize[500],
+    fontWeight: fontWeight[400],
+    lineHeight: lineHeight[500],
+  },
+  h2SemiBold: {
+    fontFamily: 'Poppins-SemiBold', // TODO fix solution for just having Poppins as font family and using font weight (which is now baked into the font family)
+    fontSize: fontSize[500],
+    fontWeight: fontWeight[600],
+    lineHeight: lineHeight[500],
+  },
+  h3Regular: {
+    fontFamily: 'Poppins-Regular', // TODO fix solution for just having Poppins as font family and using font weight (which is now baked into the font family)
+    fontSize: fontSize[400],
+    fontWeight: fontWeight[400],
+    lineHeight: lineHeight[400],
+  },
+  h3SemiBold: {
+    fontFamily: 'Poppins-SemiBold', // TODO fix solution for just having Poppins as font family and using font weight (which is now baked into the font family)
+    fontSize: fontSize[400],
+    fontWeight: fontWeight[600],
+    lineHeight: lineHeight[400],
+  },
+  h4Regular: {
+    fontFamily: 'Poppins-Regular', // TODO fix solution for just having Poppins as font family and using font weight (which is now baked into the font family)
+    fontSize: fontSize[300],
+    fontWeight: fontWeight[400],
+    lineHeight: lineHeight[300],
+  },
+  h4SemiBold: {
+    fontFamily: 'Poppins-SemiBold', // TODO fix solution for just having Poppins as font family and using font weight (which is now baked into the font family)
+    fontSize: fontSize[300],
+    fontWeight: fontWeight[400],
+    lineHeight: lineHeight[300],
+  },
+  h5Regular: {
+    fontFamily: 'Poppins-Regular', // TODO fix solution for just having Poppins as font family and using font weight (which is now baked into the font family)
+    fontSize: fontSize[200],
+    fontWeight: fontWeight[400],
+    lineHeight: lineHeight[200],
+  },
+  h5SemiBold: {
+    fontFamily: 'Poppins-SemiBold', // TODO fix solution for just having Poppins as font family and using font weight (which is now baked into the font family)
+    fontSize: fontSize[200],
+    fontWeight: fontWeight[600],
+    lineHeight: lineHeight[200],
+  },
+  h6: {
+    fontFamily: 'Poppins', // TODO fix solution for just having Poppins as font family and using font weight (which is now baked into the font family)
+    fontSize: fontSize[100],
+    fontWeight: fontWeight[400],
+    lineHeight: lineHeight[100],
+  },
+  h7SemiBold: {
+    // TODO fix the order
+    fontFamily: 'Poppins-SemiBold', // TODO fix solution for just having Poppins as font family and using font weight (which is now baked into the font family)
+    fontSize: fontSize[800],
+    fontWeight: fontWeight[600],
+    lineHeight: lineHeight[800],
+  },
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/authentication/index.html b/coverage/lcov-report/types/authentication/index.html new file mode 100644 index 00000000..d6c4239a --- /dev/null +++ b/coverage/lcov-report/types/authentication/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/authentication + + + + + + + + + +
+
+

All files types/authentication

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/authentication/index.ts.html b/coverage/lcov-report/types/authentication/index.ts.html new file mode 100644 index 00000000..99b63d4c --- /dev/null +++ b/coverage/lcov-report/types/authentication/index.ts.html @@ -0,0 +1,177 @@ + + + + Code coverage report for types/authentication/index.ts + + + + + + + + + +
+
+

All files / types/authentication index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {JwtPayload} from 'jwt-decode';
+ 
+export interface CustomJwtPayload extends JwtPayload {
+  name: string;
+  given_name: string;
+  family_name: string;
+  email: string;
+  realm_access: any; // TODO fix type
+  scope: any; // TODO fix type
+}
+ 
+export interface IOpenIdAuthentication {
+  accessToken: string;
+  refreshToken: string;
+  idToken: string;
+  user: IOpenIdAuthenticatedUser;
+}
+ 
+export interface IOpenIdAuthenticatedUser {
+  id?: string;
+  name: string;
+  firstName: string;
+  lastName: string;
+  email: string;
+  roles: Array<string>;
+  scope: Array<string>;
+}
+ 
+export enum WalletAuthLockState {
+  ONBOARDING = 'onboarding',
+  AUTHENTICATED = 'authenticated',
+  LOCKED = 'locked',
+}
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/component/index.html b/coverage/lcov-report/types/component/index.html new file mode 100644 index 00000000..482a73e3 --- /dev/null +++ b/coverage/lcov-report/types/component/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/component + + + + + + + + + +
+
+

All files types/component

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/component/index.ts.html b/coverage/lcov-report/types/component/index.ts.html new file mode 100644 index 00000000..9b8964be --- /dev/null +++ b/coverage/lcov-report/types/component/index.ts.html @@ -0,0 +1,258 @@ + + + + Code coverage report for types/component/index.ts + + + + + + + + + +
+
+

All files / types/component index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {ComponentType} from 'react';
+import {ColorValue} from 'react-native';
+ 
+import {CredentialStatus, ImageAttributes, IssuerStatus} from '@sphereon/ui-components.core';
+ 
+export enum ButtonIconsEnum {
+  BACK = 'back',
+  MORE = 'more',
+  CLOSE = 'close',
+}
+ 
+export enum HeaderMenuIconsEnum {
+  ADD = 'add',
+  DELETE = 'delete',
+  LOGOUT = 'logout',
+  DOWNLOAD = 'download',
+}
+ 
+export enum PopupImagesEnum {
+  SECURITY = 'security',
+  WARNING = 'warning',
+}
+ 
+export enum PopupBadgesEnum {
+  CHECK_MARK = 'checkMark',
+  EXCLAMATION_MARK = 'exclamationMark',
+}
+ 
+export interface IHeaderProps {
+  showBorder: boolean;
+}
+ 
+export interface IButton {
+  caption: string;
+  onPress: () => Promise<void>;
+  disabled?: boolean;
+}
+ 
+export interface IHeaderMenuButton extends IButton {
+  icon?: HeaderMenuIconsEnum;
+  fontColor?: ColorValue;
+}
+ 
+export type LabelStatus = CredentialStatus | IssuerStatus;
+ 
+export interface ITabRoute {
+  key: string;
+  title: string;
+}
+ 
+export interface ITabViewRoute extends ITabRoute {
+  content: ComponentType<unknown>;
+}
+ 
+export type CredentialMiniCardDisplay = {
+  backgroundColor?: ColorValue;
+  backgroundImage?: ImageAttributes;
+  logoColor: ColorValue;
+  logo?: ImageAttributes;
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/credential/index.html b/coverage/lcov-report/types/credential/index.html new file mode 100644 index 00000000..2fb95588 --- /dev/null +++ b/coverage/lcov-report/types/credential/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/credential + + + + + + + + + +
+
+

All files types/credential

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/credential/index.ts.html b/coverage/lcov-report/types/credential/index.ts.html new file mode 100644 index 00000000..feca71b5 --- /dev/null +++ b/coverage/lcov-report/types/credential/index.ts.html @@ -0,0 +1,243 @@ + + + + Code coverage report for types/credential/index.ts + + + + + + + + + +
+
+

All files / types/credential index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {IBasicCredentialLocaleBranding} from '@sphereon/ssi-sdk.data-store';
+import {OriginalVerifiableCredential} from '@sphereon/ssi-types';
+import {CredentialStatus, ImageSize} from '@sphereon/ui-components.core';
+ 
+import {LabelStatus} from '../component';
+ 
+export enum CredentialIssuanceStateEnum {
+  OFFER = 'offer',
+}
+ 
+// TODO create proper interface for credential summary / info
+export interface ICredentialSummary {
+  hash: string;
+  id?: string; // The id of the credential (optional according to VCDM)
+  title: string;
+  issuer: IIssuerSummary;
+  credentialStatus: CredentialStatus;
+  issueDate: number;
+  expirationDate: number;
+  properties: ICredentialDetailsRow[];
+  branding?: IBasicCredentialLocaleBranding;
+}
+ 
+// TODO create proper interface for credential summary / info
+export interface IIssuerSummary {
+  name: string;
+  alias: string;
+  image?: string;
+  url?: string;
+}
+ 
+// TODO interface should be replaced by proper interface for credential details
+export interface ICredentialDetailsRow {
+  id: string;
+  label: string;
+  value: any;
+  isEditable?: boolean;
+  status?: LabelStatus;
+  imageSize?: ImageSize;
+}
+ 
+export interface ICredentialTypeSelection {
+  id: string;
+  credentialType: string;
+  credentialAlias: string;
+  isSelected: boolean;
+}
+ 
+export interface ICredentialSelection {
+  hash: string;
+  id?: string;
+  credential: ICredentialSummary;
+  rawCredential: OriginalVerifiableCredential;
+  isSelected: boolean;
+}
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/did/index.html b/coverage/lcov-report/types/did/index.html new file mode 100644 index 00000000..01006565 --- /dev/null +++ b/coverage/lcov-report/types/did/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/did + + + + + + + + + +
+
+

All files types/did

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/did/index.ts.html b/coverage/lcov-report/types/did/index.ts.html new file mode 100644 index 00000000..861dc355 --- /dev/null +++ b/coverage/lcov-report/types/did/index.ts.html @@ -0,0 +1,108 @@ + + + + Code coverage report for types/did/index.ts + + + + + + + + + +
+
+

All files / types/did index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11  +  +  +  +  +  +  +  +  +  + 
export enum SupportedDidMethodEnum {
+  DID_ETHR = 'ethr',
+  DID_KEY = 'key',
+  DID_LTO = 'lto',
+  DID_ION = 'ion',
+  DID_FACTOM = 'factom',
+  DID_JWK = 'jwk',
+}
+ 
+export type SupportedDIDMethod = 'ethr' | 'key' | 'lto' | 'ion' | 'jwk';
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/error/index.html b/coverage/lcov-report/types/error/index.html new file mode 100644 index 00000000..7a82ecc0 --- /dev/null +++ b/coverage/lcov-report/types/error/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/error + + + + + + + + + +
+
+

All files types/error

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/error/index.ts.html b/coverage/lcov-report/types/error/index.ts.html new file mode 100644 index 00000000..c1593566 --- /dev/null +++ b/coverage/lcov-report/types/error/index.ts.html @@ -0,0 +1,96 @@ + + + + Code coverage report for types/error/index.ts + + + + + + + + + +
+
+

All files / types/error index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7  +  +  +  +  +  + 
export interface IErrorDetails {
+  title: string;
+  message: string;
+  detailsTitle: string;
+  detailsMessage: string;
+}
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/identity/index.html b/coverage/lcov-report/types/identity/index.html new file mode 100644 index 00000000..4ce6e910 --- /dev/null +++ b/coverage/lcov-report/types/identity/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/identity + + + + + + + + + +
+
+

All files types/identity

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/identity/index.ts.html b/coverage/lcov-report/types/identity/index.ts.html new file mode 100644 index 00000000..87f80e30 --- /dev/null +++ b/coverage/lcov-report/types/identity/index.ts.html @@ -0,0 +1,189 @@ + + + + Code coverage report for types/identity/index.ts + + + + + + + + + +
+
+

All files / types/identity index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {IIdentifier, TKeyType} from '@veramo/core';
+ 
+import {SupportedDidMethodEnum} from '../did';
+ 
+export enum KeyManagementSystemEnum {
+  LOCAL = 'local',
+}
+ 
+export enum IdentifierAliasEnum {
+  PRIMARY = 'primary',
+}
+ 
+export interface IAddIdentifierArgs {
+  did: string;
+}
+ 
+export interface ICreateIdentifierArgs {
+  method: SupportedDidMethodEnum;
+  createOpts?: ICreateIdentifierOpts;
+}
+ 
+export interface ICreateOrGetIdentifierArgs {
+  method: SupportedDidMethodEnum;
+  createOpts?: ICreateIdentifierOpts;
+}
+ 
+export interface ICreateIdentifierOpts {
+  kms?: KeyManagementSystemEnum;
+  alias?: string;
+  options?: IIdentifierProviderOpts;
+}
+ 
+export interface IIdentifierProviderOpts {
+  type?: TKeyType;
+  use?: string;
+  [x: string]: any;
+}
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/image/index.html b/coverage/lcov-report/types/image/index.html new file mode 100644 index 00000000..a61d746b --- /dev/null +++ b/coverage/lcov-report/types/image/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/image + + + + + + + + + +
+
+

All files types/image

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/image/index.ts.html b/coverage/lcov-report/types/image/index.ts.html new file mode 100644 index 00000000..7adaa3e6 --- /dev/null +++ b/coverage/lcov-report/types/image/index.ts.html @@ -0,0 +1,87 @@ + + + + Code coverage report for types/image/index.ts + + + + + + + + + +
+
+

All files / types/image index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4  +  +  + 
export interface IPreloadImage {
+  uri: string;
+}
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/index.html b/coverage/lcov-report/types/index.html new file mode 100644 index 00000000..8c593fb2 --- /dev/null +++ b/coverage/lcov-report/types/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types + + + + + + + + + +
+
+

All files types

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/index.ts.html b/coverage/lcov-report/types/index.ts.html new file mode 100644 index 00000000..ea8f28cc --- /dev/null +++ b/coverage/lcov-report/types/index.ts.html @@ -0,0 +1,135 @@ + + + + Code coverage report for types/index.ts + + + + + + + + + +
+
+

All files / types index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
export * from './authentication';
+// export * from './onboarding';
+export * from './component';
+export * from './credential';
+export * from './did';
+export * from './error';
+export * from './identity';
+export * from './navigation';
+export * from './os';
+export * from './provider';
+export * from './qr';
+export * from './service';
+export * from './signature';
+export * from './style';
+export * from './user';
+export * from './store';
+export * from './toast';
+export * from './util';
+export * from './image';
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/navigation/index.html b/coverage/lcov-report/types/navigation/index.html new file mode 100644 index 00000000..43956cf9 --- /dev/null +++ b/coverage/lcov-report/types/navigation/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/navigation + + + + + + + + + +
+
+

All files types/navigation

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/navigation/index.ts.html b/coverage/lcov-report/types/navigation/index.ts.html new file mode 100644 index 00000000..8829708c --- /dev/null +++ b/coverage/lcov-report/types/navigation/index.ts.html @@ -0,0 +1,717 @@ + + + + Code coverage report for types/navigation/index.ts + + + + + + + + + +
+
+

All files / types/navigation index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {Format, PresentationDefinitionV1, PresentationDefinitionV2} from '@sphereon/pex-models';
+import {IBasicIdentity, IContact} from '@sphereon/ssi-sdk.data-store';
+import {OriginalVerifiableCredential} from '@sphereon/ssi-types';
+import {VerifiableCredential} from '@veramo/core';
+ 
+import {IButton, ICredentialSelection, ICredentialSummary, ICredentialTypeSelection, PopupBadgesEnum, PopupImagesEnum} from '../index';
+import {IOnboardingMachineContext, IOnboardingPersonalData, OnboardingInterpretType} from '../onboarding';
+ 
+interface IPersonalDataProps {
+  isDisabled: (personalData: IOnboardingPersonalData) => boolean;
+  onNext: (personalData: IOnboardingPersonalData) => void;
+  onPersonalData: (personalData: IOnboardingPersonalData) => void;
+}
+ 
+export interface IOnboardingProps {
+  customOnboardingInstance?: OnboardingInterpretType;
+  // onBack?: () => void;
+}
+ 
+export type StackParamList = {
+  CredentialsOverview: Record<string, never>;
+  CredentialDetails: ICredentialDetailsProps;
+  CredentialRawJson: ICredentialRawJsonProps;
+  QrReader: Record<string, never>;
+  Veramo: Record<string, never>;
+  Home: Record<string, never>;
+  VerificationCode: IVerificationCodeProps;
+  AlertModal: IAlertModalProps;
+  PopupModal: IPopupModalProps;
+  Error: IPopupModalProps;
+  CredentialSelectType: ICredentialSelectTypeProps;
+  ContactsOverview: Record<string, never>;
+  ContactDetails: IContactDetailsProps;
+  ContactAdd: IContactAddProps;
+  Onboarding: IOnboardingProps;
+  Main: Record<string, never>;
+  Welcome: IHasOnboardingContext & IHasOnNextProps;
+  TermsOfService: IHasOnboardingContext & ITermsOfServiceProps & IHasOnBackProps & IHasOnNextProps;
+  PersonalData: IHasOnboardingContext & IHasOnBackProps & IPersonalDataProps;
+  PinCodeSet: IPinCodeSetProps & IHasOnboardingContext & IHasOnBackProps & IHasOnNextProps;
+  PinCodeVerify: IPinCodeVerifyProps & IHasOnboardingContext & IHasOnBackProps & IHasOnNextProps;
+  OnboardingSummary: IHasOnboardingContext & IHasOnBackProps & IHasOnNextProps;
+  NotificationsOverview: Record<string, never>;
+  Lock: ILockProps;
+  Authentication: Record<string, never>;
+  CredentialsRequired: ICredentialsRequiredProps;
+  CredentialsSelect: ICredentialsSelectProps;
+  Loading: ILoadingProps;
+};
+ 
+export interface IHasOnboardingContext {
+  context: IOnboardingMachineContext;
+}
+ 
+export interface ILoadingProps {
+  message: string;
+}
+ 
+export interface IHasOnNextProps {
+  onNext: (data?: any) => Promise<void>;
+}
+ 
+export interface IHasOnBackProps {
+  onBack: () => Promise<void>;
+}
+ 
+export type IWelcomeProps = IHasOnNextProps;
+ 
+export interface ITermsOfServiceProps {
+  isDisabled: () => boolean;
+  onDecline: () => Promise<void>;
+  onAcceptTerms: (accept: boolean) => Promise<void>;
+  onAcceptPrivacy: (accept: boolean) => Promise<void>;
+}
+ 
+export interface ICredentialsSelectProps {
+  credentialSelection: Array<ICredentialSelection>;
+  purpose?: string;
+  onSelect: (vcs: Array<string>) => Promise<void>;
+}
+ 
+export interface ICredentialsRequiredProps {
+  verifier: string;
+  format: Format | undefined;
+  subjectSyntaxTypesSupported: string[] | undefined;
+  presentationDefinition: PresentationDefinitionV1 | PresentationDefinitionV2;
+  onDecline: () => Promise<void>;
+  onSend: (credentials: Array<OriginalVerifiableCredential>) => Promise<void>;
+}
+ 
+export interface ICredentialDetailsProps {
+  credential: ICredentialSummary;
+  primaryAction?: IButton;
+  secondaryAction?: IButton;
+  showActivity?: boolean;
+  /*
+   TODO WAL-340
+   We want to keep screens simple and we want one object representing the vc to avoid mismatches.
+   What we need is a list of actions that will be used for the 'more' button, where the credential is passed in.
+  */
+  rawCredential?: OriginalVerifiableCredential;
+  headerTitle?: string;
+}
+ 
+export interface ICredentialRawJsonProps {
+  rawCredential: VerifiableCredential;
+}
+ 
+export interface IVerificationCodeProps {
+  pinLength?: number;
+  onVerification: (pin: string) => Promise<void>;
+  credentialName: string;
+}
+ 
+export interface IAlertModalProps {
+  message: string;
+  buttons: Array<IButton>;
+  showCancel?: boolean;
+}
+ 
+export interface IPopupModalProps {
+  onClose?: () => Promise<void>;
+  image?: PopupImagesEnum;
+  title?: string;
+  titleBadge?: PopupBadgesEnum;
+  details?: string;
+  extraDetails?: string;
+  detailsPopup?: {
+    buttonCaption: string;
+    title?: string;
+    details?: string;
+    extraDetails?: string;
+  };
+  primaryButton?: IButton;
+  secondaryButton?: IButton;
+}
+ 
+export interface ICredentialSelectTypeProps {
+  issuer: string;
+  credentialTypes: Array<ICredentialTypeSelection>;
+  onSelect: (credentialTypes: Array<string>) => Promise<void>;
+}
+ 
+export interface IContactDetailsProps {
+  contact: IContact;
+}
+ 
+export interface IContactAddProps {
+  name: string;
+  uri?: string;
+  identities?: Array<IBasicIdentity>;
+  onDecline: () => Promise<void>;
+  onCreate: () => Promise<void>;
+}
+ 
+export interface IPinCodeSetProps {
+  headerSubTitle: string;
+}
+ 
+export interface IPinCodeVerifyProps {
+  headerSubTitle: string;
+}
+ 
+export enum PinCodeMode {
+  CHOOSE_PIN = 'choose_pin',
+  CONFIRM_PIN = 'confirm_pin',
+}
+export interface ILockProps {
+  onAuthenticate: () => Promise<void>;
+}
+ 
+export enum SwitchRoutesEnum {
+  ONBOARDING = 'Onboarding',
+  AUTHENTICATION = 'Authentication',
+  MAIN = 'Main',
+}
+ 
+export enum MainRoutesEnum {
+  HOME = 'Home',
+  ALERT_MODAL = 'AlertModal',
+  POPUP_MODAL = 'PopupModal',
+}
+ 
+export enum NavigationBarRoutesEnum {
+  QR = 'QRStack',
+  NOTIFICATIONS = 'NotificationsStack',
+  CREDENTIALS = 'CredentialsStack',
+  CONTACTS = 'ContactsStack',
+}
+ 
+export enum ScreenRoutesEnum {
+  WELCOME = 'Welcome',
+  CREDENTIALS_OVERVIEW = 'CredentialsOverview',
+  CREDENTIAL_DETAILS = 'CredentialDetails',
+  CREDENTIAL_RAW_JSON = 'CredentialRawJson',
+  QR_READER = 'QrReader',
+  VERIFICATION_CODE = 'VerificationCode',
+  ERROR = 'Error',
+  CREDENTIAL_SELECT_TYPE = 'CredentialSelectType',
+  CONTACTS_OVERVIEW = 'ContactsOverview',
+  CONTACT_DETAILS = 'ContactDetails',
+  CONTACT_ADD = 'ContactAdd',
+  TERMS_OF_SERVICE = 'TermsOfService',
+  PERSONAL_DATA = 'PersonalData',
+  PIN_CODE_SET = 'PinCodeSet',
+  PIN_CODE_VERIFY = 'PinCodeVerify',
+  NOTIFICATIONS_OVERVIEW = 'NotificationsOverview',
+  LOCK = 'Lock',
+  ONBOARDING_SUMMARY = 'OnboardingSummary',
+  CREDENTIALS_REQUIRED = 'CredentialsRequired',
+  CREDENTIALS_SELECT = 'CredentialsSelect',
+  LOADING = 'Loading',
+}
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/onboarding/index.html b/coverage/lcov-report/types/onboarding/index.html new file mode 100644 index 00000000..322e7af7 --- /dev/null +++ b/coverage/lcov-report/types/onboarding/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/onboarding + + + + + + + + + +
+
+

All files types/onboarding

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/onboarding/index.ts.html b/coverage/lcov-report/types/onboarding/index.ts.html new file mode 100644 index 00000000..9e958787 --- /dev/null +++ b/coverage/lcov-report/types/onboarding/index.ts.html @@ -0,0 +1,372 @@ + + + + Code coverage report for types/onboarding/index.ts + + + + + + + + + +
+
+

All files / types/onboarding index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {CredentialPayload, ProofFormat} from '@veramo/core';
+import {Interpreter} from 'xstate';
+import {SupportedDidMethodEnum} from '../did';
+import {ISetPersonalDataActionArgs} from '../store/onboarding.types';
+ 
+export interface IOnboardingCredentialData {
+  didMethod: SupportedDidMethodEnum;
+  credential?: Partial<CredentialPayload>;
+  proofFormat?: ProofFormat;
+}
+ 
+export interface IOnboardingPersonalData {
+  firstName: string;
+  lastName: string;
+  emailAddress: string;
+}
+ 
+export interface IOnboardingMachineContext {
+  credentialData: IOnboardingCredentialData;
+  termsConditionsAccepted: boolean;
+  privacyPolicyAccepted: boolean;
+  pinCode: string;
+  personalData: IOnboardingPersonalData;
+}
+ 
+export enum OnboardingStates {
+  welcomeIntro = 'welcomeIntro',
+  tosAgreement = 'tosAgreement',
+  personalDetailsEntry = 'personalDetailsEntry',
+  personalDetailsVerify = 'personalDetailsVerify',
+  onboardingDeclined = 'onboardingDeclined',
+  onboardingDone = 'onboardingDone',
+  pinEntry = 'pinEntry',
+  pinVerify = 'pinVerify',
+  walletSetup = 'walletSetup',
+}
+ 
+export enum OnboardingEvents {
+  NEXT = 'NEXT',
+  PREVIOUS = 'PREVIOUS',
+  DECLINE = 'DECLINE',
+  SET_TOC = 'SET_TOC',
+  SET_POLICY = 'SET_POLICY',
+  SET_PERSONAL_DATA = 'SET_PERSONAL_DATA',
+  SET_PIN = 'SET_PIN',
+}
+ 
+export type NextEvent = {type: OnboardingEvents.NEXT; data?: any};
+export type PreviousEvent = {type: OnboardingEvents.PREVIOUS};
+export type PersonalDataEvent = {type: OnboardingEvents.SET_PERSONAL_DATA; data: ISetPersonalDataActionArgs};
+export type TermsConditionsEvent = {type: OnboardingEvents.SET_TOC; data: boolean};
+export type PrivacyPolicyEvent = {type: OnboardingEvents.SET_POLICY; data: boolean};
+export type PinSetEvent = {type: OnboardingEvents.SET_PIN; data: string};
+export type DeclineEvent = {type: OnboardingEvents.DECLINE};
+export type OnboardingEventTypes =
+  | NextEvent
+  | PreviousEvent
+  | TermsConditionsEvent
+  | PrivacyPolicyEvent
+  | PersonalDataEvent
+  | PinSetEvent
+  | DeclineEvent;
+ 
+export enum OnboardingGuards {
+  onboardingToSAgreementGuard = 'onboardingToSAgreementGuard',
+  onboardingPersonalDataGuard = 'onboardingPersonalDataGuard',
+  onboardingPinCodeSetGuard = 'onboardingPinCodeSetGuard',
+  onboardingPinCodeVerifyGuard = 'onboardingPinCodeVerifyGuard',
+}
+ 
+// We use this in class components, as there is no context available there. It is also used by default in the onboarding provider
+ 
+export type OnboardingInterpretType = Interpreter<
+  IOnboardingMachineContext,
+  any,
+  OnboardingEventTypes,
+  {
+    value: any;
+    context: IOnboardingMachineContext;
+  },
+  any
+>;
+ 
+export interface OnboardingContextType {
+  onboardingInstance: OnboardingInterpretType;
+}
+ 
+export interface ICreateOnboardingMachineOpts {
+  credentialData?: Partial<IOnboardingCredentialData>;
+  machineId?: string;
+}
+ 
+export interface IInstanceOnboardingMachineOpts extends ICreateOnboardingMachineOpts {
+  services?: any;
+  guards?: any;
+  subscription?: () => void;
+  requireCustomNavigationHook?: boolean;
+}
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/os/index.html b/coverage/lcov-report/types/os/index.html new file mode 100644 index 00000000..030afadf --- /dev/null +++ b/coverage/lcov-report/types/os/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/os + + + + + + + + + +
+
+

All files types/os

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/os/index.ts.html b/coverage/lcov-report/types/os/index.ts.html new file mode 100644 index 00000000..aa6f7bbe --- /dev/null +++ b/coverage/lcov-report/types/os/index.ts.html @@ -0,0 +1,90 @@ + + + + Code coverage report for types/os/index.ts + + + + + + + + + +
+
+

All files / types/os index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5  +  +  +  + 
export enum PlatformsEnum {
+  IOS = 'ios',
+  ANDROID = 'android',
+}
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/provider/index.html b/coverage/lcov-report/types/provider/index.html new file mode 100644 index 00000000..8588de10 --- /dev/null +++ b/coverage/lcov-report/types/provider/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/provider + + + + + + + + + +
+
+

All files types/provider

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/provider/index.ts.html b/coverage/lcov-report/types/provider/index.ts.html new file mode 100644 index 00000000..84b79e68 --- /dev/null +++ b/coverage/lcov-report/types/provider/index.ts.html @@ -0,0 +1,81 @@ + + + + Code coverage report for types/provider/index.ts + + + + + + + + + +
+
+

All files / types/provider index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2  + 
export * from './openIdVcIssuanceProvider';
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/provider/openIdVcIssuanceProvider/index.html b/coverage/lcov-report/types/provider/openIdVcIssuanceProvider/index.html new file mode 100644 index 00000000..c1b575e7 --- /dev/null +++ b/coverage/lcov-report/types/provider/openIdVcIssuanceProvider/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/provider/openIdVcIssuanceProvider + + + + + + + + + +
+
+

All files types/provider/openIdVcIssuanceProvider

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/provider/openIdVcIssuanceProvider/index.ts.html b/coverage/lcov-report/types/provider/openIdVcIssuanceProvider/index.ts.html new file mode 100644 index 00000000..18b55a41 --- /dev/null +++ b/coverage/lcov-report/types/provider/openIdVcIssuanceProvider/index.ts.html @@ -0,0 +1,258 @@ + + + + Code coverage report for types/provider/openIdVcIssuanceProvider/index.ts + + + + + + + + + +
+
+

All files / types/provider/openIdVcIssuanceProvider index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {CredentialSupported, EndpointMetadata, EndpointMetadataResult, MetadataDisplay} from '@sphereon/oid4vci-common';
+import {TKeyType} from '@veramo/core';
+ 
+import {SupportedDidMethodEnum} from '../../did';
+import {IBasicCredentialLocaleBranding} from '@sphereon/ssi-sdk.data-store';
+ 
+export interface IGetIssuanceInitiationFromUriArgs {
+  uri: string;
+}
+ 
+export interface IGetCredentialArgs {
+  credentialType: string;
+  pin?: string;
+}
+ 
+export interface IGetCredentialsArgs {
+  pin?: string;
+  credentials?: Array<string>;
+}
+ 
+export type IIssuanceOpts = CredentialSupported & {
+  didMethod: SupportedDidMethodEnum;
+  keyType: TKeyType;
+};
+ 
+export interface IGetVcIssuanceFormatArgs {
+  credentialSupported: CredentialSupported;
+}
+ 
+/*
+export interface IGetIssuanceCryptoSuiteArgs {
+  credentialFormatOpts: ICredentialFormatOpts;
+}
+*/
+ 
+/*
+export interface ICredentialFormatOpts {
+  // credentialFormat: CredentialFormatSupport;
+  // format: OpenID4VCICredentialFormatTypes;
+}
+*/
+ 
+export enum Oidc4vciErrorEnum {
+  INVALID_REQUEST = 'invalid_request',
+  INVALID_CLIENT = 'invalid_client',
+  INVALID_GRANT = 'invalid_grant-vc',
+  UNAUTHORIZED_CLIENT = 'unauthorized_client',
+  UNSUPPORTED_GRANT_TYPE = 'unsupported_grant_type',
+  INVALID_SCOPE = 'invalid_scope',
+  INVALID_OR_MISSING_PROOF = 'invalid_or_missing_proof',
+  VERIFICATION_FAILED = 'verification_failed',
+}
+ 
+export interface IServerMetadataAndCryptoMatchingResponse {
+  serverMetadata: EndpointMetadataResult;
+  issuanceOpts: Array<IIssuanceOpts>;
+  credentialsSupported: Array<CredentialSupported>;
+  credentialBranding: Map<string, Array<IBasicCredentialLocaleBranding>>;
+  issuerBranding?: Array<MetadataDisplay>;
+}
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/qr/index.html b/coverage/lcov-report/types/qr/index.html new file mode 100644 index 00000000..b2b986f6 --- /dev/null +++ b/coverage/lcov-report/types/qr/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/qr + + + + + + + + + +
+
+

All files types/qr

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/qr/index.ts.html b/coverage/lcov-report/types/qr/index.ts.html new file mode 100644 index 00000000..a8e1ee4f --- /dev/null +++ b/coverage/lcov-report/types/qr/index.ts.html @@ -0,0 +1,186 @@ + + + + Code coverage report for types/qr/index.ts + + + + + + + + + +
+
+

All files / types/qr index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {NativeStackNavigationProp} from '@react-navigation/native-stack';
+ 
+export enum QrTypesEnum {
+  AUTH = 'auth',
+  SIOPV2 = 'siopv2',
+  OPENID_VC = 'openid-vc',
+  OPENID4VC = 'openid4vc',
+  OPENID = 'openid',
+  OPENID_INITIATE_ISSUANCE = 'openid-initiate-issuance',
+  OPENID_CREDENTIAL_OFFER = 'openid-credential-offer',
+}
+ 
+export interface IQrData {
+  type: QrTypesEnum;
+  [x: string]: any;
+}
+ 
+export interface IQrAuthentication extends IQrData {
+  mode: string;
+}
+ 
+export interface IQrDidSiopAuthenticationRequest extends IQrAuthentication {
+  state: string;
+  did: string;
+  redirectUrl: string;
+}
+ 
+export interface IQrDataArgs {
+  qrData: IQrData;
+  navigation: NativeStackNavigationProp<any>; // TODO fix any
+}
+ 
+export interface IReadQrArgs {
+  qrData: string;
+  navigation: NativeStackNavigationProp<any>; // TODO fix any
+}
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/service/brandingService/index.html b/coverage/lcov-report/types/service/brandingService/index.html new file mode 100644 index 00000000..55852014 --- /dev/null +++ b/coverage/lcov-report/types/service/brandingService/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/service/brandingService + + + + + + + + + +
+
+

All files types/service/brandingService

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/service/brandingService/index.ts.html b/coverage/lcov-report/types/service/brandingService/index.ts.html new file mode 100644 index 00000000..8124c568 --- /dev/null +++ b/coverage/lcov-report/types/service/brandingService/index.ts.html @@ -0,0 +1,123 @@ + + + + Code coverage report for types/service/brandingService/index.ts + + + + + + + + + +
+
+

All files / types/service/brandingService index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {FindCredentialBrandingArgs, IBasicCredentialLocaleBranding, IBasicIssuerLocaleBranding} from '@sphereon/ssi-sdk.data-store';
+ 
+export interface IAddCredentialBrandingArgs {
+  issuerCorrelationId: string;
+  vcHash: string;
+  localeBranding: Array<IBasicCredentialLocaleBranding>;
+}
+ 
+export interface IRemoveCredentialBrandingArgs {
+  filter: FindCredentialBrandingArgs;
+}
+ 
+export interface ISelectAppLocaleBrandingArgs {
+  localeBranding?: Array<IBasicCredentialLocaleBranding | IBasicIssuerLocaleBranding>;
+}
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/service/contactService/index.html b/coverage/lcov-report/types/service/contactService/index.html new file mode 100644 index 00000000..617fc620 --- /dev/null +++ b/coverage/lcov-report/types/service/contactService/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/service/contactService + + + + + + + + + +
+
+

All files types/service/contactService

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/service/contactService/index.ts.html b/coverage/lcov-report/types/service/contactService/index.ts.html new file mode 100644 index 00000000..c3355f84 --- /dev/null +++ b/coverage/lcov-report/types/service/contactService/index.ts.html @@ -0,0 +1,153 @@ + + + + Code coverage report for types/service/contactService/index.ts + + + + + + + + + +
+
+

All files / types/service/contactService index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {FindContactArgs, FindIdentityArgs, IBasicIdentity, IContact} from '@sphereon/ssi-sdk.data-store';
+ 
+export interface ICreateContactArgs {
+  name: string;
+  alias: string;
+  uri?: string;
+  identities?: Array<IBasicIdentity>;
+}
+ 
+export interface IUpdateContactArgs {
+  contact: IContact;
+}
+ 
+export interface IAddIdentityArgs {
+  contactId: string;
+  identity: IBasicIdentity;
+}
+ 
+export interface IGetContactsArgs {
+  filter?: FindContactArgs;
+}
+ 
+export interface IGetIdentitiesArgs {
+  filter?: FindIdentityArgs;
+}
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/service/credentialService/index.html b/coverage/lcov-report/types/service/credentialService/index.html new file mode 100644 index 00000000..b9e1c6ba --- /dev/null +++ b/coverage/lcov-report/types/service/credentialService/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/service/credentialService + + + + + + + + + +
+
+

All files types/service/credentialService

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/service/credentialService/index.ts.html b/coverage/lcov-report/types/service/credentialService/index.ts.html new file mode 100644 index 00000000..a32d3ac1 --- /dev/null +++ b/coverage/lcov-report/types/service/credentialService/index.ts.html @@ -0,0 +1,162 @@ + + + + Code coverage report for types/service/credentialService/index.ts + + + + + + + + + +
+
+

All files / types/service/credentialService index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {WrappedVerifiableCredential, WrappedVerifiablePresentation} from '@sphereon/ssi-types';
+import {VerifiableCredential} from '@veramo/core';
+ 
+export interface IStoreVerifiableCredentialArgs {
+  vc: VerifiableCredential;
+}
+ 
+export interface IGetVerifiableCredentialArgs {
+  hash: string;
+}
+ 
+export interface IDeleteVerifiableCredentialArgs {
+  hash: string;
+}
+ 
+export interface IVerificationResult {
+  result: boolean;
+  source: WrappedVerifiableCredential | WrappedVerifiablePresentation;
+  subResults: IVerificationSubResult[];
+  error?: string | undefined;
+  errorDetails?: string;
+}
+ 
+export interface IVerificationSubResult {
+  result: boolean;
+  error?: string;
+  errorDetails?: string;
+}
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/service/fileService/index.html b/coverage/lcov-report/types/service/fileService/index.html new file mode 100644 index 00000000..c451dccb --- /dev/null +++ b/coverage/lcov-report/types/service/fileService/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/service/fileService + + + + + + + + + +
+
+

All files types/service/fileService

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/service/fileService/index.ts.html b/coverage/lcov-report/types/service/fileService/index.ts.html new file mode 100644 index 00000000..6469e00e --- /dev/null +++ b/coverage/lcov-report/types/service/fileService/index.ts.html @@ -0,0 +1,87 @@ + + + + Code coverage report for types/service/fileService/index.ts + + + + + + + + + +
+
+

All files / types/service/fileService index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4  +  +  + 
export interface IReadFileArgs {
+  filePath: string;
+}
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/service/index.html b/coverage/lcov-report/types/service/index.html new file mode 100644 index 00000000..d9558d43 --- /dev/null +++ b/coverage/lcov-report/types/service/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/service + + + + + + + + + +
+
+

All files types/service

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/service/index.ts.html b/coverage/lcov-report/types/service/index.ts.html new file mode 100644 index 00000000..d1743157 --- /dev/null +++ b/coverage/lcov-report/types/service/index.ts.html @@ -0,0 +1,93 @@ + + + + Code coverage report for types/service/index.ts + + + + + + + + + +
+
+

All files / types/service index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6  +  +  +  +  + 
export * from './contactService';
+export * from './credentialService';
+export * from './fileService';
+export * from './storageService';
+export * from './brandingService';
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/service/storageService/index.html b/coverage/lcov-report/types/service/storageService/index.html new file mode 100644 index 00000000..1bc184d1 --- /dev/null +++ b/coverage/lcov-report/types/service/storageService/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/service/storageService + + + + + + + + + +
+
+

All files types/service/storageService

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/service/storageService/index.ts.html b/coverage/lcov-report/types/service/storageService/index.ts.html new file mode 100644 index 00000000..1ff170b7 --- /dev/null +++ b/coverage/lcov-report/types/service/storageService/index.ts.html @@ -0,0 +1,114 @@ + + + + Code coverage report for types/service/storageService/index.ts + + + + + + + + + +
+
+

All files / types/service/storageService index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13  +  +  +  +  +  +  +  +  +  +  +  + 
import {ACCESSIBLE} from 'react-native-secure-key-store';
+ 
+import {IUser} from '../../user';
+ 
+export interface IStorePinArgs {
+  value: string;
+  accessible?: ACCESSIBLE;
+}
+ 
+export interface IStoreUserArgs {
+  user: IUser;
+}
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/signature/index.html b/coverage/lcov-report/types/signature/index.html new file mode 100644 index 00000000..7358b259 --- /dev/null +++ b/coverage/lcov-report/types/signature/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/signature + + + + + + + + + +
+
+

All files types/signature

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/signature/index.ts.html b/coverage/lcov-report/types/signature/index.ts.html new file mode 100644 index 00000000..c652337b --- /dev/null +++ b/coverage/lcov-report/types/signature/index.ts.html @@ -0,0 +1,105 @@ + + + + Code coverage report for types/signature/index.ts + + + + + + + + + +
+
+

All files / types/signature index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10  +  +  +  +  +  +  +  +  + 
import {IIdentifier} from '@veramo/core';
+import {JWTHeader, JWTPayload} from 'did-jwt';
+ 
+export interface ISignJwtArgs {
+  identifier: IIdentifier;
+  header: Partial<JWTHeader>;
+  payload: Partial<JWTPayload>;
+  options: {issuer: string; expiresIn?: number; canonicalize?: boolean};
+}
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/store/contact.action.types.ts.html b/coverage/lcov-report/types/store/contact.action.types.ts.html new file mode 100644 index 00000000..bd6a3f00 --- /dev/null +++ b/coverage/lcov-report/types/store/contact.action.types.ts.html @@ -0,0 +1,420 @@ + + + + Code coverage report for types/store/contact.action.types.ts + + + + + + + + + +
+
+

All files / types/store contact.action.types.ts

+
+
+ 100% + Statements + 12/12 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 12/12 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115  +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {IBasicIdentity, IContact, IIdentity} from '@sphereon/ssi-sdk.data-store';
+ 
+export const CONTACTS_LOADING = '[CONTACT] CONTACTS_LOADING';
+export type CONTACTS_LOADING = typeof CONTACTS_LOADING;
+export const GET_CONTACTS_SUCCESS = '[CONTACT] GET_CONTACTS_SUCCESS';
+export type GET_CONTACTS_SUCCESS = typeof GET_CONTACTS_SUCCESS;
+export const GET_CONTACTS_FAILED = '[CONTACT] GET_CONTACTS_FAILED ';
+export type GET_CONTACTS_FAILED = typeof GET_CONTACTS_FAILED;
+export const CREATE_CONTACT_SUCCESS = '[CONTACT] CREATE_CONTACT_SUCCESS';
+export type CREATE_CONTACT_SUCCESS = typeof CREATE_CONTACT_SUCCESS;
+export const CREATE_CONTACT_FAILED = '[CONTACT] STORE_CONTACT_FAILED';
+export type CREATE_CONTACT_FAILED = typeof CREATE_CONTACT_FAILED;
+export const UPDATE_CONTACT_SUCCESS = '[CONTACT] UPDATE_CONTACT_SUCCESS';
+export type UPDATE_CONTACT_SUCCESS = typeof UPDATE_CONTACT_SUCCESS;
+export const UPDATE_CONTACT_FAILED = '[CONTACT] UPDATE_CONTACT_FAILED';
+export type UPDATE_CONTACT_FAILED = typeof UPDATE_CONTACT_FAILED;
+export const DELETE_CONTACT_SUCCESS = '[CONTACT] DELETE_CONTACT_SUCCESS';
+export type DELETE_CONTACT_SUCCESS = typeof DELETE_CONTACT_SUCCESS;
+export const DELETE_CONTACT_FAILED = '[CONTACT] DELETE_CONTACT_FAILED';
+export type DELETE_CONTACT_FAILED = typeof DELETE_CONTACT_FAILED;
+export const ADD_IDENTITY_SUCCESS = '[CONTACT] ADD_IDENTITY_SUCCESS';
+export type ADD_IDENTITY_SUCCESS = typeof ADD_IDENTITY_SUCCESS;
+export const ADD_IDENTITY_FAILED = '[CONTACT] ADD_IDENTITY_FAILED';
+export type ADD_IDENTITY_FAILED = typeof ADD_IDENTITY_FAILED;
+export const CLEAR_CONTACTS = '[CONTACT] CLEAR_CONTACTS';
+export type CLEAR_CONTACTS = typeof CLEAR_CONTACTS;
+ 
+interface IContactsLoading {
+  type: CONTACTS_LOADING;
+}
+ 
+interface IGetContactsSuccessAction {
+  type: GET_CONTACTS_SUCCESS;
+  payload: Array<IContact>;
+}
+ 
+interface IGetContactsFailedAction {
+  type: GET_CONTACTS_FAILED;
+}
+ 
+interface ICreateContactSuccessAction {
+  type: CREATE_CONTACT_SUCCESS;
+  payload: IContact;
+}
+ 
+interface ICreateContactFailedAction {
+  type: CREATE_CONTACT_FAILED;
+}
+ 
+interface IUpdateContactSuccessAction {
+  type: UPDATE_CONTACT_SUCCESS;
+  payload: IContact;
+}
+ 
+interface IUpdateContactFailedAction {
+  type: UPDATE_CONTACT_FAILED;
+}
+ 
+interface IDeleteContactSuccessAction {
+  type: DELETE_CONTACT_SUCCESS;
+  payload: string;
+}
+ 
+interface IDeleteContactFailedAction {
+  type: DELETE_CONTACT_FAILED;
+}
+ 
+interface IAddIdentitySuccessAction {
+  type: ADD_IDENTITY_SUCCESS;
+  payload: IAddIdentitySuccessActionPayload;
+}
+ 
+interface IAddIdentityFailedAction {
+  type: ADD_IDENTITY_FAILED;
+}
+ 
+export interface ICreateContactArgs {
+  name: string;
+  alias: string;
+  uri?: string;
+  identities?: Array<IBasicIdentity>;
+}
+ 
+export interface IUpdateContactArgs {
+  contact: IContact;
+}
+ 
+export interface IAddIdentityArgs {
+  contactId: string;
+  identity: IBasicIdentity;
+}
+ 
+export interface IAddIdentitySuccessActionPayload {
+  contactId: string;
+  identity: IIdentity;
+}
+ 
+interface IClearContactsAction {
+  type: CLEAR_CONTACTS;
+}
+ 
+export type ContactActionTypes =
+  | IContactsLoading
+  | IGetContactsSuccessAction
+  | IGetContactsFailedAction
+  | ICreateContactSuccessAction
+  | ICreateContactFailedAction
+  | IUpdateContactSuccessAction
+  | IUpdateContactFailedAction
+  | IDeleteContactSuccessAction
+  | IDeleteContactFailedAction
+  | IAddIdentitySuccessAction
+  | IAddIdentityFailedAction
+  | IClearContactsAction;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/store/credential.action.types.ts.html b/coverage/lcov-report/types/store/credential.action.types.ts.html new file mode 100644 index 00000000..90522350 --- /dev/null +++ b/coverage/lcov-report/types/store/credential.action.types.ts.html @@ -0,0 +1,312 @@ + + + + Code coverage report for types/store/credential.action.types.ts + + + + + + + + + +
+
+

All files / types/store credential.action.types.ts

+
+
+ 100% + Statements + 10/10 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 10/10 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79  +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {ICredentialSummary} from '../credential';
+ 
+export const CREDENTIALS_LOADING = '[CREDENTIAL] CREDENTIALS_LOADING';
+export type CREDENTIALS_LOADING = typeof CREDENTIALS_LOADING;
+export const GET_CREDENTIALS_SUCCESS = '[CREDENTIAL] GET_CREDENTIALS_SUCCESS';
+export type GET_CREDENTIALS_SUCCESS = typeof GET_CREDENTIALS_SUCCESS;
+export const GET_CREDENTIALS_FAILED = '[CREDENTIAL] GET_CREDENTIALS_FAILED ';
+export type GET_CREDENTIALS_FAILED = typeof GET_CREDENTIALS_FAILED;
+export const STORE_CREDENTIAL_SUCCESS = '[CREDENTIAL] STORE_CREDENTIAL_SUCCESS';
+export type STORE_CREDENTIAL_SUCCESS = typeof STORE_CREDENTIAL_SUCCESS;
+export const STORE_CREDENTIAL_FAILED = '[CREDENTIAL] STORE_CREDENTIAL_FAILED';
+export type STORE_CREDENTIAL_FAILED = typeof STORE_CREDENTIAL_FAILED;
+export const DELETE_CREDENTIAL_SUCCESS = '[CREDENTIAL] DELETE_CREDENTIAL_SUCCESS';
+export type DELETE_CREDENTIAL_SUCCESS = typeof DELETE_CREDENTIAL_SUCCESS;
+export const DELETE_CREDENTIAL_FAILED = '[CREDENTIAL] DELETE_CREDENTIAL_FAILED';
+export type DELETE_CREDENTIAL_FAILED = typeof DELETE_CREDENTIAL_FAILED;
+export const CREATE_CREDENTIAL_SUCCESS = '[CREDENTIAL] CREATE_CREDENTIAL_SUCCESS';
+export type CREATE_CREDENTIAL_SUCCESS = typeof CREATE_CREDENTIAL_SUCCESS;
+export const CREATE_CREDENTIAL_FAILED = '[CREDENTIAL] CREATE_CREDENTIAL_FAILED';
+export type CREATE_CREDENTIAL_FAILED = typeof CREATE_CREDENTIAL_FAILED;
+export const CLEAR_CREDENTIALS = '[CREDENTIAL] CLEAR_CREDENTIALS';
+export type CLEAR_CREDENTIALS = typeof CLEAR_CREDENTIALS;
+ 
+interface ICredentialsLoading {
+  type: CREDENTIALS_LOADING;
+}
+ 
+interface IGetCredentialsSuccessAction {
+  payload: Array<ICredentialSummary>;
+  type: GET_CREDENTIALS_SUCCESS;
+}
+ 
+interface IGetCredentialsFailedAction {
+  type: GET_CREDENTIALS_FAILED;
+}
+ 
+interface IStoreCredentialsSuccessAction {
+  payload: ICredentialSummary;
+  type: STORE_CREDENTIAL_SUCCESS;
+}
+ 
+interface IStoreCredentialsFailedAction {
+  type: STORE_CREDENTIAL_FAILED;
+}
+ 
+interface IDeleteCredentialsSuccessAction {
+  payload: string;
+  type: DELETE_CREDENTIAL_SUCCESS;
+}
+ 
+interface IDeleteCredentialsFailedAction {
+  type: DELETE_CREDENTIAL_FAILED;
+}
+ 
+interface ICreateCredentialsSuccessAction {
+  payload: ICredentialSummary;
+  type: CREATE_CREDENTIAL_SUCCESS;
+}
+ 
+interface ICreateCredentialsFailedAction {
+  type: CREATE_CREDENTIAL_FAILED;
+}
+ 
+interface IClearCredentialsAction {
+  type: CLEAR_CREDENTIALS;
+}
+ 
+export type CredentialActionTypes =
+  | ICredentialsLoading
+  | IGetCredentialsSuccessAction
+  | IGetCredentialsFailedAction
+  | IStoreCredentialsSuccessAction
+  | IStoreCredentialsFailedAction
+  | IDeleteCredentialsSuccessAction
+  | IDeleteCredentialsFailedAction
+  | ICreateCredentialsSuccessAction
+  | ICreateCredentialsFailedAction
+  | IClearCredentialsAction;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/store/index.html b/coverage/lcov-report/types/store/index.html new file mode 100644 index 00000000..0d79a262 --- /dev/null +++ b/coverage/lcov-report/types/store/index.html @@ -0,0 +1,168 @@ + + + + Code coverage report for types/store + + + + + + + + + +
+
+

All files types/store

+
+
+ 100% + Statements + 34/34 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 34/34 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
contact.action.types.ts +
+
+
+
+
100%12/12100%0/0100%0/0100%12/12
+ credential.action.types.ts + +
+
+
+
+
100%10/10100%0/0100%0/0100%10/10
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
user.action.types.ts +
+
+
+
+
100%12/12100%0/0100%0/0100%12/12
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/store/index.ts.html b/coverage/lcov-report/types/store/index.ts.html new file mode 100644 index 00000000..1e3fe38a --- /dev/null +++ b/coverage/lcov-report/types/store/index.ts.html @@ -0,0 +1,87 @@ + + + + Code coverage report for types/store/index.ts + + + + + + + + + +
+
+

All files / types/store index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4  +  +  + 
import {rootReducer} from '../../store';
+ 
+export type RootState = ReturnType<typeof rootReducer>;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/store/user.action.types.ts.html b/coverage/lcov-report/types/store/user.action.types.ts.html new file mode 100644 index 00000000..b618890b --- /dev/null +++ b/coverage/lcov-report/types/store/user.action.types.ts.html @@ -0,0 +1,357 @@ + + + + Code coverage report for types/store/user.action.types.ts + + + + + + + + + +
+
+

All files / types/store user.action.types.ts

+
+
+ 100% + Statements + 12/12 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 100% + Functions + 0/0 +
+ +
+ 100% + Lines + 12/12 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94  +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {IUser} from '../user';
+ 
+export const USERS_LOADING = '[USER] USERS_LOADING';
+export type USERS_LOADING = typeof USERS_LOADING;
+export const CREATE_USER_SUCCESS = '[USER] CREATE_USER_SUCCESS';
+export type CREATE_USER_SUCCESS = typeof CREATE_USER_SUCCESS;
+export const CREATE_USER_FAILED = '[USER] CREATE_USER_FAILED';
+export type CREATE_USER_FAILED = typeof CREATE_USER_FAILED;
+export const GET_USERS_SUCCESS = '[USER] GET_USERS_SUCCESS';
+export type GET_USERS_SUCCESS = typeof GET_USERS_SUCCESS;
+export const GET_USERS_FAILED = '[USER] GET_USERS_FAILED';
+export type GET_USERS_FAILED = typeof GET_USERS_FAILED;
+export const LOGIN_SUCCESS = '[USER] LOGIN_SUCCESS';
+export type LOGIN_SUCCESS = typeof LOGIN_SUCCESS;
+export const LOGIN_FAILED = '[USER] LOGIN_FAILED';
+export type LOGIN_FAILED = typeof LOGIN_FAILED;
+export const LOGOUT_SUCCESS = '[USER] LOGOUT_SUCCESS';
+export type LOGOUT_SUCCESS = typeof LOGOUT_SUCCESS;
+export const UPDATE_USER_SUCCESS = '[USER] UPDATE_USER_SUCCESS';
+export type UPDATE_USER_SUCCESS = typeof UPDATE_USER_SUCCESS;
+export const UPDATE_USER_FAILED = '[USER] UPDATE_USER_FAILED';
+export type UPDATE_USER_FAILED = typeof UPDATE_USER_FAILED;
+export const DELETE_USER_SUCCESS = '[USER] DELETE_USER_SUCCESS';
+export type DELETE_USER_SUCCESS = typeof DELETE_USER_SUCCESS;
+export const DELETE_USER_FAILED = '[USER] DELETE_USER_FAILED';
+export type DELETE_USER_FAILED = typeof DELETE_USER_FAILED;
+ 
+interface IUsersLoading {
+  type: USERS_LOADING;
+}
+ 
+interface ICreateUserActionSuccessAction {
+  type: CREATE_USER_SUCCESS;
+  payload: IUser;
+}
+ 
+interface ICreateUserActionFailedAction {
+  type: CREATE_USER_FAILED;
+}
+ 
+interface IGetUsersActionSuccessAction {
+  type: GET_USERS_SUCCESS;
+  payload: Map<string, IUser>;
+}
+ 
+interface IGetUsersActionFailedAction {
+  type: GET_USERS_FAILED;
+}
+ 
+interface ILoginActionFailedAction {
+  type: LOGIN_FAILED;
+}
+ 
+interface ILoginActionSuccessAction {
+  type: LOGIN_SUCCESS;
+  payload: IUser;
+}
+ 
+interface ILogoutActionSuccessAction {
+  type: LOGOUT_SUCCESS;
+}
+ 
+interface IUpdateUserActionSuccessAction {
+  type: UPDATE_USER_SUCCESS;
+  payload: IUser;
+}
+ 
+interface IUpdateUserActionFailedAction {
+  type: UPDATE_USER_FAILED;
+}
+ 
+interface IDeleteUserActionSuccessAction {
+  type: DELETE_USER_SUCCESS;
+  payload: string;
+}
+ 
+interface IDeleteUserActionFailedAction {
+  type: DELETE_USER_FAILED;
+}
+ 
+export type UserActionTypes =
+  | IUsersLoading
+  | IGetUsersActionFailedAction
+  | IGetUsersActionSuccessAction
+  | ICreateUserActionSuccessAction
+  | ICreateUserActionFailedAction
+  | ILoginActionSuccessAction
+  | ILoginActionFailedAction
+  | ILogoutActionSuccessAction
+  | IUpdateUserActionSuccessAction
+  | IUpdateUserActionFailedAction
+  | IDeleteUserActionSuccessAction
+  | IDeleteUserActionFailedAction;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/style/index.html b/coverage/lcov-report/types/style/index.html new file mode 100644 index 00000000..14d02a4c --- /dev/null +++ b/coverage/lcov-report/types/style/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/style + + + + + + + + + +
+
+

All files types/style

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/style/index.ts.html b/coverage/lcov-report/types/style/index.ts.html new file mode 100644 index 00000000..ed18e70b --- /dev/null +++ b/coverage/lcov-report/types/style/index.ts.html @@ -0,0 +1,87 @@ + + + + Code coverage report for types/style/index.ts + + + + + + + + + +
+
+

All files / types/style index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4  +  +  + 
export enum OpacityStyleEnum {
+  DISABLED = 0.5,
+}
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/toast/index.html b/coverage/lcov-report/types/toast/index.html new file mode 100644 index 00000000..9f9197a5 --- /dev/null +++ b/coverage/lcov-report/types/toast/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/toast + + + + + + + + + +
+
+

All files types/toast

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/toast/index.ts.html b/coverage/lcov-report/types/toast/index.ts.html new file mode 100644 index 00000000..beec8a30 --- /dev/null +++ b/coverage/lcov-report/types/toast/index.ts.html @@ -0,0 +1,120 @@ + + + + Code coverage report for types/toast/index.ts + + + + + + + + + +
+
+

All files / types/toast index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
export enum ToastTypeEnum {
+  TOAST_SUCCESS = 'ssiAlertToastSuccess',
+  TOAST_ERROR = 'ssiAlertToastError',
+}
+ 
+export interface IToastConfigParams {
+  title?: string;
+  message?: string;
+  showBadge?: boolean;
+}
+ 
+export interface IToastCustomProps {
+  showBadge?: boolean;
+}
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/user/index.html b/coverage/lcov-report/types/user/index.html new file mode 100644 index 00000000..2f6af35a --- /dev/null +++ b/coverage/lcov-report/types/user/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/user + + + + + + + + + +
+
+

All files types/user

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/user/index.ts.html b/coverage/lcov-report/types/user/index.ts.html new file mode 100644 index 00000000..31a47842 --- /dev/null +++ b/coverage/lcov-report/types/user/index.ts.html @@ -0,0 +1,147 @@ + + + + Code coverage report for types/user/index.ts + + + + + + + + + +
+
+

All files / types/user index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
export interface IUser {
+  id: string;
+  firstName: string;
+  lastName: string;
+  emailAddress: string;
+  identifiers: Array<IUserIdentifier>;
+  createdAt: Date;
+  lastUpdatedAt: Date;
+}
+ 
+export interface BasicUser {
+  firstName: string;
+  lastName: string;
+  emailAddress: string;
+  identifiers?: Array<BasicUserIdentifier>;
+}
+ 
+export interface IUserIdentifier {
+  did: string;
+  createdAt: Date;
+  lastUpdatedAt: Date;
+}
+export type BasicUserIdentifier = Omit<IUserIdentifier, 'createdAt' | 'lastUpdatedAt'>;
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/util/index.html b/coverage/lcov-report/types/util/index.html new file mode 100644 index 00000000..6b077b62 --- /dev/null +++ b/coverage/lcov-report/types/util/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/util + + + + + + + + + +
+
+

All files types/util

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/util/index.ts.html b/coverage/lcov-report/types/util/index.ts.html new file mode 100644 index 00000000..78791572 --- /dev/null +++ b/coverage/lcov-report/types/util/index.ts.html @@ -0,0 +1,84 @@ + + + + Code coverage report for types/util/index.ts + + + + + + + + + +
+
+

All files / types/util index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3  +  + 
export * from './navigationUtils';
+export * from './sortUtils';
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/util/navigationUtils/index.html b/coverage/lcov-report/types/util/navigationUtils/index.html new file mode 100644 index 00000000..dfa5bd3d --- /dev/null +++ b/coverage/lcov-report/types/util/navigationUtils/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/util/navigationUtils + + + + + + + + + +
+
+

All files types/util/navigationUtils

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/util/navigationUtils/index.ts.html b/coverage/lcov-report/types/util/navigationUtils/index.ts.html new file mode 100644 index 00000000..ba74ceba --- /dev/null +++ b/coverage/lcov-report/types/util/navigationUtils/index.ts.html @@ -0,0 +1,105 @@ + + + + Code coverage report for types/util/navigationUtils/index.ts + + + + + + + + + +
+
+

All files / types/util/navigationUtils index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10  +  +  +  +  +  +  +  +  + 
import {NativeStackNavigationProp} from '@react-navigation/native-stack';
+ 
+import {NavigationBarRoutesEnum, ScreenRoutesEnum} from '../../navigation';
+ 
+export interface filterNavigationStackArgs {
+  navigation: NativeStackNavigationProp<any>;
+  stack: NavigationBarRoutesEnum;
+  filter: Array<ScreenRoutesEnum>;
+}
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/util/sortUtils/index.html b/coverage/lcov-report/types/util/sortUtils/index.html new file mode 100644 index 00000000..55b970d5 --- /dev/null +++ b/coverage/lcov-report/types/util/sortUtils/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for types/util/sortUtils + + + + + + + + + +
+
+

All files types/util/sortUtils

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
+
+
+
0%0/00%0/00%0/00%0/0
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/types/util/sortUtils/index.ts.html b/coverage/lcov-report/types/util/sortUtils/index.ts.html new file mode 100644 index 00000000..5c4ba3dc --- /dev/null +++ b/coverage/lcov-report/types/util/sortUtils/index.ts.html @@ -0,0 +1,90 @@ + + + + Code coverage report for types/util/sortUtils/index.ts + + + + + + + + + +
+
+

All files / types/util/sortUtils index.ts

+
+
+ 0% + Statements + 0/0 +
+ +
+ 0% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/0 +
+ +
+ 0% + Lines + 0/0 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5  +  +  +  + 
export enum SortOrder {
+  ASC = 'asc',
+  DESC = 'desc',
+}
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/utils/AppUtils.ts.html b/coverage/lcov-report/utils/AppUtils.ts.html new file mode 100644 index 00000000..20314ecc --- /dev/null +++ b/coverage/lcov-report/utils/AppUtils.ts.html @@ -0,0 +1,81 @@ + + + + Code coverage report for utils/AppUtils.ts + + + + + + + + + +
+
+

All files / utils AppUtils.ts

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/2 +
+ +
+ 100% + Lines + 1/1 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +21x + 
export const delay = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/utils/CredentialUtils.ts.html b/coverage/lcov-report/utils/CredentialUtils.ts.html new file mode 100644 index 00000000..054d4a8b --- /dev/null +++ b/coverage/lcov-report/utils/CredentialUtils.ts.html @@ -0,0 +1,399 @@ + + + + Code coverage report for utils/CredentialUtils.ts + + + + + + + + + +
+
+

All files / utils CredentialUtils.ts

+
+
+ 52.63% + Statements + 20/38 +
+ +
+ 17.39% + Branches + 4/23 +
+ +
+ 50% + Functions + 6/12 +
+ +
+ 54.28% + Lines + 19/35 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +1x +1x +  +1x +  +  +  +1x +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +1x +  +  +  +  +  +  +1x +1x +1x +  +1x +1x +  +1x +1x +  +  +  +  +  +  +  +  + 
import {IContact, IIdentity} from '@sphereon/ssi-sdk.data-store';
+import {CredentialMapper, ICredential, OriginalVerifiableCredential} from '@sphereon/ssi-types';
+import {UniqueVerifiableCredential} from '@veramo/core';
+import {VerifiableCredential} from '@veramo/core/src/types/vc-data-model';
+import {CredentialStatus} from '@sphereon/ui-components.core';
+import store from '../store';
+import {ICredentialSummary, IUserIdentifier} from '../types';
+ 
+import {makeEpochMilli} from './DateUtils';
+ 
+/**
+ * Return the type(s) of a VC minus the VerifiableCredential type which should always be present
+ * @param credential The input credential
+ */
+export const getCredentialTypeAsString = (credential: ICredential | VerifiableCredential): string => {
+  if (!credential.type) {
+    return 'Verifiable Credential';
+  } else if (typeof credential.type === 'string') {
+    return credential.type;
+  }
+  return credential.type.filter(t => t !== 'VerifiableCredential').join(', ');
+};
+ 
+/**
+ * Returns a Unique Verifiable Credential (with hash) as stored in Veramo, based upon matching the id of the input VC or the proof value of the input VC
+ * @param uniqueVCs The Unique VCs to search in
+ * @param searchVC The VC to search for in the unique VCs array
+ */
+export const getMatchingUniqueVerifiableCredential = (
+  uniqueVCs: UniqueVerifiableCredential[],
+  searchVC: OriginalVerifiableCredential,
+): UniqueVerifiableCredential | undefined => {
+  // Since an ID is optional in a VC according to VCDM, and we really need the matches, we have a fallback match on something which is guaranteed to be unique for any VC (the proof(s))
+  return uniqueVCs.find(
+    uniqueVC =>
+      (typeof searchVC !== 'string' &&
+        (uniqueVC.verifiableCredential.id === searchVC.id || uniqueVC.verifiableCredential.proof === searchVC.proof)) ||
+      (typeof searchVC === 'string' && uniqueVC.verifiableCredential?.proof?.jwt === searchVC),
+  );
+};
+ 
+/**
+ * Get an original verifiable credential. Maps to wrapped Verifiable Credential first, to get an original JWT as Veramo stores these with a special proof value
+ * @param vc The input VC
+ */
+export const getOriginalVerifiableCredential = (vc: VerifiableCredential | ICredential) => {
+  return CredentialMapper.toWrappedVerifiableCredential(vc as OriginalVerifiableCredential).original;
+};
+ 
+export const getCredentialStatus = (credential: ICredential | VerifiableCredential | ICredentialSummary): CredentialStatus => {
+  Iif (isRevoked()) {
+    return CredentialStatus.REVOKED;
+  } else Iif (isExpired(credential.expirationDate)) {
+    return CredentialStatus.EXPIRED;
+  }
+ 
+  return CredentialStatus.VALID;
+};
+ 
+/**
+ * @return
+ *  true means the credential is revoked.
+ *  false means the credential is not revoked.
+ */
+export const isRevoked = (): boolean => {
+  return false;
+  // TODO implement
+  // {
+  //  id: 'https://revocation-sphereon.sphereon.io/services/credentials/wallet-dev#2022021400',
+  //  type: 'RevocationList2022021401Status',
+  //  revocationListIndex: '2022021402',
+  //  revocationListCredential: 'https://revocation-sphereon.sphereon.io/services/credentials/wallet-dev#2022021400',
+  // }
+};
+ 
+/**
+ * @param value The number of milliseconds between 1 January 1970 00:00:00 UTC and the given date or a formatted date required by Date(...)
+ * @return
+ *  true means the credential is expired.
+ *  false means the credential is not expired.
+ */
+export const isExpired = (value?: string | number): boolean => {
+  Eif (!value) {
+    return false;
+  }
+  let expirationDate = typeof value === 'string' ? new Date(value).valueOf() : value;
+  expirationDate = makeEpochMilli(expirationDate);
+  return expirationDate < Date.now();
+};
+ 
+export const translateCorrelationIdToName = (correlationId: string): string => {
+  const contacts = store.getState().contact.contacts;
+  const activeUser = store.getState().user.activeUser;
+ 
+  const contact = contacts.find((contact: IContact) =>
+    contact.identities.some((identity: IIdentity) => identity.identifier.correlationId === correlationId),
+  );
+  Eif (contact) {
+    return contact.alias;
+  }
+ 
+  if (activeUser && activeUser.identifiers.some((identifier: IUserIdentifier) => identifier.did === correlationId)) {
+    return `${activeUser.firstName} ${activeUser.lastName}`;
+  }
+ 
+  return correlationId;
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/utils/DateUtils.ts.html b/coverage/lcov-report/utils/DateUtils.ts.html new file mode 100644 index 00000000..71adcc2f --- /dev/null +++ b/coverage/lcov-report/utils/DateUtils.ts.html @@ -0,0 +1,228 @@ + + + + Code coverage report for utils/DateUtils.ts + + + + + + + + + +
+
+

All files / utils DateUtils.ts

+
+
+ 36.36% + Statements + 8/22 +
+ +
+ 0% + Branches + 0/6 +
+ +
+ 0% + Functions + 0/6 +
+ +
+ 36.36% + Lines + 8/22 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51  +  +1x +1x +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  +  + 
import Localization from '../localization/Localization';
+ 
+export const EPOCH_MILLISECONDS = 1000;
+export const DATE_FORMAT_OPTIONS = {
+  year: 'numeric',
+  month: 'numeric',
+  day: 'numeric',
+} as const;
+ 
+export const toLocalDateTimeString = (date: number): string => {
+  return new Date(formatDate(date)).toLocaleString(Localization.getLocale(), {
+    ...DATE_FORMAT_OPTIONS,
+    hour: 'numeric',
+    minute: 'numeric',
+    second: 'numeric',
+  });
+};
+ 
+export const toLocalDateString = (date: number): string => {
+  return new Date(formatDate(date)).toLocaleDateString(Localization.getLocale(), DATE_FORMAT_OPTIONS);
+};
+ 
+const formatDate = (date: number): number => {
+  let epoch: number = date;
+  epoch = removeFractionalPart(epoch);
+  if (!isEpochMilli(epoch)) {
+    epoch = makeEpochMilli(epoch);
+  }
+ 
+  return epoch;
+};
+ 
+export const makeEpochMilli = (date: number): number => {
+  if (!isEpochMilli(date)) {
+    date = date * EPOCH_MILLISECONDS;
+  }
+  return date;
+};
+ 
+const isEpochMilli = (date: number): boolean => {
+  return date.toString().length > 10;
+};
+ 
+const removeFractionalPart = (date: number): number => {
+  if (date.toString().includes('.')) {
+    return Number(date.toString().split('.')[0]);
+  }
+ 
+  return date;
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/utils/ImageUtils.ts.html b/coverage/lcov-report/utils/ImageUtils.ts.html new file mode 100644 index 00000000..2e1970f4 --- /dev/null +++ b/coverage/lcov-report/utils/ImageUtils.ts.html @@ -0,0 +1,150 @@ + + + + Code coverage report for utils/ImageUtils.ts + + + + + + + + + +
+
+

All files / utils ImageUtils.ts

+
+
+ 44.44% + Statements + 4/9 +
+ +
+ 100% + Branches + 2/2 +
+ +
+ 16.66% + Functions + 1/6 +
+ +
+ 44.44% + Lines + 4/9 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25  +  +  +  +  +  +  +1x +4x +  +  +1x +  +  +  +  +  +  +  +  +  +1x +  +  + 
import {ImageSize} from '@sphereon/ui-components.core';
+import {Image} from 'react-native';
+import FastImage from 'react-native-fast-image';
+ 
+import {IS_IMAGE_URI_REGEX, IS_IMAGE_URL_REGEX} from '../@config/constants';
+import {IPreloadImage} from '../types';
+ 
+export const isImage = async (value: string): Promise<boolean> => {
+  return IS_IMAGE_URI_REGEX.test(value) || IS_IMAGE_URL_REGEX.test(value);
+};
+ 
+export const getImageSize = (uri: string): Promise<ImageSize> => {
+  return new Promise((resolve, reject) => {
+    Image.getSize(
+      uri,
+      (width: number, height: number) => resolve({width, height}),
+      error => reject(error),
+    );
+  });
+};
+ 
+export const preloadImage = async (sources: Array<IPreloadImage>): Promise<void> => {
+  FastImage.preload(sources);
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/utils/KeyUtils.ts.html b/coverage/lcov-report/utils/KeyUtils.ts.html new file mode 100644 index 00000000..d1e6cd97 --- /dev/null +++ b/coverage/lcov-report/utils/KeyUtils.ts.html @@ -0,0 +1,198 @@ + + + + Code coverage report for utils/KeyUtils.ts + + + + + + + + + +
+
+

All files / utils KeyUtils.ts

+
+
+ 21.42% + Statements + 3/14 +
+ +
+ 0% + Branches + 0/14 +
+ +
+ 0% + Functions + 0/3 +
+ +
+ 21.42% + Lines + 3/14 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {IKey, TKeyType} from '@veramo/core';
+ 
+import {SignatureAlgorithmEnum} from '../providers/credential/OpenId4VcIssuanceProvider';
+ 
+export const SignatureAlgorithmFromKeyType = (type: TKeyType) => {
+  switch (type) {
+    case 'Ed25519':
+    case 'X25519':
+      return SignatureAlgorithmEnum.EdDSA;
+    case 'Secp256r1':
+      return SignatureAlgorithmEnum.ES256;
+    case 'Secp256k1':
+      return SignatureAlgorithmEnum.ES256K;
+    default:
+      throw new Error(`Key type '${type}' not supported`);
+  }
+};
+ 
+export const SignatureAlgorithmFromKey = (key: IKey) => {
+  return SignatureAlgorithmFromKeyType(key.type);
+};
+ 
+// TODO improve this conversion for jwt and jsonld, not a fan of current structure
+export const KeyTypeFromCryptographicSuite = (suite: string): TKeyType => {
+  switch (suite) {
+    case 'EdDSA':
+    case 'Ed25519Signature2018':
+    case 'Ed25519Signature2020':
+    case 'JcsEd25519Signature2020':
+      return 'Ed25519';
+    case 'JsonWebSignature2020':
+    case 'ES256':
+      return 'Secp256r1';
+    case 'EcdsaSecp256k1Signature2019':
+    case 'ES256K':
+      return 'Secp256k1';
+    default:
+      throw new Error(`Cryptographic suite '${suite}' not supported`);
+  }
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/utils/NavigationUtils.ts.html b/coverage/lcov-report/utils/NavigationUtils.ts.html new file mode 100644 index 00000000..76336af9 --- /dev/null +++ b/coverage/lcov-report/utils/NavigationUtils.ts.html @@ -0,0 +1,201 @@ + + + + Code coverage report for utils/NavigationUtils.ts + + + + + + + + + +
+
+

All files / utils NavigationUtils.ts

+
+
+ 5.55% + Statements + 1/18 +
+ +
+ 0% + Branches + 0/6 +
+ +
+ 0% + Functions + 0/6 +
+ +
+ 7.14% + Lines + 1/14 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {ParamListBase, PartialRoute, Route} from '@react-navigation/native';
+import {CommonActions, NavigationState} from '@react-navigation/routers';
+import {navigationRef} from '../navigation/rootNavigation';
+ 
+import {filterNavigationStackArgs, ScreenRoutesEnum} from '../types';
+ 
+/**
+ * Filters routes from a navigation stack
+ * @param {Object} args - The arguments for filtering navigation stack
+ * @param {NativeStackNavigationProp<any>} args.navigation - The navigation object
+ * @param {NavigationBarRoutesEnum} args.stack - The navigation stack to apply filter to
+ * @param {Array<ScreenRoutesEnum>} args.filter - Routes to be filtered
+ * @returns {void}
+ */
+export const filterNavigationStack = (args: filterNavigationStackArgs): void => {
+  const rootState: NavigationState | undefined = navigationRef.current?.getRootState();
+  if (!rootState?.routes) {
+    return;
+  }
+ 
+  const mainStack = rootState.routes.find((route: Route<string>) => route.name === 'Main')?.state;
+  if (!mainStack?.routes) {
+    return;
+  }
+  // @ts-ignore
+  const homeStack = mainStack.routes.find((route: Route<string>) => route.name === 'Home').state;
+  const currentStack = homeStack.routes.find((route: Route<string>) => route.name === args.stack).state;
+ 
+  if (!currentStack) {
+    return;
+  }
+ 
+  const filteredRoutes = currentStack.routes.filter((route: Route<ScreenRoutesEnum>) => !args.filter.includes(route.name));
+ 
+  args.navigation.dispatch(
+    CommonActions.reset({
+      index: filteredRoutes.length, // Sets the last route in the stack as the current route
+      routes: filteredRoutes.map((route: Route<string>) => ({name: route.name, params: route.params})),
+    }),
+  );
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/utils/SortUtils.ts.html b/coverage/lcov-report/utils/SortUtils.ts.html new file mode 100644 index 00000000..5cc44e17 --- /dev/null +++ b/coverage/lcov-report/utils/SortUtils.ts.html @@ -0,0 +1,111 @@ + + + + Code coverage report for utils/SortUtils.ts + + + + + + + + + +
+
+

All files / utils SortUtils.ts

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 33.33% + Functions + 1/3 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12  +  +  +1x +  +  +  +  +  +  +  + 
import {SortOrder} from '../types';
+ 
+export function sortBy<T>(key: keyof T, order: SortOrder) {
+  return function (a: T, b: T) {
+    return orderToNumberSign(order) * (a[key] as string).toLowerCase().localeCompare((b[key] as string).toLowerCase());
+  };
+ 
+  function orderToNumberSign(order: SortOrder) {
+    return order === SortOrder.ASC ? 1 : -1;
+  }
+}
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/utils/TextUtils.tsx.html b/coverage/lcov-report/utils/TextUtils.tsx.html new file mode 100644 index 00000000..5c0922cd --- /dev/null +++ b/coverage/lcov-report/utils/TextUtils.tsx.html @@ -0,0 +1,141 @@ + + + + Code coverage report for utils/TextUtils.tsx + + + + + + + + + +
+
+

All files / utils TextUtils.tsx

+
+
+ 25% + Statements + 2/8 +
+ +
+ 0% + Branches + 0/2 +
+ +
+ 0% + Functions + 0/2 +
+ +
+ 25% + Lines + 2/8 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22  +  +  +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from 'react';
+import {Text} from 'react-native';
+ 
+const {v4: uuidv4} = require('uuid');
+ 
+export const parseTextToElement = (text: string): JSX.Element => {
+  const items = text.split(/(<b>.*?<\/b>)/).map(item => {
+    if (item.includes('<b>')) {
+      const regex = new RegExp('<b>|</b>', 'g');
+      return (
+        <Text key={uuidv4()} style={{fontWeight: 'bold'}}>
+          {item.replace(regex, '')}
+        </Text>
+      );
+    } else {
+      return item;
+    }
+  });
+ 
+  return <Text>{items}</Text>;
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/utils/ToastUtils.ts.html b/coverage/lcov-report/utils/ToastUtils.ts.html new file mode 100644 index 00000000..7ca6909b --- /dev/null +++ b/coverage/lcov-report/utils/ToastUtils.ts.html @@ -0,0 +1,126 @@ + + + + Code coverage report for utils/ToastUtils.ts + + + + + + + + + +
+
+

All files / utils ToastUtils.ts

+
+
+ 33.33% + Statements + 1/3 +
+ +
+ 100% + Branches + 0/0 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 33.33% + Lines + 1/3 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  + 
import Toast from 'react-native-toast-message';
+ 
+import {IToastConfigParams, ToastTypeEnum} from '../types';
+ 
+export const showToast = (type: ToastTypeEnum, params: IToastConfigParams) => {
+  const {message, title, showBadge} = params;
+  Toast.show({
+    position: 'bottom',
+    type,
+    text1: title,
+    text2: message,
+    props: {
+      showBadge,
+    },
+  });
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/utils/UserUtils.ts.html b/coverage/lcov-report/utils/UserUtils.ts.html new file mode 100644 index 00000000..f737ff68 --- /dev/null +++ b/coverage/lcov-report/utils/UserUtils.ts.html @@ -0,0 +1,156 @@ + + + + Code coverage report for utils/UserUtils.ts + + + + + + + + + +
+
+

All files / utils UserUtils.ts

+
+
+ 6.25% + Statements + 1/16 +
+ +
+ 0% + Branches + 0/12 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 6.25% + Lines + 1/16 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +271x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
export const getInitials = (fullName: string): string => {
+  if (fullName && fullName.length > 0) {
+    const namePartsArray = fullName.trim().split(' ');
+ 
+    let firstInitial = '';
+    let lastInitial = '';
+ 
+    if (namePartsArray.length > 0) {
+      const firstName = namePartsArray[0];
+      if (firstName.length > 0) {
+        firstInitial = firstName[0];
+      }
+ 
+      if (namePartsArray.length > 1) {
+        const lastPart = namePartsArray[namePartsArray.length - 1];
+        if (lastPart.length > 0) {
+          lastInitial = lastPart[0];
+        }
+      }
+    }
+    const initials = `${firstInitial}${lastInitial}`;
+    return initials.toUpperCase();
+  }
+ 
+  return '?';
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/utils/index.html b/coverage/lcov-report/utils/index.html new file mode 100644 index 00000000..94dcbc5e --- /dev/null +++ b/coverage/lcov-report/utils/index.html @@ -0,0 +1,274 @@ + + + + Code coverage report for utils + + + + + + + + + +
+
+

All files utils

+
+
+ 31.34% + Statements + 42/134 +
+ +
+ 8.95% + Branches + 6/67 +
+ +
+ 19.04% + Functions + 8/42 +
+ +
+ 32.8% + Lines + 41/125 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
AppUtils.ts +
+
+
+
+
33.33%1/3100%0/00%0/2100%1/1
CredentialUtils.ts +
+
+
+
+
52.63%20/3817.39%4/2350%6/1254.28%19/35
DateUtils.ts +
+
+
+
+
36.36%8/220%0/60%0/636.36%8/22
ImageUtils.ts +
+
+
+
+
44.44%4/9100%2/216.66%1/644.44%4/9
KeyUtils.ts +
+
+
+
+
21.42%3/140%0/140%0/321.42%3/14
NavigationUtils.ts +
+
+
+
+
5.55%1/180%0/60%0/67.14%1/14
SortUtils.ts +
+
+
+
+
33.33%1/30%0/233.33%1/333.33%1/3
TextUtils.tsx +
+
+
+
+
25%2/80%0/20%0/225%2/8
ToastUtils.ts +
+
+
+
+
33.33%1/3100%0/00%0/133.33%1/3
UserUtils.ts +
+
+
+
+
6.25%1/160%0/120%0/16.25%1/16
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/utils/mappers/branding/OIDC4VCIBrandingMapper.ts.html b/coverage/lcov-report/utils/mappers/branding/OIDC4VCIBrandingMapper.ts.html new file mode 100644 index 00000000..21cc07f1 --- /dev/null +++ b/coverage/lcov-report/utils/mappers/branding/OIDC4VCIBrandingMapper.ts.html @@ -0,0 +1,225 @@ + + + + Code coverage report for utils/mappers/branding/OIDC4VCIBrandingMapper.ts + + + + + + + + + +
+
+

All files / utils/mappers/branding OIDC4VCIBrandingMapper.ts

+
+
+ 50% + Statements + 1/2 +
+ +
+ 0% + Branches + 0/25 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 50% + Lines + 1/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {CredentialsSupportedDisplay} from '@sphereon/oid4vci-common';
+import {IBasicCredentialLocaleBranding} from '@sphereon/ssi-sdk.data-store';
+ 
+export const credentialLocaleBrandingFrom = async (credentialDisplay: CredentialsSupportedDisplay): Promise<IBasicCredentialLocaleBranding> => {
+  return {
+    ...(credentialDisplay.name && {
+      alias: credentialDisplay.name,
+    }),
+    ...(credentialDisplay.locale && {
+      locale: credentialDisplay.locale,
+    }),
+    ...(credentialDisplay.logo && {
+      logo: {
+        ...(credentialDisplay.logo.url && {
+          uri: credentialDisplay.logo?.url,
+        }),
+        ...(credentialDisplay.logo.alt_text && {
+          alt: credentialDisplay.logo?.alt_text,
+        }),
+      },
+    }),
+    ...(credentialDisplay.description && {
+      description: credentialDisplay.description,
+    }),
+ 
+    ...(credentialDisplay.text_color && {
+      text: {
+        color: credentialDisplay.text_color,
+      },
+    }),
+    ...((credentialDisplay.background_image || credentialDisplay.background_color) && {
+      background: {
+        ...(credentialDisplay.background_image && {
+          image: {
+            ...(credentialDisplay.background_image.url && {
+              uri: credentialDisplay.background_image?.url,
+            }),
+            ...(credentialDisplay.background_image.alt_text && {
+              alt: credentialDisplay.background_image?.alt_text,
+            }),
+          },
+        }),
+        ...(credentialDisplay.background_color && {
+          color: credentialDisplay.background_color,
+        }),
+      },
+    }),
+  };
+};
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/utils/mappers/branding/index.html b/coverage/lcov-report/utils/mappers/branding/index.html new file mode 100644 index 00000000..d54d61a8 --- /dev/null +++ b/coverage/lcov-report/utils/mappers/branding/index.html @@ -0,0 +1,114 @@ + + + + Code coverage report for utils/mappers/branding + + + + + + + + + +
+
+

All files utils/mappers/branding

+
+
+ 50% + Statements + 1/2 +
+ +
+ 0% + Branches + 0/25 +
+ +
+ 0% + Functions + 0/1 +
+ +
+ 50% + Lines + 1/2 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
+ OIDC4VCIBrandingMapper.ts + +
+
+
+
+
50%1/20%0/250%0/150%1/2
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/utils/mappers/credential/CredentialMapper.ts.html b/coverage/lcov-report/utils/mappers/credential/CredentialMapper.ts.html new file mode 100644 index 00000000..376f8372 --- /dev/null +++ b/coverage/lcov-report/utils/mappers/credential/CredentialMapper.ts.html @@ -0,0 +1,654 @@ + + + + Code coverage report for utils/mappers/credential/CredentialMapper.ts + + + + + + + + + +
+
+

All files / utils/mappers/credential CredentialMapper.ts

+
+
+ 58.2% + Statements + 39/67 +
+ +
+ 39.32% + Branches + 35/89 +
+ +
+ 66.66% + Functions + 4/6 +
+ +
+ 58.2% + Lines + 39/67 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193  +  +  +  +  +  +  +  +  +  +  +1x +  +1x +1x +  +1x +  +4x +  +  +  +  +  +  +  +  +4x +  +  +  +  +  +  +  +  +4x +  +  +  +  +  +  +  +  +4x +4x +  +  +  +4x +4x +  +  +  +4x +  +  +  +  +4x +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +1x +  +  +1x +  +1x +  +1x +  +  +  +  +  +2x +1x +1x +  +1x +1x +1x +  +  +1x +  +  +  +1x +1x +1x +  +  +  +  +1x +1x +  +  +  +  +1x +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +1x +1x +  +1x +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import {IBasicCredentialLocaleBranding} from '@sphereon/ssi-sdk.data-store';
+import {ICredential, OriginalVerifiableCredential} from '@sphereon/ssi-types';
+import {UniqueVerifiableCredential, VerifiableCredential} from '@veramo/core';
+import {computeEntryHash} from '@veramo/utils';
+import {CredentialStatus} from '@sphereon/ui-components.core';
+import {selectAppLocaleBranding} from '../../../services/brandingService';
+import {ICredentialDetailsRow, ICredentialSummary} from '../../../types';
+import {getCredentialStatus, translateCorrelationIdToName} from '../../CredentialUtils';
+import {EPOCH_MILLISECONDS} from '../../DateUtils';
+import {getImageSize, isImage} from '../../ImageUtils';
+ 
+const {v4: uuidv4} = require('uuid');
+ 
+const toCredentialDetailsRow = async (object: Record<string, any>): Promise<ICredentialDetailsRow[]> => {
+  let rows: ICredentialDetailsRow[] = [];
+  // eslint-disable-next-line prefer-const
+  for (let [key, value] of Object.entries(object)) {
+    // TODO fix hacking together the image
+    Iif (key.toLowerCase().includes('image')) {
+      const image = typeof value === 'string' ? value : value.id;
+      rows.push({
+        id: uuidv4(),
+        label: 'image',
+        value: image,
+        imageSize: (await isImage(image)) ? await getImageSize(image) : undefined,
+      });
+      continue;
+    } else Iif (key === 'type') {
+      rows.push({
+        id: uuidv4(),
+        label: key,
+        value: value,
+      });
+      continue;
+    }
+ 
+    Iif (typeof value !== 'string') {
+      // FIXME disabled this to not show keys of objects
+      // rows.push({
+      //   id: uuidv4(),
+      //   label: key,
+      //   value: undefined,
+      // });
+      rows = rows.concat(await toCredentialDetailsRow(value));
+    } else {
+      console.log(`==>${key}:${value}`);
+      Iif (key === '0' || value === undefined) {
+        continue;
+      }
+ 
+      let label = key;
+      Iif (key === 'id' && value.startsWith('did:')) {
+        label = 'subject';
+      }
+ 
+      Iif (value.startsWith('did:')) {
+        console.log(`did: ${value}`);
+        value = translateCorrelationIdToName(value);
+      }
+ 
+      rows.push({
+        id: uuidv4(),
+        label, // TODO Human readable mapping
+        value,
+        imageSize: (await isImage(value)) ? await getImageSize(value) : undefined,
+      });
+    }
+  }
+ 
+  return rows;
+};
+ 
+/**
+ * To be used whenever we need to show a credential summary on VCs we have not persisted
+ * @param verifiableCredential
+ * @param branding The branding for the credential
+ */
+export const toNonPersistedCredentialSummary = (
+  verifiableCredential: ICredential | VerifiableCredential,
+  branding?: Array<IBasicCredentialLocaleBranding>,
+): Promise<ICredentialSummary> => {
+  return toCredentialSummary(
+    {
+      verifiableCredential: verifiableCredential as VerifiableCredential,
+      hash: verifiableCredential.id ?? computeEntryHash(verifiableCredential as VerifiableCredential),
+    },
+    branding,
+  );
+};
+ 
+/**
+ * Map persisted (Unique) VCs to the summaries we display
+ * @param hash The hash of the unique verifiable credential
+ * @param verifiableCredential The VC itself
+ * @param branding The branding for the credential
+ */
+export const toCredentialSummary = async (
+  {hash, verifiableCredential}: UniqueVerifiableCredential,
+  branding?: Array<IBasicCredentialLocaleBranding>,
+): Promise<ICredentialSummary> => {
+  const expirationDate: number = verifiableCredential.expirationDate
+    ? new Date(verifiableCredential.expirationDate).valueOf() / EPOCH_MILLISECONDS
+    : 0;
+  const issueDate: number = new Date(verifiableCredential.issuanceDate).valueOf() / EPOCH_MILLISECONDS;
+ 
+  const credentialStatus: CredentialStatus = getCredentialStatus(verifiableCredential);
+ 
+  const title = verifiableCredential.name
+    ? verifiableCredential.name
+    : !verifiableCredential.type
+    ? 'unknown'
+    : typeof verifiableCredential.type === 'string'
+    ? verifiableCredential.type
+    : verifiableCredential.type.filter((value: string): boolean => value !== 'VerifiableCredential')[0];
+  console.log(`Credential Subject: ${JSON.stringify(verifiableCredential.credentialSubject)}`);
+  const properties: Array<ICredentialDetailsRow> = await toCredentialDetailsRow(verifiableCredential.credentialSubject);
+ 
+  const localeBranding: IBasicCredentialLocaleBranding | undefined = await selectAppLocaleBranding({localeBranding: branding});
+  const logo = getIssuerLogo(verifiableCredential, localeBranding);
+  const url = typeof verifiableCredential.issuer !== 'string' ? verifiableCredential.issuer.url : undefined;
+ 
+  const name: string =
+    typeof verifiableCredential.issuer === 'string'
+      ? verifiableCredential.issuer
+      : verifiableCredential.issuer?.name ?? verifiableCredential.issuer?.id;
+ 
+  console.log(`NAME: ${name}`);
+  let issuerAlias: string | undefined = undefined;
+  Iif (typeof verifiableCredential?.issuer === 'object' && verifiableCredential.issuer?.name) {
+    // if the name is part of the VC itself, always use that
+    // todo: Probably still wise to allow a user to override it
+    issuerAlias = verifiableCredential.issuer.name;
+  }
+  Eif (!issuerAlias) {
+    issuerAlias =
+      typeof verifiableCredential.issuer === 'string'
+        ? translateCorrelationIdToName(verifiableCredential.issuer)
+        : translateCorrelationIdToName(verifiableCredential.issuer?.id);
+  }
+  Iif (!issuerAlias) {
+    throw Error(`Could not deduce issuer alias`);
+  }
+  return {
+    hash,
+    id: verifiableCredential.id,
+    title: localeBranding?.alias || title,
+    credentialStatus,
+    issueDate,
+    expirationDate,
+    properties,
+    branding: localeBranding,
+    issuer: {
+      name,
+      alias: issuerAlias.length > 50 ? `${issuerAlias.substring(0, 50)}...` : issuerAlias,
+      image: logo,
+      url,
+    },
+  };
+};
+ 
+export function getIssuerLogo(verifiableCredential: VerifiableCredential | ICredentialSummary, localeBranding?: IBasicCredentialLocaleBranding) {
+  let logo: string | undefined;
+ 
+  Iif (localeBranding?.logo) {
+    logo = localeBranding.logo.dataUri ?? localeBranding.logo.uri;
+  }
+  Eif (!logo && typeof verifiableCredential.issuer === 'object') {
+    Iif ('logo' in verifiableCredential.issuer && verifiableCredential.issuer.logo) {
+      logo = getImageFromObjectOrString(verifiableCredential.issuer.logo);
+    } else Iif (verifiableCredential.issuer.image) {
+      logo = getImageFromObjectOrString(verifiableCredential.issuer.image);
+    }
+  }
+  return logo;
+}
+ 
+export function getImageFromObjectOrString(image?: string | object): string | undefined {
+  if (!image) {
+    return undefined;
+  } else if (typeof image === 'string' && image.length > 0) {
+    return image;
+  } else if (typeof image === 'object') {
+    if ('id' in image && typeof image.id === 'string' && image.id.includes('://')) {
+      return image.id;
+    } else if ('url' in image && typeof image.url === 'string' && image.url.includes('://')) {
+      return image.url;
+    } else if ('uri' in image && typeof image.uri === 'string' && image.uri.includes('://')) {
+      return image.uri;
+    }
+  }
+  return undefined;
+}
+ 
+ +
+ +
+ + + + + + + + diff --git a/coverage/lcov-report/utils/mappers/credential/index.html b/coverage/lcov-report/utils/mappers/credential/index.html new file mode 100644 index 00000000..641da247 --- /dev/null +++ b/coverage/lcov-report/utils/mappers/credential/index.html @@ -0,0 +1,112 @@ + + + + Code coverage report for utils/mappers/credential + + + + + + + + + +
+
+

All files utils/mappers/credential

+
+
+ 58.2% + Statements + 39/67 +
+ +
+ 39.32% + Branches + 35/89 +
+ +
+ 66.66% + Functions + 4/6 +
+ +
+ 58.2% + Lines + 39/67 +
+
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
CredentialMapper.ts +
+
+
+
+
58.2%39/6739.32%35/8966.66%4/658.2%39/67
+
+
+ +
+ + + + + + + + diff --git a/coverage/lcov.info b/coverage/lcov.info new file mode 100644 index 00000000..f0f9e4c7 --- /dev/null +++ b/coverage/lcov.info @@ -0,0 +1,7143 @@ +TN: +SF:src\@config\constants\index.ts +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:3,1 +DA:4,1 +DA:9,1 +DA:10,1 +DA:12,1 +DA:13,1 +DA:15,1 +DA:16,1 +DA:17,1 +DA:18,1 +DA:20,1 +DA:21,1 +DA:23,1 +DA:24,1 +DA:26,1 +DA:27,1 +LF:18 +LH:18 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\@config\credentials\index.ts +FNF:0 +FNH:0 +DA:3,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\@config\database\index.ts +FNF:0 +FNH:0 +DA:6,1 +DA:7,1 +DA:9,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\@config\toasts\index.tsx +FN:12,(anonymous_0) +FN:17,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +DA:7,1 +DA:8,1 +DA:9,1 +DA:11,1 +DA:13,0 +DA:14,0 +DA:15,0 +DA:18,0 +DA:19,0 +DA:20,0 +LF:10 +LH:4 +BRDA:14,0,0,0 +BRDA:19,1,0,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src\agent\index.ts +FN:48,(anonymous_0) +FNF:1 +FNH:1 +FNDA:5,(anonymous_0) +DA:38,1 +DA:48,5 +DA:50,1 +DA:66,1 +DA:67,1 +DA:69,1 +DA:126,1 +DA:127,1 +DA:128,1 +DA:129,1 +DA:130,1 +DA:131,1 +DA:132,1 +DA:133,1 +DA:134,1 +DA:135,1 +DA:136,1 +DA:137,1 +DA:138,1 +DA:139,1 +DA:140,1 +DA:141,1 +DA:142,1 +DA:143,1 +DA:147,1 +LF:25 +LH:25 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\components\assets\icons\SSIAddIcon\index.tsx +FN:12,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:12,1 +DA:13,0 +DA:15,0 +LF:3 +LH:1 +BRDA:13,0,0,0 +BRDA:13,1,0,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src\components\assets\icons\SSIBackIcon\index.tsx +FN:13,(anonymous_0) +FNF:1 +FNH:1 +FNDA:112,(anonymous_0) +DA:13,1 +DA:14,112 +DA:16,112 +LF:3 +LH:3 +BRDA:14,0,0,112 +BRDA:14,1,0,112 +BRDA:14,2,0,112 +BRF:3 +BRH:3 +end_of_record +TN: +SF:src\components\assets\icons\SSIBellIcon\index.tsx +FN:9,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:9,1 +DA:10,0 +LF:2 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\components\assets\icons\SSICheckmarkIcon\index.tsx +FN:14,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:14,1 +DA:15,0 +DA:17,0 +LF:3 +LH:1 +BRDA:15,0,0,0 +BRDA:15,1,0,0 +BRDA:15,2,0,0 +BRF:3 +BRH:0 +end_of_record +TN: +SF:src\components\assets\icons\SSICloseIcon\index.tsx +FN:12,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:12,1 +DA:13,0 +DA:15,0 +LF:3 +LH:1 +BRDA:13,0,0,0 +BRDA:13,1,0,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src\components\assets\icons\SSIContactsIcon\index.tsx +FN:9,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:9,1 +DA:10,0 +LF:2 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\components\assets\icons\SSIDeleteIcon\index.tsx +FN:13,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:13,1 +DA:14,0 +DA:16,0 +LF:3 +LH:1 +BRDA:14,0,0,0 +BRDA:14,1,0,0 +BRDA:14,2,0,0 +BRF:3 +BRH:0 +end_of_record +TN: +SF:src\components\assets\icons\SSIDownloadIcon\index.tsx +FN:13,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:13,1 +DA:14,0 +DA:16,0 +LF:3 +LH:1 +BRDA:14,0,0,0 +BRDA:14,1,0,0 +BRDA:14,2,0,0 +BRF:3 +BRH:0 +end_of_record +TN: +SF:src\components\assets\icons\SSIEditIcon\index.tsx +FN:13,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:13,1 +DA:14,0 +DA:16,0 +LF:3 +LH:1 +BRDA:14,0,0,0 +BRDA:14,1,0,0 +BRDA:14,2,0,0 +BRF:3 +BRH:0 +end_of_record +TN: +SF:src\components\assets\icons\SSIEyeIcon\index.tsx +FN:12,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:12,1 +DA:13,0 +DA:15,0 +LF:3 +LH:1 +BRDA:13,0,0,0 +BRDA:13,1,0,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src\components\assets\icons\SSIHomeIcon\index.tsx +FN:9,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:9,1 +DA:10,0 +LF:2 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\components\assets\icons\SSILogoutIcon\index.tsx +FN:13,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:13,1 +DA:14,0 +DA:16,0 +LF:3 +LH:1 +BRDA:14,0,0,0 +BRDA:14,1,0,0 +BRDA:14,2,0,0 +BRF:3 +BRH:0 +end_of_record +TN: +SF:src\components\assets\icons\SSIMoreIcon\index.tsx +FN:13,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:13,1 +DA:14,0 +DA:16,0 +LF:3 +LH:1 +BRDA:14,0,0,0 +BRDA:14,1,0,0 +BRDA:14,2,0,0 +BRF:3 +BRH:0 +end_of_record +TN: +SF:src\components\assets\icons\SSIProfileIcon\index.tsx +FN:16,(anonymous_0) +FN:27,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +DA:16,1 +DA:17,0 +DA:18,0 +DA:20,0 +DA:27,1 +DA:28,0 +LF:6 +LH:2 +BRDA:17,0,0,0 +BRDA:17,1,0,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src\components\assets\icons\SSIQRIcon\index.tsx +FN:9,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:9,1 +DA:10,0 +LF:2 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\components\assets\images\SSINotificationsImage\index.tsx +FN:11,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:11,1 +DA:12,0 +DA:14,0 +LF:3 +LH:1 +BRDA:12,0,0,0 +BRDA:12,1,0,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src\components\assets\images\SSISecurityImage\index.tsx +FN:11,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:11,1 +DA:12,0 +DA:14,0 +LF:3 +LH:1 +BRDA:12,0,0,0 +BRDA:12,1,0,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src\components\assets\images\SSIWarningImage\index.tsx +FN:11,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:11,1 +DA:12,0 +DA:14,0 +LF:3 +LH:1 +BRDA:12,0,0,0 +BRDA:12,1,0,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src\components\bars\SSIHeaderBar\index.tsx +FN:40,(anonymous_0) +FN:45,(anonymous_1) +FN:49,(anonymous_2) +FN:54,(anonymous_3) +FN:58,(anonymous_4) +FN:63,(anonymous_5) +FN:68,(anonymous_6) +FN:77,(anonymous_7) +FN:81,(anonymous_8) +FN:86,(anonymous_9) +FNF:10 +FNH:1 +FNDA:112,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +DA:40,1 +DA:41,112 +DA:42,112 +DA:43,112 +DA:45,112 +DA:46,0 +DA:49,112 +DA:50,0 +DA:51,0 +DA:54,112 +DA:55,0 +DA:58,112 +DA:59,0 +DA:60,0 +DA:63,112 +DA:64,0 +DA:65,0 +DA:68,112 +DA:69,0 +DA:70,0 +DA:72,0 +DA:77,0 +DA:81,0 +DA:86,112 +DA:87,0 +DA:90,112 +LF:26 +LH:12 +BRDA:41,0,0,112 +BRDA:41,1,0,112 +BRDA:41,2,0,0 +BRDA:41,3,0,112 +BRDA:46,4,0,0 +BRDA:46,4,1,0 +BRDA:94,5,0,112 +BRDA:94,5,1,112 +BRDA:99,6,0,112 +BRDA:99,6,1,0 +BRDA:99,7,0,112 +BRDA:99,7,1,0 +BRDA:102,8,0,112 +BRDA:102,8,1,112 +BRDA:105,9,0,112 +BRDA:105,9,1,0 +BRDA:113,10,0,112 +BRDA:113,10,1,0 +BRDA:131,11,0,112 +BRDA:131,11,1,0 +BRDA:137,12,0,112 +BRDA:137,12,1,0 +BRF:22 +BRH:13 +end_of_record +TN: +SF:src\components\bars\SSINavigationBar\index.tsx +FN:30,(anonymous_0) +FN:35,(anonymous_1) +FN:40,(anonymous_2) +FN:44,(anonymous_3) +FN:48,(anonymous_4) +FN:53,(anonymous_5) +FN:57,(anonymous_6) +FN:95,(anonymous_7) +FNF:8 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +DA:26,0 +DA:30,0 +DA:31,0 +DA:32,0 +DA:36,0 +DA:37,0 +DA:40,0 +DA:41,0 +DA:44,0 +DA:45,0 +DA:49,0 +DA:54,0 +DA:55,0 +DA:57,0 +DA:58,0 +DA:64,0 +DA:66,0 +DA:70,0 +DA:95,1 +DA:96,0 +DA:98,0 +DA:105,0 +DA:112,0 +DA:119,0 +DA:126,0 +LF:25 +LH:1 +BRDA:49,0,0,0 +BRDA:49,0,1,0 +BRDA:64,1,0,0 +BRDA:64,1,1,0 +BRDA:64,2,0,0 +BRDA:64,2,1,0 +BRDA:74,3,0,0 +BRDA:74,3,1,0 +BRDA:96,4,0,0 +BRDA:96,4,1,0 +BRDA:96,4,2,0 +BRDA:96,4,3,0 +BRDA:96,4,4,0 +BRDA:100,5,0,0 +BRDA:100,5,1,0 +BRDA:101,6,0,0 +BRDA:101,6,1,0 +BRDA:107,7,0,0 +BRDA:107,7,1,0 +BRDA:108,8,0,0 +BRDA:108,8,1,0 +BRDA:114,9,0,0 +BRDA:114,9,1,0 +BRDA:115,10,0,0 +BRDA:115,10,1,0 +BRDA:121,11,0,0 +BRDA:121,11,1,0 +BRDA:122,12,0,0 +BRDA:122,12,1,0 +BRF:29 +BRH:0 +end_of_record +TN: +SF:src\components\buttons\SSIIconButton\index.tsx +FN:20,(anonymous_0) +FN:37,(anonymous_1) +FNF:2 +FNH:2 +FNDA:112,(anonymous_0) +FNDA:112,(anonymous_1) +DA:20,1 +DA:21,112 +DA:37,1 +DA:38,112 +DA:40,112 +DA:42,0 +DA:44,0 +DA:46,0 +LF:8 +LH:5 +BRDA:38,0,0,112 +BRDA:38,0,1,0 +BRDA:38,0,2,0 +BRDA:38,0,3,0 +BRF:4 +BRH:1 +end_of_record +TN: +SF:src\components\buttons\SSIPrimaryButton\index.tsx +FN:18,(anonymous_0) +FNF:1 +FNH:1 +FNDA:49,(anonymous_0) +DA:18,1 +DA:19,49 +DA:21,49 +LF:3 +LH:3 +BRDA:26,0,0,49 +BRDA:26,0,1,22 +BRF:2 +BRH:2 +end_of_record +TN: +SF:src\components\buttons\SSISecondaryButton\index.tsx +FN:21,(anonymous_0) +FNF:1 +FNH:1 +FNDA:16,(anonymous_0) +DA:21,1 +DA:22,16 +DA:24,16 +LF:3 +LH:3 +BRDA:31,0,0,16 +BRDA:31,0,1,0 +BRDA:34,1,0,0 +BRDA:34,1,1,16 +BRF:4 +BRH:2 +end_of_record +TN: +SF:src\components\buttons\SSISwipeDeleteButton\index.tsx +FN:15,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:15,1 +DA:16,0 +LF:2 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\components\containers\SSIButtonsContainer\index.tsx +FN:26,(anonymous_0) +FN:31,(anonymous_1) +FN:36,(anonymous_2) +FN:40,(anonymous_3) +FN:44,(anonymous_4) +FNF:5 +FNH:3 +FNDA:13,(anonymous_0) +FNDA:13,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:35,(anonymous_4) +DA:22,13 +DA:26,13 +DA:27,13 +DA:28,13 +DA:31,13 +DA:32,13 +DA:33,13 +DA:36,13 +DA:37,0 +DA:40,13 +DA:41,0 +DA:45,35 +DA:46,35 +DA:48,35 +LF:14 +LH:12 +BRDA:49,0,0,0 +BRDA:49,0,1,35 +BRDA:49,1,0,35 +BRDA:49,1,1,4 +BRDA:50,2,0,35 +BRDA:50,2,1,16 +BRDA:56,3,0,16 +BRDA:56,3,1,0 +BRDA:60,4,0,35 +BRDA:60,4,1,35 +BRDA:66,5,0,16 +BRDA:66,5,1,19 +BRF:12 +BRH:10 +end_of_record +TN: +SF:src\components\dropDownLists\SSIDropDownList\index.tsx +FN:11,(anonymous_0) +FN:12,(anonymous_1) +FN:14,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:11,1 +DA:12,0 +DA:13,0 +DA:14,0 +DA:15,0 +DA:16,0 +DA:29,0 +LF:7 +LH:1 +BRDA:15,0,0,0 +BRDA:15,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src\components\dropDownLists\SSIDropDownListItem\index.tsx +FN:26,(anonymous_0) +FN:29,(anonymous_1) +FN:33,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:26,1 +DA:27,0 +DA:29,0 +DA:30,0 +DA:33,0 +DA:34,0 +DA:36,0 +DA:38,0 +DA:40,0 +DA:42,0 +DA:44,0 +DA:46,0 +DA:50,0 +LF:13 +LH:1 +BRDA:27,0,0,0 +BRDA:27,1,0,0 +BRDA:34,2,0,0 +BRDA:36,3,0,0 +BRDA:36,3,1,0 +BRDA:36,3,2,0 +BRDA:36,3,3,0 +BRDA:36,3,4,0 +BRDA:55,4,0,0 +BRDA:55,4,1,0 +BRDA:57,5,0,0 +BRDA:57,5,1,0 +BRDA:59,6,0,0 +BRDA:59,6,1,0 +BRF:14 +BRH:0 +end_of_record +TN: +SF:src\components\fields\SSICheckbox\index.tsx +FN:27,(anonymous_0) +FN:40,(anonymous_1) +FN:43,(anonymous_2) +FNF:3 +FNH:3 +FNDA:38,(anonymous_0) +FNDA:6,(anonymous_1) +FNDA:6,(anonymous_2) +DA:27,1 +DA:36,38 +DA:37,38 +DA:38,38 +DA:40,38 +DA:41,6 +DA:42,6 +DA:43,6 +DA:45,0 +DA:49,38 +LF:10 +LH:9 +BRDA:30,0,0,38 +BRDA:31,1,0,38 +BRDA:34,2,0,38 +BRDA:35,3,0,38 +BRDA:37,4,0,38 +BRDA:37,4,1,18 +BRDA:38,5,0,0 +BRDA:38,5,1,38 +BRDA:42,6,0,6 +BRDA:42,6,1,0 +BRDA:60,7,0,14 +BRDA:60,7,1,24 +BRDA:62,8,0,14 +BRDA:62,8,1,14 +BRDA:62,9,0,14 +BRDA:62,9,1,0 +BRDA:66,10,0,24 +BRDA:66,10,1,24 +BRDA:66,11,0,24 +BRDA:66,11,1,0 +BRDA:69,12,0,38 +BRDA:69,12,1,38 +BRDA:69,13,0,38 +BRDA:69,13,1,0 +BRF:24 +BRH:19 +end_of_record +TN: +SF:src\components\fields\SSIImageField\index.tsx +FN:19,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:19,1 +DA:20,0 +DA:22,0 +DA:23,0 +LF:4 +LH:1 +BRDA:24,0,0,0 +BRDA:24,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src\components\fields\SSITextField\index.tsx +FN:22,(anonymous_0) +FNF:1 +FNH:1 +FNDA:12,(anonymous_0) +DA:22,1 +DA:23,12 +DA:25,12 +LF:3 +LH:3 +BRDA:26,0,0,4 +BRDA:26,0,1,8 +BRDA:29,1,0,12 +BRDA:29,1,1,0 +BRDA:37,2,0,12 +BRDA:37,2,1,0 +BRF:6 +BRH:4 +end_of_record +TN: +SF:src\components\fields\SSITextInputField\index.tsx +FN:78,(anonymous_0) +FN:104,(anonymous_1) +FN:108,(anonymous_2) +FN:109,(anonymous_3) +FN:113,(anonymous_4) +FN:116,(anonymous_5) +FN:117,(anonymous_6) +FN:121,(anonymous_7) +FN:125,(anonymous_8) +FNF:9 +FNH:1 +FNDA:45,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +DA:78,1 +DA:98,45 +DA:100,45 +DA:101,45 +DA:102,45 +DA:104,45 +DA:105,0 +DA:106,0 +DA:107,0 +DA:108,0 +DA:109,0 +DA:113,45 +DA:114,0 +DA:115,0 +DA:116,0 +DA:117,0 +DA:121,45 +DA:122,0 +DA:125,45 +DA:126,0 +DA:127,0 +DA:128,0 +DA:132,45 +LF:23 +LH:10 +BRDA:80,0,0,45 +BRDA:82,1,0,30 +BRDA:83,2,0,45 +BRDA:84,3,0,45 +BRDA:85,4,0,45 +BRDA:90,5,0,45 +BRDA:96,6,0,45 +BRDA:97,7,0,45 +BRDA:106,8,0,0 +BRDA:106,8,1,0 +BRDA:114,9,0,0 +BRDA:114,9,1,0 +BRDA:127,10,0,0 +BRDA:127,10,1,0 +BRDA:134,11,0,45 +BRDA:134,11,1,0 +BRDA:135,12,0,0 +BRDA:135,12,1,45 +BRDA:135,13,0,45 +BRDA:135,13,1,45 +BRDA:138,14,0,0 +BRDA:138,14,1,0 +BRDA:139,15,0,0 +BRDA:139,15,1,0 +BRDA:144,16,0,45 +BRDA:144,16,1,0 +BRDA:155,17,0,45 +BRDA:155,17,1,45 +BRDA:164,18,0,45 +BRDA:164,18,1,0 +BRDA:166,19,0,45 +BRDA:166,19,1,0 +BRDA:168,20,0,0 +BRDA:168,20,1,0 +BRDA:173,21,0,0 +BRDA:173,21,1,45 +BRDA:173,22,0,45 +BRDA:173,22,1,0 +BRDA:178,23,0,45 +BRDA:178,23,1,45 +BRDA:178,24,0,0 +BRDA:178,24,1,45 +BRDA:179,25,0,45 +BRDA:179,25,1,0 +BRDA:184,26,0,45 +BRDA:184,26,1,45 +BRDA:184,26,2,0 +BRDA:187,27,0,0 +BRDA:187,27,1,0 +BRDA:188,28,0,0 +BRDA:188,28,1,0 +BRDA:190,29,0,0 +BRDA:190,29,1,0 +BRF:53 +BRH:25 +end_of_record +TN: +SF:src\components\indicators\SSIProgressIndicator\index.tsx +FN:13,(anonymous_0) +FNF:1 +FNH:1 +FNDA:14,(anonymous_0) +DA:6,1 +DA:13,1 +DA:14,14 +DA:16,14 +DA:17,0 +DA:20,14 +DA:21,14 +DA:22,42 +DA:23,14 +DA:25,28 +DA:29,14 +LF:11 +LH:10 +BRDA:16,0,0,0 +BRDA:16,0,1,14 +BRDA:22,1,0,14 +BRDA:22,1,1,28 +BRDA:23,2,0,9 +BRDA:23,2,1,5 +BRDA:25,3,0,19 +BRDA:25,3,1,9 +BRF:8 +BRH:7 +end_of_record +TN: +SF:src\components\messageBoxes\alerts\SSIAlert\index.tsx +FN:18,(anonymous_0) +FN:26,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +DA:18,1 +DA:19,0 +DA:27,0 +LF:3 +LH:1 +BRDA:24,0,0,0 +BRDA:24,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src\components\messageBoxes\popups\SSIPopup\index.tsx +FN:43,(anonymous_0) +FN:103,(anonymous_1) +FN:114,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:43,1 +DA:44,0 +DA:46,0 +DA:103,1 +DA:104,0 +DA:106,0 +DA:108,0 +DA:110,0 +DA:114,1 +DA:115,0 +DA:117,0 +DA:119,0 +DA:121,0 +LF:13 +LH:3 +BRDA:44,0,0,0 +BRDA:47,1,0,0 +BRDA:47,1,1,0 +BRDA:49,2,0,0 +BRDA:49,2,1,0 +BRDA:51,3,0,0 +BRDA:51,3,1,0 +BRDA:55,4,0,0 +BRDA:55,4,1,0 +BRDA:57,5,0,0 +BRDA:57,5,1,0 +BRDA:59,6,0,0 +BRDA:59,6,1,0 +BRDA:60,7,0,0 +BRDA:60,7,1,0 +BRDA:63,8,0,0 +BRDA:63,8,1,0 +BRDA:63,9,0,0 +BRDA:63,9,1,0 +BRDA:64,10,0,0 +BRDA:64,10,1,0 +BRDA:65,11,0,0 +BRDA:65,11,1,0 +BRDA:74,12,0,0 +BRDA:74,12,1,0 +BRDA:74,12,2,0 +BRDA:76,13,0,0 +BRDA:76,13,1,0 +BRDA:83,14,0,0 +BRDA:83,14,1,0 +BRDA:89,15,0,0 +BRDA:89,15,1,0 +BRDA:92,16,0,0 +BRDA:92,16,1,0 +BRDA:104,17,0,0 +BRDA:104,17,1,0 +BRDA:104,17,2,0 +BRDA:115,18,0,0 +BRDA:115,18,1,0 +BRDA:115,18,2,0 +BRF:40 +BRH:0 +end_of_record +TN: +SF:src\components\messageBoxes\toasts\SSIToast\index.tsx +FN:19,(anonymous_0) +FN:30,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +DA:19,1 +DA:20,0 +DA:22,0 +DA:24,0 +DA:26,0 +DA:30,1 +DA:31,0 +DA:33,0 +LF:8 +LH:2 +BRDA:20,0,0,0 +BRDA:20,0,1,0 +BRDA:20,0,2,0 +BRDA:31,1,0,0 +BRDA:35,2,0,0 +BRDA:35,2,1,0 +BRDA:37,3,0,0 +BRDA:37,3,1,0 +BRDA:42,4,0,0 +BRDA:42,4,1,0 +BRDA:42,4,2,0 +BRDA:43,5,0,0 +BRDA:43,5,1,0 +BRDA:43,6,0,0 +BRDA:43,6,1,0 +BRF:15 +BRH:0 +end_of_record +TN: +SF:src\components\pinCodes\SSIPinCode\index.tsx +FN:53,(anonymous_0) +FN:60,(anonymous_1) +FN:66,(anonymous_2) +FN:75,(anonymous_3) +FN:79,(anonymous_4) +FN:83,(anonymous_5) +FN:94,(anonymous_6) +FN:106,(anonymous_7) +FN:115,(anonymous_8) +FN:124,(anonymous_9) +FN:156,(anonymous_10) +FN:167,(anonymous_11) +FN:171,(anonymous_12) +FNF:13 +FNH:9 +FNDA:1,(anonymous_0) +FNDA:5,(anonymous_1) +FNDA:1,(anonymous_2) +FNDA:9,(anonymous_3) +FNDA:8,(anonymous_4) +FNDA:1,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:9,(anonymous_10) +FNDA:18,(anonymous_11) +FNDA:19,(anonymous_12) +DA:15,1 +DA:41,9 +DA:53,9 +DA:54,1 +DA:56,1 +DA:57,1 +DA:58,1 +DA:60,5 +DA:62,1 +DA:67,1 +DA:75,9 +DA:76,9 +DA:78,9 +DA:79,8 +DA:83,9 +DA:84,1 +DA:85,1 +DA:86,1 +DA:87,1 +DA:88,1 +DA:89,1 +DA:92,0 +DA:93,0 +DA:94,0 +DA:95,0 +DA:96,0 +DA:97,0 +DA:101,0 +DA:102,0 +DA:106,9 +DA:107,0 +DA:109,0 +DA:110,0 +DA:111,0 +DA:115,9 +DA:116,0 +DA:118,0 +DA:119,0 +DA:120,0 +DA:124,9 +DA:125,0 +DA:126,0 +DA:127,0 +DA:129,0 +DA:130,0 +DA:134,0 +DA:136,0 +DA:137,0 +DA:140,0 +DA:142,0 +DA:148,0 +DA:149,0 +DA:156,9 +DA:157,9 +DA:159,9 +DA:160,9 +DA:162,0 +DA:163,0 +DA:167,9 +DA:168,18 +DA:172,19 +DA:173,19 +DA:175,19 +DA:182,19 +DA:183,19 +DA:184,114 +DA:196,19 +LF:67 +LH:37 +BRDA:43,0,0,9 +BRDA:43,0,1,0 +BRDA:47,1,0,9 +BRDA:47,1,1,9 +BRDA:86,2,0,1 +BRDA:86,2,1,0 +BRDA:93,3,0,0 +BRDA:93,3,1,0 +BRDA:96,4,0,0 +BRDA:96,4,1,0 +BRDA:109,5,0,0 +BRDA:109,5,1,0 +BRDA:118,6,0,0 +BRDA:118,6,1,0 +BRDA:126,7,0,0 +BRDA:126,7,1,0 +BRDA:127,8,0,0 +BRDA:127,8,1,0 +BRDA:129,9,0,0 +BRDA:129,9,1,0 +BRDA:136,10,0,0 +BRDA:136,10,1,0 +BRDA:148,11,0,0 +BRDA:148,11,1,0 +BRDA:159,12,0,9 +BRDA:159,12,1,0 +BRDA:185,13,0,19 +BRDA:185,13,1,95 +BRDA:187,14,0,114 +BRDA:187,14,1,0 +BRDA:187,15,0,0 +BRDA:187,15,1,114 +BRDA:187,16,0,114 +BRDA:187,16,1,0 +BRDA:200,17,0,19 +BRDA:200,17,1,19 +BRDA:200,17,2,1 +BRDA:201,18,0,19 +BRDA:201,18,1,0 +BRDA:201,18,2,0 +BRF:40 +BRH:14 +end_of_record +TN: +SF:src\components\pinCodes\SSIPinCodeSegment\index.tsx +FN:18,(anonymous_0) +FNF:1 +FNH:1 +FNDA:114,(anonymous_0) +DA:18,1 +DA:19,114 +DA:20,114 +LF:3 +LH:3 +BRDA:19,0,0,114 +BRDA:19,0,1,0 +BRDA:25,1,0,114 +BRDA:25,1,1,19 +BRDA:26,2,0,114 +BRDA:26,2,1,95 +BRF:6 +BRH:5 +end_of_record +TN: +SF:src\components\qrCodes\SSIQRCustomMarker\index.tsx +FN:19,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:19,1 +DA:20,0 +LF:2 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\components\views\SSIActivityView\index.tsx +FN:10,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:10,1 +DA:11,0 +LF:2 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\components\views\SSIContactViewItem\index.tsx +FN:22,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:22,1 +DA:23,0 +DA:25,0 +LF:3 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\components\views\SSICredentialDetailsView\index.tsx +FN:24,(anonymous_0) +FN:25,(anonymous_1) +FN:33,(anonymous_2) +FN:50,(anonymous_3) +FNF:4 +FNH:4 +FNDA:4,(anonymous_0) +FNDA:12,(anonymous_1) +FNDA:4,(anonymous_2) +FNDA:12,(anonymous_3) +DA:24,1 +DA:25,4 +DA:26,12 +DA:27,0 +DA:29,12 +DA:33,4 +DA:34,4 +DA:44,4 +DA:50,12 +LF:9 +LH:8 +BRDA:26,0,0,0 +BRDA:26,0,1,12 +BRDA:35,1,0,4 +BRDA:35,1,1,0 +BRF:4 +BRH:2 +end_of_record +TN: +SF:src\components\views\SSICredentialRequiredViewItem\index.tsx +FN:36,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:36,1 +DA:37,0 +DA:39,0 +LF:3 +LH:1 +BRDA:40,0,0,0 +BRDA:40,0,1,0 +BRDA:42,1,0,0 +BRDA:42,1,1,0 +BRDA:47,2,0,0 +BRDA:47,2,1,0 +BRDA:50,3,0,0 +BRDA:50,3,1,0 +BRDA:51,4,0,0 +BRDA:51,4,1,0 +BRDA:54,5,0,0 +BRDA:54,5,1,0 +BRDA:54,6,0,0 +BRDA:54,6,1,0 +BRDA:63,7,0,0 +BRDA:63,7,1,0 +BRDA:64,8,0,0 +BRDA:64,8,1,0 +BRDA:66,9,0,0 +BRDA:66,9,1,0 +BRDA:73,10,0,0 +BRDA:73,10,1,0 +BRDA:73,10,2,0 +BRF:23 +BRH:0 +end_of_record +TN: +SF:src\components\views\SSICredentialSelectTypeViewItem\index.tsx +FN:23,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:23,1 +DA:24,0 +DA:26,0 +LF:3 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\components\views\SSICredentialSelectViewItem\index.tsx +FN:27,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:27,1 +DA:28,0 +DA:30,0 +LF:3 +LH:1 +BRDA:52,0,0,0 +BRDA:52,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src\components\views\SSICredentialViewItem\index.tsx +FN:25,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:25,1 +DA:26,0 +DA:27,0 +LF:3 +LH:1 +BRDA:26,0,0,0 +BRDA:39,1,0,0 +BRDA:39,1,1,0 +BRDA:41,2,0,0 +BRDA:41,2,1,0 +BRDA:43,3,0,0 +BRDA:43,3,1,0 +BRF:7 +BRH:0 +end_of_record +TN: +SF:src\components\views\SSIIdentitiesView\index.tsx +FN:15,(anonymous_0) +FN:19,(anonymous_1) +FN:23,(anonymous_2) +FN:38,(anonymous_3) +FNF:4 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:15,1 +DA:16,0 +DA:17,0 +DA:19,0 +DA:20,0 +DA:23,0 +DA:24,0 +DA:34,0 +DA:38,0 +LF:9 +LH:1 +BRDA:26,0,0,0 +BRDA:26,0,1,0 +BRDA:27,1,0,0 +BRDA:27,1,1,0 +BRDA:27,1,2,0 +BRF:5 +BRH:0 +end_of_record +TN: +SF:src\components\views\SSIIdentityViewItem\index.tsx +FN:18,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:18,1 +DA:19,0 +DA:21,0 +LF:3 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\components\views\SSISwipeRowViewItem\index.tsx +FN:19,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:19,1 +DA:20,0 +DA:22,0 +LF:3 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\components\views\SSITabView\index.tsx +FN:13,(anonymous_0) +FN:17,(anonymous_1) +FN:24,(anonymous_2) +FNF:3 +FNH:3 +FNDA:9,(anonymous_0) +FNDA:14,(anonymous_1) +FNDA:9,(anonymous_2) +DA:13,1 +DA:14,9 +DA:15,9 +DA:17,14 +DA:19,9 +DA:25,9 +LF:6 +LH:6 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\components\views\SSITabView\SSITabViewHeader\index.tsx +FN:20,(anonymous_0) +FN:23,(anonymous_1) +FN:34,(anonymous_2) +FN:37,(anonymous_3) +FN:46,(anonymous_4) +FNF:5 +FNH:4 +FNDA:9,(anonymous_0) +FNDA:14,(anonymous_1) +FNDA:14,(anonymous_2) +FNDA:28,(anonymous_3) +FNDA:0,(anonymous_4) +DA:12,1 +DA:20,1 +DA:21,9 +DA:23,14 +DA:24,9 +DA:29,9 +DA:30,9 +DA:32,9 +DA:35,14 +DA:37,28 +DA:39,14 +DA:46,0 +LF:12 +LH:11 +BRDA:30,0,0,4 +BRDA:30,0,1,5 +BRDA:37,1,0,14 +BRDA:37,1,1,14 +BRDA:42,2,0,4 +BRDA:42,2,1,10 +BRDA:43,3,0,10 +BRDA:43,3,1,4 +BRDA:48,4,0,5 +BRDA:48,4,1,9 +BRDA:48,5,0,14 +BRDA:48,5,1,10 +BRF:12 +BRH:12 +end_of_record +TN: +SF:src\components\views\SSITermsOfServiceView\index.tsx +FN:16,(anonymous_0) +FN:19,(anonymous_1) +FN:23,(anonymous_2) +FNF:3 +FNH:1 +FNDA:5,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:16,1 +DA:17,5 +DA:19,5 +DA:20,0 +DA:23,5 +DA:24,0 +DA:25,0 +DA:26,0 +DA:31,5 +LF:9 +LH:5 +BRDA:24,0,0,0 +BRDA:24,0,1,0 +BRDA:25,1,0,0 +BRDA:25,1,1,0 +BRF:4 +BRH:0 +end_of_record +TN: +SF:src\components\views\SSIWelcomeView\index.tsx +FN:26,(anonymous_0) +FNF:1 +FNH:1 +FNDA:14,(anonymous_0) +DA:26,1 +DA:27,14 +DA:29,14 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\contexts\OnTouchContext.ts +FN:13,(anonymous_0) +FN:16,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +DA:10,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\handlers\IntentHandler\index.ts +FN:28,(anonymous_0) +FN:30,(anonymous_1) +FN:34,(anonymous_2) +FN:53,(anonymous_3) +FN:60,(anonymous_4) +FN:73,(anonymous_5) +FN:86,(anonymous_6) +FN:91,(anonymous_7) +FN:100,(anonymous_8) +FN:112,(anonymous_9) +FN:113,(anonymous_10) +FN:124,(anonymous_11) +FN:134,(anonymous_12) +FN:142,(anonymous_13) +FN:147,(anonymous_14) +FN:152,(anonymous_15) +FN:163,(anonymous_16) +FN:172,(anonymous_17) +FN:181,(anonymous_18) +FN:191,(anonymous_19) +FN:193,(anonymous_20) +FN:198,(anonymous_21) +FN:204,(anonymous_22) +FN:208,(anonymous_23) +FN:216,(anonymous_24) +FNF:25 +FNH:8 +FNDA:1,(anonymous_0) +FNDA:1,(anonymous_1) +FNDA:1,(anonymous_2) +FNDA:1,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:1,(anonymous_7) +FNDA:1,(anonymous_8) +FNDA:1,(anonymous_9) +FNDA:0,(anonymous_10) +FNDA:0,(anonymous_11) +FNDA:0,(anonymous_12) +FNDA:1,(anonymous_13) +FNDA:0,(anonymous_14) +FNDA:0,(anonymous_15) +FNDA:0,(anonymous_16) +FNDA:0,(anonymous_17) +FNDA:0,(anonymous_18) +FNDA:0,(anonymous_19) +FNDA:0,(anonymous_20) +FNDA:0,(anonymous_21) +FNDA:0,(anonymous_22) +FNDA:0,(anonymous_23) +FNDA:0,(anonymous_24) +DA:18,1 +DA:25,1 +DA:31,1 +DA:34,1 +DA:35,1 +DA:36,1 +DA:37,0 +DA:39,1 +DA:40,1 +DA:41,1 +DA:42,1 +DA:43,0 +DA:45,1 +DA:46,1 +DA:47,1 +DA:49,1 +DA:54,1 +DA:55,1 +DA:57,1 +DA:60,1 +DA:61,0 +DA:64,0 +DA:65,0 +DA:66,0 +DA:68,0 +DA:69,0 +DA:73,1 +DA:78,0 +DA:79,0 +DA:81,0 +DA:82,0 +DA:86,1 +DA:87,0 +DA:88,0 +DA:96,1 +DA:97,1 +DA:101,1 +DA:104,1 +DA:105,1 +DA:106,1 +DA:108,0 +DA:109,0 +DA:113,1 +DA:114,0 +DA:115,0 +DA:116,0 +DA:118,0 +DA:120,0 +DA:124,1 +DA:125,0 +DA:126,0 +DA:127,0 +DA:129,0 +DA:131,0 +DA:135,0 +DA:136,0 +DA:138,0 +DA:142,1 +DA:143,1 +DA:144,1 +DA:148,0 +DA:149,0 +DA:152,1 +DA:153,0 +DA:154,0 +DA:155,0 +DA:156,0 +DA:159,0 +DA:164,0 +DA:165,0 +DA:169,0 +DA:171,0 +DA:174,0 +DA:175,0 +DA:176,0 +DA:177,0 +DA:181,0 +DA:184,0 +DA:192,0 +DA:194,0 +DA:199,0 +DA:204,0 +DA:209,0 +DA:216,0 +LF:84 +LH:32 +BRDA:36,0,0,0 +BRDA:36,0,1,1 +BRDA:54,1,0,1 +BRDA:54,1,1,0 +BRDA:78,2,0,0 +BRDA:78,2,1,0 +BRDA:81,3,0,0 +BRDA:81,3,1,0 +BRDA:104,4,0,1 +BRDA:104,4,1,0 +BRDA:104,5,0,1 +BRDA:104,5,1,0 +BRDA:114,6,0,0 +BRDA:114,6,1,0 +BRDA:114,7,0,0 +BRDA:114,7,1,0 +BRDA:114,7,2,0 +BRDA:114,7,3,0 +BRDA:125,8,0,0 +BRDA:125,8,1,0 +BRDA:135,9,0,0 +BRDA:135,9,1,0 +BRDA:135,10,0,0 +BRDA:135,10,1,0 +BRDA:135,10,2,0 +BRDA:156,11,0,0 +BRDA:156,11,1,0 +BRDA:164,12,0,0 +BRDA:164,12,1,0 +BRDA:164,13,0,0 +BRDA:164,13,1,0 +BRDA:169,14,0,0 +BRDA:169,14,1,0 +BRDA:175,15,0,0 +BRDA:175,15,1,0 +BRF:35 +BRH:4 +end_of_record +TN: +SF:src\handlers\LockingHandler\index.ts +FN:18,(anonymous_0) +FN:20,(anonymous_1) +FN:27,(anonymous_2) +FN:32,(anonymous_3) +FN:52,(anonymous_4) +FN:79,(anonymous_5) +FN:83,(anonymous_6) +FN:88,(anonymous_7) +FN:92,(anonymous_8) +FNF:9 +FNH:3 +FNDA:1,(anonymous_0) +FNDA:1,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:1,(anonymous_8) +DA:10,1 +DA:14,1 +DA:21,1 +DA:22,1 +DA:24,1 +DA:27,1 +DA:28,0 +DA:29,0 +DA:32,0 +DA:33,0 +DA:34,0 +DA:35,0 +DA:36,0 +DA:37,0 +DA:39,0 +DA:40,0 +DA:41,0 +DA:42,0 +DA:45,0 +DA:47,0 +DA:48,0 +DA:49,0 +DA:52,0 +DA:53,0 +DA:54,0 +DA:55,0 +DA:56,0 +DA:58,0 +DA:59,0 +DA:60,0 +DA:62,0 +DA:63,0 +DA:66,0 +DA:67,0 +DA:68,0 +DA:71,0 +DA:72,0 +DA:73,0 +DA:80,0 +DA:83,1 +DA:84,0 +DA:85,0 +DA:89,0 +DA:93,1 +LF:44 +LH:8 +BRDA:21,0,0,1 +BRDA:21,0,1,0 +BRDA:29,1,0,0 +BRDA:29,1,1,0 +BRDA:29,1,2,0 +BRDA:33,2,0,0 +BRDA:33,2,1,0 +BRDA:33,3,0,0 +BRDA:33,3,1,0 +BRDA:34,4,0,0 +BRDA:34,4,1,0 +BRDA:35,5,0,0 +BRDA:35,5,1,0 +BRDA:53,6,0,0 +BRDA:53,6,1,0 +BRDA:54,7,0,0 +BRDA:54,7,1,0 +BRF:17 +BRH:1 +end_of_record +TN: +SF:src\localization\Localization.ts +FN:12,(anonymous_0) +FN:13,(anonymous_1) +FN:17,(anonymous_2) +FN:18,(anonymous_3) +FN:21,(anonymous_4) +FN:29,(anonymous_5) +FN:46,(anonymous_6) +FN:56,(anonymous_7) +FNF:8 +FNH:6 +FNDA:1,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:36,(anonymous_2) +FNDA:578,(anonymous_3) +FNDA:1,(anonymous_4) +FNDA:1,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:1,(anonymous_7) +DA:6,1 +DA:11,1 +DA:12,1 +DA:13,0 +DA:16,1 +DA:17,36 +DA:18,578 +DA:21,1 +DA:22,1 +DA:23,2 +DA:24,0 +DA:29,1 +DA:31,1 +DA:32,1 +DA:33,1 +DA:35,1 +DA:36,1 +DA:37,1 +DA:39,1 +DA:42,1 +DA:46,1 +DA:47,0 +DA:48,0 +DA:50,0 +DA:53,0 +DA:56,1 +DA:57,1 +DA:61,1 +LF:28 +LH:22 +BRDA:18,0,0,0 +BRDA:18,0,1,578 +BRDA:23,1,0,0 +BRDA:23,1,1,2 +BRDA:32,2,0,1 +BRDA:32,2,1,0 +BRDA:37,3,0,1 +BRDA:37,3,1,1 +BRDA:37,3,2,1 +BRDA:46,4,0,0 +BRDA:47,5,0,0 +BRDA:47,5,1,0 +BRF:12 +BRH:6 +end_of_record +TN: +SF:src\machines\onboardingMachine.tsx +FN:26,(anonymous_0) +FN:29,(anonymous_1) +FN:34,(anonymous_2) +FN:39,(anonymous_3) +FN:43,(anonymous_4) +FN:47,(anonymous_5) +FN:110,(anonymous_6) +FN:113,(anonymous_7) +FN:128,(anonymous_8) +FN:140,(anonymous_9) +FN:211,(anonymous_10) +FN:215,(anonymous_11) +FN:222,(anonymous_12) +FN:233,(anonymous_13) +FN:243,(anonymous_14) +FN:251,(anonymous_15) +FNF:16 +FNH:15 +FNDA:24,(anonymous_0) +FNDA:24,(anonymous_1) +FNDA:8,(anonymous_2) +FNDA:4,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:3,(anonymous_5) +FNDA:3,(anonymous_6) +FNDA:3,(anonymous_7) +FNDA:5,(anonymous_8) +FNDA:4,(anonymous_9) +FNDA:3,(anonymous_10) +FNDA:3,(anonymous_11) +FNDA:3,(anonymous_12) +FNDA:3,(anonymous_13) +FNDA:55,(anonymous_14) +FNDA:6,(anonymous_15) +DA:26,1 +DA:27,24 +DA:29,1 +DA:30,24 +DA:31,24 +DA:34,1 +DA:35,8 +DA:36,8 +DA:39,1 +DA:40,4 +DA:43,1 +DA:44,0 +DA:47,1 +DA:48,3 +DA:65,3 +DA:73,3 +DA:110,3 +DA:113,3 +DA:128,5 +DA:140,4 +DA:206,1 +DA:212,3 +DA:216,3 +DA:217,0 +DA:219,3 +DA:223,3 +DA:224,3 +DA:225,0 +DA:227,3 +DA:228,3 +DA:229,3 +DA:234,3 +DA:240,3 +DA:241,0 +DA:242,3 +DA:243,3 +DA:244,55 +DA:245,55 +DA:248,3 +DA:256,6 +DA:257,3 +DA:258,0 +DA:260,3 +DA:262,6 +LF:44 +LH:39 +BRDA:27,0,0,24 +BRDA:27,0,1,14 +BRDA:31,1,0,24 +BRDA:31,1,1,18 +BRDA:31,1,2,18 +BRDA:31,1,3,16 +BRDA:31,1,4,16 +BRDA:31,1,5,14 +BRDA:36,2,0,8 +BRDA:36,2,1,8 +BRDA:40,3,0,4 +BRDA:40,3,1,4 +BRDA:49,4,0,3 +BRDA:49,4,1,3 +BRDA:50,5,0,3 +BRDA:50,5,1,3 +BRDA:52,6,0,3 +BRDA:52,6,1,3 +BRDA:74,7,0,3 +BRDA:74,7,1,3 +BRDA:216,8,0,0 +BRDA:216,8,1,3 +BRDA:224,9,0,0 +BRDA:224,9,1,3 +BRDA:240,10,0,0 +BRDA:240,10,1,3 +BRDA:242,11,0,3 +BRDA:242,11,1,0 +BRDA:256,12,0,3 +BRDA:256,12,1,3 +BRDA:257,13,0,0 +BRDA:257,13,1,3 +BRF:32 +BRH:27 +end_of_record +TN: +SF:src\modals\SSIAlertModal\index.tsx +FN:12,(anonymous_0) +FN:15,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +DA:12,1 +DA:13,0 +DA:15,0 +DA:16,0 +DA:19,0 +LF:5 +LH:1 +BRDA:13,0,0,0 +BRDA:23,1,0,0 +BRDA:23,1,1,0 +BRF:3 +BRH:0 +end_of_record +TN: +SF:src\modals\SSIPopupModal\index.tsx +FN:14,(anonymous_0) +FN:18,(anonymous_1) +FN:22,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:14,1 +DA:15,0 +DA:16,0 +DA:18,0 +DA:19,0 +DA:22,0 +DA:23,0 +DA:26,0 +LF:8 +LH:1 +BRDA:29,0,0,0 +BRDA:29,0,1,0 +BRDA:29,0,2,0 +BRDA:48,1,0,0 +BRDA:48,1,1,0 +BRF:5 +BRH:0 +end_of_record +TN: +SF:src\navigation\navigation.tsx +FN:58,(anonymous_0) +FN:69,(anonymous_1) +FN:82,(anonymous_2) +FN:97,(anonymous_3) +FN:105,(anonymous_4) +FN:110,(anonymous_5) +FN:119,(anonymous_6) +FN:128,(anonymous_7) +FN:137,(anonymous_8) +FN:148,(anonymous_9) +FN:160,(anonymous_10) +FN:166,(anonymous_11) +FN:168,(anonymous_12) +FN:177,(anonymous_13) +FN:193,(anonymous_14) +FN:206,(anonymous_15) +FN:213,(anonymous_16) +FN:225,(anonymous_17) +FN:233,(anonymous_18) +FN:247,(anonymous_19) +FN:254,(anonymous_20) +FN:271,(anonymous_21) +FN:273,(anonymous_22) +FN:286,(anonymous_23) +FN:288,(anonymous_24) +FN:298,(anonymous_25) +FN:312,(anonymous_26) +FN:314,(anonymous_27) +FN:329,(anonymous_28) +FN:343,(anonymous_29) +FN:356,(anonymous_30) +FN:358,(anonymous_31) +FN:373,(anonymous_32) +FN:375,(anonymous_33) +FN:396,(anonymous_34) +FN:404,(anonymous_35) +FN:411,(anonymous_36) +FN:423,(anonymous_37) +FN:430,(anonymous_38) +FN:437,(anonymous_39) +FN:457,(anonymous_40) +FN:459,(anonymous_41) +FN:474,(anonymous_42) +FN:476,(anonymous_43) +FN:491,(anonymous_44) +FN:495,(anonymous_45) +FN:510,(anonymous_46) +FN:514,(anonymous_47) +FN:529,(anonymous_48) +FN:531,(anonymous_49) +FN:562,(anonymous_50) +FN:575,(anonymous_51) +FN:584,(anonymous_52) +FN:597,(anonymous_53) +FN:600,(anonymous_54) +FNF:55 +FNH:11 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +FNDA:0,(anonymous_11) +FNDA:0,(anonymous_12) +FNDA:0,(anonymous_13) +FNDA:0,(anonymous_14) +FNDA:0,(anonymous_15) +FNDA:0,(anonymous_16) +FNDA:0,(anonymous_17) +FNDA:0,(anonymous_18) +FNDA:0,(anonymous_19) +FNDA:0,(anonymous_20) +FNDA:0,(anonymous_21) +FNDA:0,(anonymous_22) +FNDA:0,(anonymous_23) +FNDA:0,(anonymous_24) +FNDA:0,(anonymous_25) +FNDA:0,(anonymous_26) +FNDA:0,(anonymous_27) +FNDA:0,(anonymous_28) +FNDA:0,(anonymous_29) +FNDA:0,(anonymous_30) +FNDA:0,(anonymous_31) +FNDA:0,(anonymous_32) +FNDA:0,(anonymous_33) +FNDA:0,(anonymous_34) +FNDA:0,(anonymous_35) +FNDA:0,(anonymous_36) +FNDA:0,(anonymous_37) +FNDA:0,(anonymous_38) +FNDA:3,(anonymous_39) +FNDA:49,(anonymous_40) +FNDA:47,(anonymous_41) +FNDA:33,(anonymous_42) +FNDA:31,(anonymous_43) +FNDA:17,(anonymous_44) +FNDA:16,(anonymous_45) +FNDA:11,(anonymous_46) +FNDA:11,(anonymous_47) +FNDA:7,(anonymous_48) +FNDA:7,(anonymous_49) +FNDA:0,(anonymous_50) +FNDA:0,(anonymous_51) +FNDA:0,(anonymous_52) +FNDA:0,(anonymous_53) +FNDA:0,(anonymous_54) +DA:53,1 +DA:55,1 +DA:56,1 +DA:58,1 +DA:59,0 +DA:70,0 +DA:83,0 +DA:97,1 +DA:98,0 +DA:105,0 +DA:111,0 +DA:120,0 +DA:129,0 +DA:138,0 +DA:148,1 +DA:149,0 +DA:160,0 +DA:166,0 +DA:169,0 +DA:178,0 +DA:194,0 +DA:206,0 +DA:213,1 +DA:214,0 +DA:225,0 +DA:234,0 +DA:247,0 +DA:254,1 +DA:255,0 +DA:271,0 +DA:274,0 +DA:286,0 +DA:289,0 +DA:299,0 +DA:312,0 +DA:315,0 +DA:330,0 +DA:344,0 +DA:356,0 +DA:359,0 +DA:373,0 +DA:376,0 +DA:396,0 +DA:404,0 +DA:411,1 +DA:412,0 +DA:423,0 +DA:430,0 +DA:437,1 +DA:440,3 +DA:457,49 +DA:460,47 +DA:474,33 +DA:477,31 +DA:491,17 +DA:496,16 +DA:510,11 +DA:515,11 +DA:529,7 +DA:532,7 +DA:562,1 +DA:563,0 +DA:576,0 +DA:584,1 +DA:585,0 +DA:597,1 +DA:598,0 +DA:600,0 +DA:601,0 +DA:602,0 +DA:604,0 +DA:607,0 +DA:608,0 +DA:609,0 +DA:610,0 +DA:611,0 +DA:612,0 +DA:618,0 +DA:619,0 +DA:620,0 +DA:630,0 +LF:81 +LH:24 +BRDA:287,0,0,0 +BRDA:287,0,1,0 +BRDA:364,1,0,0 +BRDA:364,1,1,0 +BRDA:380,2,0,0 +BRDA:380,2,1,0 +BRDA:601,3,0,0 +BRDA:601,3,1,0 +BRDA:601,4,0,0 +BRDA:601,4,1,0 +BRDA:609,5,0,0 +BRDA:609,5,1,0 +BRDA:609,6,0,0 +BRDA:609,6,1,0 +BRDA:609,6,2,0 +BRDA:618,7,0,0 +BRDA:618,7,1,0 +BRDA:619,8,0,0 +BRDA:619,8,1,0 +BRDA:636,9,0,0 +BRDA:636,9,1,0 +BRDA:644,10,0,0 +BRDA:644,10,1,0 +BRF:23 +BRH:0 +end_of_record +TN: +SF:src\navigation\onboardingStateNavigation.tsx +FN:21,(anonymous_0) +FN:35,(anonymous_1) +FN:36,(anonymous_2) +FN:61,(anonymous_3) +FN:62,(anonymous_4) +FN:67,(anonymous_5) +FN:72,(anonymous_6) +FN:77,(anonymous_7) +FN:78,(anonymous_8) +FN:84,(anonymous_9) +FN:99,(anonymous_10) +FN:114,(anonymous_11) +FN:138,(anonymous_12) +FNF:13 +FNH:10 +FNDA:55,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:25,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:3,(anonymous_4) +FNDA:3,(anonymous_5) +FNDA:16,(anonymous_6) +FNDA:15,(anonymous_7) +FNDA:5,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:4,(anonymous_10) +FNDA:4,(anonymous_11) +FNDA:3,(anonymous_12) +DA:20,1 +DA:21,1 +DA:35,55 +DA:36,55 +DA:37,55 +DA:39,55 +DA:40,55 +DA:41,0 +DA:42,0 +DA:44,55 +DA:45,5 +DA:55,50 +DA:56,16 +DA:61,0 +DA:63,3 +DA:68,3 +DA:72,16 +DA:74,34 +DA:75,15 +DA:77,15 +DA:79,5 +DA:85,0 +DA:94,19 +DA:95,5 +DA:100,4 +DA:109,14 +DA:110,4 +DA:115,4 +DA:121,10 +DA:122,4 +DA:123,6 +DA:124,3 +DA:128,3 +DA:130,3 +DA:131,3 +DA:134,0 +DA:138,1 +DA:139,3 +LF:38 +LH:33 +BRDA:39,0,0,55 +BRDA:39,0,1,55 +BRDA:40,1,0,0 +BRDA:40,1,1,55 +BRDA:40,2,0,55 +BRDA:40,2,1,55 +BRDA:44,3,0,5 +BRDA:44,3,1,50 +BRDA:55,4,0,16 +BRDA:55,4,1,34 +BRDA:74,5,0,15 +BRDA:74,5,1,19 +BRDA:94,6,0,5 +BRDA:94,6,1,14 +BRDA:109,7,0,4 +BRDA:109,7,1,10 +BRDA:121,8,0,4 +BRDA:121,8,1,6 +BRDA:123,9,0,3 +BRDA:123,9,1,3 +BRDA:128,10,0,3 +BRDA:128,10,1,0 +BRDA:140,11,0,3 +BRDA:140,11,1,0 +BRF:24 +BRH:21 +end_of_record +TN: +SF:src\navigation\rootNavigation.ts +FN:12,(anonymous_0) +FN:13,(anonymous_1) +FN:15,(anonymous_2) +FN:16,(anonymous_3) +FN:17,(anonymous_4) +FN:18,(anonymous_5) +FN:19,(anonymous_6) +FN:20,(anonymous_7) +FN:21,(anonymous_8) +FN:22,(anonymous_9) +FN:23,(anonymous_10) +FNF:11 +FNH:2 +FNDA:0,(anonymous_0) +FNDA:52,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:55,(anonymous_10) +DA:6,1 +DA:11,1 +DA:12,0 +DA:13,52 +DA:15,0 +DA:16,0 +DA:17,0 +DA:18,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:23,55 +LF:13 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\providers\authentication\SIOPv2Provider.ts +FN:15,(anonymous_0) +FN:17,(anonymous_1) +FN:26,(anonymous_2) +FN:30,(anonymous_3) +FN:44,(anonymous_4) +FN:101,(anonymous_5) +FNF:6 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +DA:13,1 +DA:15,1 +DA:16,0 +DA:17,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:23,0 +DA:26,1 +DA:27,0 +DA:30,1 +DA:31,0 +DA:44,1 +DA:51,0 +DA:52,0 +DA:54,0 +DA:55,0 +DA:56,0 +DA:57,0 +DA:62,0 +DA:64,0 +DA:65,0 +DA:66,0 +DA:67,0 +DA:71,0 +DA:76,0 +DA:77,0 +DA:84,0 +DA:85,0 +DA:86,0 +DA:87,0 +DA:90,0 +DA:91,0 +DA:93,0 +DA:95,0 +DA:97,0 +DA:98,0 +DA:99,0 +DA:100,0 +DA:101,0 +DA:106,0 +LF:41 +LH:5 +BRDA:51,0,0,0 +BRDA:51,0,1,0 +BRDA:56,1,0,0 +BRDA:56,1,1,0 +BRDA:56,2,0,0 +BRDA:56,2,1,0 +BRDA:64,3,0,0 +BRDA:64,3,1,0 +BRDA:67,4,0,0 +BRDA:67,4,1,0 +BRDA:71,5,0,0 +BRDA:71,5,1,0 +BRDA:71,5,2,0 +BRDA:73,6,0,0 +BRDA:73,6,1,0 +BRDA:84,7,0,0 +BRDA:84,7,1,0 +BRDA:84,8,0,0 +BRDA:84,8,1,0 +BRDA:86,9,0,0 +BRDA:86,9,1,0 +BRDA:102,10,0,0 +BRDA:102,10,1,0 +BRF:23 +BRH:0 +end_of_record +TN: +SF:src\providers\credential\JwtVcPresentationProfileProvider.ts +FN:13,(anonymous_0) +FN:28,(anonymous_1) +FN:31,(anonymous_2) +FN:41,(anonymous_3) +FN:44,(anonymous_4) +FN:50,(anonymous_5) +FN:55,(anonymous_6) +FN:62,(anonymous_7) +FN:66,(anonymous_8) +FN:72,(anonymous_9) +FNF:10 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +DA:10,1 +DA:13,0 +DA:14,0 +DA:15,0 +DA:16,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:25,0 +DA:28,0 +DA:30,0 +DA:32,0 +DA:33,0 +DA:34,0 +DA:36,0 +DA:37,0 +DA:39,0 +DA:42,0 +DA:45,0 +DA:46,0 +DA:50,0 +DA:54,0 +DA:56,0 +DA:57,0 +DA:58,0 +DA:60,0 +DA:64,0 +DA:67,0 +DA:68,0 +DA:72,0 +DA:74,0 +DA:75,0 +DA:76,0 +DA:78,0 +DA:79,0 +LF:36 +LH:1 +BRDA:14,0,0,0 +BRDA:14,0,1,0 +BRDA:20,1,0,0 +BRDA:20,1,1,0 +BRDA:32,2,0,0 +BRDA:32,2,1,0 +BRDA:33,3,0,0 +BRDA:33,3,1,0 +BRDA:56,4,0,0 +BRDA:56,4,1,0 +BRF:10 +BRH:0 +end_of_record +TN: +SF:src\providers\credential\OpenId4VcIssuanceProvider.ts +FN:89,(anonymous_0) +FN:153,(anonymous_1) +FN:157,(anonymous_2) +FN:170,(anonymous_3) +FN:196,(anonymous_4) +FN:211,(anonymous_5) +FN:232,(anonymous_6) +FN:245,(anonymous_7) +FN:250,(anonymous_8) +FN:259,(anonymous_9) +FN:260,(anonymous_10) +FN:274,(anonymous_11) +FN:277,(anonymous_12) +FN:284,(anonymous_13) +FN:305,(anonymous_14) +FN:314,(anonymous_15) +FN:319,(anonymous_16) +FN:330,(anonymous_17) +FN:342,(anonymous_18) +FN:372,(anonymous_19) +FN:385,(anonymous_20) +FN:393,(anonymous_21) +FN:400,(anonymous_22) +FN:409,(anonymous_23) +FN:412,(anonymous_24) +FNF:25 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +FNDA:0,(anonymous_11) +FNDA:0,(anonymous_12) +FNDA:0,(anonymous_13) +FNDA:0,(anonymous_14) +FNDA:0,(anonymous_15) +FNDA:0,(anonymous_16) +FNDA:0,(anonymous_17) +FNDA:0,(anonymous_18) +FNDA:0,(anonymous_19) +FNDA:0,(anonymous_20) +FNDA:0,(anonymous_21) +FNDA:0,(anonymous_22) +FNDA:0,(anonymous_23) +FNDA:0,(anonymous_24) +DA:40,1 +DA:42,1 +DA:45,1 +DA:58,1 +DA:60,1 +DA:74,1 +DA:89,1 +DA:91,0 +DA:97,0 +DA:99,0 +DA:104,0 +DA:109,0 +DA:114,0 +DA:119,0 +DA:124,0 +DA:129,0 +DA:134,0 +DA:139,0 +DA:154,0 +DA:157,1 +DA:158,0 +DA:159,0 +DA:160,0 +DA:162,0 +DA:170,0 +DA:171,0 +DA:172,0 +DA:174,0 +DA:178,0 +DA:182,0 +DA:189,0 +DA:190,0 +DA:193,0 +DA:196,0 +DA:197,0 +DA:198,0 +DA:200,0 +DA:205,0 +DA:207,0 +DA:208,0 +DA:210,0 +DA:212,0 +DA:213,0 +DA:214,0 +DA:226,0 +DA:228,0 +DA:230,0 +DA:231,0 +DA:232,0 +DA:240,0 +DA:241,0 +DA:247,0 +DA:250,0 +DA:251,0 +DA:252,0 +DA:254,0 +DA:256,0 +DA:257,0 +DA:258,0 +DA:259,0 +DA:260,0 +DA:261,0 +DA:262,0 +DA:265,0 +DA:267,0 +DA:268,0 +DA:271,0 +DA:272,0 +DA:273,0 +DA:275,0 +DA:278,0 +DA:283,0 +DA:284,0 +DA:289,0 +DA:290,0 +DA:296,0 +DA:305,0 +DA:306,0 +DA:307,0 +DA:308,0 +DA:309,0 +DA:311,0 +DA:314,0 +DA:316,0 +DA:319,0 +DA:325,0 +DA:327,0 +DA:328,0 +DA:329,0 +DA:330,0 +DA:332,0 +DA:333,0 +DA:334,0 +DA:339,0 +DA:342,0 +DA:343,0 +DA:344,0 +DA:346,0 +DA:347,0 +DA:349,0 +DA:351,0 +DA:352,0 +DA:353,0 +DA:354,0 +DA:357,0 +DA:358,0 +DA:360,0 +DA:368,0 +DA:369,0 +DA:373,0 +DA:378,0 +DA:385,0 +DA:386,0 +DA:389,0 +DA:393,0 +DA:395,0 +DA:400,0 +DA:402,0 +DA:405,0 +DA:409,0 +DA:410,0 +DA:411,0 +DA:412,0 +DA:413,0 +DA:415,0 +DA:416,0 +DA:417,0 +DA:418,0 +DA:421,0 +DA:422,0 +DA:425,0 +LF:131 +LH:8 +BRDA:92,0,0,0 +BRDA:92,0,1,0 +BRDA:93,1,0,0 +BRDA:93,1,1,0 +BRDA:94,2,0,0 +BRDA:94,2,1,0 +BRDA:97,3,0,0 +BRDA:97,3,1,0 +BRDA:97,3,2,0 +BRDA:97,3,3,0 +BRDA:97,3,4,0 +BRDA:97,3,5,0 +BRDA:97,3,6,0 +BRDA:97,3,7,0 +BRDA:97,3,8,0 +BRDA:158,4,0,0 +BRDA:158,4,1,0 +BRDA:158,5,0,0 +BRDA:158,5,1,0 +BRDA:158,6,0,0 +BRDA:158,6,1,0 +BRDA:189,7,0,0 +BRDA:189,7,1,0 +BRDA:197,8,0,0 +BRDA:197,8,1,0 +BRDA:205,9,0,0 +BRDA:205,9,1,0 +BRDA:247,10,0,0 +BRDA:247,10,1,0 +BRDA:247,11,0,0 +BRDA:247,11,1,0 +BRDA:251,12,0,0 +BRDA:251,12,1,0 +BRDA:254,13,0,0 +BRDA:254,13,1,0 +BRDA:254,14,0,0 +BRDA:254,14,1,0 +BRDA:257,15,0,0 +BRDA:257,15,1,0 +BRDA:257,16,0,0 +BRDA:257,16,1,0 +BRDA:261,17,0,0 +BRDA:261,17,1,0 +BRDA:267,18,0,0 +BRDA:267,18,1,0 +BRDA:271,19,0,0 +BRDA:271,19,1,0 +BRDA:276,20,0,0 +BRDA:276,20,1,0 +BRDA:283,21,0,0 +BRDA:283,21,1,0 +BRDA:285,22,0,0 +BRDA:285,22,1,0 +BRDA:289,23,0,0 +BRDA:289,23,1,0 +BRDA:306,24,0,0 +BRDA:306,24,1,0 +BRDA:319,25,0,0 +BRDA:319,25,1,0 +BRDA:332,26,0,0 +BRDA:332,26,1,0 +BRDA:343,27,0,0 +BRDA:343,27,1,0 +BRDA:343,28,0,0 +BRDA:343,28,1,0 +BRDA:346,29,0,0 +BRDA:346,29,1,0 +BRDA:352,30,0,0 +BRDA:352,30,1,0 +BRDA:386,31,0,0 +BRDA:386,31,1,0 +BRDA:389,32,0,0 +BRDA:389,32,1,0 +BRDA:389,32,2,0 +BRDA:389,32,3,0 +BRDA:389,32,4,0 +BRDA:389,32,5,0 +BRDA:389,32,6,0 +BRDA:395,33,0,0 +BRDA:395,33,1,0 +BRDA:402,34,0,0 +BRDA:402,34,1,0 +BRDA:411,35,0,0 +BRDA:411,35,1,0 +BRDA:411,36,0,0 +BRDA:411,36,1,0 +BRDA:415,37,0,0 +BRDA:415,37,1,0 +BRDA:417,38,0,0 +BRDA:417,38,1,0 +BRDA:418,39,0,0 +BRDA:418,39,1,0 +BRDA:421,40,0,0 +BRDA:421,40,1,0 +BRDA:421,41,0,0 +BRDA:421,41,1,0 +BRDA:421,41,2,0 +BRDA:422,42,0,0 +BRDA:422,42,1,0 +BRF:99 +BRH:0 +end_of_record +TN: +SF:src\providers\touch\OnTouchProvider.tsx +FN:11,(anonymous_0) +FN:18,(anonymous_1) +FN:19,(anonymous_2) +FN:23,(anonymous_3) +FN:28,(anonymous_4) +FNF:5 +FNH:5 +FNDA:3,(anonymous_0) +FNDA:3,(anonymous_1) +FNDA:55,(anonymous_2) +FNDA:3,(anonymous_3) +FNDA:55,(anonymous_4) +DA:11,1 +DA:12,3 +DA:13,3 +DA:14,3 +DA:18,3 +DA:19,3 +DA:20,55 +DA:23,3 +DA:24,3 +DA:28,3 +DA:29,55 +DA:30,55 +DA:33,3 +LF:13 +LH:13 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\screens\Onboarding\SSIPersonalDataScreen\index.tsx +FN:20,(anonymous_0) +FN:21,(anonymous_1) +FN:28,(anonymous_2) +FN:32,(anonymous_3) +FN:39,(anonymous_4) +FN:43,(anonymous_5) +FN:50,(anonymous_6) +FN:55,(anonymous_7) +FN:62,(anonymous_8) +FN:67,(anonymous_9) +FN:71,(anonymous_10) +FNF:11 +FNH:6 +FNDA:15,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:3,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:3,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:5,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:15,(anonymous_9) +FNDA:5,(anonymous_10) +DA:20,1 +DA:21,15 +DA:22,0 +DA:24,0 +DA:26,15 +DA:28,15 +DA:29,3 +DA:32,15 +DA:33,0 +DA:34,0 +DA:35,0 +DA:39,15 +DA:40,3 +DA:43,15 +DA:44,0 +DA:45,0 +DA:46,0 +DA:50,15 +DA:51,5 +DA:52,5 +DA:55,15 +DA:56,0 +DA:57,0 +DA:58,0 +DA:62,15 +DA:63,0 +DA:64,0 +DA:67,15 +DA:68,15 +DA:71,15 +DA:72,5 +DA:76,15 +LF:32 +LH:19 +BRDA:34,0,0,0 +BRDA:34,0,1,0 +BRDA:45,1,0,0 +BRDA:45,1,1,0 +BRDA:57,2,0,0 +BRDA:57,2,1,0 +BRF:6 +BRH:0 +end_of_record +TN: +SF:src\screens\Onboarding\SSIPinCodeSetScreen\index.tsx +FN:14,(anonymous_0) +FN:15,(anonymous_1) +FN:22,(anonymous_2) +FNF:3 +FNH:2 +FNDA:5,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:4,(anonymous_2) +DA:14,1 +DA:15,5 +DA:16,0 +DA:18,0 +DA:22,5 +DA:23,4 +DA:29,5 +DA:31,5 +LF:8 +LH:6 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\screens\Onboarding\SSIPinCodeVerifyScreen\index.tsx +FN:14,(anonymous_0) +FN:15,(anonymous_1) +FN:21,(anonymous_2) +FNF:3 +FNH:2 +FNDA:4,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:5,(anonymous_2) +DA:14,1 +DA:15,4 +DA:16,0 +DA:18,0 +DA:21,4 +DA:22,5 +DA:23,1 +DA:25,4 +DA:28,4 +LF:9 +LH:7 +BRDA:22,0,0,1 +BRDA:22,0,1,4 +BRF:2 +BRH:2 +end_of_record +TN: +SF:src\screens\Onboarding\SSISummaryScreen\index.tsx +FN:20,(anonymous_0) +FN:21,(anonymous_1) +FN:48,(anonymous_2) +FNF:3 +FNH:3 +FNDA:4,(anonymous_0) +FNDA:4,(anonymous_1) +FNDA:4,(anonymous_2) +DA:20,1 +DA:21,4 +DA:22,4 +DA:24,4 +DA:43,4 +DA:48,4 +DA:52,4 +LF:7 +LH:7 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\screens\Onboarding\SSITermsOfServiceScreen\index.tsx +FN:27,(anonymous_0) +FN:28,(anonymous_1) +FN:38,(anonymous_2) +FN:43,(anonymous_3) +FN:51,(anonymous_4) +FN:53,(anonymous_5) +FN:57,(anonymous_6) +FN:63,(anonymous_7) +FN:71,(anonymous_8) +FN:78,(anonymous_9) +FN:82,(anonymous_10) +FNF:11 +FNH:5 +FNDA:16,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:5,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:5,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:3,(anonymous_9) +FNDA:3,(anonymous_10) +DA:27,1 +DA:28,16 +DA:29,0 +DA:31,0 +DA:34,16 +DA:38,5 +DA:43,0 +DA:51,16 +DA:53,16 +DA:54,0 +DA:57,16 +DA:58,0 +DA:65,0 +DA:66,0 +DA:72,0 +DA:78,16 +DA:79,3 +DA:82,16 +DA:83,3 +DA:86,16 +LF:20 +LH:12 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\screens\Onboarding\SSIWelcomeScreen\index.tsx +FN:24,(anonymous_0) +FN:36,(anonymous_1) +FN:65,(anonymous_2) +FNF:3 +FNH:2 +FNDA:14,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:31,(anonymous_2) +DA:24,1 +DA:25,14 +DA:26,0 +DA:27,0 +DA:30,14 +DA:36,14 +DA:37,0 +DA:43,0 +DA:45,0 +DA:46,0 +DA:48,0 +DA:53,0 +DA:59,0 +DA:65,14 +DA:66,31 +DA:68,31 +DA:70,3 +DA:71,3 +DA:73,3 +DA:78,3 +DA:80,25 +DA:84,14 +DA:85,14 +DA:87,14 +LF:24 +LH:15 +BRDA:25,0,0,0 +BRDA:25,0,1,14 +BRDA:43,1,0,0 +BRDA:43,1,1,0 +BRDA:43,1,2,0 +BRDA:68,2,0,3 +BRDA:68,2,1,3 +BRDA:68,2,2,25 +BRF:8 +BRH:4 +end_of_record +TN: +SF:src\screens\SSIContactAddScreen\index.tsx +FN:40,(anonymous_0) +FN:56,(anonymous_1) +FN:62,(anonymous_2) +FN:66,(anonymous_3) +FN:71,(anonymous_4) +FN:91,(anonymous_5) +FN:95,(anonymous_6) +FN:102,(anonymous_7) +FN:117,(anonymous_8) +FN:122,(anonymous_9) +FN:163,(anonymous_10) +FN:165,(anonymous_11) +FN:166,(anonymous_12) +FN:170,(anonymous_13) +FNF:14 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +FNDA:0,(anonymous_11) +FNDA:0,(anonymous_12) +FNDA:0,(anonymous_13) +DA:35,0 +DA:40,0 +DA:41,0 +DA:42,0 +DA:44,0 +DA:45,0 +DA:46,0 +DA:49,0 +DA:50,0 +DA:51,0 +DA:52,0 +DA:56,0 +DA:57,0 +DA:59,0 +DA:61,0 +DA:63,0 +DA:64,0 +DA:72,0 +DA:73,0 +DA:74,0 +DA:76,0 +DA:77,0 +DA:78,0 +DA:79,0 +DA:80,0 +DA:82,0 +DA:91,0 +DA:92,0 +DA:95,0 +DA:96,0 +DA:97,0 +DA:98,0 +DA:102,0 +DA:103,0 +DA:105,0 +DA:107,0 +DA:117,0 +DA:123,0 +DA:124,0 +DA:126,0 +DA:163,1 +DA:164,0 +DA:165,0 +DA:166,0 +DA:170,1 +DA:171,0 +LF:46 +LH:2 +BRDA:36,0,0,0 +BRDA:36,0,1,0 +BRDA:44,1,0,0 +BRDA:44,1,1,0 +BRDA:50,2,0,0 +BRDA:50,2,1,0 +BRDA:77,3,0,0 +BRDA:77,3,1,0 +BRDA:97,4,0,0 +BRDA:97,4,1,0 +BRDA:152,5,0,0 +BRDA:152,5,1,0 +BRDA:152,5,2,0 +BRF:13 +BRH:0 +end_of_record +TN: +SF:src\screens\SSIContactDetailsScreen\index.tsx +FN:20,(anonymous_0) +FN:33,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +DA:20,1 +DA:21,0 +DA:23,0 +DA:33,0 +DA:43,0 +LF:5 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\screens\SSIContactsOverviewScreen\index.tsx +FN:33,(anonymous_0) +FN:38,(anonymous_1) +FN:46,(anonymous_2) +FN:53,(anonymous_3) +FN:58,(anonymous_4) +FN:62,(anonymous_5) +FN:74,(anonymous_6) +FN:82,(anonymous_7) +FN:83,(anonymous_8) +FN:88,(anonymous_9) +FN:93,(anonymous_10) +FN:107,(anonymous_11) +FN:109,(anonymous_12) +FN:110,(anonymous_13) +FN:114,(anonymous_14) +FNF:15 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +FNDA:0,(anonymous_11) +FNDA:0,(anonymous_12) +FNDA:0,(anonymous_13) +FNDA:0,(anonymous_14) +DA:29,0 +DA:33,0 +DA:34,0 +DA:35,0 +DA:38,0 +DA:39,0 +DA:41,0 +DA:47,0 +DA:48,0 +DA:53,0 +DA:58,0 +DA:59,0 +DA:62,0 +DA:63,0 +DA:64,0 +DA:65,0 +DA:68,0 +DA:73,0 +DA:74,0 +DA:82,0 +DA:83,0 +DA:89,0 +DA:93,0 +DA:107,1 +DA:108,0 +DA:109,0 +DA:110,0 +DA:114,1 +DA:115,0 +LF:29 +LH:2 +BRDA:66,0,0,0 +BRDA:66,0,1,0 +BRDA:70,1,0,0 +BRDA:70,1,1,0 +BRDA:70,1,2,0 +BRDA:73,2,0,0 +BRDA:73,2,1,0 +BRF:7 +BRH:0 +end_of_record +TN: +SF:src\screens\SSICredentialDetailsScreen\index.tsx +FN:30,(anonymous_0) +FN:41,(anonymous_1) +FN:50,(anonymous_2) +FN:57,(anonymous_3) +FNF:4 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:30,1 +DA:31,0 +DA:32,0 +DA:35,0 +DA:36,0 +DA:37,0 +DA:41,1 +DA:42,0 +DA:43,0 +DA:44,0 +DA:46,0 +DA:50,0 +DA:57,0 +DA:63,0 +LF:14 +LH:2 +BRDA:31,0,0,0 +BRDA:31,0,1,0 +BRDA:31,1,0,0 +BRDA:31,1,1,0 +BRDA:36,2,0,0 +BRDA:36,2,1,0 +BRDA:42,3,0,0 +BRDA:52,4,0,0 +BRDA:52,4,1,0 +BRDA:70,5,0,0 +BRDA:70,5,1,0 +BRDA:75,6,0,0 +BRDA:75,6,1,0 +BRDA:90,7,0,0 +BRDA:90,7,1,0 +BRDA:90,7,2,0 +BRDA:93,8,0,0 +BRDA:93,8,1,0 +BRDA:101,9,0,0 +BRDA:101,9,1,0 +BRDA:105,10,0,0 +BRDA:105,10,1,0 +BRDA:113,11,0,0 +BRDA:113,11,1,0 +BRF:24 +BRH:0 +end_of_record +TN: +SF:src\screens\SSICredentialRawJsonScreen\index.tsx +FN:21,(anonymous_0) +FN:57,(anonymous_1) +FN:60,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:21,1 +DA:22,0 +DA:24,0 +DA:45,0 +DA:47,0 +DA:58,0 +DA:59,0 +DA:60,0 +DA:61,0 +LF:9 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\screens\SSICredentialSelectScreen\index.tsx +FN:21,(anonymous_0) +FN:25,(anonymous_1) +FN:26,(anonymous_2) +FN:35,(anonymous_3) +FN:39,(anonymous_4) +FN:44,(anonymous_5) +FN:51,(anonymous_6) +FN:56,(anonymous_7) +FN:65,(anonymous_8) +FN:65,(anonymous_9) +FN:71,(anonymous_10) +FN:82,(anonymous_11) +FN:94,(anonymous_12) +FN:95,(anonymous_13) +FN:98,(anonymous_14) +FN:99,(anonymous_15) +FNF:16 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +FNDA:0,(anonymous_11) +FNDA:0,(anonymous_12) +FNDA:0,(anonymous_13) +FNDA:0,(anonymous_14) +FNDA:0,(anonymous_15) +DA:21,1 +DA:22,0 +DA:23,0 +DA:25,0 +DA:26,0 +DA:27,0 +DA:28,0 +DA:30,0 +DA:32,0 +DA:35,0 +DA:36,0 +DA:39,0 +DA:40,0 +DA:41,0 +DA:44,0 +DA:45,0 +DA:51,0 +DA:56,0 +DA:57,0 +DA:60,0 +DA:64,0 +DA:65,0 +DA:71,0 +DA:77,0 +DA:82,0 +DA:94,0 +DA:96,0 +DA:98,0 +DA:99,0 +DA:101,0 +LF:30 +LH:1 +BRDA:27,0,0,0 +BRDA:27,0,1,0 +BRDA:29,1,0,0 +BRDA:29,1,1,0 +BRDA:58,2,0,0 +BRDA:58,2,1,0 +BRDA:62,3,0,0 +BRDA:62,3,1,0 +BRDA:62,3,2,0 +BRF:9 +BRH:0 +end_of_record +TN: +SF:src\screens\SSICredentialSelectTypeScreen\index.tsx +FN:20,(anonymous_0) +FN:23,(anonymous_1) +FN:24,(anonymous_2) +FN:33,(anonymous_3) +FN:35,(anonymous_4) +FN:36,(anonymous_5) +FN:40,(anonymous_6) +FN:50,(anonymous_7) +FN:52,(anonymous_8) +FN:67,(anonymous_9) +FN:76,(anonymous_10) +FNF:11 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +DA:20,1 +DA:21,0 +DA:23,0 +DA:24,0 +DA:25,0 +DA:27,0 +DA:30,0 +DA:33,0 +DA:34,0 +DA:35,0 +DA:36,0 +DA:37,0 +DA:40,0 +DA:41,0 +DA:44,0 +DA:49,0 +DA:50,0 +DA:52,0 +DA:61,0 +DA:67,0 +DA:76,0 +LF:21 +LH:1 +BRDA:26,0,0,0 +BRDA:26,0,1,0 +BRDA:42,1,0,0 +BRDA:42,1,1,0 +BRDA:46,2,0,0 +BRDA:46,2,1,0 +BRDA:46,2,2,0 +BRF:7 +BRH:0 +end_of_record +TN: +SF:src\screens\SSICredentialsOverviewScreen\index.tsx +FN:39,(anonymous_0) +FN:44,(anonymous_1) +FN:50,(anonymous_2) +FN:57,(anonymous_3) +FN:62,(anonymous_4) +FN:63,(anonymous_5) +FN:72,(anonymous_6) +FN:98,(anonymous_7) +FN:100,(anonymous_8) +FN:108,(anonymous_9) +FN:109,(anonymous_10) +FN:114,(anonymous_11) +FN:120,(anonymous_12) +FN:134,(anonymous_13) +FN:137,(anonymous_14) +FN:138,(anonymous_15) +FN:142,(anonymous_16) +FNF:17 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +FNDA:0,(anonymous_11) +FNDA:0,(anonymous_12) +FNDA:0,(anonymous_13) +FNDA:0,(anonymous_14) +FNDA:0,(anonymous_15) +FNDA:0,(anonymous_16) +DA:35,0 +DA:39,0 +DA:40,0 +DA:41,0 +DA:44,0 +DA:45,0 +DA:51,0 +DA:52,0 +DA:57,0 +DA:62,0 +DA:63,0 +DA:64,0 +DA:72,0 +DA:73,0 +DA:76,0 +DA:89,0 +DA:92,0 +DA:97,0 +DA:98,0 +DA:100,0 +DA:108,0 +DA:109,0 +DA:115,0 +DA:120,0 +DA:134,1 +DA:136,0 +DA:137,0 +DA:138,0 +DA:142,1 +DA:143,0 +LF:30 +LH:2 +BRDA:90,0,0,0 +BRDA:90,0,1,0 +BRDA:94,1,0,0 +BRDA:94,1,1,0 +BRDA:94,1,2,0 +BRDA:97,2,0,0 +BRDA:97,2,1,0 +BRDA:98,3,0,0 +BRDA:98,3,1,0 +BRF:9 +BRH:0 +end_of_record +TN: +SF:src\screens\SSICredentialsRequiredScreen\index.tsx +FN:30,(anonymous_0) +FN:36,(anonymous_1) +FN:38,(anonymous_2) +FN:41,(anonymous_3) +FN:45,(anonymous_4) +FN:60,(anonymous_5) +FN:66,(anonymous_6) +FN:74,(anonymous_7) +FN:76,(anonymous_8) +FN:82,(anonymous_9) +FN:86,(anonymous_10) +FN:90,(anonymous_11) +FN:93,(anonymous_12) +FN:102,(anonymous_13) +FN:106,(anonymous_14) +FN:111,(anonymous_15) +FN:113,(anonymous_16) +FN:120,(anonymous_17) +FN:123,(anonymous_18) +FN:130,(anonymous_19) +FN:145,(anonymous_20) +FN:146,(anonymous_21) +FN:158,(anonymous_22) +FN:162,(anonymous_23) +FN:164,(anonymous_24) +FN:176,(anonymous_25) +FN:209,(anonymous_26) +FNF:27 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +FNDA:0,(anonymous_11) +FNDA:0,(anonymous_12) +FNDA:0,(anonymous_13) +FNDA:0,(anonymous_14) +FNDA:0,(anonymous_15) +FNDA:0,(anonymous_16) +FNDA:0,(anonymous_17) +FNDA:0,(anonymous_18) +FNDA:0,(anonymous_19) +FNDA:0,(anonymous_20) +FNDA:0,(anonymous_21) +FNDA:0,(anonymous_22) +FNDA:0,(anonymous_23) +FNDA:0,(anonymous_24) +FNDA:0,(anonymous_25) +FNDA:0,(anonymous_26) +DA:30,1 +DA:31,0 +DA:32,0 +DA:33,0 +DA:34,0 +DA:36,0 +DA:38,0 +DA:40,0 +DA:42,0 +DA:44,0 +DA:45,0 +DA:46,0 +DA:50,0 +DA:54,0 +DA:55,0 +DA:58,0 +DA:61,0 +DA:62,0 +DA:63,0 +DA:66,0 +DA:68,0 +DA:70,0 +DA:74,0 +DA:75,0 +DA:76,0 +DA:77,0 +DA:79,0 +DA:82,0 +DA:83,0 +DA:86,0 +DA:87,0 +DA:88,0 +DA:90,0 +DA:93,0 +DA:94,0 +DA:95,0 +DA:96,0 +DA:99,0 +DA:102,0 +DA:103,0 +DA:106,0 +DA:111,0 +DA:113,0 +DA:116,0 +DA:118,0 +DA:122,0 +DA:123,0 +DA:125,0 +DA:126,0 +DA:127,0 +DA:131,0 +DA:134,0 +DA:146,0 +DA:147,0 +DA:148,0 +DA:149,0 +DA:150,0 +DA:152,0 +DA:158,0 +DA:160,0 +DA:162,0 +DA:164,0 +DA:168,0 +DA:169,0 +DA:171,0 +DA:172,0 +DA:173,0 +DA:176,0 +DA:177,0 +DA:179,0 +DA:190,0 +DA:204,0 +DA:209,0 +LF:73 +LH:1 +BRDA:54,0,0,0 +BRDA:54,0,1,0 +BRDA:58,1,0,0 +BRDA:58,1,1,0 +BRDA:58,2,0,0 +BRDA:58,2,1,0 +BRDA:62,3,0,0 +BRDA:62,3,1,0 +BRDA:62,4,0,0 +BRDA:62,4,1,0 +BRDA:131,5,0,0 +BRDA:131,5,1,0 +BRDA:160,6,0,0 +BRDA:160,6,1,0 +BRDA:160,7,0,0 +BRDA:160,7,1,0 +BRDA:168,8,0,0 +BRDA:168,8,1,0 +BRDA:172,9,0,0 +BRDA:172,9,1,0 +BRDA:193,10,0,0 +BRDA:193,10,1,0 +BRDA:195,11,0,0 +BRDA:195,11,1,0 +BRDA:196,12,0,0 +BRDA:196,12,1,0 +BRF:26 +BRH:0 +end_of_record +TN: +SF:src\screens\SSIErrorScreen\index.tsx +FN:14,(anonymous_0) +FN:24,(anonymous_1) +FN:43,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:14,1 +DA:15,0 +DA:16,0 +DA:18,0 +DA:24,0 +DA:43,0 +LF:6 +LH:1 +BRDA:21,0,0,0 +BRDA:21,0,1,0 +BRDA:21,0,2,0 +BRDA:40,1,0,0 +BRDA:40,1,1,0 +BRF:5 +BRH:0 +end_of_record +TN: +SF:src\screens\SSILoadingScreen\index.tsx +FN:18,(anonymous_0) +FN:20,(anonymous_1) +FN:23,(anonymous_2) +FN:27,(anonymous_3) +FNF:4 +FNH:3 +FNDA:3,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:3,(anonymous_2) +FNDA:3,(anonymous_3) +DA:18,3 +DA:20,3 +DA:23,3 +DA:24,3 +DA:28,3 +DA:29,3 +LF:6 +LH:6 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\screens\SSILockScreen\index.tsx +FN:18,(anonymous_0) +FN:19,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +DA:18,1 +DA:19,0 +DA:20,0 +DA:23,0 +DA:24,0 +DA:26,0 +DA:29,0 +LF:7 +LH:1 +BRDA:23,0,0,0 +BRDA:23,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src\screens\SSINotificationsOverviewScreen\index.tsx +FN:17,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:17,1 +DA:18,0 +LF:2 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\screens\SSIQRReaderScreen\index.tsx +FN:15,(anonymous_0) +FN:16,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +DA:15,1 +DA:16,0 +DA:17,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:25,0 +LF:7 +LH:1 +BRDA:20,0,0,0 +BRDA:20,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src\screens\SSIVerificationCodeScreen\index.tsx +FN:17,(anonymous_0) +FN:20,(anonymous_1) +FN:33,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:17,1 +DA:18,0 +DA:20,0 +DA:21,0 +DA:33,0 +DA:38,0 +LF:6 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\services\authenticationService.ts +FN:14,(anonymous_0) +FN:19,(anonymous_1) +FN:23,(anonymous_2) +FN:29,(anonymous_3) +FN:30,(anonymous_4) +FNF:5 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +DA:12,1 +DA:14,1 +DA:16,0 +DA:19,1 +DA:20,0 +DA:23,1 +DA:25,0 +DA:26,0 +DA:29,1 +DA:30,0 +DA:31,0 +DA:33,0 +DA:34,0 +DA:35,0 +DA:36,0 +DA:38,0 +DA:40,0 +DA:42,0 +LF:18 +LH:5 +BRDA:33,0,0,0 +BRDA:33,0,1,0 +BRDA:33,1,0,0 +BRDA:33,1,1,0 +BRDA:35,2,0,0 +BRDA:35,2,1,0 +BRF:6 +BRH:0 +end_of_record +TN: +SF:src\services\brandingService.ts +FN:13,(anonymous_0) +FN:18,(anonymous_1) +FN:23,(anonymous_2) +FN:30,(anonymous_3) +FN:36,(anonymous_4) +FN:43,(anonymous_5) +FNF:6 +FNH:1 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:1,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +DA:11,1 +DA:13,1 +DA:14,0 +DA:15,0 +DA:18,1 +DA:19,0 +DA:20,0 +DA:23,1 +DA:28,1 +DA:29,1 +DA:31,0 +DA:34,1 +DA:35,1 +DA:36,0 +DA:41,1 +DA:42,1 +DA:43,0 +DA:48,1 +LF:18 +LH:11 +BRDA:31,0,0,0 +BRDA:31,0,1,0 +BRDA:34,1,0,1 +BRDA:34,1,1,1 +BRDA:35,2,0,0 +BRDA:35,2,1,1 +BRDA:41,3,0,1 +BRDA:41,3,1,1 +BRDA:42,4,0,0 +BRDA:42,4,1,1 +BRF:10 +BRH:6 +end_of_record +TN: +SF:src\services\contactService.ts +FN:11,(anonymous_0) +FN:16,(anonymous_1) +FN:19,(anonymous_2) +FN:23,(anonymous_3) +FN:26,(anonymous_4) +FN:29,(anonymous_5) +FN:33,(anonymous_6) +FN:36,(anonymous_7) +FN:39,(anonymous_8) +FN:43,(anonymous_9) +FN:46,(anonymous_10) +FN:49,(anonymous_11) +FN:53,(anonymous_12) +FNF:13 +FNH:1 +FNDA:1,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +FNDA:0,(anonymous_11) +FNDA:0,(anonymous_12) +DA:9,1 +DA:11,1 +DA:12,1 +DA:13,1 +DA:16,1 +DA:17,0 +DA:18,0 +DA:20,0 +DA:21,0 +DA:23,0 +DA:26,1 +DA:27,0 +DA:28,0 +DA:30,0 +DA:31,0 +DA:33,0 +DA:36,1 +DA:37,0 +DA:38,0 +DA:40,0 +DA:41,0 +DA:43,0 +DA:46,1 +DA:47,0 +DA:48,0 +DA:50,0 +DA:51,0 +DA:53,0 +LF:28 +LH:8 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\services\credentialService.ts +FN:22,(anonymous_0) +FN:26,(anonymous_1) +FN:30,(anonymous_2) +FN:34,(anonymous_3) +FN:35,(anonymous_4) +FN:38,(anonymous_5) +FN:42,(anonymous_6) +FN:65,(anonymous_7) +FN:68,(anonymous_8) +FNF:9 +FNH:3 +FNDA:1,(anonymous_0) +FNDA:1,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:1,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +DA:22,1 +DA:23,1 +DA:26,1 +DA:27,1 +DA:30,1 +DA:31,0 +DA:34,1 +DA:35,0 +DA:38,1 +DA:39,1 +DA:42,1 +DA:44,0 +DA:46,0 +DA:47,0 +DA:57,0 +DA:60,0 +DA:61,0 +DA:62,0 +DA:63,0 +DA:64,0 +DA:65,0 +DA:66,0 +DA:68,0 +DA:72,0 +LF:24 +LH:9 +BRDA:46,0,0,0 +BRDA:46,0,1,0 +BRDA:50,1,0,0 +BRDA:50,1,1,0 +BRDA:60,2,0,0 +BRDA:60,2,1,0 +BRDA:61,3,0,0 +BRDA:61,3,1,0 +BRDA:62,4,0,0 +BRDA:62,4,1,0 +BRDA:63,5,0,0 +BRDA:63,5,1,0 +BRDA:63,6,0,0 +BRDA:63,6,1,0 +BRDA:64,7,0,0 +BRDA:64,7,1,0 +BRDA:65,8,0,0 +BRDA:65,8,1,0 +BRDA:65,9,0,0 +BRDA:65,9,1,0 +BRDA:67,10,0,0 +BRDA:67,10,1,0 +BRDA:68,11,0,0 +BRDA:68,11,1,0 +BRDA:68,12,0,0 +BRDA:68,12,1,0 +BRF:26 +BRH:0 +end_of_record +TN: +SF:src\services\fileService.ts +FN:5,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:5,1 +DA:6,0 +LF:2 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\services\identityService.ts +FN:10,(anonymous_0) +FN:15,(anonymous_1) +FN:24,(anonymous_2) +FN:25,(anonymous_3) +FN:34,(anonymous_4) +FN:36,(anonymous_5) +FN:37,(anonymous_6) +FNF:7 +FNH:2 +FNDA:0,(anonymous_0) +FNDA:1,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:1,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +DA:10,1 +DA:12,0 +DA:15,1 +DA:16,1 +DA:23,1 +DA:24,0 +DA:25,0 +DA:26,0 +DA:31,1 +DA:34,1 +DA:35,1 +DA:37,0 +DA:40,1 +DA:43,1 +DA:45,1 +LF:15 +LH:10 +BRDA:17,0,0,1 +BRDA:17,0,1,1 +BRDA:18,1,0,1 +BRDA:18,1,1,1 +BRDA:19,2,0,1 +BRDA:19,2,1,1 +BRDA:23,3,0,0 +BRDA:23,3,1,1 +BRDA:35,4,0,1 +BRDA:35,4,1,0 +BRDA:37,5,0,0 +BRDA:37,5,1,0 +BRDA:43,6,0,1 +BRDA:43,6,1,0 +BRDA:43,7,0,1 +BRDA:43,7,1,1 +BRF:16 +BRH:11 +end_of_record +TN: +SF:src\services\onboardingService.ts +FN:15,(anonymous_0) +FN:24,(anonymous_1) +FN:24,(anonymous_2) +FN:31,(anonymous_3) +FNF:4 +FNH:4 +FNDA:1,(anonymous_0) +FNDA:1,(anonymous_1) +FNDA:1,(anonymous_2) +FNDA:1,(anonymous_3) +DA:15,1 +DA:18,1 +DA:24,1 +DA:27,1 +DA:28,1 +DA:31,1 +DA:34,1 +DA:36,1 +DA:37,1 +DA:38,1 +DA:39,1 +DA:40,1 +DA:62,1 +DA:64,1 +DA:69,1 +DA:70,1 +LF:16 +LH:16 +BRDA:43,0,0,1 +BRDA:43,0,1,0 +BRDA:47,1,0,1 +BRDA:47,1,1,0 +BRDA:48,2,0,1 +BRDA:48,2,1,0 +BRDA:49,3,0,1 +BRDA:49,3,1,1 +BRDA:50,4,0,1 +BRDA:50,4,1,0 +BRDA:53,5,0,1 +BRDA:53,5,1,0 +BRDA:57,6,0,1 +BRDA:57,6,1,0 +BRF:14 +BRH:8 +end_of_record +TN: +SF:src\services\qrService.ts +FN:79,(anonymous_0) +FN:81,(anonymous_1) +FN:82,(anonymous_2) +FN:85,(anonymous_3) +FN:108,(anonymous_4) +FN:123,(anonymous_5) +FN:134,(anonymous_6) +FN:150,(anonymous_7) +FN:168,(anonymous_8) +FN:181,(anonymous_9) +FN:193,(anonymous_10) +FN:194,(anonymous_11) +FN:201,(anonymous_12) +FN:246,(anonymous_13) +FN:259,(anonymous_14) +FN:268,(anonymous_15) +FN:275,(anonymous_16) +FN:298,(anonymous_17) +FN:299,(anonymous_18) +FN:342,(anonymous_19) +FN:346,(anonymous_20) +FN:347,(anonymous_21) +FN:370,(anonymous_22) +FN:391,(anonymous_23) +FN:396,(anonymous_24) +FN:396,(anonymous_25) +FN:405,(anonymous_26) +FN:412,(anonymous_27) +FN:421,getIssuerDisplays +FN:424,(anonymous_29) +FN:426,(anonymous_30) +FN:431,getName +FN:446,(anonymous_32) +FN:447,(anonymous_33) +FN:462,(anonymous_34) +FN:492,(anonymous_35) +FN:497,(anonymous_36) +FN:497,(anonymous_37) +FN:511,(anonymous_38) +FN:515,(anonymous_39) +FN:517,(anonymous_40) +FN:534,(anonymous_41) +FN:553,(anonymous_42) +FN:558,(anonymous_43) +FN:565,(anonymous_44) +FN:578,(anonymous_45) +FN:581,(anonymous_46) +FN:624,(anonymous_47) +FN:625,(anonymous_48) +FN:635,(anonymous_49) +FN:647,(anonymous_50) +FN:656,(anonymous_51) +FN:665,(anonymous_52) +FN:670,(anonymous_53) +FN:684,(anonymous_54) +FN:693,(anonymous_55) +FN:712,(anonymous_56) +FN:726,(anonymous_57) +FN:727,(anonymous_58) +FN:729,(anonymous_59) +FNF:60 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +FNDA:0,(anonymous_11) +FNDA:0,(anonymous_12) +FNDA:0,(anonymous_13) +FNDA:0,(anonymous_14) +FNDA:0,(anonymous_15) +FNDA:0,(anonymous_16) +FNDA:0,(anonymous_17) +FNDA:0,(anonymous_18) +FNDA:0,(anonymous_19) +FNDA:0,(anonymous_20) +FNDA:0,(anonymous_21) +FNDA:0,(anonymous_22) +FNDA:0,(anonymous_23) +FNDA:0,(anonymous_24) +FNDA:0,(anonymous_25) +FNDA:0,(anonymous_26) +FNDA:0,(anonymous_27) +FNDA:0,getIssuerDisplays +FNDA:0,(anonymous_29) +FNDA:0,(anonymous_30) +FNDA:0,getName +FNDA:0,(anonymous_32) +FNDA:0,(anonymous_33) +FNDA:0,(anonymous_34) +FNDA:0,(anonymous_35) +FNDA:0,(anonymous_36) +FNDA:0,(anonymous_37) +FNDA:0,(anonymous_38) +FNDA:0,(anonymous_39) +FNDA:0,(anonymous_40) +FNDA:0,(anonymous_41) +FNDA:0,(anonymous_42) +FNDA:0,(anonymous_43) +FNDA:0,(anonymous_44) +FNDA:0,(anonymous_45) +FNDA:0,(anonymous_46) +FNDA:0,(anonymous_47) +FNDA:0,(anonymous_48) +FNDA:0,(anonymous_49) +FNDA:0,(anonymous_50) +FNDA:0,(anonymous_51) +FNDA:0,(anonymous_52) +FNDA:0,(anonymous_53) +FNDA:0,(anonymous_54) +FNDA:0,(anonymous_55) +FNDA:0,(anonymous_56) +FNDA:0,(anonymous_57) +FNDA:0,(anonymous_58) +FNDA:0,(anonymous_59) +DA:76,1 +DA:77,1 +DA:79,1 +DA:80,0 +DA:81,0 +DA:82,0 +DA:85,1 +DA:86,0 +DA:87,0 +DA:88,0 +DA:89,0 +DA:92,0 +DA:95,0 +DA:96,0 +DA:97,0 +DA:98,0 +DA:104,0 +DA:107,0 +DA:108,0 +DA:109,0 +DA:110,0 +DA:112,0 +DA:113,0 +DA:114,0 +DA:116,0 +DA:120,0 +DA:123,1 +DA:124,0 +DA:125,0 +DA:130,0 +DA:134,1 +DA:135,0 +DA:136,0 +DA:142,0 +DA:150,1 +DA:151,0 +DA:153,0 +DA:154,0 +DA:156,0 +DA:160,0 +DA:163,0 +DA:168,1 +DA:169,0 +DA:170,0 +DA:171,0 +DA:181,0 +DA:182,0 +DA:186,0 +DA:192,0 +DA:193,0 +DA:195,0 +DA:196,0 +DA:201,1 +DA:203,0 +DA:212,0 +DA:223,0 +DA:224,0 +DA:226,0 +DA:227,0 +DA:228,0 +DA:234,0 +DA:235,0 +DA:236,0 +DA:237,0 +DA:240,0 +DA:241,0 +DA:246,0 +DA:250,0 +DA:260,0 +DA:263,0 +DA:269,0 +DA:270,0 +DA:271,0 +DA:275,0 +DA:277,0 +DA:278,0 +DA:279,0 +DA:280,0 +DA:285,0 +DA:286,0 +DA:297,0 +DA:298,0 +DA:299,0 +DA:301,0 +DA:302,0 +DA:319,0 +DA:326,0 +DA:327,0 +DA:329,0 +DA:330,0 +DA:332,0 +DA:334,0 +DA:343,0 +DA:347,0 +DA:348,0 +DA:349,0 +DA:353,0 +DA:360,0 +DA:371,0 +DA:372,0 +DA:392,0 +DA:396,0 +DA:400,0 +DA:405,1 +DA:406,0 +DA:407,0 +DA:408,0 +DA:413,0 +DA:423,0 +DA:424,0 +DA:426,0 +DA:432,0 +DA:434,0 +DA:435,0 +DA:436,0 +DA:437,0 +DA:440,0 +DA:441,0 +DA:443,0 +DA:446,1 +DA:447,0 +DA:448,0 +DA:449,0 +DA:450,0 +DA:451,0 +DA:452,0 +DA:463,0 +DA:464,0 +DA:493,0 +DA:497,0 +DA:500,0 +DA:506,0 +DA:511,0 +DA:512,0 +DA:513,0 +DA:514,0 +DA:517,0 +DA:518,0 +DA:528,0 +DA:529,0 +DA:535,0 +DA:541,0 +DA:545,0 +DA:551,0 +DA:553,0 +DA:558,0 +DA:559,0 +DA:560,0 +DA:565,0 +DA:568,0 +DA:574,0 +DA:578,0 +DA:579,0 +DA:582,0 +DA:584,0 +DA:585,0 +DA:586,0 +DA:587,0 +DA:592,0 +DA:593,0 +DA:594,0 +DA:600,0 +DA:602,0 +DA:603,0 +DA:614,0 +DA:615,0 +DA:616,0 +DA:624,0 +DA:625,0 +DA:627,0 +DA:628,0 +DA:629,0 +DA:633,0 +DA:635,0 +DA:637,0 +DA:639,0 +DA:648,0 +DA:649,0 +DA:655,0 +DA:657,0 +DA:660,0 +DA:665,0 +DA:671,0 +DA:678,0 +DA:686,0 +DA:687,0 +DA:688,0 +DA:690,0 +DA:693,0 +DA:694,0 +DA:695,0 +DA:697,0 +DA:712,0 +DA:718,0 +DA:725,0 +DA:727,0 +DA:730,0 +DA:731,0 +DA:732,0 +LF:199 +LH:11 +BRDA:88,0,0,0 +BRDA:88,0,1,0 +BRDA:88,1,0,0 +BRDA:88,1,1,0 +BRDA:97,2,0,0 +BRDA:97,2,1,0 +BRDA:107,3,0,0 +BRDA:107,3,1,0 +BRDA:107,4,0,0 +BRDA:107,4,1,0 +BRDA:112,5,0,0 +BRDA:112,5,1,0 +BRDA:112,6,0,0 +BRDA:112,6,1,0 +BRDA:135,7,0,0 +BRDA:135,7,1,0 +BRDA:151,8,0,0 +BRDA:151,8,1,0 +BRDA:151,8,2,0 +BRDA:151,8,3,0 +BRDA:151,8,4,0 +BRDA:151,8,5,0 +BRDA:153,9,0,0 +BRDA:153,9,1,0 +BRDA:195,10,0,0 +BRDA:195,10,1,0 +BRDA:229,11,0,0 +BRDA:229,11,1,0 +BRDA:230,12,0,0 +BRDA:230,12,1,0 +BRDA:232,13,0,0 +BRDA:232,13,1,0 +BRDA:240,14,0,0 +BRDA:240,14,1,0 +BRDA:241,15,0,0 +BRDA:241,15,1,0 +BRDA:243,16,0,0 +BRDA:243,16,1,0 +BRDA:265,17,0,0 +BRDA:265,17,1,0 +BRDA:279,18,0,0 +BRDA:279,18,1,0 +BRDA:280,19,0,0 +BRDA:280,19,1,0 +BRDA:281,20,0,0 +BRDA:281,20,1,0 +BRDA:285,21,0,0 +BRDA:285,21,1,0 +BRDA:291,22,0,0 +BRDA:291,22,1,0 +BRDA:291,22,2,0 +BRDA:297,23,0,0 +BRDA:297,23,1,0 +BRDA:301,24,0,0 +BRDA:301,24,1,0 +BRDA:306,25,0,0 +BRDA:306,25,1,0 +BRDA:309,26,0,0 +BRDA:309,26,1,0 +BRDA:326,27,0,0 +BRDA:326,27,1,0 +BRDA:326,28,0,0 +BRDA:326,28,1,0 +BRDA:329,29,0,0 +BRDA:329,29,1,0 +BRDA:337,30,0,0 +BRDA:337,30,1,0 +BRDA:337,30,2,0 +BRDA:365,31,0,0 +BRDA:365,31,1,0 +BRDA:371,32,0,0 +BRDA:371,32,1,0 +BRDA:375,33,0,0 +BRDA:375,33,1,0 +BRDA:375,33,2,0 +BRDA:406,34,0,0 +BRDA:406,34,1,0 +BRDA:410,35,0,0 +BRDA:410,35,1,0 +BRDA:423,36,0,0 +BRDA:423,36,1,0 +BRDA:424,37,0,0 +BRDA:424,37,1,0 +BRDA:424,37,2,0 +BRDA:424,37,3,0 +BRDA:424,37,4,0 +BRDA:426,38,0,0 +BRDA:426,38,1,0 +BRDA:426,39,0,0 +BRDA:426,39,1,0 +BRDA:432,40,0,0 +BRDA:432,40,1,0 +BRDA:435,41,0,0 +BRDA:435,41,1,0 +BRDA:440,42,0,0 +BRDA:440,42,1,0 +BRDA:463,43,0,0 +BRDA:463,43,1,0 +BRDA:517,44,0,0 +BRDA:517,44,1,0 +BRDA:522,45,0,0 +BRDA:522,45,1,0 +BRDA:528,46,0,0 +BRDA:528,46,1,0 +BRDA:559,47,0,0 +BRDA:559,47,1,0 +BRDA:592,48,0,0 +BRDA:592,48,1,0 +BRDA:592,49,0,0 +BRDA:592,49,1,0 +BRDA:614,50,0,0 +BRDA:614,50,1,0 +BRDA:615,51,0,0 +BRDA:615,51,1,0 +BRDA:627,52,0,0 +BRDA:627,52,1,0 +BRDA:648,53,0,0 +BRDA:648,53,1,0 +BRDA:648,54,0,0 +BRDA:648,54,1,0 +BRDA:686,55,0,0 +BRDA:686,55,1,0 +BRDA:687,56,0,0 +BRDA:687,56,1,0 +BRDA:687,57,0,0 +BRDA:687,57,1,0 +BRDA:695,58,0,0 +BRDA:695,58,1,0 +BRDA:703,59,0,0 +BRDA:703,59,1,0 +BRF:130 +BRH:0 +end_of_record +TN: +SF:src\services\signatureService.ts +FN:8,(anonymous_0) +FN:17,(anonymous_1) +FN:23,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:8,1 +DA:9,0 +DA:14,0 +DA:17,1 +DA:19,0 +DA:21,0 +DA:23,0 +DA:24,0 +DA:26,0 +LF:9 +LH:2 +BRDA:24,0,0,0 +BRDA:24,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src\services\storageService.ts +FN:13,(anonymous_0) +FN:17,(anonymous_1) +FN:28,(anonymous_2) +FN:37,(anonymous_3) +FN:40,(anonymous_4) +FN:43,(anonymous_5) +FN:51,(anonymous_6) +FN:57,(anonymous_7) +FN:60,(anonymous_8) +FN:64,(anonymous_9) +FN:71,(anonymous_10) +FN:80,(anonymous_11) +FN:83,(anonymous_12) +FN:88,(anonymous_13) +FN:90,(anonymous_14) +FN:93,(anonymous_15) +FN:95,(anonymous_16) +FNF:17 +FNH:6 +FNDA:1,(anonymous_0) +FNDA:1,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:1,(anonymous_4) +FNDA:1,(anonymous_5) +FNDA:1,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +FNDA:0,(anonymous_11) +FNDA:1,(anonymous_12) +FNDA:0,(anonymous_13) +FNDA:0,(anonymous_14) +FNDA:0,(anonymous_15) +FNDA:0,(anonymous_16) +DA:8,1 +DA:10,1 +DA:11,1 +DA:13,1 +DA:14,1 +DA:16,1 +DA:18,1 +DA:19,1 +DA:20,1 +DA:21,1 +DA:23,1 +DA:26,0 +DA:27,0 +DA:28,0 +DA:29,0 +DA:32,0 +DA:34,0 +DA:35,0 +DA:37,0 +DA:40,1 +DA:41,1 +DA:42,1 +DA:44,1 +DA:45,0 +DA:46,0 +DA:49,1 +DA:50,1 +DA:51,1 +DA:52,1 +DA:55,1 +DA:57,0 +DA:60,1 +DA:61,0 +DA:63,0 +DA:65,0 +DA:66,0 +DA:67,0 +DA:70,0 +DA:71,0 +DA:72,0 +DA:75,0 +DA:76,0 +DA:78,0 +DA:80,0 +DA:83,1 +DA:84,1 +DA:85,1 +DA:88,1 +DA:89,0 +DA:90,0 +DA:93,1 +DA:94,0 +DA:95,0 +LF:53 +LH:26 +BRDA:18,0,0,1 +BRDA:18,0,1,0 +BRDA:18,1,0,1 +BRDA:18,1,1,0 +BRDA:44,2,0,0 +BRDA:44,2,1,1 +BRDA:44,3,0,1 +BRDA:44,3,1,1 +BRDA:65,4,0,0 +BRDA:65,4,1,0 +BRDA:65,5,0,0 +BRDA:65,5,1,0 +BRDA:83,6,0,1 +BRF:13 +BRH:6 +end_of_record +TN: +SF:src\services\userService.ts +FN:12,(anonymous_0) +FN:18,(anonymous_1) +FN:25,(anonymous_2) +FN:29,(anonymous_3) +FN:32,(anonymous_4) +FN:34,(anonymous_5) +FN:37,(anonymous_6) +FN:45,(anonymous_7) +FN:49,(anonymous_8) +FN:52,(anonymous_9) +FN:53,(anonymous_10) +FNF:11 +FNH:4 +FNDA:1,(anonymous_0) +FNDA:1,(anonymous_1) +FNDA:1,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:1,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +DA:8,1 +DA:12,1 +DA:13,1 +DA:14,1 +DA:18,1 +DA:24,1 +DA:26,1 +DA:27,1 +DA:29,0 +DA:32,1 +DA:33,1 +DA:34,1 +DA:37,1 +DA:38,0 +DA:39,0 +DA:44,0 +DA:46,0 +DA:47,0 +DA:49,0 +DA:52,1 +DA:53,0 +LF:21 +LH:13 +BRDA:17,0,0,1 +BRDA:17,0,1,0 +BRF:2 +BRH:1 +end_of_record +TN: +SF:src\store\index.ts +FNF:0 +FNH:0 +DA:8,1 +DA:14,1 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\store\actions\contact.actions.ts +FN:34,(anonymous_0) +FN:35,(anonymous_1) +FN:37,(anonymous_2) +FN:39,(anonymous_3) +FN:40,(anonymous_4) +FN:45,(anonymous_5) +FN:46,(anonymous_6) +FN:49,(anonymous_7) +FN:53,(anonymous_8) +FN:57,(anonymous_9) +FN:58,(anonymous_10) +FN:61,(anonymous_11) +FN:65,(anonymous_12) +FN:69,(anonymous_13) +FN:70,(anonymous_14) +FN:73,(anonymous_15) +FN:74,(anonymous_16) +FN:87,(anonymous_17) +FN:88,(anonymous_18) +FN:92,(anonymous_19) +FN:101,(anonymous_20) +FN:108,(anonymous_21) +FN:122,(anonymous_22) +FNF:23 +FNH:6 +FNDA:1,(anonymous_0) +FNDA:1,(anonymous_1) +FNDA:1,(anonymous_2) +FNDA:1,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +FNDA:0,(anonymous_11) +FNDA:0,(anonymous_12) +FNDA:0,(anonymous_13) +FNDA:0,(anonymous_14) +FNDA:0,(anonymous_15) +FNDA:0,(anonymous_16) +FNDA:0,(anonymous_17) +FNDA:0,(anonymous_18) +FNDA:0,(anonymous_19) +FNDA:0,(anonymous_20) +FNDA:1,(anonymous_21) +FNDA:1,(anonymous_22) +DA:34,1 +DA:35,1 +DA:36,1 +DA:37,1 +DA:38,1 +DA:39,1 +DA:40,0 +DA:45,1 +DA:46,0 +DA:47,0 +DA:48,0 +DA:50,0 +DA:51,0 +DA:53,0 +DA:57,1 +DA:58,0 +DA:59,0 +DA:60,0 +DA:62,0 +DA:63,0 +DA:65,0 +DA:69,1 +DA:70,0 +DA:71,0 +DA:72,0 +DA:73,0 +DA:76,0 +DA:81,0 +DA:82,0 +DA:87,1 +DA:88,0 +DA:89,0 +DA:91,0 +DA:93,0 +DA:94,0 +DA:95,0 +DA:97,0 +DA:98,0 +DA:102,0 +DA:103,0 +DA:108,1 +DA:109,1 +DA:111,1 +DA:113,1 +DA:115,1 +DA:122,1 +LF:46 +LH:16 +BRDA:93,0,0,0 +BRDA:93,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src\store\actions\credential.actions.ts +FN:30,(anonymous_0) +FN:31,(anonymous_1) +FN:34,(anonymous_2) +FN:35,(anonymous_3) +FN:40,(anonymous_4) +FN:42,(anonymous_5) +FN:49,(anonymous_6) +FN:53,(anonymous_7) +FN:54,(anonymous_8) +FN:58,(anonymous_9) +FN:60,(anonymous_10) +FN:67,(anonymous_11) +FN:71,(anonymous_12) +FN:72,(anonymous_13) +FN:75,(anonymous_14) +FN:87,(anonymous_15) +FN:94,(anonymous_16) +FN:95,(anonymous_17) +FN:98,(anonymous_18) +FN:99,(anonymous_19) +FN:100,(anonymous_20) +FN:109,(anonymous_21) +FNF:22 +FNH:5 +FNDA:1,(anonymous_0) +FNDA:1,(anonymous_1) +FNDA:1,(anonymous_2) +FNDA:1,(anonymous_3) +FNDA:1,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +FNDA:0,(anonymous_11) +FNDA:0,(anonymous_12) +FNDA:0,(anonymous_13) +FNDA:0,(anonymous_14) +FNDA:0,(anonymous_15) +FNDA:0,(anonymous_16) +FNDA:0,(anonymous_17) +FNDA:0,(anonymous_18) +FNDA:0,(anonymous_19) +FNDA:0,(anonymous_20) +FNDA:0,(anonymous_21) +DA:30,1 +DA:31,1 +DA:32,1 +DA:33,1 +DA:35,1 +DA:38,1 +DA:39,1 +DA:41,1 +DA:42,0 +DA:44,1 +DA:47,1 +DA:49,0 +DA:53,1 +DA:54,0 +DA:55,0 +DA:56,0 +DA:57,0 +DA:59,0 +DA:60,0 +DA:61,0 +DA:67,0 +DA:71,1 +DA:72,0 +DA:73,0 +DA:74,0 +DA:76,0 +DA:77,0 +DA:78,0 +DA:83,0 +DA:84,0 +DA:88,0 +DA:89,0 +DA:94,1 +DA:95,0 +DA:96,0 +DA:97,0 +DA:99,0 +DA:100,0 +DA:102,0 +DA:110,0 +DA:111,0 +LF:41 +LH:13 +BRDA:76,0,0,0 +BRDA:76,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src\store\actions\user.actions.ts +FN:38,(anonymous_0) +FN:39,(anonymous_1) +FN:42,(anonymous_2) +FN:46,(anonymous_3) +FN:53,(anonymous_4) +FN:54,(anonymous_5) +FN:57,(anonymous_6) +FN:58,(anonymous_7) +FN:62,(anonymous_8) +FN:63,(anonymous_9) +FN:78,(anonymous_10) +FN:79,(anonymous_11) +FN:83,(anonymous_12) +FN:84,(anonymous_13) +FN:87,(anonymous_14) +FN:97,(anonymous_15) +FN:107,(anonymous_16) +FN:123,(anonymous_17) +FN:127,(anonymous_18) +FN:128,(anonymous_19) +FN:137,(anonymous_20) +FN:138,(anonymous_21) +FN:143,(anonymous_22) +FN:152,(anonymous_23) +FNF:24 +FNH:7 +FNDA:1,(anonymous_0) +FNDA:1,(anonymous_1) +FNDA:1,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +FNDA:0,(anonymous_11) +FNDA:1,(anonymous_12) +FNDA:1,(anonymous_13) +FNDA:1,(anonymous_14) +FNDA:0,(anonymous_15) +FNDA:1,(anonymous_16) +FNDA:0,(anonymous_17) +FNDA:0,(anonymous_18) +FNDA:0,(anonymous_19) +FNDA:0,(anonymous_20) +FNDA:0,(anonymous_21) +FNDA:0,(anonymous_22) +FNDA:0,(anonymous_23) +DA:38,1 +DA:39,1 +DA:40,1 +DA:41,1 +DA:43,1 +DA:44,1 +DA:47,0 +DA:48,0 +DA:53,1 +DA:54,0 +DA:55,0 +DA:56,0 +DA:57,0 +DA:58,0 +DA:62,1 +DA:63,0 +DA:64,0 +DA:65,0 +DA:66,0 +DA:72,0 +DA:77,0 +DA:78,0 +DA:79,0 +DA:83,1 +DA:84,1 +DA:85,1 +DA:86,1 +DA:88,1 +DA:89,1 +DA:90,1 +DA:91,1 +DA:93,1 +DA:94,1 +DA:95,1 +DA:96,0 +DA:97,0 +DA:98,0 +DA:100,1 +DA:102,1 +DA:103,1 +DA:104,1 +DA:106,1 +DA:107,1 +DA:108,1 +DA:110,1 +DA:111,1 +DA:113,1 +DA:114,1 +DA:116,1 +DA:117,0 +DA:120,0 +DA:123,0 +DA:127,1 +DA:128,0 +DA:130,0 +DA:131,0 +DA:132,0 +DA:137,1 +DA:138,0 +DA:139,0 +DA:142,0 +DA:144,0 +DA:145,0 +DA:146,0 +DA:147,0 +DA:149,0 +DA:150,0 +DA:153,0 +LF:68 +LH:33 +BRDA:89,0,0,1 +BRDA:89,0,1,0 +BRDA:95,1,0,1 +BRDA:95,1,1,0 +BRDA:106,2,0,2 +BRDA:106,2,1,1 +BRDA:116,3,0,0 +BRDA:116,3,1,1 +BRF:8 +BRH:5 +end_of_record +TN: +SF:src\store\reducers\contact.reducer.ts +FN:27,(anonymous_0) +FN:64,(anonymous_1) +FN:79,(anonymous_2) +FN:93,(anonymous_3) +FNF:4 +FNH:1 +FNDA:14,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:22,1 +DA:27,1 +DA:28,14 +DA:30,1 +DA:36,1 +DA:43,0 +DA:49,0 +DA:56,0 +DA:62,0 +DA:64,0 +DA:71,0 +DA:77,0 +DA:79,0 +DA:84,0 +DA:90,0 +DA:94,0 +DA:101,0 +DA:107,0 +DA:110,12 +LF:19 +LH:6 +BRDA:27,0,0,3 +BRDA:28,1,0,1 +BRDA:28,1,1,1 +BRDA:28,1,2,0 +BRDA:28,1,3,0 +BRDA:28,1,4,0 +BRDA:28,1,5,0 +BRDA:28,1,6,0 +BRDA:28,1,7,0 +BRDA:28,1,8,0 +BRDA:28,1,9,0 +BRDA:28,1,10,0 +BRDA:28,1,11,0 +BRDA:28,1,12,12 +BRDA:94,2,0,0 +BRDA:94,2,1,0 +BRF:16 +BRH:4 +end_of_record +TN: +SF:src\store\reducers\credential.reducer.ts +FN:22,(anonymous_0) +FN:61,(anonymous_1) +FNF:2 +FNH:1 +FNDA:14,(anonymous_0) +FNDA:0,(anonymous_1) +DA:17,1 +DA:22,1 +DA:25,14 +DA:27,1 +DA:33,1 +DA:40,0 +DA:46,0 +DA:53,0 +DA:59,0 +DA:61,0 +DA:66,0 +DA:72,0 +DA:79,0 +DA:85,0 +DA:88,12 +LF:15 +LH:6 +BRDA:22,0,0,3 +BRDA:25,1,0,1 +BRDA:25,1,1,1 +BRDA:25,1,2,0 +BRDA:25,1,3,0 +BRDA:25,1,4,0 +BRDA:25,1,5,0 +BRDA:25,1,6,0 +BRDA:25,1,7,0 +BRDA:25,1,8,0 +BRDA:25,1,9,0 +BRDA:25,1,10,12 +BRF:12 +BRH:4 +end_of_record +TN: +SF:src\store\reducers\user.reducer.ts +FN:25,(anonymous_0) +FNF:1 +FNH:1 +FNDA:14,(anonymous_0) +DA:19,1 +DA:25,1 +DA:28,14 +DA:30,2 +DA:36,1 +DA:43,0 +DA:49,0 +DA:56,0 +DA:62,4 +DA:69,0 +DA:76,0 +DA:82,0 +DA:90,0 +DA:96,0 +DA:97,0 +DA:103,0 +DA:109,7 +LF:17 +LH:7 +BRDA:25,0,0,3 +BRDA:28,1,0,2 +BRDA:28,1,1,1 +BRDA:28,1,2,0 +BRDA:28,1,3,0 +BRDA:28,1,4,0 +BRDA:28,1,5,4 +BRDA:28,1,6,0 +BRDA:28,1,7,0 +BRDA:28,1,8,0 +BRDA:28,1,9,0 +BRDA:28,1,10,0 +BRDA:28,1,11,0 +BRDA:28,1,12,7 +BRF:14 +BRH:5 +end_of_record +TN: +SF:src\styles\colors.ts +FNF:0 +FNH:0 +DA:5,1 +DA:14,1 +DA:21,1 +DA:27,1 +DA:34,1 +DA:49,1 +DA:74,1 +DA:91,1 +DA:98,1 +DA:109,1 +DA:115,1 +DA:123,1 +DA:129,1 +DA:135,1 +LF:14 +LH:14 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\typography.ts +FNF:0 +FNH:0 +DA:5,1 +DA:18,1 +DA:31,1 +DA:59,1 +LF:4 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\buttons\index.ts +FNF:0 +FNH:0 +DA:6,1 +DA:10,1 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSIAlert\index.ts +FNF:0 +FNH:0 +DA:8,1 +DA:12,1 +DA:20,1 +DA:27,1 +DA:34,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSIButtonsContainer\index.ts +FNF:0 +FNH:0 +DA:3,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSICheckbox\index.tsx +FNF:0 +FNH:0 +DA:5,1 +DA:14,1 +DA:23,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSIConnectionDetailsView\index.ts +FNF:0 +FNH:0 +DA:7,1 +DA:11,1 +DA:16,1 +DA:20,1 +DA:27,1 +DA:32,1 +LF:6 +LH:6 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSIContactViewItem\index.ts +FNF:0 +FNH:0 +DA:7,1 +DA:11,1 +DA:17,1 +DA:24,1 +DA:28,1 +DA:32,1 +LF:6 +LH:6 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSICredentialDetailsView\index.ts +FNF:0 +FNH:0 +DA:6,1 +DA:11,1 +DA:18,1 +DA:23,1 +LF:4 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSICredentialRequiredViewItem\index.ts +FNF:0 +FNH:0 +DA:7,1 +DA:11,1 +DA:16,1 +DA:20,1 +DA:25,1 +DA:30,1 +DA:34,1 +DA:38,1 +DA:42,1 +LF:9 +LH:9 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSICredentialSelectTypeViewItem\index.ts +FNF:0 +FNH:0 +DA:3,1 +DA:7,1 +DA:13,1 +DA:17,1 +LF:4 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSICredentialSelectViewItem\index.ts +FNF:0 +FNH:0 +DA:3,1 +DA:7,1 +DA:12,1 +DA:18,1 +DA:24,1 +DA:28,1 +LF:6 +LH:6 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSICredentialViewItem\index.ts +FNF:0 +FNH:0 +DA:6,1 +DA:10,1 +DA:14,1 +DA:18,1 +DA:22,1 +DA:28,1 +LF:6 +LH:6 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSIDropDownList\index.ts +FNF:0 +FNH:0 +DA:5,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSIDropDownListItem\index.ts +FNF:0 +FNH:0 +DA:7,1 +DA:12,1 +DA:16,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSIHeaderBar\index.ts +FN:13,(anonymous_0) +FNF:1 +FNH:1 +FNDA:112,(anonymous_0) +DA:10,1 +DA:13,112 +DA:18,1 +DA:22,1 +DA:27,1 +DA:34,1 +DA:39,1 +DA:44,1 +DA:52,1 +LF:9 +LH:9 +BRDA:13,0,0,0 +BRDA:13,0,1,112 +BRF:2 +BRH:1 +end_of_record +TN: +SF:src\styles\components\components\SSIIdentitiesView\index.ts +FNF:0 +FNH:0 +DA:5,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSIIdentityViewItem\index.tsx +FNF:0 +FNH:0 +DA:3,1 +DA:7,1 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSIImageField\index.ts +FNF:0 +FNH:0 +DA:6,1 +DA:11,1 +DA:15,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSINavigationBar\index.ts +FNF:0 +FNH:0 +DA:8,1 +DA:13,1 +DA:21,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSIPinCode\index.ts +FNF:0 +FNH:0 +DA:7,1 +DA:12,1 +DA:18,1 +DA:25,1 +LF:4 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSIPinCodeSegment\index.ts +FNF:0 +FNH:0 +DA:7,1 +DA:12,1 +DA:19,1 +DA:23,1 +LF:4 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSIPopup\index.ts +FNF:0 +FNH:0 +DA:8,1 +DA:12,1 +DA:17,1 +DA:23,1 +DA:28,1 +DA:32,1 +DA:38,1 +DA:42,1 +DA:47,1 +DA:53,1 +DA:58,1 +DA:63,1 +DA:70,1 +DA:74,1 +LF:14 +LH:14 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSIPopupModal\index.ts +FNF:0 +FNH:0 +DA:3,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSIProfileIcon\index.ts +FNF:0 +FNH:0 +DA:4,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSIProgressIndicator\index.ts +FNF:0 +FNH:0 +DA:6,1 +DA:13,1 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSIQRCustomMarker\index.ts +FNF:0 +FNH:0 +DA:4,1 +DA:6,1 +DA:13,1 +DA:20,1 +DA:25,1 +DA:32,1 +LF:6 +LH:6 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSISecondaryButton\index.ts +FNF:0 +FNH:0 +DA:7,1 +DA:15,1 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSIStatusBar\index.ts +FNF:0 +FNH:0 +DA:6,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSISwipeDeleteButton\index.ts +FNF:0 +FNH:0 +DA:6,1 +DA:10,1 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSISwipeRowViewItem\index.ts +FNF:0 +FNH:0 +DA:5,1 +DA:10,1 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSITabView\index.ts +FNF:0 +FNH:0 +DA:5,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSITabViewHeader\index.ts +FNF:0 +FNH:0 +DA:8,1 +DA:14,1 +DA:18,1 +DA:22,1 +LF:4 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSITermsOfServiceView\index.ts +FNF:0 +FNH:0 +DA:8,1 +DA:10,1 +DA:14,1 +DA:18,1 +LF:4 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSITextField\index.ts +FNF:0 +FNH:0 +DA:6,1 +DA:11,1 +DA:15,1 +DA:19,1 +DA:23,1 +DA:27,1 +LF:6 +LH:6 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSITextInputField\index.ts +FNF:0 +FNH:0 +DA:6,1 +DA:10,1 +DA:14,1 +DA:20,1 +DA:25,1 +DA:31,1 +LF:6 +LH:6 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSIToast\index.ts +FNF:0 +FNH:0 +DA:7,1 +DA:15,1 +DA:20,1 +DA:25,1 +LF:4 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\components\SSIWelcomeView\index.tsx +FNF:0 +FNH:0 +DA:6,1 +DA:13,1 +DA:17,1 +DA:21,1 +DA:25,1 +DA:29,1 +DA:34,1 +LF:7 +LH:7 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\containers\index.ts +FNF:0 +FNH:0 +DA:14,1 +DA:20,1 +DA:24,1 +DA:28,1 +DA:32,1 +DA:36,1 +DA:41,1 +DA:46,1 +DA:50,1 +DA:55,1 +DA:60,1 +DA:65,1 +DA:79,1 +DA:83,1 +DA:87,1 +DA:95,1 +DA:100,1 +LF:17 +LH:17 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\css\index.ts +FNF:0 +FNH:0 +DA:5,1 +DA:9,1 +DA:13,1 +DA:17,1 +DA:21,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\fonts\index.ts +FNF:0 +FNH:0 +DA:7,1 +DA:15,1 +DA:19,1 +DA:27,1 +DA:31,1 +DA:39,1 +DA:47,1 +DA:51,1 +DA:55,1 +DA:59,1 +DA:63,1 +DA:71,1 +DA:76,1 +DA:84,1 +DA:88,1 +DA:96,1 +DA:100,1 +DA:108,1 +DA:116,1 +DA:120,1 +DA:124,1 +DA:128,1 +DA:136,1 +DA:140,1 +DA:148,1 +DA:152,1 +DA:160,1 +DA:164,1 +DA:172,1 +LF:29 +LH:29 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\gradients\index.ts +FNF:0 +FNH:0 +DA:8,1 +DA:14,1 +DA:20,1 +DA:26,1 +DA:30,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\modals\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\modals\SSIAlertModal\index.ts +FNF:0 +FNH:0 +DA:3,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\modals\SSIPopupModal\index.ts +FNF:0 +FNH:0 +DA:3,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\providers\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\providers\OnTouchProvider\index.ts +FNF:0 +FNH:0 +DA:3,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\screens\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\screens\SSIContactAddScreen\index.ts +FNF:0 +FNH:0 +DA:5,1 +DA:10,1 +DA:15,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\screens\SSICredentialDetailsScreen\index.ts +FNF:0 +FNH:0 +DA:6,1 +DA:11,1 +DA:16,1 +DA:23,1 +LF:4 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\screens\SSICredentialSelectTypeScreen\index.ts +FNF:0 +FNH:0 +DA:5,1 +DA:9,1 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\screens\SSICredentialsRequiredScreen\index.ts +FNF:0 +FNH:0 +DA:3,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\screens\SSIErrorScreen\index.ts +FNF:0 +FNH:0 +DA:3,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\screens\SSILoadingScreen\index.ts +FNF:0 +FNH:0 +DA:7,1 +DA:11,1 +DA:15,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\screens\SSILockScreen\index.ts +FNF:0 +FNH:0 +DA:3,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\screens\SSINotificationsOverviewScreen\index.ts +FNF:0 +FNH:0 +DA:5,1 +DA:10,1 +DA:14,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\screens\SSIPersonalDataScreen\index.ts +FNF:0 +FNH:0 +DA:5,1 +DA:10,1 +DA:15,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\screens\SSIQRReaderScreen\index.ts +FNF:0 +FNH:0 +DA:4,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\screens\SSITermsOfServiceScreen\index.ts +FNF:0 +FNH:0 +DA:5,1 +DA:10,1 +DA:16,1 +DA:20,1 +LF:4 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\screens\SSIVerificationCodeScreen\index.ts +FNF:0 +FNH:0 +DA:3,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\screens\SSIWelcomeScreen\index.ts +FNF:0 +FNH:0 +DA:7,1 +DA:11,1 +DA:15,1 +DA:27,1 +LF:4 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\text\index.ts +FNF:0 +FNH:0 +DA:7,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\styles\components\views\index.ts +FNF:0 +FNH:0 +DA:5,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\authentication\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\component\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\credential\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\did\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\error\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\identity\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\image\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\navigation\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\onboarding\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\os\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\provider\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\provider\openIdVcIssuanceProvider\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\qr\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\service\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\service\brandingService\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\service\contactService\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\service\credentialService\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\service\fileService\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\service\storageService\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\signature\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\store\contact.action.types.ts +FNF:0 +FNH:0 +DA:3,1 +DA:5,1 +DA:7,1 +DA:9,1 +DA:11,1 +DA:13,1 +DA:15,1 +DA:17,1 +DA:19,1 +DA:21,1 +DA:23,1 +DA:25,1 +LF:12 +LH:12 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\store\credential.action.types.ts +FNF:0 +FNH:0 +DA:3,1 +DA:5,1 +DA:7,1 +DA:9,1 +DA:11,1 +DA:13,1 +DA:15,1 +DA:17,1 +DA:19,1 +DA:21,1 +LF:10 +LH:10 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\store\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\store\user.action.types.ts +FNF:0 +FNH:0 +DA:3,1 +DA:5,1 +DA:7,1 +DA:9,1 +DA:11,1 +DA:13,1 +DA:15,1 +DA:17,1 +DA:19,1 +DA:21,1 +DA:23,1 +DA:25,1 +LF:12 +LH:12 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\style\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\toast\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\user\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\util\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\util\navigationUtils\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\types\util\sortUtils\index.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\utils\AppUtils.ts +FN:1,(anonymous_0) +FN:1,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +DA:1,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\utils\CredentialUtils.ts +FN:15,(anonymous_0) +FN:21,(anonymous_1) +FN:29,(anonymous_2) +FN:35,(anonymous_3) +FN:46,(anonymous_4) +FN:50,(anonymous_5) +FN:65,(anonymous_6) +FN:82,(anonymous_7) +FN:91,(anonymous_8) +FN:95,(anonymous_9) +FN:96,(anonymous_10) +FN:102,(anonymous_11) +FNF:12 +FNH:6 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:1,(anonymous_5) +FNDA:1,(anonymous_6) +FNDA:1,(anonymous_7) +FNDA:1,(anonymous_8) +FNDA:1,(anonymous_9) +FNDA:1,(anonymous_10) +FNDA:0,(anonymous_11) +DA:15,1 +DA:16,0 +DA:17,0 +DA:18,0 +DA:19,0 +DA:21,0 +DA:29,1 +DA:34,0 +DA:36,0 +DA:46,1 +DA:47,0 +DA:50,1 +DA:51,1 +DA:52,0 +DA:53,1 +DA:54,0 +DA:57,1 +DA:65,1 +DA:66,1 +DA:82,1 +DA:83,1 +DA:84,1 +DA:86,0 +DA:87,0 +DA:88,0 +DA:91,1 +DA:92,1 +DA:93,1 +DA:95,1 +DA:96,1 +DA:98,1 +DA:99,1 +DA:102,0 +DA:103,0 +DA:106,0 +LF:35 +LH:19 +BRDA:16,0,0,0 +BRDA:16,0,1,0 +BRDA:18,1,0,0 +BRDA:18,1,1,0 +BRDA:36,2,0,0 +BRDA:36,2,1,0 +BRDA:36,2,2,0 +BRDA:36,2,3,0 +BRDA:36,2,4,0 +BRDA:51,3,0,0 +BRDA:51,3,1,1 +BRDA:53,4,0,0 +BRDA:53,4,1,1 +BRDA:83,5,0,1 +BRDA:83,5,1,0 +BRDA:86,6,0,0 +BRDA:86,6,1,0 +BRDA:98,7,0,1 +BRDA:98,7,1,0 +BRDA:102,8,0,0 +BRDA:102,8,1,0 +BRDA:102,9,0,0 +BRDA:102,9,1,0 +BRF:23 +BRH:4 +end_of_record +TN: +SF:src\utils\DateUtils.ts +FN:10,(anonymous_0) +FN:19,(anonymous_1) +FN:23,(anonymous_2) +FN:33,(anonymous_3) +FN:40,(anonymous_4) +FN:44,(anonymous_5) +FNF:6 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +DA:3,1 +DA:4,1 +DA:10,1 +DA:11,0 +DA:19,1 +DA:20,0 +DA:23,1 +DA:24,0 +DA:25,0 +DA:26,0 +DA:27,0 +DA:30,0 +DA:33,1 +DA:34,0 +DA:35,0 +DA:37,0 +DA:40,1 +DA:41,0 +DA:44,1 +DA:45,0 +DA:46,0 +DA:49,0 +LF:22 +LH:8 +BRDA:26,0,0,0 +BRDA:26,0,1,0 +BRDA:34,1,0,0 +BRDA:34,1,1,0 +BRDA:45,2,0,0 +BRDA:45,2,1,0 +BRF:6 +BRH:0 +end_of_record +TN: +SF:src\utils\ImageUtils.ts +FN:8,(anonymous_0) +FN:12,(anonymous_1) +FN:13,(anonymous_2) +FN:16,(anonymous_3) +FN:17,(anonymous_4) +FN:22,(anonymous_5) +FNF:6 +FNH:1 +FNDA:4,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +DA:8,1 +DA:9,4 +DA:12,1 +DA:13,0 +DA:14,0 +DA:16,0 +DA:17,0 +DA:22,1 +DA:23,0 +LF:9 +LH:4 +BRDA:9,0,0,4 +BRDA:9,0,1,4 +BRF:2 +BRH:2 +end_of_record +TN: +SF:src\utils\KeyUtils.ts +FN:5,(anonymous_0) +FN:19,(anonymous_1) +FN:24,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:5,1 +DA:6,0 +DA:9,0 +DA:11,0 +DA:13,0 +DA:15,0 +DA:19,1 +DA:20,0 +DA:24,1 +DA:25,0 +DA:30,0 +DA:33,0 +DA:36,0 +DA:38,0 +LF:14 +LH:3 +BRDA:6,0,0,0 +BRDA:6,0,1,0 +BRDA:6,0,2,0 +BRDA:6,0,3,0 +BRDA:6,0,4,0 +BRDA:25,1,0,0 +BRDA:25,1,1,0 +BRDA:25,1,2,0 +BRDA:25,1,3,0 +BRDA:25,1,4,0 +BRDA:25,1,5,0 +BRDA:25,1,6,0 +BRDA:25,1,7,0 +BRDA:25,1,8,0 +BRF:14 +BRH:0 +end_of_record +TN: +SF:src\utils\NavigationUtils.ts +FN:15,(anonymous_0) +FN:21,(anonymous_1) +FN:26,(anonymous_2) +FN:27,(anonymous_3) +FN:33,(anonymous_4) +FN:38,(anonymous_5) +FNF:6 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +DA:15,1 +DA:16,0 +DA:17,0 +DA:18,0 +DA:21,0 +DA:22,0 +DA:23,0 +DA:26,0 +DA:27,0 +DA:29,0 +DA:30,0 +DA:33,0 +DA:35,0 +DA:38,0 +LF:14 +LH:1 +BRDA:17,0,0,0 +BRDA:17,0,1,0 +BRDA:22,1,0,0 +BRDA:22,1,1,0 +BRDA:29,2,0,0 +BRDA:29,2,1,0 +BRF:6 +BRH:0 +end_of_record +TN: +SF:src\utils\SortUtils.ts +FN:3,sortBy +FN:4,(anonymous_1) +FN:8,orderToNumberSign +FNF:3 +FNH:1 +FNDA:1,sortBy +FNDA:0,(anonymous_1) +FNDA:0,orderToNumberSign +DA:4,1 +DA:5,0 +DA:9,0 +LF:3 +LH:1 +BRDA:9,0,0,0 +BRDA:9,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src\utils\TextUtils.tsx +FN:6,(anonymous_0) +FN:7,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +DA:4,1 +DA:6,1 +DA:7,0 +DA:8,0 +DA:9,0 +DA:10,0 +DA:16,0 +DA:20,0 +LF:8 +LH:2 +BRDA:8,0,0,0 +BRDA:8,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src\utils\ToastUtils.ts +FN:5,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:5,1 +DA:6,0 +DA:7,0 +LF:3 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\utils\UserUtils.ts +FN:1,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:1,1 +DA:2,0 +DA:3,0 +DA:5,0 +DA:6,0 +DA:8,0 +DA:9,0 +DA:10,0 +DA:11,0 +DA:14,0 +DA:15,0 +DA:16,0 +DA:17,0 +DA:21,0 +DA:22,0 +DA:25,0 +LF:16 +LH:1 +BRDA:2,0,0,0 +BRDA:2,0,1,0 +BRDA:2,1,0,0 +BRDA:2,1,1,0 +BRDA:8,2,0,0 +BRDA:8,2,1,0 +BRDA:10,3,0,0 +BRDA:10,3,1,0 +BRDA:14,4,0,0 +BRDA:14,4,1,0 +BRDA:16,5,0,0 +BRDA:16,5,1,0 +BRF:12 +BRH:0 +end_of_record +TN: +SF:src\utils\mappers\branding\OIDC4VCIBrandingMapper.ts +FN:4,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:4,1 +DA:5,0 +LF:2 +LH:1 +BRDA:6,0,0,0 +BRDA:6,0,1,0 +BRDA:9,1,0,0 +BRDA:9,1,1,0 +BRDA:12,2,0,0 +BRDA:12,2,1,0 +BRDA:14,3,0,0 +BRDA:14,3,1,0 +BRDA:17,4,0,0 +BRDA:17,4,1,0 +BRDA:22,5,0,0 +BRDA:22,5,1,0 +BRDA:26,6,0,0 +BRDA:26,6,1,0 +BRDA:31,7,0,0 +BRDA:31,7,1,0 +BRDA:31,7,2,0 +BRDA:33,8,0,0 +BRDA:33,8,1,0 +BRDA:35,9,0,0 +BRDA:35,9,1,0 +BRDA:38,10,0,0 +BRDA:38,10,1,0 +BRDA:43,11,0,0 +BRDA:43,11,1,0 +BRF:25 +BRH:0 +end_of_record +TN: +SF:src\utils\mappers\credential\CredentialMapper.ts +FN:14,(anonymous_0) +FN:78,(anonymous_1) +FN:97,(anonymous_2) +FN:114,(anonymous_3) +FN:161,getIssuerLogo +FN:177,getImageFromObjectOrString +FNF:6 +FNH:4 +FNDA:1,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:1,(anonymous_2) +FNDA:2,(anonymous_3) +FNDA:1,getIssuerLogo +FNDA:0,getImageFromObjectOrString +DA:12,1 +DA:14,1 +DA:15,1 +DA:17,1 +DA:19,4 +DA:20,0 +DA:21,0 +DA:27,0 +DA:28,4 +DA:29,0 +DA:34,0 +DA:37,4 +DA:44,0 +DA:46,4 +DA:47,4 +DA:48,0 +DA:51,4 +DA:52,4 +DA:53,0 +DA:56,4 +DA:57,0 +DA:58,0 +DA:61,4 +DA:70,1 +DA:78,1 +DA:82,0 +DA:97,1 +DA:101,1 +DA:104,1 +DA:106,1 +DA:108,1 +DA:114,2 +DA:115,1 +DA:116,1 +DA:118,1 +DA:119,1 +DA:120,1 +DA:123,1 +DA:127,1 +DA:128,1 +DA:129,1 +DA:132,0 +DA:134,1 +DA:135,1 +DA:140,1 +DA:141,0 +DA:143,1 +DA:164,1 +DA:165,0 +DA:167,1 +DA:168,1 +DA:169,0 +DA:170,1 +DA:171,0 +DA:174,1 +DA:178,0 +DA:179,0 +DA:180,0 +DA:181,0 +DA:182,0 +DA:183,0 +DA:184,0 +DA:185,0 +DA:186,0 +DA:187,0 +DA:188,0 +DA:191,0 +LF:67 +LH:39 +BRDA:19,0,0,0 +BRDA:19,0,1,4 +BRDA:20,1,0,0 +BRDA:20,1,1,0 +BRDA:25,2,0,0 +BRDA:25,2,1,0 +BRDA:28,3,0,0 +BRDA:28,3,1,4 +BRDA:37,4,0,0 +BRDA:37,4,1,4 +BRDA:47,5,0,0 +BRDA:47,5,1,4 +BRDA:47,6,0,4 +BRDA:47,6,1,4 +BRDA:52,7,0,0 +BRDA:52,7,1,4 +BRDA:52,8,0,4 +BRDA:52,8,1,1 +BRDA:56,9,0,0 +BRDA:56,9,1,4 +BRDA:65,10,0,0 +BRDA:65,10,1,4 +BRDA:85,11,0,0 +BRDA:85,11,1,0 +BRDA:101,12,0,0 +BRDA:101,12,1,1 +BRDA:108,13,0,0 +BRDA:108,13,1,1 +BRDA:110,14,0,0 +BRDA:110,14,1,1 +BRDA:112,15,0,0 +BRDA:112,15,1,1 +BRDA:120,16,0,1 +BRDA:120,16,1,0 +BRDA:123,17,0,0 +BRDA:123,17,1,1 +BRDA:125,18,0,1 +BRDA:125,18,1,1 +BRDA:129,19,0,0 +BRDA:129,19,1,1 +BRDA:129,20,0,1 +BRDA:129,20,1,1 +BRDA:134,21,0,1 +BRDA:134,21,1,0 +BRDA:136,22,0,0 +BRDA:136,22,1,1 +BRDA:140,23,0,0 +BRDA:140,23,1,1 +BRDA:146,24,0,1 +BRDA:146,24,1,1 +BRDA:154,25,0,0 +BRDA:154,25,1,1 +BRDA:164,26,0,0 +BRDA:164,26,1,1 +BRDA:165,27,0,0 +BRDA:165,27,1,0 +BRDA:167,28,0,1 +BRDA:167,28,1,0 +BRDA:167,29,0,1 +BRDA:167,29,1,1 +BRDA:168,30,0,0 +BRDA:168,30,1,1 +BRDA:168,31,0,1 +BRDA:168,31,1,0 +BRDA:170,32,0,0 +BRDA:170,32,1,1 +BRDA:178,33,0,0 +BRDA:178,33,1,0 +BRDA:180,34,0,0 +BRDA:180,34,1,0 +BRDA:180,35,0,0 +BRDA:180,35,1,0 +BRDA:182,36,0,0 +BRDA:182,36,1,0 +BRDA:183,37,0,0 +BRDA:183,37,1,0 +BRDA:183,38,0,0 +BRDA:183,38,1,0 +BRDA:183,38,2,0 +BRDA:185,39,0,0 +BRDA:185,39,1,0 +BRDA:185,40,0,0 +BRDA:185,40,1,0 +BRDA:185,40,2,0 +BRDA:187,41,0,0 +BRDA:187,41,1,0 +BRDA:187,42,0,0 +BRDA:187,42,1,0 +BRDA:187,42,2,0 +BRF:89 +BRH:35 +end_of_record diff --git a/src/screens/SSICredentialsRequiredScreen/index.tsx b/src/screens/SSICredentialsRequiredScreen/index.tsx index cc754867..c4b463b0 100644 --- a/src/screens/SSICredentialsRequiredScreen/index.tsx +++ b/src/screens/SSICredentialsRequiredScreen/index.tsx @@ -1,9 +1,9 @@ import {NativeStackScreenProps} from '@react-navigation/native-stack'; -import {PEX, SelectResults} from '@sphereon/pex'; +import {PEX, SelectResults, SubmissionRequirementMatch} from '@sphereon/pex'; import {Status} from '@sphereon/pex/dist/main/lib/ConstraintUtils'; import {InputDescriptorV1, InputDescriptorV2} from '@sphereon/pex-models'; import {ICredentialBranding} from '@sphereon/ssi-sdk.data-store'; -import {CredentialMapper, IVerifiableCredential, OriginalVerifiableCredential, W3CVerifiableCredential} from '@sphereon/ssi-types'; +import {CredentialMapper, OriginalVerifiableCredential} from '@sphereon/ssi-types'; import {UniqueVerifiableCredential} from '@veramo/core'; import React, {FC, useEffect, useState} from 'react'; import {ListRenderItemInfo} from 'react-native'; @@ -23,6 +23,7 @@ import { import {ScreenRoutesEnum, StackParamList} from '../../types'; import {getMatchingUniqueVerifiableCredential, getOriginalVerifiableCredential} from '../../utils/CredentialUtils'; import {toCredentialSummary} from '../../utils/mappers/credential/CredentialMapper'; +import {JSONPath} from '@astronautlabs/jsonpath/src/jsonpath'; type Props = NativeStackScreenProps; @@ -50,11 +51,20 @@ const SSICredentialsRequiredScreen: FC = (props: Props): JSX.Element => { restrictToFormats: format, restrictToDIDMethods: subjectSyntaxTypesSupported, }); - const matchedVCs: Array = selectResult.verifiableCredential - ? selectResult.verifiableCredential - .map((matchedVC: OriginalVerifiableCredential) => getMatchingUniqueVerifiableCredential(uniqueVCs, matchedVC)) - .filter((matchedVC): matchedVC is UniqueVerifiableCredential => !!matchedVC) // filter out the undefined (should not happen) - : []; + if (selectResult.areRequiredCredentialsPresent === Status.ERROR) { + console.debug('pex.selectFrom returned errors:\n', JSON.stringify(selectResult.errors)); + } + const matchedVCs: Array = + selectResult.matches && selectResult.verifiableCredential + ? selectResult.matches + .map((match: SubmissionRequirementMatch) => { + const matchedVC = JSONPath.query(selectResult, match.vc_path[0]); // TODO Can we have multiple vc_path elements for a single match? + if (matchedVC && matchedVC.length > 0) { + return getMatchingUniqueVerifiableCredential(uniqueVCs, matchedVC[0]); + } + }) + .filter((matchedVC: UniqueVerifiableCredential | undefined): matchedVC is UniqueVerifiableCredential => !!matchedVC) // filter out the undefined (should not happen) + : []; availableVCs.set(inputDescriptor.id, matchedVCs); }); setAvailableCredentials(availableVCs); @@ -151,6 +161,32 @@ const SSICredentialsRequiredScreen: FC = (props: Props): JSX.Element => { ? undefined : () => onItemPress(itemInfo.item.id, availableCredentials.get(itemInfo.item.id)!, itemInfo.item.purpose); + const checkIsMatching = ( + itemInfo: ListRenderItemInfo, + selectedCredentials: Map>, + ): boolean => { + if (!selectedCredentials.has(itemInfo.item.id)) { + return false; + } + const selectedCredential: Array | undefined = selectedCredentials.get(itemInfo.item.id); + if (!selectedCredential) { + return false; + } + + const credentials: Array = selectedCredential.map((uniqueVC: UniqueVerifiableCredential) => + getOriginalVerifiableCredential(uniqueVC.verifiableCredential), + ); + return ( + pex.evaluateCredentials( + { + id: itemInfo.item.id, + input_descriptors: [itemInfo.item], + }, + credentials, + ).areRequiredCredentialsPresent === Status.INFO + ); + }; + return ( = (props: Props): JSX.Element => { purpose={itemInfo.item.purpose} available={availableCredentials.has(itemInfo.item.id) ? availableCredentials.get(itemInfo.item.id)! : undefined} selected={selectedCredentials.has(itemInfo.item.id) ? selectedCredentials.get(itemInfo.item.id)! : []} - isMatching={ - selectedCredentials.has(itemInfo.item.id) - ? pex.evaluateCredentials( - { - id: itemInfo.item.id, - input_descriptors: [itemInfo.item], - }, - selectedCredentials.get(itemInfo.item.id)!.map(uniqueVC => getOriginalVerifiableCredential(uniqueVC.verifiableCredential)), - ).areRequiredCredentialsPresent === Status.INFO - : false - } + isMatching={checkIsMatching(itemInfo, selectedCredentials)} listIndex={itemInfo.index} onPress={onPress} />