@ceramicnetwork/common 2.0.0-alpha.3 → 2.0.0-alpha.4

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/lib/index.d.ts CHANGED
@@ -8,6 +8,7 @@ export * from './utils/stream-utils.js';
8
8
  export * from './utils/test-utils.js';
9
9
  export * from './utils/accountid-utils.js';
10
10
  export * from './utils/cid-utils.js';
11
+ export * from './utils/abort-signal-utils.js';
11
12
  export * from './logger-provider.js';
12
13
  export * from './loggers.js';
13
14
  export * from './networks.js';
@@ -17,6 +18,7 @@ export * from './unreachable-case-error.js';
17
18
  export * from './running-state-like.js';
18
19
  export * from './stream-state-subject.js';
19
20
  export * from './subscription-set.js';
21
+ export * from './polyfill-abort-controller.js';
20
22
  import type { IPFS } from 'ipfs-core-types';
21
23
  export declare type IpfsApi = IPFS;
22
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AAErC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAC3C,oBAAY,OAAO,GAAG,IAAI,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,sBAAsB,CAAA;AACpC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gCAAgC,CAAA;AAE9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAC3C,oBAAY,OAAO,GAAG,IAAI,CAAA"}
package/lib/index.js CHANGED
@@ -8,6 +8,7 @@ export * from './utils/stream-utils.js';
8
8
  export * from './utils/test-utils.js';
9
9
  export * from './utils/accountid-utils.js';
10
10
  export * from './utils/cid-utils.js';
11
+ export * from './utils/abort-signal-utils.js';
11
12
  export * from './logger-provider.js';
12
13
  export * from './loggers.js';
13
14
  export * from './networks.js';
@@ -17,4 +18,5 @@ export * from './unreachable-case-error.js';
17
18
  export * from './running-state-like.js';
18
19
  export * from './stream-state-subject.js';
19
20
  export * from './subscription-set.js';
