@peac/mappings-acp 0.14.2 → 0.14.4

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/dist/index.d.ts CHANGED
@@ -4,23 +4,66 @@
4
4
  * Agentic Commerce Protocol (ACP) integration for PEAC.
5
5
  * Maps ACP checkout events to PEAC receipts and carries evidence via HTTP headers.
6
6
  */
7
- import type { PaymentEvidence } from '@peac/schema';
7
+ import { type PaymentEvidence } from '@peac/schema';
8
+ import { type StrictnessMode } from '@peac/adapter-core';
8
9
  export * from './budget';
9
10
  export type { HeaderMap, AcpMessageLike, AcpExtractResult, AcpExtractAsyncResult } from './carrier';
10
11
  export { ACP_CARRIER_LIMITS, attachCarrierToACPHeaders, attachCarrierToACPMessage, extractCarrierFromACPHeaders, extractCarrierFromACPHeadersAsync, AcpCarrierAdapter, } from './carrier';
11
12
  /**
12
- * ACP Checkout Success Event
13
+ * ACP Checkout Success Event.
14
+ *
15
+ * Carrier-shape input for an ACP checkout-success observation. The amount is
16
+ * a base-10 integer string in the smallest currency unit (e.g. "9999" for
17
+ * $99.99) to preserve precision above Number.MAX_SAFE_INTEGER. The
18
+ * environment is asserted by upstream and never silently defaulted.
13
19
  */
14
20
  export interface ACPCheckoutSuccess {
15
21
  checkout_id: string;
16
22
  resource_uri: string;
17
- total_amount: number;
23
+ /**
24
+ * Amount in smallest currency unit as a base-10 integer string.
25
+ * Validated against the shared AmountMinorStringSchema and must be
26
+ * non-negative. Decimals, empty strings, and numeric values are rejected.
27
+ */
28
+ amount_minor: string;
18
29
  currency: string;
19
30
  payment_rail: string;
20
31
  payment_reference: string;
32
+ /** Environment as asserted by upstream. Required: no silent default. */
33
+ env: 'live' | 'test';
21
34
  customer_id?: string;
22
35
  metadata?: Record<string, unknown>;
23
36
  }
37
+ /**
38
+ * Optional knobs for fromACPCheckoutSuccess. Mode controls the
39
+ * mapper-boundary finality-synthesis guard (default `interop`).
40
+ */
41
+ export interface ACPCheckoutSuccessOptions {
42
+ mode?: StrictnessMode;
43
+ warn?: (message: string) => void;
44
+ }
45
+ /**
46
+ * Stable error codes emitted by ACP mapper validation. Callers MAY switch
47
+ * on `code` to discriminate without parsing message text. Distinct from
48
+ * `@peac/adapter-core` MapperBoundaryError codes (which carry the finality-
49
+ * synthesis code only); kept local to avoid widening the adapter-core enum
50
+ * for ACP-specific validation concerns.
51
+ */
52
+ export type ACPMapperBoundaryErrorCode = 'acp.checkout_invalid_event' | 'acp.checkout_missing_checkout_id' | 'acp.checkout_invalid_resource_uri' | 'acp.checkout_legacy_total_amount' | 'acp.checkout_invalid_amount_minor' | 'acp.checkout_unsafe_amount_minor' | 'acp.checkout_invalid_currency' | 'acp.checkout_missing_payment_rail' | 'acp.checkout_missing_payment_reference' | 'acp.checkout_missing_env' | 'acp.checkout_invalid_env';
53
+ export interface ACPMapperBoundaryErrorInit {
54
+ code: ACPMapperBoundaryErrorCode;
55
+ field: string;
56
+ message: string;
57
+ }
58
+ /**
59
+ * Structured validation error thrown by ACP mapper input checks. Carries a
60
+ * stable `code` and `field` so callers can discriminate programmatically.
61
+ */
62
+ export declare class ACPMapperBoundaryError extends Error {
63
+ readonly code: ACPMapperBoundaryErrorCode;
64
+ readonly field: string;
65
+ constructor(init: ACPMapperBoundaryErrorInit);
66
+ }
24
67
  /**
25
68
  * PEAC Receipt Input (for issue())
26
69
  */
