auth0-deploy-cli 7.13.1 → 7.14.2

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 (165) hide show
  1. package/.circleci/config.yml +40 -11
  2. package/.eslintignore +1 -0
  3. package/.github/dependabot.yml +3 -0
  4. package/.nyc_output/1b0a2de3-0dae-4f80-9af7-f45cabfd5e99.json +1 -0
  5. package/.nyc_output/50c50e87-6b9d-4f9f-b6bb-a462368ff653.json +1 -0
  6. package/.nyc_output/cd0c5bb1-9480-4de3-b099-e95349d10f89.json +1 -0
  7. package/.nyc_output/processinfo/1b0a2de3-0dae-4f80-9af7-f45cabfd5e99.json +1 -0
  8. package/.nyc_output/processinfo/50c50e87-6b9d-4f9f-b6bb-a462368ff653.json +1 -0
  9. package/.nyc_output/processinfo/cd0c5bb1-9480-4de3-b099-e95349d10f89.json +1 -0
  10. package/.nyc_output/processinfo/index.json +1 -0
  11. package/.prettierignore +2 -1
  12. package/CHANGELOG.md +34 -1
  13. package/README.md +122 -65
  14. package/coverage/lcov-report/base.css +224 -0
  15. package/coverage/lcov-report/block-navigation.js +87 -0
  16. package/coverage/lcov-report/favicon.png +0 -0
  17. package/coverage/lcov-report/index.html +251 -0
  18. package/coverage/lcov-report/prettify.css +1 -0
  19. package/coverage/lcov-report/prettify.js +2 -0
  20. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  21. package/coverage/lcov-report/sorter.js +196 -0
  22. package/coverage/lcov-report/src/args.ts.html +505 -0
  23. package/coverage/lcov-report/src/commands/export.ts.html +274 -0
  24. package/coverage/lcov-report/src/commands/import.ts.html +250 -0
  25. package/coverage/lcov-report/src/commands/index.html +131 -0
  26. package/coverage/lcov-report/src/configFactory.ts.html +175 -0
  27. package/coverage/lcov-report/src/context/defaults.ts.html +196 -0
  28. package/coverage/lcov-report/src/context/directory/handlers/actions.ts.html +355 -0
  29. package/coverage/lcov-report/src/context/directory/handlers/attackProtection.ts.html +307 -0
  30. package/coverage/lcov-report/src/context/directory/handlers/branding.ts.html +448 -0
  31. package/coverage/lcov-report/src/context/directory/handlers/clientGrants.ts.html +262 -0
  32. package/coverage/lcov-report/src/context/directory/handlers/clients.ts.html +319 -0
  33. package/coverage/lcov-report/src/context/directory/handlers/connections.ts.html +370 -0
  34. package/coverage/lcov-report/src/context/directory/handlers/customDomains.ts.html +223 -0
  35. package/coverage/lcov-report/src/context/directory/handlers/databases.ts.html +544 -0
  36. package/coverage/lcov-report/src/context/directory/handlers/emailProvider.ts.html +241 -0
  37. package/coverage/lcov-report/src/context/directory/handlers/emailTemplates.ts.html +316 -0
  38. package/coverage/lcov-report/src/context/directory/handlers/guardianFactorProviders.ts.html +256 -0
  39. package/coverage/lcov-report/src/context/directory/handlers/guardianFactorTemplates.ts.html +247 -0
  40. package/coverage/lcov-report/src/context/directory/handlers/guardianFactors.ts.html +247 -0
  41. package/coverage/lcov-report/src/context/directory/handlers/guardianPhoneFactorMessageTypes.ts.html +214 -0
  42. package/coverage/lcov-report/src/context/directory/handlers/guardianPhoneFactorSelectedProvider.ts.html +226 -0
  43. package/coverage/lcov-report/src/context/directory/handlers/guardianPolicies.ts.html +214 -0
  44. package/coverage/lcov-report/src/context/directory/handlers/hooks.ts.html +274 -0
  45. package/coverage/lcov-report/src/context/directory/handlers/index.html +551 -0
  46. package/coverage/lcov-report/src/context/directory/handlers/index.ts.html +304 -0
  47. package/coverage/lcov-report/src/context/directory/handlers/logStreams.ts.html +220 -0
  48. package/coverage/lcov-report/src/context/directory/handlers/migrations.ts.html +196 -0
  49. package/coverage/lcov-report/src/context/directory/handlers/organizations.ts.html +289 -0
  50. package/coverage/lcov-report/src/context/directory/handlers/pages.ts.html +334 -0
  51. package/coverage/lcov-report/src/context/directory/handlers/prompts.ts.html +313 -0
  52. package/coverage/lcov-report/src/context/directory/handlers/resourceServers.ts.html +229 -0
  53. package/coverage/lcov-report/src/context/directory/handlers/roles.ts.html +253 -0
  54. package/coverage/lcov-report/src/context/directory/handlers/rules.ts.html +262 -0
  55. package/coverage/lcov-report/src/context/directory/handlers/rulesConfigs.ts.html +193 -0
  56. package/coverage/lcov-report/src/context/directory/handlers/tenant.ts.html +289 -0
  57. package/coverage/lcov-report/src/context/directory/handlers/themes.ts.html +232 -0
  58. package/coverage/lcov-report/src/context/directory/handlers/triggers.ts.html +214 -0
  59. package/coverage/lcov-report/src/context/directory/index.html +116 -0
  60. package/coverage/lcov-report/src/context/directory/index.ts.html +400 -0
  61. package/coverage/lcov-report/src/context/index.html +131 -0
  62. package/coverage/lcov-report/src/context/index.ts.html +475 -0
  63. package/coverage/lcov-report/src/context/yaml/handlers/actions.ts.html +349 -0
  64. package/coverage/lcov-report/src/context/yaml/handlers/attackProtection.ts.html +193 -0
  65. package/coverage/lcov-report/src/context/yaml/handlers/branding.ts.html +391 -0
  66. package/coverage/lcov-report/src/context/yaml/handlers/clientGrants.ts.html +199 -0
  67. package/coverage/lcov-report/src/context/yaml/handlers/clients.ts.html +301 -0
  68. package/coverage/lcov-report/src/context/yaml/handlers/connections.ts.html +394 -0
  69. package/coverage/lcov-report/src/context/yaml/handlers/customDomains.ts.html +151 -0
  70. package/coverage/lcov-report/src/context/yaml/handlers/databases.ts.html +346 -0
  71. package/coverage/lcov-report/src/context/yaml/handlers/emailProvider.ts.html +208 -0
  72. package/coverage/lcov-report/src/context/yaml/handlers/emailTemplates.ts.html +241 -0
  73. package/coverage/lcov-report/src/context/yaml/handlers/guardianFactorProviders.ts.html +151 -0
  74. package/coverage/lcov-report/src/context/yaml/handlers/guardianFactorTemplates.ts.html +151 -0
  75. package/coverage/lcov-report/src/context/yaml/handlers/guardianFactors.ts.html +151 -0
  76. package/coverage/lcov-report/src/context/yaml/handlers/guardianPhoneFactorMessageTypes.ts.html +151 -0
  77. package/coverage/lcov-report/src/context/yaml/handlers/guardianPhoneFactorSelectedProvider.ts.html +169 -0
  78. package/coverage/lcov-report/src/context/yaml/handlers/guardianPolicies.ts.html +151 -0
  79. package/coverage/lcov-report/src/context/yaml/handlers/hooks.ts.html +280 -0
  80. package/coverage/lcov-report/src/context/yaml/handlers/index.html +551 -0
  81. package/coverage/lcov-report/src/context/yaml/handlers/index.ts.html +298 -0
  82. package/coverage/lcov-report/src/context/yaml/handlers/logStreams.ts.html +151 -0
  83. package/coverage/lcov-report/src/context/yaml/handlers/migrations.ts.html +145 -0
  84. package/coverage/lcov-report/src/context/yaml/handlers/organizations.ts.html +235 -0
  85. package/coverage/lcov-report/src/context/yaml/handlers/pages.ts.html +268 -0
  86. package/coverage/lcov-report/src/context/yaml/handlers/prompts.ts.html +154 -0
  87. package/coverage/lcov-report/src/context/yaml/handlers/resourceServers.ts.html +154 -0
  88. package/coverage/lcov-report/src/context/yaml/handlers/roles.ts.html +199 -0
  89. package/coverage/lcov-report/src/context/yaml/handlers/rules.ts.html +253 -0
  90. package/coverage/lcov-report/src/context/yaml/handlers/rulesConfigs.ts.html +181 -0
  91. package/coverage/lcov-report/src/context/yaml/handlers/tenant.ts.html +235 -0
  92. package/coverage/lcov-report/src/context/yaml/handlers/themes.ts.html +154 -0
  93. package/coverage/lcov-report/src/context/yaml/handlers/triggers.ts.html +172 -0
  94. package/coverage/lcov-report/src/context/yaml/index.html +116 -0
  95. package/coverage/lcov-report/src/context/yaml/index.ts.html +568 -0
  96. package/coverage/lcov-report/src/index.html +221 -0
  97. package/coverage/lcov-report/src/index.ts.html +361 -0
  98. package/coverage/lcov-report/src/logger.ts.html +133 -0
  99. package/coverage/lcov-report/src/readonly.ts.html +346 -0
  100. package/coverage/lcov-report/src/sessionDurationsToMinutes.ts.html +154 -0
  101. package/coverage/lcov-report/src/tools/auth0/client.ts.html +604 -0
  102. package/coverage/lcov-report/src/tools/auth0/handlers/actions.ts.html +793 -0
  103. package/coverage/lcov-report/src/tools/auth0/handlers/attackProtection.ts.html +367 -0
  104. package/coverage/lcov-report/src/tools/auth0/handlers/branding.ts.html +427 -0
  105. package/coverage/lcov-report/src/tools/auth0/handlers/clientGrants.ts.html +418 -0
  106. package/coverage/lcov-report/src/tools/auth0/handlers/clients.ts.html +340 -0
  107. package/coverage/lcov-report/src/tools/auth0/handlers/connections.ts.html +598 -0
  108. package/coverage/lcov-report/src/tools/auth0/handlers/customDomains.ts.html +379 -0
  109. package/coverage/lcov-report/src/tools/auth0/handlers/databases.ts.html +436 -0
  110. package/coverage/lcov-report/src/tools/auth0/handlers/default.ts.html +1027 -0
  111. package/coverage/lcov-report/src/tools/auth0/handlers/emailProvider.ts.html +274 -0
  112. package/coverage/lcov-report/src/tools/auth0/handlers/emailTemplates.ts.html +337 -0
  113. package/coverage/lcov-report/src/tools/auth0/handlers/guardianFactorProviders.ts.html +301 -0
  114. package/coverage/lcov-report/src/tools/auth0/handlers/guardianFactorTemplates.ts.html +265 -0
  115. package/coverage/lcov-report/src/tools/auth0/handlers/guardianFactors.ts.html +241 -0
  116. package/coverage/lcov-report/src/tools/auth0/handlers/guardianPhoneFactorMessageTypes.ts.html +337 -0
  117. package/coverage/lcov-report/src/tools/auth0/handlers/guardianPhoneFactorSelectedProvider.ts.html +331 -0
  118. package/coverage/lcov-report/src/tools/auth0/handlers/guardianPolicies.ts.html +256 -0
  119. package/coverage/lcov-report/src/tools/auth0/handlers/hooks.ts.html +829 -0
  120. package/coverage/lcov-report/src/tools/auth0/handlers/index.html +566 -0
  121. package/coverage/lcov-report/src/tools/auth0/handlers/index.ts.html +295 -0
  122. package/coverage/lcov-report/src/tools/auth0/handlers/logStreams.ts.html +346 -0
  123. package/coverage/lcov-report/src/tools/auth0/handlers/migrations.ts.html +319 -0
  124. package/coverage/lcov-report/src/tools/auth0/handlers/organizations.ts.html +949 -0
  125. package/coverage/lcov-report/src/tools/auth0/handlers/pages.ts.html +517 -0
  126. package/coverage/lcov-report/src/tools/auth0/handlers/prompts.ts.html +913 -0
  127. package/coverage/lcov-report/src/tools/auth0/handlers/resourceServers.ts.html +412 -0
  128. package/coverage/lcov-report/src/tools/auth0/handlers/roles.ts.html +751 -0
  129. package/coverage/lcov-report/src/tools/auth0/handlers/rules.ts.html +727 -0
  130. package/coverage/lcov-report/src/tools/auth0/handlers/rulesConfigs.ts.html +256 -0
  131. package/coverage/lcov-report/src/tools/auth0/handlers/tenant.ts.html +466 -0
  132. package/coverage/lcov-report/src/tools/auth0/handlers/themes.ts.html +1882 -0
  133. package/coverage/lcov-report/src/tools/auth0/handlers/triggers.ts.html +430 -0
  134. package/coverage/lcov-report/src/tools/auth0/index.html +146 -0
  135. package/coverage/lcov-report/src/tools/auth0/index.ts.html +355 -0
  136. package/coverage/lcov-report/src/tools/auth0/schema.ts.html +184 -0
  137. package/coverage/lcov-report/src/tools/calculateChanges.ts.html +688 -0
  138. package/coverage/lcov-report/src/tools/constants.ts.html +610 -0
  139. package/coverage/lcov-report/src/tools/deploy.ts.html +181 -0
  140. package/coverage/lcov-report/src/tools/index.html +191 -0
  141. package/coverage/lcov-report/src/tools/index.ts.html +127 -0
  142. package/coverage/lcov-report/src/tools/utils.ts.html +796 -0
  143. package/coverage/lcov-report/src/tools/validationError.ts.html +127 -0
  144. package/coverage/lcov-report/src/types.ts.html +1093 -0
  145. package/coverage/lcov-report/src/utils.ts.html +679 -0
  146. package/coverage/lcov.info +7168 -0
  147. package/docs/available-resource-config-formats.md +19 -0
  148. package/docs/configuring-the-deploy-cli.md +140 -0
  149. package/docs/excluding-from-management.md +81 -0
  150. package/docs/how-to-contribute.md +49 -0
  151. package/docs/keyword-replacement.md +45 -0
  152. package/docs/multi-environment-workflow.md +98 -0
  153. package/docs/terraform-provider.md +20 -0
  154. package/docs/using-as-cli.md +89 -0
  155. package/docs/using-as-node-module.md +114 -0
  156. package/examples/yaml/config.json.example +1 -1
  157. package/lib/context/directory/handlers/connections.js +3 -2
  158. package/lib/context/yaml/handlers/connections.js +5 -2
  159. package/lib/context/yaml/handlers/pages.js +1 -1
  160. package/lib/tools/auth0/handlers/tenant.d.ts +12 -1
  161. package/lib/tools/auth0/handlers/tenant.js +39 -4
  162. package/lib/tools/auth0/handlers/themes.js +11 -3
  163. package/lib/types.d.ts +6 -7
  164. package/lib/utils.d.ts +1 -1
  165. package/package.json +11 -5
