@medialane/sdk 0.198.0 → 0.199.0

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.
Files changed (92) hide show
  1. package/README.md +85 -39
  2. package/dist/chains-CmwjZVU7.d.cts +85 -0
  3. package/dist/chains-CmwjZVU7.d.ts +85 -0
  4. package/dist/chunk-3HPMEDYH.cjs +967 -0
  5. package/dist/chunk-3HPMEDYH.cjs.map +1 -0
  6. package/dist/{chunk-3ME5YKTW.js → chunk-5KY6P434.js} +2 -2
  7. package/dist/chunk-5KY6P434.js.map +1 -0
  8. package/dist/chunk-F7W6IWTL.js +660 -0
  9. package/dist/chunk-F7W6IWTL.js.map +1 -0
  10. package/dist/chunk-GIBIHGSV.js +916 -0
  11. package/dist/chunk-GIBIHGSV.js.map +1 -0
  12. package/dist/chunk-GV4A2WNO.js +444 -0
  13. package/dist/chunk-GV4A2WNO.js.map +1 -0
  14. package/dist/{chunk-7EYJC5CB.cjs → chunk-H2NJB3AK.cjs} +2 -2
  15. package/dist/chunk-H2NJB3AK.cjs.map +1 -0
  16. package/dist/chunk-KGAGWULG.js +932 -0
  17. package/dist/chunk-KGAGWULG.js.map +1 -0
  18. package/dist/chunk-MEJ47LC3.cjs +463 -0
  19. package/dist/chunk-MEJ47LC3.cjs.map +1 -0
  20. package/dist/chunk-W76AZ5WC.cjs +376 -0
  21. package/dist/chunk-W76AZ5WC.cjs.map +1 -0
  22. package/dist/chunk-WRBXQPRL.js +323 -0
  23. package/dist/chunk-WRBXQPRL.js.map +1 -0
  24. package/dist/chunk-ZLMIHQWM.cjs +975 -0
  25. package/dist/chunk-ZLMIHQWM.cjs.map +1 -0
  26. package/dist/chunk-ZVANOWIB.cjs +688 -0
  27. package/dist/chunk-ZVANOWIB.cjs.map +1 -0
  28. package/dist/contract/index.cjs +88 -261
  29. package/dist/contract/index.cjs.map +1 -1
  30. package/dist/contract/index.d.cts +139 -4
  31. package/dist/contract/index.d.ts +139 -4
  32. package/dist/contract/index.js +4 -220
  33. package/dist/contract/index.js.map +1 -1
  34. package/dist/evm/index.cjs +3 -3
  35. package/dist/evm/index.d.cts +2 -1
  36. package/dist/evm/index.d.ts +2 -1
  37. package/dist/evm/index.js +1 -1
  38. package/dist/fetch-Cx9Pr7-B.d.cts +3 -0
  39. package/dist/fetch-Cx9Pr7-B.d.ts +3 -0
  40. package/dist/index.cjs +177 -833
  41. package/dist/index.cjs.map +1 -1
  42. package/dist/index.d.cts +53 -131
  43. package/dist/index.d.ts +53 -131
  44. package/dist/index.js +6 -659
  45. package/dist/index.js.map +1 -1
  46. package/dist/passkey-errors-Bu6I_5rn.d.ts +1041 -0
  47. package/dist/passkey-errors-D0XNQ3_g.d.cts +1041 -0
  48. package/dist/provisioning-CwRkCN8D.d.cts +14 -0
  49. package/dist/provisioning-CwRkCN8D.d.ts +14 -0
  50. package/dist/{provisioning-BUYiU8Tr.d.ts → responses-BLpM_cH_.d.cts} +40 -48
  51. package/dist/{provisioning-BUYiU8Tr.d.cts → responses-BLpM_cH_.d.ts} +40 -48
  52. package/dist/server/index.cjs +117 -0
  53. package/dist/server/index.cjs.map +1 -0
  54. package/dist/server/index.d.cts +98 -0
  55. package/dist/server/index.d.ts +98 -0
  56. package/dist/server/index.js +4 -0
  57. package/dist/server/index.js.map +1 -0
  58. package/dist/services-C9CkOsYi.d.cts +728 -0
  59. package/dist/services-CI62hzNf.d.ts +728 -0
  60. package/dist/solana/index.cjs +2 -2
  61. package/dist/solana/index.d.cts +2 -1
  62. package/dist/solana/index.d.ts +2 -1
  63. package/dist/solana/index.js +1 -1
  64. package/dist/starknet/index.cjs +898 -1729
  65. package/dist/starknet/index.cjs.map +1 -1
  66. package/dist/starknet/index.d.cts +98 -467
  67. package/dist/starknet/index.d.ts +98 -467
  68. package/dist/starknet/index.js +704 -1680
  69. package/dist/starknet/index.js.map +1 -1
  70. package/dist/stellar/index.cjs +2 -2
  71. package/dist/stellar/index.d.cts +2 -1
  72. package/dist/stellar/index.d.ts +2 -1
  73. package/dist/stellar/index.js +1 -1
  74. package/dist/types-BW6ktwcT.d.ts +71 -0
  75. package/dist/types-BftPOVEJ.d.cts +71 -0
  76. package/dist/wallet/index.cjs +240 -0
  77. package/dist/wallet/index.cjs.map +1 -0
  78. package/dist/wallet/index.d.cts +319 -0
  79. package/dist/wallet/index.d.ts +319 -0
  80. package/dist/wallet/index.js +7 -0
  81. package/dist/wallet/index.js.map +1 -0
  82. package/package.json +13 -2
  83. package/dist/chunk-2R7XBA34.cjs +0 -1938
  84. package/dist/chunk-2R7XBA34.cjs.map +0 -1
  85. package/dist/chunk-3ME5YKTW.js.map +0 -1
  86. package/dist/chunk-6WVUUBFI.js +0 -1853
  87. package/dist/chunk-6WVUUBFI.js.map +0 -1
  88. package/dist/chunk-7EYJC5CB.cjs.map +0 -1
  89. package/dist/errors-CZm-NZK0.d.cts +0 -1754
  90. package/dist/errors-h6H6cj3Q.d.ts +0 -1754
  91. package/dist/types-DC4jNPAF.d.cts +0 -153
  92. package/dist/types-DC4jNPAF.d.ts +0 -153
package/dist/index.cjs CHANGED
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunk2R7XBA34_cjs = require('./chunk-2R7XBA34.cjs');
4
- var chunk7EYJC5CB_cjs = require('./chunk-7EYJC5CB.cjs');
3
+ var chunkMEJ47LC3_cjs = require('./chunk-MEJ47LC3.cjs');
4
+ var chunkZVANOWIB_cjs = require('./chunk-ZVANOWIB.cjs');
5
+ var chunk3HPMEDYH_cjs = require('./chunk-3HPMEDYH.cjs');
6
+ var chunkH2NJB3AK_cjs = require('./chunk-H2NJB3AK.cjs');
7
+ require('./chunk-W76AZ5WC.cjs');
5
8
  require('./chunk-Q7SFCCGT.cjs');
6
- var hmac_js = require('@noble/hashes/hmac.js');
7
- var sha2_js = require('@noble/hashes/sha2.js');
8
- var base = require('@scure/base');
9
9
 
10
10
  // src/api/launchpad-runs.ts
11
11
  var isDataTokenizationRun = (run) => run.service === "data-tokenization-erc721";
