@chunkd/source-http 10.0.2 → 10.1.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/CHANGELOG.md +22 -0
- package/README.md +9 -3
- package/build/http.fs.d.ts +2 -2
- package/build/http.fs.js +3 -2
- package/build/http.source.d.ts +6 -2
- package/build/http.source.d.ts.map +1 -1
- package/build/http.source.js +33 -15
- package/package.json +4 -9
- package/src/http.source.ts +32 -13
- package/build/index.node.d.ts +0 -3
- package/build/index.node.d.ts.map +0 -1
- package/build/index.node.js +0 -8
- package/src/index.node.ts +0 -9
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,28 @@
|
|
|
6
6
|
* dependencies
|
|
7
7
|
* @chunkd/core bumped from ^10.1.0 to ^10.1.1
|
|
8
8
|
|
|
9
|
+
## [10.1.1](https://github.com/blacha/chunkd/compare/source-http-v10.1.0...source-http-v10.1.1) (2023-04-27)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* **source-http:** correct import as index.node.js no longer exists ([023c90e](https://github.com/blacha/chunkd/commit/023c90ed57499ea103a314e6760451ad153cc35b))
|
|
15
|
+
|
|
16
|
+
## [10.1.0](https://github.com/blacha/chunkd/compare/source-http-v10.0.2...source-http-v10.1.0) (2023-04-27)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Features
|
|
20
|
+
|
|
21
|
+
* **source-http:** support etag matching if etags are returned ([f08bb9c](https://github.com/blacha/chunkd/commit/f08bb9c2ae894026155074161161182f78efa30b))
|
|
22
|
+
* **source-http:** use built in fetch with node>18 ([52529a3](https://github.com/blacha/chunkd/commit/52529a35fe72612915fac9c06893a871ffc4e392))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Dependencies
|
|
26
|
+
|
|
27
|
+
* The following workspace dependencies were updated
|
|
28
|
+
* dependencies
|
|
29
|
+
* @chunkd/core bumped from ^10.1.1 to ^10.2.0
|
|
30
|
+
|
|
9
31
|
## [10.0.0](https://github.com/blacha/chunkd/compare/source-http-v9.1.0...source-http-v10.0.0) (2022-09-21)
|
|
10
32
|
|
|
11
33
|
|
package/README.md
CHANGED
|
@@ -8,10 +8,16 @@ Load a chunks of a file from a URL Source using `fetch`
|
|
|
8
8
|
```javascript
|
|
9
9
|
import { SourceHttp } from '@chunkd/source-http';
|
|
10
10
|
|
|
11
|
-
const source= new SourceHttp('https://example.com/cog.tif');
|
|
11
|
+
const source = new SourceHttp('https://example.com/cog.tif');
|
|
12
12
|
|
|
13
13
|
await source.loadBytes(0, 1024)
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
#### Nodejs
|
|
17
|
-
|
|
16
|
+
#### Nodejs <18
|
|
17
|
+
Node.js <18 does not come with a default `fetch` function, Users can specify a `fetch` like object
|
|
18
|
+
|
|
19
|
+
```javascript
|
|
20
|
+
import {fetch} from 'node-fetch';
|
|
21
|
+
|
|
22
|
+
SourceHttp.fetch = fetch;
|
|
23
|
+
```
|
package/build/http.fs.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
3
3
|
import { FileInfo, FileSystem } from '@chunkd/core';
|
|
4
4
|
import type { Readable } from 'stream';
|
|
5
5
|
import { SourceHttp } from './http.source.js';
|
package/build/http.fs.js
CHANGED
|
@@ -9,7 +9,7 @@ function getCompositeError(e, msg) {
|
|
|
9
9
|
return new CompositeError(msg, 403, e);
|
|
10
10
|
return new CompositeError(msg, 500, e);
|
|
11
11
|
}
|
|
12
|
-
|
|
12
|
+
class FsHttp {
|
|
13
13
|
constructor() {
|
|
14
14
|
this.protocol = FsHttp.protocol;
|
|
15
15
|
}
|
|
@@ -48,4 +48,5 @@ export class FsHttp {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
FsHttp.protocol = 'http';
|
|
51
|
-
|
|
51
|
+
export { FsHttp };
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5mcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9odHRwLmZzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQXdCLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHOUMsU0FBUyxpQkFBaUIsQ0FBQyxDQUFVLEVBQUUsR0FBVztJQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUFFLE9BQU8sSUFBSSxjQUFjLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6RCxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUTtRQUFFLE9BQU8sSUFBSSxjQUFjLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoRSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUTtRQUFFLE9BQU8sSUFBSSxjQUFjLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoRSxPQUFPLElBQUksY0FBYyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVELE1BQWEsTUFBTTtJQUFuQjtRQUVFLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO0lBd0M3QixDQUFDO0lBdENDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBYztRQUN0QixPQUFPLEVBQUUsQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUN6QyxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQWdCO1FBQ3JCLE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFnQjtRQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDRCxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBZ0I7UUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFnQjtRQUN6QixNQUFNLEdBQUcsR0FBRyxNQUFNLFVBQVUsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQUUsTUFBTSxpQkFBaUIsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsbUJBQW1CLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDL0YsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ2pHLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQWdCO1FBQ3pCLE1BQU0sR0FBRyxHQUFHLE1BQU0sVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFBRSxNQUFNLGlCQUFpQixDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxtQkFBbUIsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMvRixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFnQjtRQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQWdCO1FBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFnQjtRQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7O0FBeENNLGVBQVEsR0FBRyxNQUFNLEFBQVQsQ0FBVTtTQURkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb3NpdGVFcnJvciwgRmlsZUluZm8sIEZpbGVTeXN0ZW0sIGlzUmVjb3JkIH0gZnJvbSAnQGNodW5rZC9jb3JlJztcbmltcG9ydCB0eXBlIHsgUmVhZGFibGUgfSBmcm9tICdzdHJlYW0nO1xuaW1wb3J0IHsgU291cmNlSHR0cCB9IGZyb20gJy4vaHR0cC5zb3VyY2UuanMnO1xuXG5leHBvcnQgdHlwZSBGc0Vycm9yID0geyBjb2RlOiBzdHJpbmcgfSAmIEVycm9yO1xuZnVuY3Rpb24gZ2V0Q29tcG9zaXRlRXJyb3IoZTogdW5rbm93biwgbXNnOiBzdHJpbmcpOiBDb21wb3NpdGVFcnJvciB7XG4gIGlmICghaXNSZWNvcmQoZSkpIHJldHVybiBuZXcgQ29tcG9zaXRlRXJyb3IobXNnLCA1MDAsIGUpO1xuICBpZiAoZS5jb2RlID09PSAnRU5PRU5UJykgcmV0dXJuIG5ldyBDb21wb3NpdGVFcnJvcihtc2csIDQwNCwgZSk7XG4gIGlmIChlLmNvZGUgPT09ICdFQUNDRVMnKSByZXR1cm4gbmV3IENvbXBvc2l0ZUVycm9yKG1zZywgNDAzLCBlKTtcbiAgcmV0dXJuIG5ldyBDb21wb3NpdGVFcnJvcihtc2csIDUwMCwgZSk7XG59XG5cbmV4cG9ydCBjbGFzcyBGc0h0dHAgaW1wbGVtZW50cyBGaWxlU3lzdGVtPFNvdXJjZUh0dHA+IHtcbiAgc3RhdGljIHByb3RvY29sID0gJ2h0dHAnO1xuICBwcm90b2NvbCA9IEZzSHR0cC5wcm90b2NvbDtcblxuICBzdGF0aWMgaXMoZnM6IEZpbGVTeXN0ZW0pOiBmcyBpcyBGc0h0dHAge1xuICAgIHJldHVybiBmcy5wcm90b2NvbCA9PT0gRnNIdHRwLnByb3RvY29sO1xuICB9XG5cbiAgc291cmNlKGZpbGVQYXRoOiBzdHJpbmcpOiBTb3VyY2VIdHRwIHtcbiAgICByZXR1cm4gbmV3IFNvdXJjZUh0dHAoZmlsZVBhdGgpO1xuICB9XG5cbiAgYXN5bmMgKmxpc3QoZmlsZVBhdGg6IHN0cmluZyk6IEFzeW5jR2VuZXJhdG9yPHN0cmluZz4ge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIFwibGlzdFwiIG9uICR7ZmlsZVBhdGh9YCk7XG4gIH1cbiAgYXN5bmMgKmRldGFpbHMoZmlsZVBhdGg6IHN0cmluZyk6IEFzeW5jR2VuZXJhdG9yPEZpbGVJbmZvPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gXCJkZXRhaWxzXCIgb24gJHtmaWxlUGF0aH1gKTtcbiAgfVxuXG4gIGFzeW5jIGhlYWQoZmlsZVBhdGg6IHN0cmluZyk6IFByb21pc2U8KEZpbGVJbmZvICYgeyBpc0RpcmVjdG9yeTogYm9vbGVhbiB9KSB8IG51bGw+IHtcbiAgICBjb25zdCByZXMgPSBhd2FpdCBTb3VyY2VIdHRwLmZldGNoKGZpbGVQYXRoLCB7IG1ldGhvZDogJ0hFQUQnIH0pO1xuICAgIGlmICghcmVzLm9rKSB0aHJvdyBnZXRDb21wb3NpdGVFcnJvcihuZXcgRXJyb3IocmVzLnN0YXR1c1RleHQpLCBgRmFpbGVkIHRvIGhlYWQ6ICR7ZmlsZVBhdGh9YCk7XG4gICAgcmV0dXJuIHsgcGF0aDogZmlsZVBhdGgsIHNpemU6IE51bWJlcihyZXMuaGVhZGVycy5nZXQoJ2NvbnRlbnQtbGVuZ3RoJykpLCBpc0RpcmVjdG9yeTogZmFsc2UgfTtcbiAgfVxuXG4gIGFzeW5jIHJlYWQoZmlsZVBhdGg6IHN0cmluZyk6IFByb21pc2U8QnVmZmVyPiB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgU291cmNlSHR0cC5mZXRjaChmaWxlUGF0aCwgeyBtZXRob2Q6ICdHRVQnIH0pO1xuICAgIGlmICghcmVzLm9rKSB0aHJvdyBnZXRDb21wb3NpdGVFcnJvcihuZXcgRXJyb3IocmVzLnN0YXR1c1RleHQpLCBgRmFpbGVkIHRvIGhlYWQ6ICR7ZmlsZVBhdGh9YCk7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKGF3YWl0IHJlcy5hcnJheUJ1ZmZlcigpKTtcbiAgfVxuXG4gIGFzeW5jIHdyaXRlKGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBcIndyaXRlXCIgb24gJHtmaWxlUGF0aH1gKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZShmaWxlUGF0aDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gXCJkZWxldGVcIiBvbiAke2ZpbGVQYXRofWApO1xuICB9XG5cbiAgc3RyZWFtKGZpbGVQYXRoOiBzdHJpbmcpOiBSZWFkYWJsZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gXCJzdHJlYW1cIiBvbiAke2ZpbGVQYXRofWApO1xuICB9XG59XG4iXX0=
|
package/build/http.source.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChunkSource, ChunkSourceBase } from '@chunkd/core';
|
|
1
|
+
import { ChunkSource, ChunkSourceBase, ChunkSourceMetadata } from '@chunkd/core';
|
|
2
2
|
export interface FetchLikeOptions {
|
|
3
3
|
method?: string;
|
|
4
4
|
headers?: Record<string, string>;
|
|
@@ -21,7 +21,11 @@ export declare class SourceHttp extends ChunkSourceBase {
|
|
|
21
21
|
uri: string;
|
|
22
22
|
constructor(uri: string);
|
|
23
23
|
static isSource(source: ChunkSource): source is SourceHttp;
|
|
24
|
-
|
|
24
|
+
metadata: ChunkSourceMetadata | null;
|
|
25
|
+
/** Load the ETag and content-range from the response */
|
|
26
|
+
parseResponse(response: FetchLikeResponse): ChunkSourceMetadata;
|
|
27
|
+
private _head;
|
|
28
|
+
head(): Promise<FetchLikeResponse>;
|
|
25
29
|
get size(): Promise<number>;
|
|
26
30
|
fetchBytes(offset: number, length?: number): Promise<ArrayBuffer>;
|
|
27
31
|
static fetch: FetchLike;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.source.d.ts","sourceRoot":"","sources":["../src/http.source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"http.source.d.ts","sourceRoot":"","sources":["../src/http.source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,mBAAmB,EAA8B,MAAM,cAAc,CAAC;AAE7G,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AACD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QAAE,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC3C,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;CACrC;AACD,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE7F,qBAAa,UAAW,SAAQ,eAAe;IAC7C,IAAI,SAAS;IACb,QAAQ,SAAU;IAElB,MAAM,CAAC,gBAAgB,SAAa;IACpC,SAAS,EAAE,MAAM,CAA+B;IAEhD,GAAG,EAAE,MAAM,CAAC;gBAEA,GAAG,EAAE,MAAM;IAKvB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,IAAI,UAAU;IAI1D,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACrC,wDAAwD;IACxD,aAAa,CAAC,QAAQ,EAAE,iBAAiB,GAAG,mBAAmB;IAQ/D,OAAO,CAAC,KAAK,CAAoC;IACjD,IAAI,IAAI,OAAO,CAAC,iBAAiB,CAAC;IASlC,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAG1B;IAEK,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAqBvE,MAAM,CAAC,KAAK,EAAE,SAAS,CAAyB;CACjD"}
|
package/build/http.source.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ChunkSourceBase } from '@chunkd/core';
|
|
2
|
-
|
|
1
|
+
import { ChunkSourceBase, CompositeError } from '@chunkd/core';
|
|
2
|
+
class SourceHttp extends ChunkSourceBase {
|
|
3
3
|
constructor(uri) {
|
|
4
4
|
super();
|
|
5
5
|
this.type = 'url';
|
|
@@ -10,30 +10,48 @@ export class SourceHttp extends ChunkSourceBase {
|
|
|
10
10
|
static isSource(source) {
|
|
11
11
|
return source.type === 'url';
|
|
12
12
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
/** Load the ETag and content-range from the response */
|
|
14
|
+
parseResponse(response) {
|
|
15
|
+
var _a;
|
|
16
|
+
const metadata = {};
|
|
17
|
+
const contentRange = response.headers.get('content-range');
|
|
18
|
+
if (contentRange != null)
|
|
19
|
+
metadata.size = this.parseContentRange(contentRange);
|
|
20
|
+
metadata.etag = (_a = response.headers.get('etag')) !== null && _a !== void 0 ? _a : undefined;
|
|
21
|
+
return metadata;
|
|
22
|
+
}
|
|
23
|
+
head() {
|
|
24
|
+
if (this._head)
|
|
25
|
+
return this._head;
|
|
26
|
+
this._head = SourceHttp.fetch(this.uri, { method: 'HEAD' }).then((res) => {
|
|
27
|
+
this.metadata = this.parseResponse(res);
|
|
28
|
+
return res;
|
|
19
29
|
});
|
|
20
|
-
return this.
|
|
30
|
+
return this._head;
|
|
31
|
+
}
|
|
32
|
+
get size() {
|
|
33
|
+
var _a;
|
|
34
|
+
if ((_a = this.metadata) === null || _a === void 0 ? void 0 : _a.size)
|
|
35
|
+
return Promise.resolve(this.metadata.size);
|
|
36
|
+
return this.head().then(() => { var _a, _b; return (_b = (_a = this.metadata) === null || _a === void 0 ? void 0 : _a.size) !== null && _b !== void 0 ? _b : -1; });
|
|
21
37
|
}
|
|
22
38
|
async fetchBytes(offset, length) {
|
|
23
39
|
const Range = this.toRange(offset, length);
|
|
24
40
|
const headers = { Range };
|
|
25
41
|
const response = await SourceHttp.fetch(this.uri, { headers });
|
|
26
42
|
if (response.ok) {
|
|
27
|
-
const
|
|
28
|
-
if (this.
|
|
29
|
-
this.
|
|
30
|
-
|
|
43
|
+
const metadata = this.parseResponse(response);
|
|
44
|
+
if (this.metadata == null)
|
|
45
|
+
this.metadata = metadata;
|
|
46
|
+
else if (this.metadata.etag && this.metadata.etag !== metadata.etag)
|
|
47
|
+
throw new CompositeError(`ETag conflict ${this.uri} ${Range} expected: ${this.metadata.etag} got: ${metadata.etag}`, 409 /* ErrorCodes.Conflict */, null);
|
|
31
48
|
return response.arrayBuffer();
|
|
32
49
|
}
|
|
33
|
-
throw new
|
|
50
|
+
throw new CompositeError(`Failed to fetch ${this.uri} ${Range}`, response.status, response.statusText);
|
|
34
51
|
}
|
|
35
52
|
}
|
|
36
53
|
SourceHttp.DefaultChunkSize = 32 * 1024;
|
|
37
54
|
// Allow overwriting the fetcher used (eg testing/node-js)
|
|
38
55
|
SourceHttp.fetch = (a, b) => fetch(a, b);
|
|
39
|
-
|
|
56
|
+
export { SourceHttp };
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaHR0cC5zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGVBQWUsRUFBdUIsY0FBYyxFQUFjLE1BQU0sY0FBYyxDQUFDO0FBZTdHLE1BQWEsVUFBVyxTQUFRLGVBQWU7SUFTN0MsWUFBWSxHQUFXO1FBQ3JCLEtBQUssRUFBRSxDQUFDO1FBVFYsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUNiLGFBQVEsR0FBRyxNQUFNLENBQUM7UUFHbEIsY0FBUyxHQUFXLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztRQU05QyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNqQixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFtQjtRQUNqQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFHRCx3REFBd0Q7SUFDeEQsYUFBYSxDQUFDLFFBQTJCOztRQUN2QyxNQUFNLFFBQVEsR0FBd0IsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzNELElBQUksWUFBWSxJQUFJLElBQUk7WUFBRSxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMvRSxRQUFRLENBQUMsSUFBSSxHQUFHLE1BQUEsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLG1DQUFJLFNBQVMsQ0FBQztRQUMxRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBR0QsSUFBSTtRQUNGLElBQUksSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUN2RSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEMsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxJQUFJOztRQUNOLElBQUksTUFBQSxJQUFJLENBQUMsUUFBUSwwQ0FBRSxJQUFJO1lBQUUsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEUsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxlQUFDLE9BQUEsTUFBQSxNQUFBLElBQUksQ0FBQyxRQUFRLDBDQUFFLElBQUksbUNBQUksQ0FBQyxDQUFDLENBQUEsRUFBQSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBYyxFQUFFLE1BQWU7UUFDOUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDM0MsTUFBTSxPQUFPLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUMxQixNQUFNLFFBQVEsR0FBRyxNQUFNLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFFL0QsSUFBSSxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQ2YsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5QyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSTtnQkFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztpQkFDL0MsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsSUFBSTtnQkFDakUsTUFBTSxJQUFJLGNBQWMsQ0FDdEIsaUJBQWlCLElBQUksQ0FBQyxHQUFHLElBQUksS0FBSyxjQUFjLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxTQUFTLFFBQVEsQ0FBQyxJQUFJLEVBQUUsaUNBRTFGLElBQUksQ0FDTCxDQUFDO1lBQ0osT0FBTyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDL0I7UUFFRCxNQUFNLElBQUksY0FBYyxDQUFDLG1CQUFtQixJQUFJLENBQUMsR0FBRyxJQUFJLEtBQUssRUFBRSxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pHLENBQUM7O0FBekRNLDJCQUFnQixHQUFHLEVBQUUsR0FBRyxJQUFJLEFBQVosQ0FBYTtBQTJEcEMsMERBQTBEO0FBQ25ELGdCQUFLLEdBQWMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxBQUFuQyxDQUFvQztTQWhFckMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENodW5rU291cmNlLCBDaHVua1NvdXJjZUJhc2UsIENodW5rU291cmNlTWV0YWRhdGEsIENvbXBvc2l0ZUVycm9yLCBFcnJvckNvZGVzIH0gZnJvbSAnQGNodW5rZC9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBGZXRjaExpa2VPcHRpb25zIHtcbiAgbWV0aG9kPzogc3RyaW5nO1xuICBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRmV0Y2hMaWtlUmVzcG9uc2Uge1xuICBvazogYm9vbGVhbjtcbiAgc3RhdHVzVGV4dDogc3RyaW5nO1xuICBzdGF0dXM6IG51bWJlcjtcbiAgaGVhZGVyczogeyBnZXQoazogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB9O1xuICBhcnJheUJ1ZmZlcigpOiBQcm9taXNlPEFycmF5QnVmZmVyPjtcbn1cbmV4cG9ydCB0eXBlIEZldGNoTGlrZSA9ICh1cmw6IHN0cmluZywgb3B0cz86IEZldGNoTGlrZU9wdGlvbnMpID0+IFByb21pc2U8RmV0Y2hMaWtlUmVzcG9uc2U+O1xuXG5leHBvcnQgY2xhc3MgU291cmNlSHR0cCBleHRlbmRzIENodW5rU291cmNlQmFzZSB7XG4gIHR5cGUgPSAndXJsJztcbiAgcHJvdG9jb2wgPSAnaHR0cCc7XG5cbiAgc3RhdGljIERlZmF1bHRDaHVua1NpemUgPSAzMiAqIDEwMjQ7XG4gIGNodW5rU2l6ZTogbnVtYmVyID0gU291cmNlSHR0cC5EZWZhdWx0Q2h1bmtTaXplO1xuXG4gIHVyaTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHVyaTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnVyaSA9IHVyaTtcbiAgfVxuXG4gIHN0YXRpYyBpc1NvdXJjZShzb3VyY2U6IENodW5rU291cmNlKTogc291cmNlIGlzIFNvdXJjZUh0dHAge1xuICAgIHJldHVybiBzb3VyY2UudHlwZSA9PT0gJ3VybCc7XG4gIH1cblxuICBtZXRhZGF0YTogQ2h1bmtTb3VyY2VNZXRhZGF0YSB8IG51bGw7XG4gIC8qKiBMb2FkIHRoZSBFVGFnIGFuZCBjb250ZW50LXJhbmdlIGZyb20gdGhlIHJlc3BvbnNlICovXG4gIHBhcnNlUmVzcG9uc2UocmVzcG9uc2U6IEZldGNoTGlrZVJlc3BvbnNlKTogQ2h1bmtTb3VyY2VNZXRhZGF0YSB7XG4gICAgY29uc3QgbWV0YWRhdGE6IENodW5rU291cmNlTWV0YWRhdGEgPSB7fTtcbiAgICBjb25zdCBjb250ZW50UmFuZ2UgPSByZXNwb25zZS5oZWFkZXJzLmdldCgnY29udGVudC1yYW5nZScpO1xuICAgIGlmIChjb250ZW50UmFuZ2UgIT0gbnVsbCkgbWV0YWRhdGEuc2l6ZSA9IHRoaXMucGFyc2VDb250ZW50UmFuZ2UoY29udGVudFJhbmdlKTtcbiAgICBtZXRhZGF0YS5ldGFnID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ2V0YWcnKSA/PyB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIG1ldGFkYXRhO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGVhZDogUHJvbWlzZTxGZXRjaExpa2VSZXNwb25zZT4gfCBudWxsO1xuICBoZWFkKCk6IFByb21pc2U8RmV0Y2hMaWtlUmVzcG9uc2U+IHtcbiAgICBpZiAodGhpcy5faGVhZCkgcmV0dXJuIHRoaXMuX2hlYWQ7XG4gICAgdGhpcy5faGVhZCA9IFNvdXJjZUh0dHAuZmV0Y2godGhpcy51cmksIHsgbWV0aG9kOiAnSEVBRCcgfSkudGhlbigocmVzKSA9PiB7XG4gICAgICB0aGlzLm1ldGFkYXRhID0gdGhpcy5wYXJzZVJlc3BvbnNlKHJlcyk7XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLl9oZWFkO1xuICB9XG5cbiAgZ2V0IHNpemUoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBpZiAodGhpcy5tZXRhZGF0YT8uc2l6ZSkgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLm1ldGFkYXRhLnNpemUpO1xuICAgIHJldHVybiB0aGlzLmhlYWQoKS50aGVuKCgpID0+IHRoaXMubWV0YWRhdGE/LnNpemUgPz8gLTEpO1xuICB9XG5cbiAgYXN5bmMgZmV0Y2hCeXRlcyhvZmZzZXQ6IG51bWJlciwgbGVuZ3RoPzogbnVtYmVyKTogUHJvbWlzZTxBcnJheUJ1ZmZlcj4ge1xuICAgIGNvbnN0IFJhbmdlID0gdGhpcy50b1JhbmdlKG9mZnNldCwgbGVuZ3RoKTtcbiAgICBjb25zdCBoZWFkZXJzID0geyBSYW5nZSB9O1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgU291cmNlSHR0cC5mZXRjaCh0aGlzLnVyaSwgeyBoZWFkZXJzIH0pO1xuXG4gICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICBjb25zdCBtZXRhZGF0YSA9IHRoaXMucGFyc2VSZXNwb25zZShyZXNwb25zZSk7XG4gICAgICBpZiAodGhpcy5tZXRhZGF0YSA9PSBudWxsKSB0aGlzLm1ldGFkYXRhID0gbWV0YWRhdGE7XG4gICAgICBlbHNlIGlmICh0aGlzLm1ldGFkYXRhLmV0YWcgJiYgdGhpcy5tZXRhZGF0YS5ldGFnICE9PSBtZXRhZGF0YS5ldGFnKVxuICAgICAgICB0aHJvdyBuZXcgQ29tcG9zaXRlRXJyb3IoXG4gICAgICAgICAgYEVUYWcgY29uZmxpY3QgJHt0aGlzLnVyaX0gJHtSYW5nZX0gZXhwZWN0ZWQ6ICR7dGhpcy5tZXRhZGF0YS5ldGFnfSBnb3Q6ICR7bWV0YWRhdGEuZXRhZ31gLFxuICAgICAgICAgIEVycm9yQ29kZXMuQ29uZmxpY3QsXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5hcnJheUJ1ZmZlcigpO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBDb21wb3NpdGVFcnJvcihgRmFpbGVkIHRvIGZldGNoICR7dGhpcy51cml9ICR7UmFuZ2V9YCwgcmVzcG9uc2Uuc3RhdHVzLCByZXNwb25zZS5zdGF0dXNUZXh0KTtcbiAgfVxuXG4gIC8vIEFsbG93IG92ZXJ3cml0aW5nIHRoZSBmZXRjaGVyIHVzZWQgKGVnIHRlc3Rpbmcvbm9kZS1qcylcbiAgc3RhdGljIGZldGNoOiBGZXRjaExpa2UgPSAoYSwgYikgPT4gZmV0Y2goYSwgYik7XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chunkd/source-http",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.1.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
|
|
@@ -10,21 +10,16 @@
|
|
|
10
10
|
"url": "https://github.com/blacha/chunkd.git",
|
|
11
11
|
"directory": "packages/source-http"
|
|
12
12
|
},
|
|
13
|
-
"main": "./build/index.
|
|
14
|
-
"browser": "./build/index.js",
|
|
13
|
+
"main": "./build/index.js",
|
|
15
14
|
"types": "./build/index.d.ts",
|
|
16
15
|
"author": "Blayne Chard",
|
|
17
16
|
"license": "MIT",
|
|
18
17
|
"scripts": {},
|
|
19
18
|
"dependencies": {
|
|
20
|
-
"@chunkd/core": "^10.
|
|
21
|
-
"node-fetch": "^3.1.0"
|
|
22
|
-
},
|
|
23
|
-
"devDependencies": {
|
|
24
|
-
"@types/node-fetch": "^3.0.3"
|
|
19
|
+
"@chunkd/core": "^10.2.0"
|
|
25
20
|
},
|
|
26
21
|
"publishConfig": {
|
|
27
22
|
"access": "public"
|
|
28
23
|
},
|
|
29
|
-
"gitHead": "
|
|
24
|
+
"gitHead": "f4904aacf0805f22e888c8689c599e308d4f46a5"
|
|
30
25
|
}
|
package/src/http.source.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChunkSource, ChunkSourceBase } from '@chunkd/core';
|
|
1
|
+
import { ChunkSource, ChunkSourceBase, ChunkSourceMetadata, CompositeError, ErrorCodes } from '@chunkd/core';
|
|
2
2
|
|
|
3
3
|
export interface FetchLikeOptions {
|
|
4
4
|
method?: string;
|
|
@@ -31,14 +31,29 @@ export class SourceHttp extends ChunkSourceBase {
|
|
|
31
31
|
return source.type === 'url';
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
34
|
+
metadata: ChunkSourceMetadata | null;
|
|
35
|
+
/** Load the ETag and content-range from the response */
|
|
36
|
+
parseResponse(response: FetchLikeResponse): ChunkSourceMetadata {
|
|
37
|
+
const metadata: ChunkSourceMetadata = {};
|
|
38
|
+
const contentRange = response.headers.get('content-range');
|
|
39
|
+
if (contentRange != null) metadata.size = this.parseContentRange(contentRange);
|
|
40
|
+
metadata.etag = response.headers.get('etag') ?? undefined;
|
|
41
|
+
return metadata;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
private _head: Promise<FetchLikeResponse> | null;
|
|
45
|
+
head(): Promise<FetchLikeResponse> {
|
|
46
|
+
if (this._head) return this._head;
|
|
47
|
+
this._head = SourceHttp.fetch(this.uri, { method: 'HEAD' }).then((res) => {
|
|
48
|
+
this.metadata = this.parseResponse(res);
|
|
49
|
+
return res;
|
|
40
50
|
});
|
|
41
|
-
return this.
|
|
51
|
+
return this._head;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
get size(): Promise<number> {
|
|
55
|
+
if (this.metadata?.size) return Promise.resolve(this.metadata.size);
|
|
56
|
+
return this.head().then(() => this.metadata?.size ?? -1);
|
|
42
57
|
}
|
|
43
58
|
|
|
44
59
|
async fetchBytes(offset: number, length?: number): Promise<ArrayBuffer> {
|
|
@@ -47,14 +62,18 @@ export class SourceHttp extends ChunkSourceBase {
|
|
|
47
62
|
const response = await SourceHttp.fetch(this.uri, { headers });
|
|
48
63
|
|
|
49
64
|
if (response.ok) {
|
|
50
|
-
const
|
|
51
|
-
if (this.
|
|
52
|
-
|
|
53
|
-
|
|
65
|
+
const metadata = this.parseResponse(response);
|
|
66
|
+
if (this.metadata == null) this.metadata = metadata;
|
|
67
|
+
else if (this.metadata.etag && this.metadata.etag !== metadata.etag)
|
|
68
|
+
throw new CompositeError(
|
|
69
|
+
`ETag conflict ${this.uri} ${Range} expected: ${this.metadata.etag} got: ${metadata.etag}`,
|
|
70
|
+
ErrorCodes.Conflict,
|
|
71
|
+
null,
|
|
72
|
+
);
|
|
54
73
|
return response.arrayBuffer();
|
|
55
74
|
}
|
|
56
75
|
|
|
57
|
-
throw new
|
|
76
|
+
throw new CompositeError(`Failed to fetch ${this.uri} ${Range}`, response.status, response.statusText);
|
|
58
77
|
}
|
|
59
78
|
|
|
60
79
|
// Allow overwriting the fetcher used (eg testing/node-js)
|
package/build/index.node.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.node.d.ts","sourceRoot":"","sources":["../src/index.node.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC"}
|
package/build/index.node.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
// Assign fetch function for nodejs imports
|
|
2
|
-
// This allows CogSourceUrl to be used without configuration inside nodejs environments
|
|
3
|
-
import fetch from 'node-fetch';
|
|
4
|
-
import { SourceHttp } from './http.source.js';
|
|
5
|
-
SourceHttp.fetch = fetch;
|
|
6
|
-
export { SourceHttp } from './http.source.js';
|
|
7
|
-
export { FsHttp } from './http.fs.js';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgubm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJDQUEyQztBQUMzQyx1RkFBdUY7QUFDdkYsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5QyxVQUFVLENBQUMsS0FBSyxHQUFHLEtBQVksQ0FBQztBQUVoQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFzc2lnbiBmZXRjaCBmdW5jdGlvbiBmb3Igbm9kZWpzIGltcG9ydHNcbi8vIFRoaXMgYWxsb3dzIENvZ1NvdXJjZVVybCB0byBiZSB1c2VkIHdpdGhvdXQgY29uZmlndXJhdGlvbiBpbnNpZGUgbm9kZWpzIGVudmlyb25tZW50c1xuaW1wb3J0IGZldGNoIGZyb20gJ25vZGUtZmV0Y2gnO1xuaW1wb3J0IHsgU291cmNlSHR0cCB9IGZyb20gJy4vaHR0cC5zb3VyY2UuanMnO1xuXG5Tb3VyY2VIdHRwLmZldGNoID0gZmV0Y2ggYXMgYW55O1xuXG5leHBvcnQgeyBTb3VyY2VIdHRwIH0gZnJvbSAnLi9odHRwLnNvdXJjZS5qcyc7XG5leHBvcnQgeyBGc0h0dHAgfSBmcm9tICcuL2h0dHAuZnMuanMnO1xuIl19
|
package/src/index.node.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
// Assign fetch function for nodejs imports
|
|
2
|
-
// This allows CogSourceUrl to be used without configuration inside nodejs environments
|
|
3
|
-
import fetch from 'node-fetch';
|
|
4
|
-
import { SourceHttp } from './http.source.js';
|
|
5
|
-
|
|
6
|
-
SourceHttp.fetch = fetch as any;
|
|
7
|
-
|
|
8
|
-
export { SourceHttp } from './http.source.js';
|
|
9
|
-
export { FsHttp } from './http.fs.js';
|