@stackfactor/client-api 1.2.4 → 1.2.7

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.
Files changed (59) hide show
  1. package/dist/cjs/lib/actionNotifications.d.ts +42 -0
  2. package/dist/cjs/lib/actionNotifications.d.ts.map +1 -1
  3. package/dist/cjs/lib/actionNotifications.js +107 -1
  4. package/dist/cjs/lib/actionNotifications.js.map +1 -1
  5. package/dist/cjs/lib/avatar.js +1 -1
  6. package/dist/cjs/lib/avatar.js.map +1 -1
  7. package/dist/cjs/lib/channelProgrammes.d.ts +134 -0
  8. package/dist/cjs/lib/channelProgrammes.d.ts.map +1 -0
  9. package/dist/cjs/lib/channelProgrammes.js +205 -0
  10. package/dist/cjs/lib/channelProgrammes.js.map +1 -0
  11. package/dist/cjs/lib/incident.d.ts +25 -0
  12. package/dist/cjs/lib/incident.d.ts.map +1 -1
  13. package/dist/cjs/lib/incident.js +29 -1
  14. package/dist/cjs/lib/incident.js.map +1 -1
  15. package/dist/cjs/lib/index.d.ts +2 -0
  16. package/dist/cjs/lib/index.d.ts.map +1 -1
  17. package/dist/cjs/lib/index.js +4 -2
  18. package/dist/cjs/lib/index.js.map +1 -1
  19. package/dist/cjs/lib/integration.d.ts.map +1 -1
  20. package/dist/cjs/lib/integration.js +17 -2
  21. package/dist/cjs/lib/integration.js.map +1 -1
  22. package/dist/cjs/lib/partnerships.d.ts +141 -0
  23. package/dist/cjs/lib/partnerships.d.ts.map +1 -0
  24. package/dist/cjs/lib/partnerships.js +247 -0
  25. package/dist/cjs/lib/partnerships.js.map +1 -0
  26. package/dist/cjs/lib/utils.d.ts.map +1 -1
  27. package/dist/cjs/lib/utils.js +11 -0
  28. package/dist/cjs/lib/utils.js.map +1 -1
  29. package/dist/cjs/package.json +1 -1
  30. package/dist/esm/lib/actionNotifications.d.ts +42 -0
  31. package/dist/esm/lib/actionNotifications.d.ts.map +1 -1
  32. package/dist/esm/lib/actionNotifications.js +104 -0
  33. package/dist/esm/lib/actionNotifications.js.map +1 -1
  34. package/dist/esm/lib/avatar.js +1 -1
  35. package/dist/esm/lib/avatar.js.map +1 -1
  36. package/dist/esm/lib/channelProgrammes.d.ts +134 -0
  37. package/dist/esm/lib/channelProgrammes.d.ts.map +1 -0
  38. package/dist/esm/lib/channelProgrammes.js +193 -0
  39. package/dist/esm/lib/channelProgrammes.js.map +1 -0
  40. package/dist/esm/lib/incident.d.ts +25 -0
  41. package/dist/esm/lib/incident.d.ts.map +1 -1
  42. package/dist/esm/lib/incident.js +27 -0
  43. package/dist/esm/lib/incident.js.map +1 -1
  44. package/dist/esm/lib/index.d.ts +2 -0
  45. package/dist/esm/lib/index.d.ts.map +1 -1
  46. package/dist/esm/lib/index.js +2 -0
  47. package/dist/esm/lib/index.js.map +1 -1
  48. package/dist/esm/lib/integration.d.ts.map +1 -1
  49. package/dist/esm/lib/integration.js +17 -2
  50. package/dist/esm/lib/integration.js.map +1 -1
  51. package/dist/esm/lib/partnerships.d.ts +141 -0
  52. package/dist/esm/lib/partnerships.d.ts.map +1 -0
  53. package/dist/esm/lib/partnerships.js +234 -0
  54. package/dist/esm/lib/partnerships.js.map +1 -0
  55. package/dist/esm/lib/utils.d.ts.map +1 -1
  56. package/dist/esm/lib/utils.js +11 -0
  57. package/dist/esm/lib/utils.js.map +1 -1
  58. package/dist/esm/package.json +1 -1
  59. package/package.json +11 -4
@@ -1,9 +1,19 @@
1
+ import { type Socket } from "socket.io-client";
1
2
  /**
2
3
  * Get all permissions
3
4
  * @param {String} token The authentication token
4
5
  * @returns {Promise<object>}
5
6
  */
6
7
  export declare const getAllUserNotifications: (token: string) => Promise<object>;
