@seedprotocol/arweave 0.7.3 → 0.7.4-next.784.g879c6a3
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/ArweaveClient/BaseArweaveClient.d.ts.map +1 -1
- package/dist/constants.d.ts +1 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +199 -199
- package/dist/index.js.map +1 -1
- package/dist/moduleOwner.d.ts +10 -0
- package/dist/moduleOwner.d.ts.map +1 -0
- package/dist/node.js +1 -1
- package/dist/{queries-CYWn1SYL.js → queries-C1tDKPXL.js} +38 -20
- package/dist/queries-C1tDKPXL.js.map +1 -0
- package/package.json +1 -1
- package/dist/queries-CYWn1SYL.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import {
|
|
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-C1tDKPXL.js";
|
|
2
2
|
//#region src/easAttestationUrl.ts
|
|
3
|
-
var
|
|
4
|
-
function
|
|
3
|
+
var fe = /(^|\.)easscan\.(org|xyz)$/i;
|
|
4
|
+
function f(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
|
|
9
|
+
return fe.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
|
|
16
|
+
function pe(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
|
|
23
|
+
function p(e) {
|
|
24
24
|
if (e != null) {
|
|
25
25
|
if (typeof e == "string") {
|
|
26
26
|
let t = e.trim();
|
|
@@ -33,35 +33,35 @@ function m(e) {
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
var
|
|
37
|
-
function
|
|
38
|
-
let t =
|
|
36
|
+
var me = /^[a-zA-Z0-9_-]{10,21}$/;
|
|
37
|
+
function m(e) {
|
|
38
|
+
let t = pe(e);
|
|
39
39
|
return t.localId || t.uid ? {
|
|
40
40
|
seedLocalId: t.localId,
|
|
41
41
|
seedUid: t.uid
|
|
42
|
-
} :
|
|
42
|
+
} : me.test(e) && !e.startsWith("0x") ? { seedLocalId: e } : {};
|
|
43
43
|
}
|
|
44
44
|
//#endregion
|
|
45
45
|
//#region src/mediaRef.ts
|
|
46
|
-
var
|
|
47
|
-
function
|
|
46
|
+
var he = /^[a-zA-Z0-9_-]{43}$/;
|
|
47
|
+
function ge(e) {
|
|
48
48
|
return e == null ? "" : typeof e == "string" ? e.trim() : String(e).trim();
|
|
49
49
|
}
|
|
50
50
|
function h(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
|
|
54
|
+
function _e(e) {
|
|
55
55
|
let t = e.trim();
|
|
56
56
|
if (!t) return t;
|
|
57
57
|
try {
|
|
58
|
-
let e =
|
|
58
|
+
let e = p(JSON.parse(t));
|
|
59
59
|
if (e) return e;
|
|
60
60
|
} catch {}
|
|
61
61
|
return t;
|
|
62
62
|
}
|
|
63
63
|
function g(e, t) {
|
|
64
|
-
let n =
|
|
64
|
+
let n = ge(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
|
|
82
|
+
if (n.startsWith("http://") || n.startsWith("https://") || n.startsWith("blob:") || n.startsWith("data:")) return f(n) ? {
|
|
83
83
|
kind: "nonMediaUrl",
|
|
84
84
|
href: n
|
|
85
85
|
} : {
|
|
86
86
|
kind: "url",
|
|
87
87
|
href: n
|
|
88
88
|
};
|
|
89
|
-
let i =
|
|
89
|
+
let i = _e(n), a = m(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
|
-
} :
|
|
99
|
+
} : he.test(i) && !i.startsWith("0x") ? {
|
|
100
100
|
kind: "arweaveTxId",
|
|
101
101
|
txId: i
|
|
102
102
|
} : {
|
|
@@ -104,7 +104,7 @@ function g(e, t) {
|
|
|
104
104
|
raw: n
|
|
105
105
|
};
|
|
106
106
|
}
|
|
107
|
-
function
|
|
107
|
+
function ve(e, t) {
|
|
108
108
|
let n = h(e, t);
|
|
109
109
|
if (n) return n;
|
|
110
110
|
let r = t.replace(/[A-Z]/g, (e) => `_${e.toLowerCase()}`);
|
|
@@ -119,10 +119,10 @@ function he(e, t) {
|
|
|
119
119
|
}
|
|
120
120
|
return "";
|
|
121
121
|
}
|
|
122
|
-
function
|
|
122
|
+
function ye(e, t) {
|
|
123
123
|
let n = {};
|
|
124
124
|
for (let [r, i] of Object.entries(t)) {
|
|
125
|
-
let t =
|
|
125
|
+
let t = ve(e, r);
|
|
126
126
|
if (!t) {
|
|
127
127
|
n[r] = void 0;
|
|
128
128
|
continue;
|
|
@@ -150,12 +150,12 @@ function ge(e, t) {
|
|
|
150
150
|
}
|
|
151
151
|
return n;
|
|
152
152
|
}
|
|
153
|
-
function
|
|
154
|
-
return `${
|
|
153
|
+
function be(e) {
|
|
154
|
+
return `${u.getBaseUrl()}/${e}`;
|
|
155
155
|
}
|
|
156
156
|
//#endregion
|
|
157
157
|
//#region src/resolveSeedRssImageRelationRef.ts
|
|
158
|
-
var
|
|
158
|
+
var xe = [
|
|
159
159
|
"featureImage",
|
|
160
160
|
"feature_image",
|
|
161
161
|
"image",
|
|
@@ -166,19 +166,19 @@ var ve = [
|
|
|
166
166
|
"thumbnail_image",
|
|
167
167
|
"thumbnailImage"
|
|
168
168
|
];
|
|
169
|
-
function
|
|
169
|
+
function Se(e) {
|
|
170
170
|
return e == null ? "" : typeof e == "string" ? e.trim() : typeof e == "number" || typeof e == "boolean" ? String(e) : "";
|
|
171
171
|
}
|
|
172
172
|
function _(e, ...t) {
|
|
173
173
|
for (let n of t) {
|
|
174
|
-
let t =
|
|
174
|
+
let t = Se(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 =
|
|
181
|
+
let e = Se(r);
|
|
182
182
|
if (e) return e;
|
|
183
183
|
}
|
|
184
184
|
}
|
|
@@ -187,23 +187,23 @@ function _(e, ...t) {
|
|
|
187
187
|
function v(e) {
|
|
188
188
|
let t = e.trim();
|
|
189
189
|
if (t && !t.startsWith("0x")) try {
|
|
190
|
-
return `${
|
|
190
|
+
return `${u.getBaseUrl()}/${t}`;
|
|
191
191
|
} catch {
|
|
192
192
|
return;
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
|
-
function
|
|
195
|
+
function Ce(e) {
|
|
196
196
|
let t = e.storageTransactionId?.trim();
|
|
197
197
|
if (t) {
|
|
198
198
|
let e = v(t);
|
|
199
199
|
if (e) return e;
|
|
200
200
|
}
|
|
201
201
|
let n = e.arweaveUrl?.trim();
|
|
202
|
-
if (n && !
|
|
202
|
+
if (n && !f(n)) return n;
|
|
203
203
|
}
|
|
204
|
-
function
|
|
204
|
+
function we(e) {
|
|
205
205
|
let t = e.trim();
|
|
206
|
-
if (!t ||
|
|
206
|
+
if (!t || f(t)) return;
|
|
207
207
|
let n = g(t);
|
|
208
208
|
switch (n.kind) {
|
|
209
209
|
case "url": return { mediaUrl: n.href };
|
|
@@ -224,29 +224,29 @@ function xe(e) {
|
|
|
224
224
|
}
|
|
225
225
|
}
|
|
226
226
|
}
|
|
227
|
-
function
|
|
228
|
-
let t = _(e, "storageTransactionId", "storage_transaction_id"), n = _(e, "arweaveUrl", "arweave_url"), r = _(e, "seedUid", "SeedUid", "seed_uid"), i = _(e, "link", "Link"), a =
|
|
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({
|
|
229
229
|
storageTransactionId: t,
|
|
230
230
|
arweaveUrl: n
|
|
231
|
-
}) ?? (i && !
|
|
231
|
+
}) ?? (i && !f(i) ? i : void 0);
|
|
232
232
|
if (t || n || r || a) return {
|
|
233
233
|
...t ? { storageTransactionId: t } : {},
|
|
234
|
-
...n && !
|
|
234
|
+
...n && !f(n) ? { arweaveUrl: n } : {},
|
|
235
235
|
...r ? { seedUid: r } : {},
|
|
236
236
|
...a ? { mediaUrl: a } : {}
|
|
237
237
|
};
|
|
238
238
|
}
|
|
239
239
|
function y(e) {
|
|
240
240
|
if (e != null) {
|
|
241
|
-
if (typeof e == "string") return
|
|
241
|
+
if (typeof e == "string") return we(e);
|
|
242
242
|
if (Array.isArray(e)) for (let t of e) {
|
|
243
243
|
let e = y(t);
|
|
244
244
|
if (e?.mediaUrl || e?.storageTransactionId || e?.seedUid) return e;
|
|
245
245
|
}
|
|
246
|
-
else if (typeof e == "object") return
|
|
246
|
+
else if (typeof e == "object") return Te(e);
|
|
247
247
|
}
|
|
248
248
|
}
|
|
249
|
-
function
|
|
249
|
+
function Ee(e, t = xe) {
|
|
250
250
|
for (let n of t) {
|
|
251
251
|
if (!(n in e)) continue;
|
|
252
252
|
let t = y(e[n]);
|
|
@@ -255,15 +255,15 @@ function Ce(e, t = ve) {
|
|
|
255
255
|
}
|
|
256
256
|
//#endregion
|
|
257
257
|
//#region src/ArweaveClient/transactionTagsByIds.ts
|
|
258
|
-
var
|
|
259
|
-
async function
|
|
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) {
|
|
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 ??
|
|
262
|
+
let i = t?.client ?? u.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(
|
|
266
|
+
let e = await i.request(Oe, {
|
|
267
267
|
ids: o,
|
|
268
268
|
first: o.length
|
|
269
269
|
});
|
|
@@ -282,167 +282,167 @@ async function Te(e, t) {
|
|
|
282
282
|
}
|
|
283
283
|
//#endregion
|
|
284
284
|
//#region src/gateway/gatewayCircuitBreaker.ts
|
|
285
|
-
var
|
|
286
|
-
function
|
|
285
|
+
var Ae = 1, je = 6e4, b = Ae, x = je, S = /* @__PURE__ */ new Map();
|
|
286
|
+
function C(e) {
|
|
287
287
|
let t = e.trim();
|
|
288
288
|
return t ? (t.startsWith("http://") ? t = t.slice(7) : t.startsWith("https://") && (t = t.slice(8)), t.replace(/\/$/, "").toLowerCase()) : "";
|
|
289
289
|
}
|
|
290
|
-
function
|
|
291
|
-
let t =
|
|
290
|
+
function w(e) {
|
|
291
|
+
let t = S.get(e);
|
|
292
292
|
return t || (t = {
|
|
293
293
|
failures: 0,
|
|
294
294
|
openedAt: null,
|
|
295
295
|
halfOpenProbeInFlight: !1
|
|
296
|
-
},
|
|
296
|
+
}, S.set(e, t)), t;
|
|
297
297
|
}
|
|
298
|
-
function
|
|
299
|
-
return e.openedAt == null ? "closed" : t - e.openedAt >=
|
|
298
|
+
function T(e, t) {
|
|
299
|
+
return e.openedAt == null ? "closed" : t - e.openedAt >= x ? "half-open" : "open";
|
|
300
300
|
}
|
|
301
|
-
function
|
|
302
|
-
e.failureThreshold != null && e.failureThreshold >= 1 && (
|
|
301
|
+
function Me(e) {
|
|
302
|
+
e.failureThreshold != null && e.failureThreshold >= 1 && (b = e.failureThreshold), e.openDurationMs != null && e.openDurationMs >= 0 && (x = e.openDurationMs);
|
|
303
303
|
}
|
|
304
|
-
function
|
|
305
|
-
|
|
304
|
+
function E() {
|
|
305
|
+
S.clear(), b = Ae, x = je;
|
|
306
306
|
}
|
|
307
|
-
function
|
|
308
|
-
let n =
|
|
307
|
+
function D(e, t = Date.now()) {
|
|
308
|
+
let n = C(e);
|
|
309
309
|
if (!n) return !1;
|
|
310
|
-
let r =
|
|
310
|
+
let r = S.get(n);
|
|
311
311
|
if (!r) return !1;
|
|
312
|
-
let i =
|
|
312
|
+
let i = T(r, t);
|
|
313
313
|
return !!(i === "open" || i === "half-open" && r.halfOpenProbeInFlight);
|
|
314
314
|
}
|
|
315
|
-
function
|
|
316
|
-
let n =
|
|
315
|
+
function Ne(e, t = Date.now()) {
|
|
316
|
+
let n = C(e);
|
|
317
317
|
if (!n) return "closed";
|
|
318
|
-
let r =
|
|
319
|
-
return r ?
|
|
318
|
+
let r = S.get(n);
|
|
319
|
+
return r ? T(r, t) : "closed";
|
|
320
320
|
}
|
|
321
|
-
function
|
|
322
|
-
let n =
|
|
321
|
+
function O(e, t = Date.now()) {
|
|
322
|
+
let n = C(e);
|
|
323
323
|
if (!n) return;
|
|
324
|
-
let r =
|
|
325
|
-
|
|
324
|
+
let r = w(n);
|
|
325
|
+
T(r, t) === "half-open" && (r.halfOpenProbeInFlight = !0);
|
|
326
326
|
}
|
|
327
|
-
function
|
|
328
|
-
let t =
|
|
329
|
-
t &&
|
|
327
|
+
function k(e) {
|
|
328
|
+
let t = C(e);
|
|
329
|
+
t && S.set(t, {
|
|
330
330
|
failures: 0,
|
|
331
331
|
openedAt: null,
|
|
332
332
|
halfOpenProbeInFlight: !1
|
|
333
333
|
});
|
|
334
334
|
}
|
|
335
|
-
function
|
|
336
|
-
let n =
|
|
335
|
+
function A(e, t = Date.now()) {
|
|
336
|
+
let n = C(e);
|
|
337
337
|
if (!n) return;
|
|
338
|
-
let r =
|
|
339
|
-
r.failures += 1, r.halfOpenProbeInFlight = !1, r.failures >=
|
|
338
|
+
let r = w(n);
|
|
339
|
+
r.failures += 1, r.halfOpenProbeInFlight = !1, r.failures >= b && (r.openedAt = t);
|
|
340
340
|
}
|
|
341
|
-
function
|
|
341
|
+
function Pe(e = Date.now()) {
|
|
342
342
|
let t = [];
|
|
343
|
-
for (let n of
|
|
343
|
+
for (let n of S.keys()) D(n, e) && t.push(n);
|
|
344
344
|
return t;
|
|
345
345
|
}
|
|
346
346
|
//#endregion
|
|
347
347
|
//#region src/ArweaveClient/selectReadGateway.ts
|
|
348
|
-
var
|
|
349
|
-
function
|
|
350
|
-
|
|
348
|
+
var j = 18e4, Fe = 6e4, Ie = 5e3, M = null, N = null, P = null;
|
|
349
|
+
function F() {
|
|
350
|
+
M = null, N = null;
|
|
351
351
|
}
|
|
352
|
-
function
|
|
353
|
-
|
|
352
|
+
function Le() {
|
|
353
|
+
F(), P = null, E(), u.resetReadGatewaySelectionStateForTests(), u.isReadGatewayLocked() || u.setPreferredReadGateway(l);
|
|
354
354
|
}
|
|
355
|
-
function
|
|
356
|
-
return
|
|
355
|
+
function Re() {
|
|
356
|
+
return u.isReadGatewayLocked() ? !0 : M && Date.now() < M.expiresAt ? M.healthy : P != null;
|
|
357
357
|
}
|
|
358
|
-
function
|
|
359
|
-
return
|
|
358
|
+
function ze() {
|
|
359
|
+
return P;
|
|
360
360
|
}
|
|
361
|
-
async function
|
|
361
|
+
async function I(e, t) {
|
|
362
362
|
let n = `${e.replace(/\/$/, "")}/info`, r = e;
|
|
363
363
|
try {
|
|
364
364
|
r = new URL(e.includes("://") ? e : `https://${e}`).host;
|
|
365
365
|
} catch {
|
|
366
366
|
r = e.replace(/^https?:\/\//, "").replace(/\/$/, "");
|
|
367
367
|
}
|
|
368
|
-
if (
|
|
369
|
-
|
|
368
|
+
if (D(r)) return !1;
|
|
369
|
+
O(r);
|
|
370
370
|
let i, a = new AbortController(), o = t ?? a.signal;
|
|
371
|
-
t || (i = setTimeout(() => a.abort(),
|
|
371
|
+
t || (i = setTimeout(() => a.abort(), Ie));
|
|
372
372
|
try {
|
|
373
373
|
let e = await fetch(n, {
|
|
374
374
|
method: "GET",
|
|
375
375
|
signal: o,
|
|
376
376
|
headers: { Accept: "application/json" }
|
|
377
377
|
});
|
|
378
|
-
if (!e.ok) return
|
|
378
|
+
if (!e.ok) return A(r), !1;
|
|
379
379
|
let t = await e.text();
|
|
380
|
-
if (!t.trim()) return
|
|
380
|
+
if (!t.trim()) return A(r), !1;
|
|
381
381
|
try {
|
|
382
382
|
let e = JSON.parse(t), n = typeof e == "object" && !!e;
|
|
383
|
-
return n ?
|
|
383
|
+
return n ? k(r) : A(r), n;
|
|
384
384
|
} catch {
|
|
385
|
-
return
|
|
385
|
+
return A(r), !1;
|
|
386
386
|
}
|
|
387
387
|
} catch {
|
|
388
|
-
return
|
|
388
|
+
return A(r), !1;
|
|
389
389
|
} finally {
|
|
390
390
|
i && clearTimeout(i);
|
|
391
391
|
}
|
|
392
392
|
}
|
|
393
|
-
async function
|
|
393
|
+
async function L(e, t = "https", n) {
|
|
394
394
|
for (let r of e) {
|
|
395
395
|
let e = r.trim().replace(/\/$/, "");
|
|
396
|
-
if (e && !
|
|
396
|
+
if (e && !D(e) && await I(`${t}://${e}`, n)) return e;
|
|
397
397
|
}
|
|
398
398
|
return null;
|
|
399
399
|
}
|
|
400
|
-
function
|
|
401
|
-
return
|
|
402
|
-
}
|
|
403
|
-
async function
|
|
404
|
-
if (
|
|
405
|
-
if (
|
|
406
|
-
if (
|
|
407
|
-
|
|
408
|
-
let t = await
|
|
409
|
-
if (
|
|
410
|
-
host:
|
|
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
411
|
healthy: !0,
|
|
412
|
-
expiresAt: Date.now() +
|
|
412
|
+
expiresAt: Date.now() + j
|
|
413
413
|
};
|
|
414
|
-
else if (t)
|
|
414
|
+
else if (t) u.applyProbedReadGateway(t), P = t, M = {
|
|
415
415
|
host: t,
|
|
416
416
|
healthy: !0,
|
|
417
|
-
expiresAt: Date.now() +
|
|
417
|
+
expiresAt: Date.now() + j
|
|
418
418
|
};
|
|
419
419
|
else {
|
|
420
|
-
let e =
|
|
421
|
-
|
|
420
|
+
let e = P ?? u.getHost();
|
|
421
|
+
P && u.getHost() !== P && u.applyProbedReadGateway(P), M = {
|
|
422
422
|
host: e,
|
|
423
423
|
healthy: !1,
|
|
424
|
-
expiresAt: Date.now() +
|
|
424
|
+
expiresAt: Date.now() + Fe
|
|
425
425
|
};
|
|
426
426
|
}
|
|
427
|
-
return
|
|
427
|
+
return M.host;
|
|
428
428
|
})();
|
|
429
429
|
try {
|
|
430
|
-
return await
|
|
430
|
+
return await N;
|
|
431
431
|
} finally {
|
|
432
|
-
|
|
432
|
+
N = null;
|
|
433
433
|
}
|
|
434
434
|
}
|
|
435
435
|
//#endregion
|
|
436
436
|
//#region src/ArweaveClient/uploadApiVerification.ts
|
|
437
|
-
function
|
|
437
|
+
function z(e) {
|
|
438
438
|
return e.trim().replace(/\/+$/, "");
|
|
439
439
|
}
|
|
440
|
-
function
|
|
441
|
-
return `${
|
|
440
|
+
function B(e, t) {
|
|
441
|
+
return `${z(e)}/api/upload/arweave/data/${encodeURIComponent(t)}`;
|
|
442
442
|
}
|
|
443
|
-
var
|
|
444
|
-
async function
|
|
445
|
-
let r =
|
|
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);
|
|
446
446
|
try {
|
|
447
447
|
let e = await fetch(r, { signal: a.signal });
|
|
448
448
|
return clearTimeout(o), e.status === 404 ? {
|
|
@@ -467,16 +467,16 @@ async function Ie(e, t, n) {
|
|
|
467
467
|
}
|
|
468
468
|
//#endregion
|
|
469
469
|
//#region src/ArweaveClient/arweaveL1UploadApi.ts
|
|
470
|
-
var
|
|
471
|
-
function
|
|
472
|
-
return `${
|
|
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)}`;
|
|
473
473
|
}
|
|
474
|
-
function
|
|
474
|
+
function We(e) {
|
|
475
475
|
let t = e.l1;
|
|
476
476
|
return t ? t.meetsMinConfirmations === !0 || t.confirmed === !0 : !1;
|
|
477
477
|
}
|
|
478
|
-
async function
|
|
479
|
-
let n =
|
|
478
|
+
async function Ge(e, t) {
|
|
479
|
+
let n = V(e, t);
|
|
480
480
|
try {
|
|
481
481
|
let e = await fetch(n);
|
|
482
482
|
if (!e.ok) return null;
|
|
@@ -486,7 +486,7 @@ async function ze(e, t) {
|
|
|
486
486
|
return null;
|
|
487
487
|
}
|
|
488
488
|
}
|
|
489
|
-
async function
|
|
489
|
+
async function H(e, t, n) {
|
|
490
490
|
let r = e.trim();
|
|
491
491
|
if (!r) return null;
|
|
492
492
|
try {
|
|
@@ -494,7 +494,7 @@ async function Be(e, t, n) {
|
|
|
494
494
|
method: "POST",
|
|
495
495
|
headers: { "Content-Type": "application/json" },
|
|
496
496
|
body: JSON.stringify({
|
|
497
|
-
query:
|
|
497
|
+
query: Ue,
|
|
498
498
|
variables: { id: t }
|
|
499
499
|
}),
|
|
500
500
|
signal: n?.signal
|
|
@@ -518,29 +518,29 @@ async function Be(e, t, n) {
|
|
|
518
518
|
return null;
|
|
519
519
|
}
|
|
520
520
|
}
|
|
521
|
-
async function
|
|
522
|
-
let
|
|
521
|
+
async function Ke(e, t, n) {
|
|
522
|
+
let r = d(), a = e?.trim(), o = "https", s = null;
|
|
523
523
|
if (a) try {
|
|
524
524
|
let e = new URL(a);
|
|
525
525
|
o = e.protocol === "http:" ? "http" : "https", s = e.hostname || null;
|
|
526
526
|
} catch {
|
|
527
527
|
s = null;
|
|
528
528
|
}
|
|
529
|
-
let c = s && s.length > 0 ?
|
|
529
|
+
let c = s && s.length > 0 ? i(s) : [...r], l = n?.signal;
|
|
530
530
|
for (let e of c) {
|
|
531
|
-
if (!await
|
|
532
|
-
let
|
|
533
|
-
if (
|
|
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;
|
|
534
534
|
}
|
|
535
535
|
return null;
|
|
536
536
|
}
|
|
537
537
|
//#endregion
|
|
538
538
|
//#region src/gateway/resolveSeedGatewayEndpoints.ts
|
|
539
|
-
var
|
|
540
|
-
function
|
|
541
|
-
|
|
539
|
+
var U = 18e4, W = null, G = /* @__PURE__ */ new Map();
|
|
540
|
+
function K() {
|
|
541
|
+
W = null, G.clear();
|
|
542
542
|
}
|
|
543
|
-
function
|
|
543
|
+
function qe(e) {
|
|
544
544
|
let t = (e ?? "ar.seedprotocol.io").trim();
|
|
545
545
|
return t.startsWith("http://") ? {
|
|
546
546
|
protocol: "http",
|
|
@@ -553,7 +553,7 @@ function We(e) {
|
|
|
553
553
|
host: t.replace(/\/$/, "")
|
|
554
554
|
};
|
|
555
555
|
}
|
|
556
|
-
function
|
|
556
|
+
function Je(e) {
|
|
557
557
|
let t = e.hyper?.localSidecarHost?.trim() || "127.0.0.1", n = e.hyper?.localSidecarPort ?? 1984;
|
|
558
558
|
return {
|
|
559
559
|
host: n === 80 || n === 443 ? t : `${t}:${n}`,
|
|
@@ -561,7 +561,7 @@ function Ge(e) {
|
|
|
561
561
|
baseUrl: `http://${t}:${n}`
|
|
562
562
|
};
|
|
563
563
|
}
|
|
564
|
-
function
|
|
564
|
+
function Ye() {
|
|
565
565
|
try {
|
|
566
566
|
let e = globalThis.window?.location?.origin;
|
|
567
567
|
return typeof e == "string" && e.length > 0 ? e.replace(/\/$/, "") : void 0;
|
|
@@ -574,7 +574,7 @@ function q(e, t) {
|
|
|
574
574
|
if (!n) throw Error("proxyBaseUrl is empty");
|
|
575
575
|
if (n.startsWith("http://") || n.startsWith("https://")) return n.replace(/\/$/, "");
|
|
576
576
|
if (n.startsWith("/")) {
|
|
577
|
-
let r = (t?.origin?.trim() ||
|
|
577
|
+
let r = (t?.origin?.trim() || Ye() || "").replace(/\/$/, "");
|
|
578
578
|
if (!r) throw Error(`Relative proxyBaseUrl "${e}" requires a browser origin or resolve options.origin`);
|
|
579
579
|
return `${r}${n.replace(/\/$/, "")}`;
|
|
580
580
|
}
|
|
@@ -583,23 +583,23 @@ function q(e, t) {
|
|
|
583
583
|
async function J(e, t, n) {
|
|
584
584
|
let r = Date.now();
|
|
585
585
|
if (t === "sidecar") {
|
|
586
|
-
if (
|
|
587
|
-
let t = await
|
|
588
|
-
return
|
|
586
|
+
if (W && r < W.expiresAt) return W.healthy;
|
|
587
|
+
let t = await I(e, n);
|
|
588
|
+
return W = {
|
|
589
589
|
healthy: t,
|
|
590
|
-
expiresAt: r +
|
|
590
|
+
expiresAt: r + U
|
|
591
591
|
}, t;
|
|
592
592
|
}
|
|
593
|
-
let i =
|
|
593
|
+
let i = G.get(t);
|
|
594
594
|
if (i && r < i.expiresAt) return i.healthy;
|
|
595
|
-
let a = await
|
|
596
|
-
return
|
|
595
|
+
let a = await I(e, n);
|
|
596
|
+
return G.set(t, {
|
|
597
597
|
healthy: a,
|
|
598
|
-
expiresAt: r +
|
|
598
|
+
expiresAt: r + U
|
|
599
599
|
}), a;
|
|
600
600
|
}
|
|
601
|
-
function
|
|
602
|
-
let { host: t, protocol: n } =
|
|
601
|
+
function Xe(e) {
|
|
602
|
+
let { host: t, protocol: n } = qe(e.arweaveDomain), r = `${n}://${t}`, i = e.uploadApiBaseUrl?.trim() || r;
|
|
603
603
|
return {
|
|
604
604
|
mode: e.transport ?? "http-gateway",
|
|
605
605
|
arweaveHost: t,
|
|
@@ -611,8 +611,8 @@ function qe(e) {
|
|
|
611
611
|
gatewayHyperKey: e.hyper?.gatewayHyperKey?.trim() || void 0
|
|
612
612
|
};
|
|
613
613
|
}
|
|
614
|
-
function
|
|
615
|
-
let t =
|
|
614
|
+
function Ze(e) {
|
|
615
|
+
let t = Je(e), n = e.hyper?.gatewayHyperKey?.trim();
|
|
616
616
|
return {
|
|
617
617
|
mode: "hyper",
|
|
618
618
|
arweaveHost: t.host,
|
|
@@ -624,7 +624,7 @@ function Je(e) {
|
|
|
624
624
|
gatewayHyperKey: n || void 0
|
|
625
625
|
};
|
|
626
626
|
}
|
|
627
|
-
function
|
|
627
|
+
function Qe(e, t) {
|
|
628
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
629
|
return {
|
|
630
630
|
mode: e.transport ?? "http-gateway",
|
|
@@ -638,53 +638,53 @@ function Ye(e, t) {
|
|
|
638
638
|
proxyBaseUrl: t
|
|
639
639
|
};
|
|
640
640
|
}
|
|
641
|
-
async function
|
|
641
|
+
async function $e(e, t) {
|
|
642
642
|
let n = e.proxyBaseUrl?.trim();
|
|
643
643
|
if (!n) return null;
|
|
644
644
|
let r = q(n, { origin: t?.origin });
|
|
645
|
-
return e.hyper?.probeSidecar !== !1 && !await J(r, `proxy:${r}`, t?.signal) ? null :
|
|
645
|
+
return e.hyper?.probeSidecar !== !1 && !await J(r, `proxy:${r}`, t?.signal) ? null : Qe(e, r);
|
|
646
646
|
}
|
|
647
|
-
async function
|
|
648
|
-
t?.forceSidecarProbe &&
|
|
647
|
+
async function et(e, t) {
|
|
648
|
+
t?.forceSidecarProbe && K();
|
|
649
649
|
let n = e.transport ?? "http-gateway", r = e.hyper?.probeSidecar !== !1;
|
|
650
650
|
if (n === "http-gateway") {
|
|
651
651
|
if (e.proxyBaseUrl?.trim()) {
|
|
652
652
|
let i = q(e.proxyBaseUrl, { origin: t?.origin });
|
|
653
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
|
|
654
|
+
return Qe({
|
|
655
655
|
...e,
|
|
656
656
|
transport: n
|
|
657
657
|
}, i);
|
|
658
658
|
}
|
|
659
|
-
return
|
|
659
|
+
return Xe({
|
|
660
660
|
...e,
|
|
661
661
|
transport: n
|
|
662
662
|
});
|
|
663
663
|
}
|
|
664
664
|
if (n === "hyper") {
|
|
665
|
-
let i = await
|
|
665
|
+
let i = await $e({
|
|
666
666
|
...e,
|
|
667
667
|
transport: n
|
|
668
668
|
}, t);
|
|
669
669
|
if (i) return i;
|
|
670
|
-
let a =
|
|
670
|
+
let a = Ze({
|
|
671
671
|
...e,
|
|
672
672
|
transport: n
|
|
673
673
|
});
|
|
674
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
675
|
return a;
|
|
676
676
|
}
|
|
677
|
-
let i = await
|
|
677
|
+
let i = await $e({
|
|
678
678
|
...e,
|
|
679
679
|
transport: n
|
|
680
680
|
}, t);
|
|
681
681
|
if (i) return i;
|
|
682
|
-
let a =
|
|
683
|
-
return r && await J(a.baseUrl, "sidecar", t?.signal) ?
|
|
682
|
+
let a = Je(e);
|
|
683
|
+
return r && await J(a.baseUrl, "sidecar", t?.signal) ? Ze({
|
|
684
684
|
...e,
|
|
685
685
|
transport: "hyper"
|
|
686
686
|
}) : {
|
|
687
|
-
...
|
|
687
|
+
...Xe({
|
|
688
688
|
...e,
|
|
689
689
|
transport: "http-gateway"
|
|
690
690
|
}),
|
|
@@ -692,23 +692,23 @@ async function Ze(e, t) {
|
|
|
692
692
|
activePath: "hybrid-fallback-http"
|
|
693
693
|
};
|
|
694
694
|
}
|
|
695
|
-
function
|
|
696
|
-
return
|
|
695
|
+
function tt(e, t) {
|
|
696
|
+
return e.activePath === "hyper-sidecar" || e.activePath === "http-proxy" ? [e.arweaveHost] : i(e.arweaveHost);
|
|
697
697
|
}
|
|
698
698
|
//#endregion
|
|
699
699
|
//#region src/gateway/gatewayState.ts
|
|
700
|
-
var
|
|
701
|
-
function
|
|
702
|
-
return
|
|
700
|
+
var nt = null;
|
|
701
|
+
function Y() {
|
|
702
|
+
return nt;
|
|
703
703
|
}
|
|
704
|
-
function
|
|
705
|
-
|
|
704
|
+
function rt(e) {
|
|
705
|
+
nt = e;
|
|
706
706
|
}
|
|
707
|
-
var
|
|
708
|
-
function
|
|
709
|
-
return
|
|
707
|
+
var it = [];
|
|
708
|
+
function X() {
|
|
709
|
+
return it;
|
|
710
710
|
}
|
|
711
|
-
function
|
|
711
|
+
function at(e) {
|
|
712
712
|
let t = [], n = /* @__PURE__ */ new Set();
|
|
713
713
|
for (let r of e) {
|
|
714
714
|
let e = r?.trim();
|
|
@@ -722,11 +722,11 @@ function tt(e) {
|
|
|
722
722
|
}
|
|
723
723
|
n.has(i) || (n.add(i), t.push(i));
|
|
724
724
|
}
|
|
725
|
-
|
|
725
|
+
it = t;
|
|
726
726
|
}
|
|
727
727
|
//#endregion
|
|
728
728
|
//#region src/gateway/seedGatewayConfig.ts
|
|
729
|
-
function
|
|
729
|
+
function ot(e) {
|
|
730
730
|
let t = e.gateway ?? {};
|
|
731
731
|
return {
|
|
732
732
|
transport: t.transport,
|
|
@@ -742,7 +742,7 @@ function nt(e) {
|
|
|
742
742
|
}
|
|
743
743
|
};
|
|
744
744
|
}
|
|
745
|
-
function
|
|
745
|
+
function st(e) {
|
|
746
746
|
return {
|
|
747
747
|
transport: e.gatewayTransport,
|
|
748
748
|
arweaveDomain: e.arweaveDomain,
|
|
@@ -757,33 +757,33 @@ function rt(e) {
|
|
|
757
757
|
}
|
|
758
758
|
//#endregion
|
|
759
759
|
//#region src/gateway/readBaseUrls.ts
|
|
760
|
-
var
|
|
761
|
-
function
|
|
760
|
+
var ct = 1e4;
|
|
761
|
+
function Z(e, t, n) {
|
|
762
762
|
let r = n.trim().replace(/\/$/, "");
|
|
763
763
|
r && !t.has(r) && (t.add(r), e.push(r));
|
|
764
764
|
}
|
|
765
|
-
function
|
|
766
|
-
let
|
|
767
|
-
for (let e of
|
|
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
768
|
let t = e.trim();
|
|
769
|
-
t &&
|
|
769
|
+
t && Z(a, o, /^https?:\/\//i.test(t) ? t : `${n}://${t}`);
|
|
770
770
|
}
|
|
771
771
|
return a;
|
|
772
772
|
}
|
|
773
|
-
function
|
|
773
|
+
function lt(e) {
|
|
774
774
|
let t = [], n = /* @__PURE__ */ new Set();
|
|
775
|
-
for (let e of
|
|
776
|
-
for (let r of
|
|
775
|
+
for (let e of X()) Z(t, n, e);
|
|
776
|
+
for (let r of Q(e)) Z(t, n, r);
|
|
777
777
|
return t;
|
|
778
778
|
}
|
|
779
|
-
async function
|
|
779
|
+
async function ut() {
|
|
780
780
|
try {
|
|
781
|
-
let e =
|
|
781
|
+
let e = Y();
|
|
782
782
|
if (e && (e.activePath === "hyper-sidecar" || e.activePath === "http-proxy")) return;
|
|
783
|
-
await
|
|
783
|
+
await R();
|
|
784
784
|
} catch {}
|
|
785
785
|
}
|
|
786
|
-
async function
|
|
786
|
+
async function $(e, t, n) {
|
|
787
787
|
let r = new AbortController(), i = setTimeout(() => r.abort(), n?.timeoutMs ?? 1e4);
|
|
788
788
|
try {
|
|
789
789
|
let n = await fetch(`${e.replace(/\/$/, "")}/raw/${encodeURIComponent(t)}`, {
|
|
@@ -798,21 +798,21 @@ async function st(e, t, n) {
|
|
|
798
798
|
clearTimeout(i);
|
|
799
799
|
}
|
|
800
800
|
}
|
|
801
|
-
async function
|
|
801
|
+
async function dt(e, t) {
|
|
802
802
|
let n = /* @__PURE__ */ new Set(), r = async (r) => {
|
|
803
803
|
for (let i of r) {
|
|
804
804
|
if (n.has(i)) continue;
|
|
805
805
|
n.add(i);
|
|
806
|
-
let r = await
|
|
806
|
+
let r = await $(i, e, t);
|
|
807
807
|
if (r) try {
|
|
808
|
-
let { bytes: t } = await
|
|
808
|
+
let { bytes: t } = await te(r, { transactionId: e }), n = new TextDecoder().decode(t);
|
|
809
809
|
if (n.length > 0) return n;
|
|
810
810
|
} catch {}
|
|
811
811
|
}
|
|
812
812
|
};
|
|
813
|
-
return await r(
|
|
813
|
+
return await r(X()) || (await ut(), r(Q(t)));
|
|
814
814
|
}
|
|
815
815
|
//#endregion
|
|
816
|
-
export {
|
|
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 };
|
|
817
817
|
|
|
818
818
|
//# sourceMappingURL=index.js.map
|