auth0-deploy-cli 8.22.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 +31 -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 +17 -16
  120. package/lib/tools/auth0/handlers/clients.js +120 -106
  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 -2
  160. package/lib/tools/auth0/handlers/resourceServers.js +94 -105
  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 +13 -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 +11 -10
  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
@@ -38,15 +38,6 @@ 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
  };
@@ -54,98 +45,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
54
45
  exports.schema = void 0;
55
46
  const logger_1 = __importDefault(require("../../../logger"));
56
47
  const default_1 = __importStar(require("./default"));
57
- class ThemesHandler extends default_1.default {
58
- constructor(options) {
59
- super(Object.assign(Object.assign({}, options), { type: 'themes', id: 'themeId' }));
60
- }
61
- objString(theme) {
62
- return theme.displayName || JSON.stringify(theme);
63
- }
64
- getType() {
65
- return __awaiter(this, void 0, void 0, function* () {
66
- if (!this.existing) {
67
- this.existing = yield this.getThemes();
68
- }
69
- return this.existing;
70
- });
71
- }
72
- processChanges(assets) {
73
- return __awaiter(this, void 0, void 0, function* () {
74
- const { themes } = assets;
75
- // Non existing section means themes doesn't need to be processed
76
- if (!themes) {
77
- return;
78
- }
79
- // Empty array means themes should be deleted
80
- if (themes.length === 0) {
81
- return this.deleteThemes();
82
- }
83
- return this.updateThemes(themes);
84
- });
85
- }
86
- deleteThemes() {
87
- return __awaiter(this, void 0, void 0, function* () {
88
- if (!this.config('AUTH0_ALLOW_DELETE')) {
89
- return;
90
- }
91
- // if theme exists we need to delete it
92
- const currentThemes = yield this.getThemes();
93
- if (currentThemes === null || currentThemes.length === 0) {
94
- return;
95
- }
96
- const currentTheme = currentThemes[0];
97
- yield this.client.branding.deleteTheme({ themeId: currentTheme.themeId });
98
- this.deleted += 1;
99
- this.didDelete(currentTheme);
100
- });
101
- }
102
- updateThemes(themes) {
103
- return __awaiter(this, void 0, void 0, function* () {
104
- if (themes.length > 1) {
105
- logger_1.default.warn('Only one theme is supported per tenant');
106
- }
107
- const currentThemes = yield this.getThemes();
108
- const themeReqPayload = (() => {
109
- // Removing themeId from update and create payloads, otherwise API will error
110
- // Theme ID may be required to handle if `--export_ids=true`
111
- const payload = themes[0];
112
- //@ts-ignore to quell non-optional themeId property, but we know that it's ok to delete
113
- delete payload.themeId;
114
- return payload;
115
- })();
116
- if (currentThemes === null || currentThemes.length === 0) {
117
- yield this.client.branding.createTheme(themeReqPayload);
118
- }
119
- else {
120
- const currentTheme = currentThemes[0];
121
- // if theme exists, overwrite it otherwise create it
122
- yield this.client.branding.updateTheme({ themeId: currentTheme.themeId }, themeReqPayload);
123
- }
124
- this.updated += 1;
125
- this.didUpdate(themes[0]);
126
- });
127
- }
128
- getThemes() {
129
- return __awaiter(this, void 0, void 0, function* () {
130
- try {
131
- const { data: theme } = yield this.client.branding.getDefaultTheme();
132
- return [theme];
133
- }
134
- catch (err) {
135
- if (err.statusCode === 404)
136
- return [];
137
- if (err.statusCode === 400)
138
- return null;
139
- // Errors other than 404 (theme doesn't exist) or 400 (no-code not enabled) shouldn't be expected
140
- throw err;
141
- }
142
- });
143
- }
144
- }
145
- exports.default = ThemesHandler;
146
- __decorate([
147
- (0, default_1.order)('60') // Run after custom domains.
148
- ], ThemesHandler.prototype, "processChanges", null);
149
48
  /**
150
49
  * Schema
151
50
  */
@@ -558,4 +457,89 @@ exports.schema = {
558
457
  type: 'object',
559
458
  },
560
459
  };
