@carecard/auth-util 2.0.1 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/index.js +1 -9
  2. package/lib/cryptoUtilAuth.js +20 -49
  3. package/lib/jwtUtilAuth.js +46 -3
  4. package/lib/keyGen.js +18 -11
  5. package/lib/stringUtilAuth.js +2 -3
  6. package/package.json +2 -2
  7. package/coverage/clover.xml +0 -179
  8. package/coverage/coverage-final.json +0 -8
  9. package/coverage/lcov-report/base.css +0 -224
  10. package/coverage/lcov-report/block-navigation.js +0 -87
  11. package/coverage/lcov-report/cryptoUtilAuth.ts.html +0 -418
  12. package/coverage/lcov-report/favicon.png +0 -0
  13. package/coverage/lcov-report/index.html +0 -206
  14. package/coverage/lcov-report/index.ts.html +0 -103
  15. package/coverage/lcov-report/jwtUtilAuth.ts.html +0 -340
  16. package/coverage/lcov-report/keyGen.ts.html +0 -127
  17. package/coverage/lcov-report/prettify.css +0 -1
  18. package/coverage/lcov-report/prettify.js +0 -2
  19. package/coverage/lcov-report/pwdUtilAuth.ts.html +0 -319
  20. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  21. package/coverage/lcov-report/sorter.js +0 -210
  22. package/coverage/lcov-report/strEncryptUtil.ts.html +0 -562
  23. package/coverage/lcov-report/stringUtilAuth.ts.html +0 -391
  24. package/coverage/lcov.info +0 -298
  25. package/dist/cjs/cryptoUtilAuth.cjs +0 -124
  26. package/dist/cjs/cryptoUtilAuth.d.ts +0 -48
  27. package/dist/cjs/index.cjs +0 -22
  28. package/dist/cjs/index.d.ts +0 -6
  29. package/dist/cjs/jwtUtilAuth.cjs +0 -110
  30. package/dist/cjs/jwtUtilAuth.d.ts +0 -35
  31. package/dist/cjs/keyGen.cjs +0 -16
  32. package/dist/cjs/keyGen.d.ts +0 -11
  33. package/dist/cjs/pwdUtilAuth.cjs +0 -97
  34. package/dist/cjs/pwdUtilAuth.d.ts +0 -39
  35. package/dist/cjs/strEncryptUtil.cjs +0 -138
  36. package/dist/cjs/strEncryptUtil.d.ts +0 -46
  37. package/dist/cjs/stringUtilAuth.cjs +0 -107
  38. package/dist/cjs/stringUtilAuth.d.ts +0 -64
  39. package/dist/esm/cryptoUtilAuth.d.ts +0 -48
  40. package/dist/esm/cryptoUtilAuth.js +0 -82
  41. package/dist/esm/index.d.ts +0 -6
  42. package/dist/esm/index.js +0 -6
  43. package/dist/esm/jwtUtilAuth.d.ts +0 -35
  44. package/dist/esm/jwtUtilAuth.js +0 -69
  45. package/dist/esm/keyGen.d.ts +0 -11
  46. package/dist/esm/keyGen.js +0 -12
  47. package/dist/esm/pwdUtilAuth.d.ts +0 -39
  48. package/dist/esm/pwdUtilAuth.js +0 -56
  49. package/dist/esm/strEncryptUtil.d.ts +0 -46
  50. package/dist/esm/strEncryptUtil.js +0 -97
  51. package/dist/esm/stringUtilAuth.d.ts +0 -64
  52. package/dist/esm/stringUtilAuth.js +0 -96
  53. package/lib/strEncryptUtil.js +0 -113
package/index.js CHANGED
@@ -1,6 +1,5 @@
1
1
  const pwdUtilAuth = require( './lib/pwdUtilAuth' );
2
2
  const jwtUtilAuth = require( './lib/jwtUtilAuth' );
3
- const strEncryptUtil = require( './lib/strEncryptUtil' );
4
3
  const keyGen = require( './lib/keyGen' );
5
4
 
6
5
  module.exports = {
@@ -15,14 +14,7 @@ module.exports = {
15
14
  createPasswordHashBasedOnSavedAlgorithmSalt: pwdUtilAuth.createPasswordHashBasedOnSavedAlgorithmSalt
16
15
  },
17
16
 
18
- strEncryptUtil: {
19
- encryptByPrivateKey: strEncryptUtil.encryptByPrivateKey,
20
- decryptByPublicKey: strEncryptUtil.decryptByPublicKey,
21
- encryptByKey: strEncryptUtil.encryptByKey,
22
- decryptByKey: strEncryptUtil.decryptByKey
23
- },
24
-
25
- createRsaKeys: keyGen.generateKeyPair,
17
+ createKeys: keyGen.generateKeyPair,
26
18
 
27
19
  stringUtilAuth: require( './lib/stringUtilAuth' ),
28
20
  };
@@ -8,7 +8,10 @@ const crypto = require( "crypto" );
8
8
  * @param signingAlgorithm
9
9
  * @returns {string}
10
10
  */
