@workos-inc/widgets 1.18.0 → 1.19.0-next.1790102694835

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 (340) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/admin-portal-audit-log-streaming.client.cjs +16 -20
  3. package/dist/cjs/admin-portal-audit-log-streaming.client.cjs.map +1 -1
  4. package/dist/cjs/admin-portal-audit-log-streaming.client.d.cts +2 -0
  5. package/dist/cjs/admin-portal-domain-verification.client.cjs +42 -34
  6. package/dist/cjs/admin-portal-domain-verification.client.cjs.map +1 -1
  7. package/dist/cjs/admin-portal-domain-verification.client.d.cts +2 -0
  8. package/dist/cjs/admin-portal-sso-connection.client.cjs +77 -50
  9. package/dist/cjs/admin-portal-sso-connection.client.cjs.map +1 -1
  10. package/dist/cjs/api/client-graphql/client.cjs +2 -1
  11. package/dist/cjs/api/client-graphql/client.cjs.map +1 -1
  12. package/dist/cjs/api/client-graphql/generated.cjs +2295 -6
  13. package/dist/cjs/api/client-graphql/generated.cjs.map +1 -1
  14. package/dist/cjs/api/client-graphql/generated.d.cts +2989 -7
  15. package/dist/cjs/api/client-graphql/hooks.cjs +67 -0
  16. package/dist/cjs/api/client-graphql/hooks.cjs.map +1 -0
  17. package/dist/cjs/api/client-graphql/hooks.d.cts +44 -0
  18. package/dist/cjs/api/endpoint.cjs +43 -27
  19. package/dist/cjs/api/endpoint.cjs.map +1 -1
  20. package/dist/cjs/api/endpoint.d.cts +53 -20
  21. package/dist/cjs/api-keys.client.cjs +1 -2
  22. package/dist/cjs/api-keys.client.cjs.map +1 -1
  23. package/dist/cjs/directory-sync.client.cjs +54 -13
  24. package/dist/cjs/directory-sync.client.cjs.map +1 -1
  25. package/dist/cjs/experimental/api/fetch.cjs +44 -16
  26. package/dist/cjs/experimental/api/fetch.cjs.map +1 -1
  27. package/dist/cjs/experimental/api/fetch.d.cts +38 -9
  28. package/dist/cjs/experimental/api/react-query.cjs +75 -38
  29. package/dist/cjs/experimental/api/react-query.cjs.map +1 -1
  30. package/dist/cjs/experimental/api/react-query.d.cts +57 -24
  31. package/dist/cjs/experimental/api/swr.cjs +77 -35
  32. package/dist/cjs/experimental/api/swr.cjs.map +1 -1
  33. package/dist/cjs/experimental/api/swr.d.cts +49 -20
  34. package/dist/cjs/index.d.cts +4 -0
  35. package/dist/cjs/lib/add-mfa-dialog.cjs +39 -33
  36. package/dist/cjs/lib/add-mfa-dialog.cjs.map +1 -1
  37. package/dist/cjs/lib/admin-portal-audit-log-streaming.cjs.map +1 -1
  38. package/dist/cjs/lib/admin-portal-audit-log-streaming.d.cts +5 -3
  39. package/dist/cjs/lib/admin-portal-domain-verification.cjs.map +1 -1
  40. package/dist/cjs/lib/admin-portal-domain-verification.d.cts +4 -2
  41. package/dist/cjs/lib/api/api-key.cjs +128 -40
  42. package/dist/cjs/lib/api/api-key.cjs.map +1 -1
  43. package/dist/cjs/lib/api/api-key.d.cts +20 -9
  44. package/dist/cjs/lib/api/me.cjs +70 -0
  45. package/dist/cjs/lib/api/me.cjs.map +1 -0
  46. package/dist/cjs/lib/api/me.d.cts +37 -0
  47. package/dist/cjs/lib/api/pipes.cjs +419 -0
  48. package/dist/cjs/lib/api/pipes.cjs.map +1 -0
  49. package/dist/cjs/lib/api/pipes.d.cts +69 -0
  50. package/dist/cjs/lib/api/user-api-key.cjs +116 -45
  51. package/dist/cjs/lib/api/user-api-key.cjs.map +1 -1
  52. package/dist/cjs/lib/api/user-api-key.d.cts +17 -12
  53. package/dist/cjs/lib/api/user.cjs +170 -51
  54. package/dist/cjs/lib/api/user.cjs.map +1 -1
  55. package/dist/cjs/lib/api/user.d.cts +4 -25
  56. package/dist/cjs/lib/api-keys/api-key-details-dialog.cjs +2 -2
  57. package/dist/cjs/lib/api-keys/api-key-details-dialog.cjs.map +1 -1
  58. package/dist/cjs/lib/api-keys/create-api-key.cjs +1 -2
  59. package/dist/cjs/lib/api-keys/create-api-key.cjs.map +1 -1
  60. package/dist/cjs/lib/api-keys/revoke-api-key-dialog.cjs +5 -13
  61. package/dist/cjs/lib/api-keys/revoke-api-key-dialog.cjs.map +1 -1
  62. package/dist/cjs/lib/change-email-dialog.cjs +39 -26
  63. package/dist/cjs/lib/change-email-dialog.cjs.map +1 -1
  64. package/dist/cjs/lib/change-email-dialog.d.cts +4 -3
  65. package/dist/cjs/lib/change-password-dialog.cjs +14 -13
  66. package/dist/cjs/lib/change-password-dialog.cjs.map +1 -1
  67. package/dist/cjs/lib/client-graphql-result.cjs +116 -0
  68. package/dist/cjs/lib/client-graphql-result.cjs.map +1 -0
  69. package/dist/cjs/lib/client-graphql-result.d.cts +32 -0
  70. package/dist/cjs/lib/delete-domain-dialog.cjs.map +1 -1
  71. package/dist/cjs/lib/delete-domain-dialog.d.cts +3 -4
  72. package/dist/cjs/lib/delete-user-dialog.cjs.map +1 -1
  73. package/dist/cjs/lib/delete-user-dialog.d.cts +3 -2
  74. package/dist/cjs/lib/directory-sync.cjs +59 -23
  75. package/dist/cjs/lib/directory-sync.cjs.map +1 -1
  76. package/dist/cjs/lib/directory-sync.d.cts +23 -5
  77. package/dist/cjs/lib/domain-actions.cjs.map +1 -1
  78. package/dist/cjs/lib/domain-actions.d.cts +3 -4
  79. package/dist/cjs/lib/domain-item.cjs.map +1 -1
  80. package/dist/cjs/lib/domain-item.d.cts +3 -4
  81. package/dist/cjs/lib/edit-user-profile-dialog.cjs +19 -19
  82. package/dist/cjs/lib/edit-user-profile-dialog.cjs.map +1 -1
  83. package/dist/cjs/lib/edit-user-profile-dialog.d.cts +4 -3
  84. package/dist/cjs/lib/edit-user-role-dialog.cjs +3 -8
  85. package/dist/cjs/lib/edit-user-role-dialog.cjs.map +1 -1
  86. package/dist/cjs/lib/edit-user-role-dialog.d.cts +5 -4
  87. package/dist/cjs/lib/elevated-access.cjs +22 -13
  88. package/dist/cjs/lib/elevated-access.cjs.map +1 -1
  89. package/dist/cjs/lib/elevated-access.d.cts +1 -1
  90. package/dist/cjs/lib/invite-user-dialog.cjs +9 -15
  91. package/dist/cjs/lib/invite-user-dialog.cjs.map +1 -1
  92. package/dist/cjs/lib/logout-all-sessions-dialog.cjs +13 -5
  93. package/dist/cjs/lib/logout-all-sessions-dialog.cjs.map +1 -1
  94. package/dist/cjs/lib/logout-all-sessions-dialog.d.cts +2 -2
  95. package/dist/cjs/lib/logout-dialog.cjs +10 -6
  96. package/dist/cjs/lib/logout-dialog.cjs.map +1 -1
  97. package/dist/cjs/lib/logout-dialog.d.cts +3 -4
  98. package/dist/cjs/lib/name-server-icon.cjs.map +1 -1
  99. package/dist/cjs/lib/name-server-icon.d.cts +3 -4
  100. package/dist/cjs/lib/oauth-icons.cjs +13 -2
  101. package/dist/cjs/lib/oauth-icons.cjs.map +1 -1
  102. package/dist/cjs/lib/oauth-icons.d.cts +2 -1
  103. package/dist/cjs/lib/organization-switcher.cjs +3 -3
  104. package/dist/cjs/lib/organization-switcher.cjs.map +1 -1
  105. package/dist/cjs/lib/organization-switcher.d.cts +6 -3
  106. package/dist/cjs/lib/password-error-utils.cjs +28 -43
  107. package/dist/cjs/lib/password-error-utils.cjs.map +1 -1
  108. package/dist/cjs/lib/password-error-utils.d.cts +3 -13
  109. package/dist/cjs/lib/pipes-admin.cjs +109 -79
  110. package/dist/cjs/lib/pipes-admin.cjs.map +1 -1
  111. package/dist/cjs/lib/pipes-admin.d.cts +1 -1
  112. package/dist/cjs/lib/pipes.cjs +133 -60
  113. package/dist/cjs/lib/pipes.cjs.map +1 -1
  114. package/dist/cjs/lib/resend-invite-dialog.cjs.map +1 -1
  115. package/dist/cjs/lib/resend-invite-dialog.d.cts +3 -2
  116. package/dist/cjs/lib/reset-mfa-dialog.cjs +11 -3
  117. package/dist/cjs/lib/reset-mfa-dialog.cjs.map +1 -1
  118. package/dist/cjs/lib/revoke-invite-dialog.cjs.map +1 -1
  119. package/dist/cjs/lib/revoke-invite-dialog.d.cts +3 -2
  120. package/dist/cjs/lib/set-password-dialog.cjs +16 -3
  121. package/dist/cjs/lib/set-password-dialog.cjs.map +1 -1
  122. package/dist/cjs/lib/use-security-settings.cjs +5 -25
  123. package/dist/cjs/lib/use-security-settings.cjs.map +1 -1
  124. package/dist/cjs/lib/use-security-settings.d.cts +2 -2
  125. package/dist/cjs/lib/user-actions-dropdown.cjs +2 -6
  126. package/dist/cjs/lib/user-actions-dropdown.cjs.map +1 -1
  127. package/dist/cjs/lib/user-actions-dropdown.d.cts +3 -2
  128. package/dist/cjs/lib/user-api-keys/revoke-user-api-key-dialog.cjs +3 -10
  129. package/dist/cjs/lib/user-api-keys/revoke-user-api-key-dialog.cjs.map +1 -1
  130. package/dist/cjs/lib/user-profile.cjs +10 -5
  131. package/dist/cjs/lib/user-profile.cjs.map +1 -1
  132. package/dist/cjs/lib/user-profile.d.cts +5 -2
  133. package/dist/cjs/lib/user-security.cjs +4 -5
  134. package/dist/cjs/lib/user-security.cjs.map +1 -1
  135. package/dist/cjs/lib/user-security.d.cts +6 -2
  136. package/dist/cjs/lib/user-sessions.cjs +2 -2
  137. package/dist/cjs/lib/user-sessions.cjs.map +1 -1
  138. package/dist/cjs/lib/user-sessions.d.cts +6 -4
  139. package/dist/cjs/lib/users-filter.cjs.map +1 -1
  140. package/dist/cjs/lib/users-filter.d.cts +4 -3
  141. package/dist/cjs/lib/users-management-context.cjs.map +1 -1
  142. package/dist/cjs/lib/users-management-context.d.cts +4 -18
  143. package/dist/cjs/lib/users-management-state.cjs.map +1 -1
  144. package/dist/cjs/lib/users-management-state.d.cts +4 -25
  145. package/dist/cjs/lib/users-management.cjs.map +1 -1
  146. package/dist/cjs/lib/users-management.d.cts +7 -7
  147. package/dist/cjs/lib/view-dns-record-dialog.cjs.map +1 -1
  148. package/dist/cjs/lib/view-dns-record-dialog.d.cts +3 -4
  149. package/dist/cjs/organization-switcher.client.cjs +7 -6
  150. package/dist/cjs/organization-switcher.client.cjs.map +1 -1
  151. package/dist/cjs/organization-switcher.client.d.cts +3 -1
  152. package/dist/cjs/pipes-admin.client.cjs +7 -4
  153. package/dist/cjs/pipes-admin.client.cjs.map +1 -1
  154. package/dist/cjs/pipes.client.cjs +17 -16
  155. package/dist/cjs/pipes.client.cjs.map +1 -1
  156. package/dist/cjs/user-CgBDfSHl.d.cts +502 -0
  157. package/dist/cjs/user-profile.client.cjs +3 -3
  158. package/dist/cjs/user-profile.client.cjs.map +1 -1
  159. package/dist/cjs/user-profile.client.d.cts +4 -1
  160. package/dist/cjs/user-security.client.cjs +25 -14
  161. package/dist/cjs/user-security.client.cjs.map +1 -1
  162. package/dist/cjs/user-security.client.d.cts +2 -0
  163. package/dist/cjs/user-sessions.client.cjs +12 -29
  164. package/dist/cjs/user-sessions.client.cjs.map +1 -1
  165. package/dist/cjs/user-sessions.client.d.cts +2 -0
  166. package/dist/cjs/users-management.client.cjs +1 -4
  167. package/dist/cjs/users-management.client.cjs.map +1 -1
  168. package/dist/cjs/users-management.client.d.cts +4 -1
  169. package/dist/cjs/utils.cjs +2 -1
  170. package/dist/cjs/utils.cjs.map +1 -1
  171. package/dist/esm/admin-portal-audit-log-streaming.client.d.ts +2 -0
  172. package/dist/esm/admin-portal-audit-log-streaming.client.js +20 -23
  173. package/dist/esm/admin-portal-audit-log-streaming.client.js.map +1 -1
  174. package/dist/esm/admin-portal-domain-verification.client.d.ts +2 -0
  175. package/dist/esm/admin-portal-domain-verification.client.js +45 -39
  176. package/dist/esm/admin-portal-domain-verification.client.js.map +1 -1
  177. package/dist/esm/admin-portal-sso-connection.client.js +80 -52
  178. package/dist/esm/admin-portal-sso-connection.client.js.map +1 -1
  179. package/dist/esm/api/client-graphql/client.js +2 -1
  180. package/dist/esm/api/client-graphql/client.js.map +1 -1
  181. package/dist/esm/api/client-graphql/generated.d.ts +2989 -7
  182. package/dist/esm/api/client-graphql/generated.js +2203 -0
  183. package/dist/esm/api/client-graphql/generated.js.map +1 -1
  184. package/dist/esm/api/client-graphql/hooks.d.ts +44 -0
  185. package/dist/esm/api/client-graphql/hooks.js +43 -0
  186. package/dist/esm/api/client-graphql/hooks.js.map +1 -0
  187. package/dist/esm/api/endpoint.d.ts +53 -20
  188. package/dist/esm/api/endpoint.js +43 -27
  189. package/dist/esm/api/endpoint.js.map +1 -1
  190. package/dist/esm/api-keys.client.js +4 -2
  191. package/dist/esm/api-keys.client.js.map +1 -1
  192. package/dist/esm/directory-sync.client.js +56 -7
  193. package/dist/esm/directory-sync.client.js.map +1 -1
  194. package/dist/esm/experimental/api/fetch.d.ts +38 -9
  195. package/dist/esm/experimental/api/fetch.js +44 -16
  196. package/dist/esm/experimental/api/fetch.js.map +1 -1
  197. package/dist/esm/experimental/api/react-query.d.ts +57 -24
  198. package/dist/esm/experimental/api/react-query.js +75 -38
  199. package/dist/esm/experimental/api/react-query.js.map +1 -1
  200. package/dist/esm/experimental/api/swr.d.ts +49 -20
  201. package/dist/esm/experimental/api/swr.js +77 -35
  202. package/dist/esm/experimental/api/swr.js.map +1 -1
  203. package/dist/esm/index.d.ts +4 -0
  204. package/dist/esm/lib/add-mfa-dialog.js +39 -36
  205. package/dist/esm/lib/add-mfa-dialog.js.map +1 -1
  206. package/dist/esm/lib/admin-portal-audit-log-streaming.d.ts +5 -3
  207. package/dist/esm/lib/admin-portal-audit-log-streaming.js.map +1 -1
  208. package/dist/esm/lib/admin-portal-domain-verification.d.ts +4 -2
  209. package/dist/esm/lib/admin-portal-domain-verification.js.map +1 -1
  210. package/dist/esm/lib/api/api-key.d.ts +20 -9
  211. package/dist/esm/lib/api/api-key.js +124 -49
  212. package/dist/esm/lib/api/api-key.js.map +1 -1
  213. package/dist/esm/lib/api/me.d.ts +37 -0
  214. package/dist/esm/lib/api/me.js +37 -0
  215. package/dist/esm/lib/api/me.js.map +1 -0
  216. package/dist/esm/lib/api/pipes.d.ts +69 -0
  217. package/dist/esm/lib/api/pipes.js +380 -0
  218. package/dist/esm/lib/api/pipes.js.map +1 -0
  219. package/dist/esm/lib/api/user-api-key.d.ts +17 -12
  220. package/dist/esm/lib/api/user-api-key.js +113 -52
  221. package/dist/esm/lib/api/user-api-key.js.map +1 -1
  222. package/dist/esm/lib/api/user.d.ts +4 -25
  223. package/dist/esm/lib/api/user.js +173 -59
  224. package/dist/esm/lib/api/user.js.map +1 -1
  225. package/dist/esm/lib/api-keys/api-key-details-dialog.js +1 -3
  226. package/dist/esm/lib/api-keys/api-key-details-dialog.js.map +1 -1
  227. package/dist/esm/lib/api-keys/create-api-key.js +2 -2
  228. package/dist/esm/lib/api-keys/create-api-key.js.map +1 -1
  229. package/dist/esm/lib/api-keys/revoke-api-key-dialog.js +5 -15
  230. package/dist/esm/lib/api-keys/revoke-api-key-dialog.js.map +1 -1
  231. package/dist/esm/lib/change-email-dialog.d.ts +4 -3
  232. package/dist/esm/lib/change-email-dialog.js +39 -31
  233. package/dist/esm/lib/change-email-dialog.js.map +1 -1
  234. package/dist/esm/lib/change-password-dialog.js +14 -13
  235. package/dist/esm/lib/change-password-dialog.js.map +1 -1
  236. package/dist/esm/lib/client-graphql-result.d.ts +32 -0
  237. package/dist/esm/lib/client-graphql-result.js +89 -0
  238. package/dist/esm/lib/client-graphql-result.js.map +1 -0
  239. package/dist/esm/lib/delete-domain-dialog.d.ts +3 -4
  240. package/dist/esm/lib/delete-domain-dialog.js.map +1 -1
  241. package/dist/esm/lib/delete-user-dialog.d.ts +3 -2
  242. package/dist/esm/lib/delete-user-dialog.js.map +1 -1
  243. package/dist/esm/lib/directory-sync.d.ts +23 -5
  244. package/dist/esm/lib/directory-sync.js +46 -14
  245. package/dist/esm/lib/directory-sync.js.map +1 -1
  246. package/dist/esm/lib/domain-actions.d.ts +3 -4
  247. package/dist/esm/lib/domain-actions.js.map +1 -1
  248. package/dist/esm/lib/domain-item.d.ts +3 -4
  249. package/dist/esm/lib/domain-item.js.map +1 -1
  250. package/dist/esm/lib/edit-user-profile-dialog.d.ts +4 -3
  251. package/dist/esm/lib/edit-user-profile-dialog.js +19 -19
  252. package/dist/esm/lib/edit-user-profile-dialog.js.map +1 -1
  253. package/dist/esm/lib/edit-user-role-dialog.d.ts +5 -4
  254. package/dist/esm/lib/edit-user-role-dialog.js +7 -11
  255. package/dist/esm/lib/edit-user-role-dialog.js.map +1 -1
  256. package/dist/esm/lib/elevated-access.d.ts +1 -1
  257. package/dist/esm/lib/elevated-access.js +20 -11
  258. package/dist/esm/lib/elevated-access.js.map +1 -1
  259. package/dist/esm/lib/invite-user-dialog.js +10 -16
  260. package/dist/esm/lib/invite-user-dialog.js.map +1 -1
  261. package/dist/esm/lib/logout-all-sessions-dialog.d.ts +2 -2
  262. package/dist/esm/lib/logout-all-sessions-dialog.js +16 -5
  263. package/dist/esm/lib/logout-all-sessions-dialog.js.map +1 -1
  264. package/dist/esm/lib/logout-dialog.d.ts +3 -4
  265. package/dist/esm/lib/logout-dialog.js +12 -8
  266. package/dist/esm/lib/logout-dialog.js.map +1 -1
  267. package/dist/esm/lib/name-server-icon.d.ts +3 -4
  268. package/dist/esm/lib/name-server-icon.js.map +1 -1
  269. package/dist/esm/lib/oauth-icons.d.ts +2 -1
  270. package/dist/esm/lib/oauth-icons.js +11 -1
  271. package/dist/esm/lib/oauth-icons.js.map +1 -1
  272. package/dist/esm/lib/organization-switcher.d.ts +6 -3
  273. package/dist/esm/lib/organization-switcher.js +3 -3
  274. package/dist/esm/lib/organization-switcher.js.map +1 -1
  275. package/dist/esm/lib/password-error-utils.d.ts +3 -13
  276. package/dist/esm/lib/password-error-utils.js +28 -43
  277. package/dist/esm/lib/password-error-utils.js.map +1 -1
  278. package/dist/esm/lib/pipes-admin.d.ts +1 -1
  279. package/dist/esm/lib/pipes-admin.js +105 -78
  280. package/dist/esm/lib/pipes-admin.js.map +1 -1
  281. package/dist/esm/lib/pipes.js +140 -71
  282. package/dist/esm/lib/pipes.js.map +1 -1
  283. package/dist/esm/lib/resend-invite-dialog.d.ts +3 -2
  284. package/dist/esm/lib/resend-invite-dialog.js.map +1 -1
  285. package/dist/esm/lib/reset-mfa-dialog.js +11 -3
  286. package/dist/esm/lib/reset-mfa-dialog.js.map +1 -1
  287. package/dist/esm/lib/revoke-invite-dialog.d.ts +3 -2
  288. package/dist/esm/lib/revoke-invite-dialog.js.map +1 -1
  289. package/dist/esm/lib/set-password-dialog.js +16 -3
  290. package/dist/esm/lib/set-password-dialog.js.map +1 -1
  291. package/dist/esm/lib/use-security-settings.d.ts +2 -2
  292. package/dist/esm/lib/use-security-settings.js +5 -27
  293. package/dist/esm/lib/use-security-settings.js.map +1 -1
  294. package/dist/esm/lib/user-actions-dropdown.d.ts +3 -2
  295. package/dist/esm/lib/user-actions-dropdown.js +2 -6
  296. package/dist/esm/lib/user-actions-dropdown.js.map +1 -1
  297. package/dist/esm/lib/user-api-keys/revoke-user-api-key-dialog.js +3 -11
  298. package/dist/esm/lib/user-api-keys/revoke-user-api-key-dialog.js.map +1 -1
  299. package/dist/esm/lib/user-profile.d.ts +5 -2
  300. package/dist/esm/lib/user-profile.js +15 -6
  301. package/dist/esm/lib/user-profile.js.map +1 -1
  302. package/dist/esm/lib/user-security.d.ts +6 -2
  303. package/dist/esm/lib/user-security.js +4 -5
  304. package/dist/esm/lib/user-security.js.map +1 -1
  305. package/dist/esm/lib/user-sessions.d.ts +6 -4
  306. package/dist/esm/lib/user-sessions.js +2 -2
  307. package/dist/esm/lib/user-sessions.js.map +1 -1
  308. package/dist/esm/lib/users-filter.d.ts +4 -3
  309. package/dist/esm/lib/users-filter.js.map +1 -1
  310. package/dist/esm/lib/users-management-context.d.ts +4 -18
  311. package/dist/esm/lib/users-management-context.js.map +1 -1
  312. package/dist/esm/lib/users-management-state.d.ts +4 -25
  313. package/dist/esm/lib/users-management-state.js.map +1 -1
  314. package/dist/esm/lib/users-management.d.ts +7 -7
  315. package/dist/esm/lib/users-management.js.map +1 -1
  316. package/dist/esm/lib/view-dns-record-dialog.d.ts +3 -4
  317. package/dist/esm/lib/view-dns-record-dialog.js.map +1 -1
  318. package/dist/esm/organization-switcher.client.d.ts +3 -1
  319. package/dist/esm/organization-switcher.client.js +10 -6
  320. package/dist/esm/organization-switcher.client.js.map +1 -1
  321. package/dist/esm/pipes-admin.client.js +10 -4
  322. package/dist/esm/pipes-admin.client.js.map +1 -1
  323. package/dist/esm/pipes.client.js +17 -14
  324. package/dist/esm/pipes.client.js.map +1 -1
  325. package/dist/esm/user-BE5sIud6.d.ts +502 -0
  326. package/dist/esm/user-profile.client.d.ts +4 -1
  327. package/dist/esm/user-profile.client.js +2 -2
  328. package/dist/esm/user-profile.client.js.map +1 -1
  329. package/dist/esm/user-security.client.d.ts +2 -0
  330. package/dist/esm/user-security.client.js +28 -14
  331. package/dist/esm/user-security.client.js.map +1 -1
  332. package/dist/esm/user-sessions.client.d.ts +2 -0
  333. package/dist/esm/user-sessions.client.js +16 -30
  334. package/dist/esm/user-sessions.client.js.map +1 -1
  335. package/dist/esm/users-management.client.d.ts +4 -1
  336. package/dist/esm/users-management.client.js +2 -5
  337. package/dist/esm/users-management.client.js.map +1 -1
  338. package/dist/esm/utils.js +2 -1
  339. package/dist/esm/utils.js.map +1 -1
  340. package/package.json +1 -1