8
+ /**
9
+ * Get one notification's full per-user view — including the heavy `details`
10
+ * and `data` payloads the list deliberately omits. Called on demand when a
11
+ * notification is opened.
12
+ * @param {String} id The notification id
13
+ * @param {String} token The authentication token
14
+ * @returns {Promise<object>}
15
+ */
16
+ export declare const getUserNotificationDetails: (id: string, token: string) => Promise<object>;
7
17
  /**
8
18
  * Mark notifications as open or viewed
9
19
  * @param {Array<String>} ids The id of the notifications to be marked
@@ -21,4 +31,36 @@ export declare const markNotifications: (ids: string[], status: string, authToke
21
31
  * @returns {Promise<object>}
22
32
  */
23
33
  export declare const processNotification: (id: string, action: string, comments: string, authToken: string) => Promise<object>;
34
+ /** Socket event the backend uses to push a user's full notification list. */
35
+ export declare const NOTIFICATIONS_LIST_EVENT = "notifications:list";
36
+ /** Handle returned by {@link subscribeToUserNotifications}. */
37
+ export interface UserNotificationsSubscription {
38
+ /** Permanently closes the subscription (e.g. on logout). */
39
+ disconnect: () => void;
40
+ /** The underlying socket, for connection-state inspection. */
41
+ socket: Socket;
42
+ }
43
+ /**
44
+ * Opens a persistent realtime subscription to the current user's action
45
+ * notifications. Unlike the per-operation sockets in this package, this
46
+ * connection reconnects automatically and stays open for the lifetime of the
47
+ * session.
48
+ *
49
+ * The backend sends the full current notification list (the same shape as
50
+ * `getAllUserNotifications`) on every connect and reconnect, and again
51
+ * whenever the list changes — so the consumer simply replaces its state with
52
+ * each `onList` payload and needs no polling and no merge logic.
53
+ *
54
+ * @param getToken Called before every (re)connect attempt so the handshake
55
+ * always carries a fresh token — pass an accessor that refreshes the
56
+ * short-lived bearer token, never a captured value.
57
+ * @param onList Receives the user's full notification list on every push.
58
+ * @param onConnectionChange Optional; observes socket connectivity so the
59
+ * consumer can fall back to polling while disconnected.
60
+ */
61
+ export declare const subscribeToUserNotifications: ({ getToken, onList, onConnectionChange, }: {
62
+ getToken: () => Promise<string | null> | string | null;
63
+ onList: (notifications: object[]) => void;
64
+ onConnectionChange?: (connected: boolean) => void;
65
+ }) => UserNotificationsSubscription;
24
66
  //# sourceMappingURL=actionNotifications.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"actionNotifications.d.ts","sourceRoot":"","sources":["../../../src/lib/actionNotifications.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,OAAO,MAAM,KAAG,OAAO,CAAC,MAAM,CAarE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAC5B,KAAK,MAAM,EAAE,EACb,QAAQ,MAAM,EACd,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAkBhB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAC9B,IAAI,MAAM,EACV,QAAQ,MAAM,EACd,UAAU,MAAM,EAChB,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAmBhB,CAAC"}
1
+ {"version":3,"file":"actionNotifications.d.ts","sourceRoot":"","sources":["../../../src/lib/actionNotifications.ts"],"names":[],"mappings":"AAGA,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,OAAO,MAAM,KAAG,OAAO,CAAC,MAAM,CAarE,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,GACrC,IAAI,MAAM,EACV,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAahB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAC5B,KAAK,MAAM,EAAE,EACb,QAAQ,MAAM,EACd,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAkBhB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAC9B,IAAI,MAAM,EACV,QAAQ,MAAM,EACd,UAAU,MAAM,EAChB,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAmBhB,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAQ7D,+DAA+D;AAC/D,MAAM,WAAW,6BAA6B;IAC5C,4DAA4D;IAC5D,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,4BAA4B,GAAI,2CAI1C;IACD,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IACvD,MAAM,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC1C,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACnD,KAAG,6BAkDH,CAAC"}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.processNotification = exports.markNotifications = exports.getAllUserNotifications = void 0;
3
+ exports.subscribeToUserNotifications = exports.NOTIFICATIONS_LIST_EVENT = exports.processNotification = exports.markNotifications = exports.getUserNotificationDetails = exports.getAllUserNotifications = void 0;
4
4
  const axiosClient_js_1 = require("./axiosClient.js");