@@ -31,12 +74,25 @@ export interface PEACReceiptInput {
31
74
  payment: PaymentEvidence;
32
75
  }
33
76
  /**
34
- * Convert ACP checkout success event to PEAC receipt input
77
+ * Convert ACP checkout success event to PEAC receipt input.
78
+ *
79
+ * Observational mapping only. fromACPCheckoutSuccess does NOT synthesize
80
+ * commerce finality: a checkout-success observation alone does not prove
81
+ * authorization, capture, settlement, refund, void, or chargeback. The
82
+ * mapper records checkout/payment evidence only; no `commerce_event`,
83
+ * `settlement_state`, `capture_state`, or `authorization_state` is emitted.
84
+ * Callers that have an explicit payment-bearing artifact should route
85
+ * through fromACPDelegatedPaymentObservation or fromACPPaymentObservation
86
+ * instead.
87
+ *
88
+ * Validation errors are thrown as ACPMapperBoundaryError with stable
89
+ * `code` and `field` so callers can discriminate programmatically.
35
90
  *
36
91
  * @param event - ACP checkout success event
92
+ * @param options - Optional strictness mode + warn sink
37
93
  * @returns PEAC receipt input ready for issue()
38
94
  */
39
- export declare function fromACPCheckoutSuccess(event: ACPCheckoutSuccess): PEACReceiptInput;
95
+ export declare function fromACPCheckoutSuccess(event: ACPCheckoutSuccess, options?: ACPCheckoutSuccessOptions): PEACReceiptInput;
40
96
  /**
41
97
  * Attach PEAC receipt to ACP response
42
98
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,cAAc,UAAU,CAAC;AAGzB,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAEpG,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,yBAAyB,EACzB,4BAA4B,EAC5B,iCAAiC,EACjC,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAEnB;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,gBAAgB,CAoDlF;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1E,QAAQ,EAAE,CAAC,EACX,UAAU,EAAE,MAAM,GACjB,CAAC,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAK9B;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAK9F;AAGD,YAAY,EACV,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,eAAe,EACf,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AAGtB,YAAY,EACV,qBAAqB,EACrB,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,kCAAkC,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -20,10 +20,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
20
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
21
  };
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
- exports.fromACPDelegatedPaymentObservation = exports.fromACPInterventionRequired = exports.fromACPCapabilitySnapshot = exports.fromACPPaymentObservation = exports.fromACPSessionLifecycleEvent = exports.AcpCarrierAdapter = exports.extractCarrierFromACPHeadersAsync = exports.extractCarrierFromACPHeaders = exports.attachCarrierToACPMessage = exports.attachCarrierToACPHeaders = exports.ACP_CARRIER_LIMITS = void 0;
23
+ exports.fromACPDelegatedPaymentObservation = exports.fromACPInterventionRequired = exports.fromACPCapabilitySnapshot = exports.fromACPPaymentObservation = exports.fromACPSessionLifecycleEvent = exports.ACPMapperBoundaryError = exports.AcpCarrierAdapter = exports.extractCarrierFromACPHeadersAsync = exports.extractCarrierFromACPHeaders = exports.attachCarrierToACPMessage = exports.attachCarrierToACPHeaders = exports.ACP_CARRIER_LIMITS = void 0;
24
24
  exports.fromACPCheckoutSuccess = fromACPCheckoutSuccess;
25
25
  exports.attachReceiptToACPResponse = attachReceiptToACPResponse;
26
26
  exports.extractReceiptFromACPResponse = extractReceiptFromACPResponse;
27
+ const schema_1 = require("@peac/schema");
28
+ const adapter_core_1 = require("@peac/adapter-core");
29
+ const validation_js_1 = require("./validation.js");
27
30
  __exportStar(require("./budget"), exports);
28
31
  var carrier_1 = require("./carrier");
29
32
  Object.defineProperty(exports, "ACP_CARRIER_LIMITS", { enumerable: true, get: function () { return carrier_1.ACP_CARRIER_LIMITS; } });
@@ -33,36 +36,158 @@ Object.defineProperty(exports, "extractCarrierFromACPHeaders", { enumerable: tru
33
36
  Object.defineProperty(exports, "extractCarrierFromACPHeadersAsync", { enumerable: true, get: function () { return carrier_1.extractCarrierFromACPHeadersAsync; } });
34
37
  Object.defineProperty(exports, "AcpCarrierAdapter", { enumerable: true, get: function () { return carrier_1.AcpCarrierAdapter; } });
35
38
  /**
36
- * Convert ACP checkout success event to PEAC receipt input
39
+ * Structured validation error thrown by ACP mapper input checks. Carries a
40
+ * stable `code` and `field` so callers can discriminate programmatically.
41
+ */
42
+ class ACPMapperBoundaryError extends Error {
43
+ code;
44
+ field;
45
+ constructor(init) {
46
+ super(init.message);
47
+ this.name = 'ACPMapperBoundaryError';
48
+ this.code = init.code;
49
+ this.field = init.field;
50
+ }
51
+ }
52
+ exports.ACPMapperBoundaryError = ACPMapperBoundaryError;
53
+ /**
54
+ * Convert ACP checkout success event to PEAC receipt input.
55
+ *
56
+ * Observational mapping only. fromACPCheckoutSuccess does NOT synthesize
57
+ * commerce finality: a checkout-success observation alone does not prove
58
+ * authorization, capture, settlement, refund, void, or chargeback. The
59
+ * mapper records checkout/payment evidence only; no `commerce_event`,
60
+ * `settlement_state`, `capture_state`, or `authorization_state` is emitted.
61
+ * Callers that have an explicit payment-bearing artifact should route
62
+ * through fromACPDelegatedPaymentObservation or fromACPPaymentObservation
63
+ * instead.
64
+ *
65
+ * Validation errors are thrown as ACPMapperBoundaryError with stable
66
+ * `code` and `field` so callers can discriminate programmatically.
37
67
  *
38
68
  * @param event - ACP checkout success event
69
+ * @param options - Optional strictness mode + warn sink
39
70
  * @returns PEAC receipt input ready for issue()
40
71
  */