@@ -0,0 +1,380 @@
1
+ import { useQueryClient } from "@tanstack/react-query";
2
+ import { useCallback } from "react";
3
+ import {
4
+ clientGraphqlQueryKey,
5
+ useClientGraphqlQuery
6
+ } from "../../api/client-graphql/hooks.js";
7
+ const PAGE_SIZE = 100;
8
+ async function listAllPages(fetchPage) {
9
+ const rows = [];
10
+ let after = null;
11
+ do {
12
+ const page = await fetchPage(after);
13
+ rows.push(...page.data);
14
+ after = page.listMetadata.after ?? null;
15
+ } while (after !== null);
16
+ return rows;
17
+ }
18
+ function isOneOf(values, value) {
19
+ return values.includes(value);
20
+ }
21
+ const AUTH_METHODS = ["oauth", "api_key", "client_credentials"];
22
+ const CONNECTION_STATES = ["connected", "needs_reauthorization"];
23
+ const AVAILABILITIES = ["available", "needs_admin_attention"];
24
+ const CREDENTIALS_TYPES = ["shared", "custom", "organization"];
25
+ const DISABLED_SOURCES = ["developer", "organization"];
26
+ const CONFIG_FIELD_SCOPES = ["integration", "installation"];
27
+ function toAuthMethods(authMethods) {
28
+ return authMethods.filter((method) => isOneOf(AUTH_METHODS, method));
29
+ }
30
+ function toCredentialsType(credentialsType) {
31
+ return isOneOf(CREDENTIALS_TYPES, credentialsType) ? credentialsType : "shared";
32
+ }
33
+ function toConnectionState(state) {
34
+ return isOneOf(CONNECTION_STATES, state) ? state : "needs_reauthorization";
35
+ }
36
+ function toConfig(entries) {
37
+ return Object.fromEntries(entries.map(({ name, value }) => [name, value]));
38
+ }
39
+ function toConfigField(field) {
40
+ return {
41
+ key: field.key,
42
+ label: field.label,
43
+ required: field.required,
44
+ scope: isOneOf(CONFIG_FIELD_SCOPES, field.scope) ? field.scope : "integration",
45
+ description: field.description ?? void 0,
46
+ example: field.example ?? void 0,
47
+ pattern: field.pattern ?? void 0,
48
+ patternFlags: field.patternFlags ?? void 0,
49
+ order: field.order ?? void 0,
50
+ secret: field.secret ?? void 0,
51
+ default: field.default ?? void 0
52
+ };
53
+ }
54
+ function toIconFields(provider) {
55
+ return {
56
+ iconSlug: provider.iconSlug ?? void 0,
57
+ iconUrl: provider.iconUrl ?? void 0,
58
+ iconDarkUrl: provider.iconDarkUrl ?? void 0
59
+ };
60
+ }
61
+ function toDataInstallation(connection) {
62
+ return {
63
+ object: "data_installation",
64
+ id: connection.id,
65
+ connection_role: connection.connectionRole === "Standard" ? "standard" : "compatibility",
66
+ account_identifier: connection.accountIdentifier ?? null,
67
+ account_display_name: connection.accountDisplayName ?? null,
68
+ user_id: connection.userId ?? null,
69
+ organization_id: connection.organizationId ?? null,
70
+ scopes: connection.scopes,
71
+ auth_method: isOneOf(AUTH_METHODS, connection.authMethod) ? connection.authMethod : "oauth",
72
+ api_key_last_4: connection.apiKeyLast4 ?? null,
73
+ client_id: connection.clientId ?? null,
74
+ client_secret_last_4: connection.clientSecretLast4 ?? null,
75
+ config: toConfig(connection.config),
76
+ state: toConnectionState(connection.state),
77
+ created_at: connection.createdAt,
78
+ updated_at: connection.updatedAt
79
+ };
80
+ }
81
+ function toMyDataIntegrations(providers, connections) {
82
+ const connectionsByProviderId = /* @__PURE__ */ new Map();
83
+ for (const connection of connections) {
84
+ const installations = connectionsByProviderId.get(connection.dataProviderId) ?? [];
85
+ installations.push(toDataInstallation(connection));
86
+ connectionsByProviderId.set(connection.dataProviderId, installations);
87
+ }
88
+ return providers.map((provider) => {
89
+ const installations = connectionsByProviderId.get(provider.id) ?? [];
90
+ return {
91
+ object: "data_integration",
92
+ id: provider.id,
93
+ name: provider.name,
94
+ description: provider.description,
95
+ slug: provider.slug,
96
+ integrationType: provider.integrationType,
97
+ ownership: "userland_user",
98
+ credentialsType: toCredentialsType(provider.credentialsType),
99
+ scopes: provider.scopes,
100
+ authMethods: toAuthMethods(provider.authMethods),
101
+ configFields: provider.configFields.map(toConfigField),
102
+ config: toConfig(provider.config),
103
+ installation: installations[0] ?? null,
104
+ connected_accounts: installations,
105
+ createdAt: provider.createdAt,
106
+ updatedAt: provider.updatedAt,
107
+ ...toIconFields(provider)
108
+ };
109
+ });
110
+ }
111
+ function toSharedDataConnection(provider) {
112
+ return {
113
+ object: "data_integration",
114
+ id: provider.id,
115
+ name: provider.name,
116
+ description: provider.description,
117
+ slug: provider.slug,
118
+ ownership: "organization",
119
+ connected_accounts: provider.connectedAccounts.map(
120
+ (connection) => ({
121
+ object: "connected_account",
122
+ id: connection.id,
123
+ state: toConnectionState(connection.state),
124
+ availability: isOneOf(AVAILABILITIES, connection.availability) ? connection.availability : "needs_admin_attention",
125
+ created_at: connection.createdAt,
126
+ updated_at: connection.updatedAt
127
+ })
128
+ ),
129
+ ...toIconFields(provider)
130
+ };
131
+ }
132
+ function toDataIntegrationConfiguration(provider) {
133
+ return {
134
+ object: "data_integration_configuration",
135
+ id: provider.id,
136
+ name: provider.name,
137
+ description: provider.description,
138
+ slug: provider.slug,
139
+ integrationType: provider.integrationType,
140
+ ownership: "userland_user",
141
+ enabled: provider.enabled,
142
+ scopes: provider.scopes,
143
+ defaultScopes: provider.defaultScopes,
144
+ availableScopes: provider.availableScopes,
145
+ credentials: toCredentials(provider.credentials),
146
+ authMethods: toAuthMethods(provider.authMethods),
147
+ configFields: provider.configFields.map(toConfigField),
148
+ config: toConfig(provider.config),
149
+ createdAt: provider.createdAt,
150
+ updatedAt: provider.updatedAt,
151
+ ...toIconFields(provider)
152
+ };
153
+ }
154
+ function toCredentials(credentials) {
155
+ return {
156
+ credentialsType: toCredentialsType(credentials.credentialsType),
157
+ hasCredentials: credentials.hasCredentials,
158
+ client_id: credentials.clientId ?? null,
159
+ redactedClientSecret: credentials.redactedClientSecret ?? null,
160
+ redirectUri: credentials.redirectUri
161
+ };
162
+ }
163
+ function toOrganizationDataIntegration(provider) {
164
+ const disabledSource = provider.disabledSource ?? null;
165
+ const overrideDisabled = disabledSource === "organization";
166
+ const connectedAccounts = provider.connectedAccounts.map(toDataInstallation);
167
+ return {
168
+ object: "data_integration",
169
+ id: provider.id,
170
+ name: provider.name,
171
+ description: provider.description,
172
+ slug: provider.slug,
173
+ integrationType: provider.integrationType,
174
+ ownership: "organization",
175
+ credentialsType: toCredentialsType(provider.credentialsType),
176
+ scopes: provider.scopes,
177
+ authMethods: toAuthMethods(provider.authMethods),
178
+ configFields: provider.configFields.map(toConfigField),
179
+ config: toConfig(provider.config),
180
+ installation: provider.connection ? toDataInstallation(provider.connection) : null,
181
+ connected_accounts: connectedAccounts,
182
+ createdAt: provider.createdAt,
183
+ updatedAt: provider.updatedAt,
184
+ ...toIconFields(provider),
185
+ configuration: {
186
+ hasOverride: overrideDisabled,
187
+ rootEnabled: disabledSource !== "developer",
188
+ overrideEnabled: overrideDisabled ? false : null,
189
+ enabled: provider.enabled,
190
+ disabledSource: disabledSource !== null && isOneOf(DISABLED_SOURCES, disabledSource) ? disabledSource : null,
191
+ scopes: provider.scopes,
192
+ defaultScopes: provider.defaultScopes,
193
+ availableScopes: provider.availableScopes,
194
+ credentials: toCredentials(provider.credentials),
195
+ configured: provider.configured,
196
+ configFields: provider.configFields.map(toConfigField),
197
+ config: toConfig(provider.config)
198
+ },
199
+ capabilities: {
200
+ canConfigure: provider.capabilities.canConfigure,
201
+ canConnect: provider.capabilities.canConnect,
202
+ canUpdateCredentials: provider.capabilities.canUpdateCredentials,
203
+ canReauthorize: provider.capabilities.canReauthorize,
204
+ canDisconnect: provider.capabilities.canDisconnect
205
+ }
206
+ };
207
+ }
208
+ async function listAllDataProviders(sdk) {
209
+ return listAllPages(async (after) => {
210
+ const { dataProviders } = await sdk.ListDataProviders({
211
+ after,
212
+ limit: PAGE_SIZE
213
+ });
214
+ return dataProviders;
215
+ });
216
+ }
217
+ async function listAllDataProviderConnections(sdk) {
218
+ return listAllPages(async (after) => {
219
+ const { dataProviderConnections } = await sdk.ListDataProviderConnections({
220
+ after,
221
+ limit: PAGE_SIZE
222
+ });
223
+ return dataProviderConnections;
224
+ });
225
+ }
226
+ async function listAllOrganizationDataProviders(sdk) {
227
+ return listAllPages(async (after) => {
228
+ const { organizationDataProviders } = await sdk.ListOrganizationDataProviders({ after, limit: PAGE_SIZE });
229
+ return organizationDataProviders;
230
+ });
231
+ }
232
+ async function listAllSharedDataProviders(sdk) {
233
+ return listAllPages(async (after) => {
234
+ const { sharedDataProviders } = await sdk.ListSharedDataProviders({
235
+ after,
236
+ limit: PAGE_SIZE
237
+ });
238
+ return sharedDataProviders;
239
+ });
240
+ }
241
+ async function listAllConfigurableDataProviders(sdk) {
242
+ return listAllPages(async (after) => {
243
+ const { configurableDataProviders } = await sdk.ListConfigurableDataProviders({ after, limit: PAGE_SIZE });
244
+ return configurableDataProviders;
245
+ });
246
+ }
247
+ const sharedDataConnectionsQueryKey = clientGraphqlQueryKey(
248
+ "ListSharedDataProviders"
249
+ );
250
+ const dataIntegrationConfigurationsQueryKey = clientGraphqlQueryKey(
251
+ "ListConfigurableDataProviders"
252
+ );
253
+ const myDataIntegrationsQueryKeys = [
254
+ clientGraphqlQueryKey("ListDataProviders"),
255
+ clientGraphqlQueryKey("ListDataProviderConnections")
256
+ ];
257
+ const organizationDataIntegrationsQueryKey = clientGraphqlQueryKey(
258
+ "ListOrganizationDataProviders"
259
+ );
260
+ function useMyDataIntegrations({
261
+ enabled = true
262
+ } = {}) {
263
+ const providers = useClientGraphqlQuery({
264
+ queryKey: clientGraphqlQueryKey("ListDataProviders"),
265
+ queryFn: listAllDataProviders,
266
+ enabled
267
+ });
268
+ const connections = useClientGraphqlQuery({
269
+ queryKey: clientGraphqlQueryKey("ListDataProviderConnections"),
270
+ queryFn: listAllDataProviderConnections,
271
+ enabled
272
+ });
273
+ const isSuccess = providers.isSuccess && connections.isSuccess;
274
+ return {
275
+ data: isSuccess ? toMyDataIntegrations(providers.data, connections.data) : [],
276
+ isLoading: providers.isLoading || connections.isLoading,
277
+ isPending: providers.isPending || connections.isPending,
278
+ isSuccess,
279
+ isError: providers.isError || connections.isError,
280
+ error: providers.error ?? connections.error,
281
+ failureCount: Math.max(providers.failureCount, connections.failureCount),
282
+ refetch: () => {
283
+ void providers.refetch();
284
+ void connections.refetch();
285
+ }
286
+ };
287
+ }
288
+ function useOrganizationDataIntegrations({
289
+ enabled = true
290
+ } = {}) {
291
+ const query = useClientGraphqlQuery({
292
+ queryKey: organizationDataIntegrationsQueryKey,
293
+ queryFn: listAllOrganizationDataProviders,
294
+ select: (providers) => providers.map(toOrganizationDataIntegration),
295
+ enabled
296
+ });
297
+ return {
298
+ data: query.data ?? [],
299
+ isLoading: query.isLoading,
300
+ isPending: query.isPending,
301
+ isSuccess: query.isSuccess,
302
+ isError: query.isError,
303
+ error: query.error,
304
+ failureCount: query.failureCount,
305
+ refetch: () => {
306
+ void query.refetch();
307
+ }
308
+ };
309
+ }
310
+ function useSharedDataConnections() {
311
+ const query = useClientGraphqlQuery({
312
+ queryKey: sharedDataConnectionsQueryKey,
313
+ queryFn: listAllSharedDataProviders,
314
+ select: (providers) => providers.map(toSharedDataConnection)
315
+ });
316
+ return {
317
+ data: query.data ?? [],
318
+ isLoading: query.isLoading,
319
+ isPending: query.isPending,
320
+ isSuccess: query.isSuccess,
321
+ isError: query.isError,
322
+ error: query.error,
323
+ failureCount: query.failureCount,
324
+ refetch: () => {
325
+ void query.refetch();
326
+ }
327
+ };
328
+ }
329
+ function useDataIntegrationConfigurations({
330
+ enabled = true
331
+ } = {}) {
332
+ const query = useClientGraphqlQuery({
333
+ queryKey: dataIntegrationConfigurationsQueryKey,
334
+ queryFn: listAllConfigurableDataProviders,
335
+ select: (providers) => providers.map(toDataIntegrationConfiguration),
336
+ enabled
337
+ });
338
+ return {
339
+ data: query.data ?? [],
340
+ isLoading: query.isLoading,
341
+ isPending: query.isPending,
342
+ isSuccess: query.isSuccess,
343
+ isError: query.isError,
344
+ error: query.error,
345
+ failureCount: query.failureCount,
346
+ refetch: () => {
347
+ void query.refetch();
348
+ }
349
+ };
350
+ }
351
+ function useInvalidateMyDataIntegrations() {
352
+ const queryClient = useQueryClient();
353
+ return useCallback(() => {
354
+ for (const queryKey of myDataIntegrationsQueryKeys) {
355
+ queryClient.invalidateQueries({ queryKey });
356
+ }
357
+ }, [queryClient]);
358
+ }
359
+ export {
360
+ dataIntegrationConfigurationsQueryKey,
361
+ listAllConfigurableDataProviders,
362
+ listAllDataProviderConnections,
363
+ listAllDataProviders,
364
+ listAllOrganizationDataProviders,
365
+ listAllSharedDataProviders,
366
+ myDataIntegrationsQueryKeys,
367
+ organizationDataIntegrationsQueryKey,
368
+ sharedDataConnectionsQueryKey,
369
+ toDataInstallation,
370
+ toDataIntegrationConfiguration,
371
+ toMyDataIntegrations,
372
+ toOrganizationDataIntegration,
373
+ toSharedDataConnection,
374
+ useDataIntegrationConfigurations,
375
+ useInvalidateMyDataIntegrations,
376
+ useMyDataIntegrations,
377
+ useOrganizationDataIntegrations,
378
+ useSharedDataConnections
379
+ };
380
+ //# sourceMappingURL=pipes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/api/pipes.ts"],"sourcesContent":["import { useQueryClient } from \"@tanstack/react-query\";\nimport { useCallback } from \"react\";\nimport type {\n DataInstallation,\n DataIntegrationConfigField,\n DataIntegrationConfiguration,\n DataIntegrationCredentials,\n DataIntegrationWithConnections,\n OrganizationDataIntegration,\n SharedConnection,\n SharedDataConnection,\n} from \"../../api/endpoint.js\";\nimport type {\n ConfigurableDataProviderFieldsFragment,\n DataProviderConfigFieldFieldsFragment,\n DataProviderConnectionFieldsFragment,\n DataProviderFieldsFragment,\n OrganizationDataProviderFieldsFragment,\n SharedDataProviderFieldsFragment,\n Sdk,\n} from \"../../api/client-graphql/generated.js\";\nimport {\n clientGraphqlQueryKey,\n useClientGraphqlQuery,\n} from \"../../api/client-graphql/hooks.js\";\n\nconst PAGE_SIZE = 100;\n\n/**\n * The Pipes list queries default to `limit: 10` and the widgets render every\n * row, so each list is walked to its end before it is adapted.\n */\nasync function listAllPages<T>(\n fetchPage: (after: string | null) => Promise<{\n data: T[];\n listMetadata: { after?: string | null };\n }>,\n): Promise<T[]> {\n const rows: T[] = [];\n let after: string | null = null;\n do {\n const page = await fetchPage(after);\n rows.push(...page.data);\n after = page.listMetadata.after ?? null;\n } while (after !== null);\n return rows;\n}\n\nfunction isOneOf<const T extends readonly string[]>(\n values: T,\n value: string,\n): value is T[number] {\n return values.includes(value);\n}\n\nconst AUTH_METHODS = [\"oauth\", \"api_key\", \"client_credentials\"] as const;\nconst CONNECTION_STATES = [\"connected\", \"needs_reauthorization\"] as const;\nconst AVAILABILITIES = [\"available\", \"needs_admin_attention\"] as const;\nconst CREDENTIALS_TYPES = [\"shared\", \"custom\", \"organization\"] as const;\nconst DISABLED_SOURCES = [\"developer\", \"organization\"] as const;\nconst CONFIG_FIELD_SCOPES = [\"integration\", \"installation\"] as const;\n\nfunction toAuthMethods(\n authMethods: readonly string[],\n): NonNullable<DataIntegrationWithConnections[\"authMethods\"]> {\n return authMethods.filter((method) => isOneOf(AUTH_METHODS, method));\n}\n\n/**\n * The GraphQL types carry these as plain strings; the REST DTOs the widgets\n * render from narrow them. Unknown values fall back to the option that\n * renders the least capable state.\n */\nfunction toCredentialsType(\n credentialsType: string,\n): DataIntegrationWithConnections[\"credentialsType\"] {\n return isOneOf(CREDENTIALS_TYPES, credentialsType)\n ? credentialsType\n : \"shared\";\n}\n\nfunction toConnectionState(state: string): DataInstallation[\"state\"] {\n return isOneOf(CONNECTION_STATES, state) ? state : \"needs_reauthorization\";\n}\n\nfunction toConfig(\n entries: readonly { name: string; value: string }[],\n): Record<string, string> {\n return Object.fromEntries(entries.map(({ name, value }) => [name, value]));\n}\n\nfunction toConfigField(\n field: DataProviderConfigFieldFieldsFragment,\n): DataIntegrationConfigField {\n return {\n key: field.key,\n label: field.label,\n required: field.required,\n scope: isOneOf(CONFIG_FIELD_SCOPES, field.scope)\n ? field.scope\n : \"integration\",\n description: field.description ?? undefined,\n example: field.example ?? undefined,\n pattern: field.pattern ?? undefined,\n patternFlags: field.patternFlags ?? undefined,\n order: field.order ?? undefined,\n secret: field.secret ?? undefined,\n default: field.default ?? undefined,\n };\n}\n\nfunction toIconFields(provider: {\n iconSlug?: string | null;\n iconUrl?: string | null;\n iconDarkUrl?: string | null;\n}): Pick<\n DataIntegrationWithConnections,\n \"iconSlug\" | \"iconUrl\" | \"iconDarkUrl\"\n> {\n return {\n iconSlug: provider.iconSlug ?? undefined,\n iconUrl: provider.iconUrl ?? undefined,\n iconDarkUrl: provider.iconDarkUrl ?? undefined,\n };\n}\n\nexport function toDataInstallation(\n connection: DataProviderConnectionFieldsFragment,\n): DataInstallation {\n return {\n object: \"data_installation\",\n id: connection.id,\n connection_role:\n connection.connectionRole === \"Standard\" ? \"standard\" : \"compatibility\",\n account_identifier: connection.accountIdentifier ?? null,\n account_display_name: connection.accountDisplayName ?? null,\n user_id: connection.userId ?? null,\n organization_id: connection.organizationId ?? null,\n scopes: connection.scopes,\n auth_method: isOneOf(AUTH_METHODS, connection.authMethod)\n ? connection.authMethod\n : \"oauth\",\n api_key_last_4: connection.apiKeyLast4 ?? null,\n client_id: connection.clientId ?? null,\n client_secret_last_4: connection.clientSecretLast4 ?? null,\n config: toConfig(connection.config),\n state: toConnectionState(connection.state),\n created_at: connection.createdAt,\n updated_at: connection.updatedAt,\n };\n}\n\n/**\n * Joins the member's providers with their own connections the way\n * `GET /_widgets/DataIntegrations/mine` did: the member's connection sits\n * inline as `installation` and is repeated in `connected_accounts`.\n */\nexport function toMyDataIntegrations(\n providers: readonly DataProviderFieldsFragment[],\n connections: readonly DataProviderConnectionFieldsFragment[],\n): DataIntegrationWithConnections[] {\n const connectionsByProviderId = new Map<string, DataInstallation[]>();\n for (const connection of connections) {\n const installations =\n connectionsByProviderId.get(connection.dataProviderId) ?? [];\n installations.push(toDataInstallation(connection));\n connectionsByProviderId.set(connection.dataProviderId, installations);\n }\n\n return providers.map((provider) => {\n const installations = connectionsByProviderId.get(provider.id) ?? [];\n return {\n object: \"data_integration\",\n id: provider.id,\n name: provider.name,\n description: provider.description,\n slug: provider.slug,\n integrationType: provider.integrationType,\n ownership: \"userland_user\",\n credentialsType: toCredentialsType(provider.credentialsType),\n scopes: provider.scopes,\n authMethods: toAuthMethods(provider.authMethods),\n configFields: provider.configFields.map(toConfigField),\n config: toConfig(provider.config),\n installation: installations[0] ?? null,\n connected_accounts: installations,\n createdAt: provider.createdAt,\n updatedAt: provider.updatedAt,\n ...toIconFields(provider),\n };\n });\n}\n\n/**\n * Presents a shared provider the way\n * `GET /_widgets/DataIntegrations/shared-connections` did for any active\n * member: identity, presentation and the state of each shared connection,\n * without credentials or account identifiers.\n */\nexport function toSharedDataConnection(\n provider: SharedDataProviderFieldsFragment,\n): SharedDataConnection {\n return {\n object: \"data_integration\",\n id: provider.id,\n name: provider.name,\n description: provider.description,\n slug: provider.slug,\n ownership: \"organization\",\n connected_accounts: provider.connectedAccounts.map(\n (connection): SharedConnection => ({\n object: \"connected_account\",\n id: connection.id,\n state: toConnectionState(connection.state),\n availability: isOneOf(AVAILABILITIES, connection.availability)\n ? connection.availability\n : \"needs_admin_attention\",\n created_at: connection.createdAt,\n updated_at: connection.updatedAt,\n }),\n ),\n ...toIconFields(provider),\n };\n}\n\n/**\n * Presents the organization's policy configuration of a member-connectable\n * provider the way `GET /_widgets/DataIntegrations/configurations` did.\n */\nexport function toDataIntegrationConfiguration(\n provider: ConfigurableDataProviderFieldsFragment,\n): DataIntegrationConfiguration {\n return {\n object: \"data_integration_configuration\",\n id: provider.id,\n name: provider.name,\n description: provider.description,\n slug: provider.slug,\n integrationType: provider.integrationType,\n ownership: \"userland_user\",\n enabled: provider.enabled,\n scopes: provider.scopes,\n defaultScopes: provider.defaultScopes,\n availableScopes: provider.availableScopes,\n credentials: toCredentials(provider.credentials),\n authMethods: toAuthMethods(provider.authMethods),\n configFields: provider.configFields.map(toConfigField),\n config: toConfig(provider.config),\n createdAt: provider.createdAt,\n updatedAt: provider.updatedAt,\n ...toIconFields(provider),\n };\n}\n\nfunction toCredentials(\n credentials: OrganizationDataProviderFieldsFragment[\"credentials\"],\n): DataIntegrationCredentials {\n return {\n credentialsType: toCredentialsType(credentials.credentialsType),\n hasCredentials: credentials.hasCredentials,\n client_id: credentials.clientId ?? null,\n redactedClientSecret: credentials.redactedClientSecret ?? null,\n redirectUri: credentials.redirectUri,\n };\n}\n\n/**\n * Presents an organization-owned provider the way\n * `GET /_widgets/DataIntegrations/organization` did. The GraphQL type\n * resolves the organization's override into the effective `enabled` /\n * `disabledSource`, so the raw override fields are derived from those.\n */\nexport function toOrganizationDataIntegration(\n provider: OrganizationDataProviderFieldsFragment,\n): OrganizationDataIntegration {\n const disabledSource = provider.disabledSource ?? null;\n const overrideDisabled = disabledSource === \"organization\";\n const connectedAccounts = provider.connectedAccounts.map(toDataInstallation);\n return {\n object: \"data_integration\",\n id: provider.id,\n name: provider.name,\n description: provider.description,\n slug: provider.slug,\n integrationType: provider.integrationType,\n ownership: \"organization\",\n credentialsType: toCredentialsType(provider.credentialsType),\n scopes: provider.scopes,\n authMethods: toAuthMethods(provider.authMethods),\n configFields: provider.configFields.map(toConfigField),\n config: toConfig(provider.config),\n installation: provider.connection\n ? toDataInstallation(provider.connection)\n : null,\n connected_accounts: connectedAccounts,\n createdAt: provider.createdAt,\n updatedAt: provider.updatedAt,\n ...toIconFields(provider),\n configuration: {\n hasOverride: overrideDisabled,\n rootEnabled: disabledSource !== \"developer\",\n overrideEnabled: overrideDisabled ? false : null,\n enabled: provider.enabled,\n disabledSource:\n disabledSource !== null && isOneOf(DISABLED_SOURCES, disabledSource)\n ? disabledSource\n : null,\n scopes: provider.scopes,\n defaultScopes: provider.defaultScopes,\n availableScopes: provider.availableScopes,\n credentials: toCredentials(provider.credentials),\n configured: provider.configured,\n configFields: provider.configFields.map(toConfigField),\n config: toConfig(provider.config),\n },\n capabilities: {\n canConfigure: provider.capabilities.canConfigure,\n canConnect: provider.capabilities.canConnect,\n canUpdateCredentials: provider.capabilities.canUpdateCredentials,\n canReauthorize: provider.capabilities.canReauthorize,\n canDisconnect: provider.capabilities.canDisconnect,\n },\n };\n}\n\nexport async function listAllDataProviders(\n sdk: Sdk,\n): Promise<DataProviderFieldsFragment[]> {\n return listAllPages(async (after) => {\n const { dataProviders } = await sdk.ListDataProviders({\n after,\n limit: PAGE_SIZE,\n });\n return dataProviders;\n });\n}\n\nexport async function listAllDataProviderConnections(\n sdk: Sdk,\n): Promise<DataProviderConnectionFieldsFragment[]> {\n return listAllPages(async (after) => {\n const { dataProviderConnections } = await sdk.ListDataProviderConnections({\n after,\n limit: PAGE_SIZE,\n });\n return dataProviderConnections;\n });\n}\n\nexport async function listAllOrganizationDataProviders(\n sdk: Sdk,\n): Promise<OrganizationDataProviderFieldsFragment[]> {\n return listAllPages(async (after) => {\n const { organizationDataProviders } =\n await sdk.ListOrganizationDataProviders({ after, limit: PAGE_SIZE });\n return organizationDataProviders;\n });\n}\n\nexport async function listAllSharedDataProviders(\n sdk: Sdk,\n): Promise<SharedDataProviderFieldsFragment[]> {\n return listAllPages(async (after) => {\n const { sharedDataProviders } = await sdk.ListSharedDataProviders({\n after,\n limit: PAGE_SIZE,\n });\n return sharedDataProviders;\n });\n}\n\nexport async function listAllConfigurableDataProviders(\n sdk: Sdk,\n): Promise<ConfigurableDataProviderFieldsFragment[]> {\n return listAllPages(async (after) => {\n const { configurableDataProviders } =\n await sdk.ListConfigurableDataProviders({ after, limit: PAGE_SIZE });\n return configurableDataProviders;\n });\n}\n\nexport const sharedDataConnectionsQueryKey = clientGraphqlQueryKey(\n \"ListSharedDataProviders\",\n);\n\nexport const dataIntegrationConfigurationsQueryKey = clientGraphqlQueryKey(\n \"ListConfigurableDataProviders\",\n);\n\nexport const myDataIntegrationsQueryKeys = [\n clientGraphqlQueryKey(\"ListDataProviders\"),\n clientGraphqlQueryKey(\"ListDataProviderConnections\"),\n];\n\nexport const organizationDataIntegrationsQueryKey = clientGraphqlQueryKey(\n \"ListOrganizationDataProviders\",\n);\n\ninterface ListResult<T> {\n data: T[];\n isLoading: boolean;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n failureCount: number;\n refetch: () => void;\n}\n\n/** The member's connectable providers joined with their own connections. */\nexport function useMyDataIntegrations({\n enabled = true,\n}: { enabled?: boolean } = {}): ListResult<DataIntegrationWithConnections> {\n const providers = useClientGraphqlQuery({\n queryKey: clientGraphqlQueryKey(\"ListDataProviders\"),\n queryFn: listAllDataProviders,\n enabled,\n });\n const connections = useClientGraphqlQuery({\n queryKey: clientGraphqlQueryKey(\"ListDataProviderConnections\"),\n queryFn: listAllDataProviderConnections,\n enabled,\n });\n\n const isSuccess = providers.isSuccess && connections.isSuccess;\n return {\n data: isSuccess\n ? toMyDataIntegrations(providers.data, connections.data)\n : [],\n isLoading: providers.isLoading || connections.isLoading,\n isPending: providers.isPending || connections.isPending,\n isSuccess,\n isError: providers.isError || connections.isError,\n error: providers.error ?? connections.error,\n failureCount: Math.max(providers.failureCount, connections.failureCount),\n refetch: () => {\n void providers.refetch();\n void connections.refetch();\n },\n };\n}\n\n/** The organization's provider inventory with its shared connections. */\nexport function useOrganizationDataIntegrations({\n enabled = true,\n}: { enabled?: boolean } = {}): ListResult<OrganizationDataIntegration> {\n const query = useClientGraphqlQuery({\n queryKey: organizationDataIntegrationsQueryKey,\n queryFn: listAllOrganizationDataProviders,\n select: (providers) => providers.map(toOrganizationDataIntegration),\n enabled,\n });\n return {\n data: query.data ?? [],\n isLoading: query.isLoading,\n isPending: query.isPending,\n isSuccess: query.isSuccess,\n isError: query.isError,\n error: query.error,\n failureCount: query.failureCount,\n refetch: () => {\n void query.refetch();\n },\n };\n}\n\n/** The organization's shared connections, readable by any active member. */\nexport function useSharedDataConnections(): ListResult<SharedDataConnection> {\n const query = useClientGraphqlQuery({\n queryKey: sharedDataConnectionsQueryKey,\n queryFn: listAllSharedDataProviders,\n select: (providers) => providers.map(toSharedDataConnection),\n });\n return {\n data: query.data ?? [],\n isLoading: query.isLoading,\n isPending: query.isPending,\n isSuccess: query.isSuccess,\n isError: query.isError,\n error: query.error,\n failureCount: query.failureCount,\n refetch: () => {\n void query.refetch();\n },\n };\n}\n\n/** The organization's policy configuration of each connectable provider. */\nexport function useDataIntegrationConfigurations({\n enabled = true,\n}: { enabled?: boolean } = {}): ListResult<DataIntegrationConfiguration> {\n const query = useClientGraphqlQuery({\n queryKey: dataIntegrationConfigurationsQueryKey,\n queryFn: listAllConfigurableDataProviders,\n select: (providers) => providers.map(toDataIntegrationConfiguration),\n enabled,\n });\n return {\n data: query.data ?? [],\n isLoading: query.isLoading,\n isPending: query.isPending,\n isSuccess: query.isSuccess,\n isError: query.isError,\n error: query.error,\n failureCount: query.failureCount,\n refetch: () => {\n void query.refetch();\n },\n };\n}\n\n/** Refreshes the member's own lists after one of their connections changed. */\nexport function useInvalidateMyDataIntegrations() {\n const queryClient = useQueryClient();\n return useCallback(() => {\n for (const queryKey of myDataIntegrationsQueryKeys) {\n queryClient.invalidateQueries({ queryKey });\n }\n }, [queryClient]);\n}\n"],"mappings":"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","names":[]}
@@ -1,20 +1,25 @@
1
1
  import * as _tanstack_react_query from '@tanstack/react-query';