5
+ const utils_js_1 = require("./utils.js");
6
+ const socket_io_client_1 = require("socket.io-client");
5
7
  /**
6
8
  * Get all permissions
7
9
  * @param {String} token The authentication token
@@ -22,6 +24,29 @@ const getAllUserNotifications = (token) => {
22
24
  });
23
25
  };
24
26
  exports.getAllUserNotifications = getAllUserNotifications;
27
+ /**
28
+ * Get one notification's full per-user view — including the heavy `details`
29
+ * and `data` payloads the list deliberately omits. Called on demand when a
30
+ * notification is opened.
31
+ * @param {String} id The notification id
32
+ * @param {String} token The authentication token
33
+ * @returns {Promise<object>}
34
+ */
35
+ const getUserNotificationDetails = (id, token) => {
36
+ return new Promise((resolve, reject) => {
37
+ const request = axiosClient_js_1.client.get(`/api/v1/actionnotifications/${id}`, {
38
+ headers: { authorization: token },
39
+ });
40
+ request
41
+ .then((response) => {
42
+ resolve(response.data);
43
+ })
44
+ .catch((error) => {
45
+ reject(error);
46
+ });
47
+ });
48
+ };
49
+ exports.getUserNotificationDetails = getUserNotificationDetails;
25
50
  /**
26
51
  * Mark notifications as open or viewed
27
52
  * @param {Array<String>} ids The id of the notifications to be marked
@@ -70,4 +95,85 @@ const processNotification = (id, action, comments, authToken) => {
70
95
  });
71
96
  };
72
97
  exports.processNotification = processNotification;
98
+ /** Socket event the backend uses to push a user's full notification list. */
99
+ exports.NOTIFICATIONS_LIST_EVENT = "notifications:list";
100
+ // Retry cadence for handshake rejections (socket.io does not auto-reconnect
101
+ // after a middleware error, so the client must re-dial itself — with a fresh
102
+ // token, since an expired one is the most likely cause).
103
+ const HANDSHAKE_RETRY_BASE_MS = 2000;
104
+ const HANDSHAKE_RETRY_MAX_MS = 60000;
105
+ /**
106
+ * Opens a persistent realtime subscription to the current user's action
107
+ * notifications. Unlike the per-operation sockets in this package, this
108
+ * connection reconnects automatically and stays open for the lifetime of the
109
+ * session.
110
+ *
111
+ * The backend sends the full current notification list (the same shape as
112
+ * `getAllUserNotifications`) on every connect and reconnect, and again
113
+ * whenever the list changes — so the consumer simply replaces its state with
114
+ * each `onList` payload and needs no polling and no merge logic.
115
+ *
116
+ * @param getToken Called before every (re)connect attempt so the handshake
117
+ * always carries a fresh token — pass an accessor that refreshes the
118
+ * short-lived bearer token, never a captured value.
119
+ * @param onList Receives the user's full notification list on every push.
120
+ * @param onConnectionChange Optional; observes socket connectivity so the
121
+ * consumer can fall back to polling while disconnected.
122
+ */
123
+ const subscribeToUserNotifications = ({ getToken, onList, onConnectionChange, }) => {
124
+ let closed = false;
125
+ let retryTimer = null;
126
+ let retryDelay = HANDSHAKE_RETRY_BASE_MS;
127
+ const socket = (0, socket_io_client_1.io)((0, utils_js_1.getBaseUrl)(), {
128
+ // Function form: evaluated on every connection attempt, so reconnects
129
+ // after a token expiry pick up the refreshed token.
130
+ auth: (cb) => {
131
+ Promise.resolve(getToken()).then((token) => cb({ token }));
132
+ },
133
+ path: `/api/v1/realtime`,
134
+ transports: ["websocket"],
135
+ withCredentials: true,
136
+ reconnection: true,
137
+ reconnectionDelay: 1000,
138
+ reconnectionDelayMax: 30000,
139
+ });
140
+ socket.on("connect", () => {
141
+ retryDelay = HANDSHAKE_RETRY_BASE_MS;
142
+ if (onConnectionChange)
143
+ onConnectionChange(true);
144
+ });
145
+ socket.on("disconnect", () => {
146
+ if (onConnectionChange)
147
+ onConnectionChange(false);
148
+ });
149
+ // A handshake rejection (invalid/expired token) closes the socket without
150
+ // automatic reconnection — re-dial with backoff and a fresh token.
151
+ socket.on("connect_error", () => {
152
+ if (onConnectionChange)
153
+ onConnectionChange(false);
154
+ if (closed || socket.active)
155
+ return;
156
+ if (retryTimer)
157
+ clearTimeout(retryTimer);
158
+ retryTimer = setTimeout(() => {
159
+ retryTimer = null;
160
+ if (!closed)
161
+ socket.connect();
162
+ }, retryDelay);
163
+ retryDelay = Math.min(retryDelay * 2, HANDSHAKE_RETRY_MAX_MS);
164
+ });
165
+ socket.on(exports.NOTIFICATIONS_LIST_EVENT, (notifications) => {
166
+ onList(notifications);
167
+ });
168
+ return {
169
+ disconnect: () => {
170
+ closed = true;
171
+ if (retryTimer)
172
+ clearTimeout(retryTimer);
173
+ socket.disconnect();
174
+ },
175
+ socket,
176
+ };
177
+ };
178
+ exports.subscribeToUserNotifications = subscribeToUserNotifications;
73
179
  //# sourceMappingURL=actionNotifications.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"actionNotifications.js","sourceRoot":"","sources":["../../../src/lib/actionNotifications.ts"],"names":[],"mappings":";;;AACA,qDAA0C;AAE1C;;;;GAIG;AACI,MAAM,uBAAuB,GAAG,CAAC,KAAa,EAAmB,EAAE;IACxE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,uBAAM,CAAC,GAAG,CAAC,6BAA6B,EAAE;YACxD,OAAO,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE;SAClC,CAAC,CAAC;QACH,OAAO;aACJ,IAAI,CAAC,CAAC,QAAuB,EAAE,EAAE;YAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAiB,EAAE,EAAE;YAC3B,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAbW,QAAA,uBAAuB,2BAalC;AAEF;;;;;;GAMG;AACI,MAAM,iBAAiB,GAAG,CAC/B,GAAa,EACb,MAAc,EACd,SAAiB,EACA,EAAE;IACnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,uBAAM,CAAC,GAAG,CACxB,kCAAkC,EAClC;YACE,GAAG,EAAE,GAAG;YACR,MAAM,EAAE,MAAM;SACf,EACD,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,CAC1C,CAAC;QACF,OAAO;aACJ,IAAI,CAAC,CAAC,QAAuB,EAAE,EAAE;YAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAiB,EAAE,EAAE;YAC3B,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAtBW,QAAA,iBAAiB,qBAsB5B;AAEF;;;;;;;GAOG;AACI,MAAM,mBAAmB,GAAG,CACjC,EAAU,EACV,MAAc,EACd,QAAgB,EAChB,SAAiB,EACA,EAAE;IACnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,uBAAM,CAAC,GAAG,CACxB,qCAAqC,EACrC;YACE,EAAE,EAAE,EAAE;YACN,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,QAAQ;SACnB,EACD,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,CAC1C,CAAC;QACF,OAAO;aACJ,IAAI,CAAC,CAAC,QAAuB,EAAE,EAAE;YAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAiB,EAAE,EAAE;YAC3B,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAxBW,QAAA,mBAAmB,uBAwB9B"}
