@lhremote/core 0.4.0 → 0.6.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/db/index.d.ts +1 -1
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +1 -1
- package/dist/db/index.js.map +1 -1
- package/dist/db/repositories/collection-list.d.ts +69 -0
- package/dist/db/repositories/collection-list.d.ts.map +1 -0
- package/dist/db/repositories/collection-list.integration.test.d.ts +2 -0
- package/dist/db/repositories/collection-list.integration.test.d.ts.map +1 -0
- package/dist/db/repositories/collection-list.integration.test.js +124 -0
- package/dist/db/repositories/collection-list.integration.test.js.map +1 -0
- package/dist/db/repositories/collection-list.js +161 -0
- package/dist/db/repositories/collection-list.js.map +1 -0
- package/dist/db/repositories/index.d.ts +1 -0
- package/dist/db/repositories/index.d.ts.map +1 -1
- package/dist/db/repositories/index.js +1 -0
- package/dist/db/repositories/index.js.map +1 -1
- package/dist/db/testing/create-fixture.js +17 -0
- package/dist/db/testing/create-fixture.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/operations/add-people-to-collection.d.ts +22 -0
- package/dist/operations/add-people-to-collection.d.ts.map +1 -0
- package/dist/operations/add-people-to-collection.js +27 -0
- package/dist/operations/add-people-to-collection.js.map +1 -0
- package/dist/operations/add-people-to-collection.test.d.ts +2 -0
- package/dist/operations/add-people-to-collection.test.d.ts.map +1 -0
- package/dist/operations/add-people-to-collection.test.js +69 -0
- package/dist/operations/add-people-to-collection.test.js.map +1 -0
- package/dist/operations/collect-people.d.ts +40 -0
- package/dist/operations/collect-people.d.ts.map +1 -0
- package/dist/operations/collect-people.js +55 -0
- package/dist/operations/collect-people.js.map +1 -0
- package/dist/operations/collect-people.test.d.ts +2 -0
- package/dist/operations/collect-people.test.d.ts.map +1 -0
- package/dist/operations/collect-people.test.js +156 -0
- package/dist/operations/collect-people.test.js.map +1 -0
- package/dist/operations/create-collection.d.ts +20 -0
- package/dist/operations/create-collection.d.ts.map +1 -0
- package/dist/operations/create-collection.js +26 -0
- package/dist/operations/create-collection.js.map +1 -0
- package/dist/operations/create-collection.test.d.ts +2 -0
- package/dist/operations/create-collection.test.d.ts.map +1 -0
- package/dist/operations/create-collection.test.js +72 -0
- package/dist/operations/create-collection.test.js.map +1 -0
- package/dist/operations/delete-collection.d.ts +20 -0
- package/dist/operations/delete-collection.d.ts.map +1 -0
- package/dist/operations/delete-collection.js +26 -0
- package/dist/operations/delete-collection.js.map +1 -0
- package/dist/operations/delete-collection.test.d.ts +2 -0
- package/dist/operations/delete-collection.test.d.ts.map +1 -0
- package/dist/operations/delete-collection.test.js +61 -0
- package/dist/operations/delete-collection.test.js.map +1 -0
- package/dist/operations/import-people-from-collection.d.ts +30 -0
- package/dist/operations/import-people-from-collection.d.ts.map +1 -0
- package/dist/operations/import-people-from-collection.js +65 -0
- package/dist/operations/import-people-from-collection.js.map +1 -0
- package/dist/operations/import-people-from-collection.test.d.ts +2 -0
- package/dist/operations/import-people-from-collection.test.d.ts.map +1 -0
- package/dist/operations/import-people-from-collection.test.js +170 -0
- package/dist/operations/import-people-from-collection.test.js.map +1 -0
- package/dist/operations/index.d.ts +7 -0
- package/dist/operations/index.d.ts.map +1 -1
- package/dist/operations/index.js +9 -0
- package/dist/operations/index.js.map +1 -1
- package/dist/operations/list-collections.d.ts +18 -0
- package/dist/operations/list-collections.d.ts.map +1 -0
- package/dist/operations/list-collections.js +22 -0
- package/dist/operations/list-collections.js.map +1 -0
- package/dist/operations/list-collections.test.d.ts +2 -0
- package/dist/operations/list-collections.test.d.ts.map +1 -0
- package/dist/operations/list-collections.test.js +73 -0
- package/dist/operations/list-collections.test.js.map +1 -0
- package/dist/operations/remove-people-from-collection.d.ts +21 -0
- package/dist/operations/remove-people-from-collection.d.ts.map +1 -0
- package/dist/operations/remove-people-from-collection.js +26 -0
- package/dist/operations/remove-people-from-collection.js.map +1 -0
- package/dist/operations/remove-people-from-collection.test.d.ts +2 -0
- package/dist/operations/remove-people-from-collection.test.d.ts.map +1 -0
- package/dist/operations/remove-people-from-collection.test.js +68 -0
- package/dist/operations/remove-people-from-collection.test.js.map +1 -0
- package/dist/services/app.d.ts +3 -0
- package/dist/services/app.d.ts.map +1 -1
- package/dist/services/app.js +22 -2
- package/dist/services/app.js.map +1 -1
- package/dist/services/app.test.js +5 -1
- package/dist/services/app.test.js.map +1 -1
- package/dist/services/collection.d.ts +84 -0
- package/dist/services/collection.d.ts.map +1 -0
- package/dist/services/collection.js +145 -0
- package/dist/services/collection.js.map +1 -0
- package/dist/services/collection.test.d.ts +2 -0
- package/dist/services/collection.test.d.ts.map +1 -0
- package/dist/services/collection.test.js +203 -0
- package/dist/services/collection.test.js.map +1 -0
- package/dist/services/errors.d.ts +29 -0
- package/dist/services/errors.d.ts.map +1 -1
- package/dist/services/errors.js +41 -0
- package/dist/services/errors.js.map +1 -1
- package/dist/services/index.d.ts +3 -1
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +3 -1
- package/dist/services/index.js.map +1 -1
- package/dist/services/launcher.d.ts.map +1 -1
- package/dist/services/launcher.js +6 -2
- package/dist/services/launcher.js.map +1 -1
- package/dist/services/launcher.test.js +4 -1
- package/dist/services/launcher.test.js.map +1 -1
- package/dist/services/source-type-registry.d.ts +19 -0
- package/dist/services/source-type-registry.d.ts.map +1 -0
- package/dist/services/source-type-registry.js +66 -0
- package/dist/services/source-type-registry.js.map +1 -0
- package/dist/services/source-type-registry.test.d.ts +2 -0
- package/dist/services/source-type-registry.test.d.ts.map +1 -0
- package/dist/services/source-type-registry.test.js +124 -0
- package/dist/services/source-type-registry.test.js.map +1 -0
- package/dist/services/status.d.ts +3 -0
- package/dist/services/status.d.ts.map +1 -1
- package/dist/services/status.js +7 -1
- package/dist/services/status.js.map +1 -1
- package/dist/services/status.test.js +6 -1
- package/dist/services/status.test.js.map +1 -1
- package/dist/types/collection.d.ts +12 -0
- package/dist/types/collection.d.ts.map +1 -0
- package/dist/types/collection.js +4 -0
- package/dist/types/collection.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
2
|
+
// Copyright (C) 2026 Oleksii PELYKH
|
|
3
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
4
|
+
vi.mock("../services/account-resolution.js", () => ({
|
|
5
|
+
resolveAccount: vi.fn(),
|
|
6
|
+
}));
|
|
7
|
+
vi.mock("../services/instance-context.js", () => ({
|
|
8
|
+
withDatabase: vi.fn(),
|
|
9
|
+
}));
|
|
10
|
+
vi.mock("../db/index.js", () => ({
|
|
11
|
+
CollectionListRepository: vi.fn(),
|
|
12
|
+
}));
|
|
13
|
+
import { resolveAccount } from "../services/account-resolution.js";
|
|
14
|
+
import { withDatabase } from "../services/instance-context.js";
|
|
15
|
+
import { CollectionListRepository } from "../db/index.js";
|
|
16
|
+
import { removePeopleFromCollection } from "./remove-people-from-collection.js";
|
|
17
|
+
function setupMocks(removed = 2) {
|
|
18
|
+
vi.mocked(resolveAccount).mockResolvedValue(1);
|
|
19
|
+
vi.mocked(withDatabase).mockImplementation(async (_accountId, callback) => callback({ accountId: 1, db: {} }));
|
|
20
|
+
vi.mocked(CollectionListRepository).mockImplementation(function () {
|
|
21
|
+
return {
|
|
22
|
+
removePeople: vi.fn().mockReturnValue(removed),
|
|
23
|
+
};
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
describe("removePeopleFromCollection", () => {
|
|
27
|
+
beforeEach(() => {
|
|
28
|
+
vi.clearAllMocks();
|
|
29
|
+
});
|
|
30
|
+
afterEach(() => {
|
|
31
|
+
vi.restoreAllMocks();
|
|
32
|
+
});
|
|
33
|
+
it("returns removed count", async () => {
|
|
34
|
+
setupMocks(2);
|
|
35
|
+
const result = await removePeopleFromCollection({
|
|
36
|
+
collectionId: 10,
|
|
37
|
+
personIds: [1, 3],
|
|
38
|
+
cdpPort: 9222,
|
|
39
|
+
});
|
|
40
|
+
expect(result.success).toBe(true);
|
|
41
|
+
expect(result.collectionId).toBe(10);
|
|
42
|
+
expect(result.removed).toBe(2);
|
|
43
|
+
});
|
|
44
|
+
it("passes collectionId and personIds to repository", async () => {
|
|
45
|
+
setupMocks();
|
|
46
|
+
await removePeopleFromCollection({
|
|
47
|
+
collectionId: 10,
|
|
48
|
+
personIds: [1, 3],
|
|
49
|
+
cdpPort: 9222,
|
|
50
|
+
});
|
|
51
|
+
const mockResult = vi.mocked(CollectionListRepository).mock.results[0];
|
|
52
|
+
expect(mockResult.value.removePeople).toHaveBeenCalledWith(10, [1, 3]);
|
|
53
|
+
});
|
|
54
|
+
it("opens database in write mode", async () => {
|
|
55
|
+
setupMocks();
|
|
56
|
+
await removePeopleFromCollection({
|
|
57
|
+
collectionId: 10,
|
|
58
|
+
personIds: [1],
|
|
59
|
+
cdpPort: 9222,
|
|
60
|
+
});
|
|
61
|
+
expect(withDatabase).toHaveBeenCalledWith(1, expect.any(Function), { readOnly: false });
|
|
62
|
+
});
|
|
63
|
+
it("propagates resolveAccount errors", async () => {
|
|
64
|
+
vi.mocked(resolveAccount).mockRejectedValue(new Error("connection refused"));
|
|
65
|
+
await expect(removePeopleFromCollection({ collectionId: 10, personIds: [1], cdpPort: 9222 })).rejects.toThrow("connection refused");
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
//# sourceMappingURL=remove-people-from-collection.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove-people-from-collection.test.js","sourceRoot":"","sources":["../../src/operations/remove-people-from-collection.test.ts"],"names":[],"mappings":"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"}
|
package/dist/services/app.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export interface AppServiceOptions {
|
|
2
2
|
/** Delay in ms after spawn before checking if the app is reachable (default 3000). */
|
|
3
3
|
launchProbeDelay?: number;
|
|
4
|
+
/** Kill existing LinkedHelper processes before launching (default false). */
|
|
5
|
+
force?: boolean;
|
|
4
6
|
}
|
|
5
7
|
/**
|
|
6
8
|
* Manages the LinkedHelper application process lifecycle.
|
|
@@ -13,6 +15,7 @@ export declare class AppService {
|
|
|
13
15
|
private assignedPort;
|
|
14
16
|
private childProcess;
|
|
15
17
|
private readonly launchProbeDelay;
|
|
18
|
+
private readonly force;
|
|
16
19
|
/**
|
|
17
20
|
* @param cdpPort - Explicit CDP port. When omitted, `launch()` will
|
|
18
21
|
* select a free port automatically via `get-port`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/services/app.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,iBAAiB;IAChC,sFAAsF;IACtF,gBAAgB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/services/app.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,iBAAiB;IAChC,sFAAsF;IACtF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;GAMG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAEhC;;;;OAIG;gBACS,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB;IAMzD;;;;;OAKG;IACH,IAAI,OAAO,IAAI,MAAM,CAKpB;IAED;;;;;;;;OAQG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IA6D7B;;;;;;;;;OASG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC3B;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAYnC;;;;;OAKG;IACH,MAAM,CAAC,UAAU,IAAI,MAAM;CAW5B"}
|
package/dist/services/app.js
CHANGED
|
@@ -4,8 +4,8 @@ import { spawn } from "node:child_process";
|
|
|
4
4
|
import { accessSync, constants } from "node:fs";
|
|
5
5
|
import { join } from "node:path";
|
|
6
6
|
import getPort from "get-port";
|
|
7
|
-
import { discoverTargets } from "../cdp/index.js";
|
|
8
|
-
import { AppLaunchError, AppNotFoundError } from "./errors.js";
|
|
7
|
+
import { discoverTargets, findApp } from "../cdp/index.js";
|
|
8
|
+
import { AppLaunchError, AppNotFoundError, LinkedHelperUnreachableError } from "./errors.js";
|
|
9
9
|
/** Default delay after spawn before checking if the app is reachable (ms). */
|
|
10
10
|
const DEFAULT_LAUNCH_PROBE_DELAY = 3000;
|
|
11
11
|
/** Maximum time to wait for the process to exit after SIGTERM (ms). */
|
|
@@ -23,6 +23,7 @@ export class AppService {
|
|
|
23
23
|
assignedPort;
|
|
24
24
|
childProcess = null;
|
|
25
25
|
launchProbeDelay;
|
|
26
|
+
force;
|
|
26
27
|
/**
|
|
27
28
|
* @param cdpPort - Explicit CDP port. When omitted, `launch()` will
|
|
28
29
|
* select a free port automatically via `get-port`.
|
|
@@ -31,6 +32,7 @@ export class AppService {
|
|
|
31
32
|
constructor(cdpPort, options) {
|
|
32
33
|
this.assignedPort = cdpPort ?? null;
|
|
33
34
|
this.launchProbeDelay = options?.launchProbeDelay ?? DEFAULT_LAUNCH_PROBE_DELAY;
|
|
35
|
+
this.force = options?.force ?? false;
|
|
34
36
|
}
|
|
35
37
|
/**
|
|
36
38
|
* The CDP port currently in use.
|
|
@@ -57,6 +59,24 @@ export class AppService {
|
|
|
57
59
|
if (this.assignedPort !== null && await this.isRunning()) {
|
|
58
60
|
return;
|
|
59
61
|
}
|
|
62
|
+
// Proactive conflict detection: check for existing LH processes
|
|
63
|
+
const existingApps = await findApp();
|
|
64
|
+
if (existingApps.length > 0) {
|
|
65
|
+
const connectable = existingApps.find((a) => a.connectable);
|
|
66
|
+
if (connectable) {
|
|
67
|
+
// Already running with CDP — use that port
|
|
68
|
+
this.assignedPort = connectable.cdpPort;
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
// Running but CDP unreachable
|
|
72
|
+
if (!this.force) {
|
|
73
|
+
throw new LinkedHelperUnreachableError(existingApps);
|
|
74
|
+
}
|
|
75
|
+
// Force mode: kill existing processes before relaunching
|
|
76
|
+
for (const app of existingApps) {
|
|
77
|
+
process.kill(app.pid, "SIGKILL");
|
|
78
|
+
}
|
|
79
|
+
}
|
|
60
80
|
if (this.assignedPort === null) {
|
|
61
81
|
this.assignedPort = await getPort();
|
|
62
82
|
}
|
package/dist/services/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/services/app.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EAAqB,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,OAAO,MAAM,UAAU,CAAC;AAE/B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/services/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,15 +14,17 @@ vi.mock("node:fs", () => ({
|
|
|
14
14
|
}));
|
|
15
15
|
vi.mock("../cdp/index.js", () => ({
|
|
16
16
|
discoverTargets: vi.fn(),
|
|
17
|
+
findApp: vi.fn(),
|
|
17
18
|
}));
|
|
18
19
|
vi.mock("get-port", () => ({
|
|
19
20
|
default: vi.fn(),
|
|
20
21
|
}));
|
|
21
|
-
import { discoverTargets } from "../cdp/index.js";
|
|
22
|
+
import { discoverTargets, findApp } from "../cdp/index.js";
|
|
22
23
|
import getPort from "get-port";
|
|
23
24
|
const mockedSpawn = vi.mocked(spawn);
|
|
24
25
|
const mockedAccessSync = vi.mocked(accessSync);
|
|
25
26
|
const mockedDiscoverTargets = vi.mocked(discoverTargets);
|
|
27
|
+
const mockedFindApp = vi.mocked(findApp);
|
|
26
28
|
const mockedGetPort = vi.mocked(getPort);
|
|
27
29
|
/** Use zero probe delay in tests to avoid 3s waits. */
|
|
28
30
|
const FAST_OPTIONS = { launchProbeDelay: 0 };
|
|
@@ -129,6 +131,7 @@ describe("AppService", () => {
|
|
|
129
131
|
describe("launch", () => {
|
|
130
132
|
beforeEach(() => {
|
|
131
133
|
vi.stubGlobal("process", { ...process, platform: "darwin", env: {} });
|
|
134
|
+
mockedFindApp.mockResolvedValue([]);
|
|
132
135
|
});
|
|
133
136
|
it("skips launch if already running with explicit port", async () => {
|
|
134
137
|
const service = new AppService(9222, FAST_OPTIONS);
|
|
@@ -195,6 +198,7 @@ describe("AppService", () => {
|
|
|
195
198
|
describe("quit", () => {
|
|
196
199
|
beforeEach(() => {
|
|
197
200
|
vi.stubGlobal("process", { ...process, platform: "darwin", env: {} });
|
|
201
|
+
mockedFindApp.mockResolvedValue([]);
|
|
198
202
|
});
|
|
199
203
|
it("sends SIGTERM and waits for exit", async () => {
|
|
200
204
|
const service = new AppService(9222, FAST_OPTIONS);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.test.js","sourceRoot":"","sources":["../../src/services/app.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app.test.js","sourceRoot":"","sources":["../../src/services/app.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { SourceType } from "../types/index.js";
|
|
2
|
+
import type { RunnerState } from "../types/index.js";
|
|
3
|
+
import type { InstanceService } from "./instance.js";
|
|
4
|
+
/**
|
|
5
|
+
* Options for initiating a collection operation.
|
|
6
|
+
*/
|
|
7
|
+
export interface CollectOptions {
|
|
8
|
+
/** Maximum number of profiles to collect. */
|
|
9
|
+
readonly limit?: number;
|
|
10
|
+
/** Maximum number of pages to process. */
|
|
11
|
+
readonly maxPages?: number;
|
|
12
|
+
/** Number of results per page. */
|
|
13
|
+
readonly pageSize?: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Manages people collection from LinkedIn pages via CDP.
|
|
17
|
+
*
|
|
18
|
+
* Collection uses the dedicated `prepareCollecting` → `collect` IPC
|
|
19
|
+
* entry point, which drives the LinkedHelper state machine through
|
|
20
|
+
* `idle → preparing-collecting → collecting → idle`.
|
|
21
|
+
*
|
|
22
|
+
* The {@link collect} method returns immediately — callers should poll
|
|
23
|
+
* the runner state (`mainWindow.state`) for progress.
|
|
24
|
+
*/
|
|
25
|
+
export declare class CollectionService {
|
|
26
|
+
private readonly instance;
|
|
27
|
+
constructor(instance: InstanceService);
|
|
28
|
+
/**
|
|
29
|
+
* Initiate people collection from a LinkedIn source URL.
|
|
30
|
+
*
|
|
31
|
+
* Validates that the source URL is a recognized LinkedIn page type,
|
|
32
|
+
* ensures the instance is idle, then calls `canCollect` →
|
|
33
|
+
* `prepareCollecting` → `collect` via CDP.
|
|
34
|
+
*
|
|
35
|
+
* Returns immediately after initiating collection — the actual
|
|
36
|
+
* collection runs asynchronously in LinkedHelper. Poll the runner
|
|
37
|
+
* state via {@link getRunnerState} for progress.
|
|
38
|
+
*
|
|
39
|
+
* @param sourceUrl - LinkedIn page URL to collect from (e.g., search results URL).
|
|
40
|
+
* @param campaignId - Campaign to associate the collection with.
|
|
41
|
+
* @param options - Collection parameters (limit, maxPages, pageSize).
|
|
42
|
+
* @throws {CollectionError} if the source URL is not recognized, canCollect returns false,
|
|
43
|
+
* or the CDP calls fail.
|
|
44
|
+
* @throws {CollectionBusyError} if the instance is not idle.
|
|
45
|
+
*/
|
|
46
|
+
collect(sourceUrl: string, _campaignId: number, options?: CollectOptions): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Check whether collection is possible for a given source type.
|
|
49
|
+
*
|
|
50
|
+
* This is a page-state check — returns `true` only when the
|
|
51
|
+
* LinkedHelper browser is currently on a matching source page.
|
|
52
|
+
*/
|
|
53
|
+
canCollect(sourceType: SourceType): Promise<boolean>;
|
|
54
|
+
/**
|
|
55
|
+
* Get the current runner state from the LinkedHelper main window.
|
|
56
|
+
*/
|
|
57
|
+
getRunnerState(): Promise<RunnerState>;
|
|
58
|
+
/**
|
|
59
|
+
* Ensure the instance runner is idle.
|
|
60
|
+
*
|
|
61
|
+
* @throws {CollectionBusyError} if the runner is not idle.
|
|
62
|
+
*/
|
|
63
|
+
private ensureIdle;
|
|
64
|
+
/**
|
|
65
|
+
* Assert that `canCollect` returns `true` for the source type.
|
|
66
|
+
*
|
|
67
|
+
* @throws {CollectionError} if `canCollect` returns `false`.
|
|
68
|
+
*/
|
|
69
|
+
private assertCanCollect;
|
|
70
|
+
/**
|
|
71
|
+
* Call `prepareCollecting` to transition the state machine from
|
|
72
|
+
* `idle` to `preparing-collecting`.
|
|
73
|
+
*
|
|
74
|
+
* @throws {CollectionError} if the call returns `false`.
|
|
75
|
+
*/
|
|
76
|
+
private prepareCollecting;
|
|
77
|
+
/**
|
|
78
|
+
* Call `collect` to start the actual collection process.
|
|
79
|
+
*
|
|
80
|
+
* @throws {CollectionError} if the call returns `false`.
|
|
81
|
+
*/
|
|
82
|
+
private startCollecting;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=collection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../src/services/collection.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGrD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;GASG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAE/B,QAAQ,EAAE,eAAe;IAIrC;;;;;;;;;;;;;;;;;OAiBG;IACG,OAAO,CACX,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IAkChB;;;;;OAKG;IACG,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAS1D;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IAO5C;;;;OAIG;YACW,UAAU;IAOxB;;;;OAIG;YACW,gBAAgB;IAS9B;;;;;OAKG;YACW,iBAAiB;IAkB/B;;;;OAIG;YACW,eAAe;CAmB9B"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
2
|
+
// Copyright (C) 2026 Oleksii PELYKH
|
|
3
|
+
import { errorMessage } from "../utils/error-message.js";
|
|
4
|
+
import { detectSourceType } from "./source-type-registry.js";
|
|
5
|
+
import { CollectionBusyError, CollectionError } from "./errors.js";
|
|
6
|
+
/**
|
|
7
|
+
* Manages people collection from LinkedIn pages via CDP.
|
|
8
|
+
*
|
|
9
|
+
* Collection uses the dedicated `prepareCollecting` → `collect` IPC
|
|
10
|
+
* entry point, which drives the LinkedHelper state machine through
|
|
11
|
+
* `idle → preparing-collecting → collecting → idle`.
|
|
12
|
+
*
|
|
13
|
+
* The {@link collect} method returns immediately — callers should poll
|
|
14
|
+
* the runner state (`mainWindow.state`) for progress.
|
|
15
|
+
*/
|
|
16
|
+
export class CollectionService {
|
|
17
|
+
instance;
|
|
18
|
+
constructor(instance) {
|
|
19
|
+
this.instance = instance;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Initiate people collection from a LinkedIn source URL.
|
|
23
|
+
*
|
|
24
|
+
* Validates that the source URL is a recognized LinkedIn page type,
|
|
25
|
+
* ensures the instance is idle, then calls `canCollect` →
|
|
26
|
+
* `prepareCollecting` → `collect` via CDP.
|
|
27
|
+
*
|
|
28
|
+
* Returns immediately after initiating collection — the actual
|
|
29
|
+
* collection runs asynchronously in LinkedHelper. Poll the runner
|
|
30
|
+
* state via {@link getRunnerState} for progress.
|
|
31
|
+
*
|
|
32
|
+
* @param sourceUrl - LinkedIn page URL to collect from (e.g., search results URL).
|
|
33
|
+
* @param campaignId - Campaign to associate the collection with.
|
|
34
|
+
* @param options - Collection parameters (limit, maxPages, pageSize).
|
|
35
|
+
* @throws {CollectionError} if the source URL is not recognized, canCollect returns false,
|
|
36
|
+
* or the CDP calls fail.
|
|
37
|
+
* @throws {CollectionBusyError} if the instance is not idle.
|
|
38
|
+
*/
|
|
39
|
+
async collect(sourceUrl, _campaignId, options) {
|
|
40
|
+
const sourceType = detectSourceType(sourceUrl);
|
|
41
|
+
if (!sourceType) {
|
|
42
|
+
throw new CollectionError(`Unrecognized source URL: ${sourceUrl} — cannot determine LinkedIn page type`);
|
|
43
|
+
}
|
|
44
|
+
await this.ensureIdle();
|
|
45
|
+
await this.assertCanCollect(sourceType);
|
|
46
|
+
try {
|
|
47
|
+
await this.prepareCollecting(sourceType);
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
if (error instanceof CollectionError)
|
|
51
|
+
throw error;
|
|
52
|
+
const message = errorMessage(error);
|
|
53
|
+
throw new CollectionError(`Failed to prepare collection for ${sourceType}: ${message}`, { cause: error });
|
|
54
|
+
}
|
|
55
|
+
try {
|
|
56
|
+
await this.startCollecting(options);
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
if (error instanceof CollectionError)
|
|
60
|
+
throw error;
|
|
61
|
+
const message = errorMessage(error);
|
|
62
|
+
throw new CollectionError(`Failed to start collection: ${message}`, { cause: error });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Check whether collection is possible for a given source type.
|
|
67
|
+
*
|
|
68
|
+
* This is a page-state check — returns `true` only when the
|
|
69
|
+
* LinkedHelper browser is currently on a matching source page.
|
|
70
|
+
*/
|
|
71
|
+
async canCollect(sourceType) {
|
|
72
|
+
return this.instance.evaluateUI(`(async () => {
|
|
73
|
+
const mws = window.mainWindowService;
|
|
74
|
+
return await mws.call('canCollect', ${JSON.stringify(sourceType)});
|
|
75
|
+
})()`);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Get the current runner state from the LinkedHelper main window.
|
|
79
|
+
*/
|
|
80
|
+
async getRunnerState() {
|
|
81
|
+
return this.instance.evaluateUI(`window.mainWindowService.mainWindow.state`, false);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Ensure the instance runner is idle.
|
|
85
|
+
*
|
|
86
|
+
* @throws {CollectionBusyError} if the runner is not idle.
|
|
87
|
+
*/
|
|
88
|
+
async ensureIdle() {
|
|
89
|
+
const state = await this.getRunnerState();
|
|
90
|
+
if (state !== "idle") {
|
|
91
|
+
throw new CollectionBusyError(state);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Assert that `canCollect` returns `true` for the source type.
|
|
96
|
+
*
|
|
97
|
+
* @throws {CollectionError} if `canCollect` returns `false`.
|
|
98
|
+
*/
|
|
99
|
+
async assertCanCollect(sourceType) {
|
|
100
|
+
const result = await this.canCollect(sourceType);
|
|
101
|
+
if (!result) {
|
|
102
|
+
throw new CollectionError(`Cannot collect from ${sourceType} — the LinkedIn browser is not on a matching page`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Call `prepareCollecting` to transition the state machine from
|
|
107
|
+
* `idle` to `preparing-collecting`.
|
|
108
|
+
*
|
|
109
|
+
* @throws {CollectionError} if the call returns `false`.
|
|
110
|
+
*/
|
|
111
|
+
async prepareCollecting(sourceType) {
|
|
112
|
+
const result = await this.instance.evaluateUI(`(async () => {
|
|
113
|
+
const mws = window.mainWindowService;
|
|
114
|
+
return await mws.call('prepareCollecting', ${JSON.stringify({
|
|
115
|
+
type: sourceType,
|
|
116
|
+
actionType: "AutoCollectPeople",
|
|
117
|
+
})});
|
|
118
|
+
})()`);
|
|
119
|
+
if (!result) {
|
|
120
|
+
throw new CollectionError(`prepareCollecting returned false for ${sourceType} — state machine did not transition`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Call `collect` to start the actual collection process.
|
|
125
|
+
*
|
|
126
|
+
* @throws {CollectionError} if the call returns `false`.
|
|
127
|
+
*/
|
|
128
|
+
async startCollecting(options) {
|
|
129
|
+
const params = {};
|
|
130
|
+
if (options?.limit !== undefined)
|
|
131
|
+
params.limit = options.limit;
|
|
132
|
+
if (options?.maxPages !== undefined)
|
|
133
|
+
params.maxPages = options.maxPages;
|
|
134
|
+
if (options?.pageSize !== undefined)
|
|
135
|
+
params.pageSize = options.pageSize;
|
|
136
|
+
const result = await this.instance.evaluateUI(`(async () => {
|
|
137
|
+
const mws = window.mainWindowService;
|
|
138
|
+
return await mws.call('collect', ${JSON.stringify(params)});
|
|
139
|
+
})()`);
|
|
140
|
+
if (!result) {
|
|
141
|
+
throw new CollectionError("collect returned false — state machine was not in collecting state");
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=collection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../../src/services/collection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection.test.d.ts","sourceRoot":"","sources":["../../src/services/collection.test.ts"],"names":[],"mappings":""}
|