lancer-shared 1.2.31 → 1.2.32

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 (163) hide show
  1. package/dist/bundle.cjs.js +18 -33
  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.d.ts +3 -1
  16. package/dist/schemas/account/bidder-account.js +35 -0
  17. package/dist/schemas/account/index.js +3 -0
  18. package/dist/schemas/account/scraper-account.d.ts +64 -133
  19. package/dist/schemas/account/scraper-account.js +34 -0
  20. package/dist/schemas/ai/ai-config.d.ts +36 -0
  21. package/dist/schemas/ai/ai-config.js +9 -0
  22. package/dist/schemas/ai/index.d.ts +3 -0
  23. package/dist/schemas/ai/index.js +3 -0
  24. package/dist/schemas/ai/proposal.d.ts +82 -0
  25. package/dist/schemas/ai/proposal.js +13 -0
  26. package/dist/schemas/ai/suitability.d.ts +37 -0
  27. package/dist/schemas/ai/suitability.js +14 -0
  28. package/dist/schemas/bid/bid-result.js +11 -0
  29. package/dist/schemas/bid/bid.js +35 -0
  30. package/dist/schemas/bid/index.js +2 -0
  31. package/dist/schemas/campaign/campaign-ai-metrics.js +6 -0
  32. package/dist/schemas/campaign/campaign-analytics.js +42 -0
  33. package/dist/schemas/campaign/campaign-expenses.js +6 -0
  34. package/dist/schemas/campaign/campaign-insights.js +31 -0
  35. package/dist/schemas/campaign/campaign-integrations.d.ts +87 -0
  36. package/dist/schemas/campaign/campaign-integrations.js +13 -0
  37. package/dist/schemas/campaign/campaign-job-count.d.ts +2 -0
  38. package/dist/schemas/campaign/campaign-job-count.js +3 -0
  39. package/dist/schemas/campaign/campaign.js +41 -0
  40. package/dist/schemas/campaign/index.js +7 -0
  41. package/dist/schemas/chat-message/chat-message.d.ts +31 -0
  42. package/dist/schemas/chat-message/chat-message.js +10 -0
  43. package/dist/schemas/chat-message/index.d.ts +1 -0
  44. package/dist/schemas/chat-message/index.js +1 -0
  45. package/dist/schemas/config/agency-config.d.ts +17 -0
  46. package/dist/schemas/config/agency-config.js +7 -0
  47. package/dist/schemas/config/index.d.ts +1 -0
  48. package/dist/schemas/config/index.js +1 -0
  49. package/dist/schemas/event/index.d.ts +58 -0
  50. package/dist/schemas/index.js +17 -0
  51. package/dist/schemas/job-filters/index.d.ts +1 -0
  52. package/dist/schemas/job-filters/index.js +1 -0
  53. package/dist/schemas/job-filters/job-filters.d.ts +241 -0
  54. package/dist/schemas/job-filters/job-filters.js +84 -0
  55. package/dist/schemas/lead/index.js +173 -0
  56. package/dist/schemas/lead/lead-note.d.ts +83 -0
  57. package/dist/schemas/lead/lead-note.js +27 -0
  58. package/dist/schemas/lead/lead-status.js +23 -0
  59. package/dist/schemas/lead/nuxt.d.ts +1664 -0
  60. package/dist/schemas/lead/nuxt.js +287 -0
  61. package/dist/schemas/logger/index.js +1 -0
  62. package/dist/schemas/logger/log-event.js +117 -0
  63. package/dist/schemas/meter-event/index.d.ts +12 -0
  64. package/dist/schemas/organization/index.js +70 -0
  65. package/dist/schemas/organization/member.js +7 -0
  66. package/dist/schemas/organization/organization.d.ts +240 -0
  67. package/dist/schemas/organization/organization.js +16 -0
  68. package/dist/schemas/organization/subscription.js +17 -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.d.ts +10 -23
  76. package/dist/schemas/scraper/scrape-payload.js +21 -0
  77. package/dist/schemas/scraper/scrape-result.d.ts +1 -7
  78. package/dist/schemas/scraper/scrape-result.js +23 -0
  79. package/dist/schemas/shared.js +19 -0
  80. package/dist/schemas/tier/index.d.ts +119 -0
  81. package/dist/schemas/time-filter/index.js +6 -0
  82. package/dist/schemas/transaction/index.js +17 -0
  83. package/dist/schemas/usage/index.js +18 -0
  84. package/dist/schemas/user/index.js +52 -0
  85. package/dist/types/account/account-status.d.ts +3 -0
  86. package/dist/types/account/account-status.js +1 -0
  87. package/dist/types/account/bidder-account.d.ts +7 -0
  88. package/dist/types/account/bidder-account.js +1 -0
  89. package/dist/types/account/index.d.ts +3 -0
  90. package/dist/types/account/index.js +3 -0
  91. package/dist/types/account/scraper-account.d.ts +5 -0
  92. package/dist/types/account/scraper-account.js +1 -0
  93. package/dist/types/ai/ai-config.d.ts +6 -0
  94. package/dist/types/ai/ai-config.js +1 -0
  95. package/dist/types/ai/index.d.ts +3 -0
  96. package/dist/types/ai/index.js +3 -0
  97. package/dist/types/ai/proposal.d.ts +10 -0
  98. package/dist/types/ai/proposal.js +1 -0
  99. package/dist/types/ai/suitability.d.ts +6 -0
  100. package/dist/types/ai/suitability.js +1 -0
  101. package/dist/types/bid/bid-result.d.ts +5 -0
  102. package/dist/types/bid/bid-result.js +1 -0
  103. package/dist/types/bid/bid.d.ts +9 -0
  104. package/dist/types/bid/bid.js +1 -0
  105. package/dist/types/bid/index.d.ts +2 -0
  106. package/dist/types/bid/index.js +2 -0
  107. package/dist/types/campaign/campaign-analytics.d.ts +7 -0
  108. package/dist/types/campaign/campaign-analytics.js +1 -0
  109. package/dist/types/campaign/campaign-expenses.d.ts +3 -0
  110. package/dist/types/campaign/campaign-expenses.js +1 -0
  111. package/dist/types/campaign/campaign-insights.js +1 -0
  112. package/dist/types/campaign/campaign-integrations.d.ts +6 -0
  113. package/dist/types/campaign/campaign-integrations.js +1 -0
  114. package/dist/types/campaign/campaign-job-count.d.ts +4 -0
  115. package/dist/types/campaign/campaign-job-count.js +1 -0
  116. package/dist/types/campaign/campaign.js +1 -0
  117. package/dist/types/campaign/index.js +6 -0
  118. package/dist/types/chat-message/chat-message.d.ts +4 -0
  119. package/dist/types/chat-message/chat-message.js +1 -0
  120. package/dist/types/chat-message/index.d.ts +1 -0
  121. package/dist/types/chat-message/index.js +1 -0
  122. package/dist/types/config/agency-config.d.ts +4 -0
  123. package/dist/types/config/agency-config.js +1 -0
  124. package/dist/types/config/index.d.ts +1 -0
  125. package/dist/types/config/index.js +1 -0
  126. package/dist/types/index.d.ts +15 -0
  127. package/dist/types/index.js +15 -0
  128. package/dist/types/job/index.d.ts +48 -0
  129. package/dist/types/job/index.js +3 -0
  130. package/dist/types/job/job-note.d.ts +10 -0
  131. package/dist/types/job/job-note.js +1 -0
  132. package/dist/types/job/job-status.d.ts +5 -0
  133. package/dist/types/job/job-status.js +9 -0
  134. package/dist/types/job/nuxt.d.ts +4 -0
  135. package/dist/types/job/nuxt.js +1 -0
  136. package/dist/types/job-filters/index.d.ts +1 -0
  137. package/dist/types/job-filters/index.js +1 -0
  138. package/dist/types/job-filters/job-filters.d.ts +4 -0
  139. package/dist/types/job-filters/job-filters.js +1 -0
  140. package/dist/types/logger/index.d.ts +1 -0
  141. package/dist/types/logger/index.js +1 -0
  142. package/dist/types/logger/log-event.js +1 -0
  143. package/dist/types/saved-search/index.d.ts +6 -0
  144. package/dist/types/saved-search/index.js +1 -0
  145. package/dist/types/scraper/index.d.ts +2 -0
  146. package/dist/types/scraper/index.js +2 -0
  147. package/dist/types/scraper/scrape-payload.d.ts +10 -0
  148. package/dist/types/scraper/scrape-payload.js +1 -0
  149. package/dist/types/scraper/scrape-result.d.ts +8 -0
  150. package/dist/types/scraper/scrape-result.js +1 -0
  151. package/dist/types/shared.d.ts +8 -0
  152. package/dist/types/shared.js +1 -0
  153. package/dist/types/time-filter/index.d.ts +3 -0
  154. package/dist/types/time-filter/index.js +1 -0
  155. package/dist/types/transaction/index.d.ts +4 -0
  156. package/dist/types/transaction/index.js +1 -0
  157. package/dist/types/usage/index.d.ts +6 -0
  158. package/dist/types/usage/index.js +1 -0
  159. package/dist/types/user/index.d.ts +15 -0
  160. package/dist/types/user/index.js +1 -0
  161. package/dist/utils/index.js +1 -0
  162. package/dist/utils/try-catch.js +10 -0
  163. package/package.json +1 -1
