@nevermined-io/payments 1.1.18 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/README.md +5 -3
  2. package/dist/a2a/clientRegistry.d.ts.map +1 -1
  3. package/dist/a2a/clientRegistry.js +2 -2
  4. package/dist/a2a/clientRegistry.js.map +1 -1
  5. package/dist/a2a/paymentsClient.d.ts +2 -2
  6. package/dist/a2a/paymentsClient.d.ts.map +1 -1
  7. package/dist/a2a/paymentsClient.js +10 -6
  8. package/dist/a2a/paymentsClient.js.map +1 -1
  9. package/dist/a2a/server.d.ts.map +1 -1
  10. package/dist/a2a/server.js +3 -1
  11. package/dist/a2a/server.js.map +1 -1
  12. package/dist/a2a/types.d.ts +1 -0
  13. package/dist/a2a/types.d.ts.map +1 -1
  14. package/dist/a2a/types.js.map +1 -1
  15. package/dist/api/base-payments.d.ts.map +1 -1
  16. package/dist/api/base-payments.js +12 -10
  17. package/dist/api/base-payments.js.map +1 -1
  18. package/dist/api/nvm-api.d.ts +0 -1
  19. package/dist/api/nvm-api.d.ts.map +1 -1
  20. package/dist/api/nvm-api.js +0 -1
  21. package/dist/api/nvm-api.js.map +1 -1
  22. package/dist/api/plans-api.d.ts +21 -32
  23. package/dist/api/plans-api.d.ts.map +1 -1
  24. package/dist/api/plans-api.js +27 -49
  25. package/dist/api/plans-api.js.map +1 -1
  26. package/dist/common/types.d.ts +90 -19
  27. package/dist/common/types.d.ts.map +1 -1
  28. package/dist/common/types.js +16 -0
  29. package/dist/common/types.js.map +1 -1
  30. package/dist/environments.d.ts +0 -7
  31. package/dist/environments.d.ts.map +1 -1
  32. package/dist/environments.js +0 -13
  33. package/dist/environments.js.map +1 -1
  34. package/dist/index.d.ts +2 -5
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +1 -3
  37. package/dist/index.js.map +1 -1
  38. package/dist/mcp/http/session-manager.d.ts.map +1 -1
  39. package/dist/mcp/http/session-manager.js +15 -1
  40. package/dist/mcp/http/session-manager.js.map +1 -1
  41. package/dist/payments.d.ts +17 -1
  42. package/dist/payments.d.ts.map +1 -1
  43. package/dist/payments.js +2 -10
  44. package/dist/payments.js.map +1 -1
  45. package/dist/plans.d.ts +14 -3
  46. package/dist/plans.d.ts.map +1 -1
  47. package/dist/plans.js +25 -8
  48. package/dist/plans.js.map +1 -1
  49. package/dist/x402/delegation-api.d.ts +119 -19
  50. package/dist/x402/delegation-api.d.ts.map +1 -1
  51. package/dist/x402/delegation-api.js +77 -23
  52. package/dist/x402/delegation-api.js.map +1 -1
  53. package/dist/x402/express/middleware.d.ts +4 -0
  54. package/dist/x402/express/middleware.d.ts.map +1 -1
  55. package/dist/x402/express/middleware.js +7 -4
  56. package/dist/x402/express/middleware.js.map +1 -1
  57. package/dist/x402/facilitator-api.d.ts +13 -5
  58. package/dist/x402/facilitator-api.d.ts.map +1 -1
  59. package/dist/x402/facilitator-api.js +41 -15
  60. package/dist/x402/facilitator-api.js.map +1 -1
  61. package/dist/x402/index.d.ts +3 -7
  62. package/dist/x402/index.d.ts.map +1 -1
  63. package/dist/x402/index.js +2 -5
  64. package/dist/x402/index.js.map +1 -1
  65. package/dist/x402/token.d.ts +17 -17
  66. package/dist/x402/token.d.ts.map +1 -1
  67. package/dist/x402/token.js +27 -37
  68. package/dist/x402/token.js.map +1 -1
  69. package/package.json +23 -21
  70. package/dist/x402/visa-facilitator-api.d.ts +0 -150
  71. package/dist/x402/visa-facilitator-api.d.ts.map +0 -1
  72. package/dist/x402/visa-facilitator-api.js +0 -206
  73. package/dist/x402/visa-facilitator-api.js.map +0 -1
  74. package/dist/x402/visa-token-api.d.ts +0 -60
  75. package/dist/x402/visa-token-api.d.ts.map +0 -1
  76. package/dist/x402/visa-token-api.js +0 -99
  77. package/dist/x402/visa-token-api.js.map +0 -1
