lancer-shared 1.2.119 → 1.2.120
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle.cjs.js +902 -323
- package/dist/constants/organization.d.ts +2 -2
- package/dist/constants/proxies.d.ts +4 -0
- package/dist/constants/routes.d.ts +3 -2
- package/dist/constants/routes.js +6 -0
- package/dist/constants/upwork-filters.d.ts +5 -0
- package/dist/constants/upwork-filters.js +75 -0
- package/dist/schemas/account/bidder-account.d.ts +12 -7
- package/dist/schemas/account/exceptions/no-bidder-accounts-available.d.ts +5 -0
- package/dist/schemas/account/scraper-account.d.ts +14 -16
- package/dist/schemas/ai-config/ai-config.d.ts +39 -0
- package/dist/schemas/ai-config/ai-config.js +12 -0
- package/dist/schemas/ai-config/index.d.ts +1 -0
- package/dist/schemas/ai-config/index.js +17 -0
- package/dist/schemas/bid/bid-status.d.ts +30 -0
- package/dist/schemas/bid/bid-status.js +15 -0
- package/dist/schemas/bid/exceptions/base-exception.d.ts +4 -0
- package/dist/schemas/bid/exceptions/evalute-element.exception.d.ts +5 -0
- package/dist/schemas/bid/exceptions/wait-for-function-timeout.d.ts +5 -0
- package/dist/schemas/bidding/proposal-dto.d.ts +26 -0
- package/dist/schemas/bidding/proposal-dto.js +18 -0
- package/dist/schemas/campaign/campaign-integrations.d.ts +0 -5
- package/dist/schemas/job/feed-job.d.ts +842 -0
- package/dist/schemas/job/index.d.ts +3 -0
- package/dist/schemas/job/job-details.d.ts +5711 -305
- package/dist/schemas/job/job-exceptions.d.ts +10 -0
- package/dist/schemas/job/job-pipeline.d.ts +74 -0
- package/dist/schemas/job/job-pipeline.js +29 -0
- package/dist/schemas/job/job-suitability.d.ts +12 -0
- package/dist/schemas/job/job-suitability.js +13 -0
- package/dist/schemas/job/job.d.ts +16 -16
- package/dist/schemas/job/pipeline-job.d.ts +9 -3
- package/dist/schemas/job/pipeline-job.js +1 -0
- package/dist/schemas/knowledge-object/index.d.ts +1 -0
- package/dist/schemas/knowledge-object/index.js +17 -0
- package/dist/schemas/knowledge-object/knowledge-object.d.ts +128 -0
- package/dist/schemas/knowledge-object/knowledge-object.js +47 -0
- package/dist/schemas/logger/log-event.d.ts +290 -36
- package/dist/schemas/proxy/proxy-available-replacements.d.ts +1 -1
- package/dist/schemas/proxy/proxy.d.ts +20 -9
- package/dist/schemas/proxy/proxy.js +3 -1
- package/dist/schemas/scraper/scrape-payload.d.ts +5 -0
- package/dist/schemas/scraper/scrape-response.d.ts +345 -0
- package/dist/schemas/scraper/scrape-response.js +9 -0
- package/dist/schemas/upwork-account/index.d.ts +1 -1
- package/dist/schemas/upwork-account/index.js +1 -1
- package/dist/schemas/upwork-account/upwork-business-manager-account.d.ts +14 -14
- package/dist/schemas/upwork-account/upwork-business-manager-account.js +2 -2
- package/dist/schemas/upwork-account/upwork-scraper-account.d.ts +92 -0
- package/dist/schemas/upwork-account/upwork-scraper-account.js +31 -0
- package/dist/schemas/upwork-account/upwork-scraping-account.d.ts +23 -23
- package/dist/schemas/upwork-account/upwork-scraping-account.js +4 -3
- package/dist/types/ai-config/ai-config.d.ts +6 -0
- package/dist/types/ai-config/ai-config.js +2 -0
- package/dist/types/ai-config/index.d.ts +1 -0
- package/dist/types/ai-config/index.js +17 -0
- package/dist/types/bid/bid-status.d.ts +5 -0
- package/dist/types/bid/bid-status.js +2 -0
- package/dist/types/bidding/proposal-dto.d.ts +3 -0
- package/dist/types/bidding/proposal-dto.js +2 -0
- package/dist/types/job/job-pipeline.d.ts +4 -0
- package/dist/types/job/job-pipeline.js +2 -0
- package/dist/types/job/job-suitability.d.ts +3 -0
- package/dist/types/job/job-suitability.js +2 -0
- package/dist/types/knowledge-object/index.d.ts +1 -0
- package/dist/types/knowledge-object/index.js +17 -0
- package/dist/types/knowledge-object/knowledge-object.d.ts +4 -0
- package/dist/types/knowledge-object/knowledge-object.js +2 -0
- package/dist/types/scraper/scrape-response.d.ts +4 -0
- package/dist/types/scraper/scrape-response.js +2 -0
- package/dist/types/upwork-account/upwork-scraping-account.d.ts +2 -2
- package/package.json +1 -1
- package/dist/schemas/account/bidder-account-rental.d.ts +0 -91
package/dist/bundle.cjs.js
CHANGED
|
@@ -6419,105 +6419,106 @@ var moment = /*@__PURE__*/getDefaultExportFromCjs(momentExports);
|
|
|
6419
6419
|
|
|
6420
6420
|
const ROUTES = {
|
|
6421
6421
|
AUTH: {
|
|
6422
|
-
BASE:
|
|
6423
|
-
REGISTER:
|
|
6422
|
+
BASE: 'auth',
|
|
6423
|
+
REGISTER: 'auth/register',
|
|
6424
6424
|
},
|
|
6425
6425
|
SYSTEM: {
|
|
6426
|
-
BASE:
|
|
6426
|
+
BASE: 'system',
|
|
6427
6427
|
PROMPTS: {
|
|
6428
|
-
BASE:
|
|
6428
|
+
BASE: 'system/prompts',
|
|
6429
6429
|
},
|
|
6430
6430
|
},
|
|
6431
6431
|
EVENTS: {
|
|
6432
|
-
BASE:
|
|
6432
|
+
BASE: 'events',
|
|
6433
6433
|
BY_ID: (id) => `events/${id}`,
|
|
6434
6434
|
},
|
|
6435
6435
|
JOBS: {
|
|
6436
|
-
BASE:
|
|
6436
|
+
BASE: 'jobs',
|
|
6437
6437
|
BY_ID: (id) => `jobs/${id}`,
|
|
6438
6438
|
UPDATE_ACTIVITY: `jobs/update-activity`,
|
|
6439
|
-
IMPORT:
|
|
6440
|
-
FILTER_OPTIONS:
|
|
6441
|
-
TOTAL_JOBS:
|
|
6439
|
+
IMPORT: 'jobs/import',
|
|
6440
|
+
FILTER_OPTIONS: 'jobs/filter-options',
|
|
6441
|
+
TOTAL_JOBS: 'jobs/total-jobs',
|
|
6442
6442
|
GET_JOB_TITLE: (jobId) => `jobs/get-job-title/${jobId}`,
|
|
6443
|
-
GET_JOBS_COUNT:
|
|
6443
|
+
GET_JOBS_COUNT: 'jobs/get-jobs-count',
|
|
6444
6444
|
},
|
|
6445
6445
|
USERS: {
|
|
6446
|
-
BASE:
|
|
6446
|
+
BASE: 'users',
|
|
6447
6447
|
BY_ID: (id) => `users/${id}`,
|
|
6448
6448
|
ORGANIZATIONS: (id) => `users/${id}/organizations`,
|
|
6449
6449
|
},
|
|
6450
6450
|
COOKIES: {
|
|
6451
|
-
BASE:
|
|
6452
|
-
SCRAPE:
|
|
6451
|
+
BASE: 'cookies',
|
|
6452
|
+
SCRAPE: 'cookies/scrape-cookies',
|
|
6453
6453
|
},
|
|
6454
6454
|
SCRAPING: {
|
|
6455
|
-
BASE:
|
|
6456
|
-
START_SCRAPING:
|
|
6457
|
-
START_WORLDWIDE_SCRAPING:
|
|
6458
|
-
START_US_SCRAPING:
|
|
6459
|
-
START_UK_SCRAPING:
|
|
6460
|
-
UPDATE_ACTIVITY_4H_WORLDWIDE:
|
|
6461
|
-
UPDATE_ACTIVITY_4H_UK:
|
|
6462
|
-
UPDATE_ACTIVITY_4H_US:
|
|
6463
|
-
UPDATE_ACTIVITY_24H_WORLDWIDE:
|
|
6464
|
-
UPDATE_ACTIVITY_24H_UK:
|
|
6465
|
-
UPDATE_ACTIVITY_24H_US:
|
|
6466
|
-
SCRAPE_FEED_WORLDWIDE:
|
|
6467
|
-
SCRAPE_FEED_UK:
|
|
6468
|
-
SCRAPE_FEED_US:
|
|
6469
|
-
SCRAPE_JOB:
|
|
6470
|
-
PROCESS_FEED:
|
|
6471
|
-
SCRAPE_JOB_ACTIVITY:
|
|
6472
|
-
USER_PROFILE:
|
|
6473
|
-
CHECK_LEAD_STATUS:
|
|
6455
|
+
BASE: 'scraping',
|
|
6456
|
+
START_SCRAPING: 'scraping/start',
|
|
6457
|
+
START_WORLDWIDE_SCRAPING: 'scraping/start-worldwide',
|
|
6458
|
+
START_US_SCRAPING: 'scraping/start-us',
|
|
6459
|
+
START_UK_SCRAPING: 'scraping/start-uk',
|
|
6460
|
+
UPDATE_ACTIVITY_4H_WORLDWIDE: 'scraping/update-activity/4h',
|
|
6461
|
+
UPDATE_ACTIVITY_4H_UK: 'scraping/update-activity/4h/uk',
|
|
6462
|
+
UPDATE_ACTIVITY_4H_US: 'scraping/update-activity/4h/us',
|
|
6463
|
+
UPDATE_ACTIVITY_24H_WORLDWIDE: 'scraping/update-activity/24h',
|
|
6464
|
+
UPDATE_ACTIVITY_24H_UK: 'scraping/update-activity/24h/uk',
|
|
6465
|
+
UPDATE_ACTIVITY_24H_US: 'scraping/update-activity/24h/us',
|
|
6466
|
+
SCRAPE_FEED_WORLDWIDE: 'scraping/feed-worldwide',
|
|
6467
|
+
SCRAPE_FEED_UK: 'scraping/feed-uk',
|
|
6468
|
+
SCRAPE_FEED_US: 'scraping/feed-us',
|
|
6469
|
+
SCRAPE_JOB: 'scraping/job',
|
|
6470
|
+
PROCESS_FEED: 'scraping/process-feed',
|
|
6471
|
+
SCRAPE_JOB_ACTIVITY: 'scraping/job-activity',
|
|
6472
|
+
USER_PROFILE: 'scraping/user-profile',
|
|
6473
|
+
CHECK_LEAD_STATUS: 'scraping/check-lead-status',
|
|
6474
6474
|
},
|
|
6475
6475
|
ADMIN: {
|
|
6476
|
-
BASE:
|
|
6476
|
+
BASE: 'admin',
|
|
6477
6477
|
BIDDER_ACCOUNTS: {
|
|
6478
|
-
BASE:
|
|
6478
|
+
BASE: 'admin/bidder-accounts',
|
|
6479
6479
|
BY_ID: (id) => `admin/bidder-accounts/${id}`,
|
|
6480
6480
|
BY_PROVIDER: (provider) => `admin/bidder-accounts/${provider}`,
|
|
6481
6481
|
BY_PROVIDER_AND_ID: (provider, id) => `admin/bidder-accounts/${provider}/${id}`,
|
|
6482
6482
|
},
|
|
6483
6483
|
SCRAPER_ACCOUNTS: {
|
|
6484
|
-
BASE:
|
|
6484
|
+
BASE: 'admin/scraper-accounts',
|
|
6485
6485
|
BY_ID: (id) => `admin/scraper-accounts/${id}`,
|
|
6486
6486
|
BY_PROVIDER: (provider) => `admin/scraper-accounts/${provider}`,
|
|
6487
6487
|
BY_PROVIDER_AND_ID: (provider, id) => `admin/scraper-accounts/${provider}/${id}`,
|
|
6488
|
+
REFRESH_ROTATING_PROXIES: (provider) => `admin/scraper-accounts/${provider}/refresh-rotating-proxies`,
|
|
6488
6489
|
},
|
|
6489
6490
|
PROXIES: {
|
|
6490
|
-
BASE:
|
|
6491
|
+
BASE: 'admin/proxies',
|
|
6491
6492
|
BY_ID: (id) => `admin/proxies/${id}`,
|
|
6492
6493
|
REPLACE_PROXY: (id) => `admin/proxies/${id}/replace`,
|
|
6493
|
-
SYNC:
|
|
6494
|
-
AVAILABLE_REPLACEMENTS:
|
|
6495
|
-
AVAILABLE_COUNTRIES:
|
|
6494
|
+
SYNC: 'admin/proxies/sync',
|
|
6495
|
+
AVAILABLE_REPLACEMENTS: 'admin/proxies/available-replacements',
|
|
6496
|
+
AVAILABLE_COUNTRIES: 'admin/proxies/available-countries',
|
|
6496
6497
|
},
|
|
6497
6498
|
DASHBOARD: {
|
|
6498
|
-
CAMPAIGN_STATS:
|
|
6499
|
+
CAMPAIGN_STATS: 'admin/dashboard/campaign-stats',
|
|
6499
6500
|
},
|
|
6500
6501
|
ALERTS: {
|
|
6501
|
-
BASE:
|
|
6502
|
-
SEND_ALERT:
|
|
6502
|
+
BASE: 'admin/alerts',
|
|
6503
|
+
SEND_ALERT: 'admin/alerts/send',
|
|
6503
6504
|
},
|
|
6504
6505
|
AGENT: {
|
|
6505
|
-
BASE:
|
|
6506
|
-
TEST_JOB_QUALITY:
|
|
6507
|
-
TEST_SUITABILITY:
|
|
6508
|
-
TEST_PROPOSAL:
|
|
6506
|
+
BASE: 'admin/agent',
|
|
6507
|
+
TEST_JOB_QUALITY: 'admin/agent/test-job-quality',
|
|
6508
|
+
TEST_SUITABILITY: 'admin/agent/test-suitability',
|
|
6509
|
+
TEST_PROPOSAL: 'admin/agent/test-proposal',
|
|
6509
6510
|
},
|
|
6510
6511
|
},
|
|
6511
6512
|
BID: {
|
|
6512
|
-
BASE:
|
|
6513
|
+
BASE: 'bid',
|
|
6513
6514
|
BID_ON_JOB: (userId, campaignId, leadId) => `bid/${userId}/${campaignId}/${leadId}`,
|
|
6514
6515
|
},
|
|
6515
6516
|
BIDDER_ACCOUNTS: {
|
|
6516
|
-
BASE:
|
|
6517
|
+
BASE: 'bidder-accounts',
|
|
6517
6518
|
BY_ID: (id) => `bidder-accounts/${id}`,
|
|
6518
6519
|
},
|
|
6519
6520
|
ORGANIZATIONS: {
|
|
6520
|
-
BASE:
|
|
6521
|
+
BASE: 'organizations',
|
|
6521
6522
|
BY_ID: (id) => `organizations/${id}`,
|
|
6522
6523
|
ONBOARDING: {
|
|
6523
6524
|
BASE: (id) => `organizations/${id}/onboarding`,
|
|
@@ -6570,8 +6571,8 @@ const ROUTES = {
|
|
|
6570
6571
|
BY_PLATFORM: (organizationId, campaignId, platform) => `organizations/${organizationId}/campaigns/${campaignId}/chat-bots/${platform}`,
|
|
6571
6572
|
OAUTH_URL: (organizationId, campaignId, platform) => `organizations/${organizationId}/campaigns/${campaignId}/chat-bots/${platform}/oauth-url`,
|
|
6572
6573
|
CALLBACK: (platform) => `chat-bots/${platform}/callback`,
|
|
6573
|
-
SEND_NOTIFICATION: () =>
|
|
6574
|
-
REMOVE_SUITABLE_LEAD_MESSAGE_BUTTONS: () =>
|
|
6574
|
+
SEND_NOTIFICATION: () => 'chat-bots/send-notification',
|
|
6575
|
+
REMOVE_SUITABLE_LEAD_MESSAGE_BUTTONS: () => 'chat-bots/remove-suitable-lead-message-buttons',
|
|
6575
6576
|
},
|
|
6576
6577
|
ACTIVITIES: {
|
|
6577
6578
|
BASE: (organizationId, campaignId) => `organizations/${organizationId}/campaigns/${campaignId}/activities`,
|
|
@@ -6582,26 +6583,26 @@ const ROUTES = {
|
|
|
6582
6583
|
USAGE_SUMMARIES: {
|
|
6583
6584
|
DAILY: {
|
|
6584
6585
|
BASE: (organizationId) => `usage-summaries/${organizationId}/daily`,
|
|
6585
|
-
BY_DATE: (organizationId, date) => `usage-summaries/${organizationId}/daily/${moment(date).format(
|
|
6586
|
+
BY_DATE: (organizationId, date) => `usage-summaries/${organizationId}/daily/${moment(date).format('YYYY-MM-DD')}`,
|
|
6586
6587
|
},
|
|
6587
6588
|
WEEKLY: {
|
|
6588
6589
|
BASE: (organizationId) => `usage-summaries/${organizationId}/weekly`,
|
|
6589
|
-
BY_DATE: (organizationId, date) => `usage-summaries/${organizationId}/weekly/${moment(date).format(
|
|
6590
|
+
BY_DATE: (organizationId, date) => `usage-summaries/${organizationId}/weekly/${moment(date).format('YYYY-WW')}`,
|
|
6590
6591
|
},
|
|
6591
6592
|
MONTHLY: {
|
|
6592
6593
|
BASE: (organizationId) => `usage-summaries/${organizationId}/monthly`,
|
|
6593
|
-
BY_DATE: (organizationId, date) => `usage-summaries/${organizationId}/monthly/${moment(date).format(
|
|
6594
|
+
BY_DATE: (organizationId, date) => `usage-summaries/${organizationId}/monthly/${moment(date).format('YYYY-MM')}`,
|
|
6594
6595
|
},
|
|
6595
6596
|
QUARTERLY: {
|
|
6596
6597
|
BASE: (organizationId) => `usage-summaries/${organizationId}/quarterly`,
|
|
6597
6598
|
BY_DATE: (organizationId, date) => {
|
|
6598
6599
|
const parsed = moment(date);
|
|
6599
|
-
return `usage-summaries/${organizationId}/quarterly/${parsed.format(
|
|
6600
|
+
return `usage-summaries/${organizationId}/quarterly/${parsed.format('YYYY')}-Q${parsed.quarter()}`;
|
|
6600
6601
|
},
|
|
6601
6602
|
},
|
|
6602
6603
|
YEARLY: {
|
|
6603
6604
|
BASE: (organizationId) => `usage-summaries/${organizationId}/yearly`,
|
|
6604
|
-
BY_DATE: (organizationId, date) => `usage-summaries/${organizationId}/yearly/${moment(date).format(
|
|
6605
|
+
BY_DATE: (organizationId, date) => `usage-summaries/${organizationId}/yearly/${moment(date).format('YYYY')}`,
|
|
6605
6606
|
},
|
|
6606
6607
|
},
|
|
6607
6608
|
INVOICES: {
|
|
@@ -6615,35 +6616,35 @@ const ROUTES = {
|
|
|
6615
6616
|
INVOICE_PREVIEW: (id) => `organizations/${id}/invoice-preview`,
|
|
6616
6617
|
},
|
|
6617
6618
|
TRANSACTIONS: {
|
|
6618
|
-
BASE:
|
|
6619
|
+
BASE: 'transactions',
|
|
6619
6620
|
BY_ID: (id) => `transactions/${id}`,
|
|
6620
6621
|
},
|
|
6621
6622
|
AGENT: {
|
|
6622
|
-
BASE:
|
|
6623
|
-
SCRAPE_UPWORK_PROFILE:
|
|
6624
|
-
GENERATE_DEFAULT_AI_CONFIG:
|
|
6625
|
-
TEST_JOB_QUALITY:
|
|
6626
|
-
TEST_SUITABILITY:
|
|
6627
|
-
TEST_PROPOSAL:
|
|
6628
|
-
TEST_SYSTEM_PROMPTS:
|
|
6629
|
-
ANALYZE_LEAD:
|
|
6630
|
-
GENERATE_PROPOSAL:
|
|
6631
|
-
BID:
|
|
6623
|
+
BASE: 'agent',
|
|
6624
|
+
SCRAPE_UPWORK_PROFILE: 'agent/scrape-upwork-profile',
|
|
6625
|
+
GENERATE_DEFAULT_AI_CONFIG: 'agent/generate-ai-config',
|
|
6626
|
+
TEST_JOB_QUALITY: 'agent/test-job-quality',
|
|
6627
|
+
TEST_SUITABILITY: 'agent/test-suitability',
|
|
6628
|
+
TEST_PROPOSAL: 'agent/test-proposal',
|
|
6629
|
+
TEST_SYSTEM_PROMPTS: 'agent/test-system-prompts',
|
|
6630
|
+
ANALYZE_LEAD: 'agent/analyze-lead',
|
|
6631
|
+
GENERATE_PROPOSAL: 'agent/generate-proposal',
|
|
6632
|
+
BID: 'agent/bid',
|
|
6632
6633
|
},
|
|
6633
6634
|
PLANS: {
|
|
6634
|
-
BASE:
|
|
6635
|
+
BASE: 'plans',
|
|
6635
6636
|
BY_ID: (id) => `plans/${id}`,
|
|
6636
6637
|
},
|
|
6637
6638
|
NOTIFICATIONS: {
|
|
6638
|
-
BASE:
|
|
6639
|
-
SEND_NOTIFICATION:
|
|
6639
|
+
BASE: 'notifications',
|
|
6640
|
+
SEND_NOTIFICATION: 'notifications/send',
|
|
6640
6641
|
},
|
|
6641
6642
|
USAGE_EVENTS: {
|
|
6642
|
-
BASE:
|
|
6643
|
+
BASE: 'usage-events',
|
|
6643
6644
|
BY_ID: (id) => `usage-events/${id}`,
|
|
6644
6645
|
},
|
|
6645
6646
|
BIDDER_INSTANCES: {
|
|
6646
|
-
BASE:
|
|
6647
|
+
BASE: 'bidder-instances',
|
|
6647
6648
|
BY_ID: (id) => `bidder-instances/${id}`,
|
|
6648
6649
|
},
|
|
6649
6650
|
};
|
|
@@ -6657,7 +6658,7 @@ const buildRoute = (route, params = {}) => {
|
|
|
6657
6658
|
};
|
|
6658
6659
|
// Helper function to get route without admin prefix
|
|
6659
6660
|
const getRouteWithoutAdminPrefix = (route) => {
|
|
6660
|
-
return route.replace(
|
|
6661
|
+
return route.replace('admin/', '');
|
|
6661
6662
|
};
|
|
6662
6663
|
|
|
6663
6664
|
const accountStatusOrder = [
|
|
@@ -11082,6 +11083,92 @@ const accountStatusSchema = z.enum([
|
|
|
11082
11083
|
'invalid_credentials',
|
|
11083
11084
|
]);
|
|
11084
11085
|
|
|
11086
|
+
// Enum definitions for fixed options
|
|
11087
|
+
const projectDurationEnum = z.enum(JOB_FILTER_OPTIONS.PROJECT_DURATION);
|
|
11088
|
+
const engagementTypeEnum = z.enum(JOB_FILTER_OPTIONS.ENGAGEMENT_TYPE);
|
|
11089
|
+
const vendorTypeEnum = z.enum(JOB_FILTER_OPTIONS.VENDOR_TYPE);
|
|
11090
|
+
const paymentTypeEnum = z.enum(JOB_FILTER_OPTIONS.PAYMENT_TYPE);
|
|
11091
|
+
const categoryEnum = z.enum(JOB_FILTER_OPTIONS.CATEGORIES);
|
|
11092
|
+
const clientIndustryEnum = z.enum(JOB_FILTER_OPTIONS.CLIENT_INDUSTRY);
|
|
11093
|
+
const clientSizeEnum = z.enum(JOB_FILTER_OPTIONS.CLIENT_SIZE);
|
|
11094
|
+
const talentTypeEnum = z.enum(JOB_FILTER_OPTIONS.TALENT_TYPE);
|
|
11095
|
+
const englishLevelEnum = z.enum(JOB_FILTER_OPTIONS.ENGLISH_LEVELS);
|
|
11096
|
+
const experienceLevelEnum = z.enum(JOB_FILTER_OPTIONS.EXPERIENCE_LEVELS);
|
|
11097
|
+
const regionEnum = z.enum(["all", "Worldwide", "UKOnly", "USOnly"]);
|
|
11098
|
+
const requiredEarningsEnum = z.union([
|
|
11099
|
+
z.literal(100),
|
|
11100
|
+
z.literal(1000),
|
|
11101
|
+
z.literal(10000),
|
|
11102
|
+
]);
|
|
11103
|
+
const requiredJSSEnum = z.enum(JOB_FILTER_OPTIONS.REQUIRED_JSS);
|
|
11104
|
+
const isPaymentVerifiedEnum = z.enum(["all", "true", "false"]);
|
|
11105
|
+
const isPhoneVerifiedEnum = z.enum(["all", "true", "false"]);
|
|
11106
|
+
const hasQuestionsEnum = z.enum(["all", "yes", "no"]);
|
|
11107
|
+
// Main job filters schema
|
|
11108
|
+
const jobFiltersSchema = z.object({
|
|
11109
|
+
keywords: z
|
|
11110
|
+
.object({
|
|
11111
|
+
includes: z.string().nullable(),
|
|
11112
|
+
excludes: z.string().nullable(),
|
|
11113
|
+
})
|
|
11114
|
+
.nullable(),
|
|
11115
|
+
isFeatured: z.enum(["all", "true", "false"]).nullable(),
|
|
11116
|
+
regions: z.array(regionEnum).nullable(),
|
|
11117
|
+
categories: z
|
|
11118
|
+
.object({
|
|
11119
|
+
includes: z.array(categoryEnum).nullable(),
|
|
11120
|
+
excludes: z.array(categoryEnum).nullable(),
|
|
11121
|
+
})
|
|
11122
|
+
.nullable(),
|
|
11123
|
+
payment: z
|
|
11124
|
+
.object({
|
|
11125
|
+
paymentType: z.array(paymentTypeEnum).nullable(),
|
|
11126
|
+
minFixedPrice: z.number().nullable(),
|
|
11127
|
+
maxFixedPrice: z.number().nullable(),
|
|
11128
|
+
minHourlyRate: z.number().nullable(),
|
|
11129
|
+
maxHourlyRate: z.number().nullable(),
|
|
11130
|
+
})
|
|
11131
|
+
.nullable(),
|
|
11132
|
+
projectDuration: z.array(projectDurationEnum).nullable(),
|
|
11133
|
+
experienceLevel: z.array(experienceLevelEnum).nullable(),
|
|
11134
|
+
questions: z
|
|
11135
|
+
.object({
|
|
11136
|
+
hasQuestions: arrayType(hasQuestionsEnum),
|
|
11137
|
+
})
|
|
11138
|
+
.nullable(),
|
|
11139
|
+
engagementType: z.array(engagementTypeEnum).nullable(),
|
|
11140
|
+
clientInfo: z
|
|
11141
|
+
.object({
|
|
11142
|
+
isPaymentVerified: isPaymentVerifiedEnum.default("all"),
|
|
11143
|
+
isPhoneVerified: isPhoneVerifiedEnum.default("all"),
|
|
11144
|
+
enterpriseClient: z.enum(["all", "true", "false"]).default("all"),
|
|
11145
|
+
clientLocationIncludes: z.array(z.string()).nullable(),
|
|
11146
|
+
clientLocationExcludes: z.array(z.string()).nullable(),
|
|
11147
|
+
minReviewScore: z.number().min(0).max(5).nullable(),
|
|
11148
|
+
minTotalSpent: z.number().nullable(),
|
|
11149
|
+
minHireRate: z.number().min(0).max(100).nullable(),
|
|
11150
|
+
clientIndustry: z.array(clientIndustryEnum).nullable(),
|
|
11151
|
+
companySize: z.array(clientSizeEnum).nullable(),
|
|
11152
|
+
minJobsPosted: z.number().nullable(),
|
|
11153
|
+
minAvgHourlyRate: z.number().nullable(),
|
|
11154
|
+
minNumReviews: z.number().nullable(),
|
|
11155
|
+
memberSinceFrom: z.string().date().nullable(),
|
|
11156
|
+
memberSinceTo: z.string().date().nullable(),
|
|
11157
|
+
})
|
|
11158
|
+
.nullable(),
|
|
11159
|
+
vendorQualifications: z
|
|
11160
|
+
.object({
|
|
11161
|
+
locationIncludes: z.array(z.string()).nullable(),
|
|
11162
|
+
locationExcludes: z.array(z.string()).nullable(),
|
|
11163
|
+
talentTypes: z.array(talentTypeEnum).nullable(),
|
|
11164
|
+
englishLevels: z.array(englishLevelEnum).nullable(),
|
|
11165
|
+
includeRisingTalent: z.string().nullable(),
|
|
11166
|
+
requiredEarnings: requiredEarningsEnum.nullable(),
|
|
11167
|
+
requiredJSS: z.array(requiredJSSEnum).nullable(),
|
|
11168
|
+
})
|
|
11169
|
+
.nullable(),
|
|
11170
|
+
});
|
|
11171
|
+
|
|
11085
11172
|
const proxyCountryEnum = z.enum([
|
|
11086
11173
|
'US',
|
|
11087
11174
|
'CA',
|
|
@@ -11332,11 +11419,16 @@ const proxyCountryEnum = z.enum([
|
|
|
11332
11419
|
]);
|
|
11333
11420
|
|
|
11334
11421
|
const proxyStatusSchema = z.enum([
|
|
11335
|
-
|
|
11336
|
-
|
|
11337
|
-
|
|
11422
|
+
'invalid',
|
|
11423
|
+
'valid',
|
|
11424
|
+
'pending_validation',
|
|
11338
11425
|
]);
|
|
11339
|
-
const proxyProviderSchema = z.enum([
|
|
11426
|
+
const proxyProviderSchema = z.enum([
|
|
11427
|
+
'webshare',
|
|
11428
|
+
'decodo',
|
|
11429
|
+
'proxy-cheap',
|
|
11430
|
+
]);
|
|
11431
|
+
const proxyTypeSchema = z.enum(['rotating', 'static']);
|
|
11340
11432
|
const proxySchema = z.object({
|
|
11341
11433
|
id: z.string(),
|
|
11342
11434
|
externalId: z.string(),
|
|
@@ -11350,6 +11442,7 @@ const proxySchema = z.object({
|
|
|
11350
11442
|
status: proxyStatusSchema.nullable(),
|
|
11351
11443
|
country: proxyCountryEnum.nullable(),
|
|
11352
11444
|
accountId: z.string().nullable(),
|
|
11445
|
+
type: proxyTypeSchema,
|
|
11353
11446
|
});
|
|
11354
11447
|
const externalProxySchema = proxySchema.omit({
|
|
11355
11448
|
id: true,
|
|
@@ -11361,6 +11454,113 @@ const externalProxySchema = proxySchema.omit({
|
|
|
11361
11454
|
|
|
11362
11455
|
const proxyAvailableReplacementsSchema = z.record(proxyProviderSchema, z.number());
|
|
11363
11456
|
|
|
11457
|
+
const bidderAccountProvider = z.enum([
|
|
11458
|
+
'user-provided',
|
|
11459
|
+
'lancer-provided',
|
|
11460
|
+
]);
|
|
11461
|
+
const bidderAccountAgencySchema = z.object({
|
|
11462
|
+
name: z.string(),
|
|
11463
|
+
logoUrl: z.string().nullable(),
|
|
11464
|
+
contractors: z.array(z.string()),
|
|
11465
|
+
organizationId: z.string(),
|
|
11466
|
+
});
|
|
11467
|
+
const bidderAccountSchema = z.object({
|
|
11468
|
+
id: z.string(),
|
|
11469
|
+
provider: bidderAccountProvider,
|
|
11470
|
+
email: z.string().email(),
|
|
11471
|
+
password: z.string(),
|
|
11472
|
+
securityQuestionAnswer: z.string().nullable(),
|
|
11473
|
+
assignedOrganizations: z.array(z.string()),
|
|
11474
|
+
googleOauthTokens: z.any().nullable(),
|
|
11475
|
+
lastUsed: z.number().nullable(),
|
|
11476
|
+
multiLoginProfileId: z.string().nullable(),
|
|
11477
|
+
proxyId: z.string().nullable(),
|
|
11478
|
+
profilePhotoUrl: z.string().nullable(),
|
|
11479
|
+
name: z.string().nullable(),
|
|
11480
|
+
agencies: z.array(bidderAccountAgencySchema).nullable(),
|
|
11481
|
+
instanceId: stringType().nullable(),
|
|
11482
|
+
createdAt: z.number(),
|
|
11483
|
+
updatedAt: z.number(),
|
|
11484
|
+
region: regionEnum,
|
|
11485
|
+
isProtected: z.boolean().optional(),
|
|
11486
|
+
});
|
|
11487
|
+
const createBidderAccountSchema = bidderAccountSchema
|
|
11488
|
+
.pick({
|
|
11489
|
+
email: true,
|
|
11490
|
+
password: true,
|
|
11491
|
+
provider: true,
|
|
11492
|
+
securityQuestionAnswer: true,
|
|
11493
|
+
profilePhotoUrl: true,
|
|
11494
|
+
name: true,
|
|
11495
|
+
agencies: true,
|
|
11496
|
+
assignedOrganizations: true,
|
|
11497
|
+
region: true,
|
|
11498
|
+
})
|
|
11499
|
+
.extend({
|
|
11500
|
+
proxyCountry: proxyCountryEnum.nullable(),
|
|
11501
|
+
});
|
|
11502
|
+
const updateBidderAccountSchema = bidderAccountSchema
|
|
11503
|
+
.omit({
|
|
11504
|
+
id: true,
|
|
11505
|
+
})
|
|
11506
|
+
.partial();
|
|
11507
|
+
const verifyBidderAccountCredentialsSchema = z.object({
|
|
11508
|
+
email: z.string().email(),
|
|
11509
|
+
password: z.string(),
|
|
11510
|
+
securityQuestionAnswer: z.string(),
|
|
11511
|
+
multiloginProfileId: z.string(),
|
|
11512
|
+
proxy: proxySchema,
|
|
11513
|
+
});
|
|
11514
|
+
const verifyBidderAccountCredentialsResponseSchema = z.object({
|
|
11515
|
+
accountName: z.string().nullable(),
|
|
11516
|
+
accountPhotoUrl: z.string().nullable(),
|
|
11517
|
+
agencies: z.array(bidderAccountAgencySchema).nullable(),
|
|
11518
|
+
});
|
|
11519
|
+
const acceptUpworkInvitationSchema = z.object({
|
|
11520
|
+
code: z.string(),
|
|
11521
|
+
});
|
|
11522
|
+
const acceptUpworkInvitationResponseSchema = z.object({
|
|
11523
|
+
agencyName: z.string(),
|
|
11524
|
+
photoUrl: z.string(),
|
|
11525
|
+
contractors: z.array(z.string()),
|
|
11526
|
+
});
|
|
11527
|
+
|
|
11528
|
+
class BidderAccountAlreadyConnectedException extends Error {
|
|
11529
|
+
code = 'BIDDER_ACCOUNT_ALREADY_CONNECTED';
|
|
11530
|
+
email;
|
|
11531
|
+
constructor(email) {
|
|
11532
|
+
super(`Bidder account ${email} is already connected to a scraper account`);
|
|
11533
|
+
this.email = email;
|
|
11534
|
+
}
|
|
11535
|
+
}
|
|
11536
|
+
const bidderAccountAlreadyConnectedException = (email) => new BidderAccountAlreadyConnectedException(email);
|
|
11537
|
+
|
|
11538
|
+
class InvalidGoogleOAuthTokenException extends Error {
|
|
11539
|
+
code = 'INVALID_GOOGLE_OAUTH_TOKEN';
|
|
11540
|
+
constructor(message) {
|
|
11541
|
+
super(message);
|
|
11542
|
+
}
|
|
11543
|
+
}
|
|
11544
|
+
const invalidGoogleOAuthTokenSchema = (message) => new InvalidGoogleOAuthTokenException(message);
|
|
11545
|
+
|
|
11546
|
+
class NoBidderAccountsAvailableException extends Error {
|
|
11547
|
+
code = 'NO_BIDDER_ACCOUNTS_AVAILABLE';
|
|
11548
|
+
constructor(message) {
|
|
11549
|
+
super(message);
|
|
11550
|
+
}
|
|
11551
|
+
}
|
|
11552
|
+
const noBidderAccountsAvailableException = (message) => {
|
|
11553
|
+
return new NoBidderAccountsAvailableException(message);
|
|
11554
|
+
};
|
|
11555
|
+
|
|
11556
|
+
class NoGoogleOAuthTokensFoundException extends Error {
|
|
11557
|
+
code = 'NO_GOOGLE_OAUTH_TOKENS_FOUND';
|
|
11558
|
+
constructor(message) {
|
|
11559
|
+
super(message);
|
|
11560
|
+
}
|
|
11561
|
+
}
|
|
11562
|
+
const noGoogleOAuthTokensFoundException = (message) => new NoGoogleOAuthTokensFoundException(message);
|
|
11563
|
+
|
|
11364
11564
|
const booleanSchema = z
|
|
11365
11565
|
.union([z.boolean(), z.literal("true"), z.literal("false")])
|
|
11366
11566
|
.transform((value) => value === true || value === "true");
|
|
@@ -11380,7 +11580,7 @@ const regionSchema = z.union([
|
|
|
11380
11580
|
z.literal("Worldwide"),
|
|
11381
11581
|
]);
|
|
11382
11582
|
|
|
11383
|
-
const segmentationDataSchema = objectType({
|
|
11583
|
+
const segmentationDataSchema$1 = objectType({
|
|
11384
11584
|
customValue: stringType().nullable(),
|
|
11385
11585
|
label: stringType(),
|
|
11386
11586
|
name: stringType(),
|
|
@@ -11389,7 +11589,7 @@ const segmentationDataSchema = objectType({
|
|
|
11389
11589
|
value: stringType(),
|
|
11390
11590
|
skill: anyType().nullable(),
|
|
11391
11591
|
});
|
|
11392
|
-
const clientActivitySchema = objectType({
|
|
11592
|
+
const clientActivitySchema$1 = objectType({
|
|
11393
11593
|
lastBuyerActivity: stringType(),
|
|
11394
11594
|
totalApplicants: numberType(),
|
|
11395
11595
|
totalHired: numberType(),
|
|
@@ -11398,23 +11598,23 @@ const clientActivitySchema = objectType({
|
|
|
11398
11598
|
invitationsSent: numberType(),
|
|
11399
11599
|
numberOfPositionsToHire: numberType(),
|
|
11400
11600
|
});
|
|
11401
|
-
const annotationsSchema = objectType({
|
|
11601
|
+
const annotationsSchema$1 = objectType({
|
|
11402
11602
|
tags: arrayType(stringType()),
|
|
11403
11603
|
});
|
|
11404
|
-
const budgetSchema = objectType({
|
|
11604
|
+
const budgetSchema$1 = objectType({
|
|
11405
11605
|
amount: numberType(),
|
|
11406
11606
|
currencyCode: stringType(),
|
|
11407
11607
|
});
|
|
11408
|
-
const engagementDurationSchema = objectType({
|
|
11608
|
+
const engagementDurationSchema$1 = objectType({
|
|
11409
11609
|
label: stringType(),
|
|
11410
11610
|
weeks: numberType(),
|
|
11411
11611
|
});
|
|
11412
|
-
const extendedBudgetInfoSchema = objectType({
|
|
11612
|
+
const extendedBudgetInfoSchema$1 = objectType({
|
|
11413
11613
|
hourlyBudgetMin: numberType().nullable(),
|
|
11414
11614
|
hourlyBudgetMax: numberType().nullable(),
|
|
11415
11615
|
hourlyBudgetType: stringType().nullable(),
|
|
11416
11616
|
});
|
|
11417
|
-
const qualificationsSchema = objectType({
|
|
11617
|
+
const qualificationsSchema$1 = objectType({
|
|
11418
11618
|
countries: anyType().nullable(),
|
|
11419
11619
|
earnings: anyType().nullable(),
|
|
11420
11620
|
groupRecno: anyType().nullable(),
|
|
@@ -11448,20 +11648,20 @@ const jobSchema = objectType({
|
|
|
11448
11648
|
name: stringType(),
|
|
11449
11649
|
urlSlug: stringType(),
|
|
11450
11650
|
}),
|
|
11451
|
-
budget: budgetSchema,
|
|
11651
|
+
budget: budgetSchema$1,
|
|
11452
11652
|
postedOn: stringType(),
|
|
11453
11653
|
publishTime: stringType(),
|
|
11454
11654
|
wasRenewed: booleanType(),
|
|
11455
11655
|
startDate: stringType().nullable(),
|
|
11456
11656
|
deliveryDate: stringType().nullable(),
|
|
11457
11657
|
workload: stringType().nullable(),
|
|
11458
|
-
engagementDuration: engagementDurationSchema,
|
|
11459
|
-
extendedBudgetInfo: extendedBudgetInfoSchema,
|
|
11658
|
+
engagementDuration: engagementDurationSchema$1,
|
|
11659
|
+
extendedBudgetInfo: extendedBudgetInfoSchema$1,
|
|
11460
11660
|
contractorTier: numberType(),
|
|
11461
11661
|
description: stringType(),
|
|
11462
|
-
segmentationData: arrayType(segmentationDataSchema),
|
|
11463
|
-
clientActivity: clientActivitySchema,
|
|
11464
|
-
annotations: annotationsSchema,
|
|
11662
|
+
segmentationData: arrayType(segmentationDataSchema$1),
|
|
11663
|
+
clientActivity: clientActivitySchema$1,
|
|
11664
|
+
annotations: annotationsSchema$1,
|
|
11465
11665
|
uid: stringType(),
|
|
11466
11666
|
title: stringType(),
|
|
11467
11667
|
type: numberType(),
|
|
@@ -11476,12 +11676,12 @@ const jobSchema = objectType({
|
|
|
11476
11676
|
isContractToHire: booleanType(),
|
|
11477
11677
|
attachments: arrayType(anyType()),
|
|
11478
11678
|
isPremium: booleanType(),
|
|
11479
|
-
qualifications: qualificationsSchema,
|
|
11679
|
+
qualifications: qualificationsSchema$1,
|
|
11480
11680
|
questions: arrayType(objectType({ question: stringType(), position: numberType() })),
|
|
11481
11681
|
durationIdV3: numberType(),
|
|
11482
11682
|
durationLabel: stringType(),
|
|
11483
11683
|
});
|
|
11484
|
-
const buyerSchema = objectType({
|
|
11684
|
+
const buyerSchema$1 = objectType({
|
|
11485
11685
|
isEnterprise: booleanType(),
|
|
11486
11686
|
isPaymentMethodVerified: booleanType(),
|
|
11487
11687
|
stats: objectType({
|
|
@@ -11518,7 +11718,7 @@ const buyerSchema = objectType({
|
|
|
11518
11718
|
amount: numberType(),
|
|
11519
11719
|
}).nullable(),
|
|
11520
11720
|
});
|
|
11521
|
-
const currentUserInfoSchema = objectType({
|
|
11721
|
+
const currentUserInfoSchema$1 = objectType({
|
|
11522
11722
|
owner: booleanType(),
|
|
11523
11723
|
freelancerInfo: objectType({
|
|
11524
11724
|
profileState: stringType(),
|
|
@@ -11581,7 +11781,7 @@ const workHistorySchema = arrayType(objectType({
|
|
|
11581
11781
|
}),
|
|
11582
11782
|
isEDCPublic: booleanType(),
|
|
11583
11783
|
}));
|
|
11584
|
-
const sandsSchema = objectType({
|
|
11784
|
+
const sandsSchema$1 = objectType({
|
|
11585
11785
|
occupation: objectType({
|
|
11586
11786
|
freeText: stringType().nullable(),
|
|
11587
11787
|
ontologyId: stringType(),
|
|
@@ -11609,7 +11809,7 @@ const connectsSchema = objectType({
|
|
|
11609
11809
|
}),
|
|
11610
11810
|
canSeeApplicantsRates: booleanType(),
|
|
11611
11811
|
});
|
|
11612
|
-
const authSchema = objectType({
|
|
11812
|
+
const authSchema$1 = objectType({
|
|
11613
11813
|
canFlagOpening: booleanType(),
|
|
11614
11814
|
canPostJob: booleanType(),
|
|
11615
11815
|
domestic: objectType({
|
|
@@ -11631,14 +11831,14 @@ const applicationContextSchema = objectType({
|
|
|
11631
11831
|
const nuxtStateJobSchema = objectType({
|
|
11632
11832
|
cache: booleanType(),
|
|
11633
11833
|
job: jobSchema,
|
|
11634
|
-
buyer: buyerSchema,
|
|
11635
|
-
currentUserInfo: currentUserInfoSchema,
|
|
11834
|
+
buyer: buyerSchema$1,
|
|
11835
|
+
currentUserInfo: currentUserInfoSchema$1,
|
|
11636
11836
|
isVisitor: booleanType(),
|
|
11637
11837
|
openJobs: arrayType(anyType()),
|
|
11638
11838
|
workHistory: workHistorySchema,
|
|
11639
11839
|
similarJobs: arrayType(anyType()),
|
|
11640
|
-
sands: sandsSchema,
|
|
11641
|
-
auth: authSchema,
|
|
11840
|
+
sands: sandsSchema$1,
|
|
11841
|
+
auth: authSchema$1,
|
|
11642
11842
|
applicants: objectType({
|
|
11643
11843
|
applicantsBidsStats: anyType().nullable(),
|
|
11644
11844
|
}),
|
|
@@ -11652,119 +11852,599 @@ const nuxtStateJobSchema = objectType({
|
|
|
11652
11852
|
url: stringType(),
|
|
11653
11853
|
}),
|
|
11654
11854
|
teamUid: anyType().nullable(),
|
|
11655
|
-
proposalPermissions: objectType({
|
|
11656
|
-
freelancerAllowed: booleanType(),
|
|
11657
|
-
clientAllowed: booleanType(),
|
|
11658
|
-
}),
|
|
11855
|
+
proposalPermissions: objectType({
|
|
11856
|
+
freelancerAllowed: booleanType(),
|
|
11857
|
+
clientAllowed: booleanType(),
|
|
11858
|
+
}),
|
|
11859
|
+
jobSlug: anyType().nullable(),
|
|
11860
|
+
prefillWith: anyType().nullable(),
|
|
11861
|
+
isGroupOpportunity: booleanType(),
|
|
11862
|
+
workLocation: anyType().nullable(),
|
|
11863
|
+
isPhoneVerified: booleanType(),
|
|
11864
|
+
errorResponse: anyType().nullable(),
|
|
11865
|
+
isApplyBlocked: booleanType(),
|
|
11866
|
+
hasAiInterview: booleanType(),
|
|
11867
|
+
talentFeePromotion: booleanType().nullish(),
|
|
11868
|
+
});
|
|
11869
|
+
|
|
11870
|
+
// Filter Option Schema
|
|
11871
|
+
const filterOptionItemSchema = z.object({
|
|
11872
|
+
key: z.string(),
|
|
11873
|
+
count: z.number(),
|
|
11874
|
+
});
|
|
11875
|
+
// Filter Options Response Schema
|
|
11876
|
+
const filterOptionsResponseSchema = z.object({
|
|
11877
|
+
locations: z.array(filterOptionItemSchema),
|
|
11878
|
+
englishLevels: z.array(filterOptionItemSchema),
|
|
11879
|
+
talentTypes: z.array(filterOptionItemSchema),
|
|
11880
|
+
experienceLevels: z.array(filterOptionItemSchema),
|
|
11881
|
+
});
|
|
11882
|
+
|
|
11883
|
+
const clientSchema = objectType({
|
|
11884
|
+
location: objectType({
|
|
11885
|
+
country: stringType().nullable(),
|
|
11886
|
+
}),
|
|
11887
|
+
isPaymentVerified: booleanType(),
|
|
11888
|
+
totalSpent: stringType().nullable(),
|
|
11889
|
+
totalReviews: numberType(),
|
|
11890
|
+
totalFeedback: numberType(),
|
|
11891
|
+
hasFinancialPrivacy: booleanType(),
|
|
11892
|
+
});
|
|
11893
|
+
const attrsSchema$1 = objectType({
|
|
11894
|
+
uid: stringType(),
|
|
11895
|
+
parentSkillUid: stringType().nullable(),
|
|
11896
|
+
prefLabel: stringType(),
|
|
11897
|
+
prettyName: stringType(),
|
|
11898
|
+
freeText: anyType().nullable(),
|
|
11899
|
+
highlighted: booleanType(),
|
|
11900
|
+
});
|
|
11901
|
+
const amountSchema = objectType({
|
|
11902
|
+
amount: numberType(),
|
|
11903
|
+
});
|
|
11904
|
+
const hourlyBudgetSchema$1 = objectType({
|
|
11905
|
+
min: numberType(),
|
|
11906
|
+
max: numberType(),
|
|
11907
|
+
});
|
|
11908
|
+
const feedJobSchemaV2 = objectType({
|
|
11909
|
+
uid: stringType(),
|
|
11910
|
+
ciphertext: stringType(),
|
|
11911
|
+
title: stringType(),
|
|
11912
|
+
description: stringType(),
|
|
11913
|
+
createdOn: stringType(),
|
|
11914
|
+
publishedOn: stringType(),
|
|
11915
|
+
renewedOn: stringType().nullable(),
|
|
11916
|
+
type: numberType(),
|
|
11917
|
+
durationLabel: stringType().nullable(), // <--- FIX IS HERE
|
|
11918
|
+
engagement: stringType().nullable(),
|
|
11919
|
+
amount: amountSchema,
|
|
11920
|
+
connectPrice: numberType().nullable(),
|
|
11921
|
+
client: clientSchema,
|
|
11922
|
+
clientRelation: anyType().nullable(),
|
|
11923
|
+
freelancersToHire: numberType(),
|
|
11924
|
+
relevanceEncoded: stringType(),
|
|
11925
|
+
enterpriseJob: booleanType(),
|
|
11926
|
+
tierText: stringType(),
|
|
11927
|
+
isApplied: booleanType(),
|
|
11928
|
+
proposalsTier: stringType().nullable(),
|
|
11929
|
+
premium: booleanType(),
|
|
11930
|
+
attrs: arrayType(attrsSchema$1),
|
|
11931
|
+
hourlyBudget: hourlyBudgetSchema$1,
|
|
11932
|
+
weeklyBudget: amountSchema,
|
|
11933
|
+
isSTSVectorSearchResult: booleanType(),
|
|
11934
|
+
});
|
|
11935
|
+
const pagingSchema = objectType({
|
|
11936
|
+
total: numberType(),
|
|
11937
|
+
offset: numberType(),
|
|
11938
|
+
count: numberType(),
|
|
11939
|
+
});
|
|
11940
|
+
const jobsSearchSchema = objectType({
|
|
11941
|
+
status: objectType({
|
|
11942
|
+
loading: booleanType(),
|
|
11943
|
+
loaded: booleanType(),
|
|
11944
|
+
failed: booleanType(),
|
|
11945
|
+
}),
|
|
11946
|
+
jobs: arrayType(feedJobSchemaV2),
|
|
11947
|
+
paging: pagingSchema,
|
|
11948
|
+
abortController: anyType().nullable(),
|
|
11949
|
+
currentPage: numberType(),
|
|
11950
|
+
jobsPerPage: numberType(),
|
|
11951
|
+
searchQueryCache: recordType(stringType()),
|
|
11952
|
+
});
|
|
11953
|
+
const nuxtStateJobsSearchSchema = objectType({
|
|
11954
|
+
state: objectType({
|
|
11955
|
+
jobsSearch: jobsSearchSchema,
|
|
11956
|
+
}),
|
|
11957
|
+
});
|
|
11958
|
+
|
|
11959
|
+
// Field mapping from feed-job to job-details for the missing fields that were added
|
|
11960
|
+
const FEED_JOB_TO_JOB_DETAILS_FIELD_MAPPING = {
|
|
11961
|
+
// Fields that were missing in job-details and added from feed-job
|
|
11962
|
+
publishedOn: 'publishedOn',
|
|
11963
|
+
renewedOn: 'renewedOn',
|
|
11964
|
+
engagement: 'engagement',
|
|
11965
|
+
freelancersToHire: 'freelancersToHire',
|
|
11966
|
+
connectPrice: 'connectPrice',
|
|
11967
|
+
clientRelation: 'clientRelation',
|
|
11968
|
+
relevanceEncoded: 'relevanceEncoded',
|
|
11969
|
+
enterpriseJob: 'enterpriseJob',
|
|
11970
|
+
tierText: 'tierText',
|
|
11971
|
+
isApplied: 'isApplied',
|
|
11972
|
+
proposalsTier: 'proposalsTier',
|
|
11973
|
+
premium: 'premium',
|
|
11974
|
+
attrs: 'attrs',
|
|
11975
|
+
hourlyBudget: 'hourlyBudget',
|
|
11976
|
+
weeklyBudget: 'weeklyBudget',
|
|
11977
|
+
isSTSVectorSearchResult: 'isSTSVectorSearchResult',
|
|
11978
|
+
};
|
|
11979
|
+
// Segmentation data schema
|
|
11980
|
+
const segmentationDataSchema = objectType({
|
|
11981
|
+
customValue: stringType().nullable(),
|
|
11982
|
+
label: stringType(),
|
|
11983
|
+
name: stringType(),
|
|
11984
|
+
sortOrder: numberType(),
|
|
11985
|
+
type: stringType(),
|
|
11986
|
+
value: stringType(),
|
|
11987
|
+
skill: anyType().nullable(),
|
|
11988
|
+
});
|
|
11989
|
+
// Client activity schema
|
|
11990
|
+
const clientActivitySchema = objectType({
|
|
11991
|
+
lastBuyerActivity: stringType().nullable(),
|
|
11992
|
+
totalApplicants: numberType().nullable(),
|
|
11993
|
+
totalHired: numberType().nullable(),
|
|
11994
|
+
totalInvitedToInterview: numberType().nullable(),
|
|
11995
|
+
unansweredInvites: numberType().nullable(),
|
|
11996
|
+
invitationsSent: numberType().nullable(),
|
|
11997
|
+
numberOfPositionsToHire: numberType(),
|
|
11998
|
+
});
|
|
11999
|
+
// Annotations schema
|
|
12000
|
+
const annotationsSchema = objectType({
|
|
12001
|
+
tags: arrayType(stringType()),
|
|
12002
|
+
});
|
|
12003
|
+
// Budget schema
|
|
12004
|
+
const budgetSchema = objectType({
|
|
12005
|
+
amount: numberType(),
|
|
12006
|
+
currencyCode: stringType(),
|
|
12007
|
+
});
|
|
12008
|
+
// Engagement duration schema
|
|
12009
|
+
const engagementDurationSchema = objectType({
|
|
12010
|
+
label: stringType(),
|
|
12011
|
+
weeks: numberType(),
|
|
12012
|
+
});
|
|
12013
|
+
// Extended budget info schema
|
|
12014
|
+
const extendedBudgetInfoSchema = objectType({
|
|
12015
|
+
hourlyBudgetMin: numberType().nullable(),
|
|
12016
|
+
hourlyBudgetMax: numberType().nullable(),
|
|
12017
|
+
hourlyBudgetType: stringType().nullable(),
|
|
12018
|
+
});
|
|
12019
|
+
// Qualifications schema
|
|
12020
|
+
const qualificationsSchema = objectType({
|
|
12021
|
+
countries: anyType().nullable(),
|
|
12022
|
+
earnings: anyType().nullable(),
|
|
12023
|
+
groupRecno: anyType().nullable(),
|
|
12024
|
+
languages: anyType().nullable(),
|
|
12025
|
+
localDescription: anyType().nullable(),
|
|
12026
|
+
localFlexibilityDescription: anyType().nullable(),
|
|
12027
|
+
localMarket: booleanType(),
|
|
12028
|
+
minJobSuccessScore: numberType(),
|
|
12029
|
+
minOdeskHours: numberType(),
|
|
12030
|
+
onSiteType: anyType().nullable(),
|
|
12031
|
+
prefEnglishSkill: numberType(),
|
|
12032
|
+
regions: anyType().nullable(),
|
|
12033
|
+
risingTalent: booleanType(),
|
|
12034
|
+
shouldHavePortfolio: booleanType(),
|
|
12035
|
+
states: anyType().nullable(),
|
|
12036
|
+
tests: anyType().nullable(),
|
|
12037
|
+
timezones: anyType().nullable(),
|
|
12038
|
+
type: numberType(),
|
|
12039
|
+
locationCheckRequired: booleanType(),
|
|
12040
|
+
group: anyType().nullable(),
|
|
12041
|
+
location: anyType().nullable(),
|
|
12042
|
+
locations: anyType().nullable(),
|
|
12043
|
+
minHoursWeek: numberType().nullable(),
|
|
12044
|
+
});
|
|
12045
|
+
// Attrs schema (from feed-job.ts)
|
|
12046
|
+
const attrsSchema = objectType({
|
|
12047
|
+
uid: stringType(),
|
|
12048
|
+
parentSkillUid: stringType().nullable(),
|
|
12049
|
+
prefLabel: stringType(),
|
|
12050
|
+
prettyName: stringType(),
|
|
12051
|
+
freeText: anyType().nullable(),
|
|
12052
|
+
highlighted: booleanType(),
|
|
12053
|
+
});
|
|
12054
|
+
// Hourly budget schema (from feed-job.ts)
|
|
12055
|
+
const hourlyBudgetSchema = objectType({
|
|
12056
|
+
min: numberType(),
|
|
12057
|
+
max: numberType(),
|
|
12058
|
+
});
|
|
12059
|
+
// Job details schema
|
|
12060
|
+
const jobDetailsSchema = objectType({
|
|
12061
|
+
status: numberType(),
|
|
12062
|
+
category: objectType({
|
|
12063
|
+
name: stringType(),
|
|
12064
|
+
urlSlug: stringType(),
|
|
12065
|
+
}),
|
|
12066
|
+
categoryGroup: objectType({
|
|
12067
|
+
name: stringType(),
|
|
12068
|
+
urlSlug: stringType(),
|
|
12069
|
+
}),
|
|
12070
|
+
budget: budgetSchema,
|
|
12071
|
+
postedOn: stringType(),
|
|
12072
|
+
publishTime: stringType(),
|
|
12073
|
+
publishedOn: stringType().nullable().optional(),
|
|
12074
|
+
wasRenewed: booleanType(),
|
|
12075
|
+
renewedOn: stringType().nullable().optional(),
|
|
12076
|
+
startDate: stringType().nullable(),
|
|
12077
|
+
deliveryDate: stringType().nullable(),
|
|
12078
|
+
workload: stringType().nullable(),
|
|
12079
|
+
engagement: stringType().nullable().optional(),
|
|
12080
|
+
engagementDuration: engagementDurationSchema,
|
|
12081
|
+
extendedBudgetInfo: extendedBudgetInfoSchema,
|
|
12082
|
+
contractorTier: numberType(),
|
|
12083
|
+
description: stringType(),
|
|
12084
|
+
segmentationData: arrayType(segmentationDataSchema),
|
|
12085
|
+
clientActivity: clientActivitySchema,
|
|
12086
|
+
annotations: annotationsSchema,
|
|
12087
|
+
uid: stringType(),
|
|
12088
|
+
title: stringType(),
|
|
12089
|
+
type: numberType(),
|
|
12090
|
+
ciphertext: stringType(),
|
|
12091
|
+
access: numberType(),
|
|
12092
|
+
createdOn: stringType(),
|
|
12093
|
+
hideBudget: booleanType(),
|
|
12094
|
+
notSureProjectDuration: booleanType(),
|
|
12095
|
+
notSureFreelancersToHire: booleanType(),
|
|
12096
|
+
notSureExperienceLevel: booleanType(),
|
|
12097
|
+
numberOfPositionsToHire: numberType(),
|
|
12098
|
+
freelancersToHire: numberType().nullable().optional(),
|
|
12099
|
+
isContractToHire: booleanType(),
|
|
12100
|
+
deliverables: stringType().nullable(),
|
|
12101
|
+
deadline: stringType().nullable(),
|
|
12102
|
+
tools: arrayType(anyType()),
|
|
12103
|
+
weeklyRetainerBudget: anyType().nullable(),
|
|
12104
|
+
qualifications: qualificationsSchema,
|
|
12105
|
+
durationIdV3: numberType(),
|
|
12106
|
+
durationLabel: stringType(),
|
|
12107
|
+
connectPrice: numberType().nullable().optional(),
|
|
12108
|
+
clientRelation: anyType().nullable().optional(),
|
|
12109
|
+
relevanceEncoded: stringType().nullable().optional(),
|
|
12110
|
+
enterpriseJob: booleanType().nullable().optional(),
|
|
12111
|
+
tierText: stringType().nullable().optional(),
|
|
12112
|
+
isApplied: booleanType().nullable().optional(),
|
|
12113
|
+
proposalsTier: stringType().nullable().optional(),
|
|
12114
|
+
premium: booleanType().nullable().optional(),
|
|
12115
|
+
attrs: arrayType(attrsSchema).nullable().optional(),
|
|
12116
|
+
hourlyBudget: hourlyBudgetSchema.nullable().optional(),
|
|
12117
|
+
weeklyBudget: objectType({
|
|
12118
|
+
amount: numberType(),
|
|
12119
|
+
})
|
|
12120
|
+
.nullable()
|
|
12121
|
+
.optional(),
|
|
12122
|
+
isSTSVectorSearchResult: booleanType().nullable().optional(),
|
|
12123
|
+
});
|
|
12124
|
+
// Buyer schema
|
|
12125
|
+
const buyerSchema = objectType({
|
|
12126
|
+
isEnterprise: booleanType(),
|
|
12127
|
+
isPaymentMethodVerified: booleanType(),
|
|
12128
|
+
stats: objectType({
|
|
12129
|
+
totalAssignments: numberType().nullable(),
|
|
12130
|
+
activeAssignmentsCount: numberType().nullable(),
|
|
12131
|
+
hoursCount: numberType(),
|
|
12132
|
+
feedbackCount: numberType(),
|
|
12133
|
+
score: numberType().nullable(),
|
|
12134
|
+
totalJobsWithHires: numberType(),
|
|
12135
|
+
totalCharges: objectType({
|
|
12136
|
+
amount: numberType(),
|
|
12137
|
+
}).nullable(),
|
|
12138
|
+
}),
|
|
12139
|
+
location: objectType({
|
|
12140
|
+
offsetFromUtcMillis: numberType(),
|
|
12141
|
+
countryTimezone: stringType(),
|
|
12142
|
+
city: stringType().nullable(),
|
|
12143
|
+
country: stringType(),
|
|
12144
|
+
}),
|
|
12145
|
+
company: objectType({
|
|
12146
|
+
isEDCReplicated: anyType().nullable(),
|
|
12147
|
+
contractDate: stringType().nullable(),
|
|
12148
|
+
profile: objectType({
|
|
12149
|
+
industry: stringType().nullable(),
|
|
12150
|
+
size: anyType().nullable(), // Can be string or number
|
|
12151
|
+
}),
|
|
12152
|
+
}),
|
|
12153
|
+
jobs: objectType({
|
|
12154
|
+
postedCount: numberType().nullable(),
|
|
12155
|
+
openCount: numberType(),
|
|
12156
|
+
}),
|
|
12157
|
+
avgHourlyJobsRate: anyType().nullable(),
|
|
12158
|
+
});
|
|
12159
|
+
// Current user info schema
|
|
12160
|
+
const currentUserInfoSchema = objectType({
|
|
12161
|
+
freelancerInfo: objectType({
|
|
12162
|
+
qualificationsMatches: anyType().nullable(),
|
|
12163
|
+
}),
|
|
12164
|
+
});
|
|
12165
|
+
// Open jobs schema
|
|
12166
|
+
const openJobSchema = objectType({
|
|
12167
|
+
id: stringType(),
|
|
12168
|
+
uid: stringType(),
|
|
12169
|
+
isPtcPrivate: booleanType(),
|
|
12170
|
+
ciphertext: stringType(),
|
|
12171
|
+
title: stringType(),
|
|
12172
|
+
type: numberType(),
|
|
12173
|
+
access: numberType().nullable(),
|
|
12174
|
+
});
|
|
12175
|
+
// Similar jobs skill schema
|
|
12176
|
+
const similarJobSkillSchema = objectType({
|
|
12177
|
+
id: stringType().nullable(),
|
|
12178
|
+
prefLabel: stringType(),
|
|
12179
|
+
});
|
|
12180
|
+
// Similar jobs schema
|
|
12181
|
+
const similarJobSchema = objectType({
|
|
12182
|
+
id: stringType().nullable(),
|
|
12183
|
+
ciphertext: stringType(),
|
|
12184
|
+
title: stringType(),
|
|
12185
|
+
description: stringType(),
|
|
12186
|
+
engagement: stringType().nullable(),
|
|
12187
|
+
durationLabel: stringType(),
|
|
12188
|
+
contractorTier: numberType(),
|
|
12189
|
+
type: numberType(),
|
|
12190
|
+
createdOn: stringType(),
|
|
12191
|
+
renewedOn: stringType().nullable(),
|
|
12192
|
+
amount: objectType({
|
|
12193
|
+
amount: numberType(),
|
|
12194
|
+
}),
|
|
12195
|
+
maxAmount: anyType().nullable(),
|
|
12196
|
+
ontologySkills: arrayType(similarJobSkillSchema),
|
|
12197
|
+
hourlyBudgetMin: numberType(),
|
|
12198
|
+
hourlyBudgetMax: numberType(),
|
|
12199
|
+
});
|
|
12200
|
+
// SANDS (Skills and Services) schema
|
|
12201
|
+
const sandsSkillSchema = objectType({
|
|
12202
|
+
uid: stringType(),
|
|
12203
|
+
name: stringType(),
|
|
12204
|
+
isFreeText: booleanType(),
|
|
12205
|
+
relevance: stringType(),
|
|
12206
|
+
});
|
|
12207
|
+
const sandsSchema = objectType({
|
|
12208
|
+
occupation: objectType({
|
|
12209
|
+
freeText: stringType().nullable(),
|
|
12210
|
+
ontologyId: stringType(),
|
|
12211
|
+
prefLabel: stringType(),
|
|
12212
|
+
id: stringType(),
|
|
12213
|
+
uid: stringType(),
|
|
12214
|
+
}),
|
|
12215
|
+
ontologySkills: arrayType(anyType()),
|
|
12216
|
+
additionalSkills: arrayType(sandsSkillSchema),
|
|
12217
|
+
});
|
|
12218
|
+
// Auth schema
|
|
12219
|
+
const authSchema = objectType({
|
|
12220
|
+
isVisitor: booleanType(),
|
|
12221
|
+
isAgency: booleanType(),
|
|
12222
|
+
isFreelancer: booleanType(),
|
|
12223
|
+
isClient: booleanType(),
|
|
12224
|
+
isUpworkPlusBuyer: booleanType(),
|
|
12225
|
+
domestic: objectType({
|
|
12226
|
+
country: stringType().nullable(),
|
|
12227
|
+
isInfographicTooltipAvailable: booleanType(),
|
|
12228
|
+
}),
|
|
12229
|
+
});
|
|
12230
|
+
// SEO schema
|
|
12231
|
+
const seoSchema = objectType({
|
|
12232
|
+
title: stringType(),
|
|
12233
|
+
description: stringType(),
|
|
12234
|
+
url: stringType(),
|
|
12235
|
+
});
|
|
12236
|
+
// Main job details state schema
|
|
12237
|
+
const jobDetailsStateSchema = objectType({
|
|
12238
|
+
cache: booleanType(),
|
|
12239
|
+
job: jobDetailsSchema,
|
|
12240
|
+
buyer: buyerSchema,
|
|
12241
|
+
currentUserInfo: currentUserInfoSchema,
|
|
12242
|
+
openJobs: arrayType(openJobSchema),
|
|
12243
|
+
workHistory: arrayType(anyType()),
|
|
12244
|
+
similarJobs: arrayType(similarJobSchema),
|
|
12245
|
+
sands: sandsSchema,
|
|
12246
|
+
auth: authSchema,
|
|
12247
|
+
applicants: anyType().nullable(),
|
|
12248
|
+
connects: anyType().nullable(),
|
|
12249
|
+
enterpriseJobAdditionalInfo: recordType(anyType()),
|
|
12250
|
+
applicationContext: anyType().nullable(),
|
|
12251
|
+
profileMatchServiceUid: stringType().nullable(),
|
|
12252
|
+
seo: seoSchema,
|
|
12253
|
+
teamUid: anyType().nullable(),
|
|
12254
|
+
proposalPermissions: anyType().nullable(),
|
|
11659
12255
|
jobSlug: anyType().nullable(),
|
|
11660
12256
|
prefillWith: anyType().nullable(),
|
|
11661
12257
|
isGroupOpportunity: booleanType(),
|
|
11662
|
-
workLocation: anyType().nullable(),
|
|
11663
12258
|
isPhoneVerified: booleanType(),
|
|
11664
12259
|
errorResponse: anyType().nullable(),
|
|
11665
12260
|
isApplyBlocked: booleanType(),
|
|
11666
12261
|
hasAiInterview: booleanType(),
|
|
11667
|
-
talentFeePromotion:
|
|
11668
|
-
|
|
11669
|
-
|
|
11670
|
-
|
|
11671
|
-
|
|
11672
|
-
|
|
11673
|
-
const
|
|
11674
|
-
|
|
11675
|
-
|
|
11676
|
-
|
|
11677
|
-
|
|
11678
|
-
|
|
11679
|
-
|
|
11680
|
-
|
|
11681
|
-
|
|
11682
|
-
|
|
11683
|
-
|
|
11684
|
-
|
|
11685
|
-
|
|
11686
|
-
|
|
11687
|
-
|
|
11688
|
-
|
|
11689
|
-
|
|
11690
|
-
|
|
11691
|
-
|
|
11692
|
-
|
|
11693
|
-
|
|
11694
|
-
|
|
11695
|
-
|
|
11696
|
-
|
|
11697
|
-
|
|
11698
|
-
|
|
11699
|
-
|
|
11700
|
-
|
|
11701
|
-
|
|
11702
|
-
|
|
11703
|
-
|
|
11704
|
-
|
|
11705
|
-
|
|
11706
|
-
|
|
11707
|
-
|
|
11708
|
-
|
|
11709
|
-
|
|
11710
|
-
|
|
11711
|
-
|
|
11712
|
-
|
|
11713
|
-
|
|
11714
|
-
|
|
11715
|
-
|
|
11716
|
-
|
|
11717
|
-
|
|
11718
|
-
|
|
11719
|
-
|
|
11720
|
-
|
|
11721
|
-
|
|
11722
|
-
|
|
11723
|
-
|
|
11724
|
-
|
|
11725
|
-
|
|
11726
|
-
|
|
11727
|
-
|
|
11728
|
-
|
|
11729
|
-
|
|
11730
|
-
|
|
11731
|
-
|
|
11732
|
-
|
|
11733
|
-
|
|
11734
|
-
|
|
11735
|
-
|
|
11736
|
-
|
|
11737
|
-
|
|
11738
|
-
|
|
11739
|
-
|
|
11740
|
-
|
|
11741
|
-
|
|
11742
|
-
|
|
11743
|
-
|
|
11744
|
-
|
|
11745
|
-
|
|
11746
|
-
|
|
11747
|
-
|
|
11748
|
-
|
|
11749
|
-
|
|
11750
|
-
|
|
11751
|
-
|
|
11752
|
-
|
|
11753
|
-
|
|
12262
|
+
talentFeePromotion: anyType().nullable(),
|
|
12263
|
+
aiInterviewRoomId: anyType().nullable(),
|
|
12264
|
+
aiInterviewLinkSent: booleanType(),
|
|
12265
|
+
aiInterviewStatus: anyType().nullable(),
|
|
12266
|
+
aiInterviewJoinLimitReached: booleanType(),
|
|
12267
|
+
});
|
|
12268
|
+
const nuxtStateJobDetailsSchema = objectType({
|
|
12269
|
+
layout: stringType(),
|
|
12270
|
+
data: arrayType(recordType(anyType())),
|
|
12271
|
+
fetch: recordType(anyType()),
|
|
12272
|
+
error: anyType().nullable(),
|
|
12273
|
+
state: objectType({
|
|
12274
|
+
job: objectType({
|
|
12275
|
+
errorResponse: anyType().nullable(),
|
|
12276
|
+
channel: anyType().nullable(),
|
|
12277
|
+
visitedJobs: arrayType(anyType()),
|
|
12278
|
+
}),
|
|
12279
|
+
qt: objectType({
|
|
12280
|
+
isNewVisitorNavV1Enabled: booleanType(),
|
|
12281
|
+
}),
|
|
12282
|
+
tracker: objectType({
|
|
12283
|
+
guids: recordType(anyType()),
|
|
12284
|
+
}),
|
|
12285
|
+
tracing: objectType({
|
|
12286
|
+
native: objectType({
|
|
12287
|
+
span: objectType({
|
|
12288
|
+
id: stringType(),
|
|
12289
|
+
parentId: stringType(),
|
|
12290
|
+
traceId: stringType(),
|
|
12291
|
+
isPopulated: booleanType(),
|
|
12292
|
+
geoIpHeader: stringType(),
|
|
12293
|
+
}),
|
|
12294
|
+
}),
|
|
12295
|
+
}),
|
|
12296
|
+
context: objectType({
|
|
12297
|
+
loaded: booleanType(),
|
|
12298
|
+
loading: booleanType(),
|
|
12299
|
+
error: anyType().nullable(),
|
|
12300
|
+
isLoggedIn: booleanType().nullable(),
|
|
12301
|
+
auth: booleanType(),
|
|
12302
|
+
}),
|
|
12303
|
+
orgs: objectType({
|
|
12304
|
+
current: objectType({
|
|
12305
|
+
id: stringType().nullable(),
|
|
12306
|
+
rid: stringType().nullable(),
|
|
12307
|
+
type: stringType().nullable(),
|
|
12308
|
+
legacyType: stringType().nullable(),
|
|
12309
|
+
enterpriseType: stringType().nullable(),
|
|
12310
|
+
title: stringType().nullable(),
|
|
12311
|
+
typeTitle: stringType().nullable(),
|
|
12312
|
+
photoUrl: stringType().nullable(),
|
|
12313
|
+
flag: objectType({
|
|
12314
|
+
client: booleanType().nullable(),
|
|
12315
|
+
vendor: booleanType().nullable(),
|
|
12316
|
+
agency: booleanType().nullable(),
|
|
12317
|
+
individual: booleanType().nullable(),
|
|
12318
|
+
}),
|
|
12319
|
+
portrait100: stringType().nullable(),
|
|
12320
|
+
}),
|
|
12321
|
+
orgs: arrayType(anyType()),
|
|
12322
|
+
loading: booleanType().nullable(),
|
|
12323
|
+
loaded: booleanType().nullable(),
|
|
12324
|
+
}),
|
|
12325
|
+
user: objectType({
|
|
12326
|
+
id: stringType().nullable(),
|
|
12327
|
+
rid: stringType().nullable(),
|
|
12328
|
+
nid: stringType().nullable(),
|
|
12329
|
+
loading: booleanType().nullable(),
|
|
12330
|
+
loaded: booleanType().nullable(),
|
|
12331
|
+
isSudo: booleanType().nullable(),
|
|
12332
|
+
}),
|
|
12333
|
+
visitor: objectType({
|
|
12334
|
+
id: stringType(),
|
|
12335
|
+
ip: stringType(),
|
|
12336
|
+
}),
|
|
12337
|
+
vpn: objectType({
|
|
12338
|
+
isVpn: booleanType(),
|
|
12339
|
+
loading: booleanType(),
|
|
12340
|
+
loaded: booleanType(),
|
|
12341
|
+
error: anyType().nullable(),
|
|
12342
|
+
}),
|
|
12343
|
+
organizations: objectType({
|
|
12344
|
+
items: arrayType(anyType()),
|
|
12345
|
+
}),
|
|
12346
|
+
currency: objectType({
|
|
12347
|
+
currencyRate: anyType().nullable(),
|
|
12348
|
+
currencyCode: stringType().nullable(),
|
|
12349
|
+
currencyPopupShow: booleanType().nullable(),
|
|
12350
|
+
currencyName: stringType().nullable(),
|
|
12351
|
+
currencySymbol: stringType().nullable(),
|
|
12352
|
+
}),
|
|
12353
|
+
bot: objectType({
|
|
12354
|
+
isBot: booleanType(),
|
|
12355
|
+
loaded: booleanType(),
|
|
12356
|
+
}),
|
|
12357
|
+
flags: objectType({
|
|
12358
|
+
qt: recordType(anyType()),
|
|
12359
|
+
qtAllocationType: recordType(anyType()),
|
|
12360
|
+
ff: recordType(booleanType()),
|
|
12361
|
+
computedName: recordType(anyType()),
|
|
12362
|
+
}),
|
|
12363
|
+
geo: objectType({
|
|
12364
|
+
countryCode: stringType(),
|
|
12365
|
+
promise: anyType().nullable(),
|
|
12366
|
+
}),
|
|
12367
|
+
i18n: objectType({
|
|
12368
|
+
routeParams: recordType(anyType()),
|
|
12369
|
+
}),
|
|
12370
|
+
umq: objectType({
|
|
12371
|
+
width: numberType().nullable(),
|
|
12372
|
+
mobile: booleanType(),
|
|
12373
|
+
desktop: booleanType(),
|
|
12374
|
+
tablet: booleanType(),
|
|
12375
|
+
}),
|
|
12376
|
+
tracking: objectType({
|
|
12377
|
+
location: stringType(),
|
|
12378
|
+
visitorApiKey: stringType().nullable(),
|
|
12379
|
+
loading: booleanType().nullable(),
|
|
12380
|
+
loaded: booleanType().nullable(),
|
|
12381
|
+
promise: anyType().nullable(),
|
|
12382
|
+
error: anyType().nullable(),
|
|
12383
|
+
suit2Enabled: booleanType(),
|
|
12384
|
+
context: objectType({
|
|
12385
|
+
visitor_id: stringType().nullable(),
|
|
12386
|
+
user_uid: stringType().nullable(),
|
|
12387
|
+
user_nid: stringType().nullable(),
|
|
12388
|
+
organization_uid: stringType().nullable(),
|
|
12389
|
+
organization_type_title: stringType().nullable(),
|
|
12390
|
+
user_is_sudo: booleanType().nullable(),
|
|
12391
|
+
is_logged_in: booleanType().nullable(),
|
|
12392
|
+
}),
|
|
12393
|
+
}),
|
|
12394
|
+
theme: objectType({
|
|
12395
|
+
isSystemThemeMode: booleanType().nullable(),
|
|
12396
|
+
}),
|
|
12397
|
+
getfeedback: objectType({
|
|
12398
|
+
disabled: booleanType(),
|
|
12399
|
+
event: anyType().nullable(),
|
|
12400
|
+
}),
|
|
12401
|
+
statsig: objectType({
|
|
12402
|
+
experiments: recordType(objectType({
|
|
12403
|
+
name: stringType(),
|
|
12404
|
+
params: recordType(anyType()),
|
|
12405
|
+
})),
|
|
12406
|
+
}),
|
|
12407
|
+
jobDetails: jobDetailsStateSchema,
|
|
12408
|
+
forter: objectType({
|
|
12409
|
+
core: booleanType(),
|
|
12410
|
+
token: stringType(),
|
|
12411
|
+
}).optional(),
|
|
12412
|
+
}),
|
|
12413
|
+
serverRendered: booleanType(),
|
|
12414
|
+
routePath: stringType(),
|
|
12415
|
+
config: objectType({
|
|
12416
|
+
designSystem: stringType(),
|
|
12417
|
+
_app: objectType({
|
|
12418
|
+
basePath: stringType(),
|
|
12419
|
+
assetsPath: stringType(),
|
|
12420
|
+
cdnURL: stringType(),
|
|
12421
|
+
}),
|
|
12422
|
+
}),
|
|
12423
|
+
isCacheable: booleanType(),
|
|
12424
|
+
__i18n: objectType({
|
|
12425
|
+
langs: recordType(anyType()),
|
|
12426
|
+
}),
|
|
12427
|
+
microAppUtilsOverrides: objectType({
|
|
12428
|
+
userNavOverrides: recordType(anyType()),
|
|
12429
|
+
userSkinnyNavSkinnyOverrides: recordType(anyType()),
|
|
12430
|
+
visitorNavSkinnyOverrides: recordType(anyType()),
|
|
12431
|
+
}),
|
|
11754
12432
|
});
|
|
11755
12433
|
|
|
11756
|
-
|
|
11757
|
-
|
|
11758
|
-
|
|
11759
|
-
|
|
11760
|
-
}
|
|
11761
|
-
|
|
11762
|
-
const
|
|
11763
|
-
|
|
11764
|
-
|
|
11765
|
-
|
|
11766
|
-
|
|
11767
|
-
}
|
|
12434
|
+
class JobIsPrivateException extends Error {
|
|
12435
|
+
code = 'JOB_IS_PRIVATE';
|
|
12436
|
+
constructor(url) {
|
|
12437
|
+
super(`Job is private: ${url}`);
|
|
12438
|
+
}
|
|
12439
|
+
}
|
|
12440
|
+
const jobIsPrivateException = (url) => new JobIsPrivateException(url);
|
|
12441
|
+
class FailedToParseNuxtJobException extends Error {
|
|
12442
|
+
code = 'FAILED_TO_PARSE_NUXT_JOB';
|
|
12443
|
+
constructor(url) {
|
|
12444
|
+
super(`Failed to parse Nuxt job: ${url}`);
|
|
12445
|
+
}
|
|
12446
|
+
}
|
|
12447
|
+
const failedToParseNuxtJobException = (message, url) => new FailedToParseNuxtJobException(`${message}: ${url}`);
|
|
11768
12448
|
|
|
11769
12449
|
const jobSkillsSchema = objectType({
|
|
11770
12450
|
name: stringType(),
|
|
@@ -11903,119 +12583,13 @@ const feedJobSchema = objectType({
|
|
|
11903
12583
|
region: regionSchema.nullable(),
|
|
11904
12584
|
});
|
|
11905
12585
|
|
|
11906
|
-
const bidderAccountProvider = z.enum([
|
|
11907
|
-
"user-provided",
|
|
11908
|
-
"lancer-provided",
|
|
11909
|
-
]);
|
|
11910
|
-
const bidderAccountAgencySchema = z.object({
|
|
11911
|
-
name: z.string(),
|
|
11912
|
-
logoUrl: z.string().nullable(),
|
|
11913
|
-
contractors: z.array(z.string()),
|
|
11914
|
-
organizationId: z.string(),
|
|
11915
|
-
});
|
|
11916
|
-
const bidderAccountSchema = z.object({
|
|
11917
|
-
id: z.string(),
|
|
11918
|
-
provider: bidderAccountProvider,
|
|
11919
|
-
email: z.string().email(),
|
|
11920
|
-
password: z.string(),
|
|
11921
|
-
securityQuestionAnswer: z.string().nullable(),
|
|
11922
|
-
assignedOrganizations: z.array(z.string()),
|
|
11923
|
-
googleOauthTokens: z.any().nullable(),
|
|
11924
|
-
lastUsed: z.number().nullable(),
|
|
11925
|
-
multiLoginProfileId: z.string().nullable(),
|
|
11926
|
-
proxyId: z.string().nullable(),
|
|
11927
|
-
profilePhotoUrl: z.string().nullable(),
|
|
11928
|
-
name: z.string().nullable(),
|
|
11929
|
-
agencies: z.array(bidderAccountAgencySchema).nullable(),
|
|
11930
|
-
instanceId: stringType().nullable(),
|
|
11931
|
-
createdAt: z.number(),
|
|
11932
|
-
updatedAt: z.number(),
|
|
11933
|
-
region: regionEnum,
|
|
11934
|
-
isProtected: z.boolean().optional(),
|
|
11935
|
-
});
|
|
11936
|
-
const createBidderAccountSchema = bidderAccountSchema
|
|
11937
|
-
.pick({
|
|
11938
|
-
email: true,
|
|
11939
|
-
password: true,
|
|
11940
|
-
provider: true,
|
|
11941
|
-
securityQuestionAnswer: true,
|
|
11942
|
-
profilePhotoUrl: true,
|
|
11943
|
-
name: true,
|
|
11944
|
-
agencies: true,
|
|
11945
|
-
assignedOrganizations: true,
|
|
11946
|
-
region: true,
|
|
11947
|
-
})
|
|
11948
|
-
.extend({
|
|
11949
|
-
proxyCountry: proxyCountryEnum.nullable(),
|
|
11950
|
-
});
|
|
11951
|
-
const updateBidderAccountSchema = bidderAccountSchema
|
|
11952
|
-
.omit({
|
|
11953
|
-
id: true,
|
|
11954
|
-
})
|
|
11955
|
-
.partial();
|
|
11956
|
-
const verifyBidderAccountCredentialsSchema = z.object({
|
|
11957
|
-
email: z.string().email(),
|
|
11958
|
-
password: z.string(),
|
|
11959
|
-
securityQuestionAnswer: z.string(),
|
|
11960
|
-
multiloginProfileId: z.string(),
|
|
11961
|
-
proxy: proxySchema,
|
|
11962
|
-
});
|
|
11963
|
-
const verifyBidderAccountCredentialsResponseSchema = z.object({
|
|
11964
|
-
accountName: z.string().nullable(),
|
|
11965
|
-
accountPhotoUrl: z.string().nullable(),
|
|
11966
|
-
agencies: z.array(bidderAccountAgencySchema).nullable(),
|
|
11967
|
-
});
|
|
11968
|
-
const acceptUpworkInvitationSchema = z.object({
|
|
11969
|
-
code: z.string(),
|
|
11970
|
-
});
|
|
11971
|
-
const acceptUpworkInvitationResponseSchema = z.object({
|
|
11972
|
-
agencyName: z.string(),
|
|
11973
|
-
photoUrl: z.string(),
|
|
11974
|
-
contractors: z.array(z.string()),
|
|
11975
|
-
});
|
|
11976
|
-
|
|
11977
|
-
class BidderAccountAlreadyConnectedException extends Error {
|
|
11978
|
-
code = 'BIDDER_ACCOUNT_ALREADY_CONNECTED';
|
|
11979
|
-
email;
|
|
11980
|
-
constructor(email) {
|
|
11981
|
-
super(`Bidder account ${email} is already connected to a scraper account`);
|
|
11982
|
-
this.email = email;
|
|
11983
|
-
}
|
|
11984
|
-
}
|
|
11985
|
-
const bidderAccountAlreadyConnectedException = (email) => new BidderAccountAlreadyConnectedException(email);
|
|
11986
|
-
|
|
11987
|
-
class InvalidGoogleOAuthTokenException extends Error {
|
|
11988
|
-
code = 'INVALID_GOOGLE_OAUTH_TOKEN';
|
|
11989
|
-
constructor(message) {
|
|
11990
|
-
super(message);
|
|
11991
|
-
}
|
|
11992
|
-
}
|
|
11993
|
-
const invalidGoogleOAuthTokenSchema = (message) => new InvalidGoogleOAuthTokenException(message);
|
|
11994
|
-
|
|
11995
|
-
class NoBidderAccountsAvailableException extends Error {
|
|
11996
|
-
code = 'NO_BIDDER_ACCOUNTS_AVAILABLE';
|
|
11997
|
-
constructor(message) {
|
|
11998
|
-
super(message);
|
|
11999
|
-
}
|
|
12000
|
-
}
|
|
12001
|
-
const noBidderAccountsAvailableException = (message) => {
|
|
12002
|
-
return new NoBidderAccountsAvailableException(message);
|
|
12003
|
-
};
|
|
12004
|
-
|
|
12005
|
-
class NoGoogleOAuthTokensFoundException extends Error {
|
|
12006
|
-
code = 'NO_GOOGLE_OAUTH_TOKENS_FOUND';
|
|
12007
|
-
constructor(message) {
|
|
12008
|
-
super(message);
|
|
12009
|
-
}
|
|
12010
|
-
}
|
|
12011
|
-
const noGoogleOAuthTokensFoundException = (message) => new NoGoogleOAuthTokensFoundException(message);
|
|
12012
|
-
|
|
12013
12586
|
const scraperAccountType = z.enum([
|
|
12014
|
-
|
|
12015
|
-
|
|
12016
|
-
|
|
12017
|
-
|
|
12018
|
-
|
|
12587
|
+
'feed',
|
|
12588
|
+
'job',
|
|
12589
|
+
'status',
|
|
12590
|
+
'activity',
|
|
12591
|
+
'profile',
|
|
12592
|
+
'unauthenticated',
|
|
12019
12593
|
]);
|
|
12020
12594
|
const scraperAccountSchema = z.object({
|
|
12021
12595
|
id: z.string(),
|
|
@@ -12032,16 +12606,13 @@ const scraperAccountSchema = z.object({
|
|
|
12032
12606
|
updatedAt: z.number(),
|
|
12033
12607
|
isProtected: z.boolean().optional(),
|
|
12034
12608
|
});
|
|
12035
|
-
const createScraperAccountSchema = scraperAccountSchema
|
|
12036
|
-
.pick({
|
|
12609
|
+
const createScraperAccountSchema = scraperAccountSchema.pick({
|
|
12037
12610
|
region: true,
|
|
12038
12611
|
email: true,
|
|
12039
12612
|
password: true,
|
|
12040
12613
|
securityQuestionAnswer: true,
|
|
12041
12614
|
isActive: true,
|
|
12042
|
-
|
|
12043
|
-
.extend({
|
|
12044
|
-
proxyCountry: proxyCountryEnum.nullable(),
|
|
12615
|
+
type: true,
|
|
12045
12616
|
});
|
|
12046
12617
|
const updateScraperAccountSchema = scraperAccountSchema
|
|
12047
12618
|
.omit({
|
|
@@ -12565,10 +13136,8 @@ const scrapeJobStartedEventMetadata = objectType({
|
|
|
12565
13136
|
accountEmail: stringType(),
|
|
12566
13137
|
});
|
|
12567
13138
|
const scrapeJobFailedEventMetadata = objectType({
|
|
12568
|
-
listing:
|
|
13139
|
+
listing: feedJobSchemaV2,
|
|
12569
13140
|
region: regionSchema,
|
|
12570
|
-
accountId: stringType(),
|
|
12571
|
-
accountEmail: stringType(),
|
|
12572
13141
|
error: stringType(),
|
|
12573
13142
|
});
|
|
12574
13143
|
const jobActivityScrapedEventMetadata = objectType({
|
|
@@ -13863,6 +14432,8 @@ exports.DropdownOptionNotPresentException = DropdownOptionNotPresentException;
|
|
|
13863
14432
|
exports.ElementNotClickableException = ElementNotClickableException;
|
|
13864
14433
|
exports.EvaluateElementException = EvaluateElementException;
|
|
13865
14434
|
exports.EvaluateFunctionException = EvaluateFunctionException;
|
|
14435
|
+
exports.FEED_JOB_TO_JOB_DETAILS_FIELD_MAPPING = FEED_JOB_TO_JOB_DETAILS_FIELD_MAPPING;
|
|
14436
|
+
exports.FailedToParseNuxtJobException = FailedToParseNuxtJobException;
|
|
13866
14437
|
exports.FeedScrapeException = FeedScrapeException;
|
|
13867
14438
|
exports.GetMultiloginBrowserException = GetMultiloginBrowserException;
|
|
13868
14439
|
exports.GoToUrlException = GoToUrlException;
|
|
@@ -13873,6 +14444,7 @@ exports.InvalidCredentialsException = InvalidCredentialsException;
|
|
|
13873
14444
|
exports.InvalidGoogleOAuthTokenException = InvalidGoogleOAuthTokenException;
|
|
13874
14445
|
exports.InvalidJobUrlException = InvalidJobUrlException;
|
|
13875
14446
|
exports.JOB_FILTER_OPTIONS = JOB_FILTER_OPTIONS;
|
|
14447
|
+
exports.JobIsPrivateException = JobIsPrivateException;
|
|
13876
14448
|
exports.LogEventTypeEnum = LogEventTypeEnum;
|
|
13877
14449
|
exports.LoginFailedException = LoginFailedException;
|
|
13878
14450
|
exports.MultiloginAuthenticationException = MultiloginAuthenticationException;
|
|
@@ -13974,7 +14546,9 @@ exports.evaluateFunctionException = evaluateFunctionException;
|
|
|
13974
14546
|
exports.eventLoggerPayloadSchema = eventLoggerPayloadSchema;
|
|
13975
14547
|
exports.experienceLevelEnum = experienceLevelEnum;
|
|
13976
14548
|
exports.externalProxySchema = externalProxySchema;
|
|
14549
|
+
exports.failedToParseNuxtJobException = failedToParseNuxtJobException;
|
|
13977
14550
|
exports.feedJobSchema = feedJobSchema;
|
|
14551
|
+
exports.feedJobSchemaV2 = feedJobSchemaV2;
|
|
13978
14552
|
exports.feedScrapeCompletedEventMetadata = feedScrapeCompletedEventMetadata;
|
|
13979
14553
|
exports.feedScrapeException = feedScrapeException;
|
|
13980
14554
|
exports.feedScrapeStartedEventMetadata = feedScrapeStartedEventMetadata;
|
|
@@ -14018,7 +14592,9 @@ exports.jobActivityScrapeFailedEventMetadata = jobActivityScrapeFailedEventMetad
|
|
|
14018
14592
|
exports.jobActivityScrapedEventMetadata = jobActivityScrapedEventMetadata;
|
|
14019
14593
|
exports.jobActivitySnapshotSchema = jobActivitySnapshotSchema;
|
|
14020
14594
|
exports.jobActivityUpdateSchema = jobActivityUpdateSchema;
|
|
14595
|
+
exports.jobDetailsStateSchema = jobDetailsStateSchema;
|
|
14021
14596
|
exports.jobFiltersSchema = jobFiltersSchema;
|
|
14597
|
+
exports.jobIsPrivateException = jobIsPrivateException;
|
|
14022
14598
|
exports.jobQualityScoreSchema = jobQualityScoreSchema;
|
|
14023
14599
|
exports.jobSkillsSchema = jobSkillsSchema;
|
|
14024
14600
|
exports.jobStatusOrder = jobStatusOrder;
|
|
@@ -14043,7 +14619,9 @@ exports.noBidderAccountsAvailableException = noBidderAccountsAvailableException;
|
|
|
14043
14619
|
exports.noGoogleOAuthTokensFoundException = noGoogleOAuthTokensFoundException;
|
|
14044
14620
|
exports.noScraperAccountAvailableException = noScraperAccountAvailableException;
|
|
14045
14621
|
exports.notificationConfigSchema = notificationConfigSchema;
|
|
14622
|
+
exports.nuxtStateJobDetailsSchema = nuxtStateJobDetailsSchema;
|
|
14046
14623
|
exports.nuxtStateJobSchema = nuxtStateJobSchema;
|
|
14624
|
+
exports.nuxtStateJobsSearchSchema = nuxtStateJobsSearchSchema;
|
|
14047
14625
|
exports.onboardingProgressSchema = onboardingProgressSchema;
|
|
14048
14626
|
exports.openPageException = openPageException;
|
|
14049
14627
|
exports.organizationCampaignStatsSchema = organizationCampaignStatsSchema;
|
|
@@ -14076,6 +14654,7 @@ exports.proxyCountryEnum = proxyCountryEnum;
|
|
|
14076
14654
|
exports.proxyProviderSchema = proxyProviderSchema;
|
|
14077
14655
|
exports.proxySchema = proxySchema;
|
|
14078
14656
|
exports.proxyStatusSchema = proxyStatusSchema;
|
|
14657
|
+
exports.proxyTypeSchema = proxyTypeSchema;
|
|
14079
14658
|
exports.puppeteerConnectionErrorException = puppeteerConnectionErrorException;
|
|
14080
14659
|
exports.questionAnswerPairSchema = questionAnswerPairSchema;
|
|
14081
14660
|
exports.questionPairNotMatchingException = questionPairNotMatchingException;
|