@lodashventure/medusa-campaign 1.5.9 → 1.5.11

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.
@@ -2101,41 +2101,6 @@ const FlashSaleForm = ({
2101
2101
  ] }) })
2102
2102
  ] });
2103
2103
  };
2104
- const FlashSaleCreate = () => {
2105
- const navigate = reactRouterDom.useNavigate();
2106
- async function handleSubmit(campaignData) {
2107
- var _a;
2108
- try {
2109
- await axios__default.default.post("/admin/flash-sales", {
2110
- ...campaignData,
2111
- starts_at: new Date(campaignData.starts_at).toUTCString(),
2112
- ends_at: new Date(campaignData.ends_at).toUTCString()
2113
- });
2114
- ui.toast.success("Flash sale created successfully");
2115
- navigate("/flash-sales");
2116
- } catch (error) {
2117
- let message;
2118
- if (axios__default.default.isAxiosError(error)) {
2119
- console.log(error);
2120
- message = (_a = error.response) == null ? void 0 : _a.data.message;
2121
- } else if (error instanceof Error) {
2122
- message = error.message;
2123
- } else {
2124
- message = "Failed to create flash sale";
2125
- }
2126
- ui.toast.error("Failed to create flash sale", {
2127
- description: message
2128
- });
2129
- }
2130
- }
2131
- return /* @__PURE__ */ jsxRuntime.jsx(
2132
- FlashSaleForm,
2133
- {
2134
- onSubmit: handleSubmit,
2135
- onCancel: () => navigate("/flash-sales")
2136
- }
2137
- );
2138
- };
2139
2104
  const useFlashSaleById = (id) => {
2140
2105
  const [data, setData] = react.useState(null);
2141
2106
  const [isLoading, setIsLoading] = react.useState(true);
@@ -2254,6 +2219,41 @@ const config = adminSdk.defineRouteConfig({
2254
2219
  label: "Flash Sale Detail",
2255
2220
  icon: icons.Sparkles
2256
2221
  });
2222
+ const FlashSaleCreate = () => {
2223
+ const navigate = reactRouterDom.useNavigate();
2224
+ async function handleSubmit(campaignData) {
2225
+ var _a;
2226
+ try {
2227
+ await axios__default.default.post("/admin/flash-sales", {
2228
+ ...campaignData,
2229
+ starts_at: new Date(campaignData.starts_at).toUTCString(),
2230
+ ends_at: new Date(campaignData.ends_at).toUTCString()
2231
+ });
2232
+ ui.toast.success("Flash sale created successfully");
2233
+ navigate("/flash-sales");
2234
+ } catch (error) {
2235
+ let message;
2236
+ if (axios__default.default.isAxiosError(error)) {
2237
+ console.log(error);
2238
+ message = (_a = error.response) == null ? void 0 : _a.data.message;
2239
+ } else if (error instanceof Error) {
2240
+ message = error.message;
2241
+ } else {
2242
+ message = "Failed to create flash sale";
2243
+ }
2244
+ ui.toast.error("Failed to create flash sale", {
2245
+ description: message
2246
+ });
2247
+ }
2248
+ }
2249
+ return /* @__PURE__ */ jsxRuntime.jsx(
2250
+ FlashSaleForm,
2251
+ {
2252
+ onSubmit: handleSubmit,
2253
+ onCancel: () => navigate("/flash-sales")
2254
+ }
2255
+ );
2256
+ };
2257
2257
  const widgetModule = { widgets: [
2258
2258
  {
2259
2259
  Component: CampaignDetailWidget,
@@ -2278,13 +2278,13 @@ const routeModule = {
2278
2278
  Component: CouponCreate,
2279
2279
  path: "/coupons/create"
2280
2280
  },
2281
- {
2282
- Component: FlashSaleCreate,
2283
- path: "/flash-sales/create"
2284
- },
2285
2281
  {
2286
2282
  Component: FlashSaleDetail,
2287
2283
  path: "/flash-sales/:id"
2284
+ },
2285
+ {
2286
+ Component: FlashSaleCreate,
2287
+ path: "/flash-sales/create"
2288
2288
  }
2289
2289
  ]
2290
2290
  };
@@ -2095,41 +2095,6 @@ const FlashSaleForm = ({
2095
2095
  ] }) })
2096
2096
  ] });
2097
2097
  };
