@xyo-network/image-thumbnail-plugin 2.72.2 → 2.72.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Witness/Witness.js +28 -24
- package/dist/cjs/Witness/Witness.js.map +1 -1
- package/dist/docs.json +3622 -3477
- package/dist/esm/Witness/Witness.js +27 -24
- package/dist/esm/Witness/Witness.js.map +1 -1
- package/dist/types/Plugin.d.ts +1 -0
- package/dist/types/Plugin.d.ts.map +1 -1
- package/dist/types/Witness/Config.d.ts +1 -0
- package/dist/types/Witness/Config.d.ts.map +1 -1
- package/dist/types/Witness/Witness.d.ts +4 -3
- package/dist/types/Witness/Witness.d.ts.map +1 -1
- package/package.json +13 -13
- package/src/Witness/Config.ts +1 -0
- package/src/Witness/Witness.ts +28 -24
|
@@ -40,6 +40,9 @@ export class ImageThumbnailWitness extends AbstractWitness {
|
|
|
40
40
|
get height() {
|
|
41
41
|
return this.config.height ?? 128;
|
|
42
42
|
}
|
|
43
|
+
get ipfGateway() {
|
|
44
|
+
return this.config.ipfsGateway ?? 'cloudflare-ipfs.com';
|
|
45
|
+
}
|
|
43
46
|
get maxAsyncProcesses() {
|
|
44
47
|
return this.config.maxAsyncProcesses ?? 2;
|
|
45
48
|
}
|
|
@@ -55,29 +58,6 @@ export class ImageThumbnailWitness extends AbstractWitness {
|
|
|
55
58
|
get width() {
|
|
56
59
|
return this.config.width ?? 128;
|
|
57
60
|
}
|
|
58
|
-
/**
|
|
59
|
-
* Returns the equivalent IPFS gateway URL for the supplied URL.
|
|
60
|
-
* @param urlToCheck The URL to check
|
|
61
|
-
* @returns If the supplied URL is an IPFS URL, it converts the URL to the
|
|
62
|
-
* equivalent IPFS gateway URL. Otherwise, returns the original URL.
|
|
63
|
-
*/
|
|
64
|
-
static checkIpfsUrl(urlToCheck) {
|
|
65
|
-
const url = new URL(urlToCheck);
|
|
66
|
-
let protocol = url.protocol;
|
|
67
|
-
let host = url.host;
|
|
68
|
-
let path = url.pathname;
|
|
69
|
-
const query = url.search;
|
|
70
|
-
if (protocol === 'ipfs:') {
|
|
71
|
-
protocol = 'https:';
|
|
72
|
-
host = 'cloudflare-ipfs.com';
|
|
73
|
-
path = url.host === 'ipfs' ? `ipfs${path}` : `ipfs/${url.host}${path}`;
|
|
74
|
-
const root = `${protocol}//${host}/${path}`;
|
|
75
|
-
return query?.length > 0 ? `${root}?${query}` : root;
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
return urlToCheck;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
61
|
static async binaryToSha256(data) {
|
|
82
62
|
await PayloadHasher.wasmInitialized;
|
|
83
63
|
if (PayloadHasher.wasmSupport.canUseWasm) {
|
|
@@ -109,6 +89,29 @@ export class ImageThumbnailWitness extends AbstractWitness {
|
|
|
109
89
|
}
|
|
110
90
|
}
|
|
111
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Returns the equivalent IPFS gateway URL for the supplied URL.
|
|
94
|
+
* @param urlToCheck The URL to check
|
|
95
|
+
* @returns If the supplied URL is an IPFS URL, it converts the URL to the
|
|
96
|
+
* equivalent IPFS gateway URL. Otherwise, returns the original URL.
|
|
97
|
+
*/
|
|
98
|
+
checkIpfsUrl(urlToCheck) {
|
|
99
|
+
const url = new URL(urlToCheck);
|
|
100
|
+
let protocol = url.protocol;
|
|
101
|
+
let host = url.host;
|
|
102
|
+
let path = url.pathname;
|
|
103
|
+
const query = url.search;
|
|
104
|
+
if (protocol === 'ipfs:') {
|
|
105
|
+
protocol = 'https:';
|
|
106
|
+
host = this.ipfGateway;
|
|
107
|
+
path = url.host === 'ipfs' ? `ipfs${path}` : `ipfs/${url.host}${path}`;
|
|
108
|
+
const root = `${protocol}//${host}/${path}`;
|
|
109
|
+
return query?.length > 0 ? `${root}?${query}` : root;
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
return urlToCheck;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
112
115
|
async observeHandler(payloads = []) {
|
|
113
116
|
if (!hasbin('magick')) {
|
|
114
117
|
throw Error('ImageMagick is required for this witness');
|
|
@@ -131,7 +134,7 @@ export class ImageThumbnailWitness extends AbstractWitness {
|
|
|
131
134
|
}
|
|
132
135
|
else {
|
|
133
136
|
//if it is ipfs, go through cloud flair
|
|
134
|
-
const mutatedUrl =
|
|
137
|
+
const mutatedUrl = this.checkIpfsUrl(url);
|
|
135
138
|
result = await this.fromHttp(mutatedUrl);
|
|
136
139
|
}
|
|
137
140
|
this.cache.set(url, result);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Witness.js","sourceRoot":"","sources":["../../../src/Witness/Witness.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,OAAO,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,UAAU,CAAA;AAElD,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EAAE,KAAK,EAA6B,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAkB,oBAAoB,EAAE,MAAM,6CAA6C,CAAA;AAElG,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,QAAQ,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;AAC7B,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,OAAO,MAAM,gBAAgB,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,KAAK,MAAM,QAAQ,CAAA;AAC1B,OAAO,GAAG,MAAM,WAAW,CAAA;AAE3B,OAAO,EAAE,iCAAiC,EAAE,MAAM,UAAU,CAAA;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAA;AAGrD,sCAAsC;AAEtC,4BAA4B;AAE5B,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;AAW1C,MAAM,OAAO,qBAAiG,SAAQ,eAAwB;IAC5I,MAAM,CAAU,aAAa,GAAG,CAAC,iCAAiC,CAAC,CAAA;IAE3D,MAAM,CAAmC;IACzC,UAAU,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAE1D,IAAI,KAAK;QACP,IAAI,CAAC,MAAM;YACT,IAAI,CAAC,MAAM;gBACX,IAAI,QAAQ,CAAyB;oBACnC,GAAG,EAAE,IAAI,CAAC,eAAe;oBACzB,OAAO,EAAE,IAAI,CAAC,aAAa;oBAC3B,qCAAqC;oBACrC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC;iBACnD,CAAC,CAAA;QACJ,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAA;IACtC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAA;IAClC,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,CAAC,CAAA;IAC3C,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,CAAA,CAAC,eAAe;IACtE,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,GAAG,CAAA;IAC3C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;IAClC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,CAAA;IACjC,CAAC;
|
|
1
|
+
{"version":3,"file":"Witness.js","sourceRoot":"","sources":["../../../src/Witness/Witness.ts"],"names":[],"mappings":"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"}
|
package/dist/types/Plugin.d.ts
CHANGED
|
@@ -41,6 +41,7 @@ export declare const ImageThumbnailPlugin: () => import("@xyo-network/payloadset
|
|
|
41
41
|
} & {
|
|
42
42
|
encoding?: "PNG" | undefined;
|
|
43
43
|
height?: number | undefined;
|
|
44
|
+
ipfsGateway?: string | undefined;
|
|
44
45
|
maxAsyncProcesses?: number | undefined;
|
|
45
46
|
maxCacheBytes?: number | undefined;
|
|
46
47
|
maxCacheEntries?: number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AAEjD,eAAO,MAAM,oBAAoB
|
|
1
|
+
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AAEjD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAa9B,CAAA"}
|
|
@@ -4,6 +4,7 @@ export type ImageThumbnailWitnessConfigSchema = typeof ImageThumbnailWitnessConf
|
|
|
4
4
|
export type ImageThumbnailWitnessConfig = WitnessConfig<{
|
|
5
5
|
encoding?: 'PNG';
|
|
6
6
|
height?: number;
|
|
7
|
+
ipfsGateway?: string;
|
|
7
8
|
maxAsyncProcesses?: number;
|
|
8
9
|
maxCacheBytes?: number;
|
|
9
10
|
maxCacheEntries?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../../src/Witness/Config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,eAAO,MAAM,iCAAiC,8CAAoD,CAAA;AAClG,MAAM,MAAM,iCAAiC,GAAG,OAAO,iCAAiC,CAAA;AAExF,MAAM,MAAM,2BAA2B,GAAG,aAAa,CAAC;IACtD,QAAQ,CAAC,EAAE,KAAK,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,iCAAiC,CAAA;IACzC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../../src/Witness/Config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,eAAO,MAAM,iCAAiC,8CAAoD,CAAA;AAClG,MAAM,MAAM,iCAAiC,GAAG,OAAO,iCAAiC,CAAA;AAExF,MAAM,MAAM,2BAA2B,GAAG,aAAa,CAAC;IACtD,QAAQ,CAAC,EAAE,KAAK,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,iCAAiC,CAAA;IACzC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAC,CAAA"}
|
|
@@ -37,20 +37,21 @@ export declare class ImageThumbnailWitness<TParams extends ImageThumbnailWitness
|
|
|
37
37
|
}, unknown>;
|
|
38
38
|
get encoding(): "PNG";
|
|
39
39
|
get height(): number;
|
|
40
|
+
get ipfGateway(): string;
|
|
40
41
|
get maxAsyncProcesses(): number;
|
|
41
42
|
get maxCacheBytes(): number;
|
|
42
43
|
get maxCacheEntries(): number;
|
|
43
44
|
get quality(): number;
|
|
44
45
|
get width(): number;
|
|
46
|
+
private static binaryToSha256;
|
|
47
|
+
private static bufferFromDataUrl;
|
|
45
48
|
/**
|
|
46
49
|
* Returns the equivalent IPFS gateway URL for the supplied URL.
|
|
47
50
|
* @param urlToCheck The URL to check
|
|
48
51
|
* @returns If the supplied URL is an IPFS URL, it converts the URL to the
|
|
49
52
|
* equivalent IPFS gateway URL. Otherwise, returns the original URL.
|
|
50
53
|
*/
|
|
51
|
-
|
|
52
|
-
private static binaryToSha256;
|
|
53
|
-
private static bufferFromDataUrl;
|
|
54
|
+
checkIpfsUrl(urlToCheck: string): string;
|
|
54
55
|
protected observeHandler(payloads?: UrlPayload[]): Promise<ImageThumbnail[]>;
|
|
55
56
|
private createThumbnailDataUrl;
|
|
56
57
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../../src/Witness/Witness.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAwB,MAAM,6CAA6C,CAAA;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAOtD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAMpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AAQtD,MAAM,WAAW,0BAA2B,SAAQ,KAAK;IACvD,IAAI,EAAE,4BAA4B,CAAA;IAClC,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,QAAS,SAAQ,KAAK;IACrC,IAAI,EAAE,MAAM,CAAA;CACb;AAED,qBAAa,qBAAqB,CAAC,OAAO,SAAS,2BAA2B,GAAG,2BAA2B,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAC;IAC5I,OAAgB,aAAa,iDAAsC;IAEnE,OAAO,CAAC,MAAM,CAAC,CAAkC;IACjD,OAAO,CAAC,UAAU,CAAwC;IAE1D,IAAI,KAAK;;;;;;;;;;;;;;;;;;;;gBAUR;IAED,IAAI,QAAQ,UAEX;IAED,IAAI,MAAM,WAET;IAED,IAAI,iBAAiB,WAEpB;IAED,IAAI,aAAa,WAEhB;IAED,IAAI,eAAe,WAElB;IAED,IAAI,OAAO,WAEV;IAED,IAAI,KAAK,WAER;
|
|
1
|
+
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../../src/Witness/Witness.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAwB,MAAM,6CAA6C,CAAA;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAOtD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAMpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AAQtD,MAAM,WAAW,0BAA2B,SAAQ,KAAK;IACvD,IAAI,EAAE,4BAA4B,CAAA;IAClC,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,QAAS,SAAQ,KAAK;IACrC,IAAI,EAAE,MAAM,CAAA;CACb;AAED,qBAAa,qBAAqB,CAAC,OAAO,SAAS,2BAA2B,GAAG,2BAA2B,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAC;IAC5I,OAAgB,aAAa,iDAAsC;IAEnE,OAAO,CAAC,MAAM,CAAC,CAAkC;IACjD,OAAO,CAAC,UAAU,CAAwC;IAE1D,IAAI,KAAK;;;;;;;;;;;;;;;;;;;;gBAUR;IAED,IAAI,QAAQ,UAEX;IAED,IAAI,MAAM,WAET;IAED,IAAI,UAAU,WAEb;IAED,IAAI,iBAAiB,WAEpB;IAED,IAAI,aAAa,WAEhB;IAED,IAAI,eAAe,WAElB;IAED,IAAI,OAAO,WAEV;IAED,IAAI,KAAK,WAER;mBAEoB,cAAc;IAanC,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAkBhC;;;;;OAKG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM;cAiBN,cAAc,CAAC,QAAQ,GAAE,UAAU,EAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;YAqCjF,sBAAsB;IAiBpC;;;;OAIG;YACW,wBAAwB;YAKxB,QAAQ;CA+GvB"}
|
package/package.json
CHANGED
|
@@ -13,18 +13,18 @@
|
|
|
13
13
|
"@xylabs/assert": "^2.9.3",
|
|
14
14
|
"@xylabs/delay": "^2.9.3",
|
|
15
15
|
"@xylabs/url": "^2.9.3",
|
|
16
|
-
"@xyo-network/abstract-diviner": "~2.72.
|
|
17
|
-
"@xyo-network/archivist-model": "~2.72.
|
|
18
|
-
"@xyo-network/axios": "~2.72.
|
|
19
|
-
"@xyo-network/core": "~2.72.
|
|
20
|
-
"@xyo-network/diviner-model": "~2.72.
|
|
21
|
-
"@xyo-network/diviner-payload-model": "~2.72.
|
|
22
|
-
"@xyo-network/image-thumbnail-payload-plugin": "~2.72.
|
|
23
|
-
"@xyo-network/module": "~2.72.
|
|
24
|
-
"@xyo-network/payload-model": "~2.72.
|
|
25
|
-
"@xyo-network/payloadset-plugin": "~2.72.
|
|
26
|
-
"@xyo-network/url-payload-plugin": "~2.72.
|
|
27
|
-
"@xyo-network/witness": "~2.72.
|
|
16
|
+
"@xyo-network/abstract-diviner": "~2.72.3",
|
|
17
|
+
"@xyo-network/archivist-model": "~2.72.3",
|
|
18
|
+
"@xyo-network/axios": "~2.72.3",
|
|
19
|
+
"@xyo-network/core": "~2.72.3",
|
|
20
|
+
"@xyo-network/diviner-model": "~2.72.3",
|
|
21
|
+
"@xyo-network/diviner-payload-model": "~2.72.3",
|
|
22
|
+
"@xyo-network/image-thumbnail-payload-plugin": "~2.72.3",
|
|
23
|
+
"@xyo-network/module": "~2.72.3",
|
|
24
|
+
"@xyo-network/payload-model": "~2.72.3",
|
|
25
|
+
"@xyo-network/payloadset-plugin": "~2.72.3",
|
|
26
|
+
"@xyo-network/url-payload-plugin": "~2.72.3",
|
|
27
|
+
"@xyo-network/witness": "~2.72.3",
|
|
28
28
|
"async-mutex": "^0.4.0",
|
|
29
29
|
"file-type": "^16.5.4",
|
|
30
30
|
"fluent-ffmpeg": "^2.1.2",
|
|
@@ -78,5 +78,5 @@
|
|
|
78
78
|
},
|
|
79
79
|
"sideEffects": false,
|
|
80
80
|
"types": "dist/types/index.d.ts",
|
|
81
|
-
"version": "2.72.
|
|
81
|
+
"version": "2.72.3"
|
|
82
82
|
}
|
package/src/Witness/Config.ts
CHANGED
|
@@ -7,6 +7,7 @@ export type ImageThumbnailWitnessConfigSchema = typeof ImageThumbnailWitnessConf
|
|
|
7
7
|
export type ImageThumbnailWitnessConfig = WitnessConfig<{
|
|
8
8
|
encoding?: 'PNG'
|
|
9
9
|
height?: number
|
|
10
|
+
ipfsGateway?: string
|
|
10
11
|
maxAsyncProcesses?: number
|
|
11
12
|
maxCacheBytes?: number
|
|
12
13
|
maxCacheEntries?: number
|
package/src/Witness/Witness.ts
CHANGED
|
@@ -62,6 +62,10 @@ export class ImageThumbnailWitness<TParams extends ImageThumbnailWitnessParams =
|
|
|
62
62
|
return this.config.height ?? 128
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
+
get ipfGateway() {
|
|
66
|
+
return this.config.ipfsGateway ?? 'cloudflare-ipfs.com'
|
|
67
|
+
}
|
|
68
|
+
|
|
65
69
|
get maxAsyncProcesses() {
|
|
66
70
|
return this.config.maxAsyncProcesses ?? 2
|
|
67
71
|
}
|
|
@@ -82,29 +86,6 @@ export class ImageThumbnailWitness<TParams extends ImageThumbnailWitnessParams =
|
|
|
82
86
|
return this.config.width ?? 128
|
|
83
87
|
}
|
|
84
88
|
|
|
85
|
-
/**
|
|
86
|
-
* Returns the equivalent IPFS gateway URL for the supplied URL.
|
|
87
|
-
* @param urlToCheck The URL to check
|
|
88
|
-
* @returns If the supplied URL is an IPFS URL, it converts the URL to the
|
|
89
|
-
* equivalent IPFS gateway URL. Otherwise, returns the original URL.
|
|
90
|
-
*/
|
|
91
|
-
static checkIpfsUrl(urlToCheck: string) {
|
|
92
|
-
const url = new URL(urlToCheck)
|
|
93
|
-
let protocol = url.protocol
|
|
94
|
-
let host = url.host
|
|
95
|
-
let path = url.pathname
|
|
96
|
-
const query = url.search
|
|
97
|
-
if (protocol === 'ipfs:') {
|
|
98
|
-
protocol = 'https:'
|
|
99
|
-
host = 'cloudflare-ipfs.com'
|
|
100
|
-
path = url.host === 'ipfs' ? `ipfs${path}` : `ipfs/${url.host}${path}`
|
|
101
|
-
const root = `${protocol}//${host}/${path}`
|
|
102
|
-
return query?.length > 0 ? `${root}?${query}` : root
|
|
103
|
-
} else {
|
|
104
|
-
return urlToCheck
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
89
|
private static async binaryToSha256(data: Uint8Array) {
|
|
109
90
|
await PayloadHasher.wasmInitialized
|
|
110
91
|
if (PayloadHasher.wasmSupport.canUseWasm) {
|
|
@@ -136,6 +117,29 @@ export class ImageThumbnailWitness<TParams extends ImageThumbnailWitnessParams =
|
|
|
136
117
|
}
|
|
137
118
|
}
|
|
138
119
|
|
|
120
|
+
/**
|
|
121
|
+
* Returns the equivalent IPFS gateway URL for the supplied URL.
|
|
122
|
+
* @param urlToCheck The URL to check
|
|
123
|
+
* @returns If the supplied URL is an IPFS URL, it converts the URL to the
|
|
124
|
+
* equivalent IPFS gateway URL. Otherwise, returns the original URL.
|
|
125
|
+
*/
|
|
126
|
+
checkIpfsUrl(urlToCheck: string) {
|
|
127
|
+
const url = new URL(urlToCheck)
|
|
128
|
+
let protocol = url.protocol
|
|
129
|
+
let host = url.host
|
|
130
|
+
let path = url.pathname
|
|
131
|
+
const query = url.search
|
|
132
|
+
if (protocol === 'ipfs:') {
|
|
133
|
+
protocol = 'https:'
|
|
134
|
+
host = this.ipfGateway
|
|
135
|
+
path = url.host === 'ipfs' ? `ipfs${path}` : `ipfs/${url.host}${path}`
|
|
136
|
+
const root = `${protocol}//${host}/${path}`
|
|
137
|
+
return query?.length > 0 ? `${root}?${query}` : root
|
|
138
|
+
} else {
|
|
139
|
+
return urlToCheck
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
139
143
|
protected override async observeHandler(payloads: UrlPayload[] = []): Promise<ImageThumbnail[]> {
|
|
140
144
|
if (!hasbin('magick')) {
|
|
141
145
|
throw Error('ImageMagick is required for this witness')
|
|
@@ -162,7 +166,7 @@ export class ImageThumbnailWitness<TParams extends ImageThumbnailWitnessParams =
|
|
|
162
166
|
}
|
|
163
167
|
} else {
|
|
164
168
|
//if it is ipfs, go through cloud flair
|
|
165
|
-
const mutatedUrl =
|
|
169
|
+
const mutatedUrl = this.checkIpfsUrl(url)
|
|
166
170
|
result = await this.fromHttp(mutatedUrl)
|
|
167
171
|
}
|
|
168
172
|
this.cache.set(url, result)
|