@lhremote/core 0.5.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.
Files changed (113) hide show
  1. package/dist/db/index.d.ts +1 -1
  2. package/dist/db/index.d.ts.map +1 -1
  3. package/dist/db/index.js +1 -1
  4. package/dist/db/index.js.map +1 -1
  5. package/dist/db/repositories/collection-list.d.ts +69 -0
  6. package/dist/db/repositories/collection-list.d.ts.map +1 -0
  7. package/dist/db/repositories/collection-list.integration.test.d.ts +2 -0
  8. package/dist/db/repositories/collection-list.integration.test.d.ts.map +1 -0
  9. package/dist/db/repositories/collection-list.integration.test.js +124 -0
  10. package/dist/db/repositories/collection-list.integration.test.js.map +1 -0
  11. package/dist/db/repositories/collection-list.js +161 -0
  12. package/dist/db/repositories/collection-list.js.map +1 -0
  13. package/dist/db/repositories/index.d.ts +1 -0
  14. package/dist/db/repositories/index.d.ts.map +1 -1
  15. package/dist/db/repositories/index.js +1 -0
  16. package/dist/db/repositories/index.js.map +1 -1
  17. package/dist/db/testing/create-fixture.js +17 -0
  18. package/dist/db/testing/create-fixture.js.map +1 -1
  19. package/dist/index.d.ts +4 -4
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +7 -3
  22. package/dist/index.js.map +1 -1
  23. package/dist/operations/add-people-to-collection.d.ts +22 -0
  24. package/dist/operations/add-people-to-collection.d.ts.map +1 -0
  25. package/dist/operations/add-people-to-collection.js +27 -0
  26. package/dist/operations/add-people-to-collection.js.map +1 -0
  27. package/dist/operations/add-people-to-collection.test.d.ts +2 -0
  28. package/dist/operations/add-people-to-collection.test.d.ts.map +1 -0
  29. package/dist/operations/add-people-to-collection.test.js +69 -0
  30. package/dist/operations/add-people-to-collection.test.js.map +1 -0
  31. package/dist/operations/collect-people.d.ts +40 -0
  32. package/dist/operations/collect-people.d.ts.map +1 -0
  33. package/dist/operations/collect-people.js +55 -0
  34. package/dist/operations/collect-people.js.map +1 -0
  35. package/dist/operations/collect-people.test.d.ts +2 -0
  36. package/dist/operations/collect-people.test.d.ts.map +1 -0
  37. package/dist/operations/collect-people.test.js +156 -0
  38. package/dist/operations/collect-people.test.js.map +1 -0
  39. package/dist/operations/create-collection.d.ts +20 -0
  40. package/dist/operations/create-collection.d.ts.map +1 -0
  41. package/dist/operations/create-collection.js +26 -0
  42. package/dist/operations/create-collection.js.map +1 -0
  43. package/dist/operations/create-collection.test.d.ts +2 -0
  44. package/dist/operations/create-collection.test.d.ts.map +1 -0
  45. package/dist/operations/create-collection.test.js +72 -0
  46. package/dist/operations/create-collection.test.js.map +1 -0
  47. package/dist/operations/delete-collection.d.ts +20 -0
  48. package/dist/operations/delete-collection.d.ts.map +1 -0
  49. package/dist/operations/delete-collection.js +26 -0
  50. package/dist/operations/delete-collection.js.map +1 -0
  51. package/dist/operations/delete-collection.test.d.ts +2 -0
  52. package/dist/operations/delete-collection.test.d.ts.map +1 -0
  53. package/dist/operations/delete-collection.test.js +61 -0
  54. package/dist/operations/delete-collection.test.js.map +1 -0
  55. package/dist/operations/import-people-from-collection.d.ts +30 -0
  56. package/dist/operations/import-people-from-collection.d.ts.map +1 -0
  57. package/dist/operations/import-people-from-collection.js +65 -0
  58. package/dist/operations/import-people-from-collection.js.map +1 -0
  59. package/dist/operations/import-people-from-collection.test.d.ts +2 -0
  60. package/dist/operations/import-people-from-collection.test.d.ts.map +1 -0
  61. package/dist/operations/import-people-from-collection.test.js +170 -0
  62. package/dist/operations/import-people-from-collection.test.js.map +1 -0
  63. package/dist/operations/index.d.ts +7 -0
  64. package/dist/operations/index.d.ts.map +1 -1
  65. package/dist/operations/index.js +9 -0
  66. package/dist/operations/index.js.map +1 -1
  67. package/dist/operations/list-collections.d.ts +18 -0
  68. package/dist/operations/list-collections.d.ts.map +1 -0
  69. package/dist/operations/list-collections.js +22 -0
  70. package/dist/operations/list-collections.js.map +1 -0
  71. package/dist/operations/list-collections.test.d.ts +2 -0
  72. package/dist/operations/list-collections.test.d.ts.map +1 -0
  73. package/dist/operations/list-collections.test.js +73 -0
  74. package/dist/operations/list-collections.test.js.map +1 -0
  75. package/dist/operations/remove-people-from-collection.d.ts +21 -0
  76. package/dist/operations/remove-people-from-collection.d.ts.map +1 -0
  77. package/dist/operations/remove-people-from-collection.js +26 -0
  78. package/dist/operations/remove-people-from-collection.js.map +1 -0
  79. package/dist/operations/remove-people-from-collection.test.d.ts +2 -0
  80. package/dist/operations/remove-people-from-collection.test.d.ts.map +1 -0
  81. package/dist/operations/remove-people-from-collection.test.js +68 -0
  82. package/dist/operations/remove-people-from-collection.test.js.map +1 -0
  83. package/dist/services/collection.d.ts +84 -0
  84. package/dist/services/collection.d.ts.map +1 -0
  85. package/dist/services/collection.js +145 -0
  86. package/dist/services/collection.js.map +1 -0
  87. package/dist/services/collection.test.d.ts +2 -0
  88. package/dist/services/collection.test.d.ts.map +1 -0
  89. package/dist/services/collection.test.js +203 -0
  90. package/dist/services/collection.test.js.map +1 -0
  91. package/dist/services/errors.d.ts +16 -0
  92. package/dist/services/errors.d.ts.map +1 -1
  93. package/dist/services/errors.js +23 -0
  94. package/dist/services/errors.js.map +1 -1
  95. package/dist/services/index.d.ts +3 -1
  96. package/dist/services/index.d.ts.map +1 -1
  97. package/dist/services/index.js +3 -1
  98. package/dist/services/index.js.map +1 -1
  99. package/dist/services/source-type-registry.d.ts +19 -0
  100. package/dist/services/source-type-registry.d.ts.map +1 -0
  101. package/dist/services/source-type-registry.js +66 -0
  102. package/dist/services/source-type-registry.js.map +1 -0
  103. package/dist/services/source-type-registry.test.d.ts +2 -0
  104. package/dist/services/source-type-registry.test.d.ts.map +1 -0
  105. package/dist/services/source-type-registry.test.js +124 -0
  106. package/dist/services/source-type-registry.test.js.map +1 -0
  107. package/dist/types/collection.d.ts +12 -0
  108. package/dist/types/collection.d.ts.map +1 -0
  109. package/dist/types/collection.js +4 -0
  110. package/dist/types/collection.js.map +1 -0
  111. package/dist/types/index.d.ts +1 -0
  112. package/dist/types/index.d.ts.map +1 -1
  113. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  export { DatabaseClient, type DatabaseClientOptions } from "./client.js";