21
+ export * from './polyfill-abort-controller.js';
20
22
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,sBAAsB,CAAA;AACpC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gCAAgC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare function polyfillAbortController(): void;
2
+ //# sourceMappingURL=polyfill-abort-controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polyfill-abort-controller.d.ts","sourceRoot":"","sources":["../src/polyfill-abort-controller.ts"],"names":[],"mappings":"AAEA,wBAAgB,uBAAuB,SAQtC"}
@@ -0,0 +1,10 @@
1
+ import * as polyfill from 'abort-controller';
2
+ export function polyfillAbortController() {
3
+ if (!globalThis.AbortController) {
4
+ globalThis.AbortController = polyfill.AbortController;
5
+ }
6
+ if (!globalThis.AbortSignal) {
7
+ globalThis.AbortSignal = polyfill.AbortSignal;
8
+ }
9
+ }
10
+ //# sourceMappingURL=polyfill-abort-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polyfill-abort-controller.js","sourceRoot":"","sources":["../src/polyfill-abort-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAA;AAE5C,MAAM,UAAU,uBAAuB;IACrC,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE;QAC/B,UAAU,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAA;KACtD;IAED,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;QAC3B,UAAU,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAA;KAC9C;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare function mergeAbortSignals(signals: AbortSignal[]): AbortSignal;
2
+ export declare class TimedAbortSignal {
3
+ private readonly _subscription;
4
+ readonly signal: AbortSignal;
5
+ constructor(timeout: number);
6
+ clear(): void;
7
+ }
8
+ //# sourceMappingURL=abort-signal-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abort-signal-utils.d.ts","sourceRoot":"","sources":["../../src/utils/abort-signal-utils.ts"],"names":[],"mappings":"AAMA,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,WAAW,CAmBrE;AACD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAc;IAC5C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;gBAEhB,OAAO,EAAE,MAAM;IAc3B,KAAK;CAGN"}
@@ -0,0 +1,37 @@
1
+ import { timer, fromEvent, merge } from 'rxjs';
2
+ import { first } from 'rxjs/operators';
3
+ import { polyfillAbortController } from '../polyfill-abort-controller.js';
4
+ polyfillAbortController();
5
+ export function mergeAbortSignals(signals) {
6
+ const controller = new AbortController();
7
+ if (signals.length === 0) {
8
+ throw Error('Need abort signals to create a merged abort signal');
9
+ }
10
+ if (signals.some((signal) => signal.aborted)) {
11
+ controller.abort();
12
+ return controller.signal;
13
+ }
14
+ merge(...signals.map((signal) => fromEvent(signal, 'abort')))
15
+ .pipe(first())
16
+ .subscribe(() => {
17
+ controller.abort();
18
+ });
19
+ return controller.signal;
20
+ }
21
+ export class TimedAbortSignal {
22
+ constructor(timeout) {
23
+ const controller = new AbortController();
24
+ this.signal = controller.signal;
25
+ if (timeout <= 0) {
26
+ controller.abort();
27
+ return;
28
+ }
29
+ this._subscription = timer(timeout).subscribe(() => {
30
+ controller.abort();
31
+ });
32
+ }
33
+ clear() {
34
+ this._subscription?.unsubscribe();
35
+ }
36
+ }
37
+ //# sourceMappingURL=abort-signal-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abort-signal-utils.js","sourceRoot":"","sources":["../../src/utils/abort-signal-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAgB,MAAM,MAAM,CAAA;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAA;AAEzE,uBAAuB,EAAE,CAAA;AAEzB,MAAM,UAAU,iBAAiB,CAAC,OAAsB;IACtD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IAExC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,MAAM,KAAK,CAAC,oDAAoD,CAAC,CAAA;KAClE;IAED,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;QAC5C,UAAU,CAAC,KAAK,EAAE,CAAA;QAClB,OAAO,UAAU,CAAC,MAAM,CAAA;KACzB;IAED,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;SAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;SACb,SAAS,CAAC,GAAG,EAAE;QACd,UAAU,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC,CAAC,CAAA;IAEJ,OAAO,UAAU,CAAC,MAAM,CAAA;AAC1B,CAAC;AACD,MAAM,OAAO,gBAAgB;IAI3B,YAAY,OAAe;QACzB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;QACxC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;QAE/B,IAAI,OAAO,IAAI,CAAC,EAAE;YAChB,UAAU,CAAC,KAAK,EAAE,CAAA;YAClB,OAAM;SACP;QAED,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE;YACjD,UAAU,CAAC,KAAK,EAAE,CAAA;QACpB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK;QACH,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,CAAA;IACnC,CAAC;CACF"}
@@ -3,6 +3,7 @@ interface FetchOpts {
3
3
  method?: string;
4
4
  headers?: any;
5
5
  timeout?: number;
6
+ signal?: AbortSignal;
6
7
  }
7
8
  export declare function fetchJson(url: string, opts?: FetchOpts): Promise<any>;
8
9
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"http-utils.d.ts","sourceRoot":"","sources":["../../src/utils/http-utils.ts"],"names":[],"mappings":"AAGA,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,GAAG,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,SAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAgC/E"}
1
+ {"version":3,"file":"http-utils.d.ts","sourceRoot":"","sources":["../../src/utils/http-utils.ts"],"names":[],"mappings":"AAIA,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,GAAG,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,SAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAuB/E"}
@@ -1,4 +1,5 @@
1
1
  import fetch from 'cross-fetch';
2
+ import { mergeAbortSignals, TimedAbortSignal } from './abort-signal-utils.js';
2
3
  const DEFAULT_FETCH_TIMEOUT = 60 * 1000 * 3;
3
4
  export async function fetchJson(url, opts = {}) {
4
5
  if (opts.body) {
@@ -8,21 +9,11 @@ export async function fetchJson(url, opts = {}) {
8
9
  });
9
10
  }
10
11
  const timeoutLength = opts.timeout || DEFAULT_FETCH_TIMEOUT;
