mppx 0.6.1 → 0.6.2

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # mppx
2
2
 
3
+ ## 0.6.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 57354de: Added scope-bound challenge metadata for route replay protection, scope-aware `verifyCredential()` checks, and adapter auto-scoping for Hono and proxy routes.
8
+
3
9
  ## 0.6.1
4
10
 
5
11
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"hono.d.ts","sourceRoot":"","sources":["../../src/middlewares/hono.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAA;AAEnD,OAAO,EAAY,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAA;AAC9C,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD,cAAc,sBAAsB,CAAA;AAEpC,yBAAiB,IAAI,CAAC;IACpB;;;;;;;;;;;;;;;;OAgBG;IACH,SAAgB,MAAM,CAAC,KAAK,CAAC,OAAO,SAAS,SAAS,CAAC,OAAO,EAC5D,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GACvC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC,CAEhE;CACF;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,OAAO,CAAC,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,WAAW,EACpE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,SAAS,CAAC,OAAO,EAAE,MAAM,OAAO,KAAK,GAAG,GAAG,OAAO,GAAG,KAAK,GACxE,iBAAiB,CAOnB;AAED,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,GAAG;IAC7D,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;CACvB,CAAA;AAID;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EACd,IAAI,EAAE;IAAE,OAAO,EAAE,SAAS,aAAa,CAAC,SAAS,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACpE,MAAM,GAAE,eAAoB,GAC3B,IAAI,CAoBN"}
1
+ {"version":3,"file":"hono.d.ts","sourceRoot":"","sources":["../../src/middlewares/hono.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAA;AAEnD,OAAO,EAAY,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAEzF,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAA;AAC9C,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD,cAAc,sBAAsB,CAAA;AAEpC,yBAAiB,IAAI,CAAC;IACpB;;;;;;;;;;;;;;;;OAgBG;IACH,SAAgB,MAAM,CAAC,KAAK,CAAC,OAAO,SAAS,SAAS,CAAC,OAAO,EAC5D,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GACvC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC,CAEhE;CACF;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,OAAO,CAAC,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,WAAW,EACpE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,SAAS,CAAC,OAAO,EAAE,MAAM,OAAO,KAAK,GAAG,GAAG,OAAO,GAAG,KAAK,GACxE,iBAAiB,CAWnB;AAED,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,GAAG;IAC7D,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;CACvB,CAAA;AAID;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EACd,IAAI,EAAE;IAAE,OAAO,EAAE,SAAS,aAAa,CAAC,SAAS,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACpE,MAAM,GAAE,eAAoB,GAC3B,IAAI,CAoBN"}
@@ -1,4 +1,5 @@
1
1
  import { generate } from '../discovery/OpenApi.js';
2
+ import * as Scope from '../server/internal/scope.js';
2
3
  import * as Mppx_core from '../server/Mppx.js';
3
4
  import * as Mppx_internal from './internal/mppx.js';
4
5
  export * from '../server/Methods.js';
@@ -48,7 +49,10 @@ export var Mppx;
48
49
  */
49
50
  export function payment(intent, options) {
50
51
  return async (c, next) => {
51
- const result = await intent(options)(c.req.raw);
52
+ const request = options.scope === undefined && Scope.read(options.meta) === undefined
53
+ ? Scope.attach(c.req.raw, `${c.req.method.toUpperCase()} ${c.req.routePath || c.req.path}`)
54
+ : c.req.raw;
55
+ const result = await intent(options)(request);
52
56
  if (result.status === 402)
53
57
  return result.challenge;
54
58
  await next();
@@ -1 +1 @@
1
- {"version":3,"file":"hono.js","sourceRoot":"","sources":["../../src/middlewares/hono.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAyC,MAAM,yBAAyB,CAAA;AACzF,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAA;AAC9C,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD,cAAc,sBAAsB,CAAA;AAEpC,MAAM,KAAW,IAAI,CAuBpB;AAvBD,WAAiB,IAAI;IACnB;;;;;;;;;;;;;;;;OAgBG;IACH,SAAgB,MAAM,CACpB,MAAwC;QAExC,OAAO,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAA;IAC9D,CAAC;IAJe,WAAM,SAIrB,CAAA;AACH,CAAC,EAvBgB,IAAI,KAAJ,IAAI,QAuBpB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,OAAO,CACrB,MAAc,EACd,OAAyE;IAEzE,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC/C,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,MAAM,CAAC,SAAS,CAAA;QAClD,MAAM,IAAI,EAAE,CAAA;QACZ,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACnC,CAAC,CAAA;AACH,CAAC;AAQD,MAAM,gBAAgB,GAAG,EAAE,eAAe,EAAE,qBAAqB,EAAE,CAAA;AAEnE;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CACvB,GAAc,EACd,IAAoE,EACpE,SAA0B,EAAE;IAE5B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,IAAI,eAAe,CAAA;IAEhD,IAAI,MAA0B,CAAA;IAE9B,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;QACvB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YAC1E,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE;gBACzB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7C,MAAM;gBACN,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC,CAAA;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC;QAED,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAA;QAC5D,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;QAC5C,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAc;IACtC,MAAM,MAAM,GAAkB,EAAE,CAAA;IAChC,MAAM,SAAS,GAAI,GAAW,CAAC,MAElB,CAAA;IAEb,IAAI,CAAC,SAAS;QAAE,OAAO,MAAM,CAAA;IAE7B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAE9B,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAI,KAAK,CAAC,OAA+D;YACrF,EAAE,SAAS,CAAA;QACb,IAAI,CAAC,QAAQ;YAAE,SAAQ;QAEvB,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAA;QAC/E,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAQ;QAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAEb,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"hono.js","sourceRoot":"","sources":["../../src/middlewares/hono.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Proxy.d.ts","sourceRoot":"","sources":["../../src/proxy/Proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,IAAI,MAAM,WAAW,CAAA;AAOtC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC,kFAAkF;AAClF,MAAM,MAAM,KAAK,GAAG;IAClB,sFAAsF;IACtF,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC9C,uFAAuF;IACvF,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI,CAAA;CACxE,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAyHnD;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAY,MAAM,GAAG;QACnB,sEAAsE;QACtE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC7B,wDAAwD;QACxD,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;QACjC,0DAA0D;QAC1D,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAChC,kEAAkE;QAClE,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,GAAG,SAAS,CAAA;QAC/B,qEAAqE;QACrE,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,GAAG,SAAS,CAAA;QAC3C,qEAAqE;QACrE,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;QAC3B,8DAA8D;QAC9D,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC1B,4DAA4D;QAC5D,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC7B,CAAA;CACF"}
1
+ {"version":3,"file":"Proxy.d.ts","sourceRoot":"","sources":["../../src/proxy/Proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,IAAI,MAAM,WAAW,CAAA;AAQtC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC,kFAAkF;AAClF,MAAM,MAAM,KAAK,GAAG;IAClB,sFAAsF;IACtF,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC9C,uFAAuF;IACvF,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI,CAAA;CACxE,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAkInD;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAY,MAAM,GAAG;QACnB,sEAAsE;QACtE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC7B,wDAAwD;QACxD,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;QACjC,0DAA0D;QAC1D,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAChC,kEAAkE;QAClE,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,GAAG,SAAS,CAAA;QAC/B,qEAAqE;QACrE,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,GAAG,SAAS,CAAA;QAC3C,qEAAqE;QACrE,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;QAC3B,8DAA8D;QAC9D,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC1B,4DAA4D;QAC5D,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC7B,CAAA;CACF"}
@@ -1,5 +1,6 @@
1
1
  import * as Credential from '../Credential.js';
2
2
  import { generateProxy } from '../discovery/OpenApi.js';
3
+ import * as Scope from '../server/internal/scope.js';
3
4
  import * as Request from '../server/Request.js';
4
5
  import * as Headers from './internal/Headers.js';
5
6
  import * as Route from './internal/Route.js';
@@ -99,7 +100,13 @@ export function create(config) {
99
100
  if (endpoint === true)
100
101
  return proxyUpstream({ request, service, ctx, proxy });
101
102
  const handler = typeof endpoint === 'function' ? endpoint : endpoint.pay;
102
- const result = await handler(request);
103
+ const scope = getConfiguredScope(handler) ??
104
+ deriveRouteScope({
105
+ basePath: config.basePath,
106
+ routeKey: matched.key,
107
+ serviceId,
108
+ });
109
+ const result = await handler(getConfiguredScope(handler) ? request : Scope.attach(request, scope));
103
110
  if (result.status === 402)
104
111
  return result.challenge;
105
112
  const managementResponse = (() => {
@@ -168,6 +175,17 @@ function buildDiscoveryRoutes(services) {
168
175
  };
169
176
  }));
170
177
  }
178
+ function getConfiguredScope(handler) {
179
+ if (!('_internal' in handler))
180
+ return undefined;
181
+ const internal = handler._internal;
182
+ return Scope.read(internal.meta) ?? internal.scope;
183
+ }
184
+ function deriveRouteScope(parameters) {
185
+ const { basePath, routeKey, serviceId } = parameters;
186
+ const { method, pattern } = Route.parseRouteKey(routeKey);
187
+ return `${method ?? '*'} ${withBasePath(basePath, `/${serviceId}${pattern}`)}`;
188
+ }
171
189
  function buildServiceInfo(config) {
172
190
  const categories = config.categories ??
173
191
  Array.from(new Set(config.services.flatMap((service) => service.categories ?? [])));
@@ -1 +1 @@
1
- {"version":3,"file":"Proxy.js","sourceRoot":"","sources":["../../src/proxy/Proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Proxy.js","sourceRoot":"","sources":["../../src/proxy/Proxy.ts"],"names":[],"mappings":"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"}
@@ -15,4 +15,9 @@ export declare function matchPath(routes: Record<string, unknown>, path: string,
15
15
  key: string;
16
16
  value: unknown;
17
17
  } | null;
18
+ /** Parses a proxy route key like `"POST /v1/messages"` into method + pathname pattern. */
19
+ export declare function parseRouteKey(key: string): {
20
+ method: string | undefined;
21
+ pattern: string;
22
+ };
18
23
  //# sourceMappingURL=Route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Route.d.ts","sourceRoot":"","sources":["../../../src/proxy/internal/Route.ts"],"names":[],"mappings":"AAEA,4HAA4H;AAC5H,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQnE;AAED,2FAA2F;AAC3F,wBAAgB,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAO1F;AAED,uFAAuF;AACvF,wBAAgB,KAAK,CACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAQxC;AAED,yHAAyH;AACzH,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,GACnC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAWxC"}
1
+ {"version":3,"file":"Route.d.ts","sourceRoot":"","sources":["../../../src/proxy/internal/Route.ts"],"names":[],"mappings":"AAEA,4HAA4H;AAC5H,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQnE;AAED,2FAA2F;AAC3F,wBAAgB,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAO1F;AAED,uFAAuF;AACvF,wBAAgB,KAAK,CACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAQxC;AAED,yHAAyH;AACzH,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,GACnC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAWxC;AAED,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAM1F"}
@@ -47,7 +47,8 @@ export function matchPath(routes, path, filter) {
47
47
  }
48
48
  return match;
49
49
  }
50
- function parseRouteKey(key) {
50
+ /** Parses a proxy route key like `"POST /v1/messages"` into method + pathname pattern. */
51
+ export function parseRouteKey(key) {
51
52
  const tokens = key.trim().split(/\s+/);
52
53
  if (tokens.length >= 2 && httpMethods.has(tokens[0].toUpperCase())) {
53
54
  return { method: tokens[0].toUpperCase(), pattern: tokens.slice(1).join(' ') };
@@ -1 +1 @@
1
- {"version":3,"file":"Route.js","sourceRoot":"","sources":["../../../src/proxy/internal/Route.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;AAEzF,4HAA4H;AAC5H,MAAM,UAAU,QAAQ,CAAC,GAAQ,EAAE,QAAiB;IAClD,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAA;IAC3B,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QACzC,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;QACxE,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACxC,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,KAAK,CAAC,QAAgB;IACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACpD,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC7B,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAA;IAE3B,MAAM,YAAY,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IACtD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,CAAA;AACpC,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,KAAK,CACnB,MAA+B,EAC/B,MAAc,EACd,IAAY;IAEZ,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;QAC3D,IAAI,WAAW,IAAI,WAAW,KAAK,MAAM,CAAC,WAAW,EAAE;YAAE,SAAQ;QACjE,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;QACxD,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAA;IAChE,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,yHAAyH;AACzH,MAAM,UAAU,SAAS,CACvB,MAA+B,EAC/B,IAAY,EACZ,MAAoC;IAEpC,IAAI,KAAK,GAA2C,IAAI,CAAA;IACxD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,SAAQ;QACtC,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;QACtC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;QACxD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAAE,SAAQ;QAClD,IAAI,KAAK;YAAE,OAAO,IAAI,CAAA;QACtB,KAAK,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAA;IACxB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACtC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QACpE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IACjF,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAA;AAC5C,CAAC"}
1
+ {"version":3,"file":"Route.js","sourceRoot":"","sources":["../../../src/proxy/internal/Route.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,15 @@ import type * as Receipt from '../Receipt.js';
6
6
  import type * as z from '../zod.js';
7
7
  import * as Transport from './Transport.js';
8
8
  export type Methods = readonly (Method.AnyServer | readonly Method.AnyServer[])[];
9
+ /** Options for standalone credential verification. */
10
+ export type VerifyCredentialOptions = {
11
+ capturedRequest?: Method.CapturedRequest | undefined;
12
+ meta?: Record<string, string> | undefined;
13
+ realm?: string | undefined;
14
+ request?: Record<string, unknown> | undefined;
15
+ /** Optional expected route/resource scope bound via challenge `opaque`. */
16
+ scope?: string | undefined;
17
+ };
9
18
  /**
10
19
  * Payment handler.
11
20
  */
@@ -122,12 +131,6 @@ type ChallengeHandlers<methods extends readonly Method.AnyServer[]> = {
122
131
  };
123
132
  /** A function that generates a Challenge object from intent options. */
124
133
  type ChallengeFn<method extends Method.Method, defaults extends Record<string, unknown>> = (options: MethodFn.Options<method, defaults>) => Promise<Challenge.Challenge>;
125
- export type VerifyCredentialOptions = {
126
- capturedRequest?: Method.CapturedRequest | undefined;
127
- meta?: Record<string, string> | undefined;
128
- realm?: string | undefined;
129
- request?: Record<string, unknown> | undefined;
130
- };
131
134
  /**
132
135
  * Creates a server-side payment handler from methods.
133
136
  *
@@ -169,6 +172,8 @@ declare namespace MethodFn {
169
172
  expires?: string | undefined;
170
173
  /** Optional server-defined correlation data (serialized as `opaque` in the request). Flat string-to-string map; clients MUST NOT modify. */
171
174
  meta?: Record<string, string> | undefined;
175
+ /** Optional route/resource scope bound via reserved challenge metadata. */
176
+ scope?: string | undefined;
172
177
  } & Method.WithDefaults<z.input<method['schema']['request']>, defaults>;
173
178
  type Response<transport extends Transport.AnyTransport = Transport.Http> = {
174
179
  challenge: Transport.ChallengeOutputOf<transport>;
@@ -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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"}
@@ -8,6 +8,7 @@ import * as Env from '../internal/env.js';
8
8
  import * as PaymentRequest from '../PaymentRequest.js';
9
9
  import * as Html from './internal/html/config.js';
10
10
  import { serviceWorker } from './internal/html/serviceWorker.gen.js';
11
+ import * as Scope from './internal/scope.js';
11
12
  import * as NodeListener from './NodeListener.js';
12
13
  import * as Request from './Request.js';
13
14
  import * as Transport from './Transport.js';
@@ -95,19 +96,29 @@ export function create(config) {
95
96
  });
96
97
  // Validate payload against method schema
97
98
  mi.schema.credential.payload.parse(credential.payload);
99
+ const expectedMeta = Scope.merge({ meta: options?.meta, scope: options?.scope });
100
+ if (options?.scope !== undefined && Scope.read(credential.challenge.opaque) !== options.scope) {
101
+ throw new Errors.InvalidChallengeError({
102
+ id: credential.challenge.id,
103
+ reason: "credential scope does not match this route's requirements",
104
+ });
105
+ }
98
106
  const shouldValidateRoute = options?.capturedRequest !== undefined ||
99
107
  options?.meta !== undefined ||
100
108
  options?.realm !== undefined ||
101
109
  options?.request !== undefined;
110
+ const expectedRealm = options?.realm ??
111
+ realm ??
112
+ (options?.capturedRequest === undefined ? credential.challenge.realm : undefined);
102
113
  const request = shouldValidateRoute
103
114
  ? await resolveRouteChallenge({
104
115
  capturedRequest: options?.capturedRequest,
105
116
  credential,
106
117
  defaults: mi.defaults,
107
118
  expires: credential.challenge.expires,
108
- meta: options?.meta,
119
+ meta: expectedMeta,
109
120
  method: mi,
110
- realm: options?.realm ?? realm,
121
+ realm: expectedRealm,
111
122
  request: mi.request,
112
123
  routeRequest: options?.request ?? {},
113
124
  secretKey: secretKey,
@@ -163,10 +174,14 @@ export function create(config) {
163
174
  function createMethodFn(parameters) {
164
175
  const { defaults, method, realm, respond, secretKey, transport, verify } = parameters;
165
176
  return (options) => {
166
- const { description, meta, ...rest } = options;
177
+ const { description, meta, scope, ...rest } = options;
178
+ const staticMeta = Scope.merge({ meta, scope });
167
179
  return Object.assign(async (input) => {
168
180
  const expires = 'expires' in options ? options.expires : Expires.minutes(5);
169
181
  const capturedRequest = await captureRequest(transport, input);
182
+ const effectiveMeta = scope === undefined && input instanceof globalThis.Request
183
+ ? Scope.merge({ meta: staticMeta, scope: Scope.get(input) })
184
+ : staticMeta;
170
185
  // Extract credential once — getCredential may have side effects (e.g. SSE transports).
171
186
  const [credential, credentialError] = (() => {
172
187
  try {
@@ -185,7 +200,7 @@ function createMethodFn(parameters) {
185
200
  defaults,
186
201
  description,
187
202
  expires,
188
- meta,
203
+ meta: effectiveMeta,
189
204
  method,
190
205
  realm,
191
206
  request: parameters.request,
@@ -358,6 +373,7 @@ function createMethodFn(parameters) {
358
373
  ...method,
359
374
  ...defaults,
360
375
  ...options,
376
+ ...(staticMeta !== undefined ? { meta: staticMeta } : {}),
361
377
  name: method.name,
362
378
  intent: method.intent,
363
379
  _canonicalRequest: PaymentRequest.fromMethod(method, { ...defaults, ...rest }),
@@ -373,13 +389,14 @@ function createMethodFn(parameters) {
373
389
  function createChallengeFn(parameters) {
374
390
  const { defaults, method, realm, secretKey } = parameters;
375
391
  return async (options) => {
376
- const { description, meta, ...rest } = options;
392
+ const { description, meta, scope, ...rest } = options;
393
+ const effectiveMeta = Scope.merge({ meta, scope });
377
394
  const expires = 'expires' in options ? options.expires : Expires.minutes(5);
378
395
  return resolveRouteChallenge({
379
396
  defaults,
380
397
  description,
381
398
  expires,
382
- meta,
399
+ meta: effectiveMeta,
383
400
  method,
384
401
  realm,
385
402
  request: parameters.request,
@@ -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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"}
@@ -0,0 +1,19 @@
1
+ /** Reserved `meta` key used for mppx-managed route/resource scope binding. */
2
+ export declare const reservedMetaKey = "_mppx_scope";
3
+ /** Attaches a trusted adapter-derived scope to a Request for this process only. */
4
+ export declare function attach(request: Request, scope: string): Request;
5
+ /** Reads a previously attached trusted adapter-derived scope from a Request. */
6
+ export declare function get(request: Request): string | undefined;
7
+ /** Returns the reserved mppx scope value from challenge metadata, if present. */
8
+ export declare function read(meta: Record<string, string> | undefined): string | undefined;
9
+ /**
10
+ * Merges the public `scope` option into challenge metadata.
11
+ *
12
+ * Throws when both `scope` and `meta._mppx_scope` are provided with different
13
+ * values so callers have a single authoritative way to bind route scope.
14
+ */
15
+ export declare function merge(parameters: {
16
+ meta?: Record<string, string> | undefined;
17
+ scope?: string | undefined;
18
+ }): Record<string, string> | undefined;
19
+ //# sourceMappingURL=scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../../src/server/internal/scope.ts"],"names":[],"mappings":"AAEA,8EAA8E;AAC9E,eAAO,MAAM,eAAe,gBAAgB,CAAA;AAE5C,mFAAmF;AACnF,wBAAgB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAG/D;AAED,gFAAgF;AAChF,wBAAgB,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAExD;AAED,iFAAiF;AACjF,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAEjF;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,UAAU,EAAE;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;IACzC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC3B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAYrC"}
@@ -0,0 +1,33 @@
1
+ const requestScopes = new WeakMap();
2
+ /** Reserved `meta` key used for mppx-managed route/resource scope binding. */
3
+ export const reservedMetaKey = '_mppx_scope';
4
+ /** Attaches a trusted adapter-derived scope to a Request for this process only. */
5
+ export function attach(request, scope) {
6
+ requestScopes.set(request, scope);
7
+ return request;
8
+ }
9
+ /** Reads a previously attached trusted adapter-derived scope from a Request. */
10
+ export function get(request) {
11
+ return requestScopes.get(request);
12
+ }
13
+ /** Returns the reserved mppx scope value from challenge metadata, if present. */
14
+ export function read(meta) {
15
+ return meta?.[reservedMetaKey];
16
+ }
17
+ /**
18
+ * Merges the public `scope` option into challenge metadata.
19
+ *
20
+ * Throws when both `scope` and `meta._mppx_scope` are provided with different
21
+ * values so callers have a single authoritative way to bind route scope.
22
+ */
23
+ export function merge(parameters) {
24
+ const { meta, scope } = parameters;
25
+ const metaScope = read(meta);
26
+ if (scope !== undefined && metaScope !== undefined && metaScope !== scope) {
27
+ throw new Error(`Conflicting scope values: \`scope\` (${scope}) does not match \`meta.${reservedMetaKey}\` (${metaScope}).`);
28
+ }
29
+ if (scope === undefined || metaScope === scope)
30
+ return meta;
31
+ return { ...meta, [reservedMetaKey]: scope };
32
+ }
33
+ //# sourceMappingURL=scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope.js","sourceRoot":"","sources":["../../../src/server/internal/scope.ts"],"names":[],"mappings":"AAAA,MAAM,aAAa,GAAG,IAAI,OAAO,EAAmB,CAAA;AAEpD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAA;AAE5C,mFAAmF;AACnF,MAAM,UAAU,MAAM,CAAC,OAAgB,EAAE,KAAa;IACpD,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACjC,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,GAAG,CAAC,OAAgB;IAClC,OAAO,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,IAAI,CAAC,IAAwC;IAC3D,OAAO,IAAI,EAAE,CAAC,eAAe,CAAC,CAAA;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAC,UAGrB;IACC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,UAAU,CAAA;IAClC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;IAE5B,IAAI,KAAK,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CACb,wCAAwC,KAAK,2BAA2B,eAAe,OAAO,SAAS,IAAI,CAC5G,CAAA;IACH,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,IAAI,SAAS,KAAK,KAAK;QAAE,OAAO,IAAI,CAAA;IAC3D,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,CAAA;AAC9C,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mppx",
3
3
  "type": "module",
4
- "version": "0.6.1",
4
+ "version": "0.6.2",
5
5
  "main": "./dist/index.js",
6
6
  "license": "MIT",
7
7
  "files": [
@@ -1,6 +1,6 @@
1
1
  import { serve } from '@hono/node-server'
2
2
  import { Hono } from 'hono'
3
- import { Receipt } from 'mppx'
3
+ import { Challenge, Credential, Method, Receipt, z } from 'mppx'
4
4
  import { Mppx as Mppx_client, session as sessionIntent, tempo as tempo_client } from 'mppx/client'
5
5
  import { Mppx, discovery } from 'mppx/hono'
6
6
  import { tempo as tempo_server } from 'mppx/server'
@@ -26,6 +26,40 @@ function createServer(app: Hono) {
26
26
 
27
27
  const secretKey = 'test-secret-key'
28
28
 
29
+ const scopeMethod = Method.toServer(
30
+ Method.from({
31
+ name: 'mock',
32
+ intent: 'charge',
33
+ schema: {
34
+ credential: { payload: z.object({ token: z.string() }) },
35
+ request: z.object({
36
+ amount: z.string(),
37
+ currency: z.string(),
38
+ decimals: z.number(),
39
+ recipient: z.string(),
40
+ }),
41
+ },
42
+ }),
43
+ {
44
+ async verify() {
45
+ return {
46
+ method: 'mock',
47
+ reference: 'tx-mock',
48
+ status: 'success' as const,
49
+ timestamp: new Date().toISOString(),
50
+ }
51
+ },
52
+ },
53
+ )
54
+
55
+ function createScopeHarness() {
56
+ return Mppx.create({
57
+ methods: [scopeMethod],
58
+ realm: 'api.example.com',
59
+ secretKey,
60
+ })
61
+ }
62
+
29
63
  function createChargeHarness(feePayer: boolean) {
30
64
  const mppx = Mppx.create({
31
65
  methods: [
@@ -126,6 +160,66 @@ describe('charge', () => {
126
160
  })
127
161
  })
128
162
 
163
+ describe('scope binding', () => {
164
+ const scopeOpts = {
165
+ amount: '1',
166
+ currency: '0x0000000000000000000000000000000000000001',
167
+ decimals: 6,
168
+ recipient: '0x0000000000000000000000000000000000000002',
169
+ }
170
+
171
+ test('auto-injects route scope and blocks same-economics replay across routes', async () => {
172
+ const mppx = createScopeHarness()
173
+
174
+ const app = new Hono()
175
+ app.get('/alpha/:id', mppx.charge(scopeOpts), (c) => c.json({ route: 'alpha' }))
176
+ app.get('/beta/:id', mppx.charge(scopeOpts), (c) => c.json({ route: 'beta' }))
177
+
178
+ const server = await createServer(app)
179
+ const challengeResponse = await fetch(`${server.url}/alpha/1`)
180
+ expect(challengeResponse.status).toBe(402)
181
+
182
+ const challenge = Challenge.fromResponse(challengeResponse)
183
+ expect(challenge.opaque).toEqual({ _mppx_scope: 'GET /alpha/:id' })
184
+
185
+ const credential = Credential.from({ challenge, payload: { token: 'valid' } })
186
+ const replay = await fetch(`${server.url}/beta/1`, {
187
+ headers: { Authorization: Credential.serialize(credential) },
188
+ })
189
+
190
+ expect(replay.status).toBe(402)
191
+ server.close()
192
+ })
193
+
194
+ test('manual scope overrides adapter-derived route scope', async () => {
195
+ const mppx = createScopeHarness()
196
+
197
+ const app = new Hono()
198
+ app.get('/alpha/:id', mppx.charge({ ...scopeOpts, scope: 'shared-scope' }), (c) =>
199
+ c.json({ route: 'alpha' }),
200
+ )
201
+ app.get('/beta/:id', mppx.charge({ ...scopeOpts, scope: 'shared-scope' }), (c) =>
202
+ c.json({ route: 'beta' }),
203
+ )
204
+
205
+ const server = await createServer(app)
206
+ const challengeResponse = await fetch(`${server.url}/alpha/1`)
207
+ expect(challengeResponse.status).toBe(402)
208
+
209
+ const challenge = Challenge.fromResponse(challengeResponse)
210
+ expect(challenge.opaque).toEqual({ _mppx_scope: 'shared-scope' })
211
+
212
+ const credential = Credential.from({ challenge, payload: { token: 'valid' } })
213
+ const replay = await fetch(`${server.url}/beta/2`, {
214
+ headers: { Authorization: Credential.serialize(credential) },
215
+ })
216
+
217
+ expect(replay.status).toBe(200)
218
+ expect(await replay.json()).toEqual({ route: 'beta' })
219
+ server.close()
220
+ })
221
+ })
222
+
129
223
  describe('session', () => {
130
224
  let escrowContract: Address
131
225
 
@@ -1,6 +1,7 @@
1
1
  import type { Hono, MiddlewareHandler } from 'hono'
2
2
 
3
3
  import { generate, type GenerateConfig, type RouteConfig } from '../discovery/OpenApi.js'
4
+ import * as Scope from '../server/internal/scope.js'
4
5
  import * as Mppx_core from '../server/Mppx.js'
5
6
  import * as Mppx_internal from './internal/mppx.js'
6
7
 
@@ -56,7 +57,11 @@ export function payment<const intent extends Mppx_internal.AnyMethodFn>(
56
57
  options: intent extends (options: infer options) => any ? options : never,
57
58
  ): MiddlewareHandler {
58
59
  return async (c, next) => {
59
- const result = await intent(options)(c.req.raw)
60
+ const request =
61
+ options.scope === undefined && Scope.read(options.meta) === undefined
62
+ ? Scope.attach(c.req.raw, `${c.req.method.toUpperCase()} ${c.req.routePath || c.req.path}`)
63
+ : c.req.raw
64
+ const result = await intent(options)(request)
60
65
  if (result.status === 402) return result.challenge
61
66
  await next()
62
67
  c.res = result.withReceipt(c.res)
@@ -30,6 +30,40 @@ const mppx_server = Mppx_server.create({
30
30
  secretKey,
31
31
  })
32
32
 
33
+ const scopeMethod = Method.toServer(
34
+ Method.from({
35
+ name: 'mock',
36
+ intent: 'charge',
37
+ schema: {
38
+ credential: { payload: z.object({ token: z.string() }) },
39
+ request: z.object({
40
+ amount: z.string(),
41
+ currency: z.string(),
42
+ decimals: z.number(),
43
+ recipient: z.string(),
44
+ }),
45
+ },
46
+ }),
47
+ {
48
+ async verify() {
49
+ return {
50
+ method: 'mock',
51
+ reference: 'tx-mock',
52
+ status: 'success' as const,
53
+ timestamp: new Date().toISOString(),
54
+ }
55
+ },
56
+ },
57
+ )
58
+
59
+ function createScopeServer() {
60
+ return Mppx_server.create({
61
+ methods: [scopeMethod],
62
+ realm: 'api.example.com',
63
+ secretKey,
64
+ })
65
+ }
66
+
33
67
  const mppx_client = Mppx_client.create({
34
68
  polyfill: false,
35
69
  methods: [
@@ -707,6 +741,88 @@ describe('create', () => {
707
741
  const res = await fetch(`${proxyServer.url}/api/v1/search?q=hello&limit=10`)
708
742
  expect(await res.json()).toEqual({ search: '?q=hello&limit=10' })
709
743
  })
744
+
745
+ test('auto-injects proxy route scope and blocks same-economics replay across routes', async () => {
746
+ const scopedServer = createScopeServer()
747
+ const proxy = ApiProxy.create({
748
+ services: [
749
+ Service.from('api', {
750
+ baseUrl: 'https://api.example.com',
751
+ routes: {
752
+ 'GET /v1/alpha': scopedServer.charge({
753
+ amount: '1',
754
+ currency: '0x0000000000000000000000000000000000000001',
755
+ decimals: 6,
756
+ recipient: '0x0000000000000000000000000000000000000002',
757
+ }),
758
+ 'GET /v1/beta': scopedServer.charge({
759
+ amount: '1',
760
+ currency: '0x0000000000000000000000000000000000000001',
761
+ decimals: 6,
762
+ recipient: '0x0000000000000000000000000000000000000002',
763
+ }),
764
+ },
765
+ }),
766
+ ],
767
+ })
768
+ proxyServer = await Http.createServer(proxy.listener)
769
+
770
+ const challengeResponse = await fetch(`${proxyServer.url}/api/v1/alpha`)
771
+ expect(challengeResponse.status).toBe(402)
772
+
773
+ const challenge = Challenge.fromResponse(challengeResponse)
774
+ expect(challenge.opaque).toEqual({ _mppx_scope: 'GET /api/v1/alpha' })
775
+
776
+ const credential = Credential.from({ challenge, payload: { token: 'valid' } })
777
+ const replay = await fetch(`${proxyServer.url}/api/v1/beta`, {
778
+ headers: { Authorization: Credential.serialize(credential) },
779
+ })
780
+
781
+ expect(replay.status).toBe(402)
782
+ })
783
+
784
+ test('manual scope overrides proxy route scope', async () => {
785
+ const scopedServer = createScopeServer()
786
+ upstream = await createUpstream(() => Response.json({ ok: true }))
787
+ const proxy = ApiProxy.create({
788
+ services: [
789
+ Service.from('api', {
790
+ baseUrl: upstream.url,
791
+ routes: {
792
+ 'GET /v1/alpha': scopedServer.charge({
793
+ amount: '1',
794
+ currency: '0x0000000000000000000000000000000000000001',
795
+ decimals: 6,
796
+ recipient: '0x0000000000000000000000000000000000000002',
797
+ scope: 'shared-scope',
798
+ }),
799
+ 'GET /v1/beta': scopedServer.charge({
800
+ amount: '1',
801
+ currency: '0x0000000000000000000000000000000000000001',
802
+ decimals: 6,
803
+ recipient: '0x0000000000000000000000000000000000000002',
804
+ scope: 'shared-scope',
805
+ }),
806
+ },
807
+ }),
808
+ ],
809
+ })
810
+ proxyServer = await Http.createServer(proxy.listener)
811
+
812
+ const challengeResponse = await fetch(`${proxyServer.url}/api/v1/alpha`)
813
+ expect(challengeResponse.status).toBe(402)
814
+
815
+ const challenge = Challenge.fromResponse(challengeResponse)
816
+ expect(challenge.opaque).toEqual({ _mppx_scope: 'shared-scope' })
817
+
818
+ const credential = Credential.from({ challenge, payload: { token: 'valid' } })
819
+ const replay = await fetch(`${proxyServer.url}/api/v1/beta`, {
820
+ headers: { Authorization: Credential.serialize(credential) },
821
+ })
822
+
823
+ expect(replay.status).toBe(200)
824
+ expect(await replay.json()).toEqual({ ok: true })
825
+ })
710
826
  })
711
827
 
712
828
  describe.runIf(isLocalnet)('plain HTTP session proxy', () => {
@@ -2,6 +2,7 @@ import type * as http from 'node:http'
2
2
 
3
3
  import * as Credential from '../Credential.js'
4
4
  import { generateProxy } from '../discovery/OpenApi.js'
5
+ import * as Scope from '../server/internal/scope.js'
5
6
  import * as Request from '../server/Request.js'
6
7
  import * as Headers from './internal/Headers.js'
7
8
  import * as Route from './internal/Route.js'
@@ -129,7 +130,16 @@ export function create(config: create.Config): Proxy {
129
130
  if (endpoint === true) return proxyUpstream({ request, service, ctx, proxy })
130
131
 
131
132
  const handler = typeof endpoint === 'function' ? endpoint : endpoint.pay
132
- const result = await handler(request)
133
+ const scope =
134
+ getConfiguredScope(handler) ??
135
+ deriveRouteScope({
136
+ basePath: config.basePath,
137
+ routeKey: matched.key,
138
+ serviceId,
139
+ })
140
+ const result = await handler(
141
+ getConfiguredScope(handler) ? request : Scope.attach(request, scope),
142
+ )
133
143
  if (result.status === 402) return result.challenge
134
144
 
135
145
  const managementResponse = (() => {
@@ -242,6 +252,22 @@ function buildDiscoveryRoutes(services: Service.Service[]) {
242
252
  )
243
253
  }
244
254
 
255
+ function getConfiguredScope(handler: Service.IntentHandler): string | undefined {
256
+ if (!('_internal' in handler)) return undefined
257
+ const internal = handler._internal as { meta?: Record<string, string>; scope?: string }
258
+ return Scope.read(internal.meta) ?? internal.scope
259
+ }
260
+
261
+ function deriveRouteScope(parameters: {
262
+ basePath?: string | undefined
263
+ routeKey: string
264
+ serviceId: string
265
+ }): string {
266
+ const { basePath, routeKey, serviceId } = parameters
267
+ const { method, pattern } = Route.parseRouteKey(routeKey)
268
+ return `${method ?? '*'} ${withBasePath(basePath, `/${serviceId}${pattern}`)}`
269
+ }
270
+
245
271
  function buildServiceInfo(config: create.Config): { categories?: string[]; docs?: Service.Docs } {
246
272
  const categories =
247
273
  config.categories ??
@@ -54,7 +54,8 @@ export function matchPath(
54
54
  return match
55
55
  }
56
56
 
57
- function parseRouteKey(key: string): { method: string | undefined; pattern: string } {
57
+ /** Parses a proxy route key like `"POST /v1/messages"` into method + pathname pattern. */
58
+ export function parseRouteKey(key: string): { method: string | undefined; pattern: string } {
58
59
  const tokens = key.trim().split(/\s+/)
59
60
  if (tokens.length >= 2 && httpMethods.has(tokens[0]!.toUpperCase())) {
60
61
  return { method: tokens[0]!.toUpperCase(), pattern: tokens.slice(1).join(' ') }
@@ -169,4 +169,22 @@ describe('Mppx type tests', () => {
169
169
 
170
170
  expectTypeOf(mppx.verifyCredential).toBeFunction()
171
171
  })
172
+
173
+ test('handler options and verifyCredential accept scope', () => {
174
+ const mppx = Mppx.create({ methods: [alphaMethod], realm, secretKey })
175
+
176
+ expectTypeOf(
177
+ mppx.charge({
178
+ amount: '100',
179
+ currency: '0x01',
180
+ decimals: 6,
181
+ recipient: '0x02',
182
+ scope: 'GET /premium',
183
+ }),
184
+ ).toBeFunction()
185
+
186
+ expectTypeOf(mppx.verifyCredential('credential', { scope: 'GET /premium' })).toMatchTypeOf<
187
+ Promise<unknown>
188
+ >()
189
+ })
172
190
  })
@@ -2108,6 +2108,47 @@ describe('cross-route credential replay via scope binding flaw', () => {
2108
2108
  expect(result.status).toBe(402)
2109
2109
  })
2110
2110
 
2111
+ test('rejects same-economics credential replayed across sibling routes with different scope', async () => {
2112
+ const handler = Mppx.create({ methods: [serverMethod], realm, secretKey })
2113
+
2114
+ const routeA = handler.charge({
2115
+ amount: '0.01',
2116
+ currency: '0x0000000000000000000000000000000000000001',
2117
+ decimals: 6,
2118
+ expires: new Date(Date.now() + 60_000).toISOString(),
2119
+ recipient: '0x0000000000000000000000000000000000000002',
2120
+ scope: 'GET /a',
2121
+ })
2122
+ const routeB = handler.charge({
2123
+ amount: '0.01',
2124
+ currency: '0x0000000000000000000000000000000000000001',
2125
+ decimals: 6,
2126
+ expires: new Date(Date.now() + 60_000).toISOString(),
2127
+ recipient: '0x0000000000000000000000000000000000000002',
2128
+ scope: 'GET /b',
2129
+ })
2130
+
2131
+ const routeAChallengeResult = await routeA(new Request('https://example.com/a'))
2132
+ expect(routeAChallengeResult.status).toBe(402)
2133
+ if (routeAChallengeResult.status !== 402) throw new Error()
2134
+
2135
+ const routeAChallenge = Challenge.fromResponse(routeAChallengeResult.challenge)
2136
+ expect(routeAChallenge.opaque).toEqual({ _mppx_scope: 'GET /a' })
2137
+
2138
+ const credential = Credential.from({
2139
+ challenge: routeAChallenge,
2140
+ payload: { token: 'valid' },
2141
+ })
2142
+
2143
+ const result = await routeB(
2144
+ new Request('https://example.com/b', {
2145
+ headers: { Authorization: Credential.serialize(credential) },
2146
+ }),
2147
+ )
2148
+
2149
+ expect(result.status).toBe(402)
2150
+ })
2151
+
2111
2152
  test('rejects request-billed credential replayed at token-billed route', async () => {
2112
2153
  const sessionMethod = Method.from({
2113
2154
  name: 'mock',
@@ -3091,6 +3132,37 @@ describe('challenge', () => {
3091
3132
  expect(challenge.opaque).toEqual({ checkout_id: 'chk_abc' })
3092
3133
  })
3093
3134
 
3135
+ test('challenge binds scope via reserved opaque metadata', async () => {
3136
+ const mppx = Mppx.create({
3137
+ methods: [alphaChargeServer],
3138
+ realm,
3139
+ secretKey,
3140
+ })
3141
+
3142
+ const challenge = await mppx.challenge.alpha.charge({
3143
+ ...challengeOpts,
3144
+ scope: 'GET /premium',
3145
+ })
3146
+
3147
+ expect(challenge.opaque).toEqual({ _mppx_scope: 'GET /premium' })
3148
+ })
3149
+
3150
+ test('scope throws when it conflicts with reserved meta scope', async () => {
3151
+ const mppx = Mppx.create({
3152
+ methods: [alphaChargeServer],
3153
+ realm,
3154
+ secretKey,
3155
+ })
3156
+
3157
+ await expect(
3158
+ mppx.challenge.alpha.charge({
3159
+ ...challengeOpts,
3160
+ meta: { _mppx_scope: 'GET /other' },
3161
+ scope: 'GET /premium',
3162
+ }),
3163
+ ).rejects.toThrow('Conflicting scope values')
3164
+ })
3165
+
3094
3166
  test('challenge applies schema transforms', async () => {
3095
3167
  // Method with a z.transform that converts decimals
3096
3168
  const transformMethod = Method.from({
@@ -3329,6 +3401,70 @@ describe('verifyCredential', () => {
3329
3401
  expect(receipt.method).toBe('alpha')
3330
3402
  })
3331
3403
 
3404
+ test('verifies a credential when the expected scope matches', async () => {
3405
+ const mppx = Mppx.create({
3406
+ methods: [alphaChargeServer],
3407
+ realm,
3408
+ secretKey,
3409
+ })
3410
+
3411
+ const challenge = await mppx.challenge.alpha.charge({
3412
+ ...challengeOpts,
3413
+ scope: 'GET /premium',
3414
+ })
3415
+ const credential = Credential.from({ challenge, payload: { token: 'valid' } })
3416
+
3417
+ const receipt = await mppx.verifyCredential(credential, { scope: 'GET /premium' })
3418
+
3419
+ expect(receipt.status).toBe('success')
3420
+ expect(receipt.method).toBe('alpha')
3421
+ })
3422
+
3423
+ test('rejects a credential when the expected scope mismatches', async () => {
3424
+ const mppx = Mppx.create({
3425
+ methods: [alphaChargeServer],
3426
+ realm,
3427
+ secretKey,
3428
+ })
3429
+
3430
+ const challenge = await mppx.challenge.alpha.charge({
3431
+ ...challengeOpts,
3432
+ scope: 'GET /premium',
3433
+ })
3434
+ const credential = Credential.from({ challenge, payload: { token: 'valid' } })
3435
+
3436
+ await expect(mppx.verifyCredential(credential, { scope: 'GET /other' })).rejects.toThrow(
3437
+ "credential scope does not match this route's requirements",
3438
+ )
3439
+ })
3440
+
3441
+ test('verifies route requirements using the echoed challenge realm when host was auto-detected', async () => {
3442
+ const mppx = Mppx.create({
3443
+ methods: [alphaChargeServer],
3444
+ secretKey,
3445
+ })
3446
+ const request = {
3447
+ amount: '1000',
3448
+ currency: '0x0000000000000000000000000000000000000001',
3449
+ decimals: 6,
3450
+ recipient: '0x0000000000000000000000000000000000000002',
3451
+ }
3452
+
3453
+ const firstResult = await mppx.charge(request)(new Request('https://api.example.com/premium'))
3454
+ expect(firstResult.status).toBe(402)
3455
+ if (firstResult.status !== 402) throw new Error()
3456
+
3457
+ const challenge = Challenge.fromResponse(firstResult.challenge)
3458
+ expect(challenge.realm).toBe('api.example.com')
3459
+
3460
+ const credential = Credential.from({ challenge, payload: { token: 'valid' } })
3461
+
3462
+ const receipt = await mppx.verifyCredential(credential, { request })
3463
+
3464
+ expect(receipt.status).toBe('success')
3465
+ expect(receipt.method).toBe('alpha')
3466
+ })
3467
+
3332
3468
  test('verifies a credential for session intent', async () => {
3333
3469
  verifyArgs = undefined
3334
3470
  const mppx = Mppx.create({
@@ -13,12 +13,23 @@ import type * as Receipt from '../Receipt.js'
13
13
  import type * as z from '../zod.js'
14
14
  import * as Html from './internal/html/config.js'
15
15
  import { serviceWorker } from './internal/html/serviceWorker.gen.js'
16
+ import * as Scope from './internal/scope.js'
16
17
  import * as NodeListener from './NodeListener.js'
17
18
  import * as Request from './Request.js'
18
19
  import * as Transport from './Transport.js'
19
20
 
20
21
  export type Methods = readonly (Method.AnyServer | readonly Method.AnyServer[])[]
21
22
 
23
+ /** Options for standalone credential verification. */
24
+ export type VerifyCredentialOptions = {
25
+ capturedRequest?: Method.CapturedRequest | undefined
26
+ meta?: Record<string, string> | undefined
27
+ realm?: string | undefined
28
+ request?: Record<string, unknown> | undefined
29
+ /** Optional expected route/resource scope bound via challenge `opaque`. */
30
+ scope?: string | undefined
31
+ }
32
+
22
33
  /**
23
34
  * Payment handler.
24
35
  */
@@ -180,13 +191,6 @@ type ChallengeFn<method extends Method.Method, defaults extends Record<string, u
180
191
  options: MethodFn.Options<method, defaults>,
181
192
  ) => Promise<Challenge.Challenge>
182
193
 
183
- export type VerifyCredentialOptions = {
184
- capturedRequest?: Method.CapturedRequest | undefined
185
- meta?: Record<string, string> | undefined
186
- realm?: string | undefined
187
- request?: Record<string, unknown> | undefined
188
- }
189
-
190
194
  /**
191
195
  * Creates a server-side payment handler from methods.
192
196
  *
@@ -295,11 +299,24 @@ export function create<
295
299
  // Validate payload against method schema
296
300
  mi.schema.credential.payload.parse(credential.payload)
297
301
 
302
+ const expectedMeta = Scope.merge({ meta: options?.meta, scope: options?.scope })
303
+
304
+ if (options?.scope !== undefined && Scope.read(credential.challenge.opaque) !== options.scope) {
305
+ throw new Errors.InvalidChallengeError({
306
+ id: credential.challenge.id,
307
+ reason: "credential scope does not match this route's requirements",
308
+ })
309
+ }
310
+
298
311
  const shouldValidateRoute =
299
312
  options?.capturedRequest !== undefined ||
300
313
  options?.meta !== undefined ||
301
314
  options?.realm !== undefined ||
302
315
  options?.request !== undefined
316
+ const expectedRealm =
317
+ options?.realm ??
318
+ realm ??
319
+ (options?.capturedRequest === undefined ? credential.challenge.realm : undefined)
303
320
 
304
321
  const request = shouldValidateRoute
305
322
  ? await resolveRouteChallenge({
@@ -307,9 +324,9 @@ export function create<
307
324
  credential,
308
325
  defaults: mi.defaults,
309
326
  expires: credential.challenge.expires,
310
- meta: options?.meta,
327
+ meta: expectedMeta,
311
328
  method: mi,
312
- realm: options?.realm ?? realm,
329
+ realm: expectedRealm,
313
330
  request: mi.request as never,
314
331
  routeRequest: options?.request ?? {},
315
332
  secretKey: secretKey!,
@@ -399,13 +416,18 @@ function createMethodFn(parameters: createMethodFn.Parameters): createMethodFn.R
399
416
  const { defaults, method, realm, respond, secretKey, transport, verify } = parameters
400
417
 
401
418
  return (options) => {
402
- const { description, meta, ...rest } = options
419
+ const { description, meta, scope, ...rest } = options
420
+ const staticMeta = Scope.merge({ meta, scope })
403
421
 
404
422
  return Object.assign(
405
423
  async (input: Transport.InputOf): Promise<MethodFn.Response> => {
406
424
  const expires =
407
425
  'expires' in options ? (options.expires as string | undefined) : Expires.minutes(5)
408
426
  const capturedRequest = await captureRequest(transport, input)
427
+ const effectiveMeta =
428
+ scope === undefined && input instanceof globalThis.Request
429
+ ? Scope.merge({ meta: staticMeta, scope: Scope.get(input) })
430
+ : staticMeta
409
431
 
410
432
  // Extract credential once — getCredential may have side effects (e.g. SSE transports).
411
433
  const [credential, credentialError] = (() => {
@@ -424,7 +446,7 @@ function createMethodFn(parameters: createMethodFn.Parameters): createMethodFn.R
424
446
  defaults,
425
447
  description,
426
448
  expires,
427
- meta,
449
+ meta: effectiveMeta,
428
450
  method,
429
451
  realm,
430
452
  request: parameters.request,
@@ -603,6 +625,7 @@ function createMethodFn(parameters: createMethodFn.Parameters): createMethodFn.R
603
625
  ...method,
604
626
  ...defaults,
605
627
  ...options,
628
+ ...(staticMeta !== undefined ? { meta: staticMeta } : {}),
606
629
  name: method.name,
607
630
  intent: method.intent,
608
631
  _canonicalRequest: PaymentRequest.fromMethod(method, { ...defaults, ...rest }),
@@ -627,12 +650,14 @@ function createChallengeFn(parameters: {
627
650
  const { defaults, method, realm, secretKey } = parameters
628
651
 
629
652
  return async (options) => {
630
- const { description, meta, ...rest } = options as {
653
+ const { description, meta, scope, ...rest } = options as {
631
654
  description?: string
632
655
  expires?: string
633
656
  meta?: Record<string, string>
657
+ scope?: string
634
658
  [key: string]: unknown
635
659
  }
660
+ const effectiveMeta = Scope.merge({ meta, scope })
636
661
  const expires =
637
662
  'expires' in options ? (options.expires as string | undefined) : Expires.minutes(5)
638
663
 
@@ -640,7 +665,7 @@ function createChallengeFn(parameters: {
640
665
  defaults,
641
666
  description,
642
667
  expires,
643
- meta,
668
+ meta: effectiveMeta,
644
669
  method,
645
670
  realm,
646
671
  request: parameters.request,
@@ -950,6 +975,8 @@ declare namespace MethodFn {
950
975
  expires?: string | undefined
951
976
  /** Optional server-defined correlation data (serialized as `opaque` in the request). Flat string-to-string map; clients MUST NOT modify. */
952
977
  meta?: Record<string, string> | undefined
978
+ /** Optional route/resource scope bound via reserved challenge metadata. */
979
+ scope?: string | undefined
953
980
  } & Method.WithDefaults<z.input<method['schema']['request']>, defaults>
954
981
 
955
982
  export type Response<transport extends Transport.AnyTransport = Transport.Http> =
@@ -970,6 +997,7 @@ type ConfiguredHandler = ((input: Request) => Promise<MethodFn.Response<Transpor
970
997
  intent: string
971
998
  html: Html.Options | undefined
972
999
  meta?: Record<string, string> | undefined
1000
+ scope?: string | undefined
973
1001
  _canonicalRequest: Record<string, unknown>
974
1002
  }
975
1003
  }
@@ -0,0 +1,43 @@
1
+ const requestScopes = new WeakMap<Request, string>()
2
+
3
+ /** Reserved `meta` key used for mppx-managed route/resource scope binding. */
4
+ export const reservedMetaKey = '_mppx_scope'
5
+
6
+ /** Attaches a trusted adapter-derived scope to a Request for this process only. */
7
+ export function attach(request: Request, scope: string): Request {
8
+ requestScopes.set(request, scope)
9
+ return request
10
+ }
11
+
12
+ /** Reads a previously attached trusted adapter-derived scope from a Request. */
13
+ export function get(request: Request): string | undefined {
14
+ return requestScopes.get(request)
15
+ }
16
+
17
+ /** Returns the reserved mppx scope value from challenge metadata, if present. */
18
+ export function read(meta: Record<string, string> | undefined): string | undefined {
19
+ return meta?.[reservedMetaKey]
20
+ }
21
+
22
+ /**
23
+ * Merges the public `scope` option into challenge metadata.
24
+ *
25
+ * Throws when both `scope` and `meta._mppx_scope` are provided with different
26
+ * values so callers have a single authoritative way to bind route scope.
27
+ */
28
+ export function merge(parameters: {
29
+ meta?: Record<string, string> | undefined
30
+ scope?: string | undefined
31
+ }): Record<string, string> | undefined {
32
+ const { meta, scope } = parameters
33
+ const metaScope = read(meta)
34
+
35
+ if (scope !== undefined && metaScope !== undefined && metaScope !== scope) {
36
+ throw new Error(
37
+ `Conflicting scope values: \`scope\` (${scope}) does not match \`meta.${reservedMetaKey}\` (${metaScope}).`,
38
+ )
39
+ }
40
+
41
+ if (scope === undefined || metaScope === scope) return meta
42
+ return { ...meta, [reservedMetaKey]: scope }
43
+ }