@etohq/core-flows 1.5.1-alpha.4 → 1.5.1-alpha.8

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 (76) hide show
  1. package/dist/ambassador/steps/validate-promotions-in-campaign-step.d.ts.map +1 -1
  2. package/dist/ambassador/steps/validate-promotions-in-campaign-step.js.map +1 -1
  3. package/dist/auth/workflows/generate-reset-password-token.d.ts +1 -0
  4. package/dist/auth/workflows/generate-reset-password-token.d.ts.map +1 -1
  5. package/dist/auth/workflows/generate-reset-password-token.js +1 -0
  6. package/dist/auth/workflows/generate-reset-password-token.js.map +1 -1
  7. package/dist/auth/workflows/index.d.ts +1 -0
  8. package/dist/auth/workflows/index.d.ts.map +1 -1
  9. package/dist/auth/workflows/index.js +1 -0
  10. package/dist/auth/workflows/index.js.map +1 -1
  11. package/dist/auth/workflows/set-auth-app-metadata.d.ts +40 -0
  12. package/dist/auth/workflows/set-auth-app-metadata.d.ts.map +1 -0
  13. package/dist/auth/workflows/set-auth-app-metadata.js +47 -0
  14. package/dist/auth/workflows/set-auth-app-metadata.js.map +1 -0
  15. package/dist/common/steps/emit-event.d.ts +8 -2
  16. package/dist/common/steps/emit-event.d.ts.map +1 -1
  17. package/dist/common/steps/emit-event.js +27 -2
  18. package/dist/common/steps/emit-event.js.map +1 -1
  19. package/dist/common/steps/use-query-graph.d.ts +8 -3
  20. package/dist/common/steps/use-query-graph.d.ts.map +1 -1
  21. package/dist/common/steps/use-query-graph.js +7 -0
  22. package/dist/common/steps/use-query-graph.js.map +1 -1
  23. package/dist/invite/steps/get-invite-roles.d.ts +6 -0
  24. package/dist/invite/steps/get-invite-roles.d.ts.map +1 -0
  25. package/dist/invite/steps/get-invite-roles.js +19 -0
  26. package/dist/invite/steps/get-invite-roles.js.map +1 -0
  27. package/dist/invite/steps/index.d.ts +2 -0
  28. package/dist/invite/steps/index.d.ts.map +1 -1
  29. package/dist/invite/steps/index.js +2 -0
  30. package/dist/invite/steps/index.js.map +1 -1
  31. package/dist/invite/steps/validate-roles-exist.d.ts +3 -0
  32. package/dist/invite/steps/validate-roles-exist.d.ts.map +1 -0
  33. package/dist/invite/steps/validate-roles-exist.js +22 -0
  34. package/dist/invite/steps/validate-roles-exist.js.map +1 -0
  35. package/dist/invite/workflows/accept-invite.d.ts.map +1 -1
  36. package/dist/invite/workflows/accept-invite.js +3 -1
  37. package/dist/invite/workflows/accept-invite.js.map +1 -1
  38. package/dist/invite/workflows/create-invites.d.ts.map +1 -1
  39. package/dist/invite/workflows/create-invites.js +25 -0
  40. package/dist/invite/workflows/create-invites.js.map +1 -1
  41. package/dist/notification/steps/send-notifications.d.ts +19 -1
  42. package/dist/notification/steps/send-notifications.d.ts.map +1 -1
  43. package/dist/notification/steps/send-notifications.js.map +1 -1
  44. package/dist/payment/steps/authorize-payment-session.d.ts.map +1 -1
  45. package/dist/payment/steps/authorize-payment-session.js +3 -0
  46. package/dist/payment/steps/authorize-payment-session.js.map +1 -1
  47. package/dist/payment-collection/steps/update-refund-reasons.d.ts.map +1 -1
  48. package/dist/payment-collection/steps/update-refund-reasons.js +3 -0
  49. package/dist/payment-collection/steps/update-refund-reasons.js.map +1 -1
  50. package/dist/rbac/steps/validate-user-permissions.js +2 -2
  51. package/dist/rbac/steps/validate-user-permissions.js.map +1 -1
  52. package/dist/tsconfig.tsbuildinfo +1 -1
  53. package/dist/user/steps/index.d.ts +1 -0
  54. package/dist/user/steps/index.d.ts.map +1 -1
  55. package/dist/user/steps/index.js +1 -0
  56. package/dist/user/steps/index.js.map +1 -1
  57. package/dist/user/steps/validate-user-role-permissions.d.ts +12 -0
  58. package/dist/user/steps/validate-user-role-permissions.d.ts.map +1 -0
  59. package/dist/user/steps/validate-user-role-permissions.js +56 -0
  60. package/dist/user/steps/validate-user-role-permissions.js.map +1 -0
  61. package/dist/user/workflows/assign-user-roles.d.ts +18 -0
  62. package/dist/user/workflows/assign-user-roles.d.ts.map +1 -0
  63. package/dist/user/workflows/assign-user-roles.js +43 -0
  64. package/dist/user/workflows/assign-user-roles.js.map +1 -0
  65. package/dist/user/workflows/create-users.d.ts.map +1 -1
  66. package/dist/user/workflows/create-users.js +26 -0
  67. package/dist/user/workflows/create-users.js.map +1 -1
  68. package/dist/user/workflows/index.d.ts +2 -0
  69. package/dist/user/workflows/index.d.ts.map +1 -1
  70. package/dist/user/workflows/index.js +2 -0
  71. package/dist/user/workflows/index.js.map +1 -1
  72. package/dist/user/workflows/remove-user-roles.d.ts +18 -0
  73. package/dist/user/workflows/remove-user-roles.d.ts.map +1 -0
  74. package/dist/user/workflows/remove-user-roles.js +41 -0
  75. package/dist/user/workflows/remove-user-roles.js.map +1 -0
  76. package/package.json +8 -10
@@ -8,6 +8,9 @@ exports.updateRefundReasonStepId = "update-refund-reasons";
8
8
  * This step updates one or more refund reasons.
9
9
  */