1
+ {"version":3,"file":"actionNotifications.js","sourceRoot":"","sources":["../../../src/lib/actionNotifications.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ const axiosClient_js_1 = require("./axiosClient.js");
14
14
  */
15
15
  const getAvatar = (elementId, type, width, height, token, title = "") => {
16
16
  return new Promise((resolve, reject) => {
17
- const confirmationRequest = axiosClient_js_1.client.get(`/api/v1/avatar/getavatar/${elementId}/${type}/${width}/${height}${title?.length > 0 ? `/${title}` : ""}`, {
17
+ const confirmationRequest = axiosClient_js_1.client.get(`/api/v1/avatar/getavatar/${elementId}/${type}/${width}/${height}${title?.length > 0 ? `/${encodeURIComponent(title)}` : ""}`, {
18
18
  headers: {
19
19
  authorization: token,
20
20
  },
@@ -1 +1 @@
1
- {"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../../src/lib/avatar.ts"],"names":[],"mappings":";;;AACA,qDAA0C;AAE1C;;;;;;;;;GASG;AACI,MAAM,SAAS,GAAG,CACvB,SAAiB,EACjB,IAAY,EACZ,KAAa,EACb,MAAc,EACd,KAAa,EACb,QAAgB,EAAE,EACH,EAAE;IACjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,mBAAmB,GAAG,uBAAM,CAAC,GAAG,CACpC,4BAA4B,SAAS,IAAI,IAAI,IAAI,KAAK,IAAI,MAAM,GAAG,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EACzG;YACE,OAAO,EAAE;gBACP,aAAa,EAAE,KAAK;aACrB;YACD,YAAY,EAAE,MAAM;SACrB,CACF,CAAC;QACF,mBAAmB;aAChB,IAAI,CAAC,CAAC,QAAuB,EAAE,EAAE;YAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AA1BW,QAAA,SAAS,aA0BpB"}
1
+ {"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../../src/lib/avatar.ts"],"names":[],"mappings":";;;AACA,qDAA0C;AAE1C;;;;;;;;;GASG;AACI,MAAM,SAAS,GAAG,CACvB,SAAiB,EACjB,IAAY,EACZ,KAAa,EACb,MAAc,EACd,KAAa,EACb,QAAgB,EAAE,EACH,EAAE;IACjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,mBAAmB,GAAG,uBAAM,CAAC,GAAG,CACpC,4BAA4B,SAAS,IAAI,IAAI,IAAI,KAAK,IAAI,MAAM,GAAG,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAC7H;YACE,OAAO,EAAE;gBACP,aAAa,EAAE,KAAK;aACrB;YACD,YAAY,EAAE,MAAM;SACrB,CACF,CAAC;QACF,mBAAmB;aAChB,IAAI,CAAC,CAAC,QAAuB,EAAE,EAAE;YAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AA1BW,QAAA,SAAS,aA0BpB"}
@@ -0,0 +1,134 @@
1
+ /** Create / update payload for a programme's draft. */
2
+ export interface ChannelProgrammeInput {
3
+ name?: string;
4
+ description?: string | null;
5
+ /** What the programme exists to serve, shown to an invitee before accepting. */
6
+ objectives?: string[];
7
+ tiers?: ChannelProgrammeTier[];
8
+ terms?: ChannelProgrammeTerms;
9
+ /** This programme's slice of the vendor's PARTNER_SEATS pool. */
10
+ seatPool?: number;
11
+ /** How long an invitation to this programme stays open, in days. */
12
+ invitationValidityDays?: number;
13
+ }
14
+ /**
15
+ * A tier gates seat allocation and certification requirements — and nothing
16
+ * else. It deliberately does NOT scope content: the programme grants content and
17
+ * every partner in it sees all of it.
18
+ */
19
+ export interface ChannelProgrammeTier {
20
+ /** Stable machine key, referenced by a partnership's `tier`. */
21
+ key: string;
22
+ name: string;
23
+ description?: string | null;
24
+ defaultSeatAllocation?: number;
25
+ requiredCredentialIds?: string[];
26
+ }
27
+ /**
28
+ * Structured rather than prose, because the partner-facing scorecard has to read
29
+ * it.
30
+ *
31
+ * `version` is managed server-side and moves ONLY when the terms themselves
32
+ * change — adding content to a programme does not invalidate existing
33
+ * acceptances. A partnership's acceptance points at this number.
34
+ */
35
+ export interface ChannelProgrammeTerms {
36
+ version?: number;
37
+ body?: string;
38
+ completionWindowDays?: number | null;
39
+ minimumCertifiedUsers?: number | null;
40
+ }
41
+ /** Optional filters for the programme listing. */
42
+ export interface ChannelProgrammeListParams {
43
+ /** "draft" | "published" — which version to project display fields from. */
44
+ version?: string;
45
+ includeDeleted?: boolean;
46
+ }
47
+ /**
48
+ * List the calling vendor's own channel programmes.
49
+ * POST /api/v1/exceed/channelprogrammes
50
+ * @param {ChannelProgrammeListParams} params Optional version / deleted filters
51
+ * @param {String} authToken Authentication token
52
+ * @returns {Promise<object>}
53
+ */
54
+ export declare const listChannelProgrammes: (params: ChannelProgrammeListParams, authToken: string) => Promise<object>;
55
+ /**
56
+ * Create a programme, in draft. Nothing is visible to any partner until it is
57
+ * published and a partnership becomes active.
58
+ * PUT /api/v1/exceed/channelprogrammes
59
+ * @param {ChannelProgrammeInput} data Programme data (at minimum `name`)
60
+ * @param {String} authToken Authentication token
61
+ * @returns {Promise<object>}
62
+ */
63
+ export declare const createChannelProgramme: (data: ChannelProgrammeInput, authToken: string) => Promise<object>;
64
+ /**
65
+ * Read one of the calling vendor's programmes.
66
+ * GET /api/v1/exceed/channelprogrammes/programme/:id/:version
67
+ * @param {String} id Programme id
68
+ * @param {String} version "draft" | "published"
69
+ * @param {String} authToken Authentication token
70
+ * @returns {Promise<object>}
71
+ */
72
+ export declare const getChannelProgramme: (id: string, version: string, authToken: string) => Promise<object>;
73
+ /**
74
+ * Update a programme's draft.
75
+ * POST /api/v1/exceed/channelprogrammes/update
76
+ * @param {String} id Programme id
77
+ * @param {ChannelProgrammeInput} data Fields to merge into the draft
78
+ * @param {String} authToken Authentication token
79
+ * @returns {Promise<object>}
80
+ */
81
+ export declare const updateChannelProgramme: (id: string, data: ChannelProgrammeInput, authToken: string) => Promise<object>;
82
+ /**
83
+ * Publish a programme's draft. The only operation that changes what partners can
84
+ * see — content granted or revoked since the last publish takes effect here.
85
+ * POST /api/v1/exceed/channelprogrammes/publish/:id
86
+ * @param {String} id Programme id
87
+ * @param {String} authToken Authentication token
88
+ * @returns {Promise<object>}
89
+ */
90
+ export declare const publishChannelProgramme: (id: string, authToken: string) => Promise<object>;
91
+ /**
92
+ * Discard draft changes, restoring the draft from the published version.
93
+ * GET /api/v1/exceed/channelprogrammes/discard/:id
94
+ * @param {String} id Programme id
95
+ * @param {String} authToken Authentication token
96
+ * @returns {Promise<object>}
97
+ */
98
+ export declare const discardChannelProgrammeChanges: (id: string, authToken: string) => Promise<object>;
99
+ /**
100
+ * Soft-delete a programme.
101
+ *
102
+ * Does NOT cascade to partnerships: a partnership records that an organization
103
+ * accepted terms on a date, which stays true whether or not the programme still
104
+ * exists. Terminate active partnerships first if that is the intent.
105
+ * DELETE /api/v1/exceed/channelprogrammes
106
+ * @param {String} id Programme id
107
+ * @param {String} authToken Authentication token
108
+ * @returns {Promise<object>}
109
+ */
110
+ export declare const deleteChannelProgramme: (id: string, authToken: string) => Promise<object>;
111
+ /**
112
+ * Add learning content to a programme's grant.
113
+ *
114
+ * Additive and idempotent — pass what you want added, not the whole list, so two
115
+ * channel managers granting concurrently do not overwrite each other. Takes
116
+ * effect for partners only once the programme is published.
117
+ * POST /api/v1/exceed/channelprogrammes/content/grant
118
+ * @param {String} id Programme id
119
+ * @param {String[]} learningContentIds Content ids to add to the grant
120
+ * @param {String} authToken Authentication token
121
+ * @returns {Promise<object>}
122
+ */
123
+ export declare const grantLearningContent: (id: string, learningContentIds: string[], authToken: string) => Promise<object>;
124
+ /**
125
+ * Remove learning content from a programme's grant. Takes effect for partners
126
+ * only once the programme is published.
127
+ * POST /api/v1/exceed/channelprogrammes/content/revoke
128
+ * @param {String} id Programme id
129
+ * @param {String[]} learningContentIds Content ids to remove from the grant
130
+ * @param {String} authToken Authentication token
131
+ * @returns {Promise<object>}
132
+ */
133
+ export declare const revokeLearningContent: (id: string, learningContentIds: string[], authToken: string) => Promise<object>;
134
+ //# sourceMappingURL=channelProgrammes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channelProgrammes.d.ts","sourceRoot":"","sources":["../../../src/lib/channelProgrammes.ts"],"names":[],"mappings":"AAuBA,uDAAuD;AACvD,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,gEAAgE;IAChE,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;CAClC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC;AAED,kDAAkD;AAClD,MAAM,WAAW,0BAA0B;IACzC,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAChC,QAAQ,0BAA0B,EAClC,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAahB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,qBAAqB,EAC3B,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAehB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAC9B,IAAI,MAAM,EACV,SAAS,MAAM,EACf,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAchB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GACjC,IAAI,MAAM,EACV,MAAM,qBAAqB,EAC3B,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAehB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,GAClC,IAAI,MAAM,EACV,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAehB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,GACzC,IAAI,MAAM,EACV,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAchB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,GACjC,IAAI,MAAM,EACV,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAchB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,GAC/B,IAAI,MAAM,EACV,oBAAoB,MAAM,EAAE,EAC5B,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAehB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,GAChC,IAAI,MAAM,EACV,oBAAoB,MAAM,EAAE,EAC5B,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAehB,CAAC"}
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.revokeLearningContent = exports.grantLearningContent = exports.deleteChannelProgramme = exports.discardChannelProgrammeChanges = exports.publishChannelProgramme = exports.updateChannelProgramme = exports.getChannelProgramme = exports.createChannelProgramme = exports.listChannelProgrammes = void 0;
4
+ const axiosClient_js_1 = require("./axiosClient.js");
5
+ /**
6
+ * List the calling vendor's own channel programmes.
7
+ * POST /api/v1/exceed/channelprogrammes
8
+ * @param {ChannelProgrammeListParams} params Optional version / deleted filters
9
+ * @param {String} authToken Authentication token
10
+ * @returns {Promise<object>}
11
+ */
12
+ const listChannelProgrammes = (params, authToken) => {
13
+ return new Promise((resolve, reject) => {
14
+ const request = axiosClient_js_1.client.post(`/api/v1/exceed/channelprogrammes`, params, {
15
+ headers: { authorization: authToken },
16
+ });
17
+ request
18
+ .then((response) => {
19
+ resolve(response.data);
20
+ })
21
+ .catch((error) => {
22
+ reject(error);
23
+ });
24
+ });
25
+ };
26
+ exports.listChannelProgrammes = listChannelProgrammes;
27
+ /**
28
+ * Create a programme, in draft. Nothing is visible to any partner until it is
29
+ * published and a partnership becomes active.
30
+ * PUT /api/v1/exceed/channelprogrammes
31
+ * @param {ChannelProgrammeInput} data Programme data (at minimum `name`)
32
+ * @param {String} authToken Authentication token
33
+ * @returns {Promise<object>}
34
+ */
35
+ const createChannelProgramme = (data, authToken) => {
36
+ return new Promise((resolve, reject) => {
37
+ const request = axiosClient_js_1.client.put(`/api/v1/exceed/channelprogrammes`, { data }, { headers: { authorization: authToken } });
38
+ request
39
+ .then((response) => {
40
+ resolve(response.data);
41
+ })
42
+ .catch((error) => {
43
+ reject(error);
44
+ });
45
+ });
46
+ };
47
+ exports.createChannelProgramme = createChannelProgramme;
48
+ /**
49
+ * Read one of the calling vendor's programmes.
50
+ * GET /api/v1/exceed/channelprogrammes/programme/:id/:version
51
+ * @param {String} id Programme id
52
+ * @param {String} version "draft" | "published"
53
+ * @param {String} authToken Authentication token
54
+ * @returns {Promise<object>}
55
+ */
56
+ const getChannelProgramme = (id, version, authToken) => {
57
+ return new Promise((resolve, reject) => {
58
+ const request = axiosClient_js_1.client.get(`/api/v1/exceed/channelprogrammes/programme/${id}/${version}`, { headers: { authorization: authToken } });
59
+ request
60
+ .then((response) => {
61
+ resolve(response.data);
62
+ })
63
+ .catch((error) => {
64
+ reject(error);
65
+ });
66
+ });
67
+ };
68
+ exports.getChannelProgramme = getChannelProgramme;
69
+ /**
70
+ * Update a programme's draft.
71
+ * POST /api/v1/exceed/channelprogrammes/update
72
+ * @param {String} id Programme id
73
+ * @param {ChannelProgrammeInput} data Fields to merge into the draft
74
+ * @param {String} authToken Authentication token
75
+ * @returns {Promise<object>}
76
+ */
77
+ const updateChannelProgramme = (id, data, authToken) => {
78
+ return new Promise((resolve, reject) => {
79
+ const request = axiosClient_js_1.client.post(`/api/v1/exceed/channelprogrammes/update`, { id, data }, { headers: { authorization: authToken } });
80
+ request
81
+ .then((response) => {
82
+ resolve(response.data);
83
+ })
84
+ .catch((error) => {
85
+ reject(error);
86
+ });
87
+ });
88
+ };
89
+ exports.updateChannelProgramme = updateChannelProgramme;
90
+ /**
91
+ * Publish a programme's draft. The only operation that changes what partners can
92
+ * see — content granted or revoked since the last publish takes effect here.
93
+ * POST /api/v1/exceed/channelprogrammes/publish/:id
94
+ * @param {String} id Programme id
95
+ * @param {String} authToken Authentication token
96
+ * @returns {Promise<object>}
97
+ */
98
+ const publishChannelProgramme = (id, authToken) => {
99
+ return new Promise((resolve, reject) => {
100
+ const request = axiosClient_js_1.client.post(`/api/v1/exceed/channelprogrammes/publish/${id}`, {}, { headers: { authorization: authToken } });
101
+ request
102
+ .then((response) => {
103
+ resolve(response.data);
104
+ })
105
+ .catch((error) => {
106
+ reject(error);
107
+ });
108
+ });
109
+ };
110
+ exports.publishChannelProgramme = publishChannelProgramme;
111
+ /**
112
+ * Discard draft changes, restoring the draft from the published version.
113
+ * GET /api/v1/exceed/channelprogrammes/discard/:id
114
+ * @param {String} id Programme id
115
+ * @param {String} authToken Authentication token
116
+ * @returns {Promise<object>}
117
+ */
118
+ const discardChannelProgrammeChanges = (id, authToken) => {
119
+ return new Promise((resolve, reject) => {
120
+ const request = axiosClient_js_1.client.get(`/api/v1/exceed/channelprogrammes/discard/${id}`, { headers: { authorization: authToken } });
121
+ request
122
+ .then((response) => {
123
+ resolve(response.data);
124
+ })
125
+ .catch((error) => {
126
+ reject(error);
127
+ });
128
+ });
129
+ };
130
+ exports.discardChannelProgrammeChanges = discardChannelProgrammeChanges;
131
+ /**
132
+ * Soft-delete a programme.
133
+ *
134
+ * Does NOT cascade to partnerships: a partnership records that an organization
135
+ * accepted terms on a date, which stays true whether or not the programme still
136
+ * exists. Terminate active partnerships first if that is the intent.
137
+ * DELETE /api/v1/exceed/channelprogrammes
138
+ * @param {String} id Programme id
139
+ * @param {String} authToken Authentication token
140
+ * @returns {Promise<object>}
141
+ */
142
+ const deleteChannelProgramme = (id, authToken) => {
143
+ return new Promise((resolve, reject) => {
144
+ const request = axiosClient_js_1.client.delete(`/api/v1/exceed/channelprogrammes`, {
145
+ headers: { authorization: authToken },
146
+ data: { id },
147
+ });
148
+ request
149
+ .then((response) => {
150
+ resolve(response.data);
151
+ })
152
+ .catch((error) => {
153
+ reject(error);
154
+ });
155
+ });
156
+ };
157
+ exports.deleteChannelProgramme = deleteChannelProgramme;
158
+ /**
159
+ * Add learning content to a programme's grant.
160
+ *
161
+ * Additive and idempotent — pass what you want added, not the whole list, so two
162
+ * channel managers granting concurrently do not overwrite each other. Takes
163
+ * effect for partners only once the programme is published.
164
+ * POST /api/v1/exceed/channelprogrammes/content/grant
165
+ * @param {String} id Programme id
166
+ * @param {String[]} learningContentIds Content ids to add to the grant
167
+ * @param {String} authToken Authentication token
168
+ * @returns {Promise<object>}
169
+ */
170
+ const grantLearningContent = (id, learningContentIds, authToken) => {
171
+ return new Promise((resolve, reject) => {
172
+ const request = axiosClient_js_1.client.post(`/api/v1/exceed/channelprogrammes/content/grant`, { id, learningContentIds }, { headers: { authorization: authToken } });
173
+ request
174
+ .then((response) => {
175
+ resolve(response.data);
176
+ })
177
+ .catch((error) => {
178
+ reject(error);
179
+ });
180
+ });
181
+ };
182
+ exports.grantLearningContent = grantLearningContent;
183
+ /**
184
+ * Remove learning content from a programme's grant. Takes effect for partners
185
+ * only once the programme is published.
186
+ * POST /api/v1/exceed/channelprogrammes/content/revoke
187
+ * @param {String} id Programme id
188
+ * @param {String[]} learningContentIds Content ids to remove from the grant
189
+ * @param {String} authToken Authentication token
190
+ * @returns {Promise<object>}
191
+ */
192
+ const revokeLearningContent = (id, learningContentIds, authToken) => {
193
+ return new Promise((resolve, reject) => {
194
+ const request = axiosClient_js_1.client.post(`/api/v1/exceed/channelprogrammes/content/revoke`, { id, learningContentIds }, { headers: { authorization: authToken } });
195
+ request
196
+ .then((response) => {
197
+ resolve(response.data);
198
+ })
199
+ .catch((error) => {
200
+ reject(error);
201
+ });
202
+ });
203
+ };
204
+ exports.revokeLearningContent = revokeLearningContent;
205
+ //# sourceMappingURL=channelProgrammes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channelProgrammes.js","sourceRoot":"","sources":["../../../src/lib/channelProgrammes.ts"],"names":[],"mappings":"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"}
@@ -78,6 +78,31 @@ export declare const updateIncidentSettings: (settings: object, token: string) =
78
78
  * @returns {Promise<object>} `{ incidentId, humanId, deduplicated }`
79
79
  */
80
80
  export declare const createIncident: (event: object, token: string) => Promise<object>;
81
+ /**
82
+ * File an incident as an integration's webhook handler.
83
+ *
84
+ * For agent code, not the browser. A provider's webhook lands on the platform's
85
+ * `/webhooks/...` receiver, the connector's handler maps that payload onto the
86
+ * normalized event contract, and this is where it puts the result.
87
+ *
88
+ * Authenticated by the API token the delivery itself was authenticated with —
89
+ * `request.authToken` inside a handler — which already carries the System -
90
+ * Dispatch Events permission. There is no separate intake credential to
91
+ * provision or rotate for this path.
92
+ *
93
+ * `integrationId` is required and should come from `params.data.integration._id`.
94
+ * It attributes the incident to the connector that filed it; it is self-asserted
95
+ * (the token names a user, never an integration) and is checked against the
96
+ * tenant's enabled integrations, so treat it as a correlation label rather than
97
+ * as proof of origin.
98
+ *
99
+ * Resolves on `202` — durably stored, with triage enrichment and remediation
100
+ * dispatch still to run.
101
+ * @param {Object} event `{ integrationId, source, title, occurred_at, ... }`
102
+ * @param {String} token Authorization token; a handler's `request.authToken`
103
+ * @returns {Promise<object>} `{ incidentId, humanId, deduplicated }`
104
+ */
105
+ export declare const ingestIncident: (event: object, token: string) => Promise<object>;
81
106
  /**
82
107
  * Edit whitelisted fields. Status and severity are deliberately not among them:
83
108
  * they move through `transitionIncident` and `changeIncidentSeverity`, so neither
@@ -1 +1 @@
1
- {"version":3,"file":"incident.d.ts","sourceRoot":"","sources":["../../../src/lib/incident.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"incident.d.ts","sourceRoot":"","sources":["../../../src/lib/incident.ts"],"names":[],"mappings":"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"}