2098
- const FlashSaleCreate = () => {
2099
- const navigate = useNavigate();
2100
- async function handleSubmit(campaignData) {
2101
- var _a;
2102
- try {
2103
- await axios.post("/admin/flash-sales", {
2104
- ...campaignData,
2105
- starts_at: new Date(campaignData.starts_at).toUTCString(),
2106
- ends_at: new Date(campaignData.ends_at).toUTCString()
2107
- });
2108
- toast.success("Flash sale created successfully");
2109
- navigate("/flash-sales");
2110
- } catch (error) {
2111
- let message;
2112
- if (axios.isAxiosError(error)) {
2113
- console.log(error);
2114
- message = (_a = error.response) == null ? void 0 : _a.data.message;
2115
- } else if (error instanceof Error) {
2116
- message = error.message;
2117
- } else {
2118
- message = "Failed to create flash sale";
2119
- }
2120
- toast.error("Failed to create flash sale", {
2121
- description: message
2122
- });
2123
- }
2124
- }
2125
- return /* @__PURE__ */ jsx(
2126
- FlashSaleForm,
2127
- {
2128
- onSubmit: handleSubmit,
2129
- onCancel: () => navigate("/flash-sales")
2130
- }
2131
- );
2132
- };
2133
2098
  const useFlashSaleById = (id) => {
2134
2099
  const [data, setData] = useState(null);
2135
2100
  const [isLoading, setIsLoading] = useState(true);
@@ -2248,6 +2213,41 @@ const config = defineRouteConfig({
2248
2213
  label: "Flash Sale Detail",
2249
2214
  icon: Sparkles
2250
2215
  });
2216
+ const FlashSaleCreate = () => {
2217
+ const navigate = useNavigate();
2218
+ async function handleSubmit(campaignData) {
2219
+ var _a;
2220
+ try {
2221
+ await axios.post("/admin/flash-sales", {
2222
+ ...campaignData,
2223
+ starts_at: new Date(campaignData.starts_at).toUTCString(),
2224
+ ends_at: new Date(campaignData.ends_at).toUTCString()
2225
+ });
2226
+ toast.success("Flash sale created successfully");
2227
+ navigate("/flash-sales");
2228
+ } catch (error) {
2229
+ let message;
2230
+ if (axios.isAxiosError(error)) {
2231
+ console.log(error);
2232
+ message = (_a = error.response) == null ? void 0 : _a.data.message;
2233
+ } else if (error instanceof Error) {
2234
+ message = error.message;
2235
+ } else {
2236
+ message = "Failed to create flash sale";
2237
+ }
2238
+ toast.error("Failed to create flash sale", {
2239
+ description: message
2240
+ });
2241
+ }
2242
+ }
2243
+ return /* @__PURE__ */ jsx(
2244
+ FlashSaleForm,
2245
+ {
2246
+ onSubmit: handleSubmit,
2247
+ onCancel: () => navigate("/flash-sales")
2248
+ }
2249
+ );
2250
+ };
2251
2251
  const widgetModule = { widgets: [
2252
2252
  {
2253
2253
  Component: CampaignDetailWidget,
@@ -2272,13 +2272,13 @@ const routeModule = {
2272
2272
  Component: CouponCreate,
2273
2273
  path: "/coupons/create"
2274
2274
  },
2275
- {
2276
- Component: FlashSaleCreate,
2277
- path: "/flash-sales/create"
2278
- },
2279
2275
  {
2280
2276
  Component: FlashSaleDetail,
2281
2277
  path: "/flash-sales/:id"
2278
+ },
2279
+ {
2280
+ Component: FlashSaleCreate,
2281
+ path: "/flash-sales/create"
2282
2282
  }
2283
2283
  ]
2284
2284
  };
@@ -38,6 +38,31 @@ const GET = async (req, res) => {
38
38
  console.log("Requested type filter:", campaignType);
39
39
  // Get all custom campaign types (including soft deleted check)
40
40
  const allCustomCampaignTypes = await customCampaignModuleService.listCustomCampaignTypes({});
41
+ const uniqueCampaignIds = Array.from(new Set(allCustomCampaignTypes.map((ct) => ct.campaign_id)));
42
+ const existingCampaigns = await promotionService
43
+ .listCampaigns({
44
+ id: { $in: uniqueCampaignIds },
45
+ })
46
+ .catch((error) => {
47
+ console.error("Failed to list campaigns for validation:", error);
48
+ return [];
49
+ });
50
+ const existingCampaignIdSet = new Set(existingCampaigns.map((campaign) => campaign.id));
51
+ const orphanedCustomTypes = allCustomCampaignTypes.filter((ct) => !existingCampaignIdSet.has(ct.campaign_id));
52
+ if (orphanedCustomTypes.length > 0) {
53
+ console.warn(`[Campaign] Found ${orphanedCustomTypes.length} orphaned custom campaign types. Cleaning up...`);
54
+ await Promise.all(orphanedCustomTypes.map(async (ct) => {
55
+ try {
56
+ await customCampaignModuleService.deleteCustomCampaignTypes({
57
+ id: ct.id,
58
+ });
59
+ console.warn(`[Campaign] Removed orphaned custom campaign type ${ct.id} for campaign ${ct.campaign_id}`);
60
+ }
61
+ catch (cleanupError) {
62
+ console.error(`[Campaign] Failed to remove orphaned custom campaign type ${ct.id}:`, cleanupError);
63
+ }
64
+ }));
65
+ }
41
66
  console.log(`Total custom campaign types (unfiltered): ${allCustomCampaignTypes.length}`);
42
67
  allCustomCampaignTypes.forEach(ct => {
43
68
  console.log(` - Type: ${ct.type}, Campaign ID: ${ct.campaign_id}, Deleted: ${ct.deleted_at}`);
@@ -331,4 +356,4 @@ const GET = async (req, res) => {
331
356
  }
332
357
  };
333
358
  exports.GET = GET;
334
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2NhbXBhaWducy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBK0U7QUFDL0UscURBQW9EO0FBQ3BELG1HQUE4RjtBQUM5Rix3RUFBMkU7QUFpQjNFLE1BQU0sbUJBQW1CLEdBQUcsa0JBQWtCLENBQUM7QUFDL0MsTUFBTSxzQkFBc0IsR0FBRyxpQkFBaUIsQ0FBQztBQUVqRCxNQUFNLGVBQWUsR0FBRyxDQUFJLEtBQWEsRUFBWSxFQUFFO0lBQ3JELElBQUksQ0FBQztRQUNILE9BQU8scUJBQVMsQ0FBQyxPQUFPLENBQUksS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0ksTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ25FLE1BQU0sMkJBQTJCLEdBQy9CLHFCQUFTLENBQUMsT0FBTyxDQUE4Qix5Q0FBc0IsQ0FBQyxDQUFDO0lBQ3pFLE1BQU0sZ0JBQWdCLEdBQUcscUJBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlELE1BQU0sY0FBYyxHQUFHLHFCQUFTLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxRCxNQUFNLGtCQUFrQixHQUN0QixlQUFlLENBQTJCLG1CQUFtQixDQUFDLENBQUM7SUFDakUsTUFBTSxxQkFBcUIsR0FDekIsZUFBZSxDQUF3QixzQkFBc0IsQ0FBQyxDQUFDO0lBRWpFLE1BQU0sVUFBVSxHQUNkLEdBQ0QsRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDO0lBQzFCLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFFdkIsSUFBSSxDQUFDO1FBQ0gsNERBQTREO1FBQzVELE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBb0MsQ0FBQztRQUVyRSxNQUFNLE9BQU8sR0FBUSxFQUFFLENBQUM7UUFDeEIsSUFBSSxZQUFZLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxxQ0FBZ0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQzNFLE9BQU8sQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO1FBQzlCLENBQUM7UUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUVwRCwrREFBK0Q7UUFDL0QsTUFBTSxzQkFBc0IsR0FDMUIsTUFBTSwyQkFBMkIsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVoRSxPQUFPLENBQUMsR0FBRyxDQUFDLDZDQUE2QyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzFGLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNsQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksa0JBQWtCLEVBQUUsQ0FBQyxXQUFXLGNBQWMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDakcsQ0FBQyxDQUFDLENBQUM7UUFFSCxnQkFBZ0I7UUFDaEIsTUFBTSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsSUFBSTtZQUN0QyxDQUFDLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQztZQUNqRixDQUFDLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQ0FBbUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUU3RSxJQUFJLG1CQUFtQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7WUFDOUQsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDMUIsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsS0FBSyxFQUFFO29CQUNMLE9BQU8sRUFBRSxnQ0FBZ0M7b0JBQ3pDLE9BQU8sRUFBRSxPQUFPO29CQUNoQixlQUFlLEVBQUUsc0JBQXNCLENBQUMsTUFBTTtpQkFDL0M7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsbUJBQW1CO1FBQ25CLE1BQU0sV0FBVyxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BFLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBRW5FLDBDQUEwQztRQUMxQyxNQUFNLFlBQVksR0FBRyxNQUFNLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5RCxPQUFPLENBQUMsR0FBRyxDQUFDLDhCQUE4QixZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUVqRSwrQ0FBK0M7UUFDL0MsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQ3RDLENBQUMsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUU7Z0JBQ25DLElBQUksQ0FBQztvQkFDSCxPQUFPLE1BQU0sZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFO3dCQUN6RCxTQUFTLEVBQUU7NEJBQ1QsWUFBWTs0QkFDWiwrQkFBK0I7NEJBQy9CLDRDQUE0Qzt5QkFDN0M7cUJBQ0YsQ0FBQyxDQUFDO2dCQUNMLENBQUM7Z0JBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztvQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLDJCQUEyQixVQUFVLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDL0QsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUNILENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7WUFDeEQsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVQLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxTQUFTLENBQUMsTUFBTSxxQkFBcUIsQ0FBQyxDQUFDO1FBQzVELFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtZQUMzQixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUMvQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDMUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBRUgsK0NBQStDO1FBQy9DLE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxDQUM3QixtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDM0QsQ0FBQztRQUVGLE1BQU0sZUFBZSxHQUNuQixNQUFNLDJCQUEyQixDQUFDLG1CQUFtQixDQUFDO1lBQ3BELFdBQVcsRUFBRSxXQUFXO1NBQ3pCLENBQUMsQ0FBQztRQUVMLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLENBQy9CLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUM5RCxDQUFDO1FBRUYsTUFBTSxpQkFBaUIsR0FBRyxtQkFBbUI7YUFDMUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLHFDQUFnQixDQUFDLE1BQU0sQ0FBQzthQUNuRCxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUvQixNQUFNLDBCQUEwQixHQUFHLElBQUksR0FBRyxFQUFpQixDQUFDO1FBQzVELElBQUksa0JBQWtCLEdBQWEsRUFBRSxDQUFDO1FBRXRDLElBQUksaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxjQUFjLENBQzVEO2dCQUNFLFdBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRSxpQkFBaUIsRUFBRTthQUNqQyxFQUNSO2dCQUNFLFNBQVMsRUFBRSxDQUFDLG9CQUFvQixDQUFDO2FBQ2xDLENBQ0YsQ0FBQztZQUVGLGtCQUFrQixHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUMzQixPQUFPO2dCQUNULENBQUM7Z0JBQ0QsTUFBTSxRQUFRLEdBQUcsMEJBQTBCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDdkUsSUFBSSxRQUFRLEVBQUUsQ0FBQztvQkFDYixRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUMzQixDQUFDO3FCQUFNLENBQUM7b0JBQ04sMEJBQTBCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUNyRSxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0I7WUFDekMsQ0FBQyxDQUFDLE1BQU0sa0JBQWtCLENBQUMsb0JBQW9CLENBQUM7Z0JBQzVDLFlBQVksRUFBRSxrQkFBa0I7YUFDakMsQ0FBQztZQUNKLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFUCxNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsQ0FDdkIsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQ3hFLENBQUM7UUFFRixNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztRQUNoRCxJQUFJLFVBQVUsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxFQUFFO2dCQUMzQyxJQUFJLENBQUM7b0JBQ0gsTUFBTSxRQUFRLEdBQUcsUUFBUSxVQUFVLGNBQWMsV0FBVyxFQUFFLENBQUM7b0JBQy9ELE1BQU0sU0FBUyxHQUFHLE1BQU0scUJBQXFCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUMvRCxZQUFZLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDM0MsQ0FBQztnQkFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO29CQUNmLE9BQU8sQ0FBQyxLQUFLLENBQ1gsaUVBQWlFLFdBQVcsR0FBRyxFQUMvRSxLQUFLLENBQ04sQ0FBQztnQkFDSixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUM7UUFFRCxrRUFBa0U7UUFDbEUsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQzdDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFFBQWEsRUFBRSxFQUFFO1lBQ3BDLE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM5QyxNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUMsTUFBTSxRQUFRLEdBQUcsUUFBUSxJQUFJLEdBQUcsSUFBSSxNQUFNLElBQUksR0FBRyxDQUFDO1lBRWxELE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1lBQ3ZELE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxRQUFRLENBQUMsV0FBVyxFQUFFLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1lBQ3JHLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxNQUFNLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1lBQzNGLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBRXZDLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRXRELDBDQUEwQztZQUMxQyxJQUFJLFFBQTJCLENBQUM7WUFDaEMsSUFBSSxPQUE0QyxDQUFDO1lBQ2pELElBQUksT0FBMEIsQ0FBQztZQUMvQixJQUFJLFlBQVksS0FBSyxxQ0FBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDaEQsSUFBSSxDQUFDO29CQUNILGlEQUFpRDtvQkFDakQsTUFBTSxvQkFBb0IsR0FDeEIsTUFBTSwyQkFBMkIsQ0FBQyx3QkFBd0IsQ0FBQzt3QkFDekQsV0FBVyxFQUFFLFFBQVEsQ0FBQyxFQUFFO3FCQUN6QixDQUFDLENBQUM7b0JBRUwseURBQXlEO29CQUN6RCxNQUFNLGtCQUFrQixHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7b0JBQ3JDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO3dCQUNyQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDcEQsQ0FBQyxDQUFDLENBQUM7b0JBRUgsTUFBTSxpQkFBaUIsR0FBVSxFQUFFLENBQUM7b0JBRXBDLG9EQUFvRDtvQkFDcEQsS0FBSyxNQUFNLFNBQVMsSUFBSSxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUUsRUFBRSxDQUFDO3dCQUNsRCxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQzs0QkFDeEQsU0FBUzt3QkFDWCxDQUFDO3dCQUVELE1BQU0sY0FBYyxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQzVELElBQUksQ0FBQyxjQUFjLEVBQUUsVUFBVSxFQUFFLENBQUM7NEJBQ2hDLFNBQVM7d0JBQ1gsQ0FBQzt3QkFFRCxJQUFJLENBQUM7NEJBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxjQUFjLENBQUMsZUFBZSxDQUNsRCxjQUFjLENBQUMsVUFBVSxFQUN6QjtnQ0FDRSxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsYUFBYSxDQUFDO2dDQUM3RCxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7NkJBQ3RCLENBQ0YsQ0FBQzs0QkFFRixJQUFJLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7Z0NBQ3JELGlCQUFpQixDQUFDLElBQUksQ0FBQztvQ0FDckIsT0FBTyxFQUFFO3dDQUNQLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRTt3Q0FDZCxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7d0NBQ3BCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUzt3Q0FDNUIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO3dDQUN0QixXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7d0NBQ2hDLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtxQ0FDdkI7b0NBQ0QsWUFBWSxFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxJQUFvQjtvQ0FDaEUsYUFBYSxFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxLQUFLO29DQUNsRCxNQUFNLEVBQUUsU0FBUyxDQUFDLGtCQUFrQixFQUFFLFlBQVksSUFBSSxDQUFDO29DQUN2RCxLQUFLLEVBQUUsY0FBYyxFQUFFLEtBQUssSUFBSSxDQUFDO29DQUNqQyxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksSUFBSSxDQUFDO29DQUMvQixTQUFTLEVBQ1AsT0FBTyxjQUFjLEVBQUUsS0FBSyxLQUFLLFFBQVE7d0NBQ3pDLE9BQU8sY0FBYyxFQUFFLElBQUksS0FBSyxRQUFRO3dDQUN0QyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDTixjQUFjLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQyxJQUFJLEVBQzFDLENBQUMsQ0FDRjt3Q0FDSCxDQUFDLENBQUMsSUFBSTtpQ0FDWCxDQUFDLENBQUM7NEJBQ0wsQ0FBQzt3QkFDSCxDQUFDO3dCQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7NEJBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsY0FBYyxDQUFDLFVBQVUsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO3dCQUMvRSxDQUFDO29CQUNILENBQUM7b0JBRUQsUUFBUSxHQUFHLGlCQUFpQixDQUFDO29CQUU3QixNQUFNLFNBQVMsR0FBRyxvQkFBb0IsQ0FBQyxNQUFNLENBQzNDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO3dCQUNiLEdBQUcsQ0FBQyxhQUFhLElBQUksQ0FBQyxDQUFDO3dCQUN2QixHQUFHLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDO3dCQUNwQyxHQUFHLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO3dCQUNsQyxJQUNFLE9BQU8sS0FBSyxDQUFDLEtBQUssS0FBSyxRQUFROzRCQUMvQixPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUM5QixDQUFDOzRCQUNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDOzRCQUN4RCxHQUFHLENBQUMsZUFBZSxJQUFJLFNBQVMsQ0FBQzs0QkFDakMsSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0NBQ2xCLEdBQUcsQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLENBQUM7NEJBQ2hDLENBQUM7d0JBQ0gsQ0FBQzt3QkFDRCxPQUFPLEdBQUcsQ0FBQztvQkFDYixDQUFDLEVBQ0Q7d0JBQ0UsYUFBYSxFQUFFLENBQUM7d0JBQ2hCLG9CQUFvQixFQUFFLENBQUM7d0JBQ3ZCLFdBQVcsRUFBRSxDQUFDO3dCQUNkLFVBQVUsRUFBRSxDQUFDO3dCQUNiLGVBQWUsRUFBRSxDQUFDO3FCQUNuQixDQUNGLENBQUM7b0JBRUYsT0FBTyxHQUFHO3dCQUNSLElBQUksRUFBRSxZQUFZO3dCQUNsQixHQUFHLFNBQVM7cUJBQ2IsQ0FBQztnQkFDSixDQUFDO2dCQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7b0JBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyx3Q0FBd0MsUUFBUSxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUMvRSxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxJQUFJLFlBQVksS0FBSyxxQ0FBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDcEQsSUFBSSxDQUFDO29CQUNILE1BQU0sZUFBZSxHQUNuQiwwQkFBMEIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFFcEQsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlO3lCQUNyQyxNQUFNLENBQ0wsQ0FBQyxTQUFjLEVBQUUsRUFBRSxDQUNqQixTQUFTLENBQUMsTUFBTSxLQUFLLFFBQVEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQzNEO3lCQUNBLEdBQUcsQ0FBQyxDQUFDLFNBQWMsRUFBRSxFQUFFO3dCQUN0QixNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7NEJBQy9DLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUU7NEJBQzlCLENBQUMsQ0FBQyxJQUFJLENBQUM7d0JBQ1QsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDO3dCQUU1RCxPQUFPOzRCQUNMLEVBQUUsRUFBRSxTQUFTLENBQUMsRUFBRTs0QkFDaEIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJOzRCQUNwQixXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVc7NEJBQ2pDLGFBQWEsRUFBRSxTQUFTLENBQUMsa0JBQWtCLEVBQUUsSUFBSTs0QkFDakQsY0FBYyxFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxLQUFLOzRCQUNuRCxVQUFVLEVBQUUsU0FBUyxDQUFDLGtCQUFrQixFQUFFLFVBQVU7NEJBQ3BELFdBQVcsRUFBRSxTQUFTLENBQUMsa0JBQWtCLEVBQUUsV0FBVzs0QkFDdEQsYUFBYSxFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxhQUFhOzRCQUMxRCxjQUFjLEVBQUUsYUFBYTs0QkFDN0IsWUFBWSxFQUFFLFdBQVc7NEJBQ3pCLGdCQUFnQixFQUFFLDZCQUE2Qjs0QkFDL0MsZUFBZSxFQUFFO2dDQUNmLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRTs2QkFDeEI7eUJBQ0YsQ0FBQztvQkFDSixDQUFDLENBQUMsQ0FBQztvQkFFTCxPQUFPLEdBQUcsZ0JBQWdCLENBQUM7b0JBRTNCLE9BQU8sR0FBRzt3QkFDUixJQUFJLEVBQUUsUUFBUTt3QkFDZCxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTt3QkFDckMsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUN4QyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLGNBQWMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQzFELENBQUMsTUFBTTt3QkFDUixlQUFlLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUN0QyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FDaEMsQ0FBQyxNQUFNO3FCQUNULENBQUM7Z0JBQ0osQ0FBQztnQkFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO29CQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUNBQXVDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDOUUsQ0FBQztZQUNILENBQUM7WUFFRCxPQUFPO2dCQUNMLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRTtnQkFDZixJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUk7Z0JBQ25CLFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVztnQkFDakMsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLG1CQUFtQjtnQkFDakQsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTO2dCQUM3QixPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU87Z0JBQ3pCLGFBQWEsRUFBRSxZQUFZO2dCQUMzQixTQUFTLEVBQUUsUUFBUTtnQkFDbkIsUUFBUTtnQkFDUixPQUFPO2dCQUNQLE9BQU87Z0JBQ1AsZUFBZSxFQUFFLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSTthQUM1RCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVGLDhCQUE4QjtRQUM5QixNQUFNLGVBQWUsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdkUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLGVBQWUsQ0FBQyxNQUFNLDRCQUE0QixxQkFBcUIsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxDQUFDO1FBRWpILEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ25CLFNBQVMsRUFBRSxlQUFlO1lBQzFCLEtBQUssRUFBRSxlQUFlLENBQUMsTUFBTTtZQUM3QixLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRSxDQUFDO1lBQ1QsS0FBSyxFQUFFO2dCQUNMLFdBQVcsRUFBRSxHQUFHLENBQUMsV0FBVyxFQUFFO2dCQUM5Qix3QkFBd0IsRUFBRSxzQkFBc0IsQ0FBQyxNQUFNO2dCQUN2RCwyQkFBMkIsRUFBRSxtQkFBbUIsQ0FBQyxNQUFNO2dCQUN2RCxjQUFjLEVBQUUsWUFBWSxDQUFDLE1BQU07Z0JBQ25DLGlCQUFpQixFQUFFLFNBQVMsQ0FBQyxNQUFNO2dCQUNuQyxxQkFBcUIsRUFBRSxxQkFBcUIsQ0FBQyxNQUFNO2dCQUNuRCxlQUFlLEVBQUUsZUFBZSxDQUFDLE1BQU07Z0JBQ3ZDLGlCQUFpQixFQUFFLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQzNFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtvQkFDWixTQUFTLEVBQUUsQ0FBQyxDQUFDLFNBQVM7b0JBQ3RCLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTztvQkFDbEIsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTztpQkFDOUQsQ0FBQyxDQUFDO2FBQ0o7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsMENBQTBDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakUsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0UsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDbkIsU0FBUyxFQUFFLEVBQUU7WUFDYixLQUFLLEVBQUUsQ0FBQztZQUNSLEtBQUssRUFBRSxFQUFFO1lBQ1QsTUFBTSxFQUFFLENBQUM7WUFDVCxLQUFLLEVBQUUsMkJBQTJCO1lBQ2xDLE9BQU8sRUFBRSxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQy9ELEtBQUssRUFBRSxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQ3hELENBQUMsQ0FBQztJQUNMLENBQUM7QUFDSCxDQUFDLENBQUM7QUF6WVcsUUFBQSxHQUFHLE9BeVlkIn0=
359
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2NhbXBhaWducy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBK0U7QUFDL0UscURBQW9EO0FBQ3BELG1HQUE4RjtBQUM5Rix3RUFBMkU7QUFpQjNFLE1BQU0sbUJBQW1CLEdBQUcsa0JBQWtCLENBQUM7QUFDL0MsTUFBTSxzQkFBc0IsR0FBRyxpQkFBaUIsQ0FBQztBQUVqRCxNQUFNLGVBQWUsR0FBRyxDQUFJLEtBQWEsRUFBWSxFQUFFO0lBQ3JELElBQUksQ0FBQztRQUNILE9BQU8scUJBQVMsQ0FBQyxPQUFPLENBQUksS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0ksTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ25FLE1BQU0sMkJBQTJCLEdBQy9CLHFCQUFTLENBQUMsT0FBTyxDQUE4Qix5Q0FBc0IsQ0FBQyxDQUFDO0lBQ3pFLE1BQU0sZ0JBQWdCLEdBQUcscUJBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlELE1BQU0sY0FBYyxHQUFHLHFCQUFTLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxRCxNQUFNLGtCQUFrQixHQUN0QixlQUFlLENBQTJCLG1CQUFtQixDQUFDLENBQUM7SUFDakUsTUFBTSxxQkFBcUIsR0FDekIsZUFBZSxDQUF3QixzQkFBc0IsQ0FBQyxDQUFDO0lBRWpFLE1BQU0sVUFBVSxHQUNkLEdBQ0QsRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDO0lBQzFCLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFF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
@@ -4,12 +4,16 @@ exports.config = void 0;
4
4
  exports.default = handleCartUpdated;
5
5
  const applyBuyXGetYToCartWorkflow_1 = require("../workflows/buy-x-get-y/applyBuyXGetYToCartWorkflow");
6
6
  async function handleCartUpdated({ event: { data }, }) {
7
- // Apply Buy X Get Y rules to the cart
8
- await applyBuyXGetYToCartWorkflow_1.applyBuyXGetYToCartWorkflow.run({
9
- input: {
10
- cart_id: data.id,
11
- },
12
- });
7
+ try {
8
+ await applyBuyXGetYToCartWorkflow_1.applyBuyXGetYToCartWorkflow.run({
9
+ input: {
10
+ cart_id: data.id,
11
+ },
12
+ });
13
+ }
14
+ catch (error) {
15
+ console.error(`[Campaign] Failed to apply buy-x-get-y rewards on cart ${data.id}:`, error);
16
+ }
13
17
  }
14
18
  exports.config = {
15
19
  event: [
@@ -20,4 +24,4 @@ exports.config = {
20
24
  "cart-line-item.deleted",
21
25
  ],
22
26
  };
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC11cGRhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL2NhcnQtdXBkYXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxvQ0FTQztBQVhELHNHQUFtRztBQUVwRixLQUFLLFVBQVUsaUJBQWlCLENBQUMsRUFDOUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQ2dCO0lBQy9CLHNDQUFzQztJQUN0QyxNQUFNLHlEQUEyQixDQUFDLEdBQUcsQ0FBQztRQUNwQyxLQUFLLEVBQUU7WUFDTCxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUU7U0FDakI7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRVksUUFBQSxNQUFNLEdBQXFCO0lBQ3RDLEtBQUssRUFBRTtRQUNMLGNBQWM7UUFDZCxjQUFjO1FBQ2Qsd0JBQXdCO1FBQ3hCLHdCQUF3QjtRQUN4Qix3QkFBd0I7S0FDekI7Q0FDRixDQUFDIn0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC11cGRhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL2NhcnQtdXBkYXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxvQ0FlQztBQWpCRCxzR0FBbUc7QUFFcEYsS0FBSyxVQUFVLGlCQUFpQixDQUFDLEVBQzlDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxHQUNnQjtJQUMvQixJQUFJLENBQUM7UUFDSCxNQUFNLHlEQUEyQixDQUFDLEdBQUcsQ0FBQztZQUNwQyxLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFO2FBQ2pCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsS0FBSyxDQUNYLDBEQUEwRCxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQ3BFLEtBQUssQ0FDTixDQUFDO0lBQ0osQ0FBQztBQUNILENBQUM7QUFFWSxRQUFBLE1BQU0sR0FBcUI7SUFDdEMsS0FBSyxFQUFFO1FBQ0wsY0FBYztRQUNkLGNBQWM7UUFDZCx3QkFBd0I7UUFDeEIsd0JBQXdCO1FBQ3hCLHdCQUF3QjtLQUN6QjtDQUNGLENBQUMifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lodashventure/medusa-campaign",
3
- "version": "1.5.9",
3
+ "version": "1.5.11",
4
4
  "description": "A starter for Medusa plugins.",
5
5
  "author": "Medusa (https://medusajs.com)",
6
6
  "license": "MIT",
@@ -64,6 +64,51 @@ export const GET = async (req: MedusaRequest, res: MedusaResponse) => {
64
64
  const allCustomCampaignTypes =
65
65
  await customCampaignModuleService.listCustomCampaignTypes({});
66
66
 
67
+ const uniqueCampaignIds = Array.from(
68
+ new Set(allCustomCampaignTypes.map((ct) => ct.campaign_id)),
69
+ );
70
+
71
+ const existingCampaigns = await promotionService
72
+ .listCampaigns({
73
+ id: { $in: uniqueCampaignIds },
74
+ } as any)
75
+ .catch((error) => {
76
+ console.error("Failed to list campaigns for validation:", error);
77
+ return [];
78
+ });
79
+
80
+ const existingCampaignIdSet = new Set(
81
+ existingCampaigns.map((campaign) => campaign.id),
82
+ );
83
+
84
+ const orphanedCustomTypes = allCustomCampaignTypes.filter(
85
+ (ct) => !existingCampaignIdSet.has(ct.campaign_id),
86
+ );
87
+
88
+ if (orphanedCustomTypes.length > 0) {
89
+ console.warn(
90
+ `[Campaign] Found ${orphanedCustomTypes.length} orphaned custom campaign types. Cleaning up...`,
91
+ );
92
+
93
+ await Promise.all(
94
+ orphanedCustomTypes.map(async (ct) => {
95
+ try {
96
+ await customCampaignModuleService.deleteCustomCampaignTypes({
97
+ id: ct.id,
98
+ });
99
+ console.warn(
100
+ `[Campaign] Removed orphaned custom campaign type ${ct.id} for campaign ${ct.campaign_id}`,
101
+ );
102
+ } catch (cleanupError) {
103
+ console.error(
104
+ `[Campaign] Failed to remove orphaned custom campaign type ${ct.id}:`,
105
+ cleanupError,
106
+ );
107
+ }
108
+ }),
109
+ );
110
+ }
111
+
67
112
  console.log(`Total custom campaign types (unfiltered): ${allCustomCampaignTypes.length}`);
68
113
  allCustomCampaignTypes.forEach(ct => {
69
114
  console.log(` - Type: ${ct.type}, Campaign ID: ${ct.campaign_id}, Deleted: ${ct.deleted_at}`);
@@ -4,12 +4,18 @@ import { applyBuyXGetYToCartWorkflow } from "../workflows/buy-x-get-y/applyBuyXG
4
4
  export default async function handleCartUpdated({
5
5
  event: { data },
6
6
  }: SubscriberArgs<{ id: string }>) {
7
- // Apply Buy X Get Y rules to the cart
8
- await applyBuyXGetYToCartWorkflow.run({
9
- input: {
10
- cart_id: data.id,
11
- },
12
- });
7
+ try {
8
+ await applyBuyXGetYToCartWorkflow.run({
9
+ input: {
10
+ cart_id: data.id,
11
+ },
12
+ });
13
+ } catch (error) {
14
+ console.error(
15
+ `[Campaign] Failed to apply buy-x-get-y rewards on cart ${data.id}:`,
16
+ error,
17
+ );
18
+ }
13
19
  }
14
20
 
15
21
  export const config: SubscriberConfig = {