@rahul_vendure/ai-chat-plugin 0.1.2 → 0.1.4

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 (58) hide show
  1. package/README.md +11 -2
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/services/admin-ai-chat.service.d.ts +8 -0
  5. package/dist/services/admin-ai-chat.service.d.ts.map +1 -1
  6. package/dist/services/admin-ai-chat.service.js +129 -0
  7. package/dist/services/admin-ai-chat.service.js.map +1 -1
  8. package/dist/services/admin-system-prompt.d.ts +1 -1
  9. package/dist/services/admin-system-prompt.d.ts.map +1 -1
  10. package/dist/services/admin-system-prompt.js +27 -3
  11. package/dist/services/admin-system-prompt.js.map +1 -1
  12. package/dist/services/admin-tools/admin-country-tools.d.ts +16 -0
  13. package/dist/services/admin-tools/admin-country-tools.d.ts.map +1 -0
  14. package/dist/services/admin-tools/admin-country-tools.js +51 -0
  15. package/dist/services/admin-tools/admin-country-tools.js.map +1 -0
  16. package/dist/services/admin-tools/admin-facet-tools.d.ts +20 -0
  17. package/dist/services/admin-tools/admin-facet-tools.d.ts.map +1 -0
  18. package/dist/services/admin-tools/admin-facet-tools.js +100 -0
  19. package/dist/services/admin-tools/admin-facet-tools.js.map +1 -0
  20. package/dist/services/admin-tools/admin-payment-tools.d.ts +15 -0
  21. package/dist/services/admin-tools/admin-payment-tools.d.ts.map +1 -0
  22. package/dist/services/admin-tools/admin-payment-tools.js +53 -0
  23. package/dist/services/admin-tools/admin-payment-tools.js.map +1 -0
  24. package/dist/services/admin-tools/admin-promotion-tools.d.ts +16 -0
  25. package/dist/services/admin-tools/admin-promotion-tools.d.ts.map +1 -0
  26. package/dist/services/admin-tools/admin-promotion-tools.js +66 -0
  27. package/dist/services/admin-tools/admin-promotion-tools.js.map +1 -0
  28. package/dist/services/admin-tools/admin-settings-tools.d.ts +20 -0
  29. package/dist/services/admin-tools/admin-settings-tools.d.ts.map +1 -0
  30. package/dist/services/admin-tools/admin-settings-tools.js +114 -0
  31. package/dist/services/admin-tools/admin-settings-tools.js.map +1 -0
  32. package/dist/services/admin-tools/admin-shipping-tools.d.ts +16 -0
  33. package/dist/services/admin-tools/admin-shipping-tools.d.ts.map +1 -0
  34. package/dist/services/admin-tools/admin-shipping-tools.js +55 -0
  35. package/dist/services/admin-tools/admin-shipping-tools.js.map +1 -0
  36. package/dist/services/admin-tools/admin-staff-tools.d.ts +19 -0
  37. package/dist/services/admin-tools/admin-staff-tools.d.ts.map +1 -0
  38. package/dist/services/admin-tools/admin-staff-tools.js +88 -0
  39. package/dist/services/admin-tools/admin-staff-tools.js.map +1 -0
  40. package/dist/services/admin-tools/admin-tax-tools.d.ts +23 -0
  41. package/dist/services/admin-tools/admin-tax-tools.d.ts.map +1 -0
  42. package/dist/services/admin-tools/admin-tax-tools.js +116 -0
  43. package/dist/services/admin-tools/admin-tax-tools.js.map +1 -0
  44. package/dist/services/ai-chat.service.d.ts +3 -2
  45. package/dist/services/ai-chat.service.d.ts.map +1 -1
  46. package/dist/services/ai-chat.service.js +37 -1
  47. package/dist/services/ai-chat.service.js.map +1 -1
  48. package/dist/services/system-prompt.d.ts +1 -1
  49. package/dist/services/system-prompt.d.ts.map +1 -1
  50. package/dist/services/system-prompt.js +18 -0
  51. package/dist/services/system-prompt.js.map +1 -1
  52. package/dist/services/tools/promotion-tools.d.ts +48 -0
  53. package/dist/services/tools/promotion-tools.d.ts.map +1 -0
  54. package/dist/services/tools/promotion-tools.js +410 -0
  55. package/dist/services/tools/promotion-tools.js.map +1 -0
  56. package/dist/services/types.d.ts +21 -0
  57. package/dist/services/types.d.ts.map +1 -1
  58. package/package.json +2 -2