2
2
  export { discoverAllDatabases, discoverDatabase } from "./discovery.js";
3
3
  export { ActionNotFoundError, CampaignNotFoundError, ChatNotFoundError, DatabaseError, DatabaseNotFoundError, ExcludeListNotFoundError, NoNextActionError, ProfileNotFoundError, } from "./errors.js";
4
- export { CampaignExcludeListRepository, CampaignRepository, CampaignStatisticsRepository, MessageRepository, ProfileRepository, } from "./repositories/index.js";
4
+ export { CampaignExcludeListRepository, CampaignRepository, CampaignStatisticsRepository, CollectionListRepository, type CollectionSummary, MessageRepository, ProfileRepository, } from "./repositories/index.js";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,6BAA6B,EAC7B,kBAAkB,EAClB,4BAA4B,EAC5B,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,6BAA6B,EAC7B,kBAAkB,EAClB,4BAA4B,EAC5B,wBAAwB,EACxB,KAAK,iBAAiB,EACtB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC"}
package/dist/db/index.js CHANGED
@@ -3,5 +3,5 @@
3
3
  export { DatabaseClient } from "./client.js";
4
4
  export { discoverAllDatabases, discoverDatabase } from "./discovery.js";
5
5
  export { ActionNotFoundError, CampaignNotFoundError, ChatNotFoundError, DatabaseError, DatabaseNotFoundError, ExcludeListNotFoundError, NoNextActionError, ProfileNotFoundError, } from "./errors.js";
