@rebuy/rebuy 2.5.0-rc.1 → 2.5.0-rc.3

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 (91) hide show
  1. package/dist/index.d.ts +1 -4
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +635 -354
  4. package/dist/index.js.map +4 -4
  5. package/dist/index.mjs +635 -354
  6. package/dist/index.mjs.map +4 -4
  7. package/dist/schema/index.d.ts +14 -0
  8. package/dist/schema/index.d.ts.map +1 -0
  9. package/dist/schema/product.d.ts +382 -0
  10. package/dist/schema/product.d.ts.map +1 -0
  11. package/dist/schema/widgetData.d.ts +248 -0
  12. package/dist/schema/widgetData.d.ts.map +1 -0
  13. package/dist/schema/widgets/abTestingPlaceholder.d.ts +7 -0
  14. package/dist/schema/widgets/abTestingPlaceholder.d.ts.map +1 -0
  15. package/dist/schema/{cab → widgets/checkoutAndBeyond}/button.d.ts +17 -17
  16. package/dist/schema/widgets/checkoutAndBeyond/button.d.ts.map +1 -0
  17. package/dist/schema/{cab → widgets/checkoutAndBeyond}/common.d.ts +14 -14
  18. package/dist/schema/widgets/checkoutAndBeyond/common.d.ts.map +1 -0
  19. package/dist/schema/widgets/checkoutAndBeyond/constants.d.ts.map +1 -0
  20. package/dist/schema/{cab/data-source.d.ts → widgets/checkoutAndBeyond/dataSource.d.ts} +1 -1
  21. package/dist/schema/widgets/checkoutAndBeyond/dataSource.d.ts.map +1 -0
  22. package/dist/schema/widgets/checkoutAndBeyond/image.d.ts.map +1 -0
  23. package/dist/schema/{cab → widgets/checkoutAndBeyond}/index.d.ts +1 -1
  24. package/dist/schema/widgets/checkoutAndBeyond/index.d.ts.map +1 -0
  25. package/dist/schema/{cab → widgets/checkoutAndBeyond}/layout.d.ts +1 -1
  26. package/dist/schema/widgets/checkoutAndBeyond/layout.d.ts.map +1 -0
  27. package/dist/schema/{cab → widgets/checkoutAndBeyond}/offers.d.ts +18 -18
  28. package/dist/schema/widgets/checkoutAndBeyond/offers.d.ts.map +1 -0
  29. package/dist/schema/{cab → widgets/checkoutAndBeyond}/product.d.ts +8 -8
  30. package/dist/schema/widgets/checkoutAndBeyond/product.d.ts.map +1 -0
  31. package/dist/schema/{cab → widgets/checkoutAndBeyond}/products.d.ts +10 -10
  32. package/dist/schema/widgets/checkoutAndBeyond/products.d.ts.map +1 -0
  33. package/dist/schema/widgets/checkoutAndBeyond/quantity.d.ts.map +1 -0
  34. package/dist/schema/widgets/checkoutAndBeyond/regex.d.ts.map +1 -0
  35. package/dist/schema/widgets/checkoutAndBeyond/reviews.d.ts.map +1 -0
  36. package/dist/schema/{cab → widgets/checkoutAndBeyond}/root.d.ts +1 -1
  37. package/dist/schema/widgets/checkoutAndBeyond/root.d.ts.map +1 -0
  38. package/dist/schema/{cab → widgets/checkoutAndBeyond}/shared.d.ts +1 -1
  39. package/dist/schema/widgets/checkoutAndBeyond/shared.d.ts.map +1 -0
  40. package/dist/schema/widgets/checkoutAndBeyond/subscription.d.ts.map +1 -0
  41. package/dist/schema/widgets/checkoutAndBeyond/table.d.ts.map +1 -0
  42. package/dist/schema/{cab → widgets/checkoutAndBeyond}/text.d.ts +22 -22
  43. package/dist/schema/widgets/checkoutAndBeyond/text.d.ts.map +1 -0
  44. package/dist/schema/{cab → widgets/checkoutAndBeyond}/utils.d.ts +1 -1
  45. package/dist/schema/widgets/checkoutAndBeyond/utils.d.ts.map +1 -0
  46. package/dist/schema/{cab → widgets/checkoutAndBeyond}/variants.d.ts +1 -1
  47. package/dist/schema/widgets/checkoutAndBeyond/variants.d.ts.map +1 -0
  48. package/dist/schema/widgets/checkoutExtension.d.ts +7 -0
  49. package/dist/schema/widgets/checkoutExtension.d.ts.map +1 -0
  50. package/dist/schema/widgets/contentBlock.d.ts +51 -0
  51. package/dist/schema/widgets/contentBlock.d.ts.map +1 -0
  52. package/dist/schema/widgets/giftWithPurchase.d.ts +7 -0
  53. package/dist/schema/widgets/giftWithPurchase.d.ts.map +1 -0
  54. package/dist/schema/widgets/lineItemEditor.d.ts +7 -0
  55. package/dist/schema/widgets/lineItemEditor.d.ts.map +1 -0
  56. package/dist/schema/widgets/progressBar.d.ts +7 -0
  57. package/dist/schema/widgets/progressBar.d.ts.map +1 -0
  58. package/dist/schema/widgets/rebuyButton.d.ts +7 -0
  59. package/dist/schema/widgets/rebuyButton.d.ts.map +1 -0
  60. package/dist/schema/widgets/rebuyMonetize.d.ts +7 -0
  61. package/dist/schema/widgets/rebuyMonetize.d.ts.map +1 -0
  62. package/package.json +1 -1
  63. package/dist/schema/cab/button.d.ts.map +0 -1
  64. package/dist/schema/cab/common.d.ts.map +0 -1
  65. package/dist/schema/cab/constants.d.ts.map +0 -1
  66. package/dist/schema/cab/data-source.d.ts.map +0 -1
  67. package/dist/schema/cab/image.d.ts.map +0 -1
  68. package/dist/schema/cab/index.d.ts.map +0 -1
  69. package/dist/schema/cab/layout.d.ts.map +0 -1
  70. package/dist/schema/cab/offers.d.ts.map +0 -1
  71. package/dist/schema/cab/product.d.ts.map +0 -1
  72. package/dist/schema/cab/products.d.ts.map +0 -1
  73. package/dist/schema/cab/quantity.d.ts.map +0 -1
  74. package/dist/schema/cab/regex.d.ts.map +0 -1
  75. package/dist/schema/cab/reviews.d.ts.map +0 -1
  76. package/dist/schema/cab/root.d.ts.map +0 -1
  77. package/dist/schema/cab/shared.d.ts.map +0 -1
  78. package/dist/schema/cab/subscription.d.ts.map +0 -1
  79. package/dist/schema/cab/table.d.ts.map +0 -1
  80. package/dist/schema/cab/text.d.ts.map +0 -1
  81. package/dist/schema/cab/utils.d.ts.map +0 -1
  82. package/dist/schema/cab/variants.d.ts.map +0 -1
  83. package/dist/schema/widgetSettings.d.ts +0 -152
  84. package/dist/schema/widgetSettings.d.ts.map +0 -1
  85. /package/dist/schema/{cab → widgets/checkoutAndBeyond}/constants.d.ts +0 -0
  86. /package/dist/schema/{cab → widgets/checkoutAndBeyond}/image.d.ts +0 -0
  87. /package/dist/schema/{cab → widgets/checkoutAndBeyond}/quantity.d.ts +0 -0
  88. /package/dist/schema/{cab → widgets/checkoutAndBeyond}/regex.d.ts +0 -0
  89. /package/dist/schema/{cab → widgets/checkoutAndBeyond}/reviews.d.ts +0 -0
  90. /package/dist/schema/{cab → widgets/checkoutAndBeyond}/subscription.d.ts +0 -0
  91. /package/dist/schema/{cab → widgets/checkoutAndBeyond}/table.d.ts +0 -0
package/dist/index.mjs CHANGED
@@ -734,20 +734,292 @@ var RebuyClient = class {
734
734
  }
735
735
  };
736
736
 
737
- // src/schema/cab/button.ts
738
- import { v7 as uuidv712 } from "uuid";
739
- import { z as z16 } from "zod/v4";
740
-
741
- // src/schema/cab/common.ts
737
+ // src/schema/product.ts
742
738
  import { z } from "zod/v4";