11
- const createBase64SignatureOfToken = function ( token = '', privateKey, signingAlgorithm ) {
11
+ const createBase64SignatureOfToken = function ( token = '', privateKey, signingAlgorithm = 'EdDSA' ) {
12
+ if ( signingAlgorithm === 'EdDSA' || signingAlgorithm === 'Ed25519' ) {
13
+ return crypto.sign( null, Buffer.from( token ), privateKey ).toString( 'base64' );
14
+ }
12
15
 
13
16
  const sign = crypto.createSign( signingAlgorithm );
14
17
  sign.write( token );
@@ -24,11 +27,19 @@ const createBase64SignatureOfToken = function ( token = '', privateKey, signingA
24
27
  * @param signingAlgorithm
25
28
  * @returns {boolean}
26
29
  */
27
- const verifyBase64SignatureOfToken = function ( token = '', signature, publicKey, signingAlgorithm ) {
28
- const verify = crypto.createVerify( signingAlgorithm );
29
- verify.update( token );
30
- verify.end();
31
- return verify.verify( publicKey, signature, 'base64' );
30
+ const verifyBase64SignatureOfToken = function ( token = '', signature, publicKey, signingAlgorithm = 'EdDSA' ) {
31
+ try {
32
+ if ( signingAlgorithm === 'EdDSA' || signingAlgorithm === 'Ed25519' ) {
33
+ return crypto.verify( null, Buffer.from( token ), publicKey, Buffer.from( signature, 'base64' ) );
34
+ }
35
+
36
+ const verify = crypto.createVerify( signingAlgorithm );
37
+ verify.update( token );
38
+ verify.end();
39
+ return verify.verify( publicKey, signature, 'base64' );
40
+ } catch ( e ) {
41
+ return false;
42
+ }
32
43
  };
33
44
 
34
45
  /**
@@ -48,53 +59,13 @@ const createHmacBase64 = function ( string = '', secret, algorithm ) {
48
59
  * Create random salt
49
60
  * @returns {string}
50
61
  */
51
- const createSaltBase64 = () => {
52
- const date = new Date().valueOf();
53
- const hmac = crypto.createHmac( 'SHA256', date.toString() );
54
- hmac.update( date.toString() );
55
- return hmac.digest( 'base64' );
56
- };
57
-
58
- /**
59
- * Encrypt given string
60
- * @param string
61
- * @param salt
62
- * @param secret
63
- * @param algorithm
64
- * @returns {string}
65
- */
66
- const encryptStringAsciiToBase64 = ( string, salt, secret, algorithm ) => {
67
-
68
- const key = crypto.scryptSync( secret, salt, 24 );
69
- const iv = Buffer.alloc( 16, 0 );
70
- const cipher = crypto.createCipheriv( algorithm, key, iv );
71
- let encrypted = cipher.update( string, 'ascii', 'base64' );
72
- encrypted += cipher.final( 'base64' );
73
- return encrypted;
74
- };
75
-
76
- /**
77
- * Decrypts given string
78
- * @param encryptedString
79
- * @param salt
80
- * @param secret
81
- * @param algorithm
82
- * @returns {string}
83
- */
84
- const decryptStringBase64ToAscii = ( encryptedString, salt, secret, algorithm ) => {
85
- const key = crypto.scryptSync( secret, salt, 24 );
86
- const iv = Buffer.alloc( 16, 0 );
87
- const decipher = crypto.createDecipheriv( algorithm, key, iv );
88
- let decrypted = decipher.update( encryptedString, 'base64', 'ascii' );
89
- decrypted += decipher.final( 'ascii' );
90
- return decrypted;
62
+ const createSaltBase64 = ( size = 32 ) => {
63
+ return crypto.randomBytes( size ).toString( 'base64' );
91
64
  };
92
65
 
93
66
  module.exports = {
94
67
  createBase64SignatureOfToken,
95
68
  verifyBase64SignatureOfToken,
96
69
  createHmacBase64,
97
- createSaltBase64,
98
- encryptStringAsciiToBase64,
99
- decryptStringBase64ToAscii
70
+ createSaltBase64
100
71
  };
@@ -12,6 +12,45 @@ const _assembleJwt = ( headerBase64, payloadBase64, signatureBase64 ) => {
12
12
  return headerBase64 + "." + payloadBase64 + "." + signatureBase64;
13
13
  };
14
14
 
15
+ /**
16
+ * Normalizes jwt header
17
+ * @param headerObject
18
+ * @returns {{alg: string, typ: string}}
19
+ */
20
+ const normalizeHeader = (headerObject ) => {
21
+ headerObject.alg = headerObject.alg || 'EdDSA';
22
+ headerObject.typ = 'JWT';
23
+ return headerObject;
24
+ };
25
+
26
+ /**
27
+ * Normalizes jwt payload time-related fields
28
+ * @param payloadObject
29
+ * @returns {*}
30
+ */
31
+ const normalizePayload = (payloadObject ) => {
32
+ const now = Math.floor( Date.now() / 1000 );
33
+ const fieldsToNormalize = [ 'iat', 'exp', 'nbf', 'auth_time' ];
34
+ const msThreshold = 1000000000000;
35
+
36
+ if ( !payloadObject.iat ) {
37
+ payloadObject.iat = now;
38
+ }
39
+
40
+ fieldsToNormalize.forEach( field => {
41
+ if ( payloadObject[ field ] && payloadObject[ field ] > msThreshold ) {
42
+ payloadObject[ field ] = Math.floor( payloadObject[ field ] / 1000 );
43
+ }
44
+ } );
45
+
46
+ if ( !payloadObject.exp ) {
47
+ // Default 1 hour expiration if not provided
48
+ payloadObject.exp = payloadObject.iat + 3600;
49
+ }
50
+
51
+ return payloadObject;
52
+ };
53
+
15
54
  /**
16
55
  * User supplied header, payload and signature create jwt.
17
56
  * @returns {{payload: *, signature: *, header: *}}
@@ -30,11 +69,13 @@ const _splitJwtInToHeaderPayloadSignature = ( jwt ) => {
30
69
  */
31
70
  const createSignedJwtFromObject = ( headerObject, payloadObject, privateKey ) => {
32
71
  try {
33
- const algorithm = headerObject.alg;
72
+ headerObject = normalizeHeader( headerObject );
73
+ payloadObject = normalizePayload( payloadObject );
74
+
34
75
  const headerBase64UrlSafe = stringUtilAuth.objectToBase64UrlSafeString( headerObject );
35
76
  const payloadBase64UrlSafe = stringUtilAuth.objectToBase64UrlSafeString( payloadObject );
36
77
  const token = headerBase64UrlSafe + "." + payloadBase64UrlSafe;
37
- const signature = cryptoUtilAuth.createBase64SignatureOfToken( token, privateKey, algorithm );
78
+ const signature = cryptoUtilAuth.createBase64SignatureOfToken( token, privateKey, headerObject.alg );
38
79
  const urlSafeSignature = stringUtilAuth.makeStringUrlSafe( signature );
39
80
  return _assembleJwt( headerBase64UrlSafe, payloadBase64UrlSafe, urlSafeSignature );
40
81
  } catch ( error ) {
@@ -65,7 +106,7 @@ const verifyJwtSignature = ( jwt, publicKey ) => {
65
106
  * @return {{payload: any, header: any}}
66
107
  */
67
108
  const getHeaderPayloadFromJwt = jwt => {
68
- const { header, payload, signature } = _splitJwtInToHeaderPayloadSignature( jwt );
109
+ const { header, payload } = _splitJwtInToHeaderPayloadSignature( jwt );
69
110
  let headerAscii = stringUtilAuth.base64ToAscii( header );
70
111
  let payloadAscii = stringUtilAuth.base64ToAscii( payload );
71
112
  return { header: JSON.parse( headerAscii ), payload: JSON.parse( payloadAscii ) }
@@ -75,6 +116,8 @@ const getHeaderPayloadFromJwt = jwt => {
75
116
  module.exports = {
76
117
  _assembleJwt,
77
118
  _splitJwtInToHeaderPayloadSignature,
119
+ normalizeHeader,
120
+ normalizePayload,
78
121
  createSignedJwtFromObject,
79
122
  verifyJwtSignature,
80
123
  getHeaderPayloadFromJwt
package/lib/keyGen.js CHANGED
@@ -3,17 +3,24 @@ const {
3
3
  } = require( 'node:crypto' );
4
4
 
5
5
 
6
- const generateKeyPair = ( modulusLength = 4096 ) => ( generateKeyPairSync( 'rsa', {
7
- modulusLength: modulusLength,
8
- publicKeyEncoding: {
9
- type: 'spki',
10
- format: 'pem',
11
- },
12
- privateKeyEncoding: {
13
- type: 'pkcs8',
14
- format: 'pem',
15
- },
16
- } ) );
6
+ const generateKeyPair = ( algorithm = 'ed25519' ) => {
7
+ const options = {
8
+ publicKeyEncoding: {
9
+ type: 'spki',
10
+ format: 'pem',
11
+ },
12
+ privateKeyEncoding: {
13
+ type: 'pkcs8',
14
+ format: 'pem',
15
+ },
16
+ };
17
+
18
+ if ( algorithm === 'rsa' ) {
19
+ options.modulusLength = 2048;
20
+ }
21
+
22
+ return generateKeyPairSync( algorithm, options );
23
+ };
17
24
 
18
25
 
19
26
  module.exports = {
@@ -10,8 +10,7 @@
10
10
  * @return {*}
11
11
  */
12
12
  const adjustBase64Padding = base64String => {
13
- while ( base64String.length % 4 ) base64String += '=';
14
- return base64String;
13
+ return base64String.padEnd( base64String.length + ( 4 - base64String.length % 4 ) % 4, '=' );
15
14
  }
16
15
 
17
16
  /**
@@ -50,7 +49,7 @@ const asciiToBase64 = ( unCodedString ) => {
50
49
  * @returns {string}
51
50
  */
52
51
  const base64ToAscii = ( codedString ) => {
53
- return Buffer.from( codedString, 'base64' ).toString( 'ascii' );
52
+ return Buffer.from( codedString, 'base64' ).toString( 'utf8' );
54
53
  }
55
54
 
56
55
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@carecard/auth-util",
3
- "version": "2.0.1",
3
+ "version": "3.0.1",
4
4
  "repository": "https://github.com/CareCard-ca/pkg-auth-util.git",
5
5
  "description": "Auth utility functions",
6
6
  "main": "index.js",
@@ -15,6 +15,6 @@
15
15
  "author": "CareCard team",
16
16
  "license": "ISC",
17
17
  "devDependencies": {
18
- "mocha": "^10.8.2"
18
+ "mocha": "11.7.5"
19
19
  }
20
20
  }
@@ -1,179 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <coverage generated="1766540933767" clover="3.2.0">
3
- <project timestamp="1766540933767" name="All files">
4
- <metrics statements="152" coveredstatements="141" conditionals="19" coveredconditionals="3" methods="32" coveredmethods="31" elements="203" coveredelements="175" complexity="0" loc="152" ncloc="152" packages="1" files="7" classes="7"/>
5
- <file name="cryptoUtilAuth.ts" path="/Users/pankajpriscilla/SO_CareCardCa/pkg-auth-util/src/cryptoUtilAuth.ts">
6
- <metrics statements="34" coveredstatements="34" conditionals="3" coveredconditionals="0" methods="6" coveredmethods="6"/>
7
- <line num="1" count="5" type="stmt"/>
8
- <line num="10" count="5" type="stmt"/>
9
- <line num="15" count="3" type="stmt"/>
10
- <line num="16" count="3" type="stmt"/>
11
- <line num="17" count="3" type="stmt"/>
12
- <line num="18" count="3" type="stmt"/>
13
- <line num="29" count="5" type="stmt"/>
14
- <line num="35" count="4" type="stmt"/>
15
- <line num="36" count="4" type="stmt"/>
16
- <line num="37" count="4" type="stmt"/>
17
- <line num="38" count="4" type="stmt"/>
18
- <line num="48" count="5" type="stmt"/>
19
- <line num="53" count="4" type="stmt"/>
20
- <line num="54" count="4" type="stmt"/>
21
- <line num="55" count="4" type="stmt"/>
22
- <line num="62" count="5" type="stmt"/>
23
- <line num="63" count="2" type="stmt"/>
24
- <line num="64" count="2" type="stmt"/>
25
- <line num="65" count="2" type="stmt"/>
26
- <line num="66" count="2" type="stmt"/>
27
- <line num="77" count="5" type="stmt"/>
28
- <line num="83" count="1" type="stmt"/>
29
- <line num="84" count="1" type="stmt"/>
30
- <line num="85" count="1" type="stmt"/>
31
- <line num="86" count="1" type="stmt"/>
32
- <line num="87" count="1" type="stmt"/>
33
- <line num="88" count="1" type="stmt"/>
34
- <line num="99" count="5" type="stmt"/>
35
- <line num="105" count="1" type="stmt"/>
36
- <line num="106" count="1" type="stmt"/>
37
- <line num="107" count="1" type="stmt"/>
38
- <line num="108" count="1" type="stmt"/>
39
- <line num="109" count="1" type="stmt"/>
40
- <line num="110" count="1" type="stmt"/>
41
- </file>
42
- <file name="index.ts" path="/Users/pankajpriscilla/SO_CareCardCa/pkg-auth-util/src/index.ts">
43
- <metrics statements="6" coveredstatements="6" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
44
- <line num="1" count="2" type="stmt"/>
45
- <line num="2" count="2" type="stmt"/>
46
- <line num="3" count="2" type="stmt"/>
47
- <line num="4" count="2" type="stmt"/>
48
- <line num="5" count="2" type="stmt"/>
49
- <line num="6" count="2" type="stmt"/>
50
- </file>
51
- <file name="jwtUtilAuth.ts" path="/Users/pankajpriscilla/SO_CareCardCa/pkg-auth-util/src/jwtUtilAuth.ts">
52
- <metrics statements="28" coveredstatements="26" conditionals="0" coveredconditionals="0" methods="5" coveredmethods="5"/>
53
- <line num="1" count="4" type="stmt"/>
54
- <line num="2" count="4" type="stmt"/>
55
- <line num="11" count="4" type="stmt"/>
56
- <line num="16" count="2" type="stmt"/>
57
- <line num="24" count="4" type="stmt"/>
58
- <line num="25" count="3" type="stmt"/>
59
- <line num="35" count="4" type="stmt"/>
60
- <line num="40" count="1" type="stmt"/>
61
- <line num="41" count="1" type="stmt"/>
62
- <line num="42" count="1" type="stmt"/>
63
- <line num="43" count="1" type="stmt"/>
64
- <line num="44" count="1" type="stmt"/>
65
- <line num="45" count="1" type="stmt"/>
66
- <line num="46" count="1" type="stmt"/>
67
- <line num="47" count="1" type="stmt"/>
68
- <line num="49" count="0" type="stmt"/>
69
- <line num="59" count="4" type="stmt"/>
70
- <line num="60" count="1" type="stmt"/>
71
- <line num="61" count="1" type="stmt"/>
72
- <line num="62" count="1" type="stmt"/>
73
- <line num="63" count="1" type="stmt"/>
74
- <line num="64" count="1" type="stmt"/>
75
- <line num="71" count="0" type="stmt"/>
76
- <line num="80" count="4" type="stmt"/>
77
- <line num="81" count="1" type="stmt"/>
78
- <line num="82" count="1" type="stmt"/>
79
- <line num="83" count="1" type="stmt"/>
80
- <line num="84" count="1" type="stmt"/>
81
- </file>
82
- <file name="keyGen.ts" path="/Users/pankajpriscilla/SO_CareCardCa/pkg-auth-util/src/keyGen.ts">
83
- <metrics statements="3" coveredstatements="3" conditionals="1" coveredconditionals="1" methods="1" coveredmethods="1"/>
84
- <line num="1" count="2" type="stmt"/>
85
- <line num="3" count="2" type="cond" truecount="1" falsecount="0"/>
86
- <line num="4" count="1" type="stmt"/>
87
- </file>
88
- <file name="pwdUtilAuth.ts" path="/Users/pankajpriscilla/SO_CareCardCa/pkg-auth-util/src/pwdUtilAuth.ts">
89
- <metrics statements="17" coveredstatements="17" conditionals="0" coveredconditionals="0" methods="5" coveredmethods="5"/>
90
- <line num="1" count="4" type="stmt"/>
91
- <line num="2" count="4" type="stmt"/>
92
- <line num="11" count="4" type="stmt"/>
93
- <line num="16" count="4" type="stmt"/>
94
- <line num="24" count="4" type="stmt"/>
95
- <line num="25" count="2" type="stmt"/>
96
- <line num="36" count="4" type="stmt"/>
97
- <line num="42" count="3" type="stmt"/>
98
- <line num="43" count="3" type="stmt"/>
99
- <line num="44" count="3" type="stmt"/>
100
- <line num="54" count="4" type="stmt"/>
101
- <line num="59" count="1" type="stmt"/>
102
- <line num="60" count="1" type="stmt"/>
103
- <line num="70" count="4" type="stmt"/>
104
- <line num="75" count="1" type="stmt"/>
105
- <line num="76" count="1" type="stmt"/>
106
- <line num="77" count="1" type="stmt"/>
107
- </file>
108
- <file name="strEncryptUtil.ts" path="/Users/pankajpriscilla/SO_CareCardCa/pkg-auth-util/src/strEncryptUtil.ts">
109
- <metrics statements="36" coveredstatements="27" conditionals="9" coveredconditionals="0" methods="6" coveredmethods="5"/>
110
- <line num="2" count="3" type="stmt"/>
111
- <line num="7" count="3" type="cond" truecount="0" falsecount="1"/>
112
- <line num="9" count="2" type="stmt"/>
113
- <line num="41" count="0" type="cond" truecount="0" falsecount="2"/>
114
- <line num="47" count="0" type="stmt"/>
115
- <line num="49" count="0" type="cond" truecount="0" falsecount="2"/>
116
- <line num="51" count="0" type="stmt"/>
117
- <line num="53" count="0" type="stmt"/>
118
- <line num="64" count="3" type="stmt"/>
119
- <line num="68" count="1" type="stmt"/>
120
- <line num="69" count="1" type="stmt"/>
121
- <line num="73" count="1" type="stmt"/>
122
- <line num="75" count="0" type="stmt"/>
123
- <line num="83" count="3" type="stmt"/>
124
- <line num="87" count="1" type="stmt"/>
125
- <line num="88" count="1" type="stmt"/>
126
- <line num="92" count="1" type="stmt"/>
127
- <line num="94" count="0" type="stmt"/>
128
- <line num="109" count="3" type="stmt"/>
129
- <line num="113" count="1" type="stmt"/>
130
- <line num="114" count="1" type="stmt"/>
131
- <line num="115" count="1" type="stmt"/>
132
- <line num="117" count="1" type="stmt"/>
133
- <line num="119" count="1" type="stmt"/>
134
- <line num="124" count="1" type="stmt"/>
135
- <line num="126" count="1" type="stmt"/>
136
- <line num="128" count="0" type="stmt"/>
137
- <line num="138" count="3" type="stmt"/>
138
- <line num="142" count="1" type="stmt"/>
139
- <line num="143" count="1" type="stmt"/>
140
- <line num="144" count="1" type="stmt"/>
141
- <line num="146" count="1" type="stmt"/>
142
- <line num="148" count="1" type="stmt"/>
143
- <line num="153" count="1" type="stmt"/>
144
- <line num="155" count="1" type="stmt"/>
145
- <line num="157" count="0" type="stmt"/>
146
- </file>
147
- <file name="stringUtilAuth.ts" path="/Users/pankajpriscilla/SO_CareCardCa/pkg-auth-util/src/stringUtilAuth.ts">
148
- <metrics statements="28" coveredstatements="28" conditionals="6" coveredconditionals="2" methods="9" coveredmethods="9"/>
149
- <line num="12" count="6" type="stmt"/>
150
- <line num="13" count="6" type="stmt"/>
151
- <line num="14" count="3" type="stmt"/>
152
- <line num="21" count="6" type="cond" truecount="0" falsecount="1"/>
153
- <line num="22" count="5" type="stmt"/>
154
- <line num="29" count="6" type="cond" truecount="0" falsecount="1"/>
155
- <line num="30" count="3" type="stmt"/>
156
- <line num="31" count="3" type="stmt"/>
157
- <line num="39" count="6" type="stmt"/>
158
- <line num="40" count="7" type="stmt"/>
159
- <line num="47" count="6" type="stmt"/>
160
- <line num="48" count="6" type="stmt"/>
161
- <line num="56" count="6" type="stmt"/>
162
- <line num="57" count="3" type="stmt"/>
163
- <line num="58" count="3" type="cond" truecount="1" falsecount="1"/>
164
- <line num="59" count="3" type="stmt"/>
165
- <line num="72" count="6" type="stmt"/>
166
- <line num="73" count="4" type="stmt"/>
167
- <line num="74" count="4" type="cond" truecount="1" falsecount="1"/>
168
- <line num="75" count="4" type="stmt"/>
169
- <line num="87" count="6" type="stmt"/>
170
- <line num="88" count="3" type="stmt"/>
171
- <line num="89" count="3" type="stmt"/>
172
- <line num="90" count="3" type="stmt"/>
173
- <line num="98" count="6" type="stmt"/>
174
- <line num="99" count="2" type="stmt"/>
175
- <line num="100" count="2" type="stmt"/>
176
- <line num="101" count="2" type="stmt"/>
177
- </file>
178
- </project>
179
- </coverage>
@@ -1,8 +0,0 @@
1
- {"/Users/pankajpriscilla/SO_CareCardCa/pkg-auth-util/src/cryptoUtilAuth.ts": {"path":"/Users/pankajpriscilla/SO_CareCardCa/pkg-auth-util/src/cryptoUtilAuth.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":33}},"1":{"start":{"line":10,"column":44},"end":{"line":19,"column":1}},"2":{"start":{"line":15,"column":15},"end":{"line":15,"column":50}},"3":{"start":{"line":16,"column":2},"end":{"line":16,"column":20}},"4":{"start":{"line":17,"column":2},"end":{"line":17,"column":13}},"5":{"start":{"line":18,"column":2},"end":{"line":18,"column":41}},"6":{"start":{"line":10,"column":13},"end":{"line":10,"column":44}},"7":{"start":{"line":29,"column":44},"end":{"line":39,"column":1}},"8":{"start":{"line":35,"column":17},"end":{"line":35,"column":54}},"9":{"start":{"line":36,"column":2},"end":{"line":36,"column":23}},"10":{"start":{"line":37,"column":2},"end":{"line":37,"column":15}},"11":{"start":{"line":38,"column":2},"end":{"line":38,"column":55}},"12":{"start":{"line":29,"column":13},"end":{"line":29,"column":44}},"13":{"start":{"line":48,"column":32},"end":{"line":56,"column":1}},"14":{"start":{"line":53,"column":15},"end":{"line":53,"column":51}},"15":{"start":{"line":54,"column":2},"end":{"line":54,"column":22}},"16":{"start":{"line":55,"column":2},"end":{"line":55,"column":31}},"17":{"start":{"line":48,"column":13},"end":{"line":48,"column":32}},"18":{"start":{"line":62,"column":32},"end":{"line":67,"column":1}},"19":{"start":{"line":63,"column":15},"end":{"line":63,"column":35}},"20":{"start":{"line":64,"column":15},"end":{"line":64,"column":59}},"21":{"start":{"line":65,"column":2},"end":{"line":65,"column":31}},"22":{"start":{"line":66,"column":2},"end":{"line":66,"column":31}},"23":{"start":{"line":62,"column":13},"end":{"line":62,"column":32}},"24":{"start":{"line":77,"column":42},"end":{"line":89,"column":1}},"25":{"start":{"line":83,"column":14},"end":{"line":83,"column":49}},"26":{"start":{"line":84,"column":13},"end":{"line":84,"column":32}},"27":{"start":{"line":85,"column":17},"end":{"line":85,"column":58}},"28":{"start":{"line":86,"column":18},"end":{"line":86,"column":58}},"29":{"start":{"line":87,"column":2},"end":{"line":87,"column":38}},"30":{"start":{"line":88,"column":2},"end":{"line":88,"column":19}},"31":{"start":{"line":77,"column":13},"end":{"line":77,"column":42}},"32":{"start":{"line":99,"column":42},"end":{"line":111,"column":1}},"33":{"start":{"line":105,"column":14},"end":{"line":105,"column":49}},"34":{"start":{"line":106,"column":13},"end":{"line":106,"column":32}},"35":{"start":{"line":107,"column":19},"end":{"line":107,"column":62}},"36":{"start":{"line":108,"column":18},"end":{"line":108,"column":69}},"37":{"start":{"line":109,"column":2},"end":{"line":109,"column":39}},"38":{"start":{"line":110,"column":2},"end":{"line":110,"column":19}},"39":{"start":{"line":99,"column":13},"end":{"line":99,"column":42}}},"fnMap":{"0":{"name":"(anonymous_9)","decl":{"start":{"line":10,"column":44},"end":{"line":10,"column":null}},"loc":{"start":{"line":13,"column":26},"end":{"line":19,"column":1}}},"1":{"name":"(anonymous_10)","decl":{"start":{"line":29,"column":44},"end":{"line":29,"column":null}},"loc":{"start":{"line":33,"column":26},"end":{"line":39,"column":1}}},"2":{"name":"(anonymous_11)","decl":{"start":{"line":48,"column":32},"end":{"line":48,"column":null}},"loc":{"start":{"line":51,"column":19},"end":{"line":56,"column":1}}},"3":{"name":"(anonymous_12)","decl":{"start":{"line":62,"column":32},"end":{"line":62,"column":43}},"loc":{"start":{"line":62,"column":45},"end":{"line":67,"column":1}}},"4":{"name":"(anonymous_13)","decl":{"start":{"line":77,"column":42},"end":{"line":77,"column":null}},"loc":{"start":{"line":82,"column":12},"end":{"line":89,"column":1}}},"5":{"name":"(anonymous_14)","decl":{"start":{"line":99,"column":42},"end":{"line":99,"column":null}},"loc":{"start":{"line":104,"column":12},"end":{"line":111,"column":1}}}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":2},"end":{"line":11,"column":20}},"type":"default-arg","locations":[{"start":{"line":11,"column":18},"end":{"line":11,"column":20}}]},"1":{"loc":{"start":{"line":30,"column":2},"end":{"line":30,"column":20}},"type":"default-arg","locations":[{"start":{"line":30,"column":18},"end":{"line":30,"column":20}}]},"2":{"loc":{"start":{"line":49,"column":2},"end":{"line":49,"column":21}},"type":"default-arg","locations":[{"start":{"line":49,"column":19},"end":{"line":49,"column":21}}]}},"s":{"0":5,"1":5,"2":3,"3":3,"4":3,"5":3,"6":5,"7":5,"8":4,"9":4,"10":4,"11":4,"12":5,"13":5,"14":4,"15":4,"16":4,"17":5,"18":5,"19":2,"20":2,"21":2,"22":2,"23":5,"24":5,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":5,"32":5,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":5},"f":{"0":3,"1":4,"2":4,"3":2,"4":1,"5":1},"b":{"0":[0],"1":[0],"2":[0]}}
2
- ,"/Users/pankajpriscilla/SO_CareCardCa/pkg-auth-util/src/index.ts": {"path":"/Users/pankajpriscilla/SO_CareCardCa/pkg-auth-util/src/index.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":33}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":30}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":25}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":30}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":33}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":33}}},"fnMap":{},"branchMap":{},"s":{"0":2,"1":2,"2":2,"3":2,"4":2,"5":2},"f":{},"b":{}}
3
- ,"/Users/pankajpriscilla/SO_CareCardCa/pkg-auth-util/src/jwtUtilAuth.ts": {"path":"/Users/pankajpriscilla/SO_CareCardCa/pkg-auth-util/src/jwtUtilAuth.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":51}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":51}},"2":{"start":{"line":11,"column":28},"end":{"line":17,"column":1}},"3":{"start":{"line":16,"column":2},"end":{"line":16,"column":68}},"4":{"start":{"line":11,"column":13},"end":{"line":11,"column":28}},"5":{"start":{"line":24,"column":51},"end":{"line":26,"column":1}},"6":{"start":{"line":25,"column":2},"end":{"line":25,"column":72}},"7":{"start":{"line":24,"column":13},"end":{"line":24,"column":51}},"8":{"start":{"line":35,"column":41},"end":{"line":51,"column":1}},"9":{"start":{"line":40,"column":2},"end":{"line":50,"column":3}},"10":{"start":{"line":41,"column":22},"end":{"line":41,"column":38}},"11":{"start":{"line":42,"column":32},"end":{"line":42,"column":88}},"12":{"start":{"line":43,"column":33},"end":{"line":43,"column":90}},"13":{"start":{"line":44,"column":18},"end":{"line":44,"column":66}},"14":{"start":{"line":45,"column":22},"end":{"line":45,"column":95}},"15":{"start":{"line":46,"column":29},"end":{"line":46,"column":72}},"16":{"start":{"line":47,"column":4},"end":{"line":47,"column":85}},"17":{"start":{"line":49,"column":4},"end":{"line":49,"column":16}},"18":{"start":{"line":35,"column":13},"end":{"line":35,"column":41}},"19":{"start":{"line":59,"column":34},"end":{"line":73,"column":1}},"20":{"start":{"line":60,"column":2},"end":{"line":72,"column":3}},"21":{"start":{"line":61,"column":43},"end":{"line":61,"column":83}},"22":{"start":{"line":62,"column":18},"end":{"line":62,"column":40}},"23":{"start":{"line":63,"column":25},"end":{"line":63,"column":69}},"24":{"start":{"line":64,"column":4},"end":{"line":69,"column":6}},"25":{"start":{"line":71,"column":4},"end":{"line":71,"column":17}},"26":{"start":{"line":59,"column":13},"end":{"line":59,"column":34}},"27":{"start":{"line":80,"column":39},"end":{"line":85,"column":1}},"28":{"start":{"line":81,"column":30},"end":{"line":81,"column":70}},"29":{"start":{"line":82,"column":20},"end":{"line":82,"column":56}},"30":{"start":{"line":83,"column":21},"end":{"line":83,"column":58}},"31":{"start":{"line":84,"column":2},"end":{"line":84,"column":80}},"32":{"start":{"line":80,"column":13},"end":{"line":80,"column":39}}},"fnMap":{"0":{"name":"(anonymous_9)","decl":{"start":{"line":11,"column":28},"end":{"line":11,"column":null}},"loc":{"start":{"line":15,"column":12},"end":{"line":17,"column":1}}},"1":{"name":"(anonymous_10)","decl":{"start":{"line":24,"column":51},"end":{"line":24,"column":52}},"loc":{"start":{"line":24,"column":72},"end":{"line":26,"column":1}}},"2":{"name":"(anonymous_11)","decl":{"start":{"line":35,"column":41},"end":{"line":35,"column":null}},"loc":{"start":{"line":39,"column":9},"end":{"line":51,"column":1}}},"3":{"name":"(anonymous_12)","decl":{"start":{"line":59,"column":34},"end":{"line":59,"column":35}},"loc":{"start":{"line":59,"column":78},"end":{"line":73,"column":1}}},"4":{"name":"(anonymous_13)","decl":{"start":{"line":80,"column":39},"end":{"line":80,"column":40}},"loc":{"start":{"line":80,"column":60},"end":{"line":85,"column":1}}}},"branchMap":{},"s":{"0":4,"1":4,"2":4,"3":2,"4":4,"5":4,"6":3,"7":4,"8":4,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":0,"18":4,"19":4,"20":1,"21":1,"22":1,"23":1,"24":1,"25":0,"26":4,"27":4,"28":1,"29":1,"30":1,"31":1,"32":4},"f":{"0":2,"1":3,"2":1,"3":1,"4":1},"b":{}}
4
- ,"/Users/pankajpriscilla/SO_CareCardCa/pkg-auth-util/src/keyGen.ts": {"path":"/Users/pankajpriscilla/SO_CareCardCa/pkg-auth-util/src/keyGen.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":50}},"1":{"start":{"line":3,"column":31},"end":{"line":14,"column":4}},"2":{"start":{"line":4,"column":2},"end":{"line":14,"column":4}},"3":{"start":{"line":3,"column":13},"end":{"line":3,"column":31}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":3,"column":31},"end":{"line":3,"column":32}},"loc":{"start":{"line":4,"column":2},"end":{"line":14,"column":4}}}},"branchMap":{"0":{"loc":{"start":{"line":3,"column":32},"end":{"line":3,"column":60}},"type":"default-arg","locations":[{"start":{"line":3,"column":56},"end":{"line":3,"column":60}}]}},"s":{"0":2,"1":2,"2":1,"3":2},"f":{"0":1},"b":{"0":[1]}}
5
- ,"/Users/pankajpriscilla/SO_CareCardCa/pkg-auth-util/src/pwdUtilAuth.ts": {"path":"/Users/pankajpriscilla/SO_CareCardCa/pkg-auth-util/src/pwdUtilAuth.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":51}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":51}},"2":{"start":{"line":11,"column":37},"end":{"line":17,"column":1}},"3":{"start":{"line":16,"column":2},"end":{"line":16,"column":77}},"4":{"start":{"line":11,"column":13},"end":{"line":11,"column":37}},"5":{"start":{"line":24,"column":40},"end":{"line":26,"column":1}},"6":{"start":{"line":25,"column":2},"end":{"line":25,"column":89}},"7":{"start":{"line":24,"column":13},"end":{"line":24,"column":40}},"8":{"start":{"line":36,"column":35},"end":{"line":45,"column":1}},"9":{"start":{"line":42,"column":26},"end":{"line":42,"column":65}},"10":{"start":{"line":43,"column":21},"end":{"line":43,"column":81}},"11":{"start":{"line":44,"column":2},"end":{"line":44,"column":66}},"12":{"start":{"line":36,"column":13},"end":{"line":36,"column":35}},"13":{"start":{"line":54,"column":48},"end":{"line":61,"column":1}},"14":{"start":{"line":59,"column":15},"end":{"line":59,"column":48}},"15":{"start":{"line":60,"column":2},"end":{"line":60,"column":64}},"16":{"start":{"line":54,"column":13},"end":{"line":54,"column":48}},"17":{"start":{"line":70,"column":59},"end":{"line":78,"column":1}},"18":{"start":{"line":75,"column":24},"end":{"line":75,"column":67}},"19":{"start":{"line":76,"column":20},"end":{"line":76,"column":53}},"20":{"start":{"line":77,"column":2},"end":{"line":77,"column":64}},"21":{"start":{"line":70,"column":13},"end":{"line":70,"column":59}}},"fnMap":{"0":{"name":"(anonymous_9)","decl":{"start":{"line":11,"column":37},"end":{"line":11,"column":null}},"loc":{"start":{"line":15,"column":12},"end":{"line":17,"column":1}}},"1":{"name":"(anonymous_10)","decl":{"start":{"line":24,"column":40},"end":{"line":24,"column":41}},"loc":{"start":{"line":24,"column":76},"end":{"line":26,"column":1}}},"2":{"name":"(anonymous_11)","decl":{"start":{"line":36,"column":35},"end":{"line":36,"column":null}},"loc":{"start":{"line":41,"column":12},"end":{"line":45,"column":1}}},"3":{"name":"(anonymous_12)","decl":{"start":{"line":54,"column":48},"end":{"line":54,"column":null}},"loc":{"start":{"line":58,"column":12},"end":{"line":61,"column":1}}},"4":{"name":"(anonymous_13)","decl":{"start":{"line":70,"column":59},"end":{"line":70,"column":null}},"loc":{"start":{"line":74,"column":12},"end":{"line":78,"column":1}}}},"branchMap":{},"s":{"0":4,"1":4,"2":4,"3":4,"4":4,"5":4,"6":2,"7":4,"8":4,"9":3,"10":3,"11":3,"12":4,"13":4,"14":1,"15":1,"16":4,"17":4,"18":1,"19":1,"20":1,"21":4},"f":{"0":4,"1":2,"2":3,"3":1,"4":1},"b":{}}
6
- ,"/Users/pankajpriscilla/SO_CareCardCa/pkg-auth-util/src/strEncryptUtil.ts": {"path":"/Users/pankajpriscilla/SO_CareCardCa/pkg-auth-util/src/strEncryptUtil.ts","statementMap":{"0":{"start":{"line":7,"column":0},"end":{"line":7,"column":16}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":33}},"2":{"start":{"line":9,"column":2},"end":{"line":9,"column":48}},"3":{"start":{"line":41,"column":2},"end":{"line":48,"column":3}},"4":{"start":{"line":47,"column":4},"end":{"line":47,"column":44}},"5":{"start":{"line":49,"column":2},"end":{"line":52,"column":3}},"6":{"start":{"line":51,"column":4},"end":{"line":51,"column":33}},"7":{"start":{"line":53,"column":2},"end":{"line":53,"column":25}},"8":{"start":{"line":64,"column":35},"end":{"line":77,"column":1}},"9":{"start":{"line":68,"column":2},"end":{"line":76,"column":3}},"10":{"start":{"line":69,"column":22},"end":{"line":71,"column":null}},"11":{"start":{"line":73,"column":4},"end":{"line":73,"column":73}},"12":{"start":{"line":75,"column":4},"end":{"line":75,"column":41}},"13":{"start":{"line":64,"column":13},"end":{"line":64,"column":35}},"14":{"start":{"line":83,"column":34},"end":{"line":96,"column":1}},"15":{"start":{"line":87,"column":2},"end":{"line":95,"column":3}},"16":{"start":{"line":88,"column":22},"end":{"line":90,"column":null}},"17":{"start":{"line":92,"column":4},"end":{"line":92,"column":69}},"18":{"start":{"line":94,"column":4},"end":{"line":94,"column":41}},"19":{"start":{"line":83,"column":13},"end":{"line":83,"column":34}},"20":{"start":{"line":109,"column":28},"end":{"line":130,"column":1}},"21":{"start":{"line":113,"column":2},"end":{"line":129,"column":3}},"22":{"start":{"line":114,"column":15},"end":{"line":114,"column":34}},"23":{"start":{"line":115,"column":16},"end":{"line":115,"column":85}},"24":{"start":{"line":117,"column":19},"end":{"line":117,"column":83}},"25":{"start":{"line":119,"column":20},"end":{"line":122,"column":null}},"26":{"start":{"line":124,"column":4},"end":{"line":124,"column":70}},"27":{"start":{"line":126,"column":4},"end":{"line":126,"column":21}},"28":{"start":{"line":128,"column":4},"end":{"line":128,"column":41}},"29":{"start":{"line":109,"column":13},"end":{"line":109,"column":28}},"30":{"start":{"line":138,"column":28},"end":{"line":159,"column":1}},"31":{"start":{"line":142,"column":2},"end":{"line":158,"column":3}},"32":{"start":{"line":143,"column":15},"end":{"line":143,"column":34}},"33":{"start":{"line":144,"column":16},"end":{"line":144,"column":85}},"34":{"start":{"line":146,"column":21},"end":{"line":146,"column":87}},"35":{"start":{"line":148,"column":20},"end":{"line":151,"column":null}},"36":{"start":{"line":153,"column":4},"end":{"line":153,"column":68}},"37":{"start":{"line":155,"column":4},"end":{"line":155,"column":21}},"38":{"start":{"line":157,"column":4},"end":{"line":157,"column":41}},"39":{"start":{"line":138,"column":13},"end":{"line":138,"column":28}}},"fnMap":{"0":{"name":"createKey","decl":{"start":{"line":7,"column":16},"end":{"line":7,"column":25}},"loc":{"start":{"line":7,"column":64},"end":{"line":10,"column":1}}},"1":{"name":"getErrorCodeOrFallback","decl":{"start":{"line":39,"column":9},"end":{"line":39,"column":31}},"loc":{"start":{"line":39,"column":46},"end":{"line":54,"column":1}}},"2":{"name":"(anonymous_11)","decl":{"start":{"line":64,"column":35},"end":{"line":64,"column":null}},"loc":{"start":{"line":67,"column":12},"end":{"line":77,"column":1}}},"3":{"name":"(anonymous_12)","decl":{"start":{"line":83,"column":34},"end":{"line":83,"column":null}},"loc":{"start":{"line":86,"column":12},"end":{"line":96,"column":1}}},"4":{"name":"(anonymous_13)","decl":{"start":{"line":109,"column":28},"end":{"line":109,"column":null}},"loc":{"start":{"line":112,"column":12},"end":{"line":130,"column":1}}},"5":{"name":"(anonymous_14)","decl":{"start":{"line":138,"column":28},"end":{"line":138,"column":null}},"loc":{"start":{"line":141,"column":12},"end":{"line":159,"column":1}}}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":50},"end":{"line":7,"column":64}},"type":"default-arg","locations":[{"start":{"line":7,"column":62},"end":{"line":7,"column":64}}]},"1":{"loc":{"start":{"line":41,"column":2},"end":{"line":48,"column":3}},"type":"if","locations":[{"start":{"line":41,"column":2},"end":{"line":48,"column":3}},{"start":{},"end":{}}]},"2":{"loc":{"start":{"line":42,"column":4},"end":{"line":45,"column":58}},"type":"binary-expr","locations":[{"start":{"line":42,"column":4},"end":{"line":42,"column":29}},{"start":{"line":43,"column":4},"end":{"line":43,"column":18}},{"start":{"line":44,"column":4},"end":{"line":44,"column":19}},{"start":{"line":45,"column":4},"end":{"line":45,"column":58}}]},"3":{"loc":{"start":{"line":49,"column":2},"end":{"line":52,"column":3}},"type":"if","locations":[{"start":{"line":49,"column":2},"end":{"line":52,"column":3}},{"start":{},"end":{}}]}},"s":{"0":3,"1":3,"2":2,"3":0,"4":0,"5":0,"6":0,"7":0,"8":3,"9":1,"10":1,"11":1,"12":0,"13":3,"14":3,"15":1,"16":1,"17":1,"18":0,"19":3,"20":3,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":0,"29":3,"30":3,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":0,"39":3},"f":{"0":2,"1":0,"2":1,"3":1,"4":1,"5":1},"b":{"0":[0],"1":[0,0],"2":[0,0,0,0],"3":[0,0]}}
7
- ,"/Users/pankajpriscilla/SO_CareCardCa/pkg-auth-util/src/stringUtilAuth.ts": {"path":"/Users/pankajpriscilla/SO_CareCardCa/pkg-auth-util/src/stringUtilAuth.ts","statementMap":{"0":{"start":{"line":12,"column":35},"end":{"line":15,"column":1}},"1":{"start":{"line":13,"column":2},"end":{"line":13,"column":54}},"2":{"start":{"line":13,"column":34},"end":{"line":13,"column":54}},"3":{"start":{"line":14,"column":2},"end":{"line":14,"column":22}},"4":{"start":{"line":12,"column":13},"end":{"line":12,"column":35}},"5":{"start":{"line":21,"column":33},"end":{"line":23,"column":1}},"6":{"start":{"line":22,"column":2},"end":{"line":22,"column":83}},"7":{"start":{"line":21,"column":13},"end":{"line":21,"column":33}},"8":{"start":{"line":29,"column":36},"end":{"line":32,"column":1}},"9":{"start":{"line":30,"column":17},"end":{"line":30,"column":68}},"10":{"start":{"line":31,"column":2},"end":{"line":31,"column":39}},"11":{"start":{"line":29,"column":13},"end":{"line":29,"column":36}},"12":{"start":{"line":39,"column":29},"end":{"line":41,"column":1}},"13":{"start":{"line":40,"column":2},"end":{"line":40,"column":55}},"14":{"start":{"line":39,"column":13},"end":{"line":39,"column":29}},"15":{"start":{"line":47,"column":29},"end":{"line":49,"column":1}},"16":{"start":{"line":48,"column":2},"end":{"line":48,"column":62}},"17":{"start":{"line":47,"column":13},"end":{"line":47,"column":29}},"18":{"start":{"line":56,"column":60},"end":{"line":65,"column":1}},"19":{"start":{"line":57,"column":27},"end":{"line":57,"column":50}},"20":{"start":{"line":58,"column":2},"end":{"line":58,"column":49}},"21":{"start":{"line":58,"column":37},"end":{"line":58,"column":49}},"22":{"start":{"line":59,"column":2},"end":{"line":64,"column":4}},"23":{"start":{"line":56,"column":13},"end":{"line":56,"column":60}},"24":{"start":{"line":72,"column":58},"end":{"line":80,"column":1}},"25":{"start":{"line":73,"column":19},"end":{"line":73,"column":33}},"26":{"start":{"line":74,"column":2},"end":{"line":74,"column":41}},"27":{"start":{"line":74,"column":29},"end":{"line":74,"column":41}},"28":{"start":{"line":75,"column":2},"end":{"line":79,"column":4}},"29":{"start":{"line":72,"column":13},"end":{"line":72,"column":58}},"30":{"start":{"line":87,"column":43},"end":{"line":91,"column":1}},"31":{"start":{"line":88,"column":20},"end":{"line":88,"column":42}},"32":{"start":{"line":89,"column":21},"end":{"line":89,"column":47}},"33":{"start":{"line":90,"column":2},"end":{"line":90,"column":41}},"34":{"start":{"line":87,"column":13},"end":{"line":87,"column":43}},"35":{"start":{"line":98,"column":37},"end":{"line":102,"column":1}},"36":{"start":{"line":99,"column":21},"end":{"line":99,"column":62}},"37":{"start":{"line":100,"column":20},"end":{"line":100,"column":47}},"38":{"start":{"line":101,"column":2},"end":{"line":101,"column":33}},"39":{"start":{"line":98,"column":13},"end":{"line":98,"column":37}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":12,"column":35},"end":{"line":12,"column":36}},"loc":{"start":{"line":12,"column":68},"end":{"line":15,"column":1}}},"1":{"name":"(anonymous_1)","decl":{"start":{"line":21,"column":33},"end":{"line":21,"column":34}},"loc":{"start":{"line":21,"column":74},"end":{"line":23,"column":1}}},"2":{"name":"(anonymous_2)","decl":{"start":{"line":29,"column":36},"end":{"line":29,"column":37}},"loc":{"start":{"line":29,"column":75},"end":{"line":32,"column":1}}},"3":{"name":"(anonymous_3)","decl":{"start":{"line":39,"column":29},"end":{"line":39,"column":30}},"loc":{"start":{"line":39,"column":63},"end":{"line":41,"column":1}}},"4":{"name":"(anonymous_4)","decl":{"start":{"line":47,"column":29},"end":{"line":47,"column":30}},"loc":{"start":{"line":47,"column":61},"end":{"line":49,"column":1}}},"5":{"name":"(anonymous_5)","decl":{"start":{"line":56,"column":60},"end":{"line":56,"column":61}},"loc":{"start":{"line":56,"column":85},"end":{"line":65,"column":1}}},"6":{"name":"(anonymous_6)","decl":{"start":{"line":72,"column":58},"end":{"line":72,"column":59}},"loc":{"start":{"line":72,"column":74},"end":{"line":80,"column":1}}},"7":{"name":"(anonymous_7)","decl":{"start":{"line":87,"column":43},"end":{"line":87,"column":44}},"loc":{"start":{"line":87,"column":67},"end":{"line":91,"column":1}}},"8":{"name":"(anonymous_8)","decl":{"start":{"line":98,"column":37},"end":{"line":98,"column":38}},"loc":{"start":{"line":98,"column":74},"end":{"line":102,"column":1}}}},"branchMap":{"0":{"loc":{"start":{"line":21,"column":34},"end":{"line":21,"column":62}},"type":"default-arg","locations":[{"start":{"line":21,"column":60},"end":{"line":21,"column":62}}]},"1":{"loc":{"start":{"line":29,"column":37},"end":{"line":29,"column":63}},"type":"default-arg","locations":[{"start":{"line":29,"column":61},"end":{"line":29,"column":63}}]},"2":{"loc":{"start":{"line":58,"column":2},"end":{"line":58,"column":49}},"type":"if","locations":[{"start":{"line":58,"column":2},"end":{"line":58,"column":49}},{"start":{},"end":{}}]},"3":{"loc":{"start":{"line":74,"column":2},"end":{"line":74,"column":41}},"type":"if","locations":[{"start":{"line":74,"column":2},"end":{"line":74,"column":41}},{"start":{},"end":{}}]}},"s":{"0":6,"1":3,"2":6,"3":3,"4":6,"5":6,"6":5,"7":6,"8":6,"9":3,"10":3,"11":6,"12":6,"13":7,"14":6,"15":6,"16":6,"17":6,"18":6,"19":3,"20":3,"21":0,"22":3,"23":6,"24":6,"25":4,"26":4,"27":0,"28":4,"29":6,"30":6,"31":3,"32":3,"33":3,"34":6,"35":6,"36":2,"37":2,"38":2,"39":6},"f":{"0":3,"1":5,"2":3,"3":7,"4":6,"5":3,"6":4,"7":3,"8":2},"b":{"0":[0],"1":[0],"2":[0,3],"3":[0,4]}}
8
- }