6
- export { CampaignExcludeListRepository, CampaignRepository, CampaignStatisticsRepository, MessageRepository, ProfileRepository, } from "./repositories/index.js";
6
+ export { CampaignExcludeListRepository, CampaignRepository, CampaignStatisticsRepository, CollectionListRepository, MessageRepository, ProfileRepository, } from "./repositories/index.js";
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EAAE,cAAc,EAA8B,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,6BAA6B,EAC7B,kBAAkB,EAClB,4BAA4B,EAC5B,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EAAE,cAAc,EAA8B,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,6BAA6B,EAC7B,kBAAkB,EAClB,4BAA4B,EAC5B,wBAAwB,EAExB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,69 @@
1
+ import type { DatabaseClient } from "../client.js";
2
+ /**
3
+ * Summary of a named collection (LH "List").
4
+ */
5
+ export interface CollectionSummary {
6
+ readonly id: number;
7
+ readonly name: string;
8
+ readonly peopleCount: number;
9
+ readonly createdAt: string;
10
+ }
11
+ /**
12
+ * Repository for LinkedHelper Lists (collections) CRUD operations.
13
+ *
14
+ * Named collections are user-visible lists managed via the LH
15
+ * `ListsManager` UI. Exclude-list collections (name IS NULL) are
16
+ * filtered out automatically.
17
+ *
18
+ * Write operations require the DatabaseClient to be opened with
19
+ * `{ readOnly: false }`.
20
+ */
21
+ export declare class CollectionListRepository {
22
+ private readonly client;
23
+ private readonly stmtListCollections;
24
+ private writeStatements;
25
+ constructor(client: DatabaseClient);
26
+ /**
27
+ * List all named collections with people counts.
28
+ */
29
+ listCollections(): CollectionSummary[];
30
+ /**
31
+ * Create a new named collection.
32
+ *
33
+ * @returns The ID of the newly created collection.
34
+ */
35
+ createCollection(accountId: number, name: string): number;
36
+ /**
37
+ * Delete a collection and all its people associations.
38
+ *
39
+ * @returns `true` if the collection existed and was deleted.
40
+ */
41
+ deleteCollection(collectionId: number): boolean;
42
+ /**
43
+ * Add people to a collection.
44
+ *
45
+ * @returns Number of people actually added (excludes already-present).
46
+ */
47
+ addPeople(collectionId: number, personIds: number[]): number;
48
+ /**
49
+ * Remove people from a collection.
50
+ *
51
+ * @returns Number of people actually removed.
52
+ */
53
+ removePeople(collectionId: number, personIds: number[]): number;
54
+ /**
55
+ * Get LinkedIn profile URLs for all people in a collection.
56
+ *
57
+ * Reads person IDs from `collection_people` and resolves their
58
+ * LinkedIn public IDs from `person_external_ids`.
59
+ *
60
+ * @returns Array of LinkedIn profile URLs.
61
+ */
62
+ getCollectionPeopleUrls(collectionId: number): string[];
63
+ /**
64
+ * Prepare write statements lazily (only when needed).
65
+ * This avoids issues when the client is opened in read-only mode.
66
+ */
67
+ private getWriteStatements;
68
+ }
69
+ //# sourceMappingURL=collection-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection-list.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/collection-list.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAMnD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;GASG;AACH,qBAAa,wBAAwB;IAYvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAXnC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAGrC,OAAO,CAAC,eAAe,CAMP;gBAEa,MAAM,EAAE,cAAc;IAenD;;OAEG;IACH,eAAe,IAAI,iBAAiB,EAAE;IAgBtC;;;;OAIG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAMzD;;;;OAIG;IACH,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAe/C;;;;OAIG;IACH,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM;IAwB5D;;;;OAIG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM;IAwB/D;;;;;;;OAOG;IACH,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE;IAiBvD;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CA4B3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=collection-list.integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection-list.integration.test.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/collection-list.integration.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,124 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-only
2
+ // Copyright (C) 2026 Oleksii PELYKH
3
+ import { afterAll, beforeAll, describe, expect, it } from "vitest";
4
+ import { DatabaseClient } from "../client.js";
5
+ import { FIXTURE_PATH } from "../testing/open-fixture.js";
6
+ import { CollectionListRepository } from "./collection-list.js";
7
+ describe("CollectionListRepository (integration)", () => {
8
+ let client;
9
+ let repo;
10
+ beforeAll(() => {
11
+ // Open in write mode so we can test write operations
12
+ client = new DatabaseClient(FIXTURE_PATH, { readOnly: false });
13
+ repo = new CollectionListRepository(client);
14
+ });
15
+ afterAll(() => {
16
+ client.close();
17
+ });
18
+ describe("listCollections", () => {
19
+ it("returns named collections with people counts from fixture", () => {
20
+ const collections = repo.listCollections();
21
+ // Fixture has 3 named collections (id 10, 11, 12)
22
+ // Exclude-list collections (id 1-6, name NULL) are filtered out
23
+ expect(collections.length).toBeGreaterThanOrEqual(3);
24
+ const prospects = collections.find((c) => c.name === "Prospects");
25
+ expect(prospects).toBeDefined();
26
+ expect(prospects.peopleCount).toBe(2);
27
+ const clients = collections.find((c) => c.name === "Clients");
28
+ expect(clients).toBeDefined();
29
+ expect(clients.peopleCount).toBe(1);
30
+ const emptyList = collections.find((c) => c.name === "Empty List");
31
+ expect(emptyList).toBeDefined();
32
+ expect(emptyList.peopleCount).toBe(0);
33
+ });
34
+ it("excludes unnamed collections (exclude lists)", () => {
35
+ const collections = repo.listCollections();
36
+ // No collection should have a null name
37
+ for (const c of collections) {
38
+ expect(c.name).not.toBeNull();
39
+ expect(c.name.length).toBeGreaterThan(0);
40
+ }
41
+ });
42
+ });
43
+ describe("createCollection", () => {
44
+ it("creates a new named collection and returns its ID", () => {
45
+ const id = repo.createCollection(1, "Integration Test List");
46
+ expect(id).toBeGreaterThan(0);
47
+ // Verify it appears in listCollections
48
+ const collections = repo.listCollections();
49
+ const created = collections.find((c) => c.name === "Integration Test List");
50
+ expect(created).toBeDefined();
51
+ expect(created.id).toBe(id);
52
+ expect(created.peopleCount).toBe(0);
53
+ });
54
+ });
55
+ describe("addPeople", () => {
56
+ it("adds people to a collection", () => {
57
+ const id = repo.createCollection(1, "Add People Test");
58
+ const added = repo.addPeople(id, [1, 3]);
59
+ expect(added).toBe(2);
60
+ });
61
+ it("returns 0 for already-present people", () => {
62
+ const id = repo.createCollection(1, "Duplicate Test");
63
+ repo.addPeople(id, [1]);
64
+ const added = repo.addPeople(id, [1]);
65
+ expect(added).toBe(0);
66
+ });
67
+ it("returns 0 for empty personIds", () => {
68
+ const added = repo.addPeople(10, []);
69
+ expect(added).toBe(0);
70
+ });
71
+ });
72
+ describe("removePeople", () => {
73
+ it("removes people from a collection", () => {
74
+ const id = repo.createCollection(1, "Remove People Test");
75
+ repo.addPeople(id, [1, 2, 3]);
76
+ const removed = repo.removePeople(id, [1, 3]);
77
+ expect(removed).toBe(2);
78
+ });
79
+ it("returns 0 for non-present people", () => {
80
+ const id = repo.createCollection(1, "Remove Non-Present Test");
81
+ const removed = repo.removePeople(id, [999]);
82
+ expect(removed).toBe(0);
83
+ });
84
+ it("returns 0 for empty personIds", () => {
85
+ const removed = repo.removePeople(10, []);
86
+ expect(removed).toBe(0);
87
+ });
88
+ });
89
+ describe("deleteCollection", () => {
90
+ it("deletes a named collection and its people", () => {
91
+ const id = repo.createCollection(1, "Delete Test");
92
+ repo.addPeople(id, [1, 2]);
93
+ const deleted = repo.deleteCollection(id);
94
+ expect(deleted).toBe(true);
95
+ // Verify it no longer appears
96
+ const collections = repo.listCollections();
97
+ expect(collections.find((c) => c.id === id)).toBeUndefined();
98
+ });
99
+ it("returns false for non-existent collection", () => {
100
+ const deleted = repo.deleteCollection(99999);
101
+ expect(deleted).toBe(false);
102
+ });
103
+ it("does not delete unnamed collections (exclude lists)", () => {
104
+ // Collection 1 is an exclude list (name IS NULL)
105
+ const deleted = repo.deleteCollection(1);
106
+ expect(deleted).toBe(false);
107
+ });
108
+ });
109
+ describe("getCollectionPeopleUrls", () => {
110
+ it("returns LinkedIn URLs for people in collection", () => {
111
+ // Collection 10 (Prospects) has people 1 (Ada) and 3 (Charlie)
112
+ // Person 1 has public ID 'ada-lovelace-test'
113
+ const urls = repo.getCollectionPeopleUrls(10);
114
+ expect(urls.length).toBeGreaterThanOrEqual(1);
115
+ const adaUrl = urls.find((u) => u.includes("ada-lovelace-test"));
116
+ expect(adaUrl).toBe("https://www.linkedin.com/in/ada-lovelace-test/");
117
+ });
118
+ it("returns empty array for empty collection", () => {
119
+ const urls = repo.getCollectionPeopleUrls(12);
120
+ expect(urls).toEqual([]);
121
+ });
122
+ });
123
+ });
124
+ //# sourceMappingURL=collection-list.integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection-list.integration.test.js","sourceRoot":"","sources":["../../../src/db/repositories/collection-list.integration.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-only
2
+ // Copyright (C) 2026 Oleksii PELYKH
3
+ /**
4
+ * Repository for LinkedHelper Lists (collections) CRUD operations.
5
+ *
6
+ * Named collections are user-visible lists managed via the LH
7
+ * `ListsManager` UI. Exclude-list collections (name IS NULL) are
8
+ * filtered out automatically.
9
+ *
10
+ * Write operations require the DatabaseClient to be opened with
11
+ * `{ readOnly: false }`.
12
+ */
13
+ export class CollectionListRepository {
14
+ client;
15
+ stmtListCollections;
16
+ // Write statements (prepared lazily to avoid issues with read-only mode)
17
+ writeStatements = null;
18
+ constructor(client) {
19
+ this.client = client;
20
+ const { db } = client;
21
+ this.stmtListCollections = db.prepare(`SELECT c.id, c.name,
22
+ COUNT(cp.person_id) AS people_count,
23
+ c.created_at
24
+ FROM collections c
25
+ LEFT JOIN collection_people cp ON cp.collection_id = c.id
26
+ WHERE c.name IS NOT NULL
27
+ GROUP BY c.id
28
+ ORDER BY c.id`);
29
+ }
30
+ /**
31
+ * List all named collections with people counts.
32
+ */
33
+ listCollections() {
34
+ const rows = this.stmtListCollections.all();
35
+ return rows.map((r) => ({
36
+ id: r.id,
37
+ name: r.name,
38
+ peopleCount: r.people_count,
39
+ createdAt: r.created_at,
40
+ }));
41
+ }
42
+ /**
43
+ * Create a new named collection.
44
+ *
45
+ * @returns The ID of the newly created collection.
46
+ */
47
+ createCollection(accountId, name) {
48
+ const stmts = this.getWriteStatements();
49
+ const result = stmts.insertCollection.run(accountId, name);
50
+ return Number(result.lastInsertRowid);
51
+ }
52
+ /**
53
+ * Delete a collection and all its people associations.
54
+ *
55
+ * @returns `true` if the collection existed and was deleted.
56
+ */
57
+ deleteCollection(collectionId) {
58
+ const stmts = this.getWriteStatements();
59
+ this.client.db.exec("BEGIN");
60
+ try {
61
+ stmts.deleteCollectionPeople.run(collectionId);
62
+ const result = stmts.deleteCollection.run(collectionId);
63
+ this.client.db.exec("COMMIT");
64
+ return result.changes > 0;
65
+ }
66
+ catch (e) {
67
+ this.client.db.exec("ROLLBACK");
68
+ throw e;
69
+ }
70
+ }
71
+ /**
72
+ * Add people to a collection.
73
+ *
74
+ * @returns Number of people actually added (excludes already-present).
75
+ */
76
+ addPeople(collectionId, personIds) {
77
+ if (personIds.length === 0)
78
+ return 0;
79
+ const stmts = this.getWriteStatements();
80
+ let added = 0;
81
+ this.client.db.exec("BEGIN");
82
+ try {
83
+ for (const personId of personIds) {
84
+ const result = stmts.insertCollectionPerson.run(collectionId, personId);
85
+ if (result.changes > 0)
86
+ added++;
87
+ }
88
+ this.client.db.exec("COMMIT");
89
+ }
90
+ catch (e) {
91
+ this.client.db.exec("ROLLBACK");
92
+ throw e;
93
+ }
94
+ return added;
95
+ }
96
+ /**
97
+ * Remove people from a collection.
98
+ *
99
+ * @returns Number of people actually removed.
100
+ */
101
+ removePeople(collectionId, personIds) {
102
+ if (personIds.length === 0)
103
+ return 0;
104
+ const stmts = this.getWriteStatements();
105
+ let removed = 0;
106
+ this.client.db.exec("BEGIN");
107
+ try {
108
+ for (const personId of personIds) {
109
+ const result = stmts.deleteCollectionPerson.run(collectionId, personId);
110
+ if (result.changes > 0)
111
+ removed++;
112
+ }
113
+ this.client.db.exec("COMMIT");
114
+ }
115
+ catch (e) {
116
+ this.client.db.exec("ROLLBACK");
117
+ throw e;
118
+ }
119
+ return removed;
120
+ }
121
+ /**
122
+ * Get LinkedIn profile URLs for all people in a collection.
123
+ *
124
+ * Reads person IDs from `collection_people` and resolves their
125
+ * LinkedIn public IDs from `person_external_ids`.
126
+ *
127
+ * @returns Array of LinkedIn profile URLs.
128
+ */
129
+ getCollectionPeopleUrls(collectionId) {
130
+ const rows = this.client.db
131
+ .prepare(`SELECT pei.external_id
132
+ FROM collection_people cp
133
+ JOIN person_external_ids pei
134
+ ON pei.person_id = cp.person_id AND pei.type_group = 'public'
135
+ WHERE cp.collection_id = ?
136
+ ORDER BY cp.person_id`)
137
+ .all(collectionId);
138
+ return rows.map((r) => `https://www.linkedin.com/in/${r.external_id}/`);
139
+ }
140
+ /**
141
+ * Prepare write statements lazily (only when needed).
142
+ * This avoids issues when the client is opened in read-only mode.
143
+ */
144
+ getWriteStatements() {
145
+ if (this.writeStatements)
146
+ return this.writeStatements;
147
+ const { db } = this.client;
148
+ this.writeStatements = {
149
+ insertCollection: db.prepare(`INSERT INTO collections (li_account_id, name, created_at, updated_at)
150
+ VALUES (?, ?, datetime('now'), datetime('now'))`),
151
+ deleteCollectionPeople: db.prepare(`DELETE FROM collection_people WHERE collection_id = ?`),
152
+ deleteCollection: db.prepare(`DELETE FROM collections WHERE id = ? AND name IS NOT NULL`),
153
+ insertCollectionPerson: db.prepare(`INSERT OR IGNORE INTO collection_people (collection_id, person_id)
154
+ VALUES (?, ?)`),
155
+ deleteCollectionPerson: db.prepare(`DELETE FROM collection_people
156
+ WHERE collection_id = ? AND person_id = ?`),
157
+ };
158
+ return this.writeStatements;
159
+ }
160
+ }
161
+ //# sourceMappingURL=collection-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection-list.js","sourceRoot":"","sources":["../../../src/db/repositories/collection-list.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  export { CampaignExcludeListRepository } from "./campaign-exclude-list.js";
2
2
  export { CampaignRepository } from "./campaign.js";
