auth0-deploy-cli 8.21.0 → 8.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. package/.circleci/config.yml +57 -5
  2. package/CHANGELOG.md +46 -2
  3. package/README.md +1 -1
  4. package/eslint.config.js +131 -0
  5. package/lib/args.js +0 -1
  6. package/lib/commands/export.js +41 -49
  7. package/lib/commands/import.js +36 -43
  8. package/lib/commands/index.js +0 -1
  9. package/lib/configFactory.js +0 -1
  10. package/lib/context/defaults.d.ts +1 -0
  11. package/lib/context/defaults.js +57 -10
  12. package/lib/context/directory/handlers/actions.js +40 -39
  13. package/lib/context/directory/handlers/attackProtection.js +22 -34
  14. package/lib/context/directory/handlers/branding.js +12 -21
  15. package/lib/context/directory/handlers/clientGrants.js +52 -62
  16. package/lib/context/directory/handlers/clients.js +44 -57
  17. package/lib/context/directory/handlers/connectionProfiles.d.ts +1 -1
  18. package/lib/context/directory/handlers/connectionProfiles.js +20 -30
  19. package/lib/context/directory/handlers/connections.js +32 -41
  20. package/lib/context/directory/handlers/customDomains.js +9 -21
  21. package/lib/context/directory/handlers/databases.js +37 -35
  22. package/lib/context/directory/handlers/emailProvider.js +22 -36
  23. package/lib/context/directory/handlers/emailTemplates.js +20 -29
  24. package/lib/context/directory/handlers/flowVaultConnections.js +40 -49
  25. package/lib/context/directory/handlers/flows.js +38 -48
  26. package/lib/context/directory/handlers/forms.js +38 -48
  27. package/lib/context/directory/handlers/guardianFactorProviders.js +9 -21
  28. package/lib/context/directory/handlers/guardianFactorTemplates.js +9 -21
  29. package/lib/context/directory/handlers/guardianFactors.js +9 -21
  30. package/lib/context/directory/handlers/guardianPhoneFactorMessageTypes.js +8 -20
  31. package/lib/context/directory/handlers/guardianPhoneFactorSelectedProvider.js +8 -20
  32. package/lib/context/directory/handlers/guardianPolicies.js +8 -20
  33. package/lib/context/directory/handlers/hooks.js +24 -34
  34. package/lib/context/directory/handlers/index.js +4 -1
  35. package/lib/context/directory/handlers/logStreams.js +12 -24
  36. package/lib/context/directory/handlers/networkACLs.js +22 -34
  37. package/lib/context/directory/handlers/organizations.js +39 -44
  38. package/lib/context/directory/handlers/pages.js +31 -37
  39. package/lib/context/directory/handlers/phoneProvider.js +12 -24
  40. package/lib/context/directory/handlers/phoneTemplates.d.ts +6 -0
  41. package/lib/context/directory/handlers/phoneTemplates.js +39 -0
  42. package/lib/context/directory/handlers/prompts.js +58 -76
  43. package/lib/context/directory/handlers/resourceServers.d.ts +1 -1
  44. package/lib/context/directory/handlers/resourceServers.js +18 -30
  45. package/lib/context/directory/handlers/roles.js +21 -31
  46. package/lib/context/directory/handlers/rules.js +22 -32
  47. package/lib/context/directory/handlers/rulesConfigs.js +3 -15
  48. package/lib/context/directory/handlers/selfServiceProfiles.js +28 -40
  49. package/lib/context/directory/handlers/tenant.js +14 -34
  50. package/lib/context/directory/handlers/themes.js +9 -21
  51. package/lib/context/directory/handlers/tokenExchangeProfiles.d.ts +5 -0
  52. package/lib/context/directory/handlers/tokenExchangeProfiles.js +41 -0
  53. package/lib/context/directory/handlers/triggers.d.ts +1 -1
  54. package/lib/context/directory/handlers/triggers.js +16 -26
  55. package/lib/context/directory/handlers/userAttributeProfiles.d.ts +1 -1
  56. package/lib/context/directory/handlers/userAttributeProfiles.js +16 -26
  57. package/lib/context/directory/index.js +66 -80
  58. package/lib/context/index.js +7 -18
  59. package/lib/context/yaml/handlers/actions.js +39 -41
  60. package/lib/context/yaml/handlers/attackProtection.js +27 -41
  61. package/lib/context/yaml/handlers/branding.js +47 -69
  62. package/lib/context/yaml/handlers/clientGrants.js +26 -40
  63. package/lib/context/yaml/handlers/clients.js +69 -84
  64. package/lib/context/yaml/handlers/connectionProfiles.d.ts +1 -1
  65. package/lib/context/yaml/handlers/connectionProfiles.js +20 -34
  66. package/lib/context/yaml/handlers/connections.js +63 -67
  67. package/lib/context/yaml/handlers/customDomains.js +7 -19
  68. package/lib/context/yaml/handlers/databases.js +63 -65
  69. package/lib/context/yaml/handlers/emailProvider.js +22 -37
  70. package/lib/context/yaml/handlers/emailTemplates.js +28 -39
  71. package/lib/context/yaml/handlers/flowVaultConnections.js +37 -50
  72. package/lib/context/yaml/handlers/flows.js +55 -66
  73. package/lib/context/yaml/handlers/forms.js +55 -66
  74. package/lib/context/yaml/handlers/guardianFactorProviders.js +7 -19
  75. package/lib/context/yaml/handlers/guardianFactorTemplates.js +7 -19
  76. package/lib/context/yaml/handlers/guardianFactors.js +7 -19
  77. package/lib/context/yaml/handlers/guardianPhoneFactorMessageTypes.js +7 -19
  78. package/lib/context/yaml/handlers/guardianPhoneFactorSelectedProvider.js +7 -19
  79. package/lib/context/yaml/handlers/guardianPolicies.js +7 -19
  80. package/lib/context/yaml/handlers/hooks.js +34 -48
  81. package/lib/context/yaml/handlers/index.js +4 -1
  82. package/lib/context/yaml/handlers/logStreams.js +16 -30
  83. package/lib/context/yaml/handlers/networkACLs.js +25 -39
  84. package/lib/context/yaml/handlers/organizations.js +37 -46
  85. package/lib/context/yaml/handlers/pages.js +31 -39
  86. package/lib/context/yaml/handlers/phoneProvider.js +17 -31
  87. package/lib/context/yaml/handlers/phoneTemplates.d.ts +6 -0
  88. package/lib/context/yaml/handlers/phoneTemplates.js +25 -0
  89. package/lib/context/yaml/handlers/prompts.js +22 -47
  90. package/lib/context/yaml/handlers/resourceServers.d.ts +1 -1
  91. package/lib/context/yaml/handlers/resourceServers.js +21 -33
  92. package/lib/context/yaml/handlers/roles.js +19 -33
  93. package/lib/context/yaml/handlers/rules.js +28 -39
  94. package/lib/context/yaml/handlers/rulesConfigs.js +14 -28
  95. package/lib/context/yaml/handlers/selfServiceProfiles.js +29 -43
  96. package/lib/context/yaml/handlers/tenant.js +19 -41
  97. package/lib/context/yaml/handlers/themes.js +7 -19
  98. package/lib/context/yaml/handlers/tokenExchangeProfiles.d.ts +5 -0
  99. package/lib/context/yaml/handlers/tokenExchangeProfiles.js +27 -0
  100. package/lib/context/yaml/handlers/triggers.d.ts +1 -1
  101. package/lib/context/yaml/handlers/triggers.js +15 -29
  102. package/lib/context/yaml/handlers/userAttributeProfiles.d.ts +1 -1
  103. package/lib/context/yaml/handlers/userAttributeProfiles.js +7 -19
  104. package/lib/context/yaml/index.js +120 -128
  105. package/lib/index.d.ts +4 -96
  106. package/lib/index.js +24 -34
  107. package/lib/keywordPreservation.d.ts +1 -1
  108. package/lib/keywordPreservation.js +11 -6
  109. package/lib/logger.js +0 -1
  110. package/lib/readonly.js +3 -4
  111. package/lib/sessionDurationsToMinutes.js +0 -1
  112. package/lib/tools/auth0/client.js +108 -127
  113. package/lib/tools/auth0/handlers/actions.d.ts +8 -26
  114. package/lib/tools/auth0/handlers/actions.js +138 -149
  115. package/lib/tools/auth0/handlers/attackProtection.js +80 -92
  116. package/lib/tools/auth0/handlers/branding.js +75 -99
  117. package/lib/tools/auth0/handlers/clientGrants.d.ts +2 -9
  118. package/lib/tools/auth0/handlers/clientGrants.js +68 -73
  119. package/lib/tools/auth0/handlers/clients.d.ts +25 -13
  120. package/lib/tools/auth0/handlers/clients.js +134 -86
  121. package/lib/tools/auth0/handlers/connectionProfiles.d.ts +3 -1
  122. package/lib/tools/auth0/handlers/connectionProfiles.js +36 -32
  123. package/lib/tools/auth0/handlers/connections.d.ts +3 -1
  124. package/lib/tools/auth0/handlers/connections.js +130 -135
  125. package/lib/tools/auth0/handlers/customDomains.d.ts +4 -1
  126. package/lib/tools/auth0/handlers/customDomains.js +43 -53
  127. package/lib/tools/auth0/handlers/databases.js +94 -114
  128. package/lib/tools/auth0/handlers/default.d.ts +2 -2
  129. package/lib/tools/auth0/handlers/default.js +210 -171
  130. package/lib/tools/auth0/handlers/emailProvider.js +41 -52
  131. package/lib/tools/auth0/handlers/emailTemplates.d.ts +1 -0
  132. package/lib/tools/auth0/handlers/emailTemplates.js +54 -70
  133. package/lib/tools/auth0/handlers/flowVaultConnections.d.ts +5 -12
  134. package/lib/tools/auth0/handlers/flowVaultConnections.js +108 -143
  135. package/lib/tools/auth0/handlers/flows.d.ts +2 -3
  136. package/lib/tools/auth0/handlers/flows.js +92 -129
  137. package/lib/tools/auth0/handlers/forms.d.ts +3 -3
  138. package/lib/tools/auth0/handlers/forms.js +98 -112
  139. package/lib/tools/auth0/handlers/guardianFactorProviders.js +61 -84
  140. package/lib/tools/auth0/handlers/guardianFactorTemplates.js +46 -68
  141. package/lib/tools/auth0/handlers/guardianFactors.js +35 -45
  142. package/lib/tools/auth0/handlers/guardianPhoneFactorMessageTypes.js +29 -45
  143. package/lib/tools/auth0/handlers/guardianPhoneFactorSelectedProvider.js +29 -45
  144. package/lib/tools/auth0/handlers/guardianPolicies.js +20 -35
  145. package/lib/tools/auth0/handlers/hooks.js +123 -153
  146. package/lib/tools/auth0/handlers/index.js +4 -1
  147. package/lib/tools/auth0/handlers/logStreams.js +42 -47
  148. package/lib/tools/auth0/handlers/networkACLs.d.ts +5 -4
  149. package/lib/tools/auth0/handlers/networkACLs.js +115 -133
  150. package/lib/tools/auth0/handlers/organizations.d.ts +10 -9
  151. package/lib/tools/auth0/handlers/organizations.js +360 -429
  152. package/lib/tools/auth0/handlers/pages.js +74 -83
  153. package/lib/tools/auth0/handlers/phoneProvider.d.ts +2 -2
  154. package/lib/tools/auth0/handlers/phoneProvider.js +69 -82
  155. package/lib/tools/auth0/handlers/phoneTemplates.d.ts +63 -0
  156. package/lib/tools/auth0/handlers/phoneTemplates.js +229 -0
  157. package/lib/tools/auth0/handlers/prompts.d.ts +7 -7
  158. package/lib/tools/auth0/handlers/prompts.js +246 -240
  159. package/lib/tools/auth0/handlers/resourceServers.d.ts +6 -1
  160. package/lib/tools/auth0/handlers/resourceServers.js +97 -60
  161. package/lib/tools/auth0/handlers/roles.js +162 -178
  162. package/lib/tools/auth0/handlers/rules.js +144 -162
  163. package/lib/tools/auth0/handlers/rulesConfigs.js +30 -39
  164. package/lib/tools/auth0/handlers/scimHandler.d.ts +4 -3
  165. package/lib/tools/auth0/handlers/scimHandler.js +110 -132
  166. package/lib/tools/auth0/handlers/selfServiceProfiles.d.ts +12 -3
  167. package/lib/tools/auth0/handlers/selfServiceProfiles.js +173 -203
  168. package/lib/tools/auth0/handlers/tenant.d.ts +5 -3
  169. package/lib/tools/auth0/handlers/tenant.js +46 -52
  170. package/lib/tools/auth0/handlers/themes.d.ts +12 -12
  171. package/lib/tools/auth0/handlers/themes.js +86 -102
  172. package/lib/tools/auth0/handlers/tokenExchangeProfiles.d.ts +60 -0
  173. package/lib/tools/auth0/handlers/tokenExchangeProfiles.js +271 -0
  174. package/lib/tools/auth0/handlers/triggers.js +59 -75
  175. package/lib/tools/auth0/handlers/userAttributeProfiles.d.ts +3 -2
  176. package/lib/tools/auth0/handlers/userAttributeProfiles.js +41 -43
  177. package/lib/tools/auth0/index.js +35 -48
  178. package/lib/tools/auth0/schema.js +6 -4
  179. package/lib/tools/calculateChanges.js +24 -15
  180. package/lib/tools/constants.d.ts +4 -2
  181. package/lib/tools/constants.js +3 -1
  182. package/lib/tools/deploy.js +17 -29
  183. package/lib/tools/index.d.ts +3 -89
  184. package/lib/tools/index.js +3 -2
  185. package/lib/tools/utils.d.ts +1 -1
  186. package/lib/tools/utils.js +12 -22
  187. package/lib/tools/validationError.js +0 -1
  188. package/lib/types.d.ts +15 -5
  189. package/lib/types.js +0 -1
  190. package/lib/utils.d.ts +3 -58
  191. package/lib/utils.js +8 -5
  192. package/package.json +13 -12
  193. package/tsconfig.json +4 -3
  194. package/.eslintignore +0 -5
  195. package/.eslintrc +0 -69
  196. package/lib/args.js.map +0 -1
  197. package/lib/commands/export.js.map +0 -1
  198. package/lib/commands/import.js.map +0 -1
  199. package/lib/commands/index.js.map +0 -1
  200. package/lib/configFactory.js.map +0 -1
  201. package/lib/context/defaults.js.map +0 -1
  202. package/lib/context/directory/handlers/actions.js.map +0 -1
  203. package/lib/context/directory/handlers/attackProtection.js.map +0 -1
  204. package/lib/context/directory/handlers/branding.js.map +0 -1
  205. package/lib/context/directory/handlers/clientGrants.js.map +0 -1
  206. package/lib/context/directory/handlers/clients.js.map +0 -1
  207. package/lib/context/directory/handlers/connectionProfiles.js.map +0 -1
  208. package/lib/context/directory/handlers/connections.js.map +0 -1
  209. package/lib/context/directory/handlers/customDomains.js.map +0 -1
  210. package/lib/context/directory/handlers/databases.js.map +0 -1
  211. package/lib/context/directory/handlers/emailProvider.js.map +0 -1
  212. package/lib/context/directory/handlers/emailTemplates.js.map +0 -1
  213. package/lib/context/directory/handlers/flowVaultConnections.js.map +0 -1
  214. package/lib/context/directory/handlers/flows.js.map +0 -1
  215. package/lib/context/directory/handlers/forms.js.map +0 -1
  216. package/lib/context/directory/handlers/guardianFactorProviders.js.map +0 -1
  217. package/lib/context/directory/handlers/guardianFactorTemplates.js.map +0 -1
  218. package/lib/context/directory/handlers/guardianFactors.js.map +0 -1
  219. package/lib/context/directory/handlers/guardianPhoneFactorMessageTypes.js.map +0 -1
  220. package/lib/context/directory/handlers/guardianPhoneFactorSelectedProvider.js.map +0 -1
  221. package/lib/context/directory/handlers/guardianPolicies.js.map +0 -1
  222. package/lib/context/directory/handlers/hooks.js.map +0 -1
  223. package/lib/context/directory/handlers/index.js.map +0 -1
  224. package/lib/context/directory/handlers/logStreams.js.map +0 -1
  225. package/lib/context/directory/handlers/networkACLs.js.map +0 -1
  226. package/lib/context/directory/handlers/organizations.js.map +0 -1
  227. package/lib/context/directory/handlers/pages.js.map +0 -1
  228. package/lib/context/directory/handlers/phoneProvider.js.map +0 -1
  229. package/lib/context/directory/handlers/prompts.js.map +0 -1
  230. package/lib/context/directory/handlers/resourceServers.js.map +0 -1
  231. package/lib/context/directory/handlers/roles.js.map +0 -1
  232. package/lib/context/directory/handlers/rules.js.map +0 -1
  233. package/lib/context/directory/handlers/rulesConfigs.js.map +0 -1
  234. package/lib/context/directory/handlers/selfServiceProfiles.js.map +0 -1
  235. package/lib/context/directory/handlers/tenant.js.map +0 -1
  236. package/lib/context/directory/handlers/themes.js.map +0 -1
  237. package/lib/context/directory/handlers/triggers.js.map +0 -1
  238. package/lib/context/directory/handlers/userAttributeProfiles.js.map +0 -1
  239. package/lib/context/directory/index.js.map +0 -1
  240. package/lib/context/index.js.map +0 -1
  241. package/lib/context/yaml/handlers/actions.js.map +0 -1
  242. package/lib/context/yaml/handlers/attackProtection.js.map +0 -1
  243. package/lib/context/yaml/handlers/branding.js.map +0 -1
  244. package/lib/context/yaml/handlers/clientGrants.js.map +0 -1
  245. package/lib/context/yaml/handlers/clients.js.map +0 -1
  246. package/lib/context/yaml/handlers/connectionProfiles.js.map +0 -1
  247. package/lib/context/yaml/handlers/connections.js.map +0 -1
  248. package/lib/context/yaml/handlers/customDomains.js.map +0 -1
  249. package/lib/context/yaml/handlers/databases.js.map +0 -1
  250. package/lib/context/yaml/handlers/emailProvider.js.map +0 -1
  251. package/lib/context/yaml/handlers/emailTemplates.js.map +0 -1
  252. package/lib/context/yaml/handlers/flowVaultConnections.js.map +0 -1
  253. package/lib/context/yaml/handlers/flows.js.map +0 -1
  254. package/lib/context/yaml/handlers/forms.js.map +0 -1
  255. package/lib/context/yaml/handlers/guardianFactorProviders.js.map +0 -1
  256. package/lib/context/yaml/handlers/guardianFactorTemplates.js.map +0 -1
  257. package/lib/context/yaml/handlers/guardianFactors.js.map +0 -1
  258. package/lib/context/yaml/handlers/guardianPhoneFactorMessageTypes.js.map +0 -1
  259. package/lib/context/yaml/handlers/guardianPhoneFactorSelectedProvider.js.map +0 -1
  260. package/lib/context/yaml/handlers/guardianPolicies.js.map +0 -1
  261. package/lib/context/yaml/handlers/hooks.js.map +0 -1
  262. package/lib/context/yaml/handlers/index.js.map +0 -1
  263. package/lib/context/yaml/handlers/logStreams.js.map +0 -1
  264. package/lib/context/yaml/handlers/networkACLs.js.map +0 -1
  265. package/lib/context/yaml/handlers/organizations.js.map +0 -1
  266. package/lib/context/yaml/handlers/pages.js.map +0 -1
  267. package/lib/context/yaml/handlers/phoneProvider.js.map +0 -1
  268. package/lib/context/yaml/handlers/prompts.js.map +0 -1
  269. package/lib/context/yaml/handlers/resourceServers.js.map +0 -1
  270. package/lib/context/yaml/handlers/roles.js.map +0 -1
  271. package/lib/context/yaml/handlers/rules.js.map +0 -1
  272. package/lib/context/yaml/handlers/rulesConfigs.js.map +0 -1
  273. package/lib/context/yaml/handlers/selfServiceProfiles.js.map +0 -1
  274. package/lib/context/yaml/handlers/tenant.js.map +0 -1
  275. package/lib/context/yaml/handlers/themes.js.map +0 -1
  276. package/lib/context/yaml/handlers/triggers.js.map +0 -1
  277. package/lib/context/yaml/handlers/userAttributeProfiles.js.map +0 -1
  278. package/lib/context/yaml/index.js.map +0 -1
  279. package/lib/index.js.map +0 -1
  280. package/lib/keywordPreservation.js.map +0 -1
  281. package/lib/logger.js.map +0 -1
  282. package/lib/readonly.js.map +0 -1
  283. package/lib/sessionDurationsToMinutes.js.map +0 -1
  284. package/lib/tools/auth0/client.js.map +0 -1
  285. package/lib/tools/auth0/handlers/actions.js.map +0 -1
  286. package/lib/tools/auth0/handlers/attackProtection.js.map +0 -1
  287. package/lib/tools/auth0/handlers/branding.js.map +0 -1
  288. package/lib/tools/auth0/handlers/clientGrants.js.map +0 -1
  289. package/lib/tools/auth0/handlers/clients.js.map +0 -1
  290. package/lib/tools/auth0/handlers/connectionProfiles.js.map +0 -1
  291. package/lib/tools/auth0/handlers/connections.js.map +0 -1
  292. package/lib/tools/auth0/handlers/customDomains.js.map +0 -1
  293. package/lib/tools/auth0/handlers/databases.js.map +0 -1
  294. package/lib/tools/auth0/handlers/default.js.map +0 -1
  295. package/lib/tools/auth0/handlers/emailProvider.js.map +0 -1
  296. package/lib/tools/auth0/handlers/emailTemplates.js.map +0 -1
  297. package/lib/tools/auth0/handlers/flowVaultConnections.js.map +0 -1
  298. package/lib/tools/auth0/handlers/flows.js.map +0 -1
  299. package/lib/tools/auth0/handlers/forms.js.map +0 -1
  300. package/lib/tools/auth0/handlers/guardianFactorProviders.js.map +0 -1
  301. package/lib/tools/auth0/handlers/guardianFactorTemplates.js.map +0 -1
  302. package/lib/tools/auth0/handlers/guardianFactors.js.map +0 -1
  303. package/lib/tools/auth0/handlers/guardianPhoneFactorMessageTypes.js.map +0 -1
  304. package/lib/tools/auth0/handlers/guardianPhoneFactorSelectedProvider.js.map +0 -1
  305. package/lib/tools/auth0/handlers/guardianPolicies.js.map +0 -1
  306. package/lib/tools/auth0/handlers/hooks.js.map +0 -1
  307. package/lib/tools/auth0/handlers/index.js.map +0 -1
  308. package/lib/tools/auth0/handlers/logStreams.js.map +0 -1
  309. package/lib/tools/auth0/handlers/networkACLs.js.map +0 -1
  310. package/lib/tools/auth0/handlers/organizations.js.map +0 -1
  311. package/lib/tools/auth0/handlers/pages.js.map +0 -1
  312. package/lib/tools/auth0/handlers/phoneProvider.js.map +0 -1
  313. package/lib/tools/auth0/handlers/prompts.js.map +0 -1
  314. package/lib/tools/auth0/handlers/resourceServers.js.map +0 -1
  315. package/lib/tools/auth0/handlers/roles.js.map +0 -1
  316. package/lib/tools/auth0/handlers/rules.js.map +0 -1
  317. package/lib/tools/auth0/handlers/rulesConfigs.js.map +0 -1
  318. package/lib/tools/auth0/handlers/scimHandler.js.map +0 -1
  319. package/lib/tools/auth0/handlers/selfServiceProfiles.js.map +0 -1
  320. package/lib/tools/auth0/handlers/tenant.js.map +0 -1
  321. package/lib/tools/auth0/handlers/themes.js.map +0 -1
  322. package/lib/tools/auth0/handlers/triggers.js.map +0 -1
  323. package/lib/tools/auth0/handlers/userAttributeProfiles.js.map +0 -1
  324. package/lib/tools/auth0/index.js.map +0 -1
  325. package/lib/tools/auth0/schema.js.map +0 -1
  326. package/lib/tools/calculateChanges.js.map +0 -1
  327. package/lib/tools/constants.js.map +0 -1
  328. package/lib/tools/deploy.js.map +0 -1
  329. package/lib/tools/index.js.map +0 -1
  330. package/lib/tools/utils.js.map +0 -1
  331. package/lib/tools/validationError.js.map +0 -1
  332. package/lib/types.js.map +0 -1
  333. package/lib/utils.js.map +0 -1
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
4
  };
