@helia/verified-fetch 4.0.2 → 4.0.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/index.min.js +47 -47
- package/dist/index.min.js.map +3 -3
- package/dist/src/plugins/plugin-handle-dag-pb.d.ts.map +1 -1
- package/dist/src/plugins/plugin-handle-dag-pb.js +14 -2
- package/dist/src/plugins/plugin-handle-dag-pb.js.map +1 -1
- package/dist/src/utils/get-content-type.js +1 -1
- package/dist/src/utils/get-content-type.js.map +1 -1
- package/package.json +1 -1
- package/src/plugins/plugin-handle-dag-pb.ts +16 -2
- package/src/utils/get-content-type.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-handle-dag-pb.d.ts","sourceRoot":"","sources":["../../../src/plugins/plugin-handle-dag-pb.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAI/C;;GAEG;AACH,qBAAa,WAAY,SAAQ,UAAU;IACzC,QAAQ,CAAC,EAAE,mBAAkB;IAC7B,QAAQ,CAAC,KAAK,QAAc;IAE5B,SAAS,CAAE,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE,aAAa,GAAG,OAAO;IAiBlF;;OAEG;IACH,cAAc,CAAE,OAAO,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI;IAuBhD,MAAM,CAAE,OAAO,EAAE,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,GAAG,aAAa,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin-handle-dag-pb.d.ts","sourceRoot":"","sources":["../../../src/plugins/plugin-handle-dag-pb.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAI/C;;GAEG;AACH,qBAAa,WAAY,SAAQ,UAAU;IACzC,QAAQ,CAAC,EAAE,mBAAkB;IAC7B,QAAQ,CAAC,KAAK,QAAc;IAE5B,SAAS,CAAE,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE,aAAa,GAAG,OAAO;IAiBlF;;OAEG;IACH,cAAc,CAAE,OAAO,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI;IAuBhD,MAAM,CAAE,OAAO,EAAE,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,GAAG,aAAa,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;YAqJrH,kBAAkB;CAkCjC"}
|
|
@@ -55,6 +55,7 @@ export class DagPbPlugin extends BasePlugin {
|
|
|
55
55
|
const log = this.log;
|
|
56
56
|
let resource = context.resource;
|
|
57
57
|
const path = context.path;
|
|
58
|
+
let filename = query?.filename;
|
|
58
59
|
let redirected = false;
|
|
59
60
|
const byteRangeContext = context.byteRangeContext;
|
|
60
61
|
const ipfsRoots = pathDetails.ipfsRoots;
|
|
@@ -89,6 +90,8 @@ export class DagPbPlugin extends BasePlugin {
|
|
|
89
90
|
}));
|
|
90
91
|
log.trace('found root file at %c/%s with cid %c', dirCid, rootFilePath, entry.cid);
|
|
91
92
|
resolvedCID = entry.cid;
|
|
93
|
+
// use `index.html` as the file name to help with content types
|
|
94
|
+
filename = rootFilePath;
|
|
92
95
|
}
|
|
93
96
|
catch (err) {
|
|
94
97
|
if (options?.signal?.aborted) {
|
|
@@ -111,7 +114,10 @@ export class DagPbPlugin extends BasePlugin {
|
|
|
111
114
|
}
|
|
112
115
|
try {
|
|
113
116
|
// attempt to get the exact file size, but timeout quickly.
|
|
114
|
-
const stat = await fs.stat(resolvedCID, {
|
|
117
|
+
const stat = await fs.stat(resolvedCID, {
|
|
118
|
+
extended: true,
|
|
119
|
+
signal: AbortSignal.timeout(500)
|
|
120
|
+
});
|
|
115
121
|
byteRangeContext.setFileSize(stat.size);
|
|
116
122
|
}
|
|
117
123
|
catch (err) {
|
|
@@ -141,7 +147,13 @@ export class DagPbPlugin extends BasePlugin {
|
|
|
141
147
|
}));
|
|
142
148
|
const stream = streamAndFirstChunk.stream;
|
|
143
149
|
firstChunk = streamAndFirstChunk.firstChunk;
|
|
144
|
-
contentType = await context.serverTiming.time('get-content-type', '', getContentType({
|
|
150
|
+
contentType = await context.serverTiming.time('get-content-type', '', getContentType({
|
|
151
|
+
path,
|
|
152
|
+
filename,
|
|
153
|
+
bytes: firstChunk,
|
|
154
|
+
contentTypeParser,
|
|
155
|
+
log
|
|
156
|
+
}));
|
|
145
157
|
byteRangeContext.setBody(stream);
|
|
146
158
|
}
|
|
147
159
|
// if not a valid range request, okRangeRequest will call okResponse
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-handle-dag-pb.js","sourceRoot":"","sources":["../../../src/plugins/plugin-handle-dag-pb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtC,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAA;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAK7C;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,UAAU;IAChC,EAAE,GAAG,eAAe,CAAA;IACpB,KAAK,GAAG,CAAC,SAAS,CAAC,CAAA;IAE5B,SAAS,CAAE,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAiB;QACtE,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACxB,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAA;QACd,CAAC;QAED,qCAAqC;QACrC,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,KAAK,0BAA0B,EAAE,CAAC;YACrE,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,GAAG,CAAC,IAAI,KAAK,SAAS,CAAA;IAC/B,CAAC;IAED;;OAEG;IACH,cAAc,CAAE,OAAsB;QACpC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;QAE9C,IAAI,GAAQ,CAAA;QAEZ,IAAI,CAAC;YACH,6BAA6B;YAC7B,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAA;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,iCAAiC;YACjC,GAAG,GAAG,GAAG,CAAA;QACX,CAAC;QAED,sDAAsD;QACtD,IAAI,WAAW,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,+CAA+C;YAC/C,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAA;YACnB,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAA;QACvB,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,MAAM,CAAE,OAA0F;QACtG,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;QACpD,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;QACtE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;QACpB,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"plugin-handle-dag-pb.js","sourceRoot":"","sources":["../../../src/plugins/plugin-handle-dag-pb.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ export async function getContentType({ bytes, path, contentTypeParser, log, defa
|
|
|
22
22
|
else if (parsed != null) {
|
|
23
23
|
contentType = parsed;
|
|
24
24
|
}
|
|
25
|
-
log.trace('contentTypeParser returned %s', contentType);
|
|
25
|
+
log.trace('contentTypeParser returned %s for file with name %s', contentType, fileName);
|
|
26
26
|
}
|
|
27
27
|
catch (err) {
|
|
28
28
|
log.error('error parsing content type', err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-content-type.js","sourceRoot":"","sources":["../../../src/utils/get-content-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAmB5C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAE,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,kBAAkB,GAAG,0BAA0B,EAAE,QAAQ,EAAE,aAAa,EAAyB;IAC5K,IAAI,WAA+B,CAAA;IAEnC,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,IAAI,QAAQ,CAAA;YACZ,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;gBAC1B,QAAQ,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAA;gBAC1C,QAAQ,GAAG,CAAC,QAAQ,KAAK,EAAE,IAAI,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAA;YAC1F,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,aAAa,CAAA;YAC1B,CAAC;YACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;YAEjD,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAA;gBAE3B,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;oBACnB,WAAW,GAAG,MAAM,CAAA;gBACtB,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC1B,WAAW,GAAG,MAAM,CAAA;YACtB,CAAC;YACD,GAAG,CAAC,KAAK,CAAC
|
|
1
|
+
{"version":3,"file":"get-content-type.js","sourceRoot":"","sources":["../../../src/utils/get-content-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAmB5C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAE,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,kBAAkB,GAAG,0BAA0B,EAAE,QAAQ,EAAE,aAAa,EAAyB;IAC5K,IAAI,WAA+B,CAAA;IAEnC,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,IAAI,QAAQ,CAAA;YACZ,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;gBAC1B,QAAQ,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAA;gBAC1C,QAAQ,GAAG,CAAC,QAAQ,KAAK,EAAE,IAAI,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAA;YAC1F,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,aAAa,CAAA;YAC1B,CAAC;YACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;YAEjD,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAA;gBAE3B,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;oBACnB,WAAW,GAAG,MAAM,CAAA;gBACtB,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC1B,WAAW,GAAG,MAAM,CAAA;YACtB,CAAC;YACD,GAAG,CAAC,KAAK,CAAC,qDAAqD,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;QACzF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;IAED,IAAI,WAAW,KAAK,eAAe,EAAE,CAAC;QACpC,wIAAwI;QACxI,WAAW,GAAG,kBAAkB,CAAA;IAClC,CAAC;IAED,OAAO,WAAW,IAAI,kBAAkB,CAAA;AAC1C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@helia/verified-fetch",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.3",
|
|
4
4
|
"description": "A fetch-like API for obtaining verified & trustless IPFS content on the web",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/ipfs/helia-verified-fetch/tree/main/packages/verified-fetch#readme",
|
|
@@ -68,6 +68,7 @@ export class DagPbPlugin extends BasePlugin {
|
|
|
68
68
|
const log = this.log
|
|
69
69
|
let resource = context.resource
|
|
70
70
|
const path = context.path
|
|
71
|
+
let filename = query?.filename
|
|
71
72
|
|
|
72
73
|
let redirected = false
|
|
73
74
|
|
|
@@ -111,6 +112,9 @@ export class DagPbPlugin extends BasePlugin {
|
|
|
111
112
|
|
|
112
113
|
log.trace('found root file at %c/%s with cid %c', dirCid, rootFilePath, entry.cid)
|
|
113
114
|
resolvedCID = entry.cid
|
|
115
|
+
|
|
116
|
+
// use `index.html` as the file name to help with content types
|
|
117
|
+
filename = rootFilePath
|
|
114
118
|
} catch (err: any) {
|
|
115
119
|
if (options?.signal?.aborted) {
|
|
116
120
|
throw new AbortError(options?.signal?.reason)
|
|
@@ -136,7 +140,11 @@ export class DagPbPlugin extends BasePlugin {
|
|
|
136
140
|
|
|
137
141
|
try {
|
|
138
142
|
// attempt to get the exact file size, but timeout quickly.
|
|
139
|
-
const stat = await fs.stat(resolvedCID, {
|
|
143
|
+
const stat = await fs.stat(resolvedCID, {
|
|
144
|
+
extended: true,
|
|
145
|
+
signal: AbortSignal.timeout(500)
|
|
146
|
+
})
|
|
147
|
+
|
|
140
148
|
byteRangeContext.setFileSize(stat.size)
|
|
141
149
|
} catch (err: any) {
|
|
142
150
|
log.error('error getting exact file size for %c/%s - %e', cid, path, err)
|
|
@@ -167,7 +175,13 @@ export class DagPbPlugin extends BasePlugin {
|
|
|
167
175
|
}))
|
|
168
176
|
const stream = streamAndFirstChunk.stream
|
|
169
177
|
firstChunk = streamAndFirstChunk.firstChunk
|
|
170
|
-
contentType = await context.serverTiming.time('get-content-type', '', getContentType({
|
|
178
|
+
contentType = await context.serverTiming.time('get-content-type', '', getContentType({
|
|
179
|
+
path,
|
|
180
|
+
filename,
|
|
181
|
+
bytes: firstChunk,
|
|
182
|
+
contentTypeParser,
|
|
183
|
+
log
|
|
184
|
+
}))
|
|
171
185
|
|
|
172
186
|
byteRangeContext.setBody(stream)
|
|
173
187
|
}
|
|
@@ -41,7 +41,7 @@ export async function getContentType ({ bytes, path, contentTypeParser, log, def
|
|
|
41
41
|
} else if (parsed != null) {
|
|
42
42
|
contentType = parsed
|
|
43
43
|
}
|
|
44
|
-
log.trace('contentTypeParser returned %s', contentType)
|
|
44
|
+
log.trace('contentTypeParser returned %s for file with name %s', contentType, fileName)
|
|
45
45
|
} catch (err) {
|
|
46
46
|
log.error('error parsing content type', err)
|
|
47
47
|
}
|