@zoralabs/protocol-sdk 0.7.0 → 0.7.1
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/.turbo/turbo-build.log +6 -6
- package/CHANGELOG.md +6 -0
- package/dist/index.cjs +1169 -15
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1162 -11
- package/dist/index.js.map +1 -1
- package/dist/ipfs/arweave.d.ts +3 -0
- package/dist/ipfs/arweave.d.ts.map +1 -0
- package/dist/ipfs/gateway.d.ts +4 -0
- package/dist/ipfs/gateway.d.ts.map +1 -0
- package/dist/ipfs/index.d.ts +4 -0
- package/dist/ipfs/index.d.ts.map +1 -0
- package/dist/ipfs/ipfs.d.ts +5 -0
- package/dist/ipfs/ipfs.d.ts.map +1 -0
- package/dist/ipfs/mimeTypes.d.ts +25 -0
- package/dist/ipfs/mimeTypes.d.ts.map +1 -0
- package/dist/ipfs/text-metadata.d.ts +5 -0
- package/dist/ipfs/text-metadata.d.ts.map +1 -0
- package/dist/ipfs/token-metadata.d.ts +14 -0
- package/dist/ipfs/token-metadata.d.ts.map +1 -0
- package/dist/ipfs/types.d.ts +49 -0
- package/dist/ipfs/types.d.ts.map +1 -0
- package/dist/premint/premint-client.d.ts +2 -1
- package/dist/premint/premint-client.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/index.ts +2 -0
- package/src/ipfs/arweave.ts +5 -0
- package/src/ipfs/gateway.ts +48 -0
- package/src/ipfs/index.ts +7 -0
- package/src/ipfs/ipfs.ts +82 -0
- package/src/ipfs/mimeTypes.ts +141 -0
- package/src/ipfs/text-metadata.ts +128 -0
- package/src/ipfs/token-metadata.ts +99 -0
- package/src/ipfs/types.ts +54 -0
- package/src/premint/premint-client.ts +9 -1
package/dist/index.cjs
CHANGED
|
@@ -9,11 +9,11 @@ var __export = (target, all) => {
|
|
|
9
9
|
for (var name in all)
|
|
10
10
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
11
|
};
|
|
12
|
-
var __copyProps = (to,
|
|
13
|
-
if (
|
|
14
|
-
for (let key of __getOwnPropNames(
|
|
12
|
+
var __copyProps = (to, from2, except, desc) => {
|
|
13
|
+
if (from2 && typeof from2 === "object" || typeof from2 === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from2))
|
|
15
15
|
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () =>
|
|
16
|
+
__defProp(to, key, { get: () => from2[key], enumerable: !(desc = __getOwnPropDesc(from2, key)) || desc.enumerable });
|
|
17
17
|
}
|
|
18
18
|
return to;
|
|
19
19
|
};
|
|
@@ -58,6 +58,7 @@ __export(src_exports, {
|
|
|
58
58
|
encodeCollectOnManager: () => encodeCollectOnManager,
|
|
59
59
|
encodePostSignatureInput: () => encodePostSignatureInput,
|
|
60
60
|
encodePremintForAPI: () => encodePremintForAPI,
|
|
61
|
+
generateTextNftMetadataFiles: () => generateTextNftMetadataFiles,
|
|
61
62
|
getApiNetworkConfigForChain: () => getApiNetworkConfigForChain,
|
|
62
63
|
getDataFromPremintReceipt: () => getDataFromPremintReceipt,
|
|
63
64
|
getDefaultFixedPriceMinterAddress: () => getDefaultFixedPriceMinterAddress,
|
|
@@ -77,11 +78,13 @@ __export(src_exports, {
|
|
|
77
78
|
isPremintConfigV2: () => isPremintConfigV2,
|
|
78
79
|
isValidSignature: () => isValidSignature,
|
|
79
80
|
makeCallWithEthSafeTransferData: () => makeCallWithEthSafeTransferData,
|
|
81
|
+
makeMediaTokenMetadata: () => makeMediaTokenMetadata,
|
|
80
82
|
makeMintRewardsRecipient: () => makeMintRewardsRecipient,
|
|
81
83
|
makeNewPremint: () => makeNewPremint,
|
|
82
84
|
makePermitToCollectPremintOrNonPremint: () => makePermitToCollectPremintOrNonPremint,
|
|
83
85
|
makePermitTransferBatchAndTypeData: () => makePermitTransferBatchAndTypeData,
|
|
84
86
|
makePermitTransferTypeData: () => makePermitTransferTypeData,
|
|
87
|
+
makeTextTokenMetadata: () => makeTextTokenMetadata,
|
|
85
88
|
makeUrls: () => makeUrls,
|
|
86
89
|
migratePremintConfigToV2: () => migratePremintConfigToV2,
|
|
87
90
|
mintWithEthParams: () => mintWithEthParams,
|
|
@@ -115,8 +118,8 @@ var import_viem = require("viem");
|
|
|
115
118
|
var ZORA_API_BASE = "https://api.zora.co/";
|
|
116
119
|
var OPEN_EDITION_MINT_SIZE = BigInt("18446744073709551615");
|
|
117
120
|
var SUBGRAPH_CONFIG_BASE = "https://api.goldsky.com/api/public/project_clhk16b61ay9t49vm6ntn4mkz/subgraphs";
|
|
118
|
-
function getSubgraph(name,
|
|
119
|
-
return `${SUBGRAPH_CONFIG_BASE}/${name}/${
|
|
121
|
+
function getSubgraph(name, version2) {
|
|
122
|
+
return `${SUBGRAPH_CONFIG_BASE}/${name}/${version2}/gn`;
|
|
120
123
|
}
|
|
121
124
|
var zora721Abi = (0, import_viem.parseAbi)([
|
|
122
125
|
"function mintWithRewards(address recipient, uint256 quantity, string calldata comment, address mintReferral) external payable",
|
|
@@ -417,7 +420,7 @@ function migratePremintConfigToV2({
|
|
|
417
420
|
};
|
|
418
421
|
}
|
|
419
422
|
var recoverCreatorFromCreatorAttribution = async ({
|
|
420
|
-
creatorAttribution: { version, domainName, structHash, signature },
|
|
423
|
+
creatorAttribution: { version: version2, domainName, structHash, signature },
|
|
421
424
|
chainId,
|
|
422
425
|
tokenContract
|
|
423
426
|
}) => {
|
|
@@ -426,7 +429,7 @@ var recoverCreatorFromCreatorAttribution = async ({
|
|
|
426
429
|
chainId,
|
|
427
430
|
name: domainName,
|
|
428
431
|
verifyingContract: tokenContract,
|
|
429
|
-
version
|
|
432
|
+
version: version2
|
|
430
433
|
},
|
|
431
434
|
types: {
|
|
432
435
|
EIP712Domain: [
|
|
@@ -462,11 +465,11 @@ var supportedPremintVersions = async ({
|
|
|
462
465
|
});
|
|
463
466
|
};
|
|
464
467
|
var supportsPremintVersion = async ({
|
|
465
|
-
version,
|
|
468
|
+
version: version2,
|
|
466
469
|
tokenContract,
|
|
467
470
|
publicClient
|
|
468
471
|
}) => {
|
|
469
|
-
return (await supportedPremintVersions({ tokenContract, publicClient })).includes(
|
|
472
|
+
return (await supportedPremintVersions({ tokenContract, publicClient })).includes(version2);
|
|
470
473
|
};
|
|
471
474
|
async function getPremintCollectionAddress({
|
|
472
475
|
publicClient,
|
|
@@ -490,7 +493,7 @@ async function getPremintCollectionAddress({
|
|
|
490
493
|
}
|
|
491
494
|
function applyUpdateToPremint({
|
|
492
495
|
uid,
|
|
493
|
-
version,
|
|
496
|
+
version: version2,
|
|
494
497
|
tokenConfig,
|
|
495
498
|
tokenConfigUpdates
|
|
496
499
|
}) {
|
|
@@ -501,7 +504,7 @@ function applyUpdateToPremint({
|
|
|
501
504
|
const result = {
|
|
502
505
|
deleted: false,
|
|
503
506
|
uid,
|
|
504
|
-
version:
|
|
507
|
+
version: version2 + 1,
|
|
505
508
|
tokenConfig: updatedTokenConfig
|
|
506
509
|
};
|
|
507
510
|
return result;
|
|
@@ -1287,13 +1290,19 @@ function makePremintReturn({
|
|
|
1287
1290
|
premintConfigVersion
|
|
1288
1291
|
});
|
|
1289
1292
|
};
|
|
1293
|
+
const urls = makeUrls({
|
|
1294
|
+
chainId,
|
|
1295
|
+
address: collectionAddress,
|
|
1296
|
+
uid: premintConfig.uid
|
|
1297
|
+
});
|
|
1290
1298
|
return {
|
|
1291
1299
|
premintConfig,
|
|
1292
1300
|
premintConfigVersion,
|
|
1293
1301
|
typedDataDefinition,
|
|
1294
1302
|
collectionAddress,
|
|
1295
1303
|
signAndSubmit,
|
|
1296
|
-
submit
|
|
1304
|
+
submit,
|
|
1305
|
+
urls
|
|
1297
1306
|
};
|
|
1298
1307
|
}
|
|
1299
1308
|
async function signPremint({
|
|
@@ -2897,13 +2906,13 @@ var unwrapAndForwardEthPermitAndTypedDataDefinition = ({
|
|
|
2897
2906
|
chainId,
|
|
2898
2907
|
tokenIds,
|
|
2899
2908
|
quantities,
|
|
2900
|
-
from,
|
|
2909
|
+
from: from2,
|
|
2901
2910
|
callWithEth,
|
|
2902
2911
|
safeTransferData,
|
|
2903
2912
|
deadline,
|
|
2904
2913
|
nonce
|
|
2905
2914
|
}) => makePermitTransferBatchAndTypeData({
|
|
2906
|
-
mintsOwner:
|
|
2915
|
+
mintsOwner: from2,
|
|
2907
2916
|
chainId,
|
|
2908
2917
|
deadline,
|
|
2909
2918
|
tokenIds,
|
|
@@ -2951,6 +2960,1148 @@ function createCollectorClient(params) {
|
|
|
2951
2960
|
getMintCosts: (p) => mintClient.getMintCosts(p)
|
|
2952
2961
|
};
|
|
2953
2962
|
}
|
|
2963
|
+
|
|
2964
|
+
// src/ipfs/arweave.ts
|
|
2965
|
+
function isArweaveURL(url) {
|
|
2966
|
+
return url && typeof url === "string" ? url.startsWith("ar://") : false;
|
|
2967
|
+
}
|
|
2968
|
+
|
|
2969
|
+
// ../../node_modules/multiformats/esm/vendor/varint.js
|
|
2970
|
+
var encode_1 = encode;
|
|
2971
|
+
var MSB = 128;
|
|
2972
|
+
var REST = 127;
|
|
2973
|
+
var MSBALL = ~REST;
|
|
2974
|
+
var INT = Math.pow(2, 31);
|
|
2975
|
+
function encode(num, out, offset) {
|
|
2976
|
+
out = out || [];
|
|
2977
|
+
offset = offset || 0;
|
|
2978
|
+
var oldOffset = offset;
|
|
2979
|
+
while (num >= INT) {
|
|
2980
|
+
out[offset++] = num & 255 | MSB;
|
|
2981
|
+
num /= 128;
|
|
2982
|
+
}
|
|
2983
|
+
while (num & MSBALL) {
|
|
2984
|
+
out[offset++] = num & 255 | MSB;
|
|
2985
|
+
num >>>= 7;
|
|
2986
|
+
}
|
|
2987
|
+
out[offset] = num | 0;
|
|
2988
|
+
encode.bytes = offset - oldOffset + 1;
|
|
2989
|
+
return out;
|
|
2990
|
+
}
|
|
2991
|
+
var decode = read;
|
|
2992
|
+
var MSB$1 = 128;
|
|
2993
|
+
var REST$1 = 127;
|
|
2994
|
+
function read(buf, offset) {
|
|
2995
|
+
var res = 0, offset = offset || 0, shift = 0, counter = offset, b, l = buf.length;
|
|
2996
|
+
do {
|
|
2997
|
+
if (counter >= l) {
|
|
2998
|
+
read.bytes = 0;
|
|
2999
|
+
throw new RangeError("Could not decode varint");
|
|
3000
|
+
}
|
|
3001
|
+
b = buf[counter++];
|
|
3002
|
+
res += shift < 28 ? (b & REST$1) << shift : (b & REST$1) * Math.pow(2, shift);
|
|
3003
|
+
shift += 7;
|
|
3004
|
+
} while (b >= MSB$1);
|
|
3005
|
+
read.bytes = counter - offset;
|
|
3006
|
+
return res;
|
|
3007
|
+
}
|
|
3008
|
+
var N1 = Math.pow(2, 7);
|
|
3009
|
+
var N2 = Math.pow(2, 14);
|
|
3010
|
+
var N3 = Math.pow(2, 21);
|
|
3011
|
+
var N4 = Math.pow(2, 28);
|
|
3012
|
+
var N5 = Math.pow(2, 35);
|
|
3013
|
+
var N6 = Math.pow(2, 42);
|
|
3014
|
+
var N7 = Math.pow(2, 49);
|
|
3015
|
+
var N8 = Math.pow(2, 56);
|
|
3016
|
+
var N9 = Math.pow(2, 63);
|
|
3017
|
+
var length = function(value) {
|
|
3018
|
+
return value < N1 ? 1 : value < N2 ? 2 : value < N3 ? 3 : value < N4 ? 4 : value < N5 ? 5 : value < N6 ? 6 : value < N7 ? 7 : value < N8 ? 8 : value < N9 ? 9 : 10;
|
|
3019
|
+
};
|
|
3020
|
+
var varint = {
|
|
3021
|
+
encode: encode_1,
|
|
3022
|
+
decode,
|
|
3023
|
+
encodingLength: length
|
|
3024
|
+
};
|
|
3025
|
+
var _brrp_varint = varint;
|
|
3026
|
+
var varint_default = _brrp_varint;
|
|
3027
|
+
|
|
3028
|
+
// ../../node_modules/multiformats/esm/src/varint.js
|
|
3029
|
+
var decode2 = (data, offset = 0) => {
|
|
3030
|
+
const code = varint_default.decode(data, offset);
|
|
3031
|
+
return [
|
|
3032
|
+
code,
|
|
3033
|
+
varint_default.decode.bytes
|
|
3034
|
+
];
|
|
3035
|
+
};
|
|
3036
|
+
var encodeTo = (int, target, offset = 0) => {
|
|
3037
|
+
varint_default.encode(int, target, offset);
|
|
3038
|
+
return target;
|
|
3039
|
+
};
|
|
3040
|
+
var encodingLength = (int) => {
|
|
3041
|
+
return varint_default.encodingLength(int);
|
|
3042
|
+
};
|
|
3043
|
+
|
|
3044
|
+
// ../../node_modules/multiformats/esm/src/bytes.js
|
|
3045
|
+
var empty = new Uint8Array(0);
|
|
3046
|
+
var equals = (aa, bb) => {
|
|
3047
|
+
if (aa === bb)
|
|
3048
|
+
return true;
|
|
3049
|
+
if (aa.byteLength !== bb.byteLength) {
|
|
3050
|
+
return false;
|
|
3051
|
+
}
|
|
3052
|
+
for (let ii = 0; ii < aa.byteLength; ii++) {
|
|
3053
|
+
if (aa[ii] !== bb[ii]) {
|
|
3054
|
+
return false;
|
|
3055
|
+
}
|
|
3056
|
+
}
|
|
3057
|
+
return true;
|
|
3058
|
+
};
|
|
3059
|
+
var coerce3 = (o) => {
|
|
3060
|
+
if (o instanceof Uint8Array && o.constructor.name === "Uint8Array")
|
|
3061
|
+
return o;
|
|
3062
|
+
if (o instanceof ArrayBuffer)
|
|
3063
|
+
return new Uint8Array(o);
|
|
3064
|
+
if (ArrayBuffer.isView(o)) {
|
|
3065
|
+
return new Uint8Array(o.buffer, o.byteOffset, o.byteLength);
|
|
3066
|
+
}
|
|
3067
|
+
throw new Error("Unknown type, must be binary type");
|
|
3068
|
+
};
|
|
3069
|
+
|
|
3070
|
+
// ../../node_modules/multiformats/esm/src/hashes/digest.js
|
|
3071
|
+
var create = (code, digest) => {
|
|
3072
|
+
const size = digest.byteLength;
|
|
3073
|
+
const sizeOffset = encodingLength(code);
|
|
3074
|
+
const digestOffset = sizeOffset + encodingLength(size);
|
|
3075
|
+
const bytes = new Uint8Array(digestOffset + size);
|
|
3076
|
+
encodeTo(code, bytes, 0);
|
|
3077
|
+
encodeTo(size, bytes, sizeOffset);
|
|
3078
|
+
bytes.set(digest, digestOffset);
|
|
3079
|
+
return new Digest(code, size, digest, bytes);
|
|
3080
|
+
};
|
|
3081
|
+
var decode3 = (multihash) => {
|
|
3082
|
+
const bytes = coerce3(multihash);
|
|
3083
|
+
const [code, sizeOffset] = decode2(bytes);
|
|
3084
|
+
const [size, digestOffset] = decode2(bytes.subarray(sizeOffset));
|
|
3085
|
+
const digest = bytes.subarray(sizeOffset + digestOffset);
|
|
3086
|
+
if (digest.byteLength !== size) {
|
|
3087
|
+
throw new Error("Incorrect length");
|
|
3088
|
+
}
|
|
3089
|
+
return new Digest(code, size, digest, bytes);
|
|
3090
|
+
};
|
|
3091
|
+
var equals2 = (a, b) => {
|
|
3092
|
+
if (a === b) {
|
|
3093
|
+
return true;
|
|
3094
|
+
} else {
|
|
3095
|
+
return a.code === b.code && a.size === b.size && equals(a.bytes, b.bytes);
|
|
3096
|
+
}
|
|
3097
|
+
};
|
|
3098
|
+
var Digest = class {
|
|
3099
|
+
constructor(code, size, digest, bytes) {
|
|
3100
|
+
this.code = code;
|
|
3101
|
+
this.size = size;
|
|
3102
|
+
this.digest = digest;
|
|
3103
|
+
this.bytes = bytes;
|
|
3104
|
+
}
|
|
3105
|
+
};
|
|
3106
|
+
|
|
3107
|
+
// ../../node_modules/multiformats/esm/vendor/base-x.js
|
|
3108
|
+
function base2(ALPHABET, name) {
|
|
3109
|
+
if (ALPHABET.length >= 255) {
|
|
3110
|
+
throw new TypeError("Alphabet too long");
|
|
3111
|
+
}
|
|
3112
|
+
var BASE_MAP = new Uint8Array(256);
|
|
3113
|
+
for (var j = 0; j < BASE_MAP.length; j++) {
|
|
3114
|
+
BASE_MAP[j] = 255;
|
|
3115
|
+
}
|
|
3116
|
+
for (var i = 0; i < ALPHABET.length; i++) {
|
|
3117
|
+
var x = ALPHABET.charAt(i);
|
|
3118
|
+
var xc = x.charCodeAt(0);
|
|
3119
|
+
if (BASE_MAP[xc] !== 255) {
|
|
3120
|
+
throw new TypeError(x + " is ambiguous");
|
|
3121
|
+
}
|
|
3122
|
+
BASE_MAP[xc] = i;
|
|
3123
|
+
}
|
|
3124
|
+
var BASE = ALPHABET.length;
|
|
3125
|
+
var LEADER = ALPHABET.charAt(0);
|
|
3126
|
+
var FACTOR = Math.log(BASE) / Math.log(256);
|
|
3127
|
+
var iFACTOR = Math.log(256) / Math.log(BASE);
|
|
3128
|
+
function encode3(source) {
|
|
3129
|
+
if (source instanceof Uint8Array)
|
|
3130
|
+
;
|
|
3131
|
+
else if (ArrayBuffer.isView(source)) {
|
|
3132
|
+
source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);
|
|
3133
|
+
} else if (Array.isArray(source)) {
|
|
3134
|
+
source = Uint8Array.from(source);
|
|
3135
|
+
}
|
|
3136
|
+
if (!(source instanceof Uint8Array)) {
|
|
3137
|
+
throw new TypeError("Expected Uint8Array");
|
|
3138
|
+
}
|
|
3139
|
+
if (source.length === 0) {
|
|
3140
|
+
return "";
|
|
3141
|
+
}
|
|
3142
|
+
var zeroes = 0;
|
|
3143
|
+
var length2 = 0;
|
|
3144
|
+
var pbegin = 0;
|
|
3145
|
+
var pend = source.length;
|
|
3146
|
+
while (pbegin !== pend && source[pbegin] === 0) {
|
|
3147
|
+
pbegin++;
|
|
3148
|
+
zeroes++;
|
|
3149
|
+
}
|
|
3150
|
+
var size = (pend - pbegin) * iFACTOR + 1 >>> 0;
|
|
3151
|
+
var b58 = new Uint8Array(size);
|
|
3152
|
+
while (pbegin !== pend) {
|
|
3153
|
+
var carry = source[pbegin];
|
|
3154
|
+
var i2 = 0;
|
|
3155
|
+
for (var it1 = size - 1; (carry !== 0 || i2 < length2) && it1 !== -1; it1--, i2++) {
|
|
3156
|
+
carry += 256 * b58[it1] >>> 0;
|
|
3157
|
+
b58[it1] = carry % BASE >>> 0;
|
|
3158
|
+
carry = carry / BASE >>> 0;
|
|
3159
|
+
}
|
|
3160
|
+
if (carry !== 0) {
|
|
3161
|
+
throw new Error("Non-zero carry");
|
|
3162
|
+
}
|
|
3163
|
+
length2 = i2;
|
|
3164
|
+
pbegin++;
|
|
3165
|
+
}
|
|
3166
|
+
var it2 = size - length2;
|
|
3167
|
+
while (it2 !== size && b58[it2] === 0) {
|
|
3168
|
+
it2++;
|
|
3169
|
+
}
|
|
3170
|
+
var str = LEADER.repeat(zeroes);
|
|
3171
|
+
for (; it2 < size; ++it2) {
|
|
3172
|
+
str += ALPHABET.charAt(b58[it2]);
|
|
3173
|
+
}
|
|
3174
|
+
return str;
|
|
3175
|
+
}
|
|
3176
|
+
function decodeUnsafe(source) {
|
|
3177
|
+
if (typeof source !== "string") {
|
|
3178
|
+
throw new TypeError("Expected String");
|
|
3179
|
+
}
|
|
3180
|
+
if (source.length === 0) {
|
|
3181
|
+
return new Uint8Array();
|
|
3182
|
+
}
|
|
3183
|
+
var psz = 0;
|
|
3184
|
+
if (source[psz] === " ") {
|
|
3185
|
+
return;
|
|
3186
|
+
}
|
|
3187
|
+
var zeroes = 0;
|
|
3188
|
+
var length2 = 0;
|
|
3189
|
+
while (source[psz] === LEADER) {
|
|
3190
|
+
zeroes++;
|
|
3191
|
+
psz++;
|
|
3192
|
+
}
|
|
3193
|
+
var size = (source.length - psz) * FACTOR + 1 >>> 0;
|
|
3194
|
+
var b256 = new Uint8Array(size);
|
|
3195
|
+
while (source[psz]) {
|
|
3196
|
+
var carry = BASE_MAP[source.charCodeAt(psz)];
|
|
3197
|
+
if (carry === 255) {
|
|
3198
|
+
return;
|
|
3199
|
+
}
|
|
3200
|
+
var i2 = 0;
|
|
3201
|
+
for (var it3 = size - 1; (carry !== 0 || i2 < length2) && it3 !== -1; it3--, i2++) {
|
|
3202
|
+
carry += BASE * b256[it3] >>> 0;
|
|
3203
|
+
b256[it3] = carry % 256 >>> 0;
|
|
3204
|
+
carry = carry / 256 >>> 0;
|
|
3205
|
+
}
|
|
3206
|
+
if (carry !== 0) {
|
|
3207
|
+
throw new Error("Non-zero carry");
|
|
3208
|
+
}
|
|
3209
|
+
length2 = i2;
|
|
3210
|
+
psz++;
|
|
3211
|
+
}
|
|
3212
|
+
if (source[psz] === " ") {
|
|
3213
|
+
return;
|
|
3214
|
+
}
|
|
3215
|
+
var it4 = size - length2;
|
|
3216
|
+
while (it4 !== size && b256[it4] === 0) {
|
|
3217
|
+
it4++;
|
|
3218
|
+
}
|
|
3219
|
+
var vch = new Uint8Array(zeroes + (size - it4));
|
|
3220
|
+
var j2 = zeroes;
|
|
3221
|
+
while (it4 !== size) {
|
|
3222
|
+
vch[j2++] = b256[it4++];
|
|
3223
|
+
}
|
|
3224
|
+
return vch;
|
|
3225
|
+
}
|
|
3226
|
+
function decode5(string) {
|
|
3227
|
+
var buffer = decodeUnsafe(string);
|
|
3228
|
+
if (buffer) {
|
|
3229
|
+
return buffer;
|
|
3230
|
+
}
|
|
3231
|
+
throw new Error(`Non-${name} character`);
|
|
3232
|
+
}
|
|
3233
|
+
return {
|
|
3234
|
+
encode: encode3,
|
|
3235
|
+
decodeUnsafe,
|
|
3236
|
+
decode: decode5
|
|
3237
|
+
};
|
|
3238
|
+
}
|
|
3239
|
+
var src = base2;
|
|
3240
|
+
var _brrp__multiformats_scope_baseX = src;
|
|
3241
|
+
var base_x_default = _brrp__multiformats_scope_baseX;
|
|
3242
|
+
|
|
3243
|
+
// ../../node_modules/multiformats/esm/src/bases/base.js
|
|
3244
|
+
var Encoder = class {
|
|
3245
|
+
constructor(name, prefix, baseEncode) {
|
|
3246
|
+
this.name = name;
|
|
3247
|
+
this.prefix = prefix;
|
|
3248
|
+
this.baseEncode = baseEncode;
|
|
3249
|
+
}
|
|
3250
|
+
encode(bytes) {
|
|
3251
|
+
if (bytes instanceof Uint8Array) {
|
|
3252
|
+
return `${this.prefix}${this.baseEncode(bytes)}`;
|
|
3253
|
+
} else {
|
|
3254
|
+
throw Error("Unknown type, must be binary type");
|
|
3255
|
+
}
|
|
3256
|
+
}
|
|
3257
|
+
};
|
|
3258
|
+
var Decoder = class {
|
|
3259
|
+
constructor(name, prefix, baseDecode) {
|
|
3260
|
+
this.name = name;
|
|
3261
|
+
this.prefix = prefix;
|
|
3262
|
+
if (prefix.codePointAt(0) === void 0) {
|
|
3263
|
+
throw new Error("Invalid prefix character");
|
|
3264
|
+
}
|
|
3265
|
+
this.prefixCodePoint = prefix.codePointAt(0);
|
|
3266
|
+
this.baseDecode = baseDecode;
|
|
3267
|
+
}
|
|
3268
|
+
decode(text) {
|
|
3269
|
+
if (typeof text === "string") {
|
|
3270
|
+
if (text.codePointAt(0) !== this.prefixCodePoint) {
|
|
3271
|
+
throw Error(`Unable to decode multibase string ${JSON.stringify(text)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);
|
|
3272
|
+
}
|
|
3273
|
+
return this.baseDecode(text.slice(this.prefix.length));
|
|
3274
|
+
} else {
|
|
3275
|
+
throw Error("Can only multibase decode strings");
|
|
3276
|
+
}
|
|
3277
|
+
}
|
|
3278
|
+
or(decoder) {
|
|
3279
|
+
return or(this, decoder);
|
|
3280
|
+
}
|
|
3281
|
+
};
|
|
3282
|
+
var ComposedDecoder = class {
|
|
3283
|
+
constructor(decoders) {
|
|
3284
|
+
this.decoders = decoders;
|
|
3285
|
+
}
|
|
3286
|
+
or(decoder) {
|
|
3287
|
+
return or(this, decoder);
|
|
3288
|
+
}
|
|
3289
|
+
decode(input) {
|
|
3290
|
+
const prefix = input[0];
|
|
3291
|
+
const decoder = this.decoders[prefix];
|
|
3292
|
+
if (decoder) {
|
|
3293
|
+
return decoder.decode(input);
|
|
3294
|
+
} else {
|
|
3295
|
+
throw RangeError(`Unable to decode multibase string ${JSON.stringify(input)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`);
|
|
3296
|
+
}
|
|
3297
|
+
}
|
|
3298
|
+
};
|
|
3299
|
+
var or = (left, right) => new ComposedDecoder({
|
|
3300
|
+
...left.decoders || { [left.prefix]: left },
|
|
3301
|
+
...right.decoders || { [right.prefix]: right }
|
|
3302
|
+
});
|
|
3303
|
+
var Codec = class {
|
|
3304
|
+
constructor(name, prefix, baseEncode, baseDecode) {
|
|
3305
|
+
this.name = name;
|
|
3306
|
+
this.prefix = prefix;
|
|
3307
|
+
this.baseEncode = baseEncode;
|
|
3308
|
+
this.baseDecode = baseDecode;
|
|
3309
|
+
this.encoder = new Encoder(name, prefix, baseEncode);
|
|
3310
|
+
this.decoder = new Decoder(name, prefix, baseDecode);
|
|
3311
|
+
}
|
|
3312
|
+
encode(input) {
|
|
3313
|
+
return this.encoder.encode(input);
|
|
3314
|
+
}
|
|
3315
|
+
decode(input) {
|
|
3316
|
+
return this.decoder.decode(input);
|
|
3317
|
+
}
|
|
3318
|
+
};
|
|
3319
|
+
var from = ({ name, prefix, encode: encode3, decode: decode5 }) => new Codec(name, prefix, encode3, decode5);
|
|
3320
|
+
var baseX = ({ prefix, name, alphabet }) => {
|
|
3321
|
+
const { encode: encode3, decode: decode5 } = base_x_default(alphabet, name);
|
|
3322
|
+
return from({
|
|
3323
|
+
prefix,
|
|
3324
|
+
name,
|
|
3325
|
+
encode: encode3,
|
|
3326
|
+
decode: (text) => coerce3(decode5(text))
|
|
3327
|
+
});
|
|
3328
|
+
};
|
|
3329
|
+
var decode4 = (string, alphabet, bitsPerChar, name) => {
|
|
3330
|
+
const codes = {};
|
|
3331
|
+
for (let i = 0; i < alphabet.length; ++i) {
|
|
3332
|
+
codes[alphabet[i]] = i;
|
|
3333
|
+
}
|
|
3334
|
+
let end = string.length;
|
|
3335
|
+
while (string[end - 1] === "=") {
|
|
3336
|
+
--end;
|
|
3337
|
+
}
|
|
3338
|
+
const out = new Uint8Array(end * bitsPerChar / 8 | 0);
|
|
3339
|
+
let bits = 0;
|
|
3340
|
+
let buffer = 0;
|
|
3341
|
+
let written = 0;
|
|
3342
|
+
for (let i = 0; i < end; ++i) {
|
|
3343
|
+
const value = codes[string[i]];
|
|
3344
|
+
if (value === void 0) {
|
|
3345
|
+
throw new SyntaxError(`Non-${name} character`);
|
|
3346
|
+
}
|
|
3347
|
+
buffer = buffer << bitsPerChar | value;
|
|
3348
|
+
bits += bitsPerChar;
|
|
3349
|
+
if (bits >= 8) {
|
|
3350
|
+
bits -= 8;
|
|
3351
|
+
out[written++] = 255 & buffer >> bits;
|
|
3352
|
+
}
|
|
3353
|
+
}
|
|
3354
|
+
if (bits >= bitsPerChar || 255 & buffer << 8 - bits) {
|
|
3355
|
+
throw new SyntaxError("Unexpected end of data");
|
|
3356
|
+
}
|
|
3357
|
+
return out;
|
|
3358
|
+
};
|
|
3359
|
+
var encode2 = (data, alphabet, bitsPerChar) => {
|
|
3360
|
+
const pad = alphabet[alphabet.length - 1] === "=";
|
|
3361
|
+
const mask = (1 << bitsPerChar) - 1;
|
|
3362
|
+
let out = "";
|
|
3363
|
+
let bits = 0;
|
|
3364
|
+
let buffer = 0;
|
|
3365
|
+
for (let i = 0; i < data.length; ++i) {
|
|
3366
|
+
buffer = buffer << 8 | data[i];
|
|
3367
|
+
bits += 8;
|
|
3368
|
+
while (bits > bitsPerChar) {
|
|
3369
|
+
bits -= bitsPerChar;
|
|
3370
|
+
out += alphabet[mask & buffer >> bits];
|
|
3371
|
+
}
|
|
3372
|
+
}
|
|
3373
|
+
if (bits) {
|
|
3374
|
+
out += alphabet[mask & buffer << bitsPerChar - bits];
|
|
3375
|
+
}
|
|
3376
|
+
if (pad) {
|
|
3377
|
+
while (out.length * bitsPerChar & 7) {
|
|
3378
|
+
out += "=";
|
|
3379
|
+
}
|
|
3380
|
+
}
|
|
3381
|
+
return out;
|
|
3382
|
+
};
|
|
3383
|
+
var rfc4648 = ({ name, prefix, bitsPerChar, alphabet }) => {
|
|
3384
|
+
return from({
|
|
3385
|
+
prefix,
|
|
3386
|
+
name,
|
|
3387
|
+
encode(input) {
|
|
3388
|
+
return encode2(input, alphabet, bitsPerChar);
|
|
3389
|
+
},
|
|
3390
|
+
decode(input) {
|
|
3391
|
+
return decode4(input, alphabet, bitsPerChar, name);
|
|
3392
|
+
}
|
|
3393
|
+
});
|
|
3394
|
+
};
|
|
3395
|
+
|
|
3396
|
+
// ../../node_modules/multiformats/esm/src/bases/base58.js
|
|
3397
|
+
var base58btc = baseX({
|
|
3398
|
+
name: "base58btc",
|
|
3399
|
+
prefix: "z",
|
|
3400
|
+
alphabet: "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
|
|
3401
|
+
});
|
|
3402
|
+
var base58flickr = baseX({
|
|
3403
|
+
name: "base58flickr",
|
|
3404
|
+
prefix: "Z",
|
|
3405
|
+
alphabet: "123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"
|
|
3406
|
+
});
|
|
3407
|
+
|
|
3408
|
+
// ../../node_modules/multiformats/esm/src/bases/base32.js
|
|
3409
|
+
var base32 = rfc4648({
|
|
3410
|
+
prefix: "b",
|
|
3411
|
+
name: "base32",
|
|
3412
|
+
alphabet: "abcdefghijklmnopqrstuvwxyz234567",
|
|
3413
|
+
bitsPerChar: 5
|
|
3414
|
+
});
|
|
3415
|
+
var base32upper = rfc4648({
|
|
3416
|
+
prefix: "B",
|
|
3417
|
+
name: "base32upper",
|
|
3418
|
+
alphabet: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",
|
|
3419
|
+
bitsPerChar: 5
|
|
3420
|
+
});
|
|
3421
|
+
var base32pad = rfc4648({
|
|
3422
|
+
prefix: "c",
|
|
3423
|
+
name: "base32pad",
|
|
3424
|
+
alphabet: "abcdefghijklmnopqrstuvwxyz234567=",
|
|
3425
|
+
bitsPerChar: 5
|
|
3426
|
+
});
|
|
3427
|
+
var base32padupper = rfc4648({
|
|
3428
|
+
prefix: "C",
|
|
3429
|
+
name: "base32padupper",
|
|
3430
|
+
alphabet: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",
|
|
3431
|
+
bitsPerChar: 5
|
|
3432
|
+
});
|
|
3433
|
+
var base32hex = rfc4648({
|
|
3434
|
+
prefix: "v",
|
|
3435
|
+
name: "base32hex",
|
|
3436
|
+
alphabet: "0123456789abcdefghijklmnopqrstuv",
|
|
3437
|
+
bitsPerChar: 5
|
|
3438
|
+
});
|
|
3439
|
+
var base32hexupper = rfc4648({
|
|
3440
|
+
prefix: "V",
|
|
3441
|
+
name: "base32hexupper",
|
|
3442
|
+
alphabet: "0123456789ABCDEFGHIJKLMNOPQRSTUV",
|
|
3443
|
+
bitsPerChar: 5
|
|
3444
|
+
});
|
|
3445
|
+
var base32hexpad = rfc4648({
|
|
3446
|
+
prefix: "t",
|
|
3447
|
+
name: "base32hexpad",
|
|
3448
|
+
alphabet: "0123456789abcdefghijklmnopqrstuv=",
|
|
3449
|
+
bitsPerChar: 5
|
|
3450
|
+
});
|
|
3451
|
+
var base32hexpadupper = rfc4648({
|
|
3452
|
+
prefix: "T",
|
|
3453
|
+
name: "base32hexpadupper",
|
|
3454
|
+
alphabet: "0123456789ABCDEFGHIJKLMNOPQRSTUV=",
|
|
3455
|
+
bitsPerChar: 5
|
|
3456
|
+
});
|
|
3457
|
+
var base32z = rfc4648({
|
|
3458
|
+
prefix: "h",
|
|
3459
|
+
name: "base32z",
|
|
3460
|
+
alphabet: "ybndrfg8ejkmcpqxot1uwisza345h769",
|
|
3461
|
+
bitsPerChar: 5
|
|
3462
|
+
});
|
|
3463
|
+
|
|
3464
|
+
// ../../node_modules/multiformats/esm/src/cid.js
|
|
3465
|
+
var CID = class _CID {
|
|
3466
|
+
constructor(version2, code, multihash, bytes) {
|
|
3467
|
+
this.code = code;
|
|
3468
|
+
this.version = version2;
|
|
3469
|
+
this.multihash = multihash;
|
|
3470
|
+
this.bytes = bytes;
|
|
3471
|
+
this.byteOffset = bytes.byteOffset;
|
|
3472
|
+
this.byteLength = bytes.byteLength;
|
|
3473
|
+
this.asCID = this;
|
|
3474
|
+
this._baseCache = /* @__PURE__ */ new Map();
|
|
3475
|
+
Object.defineProperties(this, {
|
|
3476
|
+
byteOffset: hidden,
|
|
3477
|
+
byteLength: hidden,
|
|
3478
|
+
code: readonly,
|
|
3479
|
+
version: readonly,
|
|
3480
|
+
multihash: readonly,
|
|
3481
|
+
bytes: readonly,
|
|
3482
|
+
_baseCache: hidden,
|
|
3483
|
+
asCID: hidden
|
|
3484
|
+
});
|
|
3485
|
+
}
|
|
3486
|
+
toV0() {
|
|
3487
|
+
switch (this.version) {
|
|
3488
|
+
case 0: {
|
|
3489
|
+
return this;
|
|
3490
|
+
}
|
|
3491
|
+
default: {
|
|
3492
|
+
const { code, multihash } = this;
|
|
3493
|
+
if (code !== DAG_PB_CODE) {
|
|
3494
|
+
throw new Error("Cannot convert a non dag-pb CID to CIDv0");
|
|
3495
|
+
}
|
|
3496
|
+
if (multihash.code !== SHA_256_CODE) {
|
|
3497
|
+
throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");
|
|
3498
|
+
}
|
|
3499
|
+
return _CID.createV0(multihash);
|
|
3500
|
+
}
|
|
3501
|
+
}
|
|
3502
|
+
}
|
|
3503
|
+
toV1() {
|
|
3504
|
+
switch (this.version) {
|
|
3505
|
+
case 0: {
|
|
3506
|
+
const { code, digest } = this.multihash;
|
|
3507
|
+
const multihash = create(code, digest);
|
|
3508
|
+
return _CID.createV1(this.code, multihash);
|
|
3509
|
+
}
|
|
3510
|
+
case 1: {
|
|
3511
|
+
return this;
|
|
3512
|
+
}
|
|
3513
|
+
default: {
|
|
3514
|
+
throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`);
|
|
3515
|
+
}
|
|
3516
|
+
}
|
|
3517
|
+
}
|
|
3518
|
+
equals(other) {
|
|
3519
|
+
return other && this.code === other.code && this.version === other.version && equals2(this.multihash, other.multihash);
|
|
3520
|
+
}
|
|
3521
|
+
toString(base3) {
|
|
3522
|
+
const { bytes, version: version2, _baseCache } = this;
|
|
3523
|
+
switch (version2) {
|
|
3524
|
+
case 0:
|
|
3525
|
+
return toStringV0(bytes, _baseCache, base3 || base58btc.encoder);
|
|
3526
|
+
default:
|
|
3527
|
+
return toStringV1(bytes, _baseCache, base3 || base32.encoder);
|
|
3528
|
+
}
|
|
3529
|
+
}
|
|
3530
|
+
toJSON() {
|
|
3531
|
+
return {
|
|
3532
|
+
code: this.code,
|
|
3533
|
+
version: this.version,
|
|
3534
|
+
hash: this.multihash.bytes
|
|
3535
|
+
};
|
|
3536
|
+
}
|
|
3537
|
+
get [Symbol.toStringTag]() {
|
|
3538
|
+
return "CID";
|
|
3539
|
+
}
|
|
3540
|
+
[Symbol.for("nodejs.util.inspect.custom")]() {
|
|
3541
|
+
return "CID(" + this.toString() + ")";
|
|
3542
|
+
}
|
|
3543
|
+
static isCID(value) {
|
|
3544
|
+
deprecate(/^0\.0/, IS_CID_DEPRECATION);
|
|
3545
|
+
return !!(value && (value[cidSymbol] || value.asCID === value));
|
|
3546
|
+
}
|
|
3547
|
+
get toBaseEncodedString() {
|
|
3548
|
+
throw new Error("Deprecated, use .toString()");
|
|
3549
|
+
}
|
|
3550
|
+
get codec() {
|
|
3551
|
+
throw new Error('"codec" property is deprecated, use integer "code" property instead');
|
|
3552
|
+
}
|
|
3553
|
+
get buffer() {
|
|
3554
|
+
throw new Error("Deprecated .buffer property, use .bytes to get Uint8Array instead");
|
|
3555
|
+
}
|
|
3556
|
+
get multibaseName() {
|
|
3557
|
+
throw new Error('"multibaseName" property is deprecated');
|
|
3558
|
+
}
|
|
3559
|
+
get prefix() {
|
|
3560
|
+
throw new Error('"prefix" property is deprecated');
|
|
3561
|
+
}
|
|
3562
|
+
static asCID(value) {
|
|
3563
|
+
if (value instanceof _CID) {
|
|
3564
|
+
return value;
|
|
3565
|
+
} else if (value != null && value.asCID === value) {
|
|
3566
|
+
const { version: version2, code, multihash, bytes } = value;
|
|
3567
|
+
return new _CID(version2, code, multihash, bytes || encodeCID(version2, code, multihash.bytes));
|
|
3568
|
+
} else if (value != null && value[cidSymbol] === true) {
|
|
3569
|
+
const { version: version2, multihash, code } = value;
|
|
3570
|
+
const digest = decode3(multihash);
|
|
3571
|
+
return _CID.create(version2, code, digest);
|
|
3572
|
+
} else {
|
|
3573
|
+
return null;
|
|
3574
|
+
}
|
|
3575
|
+
}
|
|
3576
|
+
static create(version2, code, digest) {
|
|
3577
|
+
if (typeof code !== "number") {
|
|
3578
|
+
throw new Error("String codecs are no longer supported");
|
|
3579
|
+
}
|
|
3580
|
+
switch (version2) {
|
|
3581
|
+
case 0: {
|
|
3582
|
+
if (code !== DAG_PB_CODE) {
|
|
3583
|
+
throw new Error(`Version 0 CID must use dag-pb (code: ${DAG_PB_CODE}) block encoding`);
|
|
3584
|
+
} else {
|
|
3585
|
+
return new _CID(version2, code, digest, digest.bytes);
|
|
3586
|
+
}
|
|
3587
|
+
}
|
|
3588
|
+
case 1: {
|
|
3589
|
+
const bytes = encodeCID(version2, code, digest.bytes);
|
|
3590
|
+
return new _CID(version2, code, digest, bytes);
|
|
3591
|
+
}
|
|
3592
|
+
default: {
|
|
3593
|
+
throw new Error("Invalid version");
|
|
3594
|
+
}
|
|
3595
|
+
}
|
|
3596
|
+
}
|
|
3597
|
+
static createV0(digest) {
|
|
3598
|
+
return _CID.create(0, DAG_PB_CODE, digest);
|
|
3599
|
+
}
|
|
3600
|
+
static createV1(code, digest) {
|
|
3601
|
+
return _CID.create(1, code, digest);
|
|
3602
|
+
}
|
|
3603
|
+
static decode(bytes) {
|
|
3604
|
+
const [cid, remainder] = _CID.decodeFirst(bytes);
|
|
3605
|
+
if (remainder.length) {
|
|
3606
|
+
throw new Error("Incorrect length");
|
|
3607
|
+
}
|
|
3608
|
+
return cid;
|
|
3609
|
+
}
|
|
3610
|
+
static decodeFirst(bytes) {
|
|
3611
|
+
const specs = _CID.inspectBytes(bytes);
|
|
3612
|
+
const prefixSize = specs.size - specs.multihashSize;
|
|
3613
|
+
const multihashBytes = coerce3(bytes.subarray(prefixSize, prefixSize + specs.multihashSize));
|
|
3614
|
+
if (multihashBytes.byteLength !== specs.multihashSize) {
|
|
3615
|
+
throw new Error("Incorrect length");
|
|
3616
|
+
}
|
|
3617
|
+
const digestBytes = multihashBytes.subarray(specs.multihashSize - specs.digestSize);
|
|
3618
|
+
const digest = new Digest(specs.multihashCode, specs.digestSize, digestBytes, multihashBytes);
|
|
3619
|
+
const cid = specs.version === 0 ? _CID.createV0(digest) : _CID.createV1(specs.codec, digest);
|
|
3620
|
+
return [
|
|
3621
|
+
cid,
|
|
3622
|
+
bytes.subarray(specs.size)
|
|
3623
|
+
];
|
|
3624
|
+
}
|
|
3625
|
+
static inspectBytes(initialBytes) {
|
|
3626
|
+
let offset = 0;
|
|
3627
|
+
const next = () => {
|
|
3628
|
+
const [i, length2] = decode2(initialBytes.subarray(offset));
|
|
3629
|
+
offset += length2;
|
|
3630
|
+
return i;
|
|
3631
|
+
};
|
|
3632
|
+
let version2 = next();
|
|
3633
|
+
let codec = DAG_PB_CODE;
|
|
3634
|
+
if (version2 === 18) {
|
|
3635
|
+
version2 = 0;
|
|
3636
|
+
offset = 0;
|
|
3637
|
+
} else if (version2 === 1) {
|
|
3638
|
+
codec = next();
|
|
3639
|
+
}
|
|
3640
|
+
if (version2 !== 0 && version2 !== 1) {
|
|
3641
|
+
throw new RangeError(`Invalid CID version ${version2}`);
|
|
3642
|
+
}
|
|
3643
|
+
const prefixSize = offset;
|
|
3644
|
+
const multihashCode = next();
|
|
3645
|
+
const digestSize = next();
|
|
3646
|
+
const size = offset + digestSize;
|
|
3647
|
+
const multihashSize = size - prefixSize;
|
|
3648
|
+
return {
|
|
3649
|
+
version: version2,
|
|
3650
|
+
codec,
|
|
3651
|
+
multihashCode,
|
|
3652
|
+
digestSize,
|
|
3653
|
+
multihashSize,
|
|
3654
|
+
size
|
|
3655
|
+
};
|
|
3656
|
+
}
|
|
3657
|
+
static parse(source, base3) {
|
|
3658
|
+
const [prefix, bytes] = parseCIDtoBytes(source, base3);
|
|
3659
|
+
const cid = _CID.decode(bytes);
|
|
3660
|
+
cid._baseCache.set(prefix, source);
|
|
3661
|
+
return cid;
|
|
3662
|
+
}
|
|
3663
|
+
};
|
|
3664
|
+
var parseCIDtoBytes = (source, base3) => {
|
|
3665
|
+
switch (source[0]) {
|
|
3666
|
+
case "Q": {
|
|
3667
|
+
const decoder = base3 || base58btc;
|
|
3668
|
+
return [
|
|
3669
|
+
base58btc.prefix,
|
|
3670
|
+
decoder.decode(`${base58btc.prefix}${source}`)
|
|
3671
|
+
];
|
|
3672
|
+
}
|
|
3673
|
+
case base58btc.prefix: {
|
|
3674
|
+
const decoder = base3 || base58btc;
|
|
3675
|
+
return [
|
|
3676
|
+
base58btc.prefix,
|
|
3677
|
+
decoder.decode(source)
|
|
3678
|
+
];
|
|
3679
|
+
}
|
|
3680
|
+
case base32.prefix: {
|
|
3681
|
+
const decoder = base3 || base32;
|
|
3682
|
+
return [
|
|
3683
|
+
base32.prefix,
|
|
3684
|
+
decoder.decode(source)
|
|
3685
|
+
];
|
|
3686
|
+
}
|
|
3687
|
+
default: {
|
|
3688
|
+
if (base3 == null) {
|
|
3689
|
+
throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");
|
|
3690
|
+
}
|
|
3691
|
+
return [
|
|
3692
|
+
source[0],
|
|
3693
|
+
base3.decode(source)
|
|
3694
|
+
];
|
|
3695
|
+
}
|
|
3696
|
+
}
|
|
3697
|
+
};
|
|
3698
|
+
var toStringV0 = (bytes, cache, base3) => {
|
|
3699
|
+
const { prefix } = base3;
|
|
3700
|
+
if (prefix !== base58btc.prefix) {
|
|
3701
|
+
throw Error(`Cannot string encode V0 in ${base3.name} encoding`);
|
|
3702
|
+
}
|
|
3703
|
+
const cid = cache.get(prefix);
|
|
3704
|
+
if (cid == null) {
|
|
3705
|
+
const cid2 = base3.encode(bytes).slice(1);
|
|
3706
|
+
cache.set(prefix, cid2);
|
|
3707
|
+
return cid2;
|
|
3708
|
+
} else {
|
|
3709
|
+
return cid;
|
|
3710
|
+
}
|
|
3711
|
+
};
|
|
3712
|
+
var toStringV1 = (bytes, cache, base3) => {
|
|
3713
|
+
const { prefix } = base3;
|
|
3714
|
+
const cid = cache.get(prefix);
|
|
3715
|
+
if (cid == null) {
|
|
3716
|
+
const cid2 = base3.encode(bytes);
|
|
3717
|
+
cache.set(prefix, cid2);
|
|
3718
|
+
return cid2;
|
|
3719
|
+
} else {
|
|
3720
|
+
return cid;
|
|
3721
|
+
}
|
|
3722
|
+
};
|
|
3723
|
+
var DAG_PB_CODE = 112;
|
|
3724
|
+
var SHA_256_CODE = 18;
|
|
3725
|
+
var encodeCID = (version2, code, multihash) => {
|
|
3726
|
+
const codeOffset = encodingLength(version2);
|
|
3727
|
+
const hashOffset = codeOffset + encodingLength(code);
|
|
3728
|
+
const bytes = new Uint8Array(hashOffset + multihash.byteLength);
|
|
3729
|
+
encodeTo(version2, bytes, 0);
|
|
3730
|
+
encodeTo(code, bytes, codeOffset);
|
|
3731
|
+
bytes.set(multihash, hashOffset);
|
|
3732
|
+
return bytes;
|
|
3733
|
+
};
|
|
3734
|
+
var cidSymbol = Symbol.for("@ipld/js-cid/CID");
|
|
3735
|
+
var readonly = {
|
|
3736
|
+
writable: false,
|
|
3737
|
+
configurable: false,
|
|
3738
|
+
enumerable: true
|
|
3739
|
+
};
|
|
3740
|
+
var hidden = {
|
|
3741
|
+
writable: false,
|
|
3742
|
+
enumerable: false,
|
|
3743
|
+
configurable: false
|
|
3744
|
+
};
|
|
3745
|
+
var version = "0.0.0-dev";
|
|
3746
|
+
var deprecate = (range, message) => {
|
|
3747
|
+
if (range.test(version)) {
|
|
3748
|
+
console.warn(message);
|
|
3749
|
+
} else {
|
|
3750
|
+
throw new Error(message);
|
|
3751
|
+
}
|
|
3752
|
+
};
|
|
3753
|
+
var IS_CID_DEPRECATION = `CID.isCID(v) is deprecated and will be removed in the next major release.
|
|
3754
|
+
Following code pattern:
|
|
3755
|
+
|
|
3756
|
+
if (CID.isCID(value)) {
|
|
3757
|
+
doSomethingWithCID(value)
|
|
3758
|
+
}
|
|
3759
|
+
|
|
3760
|
+
Is replaced with:
|
|
3761
|
+
|
|
3762
|
+
const cid = CID.asCID(value)
|
|
3763
|
+
if (cid) {
|
|
3764
|
+
// Make sure to use cid instead of value
|
|
3765
|
+
doSomethingWithCID(cid)
|
|
3766
|
+
}
|
|
3767
|
+
`;
|
|
3768
|
+
|
|
3769
|
+
// src/ipfs/ipfs.ts
|
|
3770
|
+
function isCID(str) {
|
|
3771
|
+
if (!str)
|
|
3772
|
+
return false;
|
|
3773
|
+
try {
|
|
3774
|
+
CID.parse(str);
|
|
3775
|
+
return true;
|
|
3776
|
+
} catch (e) {
|
|
3777
|
+
if (/^(bafy|Qm)/.test(str))
|
|
3778
|
+
return true;
|
|
3779
|
+
return false;
|
|
3780
|
+
}
|
|
3781
|
+
}
|
|
3782
|
+
function normalizeIPFSUrl(url) {
|
|
3783
|
+
if (!url || typeof url !== "string")
|
|
3784
|
+
return null;
|
|
3785
|
+
url = url.replace(/"/g, "");
|
|
3786
|
+
if (isNormalizedIPFSURL(url))
|
|
3787
|
+
return url;
|
|
3788
|
+
if (isCID(url))
|
|
3789
|
+
return `ipfs://${url}`;
|
|
3790
|
+
if (!isIPFSUrl(url))
|
|
3791
|
+
return null;
|
|
3792
|
+
if (isGatewayIPFSUrl(url)) {
|
|
3793
|
+
const parsed = new URL(url.replace(/^\/\//, "http://"));
|
|
3794
|
+
parsed.pathname = parsed.pathname.replace(/^\/ipfs\//, "");
|
|
3795
|
+
const cid = parsed.toString().replace(`${parsed.protocol}//${parsed.host}/`, "");
|
|
3796
|
+
return `ipfs://${cid}`;
|
|
3797
|
+
}
|
|
3798
|
+
return null;
|
|
3799
|
+
}
|
|
3800
|
+
function isNormalizedIPFSURL(url) {
|
|
3801
|
+
return url && typeof url === "string" ? url.startsWith("ipfs://") : false;
|
|
3802
|
+
}
|
|
3803
|
+
function isGatewayIPFSUrl(url) {
|
|
3804
|
+
if (url && typeof url === "string") {
|
|
3805
|
+
try {
|
|
3806
|
+
const parsed = new URL(url.replace(/^"|'(.*)"|'$/, "$1"));
|
|
3807
|
+
return !isNormalizedIPFSURL(url) && parsed && parsed.pathname.startsWith("/ipfs/");
|
|
3808
|
+
} catch {
|
|
3809
|
+
return false;
|
|
3810
|
+
}
|
|
3811
|
+
}
|
|
3812
|
+
return false;
|
|
3813
|
+
}
|
|
3814
|
+
function isIPFSUrl(url) {
|
|
3815
|
+
return url ? isNormalizedIPFSURL(url) || isGatewayIPFSUrl(url) : false;
|
|
3816
|
+
}
|
|
3817
|
+
function isNormalizeableIPFSUrl(url) {
|
|
3818
|
+
return url ? isIPFSUrl(url) || isCID(url) : false;
|
|
3819
|
+
}
|
|
3820
|
+
|
|
3821
|
+
// src/ipfs/gateway.ts
|
|
3822
|
+
var IPFS_GATEWAY = "https://magic.decentralized-content.com";
|
|
3823
|
+
var ARWEAVE_GATEWAY = "https://arweave.net";
|
|
3824
|
+
function arweaveGatewayUrl(normalizedArweaveUrl) {
|
|
3825
|
+
if (!normalizedArweaveUrl || typeof normalizedArweaveUrl !== "string")
|
|
3826
|
+
return null;
|
|
3827
|
+
return normalizedArweaveUrl.replace("ar://", `${ARWEAVE_GATEWAY}/`);
|
|
3828
|
+
}
|
|
3829
|
+
function ipfsGatewayUrl(url) {
|
|
3830
|
+
if (!url || typeof url !== "string")
|
|
3831
|
+
return null;
|
|
3832
|
+
const normalizedIPFSUrl = normalizeIPFSUrl(url);
|
|
3833
|
+
if (normalizedIPFSUrl) {
|
|
3834
|
+
return normalizedIPFSUrl.replace("ipfs://", `${IPFS_GATEWAY}/ipfs/`);
|
|
3835
|
+
}
|
|
3836
|
+
return null;
|
|
3837
|
+
}
|
|
3838
|
+
function getFetchableUrl(uri) {
|
|
3839
|
+
if (!uri || typeof uri !== "string")
|
|
3840
|
+
return null;
|
|
3841
|
+
if (uri.startsWith("http://"))
|
|
3842
|
+
return null;
|
|
3843
|
+
if (isNormalizeableIPFSUrl(uri)) {
|
|
3844
|
+
return ipfsGatewayUrl(uri);
|
|
3845
|
+
}
|
|
3846
|
+
if (isArweaveURL(uri)) {
|
|
3847
|
+
return arweaveGatewayUrl(uri);
|
|
3848
|
+
}
|
|
3849
|
+
if (/^(https|data|blob):/.test(uri)) {
|
|
3850
|
+
return uri;
|
|
3851
|
+
}
|
|
3852
|
+
return null;
|
|
3853
|
+
}
|
|
3854
|
+
|
|
3855
|
+
// src/ipfs/mimeTypes.ts
|
|
3856
|
+
var HTML = "text/html";
|
|
3857
|
+
var MARKDOWN = "text/markdown";
|
|
3858
|
+
var MARKDOWN_UTF8 = "text/markdown; charset=utf-8";
|
|
3859
|
+
var TEXT_PLAIN_UTF8 = "text/plain; charset=utf-8";
|
|
3860
|
+
var TEXT_PLAIN = "text/plain";
|
|
3861
|
+
var CSV = "text/csv";
|
|
3862
|
+
var NUMBERS = ".numbers";
|
|
3863
|
+
var EXCEL = ".xlsx";
|
|
3864
|
+
var PDF = "application/pdf";
|
|
3865
|
+
var JPG = "image/jpg";
|
|
3866
|
+
var JPEG = "image/jpeg";
|
|
3867
|
+
var PNG = "image/png";
|
|
3868
|
+
var WEBP = "image/webp";
|
|
3869
|
+
var SVG = "image/svg+xml";
|
|
3870
|
+
var TIFF = "image/tiff";
|
|
3871
|
+
var GIF = "image/gif";
|
|
3872
|
+
var isImage = (mimeType) => {
|
|
3873
|
+
if (!mimeType)
|
|
3874
|
+
return false;
|
|
3875
|
+
return [JPG, JPEG, PNG, WEBP, SVG, TIFF, GIF].includes(mimeType);
|
|
3876
|
+
};
|
|
3877
|
+
var DEFAULT_THUMBNAIL_CID_HASHES = {
|
|
3878
|
+
["AUDIO" /* AUDIO */]: "bafkreidir5laqi26ta6ivnpe2zpekgrfcyi4tb5x6vhwmwnledmzxshfb4",
|
|
3879
|
+
["VIDEO" /* VIDEO */]: "bafkreifm4edadl3j5luoyvw4p6elxeqd77la7bulee6vhq5gq4chfk32mu",
|
|
3880
|
+
["HTML" /* HTML */]: "bafkreifgvi6xfwqy2l6g45csyokejpaib52ee7zrw6etrxl2tas4xkkclq",
|
|
3881
|
+
["ZIP" /* ZIP */]: "bafkreihe5rr5jbkwzegisjlhxbb7jw22xw5oilfmgd2re6tz6buo4pasdq",
|
|
3882
|
+
// assuming all zip files are html directories
|
|
3883
|
+
["TEXT" /* TEXT */]: "bafkreiaez25nfgggzrnza2loxf6xueb2esm44pnyjyulwoslnipowrf56q",
|
|
3884
|
+
default: "bafkreihcoahllisbpb4eeypdwtm7go5uh275wxd7wf2tantpxlpjhviok4"
|
|
3885
|
+
};
|
|
3886
|
+
var MP4 = "video/mp4";
|
|
3887
|
+
var QUICKTIME = "video/quicktime";
|
|
3888
|
+
var M4V = "video/x-m4v";
|
|
3889
|
+
var WEBM = "video/webm";
|
|
3890
|
+
var M4A = "audio/x-m4a";
|
|
3891
|
+
var MPEG = "audio/mpeg";
|
|
3892
|
+
var MP3 = "audio/mp3";
|
|
3893
|
+
var WAV = "audio/wav";
|
|
3894
|
+
var VND_WAV = "audio/vnd.wav";
|
|
3895
|
+
var VND_WAVE = "audio/vnd.wave";
|
|
3896
|
+
var WAVE = "audio/wave";
|
|
3897
|
+
var X_WAV = "audio/x-wav";
|
|
3898
|
+
var AIFF = "audio/aiff";
|
|
3899
|
+
var GLTF = "model/gltf+json";
|
|
3900
|
+
var GLB = "model/gltf-binary";
|
|
3901
|
+
var GLTF_EXT = ".gltf";
|
|
3902
|
+
var GLB_EXT = ".glb";
|
|
3903
|
+
var JSON_MIME_TYPE = "application/json";
|
|
3904
|
+
var ZIP = "application/zip";
|
|
3905
|
+
var mimeToMediaType = {
|
|
3906
|
+
[HTML]: "HTML" /* HTML */,
|
|
3907
|
+
[JPG]: "IMAGE" /* IMAGE */,
|
|
3908
|
+
[JPEG]: "IMAGE" /* IMAGE */,
|
|
3909
|
+
[PNG]: "IMAGE" /* IMAGE */,
|
|
3910
|
+
[WEBP]: "IMAGE" /* IMAGE */,
|
|
3911
|
+
[SVG]: "IMAGE" /* IMAGE */,
|
|
3912
|
+
[TIFF]: "TIFF" /* TIFF */,
|
|
3913
|
+
[GIF]: "IMAGE" /* IMAGE */,
|
|
3914
|
+
[MP4]: "VIDEO" /* VIDEO */,
|
|
3915
|
+
[WEBM]: "VIDEO" /* VIDEO */,
|
|
3916
|
+
[QUICKTIME]: "VIDEO" /* VIDEO */,
|
|
3917
|
+
[M4V]: "VIDEO" /* VIDEO */,
|
|
3918
|
+
[MPEG]: "AUDIO" /* AUDIO */,
|
|
3919
|
+
[MP3]: "AUDIO" /* AUDIO */,
|
|
3920
|
+
[M4A]: "AUDIO" /* AUDIO */,
|
|
3921
|
+
[VND_WAV]: "AUDIO" /* AUDIO */,
|
|
3922
|
+
[VND_WAVE]: "AUDIO" /* AUDIO */,
|
|
3923
|
+
[WAV]: "AUDIO" /* AUDIO */,
|
|
3924
|
+
[WAVE]: "AUDIO" /* AUDIO */,
|
|
3925
|
+
[X_WAV]: "AUDIO" /* AUDIO */,
|
|
3926
|
+
[AIFF]: "AUDIO" /* AUDIO */,
|
|
3927
|
+
[TEXT_PLAIN]: "TEXT" /* TEXT */,
|
|
3928
|
+
[TEXT_PLAIN_UTF8]: "TEXT" /* TEXT */,
|
|
3929
|
+
[MARKDOWN]: "TEXT" /* TEXT */,
|
|
3930
|
+
[MARKDOWN_UTF8]: "TEXT" /* TEXT */,
|
|
3931
|
+
[CSV]: "CSV" /* CSV */,
|
|
3932
|
+
[NUMBERS]: "NUMBERS" /* NUMBERS */,
|
|
3933
|
+
[EXCEL]: "EXCEL" /* EXCEL */,
|
|
3934
|
+
[PDF]: "PDF" /* PDF */,
|
|
3935
|
+
[ZIP]: "ZIP" /* ZIP */,
|
|
3936
|
+
[GLTF]: "MODEL" /* MODEL */,
|
|
3937
|
+
[GLTF_EXT]: "MODEL" /* MODEL */,
|
|
3938
|
+
[GLB]: "MODEL" /* MODEL */,
|
|
3939
|
+
// GLTF returns 'application/json' as the mimetype,
|
|
3940
|
+
// and as the only JSON-encoded media we currently support,
|
|
3941
|
+
// we assume that if the mimetype is JSON, it's a GLTF
|
|
3942
|
+
[JSON_MIME_TYPE]: "MODEL" /* MODEL */,
|
|
3943
|
+
[GLB_EXT]: "MODEL" /* MODEL */
|
|
3944
|
+
};
|
|
3945
|
+
function mimeTypeToMedia(mimeType) {
|
|
3946
|
+
if (!mimeType)
|
|
3947
|
+
return "UNKNOWN" /* UNKNOWN */;
|
|
3948
|
+
return mimeToMediaType[mimeType] || "UNKNOWN" /* UNKNOWN */;
|
|
3949
|
+
}
|
|
3950
|
+
async function getMimeType(uri) {
|
|
3951
|
+
if (!uri)
|
|
3952
|
+
return uri;
|
|
3953
|
+
const res = await fetch(uri, { method: "HEAD" });
|
|
3954
|
+
let mimeType = res.headers.get("content-type");
|
|
3955
|
+
return mimeType;
|
|
3956
|
+
}
|
|
3957
|
+
|
|
3958
|
+
// src/ipfs/token-metadata.ts
|
|
3959
|
+
var makeTextTokenMetadata = (parameters) => {
|
|
3960
|
+
const { name, textFileUrl, thumbnailUrl, attributes = [] } = parameters;
|
|
3961
|
+
const content = textFileUrl ? {
|
|
3962
|
+
mime: TEXT_PLAIN,
|
|
3963
|
+
uri: textFileUrl
|
|
3964
|
+
} : null;
|
|
3965
|
+
const image = thumbnailUrl;
|
|
3966
|
+
const animation_url = textFileUrl;
|
|
3967
|
+
return {
|
|
3968
|
+
name,
|
|
3969
|
+
image,
|
|
3970
|
+
animation_url,
|
|
3971
|
+
content,
|
|
3972
|
+
attributes
|
|
3973
|
+
};
|
|
3974
|
+
};
|
|
3975
|
+
var makeMediaTokenMetadata = async ({
|
|
3976
|
+
name,
|
|
3977
|
+
description,
|
|
3978
|
+
attributes = [],
|
|
3979
|
+
mediaUrl,
|
|
3980
|
+
thumbnailUrl
|
|
3981
|
+
}) => {
|
|
3982
|
+
const contentUrl = mediaUrl;
|
|
3983
|
+
const fetchableContentUrl = getFetchableUrl(contentUrl);
|
|
3984
|
+
if (!fetchableContentUrl)
|
|
3985
|
+
throw new Error(`Content url (${contentUrl}) is not fetchable`);
|
|
3986
|
+
const mimeType = await getMimeType(fetchableContentUrl);
|
|
3987
|
+
const mediaType = mimeTypeToMedia(mimeType);
|
|
3988
|
+
let image = void 0;
|
|
3989
|
+
let animation_url = null;
|
|
3990
|
+
if (isImage(mimeType)) {
|
|
3991
|
+
image = contentUrl;
|
|
3992
|
+
} else {
|
|
3993
|
+
image = thumbnailUrl;
|
|
3994
|
+
animation_url = mediaUrl;
|
|
3995
|
+
}
|
|
3996
|
+
if (!image)
|
|
3997
|
+
image = `ipfs://${DEFAULT_THUMBNAIL_CID_HASHES[mediaType] || DEFAULT_THUMBNAIL_CID_HASHES.default}`;
|
|
3998
|
+
const content = contentUrl ? {
|
|
3999
|
+
mime: mimeType || "application/octet-stream",
|
|
4000
|
+
uri: contentUrl
|
|
4001
|
+
} : null;
|
|
4002
|
+
return {
|
|
4003
|
+
name,
|
|
4004
|
+
description,
|
|
4005
|
+
image,
|
|
4006
|
+
animation_url,
|
|
4007
|
+
content,
|
|
4008
|
+
attributes
|
|
4009
|
+
};
|
|
4010
|
+
};
|
|
4011
|
+
|
|
4012
|
+
// src/ipfs/text-metadata.ts
|
|
4013
|
+
var CHAR_LIMIT = 1111;
|
|
4014
|
+
var wrapText = ({
|
|
4015
|
+
ctx,
|
|
4016
|
+
text,
|
|
4017
|
+
x,
|
|
4018
|
+
y,
|
|
4019
|
+
maxWidth,
|
|
4020
|
+
lineHeight
|
|
4021
|
+
}) => {
|
|
4022
|
+
let words = text.replaceAll("\n", " \n ").split(/ +/);
|
|
4023
|
+
let line = "";
|
|
4024
|
+
let testLine = "";
|
|
4025
|
+
let lineArray = [];
|
|
4026
|
+
for (var n = 0; n < words.length; n++) {
|
|
4027
|
+
testLine += `${words[n]} `;
|
|
4028
|
+
let metrics = ctx.measureText(testLine);
|
|
4029
|
+
let testWidth = metrics.width;
|
|
4030
|
+
if (words[n]?.includes("\n") || testWidth > maxWidth && n > 0) {
|
|
4031
|
+
lineArray.push({ text: line, x, y });
|
|
4032
|
+
y += lineHeight;
|
|
4033
|
+
if (words[n]?.includes("\n")) {
|
|
4034
|
+
line = ``;
|
|
4035
|
+
testLine = ``;
|
|
4036
|
+
} else {
|
|
4037
|
+
line = `${words[n]} `;
|
|
4038
|
+
testLine = `${words[n]} `;
|
|
4039
|
+
}
|
|
4040
|
+
} else {
|
|
4041
|
+
line += `${words[n]} `;
|
|
4042
|
+
}
|
|
4043
|
+
if (n === words.length - 1) {
|
|
4044
|
+
lineArray.push({ text: line, x, y });
|
|
4045
|
+
}
|
|
4046
|
+
}
|
|
4047
|
+
return lineArray;
|
|
4048
|
+
};
|
|
4049
|
+
async function generateTextPreview(text) {
|
|
4050
|
+
const trimmedText = text.trim().slice(0, CHAR_LIMIT);
|
|
4051
|
+
const [width, height] = [500, 500];
|
|
4052
|
+
const padding = 20;
|
|
4053
|
+
const dpr = 2;
|
|
4054
|
+
const fontFamily = "Inter";
|
|
4055
|
+
const [fontSize, lineHeight] = [16, 24];
|
|
4056
|
+
const [textColor, backgroundColor] = ["black", "white"];
|
|
4057
|
+
return new Promise((resolve, reject) => {
|
|
4058
|
+
const canvas = document.createElement("canvas");
|
|
4059
|
+
canvas.width = width * dpr;
|
|
4060
|
+
canvas.height = height * dpr;
|
|
4061
|
+
const ctx = canvas.getContext("2d");
|
|
4062
|
+
if (!ctx) {
|
|
4063
|
+
return reject(new Error("Could not create canvas context"));
|
|
4064
|
+
}
|
|
4065
|
+
ctx.fillStyle = backgroundColor;
|
|
4066
|
+
ctx.fillRect(0, 0, width * dpr, width * dpr);
|
|
4067
|
+
ctx.fillStyle = textColor;
|
|
4068
|
+
ctx.font = `${fontSize * dpr}px ${fontFamily}`;
|
|
4069
|
+
const wrapped = wrapText({
|
|
4070
|
+
ctx,
|
|
4071
|
+
text: trimmedText,
|
|
4072
|
+
x: padding * dpr,
|
|
4073
|
+
y: fontSize * dpr + padding * dpr,
|
|
4074
|
+
maxWidth: width * dpr - padding * 2 * dpr,
|
|
4075
|
+
lineHeight: lineHeight * dpr
|
|
4076
|
+
});
|
|
4077
|
+
wrapped.forEach((line) => ctx.fillText(line.text, line.x, line.y));
|
|
4078
|
+
canvas.toBlob((blob) => {
|
|
4079
|
+
if (!blob) {
|
|
4080
|
+
return reject(new Error("Could not create blob"));
|
|
4081
|
+
}
|
|
4082
|
+
resolve(new File([blob], "thumbnail.png", { type: "image/png" }));
|
|
4083
|
+
});
|
|
4084
|
+
});
|
|
4085
|
+
}
|
|
4086
|
+
function generateTextTitle(text) {
|
|
4087
|
+
const firstLine = text.split("\n")[0];
|
|
4088
|
+
const firstSentence = firstLine?.split(". ")[0];
|
|
4089
|
+
if (firstSentence.length > 50) {
|
|
4090
|
+
return firstSentence.slice(0, 50) + "...";
|
|
4091
|
+
}
|
|
4092
|
+
return firstSentence;
|
|
4093
|
+
}
|
|
4094
|
+
var toTextFile = (text) => new File([text], "Untitled.txt", { type: "text/plain" });
|
|
4095
|
+
async function generateTextNftMetadataFiles(text) {
|
|
4096
|
+
const name = generateTextTitle(text);
|
|
4097
|
+
const textFile = toTextFile(text);
|
|
4098
|
+
const thumbnailFile = await generateTextPreview(text);
|
|
4099
|
+
return {
|
|
4100
|
+
name,
|
|
4101
|
+
mediaUrlFile: textFile,
|
|
4102
|
+
thumbnailFile
|
|
4103
|
+
};
|
|
4104
|
+
}
|
|
2954
4105
|
// Annotate the CommonJS export names for ESM import in node:
|
|
2955
4106
|
0 && (module.exports = {
|
|
2956
4107
|
Create1155Client,
|
|
@@ -2981,6 +4132,7 @@ function createCollectorClient(params) {
|
|
|
2981
4132
|
encodeCollectOnManager,
|
|
2982
4133
|
encodePostSignatureInput,
|
|
2983
4134
|
encodePremintForAPI,
|
|
4135
|
+
generateTextNftMetadataFiles,
|
|
2984
4136
|
getApiNetworkConfigForChain,
|
|
2985
4137
|
getDataFromPremintReceipt,
|
|
2986
4138
|
getDefaultFixedPriceMinterAddress,
|
|
@@ -3000,11 +4152,13 @@ function createCollectorClient(params) {
|
|
|
3000
4152
|
isPremintConfigV2,
|
|
3001
4153
|
isValidSignature,
|
|
3002
4154
|
makeCallWithEthSafeTransferData,
|
|
4155
|
+
makeMediaTokenMetadata,
|
|
3003
4156
|
makeMintRewardsRecipient,
|
|
3004
4157
|
makeNewPremint,
|
|
3005
4158
|
makePermitToCollectPremintOrNonPremint,
|
|
3006
4159
|
makePermitTransferBatchAndTypeData,
|
|
3007
4160
|
makePermitTransferTypeData,
|
|
4161
|
+
makeTextTokenMetadata,
|
|
3008
4162
|
makeUrls,
|
|
3009
4163
|
migratePremintConfigToV2,
|
|
3010
4164
|
mintWithEthParams,
|