lancer-shared 1.2.16 → 1.2.18

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 (124) hide show
  1. package/dist/bundle.cjs.js +56 -82
  2. package/dist/constants/routes.d.ts +2 -3
  3. package/dist/schemas/agent/index.d.ts +0 -11
  4. package/dist/schemas/logger/log-event.d.ts +4 -4
  5. package/dist/schemas/organization/index.d.ts +0 -51
  6. package/dist/schemas/organization/organization.d.ts +22 -118
  7. package/dist/schemas/scraper/index.d.ts +3 -2
  8. package/dist/schemas/scraper/scrape-payload.d.ts +2 -2
  9. package/dist/schemas/scraper/scrape-result.d.ts +0 -123
  10. package/dist/schemas/scraper/upwork-profile.d.ts +109 -0
  11. package/dist/schemas/time-filter/index.d.ts +1 -1
  12. package/dist/schemas/user/index.d.ts +0 -75
  13. package/package.json +1 -1
  14. package/dist/constants/collections.js +0 -14
  15. package/dist/constants/common-questions.js +0 -57
  16. package/dist/constants/index.js +0 -18
  17. package/dist/constants/job-filter-options.js +0 -265
  18. package/dist/constants/job-status.js +0 -21
  19. package/dist/constants/mappings/countryMapping.js +0 -120
  20. package/dist/constants/mappings/regionMapping.js +0 -240
  21. package/dist/constants/routes.js +0 -116
  22. package/dist/constants/upwork-accounts.js +0 -18
  23. package/dist/index.js +0 -4
  24. package/dist/schemas/account/account-status.js +0 -8
  25. package/dist/schemas/account/bidder-account.js +0 -35
  26. package/dist/schemas/account/index.js +0 -3
  27. package/dist/schemas/account/scraper-account.js +0 -34
  28. package/dist/schemas/ai/ai-config.d.ts +0 -36
  29. package/dist/schemas/ai/ai-config.js +0 -9
  30. package/dist/schemas/ai/index.d.ts +0 -3
  31. package/dist/schemas/ai/index.js +0 -3
  32. package/dist/schemas/ai/proposal.d.ts +0 -82
  33. package/dist/schemas/ai/proposal.js +0 -13
  34. package/dist/schemas/ai/suitability.d.ts +0 -37
  35. package/dist/schemas/ai/suitability.js +0 -14
  36. package/dist/schemas/bid/bid-result.js +0 -11
  37. package/dist/schemas/bid/bid.js +0 -35
  38. package/dist/schemas/bid/index.js +0 -2
  39. package/dist/schemas/campaign/campaign-ai-metrics.js +0 -6
  40. package/dist/schemas/campaign/campaign-analytics.js +0 -42
  41. package/dist/schemas/campaign/campaign-expenses.js +0 -6
  42. package/dist/schemas/campaign/campaign-insights.js +0 -31
  43. package/dist/schemas/campaign/campaign-integrations.js +0 -13
  44. package/dist/schemas/campaign/campaign-job-count.js +0 -3
  45. package/dist/schemas/campaign/campaign.js +0 -41
  46. package/dist/schemas/campaign/index.js +0 -7
  47. package/dist/schemas/chat-message/chat-message.js +0 -10
  48. package/dist/schemas/chat-message/index.js +0 -1
  49. package/dist/schemas/config/agency-config.js +0 -7
  50. package/dist/schemas/config/index.js +0 -1
  51. package/dist/schemas/event/index.d.ts +0 -58
  52. package/dist/schemas/index.js +0 -17
  53. package/dist/schemas/job-filters/index.js +0 -1
  54. package/dist/schemas/job-filters/job-filters.js +0 -84
  55. package/dist/schemas/lead/index.js +0 -173
  56. package/dist/schemas/lead/lead-note.js +0 -27
  57. package/dist/schemas/lead/lead-status.js +0 -23
  58. package/dist/schemas/lead/nuxt.js +0 -287
  59. package/dist/schemas/logger/index.js +0 -1
  60. package/dist/schemas/logger/log-event.js +0 -117
  61. package/dist/schemas/organization/index.js +0 -70
  62. package/dist/schemas/organization/member.js +0 -7
  63. package/dist/schemas/organization/organization.js +0 -16
  64. package/dist/schemas/organization/subscription.js +0 -17
  65. package/dist/schemas/proxy/index.js +0 -3
  66. package/dist/schemas/proxy/proxy-available-replacements.js +0 -3
  67. package/dist/schemas/proxy/proxy-country.js +0 -249
  68. package/dist/schemas/proxy/proxy.js +0 -29
  69. package/dist/schemas/saved-search/index.js +0 -9
  70. package/dist/schemas/scraper/index.js +0 -2
  71. package/dist/schemas/scraper/scrape-payload.js +0 -21
  72. package/dist/schemas/scraper/scrape-result.js +0 -23
  73. package/dist/schemas/shared.js +0 -19
  74. package/dist/schemas/tier/index.d.ts +0 -119
  75. package/dist/schemas/time-filter/index.js +0 -6
  76. package/dist/schemas/transaction/index.js +0 -17
  77. package/dist/schemas/usage/index.js +0 -18
  78. package/dist/schemas/user/index.js +0 -52
  79. package/dist/types/account/account-status.js +0 -1
  80. package/dist/types/account/bidder-account.js +0 -1
  81. package/dist/types/account/index.js +0 -3
  82. package/dist/types/account/scraper-account.js +0 -1
  83. package/dist/types/ai/ai-config.d.ts +0 -6
  84. package/dist/types/ai/ai-config.js +0 -1
  85. package/dist/types/ai/index.d.ts +0 -3
  86. package/dist/types/ai/index.js +0 -3
  87. package/dist/types/ai/proposal.d.ts +0 -10
  88. package/dist/types/ai/proposal.js +0 -1
  89. package/dist/types/ai/suitability.d.ts +0 -6
  90. package/dist/types/ai/suitability.js +0 -1
  91. package/dist/types/bid/bid-result.js +0 -1
  92. package/dist/types/bid/bid.js +0 -1
  93. package/dist/types/bid/index.js +0 -2
  94. package/dist/types/campaign/campaign-analytics.js +0 -1
  95. package/dist/types/campaign/campaign-expenses.js +0 -1
  96. package/dist/types/campaign/campaign-insights.js +0 -1
  97. package/dist/types/campaign/campaign-integrations.js +0 -1
  98. package/dist/types/campaign/campaign-job-count.js +0 -1
  99. package/dist/types/campaign/campaign.js +0 -1
  100. package/dist/types/campaign/index.js +0 -6
  101. package/dist/types/chat-message/chat-message.js +0 -1
  102. package/dist/types/chat-message/index.js +0 -1
  103. package/dist/types/config/agency-config.js +0 -1
  104. package/dist/types/config/index.js +0 -1
  105. package/dist/types/index.js +0 -15
  106. package/dist/types/job/index.js +0 -3
  107. package/dist/types/job/job-note.js +0 -1
  108. package/dist/types/job/job-status.js +0 -9
  109. package/dist/types/job/nuxt.js +0 -1
  110. package/dist/types/job-filters/index.js +0 -1
  111. package/dist/types/job-filters/job-filters.js +0 -1
  112. package/dist/types/logger/index.js +0 -1
  113. package/dist/types/logger/log-event.js +0 -1
  114. package/dist/types/saved-search/index.js +0 -1
  115. package/dist/types/scraper/index.js +0 -2
  116. package/dist/types/scraper/scrape-payload.js +0 -1
  117. package/dist/types/scraper/scrape-result.js +0 -1
  118. package/dist/types/shared.js +0 -1
  119. package/dist/types/time-filter/index.js +0 -1
  120. package/dist/types/transaction/index.js +0 -1
  121. package/dist/types/usage/index.js +0 -1
  122. package/dist/types/user/index.js +0 -1
  123. package/dist/utils/index.js +0 -1
  124. package/dist/utils/try-catch.js +0 -10
