lancer-shared 1.2.19 → 1.2.20
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 +22 -8
- package/dist/constants/collections.js +14 -0
- package/dist/constants/common-questions.js +57 -0
- package/dist/constants/index.d.ts +1 -1
- package/dist/constants/index.js +18 -0
- package/dist/constants/invoice.d.ts +2 -0
- package/dist/constants/job-filter-options.js +265 -0
- package/dist/constants/job-status.js +21 -0
- package/dist/constants/mappings/countryMapping.js +120 -0
- package/dist/constants/mappings/regionMapping.js +240 -0
- package/dist/constants/routes.js +116 -0
- package/dist/constants/upwork-accounts.js +18 -0
- package/dist/index.js +4 -0
- package/dist/schemas/account/account-status.js +8 -0
- package/dist/schemas/account/bidder-account.js +35 -0
- package/dist/schemas/account/index.js +3 -0
- package/dist/schemas/account/scraper-account.js +34 -0
- package/dist/schemas/ai/ai-config.d.ts +36 -0
- package/dist/schemas/ai/ai-config.js +9 -0
- package/dist/schemas/ai/index.d.ts +3 -0
- package/dist/schemas/ai/index.js +3 -0
- package/dist/schemas/ai/proposal.d.ts +82 -0
- package/dist/schemas/ai/proposal.js +13 -0
- package/dist/schemas/ai/suitability.d.ts +37 -0
- package/dist/schemas/ai/suitability.js +14 -0
- package/dist/schemas/bid/bid-result.js +11 -0
- package/dist/schemas/bid/bid.js +35 -0
- package/dist/schemas/bid/index.js +2 -0
- package/dist/schemas/campaign/campaign-ai-metrics.js +6 -0
- package/dist/schemas/campaign/campaign-analytics.js +42 -0
- package/dist/schemas/campaign/campaign-expenses.js +6 -0
- package/dist/schemas/campaign/campaign-insights.js +31 -0
- package/dist/schemas/campaign/campaign-integrations.js +13 -0
- package/dist/schemas/campaign/campaign-job-count.js +3 -0
- package/dist/schemas/campaign/campaign.js +41 -0
- package/dist/schemas/campaign/index.js +7 -0
- package/dist/schemas/chat-message/chat-message.js +10 -0
- package/dist/schemas/chat-message/index.js +1 -0
- package/dist/schemas/config/agency-config.js +7 -0
- package/dist/schemas/config/index.js +1 -0
- package/dist/schemas/event/index.d.ts +58 -0
- package/dist/schemas/index.js +17 -0
- package/dist/schemas/invoice/index.d.ts +8 -0
- package/dist/schemas/job-filters/index.js +1 -0
- package/dist/schemas/job-filters/job-filters.js +84 -0
- package/dist/schemas/lead/index.js +173 -0
- package/dist/schemas/lead/lead-note.js +27 -0
- package/dist/schemas/lead/lead-status.js +23 -0
- package/dist/schemas/lead/nuxt.js +287 -0
- package/dist/schemas/logger/index.js +1 -0
- package/dist/schemas/logger/log-event.js +117 -0
- package/dist/schemas/organization/index.d.ts +68 -1
- package/dist/schemas/organization/index.js +70 -0
- package/dist/schemas/organization/member.js +7 -0
- package/dist/schemas/organization/organization.d.ts +118 -22
- package/dist/schemas/organization/organization.js +16 -0
- package/dist/schemas/organization/subscription.d.ts +47 -0
- package/dist/schemas/organization/subscription.js +17 -0
- package/dist/schemas/plan/index.d.ts +36 -3
- package/dist/schemas/proxy/index.js +3 -0
- package/dist/schemas/proxy/proxy-available-replacements.js +3 -0
- package/dist/schemas/proxy/proxy-country.js +249 -0
- package/dist/schemas/proxy/proxy.js +29 -0
- package/dist/schemas/saved-search/index.js +9 -0
- package/dist/schemas/scraper/index.js +2 -0
- package/dist/schemas/scraper/scrape-payload.d.ts +49 -0
- package/dist/schemas/scraper/scrape-payload.js +21 -0
- package/dist/schemas/scraper/scrape-result.js +23 -0
- package/dist/schemas/shared.js +19 -0
- package/dist/schemas/tier/index.d.ts +119 -0
- package/dist/schemas/time-filter/index.js +6 -0
- package/dist/schemas/transaction/index.js +17 -0
- package/dist/schemas/usage/index.js +18 -0
- package/dist/schemas/user/index.js +52 -0
- package/dist/types/account/account-status.js +1 -0
- package/dist/types/account/bidder-account.js +1 -0
- package/dist/types/account/index.js +3 -0
- package/dist/types/account/scraper-account.js +1 -0
- package/dist/types/ai/ai-config.d.ts +6 -0
- package/dist/types/ai/ai-config.js +1 -0
- package/dist/types/ai/index.d.ts +3 -0
- package/dist/types/ai/index.js +3 -0
- package/dist/types/ai/proposal.d.ts +10 -0
- package/dist/types/ai/proposal.js +1 -0
- package/dist/types/ai/suitability.d.ts +6 -0
- package/dist/types/ai/suitability.js +1 -0
- package/dist/types/bid/bid-result.js +1 -0
- package/dist/types/bid/bid.js +1 -0
- package/dist/types/bid/index.js +2 -0
- package/dist/types/campaign/campaign-analytics.js +1 -0
- package/dist/types/campaign/campaign-expenses.js +1 -0
- package/dist/types/campaign/campaign-insights.js +1 -0
- package/dist/types/campaign/campaign-integrations.js +1 -0
- package/dist/types/campaign/campaign-job-count.js +1 -0
- package/dist/types/campaign/campaign.js +1 -0
- package/dist/types/campaign/index.js +6 -0
- package/dist/types/chat-message/chat-message.js +1 -0
- package/dist/types/chat-message/index.js +1 -0
- package/dist/types/config/agency-config.js +1 -0
- package/dist/types/config/index.js +1 -0
- package/dist/types/index.js +15 -0
- package/dist/types/job/index.js +3 -0
- package/dist/types/job/job-note.js +1 -0
- package/dist/types/job/job-status.js +9 -0
- package/dist/types/job/nuxt.js +1 -0
- package/dist/types/job-filters/index.js +1 -0
- package/dist/types/job-filters/job-filters.js +1 -0
- package/dist/types/logger/index.js +1 -0
- package/dist/types/logger/log-event.js +1 -0
- package/dist/types/saved-search/index.js +1 -0
- package/dist/types/scraper/index.js +2 -0
- package/dist/types/scraper/scrape-payload.js +1 -0
- package/dist/types/scraper/scrape-result.js +1 -0
- package/dist/types/shared.js +1 -0
- package/dist/types/time-filter/index.js +1 -0
- package/dist/types/transaction/index.js +1 -0
- package/dist/types/usage/index.js +1 -0
- package/dist/types/user/index.js +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/try-catch.js +10 -0
- package/package.json +1 -1
package/dist/bundle.cjs.js
CHANGED
|
@@ -5501,9 +5501,14 @@ const subscriptionStripeMetadataItemSchema = objectType({
|
|
|
5501
5501
|
const subscriptionStripeMetadataSchema = objectType({
|
|
5502
5502
|
id: stringType(),
|
|
5503
5503
|
items: arrayType(subscriptionStripeMetadataItemSchema),
|
|
5504
|
+
invoice: objectType({
|
|
5505
|
+
id: stringType(),
|
|
5506
|
+
hosted_invoice_url: stringType().nullable(),
|
|
5507
|
+
}),
|
|
5504
5508
|
});
|
|
5505
5509
|
const subscriptionSchema = objectType({
|
|
5506
5510
|
planId: stringType(),
|
|
5511
|
+
pendingPlanId: stringType().nullable(),
|
|
5507
5512
|
status: subscriptionStatusEnum,
|
|
5508
5513
|
startedAt: numberType(),
|
|
5509
5514
|
currentPeriodEnd: numberType(),
|
|
@@ -5826,6 +5831,7 @@ const invoiceStripeMetadataLineSchema = objectType({
|
|
|
5826
5831
|
});
|
|
5827
5832
|
const invoiceStripeMetadataSchema = objectType({
|
|
5828
5833
|
id: stringType(),
|
|
5834
|
+
status: z.enum(["draft", "open", "paid", "uncollectible", "void"]),
|
|
5829
5835
|
subscription_id: stringType(),
|
|
5830
5836
|
hosted_invoice_url: stringType(),
|
|
5831
5837
|
lines: arrayType(invoiceStripeMetadataLineSchema),
|
|
@@ -5869,13 +5875,19 @@ const planStripeMetadataSchema = objectType({
|
|
|
5869
5875
|
lookup_key: stringType(),
|
|
5870
5876
|
})),
|
|
5871
5877
|
});
|
|
5878
|
+
const planFeatureSchema = objectType({
|
|
5879
|
+
id: stringType(),
|
|
5880
|
+
description: stringType(),
|
|
5881
|
+
});
|
|
5872
5882
|
const planSchema = objectType({
|
|
5873
5883
|
id: stringType().regex(/^prod_[a-zA-Z0-9]+$/),
|
|
5874
5884
|
name: stringType(),
|
|
5875
5885
|
slug: stringType().regex(/^[a-z0-9-]+$/),
|
|
5886
|
+
description: stringType(),
|
|
5887
|
+
price: numberType(),
|
|
5876
5888
|
stripe: planStripeMetadataSchema,
|
|
5877
5889
|
version: numberType().int().positive(),
|
|
5878
|
-
features: arrayType(
|
|
5890
|
+
features: arrayType(planFeatureSchema),
|
|
5879
5891
|
sortOrder: numberType().int().positive(),
|
|
5880
5892
|
isActive: booleanType(),
|
|
5881
5893
|
createdAt: numberType(),
|
|
@@ -6362,6 +6374,13 @@ const commonQuestions = [
|
|
|
6362
6374
|
},
|
|
6363
6375
|
];
|
|
6364
6376
|
|
|
6377
|
+
const invoiceStatusNames = {
|
|
6378
|
+
open: "Open",
|
|
6379
|
+
paid: "Paid",
|
|
6380
|
+
past_due: "Past Due",
|
|
6381
|
+
payment_failed: "Payment Failed",
|
|
6382
|
+
};
|
|
6383
|
+
|
|
6365
6384
|
const jobStatusOrder = [
|
|
6366
6385
|
"leads",
|
|
6367
6386
|
"contacted",
|
|
@@ -12664,12 +12683,6 @@ const bidderAccountProviderDisplayMap = {
|
|
|
12664
12683
|
"user-provided": "User Provided",
|
|
12665
12684
|
};
|
|
12666
12685
|
|
|
12667
|
-
const creditDeductionAmountMap = {
|
|
12668
|
-
suitabilityComplete: 1,
|
|
12669
|
-
proposalComplete: 1,
|
|
12670
|
-
biddingComplete: 5,
|
|
12671
|
-
};
|
|
12672
|
-
|
|
12673
12686
|
// Main wrapper function
|
|
12674
12687
|
async function tryCatch(promise) {
|
|
12675
12688
|
try {
|
|
@@ -13061,7 +13074,6 @@ exports.createBidderAccountSchema = createBidderAccountSchema;
|
|
|
13061
13074
|
exports.createCampaignSchema = createCampaignSchema;
|
|
13062
13075
|
exports.createOrganizationSchema = createOrganizationSchema;
|
|
13063
13076
|
exports.createScraperAccountSchema = createScraperAccountSchema;
|
|
13064
|
-
exports.creditDeductionAmountMap = creditDeductionAmountMap;
|
|
13065
13077
|
exports.dailyUsageSchema = dailyUsageSchema;
|
|
13066
13078
|
exports.dateSchema = dateSchema;
|
|
13067
13079
|
exports.employmentHistorySchema = employmentHistorySchema;
|
|
@@ -13085,6 +13097,7 @@ exports.getRouteWithoutAdminPrefix = getRouteWithoutAdminPrefix;
|
|
|
13085
13097
|
exports.invoiceLineItemSchema = invoiceLineItemSchema;
|
|
13086
13098
|
exports.invoiceSchema = invoiceSchema;
|
|
13087
13099
|
exports.invoiceStatusEnum = invoiceStatusEnum;
|
|
13100
|
+
exports.invoiceStatusNames = invoiceStatusNames;
|
|
13088
13101
|
exports.invoiceStripeMetadataLineSchema = invoiceStripeMetadataLineSchema;
|
|
13089
13102
|
exports.invoiceStripeMetadataSchema = invoiceStripeMetadataSchema;
|
|
13090
13103
|
exports.isNumeric = isNumeric;
|
|
@@ -13122,6 +13135,7 @@ exports.organizationTypeSchema = organizationTypeSchema;
|
|
|
13122
13135
|
exports.passwordSchema = passwordSchema;
|
|
13123
13136
|
exports.paymentTypeEnum = paymentTypeEnum;
|
|
13124
13137
|
exports.periodUsageSchema = periodUsageSchema;
|
|
13138
|
+
exports.planFeatureSchema = planFeatureSchema;
|
|
13125
13139
|
exports.planSchema = planSchema;
|
|
13126
13140
|
exports.planStripeMetadataSchema = planStripeMetadataSchema;
|
|
13127
13141
|
exports.portfolioSchema = portfolioSchema;
|
|
@@ -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
|
+
];
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export * from "./common-questions";
|
|
2
|
+
export * from "./invoice";
|
|
2
3
|
export * from "./job-filter-options";
|
|
3
4
|
export * from "./job-status";
|
|
4
5
|
export { default as countryMapping } from "./mappings/countryMapping";
|
|
5
6
|
export { default as regionMapping } from "./mappings/regionMapping";
|
|
6
7
|
export * from "./routes";
|
|
7
8
|
export * from "./upwork-accounts";
|
|
8
|
-
export * from "./organization";
|
|
@@ -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;
|