@@ -0,0 +1,410 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PromotionTools = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const core_1 = require("@vendure/core");
6
+ const constants_1 = require("../../constants");
7
+ class PromotionTools {
8
+ constructor(connection, orderService) {
9
+ this.connection = connection;
10
+ this.orderService = orderService;
11
+ this.logger = new common_1.Logger(PromotionTools.name);
12
+ }
13
+ /**
14
+ * Get all currently active promotions available to the customer.
15
+ * Shows coupon-based and automatic promotions with their conditions and discounts.
16
+ */
17
+ async getAvailablePromotions(ctx) {
18
+ var _a, _b, _c, _d;
19
+ try {
20
+ // Query active promotions that haven't expired.
21
+ // Conditions and actions are stored as simple-json columns directly on the promotion table.
22
+ // Use NOW() directly in SQL so PostgreSQL handles timezone comparison natively
23
+ // instead of passing a JS-generated ISO string which can cause timezone mismatches.
24
+ const result = await this.connection.rawConnection.query(`SELECT p.id, p."couponCode", p."perCustomerUsageLimit", p."usageLimit",
25
+ p."startsAt", p."endsAt", p.enabled,
26
+ p.conditions, p.actions,
27
+ t.name, t.description
28
+ FROM promotion p
29
+ JOIN promotion_translation t ON t."baseId" = p.id
30
+ WHERE p.enabled = true
31
+ AND p."deletedAt" IS NULL
32
+ AND (p."startsAt" IS NULL OR p."startsAt" <= NOW())
33
+ AND (p."endsAt" IS NULL OR p."endsAt" >= NOW())
34
+ ORDER BY p.id ASC`);
35
+ this.logger.log(`getAvailablePromotions: query returned ${result.length} rows`);
36
+ const promotions = [];
37
+ for (const row of result) {
38
+ const promo = {
39
+ id: String(row.id),
40
+ name: String((_a = row.name) !== null && _a !== void 0 ? _a : ''),
41
+ description: String((_b = row.description) !== null && _b !== void 0 ? _b : ''),
42
+ couponCode: row.couponCode ? String(row.couponCode) : undefined,
43
+ startsAt: row.startsAt ? new Date(row.startsAt).toISOString() : undefined,
44
+ endsAt: row.endsAt ? new Date(row.endsAt).toISOString() : undefined,
45
+ perCustomerUsageLimit: row.perCustomerUsageLimit ? Number(row.perCustomerUsageLimit) : undefined,
46
+ };
47
+ // Parse conditions from the simple-json column
48
+ const conditions = this.parseJsonColumn(row.conditions);
49
+ const conditionDetails = [];
50
+ for (const c of conditions) {
51
+ const parsed = this.parseCondition((_c = c.code) !== null && _c !== void 0 ? _c : c.type, c.args);
52
+ if (parsed)
53
+ conditionDetails.push(parsed);
54
+ }
55
+ if (conditionDetails.length > 0) {
56
+ promo.conditions = conditionDetails;
57
+ }
58
+ // Parse actions from the simple-json column
59
+ const actions = this.parseJsonColumn(row.actions);
60
+ const actionDetails = [];
61
+ for (const a of actions) {
62
+ const parsed = this.parseAction((_d = a.code) !== null && _d !== void 0 ? _d : a.type, a.args);
63
+ if (parsed)
64
+ actionDetails.push(parsed);
65
+ }
66
+ if (actionDetails.length > 0) {
67
+ promo.discountSummary = actionDetails.join('; ');
68
+ }
69
+ promotions.push(promo);
70
+ }
71
+ const couponPromos = promotions.filter(p => p.couponCode);
72
+ const autoPromos = promotions.filter(p => !p.couponCode);
73
+ let summary = '';
74
+ if (promotions.length === 0) {
75
+ summary = 'No active promotions available at this time.';
76
+ }
77
+ else {
78
+ const parts = [];
79
+ if (autoPromos.length > 0) {
80
+ parts.push(`Automatic promotions (applied automatically): ${autoPromos.map(p => { var _a; return `"${p.name}"${p.discountSummary ? ' — ' + p.discountSummary : ''}${((_a = p.conditions) === null || _a === void 0 ? void 0 : _a.length) ? ' (requires: ' + p.conditions.join(', ') + ')' : ''}`; }).join('; ')}`);
81
+ }
82
+ if (couponPromos.length > 0) {
83
+ parts.push(`Coupon promotions (need a coupon code): ${couponPromos.map(p => { var _a; return `"${p.name}" — code: "${p.couponCode}"${p.discountSummary ? ', discount: ' + p.discountSummary : ''}${((_a = p.conditions) === null || _a === void 0 ? void 0 : _a.length) ? ' (requires: ' + p.conditions.join(', ') + ')' : ''}${p.endsAt ? ', expires: ' + new Date(p.endsAt).toLocaleDateString() : ''}`; }).join('; ')}`);
84
+ }
85
+ summary = parts.join('. ');
86
+ }
87
+ return {
88
+ products: [],
89
+ collections: [],
90
+ promotions,
91
+ summary,
92
+ };
93
+ }
94
+ catch (e) {
95
+ this.logger.error(`Error fetching promotions: ${e}`);
96
+ return { products: [], collections: [], summary: 'Error fetching available promotions.' };
97
+ }
98
+ }
99
+ /**
100
+ * Apply a coupon code to the customer's active order.
101
+ */
102
+ async applyCouponCode(ctx, params) {
103
+ var _a, _b, _c, _d, _e;
104
+ if (!ctx.activeUserId) {
105
+ return { products: [], collections: [], summary: 'Error: You must be logged in to apply a coupon code.' };
106
+ }
107
+ const couponCode = (_a = params.couponCode) === null || _a === void 0 ? void 0 : _a.trim();
108
+ if (!couponCode) {
109
+ return { products: [], collections: [], summary: 'Error: No coupon code provided.' };
110
+ }
111
+ try {
112
+ const order = await this.orderService.getActiveOrderForUser(ctx, ctx.activeUserId);
113
+ if (!order) {
114
+ return { products: [], collections: [], summary: 'Error: No active order found. Add items to your cart first.' };
115
+ }
116
+ const result = await this.orderService.applyCouponCode(ctx, order.id, couponCode);
117
+ if ((0, core_1.isGraphQlErrorResult)(result)) {
118
+ const errorMsg = (_c = (_b = result.message) !== null && _b !== void 0 ? _b : result.errorCode) !== null && _c !== void 0 ? _c : 'Unknown error';
119
+ this.logger.warn(`applyCouponCode error: ${errorMsg}`);
120
+ // Provide a user-friendly message
121
+ if (errorMsg.includes('COUPON_CODE_INVALID') || errorMsg.toLowerCase().includes('invalid')) {
122
+ return { products: [], collections: [], summary: `The coupon code "${couponCode}" is not valid. Please check the code and try again.` };
123
+ }
124
+ if (errorMsg.includes('COUPON_CODE_EXPIRED') || errorMsg.toLowerCase().includes('expired')) {
125
+ return { products: [], collections: [], summary: `The coupon code "${couponCode}" has expired.` };
126
+ }
127
+ if (errorMsg.includes('COUPON_CODE_LIMIT_ERROR') || errorMsg.toLowerCase().includes('limit')) {
128
+ return { products: [], collections: [], summary: `The coupon code "${couponCode}" has reached its usage limit.` };
129
+ }
130
+ return { products: [], collections: [], summary: `Error applying coupon code: ${errorMsg}` };
131
+ }
132
+ // Get the updated order to show the new total
133
+ const updatedOrder = result;
134
+ const totalBefore = (_d = order.totalWithTax) !== null && _d !== void 0 ? _d : 0;
135
+ const totalAfter = (_e = updatedOrder.totalWithTax) !== null && _e !== void 0 ? _e : 0;
136
+ const discount = totalBefore - totalAfter;
137
+ let summaryText = `Coupon code "${couponCode}" applied successfully!`;
138
+ if (discount > 0) {
139
+ summaryText += ` You saved ${(0, constants_1.formatPrice)(discount)}. New order total: ${(0, constants_1.formatPrice)(totalAfter)}.`;
140
+ }
141
+ else {
142
+ summaryText += ` Order total: ${(0, constants_1.formatPrice)(totalAfter)}.`;
143
+ }
144
+ return {
145
+ products: [],
146
+ collections: [],
147
+ summary: summaryText,
148
+ applyCouponAction: { couponCode, applied: true },
149
+ };
150
+ }
151
+ catch (e) {
152
+ this.logger.error(`Error applying coupon code: ${e}`);
153
+ return { products: [], collections: [], summary: 'Error applying coupon code. Please try again.' };
154
+ }
155
+ }
156
+ /**
157
+ * Remove a coupon code from the customer's active order.
158
+ */
159
+ async removeCouponCode(ctx, params) {
160
+ var _a, _b;
161
+ if (!ctx.activeUserId) {
162
+ return { products: [], collections: [], summary: 'Error: You must be logged in to remove a coupon code.' };
163
+ }
164
+ const couponCode = (_a = params.couponCode) === null || _a === void 0 ? void 0 : _a.trim();
165
+ if (!couponCode) {
166
+ return { products: [], collections: [], summary: 'Error: No coupon code provided.' };
167
+ }
168
+ try {
169
+ const order = await this.orderService.getActiveOrderForUser(ctx, ctx.activeUserId);
170
+ if (!order) {
171
+ return { products: [], collections: [], summary: 'Error: No active order found.' };
172
+ }
173
+ const result = await this.orderService.removeCouponCode(ctx, order.id, couponCode);
174
+ // removeCouponCode returns the updated Order (not an error result)
175
+ if (!result) {
176
+ return { products: [], collections: [], summary: `Could not remove coupon code "${couponCode}". It may not be applied to your order.` };
177
+ }
178
+ const totalAfter = (_b = result.totalWithTax) !== null && _b !== void 0 ? _b : 0;
179
+ return {
180
+ products: [],
181
+ collections: [],
182
+ summary: `Coupon code "${couponCode}" removed. Updated order total: ${(0, constants_1.formatPrice)(totalAfter)}.`,
183
+ applyCouponAction: { couponCode, applied: false },
184
+ };
185
+ }
186
+ catch (e) {
187
+ this.logger.error(`Error removing coupon code: ${e}`);
188
+ return { products: [], collections: [], summary: 'Error removing coupon code. Please try again.' };
189
+ }
190
+ }
191
+ /**
192
+ * Get the current discounts/promotions applied to the active order,
193
+ * including how much more the customer needs to spend to qualify for other promotions.
194
+ */
195
+ async getCartDiscounts(ctx) {
196
+ var _a, _b, _c;
197
+ if (!ctx.activeUserId) {
198
+ return { products: [], collections: [], summary: 'Error: You must be logged in to view cart discounts.' };
199
+ }
200
+ try {
201
+ const order = await this.orderService.getActiveOrderForUser(ctx, ctx.activeUserId);
202
+ if (!order) {
203
+ return { products: [], collections: [], summary: 'No active order found. Add items to your cart first.' };
204
+ }
205
+ // Load full order with discounts
206
+ const fullOrder = await this.connection.rawConnection.query(`SELECT o.id, o.code, o."subTotalWithTax", o."totalWithTax",
207
+ o."couponCodes"
208
+ FROM "order" o
209
+ WHERE o.id = $1`, [order.id]);
210
+ if (!fullOrder || fullOrder.length === 0) {
211
+ return { products: [], collections: [], summary: 'Could not load order details.' };
212
+ }
213
+ const orderData = fullOrder[0];
214
+ const subTotal = Number((_a = orderData.subTotalWithTax) !== null && _a !== void 0 ? _a : 0);
215
+ const total = Number((_b = orderData.totalWithTax) !== null && _b !== void 0 ? _b : 0);
216
+ const discount = subTotal - total;
217
+ const couponCodes = orderData.couponCodes
218
+ ? (typeof orderData.couponCodes === 'string' ? JSON.parse(orderData.couponCodes) : orderData.couponCodes)
219
+ : [];
220
+ // Check which promotions customer could still qualify for
221
+ const allPromotions = await this.connection.rawConnection.query(`SELECT p.id, p."couponCode", p.conditions,
222
+ t.name, t.description
223
+ FROM promotion p
224
+ JOIN promotion_translation t ON t."baseId" = p.id
225
+ WHERE p.enabled = true
226
+ AND p."deletedAt" IS NULL
227
+ AND (p."startsAt" IS NULL OR p."startsAt" <= NOW())
228
+ AND (p."endsAt" IS NULL OR p."endsAt" >= NOW())`);
229
+ // Check for minimum order amount conditions
230
+ const nearbyPromotions = [];
231
+ for (const promo of allPromotions) {
232
+ const conditions = this.parseJsonColumn(promo.conditions);
233
+ for (const c of conditions) {
234
+ const code = (_c = c.code) !== null && _c !== void 0 ? _c : c.type;
235
+ if (code === 'minimum_order_amount' || code === 'minimumOrderAmount') {
236
+ const minAmount = this.extractAmountFromArgs(c.args);
237
+ if (minAmount && subTotal < minAmount) {
238
+ const remaining = minAmount - subTotal;
239
+ nearbyPromotions.push(`"${promo.name}" — spend ${(0, constants_1.formatPrice)(remaining)} more to qualify${promo.couponCode ? ` (use code: "${promo.couponCode}")` : ' (applied automatically)'}`);
240
+ }
241
+ }
242
+ }
243
+ }
244
+ // Build summary
245
+ const parts = [];
246
+ parts.push(`Cart subtotal: ${(0, constants_1.formatPrice)(subTotal)}, total: ${(0, constants_1.formatPrice)(total)}.`);
247
+ if (couponCodes.length > 0) {
248
+ parts.push(`Applied coupon codes: ${couponCodes.map((c) => `"${c}"`).join(', ')}.`);
249
+ }
250
+ if (discount > 0) {
251
+ parts.push(`Total discount: ${(0, constants_1.formatPrice)(discount)}.`);
252
+ }
253
+ else {
254
+ parts.push('No discounts currently applied.');
255
+ }
256
+ if (nearbyPromotions.length > 0) {
257
+ parts.push(`Promotions you're close to qualifying for: ${nearbyPromotions.join('; ')}`);
258
+ }
259
+ return {
260
+ products: [],
261
+ collections: [],
262
+ summary: parts.join(' '),
263
+ };
264
+ }
265
+ catch (e) {
266
+ this.logger.error(`Error fetching cart discounts: ${e}`);
267
+ return { products: [], collections: [], summary: 'Error fetching cart discount information.' };
268
+ }
269
+ }
270
+ // ── Helper methods ──
271
+ /**
272
+ * Parse a simple-json column value into an array.
273
+ * Vendure stores conditions/actions as JSON arrays in the promotion table.
274
+ * Each entry has { code, args } where args is an array of { name, value } pairs.
275
+ */
276
+ parseJsonColumn(value) {
277
+ try {
278
+ if (!value)
279
+ return [];
280
+ if (Array.isArray(value))
281
+ return value;
282
+ if (typeof value === 'string') {
283
+ const parsed = JSON.parse(value);
284
+ return Array.isArray(parsed) ? parsed : [];
285
+ }
286
+ return [];
287
+ }
288
+ catch {
289
+ return [];
290
+ }
291
+ }
292
+ parseCondition(code, argsRaw) {
293
+ var _a;
294
+ if (!code)
295
+ return null;
296
+ try {
297
+ const args = this.normalizeArgs(argsRaw);
298
+ const argsMap = new Map(args.map((a) => [a.name, a.value]));
299
+ switch (code) {
300
+ case 'minimum_order_amount':
301
+ case 'minimumOrderAmount': {
302
+ const amount = this.extractAmountFromArgs(argsRaw);
303
+ return amount ? `Minimum order of ${(0, constants_1.formatPrice)(amount)}` : 'Minimum order amount required';
304
+ }
305
+ case 'at_least_n_with_facets':
306
+ case 'atLeastNWithFacets': {
307
+ const minimum = (_a = argsMap.get('minimum')) !== null && _a !== void 0 ? _a : argsMap.get('count');
308
+ return minimum ? `At least ${minimum} qualifying items` : 'Specific items required';
309
+ }
310
+ case 'buy_x_get_y_free':
311
+ case 'buyXGetYFree': {
312
+ const amountX = argsMap.get('amountX');
313
+ const amountY = argsMap.get('amountY');
314
+ return amountX && amountY ? `Buy ${amountX} get ${amountY} free` : 'Buy X get Y free';
315
+ }
316
+ case 'customer_group':
317
+ case 'customerGroup':
318
+ return 'Available to specific customer groups';
319
+ default:
320
+ return null;
321
+ }
322
+ }
323
+ catch {
324
+ return null;
325
+ }
326
+ }
327
+ parseAction(code, argsRaw) {
328
+ if (!code)
329
+ return null;
330
+ try {
331
+ const args = this.normalizeArgs(argsRaw);
332
+ const argsMap = new Map(args.map((a) => [a.name, a.value]));
333
+ switch (code) {
334
+ case 'order_percentage_discount':
335
+ case 'orderPercentageDiscount': {
336
+ const discount = argsMap.get('discount');
337
+ return discount ? `${discount}% off entire order` : 'Percentage discount on order';
338
+ }
339
+ case 'order_fixed_discount':
340
+ case 'orderFixedDiscount': {
341
+ const discount = argsMap.get('discount');
342
+ return discount ? `${(0, constants_1.formatPrice)(Number(discount))} off entire order` : 'Fixed discount on order';
343
+ }
344
+ case 'facet_based_discount':
345
+ case 'discountOnItemWithFacets': {
346
+ const discount = argsMap.get('discount');
347
+ return discount ? `${discount}% off qualifying items` : 'Discount on qualifying items';
348
+ }
349
+ case 'products_percentage_discount':
350
+ case 'productsPercentageDiscount': {
351
+ const discount = argsMap.get('discount');
352
+ return discount ? `${discount}% off specific products` : 'Percentage discount on products';
353
+ }
354
+ case 'free_shipping':
355
+ case 'freeShipping':
356
+ return 'Free shipping';
357
+ case 'buy_x_get_y_free':
358
+ case 'buyXGetYFree':
359
+ return 'Buy X get Y free';
360
+ default:
361
+ return null;
362
+ }
363
+ }
364
+ catch {
365
+ return null;
366
+ }
367
+ }
368
+ /**
369
+ * Normalize args from Vendure's condition/action format.
370
+ * Args can be:
371
+ * - An array of { name, value } objects
372
+ * - A JSON string of such an array
373
+ * - An object with { argName: value } pairs
374
+ */
375
+ normalizeArgs(argsRaw) {
376
+ try {
377
+ if (!argsRaw)
378
+ return [];
379
+ const args = typeof argsRaw === 'string' ? JSON.parse(argsRaw) : argsRaw;
380
+ if (Array.isArray(args))
381
+ return args;
382
+ // Handle { key: value } format
383
+ if (typeof args === 'object') {
384
+ return Object.entries(args).map(([name, value]) => ({ name, value }));
385
+ }
386
+ return [];
387
+ }
388
+ catch {
389
+ return [];
390
+ }
391
+ }
392
+ extractAmountFromArgs(argsRaw) {
393
+ try {
394
+ const args = this.normalizeArgs(argsRaw);
395
+ for (const a of args) {
396
+ if (a.name === 'amount' || a.name === 'orderMinimum' || a.name === 'minimum') {
397
+ const val = Number(a.value);
398
+ if (!isNaN(val) && val > 0)
399
+ return val;
400
+ }
401
+ }
402
+ return null;
403
+ }
404
+ catch {
405
+ return null;
406
+ }
407
+ }
408
+ }
409
+ exports.PromotionTools = PromotionTools;
410
+ //# sourceMappingURL=promotion-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promotion-tools.js","sourceRoot":"","sources":["../../../src/services/tools/promotion-tools.ts"],"names":[],"mappings":"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"}
@@ -87,6 +87,23 @@ export interface SetBillingAddressAction {
87
87
  export interface SetShippingMethodAction {
88
88
  shippingMethodId: string;
89
89
  }
90
+ /** A promotion available to the customer */
91
+ export interface AiPromotion {
92
+ id: string;
93
+ name: string;
94
+ description: string;
95
+ couponCode?: string;
96
+ startsAt?: string;
97
+ endsAt?: string;
98
+ perCustomerUsageLimit?: number;
99
+ conditions?: string[];
100
+ discountSummary?: string;
101
+ }
102
+ /** Action signal for applying/removing a coupon code */
103
+ export interface ApplyCouponAction {
104
+ couponCode: string;
105
+ applied: boolean;
106
+ }
90
107
  export interface ChatResult {
91
108
  message: string;
92
109
  products: AiChatProduct[];
@@ -97,6 +114,8 @@ export interface ChatResult {
97
114
  setShippingAddressAction?: SetShippingAddressAction;
98
115
  setBillingAddressAction?: SetBillingAddressAction;
99
116
  setShippingMethodAction?: SetShippingMethodAction;
117
+ promotions?: AiPromotion[];
118
+ applyCouponAction?: ApplyCouponAction;
100
119
  }
101
120
  /** Result type for streaming chat — returns a ReadableStream + structured data promise */
102
121
  export interface StreamingChatResult {
@@ -114,5 +133,7 @@ export interface ToolResult {
114
133
  setShippingAddressAction?: SetShippingAddressAction;
115
134
  setBillingAddressAction?: SetBillingAddressAction;
116
135
  setShippingMethodAction?: SetShippingMethodAction;
136
+ promotions?: AiPromotion[];
137
+ applyCouponAction?: ApplyCouponAction;
117
138
  }
118
139
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/services/types.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,uDAAuD;AACvD,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,4DAA4D;AAC5D,MAAM,WAAW,eAAe;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,kDAAkD;AAClD,mDAAmD;AACnD,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;CAC5B;AAED,kDAAkD;AAClD,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,YAAY,EAAE,KAAK,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;KAC/B,CAAC,CAAC;CACN;AAED,4CAA4C;AAC5C,MAAM,WAAW,UAAU;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC5B;AAED,sCAAsC;AACtC,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,6DAA6D;AAC7D,MAAM,WAAW,wBAAwB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,4DAA4D;AAC5D,MAAM,WAAW,uBAAuB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,4DAA4D;AAC5D,MAAM,WAAW,uBAAuB;IACpC,gBAAgB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;IAClD,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;CACrD;AAED,0FAA0F;AAC1F,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACnC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;CACrD;AAED,4DAA4D;AAC5D,MAAM,WAAW,UAAU;IACvB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;IAClD,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;CACrD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/services/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rahul_vendure/ai-chat-plugin",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "AI-powered shopping assistant plugin for Vendure — LLM chat, vector search, cart management, and order tracking",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -38,7 +38,7 @@
38
38
  },
39
39
  "repository": {
40
40
  "type": "git",
41
- "url": "https://github.com/Ryrahul/Vendure-ai.git",
41
+ "url": "git+https://github.com/Ryrahul/Vendure-ai.git",
42
42
  "directory": "packages/ai-chat-plugin"
43
43
  },
44
44
  "peerDependencies": {