739
+ var zDatetime = z.iso.datetime({ offset: true });
740
+ var cacheInfoSchema = z.strictObject({
741
+ cachedAtTime: z.union([z.string(), z.number()]),
742
+ cacheExpires: z.union([z.string(), z.number()]).optional(),
743
+ cacheKey: z.string(),
744
+ cacheKeyReadable: z.string(),
745
+ cacheType: z.string().optional(),
746
+ loadedOptions: z.record(z.string(), z.boolean()).optional()
747
+ });
748
+ var categorySchema = z.strictObject({
749
+ adminGraphqlApiId: z.string(),
750
+ fullName: z.string(),
751
+ name: z.string()
752
+ });
753
+ var metafieldSchema = z.strictObject({
754
+ key: z.string(),
755
+ namespace: z.string(),
756
+ type: z.string(),
757
+ value: z.string()
758
+ });
759
+ var imageSchema = z.strictObject({
760
+ adminGraphqlApiId: z.string(),
761
+ alt: z.string().nullable(),
762
+ createdAt: zDatetime.optional(),
763
+ height: z.number(),
764
+ id: z.number(),
765
+ metafields: z.array(metafieldSchema).optional(),
766
+ position: z.number(),
767
+ productId: z.number(),
768
+ src: z.url(),
769
+ updatedAt: zDatetime.optional(),
770
+ variantIds: z.array(z.number()),
771
+ width: z.number()
772
+ });
773
+ var mediaSchema = z.strictObject({
774
+ adminGraphqlApiId: z.string(),
775
+ alt: z.string().nullable(),
776
+ createdAt: zDatetime,
777
+ id: z.number(),
778
+ mediaContentType: z.string(),
779
+ position: z.number(),
780
+ previewImage: z.strictObject({ height: z.number(), src: z.url(), status: z.string(), width: z.number() }),
781
+ productId: z.number(),
782
+ status: z.string(),
783
+ updatedAt: zDatetime,
784
+ variantIds: z.array(z.number())
785
+ });
786
+ var optionSchema = z.strictObject({
787
+ id: z.number(),
788
+ name: z.string(),
789
+ position: z.number(),
790
+ productId: z.number(),
791
+ values: z.array(z.string())
792
+ });
793
+ var priceAdjustmentSchema = z.strictObject({
794
+ orderCount: z.number().optional(),
795
+ position: z.number(),
796
+ value: z.string(),
797
+ valueType: z.string()
798
+ });
799
+ var ratingsSchema = z.union([
800
+ z.strictObject({ judgemeAverageStarRating: z.number(), judgemeTotalReviews: z.number() }),
801
+ z.strictObject({ junipAverageStarRating: z.number(), junipTotalReviews: z.number() }),
802
+ z.strictObject({ klaviyoAverageStarRating: z.number(), klaviyoTotalReviews: z.number() }),
803
+ z.strictObject({ looxAverageStarRating: z.number(), looxTotalReviews: z.number() }),
804
+ z.strictObject({ okendoAverageStarRating: z.number(), okendoTotalReviews: z.number() }),
805
+ z.strictObject({ opinewAverageStarRating: z.number(), opinewTotalReviews: z.number() }),
806
+ z.strictObject({ rechargeAverageStarRating: z.number(), rechargeTotalReviews: z.number() }),
807
+ z.strictObject({ reviewsioAverageStarRating: z.number(), reviewsioTotalReviews: z.number() }),
808
+ z.strictObject({ stampedAverageStarRating: z.number(), stampedTotalReviews: z.number() }),
809
+ z.strictObject({ yotpoAverageStarRating: z.number(), yotpoTotalReviews: z.number() })
810
+ ]);
811
+ var sellingPlanSchema = z.strictObject({
812
+ description: z.string().optional(),
813
+ id: z.number(),
814
+ name: z.string(),
815
+ options: z.array(z.strictObject({ name: z.string(), position: z.number(), value: z.string() })),
816
+ orderIntervalFrequency: z.string().optional(),
817
+ orderIntervalUnitType: z.string().optional(),
818
+ position: z.number().optional(),
819
+ priceAdjustments: z.array(priceAdjustmentSchema),
820
+ shopifyVariantId: z.string().optional()
821
+ });
822
+ var sellingPlanAllocationSchema = z.strictObject({
823
+ compareAtPrice: z.number(),
824
+ perDeliveryPrice: z.number(),
825
+ price: z.number(),
826
+ priceAdjustments: z.array(priceAdjustmentSchema),
827
+ sellingPlanGroupId: z.string(),
828
+ sellingPlanId: z.number()
829
+ });
830
+ var sellingPlanGroupSchema = z.strictObject({
831
+ appId: z.string().optional(),
832
+ description: z.string().optional(),
833
+ discountAmount: z.number().optional(),
834
+ discountType: z.string().optional(),
835
+ id: z.string(),
836
+ name: z.string(),
837
+ options: z.array(optionSchema),
838
+ requiresSellingPlan: z.boolean().optional(),
839
+ sellingPlans: z.array(sellingPlanSchema),
840
+ variants: z.array(z.number())
841
+ });
842
+ var variantSchema = z.strictObject({
843
+ adminGraphqlApiId: z.string(),
844
+ barcode: z.string().nullable(),
845
+ compareAtPrice: z.string().nullable(),
846
+ createdAt: zDatetime,
847
+ fulfillmentService: z.string().nullish(),
848
+ grams: z.number(),
849
+ id: z.number(),
850
+ imageId: z.number().nullable(),
851
+ inventoryItemId: z.number().optional(),
852
+ inventoryManagement: z.string().nullable(),
853
+ inventoryPolicy: z.string(),
854
+ inventoryQuantity: z.number(),
855
+ link: z.url(),
856
+ oldInventoryQuantity: z.number().optional(),
857
+ option1: z.string(),
858
+ option2: z.string().nullable(),
859
+ option3: z.string().nullable(),
860
+ position: z.number(),
861
+ price: z.string(),
862
+ productId: z.number(),
863
+ requiresShipping: z.boolean(),
864
+ sellingPlanAllocations: z.array(sellingPlanAllocationSchema).optional(),
865
+ sku: z.string().nullable(),
866
+ taxable: z.boolean(),
867
+ taxCode: z.string().optional(),
868
+ title: z.string(),
869
+ updatedAt: zDatetime,
870
+ weight: z.number(),
871
+ weightUnit: z.string().optional()
872
+ });
873
+ var productSchema = z.strictObject({
874
+ adminGraphqlApiId: z.string(),
875
+ bodyHtml: z.string().nullable(),
876
+ cacheInfo: cacheInfoSchema,
877
+ category: categorySchema.nullish(),
878
+ collectionIds: z.array(z.number()),
879
+ createdAt: zDatetime,
880
+ description: z.string(),
881
+ handle: z.string(),
882
+ hasVariantsThatRequiresComponents: z.boolean().optional(),
883
+ id: z.number(),
884
+ image: imageSchema.nullable(),
885
+ images: z.array(imageSchema).nullable(),
886
+ link: z.url(),
887
+ media: z.array(mediaSchema).optional(),
888
+ metafields: z.array(metafieldSchema).optional(),
889
+ options: z.array(optionSchema),
890
+ owner: z.union([z.string(), z.number()]),
891
+ productType: z.string(),
892
+ publishedAt: zDatetime.nullable(),
893
+ publishedScope: z.string().optional(),
894
+ purchaseOptions: z.array(z.strictObject({ discountOptions: z.array(z.never()) })).optional(),
895
+ ratings: ratingsSchema.optional(),
896
+ selectedIndexPurchasedOption: z.number().optional(),
897
+ sellingPlanAllocation: sellingPlanAllocationSchema.optional(),
898
+ sellingPlanGroups: z.array(sellingPlanGroupSchema).optional(),
899
+ status: z.string(),
900
+ tags: z.string(),
901
+ templateSuffix: z.string().nullable(),
902
+ title: z.string(),
903
+ updatedAt: zDatetime,
904
+ variantGids: z.array(z.strictObject({ adminGraphqlApiId: z.string(), updatedAt: zDatetime })).optional(),
905
+ variantIds: z.array(z.strictObject({ id: z.number() })).optional(),
906
+ variants: z.array(variantSchema),
907
+ vendor: z.string()
908
+ });
909
+
910
+ // src/schema/shopConfig.ts
911
+ import { z as z2 } from "zod/v4";
912
+ var ShopConfig = z2.strictObject({
913
+ activeExperiments: z2.array(
914
+ z2.strictObject({
915
+ data: z2.array(
916
+ z2.strictObject({
917
+ aliasName: z2.string(),
918
+ cssInput: z2.string().nullish(),
919
+ elementId: z2.coerce.number(),
920
+ id: z2.coerce.number(),
921
+ javascriptInput: z2.string().nullish(),
922
+ traffic: z2.coerce.number()
923
+ })
924
+ ),
925
+ id: z2.coerce.number(),
926
+ name: z2.string(),
927
+ pageTarget: z2.string().nullable(),
928
+ pageTargetUrl: z2.string().nullable(),
929
+ placeholderId: z2.coerce.number().nullable(),
930
+ type: z2.string()
931
+ })
932
+ ),
933
+ activePackages: z2.array(
934
+ z2.strictObject({
935
+ cancelledAt: z2.string().nullable(),
936
+ id: z2.number(),
937
+ installedAt: z2.string().nullable(),
938
+ isActive: z2.boolean(),
939
+ isBillable: z2.boolean(),
940
+ packageId: z2.number(),
941
+ packageName: z2.string(),
942
+ shortName: z2.string(),
943
+ trialDays: z2.number(),
944
+ uninstalledAt: z2.string().nullable()
945
+ })
946
+ ),
947
+ apiKey: z2.string(),
948
+ billingVersion: z2.string(),
949
+ cacheKey: z2.coerce.number(),
950
+ carousel: z2.enum(["flickity", "splide"]),
951
+ currency: z2.string(),
952
+ currencySymbol: z2.string(),
953
+ domain: z2.string(),
954
+ enabledJquery: z2.boolean(),
955
+ enabledPresentmentCurrencies: z2.array(z2.string()),
956
+ hasSmartCollectionsEnabled: z2.boolean(),
957
+ hasSmartSearchEnabled: z2.boolean(),
958
+ id: z2.coerce.number(),
959
+ integrations: z2.record(
960
+ z2.enum([
961
+ "attentive",
962
+ "judgeme",
963
+ "junip",
964
+ "klaviyo",
965
+ "loox",
966
+ "okendo",
967
+ "opinew",
968
+ "recharge",
969
+ "reviewsio",
970
+ "stamped",
971
+ "yotpo"
972
+ ]),
973
+ z2.boolean()
974
+ ),
975
+ markets: z2.strictObject({
976
+ enabled: z2.boolean()
977
+ }),
978
+ moneyFormat: z2.string(),
979
+ myshopifyDomain: z2.string(),
980
+ primaryLocale: z2.string(),
981
+ productGroupsEnabled: z2.enum(["no", "yes"]).transform((value) => value === "yes"),
982
+ rechargeCustomDomain: z2.string().nullable(),
983
+ sellingPlansEnabled: z2.boolean(),
984
+ shopId: z2.number(),
985
+ shopifySellingPlansEnabled: z2.boolean(),
986
+ shopName: z2.string(),
987
+ storefrontAccessToken: z2.string().nullable(),
988
+ useRebuyIcons: z2.boolean()
989
+ });
990
+
991
+ // src/schema/userConfig.ts
992
+ import { z as z3 } from "zod/v4";
993
+ var UserConfig = z3.strictObject({
994
+ shop: ShopConfig,
995
+ smartCart: z3.unknown(),
996
+ smartFlows: z3.array(z3.unknown())
997
+ });
998
+
999
+ // src/schema/widgetData.ts
1000
+ import { z as z29 } from "zod/v4";
1001
+
1002
+ // src/schema/widgets/abTestingPlaceholder.ts
1003
+ import { z as z4 } from "zod/v4";
1004
+ var ABTestingPlaceholder = z4.looseObject({
1005
+ type: z4.literal("placeholder"),
1006
+ version: z4.undefined()
1007
+ });
1008
+
1009
+ // src/schema/widgets/checkoutAndBeyond/constants.ts
1010
+ import { uniqBy } from "lodash-es";
1011
+ import { z as z6 } from "zod/v4";
1012
+
1013
+ // src/schema/widgets/checkoutAndBeyond/common.ts
1014
+ import { z as z5 } from "zod/v4";
743
1015
  var borderRadii = ["none", "small", "base", "large", "fullyRounded"];
