@medalsocial/sdk 1.3.0 → 1.4.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.
@@ -4,259 +4,105 @@ import '../src/openapi.generated.js';
4
4
 
5
5
  declare const SendEmailSchema: z.ZodObject<{
6
6
  template_slug: z.ZodString;
7
- to: z.ZodString;
7
+ to: z.ZodEmail;
8
8
  name: z.ZodOptional<z.ZodString>;
9
9
  locale: z.ZodOptional<z.ZodString>;
10
10
  variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
11
- }, "strip", z.ZodTypeAny, {
12
- template_slug: string;
13
- to: string;
14
- name?: string | undefined;
15
- locale?: string | undefined;
16
- variables?: Record<string, string> | undefined;
17
- }, {
18
- template_slug: string;
19
- to: string;
20
- name?: string | undefined;
21
- locale?: string | undefined;
22
- variables?: Record<string, string> | undefined;
23
- }>;
11
+ }, z.core.$strip>;
24
12
  declare const CreateContactSchema: z.ZodObject<{
25
- email: z.ZodString;
13
+ email: z.ZodEmail;
26
14
  first_name: z.ZodOptional<z.ZodString>;
27
15
  last_name: z.ZodOptional<z.ZodString>;
28
16
  phone: z.ZodOptional<z.ZodString>;
29
17
  company: z.ZodOptional<z.ZodString>;
30
18
  job_title: z.ZodOptional<z.ZodString>;
31
- status: z.ZodOptional<z.ZodEnum<["lead", "prospect", "customer", "churned", "archived"]>>;
19
+ status: z.ZodOptional<z.ZodEnum<{
20
+ lead: "lead";
21
+ prospect: "prospect";
22
+ customer: "customer";
23
+ churned: "churned";
24
+ archived: "archived";
25
+ }>>;
32
26
  notes: z.ZodOptional<z.ZodString>;
33
- }, "strip", z.ZodTypeAny, {
34
- email: string;
35
- status?: "lead" | "prospect" | "customer" | "churned" | "archived" | undefined;
36
- first_name?: string | undefined;
37
- last_name?: string | undefined;
38
- phone?: string | undefined;
39
- company?: string | undefined;
40
- job_title?: string | undefined;
41
- notes?: string | undefined;
42
- }, {
43
- email: string;
44
- status?: "lead" | "prospect" | "customer" | "churned" | "archived" | undefined;
45
- first_name?: string | undefined;
46
- last_name?: string | undefined;
47
- phone?: string | undefined;
48
- company?: string | undefined;
49
- job_title?: string | undefined;
50
- notes?: string | undefined;
51
- }>;
27
+ }, z.core.$strip>;
52
28
  declare const AddContactNoteSchema: z.ZodObject<{
53
29
  contactId: z.ZodString;
54
30
  content: z.ZodString;
55
- }, "strip", z.ZodTypeAny, {
56
- contactId: string;
57
- content: string;
58
- }, {
59
- contactId: string;
60
- content: string;
61
- }>;
31
+ }, z.core.$strip>;
62
32
  declare const CookieConsentSchema: z.ZodObject<{
63
33
  domain: z.ZodString;
64
- consentStatus: z.ZodEnum<["granted", "denied", "partial"]>;
34
+ consentStatus: z.ZodEnum<{
35
+ granted: "granted";
36
+ denied: "denied";
37
+ partial: "partial";
38
+ }>;
65
39
  consentTimestamp: z.ZodString;
66
40
  ipAddress: z.ZodOptional<z.ZodString>;
67
41
  userAgent: z.ZodOptional<z.ZodString>;
68
42
  cookiePreferences: z.ZodObject<{
69
43
  necessary: z.ZodOptional<z.ZodObject<{
70
44
  allowed: z.ZodBoolean;
71
- }, "strip", z.ZodTypeAny, {
72
- allowed: boolean;
73
- }, {
74
- allowed: boolean;
75
- }>>;
45
+ }, z.core.$strip>>;
76
46
  analytics: z.ZodOptional<z.ZodObject<{
77
47
  allowed: z.ZodBoolean;
78
- }, "strip", z.ZodTypeAny, {
79
- allowed: boolean;
80
- }, {
81
- allowed: boolean;
82
- }>>;
48
+ }, z.core.$strip>>;
83
49
  marketing: z.ZodOptional<z.ZodObject<{
84
50
  allowed: z.ZodBoolean;
85
- }, "strip", z.ZodTypeAny, {
86
- allowed: boolean;
87
- }, {
88
- allowed: boolean;
89
- }>>;
51
+ }, z.core.$strip>>;
90
52
  functional: z.ZodOptional<z.ZodObject<{
91
53
  allowed: z.ZodBoolean;
92
- }, "strip", z.ZodTypeAny, {
93
- allowed: boolean;
94
- }, {
95
- allowed: boolean;
96
- }>>;
97
- }, "strip", z.ZodTypeAny, {
98
- necessary?: {
99
- allowed: boolean;
100
- } | undefined;
101
- analytics?: {
102
- allowed: boolean;
103
- } | undefined;
104
- marketing?: {
105
- allowed: boolean;
106
- } | undefined;
107
- functional?: {
108
- allowed: boolean;
109
- } | undefined;
110
- }, {
111
- necessary?: {
112
- allowed: boolean;
113
- } | undefined;
114
- analytics?: {
115
- allowed: boolean;
116
- } | undefined;
117
- marketing?: {
118
- allowed: boolean;
119
- } | undefined;
120
- functional?: {
121
- allowed: boolean;
122
- } | undefined;
123
- }>;
124
- }, "strip", z.ZodTypeAny, {
125
- domain: string;
126
- consentStatus: "granted" | "denied" | "partial";
127
- consentTimestamp: string;
128
- cookiePreferences: {
129
- necessary?: {
130
- allowed: boolean;
131
- } | undefined;
132
- analytics?: {
133
- allowed: boolean;
134
- } | undefined;
135
- marketing?: {
136
- allowed: boolean;
137
- } | undefined;
138
- functional?: {
139
- allowed: boolean;
140
- } | undefined;
141
- };
142
- ipAddress?: string | undefined;
143
- userAgent?: string | undefined;
144
- }, {
145
- domain: string;
146
- consentStatus: "granted" | "denied" | "partial";
147
- consentTimestamp: string;
148
- cookiePreferences: {
149
- necessary?: {
150
- allowed: boolean;
151
- } | undefined;
152
- analytics?: {
153
- allowed: boolean;
154
- } | undefined;
155
- marketing?: {
156
- allowed: boolean;
157
- } | undefined;
158
- functional?: {
159
- allowed: boolean;
160
- } | undefined;
161
- };
162
- ipAddress?: string | undefined;
163
- userAgent?: string | undefined;
164
- }>;
54
+ }, z.core.$strip>>;
55
+ }, z.core.$strip>;
56
+ }, z.core.$strip>;
165
57
  declare const RecordConsentSchema: z.ZodObject<{
166
- email: z.ZodString;
167
- consent_type: z.ZodEnum<["marketing_email", "analytics_tracking", "third_party_sharing"]>;
58
+ email: z.ZodEmail;
59
+ consent_type: z.ZodEnum<{
60
+ marketing_email: "marketing_email";
61
+ analytics_tracking: "analytics_tracking";
62
+ third_party_sharing: "third_party_sharing";
63
+ }>;
168
64
  granted: z.ZodBoolean;
169
65
  source: z.ZodOptional<z.ZodString>;
170
66
  ip_address: z.ZodOptional<z.ZodString>;
171
- }, "strip", z.ZodTypeAny, {
172
- email: string;
173
- granted: boolean;
174
- consent_type: "marketing_email" | "analytics_tracking" | "third_party_sharing";
175
- source?: string | undefined;
176
- ip_address?: string | undefined;
177
- }, {
178
- email: string;
179
- granted: boolean;
180
- consent_type: "marketing_email" | "analytics_tracking" | "third_party_sharing";
181
- source?: string | undefined;
182
- ip_address?: string | undefined;
183
- }>;
67
+ }, z.core.$strip>;
184
68
  declare const CreateDealSchema: z.ZodObject<{
185
69
  title: z.ZodString;
186
70
  description: z.ZodOptional<z.ZodString>;
187
71
  value: z.ZodOptional<z.ZodNumber>;
188
72
  currency: z.ZodOptional<z.ZodString>;
189
- contact_email: z.ZodOptional<z.ZodString>;
73
+ contact_email: z.ZodOptional<z.ZodEmail>;
190
74
  notes: z.ZodOptional<z.ZodString>;
191
- }, "strip", z.ZodTypeAny, {
192
- title: string;
193
- value?: number | undefined;
194
- notes?: string | undefined;
195
- description?: string | undefined;
196
- currency?: string | undefined;
197
- contact_email?: string | undefined;
198
- }, {
199
- title: string;
200
- value?: number | undefined;
201
- notes?: string | undefined;
202
- description?: string | undefined;
203
- currency?: string | undefined;
204
- contact_email?: string | undefined;
205
- }>;
75
+ }, z.core.$strip>;
206
76
  declare function createMedalTools(client: Medal): {
207
77
  sendEmail: {
208
78
  description: string;
209
79
  parameters: z.ZodObject<{
210
80
  template_slug: z.ZodString;
211
- to: z.ZodString;
81
+ to: z.ZodEmail;
212
82
  name: z.ZodOptional<z.ZodString>;
213
83
  locale: z.ZodOptional<z.ZodString>;
214
84
  variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
215
- }, "strip", z.ZodTypeAny, {
216
- template_slug: string;
217
- to: string;
218
- name?: string | undefined;
219
- locale?: string | undefined;
220
- variables?: Record<string, string> | undefined;
221
- }, {
222
- template_slug: string;
223
- to: string;
224
- name?: string | undefined;
225
- locale?: string | undefined;
226
- variables?: Record<string, string> | undefined;
227
- }>;
85
+ }, z.core.$strip>;
228
86
  execute: (args: z.infer<typeof SendEmailSchema>) => Promise<ApiResponse<EmailSendResult>>;
229
87
  };
