@corsair-dev/wiza 0.1.0

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.
@@ -0,0 +1,279 @@
1
+ import type { BindEndpoints, CorsairEndpoint, CorsairErrorHandler, CorsairPlugin, CorsairPluginContext, KeyBuilderContext, PickAuth, PluginPermissionsConfig } from 'corsair/core';
2
+ import type { WizaEndpointInputs, WizaEndpointOutputs } from './endpoints/types';
3
+ import { WizaSchema } from './schema';
4
+ export type WizaPluginOptions = {
5
+ authType?: PickAuth<'api_key'>;
6
+ key?: string;
7
+ hooks?: InternalWizaPlugin['hooks'];
8
+ errorHandlers?: CorsairErrorHandler;
9
+ permissions?: PluginPermissionsConfig<typeof wizaEndpointsNested>;
10
+ };
11
+ export type WizaContext = CorsairPluginContext<typeof WizaSchema, WizaPluginOptions>;
12
+ export type WizaKeyBuilderContext = KeyBuilderContext<WizaPluginOptions>;
13
+ export type WizaBoundEndpoints = BindEndpoints<typeof wizaEndpointsNested>;
14
+ type WizaEndpoint<K extends keyof WizaEndpointOutputs> = CorsairEndpoint<WizaContext, WizaEndpointInputs[K], WizaEndpointOutputs[K]>;
15
+ export type WizaEndpoints = {
16
+ creditsGet: WizaEndpoint<'creditsGet'>;
17
+ individualRevealsStart: WizaEndpoint<'individualRevealsStart'>;
18
+ individualRevealsGet: WizaEndpoint<'individualRevealsGet'>;
19
+ listsGet: WizaEndpoint<'listsGet'>;
20
+ prospectsSearch: WizaEndpoint<'prospectsSearch'>;
21
+ };
22
+ declare const wizaEndpointsNested: {
23
+ readonly credits: {
24
+ readonly get: WizaEndpoint<"creditsGet">;
25
+ };
26
+ readonly individualReveals: {
27
+ readonly start: WizaEndpoint<"individualRevealsStart">;
28
+ readonly get: WizaEndpoint<"individualRevealsGet">;
29
+ };
30
+ readonly lists: {
31
+ readonly get: WizaEndpoint<"listsGet">;
32
+ };
33
+ readonly prospects: {
34
+ readonly search: WizaEndpoint<"prospectsSearch">;
35
+ };
36
+ };
37
+ export declare const wizaEndpointSchemas: {
38
+ readonly 'credits.get': {
39
+ readonly input: import("zod").ZodObject<{}, import("zod/v4/core").$strip>;
40
+ readonly output: import("zod").ZodObject<{
41
+ credits: import("zod").ZodObject<{
42
+ email_credits: import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodLiteral<"unlimited">]>;
43
+ phone_credits: import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodLiteral<"unlimited">]>;
44
+ export_credits: import("zod").ZodOptional<import("zod").ZodNumber>;
45
+ api_credits: import("zod").ZodOptional<import("zod").ZodNumber>;
46
+ }, import("zod/v4/core").$loose>;
47
+ }, import("zod/v4/core").$loose>;
48
+ };
49
+ readonly 'individualReveals.start': {
50
+ readonly input: import("zod").ZodObject<{
51
+ individual_reveal: import("zod").ZodObject<{
52
+ profile_url: import("zod").ZodOptional<import("zod").ZodString>;
53
+ full_name: import("zod").ZodOptional<import("zod").ZodString>;
54
+ company: import("zod").ZodOptional<import("zod").ZodString>;
55
+ domain: import("zod").ZodOptional<import("zod").ZodString>;
56
+ email: import("zod").ZodOptional<import("zod").ZodString>;
57
+ }, import("zod/v4/core").$strip>;
58
+ enrichment_level: import("zod").ZodEnum<{
59
+ partial: "partial";
60
+ none: "none";
61
+ phone: "phone";
62
+ full: "full";
63
+ }>;
64
+ email_options: import("zod").ZodOptional<import("zod").ZodObject<{
65
+ accept_work: import("zod").ZodOptional<import("zod").ZodBoolean>;
66
+ accept_personal: import("zod").ZodOptional<import("zod").ZodBoolean>;
67
+ }, import("zod/v4/core").$strip>>;
68
+ callback_url: import("zod").ZodOptional<import("zod").ZodString>;
69
+ }, import("zod/v4/core").$strip>;
70
+ readonly output: import("zod").ZodObject<{
71
+ status: import("zod").ZodObject<{
72
+ code: import("zod").ZodNumber;
73
+ message: import("zod").ZodOptional<import("zod").ZodString>;
74
+ }, import("zod/v4/core").$loose>;
75
+ type: import("zod").ZodOptional<import("zod").ZodString>;
76
+ data: import("zod").ZodObject<{
77
+ id: import("zod").ZodNumber;
78
+ status: import("zod").ZodEnum<{
79
+ failed: "failed";
80
+ queued: "queued";
81
+ resolving: "resolving";
82
+ finished: "finished";
83
+ }>;
84
+ is_complete: import("zod").ZodBoolean;
85
+ }, import("zod/v4/core").$loose>;
86
+ }, import("zod/v4/core").$loose>;
87
+ };
88
+ readonly 'individualReveals.get': {
89
+ readonly input: import("zod").ZodObject<{
90
+ id: import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodNumber]>;
91
+ }, import("zod/v4/core").$strip>;
92
+ readonly output: import("zod").ZodObject<{
93
+ status: import("zod").ZodObject<{
94
+ code: import("zod").ZodNumber;
95
+ message: import("zod").ZodOptional<import("zod").ZodString>;
96
+ }, import("zod/v4/core").$loose>;
97
+ type: import("zod").ZodOptional<import("zod").ZodString>;
98
+ data: import("zod").ZodObject<{
99
+ id: import("zod").ZodNumber;
100
+ status: import("zod").ZodEnum<{
101
+ failed: "failed";
102
+ queued: "queued";
103
+ resolving: "resolving";
104
+ finished: "finished";
105
+ }>;
106
+ is_complete: import("zod").ZodBoolean;
107
+ name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
108
+ company: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
109
+ enrichment_level: import("zod").ZodOptional<import("zod").ZodString>;
110
+ linkedin_profile_url: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
111
+ title: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
112
+ location: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
113
+ email: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
114
+ email_type: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
115
+ email_status: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
116
+ emails: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
117
+ email: import("zod").ZodString;
118
+ email_type: import("zod").ZodOptional<import("zod").ZodString>;
119
+ email_status: import("zod").ZodOptional<import("zod").ZodString>;
120
+ }, import("zod/v4/core").$loose>>>;
121
+ mobile_phone: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
122
+ phone_number: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
123
+ phone_status: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
124
+ phones: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
125
+ number: import("zod").ZodString;
126
+ pretty_number: import("zod").ZodOptional<import("zod").ZodString>;
127
+ type: import("zod").ZodOptional<import("zod").ZodString>;
128
+ }, import("zod/v4/core").$loose>>>;
129
+ company_domain: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
130
+ company_industry: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
131
+ company_size: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodNumber>>;
132
+ company_size_range: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
133
+ company_linkedin: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
134
+ company_location: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
135
+ credits: import("zod").ZodOptional<import("zod").ZodUnknown>;
136
+ }, import("zod/v4/core").$loose>;
137
+ }, import("zod/v4/core").$loose>;
138
+ };
139
+ readonly 'lists.get': {
140
+ readonly input: import("zod").ZodObject<{
141
+ id: import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodNumber]>;
142
+ }, import("zod/v4/core").$strip>;
143
+ readonly output: import("zod").ZodObject<{
144
+ status: import("zod").ZodObject<{
145
+ code: import("zod").ZodNumber;
146
+ message: import("zod").ZodOptional<import("zod").ZodString>;
147
+ }, import("zod/v4/core").$loose>;
148
+ type: import("zod").ZodOptional<import("zod").ZodString>;
149
+ data: import("zod").ZodObject<{
150
+ id: import("zod").ZodNumber;
151
+ name: import("zod").ZodOptional<import("zod").ZodString>;
152
+ status: import("zod").ZodString;
153
+ stats: import("zod").ZodOptional<import("zod").ZodUnknown>;
154
+ finished_at: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
155
+ created_at: import("zod").ZodOptional<import("zod").ZodString>;
156
+ enrichment_level: import("zod").ZodOptional<import("zod").ZodString>;
157
+ email_options: import("zod").ZodOptional<import("zod").ZodUnknown>;
158
+ report_type: import("zod").ZodOptional<import("zod").ZodString>;
159
+ }, import("zod/v4/core").$loose>;
160
+ }, import("zod/v4/core").$loose>;
161
+ };
162
+ readonly 'prospects.search': {
163
+ readonly input: import("zod").ZodObject<{
164
+ size: import("zod").ZodOptional<import("zod").ZodNumber>;
165
+ filters: import("zod").ZodObject<{
166
+ first_name: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
167
+ last_name: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
168
+ job_title: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
169
+ v: import("zod").ZodString;
170
+ s: import("zod").ZodOptional<import("zod").ZodEnum<{
171
+ i: "i";
172
+ e: "e";
173
+ }>>;
174
+ b: import("zod").ZodOptional<import("zod").ZodEnum<{
175
+ state: "state";
176
+ city: "city";
177
+ country: "country";
178
+ }>>;
179
+ }, import("zod/v4/core").$loose>>>;
180
+ job_title_level: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
181
+ job_role: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
182
+ location: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
183
+ v: import("zod").ZodString;
184
+ s: import("zod").ZodOptional<import("zod").ZodEnum<{
185
+ i: "i";
186
+ e: "e";
187
+ }>>;
188
+ b: import("zod").ZodOptional<import("zod").ZodEnum<{
189
+ state: "state";
190
+ city: "city";
191
+ country: "country";
192
+ }>>;
193
+ }, import("zod/v4/core").$loose>>>;
194
+ skill: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
195
+ job_company: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
196
+ v: import("zod").ZodString;
197
+ s: import("zod").ZodOptional<import("zod").ZodEnum<{
198
+ i: "i";
199
+ e: "e";
200
+ }>>;
201
+ b: import("zod").ZodOptional<import("zod").ZodEnum<{
202
+ state: "state";
203
+ city: "city";
204
+ country: "country";
205
+ }>>;
206
+ }, import("zod/v4/core").$loose>>>;
207
+ past_company: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
208
+ v: import("zod").ZodString;
209
+ s: import("zod").ZodOptional<import("zod").ZodEnum<{
210
+ i: "i";
211
+ e: "e";
212
+ }>>;
213
+ b: import("zod").ZodOptional<import("zod").ZodEnum<{
214
+ state: "state";
215
+ city: "city";
216
+ country: "country";
217
+ }>>;
218
+ }, import("zod/v4/core").$loose>>>;
219
+ company_location: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
220
+ v: import("zod").ZodString;
221
+ s: import("zod").ZodOptional<import("zod").ZodEnum<{
222
+ i: "i";
223
+ e: "e";
224
+ }>>;
225
+ b: import("zod").ZodOptional<import("zod").ZodEnum<{
226
+ state: "state";
227
+ city: "city";
228
+ country: "country";
229
+ }>>;
230
+ }, import("zod/v4/core").$loose>>>;
231
+ company_industry: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
232
+ v: import("zod").ZodString;
233
+ s: import("zod").ZodOptional<import("zod").ZodEnum<{
234
+ i: "i";
235
+ e: "e";
236
+ }>>;
237
+ b: import("zod").ZodOptional<import("zod").ZodEnum<{
238
+ state: "state";
239
+ city: "city";
240
+ country: "country";
241
+ }>>;
242
+ }, import("zod/v4/core").$loose>>>;
243
+ company_size: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
244
+ }, import("zod/v4/core").$loose>;
245
+ }, import("zod/v4/core").$strip>;
246
+ readonly output: import("zod").ZodObject<{
247
+ status: import("zod").ZodObject<{
248
+ code: import("zod").ZodNumber;
249
+ message: import("zod").ZodOptional<import("zod").ZodString>;
250
+ }, import("zod/v4/core").$loose>;
251
+ data: import("zod").ZodObject<{
252
+ total: import("zod").ZodNumber;
253
+ profiles: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
254
+ full_name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
255
+ linkedin_url: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
256
+ industry: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
257
+ job_title: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
258
+ job_title_role: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
259
+ job_title_sub_role: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
260
+ job_company_name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
261
+ job_company_website: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
262
+ location_name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
263
+ }, import("zod/v4/core").$loose>>>;
264
+ }, import("zod/v4/core").$loose>;
265
+ }, import("zod/v4/core").$loose>;
266
+ };
267
+ };
268
+ declare const defaultAuthType: "api_key";
269
+ export declare const wizaAuthConfig: {
270
+ readonly api_key: {
271
+ readonly account: readonly ["tenant_external_id"];
272
+ };
273
+ };
274
+ export type BaseWizaPlugin<T extends WizaPluginOptions> = CorsairPlugin<'wiza', typeof WizaSchema, typeof wizaEndpointsNested, Record<string, never>, T, typeof defaultAuthType>;
275
+ export type InternalWizaPlugin = BaseWizaPlugin<WizaPluginOptions>;
276
+ export type ExternalWizaPlugin<T extends WizaPluginOptions> = BaseWizaPlugin<T>;
277
+ export declare function wiza<const T extends WizaPluginOptions>(incomingOptions?: WizaPluginOptions & T): ExternalWizaPlugin<T>;
278
+ export type { GetCreditsInput, GetCreditsResponse, GetIndividualRevealInput, GetIndividualRevealResponse, GetListInput, GetListResponse, ProspectSearchInput, ProspectSearchResponse, StartIndividualRevealInput, StartIndividualRevealResponse, WizaEndpointInputs, WizaEndpointOutputs, } from './endpoints/types';
279
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ import{logEventFromContext as C}from"corsair/core";import{ApiError as P,request as w}from"corsair/http";var u=class extends Error{constructor(o){super(o),this.name="WizaAPIError"}},k="https://wiza.co";async function s(t,o,i={}){let{method:a="GET",body:h,query:W}=i,x={BASE:k,VERSION:"1.0.0",WITH_CREDENTIALS:!1,CREDENTIALS:"omit",TOKEN:o,HEADERS:{"Content-Type":"application/json"}},G={method:a,url:t,body:a==="POST"||a==="PUT"||a==="PATCH"?h:void 0,mediaType:"application/json; charset=utf-8",query:W};try{return await w(x,G)}catch(d){throw d instanceof P?d:d instanceof Error?new u(d.message):new u("Unknown error")}}var j=async(t,o)=>{let i=await s("/api/meta/credits",t.key,{method:"GET"});return await C(t,"wiza.credits.get",{api_credits:i.credits.api_credits},"completed"),i},g={get:j};import{logEventFromContext as b}from"corsair/core";var T=async(t,o)=>{let i=await s("/api/individual_reveals",t.key,{method:"POST",body:o});return await t.db.reveals.upsertByEntityId(String(i.data.id),{id:i.data.id,status:i.data.status,is_complete:i.data.is_complete,enrichment_level:o.enrichment_level,updatedAt:new Date}),await b(t,"wiza.individualReveals.start",{id:i.data.id,status:i.data.status},"completed"),i},A=async(t,o)=>{let i=await s(`/api/individual_reveals/${o.id}`,t.key,{method:"GET"});return await t.db.reveals.upsertByEntityId(String(i.data.id),{...i.data,updatedAt:new Date}),await b(t,"wiza.individualReveals.get",{id:i.data.id,status:i.data.status},"completed"),i},c={start:T,get:A};import{logEventFromContext as L}from"corsair/core";var O=async(t,o)=>{let i=await s(`/api/lists/${o.id}`,t.key,{method:"GET"});return await t.db.lists.upsertByEntityId(String(i.data.id),{id:i.data.id,name:i.data.name,status:i.data.status,enrichment_level:i.data.enrichment_level,report_type:i.data.report_type,created_at:i.data.created_at,finished_at:i.data.finished_at,updatedAt:new Date}),await L(t,"wiza.lists.get",{id:i.data.id,status:i.data.status},"completed"),i},f={get:O};import{logEventFromContext as B}from"corsair/core";var q=async(t,o)=>{let i=await s("/api/prospects/search",t.key,{method:"POST",body:o});for(let a of i.data.profiles??[])a.linkedin_url&&await t.db.prospects.upsertByEntityId(a.linkedin_url,{linkedin_url:a.linkedin_url,full_name:a.full_name,job_title:a.job_title,job_company_name:a.job_company_name,industry:a.industry,location_name:a.location_name,updatedAt:new Date});return await B(t,"wiza.prospects.search",{total:i.data.total},"completed"),i},v={search:q};import{z as e}from"zod";var m=e.object({code:e.number(),message:e.string().optional()}).loose(),_=e.enum(["queued","resolving","finished","failed"]),H=e.object({}),D=e.object({credits:e.object({email_credits:e.union([e.number(),e.literal("unlimited")]),phone_credits:e.union([e.number(),e.literal("unlimited")]),export_credits:e.number().optional(),api_credits:e.number().optional()}).loose()}).loose(),N=e.object({profile_url:e.string().optional(),full_name:e.string().optional(),company:e.string().optional(),domain:e.string().optional(),email:e.string().optional()}).refine(t=>!!(t.profile_url||t.email||t.full_name&&(t.company||t.domain)),{message:"Provide profile_url, email, or full_name with company or domain"}),K=e.object({individual_reveal:N,enrichment_level:e.enum(["none","partial","phone","full"]),email_options:e.object({accept_work:e.boolean().optional(),accept_personal:e.boolean().optional()}).optional(),callback_url:e.string().optional()}),M=e.object({status:m,type:e.string().optional(),data:e.object({id:e.number(),status:_,is_complete:e.boolean()}).loose()}).loose(),F=e.object({id:e.union([e.string(),e.number()])}),U=e.object({email:e.string(),email_type:e.string().optional(),email_status:e.string().optional()}).loose(),V=e.object({number:e.string(),pretty_number:e.string().optional(),type:e.string().optional()}).loose(),$=e.object({status:m,type:e.string().optional(),data:e.object({id:e.number(),status:_,is_complete:e.boolean(),name:e.string().nullable().optional(),company:e.string().nullable().optional(),enrichment_level:e.string().optional(),linkedin_profile_url:e.string().nullable().optional(),title:e.string().nullable().optional(),location:e.string().nullable().optional(),email:e.string().nullable().optional(),email_type:e.string().nullable().optional(),email_status:e.string().nullable().optional(),emails:e.array(U).optional(),mobile_phone:e.string().nullable().optional(),phone_number:e.string().nullable().optional(),phone_status:e.string().nullable().optional(),phones:e.array(V).optional(),company_domain:e.string().nullable().optional(),company_industry:e.string().nullable().optional(),company_size:e.number().nullable().optional(),company_size_range:e.string().nullable().optional(),company_linkedin:e.string().nullable().optional(),company_location:e.string().nullable().optional(),credits:e.unknown().optional()}).loose()}).loose(),Z=e.object({id:e.union([e.string(),e.number()])}),J=e.object({status:m,type:e.string().optional(),data:e.object({id:e.number(),name:e.string().optional(),status:e.string(),stats:e.unknown().optional(),finished_at:e.string().nullable().optional(),created_at:e.string().optional(),enrichment_level:e.string().optional(),email_options:e.unknown().optional(),report_type:e.string().optional()}).loose()}).loose(),r=e.object({v:e.string(),s:e.enum(["i","e"]).optional(),b:e.enum(["city","state","country"]).optional()}).loose(),Q=e.object({size:e.number().int().min(0).max(30).optional(),filters:e.object({first_name:e.array(e.string()).optional(),last_name:e.array(e.string()).optional(),job_title:e.array(r).optional(),job_title_level:e.array(e.string()).optional(),job_role:e.array(e.string()).optional(),location:e.array(r).optional(),skill:e.array(e.string()).optional(),job_company:e.array(r).optional(),past_company:e.array(r).optional(),company_location:e.array(r).optional(),company_industry:e.array(r).optional(),company_size:e.array(e.string()).optional()}).loose()}),X=e.object({full_name:e.string().nullable().optional(),linkedin_url:e.string().nullable().optional(),industry:e.string().nullable().optional(),job_title:e.string().nullable().optional(),job_title_role:e.string().nullable().optional(),job_title_sub_role:e.string().nullable().optional(),job_company_name:e.string().nullable().optional(),job_company_website:e.string().nullable().optional(),location_name:e.string().nullable().optional()}).loose(),Y=e.object({status:m,data:e.object({total:e.number(),profiles:e.array(X).optional()}).loose()}).loose(),l={creditsGet:H,individualRevealsStart:K,individualRevealsGet:F,listsGet:Z,prospectsSearch:Q},p={creditsGet:D,individualRevealsStart:M,individualRevealsGet:$,listsGet:J,prospectsSearch:Y};import{ApiError as y}from"corsair/http";var R={RATE_LIMIT_ERROR:{match:t=>t instanceof y&&t.status===429?!0:/\brate[_\s-]?limit(?:ed)?\b/i.test(t.message),handler:async t=>{let o;return t instanceof y&&t.retryAfter!==void 0&&(o=t.retryAfter),{maxRetries:5,headersRetryAfterMs:o}}},AUTH_ERROR:{match:t=>{if(t instanceof y&&t.status===401)return!0;let o=t.message.toLowerCase();return o.includes("unauthorized")||o.includes("invalid_auth")},handler:async()=>({maxRetries:0})},SERVER_ERROR:{match:t=>{if(t instanceof y&&t.status>=500)return!0;let o=t.message.toLowerCase();return o.includes("econnreset")||o.includes("etimedout")||o.includes("enotfound")||o.includes("network")},handler:async(t,o)=>o.operation==="individualReveals.start"?{maxRetries:0}:{maxRetries:3}},DEFAULT:{match:()=>!0,handler:async()=>({maxRetries:0})}};import{z as n}from"zod";var z=n.object({id:n.number(),status:n.string(),is_complete:n.boolean().optional(),name:n.string().nullable().optional(),company:n.string().nullable().optional(),title:n.string().nullable().optional(),location:n.string().nullable().optional(),linkedin_profile_url:n.string().nullable().optional(),email:n.string().nullable().optional(),email_status:n.string().nullable().optional(),mobile_phone:n.string().nullable().optional(),phone_number:n.string().nullable().optional(),company_domain:n.string().nullable().optional(),company_industry:n.string().nullable().optional(),enrichment_level:n.string().optional(),updatedAt:n.coerce.date().optional()}).loose(),S=n.object({id:n.number(),name:n.string().optional(),status:n.string(),enrichment_level:n.string().optional(),report_type:n.string().optional(),created_at:n.string().optional(),finished_at:n.string().nullable().optional(),updatedAt:n.coerce.date().optional()}).loose(),E=n.object({linkedin_url:n.string().nullable().optional(),full_name:n.string().nullable().optional(),job_title:n.string().nullable().optional(),job_company_name:n.string().nullable().optional(),industry:n.string().nullable().optional(),location_name:n.string().nullable().optional(),updatedAt:n.coerce.date().optional()}).loose();var I={version:"1.0.0",entities:{reveals:z,lists:S,prospects:E}};var ee={credits:{get:g.get},individualReveals:{start:c.start,get:c.get},lists:{get:f.get},prospects:{search:v.search}},te={"credits.get":{input:l.creditsGet,output:p.creditsGet},"individualReveals.start":{input:l.individualRevealsStart,output:p.individualRevealsStart},"individualReveals.get":{input:l.individualRevealsGet,output:p.individualRevealsGet},"lists.get":{input:l.listsGet,output:p.listsGet},"prospects.search":{input:l.prospectsSearch,output:p.prospectsSearch}},ie="api_key",ne={"credits.get":{riskLevel:"read",description:"Get the number of remaining API credits (emails, phones, exports) in your Wiza account"},"individualReveals.start":{riskLevel:"write",description:"Start an individual reveal to enrich a single contact in real time (consumes credits)"},"individualReveals.get":{riskLevel:"read",description:"Get the status and enriched results of an individual reveal by ID"},"lists.get":{riskLevel:"read",description:"Get the processing status and details of a list by ID"},"prospects.search":{riskLevel:"read",description:"Search for prospects matching filters (job title, location, company, industry)"}},oe={api_key:{account:["tenant_external_id"]}};function Oe(t={}){let o={...t,authType:t.authType??ie};return{id:"wiza",authConfig:oe,schema:I,options:o,hooks:o.hooks,endpoints:ee,webhooks:{},endpointMeta:ne,endpointSchemas:te,webhookSchemas:{},pluginWebhookMatcher:()=>!1,errorHandlers:{...R,...o.errorHandlers},keyBuilder:async(i,a)=>a==="endpoint"&&o.key?o.key:a==="endpoint"&&i.authType==="api_key"?await i.keys.get_api_key()??"":""}}export{Oe as wiza,oe as wizaAuthConfig,te as wizaEndpointSchemas};
@@ -0,0 +1,42 @@
1
+ import { z } from 'zod';
2
+ export declare const WizaReveal: z.ZodObject<{
3
+ id: z.ZodNumber;
4
+ status: z.ZodString;
5
+ is_complete: z.ZodOptional<z.ZodBoolean>;
6
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7
+ company: z.ZodOptional<z.ZodNullable<z.ZodString>>;
8
+ title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
9
+ location: z.ZodOptional<z.ZodNullable<z.ZodString>>;
10
+ linkedin_profile_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
11
+ email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
12
+ email_status: z.ZodOptional<z.ZodNullable<z.ZodString>>;
13
+ mobile_phone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
14
+ phone_number: z.ZodOptional<z.ZodNullable<z.ZodString>>;
15
+ company_domain: z.ZodOptional<z.ZodNullable<z.ZodString>>;
16
+ company_industry: z.ZodOptional<z.ZodNullable<z.ZodString>>;
17
+ enrichment_level: z.ZodOptional<z.ZodString>;
18
+ updatedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
19
+ }, z.core.$loose>;
20
+ export type WizaReveal = z.infer<typeof WizaReveal>;
21
+ export declare const WizaList: z.ZodObject<{
22
+ id: z.ZodNumber;
23
+ name: z.ZodOptional<z.ZodString>;
24
+ status: z.ZodString;
25
+ enrichment_level: z.ZodOptional<z.ZodString>;
26
+ report_type: z.ZodOptional<z.ZodString>;
27
+ created_at: z.ZodOptional<z.ZodString>;
28
+ finished_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
29
+ updatedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
30
+ }, z.core.$loose>;
31
+ export type WizaList = z.infer<typeof WizaList>;
32
+ export declare const WizaProspect: z.ZodObject<{
33
+ linkedin_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
34
+ full_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
35
+ job_title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
36
+ job_company_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
37
+ industry: z.ZodOptional<z.ZodNullable<z.ZodString>>;
38
+ location_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
39
+ updatedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
40
+ }, z.core.$loose>;
41
+ export type WizaProspect = z.infer<typeof WizaProspect>;
42
+ //# sourceMappingURL=database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../schema/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;iBAmBd,CAAC;AACV,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD,eAAO,MAAM,QAAQ;;;;;;;;;iBAWZ,CAAC;AACV,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD,eAAO,MAAM,YAAY;;;;;;;;iBAUhB,CAAC;AACV,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
@@ -0,0 +1,43 @@
1
+ export declare const WizaSchema: {
2
+ readonly version: "1.0.0";
3
+ readonly entities: {
4
+ readonly reveals: import("zod").ZodObject<{
5
+ id: import("zod").ZodNumber;
6
+ status: import("zod").ZodString;
7
+ is_complete: import("zod").ZodOptional<import("zod").ZodBoolean>;
8
+ name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
9
+ company: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
10
+ title: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
11
+ location: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
12
+ linkedin_profile_url: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
13
+ email: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
14
+ email_status: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
15
+ mobile_phone: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
16
+ phone_number: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
17
+ company_domain: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
18
+ company_industry: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
19
+ enrichment_level: import("zod").ZodOptional<import("zod").ZodString>;
20
+ updatedAt: import("zod").ZodOptional<import("zod").ZodCoercedDate<unknown>>;
21
+ }, import("zod/v4/core").$loose>;
22
+ readonly lists: import("zod").ZodObject<{
23
+ id: import("zod").ZodNumber;
24
+ name: import("zod").ZodOptional<import("zod").ZodString>;
25
+ status: import("zod").ZodString;
26
+ enrichment_level: import("zod").ZodOptional<import("zod").ZodString>;
27
+ report_type: import("zod").ZodOptional<import("zod").ZodString>;
28
+ created_at: import("zod").ZodOptional<import("zod").ZodString>;
29
+ finished_at: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
30
+ updatedAt: import("zod").ZodOptional<import("zod").ZodCoercedDate<unknown>>;
31
+ }, import("zod/v4/core").$loose>;
32
+ readonly prospects: import("zod").ZodObject<{
33
+ linkedin_url: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
34
+ full_name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
35
+ job_title: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
36
+ job_company_name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
37
+ industry: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
38
+ location_name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
39
+ updatedAt: import("zod").ZodOptional<import("zod").ZodCoercedDate<unknown>>;
40
+ }, import("zod/v4/core").$loose>;
41
+ };
42
+ };
43
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../schema/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOb,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=schema.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.test.d.ts","sourceRoot":"","sources":["../schema.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("tsup").Options | import("tsup").Options[] | ((overrideOptions: import("tsup").Options) => import("tsup").Options | import("tsup").Options[] | Promise<import("tsup").Options | import("tsup").Options[]>);
2
+ export default _default;
3
+ //# sourceMappingURL=tsup.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsup.config.d.ts","sourceRoot":"","sources":["../tsup.config.ts"],"names":[],"mappings":";AAEA,wBAYG"}
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "@corsair-dev/wiza",
3
+ "version": "0.1.0",
4
+ "description": "Wiza plugin for Corsair",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "dev-source": "./index.ts",
12
+ "types": "./dist/index.d.ts",
13
+ "default": "./dist/index.js"
14
+ }
15
+ },
16
+ "peerDependencies": {
17
+ "corsair": ">=0.1.0",
18
+ "zod": "^4.1.13"
19
+ },
20
+ "devDependencies": {
21
+ "@types/jest": "^29.5.14",
22
+ "jest": "^29.7.0",
23
+ "ts-jest": "^29.4.9",
24
+ "tsup": "^8.0.1",
25
+ "typescript": "^5.9.3",
26
+ "zod": "^4.1.13",
27
+ "corsair": "0.1.113"
28
+ },
29
+ "keywords": [
30
+ "corsair",
31
+ "wiza",
32
+ "plugin"
33
+ ],
34
+ "author": "",
35
+ "license": "Apache-2.0",
36
+ "files": [
37
+ "dist"
38
+ ],
39
+ "scripts": {
40
+ "build": "rm -rf dist && tsc --build --force && tsup",
41
+ "typecheck": "tsc --noEmit",
42
+ "test": "jest"
43
+ }
44
+ }