@nevermined-io/payments 1.3.2 → 1.4.1

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 (67) hide show
  1. package/README.md +5 -3
  2. package/dist/api/agents-api.d.ts +4 -3
  3. package/dist/api/agents-api.d.ts.map +1 -1
  4. package/dist/api/agents-api.js +5 -5
  5. package/dist/api/agents-api.js.map +1 -1
  6. package/dist/api/base-payments.d.ts +49 -1
  7. package/dist/api/base-payments.d.ts.map +1 -1
  8. package/dist/api/base-payments.js +82 -16
  9. package/dist/api/base-payments.js.map +1 -1
  10. package/dist/api/nvm-api.d.ts +2 -1
  11. package/dist/api/nvm-api.d.ts.map +1 -1
  12. package/dist/api/nvm-api.js +2 -1
  13. package/dist/api/nvm-api.js.map +1 -1
  14. package/dist/api/organizations-api/organizations-api.d.ts +42 -1
  15. package/dist/api/organizations-api/organizations-api.d.ts.map +1 -1
  16. package/dist/api/organizations-api/organizations-api.js +91 -3
  17. package/dist/api/organizations-api/organizations-api.js.map +1 -1
  18. package/dist/api/organizations-api/types.d.ts +134 -0
  19. package/dist/api/organizations-api/types.d.ts.map +1 -1
  20. package/dist/api/organizations-api/types.js +52 -0
  21. package/dist/api/organizations-api/types.js.map +1 -1
  22. package/dist/api/plans-api.d.ts +15 -36
  23. package/dist/api/plans-api.d.ts.map +1 -1
  24. package/dist/api/plans-api.js +22 -57
  25. package/dist/api/plans-api.js.map +1 -1
  26. package/dist/common/types.d.ts +38 -15
  27. package/dist/common/types.d.ts.map +1 -1
  28. package/dist/common/types.js.map +1 -1
  29. package/dist/environments.d.ts +0 -7
  30. package/dist/environments.d.ts.map +1 -1
  31. package/dist/environments.js +0 -13
  32. package/dist/environments.js.map +1 -1
  33. package/dist/index.d.ts +5 -3
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +3 -2
  36. package/dist/index.js.map +1 -1
  37. package/dist/mcp/http/session-manager.d.ts.map +1 -1
  38. package/dist/mcp/http/session-manager.js +15 -1
  39. package/dist/mcp/http/session-manager.js.map +1 -1
  40. package/dist/payments.d.ts +26 -1
  41. package/dist/payments.d.ts.map +1 -1
  42. package/dist/payments.js +43 -11
  43. package/dist/payments.js.map +1 -1
  44. package/dist/plans.d.ts +1 -1
  45. package/dist/plans.js +6 -6
  46. package/dist/plans.js.map +1 -1
  47. package/dist/x402/delegation-api.d.ts +34 -7
  48. package/dist/x402/delegation-api.d.ts.map +1 -1
  49. package/dist/x402/delegation-api.js +15 -3
  50. package/dist/x402/delegation-api.js.map +1 -1
  51. package/dist/x402/facilitator-api.d.ts +5 -6
  52. package/dist/x402/facilitator-api.d.ts.map +1 -1
  53. package/dist/x402/facilitator-api.js +17 -5
  54. package/dist/x402/facilitator-api.js.map +1 -1
  55. package/dist/x402/index.d.ts +2 -6
  56. package/dist/x402/index.d.ts.map +1 -1
  57. package/dist/x402/index.js +1 -4
  58. package/dist/x402/index.js.map +1 -1
  59. package/package.json +23 -21
  60. package/dist/x402/visa-facilitator-api.d.ts +0 -150
  61. package/dist/x402/visa-facilitator-api.d.ts.map +0 -1
  62. package/dist/x402/visa-facilitator-api.js +0 -206
  63. package/dist/x402/visa-facilitator-api.js.map +0 -1
  64. package/dist/x402/visa-token-api.d.ts +0 -60
  65. package/dist/x402/visa-token-api.d.ts.map +0 -1
  66. package/dist/x402/visa-token-api.js +0 -99
  67. package/dist/x402/visa-token-api.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { PaymentsError } from '../../common/payments.error.js';
2
2
  import { BasePaymentsAPI } from '../base-payments.js';