3
3
  export { CampaignStatisticsRepository } from "./campaign-statistics.js";
4
+ export { CollectionListRepository, type CollectionSummary, } from "./collection-list.js";
4
5
  export { MessageRepository } from "./message.js";
5
6
  export { ProfileRepository } from "./profile.js";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EACL,wBAAwB,EACxB,KAAK,iBAAiB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
@@ -3,6 +3,7 @@
3
3
  export { CampaignExcludeListRepository } from "./campaign-exclude-list.js";
4
4
  export { CampaignRepository } from "./campaign.js";
5
5
  export { CampaignStatisticsRepository } from "./campaign-statistics.js";
6
+ export { CollectionListRepository, } from "./collection-list.js";
6
7
  export { MessageRepository } from "./message.js";
7
8
  export { ProfileRepository } from "./profile.js";
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/repositories/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/repositories/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EACL,wBAAwB,GAEzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
@@ -738,6 +738,23 @@ db.exec(`
738
738
  UPDATE action_versions SET exclude_list_id = 5 WHERE id = 6;
739
739
  UPDATE action_versions SET exclude_list_id = 6 WHERE id = 7;
740
740
  `);
741
+ // ── Named Collections (Lists) Data ──────────────────────────────────
742
+ // Collection 10: "Prospects" list with 2 people (Ada, Charlie)
743
+ // Collection 11: "Clients" list with 1 person (Ada)
744
+ // Collection 12: "Empty List" with no people
745
+ db.exec(`
746
+ INSERT INTO collections (id, li_account_id, name, created_at, updated_at)
747
+ VALUES
748
+ (10, 1, 'Prospects', '${NOW}', '${NOW}'),
749
+ (11, 1, 'Clients', '${NOW}', '${NOW}'),
750
+ (12, 1, 'Empty List', '${NOW}', '${NOW}');
751
+
752
+ INSERT INTO collection_people (collection_id, person_id)
753
+ VALUES
754
+ (10, 1),
755
+ (10, 3),
756
+ (11, 1);
757
+ `);
741
758
  // ── Write to disk ───────────────────────────────────────────────────