10
10
  exports.updateRefundReasonsStep = (0, workflows_sdk_1.createStep)(exports.updateRefundReasonStepId, async (data, { container }) => {
11
+ if (!data.length) {
12
+ return new workflows_sdk_1.StepResponse([], []);
13
+ }
11
14
  const ids = data.map((d) => d.id);
12
15
  const { selects, relations } = (0, utils_1.getSelectsAndRelationsFromObjectArray)(data);
13
16
  const service = container.resolve(utils_1.Modules.PAYMENT);
@@ -1 +1 @@
1
- {"version":3,"file":"update-refund-reasons.js","sourceRoot":"","sources":["../../../src/payment-collection/steps/update-refund-reasons.ts"],"names":[],"mappings":";;;AAIA,kDAI+B;AAC/B,kEAAyE;AAO5D,QAAA,wBAAwB,GAAG,uBAAuB,CAAA;AAC/D;;GAEG;AACU,QAAA,uBAAuB,GAAG,IAAA,0BAAU,EAC/C,gCAAwB,EACxB,KAAK,EAAE,IAAiC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;IACzD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACjC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAA,6CAAqC,EAAC,IAAI,CAAC,CAAA;IAC1E,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAwB,eAAO,CAAC,OAAO,CAAC,CAAA;IAEzE,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,iBAAiB,CACvD,EAAE,EAAE,EAAE,GAAG,EAAE,EACX,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAC/B,CAAA;IAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;IAEvD,OAAO,IAAI,4BAAY,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;AACrD,CAAC,EACD,KAAK,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;IACpC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAM;IACR,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAwB,eAAO,CAAC,OAAO,CAAC,CAAA;IAEzE,MAAM,IAAA,kBAAU,EACd,YAAY,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAChC,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAC1C,CACF,CAAA;AACH,CAAC,CACF,CAAA"}
1
+ {"version":3,"file":"update-refund-reasons.js","sourceRoot":"","sources":["../../../src/payment-collection/steps/update-refund-reasons.ts"],"names":[],"mappings":";;;AAIA,kDAI+B;AAC/B,kEAAyE;AAO5D,QAAA,wBAAwB,GAAG,uBAAuB,CAAA;AAC/D;;GAEG;AACU,QAAA,uBAAuB,GAAG,IAAA,0BAAU,EAC/C,gCAAwB,EACxB,KAAK,EAAE,IAAiC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;IACzD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,IAAI,4BAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IACjC,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACjC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAA,6CAAqC,EAAC,IAAI,CAAC,CAAA;IAC1E,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAwB,eAAO,CAAC,OAAO,CAAC,CAAA;IAEzE,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,iBAAiB,CACvD,EAAE,EAAE,EAAE,GAAG,EAAE,EACX,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAC/B,CAAA;IAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;IAEvD,OAAO,IAAI,4BAAY,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;AACrD,CAAC,EACD,KAAK,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;IACpC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAM;IACR,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAwB,eAAO,CAAC,OAAO,CAAC,CAAA;IAEzE,MAAM,IAAA,kBAAU,EACd,YAAY,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAChC,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAC1C,CACF,CAAA;AACH,CAAC,CACF,CAAA"}
@@ -20,7 +20,7 @@ exports.validateUserPermissionsStep = (0, workflows_sdk_1.createStep)(exports.va
20
20
  filters: { id: actor_id },
21
21
  });
22
22
  if (!users?.[0]?.rbac_roles || users[0].rbac_roles.length === 0) {
23
- throw new utils_1.EtoError(utils_1.EtoError.Types.NOT_ALLOWED, "Forbidden");
23
+ throw new utils_1.EtoError(utils_1.EtoError.Types.FORBIDDEN, "Forbidden");
24
24
  }
25
25
  const operationMap = new Map();
26
26
  users[0].rbac_roles.forEach((role) => {
@@ -45,7 +45,7 @@ exports.validateUserPermissionsStep = (0, workflows_sdk_1.createStep)(exports.va
45
45
  .map((action) => `${action.resource}:${action.operation}`);
46
46
  }
47
47
  if (unauthorizedPolicies.length) {
48
- throw new utils_1.EtoError(utils_1.EtoError.Types.NOT_ALLOWED, "Forbidden");
48
+ throw new utils_1.EtoError(utils_1.EtoError.Types.FORBIDDEN, "Forbidden");
49
49
  }
50
50
  });
51
51
  //# sourceMappingURL=validate-user-permissions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-user-permissions.js","sourceRoot":"","sources":["../../../src/rbac/steps/validate-user-permissions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate-user-permissions.js","sourceRoot":"","sources":["../../../src/rbac/steps/validate-user-permissions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"root":["../src/index.ts","../src/access-link/index.ts","../src/access-link/steps/cache-attribution-step.ts","../src/access-link/steps/create-access-link-step.ts","../src/access-link/steps/get-ambassador-attribution-step.ts","../src/access-link/steps/grant-program-enrollment-step.ts","../src/access-link/steps/grant-space-access-step.ts","../src/access-link/steps/index.ts","../src/access-link/steps/invalidate-user-links-step.ts","../src/access-link/steps/record-click-step.ts","../src/access-link/steps/update-link-stats-step.ts","../src/access-link/steps/use-access-link-step.ts","../src/access-link/steps/validate-creator-permissions-step.ts","../src/access-link/workflows/grant-access-workflow.ts","../src/access-link/workflows/handle-permission-revoked-workflow.ts","../src/access-link/workflows/index.ts","../src/access-link/workflows/record-click-workflow.ts","../src/access-link/workflows/use-access-link-workflow.ts","../src/ambassador/index.ts","../src/ambassador/steps/accept-invitation-step.ts","../src/ambassador/steps/calculate-commission-step.ts","../src/ambassador/steps/calculate-earnings-step.ts","../src/ambassador/steps/calculate-payout-amount-step.ts","../src/ambassador/steps/constants.ts","../src/ambassador/steps/create-ambassador-link-step.ts","../src/ambassador/steps/create-commission-record-step.ts","../src/ambassador/steps/create-commission-step.ts","../src/ambassador/steps/create-enrollment-step.ts","../src/ambassador/steps/create-payout-record-step.ts","../src/ambassador/steps/create-program-step.ts","../src/ambassador/steps/delete-access-link-step.ts","../src/ambassador/steps/find-ambassador-link-step.ts","../src/ambassador/steps/get-active-links-bulk-step.ts","../src/ambassador/steps/get-ambassador-links-step.ts","../src/ambassador/steps/get-analytics-data-step.ts","../src/ambassador/steps/get-commissions-step.ts","../src/ambassador/steps/get-program-step.ts","../src/ambassador/steps/get-unpaid-commissions-step.ts","../src/ambassador/steps/index.ts","../src/ambassador/steps/link-campaign-to-program-step.ts","../src/ambassador/steps/notify-ambassador-step.ts","../src/ambassador/steps/notify-program-owner-step.ts","../src/ambassador/steps/update-ambassador-earnings-step.ts","../src/ambassador/steps/update-commissions-with-payout-step.ts","../src/ambassador/steps/update-enrollment-status-step.ts","../src/ambassador/steps/update-program-step.ts","../src/ambassador/steps/update-promotion-links-step.ts","../src/ambassador/steps/validate-access-link-step.ts","../src/ambassador/steps/validate-ambassador-step.ts","../src/ambassador/steps/validate-enrollment-owner-step.ts","../src/ambassador/steps/validate-enrollment-step.ts","../src/ambassador/steps/validate-invitation-step.ts","../src/ambassador/steps/validate-program-owner-step.ts","../src/ambassador/steps/validate-program-step.ts","../src/ambassador/steps/validate-promotions-in-campaign-step.ts","../src/ambassador/workflows/accept-program-invitation-workflow.ts","../src/ambassador/workflows/activate-program-workflow.ts","../src/ambassador/workflows/calculate-commission-workflow.ts","../src/ambassador/workflows/create-program-workflow.ts","../src/ambassador/workflows/deactivate-program-workflow.ts","../src/ambassador/workflows/discover-programs-by-resource-workflow.ts","../src/ambassador/workflows/enroll-in-program-workflow.ts","../src/ambassador/workflows/get-ambassador-analytics-workflow.ts","../src/ambassador/workflows/get-ambassador-resource-programs-workflow.ts","../src/ambassador/workflows/get-available-programs-bulk-workflow.ts","../src/ambassador/workflows/get-available-programs-workflow.ts","../src/ambassador/workflows/index.ts","../src/ambassador/workflows/invite-to-program-workflow.ts","../src/ambassador/workflows/process-payouts-workflow.ts","../src/ambassador/workflows/record-commission-workflow.ts","../src/ambassador/workflows/review-enrollment-workflow.ts","../src/ambassador/workflows/update-program-workflow.ts","../src/api-key/index.ts","../src/api-key/steps/create-api-keys.ts","../src/api-key/steps/delete-api-keys.ts","../src/api-key/steps/index.ts","../src/api-key/steps/revoke-api-keys.ts","../src/api-key/steps/update-api-keys.ts","../src/api-key/workflows/create-api-keys.ts","../src/api-key/workflows/delete-api-keys.ts","../src/api-key/workflows/index.ts","../src/api-key/workflows/revoke-api-keys.ts","../src/api-key/workflows/update-api-keys.ts","../src/auth/index.ts","../src/auth/steps/index.ts","../src/auth/steps/set-auth-app-metadata.ts","../src/auth/workflows/generate-reset-password-token.ts","../src/auth/workflows/index.ts","../src/common/index.ts","../src/common/steps/check-resource-permission.ts","../src/common/steps/create-entities.ts","../src/common/steps/create-remote-links.ts","../src/common/steps/delete-entities.ts","../src/common/steps/dismiss-remote-links.ts","../src/common/steps/emit-event.ts","../src/common/steps/release-event.ts","../src/common/steps/remove-remote-links.ts","../src/common/steps/update-remote-links.ts","../src/common/steps/use-query-graph.ts","../src/common/steps/use-remote-query.ts","../src/common/steps/validate-presence-of.ts","../src/common/workflows/batch-links.ts","../src/common/workflows/create-links.ts","../src/common/workflows/dismiss-links.ts","../src/common/workflows/update-links.ts","../src/file/index.ts","../src/file/steps/delete-files.ts","../src/file/steps/index.ts","../src/file/steps/upload-files.ts","../src/file/workflows/delete-files.ts","../src/file/workflows/index.ts","../src/file/workflows/upload-files.ts","../src/invite/index.ts","../src/invite/steps/create-invites.ts","../src/invite/steps/delete-invites.ts","../src/invite/steps/index.ts","../src/invite/steps/refresh-invite-tokens.ts","../src/invite/steps/validate-token.ts","../src/invite/workflows/accept-invite.ts","../src/invite/workflows/create-invites.ts","../src/invite/workflows/delete-invites.ts","../src/invite/workflows/index.ts","../src/invite/workflows/refresh-invite-tokens.ts","../src/locking/acquire-lock.ts","../src/locking/index.ts","../src/locking/release-lock.ts","../src/notification/index.ts","../src/notification/steps/index.ts","../src/notification/steps/notify-on-failure.ts","../src/notification/steps/send-notifications.ts","../src/payment/index.ts","../src/payment/steps/authorize-payment-session.ts","../src/payment/steps/cancel-payment.ts","../src/payment/steps/capture-payment.ts","../src/payment/steps/index.ts","../src/payment/steps/refund-payment.ts","../src/payment/steps/refund-payments.ts","../src/payment-collection/index.ts","../src/payment-collection/steps/cancel-payment.ts","../src/payment-collection/steps/create-payment-account-holder.ts","../src/payment-collection/steps/create-payment-session.ts","../src/payment-collection/steps/create-refund-reasons.ts","../src/payment-collection/steps/delete-payment-sessions.ts","../src/payment-collection/steps/delete-refund-reasons.ts","../src/payment-collection/steps/index.ts","../src/payment-collection/steps/update-payment-collection.ts","../src/payment-collection/steps/update-refund-reasons.ts","../src/payment-collection/steps/validate-deleted-payment-sessions.ts","../src/payment-collection/workflows/cancel-payment-collection.ts","../src/payment-collection/workflows/create-payment-session.ts","../src/payment-collection/workflows/create-refund-reasons.ts","../src/payment-collection/workflows/delete-payment-sessions.ts","../src/payment-collection/workflows/delete-refund-reasons.ts","../src/payment-collection/workflows/index.ts","../src/payment-collection/workflows/update-refund-reasons.ts","../src/rbac/index.ts","../src/rbac/steps/create-rbac-policies.ts","../src/rbac/steps/create-rbac-role-parents.ts","../src/rbac/steps/create-rbac-role-policies.ts","../src/rbac/steps/create-rbac-roles.ts","../src/rbac/steps/delete-rbac-policies.ts","../src/rbac/steps/delete-rbac-role-policies.ts","../src/rbac/steps/delete-rbac-roles.ts","../src/rbac/steps/index.ts","../src/rbac/steps/set-role-parent.ts","../src/rbac/steps/update-rbac-policies.ts","../src/rbac/steps/update-rbac-role-policies.ts","../src/rbac/steps/update-rbac-roles.ts","../src/rbac/steps/validate-user-permissions.ts","../src/rbac/workflows/create-rbac-policies.ts","../src/rbac/workflows/create-rbac-role-policies.ts","../src/rbac/workflows/create-rbac-roles.ts","../src/rbac/workflows/delete-rbac-policies.ts","../src/rbac/workflows/delete-rbac-role-policies.ts","../src/rbac/workflows/delete-rbac-roles.ts","../src/rbac/workflows/index.ts","../src/rbac/workflows/update-rbac-policies.ts","../src/rbac/workflows/update-rbac-role-policies.ts","../src/rbac/workflows/update-rbac-roles.ts","../src/space/workflows/invite-user-to-space.ts","../src/user/get-user-profile-data.ts","../src/user/index.ts","../src/user/steps/create-users.ts","../src/user/steps/delete-users.ts","../src/user/steps/get-user-id-by-username.ts","../src/user/steps/get-user-step.ts","../src/user/steps/index.ts","../src/user/steps/update-users.ts","../src/user/workflows/create-user-account.ts","../src/user/workflows/create-users.ts","../src/user/workflows/delete-users.ts","../src/user/workflows/index.ts","../src/user/workflows/remove-user-account.ts","../src/user/workflows/update-users.ts"],"version":"5.8.3"}
1
+ {"root":["../src/index.ts","../src/access-link/index.ts","../src/access-link/steps/cache-attribution-step.ts","../src/access-link/steps/create-access-link-step.ts","../src/access-link/steps/get-ambassador-attribution-step.ts","../src/access-link/steps/grant-program-enrollment-step.ts","../src/access-link/steps/grant-space-access-step.ts","../src/access-link/steps/index.ts","../src/access-link/steps/invalidate-user-links-step.ts","../src/access-link/steps/record-click-step.ts","../src/access-link/steps/update-link-stats-step.ts","../src/access-link/steps/use-access-link-step.ts","../src/access-link/steps/validate-creator-permissions-step.ts","../src/access-link/workflows/grant-access-workflow.ts","../src/access-link/workflows/handle-permission-revoked-workflow.ts","../src/access-link/workflows/index.ts","../src/access-link/workflows/record-click-workflow.ts","../src/access-link/workflows/use-access-link-workflow.ts","../src/ambassador/index.ts","../src/ambassador/steps/accept-invitation-step.ts","../src/ambassador/steps/calculate-commission-step.ts","../src/ambassador/steps/calculate-earnings-step.ts","../src/ambassador/steps/calculate-payout-amount-step.ts","../src/ambassador/steps/constants.ts","../src/ambassador/steps/create-ambassador-link-step.ts","../src/ambassador/steps/create-commission-record-step.ts","../src/ambassador/steps/create-commission-step.ts","../src/ambassador/steps/create-enrollment-step.ts","../src/ambassador/steps/create-payout-record-step.ts","../src/ambassador/steps/create-program-step.ts","../src/ambassador/steps/delete-access-link-step.ts","../src/ambassador/steps/find-ambassador-link-step.ts","../src/ambassador/steps/get-active-links-bulk-step.ts","../src/ambassador/steps/get-ambassador-links-step.ts","../src/ambassador/steps/get-analytics-data-step.ts","../src/ambassador/steps/get-commissions-step.ts","../src/ambassador/steps/get-program-step.ts","../src/ambassador/steps/get-unpaid-commissions-step.ts","../src/ambassador/steps/index.ts","../src/ambassador/steps/link-campaign-to-program-step.ts","../src/ambassador/steps/notify-ambassador-step.ts","../src/ambassador/steps/notify-program-owner-step.ts","../src/ambassador/steps/update-ambassador-earnings-step.ts","../src/ambassador/steps/update-commissions-with-payout-step.ts","../src/ambassador/steps/update-enrollment-status-step.ts","../src/ambassador/steps/update-program-step.ts","../src/ambassador/steps/update-promotion-links-step.ts","../src/ambassador/steps/validate-access-link-step.ts","../src/ambassador/steps/validate-ambassador-step.ts","../src/ambassador/steps/validate-enrollment-owner-step.ts","../src/ambassador/steps/validate-enrollment-step.ts","../src/ambassador/steps/validate-invitation-step.ts","../src/ambassador/steps/validate-program-owner-step.ts","../src/ambassador/steps/validate-program-step.ts","../src/ambassador/steps/validate-promotions-in-campaign-step.ts","../src/ambassador/workflows/accept-program-invitation-workflow.ts","../src/ambassador/workflows/activate-program-workflow.ts","../src/ambassador/workflows/calculate-commission-workflow.ts","../src/ambassador/workflows/create-program-workflow.ts","../src/ambassador/workflows/deactivate-program-workflow.ts","../src/ambassador/workflows/discover-programs-by-resource-workflow.ts","../src/ambassador/workflows/enroll-in-program-workflow.ts","../src/ambassador/workflows/get-ambassador-analytics-workflow.ts","../src/ambassador/workflows/get-ambassador-resource-programs-workflow.ts","../src/ambassador/workflows/get-available-programs-bulk-workflow.ts","../src/ambassador/workflows/get-available-programs-workflow.ts","../src/ambassador/workflows/index.ts","../src/ambassador/workflows/invite-to-program-workflow.ts","../src/ambassador/workflows/process-payouts-workflow.ts","../src/ambassador/workflows/record-commission-workflow.ts","../src/ambassador/workflows/review-enrollment-workflow.ts","../src/ambassador/workflows/update-program-workflow.ts","../src/api-key/index.ts","../src/api-key/steps/create-api-keys.ts","../src/api-key/steps/delete-api-keys.ts","../src/api-key/steps/index.ts","../src/api-key/steps/revoke-api-keys.ts","../src/api-key/steps/update-api-keys.ts","../src/api-key/workflows/create-api-keys.ts","../src/api-key/workflows/delete-api-keys.ts","../src/api-key/workflows/index.ts","../src/api-key/workflows/revoke-api-keys.ts","../src/api-key/workflows/update-api-keys.ts","../src/auth/index.ts","../src/auth/steps/index.ts","../src/auth/steps/set-auth-app-metadata.ts","../src/auth/workflows/generate-reset-password-token.ts","../src/auth/workflows/index.ts","../src/auth/workflows/set-auth-app-metadata.ts","../src/common/index.ts","../src/common/steps/check-resource-permission.ts","../src/common/steps/create-entities.ts","../src/common/steps/create-remote-links.ts","../src/common/steps/delete-entities.ts","../src/common/steps/dismiss-remote-links.ts","../src/common/steps/emit-event.ts","../src/common/steps/release-event.ts","../src/common/steps/remove-remote-links.ts","../src/common/steps/update-remote-links.ts","../src/common/steps/use-query-graph.ts","../src/common/steps/use-remote-query.ts","../src/common/steps/validate-presence-of.ts","../src/common/steps/__tests__/use-query-graph-step.spec.ts","../src/common/workflows/batch-links.ts","../src/common/workflows/create-links.ts","../src/common/workflows/dismiss-links.ts","../src/common/workflows/update-links.ts","../src/file/index.ts","../src/file/steps/delete-files.ts","../src/file/steps/index.ts","../src/file/steps/upload-files.ts","../src/file/workflows/delete-files.ts","../src/file/workflows/index.ts","../src/file/workflows/upload-files.ts","../src/invite/index.ts","../src/invite/steps/create-invites.ts","../src/invite/steps/delete-invites.ts","../src/invite/steps/get-invite-roles.ts","../src/invite/steps/index.ts","../src/invite/steps/refresh-invite-tokens.ts","../src/invite/steps/validate-roles-exist.ts","../src/invite/steps/validate-token.ts","../src/invite/workflows/accept-invite.ts","../src/invite/workflows/create-invites.ts","../src/invite/workflows/delete-invites.ts","../src/invite/workflows/index.ts","../src/invite/workflows/refresh-invite-tokens.ts","../src/locking/acquire-lock.ts","../src/locking/index.ts","../src/locking/release-lock.ts","../src/notification/index.ts","../src/notification/steps/index.ts","../src/notification/steps/notify-on-failure.ts","../src/notification/steps/send-notifications.ts","../src/payment/index.ts","../src/payment/steps/authorize-payment-session.ts","../src/payment/steps/cancel-payment.ts","../src/payment/steps/capture-payment.ts","../src/payment/steps/index.ts","../src/payment/steps/refund-payment.ts","../src/payment/steps/refund-payments.ts","../src/payment-collection/index.ts","../src/payment-collection/steps/cancel-payment.ts","../src/payment-collection/steps/create-payment-account-holder.ts","../src/payment-collection/steps/create-payment-session.ts","../src/payment-collection/steps/create-refund-reasons.ts","../src/payment-collection/steps/delete-payment-sessions.ts","../src/payment-collection/steps/delete-refund-reasons.ts","../src/payment-collection/steps/index.ts","../src/payment-collection/steps/update-payment-collection.ts","../src/payment-collection/steps/update-refund-reasons.ts","../src/payment-collection/steps/validate-deleted-payment-sessions.ts","../src/payment-collection/workflows/cancel-payment-collection.ts","../src/payment-collection/workflows/create-payment-session.ts","../src/payment-collection/workflows/create-refund-reasons.ts","../src/payment-collection/workflows/delete-payment-sessions.ts","../src/payment-collection/workflows/delete-refund-reasons.ts","../src/payment-collection/workflows/index.ts","../src/payment-collection/workflows/update-refund-reasons.ts","../src/rbac/index.ts","../src/rbac/steps/create-rbac-policies.ts","../src/rbac/steps/create-rbac-role-parents.ts","../src/rbac/steps/create-rbac-role-policies.ts","../src/rbac/steps/create-rbac-roles.ts","../src/rbac/steps/delete-rbac-policies.ts","../src/rbac/steps/delete-rbac-role-policies.ts","../src/rbac/steps/delete-rbac-roles.ts","../src/rbac/steps/index.ts","../src/rbac/steps/set-role-parent.ts","../src/rbac/steps/update-rbac-policies.ts","../src/rbac/steps/update-rbac-role-policies.ts","../src/rbac/steps/update-rbac-roles.ts","../src/rbac/steps/validate-user-permissions.ts","../src/rbac/workflows/create-rbac-policies.ts","../src/rbac/workflows/create-rbac-role-policies.ts","../src/rbac/workflows/create-rbac-roles.ts","../src/rbac/workflows/delete-rbac-policies.ts","../src/rbac/workflows/delete-rbac-role-policies.ts","../src/rbac/workflows/delete-rbac-roles.ts","../src/rbac/workflows/index.ts","../src/rbac/workflows/update-rbac-policies.ts","../src/rbac/workflows/update-rbac-role-policies.ts","../src/rbac/workflows/update-rbac-roles.ts","../src/space/workflows/invite-user-to-space.ts","../src/user/get-user-profile-data.ts","../src/user/index.ts","../src/user/steps/create-users.ts","../src/user/steps/delete-users.ts","../src/user/steps/get-user-id-by-username.ts","../src/user/steps/get-user-step.ts","../src/user/steps/index.ts","../src/user/steps/update-users.ts","../src/user/steps/validate-user-role-permissions.ts","../src/user/workflows/assign-user-roles.ts","../src/user/workflows/create-user-account.ts","../src/user/workflows/create-users.ts","../src/user/workflows/delete-users.ts","../src/user/workflows/index.ts","../src/user/workflows/remove-user-account.ts","../src/user/workflows/remove-user-roles.ts","../src/user/workflows/update-users.ts"],"version":"5.8.3"}
@@ -2,4 +2,5 @@ export * from "./delete-users";
2
2
  export * from "./create-users";
3
3
  export * from "./update-users";
4
4
  export * from "./get-user-step";
5
+ export * from "./validate-user-role-permissions";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/user/steps/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/user/steps/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kCAAkC,CAAA"}
@@ -18,4 +18,5 @@ __exportStar(require("./delete-users"), exports);
18
18
  __exportStar(require("./create-users"), exports);
19
19
  __exportStar(require("./update-users"), exports);
20
20
  __exportStar(require("./get-user-step"), exports);
21
+ __exportStar(require("./validate-user-role-permissions"), exports);
21
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/user/steps/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA8B;AAC9B,iDAA8B;AAC9B,iDAA8B;AAC9B,kDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/user/steps/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA8B;AAC9B,iDAA8B;AAC9B,iDAA8B;AAC9B,kDAA+B;AAC/B,mEAAgD"}
@@ -0,0 +1,12 @@
1
+ export type ValidateUserRolePermissionsStepInput = {
2
+ actor_id: string;
3
+ actor?: string;
4
+ role_ids: string[];
5
+ };
6
+ export declare const validateUserRolePermissionsStepId = "validate-user-role-permissions";
7
+ /**
8
+ * Validates that the actor has all the policies from the roles being assigned.
9
+ * A user can only assign roles whose policies they themselves have.
10
+ */
11
+ export declare const validateUserRolePermissionsStep: import("@etohq/framework/workflows-sdk").StepFunction<ValidateUserRolePermissionsStepInput, undefined>;
12
+ //# sourceMappingURL=validate-user-role-permissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-user-role-permissions.d.ts","sourceRoot":"","sources":["../../../src/user/steps/validate-user-role-permissions.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,oCAAoC,GAAG;IACjD,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAWD,eAAO,MAAM,iCAAiC,mCACZ,CAAA;AAElC;;;GAGG;AACH,eAAO,MAAM,+BAA+B,wGAgE3C,CAAA"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateUserRolePermissionsStep = exports.validateUserRolePermissionsStepId = void 0;
4
+ const utils_1 = require("@etohq/framework/utils");
5
+ const workflows_sdk_1 = require("@etohq/framework/workflows-sdk");
6
+ exports.validateUserRolePermissionsStepId = "validate-user-role-permissions";
7
+ /**
8
+ * Validates that the actor has all the policies from the roles being assigned.
9
+ * A user can only assign roles whose policies they themselves have.
10
+ */
11
+ exports.validateUserRolePermissionsStep = (0, workflows_sdk_1.createStep)(exports.validateUserRolePermissionsStepId, async (data, { container }) => {
12
+ const { actor_id, actor, role_ids } = data;
13
+ if (!role_ids?.length) {
14
+ return new workflows_sdk_1.StepResponse(void 0);
15
+ }
16
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
17
+ const rolesResult = (await query.graph({
18
+ entity: "rbac_role",
19
+ fields: ["id", "policies.id"],
20
+ filters: { id: role_ids },
21
+ }));
22
+ const targetPolicyIds = new Set();
23
+ rolesResult.data.forEach((role) => {
24
+ role.policies?.forEach((policy) => {
25
+ targetPolicyIds.add(policy.id);
26
+ });
27
+ });
28
+ if (targetPolicyIds.size === 0) {
29
+ return new workflows_sdk_1.StepResponse(void 0);
30
+ }
31
+ const actorsResult = (await query.graph({
32
+ entity: actor ?? "user",
33
+ fields: ["rbac_roles.id", "rbac_roles.policies.id"],
34
+ filters: { id: actor_id },
35
+ }));
36
+ if (!actorsResult.data?.[0]?.rbac_roles?.length) {
37
+ throw new utils_1.EtoError(utils_1.EtoError.Types.FORBIDDEN, "You do not have permission to assign these roles");
38
+ }
39
+ const actorPolicyIds = new Set();
40
+ actorsResult.data[0].rbac_roles.forEach((role) => {
41
+ role.policies?.forEach((policy) => {
42
+ actorPolicyIds.add(policy.id);
43
+ });
44
+ });
45
+ const missingPolicies = [];
46
+ targetPolicyIds.forEach((policyId) => {
47
+ if (!actorPolicyIds.has(policyId)) {
48
+ missingPolicies.push(policyId);
49
+ }
50
+ });
51
+ if (missingPolicies.length > 0) {
52
+ throw new utils_1.EtoError(utils_1.EtoError.Types.FORBIDDEN, "You do not have permission to assign these roles");
53
+ }
54
+ return new workflows_sdk_1.StepResponse(void 0);
55
+ });
56
+ //# sourceMappingURL=validate-user-role-permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-user-role-permissions.js","sourceRoot":"","sources":["../../../src/user/steps/validate-user-role-permissions.ts"],"names":[],"mappings":";;;AAAA,kDAA4E;AAC5E,kEAAyE;AAiB5D,QAAA,iCAAiC,GAC5C,gCAAgC,CAAA;AAElC;;;GAGG;AACU,QAAA,+BAA+B,GAAG,IAAA,0BAAU,EACvD,yCAAiC,EACjC,KAAK,EAAE,IAA0C,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;IAClE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;IAE1C,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QACtB,OAAO,IAAI,4BAAY,CAAC,KAAK,CAAC,CAAC,CAAA;IACjC,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,iCAAyB,CAAC,KAAK,CAAC,CAAA;IAEhE,MAAM,WAAW,GAAG,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC;QACrC,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC;QAC7B,OAAO,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;KAC1B,CAAC,CAAiC,CAAA;IAEnC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAA;IACzC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAChC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAChC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAChC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,IAAI,eAAe,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,4BAAY,CAAC,KAAK,CAAC,CAAC,CAAA;IACjC,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC;QACtC,MAAM,EAAE,KAAK,IAAI,MAAM;QACvB,MAAM,EAAE,CAAC,eAAe,EAAE,wBAAwB,CAAC;QACnD,OAAO,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;KAC1B,CAAC,CAA+B,CAAA;IAEjC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAChD,MAAM,IAAI,gBAAQ,CAChB,gBAAQ,CAAC,KAAK,CAAC,SAAS,EACxB,kDAAkD,CACnD,CAAA;IACH,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAA;IACxC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/C,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAChC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,MAAM,eAAe,GAAa,EAAE,CAAA;IACpC,eAAe,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QACnC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAChC,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,gBAAQ,CAChB,gBAAQ,CAAC,KAAK,CAAC,SAAS,EACxB,kDAAkD,CACnD,CAAA;IACH,CAAC;IAED,OAAO,IAAI,4BAAY,CAAC,KAAK,CAAC,CAAC,CAAA;AACjC,CAAC,CACF,CAAA"}
@@ -0,0 +1,18 @@
1
+ export type AssignUserRolesWorkflowInput = {
2
+ actor_id: string;
3
+ actor?: string;
4
+ user_id?: string;
5
+ user_ids?: string[];
6
+ role_id?: string;
7
+ role_ids?: string[];
8
+ };
9
+ export declare const assignUserRolesWorkflowId = "assign-user-roles";
10
+ /**
11
+ * This workflow assigns roles to users.
12
+ * Supports two modes:
13
+ * - Assign multiple roles to a single user: { user_id, role_ids }
14
+ * - Assign multiple users to a single role: { user_ids, role_id }
15
+ * It validates that the actor has all the policies from the roles being assigned.
16
+ */
17
+ export declare const assignUserRolesWorkflow: import("@etohq/framework/workflows-sdk").ReturnWorkflow<AssignUserRolesWorkflowInput, undefined, []>;
18
+ //# sourceMappingURL=assign-user-roles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assign-user-roles.d.ts","sourceRoot":"","sources":["../../../src/user/workflows/assign-user-roles.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,yBAAyB,sBAAsB,CAAA;AAE5D;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,sGAsCnC,CAAA"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assignUserRolesWorkflow = exports.assignUserRolesWorkflowId = void 0;
4
+ const workflows_sdk_1 = require("@etohq/framework/workflows-sdk");
5
+ const create_remote_links_1 = require("../../common/steps/create-remote-links");
6
+ const validate_roles_exist_1 = require("../../invite/steps/validate-roles-exist");
7
+ const validate_user_role_permissions_1 = require("../steps/validate-user-role-permissions");
8
+ exports.assignUserRolesWorkflowId = "assign-user-roles";
9
+ /**
10
+ * This workflow assigns roles to users.
11
+ * Supports two modes:
12
+ * - Assign multiple roles to a single user: { user_id, role_ids }
13
+ * - Assign multiple users to a single role: { user_ids, role_id }
14
+ * It validates that the actor has all the policies from the roles being assigned.
15
+ */
16
+ exports.assignUserRolesWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.assignUserRolesWorkflowId, (input) => {
17
+ const roleIds = (0, workflows_sdk_1.transform)({ input }, ({ input }) => {
18
+ return input.role_ids ?? (input.role_id ? [input.role_id] : []);
19
+ });
20
+ (0, validate_roles_exist_1.validateRolesExistStep)(roleIds);
21
+ (0, validate_user_role_permissions_1.validateUserRolePermissionsStep)({
22
+ actor_id: input.actor_id,
23
+ actor: input.actor,
24
+ role_ids: roleIds,
25
+ });
26
+ const userRoleLinks = (0, workflows_sdk_1.transform)({ input }, ({ input }) => {
27
+ const users = input.user_ids ?? (input.user_id ? [input.user_id] : []);
28
+ const roles = input.role_ids ?? (input.role_id ? [input.role_id] : []);
29
+ const links = [];
30
+ for (const userId of users) {
31
+ for (const roleId of roles) {
32
+ links.push({
33
+ user: { user_id: userId },
34
+ rbac: { rbac_role_id: roleId },
35
+ });
36
+ }
37
+ }
38
+ return links;
39
+ });
40
+ (0, create_remote_links_1.createRemoteLinkStep)(userRoleLinks);
41
+ return new workflows_sdk_1.WorkflowResponse(void 0);
42
+ });
43
+ //# sourceMappingURL=assign-user-roles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assign-user-roles.js","sourceRoot":"","sources":["../../../src/user/workflows/assign-user-roles.ts"],"names":[],"mappings":";;;AAAA,kEAKuC;AACvC,gFAA6E;AAC7E,kFAAgF;AAChF,4FAAyF;AAW5E,QAAA,yBAAyB,GAAG,mBAAmB,CAAA;AAE5D;;;;;;GAMG;AACU,QAAA,uBAAuB,GAAG,IAAA,8BAAc,EACnD,iCAAyB,EACzB,CAAC,KAAiD,EAAE,EAAE;IACpD,MAAM,OAAO,GAAG,IAAA,yBAAS,EAAC,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACjD,OAAO,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACjE,CAAC,CAAC,CAAA;IAEF,IAAA,6CAAsB,EAAC,OAAO,CAAC,CAAA;IAE/B,IAAA,gEAA+B,EAAC;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAA;IAEF,MAAM,aAAa,GAAG,IAAA,yBAAS,EAAC,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvD,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QACtE,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAEtE,MAAM,KAAK,GAGL,EAAE,CAAA;QACR,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;oBACzB,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE;iBAC/B,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC,CAAC,CAAA;IAEF,IAAA,0CAAoB,EAAC,aAAa,CAAC,CAAA;IAEnC,OAAO,IAAI,gCAAgB,CAAC,KAAK,CAAC,CAAC,CAAA;AACrC,CAAC,CACF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-users.d.ts","sourceRoot":"","sources":["../../../src/user/workflows/create-users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAW9D,eAAO,MAAM,qBAAqB,0BAA0B,CAAA;AAC5D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,mBAAmB,kHAoB/B,CAAA"}
1
+ {"version":3,"file":"create-users.d.ts","sourceRoot":"","sources":["../../../src/user/workflows/create-users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAa9D,eAAO,MAAM,qBAAqB,0BAA0B,CAAA;AAC5D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,mBAAmB,kHAqD/B,CAAA"}
@@ -3,7 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createUsersWorkflow = exports.createUsersWorkflowId = void 0;
4
4
  const utils_1 = require("@etohq/framework/utils");
5
5
  const workflows_sdk_1 = require("@etohq/framework/workflows-sdk");
6
+ const create_remote_links_1 = require("../../common/steps/create-remote-links");
6
7
  const emit_event_1 = require("../../common/steps/emit-event");
8
+ const validate_roles_exist_1 = require("../../invite/steps/validate-roles-exist");
7
9
  const steps_1 = require("../steps");
8
10
  exports.createUsersWorkflowId = "create-users-workflow";
9
11
  /**
@@ -34,7 +36,31 @@ exports.createUsersWorkflowId = "create-users-workflow";
34
36
  * Create one or more users.
35
37
  */
36
38
  exports.createUsersWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.createUsersWorkflowId, (input) => {
39
+ const allRoleIds = (0, workflows_sdk_1.transform)({ input }, ({ input }) => {
40
+ const roleIds = new Set();
41
+ input.users.forEach((user) => {
42
+ for (const roleId of user.roles || []) {
43
+ roleIds.add(roleId);
44
+ }
45
+ });
46
+ return Array.from(roleIds);
47
+ });
48
+ (0, validate_roles_exist_1.validateRolesExistStep)(allRoleIds);
37
49
  const createdUsers = (0, steps_1.createUsersStep)(input.users);
50
+ const userRoleLinks = (0, workflows_sdk_1.transform)({ input, createdUsers }, ({ input, createdUsers }) => {
51
+ const links = [];
52
+ input.users.forEach((user, index) => {
53
+ const userId = createdUsers[index].id;
54
+ for (const roleId of user.roles || []) {
55
+ links.push({
56
+ user: { user_id: userId },
57
+ rbac: { rbac_role_id: roleId },
58
+ });
59
+ }
60
+ });
61
+ return links;
62
+ });
63
+ (0, create_remote_links_1.createRemoteLinkStep)(userRoleLinks);
38
64
  const userIdEvents = (0, workflows_sdk_1.transform)({ createdUsers }, ({ createdUsers }) => {
39
65
  return createdUsers.map((v) => {
40
66
  return { id: v.id };
@@ -1 +1 @@
1
- {"version":3,"file":"create-users.js","sourceRoot":"","sources":["../../../src/user/workflows/create-users.ts"],"names":[],"mappings":";;;AACA,kDAA2D;AAC3D,kEAKuC;AACvC,8DAA6D;AAC7D,oCAA0C;AAE7B,QAAA,qBAAqB,GAAG,uBAAuB,CAAA;AAC5D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACU,QAAA,mBAAmB,GAAG,IAAA,8BAAc,EAC/C,6BAAqB,EACrB,CACE,KAA6D,EAChC,EAAE;IAC/B,MAAM,YAAY,GAAG,IAAA,uBAAe,EAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAEjD,MAAM,YAAY,GAAG,IAAA,yBAAS,EAAC,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;QACpE,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAA;QACrB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,IAAA,0BAAa,EAAC;QACZ,SAAS,EAAE,0BAAkB,CAAC,OAAO;QACrC,IAAI,EAAE,YAAY;KACnB,CAAC,CAAA;IAEF,OAAO,IAAI,gCAAgB,CAAC,YAAY,CAAC,CAAA;AAC3C,CAAC,CACF,CAAA"}
1
+ {"version":3,"file":"create-users.js","sourceRoot":"","sources":["../../../src/user/workflows/create-users.ts"],"names":[],"mappings":";;;AACA,kDAA2D;AAC3D,kEAKuC;AACvC,gFAA6E;AAC7E,8DAA6D;AAC7D,kFAAgF;AAChF,oCAA0C;AAE7B,QAAA,qBAAqB,GAAG,uBAAuB,CAAA;AAC5D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACU,QAAA,mBAAmB,GAAG,IAAA,8BAAc,EAC/C,6BAAqB,EACrB,CACE,KAA6D,EAChC,EAAE;IAC/B,MAAM,UAAU,GAAG,IAAA,yBAAS,EAAC,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACpD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;QACjC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACrB,CAAC;QACH,CAAC,CAAC,CAAA;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEF,IAAA,6CAAsB,EAAC,UAAU,CAAC,CAAA;IAElC,MAAM,YAAY,GAAG,IAAA,uBAAe,EAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAEjD,MAAM,aAAa,GAAG,IAAA,yBAAS,EAC7B,EAAE,KAAK,EAAE,YAAY,EAAE,EACvB,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE;QAC1B,MAAM,KAAK,GAEL,EAAE,CAAA;QACR,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAClC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAA;YACrC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;oBACzB,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE;iBAC/B,CAAC,CAAA;YACJ,CAAC;QACH,CAAC,CAAC,CAAA;QACF,OAAO,KAAK,CAAA;IACd,CAAC,CACF,CAAA;IAED,IAAA,0CAAoB,EAAC,aAAa,CAAC,CAAA;IAEnC,MAAM,YAAY,GAAG,IAAA,yBAAS,EAAC,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;QACpE,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAA;QACrB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,IAAA,0BAAa,EAAC;QACZ,SAAS,EAAE,0BAAkB,CAAC,OAAO;QACrC,IAAI,EAAE,YAAY;KACnB,CAAC,CAAA;IAEF,OAAO,IAAI,gCAAgB,CAAC,YAAY,CAAC,CAAA;AAC3C,CAAC,CACF,CAAA"}
@@ -1,6 +1,8 @@
1
1
  export * from "./create-user-account";
2
+ export * from "./assign-user-roles";
2
3
  export * from "./create-users";
3
4
  export * from "./delete-users";
4
5
  export * from "./remove-user-account";
6
+ export * from "./remove-user-roles";
5
7
  export * from "./update-users";
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/user/workflows/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/user/workflows/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA"}
@@ -15,8 +15,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./create-user-account"), exports);
18
+ __exportStar(require("./assign-user-roles"), exports);
18
19
  __exportStar(require("./create-users"), exports);
19
20
  __exportStar(require("./delete-users"), exports);
20
21
  __exportStar(require("./remove-user-account"), exports);
22
+ __exportStar(require("./remove-user-roles"), exports);
21
23
  __exportStar(require("./update-users"), exports);
22
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/user/workflows/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC;AACrC,iDAA8B;AAC9B,iDAA8B;AAC9B,wDAAqC;AACrC,iDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/user/workflows/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC;AACrC,sDAAmC;AACnC,iDAA8B;AAC9B,iDAA8B;AAC9B,wDAAqC;AACrC,sDAAmC;AACnC,iDAA8B"}
@@ -0,0 +1,18 @@
1
+ export type RemoveUserRolesWorkflowInput = {
2
+ actor_id: string;
3
+ actor?: string;
4
+ user_id?: string;
5
+ user_ids?: string[];
6
+ role_id?: string;
7
+ role_ids?: string[];
8
+ };
9
+ export declare const removeUserRolesWorkflowId = "remove-user-roles";
10
+ /**
11
+ * This workflow removes roles from users.
12
+ * Supports two modes:
13
+ * - Remove multiple roles from a single user: { user_id, role_ids }
14
+ * - Remove multiple users from a single role: { user_ids, role_id }
15
+ * It validates that the actor has all the policies from the roles being removed.
16
+ */
17
+ export declare const removeUserRolesWorkflow: import("@etohq/framework/workflows-sdk").ReturnWorkflow<RemoveUserRolesWorkflowInput, undefined, []>;
18
+ //# sourceMappingURL=remove-user-roles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-user-roles.d.ts","sourceRoot":"","sources":["../../../src/user/workflows/remove-user-roles.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,yBAAyB,sBAAsB,CAAA;AAE5D;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,sGAoCnC,CAAA"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.removeUserRolesWorkflow = exports.removeUserRolesWorkflowId = void 0;
4
+ const workflows_sdk_1 = require("@etohq/framework/workflows-sdk");
5
+ const dismiss_remote_links_1 = require("../../common/steps/dismiss-remote-links");
6
+ const validate_user_role_permissions_1 = require("../steps/validate-user-role-permissions");
7
+ exports.removeUserRolesWorkflowId = "remove-user-roles";
8
+ /**
9
+ * This workflow removes roles from users.
10
+ * Supports two modes:
11
+ * - Remove multiple roles from a single user: { user_id, role_ids }
12
+ * - Remove multiple users from a single role: { user_ids, role_id }
13
+ * It validates that the actor has all the policies from the roles being removed.
14
+ */
15
+ exports.removeUserRolesWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.removeUserRolesWorkflowId, (input) => {
16
+ const roleIds = (0, workflows_sdk_1.transform)({ input }, ({ input }) => {
17
+ return input.role_ids ?? (input.role_id ? [input.role_id] : []);
18
+ });
19
+ (0, validate_user_role_permissions_1.validateUserRolePermissionsStep)({
20
+ actor_id: input.actor_id,
21
+ role_ids: roleIds,
22
+ actor: input.actor,
23
+ });
24
+ const userRoleLinks = (0, workflows_sdk_1.transform)({ input }, ({ input }) => {
25
+ const users = input.user_ids ?? (input.user_id ? [input.user_id] : []);
26
+ const roles = input.role_ids ?? (input.role_id ? [input.role_id] : []);
27
+ const links = [];
28
+ for (const userId of users) {
29
+ for (const roleId of roles) {
30
+ links.push({
31
+ user: { user_id: userId },
32
+ rbac: { rbac_role_id: roleId },
33
+ });
34
+ }
35
+ }
36
+ return links;
37
+ });
38
+ (0, dismiss_remote_links_1.dismissRemoteLinkStep)(userRoleLinks);
39
+ return new workflows_sdk_1.WorkflowResponse(void 0);
40
+ });
41
+ //# sourceMappingURL=remove-user-roles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-user-roles.js","sourceRoot":"","sources":["../../../src/user/workflows/remove-user-roles.ts"],"names":[],"mappings":";;;AAAA,kEAKuC;AACvC,kFAA+E;AAC/E,4FAAyF;AAW5E,QAAA,yBAAyB,GAAG,mBAAmB,CAAA;AAE5D;;;;;;GAMG;AACU,QAAA,uBAAuB,GAAG,IAAA,8BAAc,EACnD,iCAAyB,EACzB,CAAC,KAAiD,EAAE,EAAE;IACpD,MAAM,OAAO,GAAG,IAAA,yBAAS,EAAC,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACjD,OAAO,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACjE,CAAC,CAAC,CAAA;IAEF,IAAA,gEAA+B,EAAC;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CAAA;IAEF,MAAM,aAAa,GAAG,IAAA,yBAAS,EAAC,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvD,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QACtE,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAEtE,MAAM,KAAK,GAGL,EAAE,CAAA;QACR,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;oBACzB,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE;iBAC/B,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC,CAAC,CAAA;IAEF,IAAA,4CAAqB,EAAC,aAAa,CAAC,CAAA;IAEpC,OAAO,IAAI,gCAAgB,CAAC,KAAK,CAAC,CAAC,CAAA;AACrC,CAAC,CACF,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@etohq/core-flows",
3
- "version": "1.5.1-alpha.4",
4
- "description": "Set of workflow definitions for commerce",
3
+ "version": "1.5.1-alpha.8",
4
+ "description": "Set of workflow definitions for core",
5
5
  "main": "dist/index.js",
6
6
  "exports": {
7
7
  ".": "./dist/index.js"
@@ -9,7 +9,7 @@
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "https://github.com/etohq/eto",
12
- "directory": "packages/commerce/flows"
12
+ "directory": "packages/core/flows"
13
13
  },
14
14
  "publishConfig": {
15
15
  "access": "public"
@@ -26,8 +26,6 @@
26
26
  "author": "Eto",
27
27
  "license": "MIT",
28
28
  "devDependencies": {
29
- "@etohq/commerce-flows": "1.3.0",
30
- "@etohq/commerce-types": "1.3.0",
31
29
  "@mikro-orm/core": "6.4.3",
32
30
  "@mikro-orm/knex": "6.4.3",
33
31
  "@mikro-orm/migrations": "6.4.3",
@@ -42,18 +40,18 @@
42
40
  "rimraf": "5.0.2",
43
41
  "tsc-alias": "1.8.6",
44
42
  "typescript": "5.8.3",
45
- "@etohq/framework": "1.5.1-alpha.4",
46
- "@etohq/types": "1.5.1-alpha.4"
43
+ "@etohq/framework": "1.5.1-alpha.8",
44
+ "@etohq/types": "1.5.1-alpha.8"
47
45
  },
48
46
  "dependencies": {
49
47
  "json-2-csv": "5.5.4",
50
48
  "uuid": "9.0.0",
51
- "@etohq/utils": "1.5.1-alpha.4",
52
- "@etohq/workflows-sdk": "1.5.1-alpha.4"
49
+ "@etohq/utils": "1.5.1-alpha.8",
50
+ "@etohq/workflows-sdk": "1.5.1-alpha.8"
53
51
  },
54
52
  "peerDependencies": {
55
53
  "awilix": "8.0.1",
56
- "@etohq/framework": "1.5.1-alpha.4"
54
+ "@etohq/framework": "1.5.1-alpha.8"
57
55
  },
58
56
  "scripts": {
59
57
  "resolve:aliases": "tsc --showConfig -p tsconfig.json > tsconfig.resolved.json && tsc-alias -p tsconfig.resolved.json && rimraf tsconfig.resolved.json",