@@ -11334,13 +11334,13 @@ const externalProxySchema = proxySchema.omit({
11334
11334
  const proxyAvailableReplacementsSchema = z.record(proxyProviderSchema, z.number());
11335
11335
 
11336
11336
  const bidderAccountProvider = z.enum([
11337
- "user-provided",
11338
- "lancer-provided",
11337
+ 'user-provided',
11338
+ 'lancer-provided',
11339
11339
  ]);
11340
11340
  const bidderAccountCredentialsStatus = z.enum([
11341
- "pending_verification",
11342
- "verified",
11343
- "invalid",
11341
+ 'pending_verification',
11342
+ 'verified',
11343
+ 'invalid',
11344
11344
  ]);
11345
11345
  const bidderAccountAgencySchema = z.object({
11346
11346
  name: z.string(),
@@ -11968,29 +11968,21 @@ const jobListingSchema = objectType({
11968
11968
 
11969
11969
  const scraperAccountSchema = z.object({
11970
11970
  id: z.string(),
11971
+ region: regionEnum,
11971
11972
  email: z.string().email(),
11972
11973
  password: z.string(),
11973
- cookies: z.record(z.string(), z.string()),
11974
- proxy_credentials: z.string(),
11975
- region: regionEnum,
11976
- isActive: z.boolean(),
11977
- lastUsed: z.number(),
11978
- status: accountStatusSchema,
11979
- verified: z.boolean(),
11980
- errors: z.array(z.object({
11981
- errorMessage: z.string(),
11982
- timestamp: z.number(),
11983
- screenshotUrl: z.string(),
11984
- htmlUrl: z.string(),
11985
- })),
11974
+ securityQuestionAnswer: z.string().nullable(),
11975
+ lastUsed: z.number().nullable(),
11976
+ multiloginProfileId: z.string().nullable(),
11977
+ proxyId: z.string().nullable(),
11978
+ createdAt: z.number(),
11979
+ updatedAt: z.number(),
11986
11980
  });
11987
- const createScraperAccountSchema = scraperAccountSchema.pick({
11988
- email: true,
11989
- password: true,
11990
- proxy_credentials: true,
11991
- region: true,
11992
- verified: true,
11993
- isActive: true,
11981
+ const createScraperAccountSchema = scraperAccountSchema.omit({
11982
+ id: true,
11983
+ lastUsed: true,
11984
+ createdAt: true,
11985
+ updatedAt: true,
11994
11986
  });
11995
11987
  const updateScraperAccountSchema = scraperAccountSchema
11996
11988
  .omit({
@@ -13007,15 +12999,9 @@ const savedSearchSchema = objectType({
13007
12999
 
13008
13000
  const scrapePayloadSchema = objectType({
13009
13001
  latestJobsUrls: arrayType(stringType()),
13010
- cookies: arrayType(anyType()),
13011
- username: stringType(),
13012
- password: stringType(),
13013
13002
  });
13014
13003
  const scrapeUserProfileRequestSchema = objectType({
13015
13004
  profileUrl: stringType(),
13016
- cookies: arrayType(anyType()),
13017
- username: stringType(),
13018
- password: stringType(),
13019
13005
  });
13020
13006
  const scrapeJobPayloadSchema = objectType({
13021
13007
  listing: jobListingSchema,
@@ -13027,6 +13013,7 @@ const scrapeJobActivityPayloadSchema = objectType({
13027
13013
  const checkLeadStatusPayloadSchema = objectType({
13028
13014
  userId: stringType(),
13029
13015
  campaignId: stringType(),
13016
+ tmp: stringType(),
13030
13017
  organization: organizationSchema,
13031
13018
  lead: leadSchema,
13032
13019
  bidder: bidderAccountSchema,
@@ -13035,14 +13022,12 @@ const checkLeadStatusPayloadSchema = objectType({
13035
13022
 
13036
13023
  const scrapeResultSchema = objectType({
13037
13024
  jobs: arrayType(upworkJobSchema),
13038
- cookies: arrayType(anyType()),
13039
13025
  region: regionSchema,
13040
13026
  usAccountCookies: arrayType(anyType()).optional(),
13041
13027
  ukAccountCookies: arrayType(anyType()).optional(),
13042
13028
  });
13043
13029
  const scrapeFeedResultSchema = objectType({
13044
13030
  listings: arrayType(jobListingSchema),
13045
- cookies: arrayType(anyType()),
13046
13031
  region: regionSchema,
13047
13032
  usAccountCookies: arrayType(anyType()).optional(),
13048
13033
  ukAccountCookies: arrayType(anyType()).optional(),
@@ -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;