@coveo/push-api-client 3.1.5 → 3.1.6

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/APICore.js CHANGED
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.APICore = void 0;
4
4
  const exponential_backoff_1 = require("exponential-backoff");
5
+ const fetchError_1 = require("./errors/fetchError");
6
+ const throttleError_1 = require("./errors/throttleError");
5
7
  class APICore {
6
8
  constructor(accessToken) {
7
9
  this.accessToken = accessToken;
@@ -9,12 +11,22 @@ class APICore {
9
11
  async request(url, config) {
10
12
  const req = async () => {
11
13
  const response = await fetch(url, Object.assign(Object.assign({}, config), { headers: Object.assign(Object.assign({}, this.requestHeaders), config.headers) }));
14
+ await this.handleResponse(response);
12
15
  return response;
13
16
  };
14
17
  return (0, exponential_backoff_1.backOff)(req, {
15
- retry: (res) => this.isThrottled(res.status),
18
+ retry: (err) => err instanceof throttleError_1.ThrottleError,
16
19
  });
17
20
  }
21
+ async handleResponse(response) {
22
+ if (response.ok) {
23
+ return;
24
+ }
25
+ if (this.isThrottled(response)) {
26
+ throw new throttleError_1.ThrottleError();
27
+ }
28
+ throw await fetchError_1.FetchError.build(response);
29
+ }
18
30
  async requestJson(url, config) {
19
31
  return (await this.request(url, config)).json();
20
32
  }
@@ -40,8 +52,8 @@ class APICore {
40
52
  const documentsRequestHeaders = Object.assign(Object.assign({}, authorizationHeader), { 'Content-Type': 'application/json', Accept: 'application/json' });
41
53
  return documentsRequestHeaders;
42
54
  }
43
- isThrottled(status) {
44
- return status === 429;
55
+ isThrottled(res) {
56
+ return res.status === 429;
45
57
  }
46
58
  }
47
59
  exports.APICore = APICore;
@@ -1 +1 @@
1
- {"version":3,"file":"APICore.js","sourceRoot":"","sources":["../src/APICore.ts"],"names":[],"mappings":";;;AAAA,6DAA4C;AAE5C,MAAa,OAAO;IAClB,YAA2B,WAAmB;QAAnB,gBAAW,GAAX,WAAW,CAAQ;IAAG,CAAC;IAE1C,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,MAAmB;QACpD,MAAM,GAAG,GAAG,KAAK,IAAI,EAAE;YACrB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,kCAC3B,MAAM,KACT,OAAO,kCAAM,IAAI,CAAC,cAAc,GAAK,MAAM,CAAC,OAAO,KACnD,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC;QAEF,OAAO,IAAA,6BAAO,EAAC,GAAG,EAAE;YAClB,KAAK,EAAE,CAAC,GAAa,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;SACvD,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,WAAW,CAAI,GAAW,EAAE,MAAmB;QAC3D,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAgB,CAAC;IAChE,CAAC;IAEM,KAAK,CAAC,IAAI,CAAI,GAAW,EAAE,OAAgB,EAAE;QAClD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC,CAAC;IAC7E,CAAC;IAMM,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,OAAgB,EAAE,EAAE,KAAK,GAAG,IAAI;QAC/D,OAAO,IAAI,CAAC,eAAe,CAAI,KAAK,CAAC,CAAC,GAAG,EAAE;YACzC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;IAEO,eAAe,CAAI,KAAc;QACvC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAc,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IAKM,KAAK,CAAC,MAAM,CAAI,GAAW,EAAE,KAAK,GAAG,IAAI;QAC9C,OAAO,IAAI,CAAC,eAAe,CAAI,KAAK,CAAC,CAAC,GAAG,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAC,CAAC,CAAC;IACjE,CAAC;IAED,IAAY,cAAc;QACxB,MAAM,mBAAmB,GAAG;YAC1B,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE;SAC5C,CAAC;QAEF,MAAM,uBAAuB,mCACxB,mBAAmB,KACtB,cAAc,EAAE,kBAAkB,EAClC,MAAM,EAAE,kBAAkB,GAC3B,CAAC;QAEF,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAEO,WAAW,CAAC,MAAc;QAChC,OAAO,MAAM,KAAK,GAAG,CAAC;IACxB,CAAC;CACF;AAhED,0BAgEC"}
1
+ {"version":3,"file":"APICore.js","sourceRoot":"","sources":["../src/APICore.ts"],"names":[],"mappings":";;;AAAA,6DAA4C;AAE5C,oDAA+C;AAC/C,0DAAqD;AACrD,MAAa,OAAO;IAClB,YAA2B,WAAmB;QAAnB,gBAAW,GAAX,WAAW,CAAQ;IAAG,CAAC;IAE1C,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,MAAmB;QACpD,MAAM,GAAG,GAAG,KAAK,IAAI,EAAE;YACrB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,kCAC3B,MAAM,KACT,OAAO,kCAAM,IAAI,CAAC,cAAc,GAAK,MAAM,CAAC,OAAO,KACnD,CAAC;YACH,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACpC,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC;QAEF,OAAO,IAAA,6BAAO,EAAC,GAAG,EAAE;YAClB,KAAK,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,GAAG,YAAY,6BAAa;SACtD,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,QAAkB;QAC7C,IAAI,QAAQ,CAAC,EAAE,EAAE;YACf,OAAO;SACR;QACD,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;YAC9B,MAAM,IAAI,6BAAa,EAAE,CAAC;SAC3B;QACD,MAAM,MAAM,uBAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAEO,KAAK,CAAC,WAAW,CAAI,GAAW,EAAE,MAAmB;QAC3D,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAgB,CAAC;IAChE,CAAC;IAEM,KAAK,CAAC,IAAI,CAAI,GAAW,EAAE,OAAgB,EAAE;QAClD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC,CAAC;IAC7E,CAAC;IAMM,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,OAAgB,EAAE,EAAE,KAAK,GAAG,IAAI;QAC/D,OAAO,IAAI,CAAC,eAAe,CAAI,KAAK,CAAC,CAAC,GAAG,EAAE;YACzC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;IAEO,eAAe,CAAI,KAAc;QACvC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAc,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IAKM,KAAK,CAAC,MAAM,CAAI,GAAW,EAAE,KAAK,GAAG,IAAI;QAC9C,OAAO,IAAI,CAAC,eAAe,CAAI,KAAK,CAAC,CAAC,GAAG,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAC,CAAC,CAAC;IACjE,CAAC;IAED,IAAY,cAAc;QACxB,MAAM,mBAAmB,GAAG;YAC1B,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE;SAC5C,CAAC;QAEF,MAAM,uBAAuB,mCACxB,mBAAmB,KACtB,cAAc,EAAE,kBAAkB,EAClC,MAAM,EAAE,kBAAkB,GAC3B,CAAC;QAEF,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAEO,WAAW,CAAC,GAAa;QAC/B,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC;IAC5B,CAAC;CACF;AA3ED,0BA2EC"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ jest.mock('./errors/fetchError');
4
+ const fetchError_1 = require("./errors/fetchError");
5
+ const APICore_1 = require("./APICore");
6
+ describe('APICore', () => {
7
+ const mockedFetchJson = jest.fn();
8
+ let fetchMock;
9
+ beforeEach(() => {
10
+ jest.resetAllMocks();
11
+ fetchMock = jest.spyOn(global, 'fetch');
12
+ fetchMock.mockResolvedValue({
13
+ ok: true,
14
+ json: () => Promise.resolve(mockedFetchJson),
15
+ });
16
+ });
17
+ describe('when request is OK', () => {
18
+ it('resolve with json', async () => {
19
+ const apiCore = new APICore_1.APICore('suchsecret');
20
+ await expect(apiCore.post('whatever')).resolves.toBe(mockedFetchJson);
21
+ });
22
+ });
23
+ describe('when request is throttled', () => {
24
+ beforeEach(() => {
25
+ fetchMock.mockResolvedValueOnce({
26
+ ok: false,
27
+ status: 429,
28
+ json: () => Promise.resolve(mockedFetchJson),
29
+ });
30
+ });
31
+ it('try again and then resolve with json', async () => {
32
+ const apiCore = new APICore_1.APICore('suchsecret');
33
+ await expect(apiCore.post('whatever')).resolves.toBe(mockedFetchJson);
34
+ expect(fetchMock).toBeCalledTimes(2);
35
+ });
36
+ });
37
+ describe('when request is NOK and not throttled', () => {
38
+ let mockedFetchErrorBuild;
39
+ const fakeFetchError = jest.fn();
40
+ beforeEach(() => {
41
+ fetchMock.mockResolvedValueOnce({
42
+ ok: false,
43
+ status: 500,
44
+ json: () => Promise.resolve(mockedFetchJson),
45
+ });
46
+ mockedFetchErrorBuild = jest
47
+ .spyOn(fetchError_1.FetchError, 'build')
48
+ .mockImplementationOnce(() => Promise.resolve(fakeFetchError));
49
+ });
50
+ it('rejects a FetchError', async () => {
51
+ const apiCore = new APICore_1.APICore('suchsecret');
52
+ await expect(apiCore.post('whatever')).rejects.toBe(fakeFetchError);
53
+ expect(fetchMock).toBeCalledTimes(1);
54
+ expect(mockedFetchErrorBuild).toBeCalledTimes(1);
55
+ expect(mockedFetchErrorBuild).toBeCalledWith(await fetchMock.mock.results[0].value);
56
+ });
57
+ });
58
+ });
59
+ //# sourceMappingURL=APICore.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"APICore.spec.js","sourceRoot":"","sources":["../src/APICore.spec.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export declare class APICore {
3
3
  private accessToken;
4
4
  constructor(accessToken: string);
5
5
  private request;
6
+ private handleResponse;
6
7
  private requestJson;
7
8
  post<T>(url: string, data?: unknown): Promise<T>;
8
9
  put<T>(url: string): Promise<T>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { Response } from 'undici';
2
+ import { PushApiClientBaseError } from './baseError';
3
+ export declare class FetchError extends PushApiClientBaseError {
4
+ body: string;
5
+ name: string;
6
+ static build(response: Response): Promise<FetchError>;
7
+ private constructor();
8
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,3 +1,5 @@
1
+ export * from './fetchError';
1
2
  export * from './fieldErrors';
2
3
  export * from './privilegeError';
4
+ export * from './throttleError';
3
5
  export * from './validatorErrors';
@@ -0,0 +1,4 @@
1
+ import { PushApiClientBaseError } from './baseError';
2
+ export declare class ThrottleError extends PushApiClientBaseError {
3
+ name: string;
4
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FetchError = void 0;
4
+ const baseError_1 = require("./baseError");
5
+ const ts_dedent_1 = require("ts-dedent");
6
+ class FetchError extends baseError_1.PushApiClientBaseError {
7
+ static async build(response) {
8
+ let body;
9
+ try {
10
+ body = JSON.stringify(await response.json());
11
+ }
12
+ catch (error) {
13
+ body = await response.text();
14
+ }
15
+ return new FetchError(body);
16
+ }
17
+ constructor(body) {
18
+ super();
19
+ this.body = body;
20
+ this.name = 'Fetch Error';
21
+ this.message = (0, ts_dedent_1.default) `
22
+ Response body:
23
+ ${body}
24
+ `;
25
+ }
26
+ }
27
+ exports.FetchError = FetchError;
28
+ //# sourceMappingURL=fetchError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchError.js","sourceRoot":"","sources":["../../src/errors/fetchError.ts"],"names":[],"mappings":";;;AACA,2CAAmD;AACnD,yCAA+B;AAE/B,MAAa,UAAW,SAAQ,kCAAsB;IAE7C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,QAAkB;QAC1C,IAAI,IAAY,CAAC;QACjB,IAAI;YACF,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;SAC9C;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;SAC9B;QACD,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,YAA2B,IAAY;QACrC,KAAK,EAAE,CAAC;QADiB,SAAI,GAAJ,IAAI,CAAQ;QAVhC,SAAI,GAAG,aAAa,CAAC;QAY1B,IAAI,CAAC,OAAO,GAAG,IAAA,mBAAM,EAAA;;QAEjB,IAAI;KACP,CAAC;IACJ,CAAC;CACF;AAlBD,gCAkBC"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const baseError_1 = require("./baseError");
4
+ const fetchError_1 = require("./fetchError");
5
+ describe('FetchError', () => {
6
+ const fakeResponseJson = jest.fn();
7
+ const fakeResponseText = jest.fn();
8
+ const fakeResponse = {
9
+ json: fakeResponseJson,
10
+ text: fakeResponseText,
11
+ };
12
+ beforeEach(() => {
13
+ jest.resetAllMocks();
14
+ fakeResponseJson.mockResolvedValue(null);
15
+ fakeResponseText.mockResolvedValue('hello there');
16
+ });
17
+ it('has a proper name', async () => {
18
+ expect((await fetchError_1.FetchError.build(fakeResponse)).name).toBe('Fetch Error');
19
+ });
20
+ it('inherit the PushApiClientBaseError', async () => {
21
+ expect(await fetchError_1.FetchError.build(fakeResponse)).toBeInstanceOf(baseError_1.PushApiClientBaseError);
22
+ });
23
+ describe('when json returns a stringifiable object', () => {
24
+ beforeEach(() => {
25
+ fakeResponseJson.mockResolvedValueOnce({ hello: 'world' });
26
+ });
27
+ it('uses its stringify value in the message', async () => {
28
+ expect((await fetchError_1.FetchError.build(fakeResponse)).message).toMatchSnapshot();
29
+ });
30
+ });
31
+ describe('when json returns a unstringifiable object', () => {
32
+ beforeEach(() => {
33
+ const cyclicObject = {};
34
+ cyclicObject.self = cyclicObject;
35
+ fakeResponseJson.mockResolvedValueOnce(cyclicObject);
36
+ });
37
+ it('uses the text value in the message', async () => {
38
+ expect((await fetchError_1.FetchError.build(fakeResponse)).message).toMatchSnapshot();
39
+ });
40
+ });
41
+ describe('when json and text fails', () => {
42
+ beforeEach(() => {
43
+ fakeResponseJson.mockRejectedValueOnce('nope');
44
+ fakeResponseText.mockRejectedValueOnce('nope');
45
+ });
46
+ it('does not returns a FetchError', async () => {
47
+ await expect(fetchError_1.FetchError.build(fakeResponse)).rejects.not.toBeInstanceOf(fetchError_1.FetchError);
48
+ });
49
+ });
50
+ });
51
+ //# sourceMappingURL=fetchError.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchError.spec.js","sourceRoot":"","sources":["../../src/errors/fetchError.spec.ts"],"names":[],"mappings":";;AACA,2CAAmD;AACnD,6CAAwC;AAExC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,MAAM,gBAAgB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACnC,MAAM,gBAAgB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACnC,MAAM,YAAY,GAAa;QAC7B,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,gBAAgB;KACA,CAAC;IAEzB,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACzC,gBAAgB,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,CAAC,CAAC,MAAM,uBAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,CAAC,MAAM,uBAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CACzD,kCAAsB,CACvB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACxD,UAAU,CAAC,GAAG,EAAE;YACd,gBAAgB,CAAC,qBAAqB,CAAC,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,CAAC,CAAC,MAAM,uBAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC;QAC3E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,4CAA4C,EAAE,GAAG,EAAE;QAC1D,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,YAAY,GAAoB,EAAE,CAAC;YACzC,YAAY,CAAC,IAAI,GAAG,YAAY,CAAC;YACjC,gBAAgB,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,MAAM,CAAC,CAAC,MAAM,uBAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC;QAC3E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,UAAU,CAAC,GAAG,EAAE;YACd,gBAAgB,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAC/C,gBAAgB,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC7C,MAAM,MAAM,CAAC,uBAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CACrE,uBAAU,CACX,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -14,7 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./fetchError"), exports);
17
18
  __exportStar(require("./fieldErrors"), exports);
18
19
  __exportStar(require("./privilegeError"), exports);
20
+ __exportStar(require("./throttleError"), exports);
19
21
  __exportStar(require("./validatorErrors"), exports);
20
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,mDAAiC;AACjC,oDAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,gDAA8B;AAC9B,mDAAiC;AACjC,kDAAgC;AAChC,oDAAkC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ThrottleError = void 0;
4
+ const baseError_1 = require("./baseError");
5
+ class ThrottleError extends baseError_1.PushApiClientBaseError {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.name = 'Throttle Error';
9
+ }
10
+ }
11
+ exports.ThrottleError = ThrottleError;
12
+ //# sourceMappingURL=throttleError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throttleError.js","sourceRoot":"","sources":["../../src/errors/throttleError.ts"],"names":[],"mappings":";;;AAAA,2CAAmD;AAEnD,MAAa,aAAc,SAAQ,kCAAsB;IAAzD;;QACS,SAAI,GAAG,gBAAgB,CAAC;IACjC,CAAC;CAAA;AAFD,sCAEC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const baseError_1 = require("./baseError");
4
+ const throttleError_1 = require("./throttleError");
5
+ describe('ThrottleError', () => {
6
+ it('has a proper name', () => {
7
+ expect(new throttleError_1.ThrottleError().name).toBe('Throttle Error');
8
+ });
9
+ it('inherit the PushApiClientBaseError', () => {
10
+ expect(new throttleError_1.ThrottleError()).toBeInstanceOf(baseError_1.PushApiClientBaseError);
11
+ });
12
+ });
13
+ //# sourceMappingURL=throttleError.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throttleError.spec.js","sourceRoot":"","sources":["../../src/errors/throttleError.spec.ts"],"names":[],"mappings":";;AAAA,2CAAmD;AACnD,mDAA8C;AAE9C,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,CAAC,IAAI,6BAAa,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,IAAI,6BAAa,EAAE,CAAC,CAAC,cAAc,CAAC,kCAAsB,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coveo/push-api-client",
3
- "version": "3.1.5",
3
+ "version": "3.1.6",
4
4
  "description": "Push API client",
5
5
  "main": "./dist/index.js",
6
6
  "files": [
@@ -20,6 +20,7 @@
20
20
  "dayjs": "^1.10.4",
21
21
  "exponential-backoff": "^3.1.0",
22
22
  "fetch-undici-polyfill": "1.2.1",
23
+ "ts-dedent": "2.2.0",
23
24
  "zod": "^3.20.2"
24
25
  },
25
26
  "devDependencies": {