@peac/adapter-x402 0.12.5 → 0.12.6

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/verify.js CHANGED
@@ -22,6 +22,10 @@ exports.verifyReceipt = verifyReceipt;
22
22
  exports.verifyOfferReceiptConsistency = verifyOfferReceiptConsistency;
23
23
  exports.matchAcceptTerms = matchAcceptTerms;
24
24
  exports.selectAccept = selectAccept;
25
+ exports.verifyOfferV2 = verifyOfferV2;
26
+ exports.verifyReceiptV2 = verifyReceiptV2;
27
+ exports.verifyOfferUnified = verifyOfferUnified;
28
+ exports.verifyReceiptUnified = verifyReceiptUnified;
25
29
  const errors_js_1 = require("./errors.js");
26
30
  const raw_js_1 = require("./raw.js");
27
31
  const normalize_js_1 = require("./normalize.js");
@@ -952,4 +956,207 @@ function verifyWithScan(payload, accepts, errors, hintProvided, hintMismatchDete
952
956
  termMatching,
953
957
  };
954
958
  }
959
+ /**
960
+ * Verify a normalized V2 offer.
961
+ *
962
+ * V2 uses maxTimeoutSeconds (duration) instead of validUntil (epoch).
963
+ * In strict mode, unknown V2 shapes are rejected (fail-closed).
964
+ *
965
+ * @param offer - Normalized V2 offer
966
+ * @param config - Adapter config (supportedVersions must include 2)
967
+ * @returns Verification result
968
+ */
969
+ function verifyOfferV2(offer, config) {
970
+ const errors = [];
971
+ const supportedVersions = config?.supportedVersions ?? DEFAULT_SUPPORTED_VERSIONS;
972
+ const strictNetwork = config?.strictNetworkValidation ?? true;
973
+ const strictAmount = config?.strictAmountValidation ?? true;
974
+ // Version gate
975
+ if (!supportedVersions.includes(2)) {
976
+ errors.push({
977
+ code: 'offer_version_unsupported',
978
+ message: `V2 offers require supportedVersions to include 2 (current: [${supportedVersions.join(', ')}])`,
979
+ field: 'version',
980
+ });
981
+ return { valid: false, errors };
982
+ }
983
+ // Required fields
984
+ if (!offer.network) {
985
+ errors.push({
986
+ code: 'payload_missing_field',
987
+ message: 'V2 offer missing required field: network',
988
+ field: 'network',
989
+ });
990
+ }
991
+ if (!offer.asset) {
992
+ errors.push({
993
+ code: 'payload_missing_field',
994
+ message: 'V2 offer missing required field: asset',
995
+ field: 'asset',
996
+ });
997
+ }
998
+ if (!offer.payTo) {
999
+ errors.push({
1000
+ code: 'payload_missing_field',
1001
+ message: 'V2 offer missing required field: payTo',
1002
+ field: 'payTo',
1003
+ });
1004
+ }
1005
+ if (!offer.amount) {
1006
+ errors.push({
1007
+ code: 'payload_missing_field',
1008
+ message: 'V2 offer missing required field: amount',
1009
+ field: 'amount',
1010
+ });
1011
+ }
1012
+ if (!offer.scheme) {
1013
+ errors.push({
1014
+ code: 'payload_missing_field',
1015
+ message: 'V2 offer missing required field: scheme',
1016
+ field: 'scheme',
1017
+ });
1018
+ }
1019
+ if (!offer.resource?.url) {
1020
+ errors.push({
1021
+ code: 'payload_missing_field',
1022
+ message: 'V2 offer missing required field: resource.url',
1023
+ field: 'resource.url',
1024
+ });
1025
+ }
1026
+ if (errors.length > 0)
1027
+ return { valid: false, errors };
1028
+ // maxTimeoutSeconds must be positive
1029
+ if (typeof offer.maxTimeoutSeconds !== 'number' || offer.maxTimeoutSeconds <= 0) {
1030
+ errors.push({
1031
+ code: 'offer_invalid_format',
1032
+ message: `V2 offer maxTimeoutSeconds must be a positive number (got: ${offer.maxTimeoutSeconds})`,
1033
+ field: 'maxTimeoutSeconds',
1034
+ });
1035
+ }
1036
+ // Network validation
1037
+ if (strictNetwork) {
1038
+ const networkError = validateNetwork(offer.network, 'offer');
1039
+ if (networkError)
1040
+ errors.push(networkError);
1041
+ }
1042
+ // Amount validation
1043
+ if (strictAmount && offer.amount) {
1044
+ const amountError = validateAmount(offer.amount, 'offer');
1045
+ if (amountError)
1046
+ errors.push(amountError);
1047
+ }
1048
+ return { valid: errors.length === 0, errors };
1049
+ }
1050
+ /**
1051
+ * Verify a normalized V2 receipt.
1052
+ *
1053
+ * V2 receipts require caller-supplied resourceUrl and issuedAt.
1054
+ * In strict mode, unknown V2 shapes are rejected (fail-closed).
1055
+ *
1056
+ * @param receipt - Normalized V2 receipt
1057
+ * @param config - Adapter config (supportedVersions must include 2)
1058
+ * @returns Verification result
1059
+ */
1060
+ function verifyReceiptV2(receipt, config) {
1061
+ const errors = [];
1062
+ const supportedVersions = config?.supportedVersions ?? DEFAULT_SUPPORTED_VERSIONS;
1063
+ const strictNetwork = config?.strictNetworkValidation ?? true;
1064
+ const recencySeconds = config?.receiptRecencySeconds ?? DEFAULT_RECEIPT_RECENCY_SECONDS;
1065
+ const now = config?.nowSeconds ?? Math.floor(Date.now() / 1000);
1066
+ const clockSkew = config?.clockSkewSeconds ?? DEFAULT_CLOCK_SKEW_SECONDS;
1067
+ // Version gate
1068
+ if (!supportedVersions.includes(2)) {
1069
+ errors.push({
1070
+ code: 'receipt_version_unsupported',
1071
+ message: `V2 receipts require supportedVersions to include 2 (current: [${supportedVersions.join(', ')}])`,
1072
+ field: 'version',
1073
+ });
1074
+ return { valid: false, errors };
1075
+ }
1076
+ // Required fields
1077
+ if (!receipt.network) {
1078
+ errors.push({
1079
+ code: 'payload_missing_field',
1080
+ message: 'V2 receipt missing required field: network',
1081
+ field: 'network',
1082
+ });
1083
+ }
1084
+ if (!receipt.payer) {
1085
+ errors.push({
1086
+ code: 'payload_missing_field',
1087
+ message: 'V2 receipt missing required field: payer',
1088
+ field: 'payer',
1089
+ });
1090
+ }
1091
+ if (!receipt.resourceUrl) {
1092
+ errors.push({
1093
+ code: 'payload_missing_field',
1094
+ message: 'V2 receipt missing required field: resourceUrl',
1095
+ field: 'resourceUrl',
1096
+ });
1097
+ }
1098
+ if (typeof receipt.issuedAt !== 'number') {
1099
+ errors.push({
1100
+ code: 'payload_missing_field',
1101
+ message: 'V2 receipt missing required field: issuedAt',
1102
+ field: 'issuedAt',
1103
+ });
1104
+ }
1105
+ if (errors.length > 0)
1106
+ return { valid: false, errors };
1107
+ // Network validation
1108
+ if (strictNetwork) {
1109
+ const networkError = validateNetwork(receipt.network, 'receipt');
1110
+ if (networkError)
1111
+ errors.push(networkError);
1112
+ }
1113
+ // Recency check
1114
+ const age = now - receipt.issuedAt;
1115
+ if (age > recencySeconds + clockSkew) {
1116
+ errors.push({
1117
+ code: 'receipt_too_old',
1118
+ message: `V2 receipt issuedAt is ${age}s old, exceeds recency window of ${recencySeconds}s`,
1119
+ field: 'issuedAt',
1120
+ });
1121
+ }
1122
+ if (receipt.issuedAt > now + clockSkew) {
1123
+ errors.push({
1124
+ code: 'receipt_invalid_format',
1125
+ message: `V2 receipt issuedAt is ${receipt.issuedAt - now}s in the future (clock skew tolerance: ${clockSkew}s)`,
1126
+ field: 'issuedAt',
1127
+ });
1128
+ }
1129
+ return { valid: errors.length === 0, errors };
1130
+ }
1131
+ // ---------------------------------------------------------------------------
1132
+ // Unified dispatchers
1133
+ // ---------------------------------------------------------------------------
1134
+ /**
1135
+ * Unified offer verification: dispatches to V1 or V2 based on config.wireVersion.
1136
+ *
1137
+ * When wireVersion is 2, accepts a NormalizedV2Offer and routes to verifyOfferV2().
1138
+ * When wireVersion is 1 (default), accepts a RawSignedOffer and routes to verifyOffer().
1139
+ *
1140
+ * This is the canonical public entrypoint for version-aware verification.
1141
+ */
1142
+ function verifyOfferUnified(offer, accepts, config) {
1143
+ if (config?.wireVersion === 2) {
1144
+ return verifyOfferV2(offer, config);
1145
+ }
1146
+ return verifyOffer(offer, accepts, config);
1147
+ }
1148
+ /**
1149
+ * Unified receipt verification: dispatches to V1 or V2 based on config.wireVersion.
1150
+ *
1151
+ * When wireVersion is 2, accepts a NormalizedV2Receipt and routes to verifyReceiptV2().
1152
+ * When wireVersion is 1 (default), accepts a RawSignedReceipt and routes to verifyReceipt().
1153
+ *
1154
+ * This is the canonical public entrypoint for version-aware verification.
1155
+ */
1156
+ function verifyReceiptUnified(receipt, config) {
1157
+ if (config?.wireVersion === 2) {
1158
+ return verifyReceiptV2(receipt, config);
1159
+ }
1160
+ return verifyReceipt(receipt, config);
1161
+ }
955
1162
  //# sourceMappingURL=verify.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"verify.js","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * x402 wire version detection