41
- function fromACPCheckoutSuccess(event) {
42
- // Validate ACP event
72
+ function fromACPCheckoutSuccess(event, options = {}) {
73
+ if (event === null || typeof event !== 'object') {
74
+ throw new ACPMapperBoundaryError({
75
+ code: 'acp.checkout_invalid_event',
76
+ field: 'event',
77
+ message: 'ACP checkout event must be an object',
78
+ });
79
+ }
43
80
  if (!event.checkout_id) {
44
- throw new Error('ACP checkout event missing checkout_id');
81
+ throw new ACPMapperBoundaryError({
82
+ code: 'acp.checkout_missing_checkout_id',
83
+ field: 'checkout_id',
84
+ message: 'ACP checkout event missing checkout_id',
85
+ });
45
86
  }
46
- if (!event.resource_uri || !event.resource_uri.startsWith('https://')) {
47
- throw new Error('ACP checkout event missing or invalid resource_uri (must be https://)');
87
+ if (!(0, validation_js_1.isValidHttpsResourceUri)(event.resource_uri)) {
88
+ throw new ACPMapperBoundaryError({
89
+ code: 'acp.checkout_invalid_resource_uri',
90
+ field: 'resource_uri',
91
+ message: 'ACP checkout event missing or invalid resource_uri (must be an https:// URL with a hostname and no embedded credentials)',
92
+ });
48
93
  }
49
- if (typeof event.total_amount !== 'number' || event.total_amount < 0) {
50
- throw new Error('ACP checkout event invalid total_amount');
94
+ // Reject legacy numeric total_amount with a clear migration message.
95
+ const legacy = event.total_amount;
96
+ if (legacy !== undefined) {
97
+ throw new ACPMapperBoundaryError({
98
+ code: 'acp.checkout_legacy_total_amount',
99
+ field: 'total_amount',
100
+ message: 'ACP checkout event uses legacy total_amount: number; pass amount_minor as a base-10 integer string instead (e.g. "9999")',
101
+ });
102
+ }
103
+ if (!(0, schema_1.isValidAmountMinor)(event.amount_minor)) {
104
+ throw new ACPMapperBoundaryError({
105
+ code: 'acp.checkout_invalid_amount_minor',
106
+ field: 'amount_minor',
107
+ message: 'ACP checkout event invalid amount_minor (must be a base-10 integer string, e.g. "9999")',
108
+ });
109
+ }
110
+ if (event.amount_minor.startsWith('-')) {
111
+ throw new ACPMapperBoundaryError({
112
+ code: 'acp.checkout_invalid_amount_minor',
113
+ field: 'amount_minor',
114
+ message: 'ACP checkout event invalid amount_minor (must be non-negative)',
115
+ });
51
116
  }
52
117
  if (!event.currency || !/^[A-Z]{3}$/.test(event.currency)) {
53
- throw new Error('ACP checkout event invalid currency (must be uppercase ISO 4217)');
118
+ throw new ACPMapperBoundaryError({
119
+ code: 'acp.checkout_invalid_currency',
120
+ field: 'currency',
121
+ message: 'ACP checkout event invalid currency (must be uppercase ISO 4217)',
122
+ });
54
123
  }
55
124
  if (!event.payment_rail) {
56
- throw new Error('ACP checkout event missing payment_rail');
125
+ throw new ACPMapperBoundaryError({
126
+ code: 'acp.checkout_missing_payment_rail',
127
+ field: 'payment_rail',
128
+ message: 'ACP checkout event missing payment_rail',
129
+ });
57
130
  }
58
131
  if (!event.payment_reference) {
59
- throw new Error('ACP checkout event missing payment_reference');
132
+ throw new ACPMapperBoundaryError({
133
+ code: 'acp.checkout_missing_payment_reference',
134
+ field: 'payment_reference',
135
+ message: 'ACP checkout event missing payment_reference',
136
+ });
137
+ }
138
+ if (event.env === undefined || event.env === null) {
139
+ throw new ACPMapperBoundaryError({
140
+ code: 'acp.checkout_missing_env',
141
+ field: 'env',
142
+ message: "ACP checkout event missing env (must be 'live' or 'test')",
143
+ });
60
144
  }
61
- // Build payment evidence from ACP event as JsonObject
145
+ if (event.env !== 'live' && event.env !== 'test') {
146
+ throw new ACPMapperBoundaryError({
147
+ code: 'acp.checkout_invalid_env',
148
+ field: 'env',
149
+ message: "ACP checkout event invalid env (must be 'live' or 'test')",
150
+ });
151
+ }
152
+ // Safe-integer boundary for amount_minor -> Number conversion.
153
+ //
154
+ // PaymentEvidence.amount and PEACReceiptInput.amt carry the amount as a
155
+ // JS `number`. AmountMinorStringSchema accepts up to 39 digits, so we
156
+ // MUST refuse anything beyond Number.MAX_SAFE_INTEGER to avoid silently
157
+ // losing precision on the way back to a number. Use a string-preserving
158
+ // record profile for amounts beyond the safe-integer range, NOT this
159
+ // checkout-success mapper.
160
+ const amountMinorBig = BigInt(event.amount_minor);
161
+ if (amountMinorBig > BigInt(Number.MAX_SAFE_INTEGER)) {
162
+ throw new ACPMapperBoundaryError({
163
+ code: 'acp.checkout_unsafe_amount_minor',
164
+ field: 'amount_minor',
165
+ message: `ACP checkout event amount_minor exceeds Number.MAX_SAFE_INTEGER (${Number.MAX_SAFE_INTEGER}); the legacy PEAC receipt input carries amount as a JS number and would lose precision. Use a string-preserving record profile for amounts beyond the safe-integer range.`,
166
+ });
167
+ }
168
+ const amountMinor = Number(amountMinorBig);
169
+ // Mapper-boundary finality-synthesis guard.
170
+ //
171
+ // fromACPCheckoutSuccess does NOT synthesize commerce finality. event is
172
+ // intentionally undefined here so Rule 1 (the finality-synthesis check)
173
+ // is a no-op: a checkout-success observation alone does not claim
174
+ // authorization, capture, settlement, refund, void, or chargeback. The
175
+ // guard call is retained to enforce Rules 2 and 3 (currency MUST be
176
+ // upstream-asserted, env MUST be explicit). A caller with a finality-
177
+ // bearing event must use a finality-aware mapper.
178
+ (0, adapter_core_1.assertExplicitFinality)({
179
+ event: undefined,
180
+ hasExplicitUpstreamArtifact: false,
181
+ currency: event.currency,
182
+ env: event.env,
183
+ envExplicit: true,
184
+ }, {
185
+ mode: options.mode,
186
+ warn: options.warn,
187
+ pointer: '/proofs/acp/checkout',
188
+ });
62
189
  const evidence = {};
63
- // Include ACP metadata in evidence
64
190
  if (event.metadata) {
65
- // Cast metadata to JsonObject (Record<string, unknown> -> JsonObject)
66
191
  evidence.acp_metadata = event.metadata;
67
192
  }
68
193
  if (event.customer_id) {
@@ -74,15 +199,15 @@ function fromACPCheckoutSuccess(event) {
74
199
  const payment = {
75
200
  rail: event.payment_rail,
76
201
  reference: event.payment_reference,
77
- amount: event.total_amount,
202
+ amount: amountMinor,
78
203
  currency: event.currency,
79
- asset: event.currency, // For ACP, asset is typically same as currency
80
- env: 'live', // Default to live; ACP events should indicate if test
204
+ asset: event.currency,
205
+ env: event.env,
81
206
  evidence,
82
207
  };
83
208
  return {
84
209
  subject_uri: event.resource_uri,
85
- amt: event.total_amount,
210
+ amt: amountMinor,
86
211
  cur: event.currency,
87
212
  payment,
88
213
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
package/dist/session.js CHANGED
@@ -19,6 +19,7 @@ exports.fromACPCapabilitySnapshot = fromACPCapabilitySnapshot;
19
19
  exports.fromACPInterventionRequired = fromACPInterventionRequired;
20
20
  exports.fromACPDelegatedPaymentObservation = fromACPDelegatedPaymentObservation;
21
21
  const adapter_core_1 = require("@peac/adapter-core");
22
+ const validation_js_1 = require("./validation.js");
22
23
  // ---------------------------------------------------------------------------
23
24
  // Commerce event mapping (payment state -> commerce extension event)
24
25
  // ---------------------------------------------------------------------------
@@ -43,8 +44,8 @@ function fromACPSessionLifecycleEvent(event) {
43
44
  if (!event.session_id) {
44
45
  throw new Error('ACP session event missing session_id');
45
46
  }
46
- if (!event.resource_uri || !event.resource_uri.startsWith('https://')) {
47
- throw new Error('ACP session event missing or invalid resource_uri (must be https://)');
47
+ if (!(0, validation_js_1.isValidHttpsResourceUri)(event.resource_uri)) {
48
+ throw new Error('ACP session event missing or invalid resource_uri (must be an https:// URL with a hostname and no embedded credentials)');
48
49
  }
49
50
  const evidence = {
50
51
  acp_session_id: event.session_id,
@@ -91,8 +92,8 @@ function fromACPPaymentObservation(event, paymentArtifact) {
91
92
  if (!event.session_id) {
92
93
  throw new Error('ACP session event missing session_id');
93
94
  }
94
- if (!event.resource_uri || !event.resource_uri.startsWith('https://')) {
95
- throw new Error('ACP session event missing or invalid resource_uri (must be https://)');
95
+ if (!(0, validation_js_1.isValidHttpsResourceUri)(event.resource_uri)) {
96
+ throw new Error('ACP session event missing or invalid resource_uri (must be an https:// URL with a hostname and no embedded credentials)');
96
97
  }
97
98
  if (!paymentArtifact.rail) {
98
99
  throw new Error('Payment artifact missing rail');
@@ -103,6 +104,12 @@ function fromACPPaymentObservation(event, paymentArtifact) {
103
104
  if (!paymentArtifact.observed_payment_state) {
104
105
  throw new Error('Payment artifact missing observed_payment_state');
105
106
  }
107
+ // paymentArtifact.amount is a number on the input boundary; reject NaN,
108
+ // Infinity, decimals, and unsafe integers before assigning to
109
+ // PaymentEvidence.amount to prevent signing imprecise numeric evidence.
110
+ if (!Number.isSafeInteger(paymentArtifact.amount)) {
111
+ throw new Error('Payment artifact amount must be a safe integer minor-unit value (no NaN, Infinity, decimals, or values outside Number.MIN_SAFE_INTEGER..Number.MAX_SAFE_INTEGER)');
112
+ }
106
113
  const commerceEvent = PAYMENT_STATE_TO_COMMERCE_EVENT[paymentArtifact.observed_payment_state];
107
114
  const evidence = {
108
115
  acp_session_id: event.session_id,
@@ -157,8 +164,8 @@ function fromACPInterventionRequired(intervention) {
157
164
  if (!intervention.session_id) {
158
165
  throw new Error('ACP intervention missing session_id');
159
166
  }
160
- if (!intervention.resource_uri || !intervention.resource_uri.startsWith('https://')) {
161
- throw new Error('ACP intervention missing or invalid resource_uri (must be https://)');
167
+ if (!(0, validation_js_1.isValidHttpsResourceUri)(intervention.resource_uri)) {
168
+ throw new Error('ACP intervention missing or invalid resource_uri (must be an https:// URL with a hostname and no embedded credentials)');
162
169
  }
163
170
  const evidence = {
164
171
  acp_session_id: intervention.session_id,
@@ -213,8 +220,8 @@ function fromACPDelegatedPaymentObservation(observation, options = {}) {
213
220
  if (!observation.delegation_id) {
214
221
  throw new Error('ACP delegated-payment observation missing delegation_id');
215
222
  }
216
- if (!observation.resource_uri || !observation.resource_uri.startsWith('https://')) {
217
- throw new Error('ACP delegated-payment observation missing or invalid resource_uri (must be https://)');
223
+ if (!(0, validation_js_1.isValidHttpsResourceUri)(observation.resource_uri)) {
224
+ throw new Error('ACP delegated-payment observation missing or invalid resource_uri (must be an https:// URL with a hostname and no embedded credentials)');
218
225
  }
219
226
  if (!observation.principal) {
220
227
  throw new Error('ACP delegated-payment observation missing principal');
@@ -228,8 +235,8 @@ function fromACPDelegatedPaymentObservation(observation, options = {}) {
228
235
  if (!observation.observed_payment_state) {
229
236
  throw new Error('ACP delegated-payment observation missing observed_payment_state');
230
237
  }
231
- if (!/^-?[0-9]+$/.test(observation.authorized_amount_minor)) {
232
- throw new Error('ACP delegated-payment observation authorized_amount_minor must be a base-10 integer string');
238
+ if (!/^[0-9]+$/.test(observation.authorized_amount_minor)) {
239
+ throw new Error('ACP delegated-payment observation authorized_amount_minor must be a non-negative base-10 integer string');
233
240
  }
234
241
  const commerceEvent = DELEGATED_STATE_TO_COMMERCE_EVENT[observation.observed_payment_state];
235
242
  // Settlement-proof discriminator: for finality states, the upstream
@@ -283,7 +290,20 @@ function fromACPDelegatedPaymentObservation(observation, options = {}) {
283
290
  // No currency-aware scaling is applied; consumers that need major units
284
291
  // must convert downstream using the currency. The canonical minor string
285
292
  // remains available under evidence.authorized_amount_minor.
286
- const amountMinor = parseInt(observation.authorized_amount_minor, 10);
293
+ //
294
+ // Safe-integer boundary for authorized_amount_minor -> Number conversion.
295
+ // PaymentEvidence.amount is a JS `number`; values above the safe-integer
296
+ // range would silently lose precision. Negative values are rejected at
297
+ // the regex layer above (authorized amounts are non-negative; refund
298
+ // semantics flow through observed_payment_state='refunded' on the
299
+ // session-payment-artifact path, not through delegated-payment).
300
+ // Callers with amounts beyond the safe-integer range must use a
301
+ // string-preserving record profile, not this mapper.
302
+ const amountMinorBig = BigInt(observation.authorized_amount_minor);
303
+ if (amountMinorBig > BigInt(Number.MAX_SAFE_INTEGER)) {
304
+ throw new Error(`ACP delegated-payment observation authorized_amount_minor (${observation.authorized_amount_minor}) exceeds Number.MAX_SAFE_INTEGER (${Number.MAX_SAFE_INTEGER}); converting to PaymentEvidence.amount would lose precision. Use a string-preserving record profile for amounts beyond the safe-integer range.`);
305
+ }
306
+ const amountMinor = Number(amountMinorBig);
287
307
  const payment = {
288
308
  rail: 'acp-delegated-payment',
289
309
  reference: observation.delegation_id,
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Shared ACP mapper validation helpers.
3
+ */
4
+ /**
5
+ * Type guard for an https:// URL string with a non-empty hostname.
6
+ *
7
+ * Requires the literal "https://" prefix in addition to a parsed `https:`
8
+ * protocol so opaque-path forms like "https:example.com" are rejected.
9
+ * Embedded credentials (userinfo) are rejected to avoid signing a
10
+ * resource_uri that carries secrets.
11
+ */
12
+ export declare function isValidHttpsResourceUri(value: unknown): value is string;
13
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAcvE"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ /**
3
+ * Shared ACP mapper validation helpers.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.isValidHttpsResourceUri = isValidHttpsResourceUri;
7
+ /**
8
+ * Type guard for an https:// URL string with a non-empty hostname.
9
+ *
10
+ * Requires the literal "https://" prefix in addition to a parsed `https:`
11
+ * protocol so opaque-path forms like "https:example.com" are rejected.
12
+ * Embedded credentials (userinfo) are rejected to avoid signing a
13
+ * resource_uri that carries secrets.
14
+ */
15
+ function isValidHttpsResourceUri(value) {
16
+ if (typeof value !== 'string' || value.length === 0)
17
+ return false;
18
+ if (!value.startsWith('https://'))
19
+ return false;
20
+ try {
21
+ const url = new URL(value);
22
+ return (url.protocol === 'https:' &&
23
+ url.hostname.length > 0 &&
24
+ url.username.length === 0 &&
25
+ url.password.length === 0);
26
+ }
27
+ catch {
28
+ return false;
29
+ }
30
+ }
31
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAUH,0DAcC;AAtBD;;;;;;;GAOG;AACH,SAAgB,uBAAuB,CAAC,KAAc;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAClE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,CACL,GAAG,CAAC,QAAQ,KAAK,QAAQ;YACzB,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YACvB,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YACzB,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAC1B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peac/mappings-acp",
3
- "version": "0.14.2",
3
+ "version": "0.14.4",
4
4
  "description": "Agentic Commerce Protocol (ACP) integration for PEAC",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -23,16 +23,16 @@
23
23
  "access": "public"
24
24
  },
25
25
  "dependencies": {
26
- "@peac/adapter-core": "0.14.2",
27
- "@peac/protocol": "0.14.2",
28
- "@peac/schema": "0.14.2",
29
- "@peac/kernel": "0.14.2"
26
+ "@peac/adapter-core": "0.14.4",
27
+ "@peac/kernel": "0.14.4",
28
+ "@peac/protocol": "0.14.4",
29
+ "@peac/schema": "0.14.4"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@types/node": "^22.19.11",
33
33
  "typescript": "^5.3.3",
34
34
  "vitest": "^4.0.0",
35
- "@peac/crypto": "0.14.2"
35
+ "@peac/crypto": "0.14.4"
36
36
  },
37
37
  "keywords": [
38
38
  "peac",