@@ -96,633 +96,6 @@ function createLaunchpadRunsClient({ baseUrl, fetchImpl = fetch }) {
96
96
  // src/types/api.ts
97
97
  var OPEN_LICENSES = ["CC0", "CC BY", "CC BY-SA", "CC BY-NC"];
98
98
 
99
- // src/server/origin.ts
100
- function isSameOrigin(req) {
101
- const origin = req.headers.get("origin");
102
- if (!origin) return true;
103
- const host = req.headers.get("host");
104
- try {
105
- return new URL(origin).host === host;
106
- } catch {
107
- return false;
108
- }
109
- }
110
-
111
- // src/server/app-gateway.ts
112
- var ACCOUNT_SESSION_COOKIE = "ml_account_session";
113
- var SESSION_MAX_AGE_SECONDS = 30 * 24 * 60 * 60;
114
- var SIGN_IN_PATHS = /* @__PURE__ */ new Set(["auth/email/register-account", "auth/email/verify-code", "auth/siws/verify"]);
115
- var EDGE_CACHE_CONTROL = "public, s-maxage=30, stale-while-revalidate=120";
116
- var DROPPED_REQUEST_HEADERS = /* @__PURE__ */ new Set([
117
- "connection",
118
- "keep-alive",
119
- "proxy-authenticate",
120
- "proxy-authorization",
121
- "te",
122
- "trailers",
123
- "transfer-encoding",
124
- "upgrade",
125
- "host",
126
- "content-length",
127
- "accept-encoding",
128
- "cookie",
129
- "x-api-key",
130
- "x-app-id",
131
- "x-app-secret",
132
- "x-account-session",
133
- "authorization"
134
- ]);
135
- var DROPPED_RESPONSE_HEADERS = /* @__PURE__ */ new Set([
136
- "connection",
137
- "keep-alive",
138
- "transfer-encoding",
139
- "content-length",
140
- "content-encoding",
141
- "set-cookie"
142
- ]);
143
- function readCookie(req, name) {
144
- const raw = req.headers.get("cookie");
145
- if (!raw) return null;
146
- for (const part of raw.split(";")) {
147
- const eq = part.indexOf("=");
148
- if (eq !== -1 && part.slice(0, eq).trim() === name) return part.slice(eq + 1).trim() || null;
149
- }
150
- return null;
151
- }
152
- function sessionCookie(value, maxAge = SESSION_MAX_AGE_SECONDS) {
153
- const secure = process.env.NODE_ENV === "production" ? "; Secure" : "";
154
- return `${ACCOUNT_SESSION_COOKIE}=${value}; Path=/; HttpOnly; SameSite=Lax; Max-Age=${maxAge}${secure}`;
155
- }
156
- function json(body, status) {
157
- return Response.json(body, { status });
158
- }
159
- function createAppGateway(config) {
160
- const doFetch = config.fetchImpl ?? fetch;
161
- const base = config.backendUrl.replace(/\/$/, "");
162
- return async function appGateway(req, path) {
163
- if (!isSameOrigin(req)) return json({ error: "Cross-origin requests are not allowed" }, 403);
164
- if (!config.apiKey) return json({ error: "Service unavailable" }, 500);
165
- if (path.some((s) => s === "." || s === ".." || s === "")) return json({ error: "Invalid path" }, 400);
166
- const joined = path.join("/");
167
- const method = req.method.toUpperCase();
168
- if (!(config.allow[method] ?? []).some((re) => re.test(joined))) {
169
- return json({ error: `Path not allowed: ${method} /v1/${joined}` }, 403);
170
- }
171
- const headers2 = new Headers();
172
- req.headers.forEach((v, k) => {
173
- if (!DROPPED_REQUEST_HEADERS.has(k.toLowerCase())) headers2.set(k, v);
174
- });
175
- headers2.set("x-api-key", config.apiKey);
176
- headers2.set("x-app-id", config.appId);
177
- if (config.appSecret) headers2.set("x-app-secret", config.appSecret);
178
- const session = readCookie(req, ACCOUNT_SESSION_COOKIE);
179
- if (session) headers2.set("x-account-session", session);
180
- const search = new URL(req.url).search;
181
- const target = `${base}/v1/${path.map(encodeURIComponent).join("/")}${search}`;
182
- const hasBody = method !== "GET" && method !== "HEAD";
183
- let res;
184
- try {
185
- res = await doFetch(target, {
186
- method,
187
- headers: headers2,
188
- body: hasBody ? await req.arrayBuffer() : void 0,
189
- cache: "no-store",
190
- redirect: "manual",
191
- signal: AbortSignal.timeout(config.timeoutMs ?? 55e3)
192
- });
193
- } catch (e) {
194
- if (e instanceof DOMException && e.name === "TimeoutError") {
195
- return json({ error: "The service took too long to respond" }, 504);
196
- }
197
- return json({ error: "Service unavailable" }, 502);
198
- }
199
- const out = new Headers();
200
- res.headers.forEach((v, k) => {
201
- if (!DROPPED_RESPONSE_HEADERS.has(k.toLowerCase())) out.set(k, v);
202
- });
203
- if (method === "POST" && res.ok && SIGN_IN_PATHS.has(joined)) {
204
- const text = await res.text();
205
- let body = null;
206
- try {
207
- body = JSON.parse(text);
208
- } catch {
209
- body = null;
210
- }
211
- if (!body) return new Response(text, { status: res.status, headers: out });
212
- const token = typeof body.accountToken === "string" ? body.accountToken : null;
213
- delete body.accountToken;
214
- delete body.token;
215
- out.set("content-type", "application/json");
216
- if (token) out.append("set-cookie", sessionCookie(token));
217
- return new Response(JSON.stringify(body), { status: res.status, headers: out });
218
- }
219
- if (method === "GET" && res.ok && !session && (config.cacheableGets ?? []).some((re) => re.test(joined))) {
220
- out.set("cache-control", EDGE_CACHE_CONTROL);
221
- }
222
- return new Response(res.body, { status: res.status, headers: out });
223
- };
224
- }
225
-
226
- // src/server/app-session.ts
227
- function signedOut() {
228
- const res = Response.json(null);
229
- res.headers.append("set-cookie", sessionCookie("", 0));
230
- return res;
231
- }
232
- function createAppSessionHandler(config) {
233
- const doFetch = config.fetchImpl ?? fetch;
234
- const base = config.backendUrl.replace(/\/$/, "");
235
- return {
236
- async GET(req) {
237
- const session = readCookie(req, ACCOUNT_SESSION_COOKIE);
238
- if (!session) return Response.json(null);
239
- const res = await doFetch(`${base}/v1/users/me`, {
240
- headers: {
241
- "x-api-key": config.apiKey ?? "",
242
- "x-app-id": config.appId,
243
- ...config.appSecret ? { "x-app-secret": config.appSecret } : {},
244
- "x-account-session": session
245
- },
246
- cache: "no-store"
247
- });
248
- if (res.status === 401 || res.status === 403) return signedOut();
249
- if (!res.ok) return Response.json({ error: "Session check failed" }, { status: 502 });
250
- return Response.json(await res.json());
251
- },
252
- async DELETE() {
253
- return signedOut();
254
- }
255
- };
256
- }
257
-
258
- // src/server/ssrf-guard.ts
259
- var ALLOWED_IMAGE_CONTENT_TYPES = /* @__PURE__ */ new Set([
260
- "image/jpeg",
261
- "image/jpg",
262
- "image/png",
263
- "image/gif",
264
- "image/webp",
265
- "image/svg+xml",
266
- "image/avif",
267
- "image/bmp",
268
- "image/tiff"
269
- ]);
270
- var MAX_IMAGE_REDIRECTS = 5;
271
- var MAX_IMAGE_PROXY_BYTES = 15 * 1024 * 1024;
272
- function parseIpv4(ip) {
273
- const parts = ip.split(".");
274
- if (parts.length !== 4) return null;
275
- const bytes = [];
276
- for (const part of parts) {
277
- if (!/^\d{1,3}$/.test(part)) return null;
278
- const n = Number(part);
279
- if (n > 255) return null;
280
- bytes.push(n);
281
- }
282
- return bytes;
283
- }
284
- function isPrivateIpv4(bytes) {
285
- const a = bytes[0];
286
- const b = bytes[1];
287
- const c = bytes[2];
288
- if (a === 0) return true;
289
- if (a === 10) return true;
290
- if (a === 100 && b >= 64 && b <= 127) return true;
291
- if (a === 127) return true;
292
- if (a === 169 && b === 254) return true;
293
- if (a === 172 && b >= 16 && b <= 31) return true;
294
- if (a === 192 && b === 0 && c === 0) return true;
295
- if (a === 192 && b === 168) return true;
296
- if (a === 198 && (b === 18 || b === 19)) return true;
297
- if (a >= 224) return true;
298
- return false;
299
- }
300
- function expandIpv6(rawIp) {
301
- let ip = rawIp;
302
- let embeddedV4 = null;
303
- const v4Tail = ip.match(/(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/);
304
- if (v4Tail && ip.includes(":")) {
305
- embeddedV4 = parseIpv4(v4Tail[1]);
306
- if (!embeddedV4) return null;
307
- ip = ip.slice(0, ip.length - v4Tail[1].length) + "0:0";
308
- }
309
- const sides = ip.split("::");
310
- if (sides.length > 2) return null;
311
- const head = sides[0] ? sides[0].split(":").filter(Boolean) : [];
312
- const tail = sides.length === 2 && sides[1] ? sides[1].split(":").filter(Boolean) : [];
313
- let groups;
314
- if (sides.length === 1) {
315
- groups = head;
316
- if (groups.length !== 8) return null;
317
- } else {
318
- const missing = 8 - head.length - tail.length;
319
- if (missing < 0) return null;
320
- groups = [...head, ...Array(missing).fill("0"), ...tail];
321
- }
322
- if (groups.length !== 8) return null;
323
- const bytes = [];
324
- for (const group of groups) {
325
- if (!/^[0-9a-fA-F]{1,4}$/.test(group)) return null;
326
- const n = parseInt(group, 16);
327
- bytes.push(n >> 8 & 255, n & 255);
328
- }
329
- if (embeddedV4) {
330
- bytes[12] = embeddedV4[0];
331
- bytes[13] = embeddedV4[1];
332
- bytes[14] = embeddedV4[2];
333
- bytes[15] = embeddedV4[3];
334
- }
335
- return bytes;
336
- }
337
- function isPrivateIpv6(bytes) {
338
- if (bytes.every((b) => b === 0)) return true;
339
- if (bytes.slice(0, 15).every((b) => b === 0) && bytes[15] === 1) return true;
340
- if ((bytes[0] & 254) === 252) return true;
341
- if (bytes[0] === 254 && (bytes[1] & 192) === 128) return true;
342
- if (bytes.slice(0, 10).every((b) => b === 0) && bytes[10] === 255 && bytes[11] === 255) {
343
- return isPrivateIpv4(bytes.slice(12));
344
- }
345
- if (bytes.slice(0, 12).every((b) => b === 0)) return isPrivateIpv4(bytes.slice(12));
346
- if (bytes[0] === 0 && bytes[1] === 100 && bytes[2] === 255 && bytes[3] === 155 && bytes.slice(4, 12).every((b) => b === 0)) {
347
- return isPrivateIpv4(bytes.slice(12));
348
- }
349
- if (bytes[0] === 32 && bytes[1] === 2) return isPrivateIpv4(bytes.slice(2, 6));
350
- if (bytes[0] === 254 && (bytes[1] & 192) === 192) return true;
351
- if (bytes[0] === 255) return true;
352
- return false;
353
- }
354
- function parseNumber(part) {
355
- if (/^0x[0-9a-f]+$/i.test(part)) return parseInt(part.slice(2), 16);
356
- if (/^0[0-7]+$/.test(part)) return parseInt(part, 8);
357
- if (/^\d+$/.test(part)) return parseInt(part, 10);
358
- return null;
359
- }
360
- function normalizeNumericHostname(host) {
361
- const parts = host.trim().split(".");
362
- if (parts.length < 1 || parts.length > 4) return null;
363
- const values = [];
364
- for (const part of parts) {
365
- const value = parseNumber(part);
366
- if (value === null || value < 0) return null;
367
- values.push(value);
368
- }
369
- const leading = values.slice(0, -1);
370
- if (leading.some((v) => v > 255)) return null;
371
- const tail = values[values.length - 1];
372
- const tailBytes = 4 - leading.length;
373
- if (tail > 2 ** (8 * tailBytes) - 1) return null;
374
- const bytes = [...leading];
375
- for (let i = tailBytes - 1; i >= 0; i--) bytes.push(tail >>> 8 * i & 255);
376
- return bytes.join(".");
377
- }
378
- var BLOCKED_HOSTNAMES = /* @__PURE__ */ new Set([
379
- "localhost",
380
- "metadata.google.internal",
381
- "metadata.azure.internal"
382
- ]);
383
- function isPrivateHost(hostname) {
384
- const host = hostname.toLowerCase().replace(/^\[|\]$/g, "");
385
- if (BLOCKED_HOSTNAMES.has(host)) return true;
386
- if (host.endsWith(".local") || host.endsWith(".internal") || host.endsWith(".localhost")) return true;
387
- const candidate = normalizeNumericHostname(host) ?? host;
388
- const v4 = parseIpv4(candidate);
389
- if (v4) return isPrivateIpv4(v4);
390
- const v6 = expandIpv6(candidate);
391
- if (v6) return isPrivateIpv6(v6);
392
- return false;
393
- }
394
- function validateUrl(raw, options = {}) {
395
- const requireHttps = options.requireHttps ?? true;
396
- let parsed;
397
- try {
398
- parsed = new URL(raw);
399
- } catch {
400
- return { error: "Invalid url", status: 400 };
401
- }
402
- if (requireHttps && parsed.protocol !== "https:") {
403
- return { error: "Only https URLs allowed", status: 400 };
404
- }
405
- if (!requireHttps && parsed.protocol !== "https:" && parsed.protocol !== "http:") {
406
- return { error: "Only http and https URLs allowed", status: 400 };
407
- }
408
- if (parsed.username || parsed.password) {
409
- return { error: "URL credentials not allowed", status: 400 };
410
- }
411
- if (isPrivateHost(parsed.hostname)) {
412
- return { error: "URL not allowed", status: 400 };
413
- }
414
- return { url: parsed };
415
- }
416
- function isPrivateOrInsecureUrl(raw, requireHttps = true) {
417
- return "error" in validateUrl(raw, { requireHttps });
418
- }
419
-
420
- // src/server/image-proxy.ts
421
- var DEFAULT_USER_AGENT = "Mozilla/5.0 (compatible; Medialane/1.0; +https://www.medialane.io)";
422
- function jsonError(message, status) {
423
- return Response.json({ error: message }, { status });
424
- }
425
- async function readBodyWithCap(res, maxBytes) {
426
- const declared = Number(res.headers.get("content-length") ?? 0);
427
- if (declared > maxBytes) {
428
- return { ok: false, error: "Image too large", status: 413 };
429
- }
430
- const reader = res.body?.getReader();
431
- if (!reader) return { ok: false, error: "Empty response body", status: 502 };
432
- const chunks = [];
433
- let total = 0;
434
- for (; ; ) {
435
- const { done, value } = await reader.read();
436
- if (done) break;
437
- if (!value) continue;
438
- total += value.byteLength;
439
- if (total > maxBytes) {
440
- await reader.cancel().catch(() => {
441
- });
442
- return { ok: false, error: "Image too large", status: 413 };
443
- }
444
- chunks.push(value);
445
- }
446
- const body = new Uint8Array(total);
447
- let offset = 0;
448
- for (const chunk of chunks) {
449
- body.set(chunk, offset);
450
- offset += chunk.byteLength;
451
- }
452
- return { ok: true, body };
453
- }
454
- function createImageProxyHandler(config) {
455
- const doFetch = config.fetchImpl ?? fetch;
456
- const userAgent = config.userAgent ?? DEFAULT_USER_AGENT;
457
- const backendOrigin = config.backend ? new URL(config.backend.backendUrl).origin : null;
458
- function headersFor(url) {
459
- const headers2 = { "User-Agent": userAgent };
460
- if (!config.backend || url.origin !== backendOrigin) return headers2;
461
- if (config.backend.apiKey) headers2["x-api-key"] = config.backend.apiKey;
462
- headers2["x-app-id"] = config.backend.appId;
463
- if (config.backend.appSecret) headers2["x-app-secret"] = config.backend.appSecret;
464
- return headers2;
465
- }
466
- async function resolvesToPrivateHost(hostname) {
467
- try {
468
- const addresses = await config.resolveHostname(hostname);
469
- if (addresses.length === 0) return true;
470
- return addresses.some((address) => isPrivateHost(address));
471
- } catch {
472
- return true;
473
- }
474
- }
475
- async function safeFetch(url, hopsLeft) {
476
- if (hopsLeft < 0) throw new Error("Too many redirects");
477
- if (await resolvesToPrivateHost(url.hostname)) {
478
- throw new Error("Blocked: hostname resolves to a private address");
479
- }
480
- const res = await doFetch(url.toString(), {
481
- redirect: "manual",
482
- headers: headersFor(url)
483
- });
484
- if (res.status >= 300 && res.status < 400) {
485
- const location = res.headers.get("location");
486
- if (!location) throw new Error("Redirect with no Location header");
487
- const next = new URL(location, url);
488
- const validated = validateUrl(next.toString());
489
- if ("error" in validated) throw new Error(`Redirect blocked: ${validated.error}`);
490
- return safeFetch(validated.url, hopsLeft - 1);
491
- }
492
- return res;
493
- }
494
- return async function handleImageProxy(req) {
495
- const raw = new URL(req.url).searchParams.get("url");
496
- if (!raw) return jsonError("Missing url", 400);
497
- const validated = validateUrl(raw);
498
- if ("error" in validated) return jsonError(validated.error, validated.status);
499
- let upstream;
500
- try {
501
- const isBackendImage = backendOrigin && /^\/media\/[^/]+\/[^/]+\/[^/]+\/image$/.test(validated.url.pathname);
502
- upstream = await safeFetch(
503
- isBackendImage ? new URL(validated.url.pathname, backendOrigin) : validated.url,
504
- MAX_IMAGE_REDIRECTS
505
- );
506
- } catch {
507
- return jsonError("Failed to fetch image", 502);
508
- }
509
- if (!upstream.ok) {
510
- return jsonError(`Upstream returned ${upstream.status}`, upstream.status);
511
- }
512
- const contentType = upstream.headers.get("content-type") ?? "";
513
- const baseType = contentType.split(";")[0].trim().toLowerCase();
514
- if (!ALLOWED_IMAGE_CONTENT_TYPES.has(baseType)) {
515
- return jsonError("Not an image", 400);
516
- }
517
- const capped = await readBodyWithCap(upstream, MAX_IMAGE_PROXY_BYTES);
518
- if (!capped.ok) return jsonError(capped.error, capped.status);
519
- return new Response(capped.body, {
520
- status: 200,
521
- headers: {
522
- "Content-Type": contentType,
523
- "X-Content-Type-Options": "nosniff",
524
- "Content-Security-Policy": "default-src 'none'; img-src 'self' data:; style-src 'unsafe-inline'; sandbox",
525
- "Cache-Control": "public, max-age=86400, s-maxage=86400, stale-while-revalidate=604800",
526
- "Access-Control-Allow-Origin": "*"
527
- }
528
- });
529
- };
530
- }
531
-
532
- // src/server/backend-metadata.ts
533
- function endpoint(config, path) {
534
- return `${config.backendUrl.replace(/\/$/, "")}/v1/metadata/${path}`;
535
- }
536
- function headers(config, extra) {
537
- return { "x-api-key": config.apiKey, ...extra };
538
- }
539
- async function uploadJsonToBackend(config, json2) {
540
- const res = await (config.fetchImpl ?? fetch)(endpoint(config, "upload"), {
541
- method: "POST",
542
- headers: headers(config, { "Content-Type": "application/json" }),
543
- body: JSON.stringify(json2)
544
- });
545
- const data = await res.json().catch(() => ({}));
546
- if (!res.ok || !data.data) throw new Error(data.error ?? "Metadata upload failed");
547
- return { cid: data.data.cid, uri: data.data.url };
548
- }
549
- async function uploadFileToBackend(config, file) {
550
- const form = new FormData();
551
- form.append("file", file, file.name);
552
- const res = await (config.fetchImpl ?? fetch)(endpoint(config, "upload-file"), {
553
- method: "POST",
554
- headers: headers(config),
555
- body: form
556
- });
557
- const data = await res.json().catch(() => ({}));
558
- if (!res.ok || !data.data) throw new Error(data.error ?? "File upload failed");
559
- return { cid: data.data.cid, uri: data.data.url };
560
- }
561
- async function uploadDirectoryToBackend(config, files) {
562
- const res = await (config.fetchImpl ?? fetch)(endpoint(config, "upload-directory"), {
563
- method: "POST",
564
- headers: headers(config, { "Content-Type": "application/json" }),
565
- body: JSON.stringify({ files })
566
- });
567
- const data = await res.json().catch(() => ({}));
568
- if (!res.ok || !data.data) throw new Error(data.error ?? "Directory pin failed");
569
- return data.data;
570
- }
571
- async function getBackendSignedUrl(config, kind = "image") {
572
- const res = await (config.fetchImpl ?? fetch)(`${endpoint(config, "signed-url")}?kind=${kind}`, {
573
- method: "GET",
574
- headers: headers(config)
575
- });
576
- const data = await res.json().catch(() => ({}));
577
- if (!res.ok || !data.data) throw new Error(data.error ?? "Failed to create upload URL");
578
- return data.data.url;
579
- }
580
-
581
- // src/server/app-routes.ts
582
- var SEG = "[^/]+";
583
- var PUBLIC_ROUTES = {
584
- GET: [
585
- "orders",
586
- `orders/${SEG}`,
587
- `orders/token/${SEG}/${SEG}`,
588
- `orders/user/${SEG}`,
589
- `orders/received/${SEG}`,
590
- "orders/counter-offers",
591
- "tokens",
592
- `tokens/owned/${SEG}`,
593
- `tokens/${SEG}/${SEG}`,
594
- `tokens/${SEG}/${SEG}/(history|comments|remixes)`,
595
- `tokens/${SEG}/${SEG}/balances/${SEG}`,
596
- "collections",
597
- `collections/${SEG}`,
598
- `collections/${SEG}/tokens`,
599
- `collections/${SEG}/profile`,
600
- "activities",
601
- `activities/${SEG}`,
602
- "search",
603
- "metadata/resolve",
604
- "creators",
605
- `creators/${SEG}/profile`,
606
- `creators/by-username/${SEG}`,
607
- `creators/${SEG}/hidden`,
608
- "coins",
609
- "coins/prices",
610
- "coins/claims",
611
- `coins/${SEG}`,
612
- `coins/${SEG}/guarantees`,
613
- `pop/${SEG}/claim-info`,
614
- "drops",
615
- `drops/${SEG}`,
616
- `drops/${SEG}/mints`,
617
- `drops/${SEG}/state`,
618
- "rewards",
619
- "rewards/config",
620
- "rewards/batch",
621
- `rewards/${SEG}`,
622
- `rewards/${SEG}/events`,
623
- `club/${SEG}/${SEG}`,
624
- `club/${SEG}/${SEG}/member/${SEG}`,
625
- `tickets/${SEG}/${SEG}`,
626
- `tickets/${SEG}/count`,
627
- `ipnft/${SEG}/${SEG}`,
628
- "stats",
629
- "prices",
630
- `remix-offers/${SEG}`,
631
- "sponsorship/offers",
632
- `sponsorship/offers/${SEG}`,
633
- `sponsorship/offers/${SEG}/bids`,
634
- "sponsorship/proposals",
635
- `sponsorship/proposals/${SEG}`,
636
- "sponsorship/licenses",
637
- `sponsorship/licenses/${SEG}`,
638
- "auth/email/exists",
639
- `media/${SEG}/${SEG}/${SEG}/image`
640
- ].map((p) => new RegExp(`^${p}$`)),
641
- POST: [
642
- "auth/email/(request-code|verify-code|register-account|confirm)",
643
- "auth/siws/(nonce|verify)",
644
- "users/register"
645
- ].map((p) => new RegExp(`^${p}$`))
646
- };
647
- function isPublicAppRoute(method, path) {
648
- if (path.split("/").some((s) => s === "." || s === ".." || s === "")) return false;
649
- return (PUBLIC_ROUTES[method.toUpperCase()] ?? []).some((re) => re.test(path));
650
- }
651
- var IDENTITY_PREFIX = "siws_";
652
- var ACCOUNT_SESSION_PREFIX = "account_session_";
653
- var IDENTITY_DOMAIN = "siws-identity-v1";
654
- var ACCOUNT_SESSION_DOMAIN = "account-session-v1";
655
- var IDENTITY_TTL_SECONDS = 86400;
656
- var ACCOUNT_SESSION_TTL_SECONDS = 30 * 24 * 60 * 60;
657
- var CLOCK_SKEW_SECONDS = 60;
658
- var encoder = new TextEncoder();
659
- var decoder = new TextDecoder();
660
- function toHex(bytes) {
661
- let out = "";
662
- for (const b of bytes) out += b.toString(16).padStart(2, "0");
663
- return out;
664
- }
665
- function sign(secret, domain, payload) {
666
- return toHex(hmac_js.hmac(sha2_js.sha256, encoder.encode(secret), encoder.encode(`${domain}.${payload}`)));
667
- }
668
- function constantTimeEquals(a, b) {
669
- if (a.length !== b.length) return false;
670
- let diff = 0;
671
- for (let i = 0; i < a.length; i++) diff |= a.charCodeAt(i) ^ b.charCodeAt(i);
672
- return diff === 0;
673
- }
674
- function signatureMatches(secret, domain, payload, provided) {
675
- return constantTimeEquals(provided, sign(secret, domain, payload));
676
- }
677
- function encodePayload(value) {
678
- return base.base64urlnopad.encode(encoder.encode(JSON.stringify(value)));
679
- }
680
- function decodePayload(payload) {
681
- try {
682
- return JSON.parse(decoder.decode(base.base64urlnopad.decode(payload)));
683
- } catch {
684
- return null;
685
- }
686
- }
687
- function splitToken(raw, prefix) {
688
- if (!raw.startsWith(prefix)) return null;
689
- const inner = raw.slice(prefix.length);
690
- const dot = inner.lastIndexOf(".");
691
- if (dot === -1) return null;
692
- return { payload: inner.slice(0, dot), signature: inner.slice(dot + 1) };
693
- }
694
- function withinLifetime(iat, exp) {
695
- if (!iat || !exp) return false;
696
- const now = Math.floor(Date.now() / 1e3);
697
- return exp >= now && iat <= now + CLOCK_SKEW_SECONDS;
698
- }
699
- function issueSiwsToken(secret, chain, wallet, ttlSeconds = IDENTITY_TTL_SECONDS) {
700
- const iat = Math.floor(Date.now() / 1e3);
701
- const payload = encodePayload({ sub: wallet, chain, iat, exp: iat + ttlSeconds });
702
- return `${IDENTITY_PREFIX}${payload}.${sign(secret, IDENTITY_DOMAIN, payload)}`;
703
- }
704
- function verifySiwsToken(secret, raw) {
705
- const parts = splitToken(raw, IDENTITY_PREFIX);
706
- if (!parts) return null;
707
- if (!signatureMatches(secret, IDENTITY_DOMAIN, parts.payload, parts.signature)) return null;
708
- const data = decodePayload(parts.payload);
709
- if (!data?.sub || !withinLifetime(data.iat, data.exp)) return null;
710
- return { address: data.sub, chain: data.chain ?? "STARKNET" };
711
- }
712
- function issueAccountSessionToken(secret, accountId, ttlSeconds = ACCOUNT_SESSION_TTL_SECONDS) {
713
- const iat = Math.floor(Date.now() / 1e3);
714
- const payload = encodePayload({ accountId, iat, exp: iat + ttlSeconds });
715
- return `${ACCOUNT_SESSION_PREFIX}${payload}.${sign(secret, ACCOUNT_SESSION_DOMAIN, payload)}`;
716
- }
717
- function verifyAccountSessionToken(secret, raw) {
718
- const parts = splitToken(raw, ACCOUNT_SESSION_PREFIX);
719
- if (!parts) return null;
720
- if (!signatureMatches(secret, ACCOUNT_SESSION_DOMAIN, parts.payload, parts.signature)) return null;
721
- const data = decodePayload(parts.payload);
722
- if (!data?.accountId || !withinLifetime(data.iat, data.exp)) return null;
723
- return data.accountId;
724
- }
725
-
726
99
  // src/metadata.ts
727
100
  var RESERVED_TRAITS = /* @__PURE__ */ new Set([
728
101
  "Creator",
@@ -800,32 +173,6 @@ function resolveRemixPolicy(input) {
800
173
  return { ...input, canRemixDirect, showDealOption };
801
174
  }
802
175
 
803
- // src/utils/ipfs-gateway.ts
804
- var CID_PATH_PATTERN = /^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[a-z2-7]{58,})(\/[\w.\-/]*)?$/;
805
- function isValidIpfsCidPath(cidPath) {
806
- if (!CID_PATH_PATTERN.test(cidPath)) return false;
807
- if (cidPath.split("/").includes("..")) return false;
808
- return true;
809
- }
810
- var IPFS_SAFE_CONTENT_TYPE_PREFIXES = [
811
- "image/jpeg",
812
- "image/png",
813
- "image/gif",
814
- "image/webp",
815
- "image/avif",
816
- "image/svg+xml",
817
- "video/",
818
- "audio/",
819
- "model/",
820
- "font/",
821
- "application/json",
822
- "application/octet-stream"
823
- ];
824
- function resolveSafeImageContentType(contentType) {
825
- return IPFS_SAFE_CONTENT_TYPE_PREFIXES.some((p) => contentType.startsWith(p)) ? contentType : "application/octet-stream";
826
- }
827
- var MAX_IPFS_GATEWAY_RESPONSE_BYTES = 25 * 1024 * 1024;
828
-
829
176
  // src/uploads.ts
830
177
  var MB = 1024 * 1024;
831
178
  var MAX_UPLOAD_BYTES = 90 * MB;
@@ -894,318 +241,334 @@ function uploadError(file, kind = "image") {
894
241
  return uploadSizeError(file, kind);
895
242
  }
896
243
 
897
- Object.defineProperty(exports, "ApiClient", {
244
+ Object.defineProperty(exports, "SUPPORTED_URL_CHAINS", {
898
245
  enumerable: true,
899
- get: function () { return chunk2R7XBA34_cjs.ApiClient; }
246
+ get: function () { return chunkMEJ47LC3_cjs.SUPPORTED_URL_CHAINS; }
900
247
  });
901
- Object.defineProperty(exports, "DEFAULT_CURRENCY", {
248
+ Object.defineProperty(exports, "assetHref", {
902
249
  enumerable: true,
903
- get: function () { return chunk2R7XBA34_cjs.DEFAULT_CURRENCY; }
250
+ get: function () { return chunkMEJ47LC3_cjs.assetHref; }
904
251
  });
905
- Object.defineProperty(exports, "DeviceKeyMissingError", {
252
+ Object.defineProperty(exports, "chainFromSlug", {
906
253
  enumerable: true,
907
- get: function () { return chunk2R7XBA34_cjs.DeviceKeyMissingError; }
254
+ get: function () { return chunkMEJ47LC3_cjs.chainFromSlug; }
908
255
  });
909
- Object.defineProperty(exports, "FeeConfigSchema", {
256
+ Object.defineProperty(exports, "chainSlug", {
910
257
  enumerable: true,
911
- get: function () { return chunk2R7XBA34_cjs.FeeConfigSchema; }
258
+ get: function () { return chunkMEJ47LC3_cjs.chainSlug; }
912
259
  });
913
- Object.defineProperty(exports, "MedialaneApiError", {
260
+ Object.defineProperty(exports, "coinHref", {
914
261
  enumerable: true,
915
- get: function () { return chunk2R7XBA34_cjs.MedialaneApiError; }
262
+ get: function () { return chunkMEJ47LC3_cjs.coinHref; }
916
263
  });
917
- Object.defineProperty(exports, "PasskeyCancelledError", {
264
+ Object.defineProperty(exports, "collectionHref", {
918
265
  enumerable: true,
919
- get: function () { return chunk2R7XBA34_cjs.PasskeyCancelledError; }
266
+ get: function () { return chunkMEJ47LC3_cjs.collectionHref; }
920
267
  });
921
- Object.defineProperty(exports, "PasskeyUnsupportedError", {
268
+ Object.defineProperty(exports, "dropHref", {
922
269
  enumerable: true,
923
- get: function () { return chunk2R7XBA34_cjs.PasskeyUnsupportedError; }
270
+ get: function () { return chunkMEJ47LC3_cjs.dropHref; }
924
271
  });
925
- Object.defineProperty(exports, "STARKNET_COLLECTION_1155_CLASS_HASH", {
272
+ Object.defineProperty(exports, "encodeU256", {
926
273
  enumerable: true,
927
- get: function () { return chunk2R7XBA34_cjs.STARKNET_COLLECTION_1155_CLASS_HASH; }
274
+ get: function () { return chunkMEJ47LC3_cjs.encodeU256; }
928
275
  });
929
- Object.defineProperty(exports, "STARKNET_COLLECTION_1155_CONTRACT", {
276
+ Object.defineProperty(exports, "getService", {
930
277
  enumerable: true,
931
- get: function () { return chunk2R7XBA34_cjs.STARKNET_COLLECTION_1155_CONTRACT; }
278
+ get: function () { return chunkMEJ47LC3_cjs.getService; }
932
279
  });
933
- Object.defineProperty(exports, "STARKNET_COLLECTION_1155_FACTORY_CLASS_HASH", {
280
+ Object.defineProperty(exports, "getServicesByCapability", {
934
281
  enumerable: true,
935
- get: function () { return chunk2R7XBA34_cjs.STARKNET_COLLECTION_1155_FACTORY_CLASS_HASH; }
282
+ get: function () { return chunkMEJ47LC3_cjs.getServicesByCapability; }
936
283
  });
937
- Object.defineProperty(exports, "STARKNET_COLLECTION_1155_START_BLOCK", {
284
+ Object.defineProperty(exports, "hasCapability", {
938
285
  enumerable: true,
939
- get: function () { return chunk2R7XBA34_cjs.STARKNET_COLLECTION_1155_START_BLOCK; }
286
+ get: function () { return chunkMEJ47LC3_cjs.hasCapability; }
940
287
  });
941
- Object.defineProperty(exports, "STARKNET_COLLECTION_721_CONTRACT", {
288
+ Object.defineProperty(exports, "isServiceId", {
942
289
  enumerable: true,
943
- get: function () { return chunk2R7XBA34_cjs.STARKNET_COLLECTION_721_CONTRACT; }
290
+ get: function () { return chunkMEJ47LC3_cjs.isServiceId; }
944
291
  });
945
- Object.defineProperty(exports, "STARKNET_COLLECTION_721_START_BLOCK", {
292
+ Object.defineProperty(exports, "listServices", {
946
293
  enumerable: true,
947
- get: function () { return chunk2R7XBA34_cjs.STARKNET_COLLECTION_721_START_BLOCK; }
294
+ get: function () { return chunkMEJ47LC3_cjs.listServices; }
948
295
  });
949
- Object.defineProperty(exports, "STARKNET_CREATOR_COIN_CLASS_HASH", {
296
+ Object.defineProperty(exports, "profileHref", {
950
297
  enumerable: true,
951
- get: function () { return chunk2R7XBA34_cjs.STARKNET_CREATOR_COIN_CLASS_HASH; }
298
+ get: function () { return chunkMEJ47LC3_cjs.profileHref; }
952
299
  });
953
- Object.defineProperty(exports, "STARKNET_CREATOR_COIN_EKUBO_LAUNCHER", {
300
+ Object.defineProperty(exports, "resolveConfig", {
954
301
  enumerable: true,
955
- get: function () { return chunk2R7XBA34_cjs.STARKNET_CREATOR_COIN_EKUBO_LAUNCHER; }
302
+ get: function () { return chunkMEJ47LC3_cjs.resolveConfig; }
956
303
  });
957
- Object.defineProperty(exports, "STARKNET_CREATOR_COIN_FACTORY_CLASS_HASH", {
304
+ Object.defineProperty(exports, "resolveFeeConfig", {
958
305
  enumerable: true,
959
- get: function () { return chunk2R7XBA34_cjs.STARKNET_CREATOR_COIN_FACTORY_CLASS_HASH; }
306
+ get: function () { return chunkMEJ47LC3_cjs.resolveFeeConfig; }
960
307
  });
961
- Object.defineProperty(exports, "STARKNET_CREATOR_COIN_FACTORY_CONTRACT", {
308
+ Object.defineProperty(exports, "stringifyBigInts", {
962
309
  enumerable: true,
963
- get: function () { return chunk2R7XBA34_cjs.STARKNET_CREATOR_COIN_FACTORY_CONTRACT; }
310
+ get: function () { return chunkMEJ47LC3_cjs.stringifyBigInts; }
964
311
  });
965
- Object.defineProperty(exports, "STARKNET_CREATOR_COIN_START_BLOCK", {
312
+ Object.defineProperty(exports, "u256ToBigInt", {
966
313
  enumerable: true,
967
- get: function () { return chunk2R7XBA34_cjs.STARKNET_CREATOR_COIN_START_BLOCK; }
314
+ get: function () { return chunkMEJ47LC3_cjs.u256ToBigInt; }
968
315
  });
969
- Object.defineProperty(exports, "STARKNET_DATA_TOKENIZATION_721_CONTRACT", {
316
+ Object.defineProperty(exports, "ACCOUNT_SESSION_COOKIE", {
970
317
  enumerable: true,
971
- get: function () { return chunk2R7XBA34_cjs.STARKNET_DATA_TOKENIZATION_721_CONTRACT; }
318
+ get: function () { return chunkZVANOWIB_cjs.ACCOUNT_SESSION_COOKIE; }
972
319
  });
973
- Object.defineProperty(exports, "STARKNET_DROP_COLLECTION_CLASS_HASH", {
320
+ Object.defineProperty(exports, "ACCOUNT_SESSION_TTL_SECONDS", {
974
321
  enumerable: true,
975
- get: function () { return chunk2R7XBA34_cjs.STARKNET_DROP_COLLECTION_CLASS_HASH; }
322
+ get: function () { return chunkZVANOWIB_cjs.ACCOUNT_SESSION_TTL_SECONDS; }
976
323
  });
977
- Object.defineProperty(exports, "STARKNET_DROP_FACTORY_CONTRACT", {
324
+ Object.defineProperty(exports, "ALLOWED_IMAGE_CONTENT_TYPES", {
978
325
  enumerable: true,
979
- get: function () { return chunk2R7XBA34_cjs.STARKNET_DROP_FACTORY_CONTRACT; }
326
+ get: function () { return chunkZVANOWIB_cjs.ALLOWED_IMAGE_CONTENT_TYPES; }
980
327
  });
981
- Object.defineProperty(exports, "STARKNET_DROP_FACTORY_START_BLOCK", {
328
+ Object.defineProperty(exports, "IDENTITY_TTL_SECONDS", {
982
329
  enumerable: true,
983
- get: function () { return chunk2R7XBA34_cjs.STARKNET_DROP_FACTORY_START_BLOCK; }
330
+ get: function () { return chunkZVANOWIB_cjs.IDENTITY_TTL_SECONDS; }
984
331
  });
985
- Object.defineProperty(exports, "STARKNET_EKUBO_CORE", {
332
+ Object.defineProperty(exports, "IPFS_SAFE_CONTENT_TYPE_PREFIXES", {
986
333
  enumerable: true,
987
- get: function () { return chunk2R7XBA34_cjs.STARKNET_EKUBO_CORE; }
334
+ get: function () { return chunkZVANOWIB_cjs.IPFS_SAFE_CONTENT_TYPE_PREFIXES; }
988
335
  });
989
- Object.defineProperty(exports, "STARKNET_GENESIS_MINT_CONTRACT", {
336
+ Object.defineProperty(exports, "MAX_IMAGE_PROXY_BYTES", {
990
337
  enumerable: true,
991
- get: function () { return chunk2R7XBA34_cjs.STARKNET_GENESIS_MINT_CONTRACT; }
338
+ get: function () { return chunkZVANOWIB_cjs.MAX_IMAGE_PROXY_BYTES; }
992
339
  });
993
- Object.defineProperty(exports, "STARKNET_GENESIS_NFT_URI", {
340
+ Object.defineProperty(exports, "MAX_IMAGE_REDIRECTS", {
994
341
  enumerable: true,
995
- get: function () { return chunk2R7XBA34_cjs.STARKNET_GENESIS_NFT_URI; }
342
+ get: function () { return chunkZVANOWIB_cjs.MAX_IMAGE_REDIRECTS; }
996
343
  });
997
- Object.defineProperty(exports, "STARKNET_IPCOLLECTION_CLASS_HASH", {
344
+ Object.defineProperty(exports, "MAX_IPFS_GATEWAY_RESPONSE_BYTES", {
998
345
  enumerable: true,
999
- get: function () { return chunk2R7XBA34_cjs.STARKNET_IPCOLLECTION_CLASS_HASH; }
346
+ get: function () { return chunkZVANOWIB_cjs.MAX_IPFS_GATEWAY_RESPONSE_BYTES; }
1000
347
  });
1001
- Object.defineProperty(exports, "STARKNET_IPNFT_CLASS_HASH", {
348
+ Object.defineProperty(exports, "createAppGateway", {
1002
349
  enumerable: true,
1003
- get: function () { return chunk2R7XBA34_cjs.STARKNET_IPNFT_CLASS_HASH; }
350
+ get: function () { return chunkZVANOWIB_cjs.createAppGateway; }
1004
351
  });
1005
- Object.defineProperty(exports, "STARKNET_IP_CLUB_COLLECTION_CLASS_HASH", {
352
+ Object.defineProperty(exports, "createAppSessionHandler", {
1006
353
  enumerable: true,
1007
- get: function () { return chunk2R7XBA34_cjs.STARKNET_IP_CLUB_COLLECTION_CLASS_HASH; }
354
+ get: function () { return chunkZVANOWIB_cjs.createAppSessionHandler; }
1008
355
  });
1009
- Object.defineProperty(exports, "STARKNET_IP_CLUB_FACTORY_CONTRACT", {
356
+ Object.defineProperty(exports, "createImageProxyHandler", {
1010
357
  enumerable: true,
1011
- get: function () { return chunk2R7XBA34_cjs.STARKNET_IP_CLUB_FACTORY_CONTRACT; }
358
+ get: function () { return chunkZVANOWIB_cjs.createImageProxyHandler; }
1012
359
  });
1013
- Object.defineProperty(exports, "STARKNET_IP_SPONSORSHIP_CLASS_HASH", {
360
+ Object.defineProperty(exports, "getBackendSignedUrl", {
1014
361
  enumerable: true,
1015
- get: function () { return chunk2R7XBA34_cjs.STARKNET_IP_SPONSORSHIP_CLASS_HASH; }
362
+ get: function () { return chunkZVANOWIB_cjs.getBackendSignedUrl; }
1016
363
  });
1017
- Object.defineProperty(exports, "STARKNET_IP_SPONSORSHIP_CONTRACT", {
364
+ Object.defineProperty(exports, "isPrivateHost", {
1018
365
  enumerable: true,
1019
- get: function () { return chunk2R7XBA34_cjs.STARKNET_IP_SPONSORSHIP_CONTRACT; }
366
+ get: function () { return chunkZVANOWIB_cjs.isPrivateHost; }
1020
367
  });
1021
- Object.defineProperty(exports, "STARKNET_IP_TICKETS_FACTORY_CONTRACT", {
368
+ Object.defineProperty(exports, "isPrivateOrInsecureUrl", {
1022
369
  enumerable: true,
1023
- get: function () { return chunk2R7XBA34_cjs.STARKNET_IP_TICKETS_FACTORY_CONTRACT; }
370
+ get: function () { return chunkZVANOWIB_cjs.isPrivateOrInsecureUrl; }
1024
371
  });
1025
- Object.defineProperty(exports, "STARKNET_IP_TICKET_COLLECTION_CLASS_HASH", {
372
+ Object.defineProperty(exports, "isPublicAppRoute", {
1026
373
  enumerable: true,
1027
- get: function () { return chunk2R7XBA34_cjs.STARKNET_IP_TICKET_COLLECTION_CLASS_HASH; }
374
+ get: function () { return chunkZVANOWIB_cjs.isPublicAppRoute; }
1028
375
  });
1029
- Object.defineProperty(exports, "STARKNET_MARKETPLACE_1155_CLASS_HASH", {
376
+ Object.defineProperty(exports, "isSameOrigin", {
1030
377
  enumerable: true,
1031
- get: function () { return chunk2R7XBA34_cjs.STARKNET_MARKETPLACE_1155_CLASS_HASH; }
378
+ get: function () { return chunkZVANOWIB_cjs.isSameOrigin; }
1032
379
  });
1033
- Object.defineProperty(exports, "STARKNET_MARKETPLACE_1155_CONTRACT", {
380
+ Object.defineProperty(exports, "isValidIpfsCidPath", {
1034
381
  enumerable: true,
1035
- get: function () { return chunk2R7XBA34_cjs.STARKNET_MARKETPLACE_1155_CONTRACT; }
382
+ get: function () { return chunkZVANOWIB_cjs.isValidIpfsCidPath; }
1036
383
  });
1037
- Object.defineProperty(exports, "STARKNET_MARKETPLACE_1155_START_BLOCK", {
384
+ Object.defineProperty(exports, "issueAccountSessionToken", {
1038
385
  enumerable: true,
1039
- get: function () { return chunk2R7XBA34_cjs.STARKNET_MARKETPLACE_1155_START_BLOCK; }
386
+ get: function () { return chunkZVANOWIB_cjs.issueAccountSessionToken; }
1040
387
  });
1041
- Object.defineProperty(exports, "STARKNET_MARKETPLACE_721_CLASS_HASH", {
388
+ Object.defineProperty(exports, "issueSiwsToken", {
1042
389
  enumerable: true,
1043
- get: function () { return chunk2R7XBA34_cjs.STARKNET_MARKETPLACE_721_CLASS_HASH; }
390
+ get: function () { return chunkZVANOWIB_cjs.issueSiwsToken; }
1044
391
  });
1045
- Object.defineProperty(exports, "STARKNET_MARKETPLACE_721_CONTRACT", {
392
+ Object.defineProperty(exports, "readBodyWithCap", {
1046
393
  enumerable: true,
1047
- get: function () { return chunk2R7XBA34_cjs.STARKNET_MARKETPLACE_721_CONTRACT; }
394
+ get: function () { return chunkZVANOWIB_cjs.readBodyWithCap; }
1048
395
  });
1049
- Object.defineProperty(exports, "STARKNET_MARKETPLACE_721_START_BLOCK", {
396
+ Object.defineProperty(exports, "resolveSafeImageContentType", {
1050
397
  enumerable: true,
1051
- get: function () { return chunk2R7XBA34_cjs.STARKNET_MARKETPLACE_721_START_BLOCK; }
398
+ get: function () { return chunkZVANOWIB_cjs.resolveSafeImageContentType; }
1052
399
  });
1053
- Object.defineProperty(exports, "STARKNET_NFTCOMMENTS_CONTRACT", {
400
+ Object.defineProperty(exports, "uploadDirectoryToBackend", {
1054
401
  enumerable: true,
1055
- get: function () { return chunk2R7XBA34_cjs.STARKNET_NFTCOMMENTS_CONTRACT; }
402
+ get: function () { return chunkZVANOWIB_cjs.uploadDirectoryToBackend; }
1056
403
  });
1057
- Object.defineProperty(exports, "STARKNET_POP_COLLECTION_CLASS_HASH", {
404
+ Object.defineProperty(exports, "uploadFileToBackend", {
1058
405
  enumerable: true,
1059
- get: function () { return chunk2R7XBA34_cjs.STARKNET_POP_COLLECTION_CLASS_HASH; }
406
+ get: function () { return chunkZVANOWIB_cjs.uploadFileToBackend; }
1060
407
  });
1061
- Object.defineProperty(exports, "STARKNET_POP_FACTORY_CONTRACT", {
408
+ Object.defineProperty(exports, "uploadJsonToBackend", {
1062
409
  enumerable: true,
1063
- get: function () { return chunk2R7XBA34_cjs.STARKNET_POP_FACTORY_CONTRACT; }
410
+ get: function () { return chunkZVANOWIB_cjs.uploadJsonToBackend; }
1064
411
  });
1065
- Object.defineProperty(exports, "STARKNET_POP_FACTORY_START_BLOCK", {
412
+ Object.defineProperty(exports, "validateUrl", {
1066
413
  enumerable: true,
1067
- get: function () { return chunk2R7XBA34_cjs.STARKNET_POP_FACTORY_START_BLOCK; }
414
+ get: function () { return chunkZVANOWIB_cjs.validateUrl; }
1068
415
  });
1069
- Object.defineProperty(exports, "SUPPORTED_TOKENS", {
416
+ Object.defineProperty(exports, "verifyAccountSessionToken", {
1070
417
  enumerable: true,
1071
- get: function () { return chunk2R7XBA34_cjs.SUPPORTED_TOKENS; }
418
+ get: function () { return chunkZVANOWIB_cjs.verifyAccountSessionToken; }
1072
419
  });
1073
- Object.defineProperty(exports, "SUPPORTED_URL_CHAINS", {
420
+ Object.defineProperty(exports, "verifySiwsToken", {
1074
421
  enumerable: true,
1075
- get: function () { return chunk2R7XBA34_cjs.SUPPORTED_URL_CHAINS; }
422
+ get: function () { return chunkZVANOWIB_cjs.verifySiwsToken; }
1076
423
  });
1077
- Object.defineProperty(exports, "UserFacingError", {
424
+ Object.defineProperty(exports, "ApiClient", {
1078
425
  enumerable: true,
1079
- get: function () { return chunk2R7XBA34_cjs.UserFacingError; }
426
+ get: function () { return chunk3HPMEDYH_cjs.ApiClient; }
1080
427
  });
1081
- Object.defineProperty(exports, "assetHref", {
428
+ Object.defineProperty(exports, "DEFAULT_CURRENCY", {
1082
429
  enumerable: true,
1083
- get: function () { return chunk2R7XBA34_cjs.assetHref; }
430
+ get: function () { return chunk3HPMEDYH_cjs.DEFAULT_CURRENCY; }
1084
431
  });
1085
- Object.defineProperty(exports, "chainFromSlug", {
432
+ Object.defineProperty(exports, "DeviceKeyMissingError", {
1086
433
  enumerable: true,
1087
- get: function () { return chunk2R7XBA34_cjs.chainFromSlug; }
434
+ get: function () { return chunk3HPMEDYH_cjs.DeviceKeyMissingError; }
1088
435
  });
1089
- Object.defineProperty(exports, "chainSlug", {
436
+ Object.defineProperty(exports, "MedialaneApiError", {
1090
437
  enumerable: true,
1091
- get: function () { return chunk2R7XBA34_cjs.chainSlug; }
438
+ get: function () { return chunk3HPMEDYH_cjs.MedialaneApiError; }
1092
439
  });
1093
- Object.defineProperty(exports, "coinHref", {
440
+ Object.defineProperty(exports, "MedialaneError", {
1094
441
  enumerable: true,
1095
- get: function () { return chunk2R7XBA34_cjs.coinHref; }
442
+ get: function () { return chunk3HPMEDYH_cjs.MedialaneError; }
1096
443
  });
1097
- Object.defineProperty(exports, "collectionHref", {
444
+ Object.defineProperty(exports, "PasskeyCancelledError", {
1098
445
  enumerable: true,
1099
- get: function () { return chunk2R7XBA34_cjs.collectionHref; }
446
+ get: function () { return chunk3HPMEDYH_cjs.PasskeyCancelledError; }
1100
447
  });
1101
- Object.defineProperty(exports, "dropHref", {
448
+ Object.defineProperty(exports, "PasskeyUnsupportedError", {
1102
449
  enumerable: true,
1103
- get: function () { return chunk2R7XBA34_cjs.dropHref; }
450
+ get: function () { return chunk3HPMEDYH_cjs.PasskeyUnsupportedError; }
1104
451
  });
1105
- Object.defineProperty(exports, "encodeU256", {
452
+ Object.defineProperty(exports, "STARKNET_COLLECTION_1155_CONTRACT", {
1106
453
  enumerable: true,
1107
- get: function () { return chunk2R7XBA34_cjs.encodeU256; }
454
+ get: function () { return chunk3HPMEDYH_cjs.STARKNET_COLLECTION_1155_CONTRACT; }
1108
455
  });
1109
- Object.defineProperty(exports, "formatAmount", {
456
+ Object.defineProperty(exports, "STARKNET_COLLECTION_721_CONTRACT", {
1110
457
  enumerable: true,
1111
- get: function () { return chunk2R7XBA34_cjs.formatAmount; }
458
+ get: function () { return chunk3HPMEDYH_cjs.STARKNET_COLLECTION_721_CONTRACT; }
1112
459
  });
1113
- Object.defineProperty(exports, "getListableTokens", {
460
+ Object.defineProperty(exports, "STARKNET_CREATOR_COIN_FACTORY_CONTRACT", {
1114
461
  enumerable: true,
1115
- get: function () { return chunk2R7XBA34_cjs.getListableTokens; }
462
+ get: function () { return chunk3HPMEDYH_cjs.STARKNET_CREATOR_COIN_FACTORY_CONTRACT; }
1116
463
  });
1117
- Object.defineProperty(exports, "getService", {
464
+ Object.defineProperty(exports, "STARKNET_DATA_TOKENIZATION_721_CONTRACT", {
1118
465
  enumerable: true,
1119
- get: function () { return chunk2R7XBA34_cjs.getService; }
466
+ get: function () { return chunk3HPMEDYH_cjs.STARKNET_DATA_TOKENIZATION_721_CONTRACT; }
1120
467
  });
1121
- Object.defineProperty(exports, "getServicesByCapability", {
468
+ Object.defineProperty(exports, "STARKNET_DROP_FACTORY_CONTRACT", {
1122
469
  enumerable: true,
1123
- get: function () { return chunk2R7XBA34_cjs.getServicesByCapability; }
470
+ get: function () { return chunk3HPMEDYH_cjs.STARKNET_DROP_FACTORY_CONTRACT; }
1124
471
  });
1125
- Object.defineProperty(exports, "getTokenByAddress", {
472
+ Object.defineProperty(exports, "STARKNET_DROP_FACTORY_START_BLOCK", {
1126
473
  enumerable: true,
1127
- get: function () { return chunk2R7XBA34_cjs.getTokenByAddress; }
474
+ get: function () { return chunk3HPMEDYH_cjs.STARKNET_DROP_FACTORY_START_BLOCK; }
1128
475
  });
1129
- Object.defineProperty(exports, "getTokenBySymbol", {
476
+ Object.defineProperty(exports, "STARKNET_GENESIS_MINT_CONTRACT", {
1130
477
  enumerable: true,
1131
- get: function () { return chunk2R7XBA34_cjs.getTokenBySymbol; }
478
+ get: function () { return chunk3HPMEDYH_cjs.STARKNET_GENESIS_MINT_CONTRACT; }
1132
479
  });
1133
- Object.defineProperty(exports, "hasCapability", {
480
+ Object.defineProperty(exports, "STARKNET_GENESIS_NFT_URI", {
1134
481
  enumerable: true,
1135
- get: function () { return chunk2R7XBA34_cjs.hasCapability; }
482
+ get: function () { return chunk3HPMEDYH_cjs.STARKNET_GENESIS_NFT_URI; }
1136
483
  });
1137
- Object.defineProperty(exports, "isServiceId", {
484
+ Object.defineProperty(exports, "STARKNET_IP_CLUB_FACTORY_CONTRACT", {
1138
485
  enumerable: true,
1139
- get: function () { return chunk2R7XBA34_cjs.isServiceId; }
486
+ get: function () { return chunk3HPMEDYH_cjs.STARKNET_IP_CLUB_FACTORY_CONTRACT; }
1140
487
  });
1141
- Object.defineProperty(exports, "listServices", {
488
+ Object.defineProperty(exports, "STARKNET_IP_SPONSORSHIP_CONTRACT", {
1142
489
  enumerable: true,
1143
- get: function () { return chunk2R7XBA34_cjs.listServices; }
490
+ get: function () { return chunk3HPMEDYH_cjs.STARKNET_IP_SPONSORSHIP_CONTRACT; }
1144
491
  });
1145
- Object.defineProperty(exports, "normalizeAddress", {
492
+ Object.defineProperty(exports, "STARKNET_IP_TICKETS_FACTORY_CONTRACT", {
1146
493
  enumerable: true,
1147
- get: function () { return chunk2R7XBA34_cjs.normalizeAddress; }
494
+ get: function () { return chunk3HPMEDYH_cjs.STARKNET_IP_TICKETS_FACTORY_CONTRACT; }
1148
495
  });
1149
- Object.defineProperty(exports, "normalizeHash", {
496
+ Object.defineProperty(exports, "STARKNET_MARKETPLACE_1155_CONTRACT", {
1150
497
  enumerable: true,
1151
- get: function () { return chunk2R7XBA34_cjs.normalizeHash; }
498
+ get: function () { return chunk3HPMEDYH_cjs.STARKNET_MARKETPLACE_1155_CONTRACT; }
1152
499
  });
1153
- Object.defineProperty(exports, "parseAmount", {
500
+ Object.defineProperty(exports, "STARKNET_MARKETPLACE_721_CONTRACT", {
1154
501
  enumerable: true,
1155
- get: function () { return chunk2R7XBA34_cjs.parseAmount; }
502
+ get: function () { return chunk3HPMEDYH_cjs.STARKNET_MARKETPLACE_721_CONTRACT; }
1156
503
  });
1157
- Object.defineProperty(exports, "profileHref", {
504
+ Object.defineProperty(exports, "STARKNET_NFTCOMMENTS_CONTRACT", {
1158
505
  enumerable: true,
1159
- get: function () { return chunk2R7XBA34_cjs.profileHref; }
506
+ get: function () { return chunk3HPMEDYH_cjs.STARKNET_NFTCOMMENTS_CONTRACT; }
1160
507
  });
1161
- Object.defineProperty(exports, "resolveAppFeeConfig", {
508
+ Object.defineProperty(exports, "STARKNET_POP_FACTORY_CONTRACT", {
1162
509
  enumerable: true,
1163
- get: function () { return chunk2R7XBA34_cjs.resolveAppFeeConfig; }
510
+ get: function () { return chunk3HPMEDYH_cjs.STARKNET_POP_FACTORY_CONTRACT; }
1164
511
  });
1165
- Object.defineProperty(exports, "resolveConfig", {
512
+ Object.defineProperty(exports, "STARKNET_POP_FACTORY_START_BLOCK", {
1166
513
  enumerable: true,
1167
- get: function () { return chunk2R7XBA34_cjs.resolveConfig; }
514
+ get: function () { return chunk3HPMEDYH_cjs.STARKNET_POP_FACTORY_START_BLOCK; }
1168
515
  });
1169
- Object.defineProperty(exports, "resolveFeeConfig", {
516
+ Object.defineProperty(exports, "SUPPORTED_TOKENS", {
1170
517
  enumerable: true,
1171
- get: function () { return chunk2R7XBA34_cjs.resolveFeeConfig; }
518
+ get: function () { return chunk3HPMEDYH_cjs.SUPPORTED_TOKENS; }
1172
519
  });
1173
- Object.defineProperty(exports, "shortenAddress", {
520
+ Object.defineProperty(exports, "UserFacingError", {
1174
521
  enumerable: true,
1175
- get: function () { return chunk2R7XBA34_cjs.shortenAddress; }
522
+ get: function () { return chunk3HPMEDYH_cjs.UserFacingError; }
1176
523
  });
1177
- Object.defineProperty(exports, "stringifyBigInts", {
524
+ Object.defineProperty(exports, "formatAmount", {
1178
525
  enumerable: true,
1179
- get: function () { return chunk2R7XBA34_cjs.stringifyBigInts; }
526
+ get: function () { return chunk3HPMEDYH_cjs.formatAmount; }
1180
527
  });
1181
- Object.defineProperty(exports, "u256ToBigInt", {
528
+ Object.defineProperty(exports, "getListableTokens", {
529
+ enumerable: true,
530
+ get: function () { return chunk3HPMEDYH_cjs.getListableTokens; }
531
+ });
532
+ Object.defineProperty(exports, "getTokenByAddress", {
533
+ enumerable: true,
534
+ get: function () { return chunk3HPMEDYH_cjs.getTokenByAddress; }
535
+ });
536
+ Object.defineProperty(exports, "getTokenBySymbol", {
537
+ enumerable: true,
538
+ get: function () { return chunk3HPMEDYH_cjs.getTokenBySymbol; }
539
+ });
540
+ Object.defineProperty(exports, "normalizeAddress", {
541
+ enumerable: true,
542
+ get: function () { return chunk3HPMEDYH_cjs.normalizeAddress; }
543
+ });
544
+ Object.defineProperty(exports, "normalizeHash", {
545
+ enumerable: true,
546
+ get: function () { return chunk3HPMEDYH_cjs.normalizeHash; }
547
+ });
548
+ Object.defineProperty(exports, "parseAmount", {
549
+ enumerable: true,
550
+ get: function () { return chunk3HPMEDYH_cjs.parseAmount; }
551
+ });
552
+ Object.defineProperty(exports, "shortenAddress", {
1182
553
  enumerable: true,
1183
- get: function () { return chunk2R7XBA34_cjs.u256ToBigInt; }
554
+ get: function () { return chunk3HPMEDYH_cjs.shortenAddress; }
1184
555
  });
1185
556
  Object.defineProperty(exports, "CHAINS", {
1186
557
  enumerable: true,
1187
- get: function () { return chunk7EYJC5CB_cjs.CHAINS; }
558
+ get: function () { return chunkH2NJB3AK_cjs.CHAINS; }
1188
559
  });
1189
560
  Object.defineProperty(exports, "DEFAULT_CHAIN", {
1190
561
  enumerable: true,
1191
- get: function () { return chunk7EYJC5CB_cjs.DEFAULT_CHAIN; }
562
+ get: function () { return chunkH2NJB3AK_cjs.DEFAULT_CHAIN; }
1192
563
  });
1193
564
  Object.defineProperty(exports, "getCoordinates", {
1194
565
  enumerable: true,
1195
- get: function () { return chunk7EYJC5CB_cjs.getCoordinates; }
566
+ get: function () { return chunkH2NJB3AK_cjs.getCoordinates; }
1196
567
  });
1197
568
  Object.defineProperty(exports, "getStarknetCoordinates", {
1198
569
  enumerable: true,
1199
- get: function () { return chunk7EYJC5CB_cjs.getStarknetCoordinates; }
570
+ get: function () { return chunkH2NJB3AK_cjs.getStarknetCoordinates; }
1200
571
  });
1201
- exports.ACCOUNT_SESSION_COOKIE = ACCOUNT_SESSION_COOKIE;
1202
- exports.ACCOUNT_SESSION_TTL_SECONDS = ACCOUNT_SESSION_TTL_SECONDS;
1203
- exports.ALLOWED_IMAGE_CONTENT_TYPES = ALLOWED_IMAGE_CONTENT_TYPES;
1204
- exports.IDENTITY_TTL_SECONDS = IDENTITY_TTL_SECONDS;
1205
- exports.IPFS_SAFE_CONTENT_TYPE_PREFIXES = IPFS_SAFE_CONTENT_TYPE_PREFIXES;
1206
- exports.MAX_IMAGE_PROXY_BYTES = MAX_IMAGE_PROXY_BYTES;
1207
- exports.MAX_IMAGE_REDIRECTS = MAX_IMAGE_REDIRECTS;
1208
- exports.MAX_IPFS_GATEWAY_RESPONSE_BYTES = MAX_IPFS_GATEWAY_RESPONSE_BYTES;
1209
572
  exports.MAX_UPLOAD_BYTES = MAX_UPLOAD_BYTES;
1210
573
  exports.OPEN_LICENSES = OPEN_LICENSES;
1211
574
  exports.RESERVED_TRAITS = RESERVED_TRAITS;
@@ -1215,33 +578,14 @@ exports.acceptFor = acceptFor;
1215
578
  exports.accountPageUrl = accountPageUrl;
1216
579
  exports.buildAssetMetadata = buildAssetMetadata;
1217
580
  exports.buildCollectionMetadata = buildCollectionMetadata;
1218
- exports.createAppGateway = createAppGateway;
1219
- exports.createAppSessionHandler = createAppSessionHandler;
1220
- exports.createImageProxyHandler = createImageProxyHandler;
1221
581
  exports.createLaunchpadRunsClient = createLaunchpadRunsClient;
1222
582
  exports.formatFileSize = formatFileSize;
1223
- exports.getBackendSignedUrl = getBackendSignedUrl;
1224
583
  exports.getDerivativesTerm = getDerivativesTerm;
1225
584
  exports.isCertificateEmissionRun = isCertificateEmissionRun;
1226
585
  exports.isDataTokenizationRun = isDataTokenizationRun;
1227
- exports.isPrivateHost = isPrivateHost;
1228
- exports.isPrivateOrInsecureUrl = isPrivateOrInsecureUrl;
1229
- exports.isPublicAppRoute = isPublicAppRoute;
1230
- exports.isSameOrigin = isSameOrigin;
1231
586
  exports.isTicketingRun = isTicketingRun;
1232
- exports.isValidIpfsCidPath = isValidIpfsCidPath;
1233
- exports.issueAccountSessionToken = issueAccountSessionToken;
1234
- exports.issueSiwsToken = issueSiwsToken;
1235
- exports.readBodyWithCap = readBodyWithCap;
1236
587
  exports.resolveRemixPolicy = resolveRemixPolicy;
1237
- exports.resolveSafeImageContentType = resolveSafeImageContentType;
1238
- exports.uploadDirectoryToBackend = uploadDirectoryToBackend;
1239
588
  exports.uploadError = uploadError;
1240
- exports.uploadFileToBackend = uploadFileToBackend;
1241
- exports.uploadJsonToBackend = uploadJsonToBackend;
1242
589
  exports.uploadSizeError = uploadSizeError;
1243
- exports.validateUrl = validateUrl;
1244
- exports.verifyAccountSessionToken = verifyAccountSessionToken;
1245
- exports.verifySiwsToken = verifySiwsToken;
1246
590
  //# sourceMappingURL=index.cjs.map
1247
591
  //# sourceMappingURL=index.cjs.map