lancer-shared 1.2.26 → 1.2.28

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 (170) hide show
  1. package/dist/bundle.cjs.js +11808 -11402
  2. package/dist/constants/campaign-notifications.d.ts +2 -0
  3. package/dist/constants/routes.d.ts +12 -8
  4. package/dist/constants/upwork-accounts.d.ts +1 -1
  5. package/dist/index.d.ts +3 -3
  6. package/dist/schemas/account/account-status.d.ts +2 -2
  7. package/dist/schemas/account/bidder-account.d.ts +285 -35
  8. package/dist/schemas/account/exceptions/index.d.ts +3 -0
  9. package/dist/schemas/account/exceptions/invalid-google-oauth-token.exception.d.ts +5 -0
  10. package/dist/schemas/account/exceptions/no-bidder-accounts-available.exception.d.ts +5 -0
  11. package/dist/schemas/account/exceptions/no-google-oauth-tokens-found.exception.d.ts +5 -0
  12. package/dist/schemas/account/index.d.ts +4 -3
  13. package/dist/schemas/account/scraper-account.d.ts +7 -7
  14. package/dist/schemas/bid/exceptions/cloudflare-challenge-failed.exception.d.ts +5 -0
  15. package/dist/schemas/bid/exceptions/delete-multilogin-profile.exception.d.ts +5 -0
  16. package/dist/schemas/bid/exceptions/dropdown-option-not-present.exception.d.ts +5 -0
  17. package/dist/schemas/bid/exceptions/element-not-clickable.exception.d.ts +5 -0
  18. package/dist/schemas/bid/exceptions/evalaute-element.exception.d.ts +5 -0
  19. package/dist/schemas/bid/exceptions/evaluate-function.exception.d.ts +5 -0
  20. package/dist/schemas/bid/exceptions/get-multilogin-browser.exception.d.ts +5 -0
  21. package/dist/schemas/bid/exceptions/incorrect-security-question-answer.exception.d.ts +5 -0
  22. package/dist/schemas/bid/exceptions/index.d.ts +61 -0
  23. package/dist/schemas/bid/exceptions/init-browser.exception.d.ts +5 -0
  24. package/dist/schemas/bid/exceptions/insufficient-connects.exception.d.ts +5 -0
  25. package/dist/schemas/bid/exceptions/invalid-credentials.exception.d.ts +5 -0
  26. package/dist/schemas/bid/exceptions/invalid-job-url.exception.d.ts +5 -0
  27. package/dist/schemas/bid/exceptions/login-failed.exception.d.ts +5 -0
  28. package/dist/schemas/bid/exceptions/multilogin-authentication.exception.d.ts +5 -0
  29. package/dist/schemas/bid/exceptions/navigation-timeout.exception.d.ts +5 -0
  30. package/dist/schemas/bid/exceptions/new-browser-page.exception.d.ts +5 -0
  31. package/dist/schemas/bid/exceptions/new-page.exception.d.ts +5 -0
  32. package/dist/schemas/bid/exceptions/open-new-url.exception.d.ts +5 -0
  33. package/dist/schemas/bid/exceptions/parse-connects.exception.d.ts +5 -0
  34. package/dist/schemas/bid/exceptions/proposal-error-alert.exception.d.ts +5 -0
  35. package/dist/schemas/bid/exceptions/proposal-form-warning-alert.exception.d.ts +5 -0
  36. package/dist/schemas/bid/exceptions/proposal-submit-failed.exception.d.ts +5 -0
  37. package/dist/schemas/bid/exceptions/pupeteer-conection-error.exception.d.ts +5 -0
  38. package/dist/schemas/bid/exceptions/question-pair-not-matching.exception.d.ts +5 -0
  39. package/dist/schemas/bid/exceptions/select-agency.exception.d.ts +5 -0
  40. package/dist/schemas/bid/exceptions/select-contractor.exception.d.ts +5 -0
  41. package/dist/schemas/bid/exceptions/selector-not-found.exception.d.ts +5 -0
  42. package/dist/schemas/bid/exceptions/typed-value-not-matching.exception.d.ts +5 -0
  43. package/dist/schemas/bid/exceptions/typing-input-field.exception.d.ts +5 -0
  44. package/dist/schemas/bid/exceptions/wait-for-function-timeout.exception.d.ts +5 -0
  45. package/dist/schemas/bid/index.d.ts +1 -0
  46. package/dist/schemas/campaign/campaign-notifications.d.ts +9 -0
  47. package/dist/schemas/campaign/campaign.d.ts +171 -238
  48. package/dist/schemas/campaign/index.d.ts +6 -6
  49. package/dist/schemas/logger/log-event.d.ts +18 -17
  50. package/dist/schemas/organization/index.d.ts +5 -62
  51. package/dist/schemas/organization/organization.d.ts +22 -118
  52. package/dist/schemas/scraper/scrape-payload.d.ts +65 -60
  53. package/dist/types/campaign/campaign-insights.d.ts +1 -2
  54. package/dist/types/campaign/campaign-notifications.d.ts +7 -0
  55. package/dist/types/campaign/campaign.d.ts +3 -5
  56. package/dist/types/campaign/index.d.ts +3 -6
  57. package/dist/types/logger/log-event.d.ts +5 -4
  58. package/package.json +1 -1
  59. package/dist/constants/collections.js +0 -14
  60. package/dist/constants/common-questions.js +0 -57
  61. package/dist/constants/index.js +0 -18
  62. package/dist/constants/job-filter-options.js +0 -265
  63. package/dist/constants/job-status.js +0 -21
  64. package/dist/constants/mappings/countryMapping.js +0 -120
  65. package/dist/constants/mappings/regionMapping.js +0 -240
  66. package/dist/constants/routes.js +0 -116
  67. package/dist/constants/upwork-accounts.js +0 -18
  68. package/dist/index.js +0 -4
  69. package/dist/schemas/account/account-status.js +0 -8
  70. package/dist/schemas/account/bidder-account.js +0 -35
  71. package/dist/schemas/account/index.js +0 -3
  72. package/dist/schemas/account/scraper-account.js +0 -34
  73. package/dist/schemas/ai/ai-config.d.ts +0 -36
  74. package/dist/schemas/ai/ai-config.js +0 -9
  75. package/dist/schemas/ai/index.d.ts +0 -3
  76. package/dist/schemas/ai/index.js +0 -3
  77. package/dist/schemas/ai/proposal.d.ts +0 -82
  78. package/dist/schemas/ai/proposal.js +0 -13
  79. package/dist/schemas/ai/suitability.d.ts +0 -37
  80. package/dist/schemas/ai/suitability.js +0 -14
  81. package/dist/schemas/bid/bid-result.js +0 -11
  82. package/dist/schemas/bid/bid.js +0 -35
  83. package/dist/schemas/bid/index.js +0 -2
  84. package/dist/schemas/campaign/campaign-ai-metrics.js +0 -6
  85. package/dist/schemas/campaign/campaign-analytics.js +0 -42
  86. package/dist/schemas/campaign/campaign-expenses.js +0 -6
  87. package/dist/schemas/campaign/campaign-insights.js +0 -31
  88. package/dist/schemas/campaign/campaign-integrations.js +0 -13
  89. package/dist/schemas/campaign/campaign-job-count.js +0 -3
  90. package/dist/schemas/campaign/campaign.js +0 -41
  91. package/dist/schemas/campaign/index.js +0 -7
  92. package/dist/schemas/chat-message/chat-message.js +0 -10
  93. package/dist/schemas/chat-message/index.js +0 -1
  94. package/dist/schemas/config/agency-config.js +0 -7
  95. package/dist/schemas/config/index.js +0 -1
  96. package/dist/schemas/event/index.d.ts +0 -58
  97. package/dist/schemas/index.js +0 -17
  98. package/dist/schemas/job-filters/index.js +0 -1
  99. package/dist/schemas/job-filters/job-filters.js +0 -84
  100. package/dist/schemas/lead/index.js +0 -173
  101. package/dist/schemas/lead/lead-note.js +0 -27
  102. package/dist/schemas/lead/lead-status.js +0 -23
  103. package/dist/schemas/lead/nuxt.js +0 -287
  104. package/dist/schemas/logger/index.js +0 -1
  105. package/dist/schemas/logger/log-event.js +0 -117
  106. package/dist/schemas/meter-event/index.d.ts +0 -12
  107. package/dist/schemas/organization/index.js +0 -70
  108. package/dist/schemas/organization/member.js +0 -7
  109. package/dist/schemas/organization/organization.js +0 -16
  110. package/dist/schemas/organization/subscription.js +0 -17
  111. package/dist/schemas/proxy/index.js +0 -3
  112. package/dist/schemas/proxy/proxy-available-replacements.js +0 -3
  113. package/dist/schemas/proxy/proxy-country.js +0 -249
  114. package/dist/schemas/proxy/proxy.js +0 -29
  115. package/dist/schemas/saved-search/index.js +0 -9
  116. package/dist/schemas/scraper/index.js +0 -2
  117. package/dist/schemas/scraper/scrape-payload.js +0 -21
  118. package/dist/schemas/scraper/scrape-result.js +0 -23
  119. package/dist/schemas/shared.js +0 -19
  120. package/dist/schemas/tier/index.d.ts +0 -119
  121. package/dist/schemas/time-filter/index.js +0 -6
  122. package/dist/schemas/transaction/index.js +0 -17
  123. package/dist/schemas/usage/index.js +0 -18
  124. package/dist/schemas/user/index.js +0 -52
  125. package/dist/types/account/account-status.js +0 -1
  126. package/dist/types/account/bidder-account.js +0 -1
  127. package/dist/types/account/index.js +0 -3
  128. package/dist/types/account/scraper-account.js +0 -1
  129. package/dist/types/ai/ai-config.d.ts +0 -6
  130. package/dist/types/ai/ai-config.js +0 -1
  131. package/dist/types/ai/index.d.ts +0 -3
  132. package/dist/types/ai/index.js +0 -3
  133. package/dist/types/ai/proposal.d.ts +0 -10
  134. package/dist/types/ai/proposal.js +0 -1
  135. package/dist/types/ai/suitability.d.ts +0 -6
  136. package/dist/types/ai/suitability.js +0 -1
  137. package/dist/types/bid/bid-result.js +0 -1
  138. package/dist/types/bid/bid.js +0 -1
  139. package/dist/types/bid/index.js +0 -2
  140. package/dist/types/campaign/campaign-analytics.js +0 -1
  141. package/dist/types/campaign/campaign-expenses.js +0 -1
  142. package/dist/types/campaign/campaign-insights.js +0 -1
  143. package/dist/types/campaign/campaign-integrations.js +0 -1
  144. package/dist/types/campaign/campaign-job-count.js +0 -1
  145. package/dist/types/campaign/campaign.js +0 -1
  146. package/dist/types/campaign/index.js +0 -6
  147. package/dist/types/chat-message/chat-message.js +0 -1
  148. package/dist/types/chat-message/index.js +0 -1
  149. package/dist/types/config/agency-config.js +0 -1
  150. package/dist/types/config/index.js +0 -1
  151. package/dist/types/index.js +0 -15
  152. package/dist/types/job/index.js +0 -3
  153. package/dist/types/job/job-note.js +0 -1
  154. package/dist/types/job/job-status.js +0 -9
  155. package/dist/types/job/nuxt.js +0 -1
  156. package/dist/types/job-filters/index.js +0 -1
  157. package/dist/types/job-filters/job-filters.js +0 -1
  158. package/dist/types/logger/index.js +0 -1
  159. package/dist/types/logger/log-event.js +0 -1
  160. package/dist/types/saved-search/index.js +0 -1
  161. package/dist/types/scraper/index.js +0 -2
  162. package/dist/types/scraper/scrape-payload.js +0 -1
  163. package/dist/types/scraper/scrape-result.js +0 -1
  164. package/dist/types/shared.js +0 -1
  165. package/dist/types/time-filter/index.js +0 -1
  166. package/dist/types/transaction/index.js +0 -1
  167. package/dist/types/usage/index.js +0 -1
  168. package/dist/types/user/index.js +0 -1
  169. package/dist/utils/index.js +0 -1
  170. package/dist/utils/try-catch.js +0 -10