744
- var borderRadius = z.enum(borderRadii);
1016
+ var borderRadius = z5.enum(borderRadii);
745
1017
  var BorderRadius = borderRadius.enum;
746
1018
  var borderStyles = ["none", "base", "dotted", "dashed"];
747
- var borderStyle = z.enum(borderStyles);
1019
+ var borderStyle = z5.enum(borderStyles);
748
1020
  var BorderStyle = borderStyle.enum;
749
1021
  var borderWidths = ["base", "medium", "thick"];
750
- var borderWidth = z.enum(borderWidths);
1022
+ var borderWidth = z5.enum(borderWidths);
751
1023
  var BorderWidth = borderWidth.enum;
752
1024
  var buttonActions = [
753
1025
  "addToOrder",
@@ -760,7 +1032,7 @@ var buttonActions = [
760
1032
  "showVariants",
761
1033
  "switchToSubscription"
762
1034
  ];
763
- var buttonAction = z.enum(buttonActions);
1035
+ var buttonAction = z5.enum(buttonActions);
764
1036
  var ButtonAction = buttonAction.enum;
765
1037
  var buttonFields = [
766
1038
  "addedToCart",
@@ -781,13 +1053,13 @@ var buttonFields = [
781
1053
  "switchToSubscriptionNoDiscount",
782
1054
  "switchToSubscriptionWithDiscount"
783
1055
  ];
784
- var buttonField = z.enum(buttonFields);
1056
+ var buttonField = z5.enum(buttonFields);
785
1057
  var ButtonField = buttonField.enum;
786
1058
  var buttonStyles = ["primary", "secondary", "plain", "custom"];
787
- var buttonStyle = z.enum(buttonStyles);
1059
+ var buttonStyle = z5.enum(buttonStyles);
788
1060
  var ButtonStyle = buttonStyle.enum;
789
1061
  var directions = ["columns", "rows"];
790
- var direction = z.enum(directions);
1062
+ var direction = z5.enum(directions);
791
1063
  var Direction = direction.enum;
792
1064
  var editorModes = [
793
1065
  "checkoutExtension",
@@ -797,10 +1069,10 @@ var editorModes = [
797
1069
  "ordersIndexPage",
798
1070
  "customerProfilePage"
799
1071
  ];
800
- var editorMode = z.enum(editorModes);
1072
+ var editorMode = z5.enum(editorModes);
801
1073
  var EditorMode = editorMode.enum;
802
1074
  var horizontalAlignments = ["start", "center", "end"];
803
- var horizontalAlignment = z.enum(horizontalAlignments);
1075
+ var horizontalAlignment = z5.enum(horizontalAlignments);
804
1076
  var HorizontalAlignment = horizontalAlignment.enum;
805
1077
  var languageKeys = [
806
1078
  "ar",
@@ -830,13 +1102,13 @@ var languageKeys = [
830
1102
  "vi",
831
1103
  "zh"
832
1104
  ];
833
- var languageKey = z.enum(languageKeys);
1105
+ var languageKey = z5.enum(languageKeys);
834
1106
  var LanguageKey = languageKey.enum;
835
1107
  var objectFits = ["cover", "contain"];
836
- var objectFit = z.enum(objectFits);
1108
+ var objectFit = z5.enum(objectFits);
837
1109
  var ObjectFit = objectFit.enum;
838
1110
  var quantityInputs = ["select", "number"];
839
- var quantityInput = z.enum(quantityInputs);
1111
+ var quantityInput = z5.enum(quantityInputs);
840
1112
  var QuantityInput = quantityInput.enum;
841
1113
  var sectionTypes = [
842
1114
  "button",
@@ -853,47 +1125,28 @@ var sectionTypes = [
853
1125
  "text",
854
1126
  "variants"
855
1127
  ];
856
- var sectionType = z.enum(sectionTypes);
1128
+ var sectionType = z5.enum(sectionTypes);
857
1129
  var SectionType = sectionType.enum;
858
1130
  var spacings = ["none", "extraTight", "tight", "base", "loose", "extraLoose"];
859
- var spacing = z.enum(spacings);
1131
+ var spacing = z5.enum(spacings);
860
1132
  var Spacing = spacing.enum;
861
1133
  var textAlignments = ["start", "center", "end"];
862
- var textAlignment = z.enum(textAlignments);
1134
+ var textAlignment = z5.enum(textAlignments);
863
1135
  var TextAlignment = textAlignment.enum;
864
1136
  var textColorNames = ["base", "subdued", "accent", "decorative", "success", "warning", "critical"];
865
- var textColorName = z.enum(textColorNames);
1137
+ var textColorName = z5.enum(textColorNames);
866
1138
  var TextColorName = textColorName.enum;
867
1139
  var textSizeNames = ["extraSmall", "small", "base", "medium", "large", "extraLarge"];
868
- var textSizeName = z.enum(textSizeNames);
1140
+ var textSizeName = z5.enum(textSizeNames);
869
1141
  var TextSizeName = textSizeName.enum;
870
1142
  var variantSelectors = ["menu", "button", "radio", "color", "image"];
871
- var variantSelector = z.enum(variantSelectors);
1143
+ var variantSelector = z5.enum(variantSelectors);
872
1144
  var VariantSelector = variantSelector.enum;
873
1145
  var verticalAlignments = ["top", "middle", "bottom"];
874
- var verticalAlignment = z.enum(verticalAlignments);
1146
+ var verticalAlignment = z5.enum(verticalAlignments);
875
1147
  var VerticalAlignment = verticalAlignment.enum;
876
1148
 
877
- // src/schema/cab/image.ts
878
- import { v7 as uuidv711 } from "uuid";
879
- import { z as z15 } from "zod/v4";
880
-
881
- // src/schema/cab/regex.ts
882
- var ARRAY_INDEX_STRING = /^(0|[1-9]\d*)$/;
883
- var DYNAMIC_TOKEN_REGEX = /^\{\{\s*[A-Za-z]+\s*\}\}$/;
884
- var HEX_COLOR_REGEX = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;
885
- var HTML_TAGS_REGEX = /<[^>]*>/gi;
886
-
887
- // src/schema/cab/shared.ts
888
- import { z as z14 } from "zod/v4";
889
-
890
- // src/schema/cab/data-source.ts
891
- import { v7 as uuidv7 } from "uuid";
892
- import { z as z3 } from "zod/v4";
893
-
894
- // src/schema/cab/constants.ts
895
- import { uniqBy } from "lodash-es";
896
- import { z as z2 } from "zod/v4";
1149
+ // src/schema/widgets/checkoutAndBeyond/constants.ts
897
1150
  var DEFAULT_ENDPOINTS = [
898
1151
  { label: "Recommended (AI)", value: "/products/recommended" },
899
1152
  { label: "Top Sellers", value: "/products/top_sellers" },
@@ -966,58 +1219,34 @@ var widgetTypes = [
966
1219
  "ui_extension_line_item_editor",
967
1220
  "ui_extension_progress_bar"
968
1221
  ];
969
- var widgetType = z2.enum(widgetTypes);
1222
+ var widgetType = z6.enum(widgetTypes);
970
1223
  var WidgetType = widgetType.enum;
971
1224
 
972
- // src/schema/cab/data-source.ts
973
- var CABDataSourceSection = z3.object({
974
- dataSourceId: z3.number().nullable().default(null),
975
- dataSourcePath: z3.string().default(DEFAULT_ENDPOINTS[0].value),
976
- limit: z3.number().default(1),
977
- name: z3.string().default(DEFAULT_ENDPOINTS[0].label),
978
- sectionId: z3.uuid().default(() => uuidv7()),
979
- sectionType: z3.literal(SectionType.dataSource).default(SectionType.dataSource)
980
- });
1225
+ // src/schema/widgets/checkoutAndBeyond/root.ts
1226
+ import { z as z21 } from "zod/v4";
981
1227
 
982
- // src/schema/cab/layout.ts
983
- import { v7 as uuidv72 } from "uuid";
984
- import { z as z4 } from "zod/v4";
985
- var CABLayoutSection = z4.object({
986
- alignment: z4.object({
987
- horizontal: z4.enum(horizontalAlignments).default(HorizontalAlignment.start),
988
- vertical: z4.enum(verticalAlignments).default(VerticalAlignment.top)
989
- }).default({
990
- horizontal: HorizontalAlignment.start,
991
- vertical: VerticalAlignment.top
992
- }),
993
- border: z4.lazy(() => CABBorder),
994
- direction: z4.enum(directions).default(Direction.rows),
995
- name: z4.string().optional(),
996
- padding: z4.enum(spacings).default(Spacing.none),
997
- sectionId: z4.uuid().default(() => uuidv72()),
998
- sections: z4.array(z4.lazy(() => CABSection)).default(() => []),
999
- sectionType: z4.literal(SectionType.layout).default(SectionType.layout),
1000
- spacing: z4.enum(spacings).default(Spacing.base),
1001
- width: z4.number().default(100)
1002
- });
1228
+ // src/schema/widgets/checkoutAndBeyond/layout.ts
1229
+ import { v7 as uuidv712 } from "uuid";
1230
+ import { z as z20 } from "zod/v4";
1003
1231
 
1004
- // src/schema/cab/offers.ts
1005
- import { z as z8 } from "zod/v4";
1232
+ // src/schema/widgets/checkoutAndBeyond/shared.ts
1233
+ import { z as z19 } from "zod/v4";
1006
1234
 
1007
- // src/schema/cab/products.ts
1008
- import { v7 as uuidv75 } from "uuid";
1009
- import { z as z7 } from "zod/v4";
1235
+ // src/schema/widgets/checkoutAndBeyond/button.ts
1236
+ import { v7 as uuidv73 } from "uuid";
1237
+ import { z as z9 } from "zod/v4";
1010
1238
 
1011
- // src/schema/cab/product.ts
1012
- import { v7 as uuidv74 } from "uuid";
1013
- import { z as z6 } from "zod/v4";
1239
+ // src/schema/widgets/checkoutAndBeyond/image.ts
1240
+ import { v7 as uuidv7 } from "uuid";
1241
+ import { z as z7 } from "zod/v4";
1014
1242
 
1015
- // src/schema/cab/text.ts
1016
- import { forEach, isString as isString2 } from "lodash-es";
1017
- import { v7 as uuidv73 } from "uuid";
1018
- import { z as z5 } from "zod/v4";
1243
+ // src/schema/widgets/checkoutAndBeyond/regex.ts
1244
+ var ARRAY_INDEX_STRING = /^(0|[1-9]\d*)$/;
1245
+ var DYNAMIC_TOKEN_REGEX = /^\{\{\s*[A-Za-z]+\s*\}\}$/;
1246
+ var HEX_COLOR_REGEX = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;
1247
+ var HTML_TAGS_REGEX = /<[^>]*>/gi;
1019
1248
 
1020
- // src/schema/cab/utils.ts
1249
+ // src/schema/widgets/checkoutAndBeyond/utils.ts
1021
1250
  import { entries, every, get as get2, isArray, isPlainObject, isString, map, mapValues, size } from "lodash-es";
1022
1251
  var isHTML = (html = "") => {
1023
1252
  if (typeof window !== "undefined") {
@@ -1055,55 +1284,78 @@ var convertNumericObjects = (input) => {
1055
1284
  return input;
1056
1285
  };
1057
1286
 
1058
- // src/schema/cab/text.ts
1059
- var enumOrOmit = (...vals) => z5.string().transform((val) => vals.includes(val) ? val : void 0).optional();
1060
- var TiptapText = z5.object({
1061
- marks: z5.array(
1062
- z5.discriminatedUnion("type", [
1063
- z5.object({ type: z5.literal("bold") }),
1064
- z5.object({ type: z5.literal("italic") }),
1065
- z5.object({
1066
- attrs: z5.object({
1067
- class: z5.string().nullable(),
1068
- href: z5.union([z5.url(), z5.string().regex(DYNAMIC_TOKEN_REGEX)]),
1069
- rel: z5.string().default("noopener noreferrer nofollow"),
1070
- target: z5.string().default("_blank")
1071
- }),
1072
- type: z5.literal("link")
1073
- }),
1074
- z5.object({ type: z5.literal("strike") }),
1075
- z5.object({
1076
- attrs: z5.object({
1077
- color: enumOrOmit(...textColorNames).default(TextColorName.base),
1078
- fontSize: enumOrOmit(...textSizeNames).default(TextSizeName.base)
1287
+ // src/schema/widgets/checkoutAndBeyond/image.ts
1288
+ var CABImageSection = z7.object({
1289
+ altText: z7.string().refine(checkForHTML, NO_HTML).default(""),
1290
+ aspectRatio: z7.literal(1).nullable().default(null),
1291
+ border: z7.lazy(() => CABBorder),
1292
+ buttonField: z7.enum(buttonFields).optional(),
1293
+ category: z7.enum(["gallery", "icons", "payment-methods", "secure-checkout"]).nullable().default(null),
1294
+ name: z7.string().optional(),
1295
+ naturalHeight: z7.number().default(0),
1296
+ naturalWidth: z7.number().default(0),
1297
+ objectFit: z7.enum(objectFits).default(ObjectFit.cover),
1298
+ sectionId: z7.uuid().default(() => uuidv7()),
1299
+ sectionType: z7.literal(SectionType.image).default(SectionType.image),
1300
+ source: z7.union([z7.url(), z7.literal(""), z7.string().regex(DYNAMIC_TOKEN_REGEX)]).default(""),
1301
+ width: z7.number().default(100)
1302
+ });
1303
+
1304
+ // src/schema/widgets/checkoutAndBeyond/text.ts
1305
+ import { forEach, isString as isString2 } from "lodash-es";
1306
+ import { v7 as uuidv72 } from "uuid";
1307
+ import { z as z8 } from "zod/v4";
1308
+ var enumOrOmit = (...vals) => z8.string().transform((val) => vals.includes(val) ? val : void 0).optional();
1309
+ var TiptapText = z8.object({
1310
+ marks: z8.union([
1311
+ z8.array(
1312
+ z8.discriminatedUnion("type", [
1313
+ z8.object({ type: z8.literal("bold") }),
1314
+ z8.object({ type: z8.literal("italic") }),
1315
+ z8.object({
1316
+ attrs: z8.object({
1317
+ class: z8.string().nullable(),
1318
+ href: z8.union([z8.url(), z8.string().regex(DYNAMIC_TOKEN_REGEX)]),
1319
+ rel: z8.string().default("noopener noreferrer nofollow"),
1320
+ target: z8.string().default("_blank")
1321
+ }),
1322
+ type: z8.literal("link")
1079
1323
  }),
1080
- type: z5.literal("textStyle")
1081
- })
1082
- ])
1083
- ).optional(),
1084
- text: z5.string().default(""),
1085
- type: z5.literal("text").default("text")
1324
+ z8.object({ type: z8.literal("strike") }),
1325
+ z8.object({
1326
+ attrs: z8.object({
1327
+ color: enumOrOmit(...textColorNames).default(TextColorName.base),
1328
+ fontSize: enumOrOmit(...textSizeNames).default(TextSizeName.base)
1329
+ }),
1330
+ type: z8.literal("textStyle")
1331
+ })
1332
+ ])
1333
+ ),
1334
+ z8.strictObject({}).transform(() => [])
1335
+ ]).optional(),
1336
+ text: z8.string().default(""),
1337
+ type: z8.literal("text").default("text")
1086
1338
  });
1087
- var TiptapParagraph = z5.object({
1088
- attrs: z5.object({
1339
+ var TiptapParagraph = z8.object({
1340
+ attrs: z8.object({
1089
1341
  textAlign: enumOrOmit(...textAlignments)
1090
1342
  }).default({ textAlign: TextAlignment.start }),
1091
- content: z5.array(TiptapText).default([]),
1092
- type: z5.literal("paragraph").default("paragraph")
1343
+ content: z8.union([z8.array(TiptapText), z8.strictObject({}).transform(() => [])]).default(() => []),
1344
+ type: z8.literal("paragraph").default("paragraph")
1093
1345
  });
1094
- var TiptapDocument = z5.object({
1095
- attrs: z5.object({
1346
+ var TiptapDocument = z8.object({
1347
+ attrs: z8.object({
1096
1348
  blockSpacing: enumOrOmit(...spacings)
1097
1349
  }).default({ blockSpacing: Spacing.base }),
1098
- content: z5.array(TiptapParagraph).default([TiptapParagraph.parse({})]),
1099
- type: z5.literal("doc").default("doc")
1350
+ content: z8.union([z8.array(TiptapParagraph), z8.strictObject({}).transform(() => [])]).default(() => [TiptapParagraph.parse({})]),
1351
+ type: z8.literal("doc").default("doc")
1100
1352
  });
1101
- var CABTextSection = z5.object({
1102
- buttonField: z5.enum(buttonFields).optional(),
1103
- content: z5.record(z5.string(), z5.union([z5.string(), TiptapDocument]).refine(checkForHTML, NO_HTML).optional()).default({ en: TiptapDocument.parse({}) }).optional(),
1104
- name: z5.string().optional(),
1105
- sectionId: z5.uuid().default(() => uuidv73()),
1106
- sectionType: z5.literal(SectionType.text).default(SectionType.text)
1353
+ var CABTextSection = z8.object({
1354
+ buttonField: z8.enum(buttonFields).optional(),
1355
+ content: z8.record(z8.string(), z8.union([z8.string(), TiptapDocument]).refine(checkForHTML, NO_HTML).optional()).default({ en: TiptapDocument.parse({}) }).optional(),
1356
+ name: z8.string().optional(),
1357
+ sectionId: z8.uuid().default(() => uuidv72()),
1358
+ sectionType: z8.literal(SectionType.text).default(SectionType.text)
1107
1359
  }).superRefine(({ buttonField: buttonField2, content }, ctx) => {
1108
1360
  if (buttonField2 === ButtonField.destinationUrl && content) {
1109
1361
  forEach(content, (value, lang) => {
@@ -1123,57 +1375,100 @@ var CABTextSection = z5.object({
1123
1375
  }
1124
1376
  });
1125
1377
 
1126
- // src/schema/cab/product.ts
1127
- var CABProductSection = z6.object({
1128
- name: z6.string().optional(),
1129
- options: z6.array(
1130
- z6.object({
1378
+ // src/schema/widgets/checkoutAndBeyond/button.ts
1379
+ var CABButtonContent = z9.lazy(() => z9.discriminatedUnion("sectionType", [CABImageSection, CABTextSection]));
1380
+ var CABButtonSection = z9.object({
1381
+ action: z9.union([z9.literal(""), z9.enum(buttonActions)]).default(""),
1382
+ buttonStyle: z9.enum(buttonStyles).default(ButtonStyle.primary),
1383
+ custom: z9.object({
1384
+ color: z9.string().regex(HEX_COLOR_REGEX).default("#005bd3"),
1385
+ height: z9.number().default(52),
1386
+ width: z9.number().default(300)
1387
+ }).default({
1388
+ color: "#005bd3",
1389
+ height: 52,
1390
+ width: 300
1391
+ }),
1392
+ name: z9.string().optional(),
1393
+ sectionId: z9.uuid().default(() => uuidv73()),
1394
+ sections: z9.union([z9.array(CABButtonContent), z9.strictObject({}).transform(() => [])]).default(() => []),
1395
+ sectionType: z9.literal(SectionType.button).default(SectionType.button)
1396
+ });
1397
+
1398
+ // src/schema/widgets/checkoutAndBeyond/dataSource.ts
1399
+ import { v7 as uuidv74 } from "uuid";
1400
+ import { z as z10 } from "zod/v4";
1401
+ var CABDataSourceSection = z10.object({
1402
+ dataSourceId: z10.number().nullable().default(null),
1403
+ dataSourcePath: z10.string().default(DEFAULT_ENDPOINTS[0].value),
1404
+ limit: z10.number().default(1),
1405
+ name: z10.string().default(DEFAULT_ENDPOINTS[0].label),
1406
+ sectionId: z10.uuid().default(() => uuidv74()),
1407
+ sectionType: z10.literal(SectionType.dataSource).default(SectionType.dataSource)
1408
+ });
1409
+
1410
+ // src/schema/widgets/checkoutAndBeyond/offers.ts
1411
+ import { z as z13 } from "zod/v4";
1412
+
1413
+ // src/schema/widgets/checkoutAndBeyond/products.ts
1414
+ import { v7 as uuidv76 } from "uuid";
1415
+ import { z as z12 } from "zod/v4";
1416
+
1417
+ // src/schema/widgets/checkoutAndBeyond/product.ts
1418
+ import { v7 as uuidv75 } from "uuid";
1419
+ import { z as z11 } from "zod/v4";
1420
+ var CABProductSection = z11.object({
1421
+ name: z11.string().optional(),
1422
+ options: z11.array(
1423
+ z11.object({
1131
1424
  /** `name` represents `Color`, `Size`, etc. */
1132
- name: z6.string(),
1133
- optionId: z6.number(),
1134
- selector: z6.enum(variantSelectors).default(VariantSelector.menu),
1135
- values: z6.array(
1136
- z6.object({
1137
- color: z6.string().optional(),
1138
- image: z6.lazy(() => CABImageSection).optional(),
1425
+ name: z11.string(),
1426
+ optionId: z11.number(),
1427
+ selector: z11.enum(variantSelectors).default(VariantSelector.menu),
1428
+ values: z11.array(
1429
+ z11.object({
1430
+ color: z11.string().optional(),
1431
+ image: z11.lazy(() => CABImageSection).optional(),
1139
1432
  /** `name` represents `Red`, `Blue`, etc. */
1140
- name: z6.string(),
1141
- text: z6.lazy(() => CABTextSection).optional()
1433
+ name: z11.string(),
1434
+ text: z11.lazy(() => CABTextSection).optional()
1142
1435
  })
1143
1436
  )
1144
1437
  })
1145
1438
  ).default(() => []),
1146
- productId: z6.number().nullable().default(null),
1147
- sectionId: z6.uuid().default(() => uuidv74()),
1148
- sectionType: z6.literal(SectionType.product).default(SectionType.product)
1439
+ productId: z11.number().nullable().default(null),
1440
+ sectionId: z11.uuid().default(() => uuidv75()),
1441
+ sectionType: z11.literal(SectionType.product).default(SectionType.product)
1149
1442
  });
1150
1443
 
1151
- // src/schema/cab/products.ts
1152
- var CABProductsSection = z7.object({
1153
- name: z7.string().optional(),
1154
- sectionId: z7.uuid().default(() => uuidv75()),
1155
- sections: z7.array(z7.lazy(() => CABProductSection)).default(() => []),
1156
- sectionType: z7.literal(SectionType.products).default(SectionType.products)
1444
+ // src/schema/widgets/checkoutAndBeyond/products.ts
1445
+ var CABProductsSection = z12.object({
1446
+ name: z12.string().optional(),
1447
+ sectionId: z12.uuid().default(() => uuidv76()),
1448
+ sections: z12.union([z12.array(z12.lazy(() => CABProductSection)), z12.strictObject({}).transform(() => [])]).default(() => []),
1449
+ sectionType: z12.literal(SectionType.products).default(SectionType.products)
1157
1450
  });
1158
1451
 
1159
- // src/schema/cab/offers.ts
1160
- var CABOffersSection = CABLayoutSection.omit({ sections: true, sectionType: true }).extend(
1161
- z8.object({
1162
- sections: z8.array(z8.lazy(() => CABSection)).default(() => [CABDataSourceSection.parse({}), CABProductsSection.parse({})]),
1163
- sectionType: z8.literal(SectionType.offers).default(SectionType.offers)
1164
- }).shape
1452
+ // src/schema/widgets/checkoutAndBeyond/offers.ts
1453
+ var CABOffersSection = z13.lazy(
1454
+ () => CABLayoutSection.omit({ sections: true, sectionType: true }).extend(
1455
+ z13.object({
1456
+ sections: z13.union([z13.array(z13.lazy(() => CABSection)), z13.strictObject({}).transform(() => [])]).default(() => [CABDataSourceSection.parse({}), CABProductsSection.parse({})]),
1457
+ sectionType: z13.literal(SectionType.offers).default(SectionType.offers)
1458
+ }).shape
1459
+ )
1165
1460
  );
1166
1461
 
1167
- // src/schema/cab/quantity.ts
1168
- import { v7 as uuidv76 } from "uuid";
1169
- import { z as z9 } from "zod/v4";
1170
- var CABQuantitySection = z9.object({
1171
- errorMessages: z9.record(
1172
- z9.string(),
1173
- z9.object({
1174
- max: z9.string().optional(),
1175
- min: z9.string().optional(),
1176
- neg: z9.string().optional()
1462
+ // src/schema/widgets/checkoutAndBeyond/quantity.ts
1463
+ import { v7 as uuidv77 } from "uuid";
1464
+ import { z as z14 } from "zod/v4";
1465
+ var CABQuantitySection = z14.object({
1466
+ errorMessages: z14.record(
1467
+ z14.string(),
1468
+ z14.object({
1469
+ max: z14.string().optional(),
1470
+ min: z14.string().optional(),
1471
+ neg: z14.string().optional()
1177
1472
  })
1178
1473
  ).default({
1179
1474
  en: {
@@ -1182,64 +1477,64 @@ var CABQuantitySection = z9.object({
1182
1477
  neg: "Quantity cannot be negative"
1183
1478
  }
1184
1479
  }),
1185
- inputType: z9.enum(quantityInputs).default(QuantityInput.select),
1186
- max: z9.number().min(1).max(100).default(10),
1187
- min: z9.number().min(1).default(1),
1188
- name: z9.string().optional(),
1189
- sectionId: z9.uuid().default(() => uuidv76()),
1190
- sectionType: z9.literal(SectionType.quantity).default(SectionType.quantity)
1191
- });
1192
-
1193
- // src/schema/cab/reviews.ts
1194
- import { v7 as uuidv77 } from "uuid";
1195
- import { z as z10 } from "zod/v4";
1196
- var CABReviewsSection = z10.object({
1197
- name: z10.string().optional(),
1198
- sectionId: z10.uuid().default(() => uuidv77()),
1199
- sectionType: z10.literal(SectionType.reviews).default(SectionType.reviews)
1480
+ inputType: z14.enum(quantityInputs).default(QuantityInput.select),
1481
+ max: z14.number().min(1).max(100).default(10),
1482
+ min: z14.number().min(1).default(1),
1483
+ name: z14.string().optional(),
1484
+ sectionId: z14.uuid().default(() => uuidv77()),
1485
+ sectionType: z14.literal(SectionType.quantity).default(SectionType.quantity)
1200
1486
  });
1201
1487
 
1202
- // src/schema/cab/subscription.ts
1488
+ // src/schema/widgets/checkoutAndBeyond/reviews.ts
1203
1489
  import { v7 as uuidv78 } from "uuid";
1204
- import { z as z11 } from "zod/v4";
1205
- var CABSubscriptionSection = z11.object({
1206
- name: z11.string().optional(),
1207
- sectionId: z11.uuid().default(() => uuidv78()),
1208
- sectionType: z11.literal(SectionType.subscription).default(SectionType.subscription)
1490
+ import { z as z15 } from "zod/v4";
1491
+ var CABReviewsSection = z15.object({
1492
+ name: z15.string().optional(),
1493
+ sectionId: z15.uuid().default(() => uuidv78()),
1494
+ sectionType: z15.literal(SectionType.reviews).default(SectionType.reviews)
1209
1495
  });
1210
1496
 
1211
- // src/schema/cab/table.ts
1497
+ // src/schema/widgets/checkoutAndBeyond/subscription.ts
1212
1498
  import { v7 as uuidv79 } from "uuid";
1213
- import { z as z12 } from "zod/v4";
1214
- var CABTableSection = z12.object({
1215
- name: z12.string().optional(),
1216
- sectionId: z12.uuid().default(() => uuidv79()),
1217
- sectionType: z12.literal(SectionType.table).default(SectionType.table)
1499
+ import { z as z16 } from "zod/v4";
1500
+ var CABSubscriptionSection = z16.object({
1501
+ name: z16.string().optional(),
1502
+ sectionId: z16.uuid().default(() => uuidv79()),
1503
+ sectionType: z16.literal(SectionType.subscription).default(SectionType.subscription)
1218
1504
  });
1219
1505
 
1220
- // src/schema/cab/variants.ts
1221
- import { slice } from "lodash-es";
1506
+ // src/schema/widgets/checkoutAndBeyond/table.ts
1222
1507
  import { v7 as uuidv710 } from "uuid";
1223
- import { z as z13 } from "zod/v4";
1224
- var CABVariantsSection = z13.object({
1225
- name: z13.string().optional(),
1226
- sectionId: z13.uuid().default(() => uuidv710()),
1227
- sectionType: z13.literal(SectionType.variants).default(SectionType.variants),
1228
- selector: z13.enum(slice(variantSelectors, 0, 3)).default(VariantSelector.menu)
1508
+ import { z as z17 } from "zod/v4";
1509
+ var CABTableSection = z17.object({
1510
+ name: z17.string().optional(),
1511
+ sectionId: z17.uuid().default(() => uuidv710()),
1512
+ sectionType: z17.literal(SectionType.table).default(SectionType.table)
1513
+ });
1514
+
1515
+ // src/schema/widgets/checkoutAndBeyond/variants.ts
1516
+ import { slice } from "lodash-es";
1517
+ import { v7 as uuidv711 } from "uuid";
1518
+ import { z as z18 } from "zod/v4";
1519
+ var CABVariantsSection = z18.object({
1520
+ name: z18.string().optional(),
1521
+ sectionId: z18.uuid().default(() => uuidv711()),
1522
+ sectionType: z18.literal(SectionType.variants).default(SectionType.variants),
1523
+ selector: z18.enum(slice(variantSelectors, 0, 3)).default(VariantSelector.menu)
1229
1524
  });
1230
1525
 
1231
- // src/schema/cab/shared.ts
1232
- var CABBorder = z14.object({
1233
- radius: z14.enum(borderRadii).default(BorderRadius.base),
1234
- style: z14.enum(borderStyles).default(BorderStyle.none),
1235
- width: z14.enum(borderWidths).default(BorderWidth.base)
1526
+ // src/schema/widgets/checkoutAndBeyond/shared.ts
1527
+ var CABBorder = z19.object({
1528
+ radius: z19.enum(borderRadii).default(BorderRadius.base),
1529
+ style: z19.enum(borderStyles).default(BorderStyle.none),
1530
+ width: z19.enum(borderWidths).default(BorderWidth.base)
1236
1531
  }).default({
1237
1532
  radius: BorderRadius.base,
1238
1533
  style: BorderStyle.none,
1239
1534
  width: BorderWidth.base
1240
1535
  });
1241
- var CABSection = z14.lazy(
1242
- () => z14.discriminatedUnion("sectionType", [
1536
+ var CABSection = z19.lazy(
1537
+ () => z19.discriminatedUnion("sectionType", [
1243
1538
  CABButtonSection,
1244
1539
  CABDataSourceSection,
1245
1540
  CABImageSection,
@@ -1256,166 +1551,140 @@ var CABSection = z14.lazy(
1256
1551
  ])
1257
1552
  );
1258
1553
 
1259
- // src/schema/cab/image.ts
1260
- var CABImageSection = z15.object({
1261
- altText: z15.string().refine(checkForHTML, NO_HTML).default(""),
1262
- aspectRatio: z15.literal(1).nullable().default(null),
1263
- border: z15.lazy(() => CABBorder),
1264
- buttonField: z15.enum(buttonFields).optional(),
1265
- category: z15.enum(["gallery", "icons", "payment-methods", "secure-checkout"]).nullable().default(null),
1266
- name: z15.string().optional(),
1267
- naturalHeight: z15.number().default(0),
1268
- naturalWidth: z15.number().default(0),
1269
- objectFit: z15.enum(objectFits).default(ObjectFit.cover),
1270
- sectionId: z15.uuid().default(() => uuidv711()),
1271
- sectionType: z15.literal(SectionType.image).default(SectionType.image),
1272
- source: z15.union([z15.url(), z15.literal(""), z15.string().regex(DYNAMIC_TOKEN_REGEX)]).default(""),
1273
- width: z15.number().default(100)
1274
- });
1275
-
1276
- // src/schema/cab/button.ts
1277
- var CABButtonContent = z16.lazy(() => z16.discriminatedUnion("sectionType", [CABImageSection, CABTextSection]));
1278
- var CABButtonSection = z16.object({
1279
- action: z16.union([z16.literal(""), z16.enum(buttonActions)]).default(""),
1280
- buttonStyle: z16.enum(buttonStyles).default(ButtonStyle.primary),
1281
- custom: z16.object({
1282
- color: z16.string().regex(HEX_COLOR_REGEX).default("#005bd3"),
1283
- height: z16.number().default(52),
1284
- width: z16.number().default(300)
1554
+ // src/schema/widgets/checkoutAndBeyond/layout.ts
1555
+ var CABLayoutSection = z20.object({
1556
+ alignment: z20.object({
1557
+ horizontal: z20.enum(horizontalAlignments).default(HorizontalAlignment.start),
1558
+ vertical: z20.enum(verticalAlignments).default(VerticalAlignment.top)
1285
1559
  }).default({
1286
- color: "#005bd3",
1287
- height: 52,
1288
- width: 300
1560
+ horizontal: HorizontalAlignment.start,
1561
+ vertical: VerticalAlignment.top
1289
1562
  }),
1290
- name: z16.string().optional(),
1291
- sectionId: z16.uuid().default(() => uuidv712()),
1292
- sections: z16.array(CABButtonContent).default(() => []),
1293
- sectionType: z16.literal(SectionType.button).default(SectionType.button)
1563
+ border: z20.lazy(() => CABBorder),
1564
+ direction: z20.enum(directions).default(Direction.rows),
1565
+ name: z20.string().optional(),
1566
+ padding: z20.enum(spacings).default(Spacing.none),
1567
+ sectionId: z20.uuid().default(() => uuidv712()),
1568
+ sections: z20.union([z20.array(z20.lazy(() => CABSection)), z20.strictObject({}).transform(() => [])]).default(() => []),
1569
+ sectionType: z20.literal(SectionType.layout).default(SectionType.layout),
1570
+ spacing: z20.enum(spacings).default(Spacing.base),
1571
+ width: z20.number().default(100)
1294
1572
  });
1295
1573
 
1296
- // src/schema/cab/root.ts
1297
- import { z as z17 } from "zod/v4";
1298
- var TargetArea = z17.object({
1299
- fill: z17.boolean().optional(),
1300
- flip: z17.enum(["both", "horizontal", "vertical"]).optional(),
1301
- icon: z17.string(),
1302
- label: z17.string(),
1303
- width: z17.string()
1574
+ // src/schema/widgets/checkoutAndBeyond/root.ts
1575
+ var TargetArea = z21.object({
1576
+ fill: z21.boolean().optional(),
1577
+ flip: z21.enum(["both", "horizontal", "vertical"]).optional(),
1578
+ icon: z21.string(),
1579
+ label: z21.string(),
1580
+ width: z21.string()
1304
1581
  }).default(targetAreas[EditorMode.checkoutExtension][1]);
1305
1582
  var CABRootSection = CABLayoutSection.extend(
1306
- z17.object({
1307
- editorMode: z17.enum(editorModes).default(EditorMode.checkoutExtension),
1308
- previewMode: z17.boolean().default(false),
1309
- storeId: z17.number().nullable().default(null),
1583
+ z21.object({
1584
+ editorMode: z21.enum(editorModes).default(EditorMode.checkoutExtension),
1585
+ previewMode: z21.boolean().default(false),
1586
+ storeId: z21.number().nullable().default(null),
1310
1587
  targetArea: TargetArea.nullable(),
1311
- type: z17.enum(widgetTypes).default(WidgetType.ui_extension_content_block),
1312
- version: z17.literal(2).default(2),
1313
- widgetId: z17.number().nullable().default(null)
1588
+ type: z21.enum(widgetTypes).default(WidgetType.ui_extension_content_block),
1589
+ version: z21.literal(2).default(2),
1590
+ widgetId: z21.number().nullable().default(null)
1314
1591
  }).shape
1315
1592
  );
1316
1593
 
1317
- // src/schema/shopConfig.ts
1318
- import { z as z18 } from "zod/v4";
1319
- var ShopConfig = z18.strictObject({
1320
- activeExperiments: z18.array(
1321
- z18.strictObject({
1322
- data: z18.array(
1323
- z18.strictObject({
1324
- aliasName: z18.string(),
1325
- cssInput: z18.string().nullish(),
1326
- elementId: z18.coerce.number(),
1327
- id: z18.coerce.number(),
1328
- javascriptInput: z18.string().nullish(),
1329
- traffic: z18.coerce.number()
1330
- })
1331
- ),
1332
- id: z18.coerce.number(),
1333
- name: z18.string(),
1334
- pageTarget: z18.string().nullable(),
1335
- pageTargetUrl: z18.string().nullable(),
1336
- placeholderId: z18.coerce.number().nullable(),
1337
- type: z18.string()
1338
- })
1339
- ),
1340
- activePackages: z18.array(
1341
- z18.strictObject({
1342
- cancelledAt: z18.string().nullable(),
1343
- id: z18.number(),
1344
- installedAt: z18.string().nullable(),
1345
- isActive: z18.boolean(),
1346
- isBillable: z18.boolean(),
1347
- packageId: z18.number(),
1348
- packageName: z18.string(),
1349
- shortName: z18.string(),
1350
- trialDays: z18.number(),
1351
- uninstalledAt: z18.string().nullable()
1352
- })
1353
- ),
1354
- apiKey: z18.string(),
1355
- billingVersion: z18.string(),
1356
- cacheKey: z18.coerce.number(),
1357
- carousel: z18.enum(["flickity", "splide"]),
1358
- currency: z18.string(),
1359
- currencySymbol: z18.string(),
1360
- domain: z18.string(),
1361
- enabledJquery: z18.boolean(),
1362
- enabledPresentmentCurrencies: z18.array(z18.string()),
1363
- hasSmartCollectionsEnabled: z18.boolean(),
1364
- hasSmartSearchEnabled: z18.boolean(),
1365
- id: z18.coerce.number(),
1366
- integrations: z18.record(
1367
- z18.enum([
1368
- "attentive",
1369
- "judgeme",
1370
- "junip",
1371
- "klaviyo",
1372
- "loox",
1373
- "okendo",
1374
- "opinew",
1375
- "recharge",
1376
- "reviewsio",
1377
- "stamped",
1378
- "yotpo"
1379
- ]),
1380
- z18.boolean()
1381
- ),
1382
- markets: z18.strictObject({
1383
- enabled: z18.boolean()
1594
+ // src/schema/widgets/checkoutExtension.ts
1595
+ import { z as z22 } from "zod/v4";
1596
+ var CheckoutExtension = z22.looseObject({
1597
+ type: z22.literal(WidgetType.shopify_checkout_extension).default(WidgetType.shopify_checkout_extension),
1598
+ version: z22.undefined()
1599
+ });
1600
+
1601
+ // src/schema/widgets/contentBlock.ts
1602
+ import { z as z23 } from "zod/v4";
1603
+ var ContentBlock = z23.object({
1604
+ blockSpacing: z23.enum(spacings),
1605
+ imageBlocks: z23.union([
1606
+ z23.array(
1607
+ z23.object({
1608
+ altText: z23.string().nullable(),
1609
+ description: z23.string().nullable(),
1610
+ id: z23.uuid(),
1611
+ imagePlacement: z23.enum(["top", "right", "bottom", "left"]),
1612
+ imageSize: z23.number(),
1613
+ imageUrl: z23.url(),
1614
+ textAlignment: z23.enum(["left", "center", "right"]),
1615
+ textSize: z23.enum(textSizeNames)
1616
+ })
1617
+ ),
1618
+ z23.strictObject({}).transform(() => [])
1619
+ ]),
1620
+ imageLayout: z23.enum(["row", "column"]),
1621
+ language: z23.object({
1622
+ description: z23.string(),
1623
+ superTitle: z23.string(),
1624
+ title: z23.string()
1384
1625
  }),
1385
- moneyFormat: z18.string(),
1386
- myshopifyDomain: z18.string(),
1387
- primaryLocale: z18.string(),
1388
- productGroupsEnabled: z18.enum(["no", "yes"]).transform((value) => value === "yes"),
1389
- rechargeCustomDomain: z18.string().nullable(),
1390
- sellingPlansEnabled: z18.boolean(),
1391
- shopId: z18.number(),
1392
- shopifySellingPlansEnabled: z18.boolean(),
1393
- shopName: z18.string(),
1394
- storefrontAccessToken: z18.string().nullable(),
1395
- useRebuyIcons: z18.boolean()
1626
+ previewMode: z23.boolean(),
1627
+ type: z23.literal(WidgetType.ui_extension_content_block).default(WidgetType.ui_extension_content_block),
1628
+ version: z23.literal(1)
1396
1629
  });
1397
1630
 
1398
- // src/schema/userConfig.ts
1399
- import { z as z19 } from "zod/v4";
1400
- var UserConfig = z19.strictObject({
1401
- shop: ShopConfig,
1402
- smartCart: z19.unknown(),
1403
- smartFlows: z19.array(z19.unknown())
1631
+ // src/schema/widgets/giftWithPurchase.ts
1632
+ import { z as z24 } from "zod/v4";
1633
+ var GiftWithPurchase = z24.looseObject({
1634
+ type: z24.literal(WidgetType.gift_with_purchase).default(WidgetType.gift_with_purchase),
1635
+ version: z24.undefined()
1404
1636
  });
1405
1637
 
1406
- // src/schema/widgetSettings.ts
1407
- import { z as z20 } from "zod/v4";
1408
- var LegacyV1Widget = z20.discriminatedUnion("type", [
1409
- z20.object({ type: z20.literal(WidgetType.gift_with_purchase), version: z20.literal(1) }),
1410
- z20.object({ type: z20.literal(WidgetType.shopify_checkout_extension), version: z20.literal(1) }),
1411
- z20.object({ type: z20.literal(WidgetType.ui_extension_ad), version: z20.literal(1) }),
1412
- z20.object({ type: z20.literal(WidgetType.ui_extension_button), version: z20.literal(1) }),
1413
- z20.object({ type: z20.literal(WidgetType.ui_extension_content_block), version: z20.literal(1) }),
1414
- z20.object({ type: z20.literal(WidgetType.ui_extension_line_item_editor), version: z20.literal(1) }),
1415
- z20.object({ type: z20.literal(WidgetType.ui_extension_progress_bar), version: z20.literal(1) })
1638
+ // src/schema/widgets/lineItemEditor.ts
1639
+ import { z as z25 } from "zod/v4";
1640
+ var LineItemEditor = z25.looseObject({
1641
+ type: z25.literal(WidgetType.ui_extension_line_item_editor).default(WidgetType.ui_extension_line_item_editor),
1642
+ version: z25.literal(1)
1643
+ });
1644
+
1645
+ // src/schema/widgets/progressBar.ts
1646
+ import { z as z26 } from "zod/v4";
1647
+ var ProgressBar = z26.looseObject({
1648
+ type: z26.literal(WidgetType.ui_extension_progress_bar).default(WidgetType.ui_extension_progress_bar),
1649
+ version: z26.literal(1)
1650
+ });
1651
+
1652
+ // src/schema/widgets/rebuyButton.ts
1653
+ import { z as z27 } from "zod/v4";
1654
+ var RebuyButton = z27.looseObject({
1655
+ type: z27.literal(WidgetType.ui_extension_button).default(WidgetType.ui_extension_button),
1656
+ version: z27.literal(1)
1657
+ });
1658
+
1659
+ // src/schema/widgets/rebuyMonetize.ts
1660
+ import { z as z28 } from "zod/v4";
1661
+ var RebuyMonetize = z28.looseObject({
1662
+ type: z28.literal(WidgetType.ui_extension_ad).default(WidgetType.ui_extension_ad),
1663
+ version: z28.literal(1)
1664
+ });
1665
+
1666
+ // src/schema/widgetData.ts
1667
+ var extensionWidgetTypes = [
1668
+ "placeholder",
1669
+ WidgetType.gift_with_purchase,
1670
+ WidgetType.shopify_checkout_extension,
1671
+ WidgetType.ui_extension_ad,
1672
+ WidgetType.ui_extension_button,
1673
+ WidgetType.ui_extension_content_block,
1674
+ WidgetType.ui_extension_line_item_editor,
1675
+ WidgetType.ui_extension_progress_bar
1676
+ ];
1677
+ var LegacyV0Widget = z29.discriminatedUnion("type", [ABTestingPlaceholder, CheckoutExtension, GiftWithPurchase]);
1678
+ var LegacyV1Widget = z29.discriminatedUnion("type", [
1679
+ ContentBlock,
1680
+ LineItemEditor,
1681
+ ProgressBar,
1682
+ RebuyButton,
1683
+ RebuyMonetize
1416
1684
  ]);
1417
- var WidgetSettings = z20.discriminatedUnion("version", [LegacyV1Widget, CABRootSection]);
1685
+ var WidgetData = z29.discriminatedUnion("version", [LegacyV0Widget, LegacyV1Widget, CABRootSection]);
1418
1686
  export {
1687
+ ABTestingPlaceholder,
1419
1688
  ARRAY_INDEX_STRING,
1420
1689
  Api,
1421
1690
  BorderRadius,
@@ -1442,21 +1711,29 @@ export {
1442
1711
  CABTextSection,
1443
1712
  CABVariantsSection,
1444
1713
  COMBINED_ENDPOINTS,
1714
+ CheckoutExtension,
1715
+ ContentBlock,
1445
1716
  DEFAULT_ENDPOINTS,
1446
1717
  DYNAMIC_TOKEN_REGEX,
1447
1718
  Direction,
1448
1719
  EditorMode,
1449
1720
  Geolocation,
1721
+ GiftWithPurchase,
1450
1722
  HEX_COLOR_REGEX,
1451
1723
  HTML_TAGS_REGEX,
1452
1724
  HorizontalAlignment,
1453
1725
  Identity,
1454
1726
  LanguageKey,
1727
+ LegacyV0Widget,
1455
1728
  LegacyV1Widget,
1729
+ LineItemEditor,
1456
1730
  NO_HTML,
1457
1731
  ObjectFit,
1732
+ ProgressBar,
1458
1733
  QuantityInput,
1734
+ RebuyButton,
1459
1735
  RebuyClient,
1736
+ RebuyMonetize,
1460
1737
  STATIC_ENDPOINTS,
1461
1738
  SectionType,
1462
1739
  Session,
@@ -1471,7 +1748,7 @@ export {
1471
1748
  UserConfig,
1472
1749
  VariantSelector,
1473
1750
  VerticalAlignment,
1474
- WidgetSettings,
1751
+ WidgetData,
1475
1752
  WidgetType,
1476
1753
  amountToCents,
1477
1754
  borderRadii,
@@ -1480,6 +1757,7 @@ export {
1480
1757
  buttonActions,
1481
1758
  buttonFields,
1482
1759
  buttonStyles,
1760
+ cacheInfoSchema,
1483
1761
  checkForHTML,
1484
1762
  convertNumericObjects,
1485
1763
  convertProductToStorefrontFormat,
@@ -1490,6 +1768,7 @@ export {
1490
1768
  directions,
1491
1769
  editorModes,
1492
1770
  enabled,
1771
+ extensionWidgetTypes,
1493
1772
  find,
1494
1773
  firstAvailableVariant,
1495
1774
  get,
@@ -1515,10 +1794,12 @@ export {
1515
1794
  languageKeys,
1516
1795
  objectFits,
1517
1796
  productImageObject,
1797
+ productSchema,
1518
1798
  quantityInputs,
1519
1799
  queryStringToObject,
1520
1800
  sectionTypes,
1521
1801
  selectedVariantOptions,
1802
+ sellingPlanGroupSchema,
1522
1803
  serialize,
1523
1804
  sessionId,
1524
1805
  set,