lancer-shared 1.2.49 → 1.2.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/dist/bundle.cjs.js +70 -42
  2. package/dist/constants/collections.d.ts +13 -0
  3. package/dist/constants/collections.js +14 -0
  4. package/dist/constants/common-questions.js +57 -0
  5. package/dist/constants/index.js +18 -0
  6. package/dist/constants/job-filter-options.js +265 -0
  7. package/dist/constants/job-status.js +21 -0
  8. package/dist/constants/mappings/countryMapping.js +120 -0
  9. package/dist/constants/mappings/regionMapping.js +240 -0
  10. package/dist/constants/organization.d.ts +2 -0
  11. package/dist/constants/routes.js +116 -0
  12. package/dist/constants/upwork-accounts.js +18 -0
  13. package/dist/index.js +4 -0
  14. package/dist/schemas/account/account-status.js +8 -0
  15. package/dist/schemas/account/bidder-account.js +35 -0
  16. package/dist/schemas/account/index.js +3 -0
  17. package/dist/schemas/account/scraper-account.js +34 -0
  18. package/dist/schemas/ai/ai-config.d.ts +36 -0
  19. package/dist/schemas/ai/ai-config.js +9 -0
  20. package/dist/schemas/ai/index.d.ts +3 -0
  21. package/dist/schemas/ai/index.js +3 -0
  22. package/dist/schemas/ai/proposal.d.ts +82 -0
  23. package/dist/schemas/ai/proposal.js +13 -0
  24. package/dist/schemas/ai/suitability.d.ts +37 -0
  25. package/dist/schemas/ai/suitability.js +14 -0
  26. package/dist/schemas/bid/bid-result.js +11 -0
  27. package/dist/schemas/bid/bid.js +35 -0
  28. package/dist/schemas/bid/index.js +2 -0
  29. package/dist/schemas/campaign/campaign-ai-metrics.js +6 -0
  30. package/dist/schemas/campaign/campaign-analytics.js +42 -0
  31. package/dist/schemas/campaign/campaign-expenses.js +6 -0
  32. package/dist/schemas/campaign/campaign-insights.js +31 -0
  33. package/dist/schemas/campaign/campaign-integrations.d.ts +87 -0
  34. package/dist/schemas/campaign/campaign-integrations.js +13 -0
  35. package/dist/schemas/campaign/campaign-job-count.d.ts +2 -0
  36. package/dist/schemas/campaign/campaign-job-count.js +3 -0
  37. package/dist/schemas/campaign/campaign.js +41 -0
  38. package/dist/schemas/campaign/index.js +7 -0
  39. package/dist/schemas/chat-message/chat-message.d.ts +31 -0
  40. package/dist/schemas/chat-message/chat-message.js +10 -0
  41. package/dist/schemas/chat-message/index.d.ts +1 -0
  42. package/dist/schemas/chat-message/index.js +1 -0
  43. package/dist/schemas/config/agency-config.d.ts +17 -0
  44. package/dist/schemas/config/agency-config.js +7 -0
  45. package/dist/schemas/config/index.d.ts +1 -0
  46. package/dist/schemas/config/index.js +1 -0
  47. package/dist/schemas/event/index.d.ts +58 -0
  48. package/dist/schemas/index.js +17 -0
  49. package/dist/schemas/job-filters/index.d.ts +1 -0
  50. package/dist/schemas/job-filters/index.js +1 -0
  51. package/dist/schemas/job-filters/job-filters.d.ts +241 -0
  52. package/dist/schemas/job-filters/job-filters.js +84 -0
  53. package/dist/schemas/lead/index.js +173 -0
  54. package/dist/schemas/lead/lead-note.d.ts +83 -0
  55. package/dist/schemas/lead/lead-note.js +27 -0
  56. package/dist/schemas/lead/lead-status.js +23 -0
  57. package/dist/schemas/lead/nuxt.d.ts +1664 -0
  58. package/dist/schemas/lead/nuxt.js +287 -0
  59. package/dist/schemas/logger/index.js +1 -0
  60. package/dist/schemas/logger/log-event.d.ts +86 -1
  61. package/dist/schemas/logger/log-event.js +117 -0
  62. package/dist/schemas/meter-event/index.d.ts +12 -0
  63. package/dist/schemas/organization/index.js +70 -0
  64. package/dist/schemas/organization/member.js +7 -0
  65. package/dist/schemas/organization/organization.d.ts +240 -0
  66. package/dist/schemas/organization/organization.js +16 -0
  67. package/dist/schemas/organization/subscription.js +17 -0
  68. package/dist/schemas/plan/index.d.ts +8 -0
  69. package/dist/schemas/proxy/index.js +3 -0
  70. package/dist/schemas/proxy/proxy-available-replacements.js +3 -0
  71. package/dist/schemas/proxy/proxy-country.js +249 -0
  72. package/dist/schemas/proxy/proxy.js +29 -0
  73. package/dist/schemas/saved-search/index.js +9 -0
  74. package/dist/schemas/scraper/index.js +2 -0
  75. package/dist/schemas/scraper/scrape-payload.js +21 -0
  76. package/dist/schemas/scraper/scrape-result.js +23 -0
  77. package/dist/schemas/shared.js +19 -0
  78. package/dist/schemas/tier/index.d.ts +119 -0
  79. package/dist/schemas/time-filter/index.js +6 -0
  80. package/dist/schemas/transaction/index.js +17 -0
  81. package/dist/schemas/usage/index.js +18 -0
  82. package/dist/schemas/user/index.js +52 -0
  83. package/dist/types/account/account-status.d.ts +3 -0
  84. package/dist/types/account/account-status.js +1 -0
  85. package/dist/types/account/bidder-account.d.ts +7 -0
  86. package/dist/types/account/bidder-account.js +1 -0
  87. package/dist/types/account/index.d.ts +3 -0
  88. package/dist/types/account/index.js +3 -0
  89. package/dist/types/account/scraper-account.d.ts +5 -0
  90. package/dist/types/account/scraper-account.js +1 -0
  91. package/dist/types/ai/ai-config.d.ts +6 -0
  92. package/dist/types/ai/ai-config.js +1 -0
  93. package/dist/types/ai/index.d.ts +3 -0
  94. package/dist/types/ai/index.js +3 -0
  95. package/dist/types/ai/proposal.d.ts +10 -0
  96. package/dist/types/ai/proposal.js +1 -0
  97. package/dist/types/ai/suitability.d.ts +6 -0
  98. package/dist/types/ai/suitability.js +1 -0
  99. package/dist/types/bid/bid-result.d.ts +5 -0
  100. package/dist/types/bid/bid-result.js +1 -0
  101. package/dist/types/bid/bid.d.ts +9 -0
  102. package/dist/types/bid/bid.js +1 -0
  103. package/dist/types/bid/index.d.ts +2 -0
  104. package/dist/types/bid/index.js +2 -0
  105. package/dist/types/campaign/campaign-analytics.d.ts +7 -0
  106. package/dist/types/campaign/campaign-analytics.js +1 -0
  107. package/dist/types/campaign/campaign-expenses.d.ts +3 -0
  108. package/dist/types/campaign/campaign-expenses.js +1 -0
  109. package/dist/types/campaign/campaign-insights.js +1 -0
  110. package/dist/types/campaign/campaign-integrations.d.ts +6 -0
  111. package/dist/types/campaign/campaign-integrations.js +1 -0
  112. package/dist/types/campaign/campaign-job-count.d.ts +4 -0
  113. package/dist/types/campaign/campaign-job-count.js +1 -0
  114. package/dist/types/campaign/campaign.js +1 -0
  115. package/dist/types/campaign/index.js +6 -0
  116. package/dist/types/chat-message/chat-message.d.ts +4 -0
  117. package/dist/types/chat-message/chat-message.js +1 -0
  118. package/dist/types/chat-message/index.d.ts +1 -0
  119. package/dist/types/chat-message/index.js +1 -0
  120. package/dist/types/config/agency-config.d.ts +4 -0
  121. package/dist/types/config/agency-config.js +1 -0
  122. package/dist/types/config/index.d.ts +1 -0
  123. package/dist/types/config/index.js +1 -0
  124. package/dist/types/index.d.ts +15 -0
  125. package/dist/types/index.js +15 -0
  126. package/dist/types/job/index.d.ts +48 -0
  127. package/dist/types/job/index.js +3 -0
  128. package/dist/types/job/job-note.d.ts +10 -0
  129. package/dist/types/job/job-note.js +1 -0
  130. package/dist/types/job/job-status.d.ts +5 -0
  131. package/dist/types/job/job-status.js +9 -0
  132. package/dist/types/job/nuxt.d.ts +4 -0
  133. package/dist/types/job/nuxt.js +1 -0
  134. package/dist/types/job-filters/index.d.ts +1 -0
  135. package/dist/types/job-filters/index.js +1 -0
  136. package/dist/types/job-filters/job-filters.d.ts +4 -0
  137. package/dist/types/job-filters/job-filters.js +1 -0
  138. package/dist/types/logger/index.d.ts +1 -0
  139. package/dist/types/logger/index.js +1 -0
  140. package/dist/types/logger/log-event.js +1 -0
  141. package/dist/types/saved-search/index.d.ts +6 -0
  142. package/dist/types/saved-search/index.js +1 -0
  143. package/dist/types/scraper/index.d.ts +2 -0
  144. package/dist/types/scraper/index.js +2 -0
  145. package/dist/types/scraper/scrape-payload.d.ts +10 -0
  146. package/dist/types/scraper/scrape-payload.js +1 -0
  147. package/dist/types/scraper/scrape-result.d.ts +8 -0
  148. package/dist/types/scraper/scrape-result.js +1 -0
  149. package/dist/types/shared.d.ts +8 -0
  150. package/dist/types/shared.js +1 -0
  151. package/dist/types/time-filter/index.d.ts +3 -0
  152. package/dist/types/time-filter/index.js +1 -0
  153. package/dist/types/transaction/index.d.ts +4 -0
  154. package/dist/types/transaction/index.js +1 -0
  155. package/dist/types/usage/index.d.ts +6 -0
  156. package/dist/types/usage/index.js +1 -0
  157. package/dist/types/user/index.d.ts +15 -0
  158. package/dist/types/user/index.js +1 -0
  159. package/dist/utils/index.js +1 -0
  160. package/dist/utils/try-catch.js +10 -0
  161. package/package.json +1 -1
