@seedprotocol/arweave 0.7.6-next.949.g73caafc → 0.7.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/index.js CHANGED
@@ -1,26 +1,26 @@
1
- import { C as e, S as t, _ as n, a as r, b as i, c as a, d as o, f as s, g as c, h as l, i as ee, l as te, m as ne, n as re, o as ie, p as ae, r as u, s as oe, t as se, u as ce, v as le, w as ue, x as d, y as de } from "./queries-t-LwBKFl.js";
1
+ import { $ as e, A as t, B as n, C as r, D as i, E as a, F as o, G as s, H as c, I as l, J as ee, K as te, L as ne, M as re, N as ie, O as ae, P as oe, Q as se, R as ce, S as u, T as d, U as le, V as ue, W as de, X as fe, Y as pe, Z as me, _ as he, a as ge, b as _e, c as f, d as p, et as m, f as h, g, h as _, i as v, j as y, k as b, l as x, m as S, n as C, nt as w, o as T, p as E, q as D, r as O, rt as k, s as A, t as j, tt as M, u as N, v as P, w as F, x as I, y as ve, z as ye } from "./transactionStatus-BpYIaQyY.js";
2
2
  //#region src/easAttestationUrl.ts
3
- var fe = /(^|\.)easscan\.(org|xyz)$/i;
4
- function f(e) {
3
+ var L = /(^|\.)easscan\.(org|xyz)$/i;
4
+ function R(e) {
5
5
  let t = e.trim();
6
6
  if (!t) return !1;
7
7
  try {
8
8
  let e = new URL(t);
9
- return fe.test(e.hostname) ? /\/attestation\/view\//i.test(e.pathname) : !1;
9
+ return L.test(e.hostname) ? /\/attestation\/view\//i.test(e.pathname) : !1;
10
10
  } catch {
11
11
  return !1;
12
12
  }
13
13
  }
14
14
  //#endregion
15
15
  //#region src/relationSeedRef.ts
16
- function pe(e) {
16
+ function be(e) {
17
17
  let t = {
18
18
  localId: void 0,
19
19
  uid: void 0
20
20
  };
21
21
  return e && (e.length === 10 && (t.localId = e), e.startsWith("0x") && e.length === 66 && (t.uid = e)), t;
22
22
  }
23
- function p(e) {
23
+ function z(e) {
24
24
  if (e != null) {
25
25
  if (typeof e == "string") {
26
26
  let t = e.trim();
@@ -33,35 +33,35 @@ function p(e) {
33
33
  }
34
34
  }
35
35
  }
36
- var me = /^[a-zA-Z0-9_-]{10,21}$/;
37
- function m(e) {
38
- let t = pe(e);
36
+ var xe = /^[a-zA-Z0-9_-]{10,21}$/;
37
+ function B(e) {
38
+ let t = be(e);
39
39
  return t.localId || t.uid ? {
40
40
  seedLocalId: t.localId,
41
41
  seedUid: t.uid
42
- } : me.test(e) && !e.startsWith("0x") ? { seedLocalId: e } : {};
42
+ } : xe.test(e) && !e.startsWith("0x") ? { seedLocalId: e } : {};
43
43
  }
44
44
  //#endregion
45
45
  //#region src/mediaRef.ts
46
- var he = /^[a-zA-Z0-9_-]{43}$/;
47
- function ge(e) {
46
+ var Se = /^[a-zA-Z0-9_-]{43}$/;
47
+ function Ce(e) {
48
48
  return e == null ? "" : typeof e == "string" ? e.trim() : String(e).trim();
49
49
  }
50
- function h(e, t) {
50
+ function V(e, t) {
51
51
  let n = e[t];
52
52
  return n == null ? "" : typeof n == "string" ? n.trim() : typeof n == "number" || typeof n == "boolean" ? String(n) : "";
53
53
  }
54
- function _e(e) {
54
+ function we(e) {
55
55
  let t = e.trim();
56
56
  if (!t) return t;
57
57
  try {
58
- let e = p(JSON.parse(t));
58
+ let e = z(JSON.parse(t));
59
59
  if (e) return e;
60
60
  } catch {}
61
61
  return t;
62
62
  }
63
- function g(e, t) {
64
- let n = ge(e);
63
+ function H(e, t) {
64
+ let n = Ce(e);
65
65
  if (!n) return { kind: "empty" };
66
66
  let r = t?.treatAs;
67
67
  if (r === "url") return {
@@ -79,14 +79,14 @@ function g(e, t) {
79
79
  kind: "unknown",
80
80
  raw: n
81
81
  };
82
- if (n.startsWith("http://") || n.startsWith("https://") || n.startsWith("blob:") || n.startsWith("data:")) return f(n) ? {
82
+ if (n.startsWith("http://") || n.startsWith("https://") || n.startsWith("blob:") || n.startsWith("data:")) return R(n) ? {
83
83
  kind: "nonMediaUrl",
84
84
  href: n
85
85
  } : {
86
86
  kind: "url",
87
87
  href: n
88
88
  };
89
- let i = _e(n), a = m(i);
89
+ let i = we(n), a = B(i);
90
90
  return a.seedUid ? {
91
91
  kind: "seedUid",
92
92
  uid: a.seedUid
@@ -96,7 +96,7 @@ function g(e, t) {
96
96
  } : i.startsWith("0x") && i.length === 66 ? {
97
97
  kind: "seedUid",
98
98
  uid: i
99
- } : he.test(i) && !i.startsWith("0x") ? {
99
+ } : Se.test(i) && !i.startsWith("0x") ? {
100
100
  kind: "arweaveTxId",
101
101
  txId: i
102
102
  } : {
@@ -104,25 +104,25 @@ function g(e, t) {
104
104
  raw: n
105
105
  };
106
106
  }
107
- function ve(e, t) {
108
- let n = h(e, t);
107
+ function U(e, t) {
108
+ let n = V(e, t);
109
109
  if (n) return n;
110
110
  let r = t.replace(/[A-Z]/g, (e) => `_${e.toLowerCase()}`);
111
111
  if (r !== t) {
112
- let t = h(e, r);
112
+ let t = V(e, r);
113
113
  if (t) return t;
114
114
  }
115
115
  let i = t.split("_");
116
116
  if (i.length > 1) {
117
- let t = h(e, i[0] + i.slice(1).map((e) => e.charAt(0).toUpperCase() + e.slice(1)).join(""));
117
+ let t = V(e, i[0] + i.slice(1).map((e) => e.charAt(0).toUpperCase() + e.slice(1)).join(""));
118
118
  if (t) return t;
119
119
  }
120
120
  return "";
121
121
  }
122
- function ye(e, t) {
122
+ function Te(e, t) {
123
123
  let n = {};
124
124
  for (let [r, i] of Object.entries(t)) {
125
- let t = ve(e, r);
125
+ let t = U(e, r);
126
126
  if (!t) {
127
127
  n[r] = void 0;
128
128
  continue;
@@ -141,7 +141,7 @@ function ye(e, t) {
141
141
  };
142
142
  continue;
143
143
  }
144
- let a = g(t, { treatAs: i.treatAs });
144
+ let a = H(t, { treatAs: i.treatAs });
145
145
  n[r] = {
146
146
  role: i.role,
147
147
  raw: t,
@@ -150,12 +150,12 @@ function ye(e, t) {
150
150
  }
151
151
  return n;
152
152
  }
153
- function be(e) {
154
- return `${u.getBaseUrl()}/${e}`;
153
+ function Ee(e) {
154
+ return `${l.getBaseUrl()}/${e}`;
155
155
  }
156
156
  //#endregion
157
157
  //#region src/resolveSeedRssImageRelationRef.ts
158
- var xe = [
158
+ var W = [
159
159
  "featureImage",
160
160
  "feature_image",
161
161
  "image",
@@ -166,49 +166,49 @@ var xe = [
166
166
  "thumbnail_image",
167
167
  "thumbnailImage"
168
168
  ];
169
- function Se(e) {
169
+ function G(e) {
170
170
  return e == null ? "" : typeof e == "string" ? e.trim() : typeof e == "number" || typeof e == "boolean" ? String(e) : "";
171
171
  }
172
- function _(e, ...t) {
172
+ function K(e, ...t) {
173
173
  for (let n of t) {
174
- let t = Se(e[n]);
174
+ let t = G(e[n]);
175
175
  if (t) return t;
176
176
  }
177
177
  let n = t.map((e) => e.split(":").pop().toLowerCase());
178
178
  for (let [t, r] of Object.entries(e)) {
179
179
  let e = (t.includes(":") ? t.split(":").pop() : t).toLowerCase();
180
180
  if (n.some((t) => e === t.toLowerCase())) {
181
- let e = Se(r);
181
+ let e = G(r);
182
182
  if (e) return e;
183
183
  }
184
184
  }
185
185
  return "";
186
186
  }
187
- function v(e) {
187
+ function q(e) {
188
188
  let t = e.trim();
189
189
  if (t && !t.startsWith("0x")) try {
190
- return `${u.getBaseUrl()}/${t}`;
190
+ return `${l.getBaseUrl()}/${t}`;
191
191
  } catch {
192
192
  return;
193
193
  }
194
194
  }
195
- function Ce(e) {
195
+ function De(e) {
196
196
  let t = e.storageTransactionId?.trim();
197
197
  if (t) {
198
- let e = v(t);
198
+ let e = q(t);
199
199
  if (e) return e;
200
200
  }
201
201
  let n = e.arweaveUrl?.trim();
202
- if (n && !f(n)) return n;
202
+ if (n && !R(n)) return n;
203
203
  }
204
- function we(e) {
204
+ function Oe(e) {
205
205
  let t = e.trim();
206
- if (!t || f(t)) return;
207
- let n = g(t);
206
+ if (!t || R(t)) return;
207
+ let n = H(t);
208
208
  switch (n.kind) {
209
209
  case "url": return { mediaUrl: n.href };
210
210
  case "arweaveTxId": {
211
- let e = v(n.txId);
211
+ let e = q(n.txId);
212
212
  return {
213
213
  storageTransactionId: n.txId,
214
214
  ...e ? { mediaUrl: e } : {}
@@ -216,7 +216,7 @@ function we(e) {
216
216
  }
217
217
  case "seedUid": return { seedUid: n.uid };
218
218
  default: {
219
- let e = v(t);
219
+ let e = q(t);
220
220
  return e ? {
221
221
  storageTransactionId: t,
222
222
  mediaUrl: e
@@ -224,46 +224,46 @@ function we(e) {
224
224
  }
225
225
  }
226
226
  }
227
- function Te(e) {
228
- let t = _(e, "storageTransactionId", "storage_transaction_id"), n = _(e, "arweaveUrl", "arweave_url"), r = _(e, "seedUid", "SeedUid", "seed_uid"), i = _(e, "link", "Link"), a = Ce({
227
+ function ke(e) {
228
+ let t = K(e, "storageTransactionId", "storage_transaction_id"), n = K(e, "arweaveUrl", "arweave_url"), r = K(e, "seedUid", "SeedUid", "seed_uid"), i = K(e, "link", "Link"), a = De({
229
229
  storageTransactionId: t,
230
230
  arweaveUrl: n
231
- }) ?? (i && !f(i) ? i : void 0);
231
+ }) ?? (i && !R(i) ? i : void 0);
232
232
  if (t || n || r || a) return {
233
233
  ...t ? { storageTransactionId: t } : {},
234
- ...n && !f(n) ? { arweaveUrl: n } : {},
234
+ ...n && !R(n) ? { arweaveUrl: n } : {},
235
235
  ...r ? { seedUid: r } : {},
236
236
  ...a ? { mediaUrl: a } : {}
237
237
  };
238
238
  }
239
- function y(e) {
239
+ function J(e) {
240
240
  if (e != null) {
241
- if (typeof e == "string") return we(e);
241
+ if (typeof e == "string") return Oe(e);
242
242
  if (Array.isArray(e)) for (let t of e) {
243
- let e = y(t);
243
+ let e = J(t);
244
244
  if (e?.mediaUrl || e?.storageTransactionId || e?.seedUid) return e;
245
245
  }
246
- else if (typeof e == "object") return Te(e);
246
+ else if (typeof e == "object") return ke(e);
247
247
  }
248
248
  }
249
- function Ee(e, t = xe) {
249
+ function Ae(e, t = W) {
250
250
  for (let n of t) {
251
251
  if (!(n in e)) continue;
252
- let t = y(e[n]);
252
+ let t = J(e[n]);
253
253
  if (t) return t;
254
254
  }
255
255
  }
256
256
  //#endregion
257
257
  //#region src/ArweaveClient/transactionTagsByIds.ts
258
- var De = 100, Oe = "\n query GetTransactionsTagsByIds($ids: [ID!], $first: Int) {\n transactions(ids: $ids, first: $first) {\n edges {\n node {\n id\n tags {\n name\n value\n }\n }\n }\n }\n }\n";
259
- async function ke(e, t) {
258
+ var je = 100, Y = "\n query GetTransactionsTagsByIds($ids: [ID!], $first: Int) {\n transactions(ids: $ids, first: $first) {\n edges {\n node {\n id\n tags {\n name\n value\n }\n }\n }\n }\n }\n";
259
+ async function Me(e, t) {
260
260
  let n = /* @__PURE__ */ new Map(), r = Array.from(new Set(e.filter((e) => typeof e == "string" && e.trim())));
261
261
  if (r.length === 0) return n;
262
- let i = t?.client ?? u.getArweaveClient(), a = Math.max(1, Math.min(t?.batchSize ?? 100, 100));
262
+ let i = t?.client ?? l.getArweaveClient(), a = Math.max(1, Math.min(t?.batchSize ?? 100, 100));
263
263
  for (let e = 0; e < r.length; e += a) {
264
264
  let o = r.slice(e, e + a);
265
265
  try {
266
- let e = await i.request(Oe, {
266
+ let e = await i.request(Y, {
267
267
  ids: o,
268
268
  first: o.length
269
269
  });
@@ -281,168 +281,16 @@ async function ke(e, t) {
281
281
  return n;
282
282
  }
283
283
  //#endregion
284
- //#region src/gateway/gatewayCircuitBreaker.ts
285
- var Ae = 1, je = 6e4, b = Ae, x = je, S = /* @__PURE__ */ new Map();
286
- function C(e) {
287
- let t = e.trim();
288
- return t ? (t.startsWith("http://") ? t = t.slice(7) : t.startsWith("https://") && (t = t.slice(8)), t.replace(/\/$/, "").toLowerCase()) : "";
289
- }
290
- function w(e) {
291
- let t = S.get(e);
292
- return t || (t = {
293
- failures: 0,
294
- openedAt: null,
295
- halfOpenProbeInFlight: !1
296
- }, S.set(e, t)), t;
297
- }
298
- function T(e, t) {
299
- return e.openedAt == null ? "closed" : t - e.openedAt >= x ? "half-open" : "open";
300
- }
301
- function Me(e) {
302
- e.failureThreshold != null && e.failureThreshold >= 1 && (b = e.failureThreshold), e.openDurationMs != null && e.openDurationMs >= 0 && (x = e.openDurationMs);
303
- }
304
- function E() {
305
- S.clear(), b = Ae, x = je;
306
- }
307
- function D(e, t = Date.now()) {
308
- let n = C(e);
309
- if (!n) return !1;
310
- let r = S.get(n);
311
- if (!r) return !1;
312
- let i = T(r, t);
313
- return !!(i === "open" || i === "half-open" && r.halfOpenProbeInFlight);
314
- }
315
- function Ne(e, t = Date.now()) {
316
- let n = C(e);
317
- if (!n) return "closed";
318
- let r = S.get(n);
319
- return r ? T(r, t) : "closed";
320
- }
321
- function O(e, t = Date.now()) {
322
- let n = C(e);
323
- if (!n) return;
324
- let r = w(n);
325
- T(r, t) === "half-open" && (r.halfOpenProbeInFlight = !0);
326
- }
327
- function k(e) {
328
- let t = C(e);
329
- t && S.set(t, {
330
- failures: 0,
331
- openedAt: null,
332
- halfOpenProbeInFlight: !1
333
- });
334
- }
335
- function A(e, t = Date.now()) {
336
- let n = C(e);
337
- if (!n) return;
338
- let r = w(n);
339
- r.failures += 1, r.halfOpenProbeInFlight = !1, r.failures >= b && (r.openedAt = t);
340
- }
341
- function Pe(e = Date.now()) {
342
- let t = [];
343
- for (let n of S.keys()) D(n, e) && t.push(n);
344
- return t;
345
- }
346
- //#endregion
347
- //#region src/ArweaveClient/selectReadGateway.ts
348
- var j = 18e4, Fe = 6e4, Ie = 5e3, M = null, N = null, P = null;
349
- function F() {
350
- M = null, N = null;
351
- }
352
- function Le() {
353
- F(), P = null, E(), u.resetReadGatewaySelectionStateForTests(), u.isReadGatewayLocked() || u.setPreferredReadGateway(l);
354
- }
355
- function Re() {
356
- return u.isReadGatewayLocked() ? !0 : M && Date.now() < M.expiresAt ? M.healthy : P != null;
357
- }
358
- function ze() {
359
- return P;
360
- }
361
- async function I(e, t) {
362
- let n = `${e.replace(/\/$/, "")}/info`, r = e;
363
- try {
364
- r = new URL(e.includes("://") ? e : `https://${e}`).host;
365
- } catch {
366
- r = e.replace(/^https?:\/\//, "").replace(/\/$/, "");
367
- }
368
- if (D(r)) return !1;
369
- O(r);
370
- let i, a = new AbortController(), o = t ?? a.signal;
371
- t || (i = setTimeout(() => a.abort(), Ie));
372
- try {
373
- let e = await fetch(n, {
374
- method: "GET",
375
- signal: o,
376
- headers: { Accept: "application/json" }
377
- });
378
- if (!e.ok) return A(r), !1;
379
- let t = await e.text();
380
- if (!t.trim()) return A(r), !1;
381
- try {
382
- let e = JSON.parse(t), n = typeof e == "object" && !!e;
383
- return n ? k(r) : A(r), n;
384
- } catch {
385
- return A(r), !1;
386
- }
387
- } catch {
388
- return A(r), !1;
389
- } finally {
390
- i && clearTimeout(i);
391
- }
392
- }
393
- async function L(e, t = "https", n) {
394
- for (let r of e) {
395
- let e = r.trim().replace(/\/$/, "");
396
- if (e && !D(e) && await I(`${t}://${e}`, n)) return e;
397
- }
398
- return null;
399
- }
400
- function Be() {
401
- return i(u.getHost());
402
- }
403
- async function R(e) {
404
- if (u.isReadGatewayLocked()) return u.getHost();
405
- if (M && Date.now() < M.expiresAt) return M.host;
406
- if (N) return N;
407
- N = (async () => {
408
- let t = await L(Be(), u.getProtocol(), e);
409
- if (u.isReadGatewayLocked()) M = {
410
- host: u.getHost(),
411
- healthy: !0,
412
- expiresAt: Date.now() + j
413
- };
414
- else if (t) u.applyProbedReadGateway(t), P = t, M = {
415
- host: t,
416
- healthy: !0,
417
- expiresAt: Date.now() + j
418
- };
419
- else {
420
- let e = P ?? u.getHost();
421
- P && u.getHost() !== P && u.applyProbedReadGateway(P), M = {
422
- host: e,
423
- healthy: !1,
424
- expiresAt: Date.now() + Fe
425
- };
426
- }
427
- return M.host;
428
- })();
429
- try {
430
- return await N;
431
- } finally {
432
- N = null;
433
- }
434
- }
435
- //#endregion
436
284
  //#region src/ArweaveClient/uploadApiVerification.ts
437
- function z(e) {
285
+ function X(e) {
438
286
  return e.trim().replace(/\/+$/, "");
439
287
  }
440
- function B(e, t) {
441
- return `${z(e)}/api/upload/arweave/data/${encodeURIComponent(t)}`;
288
+ function Z(e, t) {
289
+ return `${X(e)}/api/upload/arweave/data/${encodeURIComponent(t)}`;
442
290
  }
443
- var Ve = 45e3;
444
- async function He(e, t, n) {
445
- let r = B(e, t), i = n?.timeoutMs ?? Ve, a = new AbortController(), o = setTimeout(() => a.abort(), i);
291
+ var Ne = 45e3;
292
+ async function Pe(e, t, n) {
293
+ let r = Z(e, t), i = n?.timeoutMs ?? Ne, a = new AbortController(), o = setTimeout(() => a.abort(), i);
446
294
  try {
447
295
  let e = await fetch(r, { signal: a.signal });
448
296
  return clearTimeout(o), e.status === 404 ? {
@@ -467,16 +315,16 @@ async function He(e, t, n) {
467
315
  }
468
316
  //#endregion
469
317
  //#region src/ArweaveClient/arweaveL1UploadApi.ts
470
- var Ue = "\n query ArweaveGatewayTransaction($id: String!) {\n transaction(id: $id) {\n id\n bundledIn {\n id\n }\n block {\n height\n timestamp\n }\n }\n }\n";
471
- function V(e, t) {
472
- return `${z(e)}/api/upload/arweave/status/${encodeURIComponent(t)}`;
318
+ var Fe = "\n query ArweaveGatewayTransaction($id: String!) {\n transaction(id: $id) {\n id\n bundledIn {\n id\n }\n block {\n height\n timestamp\n }\n }\n }\n";
319
+ function Q(e, t) {
320
+ return `${X(e)}/api/upload/arweave/status/${encodeURIComponent(t)}`;
473
321
  }
474
- function We(e) {
322
+ function Ie(e) {
475
323
  let t = e.l1;
476
324
  return t ? t.meetsMinConfirmations === !0 || t.confirmed === !0 : !1;
477
325
  }
478
- async function Ge(e, t) {
479
- let n = V(e, t);
326
+ async function Le(e, t) {
327
+ let n = Q(e, t);
480
328
  try {
481
329
  let e = await fetch(n);
482
330
  if (!e.ok) return null;
@@ -486,7 +334,7 @@ async function Ge(e, t) {
486
334
  return null;
487
335
  }
488
336
  }
489
- async function H(e, t, n) {
337
+ async function $(e, t, n) {
490
338
  let r = e.trim();
491
339
  if (!r) return null;
492
340
  try {
@@ -494,7 +342,7 @@ async function H(e, t, n) {
494
342
  method: "POST",
495
343
  headers: { "Content-Type": "application/json" },
496
344
  body: JSON.stringify({
497
- query: Ue,
345
+ query: Fe,
498
346
  variables: { id: t }
499
347
  }),
500
348
  signal: n?.signal
@@ -518,215 +366,26 @@ async function H(e, t, n) {
518
366
  return null;
519
367
  }
520
368
  }
521
- async function Ke(e, t, n) {
522
- let r = d(), a = e?.trim(), o = "https", s = null;
369
+ async function Re(t, n, r) {
370
+ let i = m(), a = t?.trim(), o = "https", s = null;
523
371
  if (a) try {
524
372
  let e = new URL(a);
525
373
  o = e.protocol === "http:" ? "http" : "https", s = e.hostname || null;
526
374
  } catch {
527
375
  s = null;
528
376
  }
529
- let c = s && s.length > 0 ? i(s) : [...r], l = n?.signal;
377
+ let c = s && s.length > 0 ? e(s) : [...i], l = r?.signal;
530
378
  for (let e of c) {
531
- if (!await I(`${o}://${e}`, l ?? void 0)) continue;
532
- let r = await H(`${o}://${e}/graphql`, t, n);
533
- if (r !== null) return r;
379
+ let t = `${o}://${e}`;
380
+ if (!await u(t, l ?? void 0)) continue;
381
+ let i = await $(`${o}://${e}/graphql`, n, r);
382
+ if (i !== null) return i;
534
383
  }
535
384
  return null;
536
385
  }
537
386
  //#endregion
538
- //#region src/gateway/resolveSeedGatewayEndpoints.ts
539
- var U = 18e4, W = null, G = /* @__PURE__ */ new Map();
540
- function K() {
541
- W = null, G.clear();
542
- }
543
- function qe(e) {
544
- let t = (e ?? "ar.seedprotocol.io").trim();
545
- return t.startsWith("http://") ? {
546
- protocol: "http",
547
- host: t.slice(7).replace(/\/$/, "")
548
- } : t.startsWith("https://") ? {
549
- protocol: "https",
550
- host: t.slice(8).replace(/\/$/, "")
551
- } : {
552
- protocol: "https",
553
- host: t.replace(/\/$/, "")
554
- };
555
- }
556
- function Je(e) {
557
- let t = e.hyper?.localSidecarHost?.trim() || "127.0.0.1", n = e.hyper?.localSidecarPort ?? 1984;
558
- return {
559
- host: n === 80 || n === 443 ? t : `${t}:${n}`,
560
- port: n,
561
- baseUrl: `http://${t}:${n}`
562
- };
563
- }
564
- function Ye() {
565
- try {
566
- let e = globalThis.window?.location?.origin;
567
- return typeof e == "string" && e.length > 0 ? e.replace(/\/$/, "") : void 0;
568
- } catch {
569
- return;
570
- }
571
- }
572
- function q(e, t) {
573
- let n = e.trim();
574
- if (!n) throw Error("proxyBaseUrl is empty");
575
- if (n.startsWith("http://") || n.startsWith("https://")) return n.replace(/\/$/, "");
576
- if (n.startsWith("/")) {
577
- let r = (t?.origin?.trim() || Ye() || "").replace(/\/$/, "");
578
- if (!r) throw Error(`Relative proxyBaseUrl "${e}" requires a browser origin or resolve options.origin`);
579
- return `${r}${n.replace(/\/$/, "")}`;
580
- }
581
- return `https://${n.replace(/\/$/, "")}`;
582
- }
583
- async function J(e, t, n) {
584
- let r = Date.now();
585
- if (t === "sidecar") {
586
- if (W && r < W.expiresAt) return W.healthy;
587
- let t = await I(e, n);
588
- return W = {
589
- healthy: t,
590
- expiresAt: r + U
591
- }, t;
592
- }
593
- let i = G.get(t);
594
- if (i && r < i.expiresAt) return i.healthy;
595
- let a = await I(e, n);
596
- return G.set(t, {
597
- healthy: a,
598
- expiresAt: r + U
599
- }), a;
600
- }
601
- function Xe(e) {
602
- let { host: t, protocol: n } = qe(e.arweaveDomain), r = `${n}://${t}`, i = e.uploadApiBaseUrl?.trim() || r;
603
- return {
604
- mode: e.transport ?? "http-gateway",
605
- arweaveHost: t,
606
- arweaveProtocol: n,
607
- arweaveBaseUrl: r,
608
- arweaveGraphqlUrl: `${n}://${t}/graphql`,
609
- uploadApiBaseUrl: i,
610
- activePath: "http",
611
- gatewayHyperKey: e.hyper?.gatewayHyperKey?.trim() || void 0
612
- };
613
- }
614
- function Ze(e) {
615
- let t = Je(e), n = e.hyper?.gatewayHyperKey?.trim();
616
- return {
617
- mode: "hyper",
618
- arweaveHost: t.host,
619
- arweaveProtocol: "http",
620
- arweaveBaseUrl: t.baseUrl,
621
- arweaveGraphqlUrl: `${t.baseUrl}/graphql`,
622
- uploadApiBaseUrl: t.baseUrl,
623
- activePath: "hyper-sidecar",
624
- gatewayHyperKey: n || void 0
625
- };
626
- }
627
- function Qe(e, t) {
628
- let n = new URL(t), r = n.protocol === "http:" ? "http" : "https", i = n.pathname.replace(/\/$/, ""), a = i ? `${n.host}${i}` : n.host, o = `${r}://${a}`;
629
- return {
630
- mode: e.transport ?? "http-gateway",
631
- arweaveHost: a,
632
- arweaveProtocol: r,
633
- arweaveBaseUrl: o,
634
- arweaveGraphqlUrl: `${o}/graphql`,
635
- uploadApiBaseUrl: o,
636
- activePath: "http-proxy",
637
- gatewayHyperKey: e.hyper?.gatewayHyperKey?.trim() || void 0,
638
- proxyBaseUrl: t
639
- };
640
- }
641
- async function $e(e, t) {
642
- let n = e.proxyBaseUrl?.trim();
643
- if (!n) return null;
644
- let r = q(n, { origin: t?.origin });
645
- return e.hyper?.probeSidecar !== !1 && !await J(r, `proxy:${r}`, t?.signal) ? null : Qe(e, r);
646
- }
647
- async function et(e, t) {
648
- t?.forceSidecarProbe && K();
649
- let n = e.transport ?? "http-gateway", r = e.hyper?.probeSidecar !== !1;
650
- if (n === "http-gateway") {
651
- if (e.proxyBaseUrl?.trim()) {
652
- let i = q(e.proxyBaseUrl, { origin: t?.origin });
653
- if (r && !await J(i, `proxy:${i}`, t?.signal)) throw Error(`Gateway HTTP proxy not reachable at ${i}. Ensure your Node route runs createGatewayProxy (or equivalent) and mounts at proxyBaseUrl.`);
654
- return Qe({
655
- ...e,
656
- transport: n
657
- }, i);
658
- }
659
- return Xe({
660
- ...e,
661
- transport: n
662
- });
663
- }
664
- if (n === "hyper") {
665
- let i = await $e({
666
- ...e,
667
- transport: n
668
- }, t);
669
- if (i) return i;
670
- let a = Ze({
671
- ...e,
672
- transport: n
673
- });
674
- if (r && !await J(a.arweaveBaseUrl, "sidecar", t?.signal)) throw Error(`Gateway Hyper sidecar not reachable at ${a.arweaveBaseUrl}. Run: seed-gateway connect <operator-z32-key> — or configure gateway.proxyBaseUrl for an app-server proxy.`);
675
- return a;
676
- }
677
- let i = await $e({
678
- ...e,
679
- transport: n
680
- }, t);
681
- if (i) return i;
682
- let a = Je(e);
683
- return r && await J(a.baseUrl, "sidecar", t?.signal) ? Ze({
684
- ...e,
685
- transport: "hyper"
686
- }) : {
687
- ...Xe({
688
- ...e,
689
- transport: "http-gateway"
690
- }),
691
- mode: "hybrid",
692
- activePath: "hybrid-fallback-http"
693
- };
694
- }
695
- function tt(e, t) {
696
- return e.activePath === "hyper-sidecar" || e.activePath === "http-proxy" ? [e.arweaveHost] : i(e.arweaveHost);
697
- }
698
- //#endregion
699
- //#region src/gateway/gatewayState.ts
700
- var nt = null;
701
- function Y() {
702
- return nt;
703
- }
704
- function rt(e) {
705
- nt = e;
706
- }
707
- var it = [];
708
- function X() {
709
- return it;
710
- }
711
- function at(e) {
712
- let t = [], n = /* @__PURE__ */ new Set();
713
- for (let r of e) {
714
- let e = r?.trim();
715
- if (!e) continue;
716
- let i;
717
- try {
718
- let t = new URL(/^https?:\/\//i.test(e) ? e : q(e));
719
- i = `${t.origin}${t.pathname.replace(/\/+$/, "")}`;
720
- } catch {
721
- continue;
722
- }
723
- n.has(i) || (n.add(i), t.push(i));
724
- }
725
- it = t;
726
- }
727
- //#endregion
728
387
  //#region src/gateway/seedGatewayConfig.ts
729
- function ot(e) {
388
+ function ze(e) {
730
389
  let t = e.gateway ?? {};
731
390
  return {
732
391
  transport: t.transport,
@@ -742,7 +401,7 @@ function ot(e) {
742
401
  }
743
402
  };
744
403
  }
745
- function st(e) {
404
+ function Be(e) {
746
405
  return {
747
406
  transport: e.gatewayTransport,
748
407
  arweaveDomain: e.arweaveDomain,
@@ -756,63 +415,6 @@ function st(e) {
756
415
  };
757
416
  }
758
417
  //#endregion
759
- //#region src/gateway/readBaseUrls.ts
760
- var ct = 1e4;
761
- function Z(e, t, n) {
762
- let r = n.trim().replace(/\/$/, "");
763
- r && !t.has(r) && (t.add(r), e.push(r));
764
- }
765
- function Q(e) {
766
- let t = Y(), n = u.getProtocol(), r = t ? tt(t) : e?.fallbackHosts?.length ? [...e.fallbackHosts] : i(u.getHost()), a = [], o = /* @__PURE__ */ new Set();
767
- for (let e of r) {
768
- let t = e.trim();
769
- t && Z(a, o, /^https?:\/\//i.test(t) ? t : `${n}://${t}`);
770
- }
771
- return a;
772
- }
773
- function lt(e) {
774
- let t = [], n = /* @__PURE__ */ new Set();
775
- for (let e of X()) Z(t, n, e);
776
- for (let r of Q(e)) Z(t, n, r);
777
- return t;
778
- }
779
- async function ut() {
780
- try {
781
- let e = Y();
782
- if (e && (e.activePath === "hyper-sidecar" || e.activePath === "http-proxy")) return;
783
- await R();
784
- } catch {}
785
- }
786
- async function $(e, t, n) {
787
- let r = new AbortController(), i = setTimeout(() => r.abort(), n?.timeoutMs ?? 1e4);
788
- try {
789
- let n = await fetch(`${e.replace(/\/$/, "")}/raw/${encodeURIComponent(t)}`, {
790
- method: "GET",
791
- credentials: "omit",
792
- signal: r.signal
793
- });
794
- return n.ok ? n : void 0;
795
- } catch {
796
- return;
797
- } finally {
798
- clearTimeout(i);
799
- }
800
- }
801
- async function dt(e, t) {
802
- let n = /* @__PURE__ */ new Set(), r = async (r) => {
803
- for (let i of r) {
804
- if (n.has(i)) continue;
805
- n.add(i);
806
- let r = await $(i, e, t);
807
- if (r) try {
808
- let { bytes: t } = await te(r, { transactionId: e }), n = new TextDecoder().decode(t);
809
- if (n.length > 0) return n;
810
- } catch {}
811
- }
812
- };
813
- return await r(X()) || (await ut(), r(Q(t)));
814
- }
815
- //#endregion
816
- export { s as ARWEAVE_HOST_ENV_KEYS, u as ArweaveClient, u as BaseArweaveClient, ae as DEFAULT_ARWEAVE_GATEWAYS, ne as DEFAULT_ARWEAVE_GRAPHQL_URL, l as DEFAULT_ARWEAVE_HOST, ct as DEFAULT_ARWEAVE_RAW_READ_TIMEOUT_MS, c as DEFAULT_GATEWAY_SIDECAR_HOST, n as DEFAULT_GATEWAY_SIDECAR_PORT, le as DEFAULT_SEED_FEED_HYPER_KEY, de as DEFAULT_SEED_GATEWAY_HYPER_KEY, ee as DuplicateArweaveModuleError, se as GET_ARWEAVE_TRANSACTIONS, Oe as GET_TRANSACTIONS_TAGS_BY_IDS, re as GET_TRANSACTION_TAGS, xe as SEED_RSS_IMAGE_RELATION_FIELD_KEYS, De as TRANSACTION_TAGS_BATCH_SIZE, r as assertSingleArweaveModule, O as beginGatewayHostHalfOpenProbe, g as classifyMediaRef, Me as configureGatewayCircuitBreaker, ut as ensureArweaveReadGatewayForFallback, R as ensureReadGatewaySelected, $ as fetchArweaveRawFromBaseUrl, dt as fetchArweaveRawTextAcrossGateways, lt as getArweaveReadBaseUrls, i as getArweaveReadGatewayHostsForPrimary, Ge as getArweaveUploadStatus, be as getArweaveUrlForTransaction, d as getDefaultArweaveReadGatewayHostsOrdered, ve as getFeedItemStringField, Ne as getGatewayHostCircuitState, ze as getLastHealthyReadGatewayHost, X as getPreferredArweaveReadBaseUrls, tt as getReadGatewayHostsForConfig, Q as getResolvedArweaveReadBaseUrls, Y as getResolvedSeedGatewayEndpoints, oe as getResponseMediaType, ke as getTransactionTagsByIds, B as getUploadApiArweaveDataUrl, V as getUploadApiArweaveStatusUrl, He as getUploadPipelineTransactionStatus, a as hasArweaveContentReadTransform, F as invalidateReadGatewayCache, K as invalidateSidecarProbeCache, We as isArweaveL1AnchoringComplete, f as isEasAttestationExplorerUrl, D as isGatewayHostCircuitOpen, t as isKnownArweaveGatewayHostname, Re as isReadGatewayKnownHealthy, Pe as listOpenGatewayCircuitHosts, e as mergePrimaryHostWithDefaults, ye as normalizeFeedItemFields, C as normalizeGatewayHostKey, p as normalizeRelationPropertyValue, z as normalizeUploadApiBaseUrl, I as probeGateway, H as queryArweaveGatewayTransaction, Ke as queryArweaveGatewayTransactionWithFallback, te as readArweaveContentResponse, A as recordGatewayHostFailure, k as recordGatewayHostSuccess, ie as resetArweaveClientOwnerForTests, Le as resetArweaveReadGatewayForTests, E as resetGatewayCircuitBreakerForTests, ue as resolveArweaveHostFromEnv, q as resolveProxyBaseUrl, et as resolveSeedGatewayEndpoints, m as resolveSeedIdsFromRefString, Ee as resolveSeedRssImageRelationFromItem, y as resolveSeedRssImageRelationRef, st as seedGatewayConfigFromClientContext, ot as seedGatewayConfigFromSeedConfig, L as selectFirstHealthyReadGateway, ce as setArweaveContentReadTransform, at as setPreferredArweaveReadBaseUrls, rt as setResolvedSeedGatewayEndpoints, o as transformArweaveContent };
418
+ export { s as ARWEAVE_HOST_ENV_KEYS, l as ArweaveClient, l as BaseArweaveClient, te as DEFAULT_ARWEAVE_GATEWAYS, D as DEFAULT_ARWEAVE_GRAPHQL_URL, ee as DEFAULT_ARWEAVE_HOST, v as DEFAULT_ARWEAVE_RAW_READ_TIMEOUT_MS, pe as DEFAULT_GATEWAY_SIDECAR_HOST, fe as DEFAULT_GATEWAY_SIDECAR_PORT, me as DEFAULT_SEED_FEED_HYPER_KEY, se as DEFAULT_SEED_GATEWAY_HYPER_KEY, j as DEFAULT_TRANSACTION_STATUS_TIMEOUT_MS, C as DEFAULT_TRANSACTION_STATUS_TOTAL_TIMEOUT_MS, ne as DuplicateArweaveModuleError, oe as GET_ARWEAVE_TRANSACTIONS, Y as GET_TRANSACTIONS_TAGS_BY_IDS, o as GET_TRANSACTION_TAGS, W as SEED_RSS_IMAGE_RELATION_FIELD_KEYS, je as TRANSACTION_TAGS_BATCH_SIZE, ce as assertSingleArweaveModule, d as beginGatewayHostHalfOpenProbe, H as classifyMediaRef, a as configureGatewayCircuitBreaker, ge as ensureArweaveReadGatewayForFallback, P as ensureReadGatewaySelected, T as fetchArweaveRawFromBaseUrl, A as fetchArweaveRawTextAcrossGateways, O as fetchTransactionStatusAcrossGateways, f as getArweaveReadBaseUrls, e as getArweaveReadGatewayHostsForPrimary, Le as getArweaveUploadStatus, Ee as getArweaveUrlForTransaction, m as getDefaultArweaveReadGatewayHostsOrdered, U as getFeedItemStringField, i as getGatewayHostCircuitState, ve as getLastHealthyReadGatewayHost, N as getPreferredArweaveReadBaseUrls, S as getReadGatewayHostsForConfig, x as getResolvedArweaveReadBaseUrls, p as getResolvedSeedGatewayEndpoints, n as getResponseMediaType, Me as getTransactionTagsByIds, Z as getUploadApiArweaveDataUrl, Q as getUploadApiArweaveStatusUrl, Pe as getUploadPipelineTransactionStatus, ue as hasArweaveContentReadTransform, _e as invalidateReadGatewayCache, _ as invalidateSidecarProbeCache, Ie as isArweaveL1AnchoringComplete, R as isEasAttestationExplorerUrl, ae as isGatewayHostCircuitOpen, M as isKnownArweaveGatewayHostname, I as isReadGatewayKnownHealthy, b as listOpenGatewayCircuitHosts, w as mergePrimaryHostWithDefaults, Te as normalizeFeedItemFields, t as normalizeGatewayHostKey, z as normalizeRelationPropertyValue, X as normalizeUploadApiBaseUrl, u as probeGateway, $ as queryArweaveGatewayTransaction, Re as queryArweaveGatewayTransactionWithFallback, c as readArweaveContentResponse, y as recordGatewayHostFailure, re as recordGatewayHostSuccess, ye as resetArweaveClientOwnerForTests, r as resetArweaveReadGatewayForTests, ie as resetGatewayCircuitBreakerForTests, k as resolveArweaveHostFromEnv, g as resolveProxyBaseUrl, he as resolveSeedGatewayEndpoints, B as resolveSeedIdsFromRefString, Ae as resolveSeedRssImageRelationFromItem, J as resolveSeedRssImageRelationRef, Be as seedGatewayConfigFromClientContext, ze as seedGatewayConfigFromSeedConfig, F as selectFirstHealthyReadGateway, le as setArweaveContentReadTransform, h as setPreferredArweaveReadBaseUrls, E as setResolvedSeedGatewayEndpoints, de as transformArweaveContent };
817
419
 
818
420
  //# sourceMappingURL=index.js.map