230
88
  createContact: {
231
89
  description: string;
232
90
  parameters: z.ZodObject<{
233
- email: z.ZodString;
91
+ email: z.ZodEmail;
234
92
  first_name: z.ZodOptional<z.ZodString>;
235
93
  last_name: z.ZodOptional<z.ZodString>;
236
94
  phone: z.ZodOptional<z.ZodString>;
237
95
  company: z.ZodOptional<z.ZodString>;
238
96
  job_title: z.ZodOptional<z.ZodString>;
239
- status: z.ZodOptional<z.ZodEnum<["lead", "prospect", "customer", "churned", "archived"]>>;
97
+ status: z.ZodOptional<z.ZodEnum<{
98
+ lead: "lead";
99
+ prospect: "prospect";
100
+ customer: "customer";
101
+ churned: "churned";
102
+ archived: "archived";
103
+ }>>;
240
104
  notes: z.ZodOptional<z.ZodString>;
241
- }, "strip", z.ZodTypeAny, {
242
- email: string;
243
- status?: "lead" | "prospect" | "customer" | "churned" | "archived" | undefined;
244
- first_name?: string | undefined;
245
- last_name?: string | undefined;
246
- phone?: string | undefined;
247
- company?: string | undefined;
248
- job_title?: string | undefined;
249
- notes?: string | undefined;
250
- }, {
251
- email: string;
252
- status?: "lead" | "prospect" | "customer" | "churned" | "archived" | undefined;
253
- first_name?: string | undefined;
254
- last_name?: string | undefined;
255
- phone?: string | undefined;
256
- company?: string | undefined;
257
- job_title?: string | undefined;
258
- notes?: string | undefined;
259
- }>;
105
+ }, z.core.$strip>;
260
106
  execute: (args: z.infer<typeof CreateContactSchema>) => Promise<ApiResponse<ContactCreateResult>>;