11
- const controller = new AbortController();
12
- const timeout = setTimeout(() => {
13
- controller.abort();
14
- }, timeoutLength);
15
- Object.assign(opts, {
16
- signal: controller.signal,
17
- });
18
- const res = await fetch(url, opts)
19
- .catch((err) => {
20
- if (err.name == 'AbortError') {
21
- throw new Error(`Http request timed out after ${timeoutLength} ms`);
22
- }
23
- throw err;
24
- })
25
- .finally(() => timeout && clearTimeout(timeout));
12
+ const timedAbortSignal = new TimedAbortSignal(timeoutLength);
13
+ opts.signal = opts.signal
14
+ ? mergeAbortSignals([opts.signal, timedAbortSignal.signal])
15
+ : timedAbortSignal.signal;
16
+ const res = await fetch(url, opts).finally(() => timedAbortSignal.clear());
26
17
  if (!res.ok) {
27
18
  const text = await res.text();
28
19
  throw new Error(`HTTP request to '${url}' failed with status '${res.statusText}': ${text}`);
@@ -1 +1 @@
1
- {"version":3,"file":"http-utils.js","sourceRoot":"","sources":["../../src/utils/http-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAA;AAE/B,MAAM,qBAAqB,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,CAAA;AAQ3C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,OAAkB,EAAE;IAC/D,IAAI,IAAI,CAAC,IAAI,EAAE;QACb,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;YAClB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/B,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAChD,CAAC,CAAA;KACH;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,IAAI,qBAAqB,CAAA;IAC3D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IACxC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;QAC9B,UAAU,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC,EAAE,aAAa,CAAC,CAAA;IACjB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QAClB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC,CAAA;IAEF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;SAC/B,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,IAAI,GAAG,CAAC,IAAI,IAAI,YAAY,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,gCAAgC,aAAa,KAAK,CAAC,CAAA;SACpE;QACD,MAAM,GAAG,CAAA;IACX,CAAC,CAAC;SACD,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,CAAA;IAElD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;QACX,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;QAC7B,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,yBAAyB,GAAG,CAAC,UAAU,MAAM,IAAI,EAAE,CAAC,CAAA;KAC5F;IAED,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;AACnB,CAAC"}
1
+ {"version":3,"file":"http-utils.js","sourceRoot":"","sources":["../../src/utils/http-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAA;AAC/B,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE7E,MAAM,qBAAqB,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,CAAA;AAS3C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,OAAkB,EAAE;IAC/D,IAAI,IAAI,CAAC,IAAI,EAAE;QACb,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;YAClB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/B,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAChD,CAAC,CAAA;KACH;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,IAAI,qBAAqB,CAAA;IAC3D,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,aAAa,CAAC,CAAA;IAE5D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;QACvB,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAA;IAE3B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAA;IAE1E,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;QACX,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;QAC7B,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,yBAAyB,GAAG,CAAC,UAAU,MAAM,IAAI,EAAE,CAAC,CAAA;KAC5F;IAED,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;AACnB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ceramicnetwork/common",
3
- "version": "2.0.0-alpha.3",
3
+ "version": "2.0.0-alpha.4",
4
4
  "description": "Ceramic common types and utilities",
5
5
  "keywords": [
6
6
  "ceramic",
@@ -37,6 +37,7 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@ceramicnetwork/streamid": "^2.0.0-alpha.3",
40
+ "abort-controller": "^3.0.0",
40
41
  "caip": "~1.0.0",
41
42
  "cross-fetch": "^3.1.4",
42
43
  "flat": "^5.0.2",
@@ -51,10 +52,10 @@
51
52
  "@types/lodash.clonedeep": "^4.5.6",
52
53
  "@types/logfmt": "^1.2.2",
53
54
  "@types/node": "^17.0.5",
54
- "dids": "^3.0.0-alpha.9",
55
+ "dids": "^3.0.0-alpha.12",
55
56
  "ipfs-core-types": "~0.9.0",
56
57
  "json-schema-to-typescript": "^10.1.5",
57
58
  "typescript-json-schema": "^0.52.0"
58
59
  },
59
- "gitHead": "d4ad7b5937a90588649f92de0190fe43bbf3a7d8"
60
+ "gitHead": "1494fdbb2f3c289c82ff7c987173b748f2d6ff8c"
60
61
  }