lancer-shared 1.2.35 → 1.2.37

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 (168) hide show
  1. package/dist/bundle.cjs.js +29 -19
  2. package/dist/constants/collections.js +11 -13
  3. package/dist/constants/common-questions.js +1 -4
  4. package/dist/constants/index.js +10 -32
  5. package/dist/constants/job-filter-options.d.ts +1 -1
  6. package/dist/constants/job-filter-options.js +1 -4
  7. package/dist/constants/job-status.js +7 -12
  8. package/dist/constants/mappings/countryMapping.js +1 -3
  9. package/dist/constants/mappings/regionMapping.js +1 -3
  10. package/dist/constants/routes.d.ts +1 -0
  11. package/dist/constants/routes.js +43 -35
  12. package/dist/constants/upwork-accounts.js +3 -6
  13. package/dist/index.d.ts +3 -3
  14. package/dist/index.js +4 -20
  15. package/dist/schemas/account/account-status.js +2 -5
  16. package/dist/schemas/account/bidder-account.js +22 -24
  17. package/dist/schemas/account/index.js +3 -19
  18. package/dist/schemas/account/scraper-account.js +21 -24
  19. package/dist/schemas/ai/ai-config.js +8 -11
  20. package/dist/schemas/ai/index.js +3 -19
  21. package/dist/schemas/ai/proposal.js +10 -13
  22. package/dist/schemas/ai/suitability.js +8 -11
  23. package/dist/schemas/bid/bid-result.js +9 -13
  24. package/dist/schemas/bid/bid.js +29 -30
  25. package/dist/schemas/bid/index.js +2 -18
  26. package/dist/schemas/campaign/campaign-ai-metrics.js +5 -8
  27. package/dist/schemas/campaign/campaign-analytics.d.ts +40 -40
  28. package/dist/schemas/campaign/campaign-analytics.js +32 -31
  29. package/dist/schemas/campaign/campaign-expenses.js +5 -8
  30. package/dist/schemas/campaign/campaign-insights.js +30 -30
  31. package/dist/schemas/campaign/campaign-integrations.js +10 -13
  32. package/dist/schemas/campaign/campaign-job-count.js +3 -6
  33. package/dist/schemas/campaign/campaign.d.ts +23 -23
  34. package/dist/schemas/campaign/campaign.js +32 -35
  35. package/dist/schemas/campaign/index.js +7 -23
  36. package/dist/schemas/chat-message/chat-message.js +7 -10
  37. package/dist/schemas/chat-message/index.js +1 -17
  38. package/dist/schemas/config/agency-config.js +6 -9
  39. package/dist/schemas/config/index.js +1 -17
  40. package/dist/schemas/event/index.d.ts +58 -0
  41. package/dist/schemas/index.d.ts +1 -0
  42. package/dist/schemas/index.js +17 -32
  43. package/dist/schemas/job/job-filters.d.ts +18 -6
  44. package/dist/schemas/job-filters/index.js +1 -17
  45. package/dist/schemas/job-filters/job-filters.js +62 -65
  46. package/dist/schemas/lead/index.d.ts +11 -0
  47. package/dist/schemas/lead/index.js +173 -19
  48. package/dist/schemas/lead/lead-note.js +13 -16
  49. package/dist/schemas/lead/lead-status.js +3 -6
  50. package/dist/schemas/lead/nuxt.js +287 -0
  51. package/dist/schemas/logger/index.js +1 -17
  52. package/dist/schemas/logger/log-event.js +100 -49
  53. package/dist/schemas/meter-event/index.d.ts +12 -0
  54. package/dist/schemas/organization/cover-letter.d.ts +21 -17
  55. package/dist/schemas/organization/index.d.ts +4 -2
  56. package/dist/schemas/organization/index.js +70 -17
  57. package/dist/schemas/organization/member.js +7 -0
  58. package/dist/schemas/organization/organization.d.ts +177 -7
  59. package/dist/schemas/organization/organization.js +14 -17
  60. package/dist/schemas/organization/subscription.js +17 -0
  61. package/dist/schemas/proxy/index.js +3 -17
  62. package/dist/schemas/proxy/proxy-available-replacements.js +3 -0
  63. package/dist/schemas/proxy/proxy-country.js +249 -0
  64. package/dist/schemas/proxy/proxy.js +25 -17
  65. package/dist/schemas/saved-search/index.js +8 -11
  66. package/dist/schemas/scraper/index.js +2 -18
  67. package/dist/schemas/scraper/scrape-payload.d.ts +9 -9
  68. package/dist/schemas/scraper/scrape-payload.js +19 -14
  69. package/dist/schemas/scraper/scrape-result.js +21 -21
  70. package/dist/schemas/shared.d.ts +0 -20
  71. package/dist/schemas/shared.js +12 -9
  72. package/dist/schemas/tier/index.d.ts +119 -0
  73. package/dist/schemas/time-filter/index.js +5 -8
  74. package/dist/schemas/transaction/index.js +17 -0
  75. package/dist/schemas/usage/index.js +18 -0
  76. package/dist/schemas/user/index.js +38 -41
  77. package/dist/types/account/account-status.js +1 -2
  78. package/dist/types/account/bidder-account.js +1 -2
  79. package/dist/types/account/index.js +3 -19
  80. package/dist/types/account/scraper-account.js +1 -2
  81. package/dist/types/ai/ai-config.js +1 -2
  82. package/dist/types/ai/index.js +3 -19
  83. package/dist/types/ai/proposal.js +1 -2
  84. package/dist/types/ai/suitability.js +1 -2
  85. package/dist/types/bid/bid-result.js +1 -2
  86. package/dist/types/bid/bid.js +1 -2
  87. package/dist/types/bid/index.js +2 -18
  88. package/dist/types/campaign/campaign-analytics.js +1 -2
  89. package/dist/types/campaign/campaign-expenses.js +1 -2
  90. package/dist/types/campaign/campaign-insights.js +1 -2
  91. package/dist/types/campaign/campaign-integrations.js +1 -2
  92. package/dist/types/campaign/campaign-job-count.js +1 -2
  93. package/dist/types/campaign/campaign.js +1 -2
  94. package/dist/types/campaign/index.js +6 -22
  95. package/dist/types/chat-message/chat-message.js +1 -2
  96. package/dist/types/chat-message/index.js +1 -17
  97. package/dist/types/config/agency-config.js +1 -2
  98. package/dist/types/config/index.js +1 -17
  99. package/dist/types/index.js +15 -29
  100. package/dist/types/job/index.js +3 -19
  101. package/dist/types/job/job-note.js +1 -2
  102. package/dist/types/job/job-status.js +1 -4
  103. package/dist/types/job/nuxt.js +1 -0
  104. package/dist/types/job-filters/index.js +1 -17
  105. package/dist/types/job-filters/job-filters.js +1 -2
  106. package/dist/types/logger/index.js +1 -17
  107. package/dist/types/logger/log-event.js +1 -2
  108. package/dist/types/saved-search/index.js +1 -2
  109. package/dist/types/scraper/index.js +2 -18
  110. package/dist/types/scraper/scrape-payload.js +1 -2
  111. package/dist/types/scraper/scrape-result.js +1 -2
  112. package/dist/types/shared.js +1 -0
  113. package/dist/types/time-filter/index.js +1 -2
  114. package/dist/types/transaction/index.js +1 -0
  115. package/dist/types/usage/index.js +1 -0
  116. package/dist/types/user/index.js +1 -2
  117. package/dist/utils/index.js +1 -17
  118. package/dist/utils/try-catch.js +8 -23
  119. package/package.json +1 -1
  120. package/dist/constants/account-status.d.ts +0 -3
  121. package/dist/constants/account-status.js +0 -17
  122. package/dist/schemas/account/manager-account.d.ts +0 -116
  123. package/dist/schemas/account/manager-account.js +0 -38
  124. package/dist/schemas/bidding/index.d.ts +0 -1
  125. package/dist/schemas/bidding/index.js +0 -17
  126. package/dist/schemas/bidding/proposal-bidding-status.d.ts +0 -26
  127. package/dist/schemas/bidding/proposal-bidding-status.js +0 -18
  128. package/dist/schemas/job/index.js +0 -19
  129. package/dist/schemas/job/job-details.d.ts +0 -335
  130. package/dist/schemas/job/job-details.js +0 -29
  131. package/dist/schemas/job/job-note.d.ts +0 -83
  132. package/dist/schemas/job/job-note.js +0 -30
  133. package/dist/schemas/job/job-status.d.ts +0 -3
  134. package/dist/schemas/job/job-status.js +0 -27
  135. package/dist/schemas/job/job.d.ts +0 -1160
  136. package/dist/schemas/job/job.js +0 -90
  137. package/dist/schemas/job/pipeline-job.d.ts +0 -602
  138. package/dist/schemas/job/pipeline-job.js +0 -42
  139. package/dist/schemas/job/upwork-job.d.ts +0 -334
  140. package/dist/schemas/job/upwork-job.js +0 -60
  141. package/dist/schemas/lead/lead.d.ts +0 -1897
  142. package/dist/schemas/lead/lead.js +0 -143
  143. package/dist/schemas/upwork-account/index.d.ts +0 -3
  144. package/dist/schemas/upwork-account/index.js +0 -19
  145. package/dist/schemas/upwork-account/upwork-account-status.d.ts +0 -2
  146. package/dist/schemas/upwork-account/upwork-account-status.js +0 -11
  147. package/dist/schemas/upwork-account/upwork-business-manager-account.d.ts +0 -95
  148. package/dist/schemas/upwork-account/upwork-business-manager-account.js +0 -35
  149. package/dist/schemas/upwork-account/upwork-scraping-account.d.ts +0 -90
  150. package/dist/schemas/upwork-account/upwork-scraping-account.js +0 -29
  151. package/dist/types/account/manager-account.d.ts +0 -7
  152. package/dist/types/account/manager-account.js +0 -2
  153. package/dist/types/bidding/index.d.ts +0 -1
  154. package/dist/types/bidding/index.js +0 -17
  155. package/dist/types/bidding/proposal-bidding-status.d.ts +0 -3
  156. package/dist/types/bidding/proposal-bidding-status.js +0 -2
  157. package/dist/types/job/job-details.d.ts +0 -36
  158. package/dist/types/job/job-details.js +0 -2
  159. package/dist/types/job/job.d.ts +0 -36
  160. package/dist/types/job/job.js +0 -2
  161. package/dist/types/upwork-account/index.d.ts +0 -3
  162. package/dist/types/upwork-account/index.js +0 -19
  163. package/dist/types/upwork-account/upwork-account-status.d.ts +0 -3
  164. package/dist/types/upwork-account/upwork-account-status.js +0 -2
  165. package/dist/types/upwork-account/upwork-business-manager-account.d.ts +0 -7
  166. package/dist/types/upwork-account/upwork-business-manager-account.js +0 -2
  167. package/dist/types/upwork-account/upwork-scraping-account.d.ts +0 -5
  168. package/dist/types/upwork-account/upwork-scraping-account.js +0 -2