@@ -12071,52 +12071,52 @@ const generateLeadCountsRequestSchema = z.object({
12071
12071
 
12072
12072
  const LogEventTypeEnum = z.enum([
12073
12073
  // Scraper Events
12074
- 'scraperStarted',
12075
- 'scraperCompleted',
12076
- 'jobScraped',
12077
- 'jobScrapeFailed',
12078
- 'jobsIndexed',
12079
- 'jobDuplicateSkipped',
12080
- 'scraperFailed',
12081
- 'jobActivityScraped',
12082
- 'jobActivityScrapeFailed',
12083
- 'leadStatusCheckFailed',
12084
- 'leadStatusUpdated',
12074
+ "scraperStarted",
12075
+ "scraperCompleted",
12076
+ "jobScraped",
12077
+ "jobScrapeFailed",
12078
+ "jobsIndexed",
12079
+ "jobDuplicateSkipped",
12080
+ "scraperFailed",
12081
+ "jobActivityScraped",
12082
+ "jobActivityScrapeFailed",
12083
+ "leadStatusCheckFailed",
12084
+ "leadStatusUpdated",
12085
12085
  // Feed Scraper Events
12086
- 'feedScrapeStarted',
12087
- 'feedScrapeCompleted',
12088
- 'feedScrapeFailed',
12089
- 'jobListingScraped',
12086
+ "feedScrapeStarted",
12087
+ "feedScrapeCompleted",
12088
+ "feedScrapeFailed",
12089
+ "jobListingScraped",
12090
12090
  // Job Sync & Campaign Matching
12091
- 'jobSyncPublished',
12092
- 'jobSyncReceived',
12093
- 'leadsCreatedAndSynced',
12091
+ "jobSyncPublished",
12092
+ "jobSyncReceived",
12093
+ "leadsCreatedAndSynced",
12094
12094
  // Suitability Events
12095
- 'suitabilityPending',
12096
- 'suitabilityProcessing',
12097
- 'suitabilityComplete',
12098
- 'suitabilityFailed',
12099
- 'manualSuitabilityAnalyzed',
12095
+ "suitabilityPending",
12096
+ "suitabilityProcessing",
12097
+ "suitabilityComplete",
12098
+ "suitabilityFailed",
12099
+ "manualSuitabilityAnalyzed",
12100
12100
  // Proposal Events
12101
- 'proposalProcessing',
12102
- 'proposalComplete',
12103
- 'proposalFailed',
12104
- 'manualProposalGenerated',
12101
+ "proposalProcessing",
12102
+ "proposalComplete",
12103
+ "proposalFailed",
12104
+ "manualProposalGenerated",
12105
12105
  // Bidding Events
12106
- 'biddingProcessing',
12107
- 'biddingComplete',
12108
- 'biddingFailed',
12109
- 'biddingSkipped',
12110
- 'biddingPending',
12111
- 'biddingRetry',
12112
- 'biddingInsufficientConnects',
12113
- 'biddingWarningAlert',
12106
+ "biddingProcessing",
12107
+ "biddingComplete",
12108
+ "biddingFailed",
12109
+ "biddingSkipped",
12110
+ "biddingPending",
12111
+ "biddingRetry",
12112
+ "biddingInsufficientConnects",
12113
+ "biddingWarningAlert",
12114
12114
  // System/Generic Events
12115
- 'errorLogged',
12116
- 'cloudTaskRetry',
12117
- 'manualLeadEdited',
12118
- 'leadArchived',
12119
- 'auditTrailLogged',
12115
+ "errorLogged",
12116
+ "cloudTaskRetry",
12117
+ "manualLeadEdited",
12118
+ "leadArchived",
12119
+ "auditTrailLogged",
12120
12120
  ]);
12121
12121
  const logEventSchema = z.object({
12122
12122
  // The type of event (use a z.enum if possible)
@@ -12124,7 +12124,7 @@ const logEventSchema = z.object({
12124
12124
  // The service that triggered the event
12125
12125
  source: z.string(), // e.g. "lancer-agents", "lancer-bidding"
12126
12126
  // Optional: Allow logging non-lead events in the future
12127
- resourceType: z.string().default('lead'), // e.g. "lead", "campaign", "user"
12127
+ resourceType: z.string().default("lead"), // e.g. "lead", "campaign", "user"
12128
12128
  // ID of the resource (primary entity affected)
12129
12129
  resourceId: z.string().nullable(), // fallback if leadId is not applicable
12130
12130
  // Lead-level metadata
@@ -12174,7 +12174,7 @@ const biddingFailedEventMetadata = objectType({
12174
12174
  error: z.any(),
12175
12175
  });
12176
12176
  const userAccountBiddingExceptionEventMetadata = objectType({
12177
- errorType: z.enum(['insufficientConnects', 'proposalFormWarningAlert']),
12177
+ errorType: z.enum(["insufficientConnects", "proposalFormWarningAlert"]),
12178
12178
  context: z.string().optional(),
12179
12179
  });
12180
12180
  const lancerBiddingExceptionEventMetadata = objectType({
@@ -12195,6 +12195,31 @@ const leadStatusEventMetadata = objectType({
12195
12195
  .optional(),
12196
12196
  reason: z.string().optional(),
12197
12197
  });
12198
+ const suitabilityCompleteEventMetadataSchema = objectType({
12199
+ suitabilityRating: z.number(),
12200
+ suitabilityReason: z.string(),
12201
+ agentStatus: z.string(),
12202
+ model: z.string(),
12203
+ provider: z.string(),
12204
+ promptTokens: z.number(),
12205
+ completionTokens: z.number(),
12206
+ messages: z.array(objectType({
12207
+ role: z.enum(["user", "assistant", "system"]),
12208
+ content: z.string(),
12209
+ })),
12210
+ });
12211
+ const proposalCompleteEventMetadataSchema = objectType({
12212
+ agentStatus: z.string(),
12213
+ proposal: z.string(),
12214
+ model: z.string(),
12215
+ provider: z.string(),
12216
+ promptTokens: z.number(),
12217
+ completionTokens: z.number(),
12218
+ messages: z.array(objectType({
12219
+ role: z.enum(["user", "assistant", "system"]),
12220
+ content: z.string(),
12221
+ })),
12222
+ });
12198
12223
 
12199
12224
  const usageEventTypeEnum = LogEventTypeEnum.extract([
12200
12225
  "suitabilityComplete",
@@ -13022,6 +13047,7 @@ const planStripeMetadataSchema = objectType({
13022
13047
  const planFeatureSchema = objectType({
13023
13048
  id: stringType(),
13024
13049
  description: stringType(),
13050
+ tooltipContent: stringType().nullable(),
13025
13051
  });
13026
13052
  const planSchema = objectType({
13027
13053
  id: stringType().regex(/^prod_[a-zA-Z0-9]+$/),
@@ -13759,6 +13785,7 @@ exports.planSchema = planSchema;
13759
13785
  exports.planStripeMetadataSchema = planStripeMetadataSchema;
13760
13786
  exports.portfolioSchema = portfolioSchema;
13761
13787
  exports.projectDurationEnum = projectDurationEnum;
13788
+ exports.proposalCompleteEventMetadataSchema = proposalCompleteEventMetadataSchema;
13762
13789
  exports.proposalErrorAlertException = proposalErrorAlertException;
13763
13790
  exports.proposalFormWarningAlertException = proposalFormWarningAlertException;
13764
13791
  exports.proposalSchema = proposalSchema;
@@ -13798,6 +13825,7 @@ exports.subscriptionSourceEnum = subscriptionSourceEnum;
13798
13825
  exports.subscriptionStatusEnum = subscriptionStatusEnum;
13799
13826
  exports.subscriptionStripeMetadataItemSchema = subscriptionStripeMetadataItemSchema;
13800
13827
  exports.subscriptionStripeMetadataSchema = subscriptionStripeMetadataSchema;
13828
+ exports.suitabilityCompleteEventMetadataSchema = suitabilityCompleteEventMetadataSchema;
13801
13829
  exports.suitabilityRatingSchema = suitabilityRatingSchema;
13802
13830
  exports.systemPromptSchema = systemPromptSchema;
13803
13831
  exports.systemSchema = systemSchema;
@@ -0,0 +1,13 @@
1
+ export declare const COLLECTIONS: {
2
+ readonly USERS: "users";
3
+ readonly SETTINGS: "settings";
4
+ readonly CAMPAIGNS: "campaigns";
5
+ readonly LEADS: "leads";
6
+ readonly EVENTS: "events";
7
+ readonly SCRAPER_ACCOUNTS: "scrapers";
8
+ readonly BIDDER_ACCOUNTS: "bidders";
9
+ readonly CAMPAIGN_ACTIVITIES: (userId: string, campaignId: string) => string;
10
+ readonly ORGANIZATIONS: "organizations";
11
+ readonly PROXIES: "proxies";
12
+ readonly TRANSACTIONS: "transactions";
13
+ };
@@ -0,0 +1,14 @@
1
+ // Base collection names
2
+ export const COLLECTIONS = {
3
+ USERS: "users",
4
+ SETTINGS: "settings",
5
+ CAMPAIGNS: "campaigns",
6
+ LEADS: "leads",
7
+ EVENTS: "events",
8
+ SCRAPER_ACCOUNTS: "scrapers",
9
+ BIDDER_ACCOUNTS: "bidders",
10
+ CAMPAIGN_ACTIVITIES: (userId, campaignId) => `users/${userId}/campaigns/${campaignId}/activities`,
11
+ ORGANIZATIONS: "organizations",
12
+ PROXIES: "proxies",
13
+ TRANSACTIONS: "transactions",
14
+ };
@@ -0,0 +1,57 @@
1
+ export const commonQuestions = [
2
+ {
3
+ id: 'similar_experience',
4
+ question: 'Describe your recent experience with similar projects',
5
+ placeholder: 'ex: [Answer the question based on case studies, if not certain ask to discuss in DMs]',
6
+ },
7
+ {
8
+ id: 'profile_links',
9
+ question: 'Include a link to your GitHub profile and/or website',
10
+ placeholder: 'ex: [https://github.com/yourusername or https://yourwebsite.com]',
11
+ },
12
+ {
13
+ id: 'frameworks',
14
+ question: 'What frameworks have you worked with?',
15
+ placeholder: 'ex: [NextJS, React, TailwindCSS, etc...]',
16
+ },
17
+ {
18
+ id: 'testing_approach',
19
+ question: 'Describe your approach to testing and improving QA',
20
+ placeholder: 'ex: [We are using test-driven development, and we are using Jest for testing]',
21
+ },
22
+ {
23
+ id: 'certifications',
24
+ question: 'Please list any certifications related to this project',
25
+ placeholder: 'ex: [Certification in React, Certification in NextJS, etc...]',
26
+ },
27
+ {
28
+ id: 'similar_project',
29
+ question: 'What past project or job have you had that is most like this one and why?',
30
+ placeholder: "ex: [Describe a similar project and explain the key similarities... If you can't answer based on the case studies, ask to discuss in DMs]",
31
+ },
32
+ {
33
+ id: 'project_fit',
34
+ question: 'Why do you think you are a good fit for this particular project?',
35
+ placeholder: 'ex: [Explain how your skills and experience match the project requirements...]',
36
+ },
37
+ {
38
+ id: 'job_questions',
39
+ question: 'Do you have any questions about the job description?',
40
+ placeholder: 'ex: [Ask for any clarifications needed about the role or requirements...]',
41
+ },
42
+ {
43
+ id: 'project_questions',
44
+ question: 'What questions do you have about the project?',
45
+ placeholder: 'ex: [Ask about project scope, timeline, team structure...]',
46
+ },
47
+ {
48
+ id: 'project_suggestions',
49
+ question: 'Do you have suggestions to make this project run successfully?',
50
+ placeholder: 'ex: [Ask to discuss in DMs]',
51
+ },
52
+ {
53
+ id: 'company_info',
54
+ question: 'What is your company website URL? . . . Company size?',
55
+ placeholder: 'ex: [https://company.com | Number of employees: ...]',
56
+ },
57
+ ];
@@ -0,0 +1,18 @@
1
+ export const paths = {
2
+ auth: {
3
+ register: `auth/register`,
4
+ },
5
+ users: {
6
+ root: 'users',
7
+ details: (id) => `users/${id}`,
8
+ },
9
+ };
10
+ export * from './job-filter-options';
11
+ export { default as countryMapping } from './mappings/countryMapping';
12
+ export { default as regionMapping } from './mappings/regionMapping';
13
+ export * from './job-filter-options';
14
+ export * from './common-questions';
15
+ export * from './job-status';
16
+ export * from './routes';
17
+ export * from './collections';
18
+ export * from './upwork-accounts';
@@ -0,0 +1,265 @@
1
+ export const JOB_FILTER_OPTIONS = {
2
+ REGIONS: ["Worldwide", "UKOnly", "USOnly"],
3
+ PROJECT_DURATION: [
4
+ "Less than 1 month",
5
+ "1 to 3 months",
6
+ "3 to 6 months",
7
+ "More than 6 months",
8
+ "Unspecified",
9
+ ],
10
+ ENGAGEMENT_TYPE: [
11
+ "Less than 30 hrs/week",
12
+ "More than 30 hrs/week",
13
+ "Unspecified",
14
+ ],
15
+ VENDOR_TYPE: ["Independent", "Agency", "Unspecified"],
16
+ PAYMENT_TYPE: ["Fixed-price", "Hourly", "Unspecified"],
17
+ TALENT_TYPE: ["Agency", "Independent", "Unspecified"],
18
+ ENGLISH_LEVELS: [
19
+ "Fluent",
20
+ "Conversational",
21
+ "Native or Bilingual",
22
+ "Unspecified",
23
+ ],
24
+ EXPERIENCE_LEVELS: ["Entry level", "Intermediate", "Expert"],
25
+ REQUIRED_EARNINGS: [100, 1000, 10000],
26
+ REQUIRED_JSS: [">80%", ">90%", "100%", "RT"],
27
+ HIERARCHICAL_CATEGORIES: [
28
+ {
29
+ label: "Accounting & Consulting",
30
+ value: "accounting-consulting",
31
+ children: [
32
+ "Accounting & Bookkeeping",
33
+ "Financial Planning",
34
+ "Management Consulting & Analysis",
35
+ "Other - Accounting & Consulting",
36
+ "Personal & Professional Coaching",
37
+ "Recruiting & Human Resources",
38
+ ],
39
+ },
40
+ {
41
+ label: "Admin Support",
42
+ value: "admin-support",
43
+ children: [
44
+ "Data Entry & Transcription Services",
45
+ "Market Research & Product Reviews",
46
+ "Project Management",
47
+ "Virtual Assistance",
48
+ ],
49
+ },
50
+ {
51
+ label: "Customer Service",
52
+ value: "customer-service",
53
+ children: [
54
+ "Community Management & Tagging",
55
+ "Customer Service & Tech Support",
56
+ ],
57
+ },
58
+ {
59
+ label: "Data Science & Analytics",
60
+ value: "data-science-analytics",
61
+ children: [
62
+ "AI & Machine Learning",
63
+ "Data Analysis & Testing",
64
+ "Data Extraction/ETL",
65
+ "Data Mining & Management",
66
+ ],
67
+ },
68
+ {
69
+ label: "Design & Creative",
70
+ value: "design-creative",
71
+ children: [
72
+ "Art & Illustration",
73
+ "Audio & Music Production",
74
+ "Branding & Logo Design",
75
+ "Graphic, Editorial & Presentation Design",
76
+ "NFT, AR/VR & Game Art",
77
+ "Performing Arts",
78
+ "Photography",
79
+ "Product Design",
80
+ "Video & Animation",
81
+ ],
82
+ },
83
+ {
84
+ label: "Engineering & Architecture",
85
+ value: "engineering-architecture",
86
+ children: [
87
+ "3D Modeling & CAD",
88
+ "Building & Landscape Architecture",
89
+ "Chemical Engineering",
90
+ "Civil & Structural Engineering",
91
+ "Contract Manufacturing",
92
+ "Electrical & Electronic Engineering",
93
+ "Energy & Mechanical Engineering",
94
+ ],
95
+ },
96
+ {
97
+ label: "IT & Networking",
98
+ value: "it-networking",
99
+ children: [
100
+ "Database Management & Administration",
101
+ "DevOps & Solution Architecture",
102
+ "ERP/CRM Software",
103
+ "Information Security & Compliance",
104
+ "Network & System Administration",
105
+ ],
106
+ },
107
+ {
108
+ label: "Legal",
109
+ value: "legal",
110
+ children: [
111
+ "Corporate & Contract Law",
112
+ "Finance & Tax Law",
113
+ "International & Immigration Law",
114
+ "Public Law",
115
+ ],
116
+ },
117
+ {
118
+ label: "Sales & Marketing",
119
+ value: "sales-marketing",
120
+ children: [
121
+ "Digital Marketing",
122
+ "Lead Generation & Telemarketing",
123
+ "Marketing, PR & Brand Strategy",
124
+ ],
125
+ },
126
+ {
127
+ label: "Translation",
128
+ value: "translation",
129
+ children: [
130
+ "Language Tutoring & Interpretation",
131
+ "Translation & Localization Services",
132
+ ],
133
+ },
134
+ {
135
+ label: "Software Development",
136
+ value: "software-development",
137
+ children: [
138
+ "AI Apps & Integration",
139
+ "Blockchain, NFT & Cryptocurrency",
140
+ "Desktop Application Development",
141
+ "Ecommerce Development",
142
+ "Game Design & Development",
143
+ "Mobile Development",
144
+ "Other - Software Development",
145
+ "Product Management & Scrum",
146
+ "QA Testing",
147
+ "Scripts & Utilities",
148
+ "Web & Mobile Design",
149
+ "Web Development",
150
+ ],
151
+ },
152
+ {
153
+ label: "Writing",
154
+ value: "writing",
155
+ children: [
156
+ "Content Writing",
157
+ "Editing & Proofreading Services",
158
+ "Professional & Business Writing",
159
+ "Sales & Marketing Copywriting",
160
+ ],
161
+ },
162
+ ],
163
+ CATEGORIES: [
164
+ "Personal & Professional Coaching",
165
+ "Accounting & Bookkeeping",
166
+ "Financial Planning",
167
+ "Recruiting & Human Resources",
168
+ "Management Consulting & Analysis",
169
+ "Other - Accounting & Consulting",
170
+ "Data Entry & Transcription Services",
171
+ "Virtual Assistance",
172
+ "Project Management",
173
+ "Market Research & Product Reviews",
174
+ "Community Management & Tagging",
175
+ "Customer Service & Tech Support",
176
+ "Data Analysis & Testing",
177
+ "Data Extraction/ETL",
178
+ "Data Mining & Management",
179
+ "AI & Machine Learning",
180
+ "Art & Illustration",
181
+ "Audio & Music Production",
182
+ "Branding & Logo Design",
183
+ "NFT, AR/VR & Game Art",
184
+ "Graphic, Editorial & Presentation Design",
185
+ "Performing Arts",
186
+ "Photography",
187
+ "Product Design",
188
+ "Video & Animation",
189
+ "Building & Landscape Architecture",
190
+ "Chemical Engineering",
191
+ "Civil & Structural Engineering",
192
+ "Contract Manufacturing",
193
+ "Electrical & Electronic Engineering",
194
+ "Energy & Mechanical Engineering",
195
+ "3D Modeling & CAD",
196
+ "Database Management & Administration",
197
+ "ERP/CRM Software",
198
+ "Information Security & Compliance",
199
+ "Network & System Administration",
200
+ "DevOps & Solution Architecture",
201
+ "Corporate & Contract Law",
202
+ "International & Immigration Law",
203
+ "Finance & Tax Law",
204
+ "Public Law",
205
+ "Digital Marketing",
206
+ "Lead Generation & Telemarketing",
207
+ "Marketing, PR & Brand Strategy",
208
+ "Language Tutoring & Interpretation",
209
+ "Translation & Localization Services",
210
+ "Blockchain, NFT & Cryptocurrency",
211
+ "AI Apps & Integration",
212
+ "Desktop Application Development",
213
+ "Ecommerce Development",
214
+ "Game Design & Development",
215
+ "Mobile Development",
216
+ "Other - Software Development",
217
+ "Product Management & Scrum",
218
+ "QA Testing",
219
+ "Scripts & Utilities",
220
+ "Web & Mobile Design",
221
+ "Web Development",
222
+ "Sales & Marketing Copywriting",
223
+ "Content Writing",
224
+ "Editing & Proofreading Services",
225
+ "Professional & Business Writing",
226
+ ],
227
+ CLIENT_INDUSTRY: [
228
+ "Aerospace",
229
+ "Agriculture & Forestry",
230
+ "Art & Design",
231
+ "Automotive",
232
+ "Aviation",
233
+ "Education",
234
+ "Energy & Utilities",
235
+ "Engineering & Architecture",
236
+ "Fashion & Beauty",
237
+ "Finance & Accounting",
238
+ "Food & Beverage",
239
+ "Government & Public Sector",
240
+ "Health & Fitness",
241
+ "HR & Business Services",
242
+ "Legal",
243
+ "Manufacturing & Construction",
244
+ "Media & Entertainment",
245
+ "Military & Defense",
246
+ "Mining",
247
+ "Real Estate",
248
+ "Retail & Consumer Goods",
249
+ "Sales & Marketing",
250
+ "Science & Medicine",
251
+ "Sports & Recreation",
252
+ "Supply Chain & Logistics",
253
+ "Tech & IT",
254
+ "Transportation & Warehousing",
255
+ "Travel & Hospitality",
256
+ ],
257
+ CLIENT_SIZE: [
258
+ "Individual client",
259
+ "Small company (2-9 people)",
260
+ "Mid-sized company (10-99 people)",
261
+ "Large company (100-1,000 people)",
262
+ "Large company (1,000+ people)",
263
+ "Unspecified",
264
+ ],
265
+ };
@@ -0,0 +1,21 @@
1
+ export const jobStatusOrder = [
2
+ "leads",
3
+ "contacted",
4
+ "viewed",
5
+ "replied",
6
+ "negotiations",
7
+ "won",
8
+ "lost",
9
+ ];
10
+ export const getPreviousStatus = (status) => {
11
+ if (status === "won")
12
+ return "negotiations";
13
+ if (status === "lost")
14
+ return "negotiations";
15
+ const index = jobStatusOrder.indexOf(status);
16
+ return index > 0 ? jobStatusOrder[index - 1] : null;
17
+ };
18
+ export const getNextStatus = (status) => {
19
+ const index = jobStatusOrder.indexOf(status);
20
+ return index < jobStatusOrder.length - 1 ? jobStatusOrder[index + 1] : null;
21
+ };
@@ -0,0 +1,120 @@
1
+ const countryMapping = {
2
+ USA: "United States",
3
+ GBR: "United Kingdom",
4
+ AUS: "Australia",
5
+ CAN: "Canada",
6
+ IND: "India",
7
+ NLD: "Netherlands",
8
+ ARE: "United Arab Emirates",
9
+ DEU: "Germany",
10
+ SAU: "Saudi Arabia",
11
+ FRA: "France",
12
+ TUR: "Turkey",
13
+ CHE: "Switzerland",
14
+ ISR: "Israel",
15
+ ITA: "Italy",
16
+ ESP: "Spain",
17
+ PAK: "Pakistan",
18
+ SGP: "Singapore",
19
+ KAZ: "Kazakhstan",
20
+ UKR: "Ukraine",
21
+ IRL: "Ireland",
22
+ SWE: "Sweden",
23
+ ZAF: "South Africa",
24
+ CHN: "China",
25
+ NOR: "Norway",
26
+ POL: "Poland",
27
+ COL: "Colombia",
28
+ NZL: "New Zealand",
29
+ ROU: "Romania",
30
+ BRA: "Brazil",
31
+ GRC: "Greece",
32
+ BGR: "Bulgaria",
33
+ DNK: "Denmark",
34
+ PHL: "Philippines",
35
+ BEL: "Belgium",
36
+ AUT: "Austria",
37
+ HKG: "Hong Kong",
38
+ QAT: "Qatar",
39
+ BGD: "Bangladesh",
40
+ PRT: "Portugal",
41
+ CYP: "Cyprus",
42
+ LKA: "Sri Lanka",
43
+ NGA: "Nigeria",
44
+ VNM: "Vietnam",
45
+ JPN: "Japan",
46
+ LVA: "Latvia",
47
+ THA: "Thailand",
48
+ CZE: "Czech Republic",
49
+ MEX: "Mexico",
50
+ EGY: "Egypt",
51
+ KEN: "Kenya",
52
+ KWT: "Kuwait",
53
+ CHL: "Chile",
54
+ EST: "Estonia",
55
+ UZB: "Uzbekistan",
56
+ FIN: "Finland",
57
+ HRV: "Croatia",
58
+ HUN: "Hungary",
59
+ KOR: "South Korea",
60
+ LTU: "Lithuania",
61
+ PRI: "Puerto Rico",
62
+ ALB: "Albania",
63
+ BHR: "Bahrain",
64
+ GEO: "Georgia",
65
+ GTM: "Guatemala",
66
+ IDN: "Indonesia",
67
+ LBN: "Lebanon",
68
+ UGA: "Uganda",
69
+ ARG: "Argentina",
70
+ ARM: "Armenia",
71
+ BMU: "Bermuda",
72
+ CRI: "Costa Rica",
73
+ CYM: "Cayman Islands",
74
+ GHA: "Ghana",
75
+ ISL: "Iceland",
76
+ JOR: "Jordan",
77
+ LUX: "Luxembourg",
78
+ MAR: "Morocco",
79
+ MKD: "Macedonia",
80
+ MLT: "Malta",
81
+ MYS: "Malaysia",
82
+ OMN: "Oman",
83
+ SRB: "Serbia",
84
+ TWN: "Taiwan",
85
+ BHS: "Bahamas",
86
+ DZA: "Algeria",
87
+ ETH: "Ethiopia",
88
+ GUY: "Guyana",
89
+ PAN: "Panama",
90
+ PER: "Peru",
91
+ SVK: "Slovakia",
92
+ SVN: "Slovenia",
93
+ TTO: "Trinidad and Tobago",
94
+ URY: "Uruguay",
95
+ VEN: "Venezuela",
96
+ VIR: "Virgin Islands",
97
+ ABW: "Aruba",
98
+ CMR: "Cameroon",
99
+ CUW: "Curaçao",
100
+ GIB: "Gibraltar",
101
+ HND: "Honduras",
102
+ JAM: "Jamaica",
103
+ JEY: "Jersey",
104
+ MDV: "Maldives",
105
+ MUS: "Mauritius",
106
+ TUN: "Tunisia",
107
+ RUS: "Russia",
108
+ IRN: "Iran",
109
+ IRQ: "Iraq",
110
+ AZE: "Azerbaijan",
111
+ CIV: "Cote d'Ivoire",
112
+ PSE: "Palestine",
113
+ MNE: "Montenegro",
114
+ BIH: "Bosnia and Herzegovina",
115
+ IMN: "Isle of Man",
116
+ PNG: "Papua New Guinea",
117
+ VCT: "Saint Vincent and the Grenadines",
118
+ VGB: "British Virgin Islands",
119
+ };
120
+ export default countryMapping;