3
- import { API_URL_CONNECT_STRIPE_ACCOUNT, API_URL_CREATE_USER, API_URL_GET_MEMBERS } from '../nvm-api.js';
3
+ import { API_URL_CONNECT_STRIPE_ACCOUNT, API_URL_CREATE_USER, API_URL_GET_MEMBERS, API_URL_MY_MEMBERSHIPS, API_URL_ORG_ACTIVITY, } from '../nvm-api.js';
4
4
  export class OrganizationsAPI extends BasePaymentsAPI {
5
5
  static getInstance(options) {
6
6
  return new OrganizationsAPI(options);
@@ -59,6 +59,93 @@ export class OrganizationsAPI extends BasePaymentsAPI {
59
59
  total: data.totalResults,
60
60
  };
61
61
  }
62
+ /**
63
+ * Lists every organization the authenticated user is an active member of,
64
+ * with their role and the organization's tier.
65
+ *
66
+ * Powers workspace pickers in third-party tools built on the SDK, and the
67
+ * "where will this publish?" UX when a user belongs to multiple orgs.
68
+ *
69
+ * @returns An array of {@link MyMembership} — empty when the user has no
70
+ * active memberships and operates as a personal account.
71
+ *
72
+ * @example
73
+ * ```ts
74
+ * const memberships = await payments.organizations.getMyMemberships()
75
+ * for (const m of memberships) {
76
+ * console.log(`${m.orgName} — ${m.role}`)
77
+ * }
78
+ * ```
79
+ */
80
+ async getMyMemberships() {
81
+ const url = new URL(API_URL_MY_MEMBERSHIPS, this.environment.backend);
82
+ const options = this.getBackendHTTPOptions('GET');
83
+ const response = await fetch(url, options);
84
+ if (!response.ok) {
85
+ const error = await response.json().catch(() => ({ message: 'Unknown error' }));
86
+ throw PaymentsError.fromBackend('Unable to fetch memberships', error);
87
+ }
88
+ const data = (await response.json());
89
+ return Array.isArray(data) ? data : [];
90
+ }
91
+ /**
92
+ * Lists events emitted into the activity feed of an organization the
93
+ * caller is an active member of (member invites, customer events,
94
+ * subscription transitions, webhook deliveries, …).
95
+ *
96
+ * Requires the caller to be a Member or Admin of `orgId`; the backend
97
+ * returns 403 otherwise. Premium+ entitlement is enforced server-side.
98
+ *
99
+ * @param orgId - The organization id (e.g. `org-…`) whose feed to read.
100
+ * @param filters - Optional filter set — see {@link OrganizationActivityFilters}.
101
+ * @returns A paginated {@link OrganizationActivityPage}.
102
+ *
103
+ * @example
104
+ * ```ts
105
+ * const page = await payments.organizations.getOrganizationActivity(orgId, {
106
+ * eventType: OrganizationActivityEventType.MemberInvited,
107
+ * page: 1,
108
+ * limit: 25,
109
+ * })
110
+ * ```
111
+ */
112
+ async getOrganizationActivity(orgId, filters = {}) {
113
+ if (!orgId) {
114
+ throw new PaymentsError('orgId is required');
115
+ }
116
+ const params = new URLSearchParams();
117
+ if (filters.eventType !== undefined) {
118
+ const eventType = Array.isArray(filters.eventType)
119
+ ? filters.eventType.map(String).join(',')
120
+ : String(filters.eventType);
121
+ if (eventType.length > 0)
122
+ params.set('eventType', eventType);
123
+ }
124
+ if (filters.actorUserId)
125
+ params.set('actorUserId', filters.actorUserId);
126
+ if (filters.from)
127
+ params.set('from', filters.from);
128
+ if (filters.to)
129
+ params.set('to', filters.to);
130
+ if (filters.page !== undefined)
131
+ params.set('page', String(filters.page));
132
+ if (filters.limit !== undefined)
133
+ params.set('limit', String(filters.limit));
134
+ const path = API_URL_ORG_ACTIVITY.replace(':orgId', encodeURIComponent(orgId));
135
+ const queryString = params.toString();
136
+ const url = new URL(queryString ? `${path}?${queryString}` : path, this.environment.backend);
137
+ const options = this.getBackendHTTPOptions('GET');
138
+ const response = await fetch(url, options);
139
+ if (!response.ok) {
140
+ const error = await response.json().catch(() => ({ message: 'Unknown error' }));
141
+ throw PaymentsError.fromBackend('Unable to fetch organization activity', error);
142
+ }
143
+ const data = (await response.json());
144
+ return {
145
+ items: Array.isArray(data.items) ? data.items : [],
146
+ total: typeof data.total === 'number' ? data.total : 0,
147
+ };
148
+ }
62
149
  /**
63
150
  * Connect user with Stripe
64
151
  * @param userEmail - The email of the user
@@ -84,9 +171,10 @@ export class OrganizationsAPI extends BasePaymentsAPI {
84
171
  return {
85
172
  stripeAccountLink: data.stripeAccountLink,
86
173
  stripeAccountId: data.stripeAccountId,
87
- userId: data.userId, userCountryCode: data.userCountryCode,
174
+ userId: data.userId,
175
+ userCountryCode: data.userCountryCode,
88
176
  linkCreatedAt: data.linkCreatedAt,
89
- linkExpiresAt: data.linkExpiresAt
177
+ linkExpiresAt: data.linkExpiresAt,
90
178
  };
91
179
  }
92
180
  }
@@ -1 +1 @@
1
- {"version":3,"file":"organizations-api.js","sourceRoot":"","sources":["../../../src/api/organizations-api/organizations-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { PaymentsError } from '../../common/payments.error.js'\nimport { PaymentOptions } from '../../common/types.js'\nimport { BasePaymentsAPI } from '../base-payments.js'\nimport { API_URL_CONNECT_STRIPE_ACCOUNT, API_URL_CREATE_USER, API_URL_GET_MEMBERS } from '../nvm-api.js'\nimport { CreateUserResponse, OrganizationMemberRole, OrganizationMembersResponse, StripeCheckoutResult } from './types.js'\n\nexport class OrganizationsAPI extends BasePaymentsAPI {\n static getInstance(options: PaymentOptions): OrganizationsAPI {\n return new OrganizationsAPI(options)\n }\n\n /**\n * Create a new member in the organization\n * @param userId - The unique external ID of the new member\n * @param userEmail - The email of the new member\n * @param userRole - The role of the new member\n * @returns The created member\n */\n async createMember(\n userId: string,\n userEmail?: string,\n userRole?: OrganizationMemberRole,\n ): Promise<CreateUserResponse> {\n const body = {\n uniqueExternalId: userId,\n email: userEmail,\n role: userRole,\n }\n const options = this.getBackendHTTPOptions('POST', body)\n const url = new URL(API_URL_CREATE_USER, this.environment.backend)\n const response = await fetch(url, options)\n if (!response.ok) {\n const error = await response.json().catch(() => ({ message: 'Unknown error' }))\n throw PaymentsError.fromBackend('Unable to create user', error)\n }\n\n const data = await response.json()\n return {\n ...data.walletResult,\n nvmApiKey: data.walletResult.hash,\n }\n }\n\n /**\n *\n * @param role - The role of the members to get\n * @param isActive - The active status of the members to get\n * @param page - The page of the members to get\n * @param offset - The number of members to get per page\n * @returns The list of members\n */\n async getMembers(\n role?: OrganizationMemberRole,\n isActive?: boolean,\n page = 1,\n offset = 100,\n ): Promise<OrganizationMembersResponse> {\n const body = {\n role,\n isActive,\n page,\n offset,\n }\n const url = new URL(API_URL_GET_MEMBERS, this.environment.backend)\n const options = this.getBackendHTTPOptions('POST', body)\n\n const response = await fetch(url, options)\n if (!response.ok) {\n const error = await response.json().catch(() => ({ message: 'Unknown error' }))\n throw PaymentsError.fromBackend('Unable to get members', error)\n }\n\n const data = await response.json()\n return {\n members: data.members,\n total: data.totalResults,\n }\n }\n\n /**\n * Connect user with Stripe\n * @param userEmail - The email of the user\n * @param userCountryCode - The country code of the user\n * @param returnUrl - The return URL after the Stripe connection is completed\n * @returns The Stripe checkout result including the stripe account link, stripe account id, user id, user country code, link created at and link expires at.\n * The stripe account link is the link that the user needs to click to connect with Stripe.\n */\n async connectStripeAccount(userEmail: string, userCountryCode: string, returnUrl: string): Promise<StripeCheckoutResult> {\n const body = {\n userEmail,\n userCountryCode,\n returnUrl,\n }\n const url = new URL(API_URL_CONNECT_STRIPE_ACCOUNT, this.environment.backend)\n const options = this.getBackendHTTPOptions('POST', body)\n const response = await fetch(url, options)\n if (!response.ok) {\n const error = await response.json().catch(() => ({ message: 'Unknown error' }))\n throw PaymentsError.fromBackend('Unable to connect with Stripe', error)\n }\n const data = await response.json()\n return {\n stripeAccountLink: data.stripeAccountLink,\n stripeAccountId: data.stripeAccountId,\n userId: data.userId, userCountryCode:\n data.userCountryCode,\n linkCreatedAt: data.linkCreatedAt,\n linkExpiresAt: data.linkExpiresAt\n }\n }\n}\n"]}
1
+ {"version":3,"file":"organizations-api.js","sourceRoot":"","sources":["../../../src/api/organizations-api/organizations-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { PaymentsError } from '../../common/payments.error.js'\nimport { PaymentOptions } from '../../common/types.js'\nimport { BasePaymentsAPI } from '../base-payments.js'\nimport {\n API_URL_CONNECT_STRIPE_ACCOUNT,\n API_URL_CREATE_USER,\n API_URL_GET_MEMBERS,\n API_URL_MY_MEMBERSHIPS,\n API_URL_ORG_ACTIVITY,\n} from '../nvm-api.js'\nimport {\n CreateUserResponse,\n MyMembership,\n OrganizationActivityFilters,\n OrganizationActivityPage,\n OrganizationMemberRole,\n OrganizationMembersResponse,\n StripeCheckoutResult,\n} from './types.js'\n\nexport class OrganizationsAPI extends BasePaymentsAPI {\n static getInstance(options: PaymentOptions): OrganizationsAPI {\n return new OrganizationsAPI(options)\n }\n\n /**\n * Create a new member in the organization\n * @param userId - The unique external ID of the new member\n * @param userEmail - The email of the new member\n * @param userRole - The role of the new member\n * @returns The created member\n */\n async createMember(\n userId: string,\n userEmail?: string,\n userRole?: OrganizationMemberRole,\n ): Promise<CreateUserResponse> {\n const body = {\n uniqueExternalId: userId,\n email: userEmail,\n role: userRole,\n }\n const options = this.getBackendHTTPOptions('POST', body)\n const url = new URL(API_URL_CREATE_USER, this.environment.backend)\n const response = await fetch(url, options)\n if (!response.ok) {\n const error = await response.json().catch(() => ({ message: 'Unknown error' }))\n throw PaymentsError.fromBackend('Unable to create user', error)\n }\n\n const data = await response.json()\n return {\n ...data.walletResult,\n nvmApiKey: data.walletResult.hash,\n }\n }\n\n /**\n *\n * @param role - The role of the members to get\n * @param isActive - The active status of the members to get\n * @param page - The page of the members to get\n * @param offset - The number of members to get per page\n * @returns The list of members\n */\n async getMembers(\n role?: OrganizationMemberRole,\n isActive?: boolean,\n page = 1,\n offset = 100,\n ): Promise<OrganizationMembersResponse> {\n const body = {\n role,\n isActive,\n page,\n offset,\n }\n const url = new URL(API_URL_GET_MEMBERS, this.environment.backend)\n const options = this.getBackendHTTPOptions('POST', body)\n\n const response = await fetch(url, options)\n if (!response.ok) {\n const error = await response.json().catch(() => ({ message: 'Unknown error' }))\n throw PaymentsError.fromBackend('Unable to get members', error)\n }\n\n const data = await response.json()\n return {\n members: data.members,\n total: data.totalResults,\n }\n }\n\n /**\n * Lists every organization the authenticated user is an active member of,\n * with their role and the organization's tier.\n *\n * Powers workspace pickers in third-party tools built on the SDK, and the\n * \"where will this publish?\" UX when a user belongs to multiple orgs.\n *\n * @returns An array of {@link MyMembership} — empty when the user has no\n * active memberships and operates as a personal account.\n *\n * @example\n * ```ts\n * const memberships = await payments.organizations.getMyMemberships()\n * for (const m of memberships) {\n * console.log(`${m.orgName} — ${m.role}`)\n * }\n * ```\n */\n async getMyMemberships(): Promise<MyMembership[]> {\n const url = new URL(API_URL_MY_MEMBERSHIPS, this.environment.backend)\n const options = this.getBackendHTTPOptions('GET')\n const response = await fetch(url, options)\n if (!response.ok) {\n const error = await response.json().catch(() => ({ message: 'Unknown error' }))\n throw PaymentsError.fromBackend('Unable to fetch memberships', error)\n }\n const data = (await response.json()) as MyMembership[]\n return Array.isArray(data) ? data : []\n }\n\n /**\n * Lists events emitted into the activity feed of an organization the\n * caller is an active member of (member invites, customer events,\n * subscription transitions, webhook deliveries, …).\n *\n * Requires the caller to be a Member or Admin of `orgId`; the backend\n * returns 403 otherwise. Premium+ entitlement is enforced server-side.\n *\n * @param orgId - The organization id (e.g. `org-…`) whose feed to read.\n * @param filters - Optional filter set — see {@link OrganizationActivityFilters}.\n * @returns A paginated {@link OrganizationActivityPage}.\n *\n * @example\n * ```ts\n * const page = await payments.organizations.getOrganizationActivity(orgId, {\n * eventType: OrganizationActivityEventType.MemberInvited,\n * page: 1,\n * limit: 25,\n * })\n * ```\n */\n async getOrganizationActivity(\n orgId: string,\n filters: OrganizationActivityFilters = {},\n ): Promise<OrganizationActivityPage> {\n if (!orgId) {\n throw new PaymentsError('orgId is required')\n }\n const params = new URLSearchParams()\n if (filters.eventType !== undefined) {\n const eventType = Array.isArray(filters.eventType)\n ? filters.eventType.map(String).join(',')\n : String(filters.eventType)\n if (eventType.length > 0) params.set('eventType', eventType)\n }\n if (filters.actorUserId) params.set('actorUserId', filters.actorUserId)\n if (filters.from) params.set('from', filters.from)\n if (filters.to) params.set('to', filters.to)\n if (filters.page !== undefined) params.set('page', String(filters.page))\n if (filters.limit !== undefined) params.set('limit', String(filters.limit))\n\n const path = API_URL_ORG_ACTIVITY.replace(':orgId', encodeURIComponent(orgId))\n const queryString = params.toString()\n const url = new URL(queryString ? `${path}?${queryString}` : path, this.environment.backend)\n const options = this.getBackendHTTPOptions('GET')\n const response = await fetch(url, options)\n if (!response.ok) {\n const error = await response.json().catch(() => ({ message: 'Unknown error' }))\n throw PaymentsError.fromBackend('Unable to fetch organization activity', error)\n }\n const data = (await response.json()) as Partial<OrganizationActivityPage>\n return {\n items: Array.isArray(data.items) ? data.items : [],\n total: typeof data.total === 'number' ? data.total : 0,\n }\n }\n\n /**\n * Connect user with Stripe\n * @param userEmail - The email of the user\n * @param userCountryCode - The country code of the user\n * @param returnUrl - The return URL after the Stripe connection is completed\n * @returns The Stripe checkout result including the stripe account link, stripe account id, user id, user country code, link created at and link expires at.\n * The stripe account link is the link that the user needs to click to connect with Stripe.\n */\n async connectStripeAccount(\n userEmail: string,\n userCountryCode: string,\n returnUrl: string,\n ): Promise<StripeCheckoutResult> {\n const body = {\n userEmail,\n userCountryCode,\n returnUrl,\n }\n const url = new URL(API_URL_CONNECT_STRIPE_ACCOUNT, this.environment.backend)\n const options = this.getBackendHTTPOptions('POST', body)\n const response = await fetch(url, options)\n if (!response.ok) {\n const error = await response.json().catch(() => ({ message: 'Unknown error' }))\n throw PaymentsError.fromBackend('Unable to connect with Stripe', error)\n }\n const data = await response.json()\n return {\n stripeAccountLink: data.stripeAccountLink,\n stripeAccountId: data.stripeAccountId,\n userId: data.userId,\n userCountryCode: data.userCountryCode,\n linkCreatedAt: data.linkCreatedAt,\n linkExpiresAt: data.linkExpiresAt,\n }\n }\n}\n"]}
@@ -3,12 +3,146 @@ export declare enum OrganizationMemberRole {
3
3
  Member = "Member",
4
4
  Client = "Client"
5
5
  }
