@stackfactor/client-api 1.2.4 → 1.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/lib/actionNotifications.d.ts +42 -0
- package/dist/cjs/lib/actionNotifications.d.ts.map +1 -1
- package/dist/cjs/lib/actionNotifications.js +107 -1
- package/dist/cjs/lib/actionNotifications.js.map +1 -1
- package/dist/cjs/lib/avatar.js +1 -1
- package/dist/cjs/lib/avatar.js.map +1 -1
- package/dist/cjs/lib/incident.d.ts +25 -0
- package/dist/cjs/lib/incident.d.ts.map +1 -1
- package/dist/cjs/lib/incident.js +29 -1
- package/dist/cjs/lib/incident.js.map +1 -1
- package/dist/cjs/lib/integration.d.ts.map +1 -1
- package/dist/cjs/lib/integration.js +17 -2
- package/dist/cjs/lib/integration.js.map +1 -1
- package/dist/cjs/lib/utils.d.ts.map +1 -1
- package/dist/cjs/lib/utils.js +11 -0
- package/dist/cjs/lib/utils.js.map +1 -1
- package/dist/cjs/package.json +1 -1
- package/dist/esm/lib/actionNotifications.d.ts +42 -0
- package/dist/esm/lib/actionNotifications.d.ts.map +1 -1
- package/dist/esm/lib/actionNotifications.js +104 -0
- package/dist/esm/lib/actionNotifications.js.map +1 -1
- package/dist/esm/lib/avatar.js +1 -1
- package/dist/esm/lib/avatar.js.map +1 -1
- package/dist/esm/lib/incident.d.ts +25 -0
- package/dist/esm/lib/incident.d.ts.map +1 -1
- package/dist/esm/lib/incident.js +27 -0
- package/dist/esm/lib/incident.js.map +1 -1
- package/dist/esm/lib/integration.d.ts.map +1 -1
- package/dist/esm/lib/integration.js +17 -2
- package/dist/esm/lib/integration.js.map +1 -1
- package/dist/esm/lib/utils.d.ts.map +1 -1
- package/dist/esm/lib/utils.js +11 -0
- package/dist/esm/lib/utils.js.map +1 -1
- package/dist/esm/package.json +1 -1
- 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;
|
|
1
|
+
{"version":3,"file":"actionNotifications.js","sourceRoot":"","sources":["../../../src/lib/actionNotifications.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/lib/avatar.js
CHANGED
|
@@ -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,
|
|
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"}
|
|
@@ -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":"
|
|
1
|
+
{"version":3,"file":"incident.d.ts","sourceRoot":"","sources":["../../../src/lib/incident.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/lib/incident.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.revokeIntakeKey = exports.createIntakeKey = exports.getIntakeKeys = exports.deleteIncident = exports.exportIncidents = exports.decideIncidentSuggestion = exports.waiveIncidentTraining = exports.retractIncidentTraining = exports.assignIncidentTraining = exports.updateIncidentTask = exports.addIncidentTask = exports.addIncidentEvidence = exports.changeIncidentSeverity = exports.transitionIncident = exports.updateIncident = exports.createIncident = exports.updateIncidentSettings = exports.getIncidentSettings = exports.getMyIncidentWork = exports.getIncidentDashboard = exports.getIncident = exports.getIncidents = void 0;
|
|
3
|
+
exports.revokeIntakeKey = exports.createIntakeKey = exports.getIntakeKeys = exports.deleteIncident = exports.exportIncidents = exports.decideIncidentSuggestion = exports.waiveIncidentTraining = exports.retractIncidentTraining = exports.assignIncidentTraining = exports.updateIncidentTask = exports.addIncidentTask = exports.addIncidentEvidence = exports.changeIncidentSeverity = exports.transitionIncident = exports.updateIncident = exports.ingestIncident = exports.createIncident = exports.updateIncidentSettings = exports.getIncidentSettings = exports.getMyIncidentWork = exports.getIncidentDashboard = exports.getIncident = exports.getIncidents = void 0;
|
|
4
4
|
const axiosClient_js_1 = require("./axiosClient.js");
|
|
5
5
|
const toQueryString = (params = {}) => {
|
|
6
6
|
const search = new URLSearchParams();
|
|
@@ -97,6 +97,34 @@ const createIncident = (event, token) => request(axiosClient_js_1.client.put("/a
|
|
|
97
97
|
headers: { authorization: token },
|
|
98
98
|
}));
|
|
99
99
|
exports.createIncident = createIncident;
|
|
100
|
+
/**
|
|
101
|
+
* File an incident as an integration's webhook handler.
|
|
102
|
+
*
|
|
103
|
+
* For agent code, not the browser. A provider's webhook lands on the platform's
|
|
104
|
+
* `/webhooks/...` receiver, the connector's handler maps that payload onto the
|
|
105
|
+
* normalized event contract, and this is where it puts the result.
|
|
106
|
+
*
|
|
107
|
+
* Authenticated by the API token the delivery itself was authenticated with —
|
|
108
|
+
* `request.authToken` inside a handler — which already carries the System -
|
|
109
|
+
* Dispatch Events permission. There is no separate intake credential to
|
|
110
|
+
* provision or rotate for this path.
|
|
111
|
+
*
|
|
112
|
+
* `integrationId` is required and should come from `params.data.integration._id`.
|
|
113
|
+
* It attributes the incident to the connector that filed it; it is self-asserted
|
|
114
|
+
* (the token names a user, never an integration) and is checked against the
|
|
115
|
+
* tenant's enabled integrations, so treat it as a correlation label rather than
|
|
116
|
+
* as proof of origin.
|
|
117
|
+
*
|
|
118
|
+
* Resolves on `202` — durably stored, with triage enrichment and remediation
|
|
119
|
+
* dispatch still to run.
|
|
120
|
+
* @param {Object} event `{ integrationId, source, title, occurred_at, ... }`
|
|
121
|
+
* @param {String} token Authorization token; a handler's `request.authToken`
|
|
122
|
+
* @returns {Promise<object>} `{ incidentId, humanId, deduplicated }`
|
|
123
|
+
*/
|
|
124
|
+
const ingestIncident = (event, token) => request(axiosClient_js_1.client.post("/api/v1/shield/incidents/ingest", event, {
|
|
125
|
+
headers: { authorization: token },
|
|
126
|
+
}));
|
|
127
|
+
exports.ingestIncident = ingestIncident;
|
|
100
128
|
/**
|
|
101
129
|
* Edit whitelisted fields. Status and severity are deliberately not among them:
|
|
102
130
|
* they move through `transitionIncident` and `changeIncidentSeverity`, so neither
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"incident.js","sourceRoot":"","sources":["../../../src/lib/incident.ts"],"names":[],"mappings":";;;AACA,qDAA0C;
|
|
1
|
+
{"version":3,"file":"incident.js","sourceRoot":"","sources":["../../../src/lib/incident.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration.d.ts","sourceRoot":"","sources":["../../../src/lib/integration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"integration.d.ts","sourceRoot":"","sources":["../../../src/lib/integration.ts"],"names":[],"mappings":"AAsBA,UAAU,0BAA0B;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,MAAM,EACZ,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAoBhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,IAAI,MAAM,EACV,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAgBhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GACpC,IAAI,MAAM,EACV,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAehB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,GACxC,IAAI,MAAM,EACV,SAAS,MAAM,EACf,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAgBhB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,MAAM,EAAE,EAChB,MAAM,MAAM,EACZ,SAAS,MAAM,EACf,8BAA8B,OAAO,EACrC,iBAAiB,OAAO,EACxB,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAwBhB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,GACrC,KAAK,MAAM,EACX,MAAM,MAAM,EACZ,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAqBhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,GAChD,KAAK,MAAM,KACV,OAAO,CAAC,0BAA0B,CAyFpC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GACrC,QAAQ,MAAM,EACd,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAgBhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,IAAI,MAAM,EACV,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAiBhB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,GACpC,IAAI,MAAM,EACV,MAAM,MAAM,EACZ,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAoBhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAChC,IAAI,MAAM,EACV,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAiBhB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,IAAI,MAAM,EACV,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAgBhB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAChC,IAAI,MAAM,EACV,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAiBhB,CAAC"}
|
|
@@ -7,7 +7,6 @@ exports.testIntegrationHealth = exports.getIntegrationHealth = exports.setDefaul
|
|
|
7
7
|
const axiosClient_js_1 = require("./axiosClient.js");
|
|
8
8
|
const axios_1 = __importDefault(require("axios"));
|
|
9
9
|
const node_html_parser_1 = __importDefault(require("node-html-parser"));
|
|
10
|
-
const html2plaintext_1 = __importDefault(require("html2plaintext"));
|
|
11
10
|
/**
|
|
12
11
|
* Create integration and set information
|
|
13
12
|
* @param {Object} data The new integration information
|
|
@@ -183,8 +182,24 @@ const getContentInformationByUrlFromBrowser = (url) => {
|
|
|
183
182
|
const words = text.trim().split(/\s+/).length;
|
|
184
183
|
return Math.ceil(words / wpm);
|
|
185
184
|
};
|
|
185
|
+
//Read the visible text off the document we have already parsed, rather
|
|
186
|
+
//than parsing the same HTML a second time. This used to call
|
|
187
|
+
//html2plaintext, which is a cheerio wrapper — and cheerio dragged
|
|
188
|
+
//parse5, he, domutils, css-select and entities into every bundle that
|
|
189
|
+
//imports this package, ~1.1 MB in the frontend's entry chunk, to
|
|
190
|
+
//produce a word count.
|
|
191
|
+
//
|
|
192
|
+
//script/style/noscript are dropped first: node-html-parser's .text
|
|
193
|
+
//includes their bodies, so a page with inline JS would otherwise report
|
|
194
|
+
//a reading time inflated by its own source. Measured against
|
|
195
|
+
//html2plaintext across representative pages the word counts agree to
|
|
196
|
+
//within a few percent, which is well inside the noise of a
|
|
197
|
+
//words-per-minute estimate.
|
|
186
198
|
const document = node_html_parser_1.default.parse(response.data);
|
|
187
|
-
|
|
199
|
+
document
|
|
200
|
+
.querySelectorAll("script, style, noscript")
|
|
201
|
+
.forEach((node) => node.remove());
|
|
202
|
+
const duration = getReadingTime((document.querySelector("body") ?? document).structuredText);
|
|
188
203
|
const titleTag = document.querySelector("title");
|
|
189
204
|
const title = titleTag ? titleTag.rawText : "";
|
|
190
205
|
const description = "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration.js","sourceRoot":"","sources":["../../../src/lib/integration.ts"],"names":[],"mappings":";;;;;;AACA,qDAAyD;AACzD,kDAA6B;AAC7B,wEAA0C;
|
|
1
|
+
{"version":3,"file":"integration.js","sourceRoot":"","sources":["../../../src/lib/integration.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AA2BA;;;GAGG;AACH,eAAO,MAAM,UAAU,QAAO,MAqB7B,CAAC;AAEF;;;;GAIG;AAEH,eAAO,MAAM,oBAAoB,GAAI,QAAQ;IAC3C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,KAAG,MAWH,CAAC"}
|
package/dist/cjs/lib/utils.js
CHANGED
|
@@ -11,6 +11,17 @@ const dotenv_1 = __importDefault(require("dotenv"));
|
|
|
11
11
|
// isomorphic — it's also bundled into the frontend — so only load the .env file
|
|
12
12
|
// when running under Node. In the browser the consuming bundler injects env
|
|
13
13
|
// vars at build time, so this is a no-op there.
|
|
14
|
+
//
|
|
15
|
+
// The guard below is a RUNTIME check, and a runtime check does nothing for
|
|
16
|
+
// bundle size: a bundler still follows this import statically. dotenv requires
|
|
17
|
+
// Node's `crypto`, which webpack satisfies with crypto-browserify — elliptic,
|
|
18
|
+
// asn1.js, bn.js, diffie-hellman, public-encrypt, create-ecdh, miller-rabin and
|
|
19
|
+
// ~20 more, about 950 KB in the frontend's entry chunk, to serve a branch that
|
|
20
|
+
// never runs in a browser. So package.json also maps `"browser": {"dotenv":
|
|
21
|
+
// false}`, which resolves this import to an empty module in web builds and
|
|
22
|
+
// leaves Node consumers completely unchanged. Both are needed: the browser
|
|
23
|
+
// field keeps the code out of the bundle, the guard below keeps config() from
|
|
24
|
+
// running under a bundler that ignores the field.
|
|
14
25
|
if (typeof window === "undefined" &&
|
|
15
26
|
typeof process !== "undefined" &&
|
|
16
27
|
Boolean(process.versions?.node)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAE5B,8EAA8E;AAC9E,qEAAqE;AACrE,6EAA6E;AAC7E,gFAAgF;AAChF,4EAA4E;AAC5E,gDAAgD;AAChD,IACE,OAAO,MAAM,KAAK,WAAW;IAC7B,OAAO,OAAO,KAAK,WAAW;IAC9B,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,EAC/B,CAAC;IACD,gBAAM,CAAC,MAAM,EAAE,CAAC;AAClB,CAAC;AAED;;;GAGG;AACI,MAAM,UAAU,GAAG,GAAW,EAAE;IACrC,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAC3C,CAAC;SAAM,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,QAAQ,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;YACvC,KAAK,aAAa;gBAChB,OAAO,mBAAmB,CAAC;YAC7B,KAAK,SAAS;gBACZ,OAAO,8BAA8B,CAAC;YACxC,KAAK,SAAS;gBACZ,OAAO,8BAA8B,CAAC;YACxC,KAAK,YAAY;gBACf,OAAO,4BAA4B,CAAC;YACtC,KAAK,UAAU;gBACb,OAAO,8BAA8B,CAAC;YACxC;gBACE,OAAO,mBAAmB,CAAC;QAC/B,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AArBW,QAAA,UAAU,cAqBrB;AAEF;;;;GAIG;AACH,uDAAuD;AAChD,MAAM,oBAAoB,GAAG,CAAC,MAEpC,EAAU,EAAE;IACX,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,aAAa,GAAG,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7D,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,aAAa,EAAE,CAAC;YACtD,IAAA,4BAAoB,EAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAbW,QAAA,oBAAoB,wBAa/B"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAE5B,8EAA8E;AAC9E,qEAAqE;AACrE,6EAA6E;AAC7E,gFAAgF;AAChF,4EAA4E;AAC5E,gDAAgD;AAChD,EAAE;AACF,2EAA2E;AAC3E,+EAA+E;AAC/E,8EAA8E;AAC9E,gFAAgF;AAChF,+EAA+E;AAC/E,4EAA4E;AAC5E,2EAA2E;AAC3E,2EAA2E;AAC3E,8EAA8E;AAC9E,kDAAkD;AAClD,IACE,OAAO,MAAM,KAAK,WAAW;IAC7B,OAAO,OAAO,KAAK,WAAW;IAC9B,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,EAC/B,CAAC;IACD,gBAAM,CAAC,MAAM,EAAE,CAAC;AAClB,CAAC;AAED;;;GAGG;AACI,MAAM,UAAU,GAAG,GAAW,EAAE;IACrC,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAC3C,CAAC;SAAM,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,QAAQ,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;YACvC,KAAK,aAAa;gBAChB,OAAO,mBAAmB,CAAC;YAC7B,KAAK,SAAS;gBACZ,OAAO,8BAA8B,CAAC;YACxC,KAAK,SAAS;gBACZ,OAAO,8BAA8B,CAAC;YACxC,KAAK,YAAY;gBACf,OAAO,4BAA4B,CAAC;YACtC,KAAK,UAAU;gBACb,OAAO,8BAA8B,CAAC;YACxC;gBACE,OAAO,mBAAmB,CAAC;QAC/B,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AArBW,QAAA,UAAU,cAqBrB;AAEF;;;;GAIG;AACH,uDAAuD;AAChD,MAAM,oBAAoB,GAAG,CAAC,MAEpC,EAAU,EAAE;IACX,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,aAAa,GAAG,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7D,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,aAAa,EAAE,CAAC;YACtD,IAAA,4BAAoB,EAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAbW,QAAA,oBAAoB,wBAa/B"}
|
package/dist/cjs/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"type":"commonjs"}
|
|
1
|
+
{"type":"commonjs","browser":{"dotenv":false}}
|
|
@@ -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,4 +1,6 @@
|
|
|
1
1
|
import { client } from "./axiosClient.js";
|
|
2
|
+
import { getBaseUrl } from "./utils.js";
|
|
3
|
+
import { io } from "socket.io-client";
|
|
2
4
|
/**
|
|
3
5
|
* Get all permissions
|
|
4
6
|
* @param {String} token The authentication token
|
|
@@ -18,6 +20,28 @@ export const getAllUserNotifications = (token) => {
|
|
|
18
20
|
});
|
|
19
21
|
});
|
|
20
22
|
};
|
|
23
|
+
/**
|
|
24
|
+
* Get one notification's full per-user view — including the heavy `details`
|
|
25
|
+
* and `data` payloads the list deliberately omits. Called on demand when a
|
|
26
|
+
* notification is opened.
|
|
27
|
+
* @param {String} id The notification id
|
|
28
|
+
* @param {String} token The authentication token
|
|
29
|
+
* @returns {Promise<object>}
|
|
30
|
+
*/
|
|
31
|
+
export const getUserNotificationDetails = (id, token) => {
|
|
32
|
+
return new Promise((resolve, reject) => {
|
|
33
|
+
const request = client.get(`/api/v1/actionnotifications/${id}`, {
|
|
34
|
+
headers: { authorization: token },
|
|
35
|
+
});
|
|
36
|
+
request
|
|
37
|
+
.then((response) => {
|
|
38
|
+
resolve(response.data);
|
|
39
|
+
})
|
|
40
|
+
.catch((error) => {
|
|
41
|
+
reject(error);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
};
|
|
21
45
|
/**
|
|
22
46
|
* Mark notifications as open or viewed
|
|
23
47
|
* @param {Array<String>} ids The id of the notifications to be marked
|
|
@@ -64,4 +88,84 @@ export const processNotification = (id, action, comments, authToken) => {
|
|
|
64
88
|
});
|
|
65
89
|
});
|
|
66
90
|
};
|
|
91
|
+
/** Socket event the backend uses to push a user's full notification list. */
|
|
92
|
+
export const NOTIFICATIONS_LIST_EVENT = "notifications:list";
|
|
93
|
+
// Retry cadence for handshake rejections (socket.io does not auto-reconnect
|
|
94
|
+
// after a middleware error, so the client must re-dial itself — with a fresh
|
|
95
|
+
// token, since an expired one is the most likely cause).
|
|
96
|
+
const HANDSHAKE_RETRY_BASE_MS = 2000;
|
|
97
|
+
const HANDSHAKE_RETRY_MAX_MS = 60000;
|
|
98
|
+
/**
|
|
99
|
+
* Opens a persistent realtime subscription to the current user's action
|
|
100
|
+
* notifications. Unlike the per-operation sockets in this package, this
|
|
101
|
+
* connection reconnects automatically and stays open for the lifetime of the
|
|
102
|
+
* session.
|
|
103
|
+
*
|
|
104
|
+
* The backend sends the full current notification list (the same shape as
|
|
105
|
+
* `getAllUserNotifications`) on every connect and reconnect, and again
|
|
106
|
+
* whenever the list changes — so the consumer simply replaces its state with
|
|
107
|
+
* each `onList` payload and needs no polling and no merge logic.
|
|
108
|
+
*
|
|
109
|
+
* @param getToken Called before every (re)connect attempt so the handshake
|
|
110
|
+
* always carries a fresh token — pass an accessor that refreshes the
|
|
111
|
+
* short-lived bearer token, never a captured value.
|
|
112
|
+
* @param onList Receives the user's full notification list on every push.
|
|
113
|
+
* @param onConnectionChange Optional; observes socket connectivity so the
|
|
114
|
+
* consumer can fall back to polling while disconnected.
|
|
115
|
+
*/
|
|
116
|
+
export const subscribeToUserNotifications = ({ getToken, onList, onConnectionChange, }) => {
|
|
117
|
+
let closed = false;
|
|
118
|
+
let retryTimer = null;
|
|
119
|
+
let retryDelay = HANDSHAKE_RETRY_BASE_MS;
|
|
120
|
+
const socket = io(getBaseUrl(), {
|
|
121
|
+
// Function form: evaluated on every connection attempt, so reconnects
|
|
122
|
+
// after a token expiry pick up the refreshed token.
|
|
123
|
+
auth: (cb) => {
|
|
124
|
+
Promise.resolve(getToken()).then((token) => cb({ token }));
|
|
125
|
+
},
|
|
126
|
+
path: `/api/v1/realtime`,
|
|
127
|
+
transports: ["websocket"],
|
|
128
|
+
withCredentials: true,
|
|
129
|
+
reconnection: true,
|
|
130
|
+
reconnectionDelay: 1000,
|
|
131
|
+
reconnectionDelayMax: 30000,
|
|
132
|
+
});
|
|
133
|
+
socket.on("connect", () => {
|
|
134
|
+
retryDelay = HANDSHAKE_RETRY_BASE_MS;
|
|
135
|
+
if (onConnectionChange)
|
|
136
|
+
onConnectionChange(true);
|
|
137
|
+
});
|
|
138
|
+
socket.on("disconnect", () => {
|
|
139
|
+
if (onConnectionChange)
|
|
140
|
+
onConnectionChange(false);
|
|
141
|
+
});
|
|
142
|
+
// A handshake rejection (invalid/expired token) closes the socket without
|
|
143
|
+
// automatic reconnection — re-dial with backoff and a fresh token.
|
|
144
|
+
socket.on("connect_error", () => {
|
|
145
|
+
if (onConnectionChange)
|
|
146
|
+
onConnectionChange(false);
|
|
147
|
+
if (closed || socket.active)
|
|
148
|
+
return;
|
|
149
|
+
if (retryTimer)
|
|
150
|
+
clearTimeout(retryTimer);
|
|
151
|
+
retryTimer = setTimeout(() => {
|
|
152
|
+
retryTimer = null;
|
|
153
|
+
if (!closed)
|
|
154
|
+
socket.connect();
|
|
155
|
+
}, retryDelay);
|
|
156
|
+
retryDelay = Math.min(retryDelay * 2, HANDSHAKE_RETRY_MAX_MS);
|
|
157
|
+
});
|
|
158
|
+
socket.on(NOTIFICATIONS_LIST_EVENT, (notifications) => {
|
|
159
|
+
onList(notifications);
|
|
160
|
+
});
|
|
161
|
+
return {
|
|
162
|
+
disconnect: () => {
|
|
163
|
+
closed = true;
|
|
164
|
+
if (retryTimer)
|
|
165
|
+
clearTimeout(retryTimer);
|
|
166
|
+
socket.disconnect();
|
|
167
|
+
},
|
|
168
|
+
socket,
|
|
169
|
+
};
|
|
170
|
+
};
|
|
67
171
|
//# sourceMappingURL=actionNotifications.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actionNotifications.js","sourceRoot":"","sources":["../../../src/lib/actionNotifications.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"actionNotifications.js","sourceRoot":"","sources":["../../../src/lib/actionNotifications.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/lib/avatar.js
CHANGED
|
@@ -11,7 +11,7 @@ import { client } from "./axiosClient.js";
|
|
|
11
11
|
*/
|
|
12
12
|
export const getAvatar = (elementId, type, width, height, token, title = "") => {
|
|
13
13
|
return new Promise((resolve, reject) => {
|
|
14
|
-
const confirmationRequest = client.get(`/api/v1/avatar/getavatar/${elementId}/${type}/${width}/${height}${title?.length > 0 ? `/${title}` : ""}`, {
|
|
14
|
+
const confirmationRequest = client.get(`/api/v1/avatar/getavatar/${elementId}/${type}/${width}/${height}${title?.length > 0 ? `/${encodeURIComponent(title)}` : ""}`, {
|
|
15
15
|
headers: {
|
|
16
16
|
authorization: token,
|
|
17
17
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../../src/lib/avatar.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C;;;;;;;;;GASG;AACH,MAAM,CAAC,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,MAAM,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,
|
|
1
|
+
{"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../../src/lib/avatar.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C;;;;;;;;;GASG;AACH,MAAM,CAAC,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,MAAM,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"}
|
|
@@ -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":"
|
|
1
|
+
{"version":3,"file":"incident.d.ts","sourceRoot":"","sources":["../../../src/lib/incident.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/lib/incident.js
CHANGED
|
@@ -87,6 +87,33 @@ export const updateIncidentSettings = (settings, token) => request(client.post("
|
|
|
87
87
|
export const createIncident = (event, token) => request(client.put("/api/v1/shield/incidents", event, {
|
|
88
88
|
headers: { authorization: token },
|
|
89
89
|
}));
|
|
90
|
+
/**
|
|
91
|
+
* File an incident as an integration's webhook handler.
|
|
92
|
+
*
|
|
93
|
+
* For agent code, not the browser. A provider's webhook lands on the platform's
|
|
94
|
+
* `/webhooks/...` receiver, the connector's handler maps that payload onto the
|
|
95
|
+
* normalized event contract, and this is where it puts the result.
|
|
96
|
+
*
|
|
97
|
+
* Authenticated by the API token the delivery itself was authenticated with —
|
|
98
|
+
* `request.authToken` inside a handler — which already carries the System -
|
|
99
|
+
* Dispatch Events permission. There is no separate intake credential to
|
|
100
|
+
* provision or rotate for this path.
|
|
101
|
+
*
|
|
102
|
+
* `integrationId` is required and should come from `params.data.integration._id`.
|
|
103
|
+
* It attributes the incident to the connector that filed it; it is self-asserted
|
|
104
|
+
* (the token names a user, never an integration) and is checked against the
|
|
105
|
+
* tenant's enabled integrations, so treat it as a correlation label rather than
|
|
106
|
+
* as proof of origin.
|
|
107
|
+
*
|
|
108
|
+
* Resolves on `202` — durably stored, with triage enrichment and remediation
|
|
109
|
+
* dispatch still to run.
|
|
110
|
+
* @param {Object} event `{ integrationId, source, title, occurred_at, ... }`
|
|
111
|
+
* @param {String} token Authorization token; a handler's `request.authToken`
|
|
112
|
+
* @returns {Promise<object>} `{ incidentId, humanId, deduplicated }`
|
|
113
|
+
*/
|
|
114
|
+
export const ingestIncident = (event, token) => request(client.post("/api/v1/shield/incidents/ingest", event, {
|
|
115
|
+
headers: { authorization: token },
|
|
116
|
+
}));
|
|
90
117
|
/**
|
|
91
118
|
* Edit whitelisted fields. Status and severity are deliberately not among them:
|
|
92
119
|
* they move through `transitionIncident` and `changeIncidentSeverity`, so neither
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"incident.js","sourceRoot":"","sources":["../../../src/lib/incident.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"incident.js","sourceRoot":"","sources":["../../../src/lib/incident.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration.d.ts","sourceRoot":"","sources":["../../../src/lib/integration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"integration.d.ts","sourceRoot":"","sources":["../../../src/lib/integration.ts"],"names":[],"mappings":"AAsBA,UAAU,0BAA0B;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,MAAM,EACZ,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAoBhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,IAAI,MAAM,EACV,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAgBhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GACpC,IAAI,MAAM,EACV,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAehB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,GACxC,IAAI,MAAM,EACV,SAAS,MAAM,EACf,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAgBhB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,MAAM,EAAE,EAChB,MAAM,MAAM,EACZ,SAAS,MAAM,EACf,8BAA8B,OAAO,EACrC,iBAAiB,OAAO,EACxB,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAwBhB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,GACrC,KAAK,MAAM,EACX,MAAM,MAAM,EACZ,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAqBhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,GAChD,KAAK,MAAM,KACV,OAAO,CAAC,0BAA0B,CAyFpC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GACrC,QAAQ,MAAM,EACd,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAgBhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,IAAI,MAAM,EACV,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAiBhB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,GACpC,IAAI,MAAM,EACV,MAAM,MAAM,EACZ,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAoBhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAChC,IAAI,MAAM,EACV,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAiBhB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,IAAI,MAAM,EACV,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAgBhB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAChC,IAAI,MAAM,EACV,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAiBhB,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { client, errorToString } from "./axiosClient.js";
|
|
2
2
|
import axiosLib from "axios";
|
|
3
3
|
import htmlParser from "node-html-parser";
|
|
4
|
-
import htmlToText from "html2plaintext";
|
|
5
4
|
/**
|
|
6
5
|
* Create integration and set information
|
|
7
6
|
* @param {Object} data The new integration information
|
|
@@ -171,8 +170,24 @@ export const getContentInformationByUrlFromBrowser = (url) => {
|
|
|
171
170
|
const words = text.trim().split(/\s+/).length;
|
|
172
171
|
return Math.ceil(words / wpm);
|
|
173
172
|
};
|
|
173
|
+
//Read the visible text off the document we have already parsed, rather
|
|
174
|
+
//than parsing the same HTML a second time. This used to call
|
|
175
|
+
//html2plaintext, which is a cheerio wrapper — and cheerio dragged
|
|
176
|
+
//parse5, he, domutils, css-select and entities into every bundle that
|
|
177
|
+
//imports this package, ~1.1 MB in the frontend's entry chunk, to
|
|
178
|
+
//produce a word count.
|
|
179
|
+
//
|
|
180
|
+
//script/style/noscript are dropped first: node-html-parser's .text
|
|
181
|
+
//includes their bodies, so a page with inline JS would otherwise report
|
|
182
|
+
//a reading time inflated by its own source. Measured against
|
|
183
|
+
//html2plaintext across representative pages the word counts agree to
|
|
184
|
+
//within a few percent, which is well inside the noise of a
|
|
185
|
+
//words-per-minute estimate.
|
|
174
186
|
const document = htmlParser.parse(response.data);
|
|
175
|
-
|
|
187
|
+
document
|
|
188
|
+
.querySelectorAll("script, style, noscript")
|
|
189
|
+
.forEach((node) => node.remove());
|
|
190
|
+
const duration = getReadingTime((document.querySelector("body") ?? document).structuredText);
|
|
176
191
|
const titleTag = document.querySelector("title");
|
|
177
192
|
const title = titleTag ? titleTag.rawText : "";
|
|
178
193
|
const description = "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration.js","sourceRoot":"","sources":["../../../src/lib/integration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,QAAQ,MAAM,OAAO,CAAC;AAC7B,OAAO,UAAU,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"integration.js","sourceRoot":"","sources":["../../../src/lib/integration.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AA2BA;;;GAGG;AACH,eAAO,MAAM,UAAU,QAAO,MAqB7B,CAAC;AAEF;;;;GAIG;AAEH,eAAO,MAAM,oBAAoB,GAAI,QAAQ;IAC3C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,KAAG,MAWH,CAAC"}
|
package/dist/esm/lib/utils.js
CHANGED
|
@@ -5,6 +5,17 @@ import dotenv from "dotenv";
|
|
|
5
5
|
// isomorphic — it's also bundled into the frontend — so only load the .env file
|
|
6
6
|
// when running under Node. In the browser the consuming bundler injects env
|
|
7
7
|
// vars at build time, so this is a no-op there.
|
|
8
|
+
//
|
|
9
|
+
// The guard below is a RUNTIME check, and a runtime check does nothing for
|
|
10
|
+
// bundle size: a bundler still follows this import statically. dotenv requires
|
|
11
|
+
// Node's `crypto`, which webpack satisfies with crypto-browserify — elliptic,
|
|
12
|
+
// asn1.js, bn.js, diffie-hellman, public-encrypt, create-ecdh, miller-rabin and
|
|
13
|
+
// ~20 more, about 950 KB in the frontend's entry chunk, to serve a branch that
|
|
14
|
+
// never runs in a browser. So package.json also maps `"browser": {"dotenv":
|
|
15
|
+
// false}`, which resolves this import to an empty module in web builds and
|
|
16
|
+
// leaves Node consumers completely unchanged. Both are needed: the browser
|
|
17
|
+
// field keeps the code out of the bundle, the guard below keeps config() from
|
|
18
|
+
// running under a bundler that ignores the field.
|
|
8
19
|
if (typeof window === "undefined" &&
|
|
9
20
|
typeof process !== "undefined" &&
|
|
10
21
|
Boolean(process.versions?.node)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,8EAA8E;AAC9E,qEAAqE;AACrE,6EAA6E;AAC7E,gFAAgF;AAChF,4EAA4E;AAC5E,gDAAgD;AAChD,IACE,OAAO,MAAM,KAAK,WAAW;IAC7B,OAAO,OAAO,KAAK,WAAW;IAC9B,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,EAC/B,CAAC;IACD,MAAM,CAAC,MAAM,EAAE,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAW,EAAE;IACrC,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAC3C,CAAC;SAAM,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,QAAQ,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;YACvC,KAAK,aAAa;gBAChB,OAAO,mBAAmB,CAAC;YAC7B,KAAK,SAAS;gBACZ,OAAO,8BAA8B,CAAC;YACxC,KAAK,SAAS;gBACZ,OAAO,8BAA8B,CAAC;YACxC,KAAK,YAAY;gBACf,OAAO,4BAA4B,CAAC;YACtC,KAAK,UAAU;gBACb,OAAO,8BAA8B,CAAC;YACxC;gBACE,OAAO,mBAAmB,CAAC;QAC/B,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,uDAAuD;AACvD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAEpC,EAAU,EAAE;IACX,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,aAAa,GAAG,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7D,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,aAAa,EAAE,CAAC;YACtD,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,8EAA8E;AAC9E,qEAAqE;AACrE,6EAA6E;AAC7E,gFAAgF;AAChF,4EAA4E;AAC5E,gDAAgD;AAChD,EAAE;AACF,2EAA2E;AAC3E,+EAA+E;AAC/E,8EAA8E;AAC9E,gFAAgF;AAChF,+EAA+E;AAC/E,4EAA4E;AAC5E,2EAA2E;AAC3E,2EAA2E;AAC3E,8EAA8E;AAC9E,kDAAkD;AAClD,IACE,OAAO,MAAM,KAAK,WAAW;IAC7B,OAAO,OAAO,KAAK,WAAW;IAC9B,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,EAC/B,CAAC;IACD,MAAM,CAAC,MAAM,EAAE,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAW,EAAE;IACrC,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAC3C,CAAC;SAAM,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,QAAQ,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;YACvC,KAAK,aAAa;gBAChB,OAAO,mBAAmB,CAAC;YAC7B,KAAK,SAAS;gBACZ,OAAO,8BAA8B,CAAC;YACxC,KAAK,SAAS;gBACZ,OAAO,8BAA8B,CAAC;YACxC,KAAK,YAAY;gBACf,OAAO,4BAA4B,CAAC;YACtC,KAAK,UAAU;gBACb,OAAO,8BAA8B,CAAC;YACxC;gBACE,OAAO,mBAAmB,CAAC;QAC/B,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,uDAAuD;AACvD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAEpC,EAAU,EAAE;IACX,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,aAAa,GAAG,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7D,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,aAAa,EAAE,CAAC;YACtD,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
package/dist/esm/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"type":"module"}
|
|
1
|
+
{"type":"module","browser":{"dotenv":false}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stackfactor/client-api",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.6",
|
|
4
4
|
"description": "Node.js library for the StackFactor API",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -24,11 +24,12 @@
|
|
|
24
24
|
],
|
|
25
25
|
"scripts": {
|
|
26
26
|
"build": "npm run build:esm && npm run build:cjs",
|
|
27
|
-
"build:esm": "tsc --project tsconfig.esm.json && node -
|
|
28
|
-
"build:cjs": "tsc --project tsconfig.cjs.json && node -
|
|
27
|
+
"build:esm": "tsc --project tsconfig.esm.json && node scripts/write-dist-manifest.mjs module dist/esm",
|
|
28
|
+
"build:cjs": "tsc --project tsconfig.cjs.json && node scripts/write-dist-manifest.mjs commonjs dist/cjs",
|
|
29
29
|
"build:watch": "tsc --watch",
|
|
30
30
|
"prepublishOnly": "npm run build",
|
|
31
31
|
"test": "jest",
|
|
32
|
+
"test:coverage": "jest --coverage",
|
|
32
33
|
"lint": "eslint 'src/**/*.{ts,tsx}'",
|
|
33
34
|
"ar-auth": "npm config set @stackfactor:registry https://us-central1-npm.pkg.dev/virtual-development-team/sf-devenv-npm-private/; TOKEN=$(gcloud auth print-access-token 2>/dev/null || curl -sfH 'Metadata-Flavor: Google' http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/token | sed -n 's/.*\"access_token\":\"\\([^\"]*\\)\".*/\\1/p'); test -n \"$TOKEN\" || { echo 'ar-auth: no credential — run: gcloud auth login' >&2; exit 1; }; npm config set //us-central1-npm.pkg.dev/virtual-development-team/sf-devenv-npm-private/:_authToken \"$TOKEN\"; npm config set //us-central1-npm.pkg.dev/virtual-development-team/:_authToken \"$TOKEN\"; echo 'ar-auth: Artifact Registry scope + token configured'",
|
|
34
35
|
"reinstall": "npm run ar-auth && npm ci",
|
|
@@ -50,19 +51,25 @@
|
|
|
50
51
|
"dependencies": {
|
|
51
52
|
"axios": "^1.18.1",
|
|
52
53
|
"dotenv": "^17.4.2",
|
|
53
|
-
"html2plaintext": "^2.1.4",
|
|
54
54
|
"https": "latest",
|
|
55
55
|
"node-html-parser": "^9.0.0",
|
|
56
56
|
"socket.io-client": "^4.8.3"
|
|
57
57
|
},
|
|
58
|
+
"browser": {
|
|
59
|
+
"dotenv": false
|
|
60
|
+
},
|
|
58
61
|
"devDependencies": {
|
|
59
62
|
"@eslint/js": "^10.0.1",
|
|
60
63
|
"@types/axios": "^0.14.4",
|
|
64
|
+
"@types/jest": "^30.0.0",
|
|
61
65
|
"@types/node": "^26.1.0",
|
|
62
66
|
"@typescript-eslint/eslint-plugin": "^8.63.0",
|
|
63
67
|
"@typescript-eslint/parser": "^8.63.0",
|
|
64
68
|
"eslint": "^10.6.0",
|
|
69
|
+
"eslint-plugin-sonarjs": "^4.2.0",
|
|
65
70
|
"globals": "^17.9.0",
|
|
71
|
+
"jest": "^30.0.0",
|
|
72
|
+
"ts-jest": "^29.2.5",
|
|
66
73
|
"typescript": "^6.0.3"
|
|
67
74
|
}
|
|
68
75
|
}
|