auth0-deploy-cli 7.21.0 → 7.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.nyc_output/{79967eba-48ff-4031-8011-aca37169a77a.json → 8c594b79-aa55-4e49-845c-8d88ca24c494.json} +1 -1
- package/.nyc_output/processinfo/278104e6-6bb4-4dfb-94bf-3ef7f73e08b9.json +1 -0
- package/.nyc_output/processinfo/5210e060-a3b8-4e7f-9062-47807b58d0cd.json +1 -0
- package/.nyc_output/processinfo/{79967eba-48ff-4031-8011-aca37169a77a.json → 8c594b79-aa55-4e49-845c-8d88ca24c494.json} +1 -1
- package/.nyc_output/processinfo/index.json +1 -1
- package/CHANGELOG.md +11 -1
- package/coverage/lcov-report/index.html +5 -5
- package/coverage/lcov.info +242 -241
- package/lib/tools/auth0/handlers/organizations.d.ts +3 -0
- package/lib/tools/auth0/handlers/organizations.js +4 -1
- package/lib/tools/auth0/handlers/organizations.js.map +1 -1
- package/lib/tools/auth0/handlers/themes.d.ts +6 -0
- package/lib/tools/auth0/handlers/themes.js +6 -0
- package/lib/tools/auth0/handlers/themes.js.map +1 -1
- package/package.json +1 -1
- package/.nyc_output/processinfo/16c9e62d-53da-4c19-ba42-9267b40f713d.json +0 -1
- package/.nyc_output/processinfo/8b142617-6824-4c2c-9f37-25748820eb7c.json +0 -1
- package/coverage/lcov-report/src/args.ts.html +0 -505
- package/coverage/lcov-report/src/commands/export.ts.html +0 -274
- package/coverage/lcov-report/src/commands/import.ts.html +0 -250
- package/coverage/lcov-report/src/commands/index.html +0 -131
- package/coverage/lcov-report/src/configFactory.ts.html +0 -175
- package/coverage/lcov-report/src/context/defaults.ts.html +0 -196
- package/coverage/lcov-report/src/context/directory/handlers/actions.ts.html +0 -433
- package/coverage/lcov-report/src/context/directory/handlers/attackProtection.ts.html +0 -334
- package/coverage/lcov-report/src/context/directory/handlers/branding.ts.html +0 -475
- package/coverage/lcov-report/src/context/directory/handlers/clientGrants.ts.html +0 -385
- package/coverage/lcov-report/src/context/directory/handlers/clients.ts.html +0 -340
- package/coverage/lcov-report/src/context/directory/handlers/connections.ts.html +0 -388
- package/coverage/lcov-report/src/context/directory/handlers/customDomains.ts.html +0 -232
- package/coverage/lcov-report/src/context/directory/handlers/databases.ts.html +0 -568
- package/coverage/lcov-report/src/context/directory/handlers/emailProvider.ts.html +0 -250
- package/coverage/lcov-report/src/context/directory/handlers/emailTemplates.ts.html +0 -343
- package/coverage/lcov-report/src/context/directory/handlers/guardianFactorProviders.ts.html +0 -271
- package/coverage/lcov-report/src/context/directory/handlers/guardianFactorTemplates.ts.html +0 -262
- package/coverage/lcov-report/src/context/directory/handlers/guardianFactors.ts.html +0 -262
- package/coverage/lcov-report/src/context/directory/handlers/guardianPhoneFactorMessageTypes.ts.html +0 -223
- package/coverage/lcov-report/src/context/directory/handlers/guardianPhoneFactorSelectedProvider.ts.html +0 -235
- package/coverage/lcov-report/src/context/directory/handlers/guardianPolicies.ts.html +0 -223
- package/coverage/lcov-report/src/context/directory/handlers/hooks.ts.html +0 -289
- package/coverage/lcov-report/src/context/directory/handlers/index.html +0 -551
- package/coverage/lcov-report/src/context/directory/handlers/index.ts.html +0 -304
- package/coverage/lcov-report/src/context/directory/handlers/logStreams.ts.html +0 -235
- package/coverage/lcov-report/src/context/directory/handlers/migrations.ts.html +0 -205
- package/coverage/lcov-report/src/context/directory/handlers/organizations.ts.html +0 -304
- package/coverage/lcov-report/src/context/directory/handlers/pages.ts.html +0 -379
- package/coverage/lcov-report/src/context/directory/handlers/prompts.ts.html +0 -331
- package/coverage/lcov-report/src/context/directory/handlers/resourceServers.ts.html +0 -247
- package/coverage/lcov-report/src/context/directory/handlers/roles.ts.html +0 -268
- package/coverage/lcov-report/src/context/directory/handlers/rules.ts.html +0 -277
- package/coverage/lcov-report/src/context/directory/handlers/rulesConfigs.ts.html +0 -208
- package/coverage/lcov-report/src/context/directory/handlers/tenant.ts.html +0 -298
- package/coverage/lcov-report/src/context/directory/handlers/themes.ts.html +0 -241
- package/coverage/lcov-report/src/context/directory/handlers/triggers.ts.html +0 -229
- package/coverage/lcov-report/src/context/directory/index.html +0 -116
- package/coverage/lcov-report/src/context/directory/index.ts.html +0 -490
- package/coverage/lcov-report/src/context/index.html +0 -131
- package/coverage/lcov-report/src/context/index.ts.html +0 -784
- package/coverage/lcov-report/src/context/yaml/handlers/actions.ts.html +0 -388
- package/coverage/lcov-report/src/context/yaml/handlers/attackProtection.ts.html +0 -193
- package/coverage/lcov-report/src/context/yaml/handlers/branding.ts.html +0 -376
- package/coverage/lcov-report/src/context/yaml/handlers/clientGrants.ts.html +0 -223
- package/coverage/lcov-report/src/context/yaml/handlers/clients.ts.html +0 -304
- package/coverage/lcov-report/src/context/yaml/handlers/connections.ts.html +0 -394
- package/coverage/lcov-report/src/context/yaml/handlers/customDomains.ts.html +0 -151
- package/coverage/lcov-report/src/context/yaml/handlers/databases.ts.html +0 -352
- package/coverage/lcov-report/src/context/yaml/handlers/emailProvider.ts.html +0 -208
- package/coverage/lcov-report/src/context/yaml/handlers/emailTemplates.ts.html +0 -241
- package/coverage/lcov-report/src/context/yaml/handlers/guardianFactorProviders.ts.html +0 -151
- package/coverage/lcov-report/src/context/yaml/handlers/guardianFactorTemplates.ts.html +0 -151
- package/coverage/lcov-report/src/context/yaml/handlers/guardianFactors.ts.html +0 -151
- package/coverage/lcov-report/src/context/yaml/handlers/guardianPhoneFactorMessageTypes.ts.html +0 -151
- package/coverage/lcov-report/src/context/yaml/handlers/guardianPhoneFactorSelectedProvider.ts.html +0 -169
- package/coverage/lcov-report/src/context/yaml/handlers/guardianPolicies.ts.html +0 -151
- package/coverage/lcov-report/src/context/yaml/handlers/hooks.ts.html +0 -280
- package/coverage/lcov-report/src/context/yaml/handlers/index.html +0 -551
- package/coverage/lcov-report/src/context/yaml/handlers/index.ts.html +0 -298
- package/coverage/lcov-report/src/context/yaml/handlers/logStreams.ts.html +0 -151
- package/coverage/lcov-report/src/context/yaml/handlers/migrations.ts.html +0 -145
- package/coverage/lcov-report/src/context/yaml/handlers/organizations.ts.html +0 -235
- package/coverage/lcov-report/src/context/yaml/handlers/pages.ts.html +0 -265
- package/coverage/lcov-report/src/context/yaml/handlers/prompts.ts.html +0 -154
- package/coverage/lcov-report/src/context/yaml/handlers/resourceServers.ts.html +0 -157
- package/coverage/lcov-report/src/context/yaml/handlers/roles.ts.html +0 -199
- package/coverage/lcov-report/src/context/yaml/handlers/rules.ts.html +0 -253
- package/coverage/lcov-report/src/context/yaml/handlers/rulesConfigs.ts.html +0 -181
- package/coverage/lcov-report/src/context/yaml/handlers/tenant.ts.html +0 -235
- package/coverage/lcov-report/src/context/yaml/handlers/themes.ts.html +0 -154
- package/coverage/lcov-report/src/context/yaml/handlers/triggers.ts.html +0 -172
- package/coverage/lcov-report/src/context/yaml/index.html +0 -116
- package/coverage/lcov-report/src/context/yaml/index.ts.html +0 -703
- package/coverage/lcov-report/src/index.html +0 -236
- package/coverage/lcov-report/src/index.ts.html +0 -361
- package/coverage/lcov-report/src/keywordPreservation.ts.html +0 -982
- package/coverage/lcov-report/src/logger.ts.html +0 -133
- package/coverage/lcov-report/src/readonly.ts.html +0 -343
- package/coverage/lcov-report/src/sessionDurationsToMinutes.ts.html +0 -154
- package/coverage/lcov-report/src/tools/auth0/client.ts.html +0 -604
- package/coverage/lcov-report/src/tools/auth0/handlers/actions.ts.html +0 -907
- package/coverage/lcov-report/src/tools/auth0/handlers/attackProtection.ts.html +0 -397
- package/coverage/lcov-report/src/tools/auth0/handlers/branding.ts.html +0 -430
- package/coverage/lcov-report/src/tools/auth0/handlers/clientGrants.ts.html +0 -436
- package/coverage/lcov-report/src/tools/auth0/handlers/clients.ts.html +0 -361
- package/coverage/lcov-report/src/tools/auth0/handlers/connections.ts.html +0 -598
- package/coverage/lcov-report/src/tools/auth0/handlers/customDomains.ts.html +0 -382
- package/coverage/lcov-report/src/tools/auth0/handlers/databases.ts.html +0 -436
- package/coverage/lcov-report/src/tools/auth0/handlers/default.ts.html +0 -1027
- package/coverage/lcov-report/src/tools/auth0/handlers/emailProvider.ts.html +0 -283
- package/coverage/lcov-report/src/tools/auth0/handlers/emailTemplates.ts.html +0 -343
- package/coverage/lcov-report/src/tools/auth0/handlers/guardianFactorProviders.ts.html +0 -301
- package/coverage/lcov-report/src/tools/auth0/handlers/guardianFactorTemplates.ts.html +0 -265
- package/coverage/lcov-report/src/tools/auth0/handlers/guardianFactors.ts.html +0 -241
- package/coverage/lcov-report/src/tools/auth0/handlers/guardianPhoneFactorMessageTypes.ts.html +0 -337
- package/coverage/lcov-report/src/tools/auth0/handlers/guardianPhoneFactorSelectedProvider.ts.html +0 -331
- package/coverage/lcov-report/src/tools/auth0/handlers/guardianPolicies.ts.html +0 -256
- package/coverage/lcov-report/src/tools/auth0/handlers/hooks.ts.html +0 -895
- package/coverage/lcov-report/src/tools/auth0/handlers/index.html +0 -566
- package/coverage/lcov-report/src/tools/auth0/handlers/index.ts.html +0 -295
- package/coverage/lcov-report/src/tools/auth0/handlers/logStreams.ts.html +0 -379
- package/coverage/lcov-report/src/tools/auth0/handlers/migrations.ts.html +0 -319
- package/coverage/lcov-report/src/tools/auth0/handlers/organizations.ts.html +0 -961
- package/coverage/lcov-report/src/tools/auth0/handlers/pages.ts.html +0 -544
- package/coverage/lcov-report/src/tools/auth0/handlers/prompts.ts.html +0 -946
- package/coverage/lcov-report/src/tools/auth0/handlers/resourceServers.ts.html +0 -433
- package/coverage/lcov-report/src/tools/auth0/handlers/roles.ts.html +0 -748
- package/coverage/lcov-report/src/tools/auth0/handlers/rules.ts.html +0 -826
- package/coverage/lcov-report/src/tools/auth0/handlers/rulesConfigs.ts.html +0 -289
- package/coverage/lcov-report/src/tools/auth0/handlers/tenant.ts.html +0 -556
- package/coverage/lcov-report/src/tools/auth0/handlers/themes.ts.html +0 -1885
- package/coverage/lcov-report/src/tools/auth0/handlers/triggers.ts.html +0 -439
- package/coverage/lcov-report/src/tools/auth0/index.html +0 -146
- package/coverage/lcov-report/src/tools/auth0/index.ts.html +0 -385
- package/coverage/lcov-report/src/tools/auth0/schema.ts.html +0 -184
- package/coverage/lcov-report/src/tools/calculateChanges.ts.html +0 -688
- package/coverage/lcov-report/src/tools/constants.ts.html +0 -613
- package/coverage/lcov-report/src/tools/deploy.ts.html +0 -193
- package/coverage/lcov-report/src/tools/index.html +0 -191
- package/coverage/lcov-report/src/tools/index.ts.html +0 -163
- package/coverage/lcov-report/src/tools/utils.ts.html +0 -916
- package/coverage/lcov-report/src/tools/validationError.ts.html +0 -127
- package/coverage/lcov-report/src/types.ts.html +0 -1201
- package/coverage/lcov-report/src/utils.ts.html +0 -706
- /package/.nyc_output/{16c9e62d-53da-4c19-ba42-9267b40f713d.json → 278104e6-6bb4-4dfb-94bf-3ef7f73e08b9.json} +0 -0
- /package/.nyc_output/{8b142617-6824-4c2c-9f37-25748820eb7c.json → 5210e060-a3b8-4e7f-9062-47807b58d0cd.json} +0 -0
|
@@ -1,982 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for src/keywordPreservation.ts</title>
|
|
7
|
-
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="../prettify.css" />
|
|
9
|
-
<link rel="stylesheet" href="../base.css" />
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
|
|
11
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
-
<style type='text/css'>
|
|
13
|
-
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(../sort-arrow-sprite.png);
|
|
15
|
-
}
|
|
16
|
-
</style>
|
|
17
|
-
</head>
|
|
18
|
-
|
|
19
|
-
<body>
|
|
20
|
-
<div class='wrapper'>
|
|
21
|
-
<div class='pad1'>
|
|
22
|
-
<h1><a href="../index.html">All files</a> / <a href="index.html">src</a> keywordPreservation.ts</h1>
|
|
23
|
-
<div class='clearfix'>
|
|
24
|
-
|
|
25
|
-
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">99.15% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>118/119</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">96.77% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>60/62</span>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">100% </span>
|
|
41
|
-
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>19/19</span>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">100% </span>
|
|
48
|
-
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>104/104</span>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
</div>
|
|
54
|
-
<p class="quiet">
|
|
55
|
-
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
-
</p>
|
|
57
|
-
<template id="filterTemplate">
|
|
58
|
-
<div class="quiet">
|
|
59
|
-
Filter:
|
|
60
|
-
<input oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
-
</div>
|
|
62
|
-
</template>
|
|
63
|
-
</div>
|
|
64
|
-
<div class='status-line high'></div>
|
|
65
|
-
<pre><table class="coverage">
|
|
66
|
-
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
-
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
-
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
-
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
-
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
-
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
-
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
-
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
-
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
-
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
-
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
-
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
-
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
-
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
-
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
-
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
-
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
-
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
-
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
-
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
-
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
-
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
-
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
-
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
-
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
-
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
-
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
-
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
-
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
-
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
-
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
-
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
-
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
-
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
-
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
-
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
-
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
-
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
-
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
-
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
-
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
-
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
-
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
-
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
-
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
-
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
-
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
-
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
-
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
-
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
-
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
-
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
-
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
-
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
-
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
-
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
-
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
-
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
-
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
-
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
-
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
-
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
-
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
-
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
-
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
-
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
-
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
-
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
-
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
-
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
-
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
-
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
-
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
-
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
-
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
-
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
-
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
-
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
-
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
-
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
-
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
-
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
-
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
-
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
-
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
-
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
-
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
-
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
-
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
-
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
-
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
-
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
-
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
-
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
-
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
-
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
-
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
-
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
-
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
-
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
-
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
-
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
-
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
-
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
-
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
-
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
-
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
-
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
-
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
-
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
-
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
-
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
-
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
-
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
-
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
-
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
-
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
-
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
-
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
-
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
-
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
-
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
-
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
-
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
-
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
-
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
-
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
-
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
-
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
-
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
-
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
-
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
-
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
-
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
-
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
-
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
-
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
-
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
-
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
-
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
-
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
-
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
-
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
-
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
-
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
-
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
-
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
-
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
-
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
-
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
-
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
-
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
-
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
-
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
-
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
-
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
-
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
-
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
-
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
-
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
-
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
-
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
-
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
-
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
-
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
-
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
-
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
-
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
-
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
-
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
-
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
-
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
-
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
-
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
-
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
-
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
-
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
-
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
-
<a name='L179'></a><a href='#L179'>179</a>
|
|
245
|
-
<a name='L180'></a><a href='#L180'>180</a>
|
|
246
|
-
<a name='L181'></a><a href='#L181'>181</a>
|
|
247
|
-
<a name='L182'></a><a href='#L182'>182</a>
|
|
248
|
-
<a name='L183'></a><a href='#L183'>183</a>
|
|
249
|
-
<a name='L184'></a><a href='#L184'>184</a>
|
|
250
|
-
<a name='L185'></a><a href='#L185'>185</a>
|
|
251
|
-
<a name='L186'></a><a href='#L186'>186</a>
|
|
252
|
-
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
|
-
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
|
-
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
|
-
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
|
-
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
-
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
-
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
-
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
-
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
-
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
-
<a name='L197'></a><a href='#L197'>197</a>
|
|
263
|
-
<a name='L198'></a><a href='#L198'>198</a>
|
|
264
|
-
<a name='L199'></a><a href='#L199'>199</a>
|
|
265
|
-
<a name='L200'></a><a href='#L200'>200</a>
|
|
266
|
-
<a name='L201'></a><a href='#L201'>201</a>
|
|
267
|
-
<a name='L202'></a><a href='#L202'>202</a>
|
|
268
|
-
<a name='L203'></a><a href='#L203'>203</a>
|
|
269
|
-
<a name='L204'></a><a href='#L204'>204</a>
|
|
270
|
-
<a name='L205'></a><a href='#L205'>205</a>
|
|
271
|
-
<a name='L206'></a><a href='#L206'>206</a>
|
|
272
|
-
<a name='L207'></a><a href='#L207'>207</a>
|
|
273
|
-
<a name='L208'></a><a href='#L208'>208</a>
|
|
274
|
-
<a name='L209'></a><a href='#L209'>209</a>
|
|
275
|
-
<a name='L210'></a><a href='#L210'>210</a>
|
|
276
|
-
<a name='L211'></a><a href='#L211'>211</a>
|
|
277
|
-
<a name='L212'></a><a href='#L212'>212</a>
|
|
278
|
-
<a name='L213'></a><a href='#L213'>213</a>
|
|
279
|
-
<a name='L214'></a><a href='#L214'>214</a>
|
|
280
|
-
<a name='L215'></a><a href='#L215'>215</a>
|
|
281
|
-
<a name='L216'></a><a href='#L216'>216</a>
|
|
282
|
-
<a name='L217'></a><a href='#L217'>217</a>
|
|
283
|
-
<a name='L218'></a><a href='#L218'>218</a>
|
|
284
|
-
<a name='L219'></a><a href='#L219'>219</a>
|
|
285
|
-
<a name='L220'></a><a href='#L220'>220</a>
|
|
286
|
-
<a name='L221'></a><a href='#L221'>221</a>
|
|
287
|
-
<a name='L222'></a><a href='#L222'>222</a>
|
|
288
|
-
<a name='L223'></a><a href='#L223'>223</a>
|
|
289
|
-
<a name='L224'></a><a href='#L224'>224</a>
|
|
290
|
-
<a name='L225'></a><a href='#L225'>225</a>
|
|
291
|
-
<a name='L226'></a><a href='#L226'>226</a>
|
|
292
|
-
<a name='L227'></a><a href='#L227'>227</a>
|
|
293
|
-
<a name='L228'></a><a href='#L228'>228</a>
|
|
294
|
-
<a name='L229'></a><a href='#L229'>229</a>
|
|
295
|
-
<a name='L230'></a><a href='#L230'>230</a>
|
|
296
|
-
<a name='L231'></a><a href='#L231'>231</a>
|
|
297
|
-
<a name='L232'></a><a href='#L232'>232</a>
|
|
298
|
-
<a name='L233'></a><a href='#L233'>233</a>
|
|
299
|
-
<a name='L234'></a><a href='#L234'>234</a>
|
|
300
|
-
<a name='L235'></a><a href='#L235'>235</a>
|
|
301
|
-
<a name='L236'></a><a href='#L236'>236</a>
|
|
302
|
-
<a name='L237'></a><a href='#L237'>237</a>
|
|
303
|
-
<a name='L238'></a><a href='#L238'>238</a>
|
|
304
|
-
<a name='L239'></a><a href='#L239'>239</a>
|
|
305
|
-
<a name='L240'></a><a href='#L240'>240</a>
|
|
306
|
-
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
|
-
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
|
-
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
-
<a name='L244'></a><a href='#L244'>244</a>
|
|
310
|
-
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
|
-
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
|
-
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
-
<a name='L248'></a><a href='#L248'>248</a>
|
|
314
|
-
<a name='L249'></a><a href='#L249'>249</a>
|
|
315
|
-
<a name='L250'></a><a href='#L250'>250</a>
|
|
316
|
-
<a name='L251'></a><a href='#L251'>251</a>
|
|
317
|
-
<a name='L252'></a><a href='#L252'>252</a>
|
|
318
|
-
<a name='L253'></a><a href='#L253'>253</a>
|
|
319
|
-
<a name='L254'></a><a href='#L254'>254</a>
|
|
320
|
-
<a name='L255'></a><a href='#L255'>255</a>
|
|
321
|
-
<a name='L256'></a><a href='#L256'>256</a>
|
|
322
|
-
<a name='L257'></a><a href='#L257'>257</a>
|
|
323
|
-
<a name='L258'></a><a href='#L258'>258</a>
|
|
324
|
-
<a name='L259'></a><a href='#L259'>259</a>
|
|
325
|
-
<a name='L260'></a><a href='#L260'>260</a>
|
|
326
|
-
<a name='L261'></a><a href='#L261'>261</a>
|
|
327
|
-
<a name='L262'></a><a href='#L262'>262</a>
|
|
328
|
-
<a name='L263'></a><a href='#L263'>263</a>
|
|
329
|
-
<a name='L264'></a><a href='#L264'>264</a>
|
|
330
|
-
<a name='L265'></a><a href='#L265'>265</a>
|
|
331
|
-
<a name='L266'></a><a href='#L266'>266</a>
|
|
332
|
-
<a name='L267'></a><a href='#L267'>267</a>
|
|
333
|
-
<a name='L268'></a><a href='#L268'>268</a>
|
|
334
|
-
<a name='L269'></a><a href='#L269'>269</a>
|
|
335
|
-
<a name='L270'></a><a href='#L270'>270</a>
|
|
336
|
-
<a name='L271'></a><a href='#L271'>271</a>
|
|
337
|
-
<a name='L272'></a><a href='#L272'>272</a>
|
|
338
|
-
<a name='L273'></a><a href='#L273'>273</a>
|
|
339
|
-
<a name='L274'></a><a href='#L274'>274</a>
|
|
340
|
-
<a name='L275'></a><a href='#L275'>275</a>
|
|
341
|
-
<a name='L276'></a><a href='#L276'>276</a>
|
|
342
|
-
<a name='L277'></a><a href='#L277'>277</a>
|
|
343
|
-
<a name='L278'></a><a href='#L278'>278</a>
|
|
344
|
-
<a name='L279'></a><a href='#L279'>279</a>
|
|
345
|
-
<a name='L280'></a><a href='#L280'>280</a>
|
|
346
|
-
<a name='L281'></a><a href='#L281'>281</a>
|
|
347
|
-
<a name='L282'></a><a href='#L282'>282</a>
|
|
348
|
-
<a name='L283'></a><a href='#L283'>283</a>
|
|
349
|
-
<a name='L284'></a><a href='#L284'>284</a>
|
|
350
|
-
<a name='L285'></a><a href='#L285'>285</a>
|
|
351
|
-
<a name='L286'></a><a href='#L286'>286</a>
|
|
352
|
-
<a name='L287'></a><a href='#L287'>287</a>
|
|
353
|
-
<a name='L288'></a><a href='#L288'>288</a>
|
|
354
|
-
<a name='L289'></a><a href='#L289'>289</a>
|
|
355
|
-
<a name='L290'></a><a href='#L290'>290</a>
|
|
356
|
-
<a name='L291'></a><a href='#L291'>291</a>
|
|
357
|
-
<a name='L292'></a><a href='#L292'>292</a>
|
|
358
|
-
<a name='L293'></a><a href='#L293'>293</a>
|
|
359
|
-
<a name='L294'></a><a href='#L294'>294</a>
|
|
360
|
-
<a name='L295'></a><a href='#L295'>295</a>
|
|
361
|
-
<a name='L296'></a><a href='#L296'>296</a>
|
|
362
|
-
<a name='L297'></a><a href='#L297'>297</a>
|
|
363
|
-
<a name='L298'></a><a href='#L298'>298</a>
|
|
364
|
-
<a name='L299'></a><a href='#L299'>299</a>
|
|
365
|
-
<a name='L300'></a><a href='#L300'>300</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
366
|
-
<span class="cline-any cline-yes">1x</span>
|
|
367
|
-
<span class="cline-any cline-neutral"> </span>
|
|
368
|
-
<span class="cline-any cline-yes">1x</span>
|
|
369
|
-
<span class="cline-any cline-yes">1x</span>
|
|
370
|
-
<span class="cline-any cline-neutral"> </span>
|
|
371
|
-
<span class="cline-any cline-neutral"> </span>
|
|
372
|
-
<span class="cline-any cline-neutral"> </span>
|
|
373
|
-
<span class="cline-any cline-neutral"> </span>
|
|
374
|
-
<span class="cline-any cline-neutral"> </span>
|
|
375
|
-
<span class="cline-any cline-neutral"> </span>
|
|
376
|
-
<span class="cline-any cline-neutral"> </span>
|
|
377
|
-
<span class="cline-any cline-yes">1x</span>
|
|
378
|
-
<span class="cline-any cline-neutral"> </span>
|
|
379
|
-
<span class="cline-any cline-neutral"> </span>
|
|
380
|
-
<span class="cline-any cline-neutral"> </span>
|
|
381
|
-
<span class="cline-any cline-yes">123x</span>
|
|
382
|
-
<span class="cline-any cline-yes">315x</span>
|
|
383
|
-
<span class="cline-any cline-yes">315x</span>
|
|
384
|
-
<span class="cline-any cline-neutral"> </span>
|
|
385
|
-
<span class="cline-any cline-yes">315x</span>
|
|
386
|
-
<span class="cline-any cline-neutral"> </span>
|
|
387
|
-
<span class="cline-any cline-neutral"> </span>
|
|
388
|
-
<span class="cline-any cline-neutral"> </span>
|
|
389
|
-
<span class="cline-any cline-yes">1x</span>
|
|
390
|
-
<span class="cline-any cline-neutral"> </span>
|
|
391
|
-
<span class="cline-any cline-neutral"> </span>
|
|
392
|
-
<span class="cline-any cline-neutral"> </span>
|
|
393
|
-
<span class="cline-any cline-neutral"> </span>
|
|
394
|
-
<span class="cline-any cline-neutral"> </span>
|
|
395
|
-
<span class="cline-any cline-yes">157x</span>
|
|
396
|
-
<span class="cline-any cline-yes">79x</span>
|
|
397
|
-
<span class="cline-any cline-yes">42x</span>
|
|
398
|
-
<span class="cline-any cline-neutral"> </span>
|
|
399
|
-
<span class="cline-any cline-yes">37x</span>
|
|
400
|
-
<span class="cline-any cline-neutral"> </span>
|
|
401
|
-
<span class="cline-any cline-neutral"> </span>
|
|
402
|
-
<span class="cline-any cline-yes">78x</span>
|
|
403
|
-
<span class="cline-any cline-neutral"> </span>
|
|
404
|
-
<span class="cline-any cline-yes">78x</span>
|
|
405
|
-
<span class="cline-any cline-yes">29x</span>
|
|
406
|
-
<span class="cline-any cline-neutral"> </span>
|
|
407
|
-
<span class="cline-any cline-yes">32x</span>
|
|
408
|
-
<span class="cline-any cline-yes">32x</span>
|
|
409
|
-
<span class="cline-any cline-neutral"> </span>
|
|
410
|
-
<span class="cline-any cline-yes">32x</span>
|
|
411
|
-
<span class="cline-any cline-yes">25x</span>
|
|
412
|
-
<span class="cline-any cline-neutral"> </span>
|
|
413
|
-
<span class="cline-any cline-neutral"> </span>
|
|
414
|
-
<span class="cline-any cline-yes">7x</span>
|
|
415
|
-
<span class="cline-any cline-yes">5x</span>
|
|
416
|
-
<span class="cline-any cline-neutral"> </span>
|
|
417
|
-
<span class="cline-any cline-neutral"> </span>
|
|
418
|
-
<span class="cline-any cline-yes">2x</span>
|
|
419
|
-
<span class="cline-any cline-neutral"> </span>
|
|
420
|
-
<span class="cline-any cline-neutral"> </span>
|
|
421
|
-
<span class="cline-any cline-yes">32x</span>
|
|
422
|
-
<span class="cline-any cline-neutral"> </span>
|
|
423
|
-
<span class="cline-any cline-yes">53x</span>
|
|
424
|
-
<span class="cline-any cline-yes">53x</span>
|
|
425
|
-
<span class="cline-any cline-neutral"> </span>
|
|
426
|
-
<span class="cline-any cline-yes">53x</span>
|
|
427
|
-
<span class="cline-any cline-yes">53x</span>
|
|
428
|
-
<span class="cline-any cline-neutral"> </span>
|
|
429
|
-
<span class="cline-any cline-yes">33x</span>
|
|
430
|
-
<span class="cline-any cline-yes">27x</span>
|
|
431
|
-
<span class="cline-any cline-neutral"> </span>
|
|
432
|
-
<span class="cline-any cline-neutral"> </span>
|
|
433
|
-
<span class="cline-any cline-yes">6x</span>
|
|
434
|
-
<span class="cline-any cline-neutral"> </span>
|
|
435
|
-
<span class="cline-any cline-neutral"> </span>
|
|
436
|
-
<span class="cline-any cline-neutral"> </span>
|
|
437
|
-
<span class="cline-any cline-neutral"> </span>
|
|
438
|
-
<span class="cline-any cline-yes">32x</span>
|
|
439
|
-
<span class="cline-any cline-yes">5x</span>
|
|
440
|
-
<span class="cline-any cline-neutral"> </span>
|
|
441
|
-
<span class="cline-any cline-neutral"> </span>
|
|
442
|
-
<span class="cline-any cline-yes">27x</span>
|
|
443
|
-
<span class="cline-any cline-neutral"> </span>
|
|
444
|
-
<span class="cline-any cline-neutral"> </span>
|
|
445
|
-
<span class="cline-any cline-neutral"> </span>
|
|
446
|
-
<span class="cline-any cline-neutral"> </span>
|
|
447
|
-
<span class="cline-any cline-neutral"> </span>
|
|
448
|
-
<span class="cline-any cline-neutral"> </span>
|
|
449
|
-
<span class="cline-any cline-neutral"> </span>
|
|
450
|
-
<span class="cline-any cline-neutral"> </span>
|
|
451
|
-
<span class="cline-any cline-yes">49x</span>
|
|
452
|
-
<span class="cline-any cline-yes">46x</span>
|
|
453
|
-
<span class="cline-any cline-neutral"> </span>
|
|
454
|
-
<span class="cline-any cline-yes">152x</span>
|
|
455
|
-
<span class="cline-any cline-neutral"> </span>
|
|
456
|
-
<span class="cline-any cline-yes">152x</span>
|
|
457
|
-
<span class="cline-any cline-neutral"> </span>
|
|
458
|
-
<span class="cline-any cline-yes">121x</span>
|
|
459
|
-
<span class="cline-any cline-neutral"> </span>
|
|
460
|
-
<span class="cline-any cline-neutral"> </span>
|
|
461
|
-
<span class="cline-any cline-neutral"> </span>
|
|
462
|
-
<span class="cline-any cline-neutral"> </span>
|
|
463
|
-
<span class="cline-any cline-neutral"> </span>
|
|
464
|
-
<span class="cline-any cline-neutral"> </span>
|
|
465
|
-
<span class="cline-any cline-neutral"> </span>
|
|
466
|
-
<span class="cline-any cline-neutral"> </span>
|
|
467
|
-
<span class="cline-any cline-yes">3x</span>
|
|
468
|
-
<span class="cline-any cline-neutral"> </span>
|
|
469
|
-
<span class="cline-any cline-neutral"> </span>
|
|
470
|
-
<span class="cline-any cline-neutral"> </span>
|
|
471
|
-
<span class="cline-any cline-neutral"> </span>
|
|
472
|
-
<span class="cline-any cline-neutral"> </span>
|
|
473
|
-
<span class="cline-any cline-neutral"> </span>
|
|
474
|
-
<span class="cline-any cline-neutral"> </span>
|
|
475
|
-
<span class="cline-any cline-neutral"> </span>
|
|
476
|
-
<span class="cline-any cline-yes">1x</span>
|
|
477
|
-
<span class="cline-any cline-neutral"> </span>
|
|
478
|
-
<span class="cline-any cline-neutral"> </span>
|
|
479
|
-
<span class="cline-any cline-neutral"> </span>
|
|
480
|
-
<span class="cline-any cline-yes">256x</span>
|
|
481
|
-
<span class="cline-any cline-yes">256x</span>
|
|
482
|
-
<span class="cline-any cline-yes">87x</span>
|
|
483
|
-
<span class="cline-any cline-neutral"> </span>
|
|
484
|
-
<span class="cline-any cline-neutral"> </span>
|
|
485
|
-
<span class="cline-any cline-neutral"> </span>
|
|
486
|
-
<span class="cline-any cline-neutral"> </span>
|
|
487
|
-
<span class="cline-any cline-yes">169x</span>
|
|
488
|
-
<span class="cline-any cline-neutral"> </span>
|
|
489
|
-
<span class="cline-any cline-neutral"> </span>
|
|
490
|
-
<span class="cline-any cline-neutral"> </span>
|
|
491
|
-
<span class="cline-any cline-yes">169x</span>
|
|
492
|
-
<span class="cline-any cline-yes">83x</span>
|
|
493
|
-
<span class="cline-any cline-neutral"> </span>
|
|
494
|
-
<span class="cline-any cline-yes">68x</span>
|
|
495
|
-
<span class="cline-any cline-yes">87x</span>
|
|
496
|
-
<span class="cline-any cline-neutral"> </span>
|
|
497
|
-
<span class="cline-any cline-yes">87x</span>
|
|
498
|
-
<span class="cline-any cline-yes">107x</span>
|
|
499
|
-
<span class="cline-any cline-yes">107x</span>
|
|
500
|
-
<span class="cline-any cline-neutral"> </span>
|
|
501
|
-
<span class="cline-any cline-yes">107x</span>
|
|
502
|
-
<span class="cline-any cline-neutral"> </span>
|
|
503
|
-
<span class="cline-any cline-neutral"> </span>
|
|
504
|
-
<span class="cline-any cline-neutral"> </span>
|
|
505
|
-
<span class="cline-any cline-yes">68x</span>
|
|
506
|
-
<span class="cline-any cline-neutral"> </span>
|
|
507
|
-
<span class="cline-any cline-neutral"> </span>
|
|
508
|
-
<span class="cline-any cline-yes">86x</span>
|
|
509
|
-
<span class="cline-any cline-neutral"> </span>
|
|
510
|
-
<span class="cline-any cline-neutral"> </span>
|
|
511
|
-
<span class="cline-any cline-neutral"> </span>
|
|
512
|
-
<span class="cline-any cline-neutral"> </span>
|
|
513
|
-
<span class="cline-any cline-neutral"> </span>
|
|
514
|
-
<span class="cline-any cline-neutral"> </span>
|
|
515
|
-
<span class="cline-any cline-neutral"> </span>
|
|
516
|
-
<span class="cline-any cline-neutral"> </span>
|
|
517
|
-
<span class="cline-any cline-neutral"> </span>
|
|
518
|
-
<span class="cline-any cline-yes">1x</span>
|
|
519
|
-
<span class="cline-any cline-neutral"> </span>
|
|
520
|
-
<span class="cline-any cline-neutral"> </span>
|
|
521
|
-
<span class="cline-any cline-neutral"> </span>
|
|
522
|
-
<span class="cline-any cline-neutral"> </span>
|
|
523
|
-
<span class="cline-any cline-yes">245x</span>
|
|
524
|
-
<span class="cline-any cline-neutral"> </span>
|
|
525
|
-
<span class="cline-any cline-yes">243x</span>
|
|
526
|
-
<span class="cline-any cline-neutral"> </span>
|
|
527
|
-
<span class="cline-any cline-yes">243x</span>
|
|
528
|
-
<span class="cline-any cline-neutral"> </span>
|
|
529
|
-
<span class="cline-any cline-yes">195x</span>
|
|
530
|
-
<span class="cline-any cline-yes">63x</span>
|
|
531
|
-
<span class="cline-any cline-neutral"> </span>
|
|
532
|
-
<span class="cline-any cline-yes">63x</span>
|
|
533
|
-
<span class="cline-any cline-neutral"> </span>
|
|
534
|
-
<span class="cline-any cline-yes">63x</span>
|
|
535
|
-
<span class="cline-any cline-yes">83x</span>
|
|
536
|
-
<span class="cline-any cline-neutral"> </span>
|
|
537
|
-
<span class="cline-any cline-yes">93x</span>
|
|
538
|
-
<span class="cline-any cline-yes">93x</span>
|
|
539
|
-
<span class="cline-any cline-neutral"> </span>
|
|
540
|
-
<span class="cline-any cline-yes">93x</span>
|
|
541
|
-
<span class="cline-any cline-neutral"> </span>
|
|
542
|
-
<span class="cline-any cline-neutral"> </span>
|
|
543
|
-
<span class="cline-any cline-yes">35x</span>
|
|
544
|
-
<span class="cline-any cline-neutral"> </span>
|
|
545
|
-
<span class="cline-any cline-neutral"> </span>
|
|
546
|
-
<span class="cline-any cline-neutral"> </span>
|
|
547
|
-
<span class="cline-any cline-yes">63x</span>
|
|
548
|
-
<span class="cline-any cline-neutral"> </span>
|
|
549
|
-
<span class="cline-any cline-yes">35x</span>
|
|
550
|
-
<span class="cline-any cline-neutral"> </span>
|
|
551
|
-
<span class="cline-any cline-neutral"> </span>
|
|
552
|
-
<span class="cline-any cline-neutral"> </span>
|
|
553
|
-
<span class="cline-any cline-neutral"> </span>
|
|
554
|
-
<span class="cline-any cline-neutral"> </span>
|
|
555
|
-
<span class="cline-any cline-neutral"> </span>
|
|
556
|
-
<span class="cline-any cline-yes">132x</span>
|
|
557
|
-
<span class="cline-any cline-neutral"> </span>
|
|
558
|
-
<span class="cline-any cline-neutral"> </span>
|
|
559
|
-
<span class="cline-any cline-neutral"> </span>
|
|
560
|
-
<span class="cline-any cline-neutral"> </span>
|
|
561
|
-
<span class="cline-any cline-neutral"> </span>
|
|
562
|
-
<span class="cline-any cline-neutral"> </span>
|
|
563
|
-
<span class="cline-any cline-yes">1x</span>
|
|
564
|
-
<span class="cline-any cline-neutral"> </span>
|
|
565
|
-
<span class="cline-any cline-neutral"> </span>
|
|
566
|
-
<span class="cline-any cline-neutral"> </span>
|
|
567
|
-
<span class="cline-any cline-neutral"> </span>
|
|
568
|
-
<span class="cline-any cline-yes">74x</span>
|
|
569
|
-
<span class="cline-any cline-neutral"> </span>
|
|
570
|
-
<span class="cline-any cline-yes">74x</span>
|
|
571
|
-
<span class="cline-any cline-neutral"> </span>
|
|
572
|
-
<span class="cline-any cline-yes">45x</span>
|
|
573
|
-
<span class="cline-any cline-neutral"> </span>
|
|
574
|
-
<span class="cline-any cline-yes">45x</span>
|
|
575
|
-
<span class="cline-any cline-yes">1x</span>
|
|
576
|
-
<span class="cline-any cline-neutral"> </span>
|
|
577
|
-
<span class="cline-any cline-neutral"> </span>
|
|
578
|
-
<span class="cline-any cline-yes">44x</span>
|
|
579
|
-
<span class="cline-any cline-yes">44x</span>
|
|
580
|
-
<span class="cline-any cline-neutral"> </span>
|
|
581
|
-
<span class="cline-any cline-neutral"> </span>
|
|
582
|
-
<span class="cline-any cline-neutral"> </span>
|
|
583
|
-
<span class="cline-any cline-neutral"> </span>
|
|
584
|
-
<span class="cline-any cline-neutral"> </span>
|
|
585
|
-
<span class="cline-any cline-yes">1x</span>
|
|
586
|
-
<span class="cline-any cline-neutral"> </span>
|
|
587
|
-
<span class="cline-any cline-neutral"> </span>
|
|
588
|
-
<span class="cline-any cline-neutral"> </span>
|
|
589
|
-
<span class="cline-any cline-neutral"> </span>
|
|
590
|
-
<span class="cline-any cline-neutral"> </span>
|
|
591
|
-
<span class="cline-any cline-neutral"> </span>
|
|
592
|
-
<span class="cline-any cline-neutral"> </span>
|
|
593
|
-
<span class="cline-any cline-neutral"> </span>
|
|
594
|
-
<span class="cline-any cline-neutral"> </span>
|
|
595
|
-
<span class="cline-any cline-neutral"> </span>
|
|
596
|
-
<span class="cline-any cline-neutral"> </span>
|
|
597
|
-
<span class="cline-any cline-neutral"> </span>
|
|
598
|
-
<span class="cline-any cline-yes">9x</span>
|
|
599
|
-
<span class="cline-any cline-neutral"> </span>
|
|
600
|
-
<span class="cline-any cline-yes">8x</span>
|
|
601
|
-
<span class="cline-any cline-neutral"> </span>
|
|
602
|
-
<span class="cline-any cline-yes">25x</span>
|
|
603
|
-
<span class="cline-any cline-yes">25x</span>
|
|
604
|
-
<span class="cline-any cline-neutral"> </span>
|
|
605
|
-
<span class="cline-any cline-neutral"> </span>
|
|
606
|
-
<span class="cline-any cline-neutral"> </span>
|
|
607
|
-
<span class="cline-any cline-neutral"> </span>
|
|
608
|
-
<span class="cline-any cline-yes">8x</span>
|
|
609
|
-
<span class="cline-any cline-neutral"> </span>
|
|
610
|
-
<span class="cline-any cline-neutral"> </span>
|
|
611
|
-
<span class="cline-any cline-neutral"> </span>
|
|
612
|
-
<span class="cline-any cline-neutral"> </span>
|
|
613
|
-
<span class="cline-any cline-neutral"> </span>
|
|
614
|
-
<span class="cline-any cline-neutral"> </span>
|
|
615
|
-
<span class="cline-any cline-yes">8x</span>
|
|
616
|
-
<span class="cline-any cline-neutral"> </span>
|
|
617
|
-
<span class="cline-any cline-yes">8x</span>
|
|
618
|
-
<span class="cline-any cline-yes">34x</span>
|
|
619
|
-
<span class="cline-any cline-neutral"> </span>
|
|
620
|
-
<span class="cline-any cline-yes">34x</span>
|
|
621
|
-
<span class="cline-any cline-yes">34x</span>
|
|
622
|
-
<span class="cline-any cline-yes">34x</span>
|
|
623
|
-
<span class="cline-any cline-yes">17x</span>
|
|
624
|
-
<span class="cline-any cline-neutral"> </span>
|
|
625
|
-
<span class="cline-any cline-yes">17x</span>
|
|
626
|
-
<span class="cline-any cline-neutral"> </span>
|
|
627
|
-
<span class="cline-any cline-yes">34x</span>
|
|
628
|
-
<span class="cline-any cline-neutral"> </span>
|
|
629
|
-
<span class="cline-any cline-yes">34x</span>
|
|
630
|
-
<span class="cline-any cline-neutral"> </span>
|
|
631
|
-
<span class="cline-any cline-yes">34x</span>
|
|
632
|
-
<span class="cline-any cline-yes">34x</span>
|
|
633
|
-
<span class="cline-any cline-yes">22x</span>
|
|
634
|
-
<span class="cline-any cline-neutral"> </span>
|
|
635
|
-
<span class="cline-any cline-neutral"> </span>
|
|
636
|
-
<span class="cline-any cline-neutral"> </span>
|
|
637
|
-
<span class="cline-any cline-neutral"> </span>
|
|
638
|
-
<span class="cline-any cline-yes">34x</span>
|
|
639
|
-
<span class="cline-any cline-yes">14x</span>
|
|
640
|
-
<span class="cline-any cline-neutral"> </span>
|
|
641
|
-
<span class="cline-any cline-neutral"> </span>
|
|
642
|
-
<span class="cline-any cline-neutral"> </span>
|
|
643
|
-
<span class="cline-any cline-neutral"> </span>
|
|
644
|
-
<span class="cline-any cline-neutral"> </span>
|
|
645
|
-
<span class="cline-any cline-neutral"> </span>
|
|
646
|
-
<span class="cline-any cline-neutral"> </span>
|
|
647
|
-
<span class="cline-any cline-neutral"> </span>
|
|
648
|
-
<span class="cline-any cline-neutral"> </span>
|
|
649
|
-
<span class="cline-any cline-neutral"> </span>
|
|
650
|
-
<span class="cline-any cline-yes">34x</span>
|
|
651
|
-
<span class="cline-any cline-neutral"> </span>
|
|
652
|
-
<span class="cline-any cline-neutral"> </span>
|
|
653
|
-
<span class="cline-any cline-neutral"> </span>
|
|
654
|
-
<span class="cline-any cline-neutral"> </span>
|
|
655
|
-
<span class="cline-any cline-yes">34x</span>
|
|
656
|
-
<span class="cline-any cline-neutral"> </span>
|
|
657
|
-
<span class="cline-any cline-neutral"> </span>
|
|
658
|
-
<span class="cline-any cline-neutral"> </span>
|
|
659
|
-
<span class="cline-any cline-neutral"> </span>
|
|
660
|
-
<span class="cline-any cline-neutral"> </span>
|
|
661
|
-
<span class="cline-any cline-neutral"> </span>
|
|
662
|
-
<span class="cline-any cline-yes">8x</span>
|
|
663
|
-
<span class="cline-any cline-neutral"> </span>
|
|
664
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { get as getByDotNotation, set as setByDotNotation } from 'dot-prop';
|
|
665
|
-
import { keywordReplace } from './tools/utils';
|
|
666
|
-
import { AssetTypes, KeywordMappings } from './types';
|
|
667
|
-
import { keywordReplaceArrayRegExp, keywordReplaceStringRegExp } from './tools/utils';
|
|
668
|
-
import { cloneDeep, forEach, isArray } from 'lodash';
|
|
669
|
-
import APIHandler from './tools/auth0/handlers/default';
|
|
670
|
-
|
|
671
|
-
/*
|
|
672
|
-
RFC for Keyword Preservation: https://github.com/auth0/auth0-deploy-cli/issues/688
|
|
673
|
-
Original Github Issue: https://github.com/auth0/auth0-deploy-cli/issues/328
|
|
674
|
-
*/
|
|
675
|
-
|
|
676
|
-
export const doesHaveKeywordMarker = (
|
|
677
|
-
string: string,
|
|
678
|
-
keywordMappings: KeywordMappings
|
|
679
|
-
): boolean => {
|
|
680
|
-
return !Object.keys(keywordMappings).every((keyword) => {
|
|
681
|
-
const hasArrayMarker = keywordReplaceArrayRegExp(keyword).test(string);
|
|
682
|
-
const hasStringMarker = keywordReplaceStringRegExp(keyword).test(string);
|
|
683
|
-
|
|
684
|
-
return !hasArrayMarker && !hasStringMarker;
|
|
685
|
-
});
|
|
686
|
-
};
|
|
687
|
-
|
|
688
|
-
export const getPreservableFieldsFromAssets = (
|
|
689
|
-
asset: object,
|
|
690
|
-
keywordMappings: KeywordMappings,
|
|
691
|
-
resourceSpecificIdentifiers: Partial<Record<AssetTypes, string | string[]>>,
|
|
692
|
-
address = ''
|
|
693
|
-
): string[] => {
|
|
694
|
-
if (typeof asset === 'string') {
|
|
695
|
-
if (doesHaveKeywordMarker(asset, keywordMappings)) {
|
|
696
|
-
return [address];
|
|
697
|
-
}
|
|
698
|
-
return [];
|
|
699
|
-
}
|
|
700
|
-
|
|
701
|
-
const shouldRenderDot = address !== '';
|
|
702
|
-
|
|
703
|
-
if (Array.isArray(asset)) {
|
|
704
|
-
return asset
|
|
705
|
-
.map((arrayItem) => {
|
|
706
|
-
const resourceIdentifiers: string[] = (() => {
|
|
707
|
-
const identifierOrIdentifiers = resourceSpecificIdentifiers[address as AssetTypes];
|
|
708
|
-
|
|
709
|
-
if (Array.isArray(identifierOrIdentifiers)) {
|
|
710
|
-
return identifierOrIdentifiers;
|
|
711
|
-
}
|
|
712
|
-
|
|
713
|
-
if (identifierOrIdentifiers === undefined) {
|
|
714
|
-
return [];
|
|
715
|
-
}
|
|
716
|
-
|
|
717
|
-
return [identifierOrIdentifiers];
|
|
718
|
-
})();
|
|
719
|
-
|
|
720
|
-
const specificAddress = resourceIdentifiers.reduce(
|
|
721
|
-
(aggregateAddress, resourceIdentifier) => {
|
|
722
|
-
resourceSpecificIdentifiers[address];
|
|
723
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (resourceIdentifier === undefined) <span class="cstat-no" title="statement not covered" >return ''; </span>// See if this specific resource type has an identifier
|
|
724
|
-
|
|
725
|
-
const identifierFieldValue = arrayItem[resourceIdentifier];
|
|
726
|
-
if (identifierFieldValue === undefined) return ''; // See if this specific array item possess the resource-specific identifier
|
|
727
|
-
|
|
728
|
-
if (aggregateAddress === '') {
|
|
729
|
-
return `${resourceIdentifier}=${identifierFieldValue}`;
|
|
730
|
-
}
|
|
731
|
-
|
|
732
|
-
return `${aggregateAddress}||${resourceIdentifier}=${identifierFieldValue}`;
|
|
733
|
-
},
|
|
734
|
-
''
|
|
735
|
-
);
|
|
736
|
-
|
|
737
|
-
if (specificAddress.length === 0) {
|
|
738
|
-
return [];
|
|
739
|
-
}
|
|
740
|
-
|
|
741
|
-
return getPreservableFieldsFromAssets(
|
|
742
|
-
arrayItem,
|
|
743
|
-
keywordMappings,
|
|
744
|
-
resourceSpecificIdentifiers,
|
|
745
|
-
`${address}${shouldRenderDot ? '.' : <span class="branch-1 cbranch-no" title="branch not covered" >''}</span>[${specificAddress}]`
|
|
746
|
-
);
|
|
747
|
-
})
|
|
748
|
-
.flat();
|
|
749
|
-
}
|
|
750
|
-
if (typeof asset === 'object') {
|
|
751
|
-
return Object.keys(asset)
|
|
752
|
-
.map((key: string): string[] => {
|
|
753
|
-
const value = asset[key];
|
|
754
|
-
|
|
755
|
-
if (value === undefined || value === null) return [];
|
|
756
|
-
|
|
757
|
-
return getPreservableFieldsFromAssets(
|
|
758
|
-
value,
|
|
759
|
-
keywordMappings,
|
|
760
|
-
resourceSpecificIdentifiers,
|
|
761
|
-
`${address}${shouldRenderDot ? '.' : ''}${key}`
|
|
762
|
-
);
|
|
763
|
-
})
|
|
764
|
-
.flat();
|
|
765
|
-
}
|
|
766
|
-
return [];
|
|
767
|
-
};
|
|
768
|
-
|
|
769
|
-
// getAssetsValueByAddress returns a value for an arbitrary data structure when
|
|
770
|
-
// provided an "address" of that value. This address is similar to JS object notation
|
|
771
|
-
// with the exception of identifying array items by a unique property instead of order.
|
|
772
|
-
// Example:
|
|
773
|
-
// Object: `{ actions: [ { name: "action-1", code: "..."}] }`
|
|
774
|
-
// Address: `.actions[name=action-1].code`
|
|
775
|
-
export const getAssetsValueByAddress = (address: string, assets: any): any => {
|
|
776
|
-
//Look ahead and see if the address path only contains dots (ex: `tenant.friendly_name`)
|
|
777
|
-
//if so the address is trivial and can use the dot-prop package to return the value
|
|
778
|
-
|
|
779
|
-
const isTrivialAddress = address.indexOf('[') === -1;
|
|
780
|
-
if (isTrivialAddress) {
|
|
781
|
-
return getByDotNotation(assets, address);
|
|
782
|
-
}
|
|
783
|
-
|
|
784
|
-
// It is easier to handle an address piece-by-piece by
|
|
785
|
-
// splitting on the period into separate "directions"
|
|
786
|
-
const directions = address.split(/\.(?![^\[]*\])/g);
|
|
787
|
-
|
|
788
|
-
// If the the next directions are the proprietary array syntax (ex: `[name=foo]`)
|
|
789
|
-
// then perform lookup against unique array-item property
|
|
790
|
-
if (directions[0].charAt(0) === '[') {
|
|
791
|
-
if (!isArray(assets)) return undefined;
|
|
792
|
-
|
|
793
|
-
const target = assets.find((item: any) => {
|
|
794
|
-
const parts = directions[0].substring(1).slice(0, -1).split('||');
|
|
795
|
-
|
|
796
|
-
return parts.every((part) => {
|
|
797
|
-
const identifier = part.split('=')[0];
|
|
798
|
-
const identifierValue = part.split('=')[1];
|
|
799
|
-
|
|
800
|
-
return item[identifier] === identifierValue;
|
|
801
|
-
});
|
|
802
|
-
});
|
|
803
|
-
|
|
804
|
-
return getAssetsValueByAddress(directions.slice(1).join('.'), target);
|
|
805
|
-
}
|
|
806
|
-
|
|
807
|
-
return getAssetsValueByAddress(
|
|
808
|
-
directions.slice(1).join('.'),
|
|
809
|
-
getByDotNotation(assets, directions[0])
|
|
810
|
-
);
|
|
811
|
-
};
|
|
812
|
-
|
|
813
|
-
// convertAddressToDotNotation will convert the proprietary address into conventional
|
|
814
|
-
// JS object notation. Performing this conversion simplifies the process
|
|
815
|
-
// of updating a specific property for a given asset tree using the dot-prop library
|
|
816
|
-
// returns null if address value does not exist in asset tree
|
|
817
|
-
export const convertAddressToDotNotation = (
|
|
818
|
-
assets: any,
|
|
819
|
-
address: string,
|
|
820
|
-
finalAddressTrail = ''
|
|
821
|
-
): string | null => {
|
|
822
|
-
if (assets === null) return null; //Asset does not exist on remote
|
|
823
|
-
|
|
824
|
-
const directions = address.split(/\.(?![^\[]*\])/g);
|
|
825
|
-
|
|
826
|
-
if (directions[0] === '') return finalAddressTrail;
|
|
827
|
-
|
|
828
|
-
if (directions[0].charAt(0) === '[') {
|
|
829
|
-
const identifiers = directions[0].substring(1).slice(0, -1).split('||');
|
|
830
|
-
|
|
831
|
-
let targetIndex = -1;
|
|
832
|
-
|
|
833
|
-
assets.forEach((item: any, index: number) => {
|
|
834
|
-
if (
|
|
835
|
-
identifiers.every((part) => {
|
|
836
|
-
const identifier = part.split('=')[0];
|
|
837
|
-
const identifierValue = part.split('=')[1];
|
|
838
|
-
|
|
839
|
-
return item[identifier] === identifierValue;
|
|
840
|
-
})
|
|
841
|
-
) {
|
|
842
|
-
targetIndex = index;
|
|
843
|
-
}
|
|
844
|
-
});
|
|
845
|
-
|
|
846
|
-
if (targetIndex === -1) return null; // No object of this address exists in the assets
|
|
847
|
-
|
|
848
|
-
return convertAddressToDotNotation(
|
|
849
|
-
assets[targetIndex],
|
|
850
|
-
directions.slice(1).join('.'),
|
|
851
|
-
`${finalAddressTrail}.${targetIndex}`
|
|
852
|
-
);
|
|
853
|
-
}
|
|
854
|
-
|
|
855
|
-
return convertAddressToDotNotation(
|
|
856
|
-
getByDotNotation(assets, directions[0]),
|
|
857
|
-
directions.slice(1).join('.'),
|
|
858
|
-
finalAddressTrail === '' ? directions[0] : `${finalAddressTrail}.${directions[0]}`
|
|
859
|
-
);
|
|
860
|
-
};
|
|
861
|
-
|
|
862
|
-
export const updateAssetsByAddress = (
|
|
863
|
-
assets: object,
|
|
864
|
-
address: string,
|
|
865
|
-
newValue: string
|
|
866
|
-
): object => {
|
|
867
|
-
const dotNotationAddress = convertAddressToDotNotation(assets, address);
|
|
868
|
-
|
|
869
|
-
if (dotNotationAddress === null) return assets;
|
|
870
|
-
|
|
871
|
-
const doesPropertyExist = getByDotNotation(assets, dotNotationAddress) !== undefined;
|
|
872
|
-
|
|
873
|
-
if (!doesPropertyExist) {
|
|
874
|
-
return assets;
|
|
875
|
-
}
|
|
876
|
-
|
|
877
|
-
setByDotNotation(assets, dotNotationAddress, newValue);
|
|
878
|
-
return assets;
|
|
879
|
-
};
|
|
880
|
-
|
|
881
|
-
// preserveKeywords is the function that ultimately gets executed during export
|
|
882
|
-
// to attempt to preserve keywords (ex: ##KEYWORD##) in local configuration files
|
|
883
|
-
// from getting overwritten by remote values during export.
|
|
884
|
-
export const preserveKeywords = ({
|
|
885
|
-
localAssets,
|
|
886
|
-
remoteAssets,
|
|
887
|
-
keywordMappings,
|
|
888
|
-
auth0Handlers,
|
|
889
|
-
}: {
|
|
890
|
-
localAssets: object;
|
|
891
|
-
remoteAssets: object;
|
|
892
|
-
keywordMappings: KeywordMappings;
|
|
893
|
-
auth0Handlers: (Pick<APIHandler, 'id' | 'type'> & {
|
|
894
|
-
identifiers: (string | string[])[];
|
|
895
|
-
})[];
|
|
896
|
-
}): object => {
|
|
897
|
-
if (Object.keys(keywordMappings).length === 0) return remoteAssets;
|
|
898
|
-
|
|
899
|
-
const resourceSpecificIdentifiers: Partial<Record<AssetTypes, string[]>> = auth0Handlers.reduce(
|
|
900
|
-
(acc, handler) => {
|
|
901
|
-
acc[handler.type] = handler.identifiers.flat();
|
|
902
|
-
return acc;
|
|
903
|
-
},
|
|
904
|
-
{}
|
|
905
|
-
);
|
|
906
|
-
|
|
907
|
-
const addresses = getPreservableFieldsFromAssets(
|
|
908
|
-
localAssets,
|
|
909
|
-
keywordMappings,
|
|
910
|
-
resourceSpecificIdentifiers,
|
|
911
|
-
''
|
|
912
|
-
);
|
|
913
|
-
|
|
914
|
-
let updatedRemoteAssets = cloneDeep(remoteAssets);
|
|
915
|
-
|
|
916
|
-
addresses.forEach((address) => {
|
|
917
|
-
const localValue = getAssetsValueByAddress(address, localAssets);
|
|
918
|
-
|
|
919
|
-
const remoteAssetsAddress = (() => {
|
|
920
|
-
const doesAddressHaveKeyword = doesHaveKeywordMarker(address, keywordMappings);
|
|
921
|
-
if (doesAddressHaveKeyword) {
|
|
922
|
-
return keywordReplace(address, keywordMappings);
|
|
923
|
-
}
|
|
924
|
-
return address;
|
|
925
|
-
})();
|
|
926
|
-
const remoteValue = getAssetsValueByAddress(remoteAssetsAddress, remoteAssets);
|
|
927
|
-
|
|
928
|
-
const localValueWithReplacement = keywordReplace(localValue, keywordMappings);
|
|
929
|
-
|
|
930
|
-
const localAndRemoteValuesAreEqual = (() => {
|
|
931
|
-
if (typeof remoteValue === 'string') {
|
|
932
|
-
return localValueWithReplacement === remoteValue;
|
|
933
|
-
}
|
|
934
|
-
//TODO: Account for non-string replacements via @@ syntax
|
|
935
|
-
})();
|
|
936
|
-
|
|
937
|
-
if (!localAndRemoteValuesAreEqual) {
|
|
938
|
-
console.warn(
|
|
939
|
-
`WARNING! The remote value with address of ${address} has value of "${remoteValue}" but will be preserved with "${localValueWithReplacement}" due to keyword preservation.`
|
|
940
|
-
);
|
|
941
|
-
}
|
|
942
|
-
|
|
943
|
-
// Two address possibilities are provided to account for cases when there is a keyword
|
|
944
|
-
// in the resources's identifier field. When the resource identifier's field is preserved
|
|
945
|
-
// on the remote assets tree, it loses its identify, so we'll need to try two addresses:
|
|
946
|
-
// one where the identifier field has a keyword and one where the identifier field has
|
|
947
|
-
// the literal replaced value.
|
|
948
|
-
// Example: `customDomains.[domain=##DOMAIN].domain` and `customDomains.[domain=travel0.com].domain`
|
|
949
|
-
updatedRemoteAssets = updateAssetsByAddress(
|
|
950
|
-
updatedRemoteAssets,
|
|
951
|
-
address, //Two possible addresses need to be passed, one with identifier field keyword replaced and one where it is not replaced. Ex: `customDomains.[domain=##DOMAIN].domain` and `customDomains.[domain=travel0.com].domain`
|
|
952
|
-
localValue
|
|
953
|
-
);
|
|
954
|
-
updatedRemoteAssets = updateAssetsByAddress(
|
|
955
|
-
updatedRemoteAssets,
|
|
956
|
-
remoteAssetsAddress, //Two possible addresses need to be passed, one with identifier field keyword replaced and one where it is not replaced. Ex: `customDomains.[domain=##DOMAIN].domain` and `customDomains.[domain=travel0.com].domain`
|
|
957
|
-
localValue
|
|
958
|
-
);
|
|
959
|
-
});
|
|
960
|
-
|
|
961
|
-
return updatedRemoteAssets;
|
|
962
|
-
};
|
|
963
|
-
</pre></td></tr></table></pre>
|
|
964
|
-
|
|
965
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
966
|
-
</div><!-- /wrapper -->
|
|
967
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
968
|
-
Code coverage generated by
|
|
969
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
970
|
-
at Thu Feb 08 2024 16:21:45 GMT+0000 (Coordinated Universal Time)
|
|
971
|
-
</div>
|
|
972
|
-
<script src="../prettify.js"></script>
|
|
973
|
-
<script>
|
|
974
|
-
window.onload = function () {
|
|
975
|
-
prettyPrint();
|
|
976
|
-
};
|
|
977
|
-
</script>
|
|
978
|
-
<script src="../sorter.js"></script>
|
|
979
|
-
<script src="../block-navigation.js"></script>
|
|
980
|
-
</body>
|
|
981
|
-
</html>
|
|
982
|
-
|