6
+ /**
7
+ * Tier of an organization. Mirrors the backend `OrganizationType` enum at
8
+ * `libs/commons/src/lib/types/types.ts` in nvm-monorepo.
9
+ *
10
+ * - `Premium` / `Enterprise` — the paid tiers from Epic #1339.
11
+ * - `Lapsed` — an org whose paid subscription has expired; replaces the
12
+ * retired `Free` bucket (the backend never emits `Free` for new rows).
13
+ * - `Other` — legacy pre-tiered-pricing bucket still returned for orgs that
14
+ * pre-date the tier system; inherits Premium-equivalent caps and features
15
+ * server-side.
16
+ */
17
+ export declare enum OrganizationType {
18
+ Premium = "Premium",
19
+ Enterprise = "Enterprise",
20
+ Lapsed = "Lapsed",
21
+ Other = "Other"
22
+ }
6
23
  export type CreateUserResponse = {
7
24
  nvmApiKey: string;
8
25
  userId: string;
9
26
  userWallet: string;
10
27
  alreadyMember: boolean;
11
28
  };
29
+ /**
30
+ * A single organization the authenticated user is an active member of.
31
+ * Returned by `OrganizationsAPI.getMyMemberships()` and used by clients to
32
+ * power workspace pickers and "where will this publish?" UX.
33
+ *
34
+ * Shape mirrors `MyMembershipDto` in the Nevermined backend
35
+ * (`apps/api/src/organizations/dto/my-membership.dto.ts`).
36
+ */
37
+ export type MyMembership = {
38
+ /** Stable organization id (e.g. `org-…`). */
39
+ orgId: string;
40
+ /** Display name of the organization. */
41
+ orgName: string;
42
+ /** Caller's role inside this organization. */
43
+ role: OrganizationMemberRole;
44
+ /** Tier of the organization — see {@link OrganizationType}. */
45
+ orgType: OrganizationType;
46
+ /** Whether the caller is an Admin of this organization. */
47
+ isAdmin: boolean;
48
+ /**
49
+ * `true` when the org has at least one `organizationSubscription` row —
50
+ * the org has previously been associated with a paid tier (active,
51
+ * past_due, trialing, lapsed, or canceled). Combined with
52
+ * `orgType === Lapsed` it distinguishes "subscription expired" from
53
+ * "free org that never subscribed".
54
+ */
55
+ hasSubscriptionHistory: boolean;
56
+ };
57
+ /**
58
+ * Event types emitted into the organization activity feed. Values mirror
59
+ * the backend enum in `@nevermined-io/commons`. Stored on the wire as
60
+ * dot-namespaced lowercase strings — the SDK accepts any string for
61
+ * forward-compatibility when new event types are introduced server-side.
62
+ */
63
+ export declare enum OrganizationActivityEventType {
64
+ MemberInvited = "member.invited",
65
+ MemberJoined = "member.joined",
66
+ MemberRoleChanged = "member.role_changed",
67
+ MemberDeactivated = "member.deactivated",
68
+ MemberReactivated = "member.reactivated",
69
+ MemberRemoved = "member.removed",
70
+ InvitationRevoked = "invitation.revoked",
71
+ InvitationExpired = "invitation.expired",
72
+ AgentCreated = "agent.created",
73
+ PlanCreated = "plan.created",
74
+ PlanPurchased = "plan.purchased",
75
+ CustomerAdded = "customer.added",
76
+ CustomerBlocked = "customer.blocked",
77
+ CustomerUnblocked = "customer.unblocked",
78
+ SubscriptionUpgraded = "subscription.upgraded",
79
+ SubscriptionDowngraded = "subscription.downgraded",
80
+ SubscriptionCanceled = "subscription.canceled",
81
+ SubscriptionLapsed = "subscription.lapsed",
82
+ WebhookDelivered = "webhook.delivered",
83
+ WebhookFailed = "webhook.failed"
84
+ }
85
+ /**
86
+ * The resource an activity event is about. `kind` describes the resource
87
+ * type (`plan`, `agent`, `member`, `subscription`, `invitation`, `customer`,
88
+ * `webhook`) and `id` is the resource's identifier. Extras vary by kind —
89
+ * e.g. invitations include `role` + `email`, members include `role` +
90
+ * `userId`, subscriptions include `tier`.
91
+ */
92
+ export type OrganizationActivityEventSubject = {
93
+ kind: string;
94
+ id: string;
95
+ [key: string]: unknown;
96
+ };
97
+ /**
98
+ * A single event emitted into the organization activity feed. Shape mirrors
99
+ * `OrganizationActivityEventResponseDto` in the Nevermined backend.
100
+ */
101
+ export type OrganizationActivityEvent = {
102
+ /** Activity event ID (e.g. `ae-{uuid}`). */
103
+ id: string;
104
+ /**
105
+ * Backend-emitted event type. Use {@link OrganizationActivityEventType}
106
+ * for known values; the field stays a plain string so a new server-side
107
+ * event type doesn't break consumers.
108
+ */
109
+ eventType: OrganizationActivityEventType | string;
110
+ /** User who triggered the event, or `null` for system-emitted events. */
111
+ actorUserId: string | null;
112
+ /** Resource the event is about — see {@link OrganizationActivityEventSubject}. */
113
+ subject: OrganizationActivityEventSubject;
114
+ /** Optional payload (e.g. previous/current values on role/status changes). */
115
+ metadata: Record<string, unknown> | null;
116
+ /** ISO-8601 timestamp of when the event occurred. */
117
+ occurredAt: string;
118
+ };
119
+ /**
120
+ * Paginated page of activity events. The backend only echoes `items` and
121
+ * `total`; `page` / `limit` are not in the response — they're the values
122
+ * the caller asked for in {@link OrganizationActivityFilters}.
123
+ */
124
+ export type OrganizationActivityPage = {
125
+ items: OrganizationActivityEvent[];
126
+ total: number;
127
+ };
128
+ /** Filters accepted by `OrganizationsAPI.getOrganizationActivity`. */
129
+ export type OrganizationActivityFilters = {
130
+ /**
131
+ * Restrict to one or more event types. Accepts a single string, an enum
132
+ * value, or an array (sent to the backend as a comma-separated list).
133
+ */
134
+ eventType?: OrganizationActivityEventType | string | Array<OrganizationActivityEventType | string>;
135
+ /** Restrict to events triggered by a specific user. */
136
+ actorUserId?: string;
137
+ /** ISO-8601 lower bound (inclusive) on `occurredAt`. */
138
+ from?: string;
139
+ /** ISO-8601 upper bound (exclusive) on `occurredAt`. */
140
+ to?: string;
141
+ /** Page number — 1-based. */
142
+ page?: number;
143
+ /** Page size — backend cap is 200. */
144
+ limit?: number;
145
+ };
12
146
  export type OrganizationMember = {
13
147
  createdAt: string;
14
148
  updatedAt: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/api/organizations-api/types.ts"],"names":[],"mappings":"AAAA,oBAAY,sBAAsB;IAChC,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,sBAAsB,CAAA;IAC5B,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,OAAO,EAAE,kBAAkB,EAAE,CAAA;IAC7B,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,eAAe,EAAE,MAAM,CAAA;IACvB,iBAAiB,EAAE,MAAM,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/api/organizations-api/types.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,56 @@ export var OrganizationMemberRole;
4
4
  OrganizationMemberRole["Member"] = "Member";
5
5
  OrganizationMemberRole["Client"] = "Client";
6
6
  })(OrganizationMemberRole || (OrganizationMemberRole = {}));
