@lhremote/core 0.2.1 → 0.3.0
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/data/action-types.d.ts.map +1 -1
- package/dist/data/action-types.js +3 -1
- package/dist/data/action-types.js.map +1 -1
- package/dist/db/repositories/campaign.js +2 -2
- package/dist/db/repositories/campaign.js.map +1 -1
- package/dist/db/repositories/campaign.test.js +4 -4
- package/dist/db/repositories/campaign.test.js.map +1 -1
- package/dist/db/repositories/profile.d.ts +1 -0
- package/dist/db/repositories/profile.d.ts.map +1 -1
- package/dist/db/repositories/profile.integration.test.js +46 -0
- package/dist/db/repositories/profile.integration.test.js.map +1 -1
- package/dist/db/repositories/profile.js +21 -2
- package/dist/db/repositories/profile.js.map +1 -1
- package/dist/db/repositories/profile.test.js +39 -0
- package/dist/db/repositories/profile.test.js.map +1 -1
- package/dist/db/testing/create-fixture.js +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/operations/campaign-add-action.test.js +7 -7
- package/dist/operations/campaign-add-action.test.js.map +1 -1
- package/dist/operations/campaign-create.test.js +1 -1
- package/dist/operations/campaign-create.test.js.map +1 -1
- package/dist/operations/campaign-export.test.js +1 -1
- package/dist/operations/campaign-export.test.js.map +1 -1
- package/dist/operations/campaign-get.test.js +3 -3
- package/dist/operations/campaign-get.test.js.map +1 -1
- package/dist/operations/get-errors.d.ts +21 -0
- package/dist/operations/get-errors.d.ts.map +1 -0
- package/dist/operations/get-errors.js +30 -0
- package/dist/operations/get-errors.js.map +1 -0
- package/dist/operations/get-errors.test.d.ts +2 -0
- package/dist/operations/get-errors.test.d.ts.map +1 -0
- package/dist/operations/get-errors.test.js +135 -0
- package/dist/operations/get-errors.test.js.map +1 -0
- package/dist/operations/import-people-from-urls.d.ts +3 -0
- package/dist/operations/import-people-from-urls.d.ts.map +1 -1
- package/dist/operations/import-people-from-urls.js +22 -6
- package/dist/operations/import-people-from-urls.js.map +1 -1
- package/dist/operations/import-people-from-urls.test.js +82 -2
- package/dist/operations/import-people-from-urls.test.js.map +1 -1
- package/dist/operations/index.d.ts +2 -1
- package/dist/operations/index.d.ts.map +1 -1
- package/dist/operations/index.js +3 -1
- package/dist/operations/index.js.map +1 -1
- package/dist/services/errors.d.ts +12 -0
- package/dist/services/errors.d.ts.map +1 -1
- package/dist/services/errors.js +27 -0
- package/dist/services/errors.js.map +1 -1
- package/dist/services/index.d.ts +2 -2
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +1 -1
- package/dist/services/index.js.map +1 -1
- package/dist/services/instance-context.d.ts +9 -0
- package/dist/services/instance-context.d.ts.map +1 -1
- package/dist/services/instance-context.js +27 -1
- package/dist/services/instance-context.js.map +1 -1
- package/dist/services/instance-context.test.js +22 -0
- package/dist/services/instance-context.test.js.map +1 -1
- package/dist/services/instance.d.ts +25 -17
- package/dist/services/instance.d.ts.map +1 -1
- package/dist/services/instance.js +48 -38
- package/dist/services/instance.js.map +1 -1
- package/dist/services/instance.test.js +33 -89
- package/dist/services/instance.test.js.map +1 -1
- package/dist/services/launcher.d.ts +24 -1
- package/dist/services/launcher.d.ts.map +1 -1
- package/dist/services/launcher.js +61 -0
- package/dist/services/launcher.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/profile.d.ts +3 -1
- package/dist/types/profile.d.ts.map +1 -1
- package/dist/types/ui-health.d.ts +60 -0
- package/dist/types/ui-health.d.ts.map +1 -0
- package/dist/types/ui-health.js +4 -0
- package/dist/types/ui-health.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
2
2
|
// Copyright (C) 2026 Oleksii PELYKH
|
|
3
|
-
import { CDPClient, discoverTargets } from "../cdp/index.js";
|
|
3
|
+
import { CDPClient, CDPTimeoutError, discoverTargets } from "../cdp/index.js";
|
|
4
4
|
import { delay } from "../utils/delay.js";
|
|
5
5
|
import { errorMessage } from "../utils/error-message.js";
|
|
6
|
-
import { ActionExecutionError, InstanceNotRunningError,
|
|
6
|
+
import { ActionExecutionError, InstanceNotRunningError, ServiceError, UIBlockedError } from "./errors.js";
|
|
7
7
|
/** Maximum time to wait for both CDP targets to appear (ms). */
|
|
8
8
|
const CONNECT_TIMEOUT = 30_000;
|
|
9
9
|
/** Interval between target discovery polls (ms). */
|
|
@@ -16,7 +16,7 @@ const CONNECT_POLL_INTERVAL = 1_000;
|
|
|
16
16
|
* - **Instance UI**: The Electron page hosting the LinkedHelper UI
|
|
17
17
|
*
|
|
18
18
|
* This service connects to both targets and provides methods for
|
|
19
|
-
*
|
|
19
|
+
* data extraction and action execution.
|
|
20
20
|
*/
|
|
21
21
|
export class InstanceService {
|
|
22
22
|
port;
|
|
@@ -25,12 +25,24 @@ export class InstanceService {
|
|
|
25
25
|
allowRemote;
|
|
26
26
|
linkedInClient = null;
|
|
27
27
|
uiClient = null;
|
|
28
|
+
healthChecker = null;
|
|
28
29
|
constructor(port, options) {
|
|
29
30
|
this.port = port;
|
|
30
31
|
this.host = options?.host ?? "127.0.0.1";
|
|
31
32
|
this.timeout = options?.timeout;
|
|
32
33
|
this.allowRemote = options?.allowRemote ?? false;
|
|
33
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Set a post-evaluation health check callback.
|
|
37
|
+
*
|
|
38
|
+
* When set, every {@link evaluateUI} and {@link executeAction} call
|
|
39
|
+
* will invoke the checker after the CDP evaluation completes.
|
|
40
|
+
* On {@link CDPTimeoutError}, the checker is also invoked to diagnose
|
|
41
|
+
* the cause of the timeout.
|
|
42
|
+
*/
|
|
43
|
+
setHealthChecker(checker) {
|
|
44
|
+
this.healthChecker = checker;
|
|
45
|
+
}
|
|
34
46
|
/**
|
|
35
47
|
* Connect to both instance CDP targets (LinkedIn page and UI).
|
|
36
48
|
*
|
|
@@ -80,20 +92,6 @@ export class InstanceService {
|
|
|
80
92
|
this.uiClient?.disconnect();
|
|
81
93
|
this.uiClient = null;
|
|
82
94
|
}
|
|
83
|
-
/**
|
|
84
|
-
* Navigate the LinkedIn webview to a profile URL.
|
|
85
|
-
*
|
|
86
|
-
* Enables the Page domain, navigates, and waits for the load event.
|
|
87
|
-
*
|
|
88
|
-
* @throws {InvalidProfileUrlError} if the URL is not a valid LinkedIn profile path.
|
|
89
|
-
*/
|
|
90
|
-
async navigateToProfile(url) {
|
|
91
|
-
assertLinkedInProfileUrl(url);
|
|
92
|
-
const client = this.ensureLinkedInClient();
|
|
93
|
-
await client.send("Page.enable");
|
|
94
|
-
await client.navigate(url);
|
|
95
|
-
await client.waitForEvent("Page.loadEventFired");
|
|
96
|
-
}
|
|
97
95
|
/**
|
|
98
96
|
* Execute a LinkedHelper action via the instance UI.
|
|
99
97
|
*
|
|
@@ -115,20 +113,15 @@ export class InstanceService {
|
|
|
115
113
|
})()`, true);
|
|
116
114
|
}
|
|
117
115
|
catch (error) {
|
|
116
|
+
if (error instanceof CDPTimeoutError) {
|
|
117
|
+
await this.runHealthCheck();
|
|
118
|
+
}
|
|
118
119
|
const message = errorMessage(error);
|
|
119
120
|
throw new ActionExecutionError(actionName, `Action '${actionName}' failed: ${message}`, { cause: error });
|
|
120
121
|
}
|
|
122
|
+
await this.runHealthCheck();
|
|
121
123
|
return { success: true, actionType: actionName };
|
|
122
124
|
}
|
|
123
|
-
/**
|
|
124
|
-
* Trigger the SaveCurrentProfile action via the instance UI.
|
|
125
|
-
*
|
|
126
|
-
* This tells LinkedHelper to extract data from the currently
|
|
127
|
-
* displayed LinkedIn profile and save it to the database.
|
|
128
|
-
*/
|
|
129
|
-
async triggerExtraction() {
|
|
130
|
-
await this.executeAction("SaveCurrentProfile");
|
|
131
|
-
}
|
|
132
125
|
/**
|
|
133
126
|
* Evaluate a JavaScript expression in the LinkedHelper UI context.
|
|
134
127
|
*
|
|
@@ -141,7 +134,17 @@ export class InstanceService {
|
|
|
141
134
|
*/
|
|
142
135
|
async evaluateUI(expression, awaitPromise = true) {
|
|
143
136
|
const client = this.ensureUiClient();
|
|
144
|
-
|
|
137
|
+
try {
|
|
138
|
+
const result = await client.evaluate(expression, awaitPromise);
|
|
139
|
+
await this.runHealthCheck();
|
|
140
|
+
return result;
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
if (error instanceof CDPTimeoutError) {
|
|
144
|
+
await this.runHealthCheck();
|
|
145
|
+
}
|
|
146
|
+
throw error;
|
|
147
|
+
}
|
|
145
148
|
}
|
|
146
149
|
/** Whether both clients are currently connected. */
|
|
147
150
|
get isConnected() {
|
|
@@ -150,23 +153,30 @@ export class InstanceService {
|
|
|
150
153
|
this.uiClient !== null &&
|
|
151
154
|
this.uiClient.isConnected);
|
|
152
155
|
}
|
|
153
|
-
ensureLinkedInClient() {
|
|
154
|
-
if (!this.linkedInClient) {
|
|
155
|
-
throw new ServiceError("InstanceService is not connected (LinkedIn target)");
|
|
156
|
-
}
|
|
157
|
-
return this.linkedInClient;
|
|
158
|
-
}
|
|
159
156
|
ensureUiClient() {
|
|
160
157
|
if (!this.uiClient) {
|
|
161
158
|
throw new ServiceError("InstanceService is not connected (UI target)");
|
|
162
159
|
}
|
|
163
160
|
return this.uiClient;
|
|
164
161
|
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
162
|
+
/**
|
|
163
|
+
* Run the health checker if one is configured.
|
|
164
|
+
*
|
|
165
|
+
* Non-UIBlockedError failures (e.g. launcher connection lost) are
|
|
166
|
+
* silently ignored so that health check infrastructure issues do
|
|
167
|
+
* not mask the original operation result.
|
|
168
|
+
*/
|
|
169
|
+
async runHealthCheck() {
|
|
170
|
+
if (!this.healthChecker)
|
|
171
|
+
return;
|
|
172
|
+
try {
|
|
173
|
+
await this.healthChecker();
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
if (error instanceof UIBlockedError)
|
|
177
|
+
throw error;
|
|
178
|
+
// Health check infrastructure failure — do not mask the original result.
|
|
179
|
+
}
|
|
170
180
|
}
|
|
171
181
|
}
|
|
172
182
|
function isLinkedInTarget(target) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance.js","sourceRoot":"","sources":["../../src/services/instance.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"instance.js","sourceRoot":"","sources":["../../src/services/instance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,40 +1,44 @@
|
|
|
1
1
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
2
2
|
// Copyright (C) 2026 Oleksii PELYKH
|
|
3
3
|
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
4
|
-
import { ActionExecutionError,
|
|
4
|
+
import { ActionExecutionError, ServiceError } from "./errors.js";
|
|
5
5
|
import { InstanceService } from "./instance.js";
|
|
6
6
|
/** All created client mocks, in creation order. */
|
|
7
7
|
let clientInstances = [];
|
|
8
8
|
/** Lookup by target ID after connect() is called. */
|
|
9
9
|
let clientsByTargetId = new Map();
|
|
10
|
-
vi.mock("../cdp/index.js", () =>
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
})
|
|
10
|
+
vi.mock("../cdp/index.js", async (importOriginal) => {
|
|
11
|
+
const actual = await importOriginal();
|
|
12
|
+
return {
|
|
13
|
+
...actual,
|
|
14
|
+
CDPClient: vi.fn().mockImplementation(function () {
|
|
15
|
+
const mocks = {
|
|
16
|
+
connect: vi.fn().mockImplementation(async (targetId) => {
|
|
17
|
+
if (targetId) {
|
|
18
|
+
clientsByTargetId.set(targetId, mocks);
|
|
19
|
+
}
|
|
20
|
+
}),
|
|
21
|
+
disconnect: vi.fn(),
|
|
22
|
+
send: vi.fn().mockResolvedValue(undefined),
|
|
23
|
+
navigate: vi.fn().mockResolvedValue({ frameId: "F1" }),
|
|
24
|
+
evaluate: vi.fn().mockResolvedValue(undefined),
|
|
25
|
+
waitForEvent: vi.fn().mockResolvedValue(undefined),
|
|
26
|
+
isConnected: vi.fn().mockReturnValue(true),
|
|
27
|
+
};
|
|
28
|
+
clientInstances.push(mocks);
|
|
29
|
+
this.connect = mocks.connect;
|
|
30
|
+
this.disconnect = mocks.disconnect;
|
|
31
|
+
this.send = mocks.send;
|
|
32
|
+
this.navigate = mocks.navigate;
|
|
33
|
+
this.evaluate = mocks.evaluate;
|
|
34
|
+
this.waitForEvent = mocks.waitForEvent;
|
|
35
|
+
Object.defineProperty(this, "isConnected", {
|
|
36
|
+
get: mocks.isConnected,
|
|
37
|
+
});
|
|
38
|
+
}),
|
|
39
|
+
discoverTargets: vi.fn(),
|
|
40
|
+
};
|
|
41
|
+
});
|
|
38
42
|
import { discoverTargets } from "../cdp/index.js";
|
|
39
43
|
const mockedDiscoverTargets = vi.mocked(discoverTargets);
|
|
40
44
|
function makeTarget(overrides) {
|
|
@@ -143,54 +147,6 @@ describe("InstanceService", () => {
|
|
|
143
147
|
expect(() => service.disconnect()).not.toThrow();
|
|
144
148
|
});
|
|
145
149
|
});
|
|
146
|
-
describe("navigateToProfile", () => {
|
|
147
|
-
it("calls Page.enable, navigate, and waitForEvent on the LinkedIn client", async () => {
|
|
148
|
-
mockedDiscoverTargets.mockResolvedValue([LINKEDIN_TARGET, UI_TARGET]);
|
|
149
|
-
await service.connect();
|
|
150
|
-
await service.navigateToProfile("https://www.linkedin.com/in/test-user");
|
|
151
|
-
const liClient = getClientMocks("LI1");
|
|
152
|
-
const uiClient = getClientMocks("UI1");
|
|
153
|
-
// LinkedIn client should have received navigation calls
|
|
154
|
-
expect(liClient.send).toHaveBeenCalledWith("Page.enable");
|
|
155
|
-
expect(liClient.navigate).toHaveBeenCalledWith("https://www.linkedin.com/in/test-user");
|
|
156
|
-
expect(liClient.waitForEvent).toHaveBeenCalledWith("Page.loadEventFired");
|
|
157
|
-
// UI client should NOT have received any navigation calls
|
|
158
|
-
expect(uiClient.send).not.toHaveBeenCalled();
|
|
159
|
-
expect(uiClient.navigate).not.toHaveBeenCalled();
|
|
160
|
-
expect(uiClient.waitForEvent).not.toHaveBeenCalled();
|
|
161
|
-
});
|
|
162
|
-
it("accepts a profile URL with trailing slash", async () => {
|
|
163
|
-
mockedDiscoverTargets.mockResolvedValue([LINKEDIN_TARGET, UI_TARGET]);
|
|
164
|
-
await service.connect();
|
|
165
|
-
await service.navigateToProfile("https://www.linkedin.com/in/test-user/");
|
|
166
|
-
const liClient = getClientMocks("LI1");
|
|
167
|
-
expect(liClient.navigate).toHaveBeenCalledWith("https://www.linkedin.com/in/test-user/");
|
|
168
|
-
});
|
|
169
|
-
it("rejects file:// URLs", async () => {
|
|
170
|
-
await expect(service.navigateToProfile("file:///etc/passwd")).rejects.toThrow(InvalidProfileUrlError);
|
|
171
|
-
});
|
|
172
|
-
it("rejects javascript: URLs", async () => {
|
|
173
|
-
await expect(service.navigateToProfile("javascript:alert(1)")).rejects.toThrow(InvalidProfileUrlError);
|
|
174
|
-
});
|
|
175
|
-
it("rejects non-LinkedIn URLs", async () => {
|
|
176
|
-
await expect(service.navigateToProfile("https://evil.com/in/someone")).rejects.toThrow(InvalidProfileUrlError);
|
|
177
|
-
});
|
|
178
|
-
it("rejects LinkedIn URLs that are not profile paths", async () => {
|
|
179
|
-
await expect(service.navigateToProfile("https://www.linkedin.com/feed/")).rejects.toThrow(InvalidProfileUrlError);
|
|
180
|
-
});
|
|
181
|
-
it("rejects http:// LinkedIn profile URLs", async () => {
|
|
182
|
-
await expect(service.navigateToProfile("http://www.linkedin.com/in/test")).rejects.toThrow(InvalidProfileUrlError);
|
|
183
|
-
});
|
|
184
|
-
it("rejects profile URL with extra path segments", async () => {
|
|
185
|
-
await expect(service.navigateToProfile("https://www.linkedin.com/in/test/detail/contact-info/")).rejects.toThrow(InvalidProfileUrlError);
|
|
186
|
-
});
|
|
187
|
-
it("includes the invalid URL in the error message", async () => {
|
|
188
|
-
await expect(service.navigateToProfile("https://evil.com")).rejects.toThrow(/https:\/\/evil\.com/);
|
|
189
|
-
});
|
|
190
|
-
it("throws ServiceError when not connected", async () => {
|
|
191
|
-
await expect(service.navigateToProfile("https://www.linkedin.com/in/test")).rejects.toThrow(ServiceError);
|
|
192
|
-
});
|
|
193
|
-
});
|
|
194
150
|
describe("executeAction", () => {
|
|
195
151
|
it("evaluates the given action on the UI client only", async () => {
|
|
196
152
|
mockedDiscoverTargets.mockResolvedValue([LINKEDIN_TARGET, UI_TARGET]);
|
|
@@ -275,17 +231,5 @@ describe("InstanceService", () => {
|
|
|
275
231
|
await expect(service.evaluateUI("bad")).rejects.toThrow("CDP failure");
|
|
276
232
|
});
|
|
277
233
|
});
|
|
278
|
-
describe("triggerExtraction", () => {
|
|
279
|
-
it("delegates to executeAction with SaveCurrentProfile", async () => {
|
|
280
|
-
mockedDiscoverTargets.mockResolvedValue([LINKEDIN_TARGET, UI_TARGET]);
|
|
281
|
-
await service.connect();
|
|
282
|
-
await service.triggerExtraction();
|
|
283
|
-
const uiClient = getClientMocks("UI1");
|
|
284
|
-
expect(uiClient.evaluate).toHaveBeenCalledWith(expect.stringContaining("SaveCurrentProfile"), true);
|
|
285
|
-
});
|
|
286
|
-
it("throws ServiceError when not connected", async () => {
|
|
287
|
-
await expect(service.triggerExtraction()).rejects.toThrow(ServiceError);
|
|
288
|
-
});
|
|
289
|
-
});
|
|
290
234
|
});
|
|
291
235
|
//# sourceMappingURL=instance.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance.test.js","sourceRoot":"","sources":["../../src/services/instance.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"instance.test.js","sourceRoot":"","sources":["../../src/services/instance.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Account, InstanceStatus } from "../types/index.js";
|
|
1
|
+
import type { Account, InstanceIssue, InstanceStatus, PopupState, UIHealthStatus } from "../types/index.js";
|
|
2
2
|
/**
|
|
3
3
|
* Controls the LinkedHelper launcher process via CDP.
|
|
4
4
|
*
|
|
@@ -46,6 +46,29 @@ export declare class LauncherService {
|
|
|
46
46
|
* entries use the format `userId:li:accountId`.
|
|
47
47
|
*/
|
|
48
48
|
listAccounts(): Promise<Account[]>;
|
|
49
|
+
/**
|
|
50
|
+
* Query the active issues on a LinkedHelper instance.
|
|
51
|
+
*
|
|
52
|
+
* Issues are stored in `account.instance[0].issues.items[]` and
|
|
53
|
+
* include both dialog issues (requiring button selection) and
|
|
54
|
+
* critical error issues (informational blockers).
|
|
55
|
+
*/
|
|
56
|
+
getInstanceIssues(liId: number): Promise<InstanceIssue[]>;
|
|
57
|
+
/**
|
|
58
|
+
* Inspect the launcher DOM for a blocking popup overlay.
|
|
59
|
+
*
|
|
60
|
+
* Popups are managed via `popupBS` BehaviorSubject in the frontend.
|
|
61
|
+
* A non-null backdrop element (`.Dialog_PopupBackdrop_cjqpj`) indicates
|
|
62
|
+
* the UI is blocked.
|
|
63
|
+
*/
|
|
64
|
+
getPopupState(): Promise<PopupState | null>;
|
|
65
|
+
/**
|
|
66
|
+
* Check the overall UI health of a LinkedHelper instance.
|
|
67
|
+
*
|
|
68
|
+
* Combines instance issue queries with popup overlay detection
|
|
69
|
+
* to produce an aggregated health status.
|
|
70
|
+
*/
|
|
71
|
+
checkUIHealth(liId: number): Promise<UIHealthStatus>;
|
|
49
72
|
/** Whether the service is currently connected to the launcher. */
|
|
50
73
|
get isConnected(): boolean;
|
|
51
74
|
private ensureConnected;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../src/services/launcher.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,OAAO,EACP,cAAc,
|
|
1
|
+
{"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../src/services/launcher.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EACb,cAAc,EACd,UAAU,EAEV,cAAc,EACf,MAAM,mBAAmB,CAAC;AAQ3B;;;;;;GAMG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IACtC,OAAO,CAAC,MAAM,CAA0B;gBAGtC,IAAI,GAAE,MAAyB,EAC/B,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE;IAOpD;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAa9B;;OAEG;IACH,UAAU,IAAI,IAAI;IAKlB;;;;OAIG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCrD;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcpD;;OAEG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAoBnE;;;;;OAKG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IA8BxC;;;;;;OAMG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAwB/D;;;;;;OAMG;IACG,aAAa,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAoBjD;;;;;OAKG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAW1D,kEAAkE;IAClE,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,OAAO,CAAC,eAAe;YAOT,gBAAgB;CAiB/B"}
|
|
@@ -136,6 +136,67 @@ export class LauncherService {
|
|
|
136
136
|
})()`);
|
|
137
137
|
return accounts ?? [];
|
|
138
138
|
}
|
|
139
|
+
/**
|
|
140
|
+
* Query the active issues on a LinkedHelper instance.
|
|
141
|
+
*
|
|
142
|
+
* Issues are stored in `account.instance[0].issues.items[]` and
|
|
143
|
+
* include both dialog issues (requiring button selection) and
|
|
144
|
+
* critical error issues (informational blockers).
|
|
145
|
+
*/
|
|
146
|
+
async getInstanceIssues(liId) {
|
|
147
|
+
const client = this.ensureConnected();
|
|
148
|
+
return this.launcherEvaluate(client, `(async () => {
|
|
149
|
+
const remote = require('@electron/remote');
|
|
150
|
+
const mainWindow = remote.getGlobal('mainWindow');
|
|
151
|
+
const getAccount = mainWindow.getLinkedInAccount
|
|
152
|
+
?? mainWindow.source?.linkedInAccounts?.getAccount;
|
|
153
|
+
if (!getAccount) return [];
|
|
154
|
+
const account = await getAccount({ id: ${String(liId)}, refetch: true });
|
|
155
|
+
if (!account?.instance?.[0]) return [];
|
|
156
|
+
const items = account.instance[0].issues?.items ?? [];
|
|
157
|
+
return items.map(item => ({
|
|
158
|
+
type: item.type,
|
|
159
|
+
id: item.id,
|
|
160
|
+
data: item.data,
|
|
161
|
+
}));
|
|
162
|
+
})()`, true);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Inspect the launcher DOM for a blocking popup overlay.
|
|
166
|
+
*
|
|
167
|
+
* Popups are managed via `popupBS` BehaviorSubject in the frontend.
|
|
168
|
+
* A non-null backdrop element (`.Dialog_PopupBackdrop_cjqpj`) indicates
|
|
169
|
+
* the UI is blocked.
|
|
170
|
+
*/
|
|
171
|
+
async getPopupState() {
|
|
172
|
+
const client = this.ensureConnected();
|
|
173
|
+
return this.launcherEvaluate(client, `(() => {
|
|
174
|
+
const backdrop = document.querySelector('.Dialog_PopupBackdrop_cjqpj');
|
|
175
|
+
if (!backdrop) return null;
|
|
176
|
+
const popup = document.querySelector('.Dialog_Popup_qpTvf');
|
|
177
|
+
const body = popup?.querySelector('.Dialog_Body_RPquM');
|
|
178
|
+
const controls = popup?.querySelector('.Dialog_Controls_oL8HA');
|
|
179
|
+
return {
|
|
180
|
+
blocked: true,
|
|
181
|
+
message: body?.textContent?.trim() ?? undefined,
|
|
182
|
+
closable: controls ? controls.querySelectorAll('button').length > 0 : false,
|
|
183
|
+
};
|
|
184
|
+
})()`);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Check the overall UI health of a LinkedHelper instance.
|
|
188
|
+
*
|
|
189
|
+
* Combines instance issue queries with popup overlay detection
|
|
190
|
+
* to produce an aggregated health status.
|
|
191
|
+
*/
|
|
192
|
+
async checkUIHealth(liId) {
|
|
193
|
+
const [issues, popup] = await Promise.all([
|
|
194
|
+
this.getInstanceIssues(liId),
|
|
195
|
+
this.getPopupState(),
|
|
196
|
+
]);
|
|
197
|
+
const healthy = issues.length === 0 && (popup === null || !popup.blocked);
|
|
198
|
+
return { healthy, issues, popup };
|
|
199
|
+
}
|
|
139
200
|
/** Whether the service is currently connected to the launcher. */
|
|
140
201
|
get isConnected() {
|
|
141
202
|
return this.client !== null && this.client.isConnected;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launcher.js","sourceRoot":"","sources":["../../src/services/launcher.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"launcher.js","sourceRoot":"","sources":["../../src/services/launcher.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -2,5 +2,6 @@ export type { CurrentPosition, Education, ExternalId, ExternalIdTypeGroup, MiniP
|
|
|
2
2
|
export type { InstanceInfo, InstanceStatus, StartInstanceParams, StartInstanceResult, } from "./instance.js";
|
|
3
3
|
export type { Account } from "./account.js";
|
|
4
4
|
export type { Chat, ChatParticipant, ConversationMessages, ConversationThread, Message, MessageStats, MessageSummary, } from "./messaging.js";
|
|
5
|
+
export type { CriticalErrorIssueData, DialogIssueData, InstanceIssue, PopupState, UIHealthStatus, } from "./ui-health.js";
|
|
5
6
|
export type { ActionConfig, ActionErrorSummary, ActionPeopleCounts, ActionStatistics, CampaignActionConfig, CampaignActionResult, ActionSettings, ActionTargetPerson, Campaign, CampaignAction, CampaignConfig, CampaignRunResult, CampaignState, CampaignStatistics, CampaignUpdateConfig, ExcludeListEntry, GetResultsOptions, GetStatisticsOptions, ImportPeopleResult, CampaignStatus, CampaignSummary, ListCampaignsOptions, RunnerState, } from "./campaign.js";
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,eAAe,EACf,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,WAAW,EACX,QAAQ,EACR,OAAO,EACP,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,KAAK,GACN,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,YAAY,EACV,IAAI,EACJ,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,OAAO,EACP,YAAY,EACZ,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,WAAW,GACZ,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,eAAe,EACf,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,WAAW,EACX,QAAQ,EACR,OAAO,EACP,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,KAAK,GACN,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,YAAY,EACV,IAAI,EACJ,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,OAAO,EACP,YAAY,EACZ,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,UAAU,EACV,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,WAAW,GACZ,MAAM,eAAe,CAAC"}
|
package/dist/types/profile.d.ts
CHANGED
|
@@ -53,8 +53,10 @@ export interface Profile {
|
|
|
53
53
|
export interface ProfileSearchOptions {
|
|
54
54
|
/** Match against first_name, last_name, headline */
|
|
55
55
|
query?: string;
|
|
56
|
-
/** Match against current position company */
|
|
56
|
+
/** Match against current position company (or all positions when includeHistory is true) */
|
|
57
57
|
company?: string;
|
|
58
|
+
/** When true, company filter also searches past positions in addition to current */
|
|
59
|
+
includeHistory?: boolean;
|
|
58
60
|
/** Maximum number of results (default 20) */
|
|
59
61
|
limit?: number;
|
|
60
62
|
/** Pagination offset (default 0) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/types/profile.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE1E,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,SAAS,EAAE,SAAS,EAAE,CAAC;IACvB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/types/profile.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE1E,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,SAAS,EAAE,SAAS,EAAE,CAAC;IACvB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4FAA4F;IAC5F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Data for a dialog instance issue (requires user interaction to dismiss).
|
|
3
|
+
*/
|
|
4
|
+
export interface DialogIssueData {
|
|
5
|
+
readonly id: string;
|
|
6
|
+
readonly options: {
|
|
7
|
+
readonly message: string;
|
|
8
|
+
readonly controls: ReadonlyArray<{
|
|
9
|
+
readonly id: string;
|
|
10
|
+
readonly text: string;
|
|
11
|
+
}>;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Data for a critical-error instance issue (informational, blocks the instance).
|
|
16
|
+
*/
|
|
17
|
+
export interface CriticalErrorIssueData {
|
|
18
|
+
readonly message: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* An issue reported on a LinkedHelper instance.
|
|
22
|
+
*
|
|
23
|
+
* Dialog issues require a button selection to dismiss.
|
|
24
|
+
* Critical-error issues are informational and block the instance.
|
|
25
|
+
*/
|
|
26
|
+
export type InstanceIssue = {
|
|
27
|
+
readonly type: "dialog";
|
|
28
|
+
readonly id: string;
|
|
29
|
+
readonly data: DialogIssueData;
|
|
30
|
+
} | {
|
|
31
|
+
readonly type: "critical-error";
|
|
32
|
+
readonly id: string;
|
|
33
|
+
readonly data: CriticalErrorIssueData;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* State of a blocking popup overlay in the LinkedHelper launcher UI.
|
|
37
|
+
*
|
|
38
|
+
* Popups managed via `popupBS` BehaviorSubject in the frontend.
|
|
39
|
+
* When a popup has `unclosable: true`, the user cannot dismiss it.
|
|
40
|
+
*/
|
|
41
|
+
export interface PopupState {
|
|
42
|
+
/** Whether a blocking popup overlay is present. */
|
|
43
|
+
readonly blocked: boolean;
|
|
44
|
+
/** The popup message text, if available. */
|
|
45
|
+
readonly message?: string;
|
|
46
|
+
/** Whether the popup can be closed by the user. */
|
|
47
|
+
readonly closable?: boolean;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Aggregated UI health status for a LinkedHelper instance.
|
|
51
|
+
*/
|
|
52
|
+
export interface UIHealthStatus {
|
|
53
|
+
/** Whether the UI is in a healthy (non-blocked) state. */
|
|
54
|
+
readonly healthy: boolean;
|
|
55
|
+
/** Active instance issues (dialogs and critical errors). */
|
|
56
|
+
readonly issues: readonly InstanceIssue[];
|
|
57
|
+
/** Current popup overlay state, or `null` if no popup is present. */
|
|
58
|
+
readonly popup: PopupState | null;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=ui-health.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-health.d.ts","sourceRoot":"","sources":["../../src/types/ui-health.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;YAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;YACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;SACvB,CAAC,CAAC;KACJ,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GAChF;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAA;CAAE,CAAC;AAEpG;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,mDAAmD;IACnD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;IAC1C,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CACnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-health.js","sourceRoot":"","sources":["../../src/types/ui-health.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC"}
|