@@ -0,0 +1,287 @@
1
+ import { any, array, boolean, number, object, record, string } from "zod";
2
+ const segmentationDataSchema = object({
3
+ customValue: string().nullable(),
4
+ label: string(),
5
+ name: string(),
6
+ sortOrder: number(),
7
+ type: string(),
8
+ value: string(),
9
+ skill: any().nullable(),
10
+ });
11
+ const clientActivitySchema = object({
12
+ lastBuyerActivity: string(),
13
+ totalApplicants: number(),
14
+ totalHired: number(),
15
+ totalInvitedToInterview: number(),
16
+ unansweredInvites: number(),
17
+ invitationsSent: number(),
18
+ numberOfPositionsToHire: number(),
19
+ });
20
+ const annotationsSchema = object({
21
+ tags: array(string()),
22
+ });
23
+ const budgetSchema = object({
24
+ amount: number(),
25
+ currencyCode: string(),
26
+ });
27
+ const engagementDurationSchema = object({
28
+ label: string(),
29
+ weeks: number(),
30
+ });
31
+ const extendedBudgetInfoSchema = object({
32
+ hourlyBudgetMin: number().nullable(),
33
+ hourlyBudgetMax: number().nullable(),
34
+ hourlyBudgetType: string().nullable(),
35
+ });
36
+ const qualificationsSchema = object({
37
+ countries: any().nullable(),
38
+ earnings: any().nullable(),
39
+ groupRecno: any().nullable(),
40
+ languages: any().nullable(),
41
+ localDescription: any().nullable(),
42
+ localFlexibilityDescription: any().nullable(),
43
+ localMarket: boolean(),
44
+ minJobSuccessScore: number(),
45
+ minOdeskHours: number(),
46
+ onSiteType: any().nullable(),
47
+ prefEnglishSkill: number(),
48
+ regions: any().nullable(),
49
+ risingTalent: boolean(),
50
+ shouldHavePortfolio: boolean(),
51
+ states: any().nullable(),
52
+ tests: any().nullable(),
53
+ timezones: any().nullable(),
54
+ type: number(),
55
+ locationCheckRequired: boolean(),
56
+ group: any().nullable(),
57
+ location: any().nullable(),
58
+ locations: any().nullable(),
59
+ });
60
+ const jobSchema = object({
61
+ status: number(),
62
+ category: object({
63
+ name: string(),
64
+ urlSlug: string(),
65
+ }),
66
+ categoryGroup: object({
67
+ name: string(),
68
+ urlSlug: string(),
69
+ }),
70
+ budget: budgetSchema,
71
+ postedOn: string(),
72
+ publishTime: string(),
73
+ wasRenewed: boolean(),
74
+ startDate: string().nullable(),
75
+ deliveryDate: string().nullable(),
76
+ workload: string().nullable(),
77
+ engagementDuration: engagementDurationSchema,
78
+ extendedBudgetInfo: extendedBudgetInfoSchema,
79
+ contractorTier: number(),
80
+ description: string(),
81
+ segmentationData: array(segmentationDataSchema),
82
+ clientActivity: clientActivitySchema,
83
+ annotations: annotationsSchema,
84
+ uid: string(),
85
+ title: string(),
86
+ type: number(),
87
+ ciphertext: string(),
88
+ access: number(),
89
+ createdOn: string(),
90
+ hideBudget: boolean(),
91
+ notSureProjectDuration: boolean(),
92
+ notSureFreelancersToHire: boolean(),
93
+ notSureExperienceLevel: boolean(),
94
+ numberOfPositionsToHire: number(),
95
+ isContractToHire: boolean(),
96
+ attachments: array(any()),
97
+ isPremium: boolean(),
98
+ qualifications: qualificationsSchema,
99
+ questions: array(object({ question: string(), position: number() })),
100
+ durationIdV3: number(),
101
+ durationLabel: string(),
102
+ });
103
+ const buyerSchema = object({
104
+ isEnterprise: boolean(),
105
+ isPaymentMethodVerified: boolean(),
106
+ stats: object({
107
+ totalAssignments: number(),
108
+ activeAssignmentsCount: number(),
109
+ hoursCount: number(),
110
+ feedbackCount: number(),
111
+ score: number(),
112
+ totalJobsWithHires: number(),
113
+ totalCharges: object({
114
+ amount: number(),
115
+ }),
116
+ }),
117
+ location: object({
118
+ offsetFromUtcMillis: number(),
119
+ countryTimezone: string(),
120
+ city: string(),
121
+ country: string(),
122
+ }),
123
+ company: object({
124
+ isEDCReplicated: any().nullable(),
125
+ contractDate: string(),
126
+ profile: object({
127
+ industry: string(),
128
+ size: number(),
129
+ }),
130
+ name: string().nullable(),
131
+ }),
132
+ jobs: object({
133
+ postedCount: number(),
134
+ openCount: number(),
135
+ }),
136
+ avgHourlyJobsRate: object({
137
+ amount: number(),
138
+ }).nullable(),
139
+ });
140
+ const currentUserInfoSchema = object({
141
+ owner: boolean(),
142
+ freelancerInfo: object({
143
+ profileState: string(),
144
+ applied: any().nullable(),
145
+ devProfileCiphertext: string(),
146
+ hired: any().nullable(),
147
+ application: record(any()),
148
+ pendingInvite: record(any()),
149
+ contract: any().nullable(),
150
+ hourlyRate: object({
151
+ amount: number(),
152
+ }),
153
+ qualificationsMatches: object({
154
+ matches: array(object({
155
+ clientPreferred: string(),
156
+ clientPreferredLabel: string().nullable(),
157
+ freelancerValue: string(),
158
+ freelancerValueLabel: string(),
159
+ qualification: number(),
160
+ qualified: boolean(),
161
+ })),
162
+ }),
163
+ }),
164
+ });
165
+ const workHistorySchema = array(object({
166
+ isPtcJob: any().nullable(),
167
+ status: any().nullable(),
168
+ isEDCReplicated: any().nullable(),
169
+ startDate: string(),
170
+ endDate: string(),
171
+ totalCharge: number(),
172
+ totalHours: number(),
173
+ jobInfo: object({
174
+ title: string(),
175
+ id: any().nullable(),
176
+ uid: any().nullable(),
177
+ access: number(),
178
+ type: number(),
179
+ ciphertext: any().nullable(),
180
+ }),
181
+ contractorInfo: object({
182
+ contractorName: string(),
183
+ accessType: string(),
184
+ ciphertext: string(),
185
+ }),
186
+ rate: object({
187
+ amount: number(),
188
+ }).nullable(),
189
+ feedback: object({
190
+ feedbackSuppressed: boolean(),
191
+ score: number(),
192
+ comment: string(),
193
+ feedback_suppressed: boolean(),
194
+ }),
195
+ feedbackToClient: object({
196
+ feedbackSuppressed: boolean(),
197
+ score: number(),
198
+ comment: string(),
199
+ feedback_suppressed: boolean(),
200
+ }),
201
+ isEDCPublic: boolean(),
202
+ }));
203
+ const sandsSchema = object({
204
+ occupation: object({
205
+ freeText: string().nullable(),
206
+ ontologyId: string(),
207
+ prefLabel: string(),
208
+ id: string(),
209
+ uid: string(),
210
+ }),
211
+ ontologySkills: array(any()),
212
+ additionalSkills: array(object({
213
+ uid: string(),
214
+ name: string(),
215
+ isFreeText: boolean(),
216
+ })),
217
+ });
218
+ const connectsSchema = object({
219
+ pricing: object({
220
+ price: number(),
221
+ context: string(),
222
+ auctionPrice: number(),
223
+ }),
224
+ requiredConnects: number(),
225
+ availableConnects: number(),
226
+ chooseConnectsStatus: object({
227
+ isExplainerModalShown: boolean().nullable(),
228
+ }),
229
+ canSeeApplicantsRates: boolean(),
230
+ });
231
+ const authSchema = object({
232
+ canFlagOpening: boolean(),
233
+ canPostJob: boolean(),
234
+ domestic: object({
235
+ country: string().nullable(),
236
+ isInfographicTooltipAvailable: boolean(),
237
+ }),
238
+ });
239
+ const applicationContextSchema = object({
240
+ freelancerAllowed: boolean(),
241
+ clientAllowed: boolean(),
242
+ userIntentEvaluation: object({
243
+ isDeclined: boolean(),
244
+ reason: string().nullable(),
245
+ }),
246
+ canApplyOnBehalfOfAgencyFreelancers: boolean(),
247
+ canSubmitMoreProposals: boolean(),
248
+ submittedProposals: any().nullable(),
249
+ });
250
+ export const nuxtStateJobSchema = object({
251
+ cache: boolean(),
252
+ job: jobSchema,
253
+ buyer: buyerSchema,
254
+ currentUserInfo: currentUserInfoSchema,
255
+ isVisitor: boolean(),
256
+ openJobs: array(any()),
257
+ workHistory: workHistorySchema,
258
+ similarJobs: array(any()),
259
+ sands: sandsSchema,
260
+ auth: authSchema,
261
+ applicants: object({
262
+ applicantsBidsStats: any().nullable(),
263
+ }),
264
+ connects: connectsSchema.nullish(),
265
+ enterpriseJobAdditionalInfo: record(any()),
266
+ applicationContext: applicationContextSchema,
267
+ profileMatchServiceUid: string(),
268
+ seo: object({
269
+ title: string(),
270
+ description: string(),
271
+ url: string(),
272
+ }),
273
+ teamUid: any().nullable(),
274
+ proposalPermissions: object({
275
+ freelancerAllowed: boolean(),
276
+ clientAllowed: boolean(),
277
+ }),
278
+ jobSlug: any().nullable(),
279
+ prefillWith: any().nullable(),
280
+ isGroupOpportunity: boolean(),
281
+ workLocation: any().nullable(),
282
+ isPhoneVerified: boolean(),
283
+ errorResponse: any().nullable(),
284
+ isApplyBlocked: boolean(),
285
+ hasAiInterview: boolean(),
286
+ talentFeePromotion: boolean().nullish(),
287
+ });
@@ -1,17 +1 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./log-event"), exports);
1
+ export * from "./log-event";
@@ -1,66 +1,117 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.logEventSchema = exports.LogEventTypeEnum = void 0;
4
- const zod_1 = require("zod");
5
- exports.LogEventTypeEnum = zod_1.z.enum([
1
+ import { boolean, number, object, string, z } from 'zod';
2
+ import { jobActivityOffsetHourSchema, jobActivitySchema, jobListingSchema, } from '../lead';
3
+ import { regionSchema } from '../shared';
4
+ export const LogEventTypeEnum = z.enum([
6
5
  // Scraper Events
7
- "scraperStarted",
8
- "scraperCompleted",
9
- "jobScraped",
10
- "jobsIndexed",
11
- "jobDuplicateSkipped",
12
- "scraperFailed",
13
- "userProfileScrapingStarted",
14
- "userProfileScrapingComplete",
15
- "userProfileScrapingFailed",
6
+ 'scraperStarted',
7
+ 'scraperCompleted',
8
+ 'jobScraped',
9
+ 'jobScrapeFailed',
10
+ 'jobsIndexed',
11
+ 'jobDuplicateSkipped',
12
+ 'scraperFailed',
13
+ 'jobActivityScraped',
14
+ 'jobActivityScrapeFailed',
15
+ // Feed Scraper Events
16
+ 'feedScrapeStarted',
17
+ 'feedScrapeCompleted',
18
+ 'feedScrapeFailed',
19
+ 'jobListingScraped',
16
20
  // Job Sync & Campaign Matching
17
- "jobSyncPublished",
18
- "jobSyncReceived",
19
- "leadsCreatedAndSynced",
21
+ 'jobSyncPublished',
22
+ 'jobSyncReceived',
23
+ 'leadsCreatedAndSynced',
20
24
  // Suitability Events
21
- "suitabilityPending",
22
- "suitabilityProcessing",
23
- "suitabilityComplete",
24
- "suitabilityFailed",
25
- "manualSuitabilityAnalyzed",
25
+ 'suitabilityPending',
26
+ 'suitabilityProcessing',
27
+ 'suitabilityComplete',
28
+ 'suitabilityFailed',
29
+ 'manualSuitabilityAnalyzed',
26
30
  // Proposal Events
27
- "proposalProcessing",
28
- "proposalComplete",
29
- "proposalFailed",
30
- "manualProposalGenerated",
31
+ 'proposalProcessing',
32
+ 'proposalComplete',
33
+ 'proposalFailed',
34
+ 'manualProposalGenerated',
31
35
  // Bidding Events
32
- "biddingProcessing",
33
- "biddingComplete",
34
- "biddingFailed",
35
- "biddingSkipped",
36
- "biddingPending",
36
+ 'biddingProcessing',
37
+ 'biddingComplete',
38
+ 'biddingFailed',
39
+ 'biddingSkipped',
40
+ 'biddingPending',
41
+ 'biddingRetry',
42
+ 'biddingInsufficientConnects',
43
+ 'biddingWarningAlert',
37
44
  // System/Generic Events
38
- "errorLogged",
39
- "cloudTaskRetry",
40
- "manualLeadEdited",
41
- "leadArchived",
42
- "auditTrailLogged",
45
+ 'errorLogged',
46
+ 'cloudTaskRetry',
47
+ 'manualLeadEdited',
48
+ 'leadArchived',
49
+ 'auditTrailLogged',
43
50
  // Knowledge Base Events
44
- "knowledgeBaseGenerationComplete",
45
- "knowledgeBaseGenerationFailed",
51
+ 'knowledgeBaseGenerationComplete',
52
+ 'knowledgeBaseGenerationFailed',
53
+ // Model Chain Events
54
+ 'modelFailed',
46
55
  ]);
47
- exports.logEventSchema = zod_1.z.object({
56
+ export const logEventSchema = z.object({
48
57
  // The type of event (use a z.enum if possible)
49
- type: exports.LogEventTypeEnum, // e.g. "suitability-failed", "proposal-generated"
58
+ type: LogEventTypeEnum, // e.g. "suitability-failed", "proposal-generated"
50
59
  // The service that triggered the event
51
- source: zod_1.z.string(), // e.g. "lancer-agents", "lancer-bidding"
60
+ source: z.string(), // e.g. "lancer-agents", "lancer-bidding"
52
61
  // Optional: Allow logging non-lead events in the future
53
- resourceType: zod_1.z.string().default("lead"), // e.g. "lead", "campaign", "user"
62
+ resourceType: z.string().default('lead'), // e.g. "lead", "campaign", "user"
54
63
  // ID of the resource (primary entity affected)
55
- resourceId: zod_1.z.string().nullable(), // fallback if leadId is not applicable
64
+ resourceId: z.string().nullable(), // fallback if leadId is not applicable
56
65
  // Lead-level metadata
57
- leadId: zod_1.z.string().nullable(),
58
- campaignId: zod_1.z.string().nullable(),
59
- userId: zod_1.z.string().nullable(),
66
+ leadId: z.string().nullable(),
67
+ campaignId: z.string().nullable(),
68
+ userId: z.string().nullable(),
60
69
  // Reason or message for the event
61
- reason: zod_1.z.string().nullable(),
70
+ reason: z.string().nullable(),
62
71
  // Generic metadata (stacktrace, score, raw request, etc.)
63
- metadata: zod_1.z.record(zod_1.z.unknown()).nullable(),
72
+ metadata: z.record(z.unknown()).nullable(),
64
73
  // Optional timestamp override
65
- timestamp: zod_1.z.number(),
74
+ timestamp: z.number(),
75
+ });
76
+ export const listingScrapedEventMetadata = object({
77
+ listing: jobListingSchema,
78
+ region: regionSchema,
79
+ });
80
+ export const jobActivityScrapedEventMetadata = object({
81
+ activity: jobActivitySchema,
82
+ region: regionSchema,
83
+ offsetHour: jobActivityOffsetHourSchema,
84
+ scrapedAt: number(),
85
+ });
86
+ export const jobActivityScrapeFailedEventMetadata = object({
87
+ listing: jobListingSchema,
88
+ region: regionSchema,
89
+ offsetHour: jobActivityOffsetHourSchema,
90
+ });
91
+ export const feedScrapeStartedEventMetadata = object({
92
+ id: string(),
93
+ startTime: number(),
94
+ region: regionSchema,
95
+ });
96
+ export const feedScrapeCompletedEventMetadata = object({
97
+ id: string(),
98
+ endTime: number(),
99
+ region: regionSchema,
100
+ accountUsername: string(),
101
+ });
102
+ export const biddingCompletedEventMetadata = object({
103
+ biddingAmount: number(),
104
+ boosted: boolean(),
105
+ boostingAmount: number(),
106
+ });
107
+ export const biddingFailedEventMetadata = object({
108
+ errorType: string(),
109
+ errorMessage: string(),
110
+ context: z.string().optional(),
111
+ });
112
+ export const biddingWarningAlertEventMetadata = object({
113
+ warningMessage: string(),
114
+ });
115
+ export const biddingRetryEventMetadata = object({
116
+ errorMessage: string(),
66
117
  });
@@ -0,0 +1,12 @@
1
+ export declare const usageEventSchema: import("zod").ZodObject<{
2
+ organizationId: import("zod").ZodString;
3
+ eventId: any;
4
+ }, "strip", import("zod").ZodTypeAny, {
5
+ [x: string]: any;
6
+ organizationId?: unknown;
7
+ eventId?: unknown;
8
+ }, {
9
+ [x: string]: any;
10
+ organizationId?: unknown;
11
+ eventId?: unknown;
12
+ }>;
@@ -1,33 +1,37 @@
1
1
  import { z } from "zod";
2
- export declare const coverLetterSchema: z.ZodObject<{
2
+ export declare const coverLetterTemplateSchema: z.ZodObject<{
3
3
  id: z.ZodString;
4
4
  name: z.ZodString;
5
- coverLetterExample: z.ZodString;
6
- coverLetterRules: z.ZodString;
5
+ description: z.ZodNullable<z.ZodString>;
6
+ template: z.ZodString;
7
+ instructions: z.ZodString;
7
8
  }, "strip", z.ZodTypeAny, {
8
9
  id: string;
9
10
  name: string;
10
- coverLetterExample: string;
11
- coverLetterRules: string;
11
+ description: string | null;
12
+ template: string;
13
+ instructions: string;
12
14
  }, {
13
15
  id: string;
14
16
  name: string;
15
- coverLetterExample: string;
16
- coverLetterRules: string;
17
+ description: string | null;
18
+ template: string;
19
+ instructions: string;
17
20
  }>;
18
- export declare const createCoverLetterSchema: z.ZodObject<Pick<{
21
+ export declare const createCoverLetterTemplateSchema: z.ZodObject<Pick<{
19
22
  id: z.ZodString;
20
23
  name: z.ZodString;
21
- coverLetterExample: z.ZodString;
22
- coverLetterRules: z.ZodString;
23
- }, "name" | "coverLetterExample" | "coverLetterRules">, "strip", z.ZodTypeAny, {
24
+ description: z.ZodNullable<z.ZodString>;
25
+ template: z.ZodString;
26
+ instructions: z.ZodString;
27
+ }, "name" | "template" | "instructions">, "strip", z.ZodTypeAny, {
24
28
  name: string;
25
- coverLetterExample: string;
26
- coverLetterRules: string;
29
+ template: string;
30
+ instructions: string;
27
31
  }, {
28
32
  name: string;
29
- coverLetterExample: string;
30
- coverLetterRules: string;
33
+ template: string;
34
+ instructions: string;
31
35
  }>;
32
- export type CoverLetter = z.infer<typeof coverLetterSchema>;
33
- export type CreateCoverLetter = z.infer<typeof createCoverLetterSchema>;
36
+ export type CoverLetterTemplate = z.infer<typeof coverLetterTemplateSchema>;
37
+ export type CreateCoverLetterTemplate = z.infer<typeof createCoverLetterTemplateSchema>;
@@ -1,5 +1,6 @@
1
1
  import { infer, z } from "zod";
2
- import { CoverLetter } from "./cover-letter";
2
+ import { OnboardingProgress } from "./onboarding";
3
+ import { CoverLetterTemplate } from "./cover-letter";
3
4
  export declare const organizationTypeSchema: z.ZodEnum<["agency", "freelancer"]>;
4
5
  export declare const organizationTierEnum: z.ZodEnum<["free", "premium"]>;
5
6
  export declare const limitsSchema: z.ZodObject<{
@@ -673,9 +674,10 @@ export declare const subscribePayloadSchema: z.ZodObject<{
673
674
  toltReferral?: string | undefined;
674
675
  }>;
675
676
  export interface Organization extends infer<typeof organizationSchema> {
676
- coverLetterTemplates: CoverLetter[] | null;
677
+ coverLetterTemplates: CoverLetterTemplate[] | null;
677
678
  settings: OrganizationSettings | null;
678
679
  profile: OrganizationProfile | null;
680
+ onboarding: OnboardingProgress | null;
679
681
  }
680
682
  export interface TrackUsagePayloadSchema extends infer<typeof trackUsagePayloadSchema> {
681
683
  }
@@ -1,17 +1,70 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./organization"), exports);
1
+ import { boolean, number, object, string, z } from "zod";
2
+ import { LogEventTypeEnum } from "../logger";
3
+ import { organizationSubscriptionSchema } from "./subscription";
4
+ export const bidConfigSchema = object({
5
+ agencyName: string().nullable(),
6
+ bidderId: string().nullable(),
7
+ contractorName: string().nullable(),
8
+ specialisedProfile: string().nullable(),
9
+ });
10
+ export const organizationTypeSchema = z.enum(["agency", "freelancer"]);
11
+ export const organizationTierEnum = z.enum(["free", "premium"]);
12
+ export const organizationLimitsSchema = object({
13
+ monthlyCredits: number(),
14
+ usedCredits: number(),
15
+ extraCredits: number(),
16
+ });
17
+ export const organizationBillingSchema = object({
18
+ stripeCustomerId: string(),
19
+ savedCard: boolean(),
20
+ creditsRemaining: number(),
21
+ });
22
+ export const organizationSchema = object({
23
+ id: string(),
24
+ name: string(),
25
+ type: organizationTypeSchema,
26
+ tierId: organizationTierEnum,
27
+ subscription: organizationSubscriptionSchema.nullable(),
28
+ bidConfig: bidConfigSchema,
29
+ active: boolean(),
30
+ limits: organizationLimitsSchema,
31
+ billing: organizationBillingSchema.nullable(),
32
+ createdAt: number(),
33
+ updatedAt: number(),
34
+ });
35
+ export const creditDeductionEventTypeEnum = LogEventTypeEnum.extract([
36
+ "suitabilityComplete",
37
+ "proposalComplete",
38
+ ]);
39
+ export const creditDeductionPayloadSchema = object({
40
+ event: creditDeductionEventTypeEnum,
41
+ campaignId: string().nullish(),
42
+ });
43
+ export const aiConfigOldSchema = object({
44
+ id: string(),
45
+ suitabilityPrompt: string().nullable(),
46
+ proposalPrompt: string().nullable(),
47
+ questionProposalPrompt: string().nullable(),
48
+ knowledgeBase: string().nullable(),
49
+ });
50
+ export const aiConfigSchema = object({
51
+ suitabilityRules: string().nullable(),
52
+ coverLetterRules: string().nullable(),
53
+ questionRules: string().nullable(),
54
+ });
55
+ export const knowledgeBaseSchema = object({
56
+ about: string(),
57
+ caseStudies: string(),
58
+ });
59
+ export const notificationConfigSchema = object({
60
+ emailEnabled: boolean(),
61
+ discordWebhookUrl: string().nullable(),
62
+ slackWebhookUrl: string().nullable(),
63
+ });
64
+ export const organizationSettingsSchema = object({
65
+ aiConfig: aiConfigSchema,
66
+ knowledgeBase: knowledgeBaseSchema,
67
+ notifications: notificationConfigSchema,
68
+ });
69
+ export * from "./member";
70
+ export * from "./subscription";
@@ -0,0 +1,7 @@
1
+ import { number, object, string, z } from "zod";
2
+ export const organizationMemberRoleEnum = z.enum(["admin", "member"]);
3
+ export const organizationMemberSchema = object({
4
+ role: organizationMemberRoleEnum,
5
+ joinedAt: number(),
6
+ invitedBy: string(),
7
+ });