@knocklabs/client 0.8.17 → 0.8.19
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/README.md +17 -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 -937
- 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 -601
- 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/interfaces.d.ts +2 -1
- package/dist/types/clients/feed/interfaces.d.ts.map +1 -1
- package/dist/types/clients/feed/store.d.ts.map +1 -1
- package/dist/types/clients/feed/types.d.ts +1 -2
- package/dist/types/clients/feed/types.d.ts.map +1 -1
- package/dist/types/clients/feed/utils.d.ts +1 -1
- package/dist/types/clients/feed/utils.d.ts.map +1 -1
- package/dist/types/clients/preferences/index.d.ts +2 -1
- package/dist/types/clients/preferences/index.d.ts.map +1 -1
- package/dist/types/clients/preferences/interfaces.d.ts +1 -1
- package/dist/types/clients/preferences/interfaces.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 +8 -8
- 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 +15 -10
- 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
|