@knocklabs/client 0.8.18 → 0.8.20
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 +33 -0
- package/dist/api.d.ts +25 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +84 -0
- package/dist/cjs/api.js +2 -133
- package/dist/cjs/api.js.map +1 -1
- package/dist/cjs/clients/feed/feed.js +2 -939
- package/dist/cjs/clients/feed/feed.js.map +1 -1
- package/dist/cjs/clients/feed/index.js +2 -34
- package/dist/cjs/clients/feed/index.js.map +1 -1
- package/dist/cjs/clients/feed/store.js +2 -111
- package/dist/cjs/clients/feed/store.js.map +1 -1
- package/dist/cjs/clients/feed/utils.js +2 -26
- package/dist/cjs/clients/feed/utils.js.map +1 -1
- package/dist/cjs/clients/preferences/index.js +2 -373
- package/dist/cjs/clients/preferences/index.js.map +1 -1
- package/dist/cjs/clients/users/index.js +2 -185
- package/dist/cjs/clients/users/index.js.map +1 -1
- package/dist/cjs/index.js +2 -102
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/knock.js +6 -89
- package/dist/cjs/knock.js.map +1 -1
- package/dist/cjs/networkStatus.js +2 -18
- package/dist/cjs/networkStatus.js.map +1 -1
- package/dist/clients/feed/feed.d.ts +64 -0
- package/dist/clients/feed/feed.d.ts.map +1 -0
- package/dist/clients/feed/feed.js +572 -0
- package/dist/clients/feed/index.d.ts +15 -0
- package/dist/clients/feed/index.d.ts.map +1 -0
- package/dist/clients/feed/index.js +34 -0
- package/dist/clients/feed/interfaces.d.ts +60 -0
- package/dist/clients/feed/interfaces.d.ts.map +1 -0
- package/dist/clients/feed/interfaces.js +2 -0
- package/dist/clients/feed/store.d.ts +3 -0
- package/dist/clients/feed/store.d.ts.map +1 -0
- package/dist/clients/feed/store.js +72 -0
- package/dist/clients/feed/types.d.ts +34 -0
- package/dist/clients/feed/types.d.ts.map +1 -0
- package/dist/clients/feed/types.js +2 -0
- package/dist/clients/feed/utils.d.ts +4 -0
- package/dist/clients/feed/utils.d.ts.map +1 -0
- package/dist/clients/feed/utils.js +21 -0
- package/dist/clients/preferences/index.d.ts +46 -0
- package/dist/clients/preferences/index.d.ts.map +1 -0
- package/dist/clients/preferences/index.js +129 -0
- package/dist/clients/preferences/interfaces.d.ts +26 -0
- package/dist/clients/preferences/interfaces.d.ts.map +1 -0
- package/dist/clients/preferences/interfaces.js +2 -0
- package/dist/clients/users/index.d.ts +16 -0
- package/dist/clients/users/index.d.ts.map +1 -0
- package/dist/clients/users/index.js +56 -0
- package/dist/clients/users/interfaces.d.ts +8 -0
- package/dist/clients/users/interfaces.d.ts.map +1 -0
- package/dist/clients/users/interfaces.js +2 -0
- package/dist/esm/api.js +44 -84
- package/dist/esm/api.js.map +1 -1
- package/dist/esm/clients/feed/feed.js +296 -603
- package/dist/esm/clients/feed/feed.js.map +1 -1
- package/dist/esm/clients/feed/index.js +28 -12
- package/dist/esm/clients/feed/index.js.map +1 -1
- package/dist/esm/clients/feed/store.js +37 -71
- package/dist/esm/clients/feed/store.js.map +1 -1
- package/dist/esm/clients/feed/utils.js +10 -15
- package/dist/esm/clients/feed/utils.js.map +1 -1
- package/dist/esm/clients/preferences/index.js +79 -146
- package/dist/esm/clients/preferences/index.js.map +1 -1
- package/dist/esm/clients/users/index.js +52 -76
- package/dist/esm/clients/users/index.js.map +1 -1
- package/dist/esm/index.js +12 -11
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/knock.js +72 -51
- package/dist/esm/knock.js.map +1 -1
- package/dist/esm/networkStatus.js +14 -10
- package/dist/esm/networkStatus.js.map +1 -1
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/interfaces.d.ts +41 -0
- package/dist/interfaces.d.ts.map +1 -0
- package/dist/interfaces.js +2 -0
- package/dist/knock.d.ts +30 -0
- package/dist/knock.d.ts.map +1 -0
- package/dist/knock.js +135 -0
- package/dist/networkStatus.d.ts +8 -0
- package/dist/networkStatus.d.ts.map +1 -0
- package/dist/networkStatus.js +18 -0
- package/dist/types/api.d.ts +0 -2
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/clients/feed/feed.d.ts +12 -4
- package/dist/types/clients/feed/feed.d.ts.map +1 -1
- package/dist/types/clients/feed/index.d.ts +4 -0
- package/dist/types/clients/feed/index.d.ts.map +1 -1
- package/dist/types/clients/feed/store.d.ts.map +1 -1
- package/dist/types/clients/feed/types.d.ts +0 -1
- package/dist/types/clients/feed/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/interfaces.d.ts +7 -0
- package/dist/types/interfaces.d.ts.map +1 -1
- package/dist/types/knock.d.ts +12 -4
- package/dist/types/knock.d.ts.map +1 -1
- package/package.json +11 -7
- package/dist/cjs/clients/feed/interfaces.js +0 -6
- package/dist/cjs/clients/feed/interfaces.js.map +0 -1
- package/dist/cjs/clients/feed/types.js +0 -6
- package/dist/cjs/clients/feed/types.js.map +0 -1
- package/dist/cjs/clients/preferences/interfaces.js +0 -6
- package/dist/cjs/clients/preferences/interfaces.js.map +0 -1
- package/dist/cjs/clients/users/interfaces.js +0 -6
- package/dist/cjs/clients/users/interfaces.js.map +0 -1
- package/dist/cjs/interfaces.js +0 -6
- package/dist/cjs/interfaces.js.map +0 -1
- package/dist/esm/clients/feed/interfaces.js +0 -2
- package/dist/esm/clients/feed/interfaces.js.map +0 -1
- package/dist/esm/clients/feed/types.js +0 -2
- package/dist/esm/clients/feed/types.js.map +0 -1
- package/dist/esm/clients/preferences/interfaces.js +0 -2
- package/dist/esm/clients/preferences/interfaces.js.map +0 -1
- package/dist/esm/clients/users/interfaces.js +0 -2
- package/dist/esm/clients/users/interfaces.js.map +0 -1
- package/dist/esm/interfaces.js +0 -2
- package/dist/esm/interfaces.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/clients/feed/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpD,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;IAEvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE/B,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IAE1C,YAAY,CAAC,EAAE,WAAW,CAAC;IAE3B,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAE5C,6BAA6B,CAAC,EAAE,OAAO,CAAC;IAGxC,mCAAmC,CAAC,EAAE,MAAM,CAAC;CAC9C;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC;IAChE,aAAa,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CACnC,GAAG,IAAI,CAAC,iBAAiB,EAAE,mCAAmC,CAAC,CAAC;AAEjE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC,GAAG,WAAW;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,QAAQ,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/clients/feed/store.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AA6BzC,MAAM,CAAC,OAAO,UAAU,WAAW,uDA0DlC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const vanilla_1 = __importDefault(require("zustand/vanilla"));
|
|
7
|
+
const networkStatus_1 = require("../../networkStatus");
|
|
8
|
+
const utils_1 = require("./utils");
|
|
9
|
+
function processItems(items) {
|
|
10
|
+
const deduped = (0, utils_1.deduplicateItems)(items);
|
|
11
|
+
const sorted = (0, utils_1.sortItems)(deduped);
|
|
12
|
+
return sorted;
|
|
13
|
+
}
|
|
14
|
+
const defaultSetResultOptions = {
|
|
15
|
+
shouldSetPage: true,
|
|
16
|
+
shouldAppend: false,
|
|
17
|
+
};
|
|
18
|
+
const initialStoreState = {
|
|
19
|
+
items: [],
|
|
20
|
+
metadata: {
|
|
21
|
+
total_count: 0,
|
|
22
|
+
unread_count: 0,
|
|
23
|
+
unseen_count: 0,
|
|
24
|
+
},
|
|
25
|
+
pageInfo: {
|
|
26
|
+
before: null,
|
|
27
|
+
after: null,
|
|
28
|
+
page_size: 50,
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
function createStore() {
|
|
32
|
+
return (0, vanilla_1.default)((set) => ({
|
|
33
|
+
// Keeps track of all of the items loaded
|
|
34
|
+
...initialStoreState,
|
|
35
|
+
// The network status indicates what's happening with the request
|
|
36
|
+
networkStatus: networkStatus_1.NetworkStatus.ready,
|
|
37
|
+
loading: false,
|
|
38
|
+
setNetworkStatus: (networkStatus) => set(() => ({
|
|
39
|
+
networkStatus,
|
|
40
|
+
loading: networkStatus === networkStatus_1.NetworkStatus.loading,
|
|
41
|
+
})),
|
|
42
|
+
setResult: ({ entries, meta, page_info }, options = defaultSetResultOptions) => set((state) => {
|
|
43
|
+
// We resort the list on set, so concating everything is fine (if a bit suboptimal)
|
|
44
|
+
const items = options.shouldAppend
|
|
45
|
+
? processItems(state.items.concat(entries))
|
|
46
|
+
: entries;
|
|
47
|
+
return {
|
|
48
|
+
items,
|
|
49
|
+
metadata: meta,
|
|
50
|
+
pageInfo: options.shouldSetPage ? page_info : state.pageInfo,
|
|
51
|
+
loading: false,
|
|
52
|
+
networkStatus: networkStatus_1.NetworkStatus.ready,
|
|
53
|
+
};
|
|
54
|
+
}),
|
|
55
|
+
setMetadata: (metadata) => set(() => ({ metadata })),
|
|
56
|
+
resetStore: (metadata = initialStoreState.metadata) => set(() => ({ ...initialStoreState, metadata })),
|
|
57
|
+
setItemAttrs: (itemIds, attrs) => {
|
|
58
|
+
// Create a map for the items to the updates to be made
|
|
59
|
+
const itemUpdatesMap = itemIds.reduce((acc, itemId) => ({ ...acc, [itemId]: attrs }), {});
|
|
60
|
+
return set((state) => {
|
|
61
|
+
const items = state.items.map((item) => {
|
|
62
|
+
if (itemUpdatesMap[item.id]) {
|
|
63
|
+
return { ...item, ...itemUpdatesMap[item.id] };
|
|
64
|
+
}
|
|
65
|
+
return item;
|
|
66
|
+
});
|
|
67
|
+
return { items };
|
|
68
|
+
});
|
|
69
|
+
},
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
exports.default = createStore;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { PageInfo } from "@knocklabs/types";
|
|
2
|
+
import { NetworkStatus } from "../../networkStatus";
|
|
3
|
+
import { FeedItem, FeedMetadata, FeedResponse } from "./interfaces";
|
|
4
|
+
export type StoreFeedResultOptions = {
|
|
5
|
+
shouldSetPage?: boolean;
|
|
6
|
+
shouldAppend?: boolean;
|
|
7
|
+
};
|
|
8
|
+
export type FeedStoreState = {
|
|
9
|
+
items: FeedItem[];
|
|
10
|
+
pageInfo: PageInfo;
|
|
11
|
+
metadata: FeedMetadata;
|
|
12
|
+
loading: boolean;
|
|
13
|
+
networkStatus: NetworkStatus;
|
|
14
|
+
setResult: (response: FeedResponse, opts?: StoreFeedResultOptions) => void;
|
|
15
|
+
setMetadata: (metadata: FeedMetadata) => void;
|
|
16
|
+
setNetworkStatus: (networkStatus: NetworkStatus) => void;
|
|
17
|
+
setItemAttrs: (itemIds: string[], attrs: object) => void;
|
|
18
|
+
resetStore: (metadata?: FeedMetadata) => void;
|
|
19
|
+
};
|
|
20
|
+
export type FeedMessagesReceivedPayload = {
|
|
21
|
+
metadata: FeedMetadata;
|
|
22
|
+
};
|
|
23
|
+
export type FeedRealTimeEvent = "messages.new";
|
|
24
|
+
export type FeedEvent = FeedRealTimeEvent | "items.received.page" | "items.received.realtime" | "items.archived" | "items.unarchived" | "items.seen" | "items.unseen" | "items.read" | "items.unread" | "items.all_archived" | "items.all_read" | "items.all_seen";
|
|
25
|
+
export type BindableFeedEvent = FeedEvent | "items.received.*" | "items.*";
|
|
26
|
+
export type FeedEventPayload = {
|
|
27
|
+
event: Omit<FeedEvent, "messages.new">;
|
|
28
|
+
items: FeedItem[];
|
|
29
|
+
metadata: FeedMetadata;
|
|
30
|
+
};
|
|
31
|
+
export type FeedRealTimeCallback = (resp: FeedResponse) => void;
|
|
32
|
+
export type FeedEventCallback = (payload: FeedEventPayload) => void;
|
|
33
|
+
export type FeedItemOrItems = FeedItem | FeedItem[];
|
|
34
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/clients/feed/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEpE,MAAM,MAAM,sBAAsB,GAAG;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAC3E,WAAW,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;IAC9C,gBAAgB,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,IAAI,CAAC;IACzD,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,EAAE,YAAY,CAAC;CACxB,CAAC;AAQF,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAE/C,MAAM,MAAM,SAAS,GACjB,iBAAiB,GACjB,qBAAqB,GACrB,yBAAyB,GACzB,gBAAgB,GAChB,kBAAkB,GAClB,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,cAAc,GACd,oBAAoB,GACpB,gBAAgB,GAChB,gBAAgB,CAAC;AAGrB,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,kBAAkB,GAAG,SAAS,CAAC;AAE3E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACvC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,EAAE,YAAY,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;AAEhE,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAEpE,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/clients/feed/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAY9D;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,sDAM1C"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sortItems = exports.deduplicateItems = void 0;
|
|
4
|
+
function deduplicateItems(items) {
|
|
5
|
+
const seen = {};
|
|
6
|
+
const values = [];
|
|
7
|
+
return items.reduce((acc, item) => {
|
|
8
|
+
if (seen[item.id]) {
|
|
9
|
+
return acc;
|
|
10
|
+
}
|
|
11
|
+
seen[item.id] = true;
|
|
12
|
+
return [...acc, item];
|
|
13
|
+
}, values);
|
|
14
|
+
}
|
|
15
|
+
exports.deduplicateItems = deduplicateItems;
|
|
16
|
+
function sortItems(items) {
|
|
17
|
+
return items.sort((a, b) => {
|
|
18
|
+
return (new Date(b.inserted_at).getTime() - new Date(a.inserted_at).getTime());
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
exports.sortItems = sortItems;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ChannelType } from "@knocklabs/types";
|
|
2
|
+
import Knock from "../../knock";
|
|
3
|
+
import { ChannelTypePreferences, PreferenceOptions, SetPreferencesProperties, WorkflowPreferenceSetting, WorkflowPreferences, PreferenceSet } from "./interfaces";
|
|
4
|
+
declare class Preferences {
|
|
5
|
+
private instance;
|
|
6
|
+
constructor(instance: Knock);
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated Use `user.getAllPreferences()` instead
|
|
9
|
+
*/
|
|
10
|
+
getAll(): Promise<PreferenceSet>;
|
|
11
|
+
/**
|
|
12
|
+
* @deprecated Use `user.getPreferences()` instead
|
|
13
|
+
*/
|
|
14
|
+
get(options?: PreferenceOptions): Promise<PreferenceSet>;
|
|
15
|
+
/**
|
|
16
|
+
* @deprecated Use `user.setPreferences(preferenceSet, options)` instead
|
|
17
|
+
*/
|
|
18
|
+
set(preferenceSet: SetPreferencesProperties, options?: PreferenceOptions): Promise<PreferenceSet>;
|
|
19
|
+
/**
|
|
20
|
+
* @deprecated Use `user.setPreferences(preferenceSet, options)` instead
|
|
21
|
+
*/
|
|
22
|
+
setChannelTypes(channelTypePreferences: ChannelTypePreferences, options?: PreferenceOptions): Promise<PreferenceSet>;
|
|
23
|
+
/**
|
|
24
|
+
* @deprecated Use `user.setPreferences(preferenceSet, options)` instead
|
|
25
|
+
*/
|
|
26
|
+
setChannelType(channelType: ChannelType, setting: boolean, options?: PreferenceOptions): Promise<PreferenceSet>;
|
|
27
|
+
/**
|
|
28
|
+
* @deprecated Use `user.setPreferences(preferenceSet, options)` instead
|
|
29
|
+
*/
|
|
30
|
+
setWorkflows(workflowPreferences: WorkflowPreferences, options?: PreferenceOptions): Promise<PreferenceSet>;
|
|
31
|
+
/**
|
|
32
|
+
* @deprecated Use `user.setPreferences(preferenceSet, options)` instead
|
|
33
|
+
*/
|
|
34
|
+
setWorkflow(workflowKey: string, setting: WorkflowPreferenceSetting, options?: PreferenceOptions): Promise<PreferenceSet>;
|
|
35
|
+
/**
|
|
36
|
+
* @deprecated Use `user.setPreferences(preferenceSet, options)` instead
|
|
37
|
+
*/
|
|
38
|
+
setCategories(categoryPreferences: WorkflowPreferences, options?: PreferenceOptions): Promise<PreferenceSet>;
|
|
39
|
+
/**
|
|
40
|
+
* @deprecated Use `user.setPreferences(preferenceSet, options)` instead
|
|
41
|
+
*/
|
|
42
|
+
setCategory(categoryKey: string, setting: WorkflowPreferenceSetting, options?: PreferenceOptions): Promise<PreferenceSet>;
|
|
43
|
+
private handleResponse;
|
|
44
|
+
}
|
|
45
|
+
export default Preferences;
|
|
46
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/clients/preferences/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,aAAa,EACd,MAAM,cAAc,CAAC;AAYtB,cAAM,WAAW;IACf,OAAO,CAAC,QAAQ,CAAQ;gBAEZ,QAAQ,EAAE,KAAK;IAI3B;;OAEG;IACG,MAAM;IASZ;;OAEG;IACG,GAAG,CAAC,OAAO,GAAE,iBAAsB;IAWzC;;OAEG;IACG,GAAG,CACP,aAAa,EAAE,wBAAwB,EACvC,OAAO,GAAE,iBAAsB;IAajC;;OAEG;IACG,eAAe,CACnB,sBAAsB,EAAE,sBAAsB,EAC9C,OAAO,GAAE,iBAAsB;IAajC;;OAEG;IACG,cAAc,CAClB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,iBAAsB;IAajC;;OAEG;IACG,YAAY,CAChB,mBAAmB,EAAE,mBAAmB,EACxC,OAAO,GAAE,iBAAsB;IAajC;;OAEG;IACG,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,yBAAyB,EAClC,OAAO,GAAE,iBAAsB;IAcjC;;OAEG;IACG,aAAa,CACjB,mBAAmB,EAAE,mBAAmB,EACxC,OAAO,GAAE,iBAAsB;IAajC;;OAEG;IACG,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,yBAAyB,EAClC,OAAO,GAAE,iBAAsB;IAcjC,OAAO,CAAC,cAAc;CAOvB;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const DEFAULT_PREFERENCE_SET_ID = "default";
|
|
4
|
+
function buildUpdateParam(param) {
|
|
5
|
+
if (typeof param === "object") {
|
|
6
|
+
return param;
|
|
7
|
+
}
|
|
8
|
+
return { subscribed: param };
|
|
9
|
+
}
|
|
10
|
+
class Preferences {
|
|
11
|
+
instance;
|
|
12
|
+
constructor(instance) {
|
|
13
|
+
this.instance = instance;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* @deprecated Use `user.getAllPreferences()` instead
|
|
17
|
+
*/
|
|
18
|
+
async getAll() {
|
|
19
|
+
const result = await this.instance.client().makeRequest({
|
|
20
|
+
method: "GET",
|
|
21
|
+
url: `/v1/users/${this.instance.userId}/preferences`,
|
|
22
|
+
});
|
|
23
|
+
return this.handleResponse(result);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* @deprecated Use `user.getPreferences()` instead
|
|
27
|
+
*/
|
|
28
|
+
async get(options = {}) {
|
|
29
|
+
const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;
|
|
30
|
+
const result = await this.instance.client().makeRequest({
|
|
31
|
+
method: "GET",
|
|
32
|
+
url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}`,
|
|
33
|
+
});
|
|
34
|
+
return this.handleResponse(result);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @deprecated Use `user.setPreferences(preferenceSet, options)` instead
|
|
38
|
+
*/
|
|
39
|
+
async set(preferenceSet, options = {}) {
|
|
40
|
+
const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;
|
|
41
|
+
const result = await this.instance.client().makeRequest({
|
|
42
|
+
method: "PUT",
|
|
43
|
+
url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}`,
|
|
44
|
+
data: preferenceSet,
|
|
45
|
+
});
|
|
46
|
+
return this.handleResponse(result);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* @deprecated Use `user.setPreferences(preferenceSet, options)` instead
|
|
50
|
+
*/
|
|
51
|
+
async setChannelTypes(channelTypePreferences, options = {}) {
|
|
52
|
+
const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;
|
|
53
|
+
const result = await this.instance.client().makeRequest({
|
|
54
|
+
method: "PUT",
|
|
55
|
+
url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/channel_types`,
|
|
56
|
+
data: channelTypePreferences,
|
|
57
|
+
});
|
|
58
|
+
return this.handleResponse(result);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* @deprecated Use `user.setPreferences(preferenceSet, options)` instead
|
|
62
|
+
*/
|
|
63
|
+
async setChannelType(channelType, setting, options = {}) {
|
|
64
|
+
const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;
|
|
65
|
+
const result = await this.instance.client().makeRequest({
|
|
66
|
+
method: "PUT",
|
|
67
|
+
url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/channel_types/${channelType}`,
|
|
68
|
+
data: { subscribed: setting },
|
|
69
|
+
});
|
|
70
|
+
return this.handleResponse(result);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* @deprecated Use `user.setPreferences(preferenceSet, options)` instead
|
|
74
|
+
*/
|
|
75
|
+
async setWorkflows(workflowPreferences, options = {}) {
|
|
76
|
+
const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;
|
|
77
|
+
const result = await this.instance.client().makeRequest({
|
|
78
|
+
method: "PUT",
|
|
79
|
+
url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/workflows`,
|
|
80
|
+
data: workflowPreferences,
|
|
81
|
+
});
|
|
82
|
+
return this.handleResponse(result);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* @deprecated Use `user.setPreferences(preferenceSet, options)` instead
|
|
86
|
+
*/
|
|
87
|
+
async setWorkflow(workflowKey, setting, options = {}) {
|
|
88
|
+
const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;
|
|
89
|
+
const params = buildUpdateParam(setting);
|
|
90
|
+
const result = await this.instance.client().makeRequest({
|
|
91
|
+
method: "PUT",
|
|
92
|
+
url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/workflows/${workflowKey}`,
|
|
93
|
+
data: params,
|
|
94
|
+
});
|
|
95
|
+
return this.handleResponse(result);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* @deprecated Use `user.setPreferences(preferenceSet, options)` instead
|
|
99
|
+
*/
|
|
100
|
+
async setCategories(categoryPreferences, options = {}) {
|
|
101
|
+
const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;
|
|
102
|
+
const result = await this.instance.client().makeRequest({
|
|
103
|
+
method: "PUT",
|
|
104
|
+
url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/categories`,
|
|
105
|
+
data: categoryPreferences,
|
|
106
|
+
});
|
|
107
|
+
return this.handleResponse(result);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* @deprecated Use `user.setPreferences(preferenceSet, options)` instead
|
|
111
|
+
*/
|
|
112
|
+
async setCategory(categoryKey, setting, options = {}) {
|
|
113
|
+
const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;
|
|
114
|
+
const params = buildUpdateParam(setting);
|
|
115
|
+
const result = await this.instance.client().makeRequest({
|
|
116
|
+
method: "PUT",
|
|
117
|
+
url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/categories/${categoryKey}`,
|
|
118
|
+
data: params,
|
|
119
|
+
});
|
|
120
|
+
return this.handleResponse(result);
|
|
121
|
+
}
|
|
122
|
+
handleResponse(response) {
|
|
123
|
+
if (response.statusCode === "error") {
|
|
124
|
+
throw new Error(response.error || response.body);
|
|
125
|
+
}
|
|
126
|
+
return response.body;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
exports.default = Preferences;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ChannelType } from "@knocklabs/types";
|
|
2
|
+
export type ChannelTypePreferences = {
|
|
3
|
+
[K in ChannelType]?: boolean;
|
|
4
|
+
};
|
|
5
|
+
export type WorkflowPreferenceSetting = boolean | {
|
|
6
|
+
channel_types: ChannelTypePreferences;
|
|
7
|
+
};
|
|
8
|
+
export type WorkflowPreferences = Partial<Record<string, WorkflowPreferenceSetting>>;
|
|
9
|
+
export interface SetPreferencesProperties {
|
|
10
|
+
workflows: WorkflowPreferences;
|
|
11
|
+
categories: WorkflowPreferences;
|
|
12
|
+
channel_types: ChannelTypePreferences;
|
|
13
|
+
}
|
|
14
|
+
export interface PreferenceSet {
|
|
15
|
+
id: string;
|
|
16
|
+
categories: WorkflowPreferences;
|
|
17
|
+
workflows: WorkflowPreferences;
|
|
18
|
+
channel_types: ChannelTypePreferences;
|
|
19
|
+
}
|
|
20
|
+
export interface PreferenceOptions {
|
|
21
|
+
preferenceSet?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface GetPreferencesOptions extends PreferenceOptions {
|
|
24
|
+
tenant?: string;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/clients/preferences/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,MAAM,sBAAsB,GAAG;KAClC,CAAC,IAAI,WAAW,CAAC,CAAC,EAAE,OAAO;CAC7B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GACjC,OAAO,GACP;IAAE,aAAa,EAAE,sBAAsB,CAAA;CAAE,CAAC;AAE9C,MAAM,MAAM,mBAAmB,GAAG,OAAO,CACvC,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAC1C,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,mBAAmB,CAAC;IAC/B,UAAU,EAAE,mBAAmB,CAAC;IAChC,aAAa,EAAE,sBAAsB,CAAC;CACvC;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,mBAAmB,CAAC;IAChC,SAAS,EAAE,mBAAmB,CAAC;IAC/B,aAAa,EAAE,sBAAsB,CAAC;CACvC;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ChannelData } from "../../interfaces";
|
|
2
|
+
import Knock from "../../knock";
|
|
3
|
+
import { GetPreferencesOptions, PreferenceOptions, PreferenceSet, SetPreferencesProperties } from "../preferences/interfaces";
|
|
4
|
+
import { GetChannelDataInput, SetChannelDataInput } from "./interfaces";
|
|
5
|
+
declare class UserClient {
|
|
6
|
+
private instance;
|
|
7
|
+
constructor(instance: Knock);
|
|
8
|
+
getAllPreferences(): Promise<PreferenceSet[]>;
|
|
9
|
+
getPreferences(options?: GetPreferencesOptions): Promise<PreferenceSet>;
|
|
10
|
+
setPreferences(preferenceSet: SetPreferencesProperties, options?: PreferenceOptions): Promise<PreferenceSet>;
|
|
11
|
+
getChannelData<T = any>(params: GetChannelDataInput): Promise<ChannelData<T>>;
|
|
12
|
+
setChannelData<T = any>({ channelId, channelData, }: SetChannelDataInput): Promise<ChannelData<T>>;
|
|
13
|
+
private handleResponse;
|
|
14
|
+
}
|
|
15
|
+
export default UserClient;
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/clients/users/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,wBAAwB,EACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAIxE,cAAM,UAAU;IACd,OAAO,CAAC,QAAQ,CAAQ;gBAEZ,QAAQ,EAAE,KAAK;IAIrB,iBAAiB;IASjB,cAAc,CAClB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,aAAa,CAAC;IAYnB,cAAc,CAClB,aAAa,EAAE,wBAAwB,EACvC,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,aAAa,CAAC;IAYnB,cAAc,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,mBAAmB;IASnD,cAAc,CAAC,CAAC,GAAG,GAAG,EAAE,EAC5B,SAAS,EACT,WAAW,GACZ,EAAE,mBAAmB;IAUtB,OAAO,CAAC,cAAc;CAOvB;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const DEFAULT_PREFERENCE_SET_ID = "default";
|
|
4
|
+
class UserClient {
|
|
5
|
+
instance;
|
|
6
|
+
constructor(instance) {
|
|
7
|
+
this.instance = instance;
|
|
8
|
+
}
|
|
9
|
+
async getAllPreferences() {
|
|
10
|
+
const result = await this.instance.client().makeRequest({
|
|
11
|
+
method: "GET",
|
|
12
|
+
url: `/v1/users/${this.instance.userId}/preferences`,
|
|
13
|
+
});
|
|
14
|
+
return this.handleResponse(result);
|
|
15
|
+
}
|
|
16
|
+
async getPreferences(options = {}) {
|
|
17
|
+
const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;
|
|
18
|
+
const result = await this.instance.client().makeRequest({
|
|
19
|
+
method: "GET",
|
|
20
|
+
url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}`,
|
|
21
|
+
params: { tenant: options.tenant },
|
|
22
|
+
});
|
|
23
|
+
return this.handleResponse(result);
|
|
24
|
+
}
|
|
25
|
+
async setPreferences(preferenceSet, options = {}) {
|
|
26
|
+
const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;
|
|
27
|
+
const result = await this.instance.client().makeRequest({
|
|
28
|
+
method: "PUT",
|
|
29
|
+
url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}`,
|
|
30
|
+
data: preferenceSet,
|
|
31
|
+
});
|
|
32
|
+
return this.handleResponse(result);
|
|
33
|
+
}
|
|
34
|
+
async getChannelData(params) {
|
|
35
|
+
const result = await this.instance.client().makeRequest({
|
|
36
|
+
method: "GET",
|
|
37
|
+
url: `/v1/users/${this.instance.userId}/channel_data/${params.channelId}`,
|
|
38
|
+
});
|
|
39
|
+
return this.handleResponse(result);
|
|
40
|
+
}
|
|
41
|
+
async setChannelData({ channelId, channelData, }) {
|
|
42
|
+
const result = await this.instance.client().makeRequest({
|
|
43
|
+
method: "PUT",
|
|
44
|
+
url: `/v1/users/${this.instance.userId}/channel_data/${channelId}`,
|
|
45
|
+
data: { data: channelData },
|
|
46
|
+
});
|
|
47
|
+
return this.handleResponse(result);
|
|
48
|
+
}
|
|
49
|
+
handleResponse(response) {
|
|
50
|
+
if (response.statusCode === "error") {
|
|
51
|
+
throw new Error(response.error || response.body);
|
|
52
|
+
}
|
|
53
|
+
return response.body;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
exports.default = UserClient;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/clients/users/interfaces.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
package/dist/esm/api.js
CHANGED
|
@@ -1,98 +1,58 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
this
|
|
14
|
-
this.apiKey =
|
|
15
|
-
this.userToken = options.userToken || null;
|
|
16
|
-
|
|
17
|
-
// Create a retryable axios client
|
|
18
|
-
this.axiosClient = axios.create({
|
|
1
|
+
var i = Object.defineProperty;
|
|
2
|
+
var a = (s, e, t) => e in s ? i(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
|
|
3
|
+
var r = (s, e, t) => (a(s, typeof e != "symbol" ? e + "" : e, t), t);
|
|
4
|
+
import n from "axios";
|
|
5
|
+
import o from "axios-retry";
|
|
6
|
+
import { Socket as u } from "phoenix";
|
|
7
|
+
class y {
|
|
8
|
+
constructor(e) {
|
|
9
|
+
r(this, "host");
|
|
10
|
+
r(this, "apiKey");
|
|
11
|
+
r(this, "userToken");
|
|
12
|
+
r(this, "axiosClient");
|
|
13
|
+
r(this, "socket");
|
|
14
|
+
this.host = e.host, this.apiKey = e.apiKey, this.userToken = e.userToken || null, this.axiosClient = n.create({
|
|
19
15
|
baseURL: this.host,
|
|
20
16
|
headers: {
|
|
21
17
|
Accept: "application/json",
|
|
22
18
|
"Content-Type": "application/json",
|
|
23
|
-
Authorization:
|
|
19
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
24
20
|
"X-Knock-User-Token": this.userToken
|
|
25
21
|
}
|
|
26
|
-
})
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
axiosRetry(this.axiosClient, {
|
|
22
|
+
}), typeof window < "u" && (this.socket = new u(`${this.host.replace("http", "ws")}/ws/v1`, {
|
|
23
|
+
params: {
|
|
24
|
+
user_token: this.userToken,
|
|
25
|
+
api_key: this.apiKey
|
|
26
|
+
}
|
|
27
|
+
})), o(this.axiosClient, {
|
|
36
28
|
retries: 3,
|
|
37
29
|
retryCondition: this.canRetryRequest,
|
|
38
|
-
retryDelay:
|
|
30
|
+
retryDelay: o.exponentialDelay
|
|
39
31
|
});
|
|
40
32
|
}
|
|
41
|
-
makeRequest(
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
statusCode: "error",
|
|
58
|
-
status: 500,
|
|
59
|
-
body: undefined,
|
|
60
|
-
error: e
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
})();
|
|
64
|
-
}
|
|
65
|
-
reconnectSocket() {
|
|
66
|
-
if (this.socket && !this.socket.isConnected()) {
|
|
67
|
-
this.socket.connect();
|
|
33
|
+
async makeRequest(e) {
|
|
34
|
+
try {
|
|
35
|
+
const t = await this.axiosClient(e);
|
|
36
|
+
return {
|
|
37
|
+
statusCode: t.status < 300 ? "ok" : "error",
|
|
38
|
+
body: t.data,
|
|
39
|
+
error: void 0,
|
|
40
|
+
status: t.status
|
|
41
|
+
};
|
|
42
|
+
} catch (t) {
|
|
43
|
+
return console.error(t), {
|
|
44
|
+
statusCode: "error",
|
|
45
|
+
status: 500,
|
|
46
|
+
body: void 0,
|
|
47
|
+
error: t
|
|
48
|
+
};
|
|
68
49
|
}
|
|
69
50
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
this.socket.disconnect();
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
canRetryRequest(error) {
|
|
76
|
-
// Retry Network Errors.
|
|
77
|
-
if (axiosRetry.isNetworkError(error)) {
|
|
78
|
-
return true;
|
|
79
|
-
}
|
|
80
|
-
if (!error.response) {
|
|
81
|
-
// Cannot determine if the request can be retried
|
|
82
|
-
return false;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
// Retry Server Errors (5xx).
|
|
86
|
-
if (error.response.status >= 500 && error.response.status <= 599) {
|
|
87
|
-
return true;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
// Retry if rate limited.
|
|
91
|
-
if (error.response.status === 429) {
|
|
92
|
-
return true;
|
|
93
|
-
}
|
|
94
|
-
return false;
|
|
51
|
+
canRetryRequest(e) {
|
|
52
|
+
return o.isNetworkError(e) ? !0 : e.response ? e.response.status >= 500 && e.response.status <= 599 || e.response.status === 429 : !1;
|
|
95
53
|
}
|
|
96
54
|
}
|
|
97
|
-
export
|
|
98
|
-
|
|
55
|
+
export {
|
|
56
|
+
y as default
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=api.js.map
|