2
- import { ListUserApiKeysResponse, ListUserApiKeys400, ListUserApiKeys403, CreateUserApiKeyResponse, CreateUserApiKey400, CreateUserApiKey403, CreateUserApiKey404, CreateUserApiKey422, CreateUserApiKeyRequest, ListUserApiKeysResponseData } from '../../api/endpoint.js';
3
- export { ListUserApiKeyPermission, getListUserApiKeysQueryKey, useDeleteUserApiKey, useListUserApiKeyPermissions } from '../../api/endpoint.js';
4
- import { BodyType } from '../../api/widgets-api-client.js';
2
+ import { ListUserApiKeysResponseData, ListUserApiKeysResponse, CreateUserApiKeyResponse, CreateUserApiKeyRequest } from '../../api/endpoint.js';
3
+ export { ListUserApiKeyPermission, useListUserApiKeyPermissions } from '../../api/endpoint.js';
4
+ import { UserApiKeyFieldsFragment } from '../../api/client-graphql/generated.js';
5
+ import '../../api/widgets-api-client.js';
6
+ import 'graphql-request';
5
7
 
6
- declare const useUserApiKeys: () => _tanstack_react_query.UseQueryResult<ListUserApiKeysResponse, ListUserApiKeys400 | ListUserApiKeys403> & {
7
- queryKey: readonly unknown[] & {
8
- [dataTagSymbol]: ListUserApiKeysResponse;
9
- [dataTagErrorSymbol]: ListUserApiKeys400 | ListUserApiKeys403;
10
- };
11
- };
12
- declare const useCreateUserApiKeyWithInvalidation: () => _tanstack_react_query.UseMutationResult<CreateUserApiKeyResponse, CreateUserApiKey400 | CreateUserApiKey403 | CreateUserApiKey404 | CreateUserApiKey422, {
13
- data: BodyType<CreateUserApiKeyRequest>;
8
+ declare const userApiKeysQueryKey: readonly unknown[];
9
+ declare function toUserApiKey(apiKey: UserApiKeyFieldsFragment): ListUserApiKeysResponseData;
10
+ declare const useUserApiKeys: () => _tanstack_react_query.UseQueryResult<NoInfer<ListUserApiKeysResponse>, Error>;
11
+ declare const useInvalidateUserApiKeys: () => () => Promise<void>;
12
+ declare const useCreateUserApiKeyWithInvalidation: () => _tanstack_react_query.UseMutationResult<CreateUserApiKeyResponse, Error, {
13
+ data: CreateUserApiKeyRequest;
14
+ }, unknown>;
15
+ declare const useDeleteUserApiKey: ({ onSuccess, }?: {
16
+ onSuccess?: () => void;
17
+ }) => _tanstack_react_query.UseMutationResult<ListUserApiKeysResponseData, Error, {
18
+ apiKeyId: string;
14
19
  }, unknown>;
15
20
  declare const useExpireUserApiKey: () => _tanstack_react_query.UseMutationResult<ListUserApiKeysResponseData, Error, {
16
21
  apiKeyId: string;
17
22
  expiresAt: string | null;
18
23
  }, unknown>;
19
24
 
20
- export { CreateUserApiKeyResponse, ListUserApiKeysResponse, ListUserApiKeysResponseData, useCreateUserApiKeyWithInvalidation, useExpireUserApiKey, useUserApiKeys };
25
+ export { CreateUserApiKeyResponse, ListUserApiKeysResponse, ListUserApiKeysResponseData, toUserApiKey, useCreateUserApiKeyWithInvalidation, useDeleteUserApiKey, useExpireUserApiKey, useInvalidateUserApiKeys, useUserApiKeys, userApiKeysQueryKey };
@@ -1,80 +1,141 @@
1
+ import { keepPreviousData, useQueryClient } from "@tanstack/react-query";
1
2
  import {
2
- keepPreviousData,
3
- useMutation,
4
- useQueryClient
5
- } from "@tanstack/react-query";
6
- import {
7
- getListUserApiKeysQueryKey,
8
- useCreateUserApiKey,
9
- useListUserApiKeys as useGeneratedListUserApiKeys
10
- } from "../../api/endpoint.js";
3
+ clientGraphqlQueryKey,
4
+ useClientGraphqlMutation,
5
+ useClientGraphqlQuery
6
+ } from "../../api/client-graphql/hooks.js";
11
7
  import { useUserApiKeysContext } from "../user-api-keys/user-api-keys-context.js";
