@devwithbobby/loops 0.1.7 → 0.1.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/component/lib.ts"],"names":[],"mappings":"AA0BA;;GAEG;AACH,eAAO,MAAM,YAAY,KA6CvB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,KAexB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,KAgC5B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,aAAa,KAwCxB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,UAAU,KAiHrB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,KAoDxB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,KAqD5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS,KAgCpB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,KA8BxB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY,KAkFvB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,WAAW,KA+CtB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,WAAW,KAoDtB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,mBAAmB,KA4C9B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,kBAAkB,KA+B7B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,kBAAkB,KA+B7B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,mBAAmB,KAwC9B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,eAAe,KAwC1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,KAgDxB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,uBAAuB,KAsGlC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,uBAAuB,KA6ClC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,mBAAmB,KA6C9B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,oBAAoB,KA8B/B,CAAC"}
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/component/lib.ts"],"names":[],"mappings":"AA0BA;;GAEG;AACH,eAAO,MAAM,YAAY,KA6CvB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,KAexB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,KAgC5B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,aAAa,KAwCxB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,UAAU,KAiHrB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,KAoDxB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,KAqD5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS,KAgCpB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,KA8BxB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY,KAkFvB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,WAAW,KA+CtB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,WAAW,KA2DtB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,mBAAmB,KA4C9B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,kBAAkB,KA+B7B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,kBAAkB,KA+B7B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,mBAAmB,KAwC9B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,eAAe,KAwC1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,KAgDxB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,uBAAuB,KAsGlC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,uBAAuB,KA6ClC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,mBAAmB,KA6C9B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,oBAAoB,KA8B/B,CAAC"}
@@ -589,15 +589,15 @@ export const findContact = za({
589
589
  success: z.boolean(),
590
590
  contact: z
591
591
  .object({
592
- id: z.string().optional(),
593
- email: z.string().optional(),
594
- firstName: z.string().optional(),
595
- lastName: z.string().optional(),
596
- source: z.string().optional(),
597
- subscribed: z.boolean().optional(),
598
- userGroup: z.string().optional(),
599
- userId: z.string().optional(),
600
- createdAt: z.string().optional(),
592
+ id: z.string().nullable().optional(),
593
+ email: z.string().nullable().optional(),
594
+ firstName: z.string().nullable().optional(),
595
+ lastName: z.string().nullable().optional(),
596
+ source: z.string().nullable().optional(),
597
+ subscribed: z.boolean().nullable().optional(),
598
+ userGroup: z.string().nullable().optional(),
599
+ userId: z.string().nullable().optional(),
600
+ createdAt: z.string().nullable().optional(),
601
601
  })
602
602
  .optional(),
603
603
  }),
@@ -619,7 +619,11 @@ export const findContact = za({
619
619
  }
620
620
  const data = (await response.json());
621
621
  // Handle case where Loops returns an array instead of a single object
622
- const contact = Array.isArray(data) ? data[0] : data;
622
+ let contact = Array.isArray(data) ? data[0] : data;
623
+ // Convert null values to undefined for optional fields (Zod handles undefined but not null in optional())
624
+ if (contact) {
625
+ contact = Object.fromEntries(Object.entries(contact).map(([key, value]) => [key, value === null ? undefined : value]));
626
+ }
623
627
  return {
624
628
  success: true,
625
629
  contact: contact,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devwithbobby/loops",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "Convex component for integrating with Loops.so email marketing platform",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -640,15 +640,15 @@ export const findContact = za({
640
640
  success: z.boolean(),
641
641
  contact: z
642
642
  .object({
643
- id: z.string().optional(),
644
- email: z.string().optional(),
645
- firstName: z.string().optional(),
646
- lastName: z.string().optional(),
647
- source: z.string().optional(),
648
- subscribed: z.boolean().optional(),
649
- userGroup: z.string().optional(),
650
- userId: z.string().optional(),
651
- createdAt: z.string().optional(),
643
+ id: z.string().nullable().optional(),
644
+ email: z.string().nullable().optional(),
645
+ firstName: z.string().nullable().optional(),
646
+ lastName: z.string().nullable().optional(),
647
+ source: z.string().nullable().optional(),
648
+ subscribed: z.boolean().nullable().optional(),
649
+ userGroup: z.string().nullable().optional(),
650
+ userId: z.string().nullable().optional(),
651
+ createdAt: z.string().nullable().optional(),
652
652
  })
653
653
  .optional(),
654
654
  }),
@@ -676,7 +676,14 @@ export const findContact = za({
676
676
  const data = (await response.json()) as Record<string, any> | Array<Record<string, any>>;
677
677
 
678
678
  // Handle case where Loops returns an array instead of a single object
679
- const contact = Array.isArray(data) ? data[0] : data;
679
+ let contact = Array.isArray(data) ? data[0] : data;
680
+
681
+ // Convert null values to undefined for optional fields (Zod handles undefined but not null in optional())
682
+ if (contact) {
683
+ contact = Object.fromEntries(
684
+ Object.entries(contact).map(([key, value]) => [key, value === null ? undefined : value])
685
+ ) as Record<string, any>;
686
+ }
680
687
 
681
688
  return {
682
689
  success: true,