@@ -1,116 +0,0 @@
1
- export const ROUTES = {
2
- AUTH: {
3
- BASE: "auth",
4
- REGISTER: "auth/register",
5
- },
6
- EVENTS: {
7
- BASE: "events",
8
- BY_ID: (id) => `events/${id}`,
9
- },
10
- CAMPAIGNS: {
11
- BASE: "campaigns",
12
- BY_ID: (id) => `campaigns/${id}`,
13
- LEADS: {
14
- BASE: (campaignId) => `campaigns/${campaignId}/leads`,
15
- BY_ID: (campaignId, leadId) => `campaigns/${campaignId}/leads/${leadId}`,
16
- SYNC: (campaignId) => `campaigns/${campaignId}/leads/sync`,
17
- NOTES: (campaignId, leadId, noteId) => `campaigns/${campaignId}/leads/${leadId}/notes/${noteId}`,
18
- SEARCH: (campaignId) => `campaigns/${campaignId}/leads/search`,
19
- },
20
- INSIGHTS: (campaignId) => `campaigns/${campaignId}/insights`,
21
- AI_METRICS: (campaignId) => `campaigns/${campaignId}/ai-metrics`,
22
- CONNECT_SAVED: (campaignId) => `campaigns/${campaignId}/get-connects-saved`,
23
- ANALYTICS: (campaignId, timeFilter) => `campaigns/${campaignId}/analytics?createdAt=${timeFilter}`,
24
- ACTIVITY: (campaignId, status, offset, limit) => `campaigns/${campaignId}/activity?status=${status}&offset=${offset}&limit=${limit}`,
25
- INTEGRATIONS: {
26
- BASE: (campaignId) => `campaigns/${campaignId}/integrations`,
27
- TEST_SUITABILITY_WEBHOOK: (campaignId, integrationId) => `campaigns/${campaignId}/integrations/${integrationId}/suitability/test-webhook`,
28
- TEST_PROPOSAL_WEBHOOK: (campaignId, integrationId) => `campaigns/${campaignId}/integrations/${integrationId}/proposal/test-webhook`,
29
- SUITABILITY_NOTIFICATION: (campaignId, leadId) => `campaigns/${campaignId}/integrations/suitability/notify/${leadId}`,
30
- PROPOSAL_SENT_NOTIFICATION: (campaignId, leadId) => `campaigns/${campaignId}/integrations/proposal-sent/notify/${leadId}`,
31
- SLACK: {
32
- BASE: (campaignId) => `campaigns/${campaignId}/integrations/slack`,
33
- TEST_SUITABILITY_WEBHOOK: (campaignId) => `campaigns/${campaignId}/integrations/slack/suitability/test-webhook`,
34
- TEST_PROPOSAL_WEBHOOK: (campaignId) => `campaigns/${campaignId}/integrations/slack/proposal/test-webhook`,
35
- },
36
- DISCORD: {
37
- BASE: (campaignId) => `campaigns/${campaignId}/integrations/discord`,
38
- TEST_SUITABILITY_WEBHOOK: (campaignId) => `campaigns/${campaignId}/integrations/discord/suitability/test-webhook`,
39
- TEST_PROPOSAL_WEBHOOK: (campaignId) => `campaigns/${campaignId}/integrations/discord/proposal/test-webhook`,
40
- },
41
- },
42
- },
43
- JOBS: {
44
- BASE: "jobs",
45
- BY_ID: (id) => `jobs/${id}`,
46
- BY_URL: (url) => `jobs/${encodeURIComponent(url)}`,
47
- IMPORT: "jobs/import",
48
- FILTER_OPTIONS: "jobs/filter-options",
49
- TOTAL_JOBS: "jobs/total-jobs",
50
- GET_JOB_TITLE: (jobId) => `jobs/get-job-title/${jobId}`,
51
- SEARCH: "jobs/search",
52
- },
53
- USERS: {
54
- BASE: "users",
55
- BY_ID: (id) => `users/${id}`,
56
- },
57
- AI_CONFIG: {
58
- BASE: "ai-config",
59
- GENERATE_KNOWLEDGE_BASE: "ai-config/generate-knowledge-base",
60
- },
61
- COOKIES: {
62
- BASE: "cookies",
63
- SCRAPE: "cookies/scrape-cookies",
64
- },
65
- SCRAPING: {
66
- BASE: "scraping",
67
- START_SCRAPING: "scraping/start",
68
- START_WORLDWIDE_SCRAPING: "scraping/start-worldwide",
69
- START_US_SCRAPING: "scraping/start-us",
70
- START_UK_SCRAPING: "scraping/start-uk",
71
- UPDATE_ACTIVITY_4H_WORLDWIDE: "scraping/update-activity/4h",
72
- UPDATE_ACTIVITY_4H_UK: "scraping/update-activity/4h/uk",
73
- UPDATE_ACTIVITY_4H_US: "scraping/update-activity/4h/us",
74
- UPDATE_ACTIVITY_24H_WORLDWIDE: "scraping/update-activity/24h",
75
- UPDATE_ACTIVITY_24H_UK: "scraping/update-activity/24h/uk",
76
- UPDATE_ACTIVITY_24H_US: "scraping/update-activity/24h/us",
77
- SCRAPE_FEED_WORLDWIDE: "scraping/feed-worldwide",
78
- SCRAPE_FEED_UK: "scraping/feed-uk",
79
- SCRAPE_FEED_US: "scraping/feed-us",
80
- SCRAPE_JOB: "scraping/job",
81
- SCRAPE_JOB_ACTIVITY: "scraping/job-activity",
82
- },
83
- ADMIN: {
84
- BASE: "admin",
85
- BIDDER_ACCOUNTS: {
86
- BASE: "admin/bidder-accounts",
87
- BY_ID: (id) => `admin/bidder-accounts/${id}`,
88
- BY_PROVIDER: (provider) => `admin/bidder-accounts/${provider}`,
89
- BY_PROVIDER_AND_ID: (provider, id) => `admin/bidder-accounts/${provider}/${id}`,
90
- },
91
- SCRAPER_ACCOUNTS: {
92
- BASE: "admin/scraper-accounts",
93
- BY_ID: (id) => `admin/scraper-accounts/${id}`,
94
- BY_PROVIDER: (provider) => `admin/scraper-accounts/${provider}`,
95
- BY_PROVIDER_AND_ID: (provider, id) => `admin/scraper-accounts/${provider}/${id}`,
96
- },
97
- PROXIES: {
98
- BASE: "admin/proxies",
99
- BY_ID: (id) => `admin/proxies/${id}`,
100
- REPLACE_PROXY: (id) => `admin/proxies/${id}/replace`,
101
- SYNC: "admin/proxies/sync",
102
- },
103
- },
104
- BID: {
105
- BASE: "bid",
106
- BID_ON_JOB: (userId, campaignId, leadId) => `bid/${userId}/${campaignId}/${leadId}`,
107
- },
108
- };
109
- // Helper function to build route with parameters
110
- export const buildRoute = (route, params = {}) => {
111
- let builtRoute = route;
112
- Object.entries(params).forEach(([key, value]) => {
113
- builtRoute = builtRoute.replace(`:${key}`, value);
114
- });
115
- return builtRoute;
116
- };
@@ -1,18 +0,0 @@
1
- export const accountStatusOrder = [
2
- 'verification_required',
3
- 'shadow_banned',
4
- 'healthy',
5
- 'banned',
6
- 'suspended',
7
- ];
8
- export const accountStatusDisplayMap = {
9
- verification_required: 'Verification Required',
10
- shadow_banned: 'Shadow Banned',
11
- healthy: 'Healthy',
12
- banned: 'Banned',
13
- suspended: 'Suspended',
14
- };
15
- export const bidderAccountProviderDisplayMap = {
16
- 'lancer-provided': 'Lancer Provided',
17
- 'user-provided': 'User Provided',
18
- };
package/dist/index.js DELETED
@@ -1,4 +0,0 @@
1
- export * from './schemas';
2
- export * from './types';
3
- export * from './constants';
4
- export * from './utils';
@@ -1,8 +0,0 @@
1
- import { z } from 'zod';
2
- export const accountStatusSchema = z.enum([
3
- 'verification_required',
4
- 'shadow_banned',
5
- 'healthy',
6
- 'banned',
7
- 'suspended',
8
- ]);
@@ -1,35 +0,0 @@
1
- import { z } from "zod";
2
- import { accountStatusSchema } from "./account-status";
3
- export const bidderAccountProvider = z.enum([
4
- "user-provided",
5
- "lancer-provided",
6
- ]);
7
- export const bidderAccountSchema = z.object({
8
- id: z.string(),
9
- provider: bidderAccountProvider,
10
- email: z.string().email(),
11
- password: z.string(),
12
- cookies: z.array(z.any()).nullable(),
13
- status: accountStatusSchema,
14
- verified: z.boolean(),
15
- isActive: z.boolean(),
16
- assignedOrganizations: z.array(z.string()),
17
- lastUsed: z.number().nullable(),
18
- multiLoginProfileId: z.string().nullable(),
19
- proxyId: z.string().nullable(),
20
- createdAt: z.number(),
21
- updatedAt: z.number(),
22
- });
23
- export const createBidderAccountSchema = bidderAccountSchema.pick({
24
- email: true,
25
- password: true,
26
- provider: true,
27
- status: true,
28
- verified: true,
29
- isActive: true,
30
- });
31
- export const updateBidderAccountSchema = bidderAccountSchema
32
- .omit({
33
- id: true,
34
- })
35
- .partial();
@@ -1,3 +0,0 @@
1
- export * from './account-status';
2
- export * from './bidder-account';
3
- export * from './scraper-account';
@@ -1,34 +0,0 @@
1
- import { z } from 'zod';
2
- import { accountStatusSchema } from './account-status';
3
- import { regionEnum } from '../job-filters';
4
- export const scraperAccountSchema = z.object({
5
- id: z.string(),
6
- email: z.string().email(),
7
- password: z.string(),
8
- cookies: z.record(z.string(), z.string()),
9
- proxy_credentials: z.string(),
10
- region: regionEnum,
11
- isActive: z.boolean(),
12
- lastUsed: z.number(),
13
- status: accountStatusSchema,
14
- verified: z.boolean(),
15
- errors: z.array(z.object({
16
- errorMessage: z.string(),
17
- timestamp: z.number(),
18
- screenshotUrl: z.string(),
19
- htmlUrl: z.string(),
20
- })),
21
- });
22
- export const createScraperAccountSchema = scraperAccountSchema.pick({
23
- email: true,
24
- password: true,
25
- proxy_credentials: true,
26
- region: true,
27
- verified: true,
28
- isActive: true,
29
- });
30
- export const updateScraperAccountSchema = scraperAccountSchema
31
- .omit({
32
- id: true,
33
- })
34
- .partial();
@@ -1,36 +0,0 @@
1
- import { z } from "zod";
2
- export declare const aiConfigSchema: z.ZodObject<{
3
- id: z.ZodString;
4
- suitabilityPrompt: z.ZodNullable<z.ZodString>;
5
- proposalPrompt: z.ZodNullable<z.ZodString>;
6
- questionProposalPrompt: z.ZodNullable<z.ZodString>;
7
- knowledgeBase: z.ZodNullable<z.ZodString>;
8
- }, "strip", z.ZodTypeAny, {
9
- id: string;
10
- suitabilityPrompt: string | null;
11
- proposalPrompt: string | null;
12
- questionProposalPrompt: string | null;
13
- knowledgeBase: string | null;
14
- }, {
15
- id: string;
16
- suitabilityPrompt: string | null;
17
- proposalPrompt: string | null;
18
- questionProposalPrompt: string | null;
19
- knowledgeBase: string | null;
20
- }>;
21
- export declare const updateAiConfigSchema: z.ZodObject<{
22
- suitabilityPrompt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
23
- proposalPrompt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
24
- questionProposalPrompt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
25
- knowledgeBase: z.ZodOptional<z.ZodNullable<z.ZodString>>;
26
- }, "strip", z.ZodTypeAny, {
27
- suitabilityPrompt?: string | null | undefined;
28
- proposalPrompt?: string | null | undefined;
29
- questionProposalPrompt?: string | null | undefined;
30
- knowledgeBase?: string | null | undefined;
31
- }, {
32
- suitabilityPrompt?: string | null | undefined;
33
- proposalPrompt?: string | null | undefined;
34
- questionProposalPrompt?: string | null | undefined;
35
- knowledgeBase?: string | null | undefined;
36
- }>;
@@ -1,9 +0,0 @@
1
- import { z } from "zod";
2
- export const aiConfigSchema = z.object({
3
- id: z.string(),
4
- suitabilityPrompt: z.string().nullable(),
5
- proposalPrompt: z.string().nullable(),
6
- questionProposalPrompt: z.string().nullable(),
7
- knowledgeBase: z.string().nullable(),
8
- });
9
- export const updateAiConfigSchema = aiConfigSchema.omit({ id: true }).partial();
@@ -1,3 +0,0 @@
1
- export * from './ai-config';
2
- export * from './proposal';
3
- export * from './suitability';
@@ -1,3 +0,0 @@
1
- export * from './ai-config';
2
- export * from './proposal';
3
- export * from './suitability';
@@ -1,82 +0,0 @@
1
- import { z } from "zod";
2
- export declare const questionAnswerPairSchema: z.ZodObject<{
3
- question: z.ZodString;
4
- answer: z.ZodString;
5
- }, "strip", z.ZodTypeAny, {
6
- question: string;
7
- answer: string;
8
- }, {
9
- question: string;
10
- answer: string;
11
- }>;
12
- export declare const proposalSchema: z.ZodObject<{
13
- coverLetter: z.ZodString;
14
- questionAnswerPairs: z.ZodArray<z.ZodObject<{
15
- question: z.ZodString;
16
- answer: z.ZodString;
17
- }, "strip", z.ZodTypeAny, {
18
- question: string;
19
- answer: string;
20
- }, {
21
- question: string;
22
- answer: string;
23
- }>, "many">;
24
- }, "strip", z.ZodTypeAny, {
25
- coverLetter: string;
26
- questionAnswerPairs: {
27
- question: string;
28
- answer: string;
29
- }[];
30
- }, {
31
- coverLetter: string;
32
- questionAnswerPairs: {
33
- question: string;
34
- answer: string;
35
- }[];
36
- }>;
37
- export declare const proposalResponseSchema: z.ZodArray<z.ZodObject<{
38
- modelName: z.ZodString;
39
- proposal: z.ZodObject<{
40
- coverLetter: z.ZodString;
41
- questionAnswerPairs: z.ZodArray<z.ZodObject<{
42
- question: z.ZodString;
43
- answer: z.ZodString;
44
- }, "strip", z.ZodTypeAny, {
45
- question: string;
46
- answer: string;
47
- }, {
48
- question: string;
49
- answer: string;
50
- }>, "many">;
51
- }, "strip", z.ZodTypeAny, {
52
- coverLetter: string;
53
- questionAnswerPairs: {
54
- question: string;
55
- answer: string;
56
- }[];
57
- }, {
58
- coverLetter: string;
59
- questionAnswerPairs: {
60
- question: string;
61
- answer: string;
62
- }[];
63
- }>;
64
- }, "strip", z.ZodTypeAny, {
65
- modelName: string;
66
- proposal: {
67
- coverLetter: string;
68
- questionAnswerPairs: {
69
- question: string;
70
- answer: string;
71
- }[];
72
- };
73
- }, {
74
- modelName: string;
75
- proposal: {
76
- coverLetter: string;
77
- questionAnswerPairs: {
78
- question: string;
79
- answer: string;
80
- }[];
81
- };
82
- }>, "many">;
@@ -1,13 +0,0 @@
1
- import { z } from "zod";
2
- export const questionAnswerPairSchema = z.object({
3
- question: z.string(),
4
- answer: z.string(),
5
- });
6
- export const proposalSchema = z.object({
7
- coverLetter: z.string(),
8
- questionAnswerPairs: z.array(questionAnswerPairSchema),
9
- });
10
- export const proposalResponseSchema = z.array(z.object({
11
- modelName: z.string(),
12
- proposal: proposalSchema,
13
- }));
@@ -1,37 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const suitabilitySchema: z.ZodObject<{
3
- rating: z.ZodString;
4
- reason: z.ZodString;
5
- }, "strip", z.ZodTypeAny, {
6
- rating: string;
7
- reason: string;
8
- }, {
9
- rating: string;
10
- reason: string;
11
- }>;
12
- export declare const suitabilityStatusSchema: z.ZodEnum<["completed", "pending", "failed"]>;
13
- export declare const suitabilityResponseSchema: z.ZodArray<z.ZodObject<{
14
- modelName: z.ZodString;
15
- suitability: z.ZodObject<{
16
- rating: z.ZodString;
17
- reason: z.ZodString;
18
- }, "strip", z.ZodTypeAny, {
19
- rating: string;
20
- reason: string;
21
- }, {
22
- rating: string;
23
- reason: string;
24
- }>;
25
- }, "strip", z.ZodTypeAny, {
26
- modelName: string;
27
- suitability: {
28
- rating: string;
29
- reason: string;
30
- };
31
- }, {
32
- modelName: string;
33
- suitability: {
34
- rating: string;
35
- reason: string;
36
- };
37
- }>, "many">;
@@ -1,14 +0,0 @@
1
- import { z } from 'zod';
2
- export const suitabilitySchema = z.object({
3
- rating: z.string(),
4
- reason: z.string(),
5
- });
6
- export const suitabilityStatusSchema = z.enum([
7
- 'completed',
8
- 'pending',
9
- 'failed',
10
- ]);
11
- export const suitabilityResponseSchema = z.array(z.object({
12
- modelName: z.string(),
13
- suitability: suitabilitySchema,
14
- }));
@@ -1,11 +0,0 @@
1
- import { z } from 'zod';
2
- export const bidSuccessSchema = z.object({
3
- status: z.literal('success'),
4
- biddingAmount: z.number(),
5
- boosted: z.boolean(),
6
- boostingAmount: z.number(),
7
- });
8
- export const bidFailedSchema = z.object({
9
- status: z.literal('failed'),
10
- errorMessage: z.string(),
11
- });
@@ -1,35 +0,0 @@
1
- import { z } from "zod";
2
- export const bidPayloadProposalDataSchema = z.object({
3
- coverLetter: z.string(),
4
- questionAnswerPairs: z
5
- .array(z.object({
6
- question: z.string(),
7
- answer: z.string(),
8
- }))
9
- .nullable(),
10
- boostingEnabled: z.boolean(),
11
- minimumBoost: z.number().nullable(),
12
- maximumBoost: z.number().nullable(),
13
- });
14
- export const freelancerBidProposalDataSchema = bidPayloadProposalDataSchema;
15
- export const agencyBidProposalDataSchema = bidPayloadProposalDataSchema.extend({
16
- agencyName: z.string(),
17
- contractorName: z.string(),
18
- specializedProfile: z.string().nullable(),
19
- });
20
- export const bidPayloadSchema = z.object({
21
- jobUrl: z.string(),
22
- username: z.string(),
23
- password: z.string(),
24
- });
25
- export const agencyBidPayloadSchema = bidPayloadSchema.extend({
26
- proposalData: agencyBidProposalDataSchema,
27
- });
28
- export const freelancerBidPayloadSchema = bidPayloadSchema.extend({
29
- proposalData: freelancerBidProposalDataSchema,
30
- });
31
- export const bidDtoSchema = z.object({
32
- organizationId: z.string(),
33
- campaignId: z.string(),
34
- leadId: z.string(),
35
- });
@@ -1,2 +0,0 @@
1
- export * from './bid';
2
- export * from './bid-result';
@@ -1,6 +0,0 @@
1
- import { z } from 'zod';
2
- export const campaignAIMetricsSchema = z.object({
3
- leadsAnalyzed: z.number(),
4
- leadsBidded: z.number(),
5
- connectsSaved: z.number(),
6
- });
@@ -1,42 +0,0 @@
1
- import { z } from "zod";
2
- import { leadStatusSchema, upworkJobSchema } from "../lead";
3
- export const campaignAnalyticsStatsSchema = z.object({
4
- jobsAnalyzed: z.number(),
5
- totalStats: z.object({
6
- contacted: z.number(),
7
- viewed: z.number(),
8
- replied: z.number(),
9
- negotiations: z.number(),
10
- won: z.number(),
11
- }),
12
- statsByDate: z.array(z.object({
13
- label: z.string(),
14
- contacted: z.number(),
15
- viewed: z.number(),
16
- replied: z.number(),
17
- negotiations: z.number(),
18
- won: z.number(),
19
- })),
20
- });
21
- export const campaignAnalyticsResponseSchema = z.object({
22
- jobsAnalyzed: z.number(),
23
- contacted: z.number(),
24
- viewed: z.number(),
25
- replied: z.number(),
26
- negotiations: z.number(),
27
- won: z.number(),
28
- });
29
- export const campaignActivitySchema = z.object({
30
- createdAt: z.number(),
31
- status: leadStatusSchema,
32
- job: upworkJobSchema.pick({
33
- id: true,
34
- title: true,
35
- datetime: true,
36
- jobUrl: true,
37
- }),
38
- });
39
- export const campaignActivityCreateSchema = campaignActivitySchema.pick({
40
- status: true,
41
- job: true,
42
- });
@@ -1,6 +0,0 @@
1
- import { z } from 'zod';
2
- export const campaignExpensesSchema = z.object({
3
- biddingAmount: z.number().default(0),
4
- boostingAmount: z.number().default(0),
5
- boosted: z.number().default(0),
6
- });
@@ -1,31 +0,0 @@
1
- import { z } from "zod";
2
- import { agentStatusSchema } from "../lead";
3
- export const campaignCountByStatusSchema = z.object({
4
- // Using z.enum values to create a schema with all possible job statuses
5
- ...Object.fromEntries(Object.values(agentStatusSchema.enum).map((status) => [
6
- status,
7
- z.object({
8
- boosted: z.number(),
9
- organic: z.number(),
10
- total: z.number(),
11
- }),
12
- ])),
13
- });
14
- export const campaignInsightsSchema = z.object({
15
- pipelineHealth: campaignCountByStatusSchema,
16
- biddingAmount: z.number().default(0),
17
- boostingAmount: z.number().default(0),
18
- boostedProposalsCount: z.number().default(0),
19
- totalProposalsCount: z.number().default(0),
20
- totalExpenses: z.number().default(0),
21
- suitabilityRange0to10: z.number(),
22
- suitabilityRange10to20: z.number(),
23
- suitabilityRange20to30: z.number(),
24
- suitabilityRange30to40: z.number(),
25
- suitabilityRange40to50: z.number(),
26
- suitabilityRange50to60: z.number(),
27
- suitabilityRange60to70: z.number(),
28
- suitabilityRange70to80: z.number(),
29
- suitabilityRange80to90: z.number(),
30
- suitabilityRange90to100: z.number(),
31
- });
@@ -1,13 +0,0 @@
1
- import { z } from "zod";
2
- export const campaignIntegrations = z.enum(["discord", "slack"]);
3
- export const campaignIntegrationsSchema = z.object({
4
- suitabilityHooks: z.object({
5
- discord: z.string().url().nullable(),
6
- slack: z.string().url().nullable(),
7
- }),
8
- proposalSentHooks: z.object({
9
- discord: z.string().url().nullable(),
10
- slack: z.string().url().nullable(),
11
- }),
12
- });
13
- export const updateCampaignIntegrationsSchema = campaignIntegrationsSchema.partial();
@@ -1,3 +0,0 @@
1
- import { z } from "zod";
2
- import { leadStatusSchema } from "../lead";
3
- export const campaignJobCountSchema = z.record(leadStatusSchema, z.number());
@@ -1,41 +0,0 @@
1
- import { number, z } from "zod";
2
- import { jobFiltersSchema } from "../job-filters";
3
- import { leadStatusSchema } from "../lead";
4
- import { campaignExpensesSchema } from "./campaign-expenses";
5
- import { campaignIntegrationsSchema } from "./campaign-integrations";
6
- export const campaignStatusSchema = z.union([
7
- z.literal("active"),
8
- z.literal("draft"),
9
- z.literal("paused"),
10
- z.literal("error"),
11
- ]);
12
- export const campaignSchema = z.object({
13
- id: z.string(),
14
- name: z.string(),
15
- filters: jobFiltersSchema,
16
- createdAt: number(),
17
- updatedAt: number(),
18
- confirmedBillingAt: number().nullable(),
19
- automatedSuitability: z.boolean().nullable(),
20
- automatedBidding: z.boolean().nullable(),
21
- boostingEnabled: z.boolean().nullable().default(false),
22
- maximumBoost: z.number().nullable().default(30),
23
- minimumBoost: z.number().nullable().default(0),
24
- webhookUrl: z.string().nullable(),
25
- monthlyBudget: z.number().nullable(),
26
- suitabilityThreshold: z.number().min(0).max(100).nullable().default(0),
27
- boostingThreshold: z.number().min(0).max(100).nullable().default(0),
28
- leadCounts: z.record(leadStatusSchema, z.number()).nullable(),
29
- expenses: campaignExpensesSchema,
30
- integrations: campaignIntegrationsSchema,
31
- status: campaignStatusSchema.optional(),
32
- });
33
- export const createCampaignSchema = campaignSchema.omit({
34
- id: true,
35
- createdAt: true,
36
- updatedAt: true,
37
- });
38
- export const updateCampaignSchema = campaignSchema.omit({
39
- createdAt: true,
40
- updatedAt: true,
41
- });
@@ -1,7 +0,0 @@
1
- export * from './campaign';
2
- export * from './campaign-insights';
3
- export * from './campaign-job-count';
4
- export * from './campaign-expenses';
5
- export * from './campaign-integrations';
6
- export * from './campaign-analytics';
7
- export * from './campaign-ai-metrics';
@@ -1,10 +0,0 @@
1
- import { z } from 'zod';
2
- export const chatMessageSchema = z.object({
3
- id: z.string(),
4
- content: z.string(),
5
- role: z.enum(['user', 'assistant']),
6
- timestamp: z.string(),
7
- });
8
- export const newChatMessageSchema = chatMessageSchema.omit({
9
- id: true,
10
- });
@@ -1 +0,0 @@
1
- export * from './chat-message';