8
+ import { API_KEYS_PAGE_SIZE, apiKeyMutationFailure } from "./api-key.js";
12
9
  import {
13
- useWidgetsApiClient
14
- } from "../../api/widgets-api-client.js";
15
- import {
16
- getListUserApiKeysQueryKey as getListUserApiKeysQueryKey2,
17
- useDeleteUserApiKey,
18
10
  useListUserApiKeyPermissions
19
11
  } from "../../api/endpoint.js";
12
+ const userApiKeysQueryKey = clientGraphqlQueryKey("ListUserApiKeys");
13
+ function toUserApiKey(apiKey) {
14
+ return {
15
+ id: apiKey.id,
16
+ owner: {
17
+ type: "user",
18
+ id: apiKey.owner.id,
19
+ email: apiKey.owner.email,
20
+ firstName: apiKey.owner.firstName ?? null,
21
+ lastName: apiKey.owner.lastName ?? null,
22
+ displayName: apiKey.owner.displayName
23
+ },
24
+ name: apiKey.name,
25
+ obfuscatedValue: apiKey.obfuscatedValue,
26
+ createdAt: apiKey.createdAt,
27
+ lastUsedAt: apiKey.lastUsedAt ?? null,
28
+ expiresAt: apiKey.expiresAt ?? null,
29
+ permissions: apiKey.permissions
30
+ };
31
+ }
32
+ function unwrapCreateUserApiKey(result) {
33
+ switch (result.__typename) {
34
+ case "UserApiKeyCreated": {
35
+ const { owner: _owner, ...apiKey } = toUserApiKey(result.apiKey);
36
+ return { ...apiKey, value: result.value };
37
+ }
38
+ case "ApiKeyPermissionsNotHeld":
39
+ case "ApiKeyPermissionsUnsupportedForToken":
40
+ case "InvalidApiKeyExpiration":
41
+ case "InvalidApiKeyName":
42
+ case "InvalidApiKeyPermissions":
43
+ throw apiKeyMutationFailure(result.__typename, result.message);
44
+ }
45
+ }
46
+ function unwrapExpireUserApiKey(result) {
47
+ switch (result.__typename) {
48
+ case "UserApiKeyExpired":
49
+ return toUserApiKey(result.apiKey);
50
+ case "ApiKeyAlreadyExpired":
51
+ throw apiKeyMutationFailure(
52
+ result.__typename,
53
+ "API key is already expired"
54
+ );
55
+ }
56
+ }
20
57
  const useUserApiKeys = () => {
21
58
  const {
22
59
  state: { pagination, searchQuery }
23
60
  } = useUserApiKeysContext();
24
- const limit = 10;
25
61
  const { before, after } = pagination || {};
26
- return useGeneratedListUserApiKeys(
27
- {
28
- after: after ?? void 0,
29
- before: before ?? void 0,
30
- limit,
31
- search: searchQuery || void 0
62
+ const variables = {
63
+ after: after ?? void 0,
64
+ before: before ?? void 0,
65
+ limit: API_KEYS_PAGE_SIZE,
66
+ search: searchQuery || void 0
67
+ };
68
+ return useClientGraphqlQuery({
69
+ queryKey: clientGraphqlQueryKey("ListUserApiKeys", variables),
70
+ queryFn: async (sdk) => {
71
+ const { userApiKeys } = await sdk.ListUserApiKeys(variables);
72
+ return userApiKeys;
32
73
  },
33
- {
34
- query: {
35
- placeholderData: keepPreviousData
74
+ select: (list) => ({
75
+ data: list.data.map(toUserApiKey),
76
+ list_metadata: {
77
+ after: list.listMetadata.after ?? void 0,
78
+ before: list.listMetadata.before ?? void 0
36
79
  }
37
- }
38
- );
80
+ }),
81
+ placeholderData: keepPreviousData
82
+ });
39
83
  };
40
- const useCreateUserApiKeyWithInvalidation = () => {
84
+ const useInvalidateUserApiKeys = () => {
41
85
  const queryClient = useQueryClient();
42
- return useCreateUserApiKey({
43
- mutation: {
44
- onSuccess: () => {
45
- queryClient.invalidateQueries({
46
- queryKey: getListUserApiKeysQueryKey()
47
- });
48
- }
86
+ return () => queryClient.invalidateQueries({ queryKey: userApiKeysQueryKey });
87
+ };
88
+ const useCreateUserApiKeyWithInvalidation = () => {
89
+ const invalidate = useInvalidateUserApiKeys();
90
+ return useClientGraphqlMutation({
91
+ mutationFn: async (sdk, { data }) => {
92
+ const { createUserApiKey: result } = await sdk.CreateUserApiKey({
93
+ input: {
94
+ name: data.name,
95
+ permissions: data.permissions,
96
+ expiresAt: data.expiresAt ?? null
97
+ }
98
+ });
99
+ return unwrapCreateUserApiKey(result);
100
+ },
101
+ onSuccess: invalidate
102
+ });
103
+ };
104
+ const useDeleteUserApiKey = ({
105
+ onSuccess
106
+ } = {}) => {
107
+ const invalidate = useInvalidateUserApiKeys();
108
+ return useClientGraphqlMutation({
109
+ mutationFn: async (sdk, { apiKeyId }) => {
110
+ const { deleteUserApiKey } = await sdk.DeleteUserApiKey({ apiKeyId });
111
+ return toUserApiKey(deleteUserApiKey);
112
+ },
113
+ onSuccess: () => {
114
+ void invalidate();
115
+ onSuccess?.();
49
116
  }
50
117
  });
51
118
  };
52
119
  const useExpireUserApiKey = () => {
53
- const queryClient = useQueryClient();
54
- const expireUserApiKey = useWidgetsApiClient();
55
- return useMutation({
56
- mutationFn: ({
57
- apiKeyId,
58
- expiresAt
59
- }) => expireUserApiKey({
60
- url: `/_widgets/UserApiKeys/${apiKeyId}/expire`,
61
- method: "POST",
62
- headers: { "Content-Type": "application/json" },
63
- data: { expiresAt }
64
- }),
65
- onSuccess: () => {
66
- queryClient.invalidateQueries({
67
- queryKey: getListUserApiKeysQueryKey()
120
+ const invalidate = useInvalidateUserApiKeys();
121
+ return useClientGraphqlMutation({
122
+ mutationFn: async (sdk, { apiKeyId, expiresAt }) => {
123
+ const { expireUserApiKey: result } = await sdk.ExpireUserApiKey({
124
+ input: { apiKeyId, expiresAt }
68
125
  });
69
- }
126
+ return unwrapExpireUserApiKey(result);
127
+ },
128
+ onSuccess: invalidate
70
129
  });
71
130
  };
72
131
  export {
73
- getListUserApiKeysQueryKey2 as getListUserApiKeysQueryKey,
132
+ toUserApiKey,
74
133
  useCreateUserApiKeyWithInvalidation,
75
134
  useDeleteUserApiKey,
76
135
  useExpireUserApiKey,
136
+ useInvalidateUserApiKeys,
77
137
  useListUserApiKeyPermissions,
78
- useUserApiKeys
138
+ useUserApiKeys,
139
+ userApiKeysQueryKey
79
140
  };
80
141
  //# sourceMappingURL=user-api-key.js.map