@@ -47,7 +38,7 @@ exports.schema = {
47
38
  properties: {
48
39
  mechanism: {
49
40
  type: 'string',
50
- enum: Object.values(auth0_1.ResourceServerProofOfPossessionMechanismEnum),
41
+ enum: Object.values(auth0_1.Management.ResourceServerProofOfPossessionMechanismEnum),
51
42
  },
52
43
  required: { type: 'boolean' },
53
44
  },
@@ -62,7 +53,7 @@ exports.schema = {
62
53
  properties: {
63
54
  policy: {
64
55
  type: 'string',
65
- enum: Object.values(auth0_1.ResourceServerSubjectTypeAuthorizationUserPolicyEnum),
56
+ enum: Object.values(auth0_1.Management.ResourceServerSubjectTypeAuthorizationUserPolicyEnum),
66
57
  },
67
58
  },
68
59
  },
@@ -72,7 +63,7 @@ exports.schema = {
72
63
  properties: {
73
64
  policy: {
74
65
  type: 'string',
75
- enum: Object.values(auth0_1.ResourceServerSubjectTypeAuthorizationClientPolicyEnum),
66
+ enum: Object.values(auth0_1.Management.ResourceServerSubjectTypeAuthorizationClientPolicyEnum),
76
67
  },
77
68
  },
78
69
  },
@@ -90,63 +81,109 @@ exports.schema = {
90
81
  };
91
82
  class ResourceServersHandler extends default_1.default {
92
83
  constructor(options) {
93
- super(Object.assign(Object.assign({}, options), { type: 'resourceServers', identifiers: ['id', 'identifier'], stripCreateFields: ['client_id'], stripUpdateFields: ['identifier', 'client_id', 'is_system'] }));
84
+ super({
85
+ ...options,
86
+ type: 'resourceServers',
87
+ identifiers: ['id', 'identifier'],
88
+ stripCreateFields: ['client_id', 'is_system'],
89
+ stripUpdateFields: ['identifier', 'client_id', 'is_system'],
90
+ functions: {
91
+ update: (args, data) => this.updateResourceServer(args, data),
92
+ },
93
+ });
94
94
  }
95
95
  objString(resourceServer) {
96
96
  return super.objString({ name: resourceServer.name, identifier: resourceServer.identifier });
97
97
  }
98
- getType() {
99
- return __awaiter(this, void 0, void 0, function* () {
100
- if (this.existing)
101
- return this.existing;
102
- const resourceServers = yield (0, client_1.paginate)(this.client.resourceServers.getAll, {
103
- paginate: true,
104
- include_totals: true,
105
- });
106
- return resourceServers.filter((rs) => rs.name !== constants_1.default.RESOURCE_SERVERS_MANAGEMENT_API_NAME);
98
+ async getType() {
99
+ if (this.existing)
100
+ return this.existing;
101
+ let resourceServers = await (0, client_1.paginate)(this.client.resourceServers.list, {
102
+ paginate: true,
107
103
  });
108
- }
109
- calcChanges(assets) {
110
- return __awaiter(this, void 0, void 0, function* () {
111
- let { resourceServers } = assets;
112
- // Do nothing if not set
113
- if (!resourceServers)
114
- return {
115
- del: [],
116
- create: [],
117
- conflicts: [],
118
- update: [],
119
- };
120
- const excluded = (assets.exclude && assets.exclude.resourceServers) || [];
121
- let existing = yield this.getType();
122
- // Filter excluded
123
- resourceServers = resourceServers.filter((r) => !excluded.includes(r.name));
124
- existing = existing.filter((r) => !excluded.includes(r.name));
125
- return (0, calculateChanges_1.calculateChanges)({
126
- handler: this,
127
- assets: resourceServers,
128
- existing,
129
- identifiers: this.identifiers,
130
- allowDelete: !!this.config('AUTH0_ALLOW_DELETE'),
131
- });
104
+ resourceServers = resourceServers.filter((rs) => rs.name !== constants_1.default.RESOURCE_SERVERS_MANAGEMENT_API_NAME);
105
+ // Sanitize resource servers fields
106
+ const sanitizeResourceServersFields = (rs) => rs.map((resourceServer) => {
107
+ // For system resource servers like Auth0 My Account API, only allow certain fields to be updated
108
+ if (resourceServer.is_system === true) {
109
+ const allowedKeys = [
110
+ 'token_lifetime',
111
+ 'proof_of_possession',
112
+ 'skip_consent_for_verifiable_first_party_clients',
113
+ 'name',
114
+ 'identifier',
115
+ 'id',
116
+ 'is_system',
117
+ ];
118
+ const sanitized = {};
119
+ allowedKeys.forEach((key) => {
120
+ if (key in resourceServer) {
121
+ sanitized[key] = resourceServer[key];
122
+ }
123
+ });
124
+ return sanitized;
125
+ }
126
+ return resourceServer;
132
127
  });
128
+ this.existing = sanitizeResourceServersFields(resourceServers);
129
+ return this.existing;
133
130
  }
134
- validate(assets) {
135
- const _super = Object.create(null, {
136
- validate: { get: () => super.validate }
131
+ async calcChanges(assets) {
132
+ let { resourceServers } = assets;
133
+ // Do nothing if not set
134
+ if (!resourceServers)
135
+ return {
136
+ del: [],
137
+ create: [],
138
+ conflicts: [],
139
+ update: [],
140
+ };
141
+ const excluded = (assets.exclude && assets.exclude.resourceServers) || [];
142
+ let existing = await this.getType();
143
+ // Filter excluded
144
+ resourceServers = resourceServers.filter((r) => r.name && !excluded.includes(r.name));
145
+ existing = existing.filter((r) => r.name && !excluded.includes(r.name));
146
+ return (0, calculateChanges_1.calculateChanges)({
147
+ handler: this,
148
+ assets: resourceServers,
149
+ existing,
150
+ identifiers: this.identifiers,
151
+ allowDelete: !!this.config('AUTH0_ALLOW_DELETE'),
137
152
  });
138
- return __awaiter(this, void 0, void 0, function* () {
139
- const { resourceServers } = assets;
140
- // Do nothing if not set
141
- if (!resourceServers)
142
- return;
143
- const mgmtAPIResource = resourceServers.find((r) => r.name === constants_1.default.RESOURCE_SERVERS_MANAGEMENT_API_NAME);
144
- if (mgmtAPIResource) {
145
- throw new validationError_1.default(`You can not configure the '${constants_1.default.RESOURCE_SERVERS_MANAGEMENT_API_NAME}'.`);
146
- }
147
- yield _super.validate.call(this, assets);
153
+ }
154
+ async validate(assets) {
155
+ const { resourceServers } = assets;
156
+ // Do nothing if not set
157
+ if (!resourceServers)
158
+ return;
159
+ const mgmtAPIResource = resourceServers.find((r) => r.name === constants_1.default.RESOURCE_SERVERS_MANAGEMENT_API_NAME);
160
+ if (mgmtAPIResource) {
161
+ throw new validationError_1.default(`You can not configure the '${constants_1.default.RESOURCE_SERVERS_MANAGEMENT_API_NAME}'.`);
162
+ }
163
+ await super.validate(assets);
164
+ }
165
+ async processChanges(assets) {
166
+ const { resourceServers } = assets;
167
+ // Do nothing if not set
168
+ if (!resourceServers)
169
+ return;
170
+ const changes = await this.calcChanges(assets);
171
+ await super.processChanges(assets, {
172
+ ...changes,
148
173
  });
149
174
  }
175
+ async updateResourceServer(args, update) {
176
+ // Exclude name from update as it cannot be modified for system resource servers like Auth0 My Account API
177
+ if (update.is_system === true || update.name === 'Auth0 My Account API') {
178
+ const updateFields = {
179
+ token_lifetime: update.token_lifetime,
180
+ proof_of_possession: update.proof_of_possession,
181
+ skip_consent_for_verifiable_first_party_clients: update.skip_consent_for_verifiable_first_party_clients,
182
+ subject_type_authorization: update.subject_type_authorization,
183
+ };
184
+ return this.client.resourceServers.update(args?.id, updateFields);
185
+ }
186
+ return this.client.resourceServers.update(args?.id, update);
187
+ }
150
188
  }
151
189
  exports.default = ResourceServersHandler;
152
- //# sourceMappingURL=resourceServers.js.map
@@ -38,21 +38,11 @@ var __importStar = (this && this.__importStar) || (function () {
38
38
  return result;
39
39
  };
40
40
  })();
41
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
42
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
43
- return new (P || (P = Promise))(function (resolve, reject) {
44
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
45
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
46
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
47
- step((generator = generator.apply(thisArg, _arguments || [])).next());
48
- });
49
- };
50
41
  var __importDefault = (this && this.__importDefault) || function (mod) {
51
42
  return (mod && mod.__esModule) ? mod : { "default": mod };
52
43
  };
53
44
  Object.defineProperty(exports, "__esModule", { value: true });
54
45
  exports.schema = void 0;
55
- const lodash_1 = require("lodash");
56
46
  const default_1 = __importStar(require("./default"));
57
47
  const calculateChanges_1 = require("../../calculateChanges");
58
48
  const logger_1 = __importDefault(require("../../../logger"));
@@ -81,196 +71,190 @@ exports.schema = {
81
71
  };
82
72
  class RolesHandler extends default_1.default {
83
73
  constructor(config) {
84
- super(Object.assign(Object.assign({}, config), { type: 'roles', id: 'id' }));
85
- }
86
- createRole(data) {
87
- return __awaiter(this, void 0, void 0, function* () {
88
- const role = Object.assign({}, data);
89
- delete role.permissions;
90
- const { data: created } = yield this.client.roles.create(role);
91
- if (typeof data.permissions !== 'undefined' && data.permissions.length > 0) {
92
- yield this.client.roles.addPermissions({ id: created.id }, { permissions: data.permissions });
93
- }
94
- return created;
74
+ super({
75
+ ...config,
76
+ type: 'roles',
77
+ id: 'id',
95
78
  });
96
79
  }
97
- createRoles(creates) {
98
- return __awaiter(this, void 0, void 0, function* () {
99
- yield this.client.pool
80
+ async createRole(data) {
81
+ const role = { ...data };
82
+ delete role.permissions;
83
+ const created = await this.client.roles.create(role);
84
+ if (created.id && typeof data.permissions !== 'undefined' && data.permissions.length > 0) {
85
+ await this.client.roles.permissions.add(created.id, { permissions: data.permissions });
86
+ }
87
+ return created;
88
+ }
89
+ async createRoles(creates) {
90
+ await this.client.pool
91
+ .addEachTask({
92
+ data: creates || [],
93
+ generator: (item) => this.createRole(item)
94
+ .then((data) => {
95
+ this.didCreate(data);
96
+ this.created += 1;
97
+ })
98
+ .catch((err) => {
99
+ throw new Error(`Problem creating ${this.type} ${this.objString(item)}\n${err}`);
100
+ }),
101
+ })
102
+ .promise();
103
+ }
104
+ async deleteRole(data) {
105
+ await this.client.roles.delete(data.id);
106
+ }
107
+ async deleteRoles(dels) {
108
+ if (this.config('AUTH0_ALLOW_DELETE') === 'true' ||
109
+ this.config('AUTH0_ALLOW_DELETE') === true) {
110
+ await this.client.pool
100
111
  .addEachTask({
101
- data: creates || [],
102
- generator: (item) => this.createRole(item)
103
- .then((data) => {
104
- this.didCreate(data);
105
- this.created += 1;
112
+ data: dels || [],
113
+ generator: (item) => this.deleteRole(item)
114
+ .then(() => {
115
+ this.didDelete(item);
116
+ this.deleted += 1;
106
117
  })
107
118
  .catch((err) => {
108
- throw new Error(`Problem creating ${this.type} ${this.objString(item)}\n${err}`);
119
+ throw new Error(`Problem deleting ${this.type} ${this.objString(item)}\n${err}`);
109
120
  }),
110
121
  })
111
122
  .promise();
112
- });
113
- }
114
- deleteRole(data) {
115
- return __awaiter(this, void 0, void 0, function* () {
116
- yield this.client.roles.delete({ id: data.id });
117
- });
118
- }
119
- deleteRoles(dels) {
120
- return __awaiter(this, void 0, void 0, function* () {
121
- if (this.config('AUTH0_ALLOW_DELETE') === 'true' ||
122
- this.config('AUTH0_ALLOW_DELETE') === true) {
123
- yield this.client.pool
124
- .addEachTask({
125
- data: dels || [],
126
- generator: (item) => this.deleteRole(item)
127
- .then(() => {
128
- this.didDelete(item);
129
- this.deleted += 1;
130
- })
131
- .catch((err) => {
132
- throw new Error(`Problem deleting ${this.type} ${this.objString(item)}\n${err}`);
133
- }),
134
- })
135
- .promise();
136
- }
137
- else {
138
- logger_1.default.warn(`Detected the following roles should be deleted. Doing so may be destructive.\nYou can enable deletes by setting 'AUTH0_ALLOW_DELETE' to true in the config
123
+ }
124
+ else {
125
+ logger_1.default.warn(`Detected the following roles should be deleted. Doing so may be destructive.\nYou can enable deletes by setting 'AUTH0_ALLOW_DELETE' to true in the config
139
126
  \n${dels.map((i) => this.objString(i)).join('\n')}`);
140
- }
141
- });
127
+ }
142
128
  }
143
- updateRole(data, roles) {
144
- return __awaiter(this, void 0, void 0, function* () {
145
- const existingRole = yield roles.find((roleDataForUpdate) => roleDataForUpdate.name === data.name);
146
- const params = { id: data.id };
147
- const newPermissions = data.permissions;
148
- delete data.permissions;
149
- delete data.id;
150
- yield this.client.roles.update(params, data);
151
- if (typeof existingRole.permissions !== 'undefined' && existingRole.permissions.length > 0) {
152
- yield this.client.roles.deletePermissions(params, { permissions: existingRole.permissions });
153
- }
154
- if (typeof newPermissions !== 'undefined' && newPermissions.length > 0) {
155
- yield this.client.roles.addPermissions(params, { permissions: newPermissions });
156
- }
157
- return params;
158
- });
129
+ async updateRole(data, roles) {
130
+ const existingRole = await roles.find((roleDataForUpdate) => roleDataForUpdate.name === data.name);
131
+ const params = { id: data.id };
132
+ const newPermissions = data.permissions;
133
+ delete data.permissions;
134
+ delete data.id;
135
+ await this.client.roles.update(params.id, data);
136
+ if (typeof existingRole.permissions !== 'undefined' && existingRole.permissions.length > 0) {
137
+ await this.client.roles.permissions.delete(params.id, {
138
+ permissions: existingRole.permissions,
139
+ });
140
+ }
141
+ if (typeof newPermissions !== 'undefined' && newPermissions.length > 0) {
142
+ await this.client.roles.permissions.add(params.id, { permissions: newPermissions });
143
+ }
144
+ return params;
159
145
  }
160
- updateRoles(updates, roles) {
161
- return __awaiter(this, void 0, void 0, function* () {
162
- yield this.client.pool
163
- .addEachTask({
164
- data: updates || [],
165
- generator: (item) => this.updateRole(item, roles)
166
- .then((data) => {
167
- this.didUpdate(data);
168
- this.updated += 1;
169
- })
170
- .catch((err) => {
171
- throw new Error(`Problem updating ${this.type} ${this.objString(item)}\n${err}`);
172
- }),
146
+ async updateRoles(updates, roles) {
147
+ await this.client.pool
148
+ .addEachTask({
149
+ data: updates || [],
150
+ generator: (item) => this.updateRole(item, roles)
151
+ .then((data) => {
152
+ this.didUpdate(data);
153
+ this.updated += 1;
173
154
  })
174
- .promise();
175
- });
155
+ .catch((err) => {
156
+ throw new Error(`Problem updating ${this.type} ${this.objString(item)}\n${err}`);
157
+ }),
158
+ })
159
+ .promise();
176
160
  }
177
- getType() {
178
- return __awaiter(this, void 0, void 0, function* () {
179
- if (this.existing) {
180
- return this.existing;
181
- }
182
- // in case client version does not support roles
183
- if (!this.client.roles || typeof this.client.roles.getAll !== 'function') {
184
- return [];
185
- }
186
- try {
187
- const roles = yield (0, client_1.paginate)(this.client.roles.getAll, {
188
- paginate: true,
161
+ async getType() {
162
+ if (this.existing) {
163
+ return this.existing;
164
+ }
165
+ try {
166
+ const roles = await (0, client_1.paginate)(this.client.roles.list, {
167
+ paginate: true,
168
+ include_totals: true,
169
+ });
170
+ for (let index = 0; index < roles.length; index++) {
171
+ const allPermission = [];
172
+ /*
173
+ let page = 0;
174
+ while (true) {
175
+ const {
176
+ data: { permissions, total },
177
+ } = await this.client.roles.permissions.list({
189
178
  include_totals: true,
190
- });
191
- for (let index = 0; index < roles.length; index++) {
192
- // paginate without paginate<T> helper as this is not getAll but getPermissions
193
- // paginate through all permissions for each role
194
- const allPermission = [];
195
- let page = 0;
196
- while (true) {
197
- const { data: { permissions, total }, } = yield this.client.roles.getPermissions({
198
- include_totals: true,
199
- id: roles[index].id,
200
- page: page,
201
- per_page: 100,
202
- });
203
- allPermission.push(...permissions);
204
- page += 1;
205
- if (allPermission.length === total) {
206
- break;
207
- }
208
- // if we get an unexpected response, break the loop to avoid infinite loop
209
- if (!(0, lodash_1.isArray)(permissions) || typeof total !== 'number') {
210
- break;
211
- }
212
- }
213
- const strippedPerms = yield Promise.all(allPermission.map((permission) => __awaiter(this, void 0, void 0, function* () {
214
- delete permission.resource_server_name;
215
- delete permission.description;
216
- return permission;
217
- })));
218
- roles[index].permissions = strippedPerms;
179
+ id: roles[index].id,
180
+ page: page,
181
+ per_page: 100,
182
+ });
183
+
184
+ allPermission.push(...permissions);
185
+ page += 1;
186
+ if (allPermission.length === total) {
187
+ break;
188
+ }
189
+ // if we get an unexpected response, break the loop to avoid infinite loop
190
+ if (!isArray(permissions) || typeof total !== 'number') {
191
+ break;
192
+ }
219
193
  }
220
- this.existing = roles;
221
- return this.existing;
194
+ */
195
+ const rolesId = roles[index].id;
196
+ let permissions = await this.client.roles.permissions.list(rolesId, { per_page: 100 });
197
+ do {
198
+ allPermission.push(...permissions.data);
199
+ permissions = await permissions.getNextPage();
200
+ } while (permissions.hasNextPage());
201
+ const strippedPerms = await Promise.all(allPermission.map(async (permission) => {
202
+ delete permission.resource_server_name;
203
+ delete permission.description;
204
+ return permission;
205
+ }));
206
+ roles[index].permissions = strippedPerms;
222
207
  }
223
- catch (err) {
224
- if (err.statusCode === 404 || err.statusCode === 501) {
225
- return [];
226
- }
227
- throw err;
208
+ this.existing = roles;
209
+ return this.existing;
210
+ }
211
+ catch (err) {
212
+ if (err.statusCode === 404 || err.statusCode === 501) {
213
+ return [];
228
214
  }
229
- });
215
+ throw err;
216
+ }
230
217
  }
231
- processChanges(assets) {
232
- return __awaiter(this, void 0, void 0, function* () {
233
- const { roles } = assets;
234
- // Do nothing if not set
235
- if (!roles)
236
- return;
237
- // Gets roles from destination tenant
238
- const existing = yield this.getType();
239
- const changes = (0, calculateChanges_1.calculateChanges)({
240
- handler: this,
241
- assets: roles,
242
- existing,
243
- identifiers: this.identifiers,
244
- allowDelete: !!this.config('AUTH0_ALLOW_DELETE'),
245
- });
246
- logger_1.default.debug(`Start processChanges for roles [delete:${changes.del.length}] [update:${changes.update.length}], [create:${changes.create.length}]`);
247
- const myChanges = [
248
- { del: changes.del },
249
- { create: changes.create },
250
- { update: changes.update },
251
- ];
252
- yield Promise.all(myChanges.map((change) => __awaiter(this, void 0, void 0, function* () {
253
- switch (true) {
254
- case change.del && change.del.length > 0:
255
- if (change.del)
256
- yield this.deleteRoles(change.del);
257
- break;
258
- case change.create && change.create.length > 0:
259
- yield this.createRoles(changes.create); //TODO: fix this tho change.create
260
- break;
261
- case change.update && change.update.length > 0:
262
- if (change.update)
263
- yield this.updateRoles(change.update, existing);
264
- break;
265
- default:
266
- break;
267
- }
268
- })));
218
+ async processChanges(assets) {
219
+ const { roles } = assets;
220
+ // Do nothing if not set
221
+ if (!roles)
222
+ return;
223
+ // Gets roles from destination tenant
224
+ const existing = await this.getType();
225
+ const changes = (0, calculateChanges_1.calculateChanges)({
226
+ handler: this,
227
+ assets: roles,
228
+ existing,
229
+ identifiers: this.identifiers,
230
+ allowDelete: !!this.config('AUTH0_ALLOW_DELETE'),
269
231
  });
232
+ logger_1.default.debug(`Start processChanges for roles [delete:${changes.del.length}] [update:${changes.update.length}], [create:${changes.create.length}]`);
233
+ const myChanges = [
234
+ { del: changes.del },
235
+ { create: changes.create },
236
+ { update: changes.update },
237
+ ];
238
+ await Promise.all(myChanges.map(async (change) => {
239
+ switch (true) {
240
+ case change.del && change.del.length > 0:
241
+ if (change.del)
242
+ await this.deleteRoles(change.del);
243
+ break;
244
+ case change.create && change.create.length > 0:
245
+ await this.createRoles(changes.create);
246
+ break;
247
+ case change.update && change.update.length > 0:
248
+ if (change.update)
249
+ await this.updateRoles(change.update, existing);
250
+ break;
251
+ default:
252
+ break;
253
+ }
254
+ }));
270
255
  }
271
256
  }
272
257
  exports.default = RolesHandler;
273
258
  __decorate([
274
259
  (0, default_1.order)('60')
275
260
  ], RolesHandler.prototype, "processChanges", null);
276
- //# sourceMappingURL=roles.js.map