3
+ *
4
+ * Discriminates V1 and V2 flows by inspecting HTTP headers.
5
+ *
6
+ * V2 headers (all Base64-encoded JSON):
7
+ * PAYMENT-REQUIRED (402 challenge)
8
+ * PAYMENT-SIGNATURE (client payment proof)
9
+ * PAYMENT-RESPONSE (server settlement result)
10
+ *
11
+ * V1 headers:
12
+ * X-PAYMENT-RESPONSE (server settlement result)
13
+ * X-PAYMENT (client payment)
14
+ *
15
+ * Detection inspects all known headers in priority order.
16
+ * If no V2-specific header is found, falls back to V1.
17
+ * Ambiguous cases (mixed V1+V2 headers) resolve to V2.
18
+ *
19
+ * Upstream: coinbase/x402 specs/transports-v2/http.md
20
+ */
21
+ /** Wire version discriminant */
22
+ export type X402WireVersion = 1 | 2;
23
+ /**
24
+ * Ambiguity indicator for cases where version cannot be determined
25
+ * from transport evidence alone.
26
+ */
27
+ export type X402WireVersionDetection = {
28
+ version: X402WireVersion;
29
+ confident: true;
30
+ } | {
31
+ version: X402WireVersion;
32
+ confident: false;
33
+ reason: string;
34
+ };
35
+ /**
36
+ * Detect x402 wire version from HTTP headers.
37
+ *
38
+ * Inspects all known x402 headers in deterministic priority order:
39
+ * 1. PAYMENT-REQUIRED (V2 challenge) -> V2
40
+ * 2. PAYMENT-SIGNATURE (V2 client proof) -> V2
41
+ * 3. PAYMENT-RESPONSE (V2 settlement) -> V2
42
+ * 4. X-PAYMENT-RESPONSE (V1 settlement) -> V1
43
+ * 5. X-PAYMENT (V1 client payment) -> V1
44
+ * 6. No x402 headers found -> V1 (conservative default)
45
+ *
46
+ * Mixed headers (e.g., both PAYMENT-RESPONSE and X-PAYMENT-RESPONSE)
47
+ * resolve to V2 because V2 takes priority.
48
+ *
49
+ * @param headers - Lowercase-keyed header map. Callers MUST normalize
50
+ * header names to lowercase before passing (standard HTTP/2 practice;
51
+ * HTTP/1.1 callers should use `.toLowerCase()` on keys).
52
+ * @returns Detection result with version and confidence indicator
53
+ */
54
+ export declare function detectX402Version(headers: Record<string, string | string[] | undefined>): X402WireVersionDetection;
55
+ /**
56
+ * Detect x402 wire version from a ReceiptArtifactSource string.
57
+ *
58
+ * Maps carrier extraction source values to wire versions:
59
+ * - 'x402_v2' -> 2 (confident)
60
+ * - 'x402_v1' -> 1 (confident)
61
+ * - 'peac' -> version from adjacent headers or 1 (not confident)
62
+ *
63
+ * @param source - The artifact source from extractReceiptArtifactFromHeaders()
64
+ * @returns Detection result
65
+ */
66
+ export declare function detectX402VersionFromSource(source: 'peac' | 'x402_v2' | 'x402_v1'): X402WireVersionDetection;
67
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAQH,gCAAgC;AAChC,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,CAAC,CAAC;AAEpC;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAChC;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,SAAS,EAAE,IAAI,CAAA;CAAE,GAC7C;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,SAAS,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAenE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GACrD,wBAAwB,CAsB1B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GACrC,wBAAwB,CAS1B"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ /**
3
+ * x402 wire version detection
4
+ *
5
+ * Discriminates V1 and V2 flows by inspecting HTTP headers.
6
+ *
7
+ * V2 headers (all Base64-encoded JSON):
8
+ * PAYMENT-REQUIRED (402 challenge)
9
+ * PAYMENT-SIGNATURE (client payment proof)
10
+ * PAYMENT-RESPONSE (server settlement result)
11
+ *
12
+ * V1 headers:
13
+ * X-PAYMENT-RESPONSE (server settlement result)
14
+ * X-PAYMENT (client payment)
15
+ *
16
+ * Detection inspects all known headers in priority order.
17
+ * If no V2-specific header is found, falls back to V1.
18
+ * Ambiguous cases (mixed V1+V2 headers) resolve to V2.
19
+ *
20
+ * Upstream: coinbase/x402 specs/transports-v2/http.md
21
+ */
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.detectX402Version = detectX402Version;
24
+ exports.detectX402VersionFromSource = detectX402VersionFromSource;
25
+ const raw_v2_js_1 = require("./raw-v2.js");
26
+ // ---------------------------------------------------------------------------
27
+ // V1 Header Constants (for detection only; V1 raw types live in raw.ts)
28
+ // ---------------------------------------------------------------------------
29
+ const X402_V1_HEADERS = {
30
+ PAYMENT_RESPONSE: 'x-payment-response',
31
+ PAYMENT: 'x-payment',
32
+ };
33
+ // ---------------------------------------------------------------------------
34
+ // Detection
35
+ // ---------------------------------------------------------------------------
36
+ /**
37
+ * Detect x402 wire version from HTTP headers.
38
+ *
39
+ * Inspects all known x402 headers in deterministic priority order:
40
+ * 1. PAYMENT-REQUIRED (V2 challenge) -> V2
41
+ * 2. PAYMENT-SIGNATURE (V2 client proof) -> V2
42
+ * 3. PAYMENT-RESPONSE (V2 settlement) -> V2
43
+ * 4. X-PAYMENT-RESPONSE (V1 settlement) -> V1
44
+ * 5. X-PAYMENT (V1 client payment) -> V1
45
+ * 6. No x402 headers found -> V1 (conservative default)
46
+ *
47
+ * Mixed headers (e.g., both PAYMENT-RESPONSE and X-PAYMENT-RESPONSE)
48
+ * resolve to V2 because V2 takes priority.
49
+ *
50
+ * @param headers - Lowercase-keyed header map. Callers MUST normalize
51
+ * header names to lowercase before passing (standard HTTP/2 practice;
52
+ * HTTP/1.1 callers should use `.toLowerCase()` on keys).
53
+ * @returns Detection result with version and confidence indicator
54
+ */
55
+ function detectX402Version(headers) {
56
+ // V2 indicators (any one is sufficient)
57
+ if (headers[raw_v2_js_1.X402_V2_HEADERS.PAYMENT_REQUIRED] !== undefined) {
58
+ return { version: 2, confident: true };
59
+ }
60
+ if (headers[raw_v2_js_1.X402_V2_HEADERS.PAYMENT_SIGNATURE] !== undefined) {
61
+ return { version: 2, confident: true };
62
+ }
63
+ if (headers[raw_v2_js_1.X402_V2_HEADERS.PAYMENT_RESPONSE] !== undefined) {
64
+ return { version: 2, confident: true };
65
+ }
66
+ // V1 indicators
67
+ if (headers[X402_V1_HEADERS.PAYMENT_RESPONSE] !== undefined) {
68
+ return { version: 1, confident: true };
69
+ }
70
+ if (headers[X402_V1_HEADERS.PAYMENT] !== undefined) {
71
+ return { version: 1, confident: true };
72
+ }
73
+ // No x402 headers detected
74
+ return { version: 1, confident: false, reason: 'no x402 headers found' };
75
+ }
76
+ /**
77
+ * Detect x402 wire version from a ReceiptArtifactSource string.
78
+ *
79
+ * Maps carrier extraction source values to wire versions:
80
+ * - 'x402_v2' -> 2 (confident)
81
+ * - 'x402_v1' -> 1 (confident)
82
+ * - 'peac' -> version from adjacent headers or 1 (not confident)
83
+ *
84
+ * @param source - The artifact source from extractReceiptArtifactFromHeaders()
85
+ * @returns Detection result
86
+ */
87
+ function detectX402VersionFromSource(source) {
88
+ if (source === 'x402_v2') {
89
+ return { version: 2, confident: true };
90
+ }
91
+ if (source === 'x402_v1') {
92
+ return { version: 1, confident: true };
93
+ }
94
+ // PEAC receipts are version-neutral
95
+ return { version: 1, confident: false, reason: 'peac source is version-neutral' };
96
+ }
97
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;AAmDH,8CAwBC;AAaD,kEAWC;AAjGD,2CAA8C;AAiB9C,8EAA8E;AAC9E,wEAAwE;AACxE,8EAA8E;AAE9E,MAAM,eAAe,GAAG;IACtB,gBAAgB,EAAE,oBAAoB;IACtC,OAAO,EAAE,WAAW;CACZ,CAAC;AAEX,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,iBAAiB,CAC/B,OAAsD;IAEtD,wCAAwC;IACxC,IAAI,OAAO,CAAC,2BAAe,CAAC,gBAAgB,CAAC,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IACD,IAAI,OAAO,CAAC,2BAAe,CAAC,iBAAiB,CAAC,KAAK,SAAS,EAAE,CAAC;QAC7D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IACD,IAAI,OAAO,CAAC,2BAAe,CAAC,gBAAgB,CAAC,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,gBAAgB;IAChB,IAAI,OAAO,CAAC,eAAe,CAAC,gBAAgB,CAAC,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IACD,IAAI,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;QACnD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,2BAA2B;IAC3B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;AAC3E,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,2BAA2B,CACzC,MAAsC;IAEtC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IACD,oCAAoC;IACpC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,gCAAgC,EAAE,CAAC;AACpF,CAAC"}
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@peac/adapter-x402",
3
- "version": "0.12.5",
3
+ "version": "0.12.6",
4
4
  "description": "x402 offer/receipt verification, term-matching, and PEAC record mapping",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "https://github.com/peacprotocol/peac.git",
