agent-receipt-verify 0.2.5 → 0.2.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-receipt-verify",
3
- "version": "0.2.5",
3
+ "version": "0.2.6",
4
4
  "description": "Checks x402 endpoint conformance before an agent pays, and links the receipt to its settlement.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -79,7 +79,18 @@ export async function meetEindpunt(url, { fetchImpl = fetch, methode = 'POST', l
79
79
  // noemt in zijn Allow-kop. Noemt het er geen, dan is GET de enige redelijke tweede
80
80
  // poging, en dat staat dan ook als gok in het bewijs. Een meter die zijn eigen
81
81
  // aanname niet opschrijft, laat een lezer niet zien waar hij kan afwijken.
82
- if (resp.status === 405) {
82
+ // EN EEN 404 IS DEZELFDE FOUT MET EEN ANDER NUMMER. Gemeten dezelfde dag, op een
83
+ // eindpunt van een DERDE: api.thaikit.dev/number-text antwoordt 402 met een geldige
84
+ // payment-required-kop op GET, en 404 op POST. Dat is geen afwijkend eindpunt maar
85
+ // het normale gedrag van veel webraamwerken, die een pad plus een niet-geregistreerde
86
+ // methode als "niet gevonden" behandelen in plaats van als "methode niet toegestaan".
87
+ // Onze meter noemde die levende, correcte verkoper daardoor niet-conform. Alleen de
88
+ // 405 repareren liet dus de helft van het probleem staan.
89
+ //
90
+ // De herhaling blijft bewust smal: alleen 404 en 405, alleen als wij NIET met GET
91
+ // sondeerden, en precies een keer. Elke 404 blind herhalen zou het verkeer naar elk
92
+ // dood adres verdubbelen, en dat is niet aan ons om te doen.
93
+ if (resp.status === 405 || resp.status === 404) {
83
94
  const allow = resp.headers.get('allow') || resp.headers.get('Allow') || ''
84
95
  const genoemd = allow
85
96
  .split(',')
@@ -89,9 +100,11 @@ export async function meetEindpunt(url, { fetchImpl = fetch, methode = 'POST', l
89
100
  if (tweede) {
90
101
  r.bewijs.methode_opnieuw = {
91
102
  eerste: methode,
92
- eerste_status: 405,
103
+ eerste_status: resp.status,
93
104
  tweede,
94
- bron: genoemd.length ? 'Allow header' : 'guessed, the 405 carried no Allow header',
105
+ bron: genoemd.length
106
+ ? 'Allow header'
107
+ : 'guessed, the ' + resp.status + ' carried no Allow header',
95
108
  }
96
109
  resp = await vraag(tweede)
97
110
  gebruikteMethode = tweede