@@ -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';
@@ -1,7 +0,0 @@
1
- import { z } from 'zod';
2
- export const agencyConfigSchema = z.object({
3
- agencyName: z.string(),
4
- contractorName: z.string(),
5
- specializedProfile: z.string().nullable(),
6
- accountId: z.string(),
7
- });
@@ -1 +0,0 @@
1
- export * from './agency-config';
@@ -1,58 +0,0 @@
1
- export declare const logEventSchemaWithMetadata: import("zod").ZodIntersection<import("zod").ZodIntersection<import("zod").ZodObject<{
2
- type: import("zod").ZodEnum<["scraperStarted", "scraperCompleted", "jobScraped", "jobScrapeFailed", "jobsIndexed", "jobDuplicateSkipped", "scraperFailed", "jobActivityScraped", "jobActivityScrapeFailed", "feedScrapeStarted", "feedScrapeCompleted", "feedScrapeFailed", "jobListingScraped", "jobSyncPublished", "jobSyncReceived", "leadsCreatedAndSynced", "suitabilityPending", "suitabilityProcessing", "suitabilityComplete", "suitabilityFailed", "manualSuitabilityAnalyzed", "proposalProcessing", "proposalComplete", "proposalFailed", "manualProposalGenerated", "biddingProcessing", "biddingComplete", "biddingFailed", "biddingSkipped", "biddingPending", "errorLogged", "cloudTaskRetry", "manualLeadEdited", "leadArchived", "auditTrailLogged"]>;
3
- source: import("zod").ZodString;
4
- resourceType: import("zod").ZodDefault<import("zod").ZodString>;
5
- resourceId: import("zod").ZodNullable<import("zod").ZodString>;
6
- leadId: import("zod").ZodNullable<import("zod").ZodString>;
7
- campaignId: import("zod").ZodNullable<import("zod").ZodString>;
8
- userId: import("zod").ZodNullable<import("zod").ZodString>;
9
- reason: import("zod").ZodNullable<import("zod").ZodString>;
10
- timestamp: import("zod").ZodNumber;
11
- }, "strip", import("zod").ZodTypeAny, {
12
- type: "scraperStarted" | "scraperCompleted" | "jobScraped" | "jobScrapeFailed" | "jobsIndexed" | "jobDuplicateSkipped" | "scraperFailed" | "jobActivityScraped" | "jobActivityScrapeFailed" | "feedScrapeStarted" | "feedScrapeCompleted" | "feedScrapeFailed" | "jobListingScraped" | "jobSyncPublished" | "jobSyncReceived" | "leadsCreatedAndSynced" | "suitabilityPending" | "suitabilityProcessing" | "suitabilityComplete" | "suitabilityFailed" | "manualSuitabilityAnalyzed" | "proposalProcessing" | "proposalComplete" | "proposalFailed" | "manualProposalGenerated" | "biddingProcessing" | "biddingComplete" | "biddingFailed" | "biddingSkipped" | "biddingPending" | "errorLogged" | "cloudTaskRetry" | "manualLeadEdited" | "leadArchived" | "auditTrailLogged";
13
- source: string;
14
- resourceType: string;
15
- resourceId: string | null;
16
- leadId: string | null;
17
- campaignId: string | null;
18
- userId: string | null;
19
- reason: string | null;
20
- timestamp: number;
21
- }, {
22
- type: "scraperStarted" | "scraperCompleted" | "jobScraped" | "jobScrapeFailed" | "jobsIndexed" | "jobDuplicateSkipped" | "scraperFailed" | "jobActivityScraped" | "jobActivityScrapeFailed" | "feedScrapeStarted" | "feedScrapeCompleted" | "feedScrapeFailed" | "jobListingScraped" | "jobSyncPublished" | "jobSyncReceived" | "leadsCreatedAndSynced" | "suitabilityPending" | "suitabilityProcessing" | "suitabilityComplete" | "suitabilityFailed" | "manualSuitabilityAnalyzed" | "proposalProcessing" | "proposalComplete" | "proposalFailed" | "manualProposalGenerated" | "biddingProcessing" | "biddingComplete" | "biddingFailed" | "biddingSkipped" | "biddingPending" | "errorLogged" | "cloudTaskRetry" | "manualLeadEdited" | "leadArchived" | "auditTrailLogged";
23
- source: string;
24
- resourceId: string | null;
25
- leadId: string | null;
26
- campaignId: string | null;
27
- userId: string | null;
28
- reason: string | null;
29
- timestamp: number;
30
- resourceType?: string | undefined;
31
- }>, import("zod").ZodDiscriminatedUnion<"type", [import("zod").ZodObject<{
32
- type: import("zod").ZodEnum<["jobActivityScraped"]>;
33
- }, "strip", import("zod").ZodTypeAny, {
34
- type: "jobActivityScraped";
35
- }, {
36
- type: "jobActivityScraped";
37
- }>, import("zod").ZodObject<{
38
- type: import("zod").ZodEnum<["scraperStarted", "scraperCompleted", "jobScraped", "jobScrapeFailed", "jobsIndexed", "jobDuplicateSkipped", "scraperFailed", "jobActivityScrapeFailed", "feedScrapeStarted", "feedScrapeCompleted", "feedScrapeFailed", "jobListingScraped", "jobSyncPublished", "jobSyncReceived", "leadsCreatedAndSynced", "suitabilityPending", "suitabilityProcessing", "suitabilityComplete", "suitabilityFailed", "manualSuitabilityAnalyzed", "proposalProcessing", "proposalComplete", "proposalFailed", "manualProposalGenerated", "biddingProcessing", "biddingComplete", "biddingFailed", "biddingSkipped", "biddingPending", "errorLogged", "cloudTaskRetry", "manualLeadEdited", "leadArchived", "auditTrailLogged"]>;
39
- metadata: import("zod").ZodNullable<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
40
- }, "strip", import("zod").ZodTypeAny, {
41
- type: "scraperStarted" | "scraperCompleted" | "jobScraped" | "jobScrapeFailed" | "jobsIndexed" | "jobDuplicateSkipped" | "scraperFailed" | "jobActivityScrapeFailed" | "feedScrapeStarted" | "feedScrapeCompleted" | "feedScrapeFailed" | "jobListingScraped" | "jobSyncPublished" | "jobSyncReceived" | "leadsCreatedAndSynced" | "suitabilityPending" | "suitabilityProcessing" | "suitabilityComplete" | "suitabilityFailed" | "manualSuitabilityAnalyzed" | "proposalProcessing" | "proposalComplete" | "proposalFailed" | "manualProposalGenerated" | "biddingProcessing" | "biddingComplete" | "biddingFailed" | "biddingSkipped" | "biddingPending" | "errorLogged" | "cloudTaskRetry" | "manualLeadEdited" | "leadArchived" | "auditTrailLogged";
42
- metadata: Record<string, unknown> | null;
43
- }, {
44
- type: "scraperStarted" | "scraperCompleted" | "jobScraped" | "jobScrapeFailed" | "jobsIndexed" | "jobDuplicateSkipped" | "scraperFailed" | "jobActivityScrapeFailed" | "feedScrapeStarted" | "feedScrapeCompleted" | "feedScrapeFailed" | "jobListingScraped" | "jobSyncPublished" | "jobSyncReceived" | "leadsCreatedAndSynced" | "suitabilityPending" | "suitabilityProcessing" | "suitabilityComplete" | "suitabilityFailed" | "manualSuitabilityAnalyzed" | "proposalProcessing" | "proposalComplete" | "proposalFailed" | "manualProposalGenerated" | "biddingProcessing" | "biddingComplete" | "biddingFailed" | "biddingSkipped" | "biddingPending" | "errorLogged" | "cloudTaskRetry" | "manualLeadEdited" | "leadArchived" | "auditTrailLogged";
45
- metadata: Record<string, unknown> | null;
46
- }>]>>, import("zod").ZodDiscriminatedUnion<"type", [import("zod").ZodObject<{
47
- type: import("zod").ZodEnum<["jobActivityScraped"]>;
48
- }, "strip", import("zod").ZodTypeAny, {
49
- type: "jobActivityScraped";
50
- }, {
51
- type: "jobActivityScraped";
52
- }>, import("zod").ZodObject<{
53
- type: import("zod").ZodEnum<["jobActivityScraped"]>;
54
- }, "strip", import("zod").ZodTypeAny, {
55
- type: "jobActivityScraped";
56
- }, {
57
- type: "jobActivityScraped";
58
- }>]>>;
@@ -1,17 +0,0 @@
1
- export * from "./account";
2
- export * from "./bid";
3
- export * from "./campaign";
4
- export * from "./chat-message";
5
- export * from "./config";
6
- export * from "./job-filters";
7
- export * from "./lead";
8
- export * from "./logger";
9
- export * from "./organization";
10
- export * from "./proxy";
11
- export * from "./saved-search";
12
- export * from "./scraper";
13
- export * from "./shared";
14
- export * from "./time-filter";
15
- export * from "./user";
16
- export * from "./usage";
17
- export * from "./transaction";
@@ -1 +0,0 @@
1
- export * from './job-filters';
@@ -1,84 +0,0 @@
1
- import { z } from "zod";
2
- import { JOB_FILTER_OPTIONS } from "../../constants/job-filter-options";
3
- // Enum definitions for fixed options
4
- export const projectDurationEnum = z.enum(JOB_FILTER_OPTIONS.PROJECT_DURATION);
5
- export const engagementTypeEnum = z.enum(JOB_FILTER_OPTIONS.ENGAGEMENT_TYPE);
6
- export const vendorTypeEnum = z.enum(JOB_FILTER_OPTIONS.VENDOR_TYPE);
7
- export const paymentTypeEnum = z.enum(JOB_FILTER_OPTIONS.PAYMENT_TYPE);
8
- export const categoryEnum = z.enum(JOB_FILTER_OPTIONS.CATEGORIES);
9
- export const clientIndustryEnum = z.enum(JOB_FILTER_OPTIONS.CLIENT_INDUSTRY);
10
- export const clientSizeEnum = z.enum(JOB_FILTER_OPTIONS.CLIENT_SIZE);
11
- export const talentTypeEnum = z.enum(JOB_FILTER_OPTIONS.TALENT_TYPE);
12
- export const englishLevelEnum = z.enum(JOB_FILTER_OPTIONS.ENGLISH_LEVELS);
13
- export const experienceLevelEnum = z.enum(JOB_FILTER_OPTIONS.EXPERIENCE_LEVELS);
14
- export const regionEnum = z.enum(["all", "Worldwide", "UKOnly", "USOnly"]);
15
- export const requiredEarningsEnum = z.union([
16
- z.literal(100),
17
- z.literal(1000),
18
- z.literal(10000),
19
- ]);
20
- export const requiredJSSEnum = z.enum(JOB_FILTER_OPTIONS.REQUIRED_JSS);
21
- // Main job filters schema
22
- export const jobFiltersSchema = z.object({
23
- keywords: z
24
- .object({
25
- includes: z.string().nullable(),
26
- excludes: z.string().nullable(),
27
- })
28
- .nullable(),
29
- isFeatured: z.enum(["all", "true", "false"]).nullable(),
30
- regions: z.array(regionEnum).nullable(),
31
- categories: z
32
- .object({
33
- includes: z.array(categoryEnum).nullable(),
34
- excludes: z.array(categoryEnum).nullable(),
35
- })
36
- .nullable(),
37
- payment: z
38
- .object({
39
- paymentType: z.array(paymentTypeEnum).nullable(),
40
- minFixedPrice: z.number().nullable(),
41
- maxFixedPrice: z.number().nullable(),
42
- minHourlyRate: z.number().nullable(),
43
- maxHourlyRate: z.number().nullable(),
44
- })
45
- .nullable(),
46
- projectDuration: z.array(projectDurationEnum).nullable(),
47
- experienceLevel: z.array(experienceLevelEnum).nullable(),
48
- questions: z
49
- .object({
50
- hasQuestions: z.enum(["all", "yes", "no"]).default("all"),
51
- })
52
- .nullable(),
53
- engagementType: z.array(engagementTypeEnum).nullable(),
54
- clientInfo: z
55
- .object({
56
- isPaymentVerified: z.enum(["all", "true", "false"]).default("all"),
57
- isPhoneVerified: z.enum(["all", "true", "false"]).default("all"),
58
- enterpriseClient: z.enum(["all", "true", "false"]).default("all"),
59
- clientLocationIncludes: z.array(z.string()).nullable(),
60
- clientLocationExcludes: z.array(z.string()).nullable(),
61
- minReviewScore: z.number().min(0).max(5).nullable(),
62
- minTotalSpent: z.number().nullable(),
63
- minHireRate: z.number().min(0).max(100).nullable(),
64
- clientIndustry: z.array(clientIndustryEnum).nullable(),
65
- companySize: z.array(clientSizeEnum).nullable(),
66
- minJobsPosted: z.number().nullable(),
67
- minAvgHourlyRate: z.number().nullable(),
68
- minNumReviews: z.number().nullable(),
69
- memberSinceFrom: z.string().date().nullable(),
70
- memberSinceTo: z.string().date().nullable(),
71
- })
72
- .nullable(),
73
- vendorQualifications: z
74
- .object({
75
- locationIncludes: z.array(z.string()).nullable(),
76
- locationExcludes: z.array(z.string()).nullable(),
77
- talentTypes: z.array(talentTypeEnum).nullable(),
78
- englishLevels: z.array(englishLevelEnum).nullable(),
79
- includeRisingTalent: z.string().nullable(),
80
- requiredEarnings: requiredEarningsEnum.nullable(),
81
- requiredJSS: z.array(requiredJSSEnum).nullable(),
82
- })
83
- .nullable(),
84
- });
@@ -1,173 +0,0 @@
1
- import { array, boolean, custom, number, object, record, string, z } from "zod";
2
- import { regionSchema } from "../shared";
3
- import { leadNoteSchema } from "./lead-note";
4
- import { agentStatusSchema, leadStatusSchema } from "./lead-status";
5
- export const jobSkillsSchema = object({
6
- name: string(),
7
- });
8
- export const vendorQualificationSchema = object({
9
- location: string().nullable(),
10
- talentType: z.enum(["Agency", "Independent", "unspecified"]).nullable(),
11
- englishLevel: string().nullable(),
12
- minimumEarnings: number().nullable(),
13
- jobSuccessScore: string().nullable(),
14
- includeRisingTalent: string().nullable(),
15
- });
16
- export const clientInfoSchema = object({
17
- isPaymentVerified: boolean().nullable(),
18
- isPhoneVerified: boolean().nullable(),
19
- numberOfReviews: number().nullable(),
20
- rating: number().nullable(),
21
- country: string().nullable(),
22
- region: string().nullable(),
23
- jobsPosted: number().nullable(),
24
- totalSpent: number().nullable(),
25
- numberOfHires: number().nullable(),
26
- activeEngagements: number().nullable(),
27
- openJobs: number().nullable(),
28
- hireRate: number().nullable(),
29
- memberSince: string().nullable(),
30
- companyIndustry: string().nullable(),
31
- companySize: string().nullable(),
32
- enterpriseClient: boolean().nullable(),
33
- avgHourlyRatePaid: number().nullable(),
34
- });
35
- export const clientReviewSchema = object({
36
- jobTitle: string().nullable(),
37
- freelancerName: string().nullable(),
38
- freelancerRating: number().nullable(),
39
- freelancerFeedback: string().nullable(),
40
- clientFeedback: string().nullable(),
41
- clientFeedbackRating: number().nullable(),
42
- dateRange: string().nullable(),
43
- paymentType: string().nullable(),
44
- fixedPrice: number().nullable(),
45
- hourlyRate: number().nullable(),
46
- numHours: number().nullable(),
47
- totalBilled: number().nullable(),
48
- });
49
- export const bidRangeSchema = object({
50
- high: number().nullable(),
51
- avg: number().nullable(),
52
- low: number().nullable(),
53
- });
54
- export const jobActivitySchema = object({
55
- proposals: object({
56
- min: number().nullable(),
57
- max: number().nullable(),
58
- }),
59
- lastViewedByClient: string().nullable(),
60
- lastViewedByClientTimestamp: number().nullable(),
61
- hires: number().nullable(),
62
- interviewing: number().nullable(),
63
- invitesSent: number().nullable(),
64
- unansweredInvites: number().nullable(),
65
- updatedAt: number().nullable(),
66
- });
67
- export const jobActivityDeltaSchema = object({
68
- proposals: number(),
69
- interviewing: number(),
70
- hires: number(),
71
- invitesSent: number(),
72
- unansweredInvites: number(),
73
- });
74
- export const metadataSchema = object({
75
- hours: string().nullable(),
76
- duration: string().nullable(),
77
- experienceLevel: string().nullable(),
78
- hourlyRate: z
79
- .object({
80
- min: number().nullable(),
81
- max: number().nullable(),
82
- })
83
- .nullable(),
84
- paymentType: string().nullable(),
85
- fixedPrice: number().nullable(),
86
- });
87
- export const jobActivityOffsetHours = [4, 24];
88
- export const jobActivityOffsetEnum = z.enum(jobActivityOffsetHours.map((h) => `${h}h`));
89
- export const upworkJobSchema = object({
90
- id: string().nullable(),
91
- uid: string().nullable(),
92
- createdAt: number().nullable(),
93
- title: string().nullable(),
94
- category: string().nullable(),
95
- skills: array(jobSkillsSchema).nullable(),
96
- datetime: number().nullable(),
97
- description: string().nullable(),
98
- descriptionLength: number().nullable(),
99
- connectsRequired: number().nullable(),
100
- projectType: string().nullable(),
101
- projectDuration: string().nullable(),
102
- questions: array(string()).nullable(),
103
- jobUrl: string().nullable(),
104
- metadata: metadataSchema.nullable(),
105
- clientInfo: clientInfoSchema.nullable(),
106
- vendorQualifications: vendorQualificationSchema.nullable(),
107
- processed: boolean().nullable(),
108
- isFeatured: boolean().nullable(),
109
- clientReviews: array(clientReviewSchema).nullable(),
110
- region: regionSchema.nullable(),
111
- bidRange: bidRangeSchema.nullable(),
112
- jobActivity: jobActivitySchema.nullable(),
113
- activityUpdates: z
114
- .union([z.literal(1), z.literal(2), z.literal(3)])
115
- .nullable(),
116
- activity: record(jobActivityOffsetEnum, jobActivitySchema).nullish(),
117
- activityDelta: jobActivityDeltaSchema.nullish(),
118
- });
119
- export const questionAnswerPairSchema = z.object({
120
- question: z.string(),
121
- answer: z.string(),
122
- });
123
- export const leadSchema = upworkJobSchema
124
- .extend({
125
- jobId: string(),
126
- updatedAt: number().nullable(),
127
- suitabilityRating: number().nullable(),
128
- suitabilityReason: string().nullable(),
129
- proposal: string().nullable(),
130
- questionAnswerPairs: array(questionAnswerPairSchema).nullable(),
131
- agentStatus: agentStatusSchema.nullable(),
132
- leadStatus: leadStatusSchema.nullable(),
133
- notes: array(leadNoteSchema).nullable(),
134
- biddingAmount: number().nullable(),
135
- boosted: boolean().nullable(),
136
- boostingAmount: number().nullable(),
137
- biddingTaskScheduled: boolean().nullable(),
138
- scheduledBiddingTime: number().nullable(),
139
- })
140
- .omit({
141
- processed: true,
142
- });
143
- export const leadResponseSchema = object({
144
- leads: array(leadSchema),
145
- nextCursor: string().nullable(),
146
- hasMore: boolean(),
147
- leadCounts: number().nullable(),
148
- });
149
- export const jobListingSchema = object({
150
- uid: string().nullable(),
151
- title: string().nullable(),
152
- jobUrl: string().nullable(),
153
- datetime: string().nullable(),
154
- isFeatured: boolean().nullable(),
155
- region: regionSchema.nullable(),
156
- });
157
- export const jobActivityOffsetHourSchema = custom((val) => jobActivityOffsetHours.includes(val));
158
- export const jobActivityUpdateSchema = object({
159
- jobUrl: string(),
160
- data: jobActivitySchema,
161
- offsetHour: jobActivityOffsetHourSchema,
162
- scrapedAt: number(),
163
- });
164
- export const jobActivitySnapshotSchema = object({
165
- jobUrl: string(),
166
- activity: jobActivitySchema,
167
- postedAt: number(),
168
- scrapedAt: number(),
169
- hoursSincePosted: number(),
170
- });
171
- export * from "./lead-note";
172
- export * from "./lead-status";
173
- export * from "./nuxt";
@@ -1,27 +0,0 @@
1
- import { z } from "zod";
2
- export const leadNoteSchema = z.object({
3
- id: z.string(),
4
- jobId: z.string(),
5
- content: z.string(),
6
- order: z.number(),
7
- bgColor: z.string(),
8
- createdAt: z.number(),
9
- updatedAt: z.number(),
10
- });
11
- export const createLeadNoteSchema = leadNoteSchema.pick({
12
- id: true,
13
- content: true,
14
- order: true,
15
- bgColor: true,
16
- });
17
- export const updateLeadNoteSchema = leadNoteSchema
18
- .pick({
19
- id: true,
20
- content: true,
21
- order: true,
22
- bgColor: true,
23
- })
24
- .partial({ content: true, order: true, bgColor: true });
25
- export const updateLeadNotesOrderSchema = z.object({
26
- order: z.array(z.object({ id: z.string(), order: z.number() })),
27
- });
@@ -1,23 +0,0 @@
1
- import { z } from "zod";
2
- export const agentStatusSchema = z.enum([
3
- "suitabilityPending",
4
- "suitabilityProcessing",
5
- "suitabilityComplete",
6
- "suitabilityFailed",
7
- "proposalProcessing",
8
- "proposalComplete",
9
- "proposalFailed",
10
- "biddingProcessing",
11
- "biddingComplete",
12
- "biddingFailed",
13
- "jobArchived",
14
- ]);
15
- export const leadStatusSchema = z.enum([
16
- "leads",
17
- "contacted",
18
- "viewed",
19
- "replied",
20
- "negotiations",
21
- "won",
22
- "lost",
23
- ]);