9
+ "url": "git+https://github.com/peacprotocol/peac.git",
10
10
  "directory": "packages/adapters/x402"
11
11
  },
12
- "author": "jithinraj <7850727+jithinraj@users.noreply.github.com>",
12
+ "author": "PEAC Protocol Contributors",
13
13
  "license": "Apache-2.0",
14
14
  "files": [
15
15
  "dist",
@@ -19,16 +19,32 @@
19
19
  "access": "public"
20
20
  },
21
21
  "dependencies": {
22
- "@peac/adapter-core": "0.12.5",
23
- "@peac/crypto": "0.12.5",
24
- "@peac/kernel": "0.12.5",
25
- "@peac/schema": "0.12.5"
22
+ "@peac/adapter-core": "0.12.6",
23
+ "@peac/schema": "0.12.6",
24
+ "@peac/crypto": "0.12.6",
25
+ "@peac/kernel": "0.12.6"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/node": "^22.19.11",
29
29
  "typescript": "^5.3.3",
30
30
  "vitest": "^4.0.0"
31
31
  },
32
+ "bugs": {
33
+ "url": "https://github.com/peacprotocol/peac/issues"
34
+ },
35
+ "homepage": "https://github.com/peacprotocol/peac#readme",
36
+ "keywords": [
37
+ "peac",
38
+ "peacprotocol",
39
+ "interaction-records",
40
+ "signed-records",
41
+ "receipts",
42
+ "originary",
43
+ "x402",
44
+ "adapter",
45
+ "payment-proof",
46
+ "receipt-extraction"
47
+ ],
32
48
  "scripts": {
33
49
  "build": "tsc",
34
50
  "test": "vitest run",