7
+ /**
8
+ * Tier of an organization. Mirrors the backend `OrganizationType` enum at
9
+ * `libs/commons/src/lib/types/types.ts` in nvm-monorepo.
10
+ *
11
+ * - `Premium` / `Enterprise` — the paid tiers from Epic #1339.
12
+ * - `Lapsed` — an org whose paid subscription has expired; replaces the
13
+ * retired `Free` bucket (the backend never emits `Free` for new rows).
14
+ * - `Other` — legacy pre-tiered-pricing bucket still returned for orgs that
15
+ * pre-date the tier system; inherits Premium-equivalent caps and features
16
+ * server-side.
17
+ */
18
+ export var OrganizationType;
19
+ (function (OrganizationType) {
20
+ OrganizationType["Premium"] = "Premium";
21
+ OrganizationType["Enterprise"] = "Enterprise";
22
+ OrganizationType["Lapsed"] = "Lapsed";
23
+ OrganizationType["Other"] = "Other";
24
+ })(OrganizationType || (OrganizationType = {}));
25
+ /**
26
+ * Event types emitted into the organization activity feed. Values mirror
27
+ * the backend enum in `@nevermined-io/commons`. Stored on the wire as
28
+ * dot-namespaced lowercase strings — the SDK accepts any string for
29
+ * forward-compatibility when new event types are introduced server-side.
30
+ */
31
+ export var OrganizationActivityEventType;
32
+ (function (OrganizationActivityEventType) {
33
+ // Membership lifecycle
34
+ OrganizationActivityEventType["MemberInvited"] = "member.invited";
35
+ OrganizationActivityEventType["MemberJoined"] = "member.joined";
36
+ OrganizationActivityEventType["MemberRoleChanged"] = "member.role_changed";
37
+ OrganizationActivityEventType["MemberDeactivated"] = "member.deactivated";
38
+ OrganizationActivityEventType["MemberReactivated"] = "member.reactivated";
39
+ OrganizationActivityEventType["MemberRemoved"] = "member.removed";
40
+ OrganizationActivityEventType["InvitationRevoked"] = "invitation.revoked";
41
+ OrganizationActivityEventType["InvitationExpired"] = "invitation.expired";
42
+ // Resource lifecycle
43
+ OrganizationActivityEventType["AgentCreated"] = "agent.created";
44
+ OrganizationActivityEventType["PlanCreated"] = "plan.created";
45
+ OrganizationActivityEventType["PlanPurchased"] = "plan.purchased";
46
+ // Customer lifecycle
47
+ OrganizationActivityEventType["CustomerAdded"] = "customer.added";
48
+ OrganizationActivityEventType["CustomerBlocked"] = "customer.blocked";
49
+ OrganizationActivityEventType["CustomerUnblocked"] = "customer.unblocked";
50
+ // Subscription lifecycle
51
+ OrganizationActivityEventType["SubscriptionUpgraded"] = "subscription.upgraded";
52
+ OrganizationActivityEventType["SubscriptionDowngraded"] = "subscription.downgraded";
53
+ OrganizationActivityEventType["SubscriptionCanceled"] = "subscription.canceled";
54
+ OrganizationActivityEventType["SubscriptionLapsed"] = "subscription.lapsed";
55
+ // Webhook delivery
56
+ OrganizationActivityEventType["WebhookDelivered"] = "webhook.delivered";
57
+ OrganizationActivityEventType["WebhookFailed"] = "webhook.failed";
58
+ })(OrganizationActivityEventType || (OrganizationActivityEventType = {}));
7
59
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/organizations-api/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IAChC,yCAAe,CAAA;IACf,2CAAiB,CAAA;IACjB,2CAAiB,CAAA;AACnB,CAAC,EAJW,sBAAsB,KAAtB,sBAAsB,QAIjC","sourcesContent":["export enum OrganizationMemberRole {\n Admin = 'Admin',\n Member = 'Member',\n Client = 'Client',\n}\n\nexport type CreateUserResponse = {\n nvmApiKey: string\n userId: string\n userWallet: string\n alreadyMember: boolean\n}\n\nexport type OrganizationMember = {\n createdAt: string\n updatedAt: string\n id: string\n userId: string\n orgId: string\n userAddress: string\n role: OrganizationMemberRole\n isActive: boolean\n}\n\nexport type OrganizationMembersResponse = {\n members: OrganizationMember[]\n total: number\n}\n\nexport type StripeCheckoutResult = {\n stripeAccountId: string\n stripeAccountLink: string\n userId: string\n userCountryCode: string\n linkCreatedAt: number\n linkExpiresAt: number\n}"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/organizations-api/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IAChC,yCAAe,CAAA;IACf,2CAAiB,CAAA;IACjB,2CAAiB,CAAA;AACnB,CAAC,EAJW,sBAAsB,KAAtB,sBAAsB,QAIjC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAN,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,uCAAmB,CAAA;IACnB,6CAAyB,CAAA;IACzB,qCAAiB,CAAA;IACjB,mCAAe,CAAA;AACjB,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B;AAsCD;;;;;GAKG;AACH,MAAM,CAAN,IAAY,6BA0BX;AA1BD,WAAY,6BAA6B;IACvC,uBAAuB;IACvB,iEAAgC,CAAA;IAChC,+DAA8B,CAAA;IAC9B,0EAAyC,CAAA;IACzC,yEAAwC,CAAA;IACxC,yEAAwC,CAAA;IACxC,iEAAgC,CAAA;IAChC,yEAAwC,CAAA;IACxC,yEAAwC,CAAA;IACxC,qBAAqB;IACrB,+DAA8B,CAAA;IAC9B,6DAA4B,CAAA;IAC5B,iEAAgC,CAAA;IAChC,qBAAqB;IACrB,iEAAgC,CAAA;IAChC,qEAAoC,CAAA;IACpC,yEAAwC,CAAA;IACxC,yBAAyB;IACzB,+EAA8C,CAAA;IAC9C,mFAAkD,CAAA;IAClD,+EAA8C,CAAA;IAC9C,2EAA0C,CAAA;IAC1C,mBAAmB;IACnB,uEAAsC,CAAA;IACtC,iEAAgC,CAAA;AAClC,CAAC,EA1BW,6BAA6B,KAA7B,6BAA6B,QA0BxC","sourcesContent":["export enum OrganizationMemberRole {\n Admin = 'Admin',\n Member = 'Member',\n Client = 'Client',\n}\n\n/**\n * Tier of an organization. Mirrors the backend `OrganizationType` enum at\n * `libs/commons/src/lib/types/types.ts` in nvm-monorepo.\n *\n * - `Premium` / `Enterprise` — the paid tiers from Epic #1339.\n * - `Lapsed` — an org whose paid subscription has expired; replaces the\n * retired `Free` bucket (the backend never emits `Free` for new rows).\n * - `Other` — legacy pre-tiered-pricing bucket still returned for orgs that\n * pre-date the tier system; inherits Premium-equivalent caps and features\n * server-side.\n */\nexport enum OrganizationType {\n Premium = 'Premium',\n Enterprise = 'Enterprise',\n Lapsed = 'Lapsed',\n Other = 'Other',\n}\n\nexport type CreateUserResponse = {\n nvmApiKey: string\n userId: string\n userWallet: string\n alreadyMember: boolean\n}\n\n/**\n * A single organization the authenticated user is an active member of.\n * Returned by `OrganizationsAPI.getMyMemberships()` and used by clients to\n * power workspace pickers and \"where will this publish?\" UX.\n *\n * Shape mirrors `MyMembershipDto` in the Nevermined backend\n * (`apps/api/src/organizations/dto/my-membership.dto.ts`).\n */\nexport type MyMembership = {\n /** Stable organization id (e.g. `org-…`). */\n orgId: string\n /** Display name of the organization. */\n orgName: string\n /** Caller's role inside this organization. */\n role: OrganizationMemberRole\n /** Tier of the organization — see {@link OrganizationType}. */\n orgType: OrganizationType\n /** Whether the caller is an Admin of this organization. */\n isAdmin: boolean\n /**\n * `true` when the org has at least one `organizationSubscription` row —\n * the org has previously been associated with a paid tier (active,\n * past_due, trialing, lapsed, or canceled). Combined with\n * `orgType === Lapsed` it distinguishes \"subscription expired\" from\n * \"free org that never subscribed\".\n */\n hasSubscriptionHistory: boolean\n}\n\n/**\n * Event types emitted into the organization activity feed. Values mirror\n * the backend enum in `@nevermined-io/commons`. Stored on the wire as\n * dot-namespaced lowercase strings — the SDK accepts any string for\n * forward-compatibility when new event types are introduced server-side.\n */\nexport enum OrganizationActivityEventType {\n // Membership lifecycle\n MemberInvited = 'member.invited',\n MemberJoined = 'member.joined',\n MemberRoleChanged = 'member.role_changed',\n MemberDeactivated = 'member.deactivated',\n MemberReactivated = 'member.reactivated',\n MemberRemoved = 'member.removed',\n InvitationRevoked = 'invitation.revoked',\n InvitationExpired = 'invitation.expired',\n // Resource lifecycle\n AgentCreated = 'agent.created',\n PlanCreated = 'plan.created',\n PlanPurchased = 'plan.purchased',\n // Customer lifecycle\n CustomerAdded = 'customer.added',\n CustomerBlocked = 'customer.blocked',\n CustomerUnblocked = 'customer.unblocked',\n // Subscription lifecycle\n SubscriptionUpgraded = 'subscription.upgraded',\n SubscriptionDowngraded = 'subscription.downgraded',\n SubscriptionCanceled = 'subscription.canceled',\n SubscriptionLapsed = 'subscription.lapsed',\n // Webhook delivery\n WebhookDelivered = 'webhook.delivered',\n WebhookFailed = 'webhook.failed',\n}\n\n/**\n * The resource an activity event is about. `kind` describes the resource\n * type (`plan`, `agent`, `member`, `subscription`, `invitation`, `customer`,\n * `webhook`) and `id` is the resource's identifier. Extras vary by kind —\n * e.g. invitations include `role` + `email`, members include `role` +\n * `userId`, subscriptions include `tier`.\n */\nexport type OrganizationActivityEventSubject = {\n kind: string\n id: string\n [key: string]: unknown\n}\n\n/**\n * A single event emitted into the organization activity feed. Shape mirrors\n * `OrganizationActivityEventResponseDto` in the Nevermined backend.\n */\nexport type OrganizationActivityEvent = {\n /** Activity event ID (e.g. `ae-{uuid}`). */\n id: string\n /**\n * Backend-emitted event type. Use {@link OrganizationActivityEventType}\n * for known values; the field stays a plain string so a new server-side\n * event type doesn't break consumers.\n */\n eventType: OrganizationActivityEventType | string\n /** User who triggered the event, or `null` for system-emitted events. */\n actorUserId: string | null\n /** Resource the event is about — see {@link OrganizationActivityEventSubject}. */\n subject: OrganizationActivityEventSubject\n /** Optional payload (e.g. previous/current values on role/status changes). */\n metadata: Record<string, unknown> | null\n /** ISO-8601 timestamp of when the event occurred. */\n occurredAt: string\n}\n\n/**\n * Paginated page of activity events. The backend only echoes `items` and\n * `total`; `page` / `limit` are not in the response — they're the values\n * the caller asked for in {@link OrganizationActivityFilters}.\n */\nexport type OrganizationActivityPage = {\n items: OrganizationActivityEvent[]\n total: number\n}\n\n/** Filters accepted by `OrganizationsAPI.getOrganizationActivity`. */\nexport type OrganizationActivityFilters = {\n /**\n * Restrict to one or more event types. Accepts a single string, an enum\n * value, or an array (sent to the backend as a comma-separated list).\n */\n eventType?: OrganizationActivityEventType | string | Array<OrganizationActivityEventType | string>\n /** Restrict to events triggered by a specific user. */\n actorUserId?: string\n /** ISO-8601 lower bound (inclusive) on `occurredAt`. */\n from?: string\n /** ISO-8601 upper bound (exclusive) on `occurredAt`. */\n to?: string\n /** Page number — 1-based. */\n page?: number\n /** Page size — backend cap is 200. */\n limit?: number\n}\n\nexport type OrganizationMember = {\n createdAt: string\n updatedAt: string\n id: string\n userId: string\n orgId: string\n userAddress: string\n role: OrganizationMemberRole\n isActive: boolean\n}\n\nexport type OrganizationMembersResponse = {\n members: OrganizationMember[]\n total: number\n}\n\nexport type StripeCheckoutResult = {\n stripeAccountId: string\n stripeAccountLink: string\n userId: string\n userCountryCode: string\n linkCreatedAt: number\n linkExpiresAt: number\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { Address, Currency, NvmAPIResult, PaginationOptions, PaymentOptions, PlanBalance, PlanCreditsConfig, PlanRedemptionType, PlanMetadata, PlanPriceConfig, StripeCheckoutResult } from '../common/types.js';
2
- import { BasePaymentsAPI } from './base-payments.js';
2
+ import { BasePaymentsAPI, PublicationOptions } from './base-payments.js';
3
3
  /**
4
4
  * The PlansAPI class provides methods to register and interact with payment plans on Nevermined.
5
5
  */
@@ -103,13 +103,19 @@ export declare class PlansAPI extends BasePaymentsAPI {
103
103
  */
104
104
  setRedemptionType(creditsConfig: PlanCreditsConfig, redemptionType: PlanRedemptionType): PlanCreditsConfig;
105
105
  /**
106
- * Marks whether proof is required in a credits configuration.
106
+ * Marks whether burns of these credits are mirrored on-chain.
107
107
  *
108
108
  * @param creditsConfig - Credits configuration to modify.
109
- * @param proofRequired - Whether proof is required (default true).
109
+ * @param onchainMirror - Whether on-chain mirroring is enabled. Defaults
110
+ * to `true` so calling `setOnchainMirror(config)` enables the mirror;
111
+ * pass `false` explicitly to disable it. The `PlanCreditsConfig`
112
+ * field itself defaults to `false` (set by all credits-config
113
+ * builders) — when `false` the credits ledger lives in the API's
114
+ * Postgres and burns are recorded off-chain only; when `true`, an
115
+ * on-chain audit mirror replays each burn to `NFT1155Credits`.
110
116
  * @returns The updated PlanCreditsConfig.
111
117
  */
112
- setProofRequired(creditsConfig: PlanCreditsConfig, proofRequired?: boolean): PlanCreditsConfig;
118
+ setOnchainMirror(creditsConfig: PlanCreditsConfig, onchainMirror?: boolean): PlanCreditsConfig;
113
119
  /**
114
120
  * This method is used to create a singleton instance of the PlansAPI class.
115
121
  *
@@ -148,7 +154,7 @@ export declare class PlansAPI extends BasePaymentsAPI {
148
154
  *
149
155
  * @returns The unique identifier of the plan (Plan ID) of the newly created plan.
150
156
  */
151
- registerPlan(planMetadata: PlanMetadata, priceConfig: PlanPriceConfig, creditsConfig: PlanCreditsConfig, nonce?: bigint, accessLimit?: 'credits' | 'time'): Promise<{
157
+ registerPlan(planMetadata: PlanMetadata, priceConfig: PlanPriceConfig, creditsConfig: PlanCreditsConfig, nonce?: bigint, accessLimit?: 'credits' | 'time', publicationOptions?: PublicationOptions): Promise<{
152
158
  planId: string;
153
159
  }>;
154
160
  /**
@@ -181,7 +187,7 @@ export declare class PlansAPI extends BasePaymentsAPI {
181
187
  *
182
188
  * @returns The unique identifier of the plan (Plan ID) of the newly created plan.
183
189
  */
184
- registerCreditsPlan(planMetadata: PlanMetadata, priceConfig: PlanPriceConfig, creditsConfig: PlanCreditsConfig): Promise<{
190
+ registerCreditsPlan(planMetadata: PlanMetadata, priceConfig: PlanPriceConfig, creditsConfig: PlanCreditsConfig, publicationOptions?: PublicationOptions): Promise<{
185
191
  planId: string;
186
192
  }>;
187
193
  /**
@@ -214,7 +220,7 @@ export declare class PlansAPI extends BasePaymentsAPI {
214
220
  *
215
221
  * @returns The unique identifier of the plan (Plan ID) of the newly created plan.
216
222
  */
217
- registerTimePlan(planMetadata: PlanMetadata, priceConfig: PlanPriceConfig, creditsConfig: PlanCreditsConfig): Promise<{
223
+ registerTimePlan(planMetadata: PlanMetadata, priceConfig: PlanPriceConfig, creditsConfig: PlanCreditsConfig, publicationOptions?: PublicationOptions): Promise<{
218
224
  planId: string;
219
225
  }>;
220
226
  /**
@@ -245,7 +251,7 @@ export declare class PlansAPI extends BasePaymentsAPI {
245
251
  *
246
252
  * @returns The unique identifier of the plan (Plan ID) of the newly created plan.
247
253
  */
248
- registerCreditsTrialPlan(planMetadata: PlanMetadata, priceConfig: PlanPriceConfig, creditsConfig: PlanCreditsConfig): Promise<{
254
+ registerCreditsTrialPlan(planMetadata: PlanMetadata, priceConfig: PlanPriceConfig, creditsConfig: PlanCreditsConfig, publicationOptions?: PublicationOptions): Promise<{
249
255
  planId: string;
250
256
  }>;
251
257
  /**
@@ -276,7 +282,7 @@ export declare class PlansAPI extends BasePaymentsAPI {
276
282
  *
277
283
  * @returns The unique identifier of the plan (Plan ID) of the newly created plan.
278
284
  */
279
- registerTimeTrialPlan(planMetadata: PlanMetadata, priceConfig: PlanPriceConfig, creditsConfig: PlanCreditsConfig): Promise<{
285
+ registerTimeTrialPlan(planMetadata: PlanMetadata, priceConfig: PlanPriceConfig, creditsConfig: PlanCreditsConfig, publicationOptions?: PublicationOptions): Promise<{
280
286
  planId: string;
281
287
  }>;
282
288
  /**
@@ -433,32 +439,5 @@ export declare class PlansAPI extends BasePaymentsAPI {
433
439
  * ```
434
440
  */
435
441
  mintPlanExpirable(planId: string, creditsAmount: bigint, creditsReceiver: Address, creditsDuration?: bigint): Promise<NvmAPIResult>;
436
- /**
437
- * Burns/redeem credits for a given Payment Plan.
438
- *
439
- * @remarks
440
- * Only the owner of the Payment Plan can call this method.
441
- *
442
- * @param agentRequestId - The unique identifier of the agent request to track the operation. This ID is generated via the `requests.startProcessingRequest` method
443
- * @param planId - The unique identifier of the Payment Plan.
444
- * @param redeemFrom - The address of the account to redeem from.
445
- * @param creditsAmountToRedeem - The amount of credits to redeem.
446
- * @returns @see {@link NvmAPIResult} A promise that resolves to the result of the operation.
447
- * @throws PaymentsError if unable to burn credits.
448
- *
449
- * ```
450
- * const result = await payments.plans.redeemCredits(
451
- * 'request-id-12345', // The request ID to track the operation
452
- * planId,
453
- * '0x505384192Ba6a4D4b50EAB846ee67db3b9A93359', // The address of the account to redeem from
454
- * 5n
455
- * )
456
- * // {
457
- * // txHash: '0x8d29d5769e832a35e53f80cd4e8890d941c50a09c33dbd975533debc894f2535',
458
- * // success: true
459
- * // }
460
- * ```
461
- */
462
- redeemCredits(agentRequestId: string, planId: string, redeemFrom: Address, creditsAmountToRedeem: string): Promise<NvmAPIResult>;
463
442
  }
464
443
  //# sourceMappingURL=plans-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plans-api.d.ts","sourceRoot":"","sources":["../../src/api/plans-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plans-api.d.ts","sourceRoot":"","sources":["../../src/api/plans-api.ts"],"names":[],"mappings":"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"}