@@ -0,0 +1,568 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/context/yaml/index.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/context/yaml</a> index.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">90.66% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>68/75</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">77.5% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>31/40</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'>13/13</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">91.66% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>66/72</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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
228
+ <span class="cline-any cline-yes">1x</span>
229
+ <span class="cline-any cline-yes">1x</span>
230
+ <span class="cline-any cline-yes">1x</span>
231
+ <span class="cline-any cline-neutral">&nbsp;</span>
232
+ <span class="cline-any cline-yes">1x</span>
233
+ <span class="cline-any cline-yes">1x</span>
234
+ <span class="cline-any cline-yes">1x</span>
235
+ <span class="cline-any cline-yes">1x</span>
236
+ <span class="cline-any cline-neutral">&nbsp;</span>
237
+ <span class="cline-any cline-neutral">&nbsp;</span>
238
+ <span class="cline-any cline-yes">1x</span>
239
+ <span class="cline-any cline-neutral">&nbsp;</span>
240
+ <span class="cline-any cline-neutral">&nbsp;</span>
241
+ <span class="cline-any cline-neutral">&nbsp;</span>
242
+ <span class="cline-any cline-neutral">&nbsp;</span>
243
+ <span class="cline-any cline-neutral">&nbsp;</span>
244
+ <span class="cline-any cline-neutral">&nbsp;</span>
245
+ <span class="cline-any cline-neutral">&nbsp;</span>
246
+ <span class="cline-any cline-neutral">&nbsp;</span>
247
+ <span class="cline-any cline-yes">92x</span>
248
+ <span class="cline-any cline-yes">92x</span>
249
+ <span class="cline-any cline-yes">92x</span>
250
+ <span class="cline-any cline-yes">92x</span>
251
+ <span class="cline-any cline-neutral">&nbsp;</span>
252
+ <span class="cline-any cline-neutral">&nbsp;</span>
253
+ <span class="cline-any cline-yes">92x</span>
254
+ <span class="cline-any cline-neutral">&nbsp;</span>
255
+ <span class="cline-any cline-yes">92x</span>
256
+ <span class="cline-any cline-neutral">&nbsp;</span>
257
+ <span class="cline-any cline-neutral">&nbsp;</span>
258
+ <span class="cline-any cline-neutral">&nbsp;</span>
259
+ <span class="cline-any cline-neutral">&nbsp;</span>
260
+ <span class="cline-any cline-neutral">&nbsp;</span>
261
+ <span class="cline-any cline-neutral">&nbsp;</span>
262
+ <span class="cline-any cline-neutral">&nbsp;</span>
263
+ <span class="cline-any cline-neutral">&nbsp;</span>
264
+ <span class="cline-any cline-yes">92x</span>
265
+ <span class="cline-any cline-yes">92x</span>
266
+ <span class="cline-any cline-neutral">&nbsp;</span>
267
+ <span class="cline-any cline-yes">92x</span>
268
+ <span class="cline-any cline-neutral">&nbsp;</span>
269
+ <span class="cline-any cline-neutral">&nbsp;</span>
270
+ <span class="cline-any cline-neutral">&nbsp;</span>
271
+ <span class="cline-any cline-neutral">&nbsp;</span>
272
+ <span class="cline-any cline-yes">20x</span>
273
+ <span class="cline-any cline-yes">20x</span>
274
+ <span class="cline-any cline-neutral">&nbsp;</span>
275
+ <span class="cline-any cline-yes">20x</span>
276
+ <span class="cline-any cline-neutral">&nbsp;</span>
277
+ <span class="cline-any cline-yes">20x</span>
278
+ <span class="cline-any cline-neutral">&nbsp;</span>
279
+ <span class="cline-any cline-neutral">&nbsp;</span>
280
+ <span class="cline-any cline-neutral">&nbsp;</span>
281
+ <span class="cline-any cline-neutral">&nbsp;</span>
282
+ <span class="cline-any cline-yes">41x</span>
283
+ <span class="cline-any cline-no">&nbsp;</span>
284
+ <span class="cline-any cline-neutral">&nbsp;</span>
285
+ <span class="cline-any cline-yes">41x</span>
286
+ <span class="cline-any cline-yes">41x</span>
287
+ <span class="cline-any cline-yes">41x</span>
288
+ <span class="cline-any cline-yes">41x</span>
289
+ <span class="cline-any cline-neutral">&nbsp;</span>
290
+ <span class="cline-any cline-neutral">&nbsp;</span>
291
+ <span class="cline-any cline-neutral">&nbsp;</span>
292
+ <span class="cline-any cline-neutral">&nbsp;</span>
293
+ <span class="cline-any cline-yes">1x</span>
294
+ <span class="cline-any cline-yes">1x</span>
295
+ <span class="cline-any cline-neutral">&nbsp;</span>
296
+ <span class="cline-any cline-neutral">&nbsp;</span>
297
+ <span class="cline-any cline-neutral">&nbsp;</span>
298
+ <span class="cline-any cline-yes">40x</span>
299
+ <span class="cline-any cline-neutral">&nbsp;</span>
300
+ <span class="cline-any cline-yes">88x</span>
301
+ <span class="cline-any cline-yes">88x</span>
302
+ <span class="cline-any cline-neutral">&nbsp;</span>
303
+ <span class="cline-any cline-yes">86x</span>
304
+ <span class="cline-any cline-neutral">&nbsp;</span>
305
+ <span class="cline-any cline-neutral">&nbsp;</span>
306
+ <span class="cline-any cline-neutral">&nbsp;</span>
307
+ <span class="cline-any cline-neutral">&nbsp;</span>
308
+ <span class="cline-any cline-neutral">&nbsp;</span>
309
+ <span class="cline-any cline-neutral">&nbsp;</span>
310
+ <span class="cline-any cline-yes">40x</span>
311
+ <span class="cline-any cline-neutral">&nbsp;</span>
312
+ <span class="cline-any cline-neutral">&nbsp;</span>
313
+ <span class="cline-any cline-yes">40x</span>
314
+ <span class="cline-any cline-yes">40x</span>
315
+ <span class="cline-any cline-neutral">&nbsp;</span>
316
+ <span class="cline-any cline-neutral">&nbsp;</span>
317
+ <span class="cline-any cline-yes">39x</span>
318
+ <span class="cline-any cline-yes">1131x</span>
319
+ <span class="cline-any cline-yes">1131x</span>
320
+ <span class="cline-any cline-yes">1131x</span>
321
+ <span class="cline-any cline-yes">1130x</span>
322
+ <span class="cline-any cline-yes">1130x</span>
323
+ <span class="cline-any cline-neutral">&nbsp;</span>
324
+ <span class="cline-any cline-neutral">&nbsp;</span>
325
+ <span class="cline-any cline-yes">1x</span>
326
+ <span class="cline-any cline-yes">1x</span>
327
+ <span class="cline-any cline-neutral">&nbsp;</span>
328
+ <span class="cline-any cline-neutral">&nbsp;</span>
329
+ <span class="cline-any cline-neutral">&nbsp;</span>
330
+ <span class="cline-any cline-neutral">&nbsp;</span>
331
+ <span class="cline-any cline-neutral">&nbsp;</span>
332
+ <span class="cline-any cline-neutral">&nbsp;</span>
333
+ <span class="cline-any cline-yes">4x</span>
334
+ <span class="cline-any cline-yes">4x</span>
335
+ <span class="cline-any cline-yes">4x</span>
336
+ <span class="cline-any cline-yes">4x</span>
337
+ <span class="cline-any cline-yes">4x</span>
338
+ <span class="cline-any cline-neutral">&nbsp;</span>
339
+ <span class="cline-any cline-neutral">&nbsp;</span>
340
+ <span class="cline-any cline-no">&nbsp;</span>
341
+ <span class="cline-any cline-no">&nbsp;</span>
342
+ <span class="cline-any cline-neutral">&nbsp;</span>
343
+ <span class="cline-any cline-neutral">&nbsp;</span>
344
+ <span class="cline-any cline-no">&nbsp;</span>
345
+ <span class="cline-any cline-neutral">&nbsp;</span>
346
+ <span class="cline-any cline-neutral">&nbsp;</span>
347
+ <span class="cline-any cline-yes">4x</span>
348
+ <span class="cline-any cline-neutral">&nbsp;</span>
349
+ <span class="cline-any cline-neutral">&nbsp;</span>
350
+ <span class="cline-any cline-yes">116x</span>
351
+ <span class="cline-any cline-yes">116x</span>
352
+ <span class="cline-any cline-neutral">&nbsp;</span>
353
+ <span class="cline-any cline-yes">116x</span>
354
+ <span class="cline-any cline-yes">116x</span>
355
+ <span class="cline-any cline-yes">116x</span>
356
+ <span class="cline-any cline-yes">116x</span>
357
+ <span class="cline-any cline-yes">116x</span>
358
+ <span class="cline-any cline-yes">116x</span>
359
+ <span class="cline-any cline-yes">116x</span>
360
+ <span class="cline-any cline-neutral">&nbsp;</span>
361
+ <span class="cline-any cline-neutral">&nbsp;</span>
362
+ <span class="cline-any cline-neutral">&nbsp;</span>
363
+ <span class="cline-any cline-neutral">&nbsp;</span>
364
+ <span class="cline-any cline-neutral">&nbsp;</span>
365
+ <span class="cline-any cline-no">&nbsp;</span>
366
+ <span class="cline-any cline-no">&nbsp;</span>
367
+ <span class="cline-any cline-neutral">&nbsp;</span>
368
+ <span class="cline-any cline-neutral">&nbsp;</span>
369
+ <span class="cline-any cline-neutral">&nbsp;</span>
370
+ <span class="cline-any cline-neutral">&nbsp;</span>
371
+ <span class="cline-any cline-neutral">&nbsp;</span>
372
+ <span class="cline-any cline-yes">4x</span>
373
+ <span class="cline-any cline-neutral">&nbsp;</span>
374
+ <span class="cline-any cline-neutral">&nbsp;</span>
375
+ <span class="cline-any cline-yes">3x</span>
376
+ <span class="cline-any cline-neutral">&nbsp;</span>
377
+ <span class="cline-any cline-neutral">&nbsp;</span>
378
+ <span class="cline-any cline-yes">3x</span>
379
+ <span class="cline-any cline-yes">3x</span>
380
+ <span class="cline-any cline-neutral">&nbsp;</span>
381
+ <span class="cline-any cline-neutral">&nbsp;</span>
382
+ <span class="cline-any cline-neutral">&nbsp;</span>
383
+ <span class="cline-any cline-yes">3x</span>
384
+ <span class="cline-any cline-yes">3x</span>
385
+ <span class="cline-any cline-yes">3x</span>
386
+ <span class="cline-any cline-neutral">&nbsp;</span>
387
+ <span class="cline-any cline-neutral">&nbsp;</span>
388
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import fs from 'fs-extra';
389
+ import yaml from 'js-yaml';
390
+ import path from 'path';
391
+ import { loadFileAndReplaceKeywords, keywordReplace, Auth0 } from '../../tools';
392
+ &nbsp;
393
+ import log from '../../logger';
394
+ import { isFile, toConfigFn, stripIdentifiers, formatResults, recordsSorter } from '../../utils';
395
+ import handlers, { YAMLHandler } from './handlers';
396
+ import cleanAssets from '../../readonly';
397
+ import { Assets, Config, Auth0APIClient, AssetTypes, KeywordMappings } from '../../types';
398
+ &nbsp;
399
+ export default class YAMLContext {
400
+ basePath: string;
401
+ configFile: string;
402
+ config: Config;
403
+ mappings: KeywordMappings;
404
+ mgmtClient: Auth0APIClient;
405
+ assets: Assets;
406
+ &nbsp;
407
+ constructor(config: Config, mgmtClient) {
408
+ this.configFile = config.AUTH0_INPUT_FILE;
409
+ this.config = config;
410
+ this.mappings = config.AUTH0_KEYWORD_REPLACE_MAPPINGS || {};
411
+ this.mgmtClient = mgmtClient;
412
+ &nbsp;
413
+ //@ts-ignore because the assets property gets filled out throughout
414
+ this.assets = {};
415
+ // Get excluded rules
416
+ this.assets.exclude = {
417
+ rules: config.AUTH0_EXCLUDED_RULES || [],
418
+ clients: config.AUTH0_EXCLUDED_CLIENTS || [],
419
+ databases: config.AUTH0_EXCLUDED_DATABASES || [],
420
+ connections: config.AUTH0_EXCLUDED_CONNECTIONS || [],
421
+ resourceServers: config.AUTH0_EXCLUDED_RESOURCE_SERVERS || [],
422
+ defaults: config.AUTH0_EXCLUDED_DEFAULTS || [],
423
+ };
424
+ &nbsp;
425
+ this.basePath = (() =&gt; {
426
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!!config.AUTH0_BASE_PATH) <span class="cstat-no" title="statement not covered" >return config.AUTH0_BASE_PATH;</span>
427
+ //@ts-ignore because this looks to be a bug, but do not want to introduce regression; more investigation needed
428
+ return typeof configFile === 'object' ? <span class="branch-0 cbranch-no" title="branch not covered" >process.cwd() </span>: path.dirname(this.configFile);
429
+ })();
430
+ }
431
+ &nbsp;
432
+ loadFile(f) {
433
+ let toLoad = path.join(this.basePath, f);
434
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (!isFile(toLoad)) {
435
+ // try load not relative to yaml file
436
+ toLoad = f;
437
+ }
438
+ return loadFileAndReplaceKeywords(path.resolve(toLoad), this.mappings);
439
+ }
440
+ &nbsp;
441
+ async load() {
442
+ // Allow to send object/json directly
443
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof this.configFile === 'object') {
444
+ <span class="cstat-no" title="statement not covered" > this.assets = this.configFile;</span>
445
+ } else {
446
+ try {
447
+ const fPath = path.resolve(this.configFile);
448
+ log.debug(`Loading YAML from ${fPath}`);
449
+ Object.assign(
450
+ this.assets,
451
+ yaml.load(keywordReplace(fs.readFileSync(fPath, 'utf8'), this.mappings)) || {}
452
+ );
453
+ } catch (err) {
454
+ log.debug(err.stack);
455
+ throw new Error(`Problem loading ${this.configFile}\n${err}`);
456
+ }
457
+ }
458
+ &nbsp;
459
+ const excludedAssetsFiltered = Object.keys(this.assets).reduce(
460
+ (acc: Assets, key: AssetTypes) =&gt; {
461
+ const excludedAssetTypes = this.config.AUTH0_EXCLUDED || [];
462
+ if (excludedAssetTypes.includes(key)) return acc;
463
+ &nbsp;
464
+ return {
465
+ ...acc,
466
+ [key]: this.assets[key],
467
+ };
468
+ },
469
+ {}
470
+ );
471
+ this.assets = excludedAssetsFiltered;
472
+ &nbsp;
473
+ // Run initial schema check to ensure valid YAML
474
+ const auth0 = new Auth0(this.mgmtClient, this.assets, toConfigFn(this.config));
475
+ await auth0.validate();
476
+ &nbsp;
477
+ // Allow handlers to process the assets such as loading files etc
478
+ await Promise.all(
479
+ Object.entries(handlers).map(async ([name, handler]) =&gt; {
480
+ try {
481
+ const parsed = await handler.parse(this);
482
+ Object.entries(parsed).forEach(([k, v]) =&gt; {
483
+ this.assets[k] = v;
484
+ });
485
+ } catch (err) {
486
+ log.debug(err.stack);
487
+ throw new Error(`Problem deploying ${name}`);
488
+ }
489
+ })
490
+ );
491
+ }
492
+ &nbsp;
493
+ async dump(): Promise&lt;void&gt; {
494
+ const auth0 = new Auth0(this.mgmtClient, this.assets, toConfigFn(this.config));
495
+ log.info('Loading Auth0 Tenant Data');
496
+ try {
497
+ await auth0.loadAll();
498
+ this.assets = auth0.assets;
499
+ } catch (err) {
500
+ const docUrl =
501
+ <span class="cstat-no" title="statement not covered" > 'https://auth0.com/docs/deploy/deploy-cli-tool/create-and-configure-the-deploy-cli-application#modify-deploy-cli-application-scopes';</span>
502
+ const extraMessage = <span class="cstat-no" title="statement not covered" >err.message.startsWith('Insufficient scope')</span>
503
+ ? `\nSee ${docUrl} for more information`
504
+ : '';
505
+ <span class="cstat-no" title="statement not covered" > throw new Error(`Problem loading tenant data from Auth0 ${err}${extraMessage}`);</span>
506
+ }
507
+ &nbsp;
508
+ await Promise.all(
509
+ Object.entries(handlers)
510
+ .filter(([handlerName]: [AssetTypes, YAMLHandler&lt;any&gt;]) =&gt; {
511
+ const excludedAssetTypes = this.config.AUTH0_EXCLUDED || [];
512
+ return !excludedAssetTypes.includes(handlerName);
513
+ })
514
+ .map(async ([name, handler]) =&gt; {
515
+ try {
516
+ const data = await handler.dump(this);
517
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (data) {
518
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (data[name] !== null) log.info(`Exporting ${name}`);
519
+ Object.entries(data).forEach(([k, v]) =&gt; {
520
+ this.assets[k] = Array.isArray(v)
521
+ ? v.map(formatResults).sort(recordsSorter)
522
+ : formatResults(v);
523
+ });
524
+ }
525
+ } catch (err) {
526
+ <span class="cstat-no" title="statement not covered" > log.debug(err.stack);</span>
527
+ <span class="cstat-no" title="statement not covered" > throw new Error(`Problem exporting ${name}`);</span>
528
+ }
529
+ })
530
+ );
531
+ &nbsp;
532
+ // Clean known read only fields
533
+ let cleaned = cleanAssets(this.assets, this.config);
534
+ &nbsp;
535
+ // Delete exclude as it's not part of the auth0 tenant config
536
+ delete cleaned.exclude;
537
+ &nbsp;
538
+ // Optionally Strip identifiers
539
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (!this.config.AUTH0_EXPORT_IDENTIFIERS) {
540
+ cleaned = stripIdentifiers(auth0, cleaned);
541
+ }
542
+ &nbsp;
543
+ // Write YAML File
544
+ const raw = yaml.dump(cleaned);
545
+ log.info(`Writing ${this.configFile}`);
546
+ fs.writeFileSync(this.configFile, raw);
547
+ }
548
+ }
549
+ &nbsp;</pre></td></tr></table></pre>
550
+
551
+ <div class='push'></div><!-- for sticky footer -->
552
+ </div><!-- /wrapper -->
553
+ <div class='footer quiet pad2 space-top1 center small'>
554
+ Code coverage generated by
555
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
556
+ at Mon Aug 01 2022 17:29:40 GMT+0000 (Coordinated Universal Time)
557
+ </div>
558
+ <script src="../../../prettify.js"></script>
559
+ <script>
560
+ window.onload = function () {
561
+ prettyPrint();
562
+ };
563
+ </script>
564
+ <script src="../../../sorter.js"></script>
565
+ <script src="../../../block-navigation.js"></script>
566
+ </body>
567
+ </html>
568
+