@@ -1,60 +0,0 @@
1
- /**
2
- * Visa Token API — generates x402 payment payloads via the Visa backend.
3
- *
4
- * Instead of generating a cryptographic NVM access token (which requires session keys
5
- * and smart accounts), this API calls the Visa backend's /access-token endpoint
6
- * with a vProvisionedTokenID + instructionId + amount to get a base64-encoded
7
- * PaymentPayload suitable for the PAYMENT-SIGNATURE header.
8
- */
9
- import { X402TokenAPI } from './token.js';
10
- import { PaymentOptions } from '../common/types.js';
11
- /**
12
- * Response from the Visa backend's /access-token endpoint
13
- */
14
- export interface VisaPaymentPayloadResponse {
15
- success: boolean;
16
- payload?: unknown;
17
- payloadEncoded?: string;
18
- error?: string;
19
- }
20
- /**
21
- * Visa Token API — generates payment payloads for Visa x402 flow.
22
- */
23
- export declare class VisaTokenAPI extends X402TokenAPI {
24
- protected visaBackendUrl: string;
25
- constructor(options: PaymentOptions);
26
- static getInstance(options: PaymentOptions): VisaTokenAPI;
27
- /**
28
- * Generate a Visa x402 payment payload.
29
- *
30
- * When called with only `amount`, the Visa backend resolves the user's Visa
31
- * credentials from the NVM API key sent in the Authorization header.
32
- *
33
- * When called with explicit Visa credentials (`vProvisionedTokenID` and
34
- * `instructionId`), those are sent directly to the Visa backend.
35
- *
36
- * @param amount - The payment amount (e.g. "1.00")
37
- * @param vProvisionedTokenID - The Visa Token Service provisioned token ID (optional)
38
- * @param instructionId - The VIC mandate instruction ID (optional)
39
- * @returns A promise resolving to an object with `accessToken` (the base64-encoded PaymentPayload)
40
- *
41
- * @example
42
- * ```typescript
43
- * // Using NVM API key (credentials resolved by backend)
44
- * const result = await payments.x402.getVisaAccessToken('1.00')
45
- *
46
- * // Using explicit Visa credentials
47
- * const result = await payments.x402.getVisaAccessToken(
48
- * '2.00',
49
- * 'token-id-from-visa',
50
- * 'instruction-id-from-mandate',
51
- * )
52
- * // Use result.accessToken as the PAYMENT-SIGNATURE header value
53
- * ```
54
- */
55
- getVisaAccessToken(amount: string, vProvisionedTokenID?: string, instructionId?: string): Promise<{
56
- accessToken: string;
57
- [key: string]: any;
58
- }>;
59
- }
60
- //# sourceMappingURL=visa-token-api.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"visa-token-api.d.ts","sourceRoot":"","sources":["../../src/x402/visa-token-api.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAGnD;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,YAAY;IAC5C,SAAS,CAAC,cAAc,EAAE,MAAM,CAAA;gBAEpB,OAAO,EAAE,cAAc;WAKnB,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,YAAY;IAIlE;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,kBAAkB,CACtB,MAAM,EAAE,MAAM,EACd,mBAAmB,CAAC,EAAE,MAAM,EAC5B,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;CAuDxD"}
@@ -1,99 +0,0 @@
1
- /**
2
- * Visa Token API — generates x402 payment payloads via the Visa backend.
3
- *
4
- * Instead of generating a cryptographic NVM access token (which requires session keys
5
- * and smart accounts), this API calls the Visa backend's /access-token endpoint
6
- * with a vProvisionedTokenID + instructionId + amount to get a base64-encoded
7
- * PaymentPayload suitable for the PAYMENT-SIGNATURE header.
8
- */
9
- import { X402TokenAPI } from './token.js';
10
- import { PaymentsError } from '../common/payments.error.js';
11
- import { VisaBackendUrls } from '../environments.js';
12
- /**
13
- * Visa Token API — generates payment payloads for Visa x402 flow.
14
- */
15
- export class VisaTokenAPI extends X402TokenAPI {
16
- constructor(options) {
17
- super(options);
18
- this.visaBackendUrl = VisaBackendUrls[this.environmentName];
19
- }
20
- static getInstance(options) {
21
- return new VisaTokenAPI(options);
22
- }
23
- /**
24
- * Generate a Visa x402 payment payload.
25
- *
26
- * When called with only `amount`, the Visa backend resolves the user's Visa
27
- * credentials from the NVM API key sent in the Authorization header.
28
- *
29
- * When called with explicit Visa credentials (`vProvisionedTokenID` and
30
- * `instructionId`), those are sent directly to the Visa backend.
31
- *
32
- * @param amount - The payment amount (e.g. "1.00")
33
- * @param vProvisionedTokenID - The Visa Token Service provisioned token ID (optional)
34
- * @param instructionId - The VIC mandate instruction ID (optional)
35
- * @returns A promise resolving to an object with `accessToken` (the base64-encoded PaymentPayload)
36
- *
37
- * @example
38
- * ```typescript
39
- * // Using NVM API key (credentials resolved by backend)
40
- * const result = await payments.x402.getVisaAccessToken('1.00')
41
- *
42
- * // Using explicit Visa credentials
43
- * const result = await payments.x402.getVisaAccessToken(
44
- * '2.00',
45
- * 'token-id-from-visa',
46
- * 'instruction-id-from-mandate',
47
- * )
48
- * // Use result.accessToken as the PAYMENT-SIGNATURE header value
49
- * ```
50
- */
51
- async getVisaAccessToken(amount, vProvisionedTokenID, instructionId) {
52
- const hasExplicitCredentials = vProvisionedTokenID && instructionId;
53
- const url = hasExplicitCredentials
54
- ? new URL('access-token', this.visaBackendUrl)
55
- : new URL('access-token/from-nvm-key', this.visaBackendUrl);
56
- const body = hasExplicitCredentials
57
- ? { vProvisionedTokenID, instructionId, amount }
58
- : { amount };
59
- const fetchOptions = hasExplicitCredentials
60
- ? {
61
- method: 'POST',
62
- headers: {
63
- Accept: 'application/json',
64
- 'Content-Type': 'application/json',
65
- },
66
- body: JSON.stringify(body),
67
- }
68
- : this.getBackendHTTPOptions('POST', body);
69
- try {
70
- const response = await fetch(url, fetchOptions);
71
- if (!response.ok) {
72
- let errorMessage = 'Failed to generate Visa payment payload';
73
- try {
74
- const errorData = await response.json();
75
- errorMessage = errorData.error || errorData.message || errorMessage;
76
- }
77
- catch {
78
- // Use default error message
79
- }
80
- throw PaymentsError.internal(`${errorMessage} (HTTP ${response.status})`);
81
- }
82
- const result = await response.json();
83
- if (!result.success || !result.payloadEncoded) {
84
- throw PaymentsError.internal(result.error || 'Failed to generate Visa payment payload');
85
- }
86
- return {
87
- accessToken: result.payloadEncoded,
88
- payload: result.payload,
89
- };
90
- }
91
- catch (error) {
92
- if (error instanceof PaymentsError) {
93
- throw error;
94
- }
95
- throw PaymentsError.internal(`Network error while generating Visa payment payload: ${error instanceof Error ? error.message : String(error)}`);
96
- }
97
- }
98
- }
99
- //# sourceMappingURL=visa-token-api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"visa-token-api.js","sourceRoot":"","sources":["../../src/x402/visa-token-api.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Visa Token API — generates x402 payment payloads via the Visa backend.\n *\n * Instead of generating a cryptographic NVM access token (which requires session keys\n * and smart accounts), this API calls the Visa backend's /access-token endpoint\n * with a vProvisionedTokenID + instructionId + amount to get a base64-encoded\n * PaymentPayload suitable for the PAYMENT-SIGNATURE header.\n */\n\nimport { X402TokenAPI } from './token.js'\nimport { PaymentsError } from '../common/payments.error.js'\nimport { PaymentOptions } from '../common/types.js'\nimport { VisaBackendUrls } from '../environments.js'\n\n/**\n * Response from the Visa backend's /access-token endpoint\n */\nexport interface VisaPaymentPayloadResponse {\n success: boolean\n payload?: unknown\n payloadEncoded?: string\n error?: string\n}\n\n/**\n * Visa Token API — generates payment payloads for Visa x402 flow.\n */\nexport class VisaTokenAPI extends X402TokenAPI {\n protected visaBackendUrl: string\n\n constructor(options: PaymentOptions) {\n super(options)\n this.visaBackendUrl = VisaBackendUrls[this.environmentName]\n }\n\n static override getInstance(options: PaymentOptions): VisaTokenAPI {\n return new VisaTokenAPI(options)\n }\n\n /**\n * Generate a Visa x402 payment payload.\n *\n * When called with only `amount`, the Visa backend resolves the user's Visa\n * credentials from the NVM API key sent in the Authorization header.\n *\n * When called with explicit Visa credentials (`vProvisionedTokenID` and\n * `instructionId`), those are sent directly to the Visa backend.\n *\n * @param amount - The payment amount (e.g. \"1.00\")\n * @param vProvisionedTokenID - The Visa Token Service provisioned token ID (optional)\n * @param instructionId - The VIC mandate instruction ID (optional)\n * @returns A promise resolving to an object with `accessToken` (the base64-encoded PaymentPayload)\n *\n * @example\n * ```typescript\n * // Using NVM API key (credentials resolved by backend)\n * const result = await payments.x402.getVisaAccessToken('1.00')\n *\n * // Using explicit Visa credentials\n * const result = await payments.x402.getVisaAccessToken(\n * '2.00',\n * 'token-id-from-visa',\n * 'instruction-id-from-mandate',\n * )\n * // Use result.accessToken as the PAYMENT-SIGNATURE header value\n * ```\n */\n async getVisaAccessToken(\n amount: string,\n vProvisionedTokenID?: string,\n instructionId?: string,\n ): Promise<{ accessToken: string; [key: string]: any }> {\n const hasExplicitCredentials = vProvisionedTokenID && instructionId\n\n const url = hasExplicitCredentials\n ? new URL('access-token', this.visaBackendUrl)\n : new URL('access-token/from-nvm-key', this.visaBackendUrl)\n\n const body = hasExplicitCredentials\n ? { vProvisionedTokenID, instructionId, amount }\n : { amount }\n\n const fetchOptions = hasExplicitCredentials\n ? {\n method: 'POST',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(body),\n }\n : this.getBackendHTTPOptions('POST', body)\n\n try {\n const response = await fetch(url, fetchOptions)\n\n if (!response.ok) {\n let errorMessage = 'Failed to generate Visa payment payload'\n try {\n const errorData = await response.json()\n errorMessage = errorData.error || errorData.message || errorMessage\n } catch {\n // Use default error message\n }\n throw PaymentsError.internal(`${errorMessage} (HTTP ${response.status})`)\n }\n\n const result: VisaPaymentPayloadResponse = await response.json()\n\n if (!result.success || !result.payloadEncoded) {\n throw PaymentsError.internal(result.error || 'Failed to generate Visa payment payload')\n }\n\n return {\n accessToken: result.payloadEncoded,\n payload: result.payload,\n }\n } catch (error) {\n if (error instanceof PaymentsError) {\n throw error\n }\n throw PaymentsError.internal(\n `Network error while generating Visa payment payload: ${error instanceof Error ? error.message : String(error)}`,\n )\n }\n }\n}\n"]}