261
107
  };
262
108
  addContactNote: {
@@ -264,120 +110,36 @@ declare function createMedalTools(client: Medal): {
264
110
  parameters: z.ZodObject<{
265
111
  contactId: z.ZodString;
266
112
  content: z.ZodString;
267
- }, "strip", z.ZodTypeAny, {
268
- contactId: string;
269
- content: string;
270
- }, {
271
- contactId: string;
272
- content: string;
273
- }>;
113
+ }, z.core.$strip>;
274
114
  execute: (args: z.infer<typeof AddContactNoteSchema>) => Promise<ApiResponse<ContactNoteResult>>;
275
115
  };
276
116
  recordCookieConsent: {
277
117
  description: string;
278
118
  parameters: z.ZodObject<{
279
119
  domain: z.ZodString;
280
- consentStatus: z.ZodEnum<["granted", "denied", "partial"]>;
120
+ consentStatus: z.ZodEnum<{
121
+ granted: "granted";
122
+ denied: "denied";
123
+ partial: "partial";
124
+ }>;
281
125
  consentTimestamp: z.ZodString;
282
126
  ipAddress: z.ZodOptional<z.ZodString>;
283
127
  userAgent: z.ZodOptional<z.ZodString>;
284
128
  cookiePreferences: z.ZodObject<{
285
129
  necessary: z.ZodOptional<z.ZodObject<{
286
130
  allowed: z.ZodBoolean;
287
- }, "strip", z.ZodTypeAny, {
288
- allowed: boolean;
289
- }, {
290
- allowed: boolean;
291
- }>>;
131
+ }, z.core.$strip>>;
292
132
  analytics: z.ZodOptional<z.ZodObject<{
293
133
  allowed: z.ZodBoolean;
294
- }, "strip", z.ZodTypeAny, {
295
- allowed: boolean;
296
- }, {
297
- allowed: boolean;
298
- }>>;
134
+ }, z.core.$strip>>;
299
135
  marketing: z.ZodOptional<z.ZodObject<{
300
136
  allowed: z.ZodBoolean;
301
- }, "strip", z.ZodTypeAny, {
302
- allowed: boolean;
303
- }, {
304
- allowed: boolean;
305
- }>>;
137
+ }, z.core.$strip>>;
306
138
  functional: z.ZodOptional<z.ZodObject<{
307
139
  allowed: z.ZodBoolean;
308
- }, "strip", z.ZodTypeAny, {
309
- allowed: boolean;
310
- }, {
311
- allowed: boolean;
312
- }>>;
313
- }, "strip", z.ZodTypeAny, {
314
- necessary?: {
315
- allowed: boolean;
316
- } | undefined;
317
- analytics?: {
318
- allowed: boolean;
319
- } | undefined;
320
- marketing?: {
321
- allowed: boolean;
322
- } | undefined;
323
- functional?: {
324
- allowed: boolean;
325
- } | undefined;
326
- }, {
327
- necessary?: {
328
- allowed: boolean;
329
- } | undefined;
330
- analytics?: {
331
- allowed: boolean;
332
- } | undefined;
333
- marketing?: {
334
- allowed: boolean;
335
- } | undefined;
336
- functional?: {
337
- allowed: boolean;
338
- } | undefined;
339
- }>;
340
- }, "strip", z.ZodTypeAny, {
341
- domain: string;
342
- consentStatus: "granted" | "denied" | "partial";
343
- consentTimestamp: string;
344
- cookiePreferences: {
345
- necessary?: {
346
- allowed: boolean;
347
- } | undefined;
348
- analytics?: {
349
- allowed: boolean;
350
- } | undefined;
351
- marketing?: {
352
- allowed: boolean;
353
- } | undefined;
354
- functional?: {
355
- allowed: boolean;
356
- } | undefined;
357
- };
358
- ipAddress?: string | undefined;
359
- userAgent?: string | undefined;
360
- }, {
361
- domain: string;
362
- consentStatus: "granted" | "denied" | "partial";
363
- consentTimestamp: string;
364
- cookiePreferences: {
365
- necessary?: {
366
- allowed: boolean;
367
- } | undefined;
368
- analytics?: {
369
- allowed: boolean;
370
- } | undefined;
371
- marketing?: {
372
- allowed: boolean;
373
- } | undefined;
374
- functional?: {
375
- allowed: boolean;
376
- } | undefined;
377
- };
378
- ipAddress?: string | undefined;
379
- userAgent?: string | undefined;
380
- }>;
140
+ }, z.core.$strip>>;
141
+ }, z.core.$strip>;
142
+ }, z.core.$strip>;
381
143
  execute: (args: z.infer<typeof CookieConsentSchema>) => Promise<{
382
144
  success: boolean;
383
145
  logId?: string;
@@ -386,24 +148,16 @@ declare function createMedalTools(client: Medal): {
386
148
  recordConsent: {
387
149
  description: string;
388
150
  parameters: z.ZodObject<{
389
- email: z.ZodString;
390
- consent_type: z.ZodEnum<["marketing_email", "analytics_tracking", "third_party_sharing"]>;
151
+ email: z.ZodEmail;
152
+ consent_type: z.ZodEnum<{
153
+ marketing_email: "marketing_email";
154
+ analytics_tracking: "analytics_tracking";
155
+ third_party_sharing: "third_party_sharing";
156
+ }>;
391
157
  granted: z.ZodBoolean;
392
158
  source: z.ZodOptional<z.ZodString>;
393
159
  ip_address: z.ZodOptional<z.ZodString>;
394
- }, "strip", z.ZodTypeAny, {
395
- email: string;
396
- granted: boolean;
397
- consent_type: "marketing_email" | "analytics_tracking" | "third_party_sharing";
398
- source?: string | undefined;
399
- ip_address?: string | undefined;
400
- }, {
401
- email: string;
402
- granted: boolean;
403
- consent_type: "marketing_email" | "analytics_tracking" | "third_party_sharing";
404
- source?: string | undefined;
405
- ip_address?: string | undefined;
406
- }>;
160
+ }, z.core.$strip>;
407
161
  execute: (args: z.infer<typeof RecordConsentSchema>) => Promise<ApiResponse<ConsentResult>>;
408
162
  };
409
163
  createDeal: {
@@ -413,23 +167,9 @@ declare function createMedalTools(client: Medal): {
413
167
  description: z.ZodOptional<z.ZodString>;
414
168
  value: z.ZodOptional<z.ZodNumber>;
415
169
  currency: z.ZodOptional<z.ZodString>;
416
- contact_email: z.ZodOptional<z.ZodString>;
170
+ contact_email: z.ZodOptional<z.ZodEmail>;
417
171
  notes: z.ZodOptional<z.ZodString>;
418
- }, "strip", z.ZodTypeAny, {
419
- title: string;
420
- value?: number | undefined;
421
- notes?: string | undefined;
422
- description?: string | undefined;
423
- currency?: string | undefined;
424
- contact_email?: string | undefined;
425
- }, {
426
- title: string;
427
- value?: number | undefined;
428
- notes?: string | undefined;
429
- description?: string | undefined;
430
- currency?: string | undefined;
431
- contact_email?: string | undefined;
432
- }>;
172
+ }, z.core.$strip>;
433
173
  execute: (args: z.infer<typeof CreateDealSchema>) => Promise<ApiResponse<DealCreateResult>>;
434
174
  };