742
759
  await backup(db, FIXTURE_PATH);
743
760
  db.close();
@@ -1 +1 @@
1
- {"version":3,"file":"create-fixture.js","sourceRoot":"","sources":["../../../src/db/testing/create-fixture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-fixture.js","sourceRoot":"","sources":["../../../src/db/testing/create-fixture.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- export type { Account, ActionConfig, ActionErrorSummary, ActionPeopleCounts, ActionStatistics, CampaignActionConfig, CampaignActionResult, CampaignActionUpdateConfig, ActionSettings, ActionTargetPerson, Campaign, CampaignAction, CampaignConfig, CampaignPersonEntry, CampaignPersonState, CampaignRunResult, CampaignState, ResultProfileData, CampaignStatistics, CampaignStatus, CampaignSummary, CampaignUpdateConfig, CriticalErrorIssueData, DialogIssueData, ExcludeListEntry, Chat, ChatParticipant, ConversationMessages, ConversationThread, CurrentPosition, Education, ExternalId, ExternalIdTypeGroup, GetResultsOptions, GetStatisticsOptions, ImportPeopleResult, RemovePeopleResult, InstanceInfo, InstanceIssue, InstanceStatus, ListCampaignPeopleOptions, ListCampaignsOptions, Message, MessageStats, MessageSummary, MiniProfile, PopupState, Position, Profile, ProfileFindOptions, ProfileSearchOptions, ProfileSearchResult, ProfileSummary, RunnerState, Skill, StartInstanceParams, StartInstanceResult, UIHealthStatus, } from "./types/index.js";
2
- export { AccountResolutionError, ActionExecutionError, type ActionResult, AppLaunchError, AppNotFoundError, AppService, type AppServiceOptions, CampaignExecutionError, CampaignService, CampaignTimeoutError, type DatabaseContext, ExtractionTimeoutError, type InstanceDatabaseContext, InstanceNotRunningError, InstanceService, InvalidProfileUrlError, LauncherService, LinkedHelperNotRunningError, LinkedHelperUnreachableError, resolveAccount, ServiceError, StartInstanceError, startInstanceWithRecovery, UIBlockedError, type StartInstanceOutcome, checkStatus, type AccountInstanceStatus, type DatabaseStatus, type LauncherStatus, type StatusReport, waitForInstancePort, waitForInstanceShutdown, withDatabase, withInstanceDatabase, WrongPortError, } from "./services/index.js";
3
- export { CampaignExcludeListRepository, CampaignRepository, CampaignStatisticsRepository, DatabaseClient, type DatabaseClientOptions, discoverAllDatabases, discoverDatabase, MessageRepository, ProfileRepository, } from "./db/index.js";
1
+ export type { Account, ActionConfig, ActionErrorSummary, ActionPeopleCounts, ActionStatistics, CampaignActionConfig, CampaignActionResult, CampaignActionUpdateConfig, ActionSettings, ActionTargetPerson, Campaign, CampaignAction, CampaignConfig, CampaignPersonEntry, CampaignPersonState, CampaignRunResult, CampaignState, ResultProfileData, CampaignStatistics, CampaignStatus, CampaignSummary, CampaignUpdateConfig, CriticalErrorIssueData, DialogIssueData, ExcludeListEntry, Chat, ChatParticipant, ConversationMessages, ConversationThread, CurrentPosition, Education, ExternalId, ExternalIdTypeGroup, GetResultsOptions, GetStatisticsOptions, ImportPeopleResult, RemovePeopleResult, InstanceInfo, InstanceIssue, InstanceStatus, ListCampaignPeopleOptions, ListCampaignsOptions, Message, MessageStats, MessageSummary, MiniProfile, PopupState, Position, Profile, ProfileFindOptions, ProfileSearchOptions, ProfileSearchResult, ProfileSummary, RunnerState, Skill, SourceTier, SourceType, StartInstanceParams, StartInstanceResult, UIHealthStatus, } from "./types/index.js";
2
+ export { AccountResolutionError, ActionExecutionError, type ActionResult, AppLaunchError, AppNotFoundError, AppService, type AppServiceOptions, CampaignExecutionError, CampaignService, CampaignTimeoutError, CollectionBusyError, CollectionError, type DatabaseContext, detectSourceType, ExtractionTimeoutError, type InstanceDatabaseContext, InstanceNotRunningError, InstanceService, InvalidProfileUrlError, LauncherService, LinkedHelperNotRunningError, LinkedHelperUnreachableError, resolveAccount, ServiceError, StartInstanceError, startInstanceWithRecovery, UIBlockedError, validateSourceType, type StartInstanceOutcome, checkStatus, type AccountInstanceStatus, type DatabaseStatus, type LauncherStatus, type StatusReport, waitForInstancePort, waitForInstanceShutdown, withDatabase, withInstanceDatabase, WrongPortError, } from "./services/index.js";
3
+ export { CampaignExcludeListRepository, CampaignRepository, CampaignStatisticsRepository, CollectionListRepository, type CollectionSummary, DatabaseClient, type DatabaseClientOptions, discoverAllDatabases, discoverDatabase, MessageRepository, ProfileRepository, } from "./db/index.js";
4
4
  export { CampaignFormatError, FormatError, parseCampaignJson, parseCampaignYaml, serializeCampaignJson, serializeCampaignYaml, } from "./formats/index.js";
5
5
  export { type ActionCategory, type ActionType, type ActionTypeCatalog, type ActionTypeInfo, type ConfigFieldSchema, getActionTypeCatalog, getActionTypeInfo, } from "./data/index.js";
6
6
  export { ActionNotFoundError, CampaignNotFoundError, ChatNotFoundError, DatabaseError, DatabaseNotFoundError, ExcludeListNotFoundError, NoNextActionError, ProfileNotFoundError, } from "./db/index.js";
7
7
  export { CDPConnectionError, CDPError, CDPEvaluationError, CDPTimeoutError, discoverInstancePort, discoverTargets, findApp, type DiscoveredApp, killInstanceProcesses, } from "./cdp/index.js";
8
- export { type ConnectionOptions, campaignGet, type CampaignGetInput, type CampaignGetOutput, campaignList, type CampaignListInput, type CampaignListOutput, campaignCreate, type CampaignCreateInput, type CampaignCreateOutput, campaignUpdate, type CampaignUpdateInput, type CampaignUpdateOutput, campaignDelete, type CampaignDeleteInput, type CampaignDeleteOutput, campaignListPeople, type CampaignListPeopleInput, type CampaignListPeopleOutput, campaignStart, type CampaignStartInput, type CampaignStartOutput, campaignStop, type CampaignStopInput, type CampaignStopOutput, campaignRetry, type CampaignRetryInput, type CampaignRetryOutput, campaignMoveNext, type CampaignMoveNextInput, type CampaignMoveNextOutput, campaignStatistics, type CampaignStatisticsInput, type CampaignStatisticsOutput, campaignStatus, type CampaignStatusInput, type CampaignStatusOutput, campaignAddAction, type CampaignAddActionInput, type CampaignAddActionOutput, campaignRemoveAction, type CampaignRemoveActionInput, type CampaignRemoveActionOutput, campaignUpdateAction, type CampaignUpdateActionInput, type CampaignUpdateActionOutput, campaignReorderActions, type CampaignReorderActionsInput, type CampaignReorderActionsOutput, campaignExport, type CampaignExportInput, type CampaignExportOutput, campaignExcludeAdd, type CampaignExcludeAddInput, type CampaignExcludeAddOutput, campaignExcludeRemove, type CampaignExcludeRemoveInput, type CampaignExcludeRemoveOutput, campaignExcludeList, type CampaignExcludeListInput, type CampaignExcludeListOutput, getErrors, type GetErrorsInput, type GetErrorsOutput, queryMessages, type QueryMessagesInput, type QueryMessagesOutput, checkReplies, type CheckRepliesInput, type CheckRepliesOutput, scrapeMessagingHistory, type ScrapeMessagingHistoryInput, type ScrapeMessagingHistoryOutput, importPeopleFromUrls, type ImportPeopleFromUrlsInput, type ImportPeopleFromUrlsOutput, campaignRemovePeople, type CampaignRemovePeopleInput, type CampaignRemovePeopleOutput, } from "./operations/index.js";
8
+ export { type ConnectionOptions, campaignGet, type CampaignGetInput, type CampaignGetOutput, campaignList, type CampaignListInput, type CampaignListOutput, campaignCreate, type CampaignCreateInput, type CampaignCreateOutput, campaignUpdate, type CampaignUpdateInput, type CampaignUpdateOutput, campaignDelete, type CampaignDeleteInput, type CampaignDeleteOutput, collectPeople, type CollectPeopleInput, type CollectPeopleOutput, campaignListPeople, type CampaignListPeopleInput, type CampaignListPeopleOutput, campaignStart, type CampaignStartInput, type CampaignStartOutput, campaignStop, type CampaignStopInput, type CampaignStopOutput, campaignRetry, type CampaignRetryInput, type CampaignRetryOutput, campaignMoveNext, type CampaignMoveNextInput, type CampaignMoveNextOutput, campaignStatistics, type CampaignStatisticsInput, type CampaignStatisticsOutput, campaignStatus, type CampaignStatusInput, type CampaignStatusOutput, campaignAddAction, type CampaignAddActionInput, type CampaignAddActionOutput, campaignRemoveAction, type CampaignRemoveActionInput, type CampaignRemoveActionOutput, campaignUpdateAction, type CampaignUpdateActionInput, type CampaignUpdateActionOutput, campaignReorderActions, type CampaignReorderActionsInput, type CampaignReorderActionsOutput, campaignExport, type CampaignExportInput, type CampaignExportOutput, campaignExcludeAdd, type CampaignExcludeAddInput, type CampaignExcludeAddOutput, campaignExcludeRemove, type CampaignExcludeRemoveInput, type CampaignExcludeRemoveOutput, campaignExcludeList, type CampaignExcludeListInput, type CampaignExcludeListOutput, getErrors, type GetErrorsInput, type GetErrorsOutput, queryMessages, type QueryMessagesInput, type QueryMessagesOutput, checkReplies, type CheckRepliesInput, type CheckRepliesOutput, scrapeMessagingHistory, type ScrapeMessagingHistoryInput, type ScrapeMessagingHistoryOutput, importPeopleFromUrls, type ImportPeopleFromUrlsInput, type ImportPeopleFromUrlsOutput, campaignRemovePeople, type CampaignRemovePeopleInput, type CampaignRemovePeopleOutput, listCollections, type ListCollectionsInput, type ListCollectionsOutput, createCollection, type CreateCollectionInput, type CreateCollectionOutput, deleteCollection, type DeleteCollectionInput, type DeleteCollectionOutput, addPeopleToCollection, type AddPeopleToCollectionInput, type AddPeopleToCollectionOutput, removePeopleFromCollection, type RemovePeopleFromCollectionInput, type RemovePeopleFromCollectionOutput, importPeopleFromCollection, type ImportPeopleFromCollectionInput, type ImportPeopleFromCollectionOutput, } from "./operations/index.js";
9
9
  export { DEFAULT_CDP_PORT } from "./constants.js";
10
10
  export { delay, errorMessage, isCdpPort, isLoopbackAddress } from "./utils/index.js";
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  // SPDX-License-Identifier: AGPL-3.0-only
2
2
  // Copyright (C) 2026 Oleksii PELYKH
3
3
  // Services
4
- export { AccountResolutionError, ActionExecutionError, AppLaunchError, AppNotFoundError, AppService, CampaignExecutionError, CampaignService, CampaignTimeoutError, ExtractionTimeoutError, InstanceNotRunningError, InstanceService, InvalidProfileUrlError, LauncherService, LinkedHelperNotRunningError, LinkedHelperUnreachableError, resolveAccount, ServiceError, StartInstanceError, startInstanceWithRecovery, UIBlockedError, checkStatus, waitForInstancePort, waitForInstanceShutdown, withDatabase, withInstanceDatabase, WrongPortError, } from "./services/index.js";
4
+ export { AccountResolutionError, ActionExecutionError, AppLaunchError, AppNotFoundError, AppService, CampaignExecutionError, CampaignService, CampaignTimeoutError, CollectionBusyError, CollectionError, detectSourceType, ExtractionTimeoutError, InstanceNotRunningError, InstanceService, InvalidProfileUrlError, LauncherService, LinkedHelperNotRunningError, LinkedHelperUnreachableError, resolveAccount, ServiceError, StartInstanceError, startInstanceWithRecovery, UIBlockedError, validateSourceType, checkStatus, waitForInstancePort, waitForInstanceShutdown, withDatabase, withInstanceDatabase, WrongPortError, } from "./services/index.js";
5
5
  // Data access
6
- export { CampaignExcludeListRepository, CampaignRepository, CampaignStatisticsRepository, DatabaseClient, discoverAllDatabases, discoverDatabase, MessageRepository, ProfileRepository, } from "./db/index.js";
6
+ export { CampaignExcludeListRepository, CampaignRepository, CampaignStatisticsRepository, CollectionListRepository, DatabaseClient, discoverAllDatabases, discoverDatabase, MessageRepository, ProfileRepository, } from "./db/index.js";
7
7
  // Formats
8
8
  export { CampaignFormatError, FormatError, parseCampaignJson, parseCampaignYaml, serializeCampaignJson, serializeCampaignYaml, } from "./formats/index.js";
9
9
  // Data (action types catalog)
@@ -15,6 +15,8 @@ export { CDPConnectionError, CDPError, CDPEvaluationError, CDPTimeoutError, disc
15
15
  export {
16
16
  // Campaign CRUD
17
17
  campaignGet, campaignList, campaignCreate, campaignUpdate, campaignDelete,
18
+ // People collection
19
+ collectPeople,
18
20
  // Campaign people
19
21
  campaignListPeople,
20
22
  // Campaign execution
@@ -26,7 +28,9 @@ campaignExcludeAdd, campaignExcludeRemove, campaignExcludeList,
26
28
  // Error detection
27
29
  getErrors,
28
30
  // Messaging
29
- queryMessages, checkReplies, scrapeMessagingHistory, importPeopleFromUrls, campaignRemovePeople, } from "./operations/index.js";
31
+ queryMessages, checkReplies, scrapeMessagingHistory, importPeopleFromUrls, campaignRemovePeople,
32
+ // Collections (Lists)
33
+ listCollections, createCollection, deleteCollection, addPeopleToCollection, removePeopleFromCollection, importPeopleFromCollection, } from "./operations/index.js";
30
34
  // Constants
31
35
  export { DEFAULT_CDP_PORT } from "./constants.js";
32
36
  // Utilities
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAgEpC,WAAW;AACX,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EAEpB,cAAc,EACd,gBAAgB,EAChB,UAAU,EAEV,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EAEpB,sBAAsB,EAEtB,uBAAuB,EACvB,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,2BAA2B,EAC3B,4BAA4B,EAC5B,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,yBAAyB,EACzB,cAAc,EAEd,WAAW,EAKX,mBAAmB,EACnB,uBAAuB,EACvB,YAAY,EACZ,oBAAoB,EACpB,cAAc,GACf,MAAM,qBAAqB,CAAC;AAE7B,cAAc;AACd,OAAO,EACL,6BAA6B,EAC7B,kBAAkB,EAClB,4BAA4B,EAC5B,cAAc,EAEd,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAEvB,UAAU;AACV,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,8BAA8B;AAC9B,OAAO,EAML,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAEzB,mEAAmE;AACnE,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,EAClB,QAAQ,EACR,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,OAAO,EAEP,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,mDAAmD;AACnD,OAAO;AAEL,gBAAgB;AAChB,WAAW,EAGX,YAAY,EAGZ,cAAc,EAGd,cAAc,EAGd,cAAc;AAGd,kBAAkB;AAClB,kBAAkB;AAGlB,qBAAqB;AACrB,aAAa,EAGb,YAAY,EAGZ,aAAa,EAGb,gBAAgB,EAGhB,kBAAkB,EAGlB,cAAc;AAGd,yBAAyB;AACzB,iBAAiB,EAGjB,oBAAoB,EAGpB,oBAAoB,EAGpB,sBAAsB,EAGtB,cAAc;AAGd,eAAe;AACf,kBAAkB,EAGlB,qBAAqB,EAGrB,mBAAmB;AAGnB,kBAAkB;AAClB,SAAS;AAGT,YAAY;AACZ,aAAa,EAGb,YAAY,EAGZ,sBAAsB,EAGtB,oBAAoB,EAGpB,oBAAoB,GAGrB,MAAM,uBAAuB,CAAC;AAE/B,YAAY;AACZ,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,YAAY;AACZ,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAkEpC,WAAW;AACX,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EAEpB,cAAc,EACd,gBAAgB,EAChB,UAAU,EAEV,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EAEf,gBAAgB,EAChB,sBAAsB,EAEtB,uBAAuB,EACvB,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,2BAA2B,EAC3B,4BAA4B,EAC5B,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,yBAAyB,EACzB,cAAc,EACd,kBAAkB,EAElB,WAAW,EAKX,mBAAmB,EACnB,uBAAuB,EACvB,YAAY,EACZ,oBAAoB,EACpB,cAAc,GACf,MAAM,qBAAqB,CAAC;AAE7B,cAAc;AACd,OAAO,EACL,6BAA6B,EAC7B,kBAAkB,EAClB,4BAA4B,EAC5B,wBAAwB,EAExB,cAAc,EAEd,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAEvB,UAAU;AACV,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,8BAA8B;AAC9B,OAAO,EAML,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAEzB,mEAAmE;AACnE,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,EAClB,QAAQ,EACR,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,OAAO,EAEP,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,mDAAmD;AACnD,OAAO;AAEL,gBAAgB;AAChB,WAAW,EAGX,YAAY,EAGZ,cAAc,EAGd,cAAc,EAGd,cAAc;AAGd,oBAAoB;AACpB,aAAa;AAGb,kBAAkB;AAClB,kBAAkB;AAGlB,qBAAqB;AACrB,aAAa,EAGb,YAAY,EAGZ,aAAa,EAGb,gBAAgB,EAGhB,kBAAkB,EAGlB,cAAc;AAGd,yBAAyB;AACzB,iBAAiB,EAGjB,oBAAoB,EAGpB,oBAAoB,EAGpB,sBAAsB,EAGtB,cAAc;AAGd,eAAe;AACf,kBAAkB,EAGlB,qBAAqB,EAGrB,mBAAmB;AAGnB,kBAAkB;AAClB,SAAS;AAGT,YAAY;AACZ,aAAa,EAGb,YAAY,EAGZ,sBAAsB,EAGtB,oBAAoB,EAGpB,oBAAoB;AAGpB,sBAAsB;AACtB,eAAe,EAGf,gBAAgB,EAGhB,gBAAgB,EAGhB,qBAAqB,EAGrB,0BAA0B,EAG1B,0BAA0B,GAG3B,MAAM,uBAAuB,CAAC;AAE/B,YAAY;AACZ,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,YAAY;AACZ,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { ConnectionOptions } from "./types.js";
2
+ /**
3
+ * Input for the add-people-to-collection operation.
4
+ */
5
+ export interface AddPeopleToCollectionInput extends ConnectionOptions {
6
+ readonly collectionId: number;
7
+ readonly personIds: number[];
8
+ }
9
+ /**
10
+ * Output from the add-people-to-collection operation.
11
+ */
12
+ export interface AddPeopleToCollectionOutput {
13
+ readonly success: true;
14
+ readonly collectionId: number;
15
+ readonly added: number;
16
+ readonly alreadyInCollection: number;
17
+ }
18
+ /**
19
+ * Add people to a collection by person IDs.
20
+ */
21
+ export declare function addPeopleToCollection(input: AddPeopleToCollectionInput): Promise<AddPeopleToCollectionOutput>;
22
+ //# sourceMappingURL=add-people-to-collection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-people-to-collection.d.ts","sourceRoot":"","sources":["../../src/operations/add-people-to-collection.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,iBAAiB;IACnE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,2BAA2B,CAAC,CAkBtC"}