561
- //# sourceMappingURL=themes.js.map
460
+ class ThemesHandler extends default_1.default {
461
+ constructor(options) {
462
+ super({
463
+ ...options,
464
+ type: 'themes',
465
+ id: 'themeId',
466
+ });
467
+ }
468
+ objString(theme) {
469
+ return theme.displayName || JSON.stringify(theme);
470
+ }
471
+ async getType() {
472
+ if (!this.existing) {
473
+ this.existing = await this.getThemes();
474
+ }
475
+ return this.existing;
476
+ }
477
+ async processChanges(assets) {
478
+ const { themes } = assets;
479
+ // Non existing section means themes doesn't need to be processed
480
+ if (!themes) {
481
+ return;
482
+ }
483
+ // Empty array means themes should be deleted
484
+ if (themes.length === 0) {
485
+ return this.deleteThemes();
486
+ }
487
+ return this.updateThemes(themes);
488
+ }
489
+ async deleteThemes() {
490
+ if (!this.config('AUTH0_ALLOW_DELETE')) {
491
+ return;
492
+ }
493
+ // if theme exists we need to delete it
494
+ const currentThemes = await this.getThemes();
495
+ if (currentThemes === null || currentThemes.length === 0) {
496
+ return;
497
+ }
498
+ const currentTheme = currentThemes[0];
499
+ await this.client.branding.themes.delete(currentTheme.themeId);
500
+ this.deleted += 1;
501
+ this.didDelete(currentTheme);
502
+ }
503
+ async updateThemes(themes) {
504
+ if (themes.length > 1) {
505
+ logger_1.default.warn('Only one theme is supported per tenant');
506
+ }
507
+ const currentThemes = await this.getThemes();
508
+ const themeReqPayload = (() => {
509
+ // Removing themeId from update and create payloads, otherwise API will error
510
+ // Theme ID may be required to handle if `--export_ids=true`
511
+ const payload = themes[0];
512
+ // @ts-ignore to quell non-optional themeId property, but we know that it's ok to delete
513
+ delete payload.themeId;
514
+ return payload;
515
+ })();
516
+ if (currentThemes === null || currentThemes.length === 0) {
517
+ await this.client.branding.themes.create(themeReqPayload);
518
+ }
519
+ else {
520
+ const currentTheme = currentThemes[0];
521
+ // if theme exists, overwrite it otherwise create it
522
+ await this.client.branding.themes.update(currentTheme.themeId, themeReqPayload);
523
+ }
524
+ this.updated += 1;
525
+ this.didUpdate(themes[0]);
526
+ }
527
+ async getThemes() {
528
+ try {
529
+ const theme = await this.client.branding.themes.getDefault();
530
+ return [theme];
531
+ }
532
+ catch (err) {
533
+ if (err.statusCode === 404)
534
+ return [];
535
+ if (err.statusCode === 400)
536
+ return null;
537
+ // Errors other than 404 (theme doesn't exist) or 400 (no-code not enabled) shouldn't be expected
538
+ throw err;
539
+ }
540
+ }
541
+ }
542
+ exports.default = ThemesHandler;
543
+ __decorate([
544
+ (0, default_1.order)('60') // Run after custom domains.
545
+ ], ThemesHandler.prototype, "processChanges", null);
@@ -0,0 +1,60 @@
1
+ import { Management } from 'auth0';
2
+ import DefaultHandler from './default';
3
+ import { Asset, Assets } from '../../../types';
4
+ export type TokenExchangeProfile = Management.TokenExchangeProfileResponseContent;
5
+ export declare const schema: {
6
+ type: string;
7
+ items: {
8
+ type: string;
9
+ properties: {
10
+ name: {
11
+ type: string;
12
+ description: string;
13
+ };
14
+ id: {
15
+ type: string;
16
+ description: string;
17
+ };
18
+ subject_token_type: {
19
+ type: string;
20
+ description: string;
21
+ };
22
+ action: {
23
+ type: string;
24
+ description: string;
25
+ };
26
+ type: {
27
+ type: string;
28
+ enum: string[];
29
+ description: string;
30
+ };
31
+ created_at: {
32
+ type: string;
33
+ format: string;
34
+ description: string;
35
+ };
36
+ updated_at: {
37
+ type: string;
38
+ format: string;
39
+ description: string;
40
+ };
41
+ };
42
+ required: string[];
43
+ };
44
+ };
45
+ export default class TokenExchangeProfilesHandler extends DefaultHandler {
46
+ existing: TokenExchangeProfile[];
47
+ private actions;
48
+ constructor(config: DefaultHandler);
49
+ private sanitizeForExport;
50
+ private sanitizeForAPI;
51
+ getActions(): Promise<Asset[]>;
52
+ getType(): Promise<TokenExchangeProfile[]>;
53
+ processChanges(assets: Assets): Promise<void>;
54
+ createTokenExchangeProfile(profile: TokenExchangeProfile): Promise<TokenExchangeProfile>;
55
+ createTokenExchangeProfiles(creates: TokenExchangeProfile[]): Promise<void>;
56
+ updateTokenExchangeProfile(profile: TokenExchangeProfile): Promise<void>;
57
+ updateTokenExchangeProfiles(updates: TokenExchangeProfile[]): Promise<void>;
58
+ deleteTokenExchangeProfile(profile: TokenExchangeProfile): Promise<void>;
59
+ deleteTokenExchangeProfiles(data: TokenExchangeProfile[]): Promise<void>;
60
+ }
@@ -0,0 +1,271 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __importDefault = (this && this.__importDefault) || function (mod) {
42
+ return (mod && mod.__esModule) ? mod : { "default": mod };
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.schema = void 0;
46
+ const default_1 = __importStar(require("./default"));
47
+ const client_1 = require("../client");
48
+ const logger_1 = __importDefault(require("../../../logger"));
49
+ exports.schema = {
50
+ type: 'array',
51
+ items: {
52
+ type: 'object',
53
+ properties: {
54
+ name: {
55
+ type: 'string',
56
+ description: 'The name of the token exchange profile',
57
+ },
58
+ id: {
59
+ type: 'string',
60
+ description: 'The unique identifier of the token exchange profile',
61
+ },
62
+ subject_token_type: {
63
+ type: 'string',
64
+ description: 'The URI representing the subject token type',
65
+ },
66
+ action: {
67
+ type: 'string',
68
+ description: 'The name of the action associated with this profile',
69
+ },
70
+ type: {
71
+ type: 'string',
72
+ enum: ['custom_authentication'],
73
+ description: 'The type of token exchange profile',
74
+ },
75
+ created_at: {
76
+ type: 'string',
77
+ format: 'date-time',
78
+ description: 'The timestamp when the profile was created',
79
+ },
80
+ updated_at: {
81
+ type: 'string',
82
+ format: 'date-time',
83
+ description: 'The timestamp when the profile was last updated',
84
+ },
85
+ },
86
+ required: ['name', 'subject_token_type', 'action', 'type'],
87
+ },
88
+ };
89
+ class TokenExchangeProfilesHandler extends default_1.default {
90
+ constructor(config) {
91
+ super({
92
+ ...config,
93
+ type: 'tokenExchangeProfiles',
94
+ id: 'id',
95
+ identifiers: ['id', 'name'],
96
+ // Only name and subject_token_type can be updated
97
+ stripUpdateFields: ['id', 'created_at', 'updated_at', 'action_id', 'type'],
98
+ stripCreateFields: ['id', 'created_at', 'updated_at'],
99
+ });
100
+ }
101
+ sanitizeForExport(profile, actions) {
102
+ if (profile.action_id) {
103
+ const action = actions?.find((a) => a.id === profile.action_id);
104
+ if (action) {
105
+ const { action_id, ...rest } = profile;
106
+ return { ...rest, action: action.name };
107
+ }
108
+ else {
109
+ logger_1.default.warn(`Token exchange profile "${profile.name}" references action with ID "${profile.action_id}" which was not found`);
110
+ }
111
+ }
112
+ return profile;
113
+ }
114
+ sanitizeForAPI(profile, actions) {
115
+ if (profile.action) {
116
+ const foundAction = actions?.find((a) => a.name === profile.action);
117
+ if (foundAction) {
118
+ const { action, ...rest } = profile;
119
+ return { ...rest, action_id: foundAction.id };
120
+ }
121
+ else {
122
+ throw new Error(`Token exchange profile "${profile.name}" references action "${profile.action}" which was not found`);
123
+ }
124
+ }
125
+ if (!profile.action_id) {
126
+ throw new Error(`Token exchange profile "${profile.name}" is missing action reference. ` +
127
+ `Expected "action" (name) or "action_id" (ID) field.`);
128
+ }
129
+ return profile;
130
+ }
131
+ async getActions() {
132
+ if (this.actions)
133
+ return this.actions;
134
+ this.actions = await (0, client_1.paginate)(this.client.actions.list, {
135
+ paginate: true,
136
+ });
137
+ return this.actions;
138
+ }
139
+ async getType() {
140
+ if (this.existing)
141
+ return this.existing;
142
+ try {
143
+ // Fetch all token exchange profiles
144
+ const profiles = await (0, client_1.paginate)(this.client.tokenExchangeProfiles.list, {
145
+ paginate: true,
146
+ });
147
+ // Fetch all actions to map action_id to action name
148
+ const actions = await this.getActions();
149
+ // Map action_id to action name for each profile
150
+ this.existing = profiles.map((profile) => this.sanitizeForExport(profile, actions));
151
+ return this.existing;
152
+ }
153
+ catch (err) {
154
+ if (err.statusCode === 403) {
155
+ logger_1.default.warn('Token Exchange Profiles feature is not available on this tenant. Please contact Auth0 support to enable this feature.');
156
+ return [];
157
+ }
158
+ throw err;
159
+ }
160
+ }
161
+ async processChanges(assets) {
162
+ const { tokenExchangeProfiles } = assets;
163
+ // Do nothing if not set
164
+ if (!tokenExchangeProfiles)
165
+ return;
166
+ // Fetch actions to resolve action names to IDs
167
+ const actions = await this.getActions();
168
+ // Map action names to action_ids before processing
169
+ const sanitizedProfiles = tokenExchangeProfiles.map((profile) => this.sanitizeForAPI(profile, actions));
170
+ // Create modified assets with sanitized profiles
171
+ const modifiedAssets = {
172
+ ...assets,
173
+ tokenExchangeProfiles: sanitizedProfiles,
174
+ };
175
+ // Calculate changes
176
+ const { del, update, create, conflicts } = await this.calcChanges(modifiedAssets);
177
+ logger_1.default.debug(`Start processChanges for tokenExchangeProfiles [delete:${del.length}] [update:${update.length}], [create:${create.length}], [conflicts:${conflicts.length}]`);
178
+ // Process changes in order: delete, create, update
179
+ const changes = [{ del }, { create }, { update }];
180
+ await Promise.all(changes.map(async (change) => {
181
+ switch (true) {
182
+ case change.del && change.del.length > 0:
183
+ await this.deleteTokenExchangeProfiles(change.del || []);
184
+ break;
185
+ case change.create && change.create.length > 0:
186
+ await this.createTokenExchangeProfiles(change.create);
187
+ break;
188
+ case change.update && change.update.length > 0:
189
+ if (change.update)
190
+ await this.updateTokenExchangeProfiles(change.update);
191
+ break;
192
+ default:
193
+ break;
194
+ }
195
+ }));
196
+ }
197
+ async createTokenExchangeProfile(profile) {
198
+ const { id, created_at, updated_at, ...createParams } = profile;
199
+ const created = await this.client.tokenExchangeProfiles.create(createParams);
200
+ return created;
201
+ }
202
+ async createTokenExchangeProfiles(creates) {
203
+ await this.client.pool
204
+ .addEachTask({
205
+ data: creates || [],
206
+ generator: (item) => this.createTokenExchangeProfile(item)
207
+ .then((data) => {
208
+ this.didCreate(data);
209
+ this.created += 1;
210
+ })
211
+ .catch((err) => {
212
+ throw new Error(`Problem creating ${this.type} ${this.objString(item)}\n${err}`);
213
+ }),
214
+ })
215
+ .promise();
216
+ }
217
+ async updateTokenExchangeProfile(profile) {
218
+ const { id, created_at, updated_at, action_id, type, ...updateParams } = profile;
219
+ if (!id) {
220
+ throw new Error(`Cannot update token exchange profile "${profile.name}" - missing id`);
221
+ }
222
+ await this.client.tokenExchangeProfiles.update(id, updateParams);
223
+ }
224
+ async updateTokenExchangeProfiles(updates) {
225
+ await this.client.pool
226
+ .addEachTask({
227
+ data: updates || [],
228
+ generator: (item) => this.updateTokenExchangeProfile(item)
229
+ .then(() => {
230
+ this.didUpdate(item);
231
+ this.updated += 1;
232
+ })
233
+ .catch((err) => {
234
+ throw new Error(`Problem updating ${this.type} ${this.objString(item)}\n${err}`);
235
+ }),
236
+ })
237
+ .promise();
238
+ }
239
+ async deleteTokenExchangeProfile(profile) {
240
+ if (!profile.id) {
241
+ throw new Error(`Cannot delete token exchange profile "${profile.name}" - missing id`);
242
+ }
243
+ await this.client.tokenExchangeProfiles.delete(profile.id);
244
+ }
245
+ async deleteTokenExchangeProfiles(data) {
246
+ if (this.config('AUTH0_ALLOW_DELETE') === 'true' ||
247
+ this.config('AUTH0_ALLOW_DELETE') === true) {
248
+ await this.client.pool
249
+ .addEachTask({
250
+ data: data || [],
251
+ generator: (item) => this.deleteTokenExchangeProfile(item)
252
+ .then(() => {
253
+ this.didDelete(item);
254
+ this.deleted += 1;
255
+ })
256
+ .catch((err) => {
257
+ throw new Error(`Problem deleting ${this.type} ${this.objString(item)}\n${err}`);
258
+ }),
259
+ })
260
+ .promise();
261
+ }
262
+ else {
263
+ logger_1.default.warn(`Detected the following tokenExchangeProfile should be deleted. Doing so may be destructive.\nYou can enable deletes by setting 'AUTH0_ALLOW_DELETE' to true in the config
264
+ \n${data.map((i) => this.objString(i)).join('\n')}`);
265
+ }
266
+ }
267
+ }
268
+ exports.default = TokenExchangeProfilesHandler;
269
+ __decorate([
270
+ (0, default_1.order)('65')
271
+ ], TokenExchangeProfilesHandler.prototype, "processChanges", null);