mppx 0.3.2 → 0.3.3

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.
@@ -0,0 +1,19 @@
1
+ /** Map of configuration keys to environment variable names, checked in order. */
2
+ declare const variables: {
3
+ readonly realm: readonly ["FLY_APP_NAME", "HEROKU_APP_NAME", "HOST", "HOSTNAME", "MPP_REALM", "RAILWAY_PUBLIC_DOMAIN", "RENDER_EXTERNAL_HOSTNAME", "VERCEL_URL", "WEBSITE_HOSTNAME"];
4
+ readonly secretKey: readonly ["MPP_SECRET_KEY"];
5
+ };
6
+ /**
7
+ * Resolves a configuration value from environment variables.
8
+ *
9
+ * Checks platform-specific env vars in order, falling back to a default.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * Env.get('realm') // e.g. "my-app.vercel.app"
14
+ * Env.get('secretKey') // e.g. value of MPP_SECRET_KEY
15
+ * ```
16
+ */
17
+ export declare function get(key: keyof typeof variables): string;
18
+ export {};
19
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/internal/env.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,QAAA,MAAM,SAAS;;;CAauC,CAAA;AAQtD;;;;;;;;;;GAUG;AACH,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,OAAO,SAAS,GAAG,MAAM,CAMvD"}
@@ -0,0 +1,55 @@
1
+ /** Map of configuration keys to environment variable names, checked in order. */
2
+ const variables = {
3
+ realm: [
4
+ 'FLY_APP_NAME',
5
+ 'HEROKU_APP_NAME',
6
+ 'HOST',
7
+ 'HOSTNAME',
8
+ 'MPP_REALM',
9
+ 'RAILWAY_PUBLIC_DOMAIN',
10
+ 'RENDER_EXTERNAL_HOSTNAME',
11
+ 'VERCEL_URL',
12
+ 'WEBSITE_HOSTNAME',
13
+ ],
14
+ secretKey: ['MPP_SECRET_KEY'],
15
+ };
16
+ /** Fallback values when no environment variable is set. */
17
+ const defaults = {
18
+ realm: 'MPP Payment',
19
+ secretKey: 'tmp',
20
+ };
21
+ /**
22
+ * Resolves a configuration value from environment variables.
23
+ *
24
+ * Checks platform-specific env vars in order, falling back to a default.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * Env.get('realm') // e.g. "my-app.vercel.app"
29
+ * Env.get('secretKey') // e.g. value of MPP_SECRET_KEY
30
+ * ```
31
+ */
32
+ export function get(key) {
33
+ for (const name of variables[key]) {
34
+ const value = read(name);
35
+ if (value)
36
+ return value;
37
+ }
38
+ return defaults[key];
39
+ }
40
+ /** Reads a single environment variable, probing available runtime APIs. */
41
+ function read(name) {
42
+ try {
43
+ if (typeof process !== 'undefined' && process?.env)
44
+ return process.env[name];
45
+ }
46
+ catch { }
47
+ try {
48
+ const deno = globalThis.Deno;
49
+ if (deno?.env?.get)
50
+ return deno.env.get(name);
51
+ }
52
+ catch { }
53
+ return undefined;
54
+ }
55
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/internal/env.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,MAAM,SAAS,GAAG;IAChB,KAAK,EAAE;QACL,cAAc;QACd,iBAAiB;QACjB,MAAM;QACN,UAAU;QACV,WAAW;QACX,uBAAuB;QACvB,0BAA0B;QAC1B,YAAY;QACZ,kBAAkB;KACnB;IACD,SAAS,EAAE,CAAC,gBAAgB,CAAC;CACuB,CAAA;AAEtD,2DAA2D;AAC3D,MAAM,QAAQ,GAAG;IACf,KAAK,EAAE,aAAa;IACpB,SAAS,EAAE,KAAK;CACyC,CAAA;AAE3D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,GAAG,CAAC,GAA2B;IAC7C,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;QACxB,IAAI,KAAK;YAAE,OAAO,KAAK,CAAA;IACzB,CAAC;IACD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAA;AACtB,CAAC;AAED,2EAA2E;AAC3E,SAAS,IAAI,CAAC,IAAY;IACxB,IAAI,CAAC;QACH,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,EAAE,GAAG;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC9E,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,IAAI,CAAC;QACH,MAAM,IAAI,GAAI,UAAkB,CAAC,IAAI,CAAA;QACrC,IAAI,IAAI,EAAE,GAAG,EAAE,GAAG;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC/C,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -52,9 +52,9 @@ export declare namespace create {
52
52
  type Config<methods extends Methods = Methods, transport extends Transport.AnyTransport = Transport.Http> = {
53
53
  /** Array of configured methods. @example [tempo()] */
54
54
  methods: methods;
55
- /** Server realm (e.g., hostname). @default "MPP Payment". */
55
+ /** Server realm (e.g., hostname). Auto-detected from environment variables (`MPP_REALM`, `VERCEL_URL`, `RAILWAY_PUBLIC_DOMAIN`, `RENDER_EXTERNAL_HOSTNAME`, `HOST`, `HOSTNAME`), falling back to `"localhost"`. */
56
56
  realm?: string | undefined;
57
- /** Secret key for HMAC-bound challenge IDs for stateless verification. */
57
+ /** Secret key for HMAC-bound challenge IDs for stateless verification. Auto-detected from `MPP_SECRET_KEY` environment variable, falling back to a random key. */
58
58
  secretKey?: string | undefined;
59
59
  /** Transport to use. @default Transport.http() */
60
60
  transport?: transport | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Mppx.d.ts","sourceRoot":"","sources":["../../src/server/Mppx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Mppx.d.ts","sourceRoot":"","sources":["../../src/server/Mppx.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import * as Challenge from '../Challenge.js';
2
2
  import * as Errors from '../Errors.js';
3
+ import * as Env from '../internal/env.js';
3
4
  import * as NodeListener from './NodeListener.js';
4
5
  import * as Request from './Request.js';
5
6
  import * as Transport from './Transport.js';
@@ -20,7 +21,7 @@ import * as Transport from './Transport.js';
20
21
  * ```
21
22
  */
22
23
  export function create(config) {
23
- const { realm = 'MPP Payment', secretKey = 'tmp', transport = Transport.http(), } = config;
24
+ const { realm = Env.get('realm'), secretKey = Env.get('secretKey'), transport = Transport.http(), } = config;
24
25
  const methods = config.methods.flat();
25
26
  const handlers = {};
26
27
  for (const mi of methods) {
@@ -1 +1 @@
1
- {"version":3,"file":"Mppx.js","sourceRoot":"","sources":["../../src/server/Mppx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Mppx.js","sourceRoot":"","sources":["../../src/server/Mppx.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mppx",
3
3
  "type": "module",
4
- "version": "0.3.2",
4
+ "version": "0.3.3",
5
5
  "main": "./dist/index.js",
6
6
  "license": "MIT",
7
7
  "files": [
@@ -0,0 +1,111 @@
1
+ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest'
2
+ import * as Expires from './Expires.js'
3
+
4
+ const FIXED_NOW = new Date('2025-06-15T12:00:00.000Z').getTime()
5
+
6
+ beforeEach(() => {
7
+ vi.useFakeTimers()
8
+ vi.setSystemTime(FIXED_NOW)
9
+ })
10
+
11
+ afterEach(() => {
12
+ vi.useRealTimers()
13
+ })
14
+
15
+ describe('seconds', () => {
16
+ test('returns ISO string n seconds from now', () => {
17
+ expect(Expires.seconds(30)).toBe('2025-06-15T12:00:30.000Z')
18
+ })
19
+
20
+ test('0 returns current time', () => {
21
+ expect(Expires.seconds(0)).toBe('2025-06-15T12:00:00.000Z')
22
+ })
23
+
24
+ test('negative n returns past time', () => {
25
+ expect(Expires.seconds(-60)).toBe('2025-06-15T11:59:00.000Z')
26
+ })
27
+ })
28
+
29
+ describe('minutes', () => {
30
+ test('returns ISO string n minutes from now', () => {
31
+ expect(Expires.minutes(5)).toBe('2025-06-15T12:05:00.000Z')
32
+ })
33
+
34
+ test('0 returns current time', () => {
35
+ expect(Expires.minutes(0)).toBe('2025-06-15T12:00:00.000Z')
36
+ })
37
+
38
+ test('negative n returns past time', () => {
39
+ expect(Expires.minutes(-10)).toBe('2025-06-15T11:50:00.000Z')
40
+ })
41
+ })
42
+
43
+ describe('hours', () => {
44
+ test('returns ISO string n hours from now', () => {
45
+ expect(Expires.hours(2)).toBe('2025-06-15T14:00:00.000Z')
46
+ })
47
+
48
+ test('0 returns current time', () => {
49
+ expect(Expires.hours(0)).toBe('2025-06-15T12:00:00.000Z')
50
+ })
51
+
52
+ test('negative n returns past time', () => {
53
+ expect(Expires.hours(-3)).toBe('2025-06-15T09:00:00.000Z')
54
+ })
55
+ })
56
+
57
+ describe('days', () => {
58
+ test('returns ISO string n days from now', () => {
59
+ expect(Expires.days(1)).toBe('2025-06-16T12:00:00.000Z')
60
+ })
61
+
62
+ test('0 returns current time', () => {
63
+ expect(Expires.days(0)).toBe('2025-06-15T12:00:00.000Z')
64
+ })
65
+
66
+ test('negative n returns past time', () => {
67
+ expect(Expires.days(-2)).toBe('2025-06-13T12:00:00.000Z')
68
+ })
69
+ })
70
+
71
+ describe('weeks', () => {
72
+ test('returns ISO string n weeks from now', () => {
73
+ expect(Expires.weeks(1)).toBe('2025-06-22T12:00:00.000Z')
74
+ })
75
+
76
+ test('0 returns current time', () => {
77
+ expect(Expires.weeks(0)).toBe('2025-06-15T12:00:00.000Z')
78
+ })
79
+
80
+ test('negative n returns past time', () => {
81
+ expect(Expires.weeks(-1)).toBe('2025-06-08T12:00:00.000Z')
82
+ })
83
+ })
84
+
85
+ describe('months', () => {
86
+ test('returns ISO string n months (30 days) from now', () => {
87
+ expect(Expires.months(1)).toBe('2025-07-15T12:00:00.000Z')
88
+ })
89
+
90
+ test('0 returns current time', () => {
91
+ expect(Expires.months(0)).toBe('2025-06-15T12:00:00.000Z')
92
+ })
93
+
94
+ test('negative n returns past time', () => {
95
+ expect(Expires.months(-1)).toBe('2025-05-16T12:00:00.000Z')
96
+ })
97
+ })
98
+
99
+ describe('years', () => {
100
+ test('returns ISO string n years (365 days) from now', () => {
101
+ expect(Expires.years(1)).toBe('2026-06-15T12:00:00.000Z')
102
+ })
103
+
104
+ test('0 returns current time', () => {
105
+ expect(Expires.years(0)).toBe('2025-06-15T12:00:00.000Z')
106
+ })
107
+
108
+ test('negative n returns past time', () => {
109
+ expect(Expires.years(-1)).toBe('2024-06-15T12:00:00.000Z')
110
+ })
111
+ })
@@ -0,0 +1,54 @@
1
+ /** Map of configuration keys to environment variable names, checked in order. */
2
+ const variables = {
3
+ realm: [
4
+ 'FLY_APP_NAME',
5
+ 'HEROKU_APP_NAME',
6
+ 'HOST',
7
+ 'HOSTNAME',
8
+ 'MPP_REALM',
9
+ 'RAILWAY_PUBLIC_DOMAIN',
10
+ 'RENDER_EXTERNAL_HOSTNAME',
11
+ 'VERCEL_URL',
12
+ 'WEBSITE_HOSTNAME',
13
+ ],
14
+ secretKey: ['MPP_SECRET_KEY'],
15
+ } as const satisfies Record<string, readonly string[]>
16
+
17
+ /** Fallback values when no environment variable is set. */
18
+ const defaults = {
19
+ realm: 'MPP Payment',
20
+ secretKey: 'tmp',
21
+ } as const satisfies Record<keyof typeof variables, string>
22
+
23
+ /**
24
+ * Resolves a configuration value from environment variables.
25
+ *
26
+ * Checks platform-specific env vars in order, falling back to a default.
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * Env.get('realm') // e.g. "my-app.vercel.app"
31
+ * Env.get('secretKey') // e.g. value of MPP_SECRET_KEY
32
+ * ```
33
+ */
34
+ export function get(key: keyof typeof variables): string {
35
+ for (const name of variables[key]) {
36
+ const value = read(name)
37
+ if (value) return value
38
+ }
39
+ return defaults[key]
40
+ }
41
+
42
+ /** Reads a single environment variable, probing available runtime APIs. */
43
+ function read(name: string): string | undefined {
44
+ try {
45
+ if (typeof process !== 'undefined' && process?.env) return process.env[name]
46
+ } catch {}
47
+
48
+ try {
49
+ const deno = (globalThis as any).Deno
50
+ if (deno?.env?.get) return deno.env.get(name)
51
+ } catch {}
52
+
53
+ return undefined
54
+ }
@@ -0,0 +1,171 @@
1
+ import { describe, expect, test } from 'vitest'
2
+ import type { Challenge } from '../../Challenge.js'
3
+ import type { Credential } from '../../Credential.js'
4
+ import { VerificationFailedError } from '../../Errors.js'
5
+ import * as Mcp from '../../Mcp.js'
6
+ import { type Extra, mcpSdk } from './Transport.js'
7
+
8
+ const challenge: Challenge = {
9
+ id: 'test-challenge-id',
10
+ realm: 'api.example.com',
11
+ method: 'tempo',
12
+ intent: 'session',
13
+ request: { amount: '1000000' },
14
+ }
15
+
16
+ const credential: Credential = {
17
+ challenge,
18
+ payload: {
19
+ action: 'voucher',
20
+ channelId: '0xabc',
21
+ cumulativeAmount: '1000000',
22
+ signature: '0x1234',
23
+ },
24
+ source: 'did:pkh:eip155:42431:0x1111111111111111111111111111111111111111',
25
+ }
26
+
27
+ describe('mcpSdk', () => {
28
+ describe('getCredential', () => {
29
+ test('returns credential from _meta', () => {
30
+ const transport = mcpSdk()
31
+ const extra: Extra = {
32
+ _meta: {
33
+ [Mcp.credentialMetaKey]: credential,
34
+ },
35
+ }
36
+ const result = transport.getCredential(extra)
37
+ expect(result).toEqual(credential)
38
+ })
39
+
40
+ test('returns null when _meta is undefined', () => {
41
+ const transport = mcpSdk()
42
+ const extra: Extra = {}
43
+ const result = transport.getCredential(extra)
44
+ expect(result).toBeNull()
45
+ })
46
+
47
+ test('returns null when credential key is missing', () => {
48
+ const transport = mcpSdk()
49
+ const extra: Extra = { _meta: { otherKey: 'value' } }
50
+ const result = transport.getCredential(extra)
51
+ expect(result).toBeNull()
52
+ })
53
+ })
54
+
55
+ describe('respondChallenge', () => {
56
+ test('creates McpError with correct code and challenge data', async () => {
57
+ const transport = mcpSdk()
58
+ const result = await transport.respondChallenge({
59
+ challenge,
60
+ input: {} as Extra,
61
+ })
62
+
63
+ expect(result).toBeInstanceOf(Error)
64
+ const err = result as any
65
+ expect(err.code).toBe(Mcp.paymentRequiredCode)
66
+ expect(err.message).toContain('Payment Required')
67
+ expect(err.data?.httpStatus).toBe(402)
68
+ expect(err.data?.challenges).toEqual([challenge])
69
+ })
70
+
71
+ test('includes problem details when error is provided', async () => {
72
+ const transport = mcpSdk()
73
+ const error = new VerificationFailedError({ reason: 'bad signature' })
74
+ const result = await transport.respondChallenge({
75
+ challenge,
76
+ error,
77
+ input: {} as Extra,
78
+ })
79
+
80
+ const err = result as any
81
+ expect(err.code).toBe(Mcp.paymentRequiredCode)
82
+ expect(err.message).toContain('verification failed')
83
+ expect(err.data?.problem).toBeDefined()
84
+ expect(err.data?.problem?.type).toBe(error.type)
85
+ expect(err.data?.problem?.challengeId).toBe(challenge.id)
86
+ })
87
+
88
+ test('uses default message when no error provided', async () => {
89
+ const transport = mcpSdk()
90
+ const result = await transport.respondChallenge({
91
+ challenge,
92
+ input: {} as Extra,
93
+ })
94
+ const err = result as any
95
+ expect(err.message).toContain('Payment Required')
96
+ })
97
+ })
98
+
99
+ describe('respondReceipt', () => {
100
+ test('attaches receipt to response _meta', () => {
101
+ const transport = mcpSdk()
102
+ const receipt = {
103
+ method: 'tempo',
104
+ status: 'success' as const,
105
+ timestamp: '2025-06-15T12:00:00.000Z',
106
+ reference: '0xabc',
107
+ }
108
+
109
+ const response = {
110
+ content: [{ type: 'text' as const, text: 'hello' }],
111
+ }
112
+
113
+ const result = transport.respondReceipt({
114
+ challengeId: 'test-challenge-id',
115
+ receipt,
116
+ response,
117
+ })
118
+
119
+ expect(result._meta?.[Mcp.receiptMetaKey]).toEqual({
120
+ ...receipt,
121
+ challengeId: 'test-challenge-id',
122
+ })
123
+ })
124
+
125
+ test('preserves existing _meta fields', () => {
126
+ const transport = mcpSdk()
127
+ const receipt = {
128
+ method: 'tempo',
129
+ status: 'success' as const,
130
+ timestamp: '2025-06-15T12:00:00.000Z',
131
+ reference: '0xabc',
132
+ }
133
+
134
+ const response = {
135
+ _meta: { existingKey: 'value' },
136
+ content: [{ type: 'text' as const, text: 'hello' }],
137
+ }
138
+
139
+ const result = transport.respondReceipt({
140
+ challengeId: 'cid',
141
+ receipt,
142
+ response,
143
+ })
144
+
145
+ expect(result._meta?.existingKey).toBe('value')
146
+ expect(result._meta?.[Mcp.receiptMetaKey]).toBeDefined()
147
+ })
148
+
149
+ test('preserves response content', () => {
150
+ const transport = mcpSdk()
151
+ const receipt = {
152
+ method: 'tempo',
153
+ status: 'success' as const,
154
+ timestamp: '2025-06-15T12:00:00.000Z',
155
+ reference: '0xabc',
156
+ }
157
+
158
+ const response = {
159
+ content: [{ type: 'text' as const, text: 'result data' }],
160
+ }
161
+
162
+ const result = transport.respondReceipt({
163
+ challengeId: 'cid',
164
+ receipt,
165
+ response,
166
+ })
167
+
168
+ expect(result.content).toEqual(response.content)
169
+ })
170
+ })
171
+ })
@@ -2,6 +2,7 @@ import type { IncomingMessage, ServerResponse } from 'node:http'
2
2
  import * as Challenge from '../Challenge.js'
3
3
  import type * as Credential from '../Credential.js'
4
4
  import * as Errors from '../Errors.js'
5
+ import * as Env from '../internal/env.js'
5
6
  import type * as Method from '../Method.js'
6
7
  import type * as Receipt from '../Receipt.js'
7
8
  import type * as z from '../zod.js'
@@ -72,8 +73,8 @@ export function create<
72
73
  const transport extends Transport.AnyTransport = Transport.Http,
73
74
  >(config: create.Config<methods, transport>): Mppx<methods, transport> {
74
75
  const {
75
- realm = 'MPP Payment',
76
- secretKey = 'tmp',
76
+ realm = Env.get('realm'),
77
+ secretKey = Env.get('secretKey'),
77
78
  transport = Transport.http() as transport,
78
79
  } = config
79
80
 
@@ -104,9 +105,9 @@ export declare namespace create {
104
105
  > = {
105
106
  /** Array of configured methods. @example [tempo()] */
106
107
  methods: methods
107
- /** Server realm (e.g., hostname). @default "MPP Payment". */
108
+ /** Server realm (e.g., hostname). Auto-detected from environment variables (`MPP_REALM`, `VERCEL_URL`, `RAILWAY_PUBLIC_DOMAIN`, `RENDER_EXTERNAL_HOSTNAME`, `HOST`, `HOSTNAME`), falling back to `"localhost"`. */
108
109
  realm?: string | undefined
109
- /** Secret key for HMAC-bound challenge IDs for stateless verification. */
110
+ /** Secret key for HMAC-bound challenge IDs for stateless verification. Auto-detected from `MPP_SECRET_KEY` environment variable, falling back to a random key. */
110
111
  secretKey?: string | undefined
111
112
  /** Transport to use. @default Transport.http() */
112
113
  transport?: transport | undefined