@lhremote/core 0.1.0 → 0.2.1
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 +124 -0
- package/dist/cdp/app-discovery.d.ts +22 -0
- package/dist/cdp/app-discovery.d.ts.map +1 -0
- package/dist/cdp/app-discovery.js +60 -0
- package/dist/cdp/app-discovery.js.map +1 -0
- package/dist/cdp/app-discovery.test.d.ts +2 -0
- package/dist/cdp/app-discovery.test.d.ts.map +1 -0
- package/dist/cdp/app-discovery.test.js +124 -0
- package/dist/cdp/app-discovery.test.js.map +1 -0
- package/dist/cdp/client.d.ts +14 -0
- package/dist/cdp/client.d.ts.map +1 -1
- package/dist/cdp/client.integration.test.js +10 -3
- package/dist/cdp/client.integration.test.js.map +1 -1
- package/dist/cdp/client.js +41 -8
- package/dist/cdp/client.js.map +1 -1
- package/dist/cdp/client.test.js +267 -3
- package/dist/cdp/client.test.js.map +1 -1
- package/dist/cdp/discovery.d.ts.map +1 -1
- package/dist/cdp/discovery.integration.test.js +2 -0
- package/dist/cdp/discovery.integration.test.js.map +1 -1
- package/dist/cdp/discovery.js +2 -0
- package/dist/cdp/discovery.js.map +1 -1
- package/dist/cdp/discovery.test.js +2 -0
- package/dist/cdp/discovery.test.js.map +1 -1
- package/dist/cdp/errors.d.ts.map +1 -1
- package/dist/cdp/errors.js +2 -0
- package/dist/cdp/errors.js.map +1 -1
- package/dist/cdp/errors.test.js +2 -0
- package/dist/cdp/errors.test.js.map +1 -1
- package/dist/cdp/index.d.ts +1 -0
- package/dist/cdp/index.d.ts.map +1 -1
- package/dist/cdp/index.js +3 -0
- package/dist/cdp/index.js.map +1 -1
- package/dist/cdp/instance-discovery.d.ts.map +1 -1
- package/dist/cdp/instance-discovery.integration.test.js +2 -0
- package/dist/cdp/instance-discovery.integration.test.js.map +1 -1
- package/dist/cdp/instance-discovery.js +5 -17
- package/dist/cdp/instance-discovery.js.map +1 -1
- package/dist/cdp/instance-discovery.test.js +2 -0
- package/dist/cdp/instance-discovery.test.js.map +1 -1
- package/dist/cdp/testing/launch-chromium.d.ts.map +1 -1
- package/dist/cdp/testing/launch-chromium.js +4 -1
- package/dist/cdp/testing/launch-chromium.js.map +1 -1
- package/dist/constants.d.ts +5 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +7 -0
- package/dist/constants.js.map +1 -0
- package/dist/data/action-types.d.ts +39 -0
- package/dist/data/action-types.d.ts.map +1 -0
- package/dist/data/action-types.js +497 -0
- package/dist/data/action-types.js.map +1 -0
- package/dist/data/action-types.test.d.ts +2 -0
- package/dist/data/action-types.test.d.ts.map +1 -0
- package/dist/data/action-types.test.js +544 -0
- package/dist/data/action-types.test.js.map +1 -0
- package/dist/data/index.d.ts +3 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/index.js +4 -0
- package/dist/data/index.js.map +1 -0
- package/dist/db/client.d.ts +19 -5
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.integration.test.js +5 -1
- package/dist/db/client.integration.test.js.map +1 -1
- package/dist/db/client.js +11 -5
- package/dist/db/client.js.map +1 -1
- package/dist/db/client.test.js +2 -0
- package/dist/db/client.test.js.map +1 -1
- package/dist/db/discovery.d.ts.map +1 -1
- package/dist/db/discovery.integration.test.js +2 -0
- package/dist/db/discovery.integration.test.js.map +1 -1
- package/dist/db/discovery.js +2 -0
- package/dist/db/discovery.js.map +1 -1
- package/dist/db/discovery.test.js +2 -0
- package/dist/db/discovery.test.js.map +1 -1
- package/dist/db/errors.d.ts +31 -0
- package/dist/db/errors.d.ts.map +1 -1
- package/dist/db/errors.js +49 -0
- package/dist/db/errors.js.map +1 -1
- package/dist/db/errors.test.js +2 -0
- package/dist/db/errors.test.js.map +1 -1
- package/dist/db/escape-like.d.ts +8 -0
- package/dist/db/escape-like.d.ts.map +1 -0
- package/dist/db/escape-like.js +12 -0
- package/dist/db/escape-like.js.map +1 -0
- package/dist/db/escape-like.test.d.ts +2 -0
- package/dist/db/escape-like.test.d.ts.map +1 -0
- package/dist/db/escape-like.test.js +25 -0
- package/dist/db/escape-like.test.js.map +1 -0
- package/dist/db/index.d.ts +3 -3
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +4 -2
- package/dist/db/index.js.map +1 -1
- package/dist/db/repositories/campaign-exclude-list.d.ts +89 -0
- package/dist/db/repositories/campaign-exclude-list.d.ts.map +1 -0
- package/dist/db/repositories/campaign-exclude-list.js +204 -0
- package/dist/db/repositories/campaign-exclude-list.js.map +1 -0
- package/dist/db/repositories/campaign-exclude-list.test.d.ts +2 -0
- package/dist/db/repositories/campaign-exclude-list.test.d.ts.map +1 -0
- package/dist/db/repositories/campaign-exclude-list.test.js +132 -0
- package/dist/db/repositories/campaign-exclude-list.test.js.map +1 -0
- package/dist/db/repositories/campaign-statistics.d.ts +58 -0
- package/dist/db/repositories/campaign-statistics.d.ts.map +1 -0
- package/dist/db/repositories/campaign-statistics.js +278 -0
- package/dist/db/repositories/campaign-statistics.js.map +1 -0
- package/dist/db/repositories/campaign-statistics.test.d.ts +2 -0
- package/dist/db/repositories/campaign-statistics.test.d.ts.map +1 -0
- package/dist/db/repositories/campaign-statistics.test.js +266 -0
- package/dist/db/repositories/campaign-statistics.test.js.map +1 -0
- package/dist/db/repositories/campaign.d.ts +103 -0
- package/dist/db/repositories/campaign.d.ts.map +1 -0
- package/dist/db/repositories/campaign.js +388 -0
- package/dist/db/repositories/campaign.js.map +1 -0
- package/dist/db/repositories/campaign.test.d.ts +2 -0
- package/dist/db/repositories/campaign.test.d.ts.map +1 -0
- package/dist/db/repositories/campaign.test.js +392 -0
- package/dist/db/repositories/campaign.test.js.map +1 -0
- package/dist/db/repositories/index.d.ts +4 -0
- package/dist/db/repositories/index.d.ts.map +1 -1
- package/dist/db/repositories/index.js +6 -0
- package/dist/db/repositories/index.js.map +1 -1
- package/dist/db/repositories/message.d.ts +57 -0
- package/dist/db/repositories/message.d.ts.map +1 -0
- package/dist/db/repositories/message.integration.test.d.ts +2 -0
- package/dist/db/repositories/message.integration.test.d.ts.map +1 -0
- package/dist/db/repositories/message.integration.test.js +137 -0
- package/dist/db/repositories/message.integration.test.js.map +1 -0
- package/dist/db/repositories/message.js +308 -0
- package/dist/db/repositories/message.js.map +1 -0
- package/dist/db/repositories/message.test.d.ts +2 -0
- package/dist/db/repositories/message.test.d.ts.map +1 -0
- package/dist/db/repositories/message.test.js +179 -0
- package/dist/db/repositories/message.test.js.map +1 -0
- package/dist/db/repositories/profile.d.ts +11 -1
- package/dist/db/repositories/profile.d.ts.map +1 -1
- package/dist/db/repositories/profile.integration.test.js +103 -0
- package/dist/db/repositories/profile.integration.test.js.map +1 -1
- package/dist/db/repositories/profile.js +52 -15
- package/dist/db/repositories/profile.js.map +1 -1
- package/dist/db/repositories/profile.test.js +90 -0
- package/dist/db/repositories/profile.test.js.map +1 -1
- package/dist/db/testing/create-fixture.d.ts +0 -6
- package/dist/db/testing/create-fixture.d.ts.map +1 -1
- package/dist/db/testing/create-fixture.js +463 -4
- package/dist/db/testing/create-fixture.js.map +1 -1
- package/dist/db/testing/open-fixture.d.ts +5 -4
- package/dist/db/testing/open-fixture.d.ts.map +1 -1
- package/dist/db/testing/open-fixture.js +24 -6
- package/dist/db/testing/open-fixture.js.map +1 -1
- package/dist/formats/campaign-format.d.ts +31 -0
- package/dist/formats/campaign-format.d.ts.map +1 -0
- package/dist/formats/campaign-format.js +225 -0
- package/dist/formats/campaign-format.js.map +1 -0
- package/dist/formats/campaign-format.test.d.ts +2 -0
- package/dist/formats/campaign-format.test.d.ts.map +1 -0
- package/dist/formats/campaign-format.test.js +442 -0
- package/dist/formats/campaign-format.test.js.map +1 -0
- package/dist/formats/errors.d.ts +7 -0
- package/dist/formats/errors.d.ts.map +1 -0
- package/dist/formats/errors.js +12 -0
- package/dist/formats/errors.js.map +1 -0
- package/dist/formats/index.d.ts +3 -0
- package/dist/formats/index.d.ts.map +1 -0
- package/dist/formats/index.js +5 -0
- package/dist/formats/index.js.map +1 -0
- package/dist/index.d.ts +10 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -4
- package/dist/index.js.map +1 -1
- package/dist/operations/campaign-add-action.d.ts +14 -0
- package/dist/operations/campaign-add-action.d.ts.map +1 -0
- package/dist/operations/campaign-add-action.js +33 -0
- package/dist/operations/campaign-add-action.js.map +1 -0
- package/dist/operations/campaign-add-action.test.d.ts +2 -0
- package/dist/operations/campaign-add-action.test.d.ts.map +1 -0
- package/dist/operations/campaign-add-action.test.js +122 -0
- package/dist/operations/campaign-add-action.test.js.map +1 -0
- package/dist/operations/campaign-create.d.ts +17 -0
- package/dist/operations/campaign-create.d.ts.map +1 -0
- package/dist/operations/campaign-create.js +21 -0
- package/dist/operations/campaign-create.js.map +1 -0
- package/dist/operations/campaign-create.test.d.ts +2 -0
- package/dist/operations/campaign-create.test.d.ts.map +1 -0
- package/dist/operations/campaign-create.test.js +121 -0
- package/dist/operations/campaign-create.test.js.map +1 -0
- package/dist/operations/campaign-delete.d.ts +20 -0
- package/dist/operations/campaign-delete.d.ts.map +1 -0
- package/dist/operations/campaign-delete.js +22 -0
- package/dist/operations/campaign-delete.js.map +1 -0
- package/dist/operations/campaign-delete.test.d.ts +2 -0
- package/dist/operations/campaign-delete.test.d.ts.map +1 -0
- package/dist/operations/campaign-delete.test.js +92 -0
- package/dist/operations/campaign-delete.test.js.map +1 -0
- package/dist/operations/campaign-exclude-add.d.ts +16 -0
- package/dist/operations/campaign-exclude-add.d.ts.map +1 -0
- package/dist/operations/campaign-exclude-add.js +27 -0
- package/dist/operations/campaign-exclude-add.js.map +1 -0
- package/dist/operations/campaign-exclude-add.test.d.ts +2 -0
- package/dist/operations/campaign-exclude-add.test.d.ts.map +1 -0
- package/dist/operations/campaign-exclude-add.test.js +114 -0
- package/dist/operations/campaign-exclude-add.test.js.map +1 -0
- package/dist/operations/campaign-exclude-list.d.ts +14 -0
- package/dist/operations/campaign-exclude-list.d.ts.map +1 -0
- package/dist/operations/campaign-exclude-list.js +26 -0
- package/dist/operations/campaign-exclude-list.js.map +1 -0
- package/dist/operations/campaign-exclude-list.test.d.ts +2 -0
- package/dist/operations/campaign-exclude-list.test.d.ts.map +1 -0
- package/dist/operations/campaign-exclude-list.test.js +113 -0
- package/dist/operations/campaign-exclude-list.test.js.map +1 -0
- package/dist/operations/campaign-exclude-remove.d.ts +16 -0
- package/dist/operations/campaign-exclude-remove.d.ts.map +1 -0
- package/dist/operations/campaign-exclude-remove.js +27 -0
- package/dist/operations/campaign-exclude-remove.js.map +1 -0
- package/dist/operations/campaign-exclude-remove.test.d.ts +2 -0
- package/dist/operations/campaign-exclude-remove.test.d.ts.map +1 -0
- package/dist/operations/campaign-exclude-remove.test.js +114 -0
- package/dist/operations/campaign-exclude-remove.test.js.map +1 -0
- package/dist/operations/campaign-export.d.ts +12 -0
- package/dist/operations/campaign-export.d.ts.map +1 -0
- package/dist/operations/campaign-export.js +24 -0
- package/dist/operations/campaign-export.js.map +1 -0
- package/dist/operations/campaign-export.test.d.ts +2 -0
- package/dist/operations/campaign-export.test.d.ts.map +1 -0
- package/dist/operations/campaign-export.test.js +134 -0
- package/dist/operations/campaign-export.test.js.map +1 -0
- package/dist/operations/campaign-get.d.ts +19 -0
- package/dist/operations/campaign-get.d.ts.map +1 -0
- package/dist/operations/campaign-get.js +23 -0
- package/dist/operations/campaign-get.js.map +1 -0
- package/dist/operations/campaign-get.test.d.ts +2 -0
- package/dist/operations/campaign-get.test.d.ts.map +1 -0
- package/dist/operations/campaign-get.test.js +99 -0
- package/dist/operations/campaign-get.test.js.map +1 -0
- package/dist/operations/campaign-list.d.ts +20 -0
- package/dist/operations/campaign-list.d.ts.map +1 -0
- package/dist/operations/campaign-list.js +23 -0
- package/dist/operations/campaign-list.js.map +1 -0
- package/dist/operations/campaign-list.test.d.ts +2 -0
- package/dist/operations/campaign-list.test.d.ts.map +1 -0
- package/dist/operations/campaign-list.test.js +106 -0
- package/dist/operations/campaign-list.test.js.map +1 -0
- package/dist/operations/campaign-move-next.d.ts +15 -0
- package/dist/operations/campaign-move-next.d.ts.map +1 -0
- package/dist/operations/campaign-move-next.js +25 -0
- package/dist/operations/campaign-move-next.js.map +1 -0
- package/dist/operations/campaign-move-next.test.d.ts +2 -0
- package/dist/operations/campaign-move-next.test.d.ts.map +1 -0
- package/dist/operations/campaign-move-next.test.js +105 -0
- package/dist/operations/campaign-move-next.test.js.map +1 -0
- package/dist/operations/campaign-remove-action.d.ts +12 -0
- package/dist/operations/campaign-remove-action.d.ts.map +1 -0
- package/dist/operations/campaign-remove-action.js +23 -0
- package/dist/operations/campaign-remove-action.js.map +1 -0
- package/dist/operations/campaign-remove-action.test.d.ts +2 -0
- package/dist/operations/campaign-remove-action.test.d.ts.map +1 -0
- package/dist/operations/campaign-remove-action.test.js +95 -0
- package/dist/operations/campaign-remove-action.test.js.map +1 -0
- package/dist/operations/campaign-reorder-actions.d.ts +13 -0
- package/dist/operations/campaign-reorder-actions.d.ts.map +1 -0
- package/dist/operations/campaign-reorder-actions.js +19 -0
- package/dist/operations/campaign-reorder-actions.js.map +1 -0
- package/dist/operations/campaign-reorder-actions.test.d.ts +2 -0
- package/dist/operations/campaign-reorder-actions.test.d.ts.map +1 -0
- package/dist/operations/campaign-reorder-actions.test.js +103 -0
- package/dist/operations/campaign-reorder-actions.test.js.map +1 -0
- package/dist/operations/campaign-retry.d.ts +13 -0
- package/dist/operations/campaign-retry.d.ts.map +1 -0
- package/dist/operations/campaign-retry.js +24 -0
- package/dist/operations/campaign-retry.js.map +1 -0
- package/dist/operations/campaign-retry.test.d.ts +2 -0
- package/dist/operations/campaign-retry.test.d.ts.map +1 -0
- package/dist/operations/campaign-retry.test.js +100 -0
- package/dist/operations/campaign-retry.test.js.map +1 -0
- package/dist/operations/campaign-start.d.ts +13 -0
- package/dist/operations/campaign-start.d.ts.map +1 -0
- package/dist/operations/campaign-start.js +24 -0
- package/dist/operations/campaign-start.js.map +1 -0
- package/dist/operations/campaign-start.test.d.ts +2 -0
- package/dist/operations/campaign-start.test.d.ts.map +1 -0
- package/dist/operations/campaign-start.test.js +105 -0
- package/dist/operations/campaign-start.test.js.map +1 -0
- package/dist/operations/campaign-statistics.d.ts +10 -0
- package/dist/operations/campaign-statistics.d.ts.map +1 -0
- package/dist/operations/campaign-statistics.js +23 -0
- package/dist/operations/campaign-statistics.js.map +1 -0
- package/dist/operations/campaign-statistics.test.d.ts +2 -0
- package/dist/operations/campaign-statistics.test.d.ts.map +1 -0
- package/dist/operations/campaign-statistics.test.js +120 -0
- package/dist/operations/campaign-statistics.test.js.map +1 -0
- package/dist/operations/campaign-status.d.ts +26 -0
- package/dist/operations/campaign-status.d.ts.map +1 -0
- package/dist/operations/campaign-status.js +32 -0
- package/dist/operations/campaign-status.js.map +1 -0
- package/dist/operations/campaign-status.test.d.ts +2 -0
- package/dist/operations/campaign-status.test.d.ts.map +1 -0
- package/dist/operations/campaign-status.test.js +142 -0
- package/dist/operations/campaign-status.test.js.map +1 -0
- package/dist/operations/campaign-stop.d.ts +11 -0
- package/dist/operations/campaign-stop.d.ts.map +1 -0
- package/dist/operations/campaign-stop.js +23 -0
- package/dist/operations/campaign-stop.js.map +1 -0
- package/dist/operations/campaign-stop.test.d.ts +2 -0
- package/dist/operations/campaign-stop.test.d.ts.map +1 -0
- package/dist/operations/campaign-stop.test.js +92 -0
- package/dist/operations/campaign-stop.test.js.map +1 -0
- package/dist/operations/campaign-update.d.ts +18 -0
- package/dist/operations/campaign-update.d.ts.map +1 -0
- package/dist/operations/campaign-update.js +21 -0
- package/dist/operations/campaign-update.js.map +1 -0
- package/dist/operations/campaign-update.test.d.ts +2 -0
- package/dist/operations/campaign-update.test.d.ts.map +1 -0
- package/dist/operations/campaign-update.test.js +105 -0
- package/dist/operations/campaign-update.test.js.map +1 -0
- package/dist/operations/check-replies.d.ts +12 -0
- package/dist/operations/check-replies.d.ts.map +1 -0
- package/dist/operations/check-replies.js +26 -0
- package/dist/operations/check-replies.js.map +1 -0
- package/dist/operations/check-replies.test.d.ts +2 -0
- package/dist/operations/check-replies.test.d.ts.map +1 -0
- package/dist/operations/check-replies.test.js +118 -0
- package/dist/operations/check-replies.test.js.map +1 -0
- package/dist/operations/import-people-from-urls.d.ts +16 -0
- package/dist/operations/import-people-from-urls.d.ts.map +1 -0
- package/dist/operations/import-people-from-urls.js +27 -0
- package/dist/operations/import-people-from-urls.js.map +1 -0
- package/dist/operations/import-people-from-urls.test.d.ts +2 -0
- package/dist/operations/import-people-from-urls.test.d.ts.map +1 -0
- package/dist/operations/import-people-from-urls.test.js +118 -0
- package/dist/operations/import-people-from-urls.test.js.map +1 -0
- package/dist/operations/index.d.ts +24 -0
- package/dist/operations/index.d.ts.map +1 -0
- package/dist/operations/index.js +30 -0
- package/dist/operations/index.js.map +1 -0
- package/dist/operations/query-messages.d.ts +23 -0
- package/dist/operations/query-messages.d.ts.map +1 -0
- package/dist/operations/query-messages.js +33 -0
- package/dist/operations/query-messages.js.map +1 -0
- package/dist/operations/query-messages.test.d.ts +2 -0
- package/dist/operations/query-messages.test.d.ts.map +1 -0
- package/dist/operations/query-messages.test.js +134 -0
- package/dist/operations/query-messages.test.js.map +1 -0
- package/dist/operations/scrape-messaging-history.d.ts +10 -0
- package/dist/operations/scrape-messaging-history.d.ts.map +1 -0
- package/dist/operations/scrape-messaging-history.js +24 -0
- package/dist/operations/scrape-messaging-history.js.map +1 -0
- package/dist/operations/scrape-messaging-history.test.d.ts +2 -0
- package/dist/operations/scrape-messaging-history.test.d.ts.map +1 -0
- package/dist/operations/scrape-messaging-history.test.js +112 -0
- package/dist/operations/scrape-messaging-history.test.js.map +1 -0
- package/dist/operations/types.d.ts +10 -0
- package/dist/operations/types.d.ts.map +1 -0
- package/dist/operations/types.js +4 -0
- package/dist/operations/types.js.map +1 -0
- package/dist/services/account-resolution.d.ts +22 -0
- package/dist/services/account-resolution.d.ts.map +1 -0
- package/dist/services/account-resolution.js +45 -0
- package/dist/services/account-resolution.js.map +1 -0
- package/dist/services/account-resolution.test.d.ts +2 -0
- package/dist/services/account-resolution.test.d.ts.map +1 -0
- package/dist/services/account-resolution.test.js +91 -0
- package/dist/services/account-resolution.test.js.map +1 -0
- package/dist/services/app.d.ts.map +1 -1
- package/dist/services/app.js +2 -0
- package/dist/services/app.js.map +1 -1
- package/dist/services/app.test.js +2 -0
- package/dist/services/app.test.js.map +1 -1
- package/dist/services/campaign.d.ts +143 -0
- package/dist/services/campaign.d.ts.map +1 -0
- package/dist/services/campaign.js +409 -0
- package/dist/services/campaign.js.map +1 -0
- package/dist/services/campaign.test.d.ts +2 -0
- package/dist/services/campaign.test.d.ts.map +1 -0
- package/dist/services/campaign.test.js +481 -0
- package/dist/services/campaign.test.js.map +1 -0
- package/dist/services/errors.d.ts +38 -0
- package/dist/services/errors.d.ts.map +1 -1
- package/dist/services/errors.js +60 -0
- package/dist/services/errors.js.map +1 -1
- package/dist/services/errors.test.js +53 -1
- package/dist/services/errors.test.js.map +1 -1
- package/dist/services/index.d.ts +5 -3
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +6 -2
- package/dist/services/index.js.map +1 -1
- package/dist/services/instance-context.d.ts +37 -0
- package/dist/services/instance-context.d.ts.map +1 -0
- package/dist/services/instance-context.js +49 -0
- package/dist/services/instance-context.js.map +1 -0
- package/dist/services/instance-context.test.d.ts +2 -0
- package/dist/services/instance-context.test.d.ts.map +1 -0
- package/dist/services/instance-context.test.js +203 -0
- package/dist/services/instance-context.test.js.map +1 -0
- package/dist/services/instance-lifecycle.d.ts.map +1 -1
- package/dist/services/instance-lifecycle.js +6 -6
- package/dist/services/instance-lifecycle.js.map +1 -1
- package/dist/services/instance-lifecycle.test.js +8 -2
- package/dist/services/instance-lifecycle.test.js.map +1 -1
- package/dist/services/instance.d.ts +40 -0
- package/dist/services/instance.d.ts.map +1 -1
- package/dist/services/instance.js +66 -9
- package/dist/services/instance.js.map +1 -1
- package/dist/services/instance.test.js +116 -6
- package/dist/services/instance.test.js.map +1 -1
- package/dist/services/launcher.d.ts +3 -0
- package/dist/services/launcher.d.ts.map +1 -1
- package/dist/services/launcher.js +25 -10
- package/dist/services/launcher.js.map +1 -1
- package/dist/services/launcher.test.js +39 -2
- package/dist/services/launcher.test.js.map +1 -1
- package/dist/services/status.d.ts +5 -1
- package/dist/services/status.d.ts.map +1 -1
- package/dist/services/status.js +24 -15
- package/dist/services/status.js.map +1 -1
- package/dist/services/status.test.js +42 -1
- package/dist/services/status.test.js.map +1 -1
- package/dist/testing/e2e-helpers.d.ts.map +1 -1
- package/dist/testing/e2e-helpers.js +7 -4
- package/dist/testing/e2e-helpers.js.map +1 -1
- package/dist/testing/index.d.ts +2 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +4 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/types/account.d.ts.map +1 -1
- package/dist/types/account.js +2 -0
- package/dist/types/account.js.map +1 -1
- package/dist/types/account.test.js +2 -0
- package/dist/types/account.test.js.map +1 -1
- package/dist/types/campaign.d.ts +267 -0
- package/dist/types/campaign.d.ts.map +1 -0
- package/dist/types/campaign.js +4 -0
- package/dist/types/campaign.js.map +1 -0
- package/dist/types/cdp.d.ts.map +1 -1
- package/dist/types/cdp.js +2 -0
- package/dist/types/cdp.js.map +1 -1
- package/dist/types/cdp.test.js +2 -0
- package/dist/types/cdp.test.js.map +1 -1
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/instance.d.ts.map +1 -1
- package/dist/types/instance.js +2 -6
- package/dist/types/instance.js.map +1 -1
- package/dist/types/instance.test.js +2 -0
- package/dist/types/instance.test.js.map +1 -1
- package/dist/types/messaging.d.ts +51 -0
- package/dist/types/messaging.d.ts.map +1 -0
- package/dist/types/messaging.js +4 -0
- package/dist/types/messaging.js.map +1 -0
- package/dist/types/profile.d.ts +31 -0
- package/dist/types/profile.d.ts.map +1 -1
- package/dist/types/profile.js +2 -6
- package/dist/types/profile.js.map +1 -1
- package/dist/types/profile.test.js +2 -0
- package/dist/types/profile.test.js.map +1 -1
- package/dist/utils/cdp-port.d.ts +5 -0
- package/dist/utils/cdp-port.d.ts.map +1 -0
- package/dist/utils/cdp-port.js +15 -0
- package/dist/utils/cdp-port.js.map +1 -0
- package/dist/utils/cdp-port.test.d.ts +2 -0
- package/dist/utils/cdp-port.test.d.ts.map +1 -0
- package/dist/utils/cdp-port.test.js +23 -0
- package/dist/utils/cdp-port.test.js.map +1 -0
- package/dist/utils/delay.d.ts +5 -0
- package/dist/utils/delay.d.ts.map +1 -0
- package/dist/utils/delay.js +9 -0
- package/dist/utils/delay.js.map +1 -0
- package/dist/utils/delay.test.d.ts +2 -0
- package/dist/utils/delay.test.d.ts.map +1 -0
- package/dist/utils/delay.test.js +17 -0
- package/dist/utils/delay.test.js.map +1 -0
- package/dist/utils/error-message.d.ts +5 -0
- package/dist/utils/error-message.d.ts.map +1 -0
- package/dist/utils/error-message.js +9 -0
- package/dist/utils/error-message.js.map +1 -0
- package/dist/utils/error-message.test.d.ts +2 -0
- package/dist/utils/error-message.test.d.ts.map +1 -0
- package/dist/utils/error-message.test.js +28 -0
- package/dist/utils/error-message.test.js.map +1 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/loopback.d.ts +10 -0
- package/dist/utils/loopback.d.ts.map +1 -0
- package/dist/utils/loopback.js +28 -0
- package/dist/utils/loopback.js.map +1 -0
- package/dist/utils/loopback.test.d.ts +2 -0
- package/dist/utils/loopback.test.d.ts.map +1 -0
- package/dist/utils/loopback.test.js +34 -0
- package/dist/utils/loopback.test.js.map +1 -0
- package/package.json +13 -8
- package/dist/services/profile.d.ts +0 -44
- package/dist/services/profile.d.ts.map +0 -1
- package/dist/services/profile.js +0 -83
- package/dist/services/profile.js.map +0 -1
- package/dist/services/profile.test.d.ts +0 -2
- package/dist/services/profile.test.d.ts.map +0 -1
- package/dist/services/profile.test.js +0 -145
- package/dist/services/profile.test.js.map +0 -1
|
@@ -0,0 +1,409 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
2
|
+
// Copyright (C) 2026 Oleksii PELYKH
|
|
3
|
+
import { ActionNotFoundError, CampaignRepository, CampaignStatisticsRepository } from "../db/index.js";
|
|
4
|
+
import { delay } from "../utils/delay.js";
|
|
5
|
+
import { errorMessage } from "../utils/error-message.js";
|
|
6
|
+
import { CampaignExecutionError, CampaignTimeoutError } from "./errors.js";
|
|
7
|
+
/** Maximum time to wait for the campaign runner to reach idle (ms). */
|
|
8
|
+
const IDLE_WAIT_TIMEOUT = 60_000;
|
|
9
|
+
/** Interval between idle state polls (ms). */
|
|
10
|
+
const IDLE_POLL_INTERVAL = 1_000;
|
|
11
|
+
/** LinkedHelper people processing states for action count queries. */
|
|
12
|
+
const PEOPLE_STATE = {
|
|
13
|
+
QUEUED: 1,
|
|
14
|
+
PROCESSED: 2,
|
|
15
|
+
SUCCESSFUL: 3,
|
|
16
|
+
FAILED: 4,
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Manages campaign lifecycle and execution via CDP + database.
|
|
20
|
+
*
|
|
21
|
+
* - CRUD operations combine CDP calls (create, delete) with database
|
|
22
|
+
* reads (list, get).
|
|
23
|
+
* - Execution operations (start, stop, status, results) control the
|
|
24
|
+
* LinkedHelper campaign runner through CDP and read results from
|
|
25
|
+
* the database.
|
|
26
|
+
*/
|
|
27
|
+
export class CampaignService {
|
|
28
|
+
instance;
|
|
29
|
+
campaignRepo;
|
|
30
|
+
statisticsRepo;
|
|
31
|
+
constructor(instance, db) {
|
|
32
|
+
this.instance = instance;
|
|
33
|
+
this.campaignRepo = new CampaignRepository(db);
|
|
34
|
+
this.statisticsRepo = new CampaignStatisticsRepository(db);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Create a new campaign via the LinkedHelper UI API.
|
|
38
|
+
*
|
|
39
|
+
* Calls `source.people.campaigns.createCampaign()` via CDP,
|
|
40
|
+
* then reads the campaign back from the database.
|
|
41
|
+
*/
|
|
42
|
+
async create(config) {
|
|
43
|
+
const liAccountId = config.liAccountId ?? 1;
|
|
44
|
+
const actions = config.actions.map((a) => ({
|
|
45
|
+
name: a.name,
|
|
46
|
+
description: a.description ?? "",
|
|
47
|
+
target: [],
|
|
48
|
+
config: {
|
|
49
|
+
actionType: a.actionType,
|
|
50
|
+
coolDown: a.coolDown ?? 60_000,
|
|
51
|
+
maxActionResultsPerIteration: a.maxActionResultsPerIteration ?? 10,
|
|
52
|
+
actionSettings: a.actionSettings ?? {},
|
|
53
|
+
},
|
|
54
|
+
}));
|
|
55
|
+
try {
|
|
56
|
+
const result = await this.instance.evaluateUI(`(async function() {
|
|
57
|
+
const pc = window.mainWindowService.mainWindow.source.people.campaigns;
|
|
58
|
+
const r = await pc.createCampaign(${JSON.stringify({
|
|
59
|
+
name: config.name,
|
|
60
|
+
liAccount: liAccountId,
|
|
61
|
+
excludeList: [],
|
|
62
|
+
actions,
|
|
63
|
+
})});
|
|
64
|
+
return { id: r.id };
|
|
65
|
+
})()`);
|
|
66
|
+
this.campaignRepo.fixIsValid(result.id);
|
|
67
|
+
this.campaignRepo.createActionExcludeLists(result.id, liAccountId);
|
|
68
|
+
return this.campaignRepo.getCampaign(result.id);
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
if (error instanceof CampaignExecutionError)
|
|
72
|
+
throw error;
|
|
73
|
+
const message = errorMessage(error);
|
|
74
|
+
throw new CampaignExecutionError(`Failed to create campaign: ${message}`, undefined, { cause: error });
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Update a campaign's name and/or description.
|
|
79
|
+
*
|
|
80
|
+
* This is a database-only operation — no CDP call is needed.
|
|
81
|
+
*
|
|
82
|
+
* @throws {CampaignNotFoundError} if the campaign does not exist.
|
|
83
|
+
*/
|
|
84
|
+
update(campaignId, updates) {
|
|
85
|
+
return this.campaignRepo.updateCampaign(campaignId, updates);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Import LinkedIn profile URLs into a campaign action's target list.
|
|
89
|
+
*
|
|
90
|
+
* Resolves the campaign's first action, then calls
|
|
91
|
+
* `source.people.actions.importPeopleFromUrls()` via CDP.
|
|
92
|
+
* The import is idempotent — re-importing an already-targeted person is a no-op.
|
|
93
|
+
*
|
|
94
|
+
* @throws {CampaignNotFoundError} if the campaign does not exist.
|
|
95
|
+
* @throws {CampaignExecutionError} if the campaign has no actions or the CDP call fails.
|
|
96
|
+
*/
|
|
97
|
+
async importPeopleFromUrls(campaignId, linkedInUrls) {
|
|
98
|
+
const actions = this.campaignRepo.getCampaignActions(campaignId);
|
|
99
|
+
if (actions.length === 0) {
|
|
100
|
+
throw new CampaignExecutionError(`Campaign ${String(campaignId)} has no actions`, campaignId);
|
|
101
|
+
}
|
|
102
|
+
const firstAction = actions[0];
|
|
103
|
+
const actionId = firstAction.id;
|
|
104
|
+
const urlsPayload = linkedInUrls.join("\n");
|
|
105
|
+
try {
|
|
106
|
+
const stats = await this.instance.evaluateUI(`(async function() {
|
|
107
|
+
const actions = window.mainWindowService.mainWindow.source.people.actions;
|
|
108
|
+
const [, stats] = await actions.importPeopleFromUrls(
|
|
109
|
+
${String(actionId)},
|
|
110
|
+
0,
|
|
111
|
+
${JSON.stringify(urlsPayload)},
|
|
112
|
+
true
|
|
113
|
+
);
|
|
114
|
+
return stats;
|
|
115
|
+
})()`);
|
|
116
|
+
const counts = stats.total.addToTarget;
|
|
117
|
+
return {
|
|
118
|
+
actionId,
|
|
119
|
+
successful: counts.successful,
|
|
120
|
+
alreadyInQueue: counts.alreadyInQueue,
|
|
121
|
+
alreadyProcessed: counts.alreadyProcessed,
|
|
122
|
+
failed: counts.failed,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
if (error instanceof CampaignExecutionError)
|
|
127
|
+
throw error;
|
|
128
|
+
const message = errorMessage(error);
|
|
129
|
+
throw new CampaignExecutionError(`Failed to import people into campaign ${String(campaignId)}: ${message}`, campaignId, { cause: error });
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Remove an action from a campaign's action chain via CDP.
|
|
134
|
+
*
|
|
135
|
+
* @throws {CampaignNotFoundError} if the campaign does not exist.
|
|
136
|
+
* @throws {ActionNotFoundError} if the action does not belong to the campaign.
|
|
137
|
+
* @throws {CampaignExecutionError} if the CDP call fails.
|
|
138
|
+
*/
|
|
139
|
+
async removeAction(campaignId, actionId) {
|
|
140
|
+
// Verify campaign and action exist
|
|
141
|
+
const actions = this.campaignRepo.getCampaignActions(campaignId);
|
|
142
|
+
const actionExists = actions.some((a) => a.id === actionId);
|
|
143
|
+
if (!actionExists) {
|
|
144
|
+
throw new ActionNotFoundError(actionId, campaignId);
|
|
145
|
+
}
|
|
146
|
+
try {
|
|
147
|
+
await this.instance.evaluateUI(`(async function() {
|
|
148
|
+
const pc = window.mainWindowService.mainWindow.source.people.campaigns;
|
|
149
|
+
await pc.removeActionFromCampaignChain(${String(actionId)});
|
|
150
|
+
})()`);
|
|
151
|
+
}
|
|
152
|
+
catch (error) {
|
|
153
|
+
if (error instanceof CampaignExecutionError)
|
|
154
|
+
throw error;
|
|
155
|
+
const message = errorMessage(error);
|
|
156
|
+
throw new CampaignExecutionError(`Failed to remove action ${String(actionId)} from campaign ${String(campaignId)}: ${message}`, campaignId, { cause: error });
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Reorder actions in a campaign's action chain via CDP.
|
|
161
|
+
*
|
|
162
|
+
* Moves each action to its target position using
|
|
163
|
+
* `source.people.campaigns.moveActionInCampaignChain()`.
|
|
164
|
+
*
|
|
165
|
+
* @param campaignId - Campaign ID.
|
|
166
|
+
* @param actionIds - Action IDs in the desired order.
|
|
167
|
+
* @throws {CampaignNotFoundError} if the campaign does not exist.
|
|
168
|
+
* @throws {ActionNotFoundError} if any action ID does not belong to the campaign.
|
|
169
|
+
* @throws {CampaignExecutionError} if the CDP call fails.
|
|
170
|
+
*/
|
|
171
|
+
async reorderActions(campaignId, actionIds) {
|
|
172
|
+
// Verify campaign exists and all action IDs are valid
|
|
173
|
+
const actions = this.campaignRepo.getCampaignActions(campaignId);
|
|
174
|
+
const existingIds = new Set(actions.map((a) => a.id));
|
|
175
|
+
for (const actionId of actionIds) {
|
|
176
|
+
if (!existingIds.has(actionId)) {
|
|
177
|
+
throw new ActionNotFoundError(actionId, campaignId);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
// Move each action to its target position
|
|
181
|
+
try {
|
|
182
|
+
for (let i = 0; i < actionIds.length; i++) {
|
|
183
|
+
const actionId = actionIds[i];
|
|
184
|
+
await this.instance.evaluateUI(`(async function() {
|
|
185
|
+
const pc = window.mainWindowService.mainWindow.source.people.campaigns;
|
|
186
|
+
await pc.moveActionInCampaignChain(${JSON.stringify({
|
|
187
|
+
action: actionId,
|
|
188
|
+
at: i,
|
|
189
|
+
})});
|
|
190
|
+
})()`);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
if (error instanceof CampaignExecutionError)
|
|
195
|
+
throw error;
|
|
196
|
+
const message = errorMessage(error);
|
|
197
|
+
throw new CampaignExecutionError(`Failed to reorder actions in campaign ${String(campaignId)}: ${message}`, campaignId, { cause: error });
|
|
198
|
+
}
|
|
199
|
+
// Return the updated action list
|
|
200
|
+
return this.campaignRepo.getCampaignActions(campaignId);
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* List all non-archived campaigns.
|
|
204
|
+
*/
|
|
205
|
+
list() {
|
|
206
|
+
return this.campaignRepo.listCampaigns();
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Get a campaign by ID.
|
|
210
|
+
*
|
|
211
|
+
* @throws {CampaignNotFoundError} if the campaign does not exist.
|
|
212
|
+
*/
|
|
213
|
+
get(campaignId) {
|
|
214
|
+
return this.campaignRepo.getCampaign(campaignId);
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Delete (archive) a campaign.
|
|
218
|
+
*
|
|
219
|
+
* LinkedHelper does not support hard deletes — this archives
|
|
220
|
+
* the campaign, removing it from the active list.
|
|
221
|
+
*
|
|
222
|
+
* @throws {CampaignNotFoundError} if the campaign does not exist.
|
|
223
|
+
*/
|
|
224
|
+
async delete(campaignId) {
|
|
225
|
+
const campaign = this.campaignRepo.getCampaign(campaignId);
|
|
226
|
+
try {
|
|
227
|
+
await this.instance.evaluateUI(`(async function() {
|
|
228
|
+
const src = window.mainWindowService.mainWindow.source.campaigns;
|
|
229
|
+
await src.setCampaignArchivedStatus(${String(campaign.id)}, true);
|
|
230
|
+
})()`);
|
|
231
|
+
}
|
|
232
|
+
catch (error) {
|
|
233
|
+
if (error instanceof CampaignExecutionError)
|
|
234
|
+
throw error;
|
|
235
|
+
const message = errorMessage(error);
|
|
236
|
+
throw new CampaignExecutionError(`Failed to delete campaign ${String(campaignId)}: ${message}`, campaignId, { cause: error });
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Start campaign execution for the specified persons.
|
|
241
|
+
*
|
|
242
|
+
* Performs the full start sequence:
|
|
243
|
+
* 1. Reset specified persons for re-run (three-table reset)
|
|
244
|
+
* 2. Wait for the campaign runner to reach idle state
|
|
245
|
+
* 3. Unpause the campaign
|
|
246
|
+
* 4. Start the campaign runner
|
|
247
|
+
*
|
|
248
|
+
* @throws {CampaignNotFoundError} if the campaign does not exist.
|
|
249
|
+
* @throws {CampaignTimeoutError} if the runner does not reach idle.
|
|
250
|
+
* @throws {CampaignExecutionError} if the runner fails to start.
|
|
251
|
+
*/
|
|
252
|
+
async start(campaignId, personIds) {
|
|
253
|
+
const campaign = this.campaignRepo.getCampaign(campaignId);
|
|
254
|
+
// Step 1: Reset persons for re-run
|
|
255
|
+
if (personIds.length > 0) {
|
|
256
|
+
this.statisticsRepo.resetForRerun(campaignId, personIds);
|
|
257
|
+
}
|
|
258
|
+
// Step 2: Wait for idle
|
|
259
|
+
await this.waitForIdle(campaignId);
|
|
260
|
+
// Step 3: Unpause
|
|
261
|
+
try {
|
|
262
|
+
await this.instance.evaluateUI(`(async function() {
|
|
263
|
+
const src = window.mainWindowService.mainWindow.source.campaigns;
|
|
264
|
+
await src.setCampaignPaused(${String(campaign.id)}, false, ${String(campaign.liAccountId)});
|
|
265
|
+
})()`);
|
|
266
|
+
}
|
|
267
|
+
catch (error) {
|
|
268
|
+
const message = errorMessage(error);
|
|
269
|
+
throw new CampaignExecutionError(`Failed to unpause campaign ${String(campaignId)}: ${message}`, campaignId, { cause: error });
|
|
270
|
+
}
|
|
271
|
+
// Step 4: Start runner
|
|
272
|
+
try {
|
|
273
|
+
const started = await this.instance.evaluateUI(`(function() {
|
|
274
|
+
return window.mainWindowService.mainWindow.campaignController.start();
|
|
275
|
+
})()`, false);
|
|
276
|
+
if (!started) {
|
|
277
|
+
throw new CampaignExecutionError(`Campaign runner failed to start (not in idle state)`, campaignId);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
catch (error) {
|
|
281
|
+
if (error instanceof CampaignExecutionError)
|
|
282
|
+
throw error;
|
|
283
|
+
const message = errorMessage(error);
|
|
284
|
+
throw new CampaignExecutionError(`Failed to start campaign runner: ${message}`, campaignId, { cause: error });
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Stop campaign execution.
|
|
289
|
+
*
|
|
290
|
+
* Pauses the specific campaign and stops the global runner.
|
|
291
|
+
*
|
|
292
|
+
* @throws {CampaignNotFoundError} if the campaign does not exist.
|
|
293
|
+
*/
|
|
294
|
+
async stop(campaignId) {
|
|
295
|
+
const campaign = this.campaignRepo.getCampaign(campaignId);
|
|
296
|
+
try {
|
|
297
|
+
// Pause the specific campaign
|
|
298
|
+
await this.instance.evaluateUI(`(async function() {
|
|
299
|
+
const src = window.mainWindowService.mainWindow.source.campaigns;
|
|
300
|
+
await src.setCampaignPaused(${String(campaign.id)}, true, ${String(campaign.liAccountId)});
|
|
301
|
+
})()`);
|
|
302
|
+
// Stop the global runner
|
|
303
|
+
await this.instance.evaluateUI(`(function() {
|
|
304
|
+
window.mainWindowService.mainWindow.campaignController.stop();
|
|
305
|
+
})()`, false);
|
|
306
|
+
}
|
|
307
|
+
catch (error) {
|
|
308
|
+
if (error instanceof CampaignExecutionError)
|
|
309
|
+
throw error;
|
|
310
|
+
const message = errorMessage(error);
|
|
311
|
+
throw new CampaignExecutionError(`Failed to stop campaign ${String(campaignId)}: ${message}`, campaignId, { cause: error });
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Get real-time campaign execution status.
|
|
316
|
+
*
|
|
317
|
+
* Combines the database campaign state with live CDP data
|
|
318
|
+
* (runner state and per-action people counts).
|
|
319
|
+
*
|
|
320
|
+
* @throws {CampaignNotFoundError} if the campaign does not exist.
|
|
321
|
+
*/
|
|
322
|
+
async getStatus(campaignId) {
|
|
323
|
+
const campaign = this.campaignRepo.getCampaign(campaignId);
|
|
324
|
+
const actions = this.campaignRepo.getCampaignActions(campaignId);
|
|
325
|
+
const actionIds = actions.map((a) => a.id);
|
|
326
|
+
const [runnerState, isPaused, actionCounts] = await Promise.all([
|
|
327
|
+
this.getRunnerState(),
|
|
328
|
+
this.getIsPaused(campaignId),
|
|
329
|
+
this.getActionPeopleCounts(actionIds),
|
|
330
|
+
]);
|
|
331
|
+
return {
|
|
332
|
+
campaignState: campaign.state,
|
|
333
|
+
isPaused,
|
|
334
|
+
runnerState,
|
|
335
|
+
actionCounts,
|
|
336
|
+
};
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Get campaign execution results.
|
|
340
|
+
*
|
|
341
|
+
* Returns database results combined with live per-action people counts.
|
|
342
|
+
*
|
|
343
|
+
* @throws {CampaignNotFoundError} if the campaign does not exist.
|
|
344
|
+
*/
|
|
345
|
+
async getResults(campaignId) {
|
|
346
|
+
const results = this.campaignRepo.getResults(campaignId);
|
|
347
|
+
const actions = this.campaignRepo.getCampaignActions(campaignId);
|
|
348
|
+
const actionIds = actions.map((a) => a.id);
|
|
349
|
+
const actionCounts = await this.getActionPeopleCounts(actionIds);
|
|
350
|
+
return {
|
|
351
|
+
campaignId,
|
|
352
|
+
results,
|
|
353
|
+
actionCounts,
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Wait for the campaign runner to reach idle state.
|
|
358
|
+
*/
|
|
359
|
+
async waitForIdle(campaignId) {
|
|
360
|
+
const deadline = Date.now() + IDLE_WAIT_TIMEOUT;
|
|
361
|
+
while (Date.now() < deadline) {
|
|
362
|
+
const state = await this.getRunnerState();
|
|
363
|
+
if (state === "idle")
|
|
364
|
+
return;
|
|
365
|
+
const remaining = deadline - Date.now();
|
|
366
|
+
if (remaining <= 0)
|
|
367
|
+
break;
|
|
368
|
+
await delay(Math.min(IDLE_POLL_INTERVAL, remaining));
|
|
369
|
+
}
|
|
370
|
+
throw new CampaignTimeoutError(`Campaign runner did not reach idle state within ${String(IDLE_WAIT_TIMEOUT)}ms`, campaignId);
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Get the current runner state from CDP.
|
|
374
|
+
*/
|
|
375
|
+
async getRunnerState() {
|
|
376
|
+
return this.instance.evaluateUI(`window.mainWindowService.mainWindow.state`, false);
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Check if a campaign is paused via CDP.
|
|
380
|
+
*/
|
|
381
|
+
async getIsPaused(campaignId) {
|
|
382
|
+
return this.instance.evaluateUI(`(async function() {
|
|
383
|
+
const src = window.mainWindowService.mainWindow.source.campaigns;
|
|
384
|
+
return await src.isCampaignPaused(${String(campaignId)});
|
|
385
|
+
})()`);
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Get people counts for each action via CDP.
|
|
389
|
+
*
|
|
390
|
+
* Each action requires a single CDP round-trip that retrieves all
|
|
391
|
+
* four people-state counts at once.
|
|
392
|
+
*/
|
|
393
|
+
async getActionPeopleCounts(actionIds) {
|
|
394
|
+
return Promise.all(actionIds.map(async (actionId) => {
|
|
395
|
+
const counts = await this.instance.evaluateUI(`(async () => {
|
|
396
|
+
const actions = window.mainWindowService.mainWindow.source.people.actions;
|
|
397
|
+
const [queued, processed, successful, failed] = await Promise.all([
|
|
398
|
+
actions.getActionPeopleCount(${String(actionId)}, ${String(PEOPLE_STATE.QUEUED)}),
|
|
399
|
+
actions.getActionPeopleCount(${String(actionId)}, ${String(PEOPLE_STATE.PROCESSED)}),
|
|
400
|
+
actions.getActionPeopleCount(${String(actionId)}, ${String(PEOPLE_STATE.SUCCESSFUL)}),
|
|
401
|
+
actions.getActionPeopleCount(${String(actionId)}, ${String(PEOPLE_STATE.FAILED)}),
|
|
402
|
+
]);
|
|
403
|
+
return { queued, processed, successful, failed };
|
|
404
|
+
})()`);
|
|
405
|
+
return { actionId, ...counts };
|
|
406
|
+
}));
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
//# sourceMappingURL=campaign.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"campaign.js","sourceRoot":"","sources":["../../src/services/campaign.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"campaign.test.d.ts","sourceRoot":"","sources":["../../src/services/campaign.test.ts"],"names":[],"mappings":""}
|