435
175
  };
@@ -26,13 +26,13 @@ module.exports = __toCommonJS(pilot_exports);
26
26
  var import_zod = require("zod");
27
27
  var SendEmailSchema = import_zod.z.object({
28
28
  template_slug: import_zod.z.string(),
29
- to: import_zod.z.string().email(),
29
+ to: import_zod.z.email(),
30
30
  name: import_zod.z.string().optional(),
31
31
  locale: import_zod.z.string().optional(),
32
- variables: import_zod.z.record(import_zod.z.string()).optional()
32
+ variables: import_zod.z.record(import_zod.z.string(), import_zod.z.string()).optional()
33
33
  });
34
34
  var CreateContactSchema = import_zod.z.object({
35
- email: import_zod.z.string().email(),
35
+ email: import_zod.z.email(),
36
36
  first_name: import_zod.z.string().optional(),
37
37
  last_name: import_zod.z.string().optional(),
38
38
  phone: import_zod.z.string().optional(),
@@ -59,7 +59,7 @@ var CookieConsentSchema = import_zod.z.object({
59
59
  })
60
60
  });
61
61
  var RecordConsentSchema = import_zod.z.object({
62
- email: import_zod.z.string().email(),
62
+ email: import_zod.z.email(),
63
63
  consent_type: import_zod.z.enum(["marketing_email", "analytics_tracking", "third_party_sharing"]),
64
64
  granted: import_zod.z.boolean(),
65
65
  source: import_zod.z.string().optional(),
@@ -70,7 +70,7 @@ var CreateDealSchema = import_zod.z.object({
70
70
  description: import_zod.z.string().optional(),
71
71
  value: import_zod.z.number().optional(),
72
72
  currency: import_zod.z.string().optional(),
73
- contact_email: import_zod.z.string().email().optional(),
73
+ contact_email: import_zod.z.email().optional(),
74
74
  notes: import_zod.z.string().optional()
75
75
  });
76
76
  function createMedalTools(client) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../pilot/index.ts"],"sourcesContent":["import { z } from \"zod\";\nimport type { Medal } from \"../src/index.js\";\n\nconst SendEmailSchema = z.object({\n template_slug: z.string(),\n to: z.string().email(),\n name: z.string().optional(),\n locale: z.string().optional(),\n variables: z.record(z.string()).optional(),\n});\n\nconst CreateContactSchema = z.object({\n email: z.string().email(),\n first_name: z.string().optional(),\n last_name: z.string().optional(),\n phone: z.string().optional(),\n company: z.string().optional(),\n job_title: z.string().optional(),\n status: z.enum([\"lead\", \"prospect\", \"customer\", \"churned\", \"archived\"]).optional(),\n notes: z.string().optional(),\n});\n\nconst AddContactNoteSchema = z.object({\n contactId: z.string(),\n content: z.string(),\n});\n\nconst CookieConsentSchema = z.object({\n domain: z.string(),\n consentStatus: z.enum([\"granted\", \"denied\", \"partial\"]),\n consentTimestamp: z.string(),\n ipAddress: z.string().optional(),\n userAgent: z.string().optional(),\n cookiePreferences: z.object({\n necessary: z.object({ allowed: z.boolean() }).optional(),\n analytics: z.object({ allowed: z.boolean() }).optional(),\n marketing: z.object({ allowed: z.boolean() }).optional(),\n functional: z.object({ allowed: z.boolean() }).optional(),\n }),\n});\n\nconst RecordConsentSchema = z.object({\n email: z.string().email(),\n consent_type: z.enum([\"marketing_email\", \"analytics_tracking\", \"third_party_sharing\"]),\n granted: z.boolean(),\n source: z.string().optional(),\n ip_address: z.string().optional(),\n});\n\nconst CreateDealSchema = z.object({\n title: z.string(),\n description: z.string().optional(),\n value: z.number().optional(),\n currency: z.string().optional(),\n contact_email: z.string().email().optional(),\n notes: z.string().optional(),\n});\n\nexport function createMedalTools(client: Medal) {\n return {\n sendEmail: {\n description: \"Send a transactional email using a template\",\n parameters: SendEmailSchema,\n execute: async (args: z.infer<typeof SendEmailSchema>) => client.emails.send(args),\n },\n createContact: {\n description: \"Create a new contact in Medal Social CRM\",\n parameters: CreateContactSchema,\n execute: async (args: z.infer<typeof CreateContactSchema>) => client.contacts.create(args),\n },\n addContactNote: {\n description: \"Add a note to a contact's timeline\",\n parameters: AddContactNoteSchema,\n execute: async (args: z.infer<typeof AddContactNoteSchema>) =>\n client.contacts.addNote(args.contactId, { content: args.content }),\n },\n recordCookieConsent: {\n description: \"Record a user's cookie consent preferences\",\n parameters: CookieConsentSchema,\n execute: async (args: z.infer<typeof CookieConsentSchema>) => client.gdpr.cookieConsent(args),\n },\n recordConsent: {\n description: \"Record a GDPR consent decision for a contact by email\",\n parameters: RecordConsentSchema,\n execute: async (args: z.infer<typeof RecordConsentSchema>) => client.gdpr.recordConsent(args),\n },\n createDeal: {\n description: \"Create a new deal in Medal Social CRM\",\n parameters: CreateDealSchema,\n execute: async (args: z.infer<typeof CreateDealSchema>) => client.deals.create(args),\n },\n };\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../pilot/index.ts"],"sourcesContent":["import { z } from \"zod\";\nimport type { Medal } from \"../src/index.js\";\n\nconst SendEmailSchema = z.object({\n template_slug: z.string(),\n to: z.email(),\n name: z.string().optional(),\n locale: z.string().optional(),\n variables: z.record(z.string(), z.string()).optional(),\n});\n\nconst CreateContactSchema = z.object({\n email: z.email(),\n first_name: z.string().optional(),\n last_name: z.string().optional(),\n phone: z.string().optional(),\n company: z.string().optional(),\n job_title: z.string().optional(),\n status: z.enum([\"lead\", \"prospect\", \"customer\", \"churned\", \"archived\"]).optional(),\n notes: z.string().optional(),\n});\n\nconst AddContactNoteSchema = z.object({\n contactId: z.string(),\n content: z.string(),\n});\n\nconst CookieConsentSchema = z.object({\n domain: z.string(),\n consentStatus: z.enum([\"granted\", \"denied\", \"partial\"]),\n consentTimestamp: z.string(),\n ipAddress: z.string().optional(),\n userAgent: z.string().optional(),\n cookiePreferences: z.object({\n necessary: z.object({ allowed: z.boolean() }).optional(),\n analytics: z.object({ allowed: z.boolean() }).optional(),\n marketing: z.object({ allowed: z.boolean() }).optional(),\n functional: z.object({ allowed: z.boolean() }).optional(),\n }),\n});\n\nconst RecordConsentSchema = z.object({\n email: z.email(),\n consent_type: z.enum([\"marketing_email\", \"analytics_tracking\", \"third_party_sharing\"]),\n granted: z.boolean(),\n source: z.string().optional(),\n ip_address: z.string().optional(),\n});\n\nconst CreateDealSchema = z.object({\n title: z.string(),\n description: z.string().optional(),\n value: z.number().optional(),\n currency: z.string().optional(),\n contact_email: z.email().optional(),\n notes: z.string().optional(),\n});\n\nexport function createMedalTools(client: Medal) {\n return {\n sendEmail: {\n description: \"Send a transactional email using a template\",\n parameters: SendEmailSchema,\n execute: async (args: z.infer<typeof SendEmailSchema>) => client.emails.send(args),\n },\n createContact: {\n description: \"Create a new contact in Medal Social CRM\",\n parameters: CreateContactSchema,\n execute: async (args: z.infer<typeof CreateContactSchema>) => client.contacts.create(args),\n },\n addContactNote: {\n description: \"Add a note to a contact's timeline\",\n parameters: AddContactNoteSchema,\n execute: async (args: z.infer<typeof AddContactNoteSchema>) =>\n client.contacts.addNote(args.contactId, { content: args.content }),\n },\n recordCookieConsent: {\n description: \"Record a user's cookie consent preferences\",\n parameters: CookieConsentSchema,\n execute: async (args: z.infer<typeof CookieConsentSchema>) => client.gdpr.cookieConsent(args),\n },\n recordConsent: {\n description: \"Record a GDPR consent decision for a contact by email\",\n parameters: RecordConsentSchema,\n execute: async (args: z.infer<typeof RecordConsentSchema>) => client.gdpr.recordConsent(args),\n },\n createDeal: {\n description: \"Create a new deal in Medal Social CRM\",\n parameters: CreateDealSchema,\n execute: async (args: z.infer<typeof CreateDealSchema>) => client.deals.create(args),\n },\n };\n}\n"],"mappings":"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","names":[]}
