@lhremote/core 0.5.0 → 0.7.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/README.md +39 -0
- package/dist/cdp/client.d.ts +5 -1
- package/dist/cdp/client.d.ts.map +1 -1
- package/dist/cdp/client.js +11 -3
- package/dist/cdp/client.js.map +1 -1
- package/dist/data/index.d.ts +1 -0
- package/dist/data/index.d.ts.map +1 -1
- package/dist/data/index.js +1 -0
- package/dist/data/index.js.map +1 -1
- package/dist/data/linkedin-reference.d.ts +44 -0
- package/dist/data/linkedin-reference.d.ts.map +1 -0
- package/dist/data/linkedin-reference.js +316 -0
- package/dist/data/linkedin-reference.js.map +1 -0
- package/dist/data/linkedin-reference.test.d.ts +2 -0
- package/dist/data/linkedin-reference.test.d.ts.map +1 -0
- package/dist/data/linkedin-reference.test.js +124 -0
- package/dist/data/linkedin-reference.test.js.map +1 -0
- 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 +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -4
- 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/build-linkedin-url.d.ts +39 -0
- package/dist/operations/build-linkedin-url.d.ts.map +1 -0
- package/dist/operations/build-linkedin-url.js +72 -0
- package/dist/operations/build-linkedin-url.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 +9 -0
- package/dist/operations/index.d.ts.map +1 -1
- package/dist/operations/index.js +12 -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/operations/resolve-linkedin-entity.d.ts +33 -0
- package/dist/operations/resolve-linkedin-entity.d.ts.map +1 -0
- package/dist/operations/resolve-linkedin-entity.js +198 -0
- package/dist/operations/resolve-linkedin-entity.js.map +1 -0
- package/dist/services/app.d.ts.map +1 -1
- package/dist/services/app.js +37 -12
- package/dist/services/app.js.map +1 -1
- package/dist/services/app.test.js +57 -0
- package/dist/services/app.test.js.map +1 -1
- package/dist/services/boolean-expression.d.ts +29 -0
- package/dist/services/boolean-expression.d.ts.map +1 -0
- package/dist/services/boolean-expression.js +79 -0
- package/dist/services/boolean-expression.js.map +1 -0
- package/dist/services/boolean-expression.test.d.ts +2 -0
- package/dist/services/boolean-expression.test.d.ts.map +1 -0
- package/dist/services/boolean-expression.test.js +64 -0
- package/dist/services/boolean-expression.test.js.map +1 -0
- package/dist/services/collection.d.ts +84 -0
- package/dist/services/collection.d.ts.map +1 -0
- package/dist/services/collection.js +154 -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 +219 -0
- package/dist/services/collection.test.js.map +1 -0
- package/dist/services/errors.d.ts +27 -0
- package/dist/services/errors.d.ts.map +1 -1
- package/dist/services/errors.js +38 -0
- package/dist/services/errors.js.map +1 -1
- package/dist/services/index.d.ts +7 -1
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +7 -1
- package/dist/services/index.js.map +1 -1
- package/dist/services/instance.d.ts +12 -0
- package/dist/services/instance.d.ts.map +1 -1
- package/dist/services/instance.js +28 -0
- package/dist/services/instance.js.map +1 -1
- package/dist/services/instance.test.js +31 -0
- package/dist/services/instance.test.js.map +1 -1
- package/dist/services/launcher.d.ts +16 -0
- package/dist/services/launcher.d.ts.map +1 -1
- package/dist/services/launcher.js +63 -10
- package/dist/services/launcher.js.map +1 -1
- package/dist/services/launcher.test.js +109 -42
- package/dist/services/launcher.test.js.map +1 -1
- package/dist/services/sn-url-builder.d.ts +21 -0
- package/dist/services/sn-url-builder.d.ts.map +1 -0
- package/dist/services/sn-url-builder.js +132 -0
- package/dist/services/sn-url-builder.js.map +1 -0
- package/dist/services/sn-url-builder.test.d.ts +2 -0
- package/dist/services/sn-url-builder.test.d.ts.map +1 -0
- package/dist/services/sn-url-builder.test.js +130 -0
- package/dist/services/sn-url-builder.test.js.map +1 -0
- 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/url-builder.d.ts +12 -0
- package/dist/services/url-builder.d.ts.map +1 -0
- package/dist/services/url-builder.js +100 -0
- package/dist/services/url-builder.js.map +1 -0
- package/dist/services/url-builder.test.d.ts +2 -0
- package/dist/services/url-builder.test.d.ts.map +1 -0
- package/dist/services/url-builder.test.js +79 -0
- package/dist/services/url-builder.test.js.map +1 -0
- package/dist/services/url-templates.d.ts +41 -0
- package/dist/services/url-templates.d.ts.map +1 -0
- package/dist/services/url-templates.js +118 -0
- package/dist/services/url-templates.js.map +1 -0
- package/dist/services/url-templates.test.d.ts +2 -0
- package/dist/services/url-templates.test.d.ts.map +1 -0
- package/dist/services/url-templates.test.js +159 -0
- package/dist/services/url-templates.test.js.map +1 -0
- 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 +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/linkedin-url.d.ts +109 -0
- package/dist/types/linkedin-url.d.ts.map +1 -0
- package/dist/types/linkedin-url.js +4 -0
- package/dist/types/linkedin-url.js.map +1 -0
- package/package.json +1 -1
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, BasicSearchParams, BooleanExpressionInput, BooleanExpressionRaw, BooleanExpressionStructured, CompanySizeEntry, ConnectionDegreeEntry, EntityMatch, EntityType, FunctionEntry, IndustryEntry, ProfileLanguageEntry, ReferenceDataType, SNFilter, SNFilterValue, SNSearchParams, SeniorityEntry, SourceTier, SourceType, StartInstanceParams, StartInstanceResult, UIHealthStatus, UrlBuilderResult, } from "./types/index.js";
|
|
2
|
+
export { AccountResolutionError, ActionExecutionError, type ActionResult, AppLaunchError, AppNotFoundError, AppService, type AppServiceOptions, CampaignExecutionError, CampaignService, CampaignTimeoutError, CollectionBusyError, CollectionError, type DatabaseContext, buildBasicSearchUrl, buildBooleanExpression, buildParameterisedUrl, buildSNSearchUrl, detectSourceType, getFixedUrl, getParameterType, isFixedUrlType, isParameterisedType, isSNSearchBuilderType, isSearchBuilderType, 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, NodeIntegrationUnavailableError, 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
|
-
export { type ActionCategory, type ActionType, type ActionTypeCatalog, type ActionTypeInfo, type ConfigFieldSchema, getActionTypeCatalog, getActionTypeInfo, } from "./data/index.js";
|
|
5
|
+
export { type ActionCategory, type ActionType, type ActionTypeCatalog, type ActionTypeInfo, type ConfigFieldSchema, getActionTypeCatalog, getActionTypeInfo, getFunctionById, getIndustryById, getLinkedInReferenceData, getSeniorityById, isReferenceDataType, } 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, buildLinkedInUrl, type BuildLinkedInUrlInput, type BuildLinkedInUrlOutput, resolveLinkedInEntity, type ResolveLinkedInEntityInput, type ResolveLinkedInEntityOutput, } 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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,YAAY,EACV,OAAO,EACP,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,cAAc,EACd,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,IAAI,EACJ,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,yBAAyB,EACzB,oBAAoB,EACpB,OAAO,EACP,YAAY,EACZ,cAAc,EACd,WAAW,EACX,UAAU,EACV,QAAQ,EACR,OAAO,EACP,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,KAAK,EACL,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,YAAY,EACV,OAAO,EACP,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,cAAc,EACd,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,IAAI,EACJ,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,yBAAyB,EACzB,oBAAoB,EACpB,OAAO,EACP,YAAY,EACZ,cAAc,EACd,WAAW,EACX,UAAU,EACV,QAAQ,EACR,OAAO,EACP,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,KAAK,EACL,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,2BAA2B,EAC3B,gBAAgB,EAChB,qBAAqB,EACrB,WAAW,EACX,UAAU,EACV,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,QAAQ,EACR,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,KAAK,YAAY,EACjB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,KAAK,iBAAiB,EACtB,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,KAAK,eAAe,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,uBAAuB,EAC5B,uBAAuB,EACvB,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,2BAA2B,EAC3B,4BAA4B,EAC5B,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,yBAAyB,EACzB,cAAc,EACd,kBAAkB,EAClB,KAAK,oBAAoB,EACzB,WAAW,EACX,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,YAAY,EACZ,oBAAoB,EACpB,+BAA+B,EAC/B,cAAc,GACf,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,6BAA6B,EAC7B,kBAAkB,EAClB,4BAA4B,EAC5B,wBAAwB,EACxB,KAAK,iBAAiB,EACtB,cAAc,EACd,KAAK,qBAAqB,EAC1B,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAGzB,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,EACP,KAAK,aAAa,EAClB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,KAAK,iBAAiB,EAEtB,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAEzB,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAExB,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAE7B,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAEzB,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,sBAAsB,EACtB,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAEzB,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,qBAAqB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAE9B,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,eAAe,EAEpB,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,sBAAsB,EACtB,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAE/B,eAAe,EACf,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,qBAAqB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,0BAA0B,EAC1B,KAAK,+BAA+B,EACpC,KAAK,gCAAgC,EACrC,0BAA0B,EAC1B,KAAK,+BAA+B,EACpC,KAAK,gCAAgC,EAErC,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,qBAAqB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,GACjC,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
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, buildBasicSearchUrl, buildBooleanExpression, buildParameterisedUrl, buildSNSearchUrl, detectSourceType, getFixedUrl, getParameterType, isFixedUrlType, isParameterisedType, isSNSearchBuilderType, isSearchBuilderType, ExtractionTimeoutError, InstanceNotRunningError, InstanceService, InvalidProfileUrlError, LauncherService, LinkedHelperNotRunningError, LinkedHelperUnreachableError, resolveAccount, ServiceError, StartInstanceError, startInstanceWithRecovery, UIBlockedError, validateSourceType, checkStatus, waitForInstancePort, waitForInstanceShutdown, withDatabase, withInstanceDatabase, NodeIntegrationUnavailableError, 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)
|
|
10
|
-
export { getActionTypeCatalog, getActionTypeInfo, } from "./data/index.js";
|
|
10
|
+
export { getActionTypeCatalog, getActionTypeInfo, getFunctionById, getIndustryById, getLinkedInReferenceData, getSeniorityById, isReferenceDataType, } from "./data/index.js";
|
|
11
11
|
// Errors (DB + CDP errors can propagate through the service layer)
|
|
12
12
|
export { ActionNotFoundError, CampaignNotFoundError, ChatNotFoundError, DatabaseError, DatabaseNotFoundError, ExcludeListNotFoundError, NoNextActionError, ProfileNotFoundError, } from "./db/index.js";
|
|
13
13
|
export { CDPConnectionError, CDPError, CDPEvaluationError, CDPTimeoutError, discoverInstancePort, discoverTargets, findApp, killInstanceProcesses, } from "./cdp/index.js";
|
|
@@ -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,11 @@ campaignExcludeAdd, campaignExcludeRemove, campaignExcludeList,
|
|
|
26
28
|
// Error detection
|
|
27
29
|
getErrors,
|
|
28
30
|
// Messaging
|
|
29
|
-
queryMessages, checkReplies, scrapeMessagingHistory, importPeopleFromUrls, campaignRemovePeople,
|
|
31
|
+
queryMessages, checkReplies, scrapeMessagingHistory, importPeopleFromUrls, campaignRemovePeople,
|
|
32
|
+
// Collections (Lists)
|
|
33
|
+
listCollections, createCollection, deleteCollection, addPeopleToCollection, removePeopleFromCollection, importPeopleFromCollection,
|
|
34
|
+
// URL building & entity resolution
|
|
35
|
+
buildLinkedInUrl, resolveLinkedInEntity, } from "./operations/index.js";
|
|
30
36
|
// Constants
|
|
31
37
|
export { DEFAULT_CDP_PORT } from "./constants.js";
|
|
32
38
|
// 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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAmFpC,WAAW;AACX,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EAEpB,cAAc,EACd,gBAAgB,EAChB,UAAU,EAEV,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EAEf,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,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,+BAA+B,EAC/B,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,EACjB,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,GACpB,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;AAG1B,mCAAmC;AACnC,gBAAgB,EAGhB,qBAAqB,GAGtB,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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
2
|
+
// Copyright (C) 2026 Oleksii PELYKH
|
|
3
|
+
import { resolveAccount } from "../services/account-resolution.js";
|
|
4
|
+
import { withDatabase } from "../services/instance-context.js";
|
|
5
|
+
import { CollectionListRepository } from "../db/index.js";
|
|
6
|
+
import { DEFAULT_CDP_PORT } from "../constants.js";
|
|
7
|
+
/**
|
|
8
|
+
* Add people to a collection by person IDs.
|
|
9
|
+
*/
|
|
10
|
+
export async function addPeopleToCollection(input) {
|
|
11
|
+
const cdpPort = input.cdpPort ?? DEFAULT_CDP_PORT;
|
|
12
|
+
const accountId = await resolveAccount(cdpPort, {
|
|
13
|
+
...(input.cdpHost !== undefined && { host: input.cdpHost }),
|
|
14
|
+
...(input.allowRemote !== undefined && { allowRemote: input.allowRemote }),
|
|
15
|
+
});
|
|
16
|
+
return withDatabase(accountId, ({ db }) => {
|
|
17
|
+
const repo = new CollectionListRepository(db);
|
|
18
|
+
const added = repo.addPeople(input.collectionId, input.personIds);
|
|
19
|
+
return {
|
|
20
|
+
success: true,
|
|
21
|
+
collectionId: input.collectionId,
|
|
22
|
+
added,
|
|
23
|
+
alreadyInCollection: input.personIds.length - added,
|
|
24
|
+
};
|
|
25
|
+
}, { readOnly: false });
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=add-people-to-collection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-people-to-collection.js","sourceRoot":"","sources":["../../src/operations/add-people-to-collection.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAqBnD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,KAAiC;IAEjC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,gBAAgB,CAAC;IAElD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE;QAC9C,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAC3D,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;KAC3E,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QACxC,MAAM,IAAI,GAAG,IAAI,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAClE,OAAO;YACL,OAAO,EAAE,IAAa;YACtB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,KAAK;YACL,mBAAmB,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK;SACpD,CAAC;IACJ,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-people-to-collection.test.d.ts","sourceRoot":"","sources":["../../src/operations/add-people-to-collection.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,69 @@
|
|
|
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 { addPeopleToCollection } from "./add-people-to-collection.js";
|
|
17
|
+
function setupMocks(added = 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
|
+
addPeople: vi.fn().mockReturnValue(added),
|
|
23
|
+
};
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
describe("addPeopleToCollection", () => {
|
|
27
|
+
beforeEach(() => {
|
|
28
|
+
vi.clearAllMocks();
|
|
29
|
+
});
|
|
30
|
+
afterEach(() => {
|
|
31
|
+
vi.restoreAllMocks();
|
|
32
|
+
});
|
|
33
|
+
it("returns added count and alreadyInCollection", async () => {
|
|
34
|
+
setupMocks(2);
|
|
35
|
+
const result = await addPeopleToCollection({
|
|
36
|
+
collectionId: 10,
|
|
37
|
+
personIds: [1, 2, 3],
|
|
38
|
+
cdpPort: 9222,
|
|
39
|
+
});
|
|
40
|
+
expect(result.success).toBe(true);
|
|
41
|
+
expect(result.collectionId).toBe(10);
|
|
42
|
+
expect(result.added).toBe(2);
|
|
43
|
+
expect(result.alreadyInCollection).toBe(1);
|
|
44
|
+
});
|
|
45
|
+
it("passes collectionId and personIds to repository", async () => {
|
|
46
|
+
setupMocks();
|
|
47
|
+
await addPeopleToCollection({
|
|
48
|
+
collectionId: 10,
|
|
49
|
+
personIds: [1, 2],
|
|
50
|
+
cdpPort: 9222,
|
|
51
|
+
});
|
|
52
|
+
const mockResult = vi.mocked(CollectionListRepository).mock.results[0];
|
|
53
|
+
expect(mockResult.value.addPeople).toHaveBeenCalledWith(10, [1, 2]);
|
|
54
|
+
});
|
|
55
|
+
it("opens database in write mode", async () => {
|
|
56
|
+
setupMocks();
|
|
57
|
+
await addPeopleToCollection({
|
|
58
|
+
collectionId: 10,
|
|
59
|
+
personIds: [1],
|
|
60
|
+
cdpPort: 9222,
|
|
61
|
+
});
|
|
62
|
+
expect(withDatabase).toHaveBeenCalledWith(1, expect.any(Function), { readOnly: false });
|
|
63
|
+
});
|
|
64
|
+
it("propagates resolveAccount errors", async () => {
|
|
65
|
+
vi.mocked(resolveAccount).mockRejectedValue(new Error("connection refused"));
|
|
66
|
+
await expect(addPeopleToCollection({ collectionId: 10, personIds: [1], cdpPort: 9222 })).rejects.toThrow("connection refused");
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
//# sourceMappingURL=add-people-to-collection.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-people-to-collection.test.js","sourceRoot":"","sources":["../../src/operations/add-people-to-collection.test.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEzE,EAAE,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE,CAAC,CAAC;IAClD,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;CACxB,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE,CAAC,CAAC;IAChD,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE;CACtB,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/B,wBAAwB,EAAE,EAAE,CAAC,EAAE,EAAE;CAClC,CAAC,CAAC,CAAC;AAGJ,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,SAAS,UAAU,CAAC,KAAK,GAAG,CAAC;IAC3B,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAE/C,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,kBAAkB,CACxC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAC7B,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAgC,CAAC,CACnE,CAAC;IAEF,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,kBAAkB,CAAC;QACrD,OAAO;YACL,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC;SACH,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,UAAU,CAAC,CAAC,CAAC,CAAC;QAEd,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC;YACzC,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACpB,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,UAAU,EAAE,CAAC;QAEb,MAAM,qBAAqB,CAAC;YAC1B,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACjB,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAEpE,CAAC;QACF,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,UAAU,EAAE,CAAC;QAEb,MAAM,qBAAqB,CAAC;YAC1B,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE,CAAC,CAAC,CAAC;YACd,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,MAAM,CAAC,YAAY,CAAC,CAAC,oBAAoB,CACvC,CAAC,EACD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EACpB,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAE7E,MAAM,MAAM,CACV,qBAAqB,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAC3E,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { BasicSearchParams, SNSearchParams, UrlBuilderResult } from "../types/linkedin-url.js";
|
|
2
|
+
/**
|
|
3
|
+
* Input for the unified LinkedIn URL builder.
|
|
4
|
+
*/
|
|
5
|
+
export interface BuildLinkedInUrlInput {
|
|
6
|
+
/** The LinkedIn source type to build a URL for. */
|
|
7
|
+
readonly sourceType: string;
|
|
8
|
+
readonly keywords?: BasicSearchParams["keywords"] | undefined;
|
|
9
|
+
readonly currentCompany?: string[] | undefined;
|
|
10
|
+
readonly pastCompany?: string[] | undefined;
|
|
11
|
+
readonly geoUrn?: string[] | undefined;
|
|
12
|
+
readonly industry?: string[] | undefined;
|
|
13
|
+
readonly school?: string[] | undefined;
|
|
14
|
+
readonly network?: string[] | undefined;
|
|
15
|
+
readonly profileLanguage?: string[] | undefined;
|
|
16
|
+
readonly serviceCategory?: string[] | undefined;
|
|
17
|
+
readonly filters?: SNSearchParams["filters"] | undefined;
|
|
18
|
+
readonly slug?: string | undefined;
|
|
19
|
+
readonly id?: string | undefined;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Output from the unified URL builder.
|
|
23
|
+
*/
|
|
24
|
+
export type BuildLinkedInUrlOutput = UrlBuilderResult;
|
|
25
|
+
/**
|
|
26
|
+
* Build a LinkedIn URL for any supported source type.
|
|
27
|
+
*
|
|
28
|
+
* Dispatches to the appropriate builder based on the source type:
|
|
29
|
+
* - `SearchPage` → basic search URL builder
|
|
30
|
+
* - `SNSearchPage` → Sales Navigator URL builder
|
|
31
|
+
* - Parameterised types → template substitution
|
|
32
|
+
* - Fixed types → static URL lookup
|
|
33
|
+
*
|
|
34
|
+
* @param input - Build parameters including source type
|
|
35
|
+
* @returns The built URL with any warnings
|
|
36
|
+
* @throws Error if the source type is unknown or required params are missing
|
|
37
|
+
*/
|
|
38
|
+
export declare function buildLinkedInUrl(input: BuildLinkedInUrlInput): BuildLinkedInUrlOutput;
|
|
39
|
+
//# sourceMappingURL=build-linkedin-url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-linkedin-url.d.ts","sourceRoot":"","sources":["../../src/operations/build-linkedin-url.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAalC;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,mDAAmD;IACnD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAG5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;IAC9D,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAGhD,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAGzD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AAEtD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,qBAAqB,GAC3B,sBAAsB,CA+DxB"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
2
|
+
// Copyright (C) 2026 Oleksii PELYKH
|
|
3
|
+
import { validateSourceType } from "../services/source-type-registry.js";
|
|
4
|
+
import { buildBasicSearchUrl } from "../services/url-builder.js";
|
|
5
|
+
import { buildSNSearchUrl } from "../services/sn-url-builder.js";
|
|
6
|
+
import { buildParameterisedUrl, getFixedUrl, isFixedUrlType, isParameterisedType, isSNSearchBuilderType, isSearchBuilderType, } from "../services/url-templates.js";
|
|
7
|
+
/**
|
|
8
|
+
* Build a LinkedIn URL for any supported source type.
|
|
9
|
+
*
|
|
10
|
+
* Dispatches to the appropriate builder based on the source type:
|
|
11
|
+
* - `SearchPage` → basic search URL builder
|
|
12
|
+
* - `SNSearchPage` → Sales Navigator URL builder
|
|
13
|
+
* - Parameterised types → template substitution
|
|
14
|
+
* - Fixed types → static URL lookup
|
|
15
|
+
*
|
|
16
|
+
* @param input - Build parameters including source type
|
|
17
|
+
* @returns The built URL with any warnings
|
|
18
|
+
* @throws Error if the source type is unknown or required params are missing
|
|
19
|
+
*/
|
|
20
|
+
export function buildLinkedInUrl(input) {
|
|
21
|
+
if (!validateSourceType(input.sourceType)) {
|
|
22
|
+
throw new Error(`Unknown source type: "${input.sourceType}"`);
|
|
23
|
+
}
|
|
24
|
+
const sourceType = input.sourceType;
|
|
25
|
+
// SearchPage → basic search builder
|
|
26
|
+
if (isSearchBuilderType(sourceType)) {
|
|
27
|
+
const params = {
|
|
28
|
+
...(input.keywords !== undefined && { keywords: input.keywords }),
|
|
29
|
+
...(input.currentCompany !== undefined && { currentCompany: input.currentCompany }),
|
|
30
|
+
...(input.pastCompany !== undefined && { pastCompany: input.pastCompany }),
|
|
31
|
+
...(input.geoUrn !== undefined && { geoUrn: input.geoUrn }),
|
|
32
|
+
...(input.industry !== undefined && { industry: input.industry }),
|
|
33
|
+
...(input.school !== undefined && { school: input.school }),
|
|
34
|
+
...(input.network !== undefined && { network: input.network }),
|
|
35
|
+
...(input.profileLanguage !== undefined && { profileLanguage: input.profileLanguage }),
|
|
36
|
+
...(input.serviceCategory !== undefined && { serviceCategory: input.serviceCategory }),
|
|
37
|
+
};
|
|
38
|
+
return buildBasicSearchUrl(params);
|
|
39
|
+
}
|
|
40
|
+
// SNSearchPage → SN search builder
|
|
41
|
+
if (isSNSearchBuilderType(sourceType)) {
|
|
42
|
+
const params = {
|
|
43
|
+
...(input.keywords !== undefined && { keywords: input.keywords }),
|
|
44
|
+
...(input.filters !== undefined && { filters: input.filters }),
|
|
45
|
+
};
|
|
46
|
+
return buildSNSearchUrl(params);
|
|
47
|
+
}
|
|
48
|
+
// Parameterised template types
|
|
49
|
+
if (isParameterisedType(sourceType)) {
|
|
50
|
+
const url = buildParameterisedUrl(sourceType, {
|
|
51
|
+
...(input.slug !== undefined && { slug: input.slug }),
|
|
52
|
+
...(input.id !== undefined && { id: input.id }),
|
|
53
|
+
});
|
|
54
|
+
if (url === undefined) {
|
|
55
|
+
throw new Error(`Missing required parameter for source type "${sourceType}": ` +
|
|
56
|
+
"provide slug or id as appropriate");
|
|
57
|
+
}
|
|
58
|
+
return { url, sourceType, warnings: [] };
|
|
59
|
+
}
|
|
60
|
+
// Fixed URL types
|
|
61
|
+
if (isFixedUrlType(sourceType)) {
|
|
62
|
+
const url = getFixedUrl(sourceType);
|
|
63
|
+
if (url === undefined) {
|
|
64
|
+
throw new Error(`Missing fixed URL for source type "${sourceType}" (internal error)`);
|
|
65
|
+
}
|
|
66
|
+
return { url, sourceType, warnings: [] };
|
|
67
|
+
}
|
|
68
|
+
// Should not reach here if validateSourceType passed,
|
|
69
|
+
// but handle gracefully
|
|
70
|
+
throw new Error(`No URL builder available for source type "${sourceType}"`);
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=build-linkedin-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-linkedin-url.js","sourceRoot":"","sources":["../../src/operations/build-linkedin-url.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { SourceType } from "../types/index.js";
|
|
2
|
+
import type { ConnectionOptions } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Input for the collect-people operation.
|
|
5
|
+
*/
|
|
6
|
+
export interface CollectPeopleInput extends ConnectionOptions {
|
|
7
|
+
/** LinkedIn page URL to collect people from. */
|
|
8
|
+
readonly sourceUrl: string;
|
|
9
|
+
/** Campaign to collect people into. */
|
|
10
|
+
readonly campaignId: number;
|
|
11
|
+
/** Maximum number of profiles to collect. */
|
|
12
|
+
readonly limit?: number;
|
|
13
|
+
/** Maximum number of pages to process. */
|
|
14
|
+
readonly maxPages?: number;
|
|
15
|
+
/** Number of results per page. */
|
|
16
|
+
readonly pageSize?: number;
|
|
17
|
+
/** Explicit source type to bypass URL detection. */
|
|
18
|
+
readonly sourceType?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Output from the collect-people operation.
|
|
22
|
+
*/
|
|
23
|
+
export interface CollectPeopleOutput {
|
|
24
|
+
readonly success: true;
|
|
25
|
+
readonly campaignId: number;
|
|
26
|
+
readonly sourceType: SourceType;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Orchestrate people collection from a LinkedIn page into a campaign.
|
|
30
|
+
*
|
|
31
|
+
* Detects the source type from the URL (or uses an explicit override),
|
|
32
|
+
* then initiates collection via {@link CollectionService}. Returns
|
|
33
|
+
* immediately — the caller should poll `campaign-status` to monitor
|
|
34
|
+
* progress.
|
|
35
|
+
*
|
|
36
|
+
* @throws {CollectionError} if the source type is unknown or invalid.
|
|
37
|
+
* @throws {CollectionBusyError} if the instance is not idle.
|
|
38
|
+
*/
|
|
39
|
+
export declare function collectPeople(input: CollectPeopleInput): Promise<CollectPeopleOutput>;
|
|
40
|
+
//# sourceMappingURL=collect-people.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collect-people.d.ts","sourceRoot":"","sources":["../../src/operations/collect-people.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAOpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,gDAAgD;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,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;IAC3B,oDAAoD;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,mBAAmB,CAAC,CAyC9B"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
2
|
+
// Copyright (C) 2026 Oleksii PELYKH
|
|
3
|
+
import { resolveAccount } from "../services/account-resolution.js";
|
|
4
|
+
import { withInstanceDatabase } from "../services/instance-context.js";
|
|
5
|
+
import { CollectionService } from "../services/collection.js";
|
|
6
|
+
import { CollectionError } from "../services/errors.js";
|
|
7
|
+
import { detectSourceType, validateSourceType } from "../services/source-type-registry.js";
|
|
8
|
+
import { DEFAULT_CDP_PORT } from "../constants.js";
|
|
9
|
+
/**
|
|
10
|
+
* Orchestrate people collection from a LinkedIn page into a campaign.
|
|
11
|
+
*
|
|
12
|
+
* Detects the source type from the URL (or uses an explicit override),
|
|
13
|
+
* then initiates collection via {@link CollectionService}. Returns
|
|
14
|
+
* immediately — the caller should poll `campaign-status` to monitor
|
|
15
|
+
* progress.
|
|
16
|
+
*
|
|
17
|
+
* @throws {CollectionError} if the source type is unknown or invalid.
|
|
18
|
+
* @throws {CollectionBusyError} if the instance is not idle.
|
|
19
|
+
*/
|
|
20
|
+
export async function collectPeople(input) {
|
|
21
|
+
const cdpPort = input.cdpPort ?? DEFAULT_CDP_PORT;
|
|
22
|
+
// Resolve source type: explicit override or URL detection
|
|
23
|
+
let sourceType;
|
|
24
|
+
if (input.sourceType !== undefined) {
|
|
25
|
+
if (!validateSourceType(input.sourceType)) {
|
|
26
|
+
throw new CollectionError(`Invalid source type: ${input.sourceType}`);
|
|
27
|
+
}
|
|
28
|
+
sourceType = input.sourceType;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
const detected = detectSourceType(input.sourceUrl);
|
|
32
|
+
if (!detected) {
|
|
33
|
+
throw new CollectionError(`Unrecognized source URL: ${input.sourceUrl} — cannot determine LinkedIn page type`);
|
|
34
|
+
}
|
|
35
|
+
sourceType = detected;
|
|
36
|
+
}
|
|
37
|
+
const accountId = await resolveAccount(cdpPort, {
|
|
38
|
+
...(input.cdpHost !== undefined && { host: input.cdpHost }),
|
|
39
|
+
...(input.allowRemote !== undefined && { allowRemote: input.allowRemote }),
|
|
40
|
+
});
|
|
41
|
+
return withInstanceDatabase(cdpPort, accountId, async ({ instance }) => {
|
|
42
|
+
const collectionService = new CollectionService(instance);
|
|
43
|
+
await collectionService.collect(input.sourceUrl, input.campaignId, {
|
|
44
|
+
...(input.limit !== undefined && { limit: input.limit }),
|
|
45
|
+
...(input.maxPages !== undefined && { maxPages: input.maxPages }),
|
|
46
|
+
...(input.pageSize !== undefined && { pageSize: input.pageSize }),
|
|
47
|
+
});
|
|
48
|
+
return {
|
|
49
|
+
success: true,
|
|
50
|
+
campaignId: input.campaignId,
|
|
51
|
+
sourceType,
|
|
52
|
+
};
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=collect-people.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collect-people.js","sourceRoot":"","sources":["../../src/operations/collect-people.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAGpC,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AA8BnD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAyB;IAEzB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,gBAAgB,CAAC;IAElD,0DAA0D;IAC1D,IAAI,UAAsB,CAAC;IAC3B,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,eAAe,CACvB,wBAAwB,KAAK,CAAC,UAAU,EAAE,CAC3C,CAAC;QACJ,CAAC;QACD,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,eAAe,CACvB,4BAA4B,KAAK,CAAC,SAAS,wCAAwC,CACpF,CAAC;QACJ,CAAC;QACD,UAAU,GAAG,QAAQ,CAAC;IACxB,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE;QAC9C,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAC3D,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;KAC3E,CAAC,CAAC;IAEH,OAAO,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrE,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC1D,MAAM,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE;YACjE,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;YACxD,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjE,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;SAClE,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,IAAa;YACtB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU;SACX,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collect-people.test.d.ts","sourceRoot":"","sources":["../../src/operations/collect-people.test.ts"],"names":[],"mappings":""}
|