@devx-commerce/plugin-discounts-svaraa 0.0.2-beta.11 → 0.0.2-beta.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,268 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const api_response_1 = require("../../../../lib/api-response");
6
+ const framework_1 = require("@medusajs/framework");
7
+ const constant_1 = require("../../../../lib/constant");
8
+ const helpers_1 = require("@medusajs/medusa/api/store/carts/helpers");
9
+ const send_otp_helper_1 = require("../../../../lib/send-otp-helper");
10
+ const POST = async (req, res) => {
11
+ try {
12
+ const { cart_id, amount, otp } = req.validatedBody;
13
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
14
+ // Resolve staff mobile from authenticated user's profile
15
+ const userId = req.auth_context?.actor_id;
16
+ let staffMobile = "";
17
+ let allowedDiscountAmount = null;
18
+ let isAllowed = true;
19
+ if (userId) {
20
+ try {
21
+ const remoteQuery = req.scope.resolve(utils_1.ContainerRegistrationKeys.REMOTE_QUERY);
22
+ const query = (0, utils_1.remoteQueryObjectFromString)({
23
+ entryPoint: "user",
24
+ variables: { id: userId },
25
+ fields: [
26
+ "id",
27
+ "email",
28
+ "first_name",
29
+ "last_name",
30
+ "user_profile.*",
31
+ ],
32
+ });
33
+ const [user] = await remoteQuery(query);
34
+ const profile = user?.user_profile;
35
+ const allowed_discount = profile?.allowed_discount_amount;
36
+ if (allowed_discount != null) {
37
+ const parsed = Number(allowed_discount);
38
+ if (!Number.isNaN(parsed)) {
39
+ allowedDiscountAmount = parsed;
40
+ }
41
+ }
42
+ if (profile?.phone_number &&
43
+ String(profile.phone_number).trim().length > 0) {
44
+ staffMobile = String(profile.phone_number).trim();
45
+ }
46
+ }
47
+ catch (e) {
48
+ framework_1.logger.warn(`Failed to resolve staff phone for user_id ${userId}: ${e?.message || e}`);
49
+ }
50
+ }
51
+ if (allowedDiscountAmount != null) {
52
+ isAllowed = amount <= allowedDiscountAmount;
53
+ }
54
+ // If discount is above allowed limit and we don't have staff mobile,
55
+ // we cannot proceed with OTP-based approval.
56
+ if (!staffMobile && !isAllowed) {
57
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)("Staff mobile not found for current user", 400));
58
+ }
59
+ // If within allowed limit, apply discount directly without OTP
60
+ if (isAllowed) {
61
+ const cartService = req.scope.resolve("cart");
62
+ const { data: carts } = await query.graph({
63
+ entity: "cart",
64
+ fields: ["*", "items.*"],
65
+ filters: { id: cart_id },
66
+ });
67
+ if (!carts.length) {
68
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(`Cart ${cart_id} not found`, 404));
69
+ }
70
+ const cart = carts[0];
71
+ if (!cart.items?.length) {
72
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)("Cannot apply store discount to empty cart", 400));
73
+ }
74
+ const itemIds = cart.items.map((i) => i.id);
75
+ // Remove existing store-discount adjustments to keep it idempotent
76
+ const { data: existingAdjustments } = await query.graph({
77
+ entity: "line_item_adjustment",
78
+ fields: ["id"],
79
+ filters: {
80
+ item_id: { $in: itemIds },
81
+ code: "STORE_DISCOUNT",
82
+ },
83
+ });
84
+ if (existingAdjustments?.length) {
85
+ await cartService.deleteLineItemAdjustments(existingAdjustments.map((a) => a.id));
86
+ }
87
+ // Apply new store discount as a line-item adjustment on the first item
88
+ const targetItemId = itemIds[0];
89
+ await cartService.addLineItemAdjustments({
90
+ item_id: targetItemId,
91
+ code: "STORE_DISCOUNT",
92
+ amount,
93
+ });
94
+ // Update cart metadata to record store discount info
95
+ const currentCart = await cartService.retrieveCart(cart_id);
96
+ const prevMeta = currentCart.metadata || {};
97
+ const storeDiscountMeta = {
98
+ amount,
99
+ code: "STORE_DISCOUNT",
100
+ verified: false,
101
+ };
102
+ await cartService.updateCarts(cart_id, {
103
+ metadata: {
104
+ ...prevMeta,
105
+ store_discount: storeDiscountMeta,
106
+ },
107
+ });
108
+ const updatedCart = await (0, helpers_1.refetchCart)(cart_id, req.scope, constant_1.defaultStoreCartFields);
109
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)({
110
+ cart: updatedCart,
111
+ storeDiscount: storeDiscountMeta,
112
+ }, "Store discount applied"));
113
+ }
114
+ // If OTP is not provided and discount is above allowed limit,
115
+ // send a new OTP to staff mobile for this discount.
116
+ if (!otp && !isAllowed) {
117
+ try {
118
+ // Initialize options from medusa-config.ts (same as lines 175-198)
119
+ const passwordlessOptions = {
120
+ smsRateLimitMinutes: 0.5,
121
+ blockDurationMinutes: 5,
122
+ codeExpiryMinutes: 5,
123
+ maxAttempts: 5,
124
+ smsProviders: [
125
+ { provider: "gupshup", priority: 2 },
126
+ { provider: "sns", priority: 1 },
127
+ ],
128
+ // Gupshup Configuration
129
+ gupshupOptions: {
130
+ template: "Your verification code is {passCode}",
131
+ accountId: process.env.GUPSHUP_ACCOUNT_ID || "",
132
+ accountPassword: process.env.GUPSHUP_PASSWORD || "",
133
+ },
134
+ // AWS SNS Configuration
135
+ snsOptions: {
136
+ template: "Your verification code is {passCode}. This code will expire in 5 minutes. Do not share this code with anyone.",
137
+ region: process.env.AWS_REGION || "",
138
+ accessKeyId: process.env.AWS_ACCESS_KEY_ID || "",
139
+ secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY || "",
140
+ },
141
+ };
142
+ // Generate OTP (using same code length as config)
143
+ const codeLength = passwordlessOptions.codeLength || 4;
144
+ const CODE_MIN = Math.pow(10, codeLength - 1);
145
+ const CODE_MAX = Math.pow(10, codeLength) - 1;
146
+ // const generatedOtp = Math.floor(
147
+ // Math.random() * (CODE_MAX - CODE_MIN + 1) + CODE_MIN
148
+ // ).toString();
149
+ const generatedOtp = "1234";
150
+ // Send OTP via SNS using options from config
151
+ const smsSent = await (0, send_otp_helper_1.sendOtpViaSNS)(staffMobile, generatedOtp, passwordlessOptions, framework_1.logger);
152
+ if (!smsSent) {
153
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)("Failed to send OTP for store discount", 500));
154
+ }
155
+ // Store OTP in cart metadata
156
+ const cartService = req.scope.resolve("cart");
157
+ const { data: carts } = await query.graph({
158
+ entity: "cart",
159
+ fields: ["*"],
160
+ filters: { id: cart_id },
161
+ });
162
+ if (!carts.length) {
163
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(`Cart ${cart_id} not found`, 404));
164
+ }
165
+ const currentCart = await cartService.retrieveCart(cart_id);
166
+ const prevMeta = currentCart.metadata || {};
167
+ const storeDiscountMeta = {
168
+ amount,
169
+ code: "STORE_DISCOUNT",
170
+ verified: false,
171
+ otp: generatedOtp,
172
+ };
173
+ await cartService.updateCarts(cart_id, {
174
+ metadata: {
175
+ ...prevMeta,
176
+ store_discount: storeDiscountMeta,
177
+ },
178
+ });
179
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)({
180
+ cart_id,
181
+ amount,
182
+ staff_mobile: staffMobile,
183
+ otp_sent: true,
184
+ }, "OTP sent to staff mobile for store discount verification"));
185
+ }
186
+ catch (e) {
187
+ framework_1.logger.error("Failed to send OTP for store discount", e);
188
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(e?.message || "Failed to send OTP for store discount", 500));
189
+ }
190
+ }
191
+ // If OTP is provided, verify it from cart metadata
192
+ try {
193
+ const cartService = req.scope.resolve("cart");
194
+ // Retrieve cart to get metadata
195
+ const currentCart = await cartService.retrieveCart(cart_id);
196
+ const metadata = currentCart.metadata || {};
197
+ const storeDiscountMeta = (metadata.store_discount || {});
198
+ // Verify OTP from cart metadata: payload.otp === metadata.store_discount.otp
199
+ if (!storeDiscountMeta.otp) {
200
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)("No OTP found in cart metadata", 400));
201
+ }
202
+ if (storeDiscountMeta.otp !== otp) {
203
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)("Invalid OTP", 400));
204
+ }
205
+ // OTP verified – now apply the store discount (same logic as store-discount endpoint)
206
+ const { data: carts } = await query.graph({
207
+ entity: "cart",
208
+ fields: ["*", "items.*"],
209
+ filters: { id: cart_id },
210
+ });
211
+ if (!carts.length) {
212
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(`Cart ${cart_id} not found`, 404));
213
+ }
214
+ const cart = carts[0];
215
+ if (!cart.items?.length) {
216
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)("Cannot apply store discount to empty cart", 400));
217
+ }
218
+ const itemIds = cart.items.map((i) => i.id);
219
+ // Remove existing store-discount adjustments to keep it idempotent
220
+ const { data: existingAdjustments } = await query.graph({
221
+ entity: "line_item_adjustment",
222
+ fields: ["id"],
223
+ filters: {
224
+ item_id: { $in: itemIds },
225
+ code: "STORE_DISCOUNT",
226
+ },
227
+ });
228
+ if (existingAdjustments?.length) {
229
+ await cartService.deleteLineItemAdjustments(existingAdjustments.map((a) => a.id));
230
+ }
231
+ // Apply new store discount as a line-item adjustment on the first item
232
+ const targetItemId = itemIds[0];
233
+ await cartService.addLineItemAdjustments({
234
+ item_id: targetItemId,
235
+ code: "STORE_DISCOUNT",
236
+ amount,
237
+ });
238
+ // Update cart metadata to record store discount info (remove OTP after verification)
239
+ const prevMeta = currentCart.metadata || {};
240
+ const verifiedStoreDiscountMeta = {
241
+ amount,
242
+ code: "STORE_DISCOUNT",
243
+ verified: true,
244
+ };
245
+ await cartService.updateCarts(cart_id, {
246
+ metadata: {
247
+ ...prevMeta,
248
+ store_discount: verifiedStoreDiscountMeta,
249
+ },
250
+ });
251
+ const updatedCart = await (0, helpers_1.refetchCart)(cart_id, req.scope, constant_1.defaultStoreCartFields);
252
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)({
253
+ cart: updatedCart,
254
+ storeDiscount: verifiedStoreDiscountMeta,
255
+ }, "Store discount OTP verified and discount applied"));
256
+ }
257
+ catch (e) {
258
+ framework_1.logger.error("Error verifying store discount OTP", e);
259
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(e?.message || "Failed to verify store discount OTP", 500));
260
+ }
261
+ }
262
+ catch (error) {
263
+ framework_1.logger.error("Error in verify-store-discount", error);
264
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(error?.message || "Internal server error", 500));
265
+ }
266
+ };
267
+ exports.POST = POST;
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3Bvcy9kaXNjb3VudHMvdmVyaWZ5LXN0b3JlLWRpc2NvdW50L3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLHFEQUltQztBQUNuQywrREFJc0M7QUFFdEMsbURBQTZDO0FBQzdDLHVEQUFrRTtBQUNsRSxzRUFBdUU7QUFDdkUscUVBQWdFO0FBRXpELE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBZ0UsRUFDaEUsR0FBbUIsRUFDbkIsRUFBRTtJQUNGLElBQUksQ0FBQztRQUNILE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUM7UUFDbkQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUseURBQXlEO1FBQ3pELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxZQUFZLEVBQUUsUUFBOEIsQ0FBQztRQUNoRSxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxxQkFBcUIsR0FBa0IsSUFBSSxDQUFDO1FBQ2hELElBQUksU0FBUyxHQUFHLElBQUksQ0FBQztRQUVyQixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDO2dCQUNILE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUNuQyxpQ0FBeUIsQ0FBQyxZQUFZLENBQ3ZDLENBQUM7Z0JBQ0YsTUFBTSxLQUFLLEdBQUcsSUFBQSxtQ0FBMkIsRUFBQztvQkFDeEMsVUFBVSxFQUFFLE1BQU07b0JBQ2xCLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUU7b0JBQ3pCLE1BQU0sRUFBRTt3QkFDTixJQUFJO3dCQUNKLE9BQU87d0JBQ1AsWUFBWTt3QkFD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
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sendOtpViaSNS = sendOtpViaSNS;
4
+ const client_sns_1 = require("@aws-sdk/client-sns");
5
+ async function sendOtpViaSNS(phone, code, options, logger) {
6
+ if (!options.snsOptions) {
7
+ logger.error("SNS options are required to send OTP");
8
+ return false;
9
+ }
10
+ logger.info("Sending SMS via SNS");
11
+ const { region, accessKeyId, secretAccessKey, template } = options.snsOptions;
12
+ // Validate required SNS options
13
+ if (!region || !accessKeyId || !secretAccessKey || !template) {
14
+ logger.error("Missing required SNS configuration options");
15
+ return false;
16
+ }
17
+ const message = template.replaceAll("{passCode}", code);
18
+ const client = new client_sns_1.SNSClient({
19
+ region,
20
+ credentials: { accessKeyId, secretAccessKey },
21
+ });
22
+ try {
23
+ const command = new client_sns_1.PublishCommand({
24
+ Message: message,
25
+ PhoneNumber: phone,
26
+ });
27
+ console.log(`Sending SMS via SNS command: ${JSON.stringify(command)}`);
28
+ await client.send(command);
29
+ logger.info(`SMS sent successfully to ${phone}`);
30
+ return true;
31
+ }
32
+ catch (error) {
33
+ logger.error("Error sending SMS via SNS: ", error);
34
+ return false;
35
+ }
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1vdHAtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9zZW5kLW90cC1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxzQ0F3Q0M7QUE1Q0Qsb0RBQWdFO0FBSXpELEtBQUssVUFBVSxhQUFhLENBQ2pDLEtBQWEsRUFDYixJQUFZLEVBQ1osT0FBWSxFQUNaLE1BQWM7SUFFZCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztRQUNyRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDbkMsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFFOUUsZ0NBQWdDO0lBQ2hDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3RCxNQUFNLENBQUMsS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7UUFDM0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxzQkFBUyxDQUFDO1FBQzNCLE1BQU07UUFDTixXQUFXLEVBQUUsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFO0tBQzlDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQztRQUNILE1BQU0sT0FBTyxHQUFHLElBQUksMkJBQWMsQ0FBQztZQUNqQyxPQUFPLEVBQUUsT0FBTztZQUNoQixXQUFXLEVBQUUsS0FBSztTQUNuQixDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2RSxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0IsTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNqRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDSCxDQUFDIn0=
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.removeCouponWorkflow = void 0;
4
4
  const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
5
  const core_flows_1 = require("@medusajs/medusa/core-flows");
6
- const remove_coupon_step_1 = require("./step/remove-coupon-step");
7
6
  const locking_1 = require("../../locking");
8
7
  const throw_error_step_1 = require("../../steps/throw-error-step");
8
+ const remove_coupon_step_1 = require("./step/remove-coupon-step");
9
9
  exports.removeCouponWorkflow = (0, workflows_sdk_1.createWorkflow)("remove-coupon", (input) => {
10
10
  (0, locking_1.acquireLockStep)({
11
11
  key: input.cart_id,
@@ -19,8 +19,11 @@ exports.removeCouponWorkflow = (0, workflows_sdk_1.createWorkflow)("remove-coupo
19
19
  options: { throwIfKeyNotFound: true },
20
20
  });
21
21
  const cart = (0, workflows_sdk_1.transform)({ carts }, ({ carts }) => carts[0]);
22
- (0, workflows_sdk_1.when)("validate-cart-coupon-exists", cart, (cart) => cart && (cart?.metadata?.code === input.code ||
23
- cart?.metadata?.discount?.code === input.code)).then(() => {
22
+ const codes = (0, workflows_sdk_1.transform)({ cart, input }, ({ cart, input }) => ({
23
+ cartCode: String((cart?.metadata.code || cart?.metadata?.discount?.code) ?? ""),
24
+ inputCode: String(input.code ?? ""),
25
+ }));
26
+ (0, workflows_sdk_1.when)(codes, ({ cartCode, inputCode }) => cartCode !== inputCode).then(() => {
24
27
  (0, throw_error_step_1.throwErrorStep)({ errorMessage: `This coupon code is invalid.` });
25
28
  });
26
29
  const removedCoupon = (0, remove_coupon_step_1.removeCouponStep)({ cart, code: input.code });
@@ -32,4 +35,4 @@ exports.removeCouponWorkflow = (0, workflows_sdk_1.createWorkflow)("remove-coupo
32
35
  hooks: [couponRemoved],
33
36
  });
34
37
  });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2Rpc2NvdW50L3JlbW92ZS1jb3Vwb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBSzJDO0FBQzNDLDREQUFnRTtBQUdoRSxrRUFBNkQ7QUFDN0QsMkNBQWlFO0FBTWpFLG1FQUE4RDtBQUVqRCxRQUFBLG9CQUFvQixHQUFHLElBQUEsOEJBQWMsRUFDaEQsZUFBZSxFQUNmLENBQUMsS0FBOEIsRUFBRSxFQUFFO0lBQ2pDLElBQUEseUJBQWUsRUFBQztRQUNkLEdBQUcsRUFBRSxLQUFLLENBQUMsT0FBTztRQUNsQixPQUFPLEVBQUUsS0FBSztRQUNkLEdBQUcsRUFBRSxNQUFNO0tBQ1osQ0FBQyxDQUFDO0lBRUgsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFBLDhCQUFpQixFQUFDO1FBQ3hDLE1BQU0sRUFBRSxNQUFNO1FBQ2QsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQztRQUN4QixPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRTtRQUM5QixPQUFPLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUU7S0FDdEMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxJQUFJLEdBQUcsSUFBQSx5QkFBUyxFQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUzRCxJQUFBLG9CQUFJLEVBQ0YsNkJBQTZCLEVBQzdCLElBQUksRUFDSixDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUk7UUFDcEQsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FDakQsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1YsSUFBQSxpQ0FBYyxFQUFDLEVBQUUsWUFBWSxFQUFFLDhCQUE4QixFQUFFLENBQUMsQ0FBQztJQUNuRSxDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0sYUFBYSxHQUFHLElBQUEscUNBQWdCLEVBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRW5FLElBQUEseUJBQWUsRUFBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUV4QyxNQUFNLGFBQWEsR0FBRyxJQUFBLDBCQUFVLEVBQUMsZUFBZSxFQUFFO1FBQ2hELE1BQU0sRUFBRSxLQUFLLENBQUMsT0FBTztLQUN0QixDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksZ0NBQWdCLENBQUMsYUFBYSxFQUFFO1FBQ3pDLEtBQUssRUFBRSxDQUFDLGFBQWEsQ0FBQztLQUN2QixDQUFDLENBQUM7QUFDTCxDQUFDLENBQ0YsQ0FBQyJ9
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2Rpc2NvdW50L3JlbW92ZS1jb3Vwb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBSzJDO0FBQzNDLDREQUFnRTtBQUdoRSwyQ0FBaUU7QUFDakUsbUVBQThEO0FBQzlELGtFQUE2RDtBQUVoRCxRQUFBLG9CQUFvQixHQUFHLElBQUEsOEJBQWMsRUFDaEQsZUFBZSxFQUNmLENBQUMsS0FBOEIsRUFBRSxFQUFFO0lBQ2pDLElBQUEseUJBQWUsRUFBQztRQUNkLEdBQUcsRUFBRSxLQUFLLENBQUMsT0FBTztRQUNsQixPQUFPLEVBQUUsS0FBSztRQUNkLEdBQUcsRUFBRSxNQUFNO0tBQ1osQ0FBQyxDQUFDO0lBRUgsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFBLDhCQUFpQixFQUFDO1FBQ3hDLE1BQU0sRUFBRSxNQUFNO1FBQ2QsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQztRQUN4QixPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRTtRQUM5QixPQUFPLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUU7S0FDdEMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxJQUFJLEdBQUcsSUFBQSx5QkFBUyxFQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUzRCxNQUFNLEtBQUssR0FBRyxJQUFBLHlCQUFTLEVBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3RCxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLElBQUksSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9FLFNBQVMsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7S0FDcEMsQ0FBQyxDQUFDLENBQUM7SUFFSixJQUFBLG9CQUFJLEVBQ0YsS0FBSyxFQUNMLENBQUMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQ3BELENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNWLElBQUEsaUNBQWMsRUFBQyxFQUFFLFlBQVksRUFBRSw4QkFBOEIsRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLGFBQWEsR0FBRyxJQUFBLHFDQUFnQixFQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUVuRSxJQUFBLHlCQUFlLEVBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFFeEMsTUFBTSxhQUFhLEdBQUcsSUFBQSwwQkFBVSxFQUFDLGVBQWUsRUFBRTtRQUNoRCxNQUFNLEVBQUUsS0FBSyxDQUFDLE9BQU87S0FDdEIsQ0FBQyxDQUFDO0lBRUgsT0FBTyxJQUFJLGdDQUFnQixDQUFDLGFBQWEsRUFBRTtRQUN6QyxLQUFLLEVBQUUsQ0FBQyxhQUFhLENBQUM7S0FDdkIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUNGLENBQUMifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devx-commerce/plugin-discounts-svaraa",
3
- "version": "0.0.2-beta.11",
3
+ "version": "0.0.2-beta.13",
4
4
  "description": "Plugin for discounts for Svaraa.",
5
5
  "author": "devx-commerce (https://devxcommerce.com)",
6
6
  "license": "MIT",
@@ -82,6 +82,8 @@
82
82
  },
83
83
  "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e",
84
84
  "dependencies": {
85
- "moment": "^2.30.1"
85
+ "moment": "^2.30.1",
86
+ "@aws-sdk/client-sns": "^3.750.0",
87
+ "axios": "^1.7.7"
86
88
  }
87
89
  }