@@ -2,13 +2,13 @@
2
2
  import { z } from "zod";
3
3
  var SendEmailSchema = z.object({
4
4
  template_slug: z.string(),
5
- to: z.string().email(),
5
+ to: z.email(),
6
6
  name: z.string().optional(),
7
7
  locale: z.string().optional(),
8
- variables: z.record(z.string()).optional()
8
+ variables: z.record(z.string(), z.string()).optional()
9
9
  });
10
10
  var CreateContactSchema = z.object({
11
- email: z.string().email(),
11
+ email: z.email(),
12
12
  first_name: z.string().optional(),
13
13
  last_name: z.string().optional(),
14
14
  phone: z.string().optional(),
@@ -35,7 +35,7 @@ var CookieConsentSchema = z.object({
35
35
  })
36
36
  });
37
37
  var RecordConsentSchema = z.object({
38
- email: z.string().email(),
38
+ email: z.email(),
39
39
  consent_type: z.enum(["marketing_email", "analytics_tracking", "third_party_sharing"]),
40
40
  granted: z.boolean(),
41
41
  source: z.string().optional(),
@@ -46,7 +46,7 @@ var CreateDealSchema = z.object({
46
46
  description: z.string().optional(),
47
47
  value: z.number().optional(),
48
48
  currency: z.string().optional(),
49
- contact_email: z.string().email().optional(),
49
+ contact_email: z.email().optional(),
50
50
  notes: z.string().optional()
51
51
  });
52
52
  function createMedalTools(client) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../pilot/index.ts"],"sourcesContent":["import { z } from \"zod\";\nimport type { Medal } from \"../src/index.js\";\n\nconst SendEmailSchema = z.object({\n template_slug: z.string(),\n to: z.string().email(),\n name: z.string().optional(),\n locale: z.string().optional(),\n variables: z.record(z.string()).optional(),\n});\n\nconst CreateContactSchema = z.object({\n email: z.string().email(),\n first_name: z.string().optional(),\n last_name: z.string().optional(),\n phone: z.string().optional(),\n company: z.string().optional(),\n job_title: z.string().optional(),\n status: z.enum([\"lead\", \"prospect\", \"customer\", \"churned\", \"archived\"]).optional(),\n notes: z.string().optional(),\n});\n\nconst AddContactNoteSchema = z.object({\n contactId: z.string(),\n content: z.string(),\n});\n\nconst CookieConsentSchema = z.object({\n domain: z.string(),\n consentStatus: z.enum([\"granted\", \"denied\", \"partial\"]),\n consentTimestamp: z.string(),\n ipAddress: z.string().optional(),\n userAgent: z.string().optional(),\n cookiePreferences: z.object({\n necessary: z.object({ allowed: z.boolean() }).optional(),\n analytics: z.object({ allowed: z.boolean() }).optional(),\n marketing: z.object({ allowed: z.boolean() }).optional(),\n functional: z.object({ allowed: z.boolean() }).optional(),\n }),\n});\n\nconst RecordConsentSchema = z.object({\n email: z.string().email(),\n consent_type: z.enum([\"marketing_email\", \"analytics_tracking\", \"third_party_sharing\"]),\n granted: z.boolean(),\n source: z.string().optional(),\n ip_address: z.string().optional(),\n});\n\nconst CreateDealSchema = z.object({\n title: z.string(),\n description: z.string().optional(),\n value: z.number().optional(),\n currency: z.string().optional(),\n contact_email: z.string().email().optional(),\n notes: z.string().optional(),\n});\n\nexport function createMedalTools(client: Medal) {\n return {\n sendEmail: {\n description: \"Send a transactional email using a template\",\n parameters: SendEmailSchema,\n execute: async (args: z.infer<typeof SendEmailSchema>) => client.emails.send(args),\n },\n createContact: {\n description: \"Create a new contact in Medal Social CRM\",\n parameters: CreateContactSchema,\n execute: async (args: z.infer<typeof CreateContactSchema>) => client.contacts.create(args),\n },\n addContactNote: {\n description: \"Add a note to a contact's timeline\",\n parameters: AddContactNoteSchema,\n execute: async (args: z.infer<typeof AddContactNoteSchema>) =>\n client.contacts.addNote(args.contactId, { content: args.content }),\n },\n recordCookieConsent: {\n description: \"Record a user's cookie consent preferences\",\n parameters: CookieConsentSchema,\n execute: async (args: z.infer<typeof CookieConsentSchema>) => client.gdpr.cookieConsent(args),\n },\n recordConsent: {\n description: \"Record a GDPR consent decision for a contact by email\",\n parameters: RecordConsentSchema,\n execute: async (args: z.infer<typeof RecordConsentSchema>) => client.gdpr.recordConsent(args),\n },\n createDeal: {\n description: \"Create a new deal in Medal Social CRM\",\n parameters: CreateDealSchema,\n execute: async (args: z.infer<typeof CreateDealSchema>) => client.deals.create(args),\n },\n };\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../pilot/index.ts"],"sourcesContent":["import { z } from \"zod\";\nimport type { Medal } from \"../src/index.js\";\n\nconst SendEmailSchema = z.object({\n template_slug: z.string(),\n to: z.email(),\n name: z.string().optional(),\n locale: z.string().optional(),\n variables: z.record(z.string(), z.string()).optional(),\n});\n\nconst CreateContactSchema = z.object({\n email: z.email(),\n first_name: z.string().optional(),\n last_name: z.string().optional(),\n phone: z.string().optional(),\n company: z.string().optional(),\n job_title: z.string().optional(),\n status: z.enum([\"lead\", \"prospect\", \"customer\", \"churned\", \"archived\"]).optional(),\n notes: z.string().optional(),\n});\n\nconst AddContactNoteSchema = z.object({\n contactId: z.string(),\n content: z.string(),\n});\n\nconst CookieConsentSchema = z.object({\n domain: z.string(),\n consentStatus: z.enum([\"granted\", \"denied\", \"partial\"]),\n consentTimestamp: z.string(),\n ipAddress: z.string().optional(),\n userAgent: z.string().optional(),\n cookiePreferences: z.object({\n necessary: z.object({ allowed: z.boolean() }).optional(),\n analytics: z.object({ allowed: z.boolean() }).optional(),\n marketing: z.object({ allowed: z.boolean() }).optional(),\n functional: z.object({ allowed: z.boolean() }).optional(),\n }),\n});\n\nconst RecordConsentSchema = z.object({\n email: z.email(),\n consent_type: z.enum([\"marketing_email\", \"analytics_tracking\", \"third_party_sharing\"]),\n granted: z.boolean(),\n source: z.string().optional(),\n ip_address: z.string().optional(),\n});\n\nconst CreateDealSchema = z.object({\n title: z.string(),\n description: z.string().optional(),\n value: z.number().optional(),\n currency: z.string().optional(),\n contact_email: z.email().optional(),\n notes: z.string().optional(),\n});\n\nexport function createMedalTools(client: Medal) {\n return {\n sendEmail: {\n description: \"Send a transactional email using a template\",\n parameters: SendEmailSchema,\n execute: async (args: z.infer<typeof SendEmailSchema>) => client.emails.send(args),\n },\n createContact: {\n description: \"Create a new contact in Medal Social CRM\",\n parameters: CreateContactSchema,\n execute: async (args: z.infer<typeof CreateContactSchema>) => client.contacts.create(args),\n },\n addContactNote: {\n description: \"Add a note to a contact's timeline\",\n parameters: AddContactNoteSchema,\n execute: async (args: z.infer<typeof AddContactNoteSchema>) =>\n client.contacts.addNote(args.contactId, { content: args.content }),\n },\n recordCookieConsent: {\n description: \"Record a user's cookie consent preferences\",\n parameters: CookieConsentSchema,\n execute: async (args: z.infer<typeof CookieConsentSchema>) => client.gdpr.cookieConsent(args),\n },\n recordConsent: {\n description: \"Record a GDPR consent decision for a contact by email\",\n parameters: RecordConsentSchema,\n execute: async (args: z.infer<typeof RecordConsentSchema>) => client.gdpr.recordConsent(args),\n },\n createDeal: {\n description: \"Create a new deal in Medal Social CRM\",\n parameters: CreateDealSchema,\n execute: async (args: z.infer<typeof CreateDealSchema>) => client.deals.create(args),\n },\n };\n}\n"],"mappings":"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","names":[]}