@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.
- package/README.md +11 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/services/admin-ai-chat.service.d.ts +8 -0
- package/dist/services/admin-ai-chat.service.d.ts.map +1 -1
- package/dist/services/admin-ai-chat.service.js +129 -0
- package/dist/services/admin-ai-chat.service.js.map +1 -1
- package/dist/services/admin-system-prompt.d.ts +1 -1
- package/dist/services/admin-system-prompt.d.ts.map +1 -1
- package/dist/services/admin-system-prompt.js +27 -3
- package/dist/services/admin-system-prompt.js.map +1 -1
- package/dist/services/admin-tools/admin-country-tools.d.ts +16 -0
- package/dist/services/admin-tools/admin-country-tools.d.ts.map +1 -0
- package/dist/services/admin-tools/admin-country-tools.js +51 -0
- package/dist/services/admin-tools/admin-country-tools.js.map +1 -0
- package/dist/services/admin-tools/admin-facet-tools.d.ts +20 -0
- package/dist/services/admin-tools/admin-facet-tools.d.ts.map +1 -0
- package/dist/services/admin-tools/admin-facet-tools.js +100 -0
- package/dist/services/admin-tools/admin-facet-tools.js.map +1 -0
- package/dist/services/admin-tools/admin-payment-tools.d.ts +15 -0
- package/dist/services/admin-tools/admin-payment-tools.d.ts.map +1 -0
- package/dist/services/admin-tools/admin-payment-tools.js +53 -0
- package/dist/services/admin-tools/admin-payment-tools.js.map +1 -0
- package/dist/services/admin-tools/admin-promotion-tools.d.ts +16 -0
- package/dist/services/admin-tools/admin-promotion-tools.d.ts.map +1 -0
- package/dist/services/admin-tools/admin-promotion-tools.js +66 -0
- package/dist/services/admin-tools/admin-promotion-tools.js.map +1 -0
- package/dist/services/admin-tools/admin-settings-tools.d.ts +20 -0
- package/dist/services/admin-tools/admin-settings-tools.d.ts.map +1 -0
- package/dist/services/admin-tools/admin-settings-tools.js +114 -0
- package/dist/services/admin-tools/admin-settings-tools.js.map +1 -0
- package/dist/services/admin-tools/admin-shipping-tools.d.ts +16 -0
- package/dist/services/admin-tools/admin-shipping-tools.d.ts.map +1 -0
- package/dist/services/admin-tools/admin-shipping-tools.js +55 -0
- package/dist/services/admin-tools/admin-shipping-tools.js.map +1 -0
- package/dist/services/admin-tools/admin-staff-tools.d.ts +19 -0
- package/dist/services/admin-tools/admin-staff-tools.d.ts.map +1 -0
- package/dist/services/admin-tools/admin-staff-tools.js +88 -0
- package/dist/services/admin-tools/admin-staff-tools.js.map +1 -0
- package/dist/services/admin-tools/admin-tax-tools.d.ts +23 -0
- package/dist/services/admin-tools/admin-tax-tools.d.ts.map +1 -0
- package/dist/services/admin-tools/admin-tax-tools.js +116 -0
- package/dist/services/admin-tools/admin-tax-tools.js.map +1 -0
- package/dist/services/ai-chat.service.d.ts +3 -2
- package/dist/services/ai-chat.service.d.ts.map +1 -1
- package/dist/services/ai-chat.service.js +37 -1
- package/dist/services/ai-chat.service.js.map +1 -1
- package/dist/services/system-prompt.d.ts +1 -1
- package/dist/services/system-prompt.d.ts.map +1 -1
- package/dist/services/system-prompt.js +18 -0
- package/dist/services/system-prompt.js.map +1 -1
- package/dist/services/tools/promotion-tools.d.ts +48 -0
- package/dist/services/tools/promotion-tools.d.ts.map +1 -0
- package/dist/services/tools/promotion-tools.js +410 -0
- package/dist/services/tools/promotion-tools.js.map +1 -0
- package/dist/services/types.d.ts +21 -0
- package/dist/services/types.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AdminPaymentTools = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const core_1 = require("@vendure/core");
|
|
6
|
+
class AdminPaymentTools {
|
|
7
|
+
constructor(connection) {
|
|
8
|
+
this.connection = connection;
|
|
9
|
+
this.logger = new common_1.Logger(AdminPaymentTools.name);
|
|
10
|
+
}
|
|
11
|
+
async getPaymentMethods(ctx, args) {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
const query = ((_a = args.query) !== null && _a !== void 0 ? _a : '').trim();
|
|
14
|
+
const take = Math.min((_b = args.take) !== null && _b !== void 0 ? _b : 20, 50);
|
|
15
|
+
const repo = this.connection.rawConnection.getRepository(core_1.PaymentMethod);
|
|
16
|
+
let qb = repo.createQueryBuilder('pm')
|
|
17
|
+
.leftJoinAndSelect('pm.translations', 'translation')
|
|
18
|
+
.leftJoinAndSelect('pm.channels', 'channel');
|
|
19
|
+
if (query) {
|
|
20
|
+
qb = qb.where('(LOWER(translation.name) LIKE :term OR LOWER(pm.code) LIKE :term)', {
|
|
21
|
+
term: `%${query.toLowerCase()}%`,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
qb = qb.orderBy('pm.createdAt', 'DESC').take(take);
|
|
25
|
+
try {
|
|
26
|
+
const methods = await qb.getMany();
|
|
27
|
+
if (methods.length === 0) {
|
|
28
|
+
return { summary: query ? `No payment methods found matching "${query}".` : 'No payment methods configured.' };
|
|
29
|
+
}
|
|
30
|
+
const lines = methods.map(m => {
|
|
31
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
32
|
+
const name = (_c = (_b = (_a = m.translations) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : '';
|
|
33
|
+
const description = (_f = (_e = (_d = m.translations) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.description) !== null && _f !== void 0 ? _f : '';
|
|
34
|
+
const code = (_g = m.code) !== null && _g !== void 0 ? _g : '';
|
|
35
|
+
const enabled = m.enabled ? 'Enabled' : 'DISABLED';
|
|
36
|
+
const handler = (_j = (_h = m.handler) === null || _h === void 0 ? void 0 : _h.code) !== null && _j !== void 0 ? _j : 'N/A';
|
|
37
|
+
const checker = (_l = (_k = m.checker) === null || _k === void 0 ? void 0 : _k.code) !== null && _l !== void 0 ? _l : 'none';
|
|
38
|
+
const channels = ((_m = m.channels) !== null && _m !== void 0 ? _m : []).map((c) => c.code).join(', ') || 'none';
|
|
39
|
+
const descSnippet = description.length > 100 ? description.substring(0, 100) + '...' : description;
|
|
40
|
+
return `- **${name}** (ID: ${m.id}) | Code: \`${code}\` | ${enabled} | Handler: ${handler} | Checker: ${checker} | Channels: ${channels}${descSnippet ? ` | ${descSnippet}` : ''}`;
|
|
41
|
+
});
|
|
42
|
+
return {
|
|
43
|
+
summary: `Found ${methods.length} payment method(s)${query ? ` matching "${query}"` : ''}:\n${lines.join('\n')}`,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
this.logger.error(`Error fetching payment methods: ${e}`);
|
|
48
|
+
return { summary: 'Error fetching payment methods. Please try again.' };
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.AdminPaymentTools = AdminPaymentTools;
|
|
53
|
+
//# sourceMappingURL=admin-payment-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-payment-tools.js","sourceRoot":"","sources":["../../../src/services/admin-tools/admin-payment-tools.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,wCAAuF;AAMvF,MAAa,iBAAiB;IAG1B,YACY,UAAmC;QAAnC,eAAU,GAAV,UAAU,CAAyB;QAH9B,WAAM,GAAG,IAAI,eAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAI1D,CAAC;IAEJ,KAAK,CAAC,iBAAiB,CACnB,GAAmB,EACnB,IAAuC;;QAEvC,MAAM,KAAK,GAAG,CAAC,MAAA,IAAI,CAAC,KAAK,mCAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAA,IAAI,CAAC,IAAI,mCAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAE3C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,oBAAa,CAAC,CAAC;QAExE,IAAI,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;aACjC,iBAAiB,CAAC,iBAAiB,EAAE,aAAa,CAAC;aACnD,iBAAiB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QAEjD,IAAI,KAAK,EAAE,CAAC;YACR,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,mEAAmE,EAAE;gBAC/E,IAAI,EAAE,IAAI,KAAK,CAAC,WAAW,EAAE,GAAG;aACnC,CAAC,CAAC;QACP,CAAC;QAED,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEnD,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;YAEnC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,sCAAsC,KAAK,IAAI,CAAC,CAAC,CAAC,gCAAgC,EAAE,CAAC;YACnH,CAAC;YAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;;gBAC1B,MAAM,IAAI,GAAG,MAAA,MAAA,MAAC,CAAS,CAAC,YAAY,0CAAG,CAAC,CAAC,0CAAE,IAAI,mCAAI,EAAE,CAAC;gBACtD,MAAM,WAAW,GAAG,MAAA,MAAA,MAAC,CAAS,CAAC,YAAY,0CAAG,CAAC,CAAC,0CAAE,WAAW,mCAAI,EAAE,CAAC;gBACpE,MAAM,IAAI,GAAG,MAAC,CAAS,CAAC,IAAI,mCAAI,EAAE,CAAC;gBACnC,MAAM,OAAO,GAAI,CAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;gBAC5D,MAAM,OAAO,GAAG,MAAA,MAAC,CAAS,CAAC,OAAO,0CAAE,IAAI,mCAAI,KAAK,CAAC;gBAClD,MAAM,OAAO,GAAG,MAAA,MAAC,CAAS,CAAC,OAAO,0CAAE,IAAI,mCAAI,MAAM,CAAC;gBACnD,MAAM,QAAQ,GAAG,CAAC,MAAC,CAAS,CAAC,QAAQ,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;gBAC1F,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;gBACnG,OAAO,OAAO,IAAI,WAAW,CAAC,CAAC,EAAE,eAAe,IAAI,QAAQ,OAAO,eAAe,OAAO,eAAe,OAAO,gBAAgB,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACvL,CAAC,CAAC,CAAC;YAEH,OAAO;gBACH,OAAO,EAAE,SAAS,OAAO,CAAC,MAAM,qBAAqB,KAAK,CAAC,CAAC,CAAC,cAAc,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aACnH,CAAC;QACN,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,EAAE,CAAC,CAAC;YAC1D,OAAO,EAAE,OAAO,EAAE,mDAAmD,EAAE,CAAC;QAC5E,CAAC;IACL,CAAC;CACJ;AAvDD,8CAuDC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { RequestContext, TransactionalConnection } from '@vendure/core';
|
|
2
|
+
interface AdminToolResult {
|
|
3
|
+
summary: string;
|
|
4
|
+
}
|
|
5
|
+
export declare class AdminPromotionTools {
|
|
6
|
+
private connection;
|
|
7
|
+
private readonly logger;
|
|
8
|
+
constructor(connection: TransactionalConnection);
|
|
9
|
+
getPromotions(ctx: RequestContext, args: {
|
|
10
|
+
query?: string;
|
|
11
|
+
activeOnly?: boolean;
|
|
12
|
+
take?: number;
|
|
13
|
+
}): Promise<AdminToolResult>;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=admin-promotion-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-promotion-tools.d.ts","sourceRoot":"","sources":["../../../src/services/admin-tools/admin-promotion-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAa,MAAM,eAAe,CAAC;AAEnF,UAAU,eAAe;IACrB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,mBAAmB;IAIxB,OAAO,CAAC,UAAU;IAHtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;gBAGnD,UAAU,EAAE,uBAAuB;IAGzC,aAAa,CACf,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9D,OAAO,CAAC,eAAe,CAAC;CA2D9B"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AdminPromotionTools = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const core_1 = require("@vendure/core");
|
|
6
|
+
class AdminPromotionTools {
|
|
7
|
+
constructor(connection) {
|
|
8
|
+
this.connection = connection;
|
|
9
|
+
this.logger = new common_1.Logger(AdminPromotionTools.name);
|
|
10
|
+
}
|
|
11
|
+
async getPromotions(ctx, args) {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
const query = ((_a = args.query) !== null && _a !== void 0 ? _a : '').trim();
|
|
14
|
+
const take = Math.min((_b = args.take) !== null && _b !== void 0 ? _b : 20, 50);
|
|
15
|
+
const repo = this.connection.rawConnection.getRepository(core_1.Promotion);
|
|
16
|
+
let qb = repo.createQueryBuilder('promo')
|
|
17
|
+
.leftJoinAndSelect('promo.translations', 'translation')
|
|
18
|
+
.leftJoinAndSelect('promo.channels', 'channel')
|
|
19
|
+
.where('promo.deletedAt IS NULL');
|
|
20
|
+
if (query) {
|
|
21
|
+
qb = qb.andWhere('(LOWER(translation.name) LIKE :term OR LOWER(promo.couponCode) LIKE :term)', {
|
|
22
|
+
term: `%${query.toLowerCase()}%`,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
if (args.activeOnly) {
|
|
26
|
+
qb = qb.andWhere('promo.enabled = :enabled', { enabled: true });
|
|
27
|
+
const now = new Date();
|
|
28
|
+
qb = qb.andWhere('(promo.startsAt IS NULL OR promo.startsAt <= :now)', { now });
|
|
29
|
+
qb = qb.andWhere('(promo.endsAt IS NULL OR promo.endsAt >= :now)', { now });
|
|
30
|
+
}
|
|
31
|
+
qb = qb.orderBy('promo.createdAt', 'DESC').take(take);
|
|
32
|
+
try {
|
|
33
|
+
const promotions = await qb.getMany();
|
|
34
|
+
if (promotions.length === 0) {
|
|
35
|
+
return { summary: query ? `No promotions found matching "${query}".` : 'No promotions configured.' };
|
|
36
|
+
}
|
|
37
|
+
const lines = promotions.map(p => {
|
|
38
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
39
|
+
const name = (_c = (_b = (_a = p.translations) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : '';
|
|
40
|
+
const description = (_f = (_e = (_d = p.translations) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.description) !== null && _f !== void 0 ? _f : '';
|
|
41
|
+
const enabled = p.enabled ? 'Enabled' : 'DISABLED';
|
|
42
|
+
const couponCode = p.couponCode || 'none';
|
|
43
|
+
const startsAt = p.startsAt ? new Date(p.startsAt).toISOString().split('T')[0] : 'N/A';
|
|
44
|
+
const endsAt = p.endsAt ? new Date(p.endsAt).toISOString().split('T')[0] : 'N/A';
|
|
45
|
+
const perCustomerLimit = (_g = p.perCustomerUsageLimit) !== null && _g !== void 0 ? _g : 0;
|
|
46
|
+
const usageLimit = (_h = p.usageLimit) !== null && _h !== void 0 ? _h : 0;
|
|
47
|
+
const channels = ((_j = p.channels) !== null && _j !== void 0 ? _j : []).map((c) => c.code).join(', ') || 'none';
|
|
48
|
+
const conditions = ((_k = p.conditions) !== null && _k !== void 0 ? _k : []);
|
|
49
|
+
const actions = ((_l = p.actions) !== null && _l !== void 0 ? _l : []);
|
|
50
|
+
const condStr = conditions.map((c) => c.code).join(', ') || 'none';
|
|
51
|
+
const actStr = actions.map((a) => a.code).join(', ') || 'none';
|
|
52
|
+
const descSnippet = description && description.length > 80 ? description.substring(0, 80) + '...' : (description || '');
|
|
53
|
+
return `- **${name}** (ID: ${p.id}) | ${enabled} | Coupon: \`${couponCode}\` | Dates: ${startsAt} → ${endsAt} | Limits: ${perCustomerLimit}/customer, ${usageLimit} total | Conditions: ${condStr} | Actions: ${actStr} | Channels: ${channels}${descSnippet ? ` | ${descSnippet}` : ''}`;
|
|
54
|
+
});
|
|
55
|
+
return {
|
|
56
|
+
summary: `Found ${promotions.length} promotion(s)${query ? ` matching "${query}"` : ''}:\n${lines.join('\n')}`,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
catch (e) {
|
|
60
|
+
this.logger.error(`Error fetching promotions: ${e}`);
|
|
61
|
+
return { summary: 'Error fetching promotions. Please try again.' };
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.AdminPromotionTools = AdminPromotionTools;
|
|
66
|
+
//# sourceMappingURL=admin-promotion-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-promotion-tools.js","sourceRoot":"","sources":["../../../src/services/admin-tools/admin-promotion-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { RequestContext, TransactionalConnection } from '@vendure/core';
|
|
2
|
+
interface AdminToolResult {
|
|
3
|
+
summary: string;
|
|
4
|
+
}
|
|
5
|
+
export declare class AdminSettingsTools {
|
|
6
|
+
private connection;
|
|
7
|
+
private readonly logger;
|
|
8
|
+
constructor(connection: TransactionalConnection);
|
|
9
|
+
getGlobalSettings(ctx: RequestContext): Promise<AdminToolResult>;
|
|
10
|
+
getChannels(ctx: RequestContext, args: {
|
|
11
|
+
query?: string;
|
|
12
|
+
take?: number;
|
|
13
|
+
}): Promise<AdminToolResult>;
|
|
14
|
+
getSellers(ctx: RequestContext, args: {
|
|
15
|
+
query?: string;
|
|
16
|
+
take?: number;
|
|
17
|
+
}): Promise<AdminToolResult>;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=admin-settings-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-settings-tools.d.ts","sourceRoot":"","sources":["../../../src/services/admin-tools/admin-settings-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAmC,MAAM,eAAe,CAAC;AAEzG,UAAU,eAAe;IACrB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,kBAAkB;IAIvB,OAAO,CAAC,UAAU;IAHtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;gBAGlD,UAAU,EAAE,uBAAuB;IAGzC,iBAAiB,CACnB,GAAG,EAAE,cAAc,GACpB,OAAO,CAAC,eAAe,CAAC;IAgCrB,WAAW,CACb,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,OAAO,CAAC,eAAe,CAAC;IAmDrB,UAAU,CACZ,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,OAAO,CAAC,eAAe,CAAC;CAmC9B"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AdminSettingsTools = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const core_1 = require("@vendure/core");
|
|
6
|
+
class AdminSettingsTools {
|
|
7
|
+
constructor(connection) {
|
|
8
|
+
this.connection = connection;
|
|
9
|
+
this.logger = new common_1.Logger(AdminSettingsTools.name);
|
|
10
|
+
}
|
|
11
|
+
async getGlobalSettings(ctx) {
|
|
12
|
+
var _a, _b, _c, _d;
|
|
13
|
+
const repo = this.connection.rawConnection.getRepository(core_1.GlobalSettings);
|
|
14
|
+
try {
|
|
15
|
+
const settings = await repo.findOne({ where: {} });
|
|
16
|
+
if (!settings) {
|
|
17
|
+
return { summary: 'No global settings found.' };
|
|
18
|
+
}
|
|
19
|
+
const trackInventory = (_a = settings.trackInventory) !== null && _a !== void 0 ? _a : 'N/A';
|
|
20
|
+
const outOfStockThreshold = (_b = settings.outOfStockThreshold) !== null && _b !== void 0 ? _b : 'N/A';
|
|
21
|
+
const availableLanguages = (_c = settings.availableLanguages) !== null && _c !== void 0 ? _c : [];
|
|
22
|
+
const customFields = (_d = settings.customFields) !== null && _d !== void 0 ? _d : {};
|
|
23
|
+
const customFieldKeys = Object.keys(customFields).filter(k => customFields[k] !== null && customFields[k] !== undefined);
|
|
24
|
+
let summary = `**Global Settings** (ID: ${settings.id}):\n`;
|
|
25
|
+
summary += `- Track Inventory: ${trackInventory}\n`;
|
|
26
|
+
summary += `- Out of Stock Threshold: ${outOfStockThreshold}\n`;
|
|
27
|
+
summary += `- Available Languages: ${availableLanguages.length > 0 ? availableLanguages.join(', ') : 'none set'}\n`;
|
|
28
|
+
if (customFieldKeys.length > 0) {
|
|
29
|
+
summary += `- Custom Fields: ${customFieldKeys.map(k => `${k}: ${customFields[k]}`).join(', ')}`;
|
|
30
|
+
}
|
|
31
|
+
return { summary };
|
|
32
|
+
}
|
|
33
|
+
catch (e) {
|
|
34
|
+
this.logger.error(`Error fetching global settings: ${e}`);
|
|
35
|
+
return { summary: 'Error fetching global settings. Please try again.' };
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
async getChannels(ctx, args) {
|
|
39
|
+
var _a, _b;
|
|
40
|
+
const query = ((_a = args.query) !== null && _a !== void 0 ? _a : '').trim();
|
|
41
|
+
const take = Math.min((_b = args.take) !== null && _b !== void 0 ? _b : 20, 50);
|
|
42
|
+
const repo = this.connection.rawConnection.getRepository(core_1.Channel);
|
|
43
|
+
let qb = repo.createQueryBuilder('channel')
|
|
44
|
+
.leftJoinAndSelect('channel.defaultTaxZone', 'defaultTaxZone')
|
|
45
|
+
.leftJoinAndSelect('channel.defaultShippingZone', 'defaultShippingZone')
|
|
46
|
+
.leftJoinAndSelect('channel.seller', 'seller');
|
|
47
|
+
if (query) {
|
|
48
|
+
qb = qb.where('(LOWER(channel.code) LIKE :term OR LOWER(channel.description) LIKE :term)', {
|
|
49
|
+
term: `%${query.toLowerCase()}%`,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
qb = qb.orderBy('channel.createdAt', 'ASC').take(take);
|
|
53
|
+
try {
|
|
54
|
+
const channels = await qb.getMany();
|
|
55
|
+
if (channels.length === 0) {
|
|
56
|
+
return { summary: query ? `No channels found matching "${query}".` : 'No channels found.' };
|
|
57
|
+
}
|
|
58
|
+
const lines = channels.map(c => {
|
|
59
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
60
|
+
const code = (_a = c.code) !== null && _a !== void 0 ? _a : '';
|
|
61
|
+
const token = (_b = c.token) !== null && _b !== void 0 ? _b : '';
|
|
62
|
+
const description = (_c = c.description) !== null && _c !== void 0 ? _c : '';
|
|
63
|
+
const defaultLang = (_d = c.defaultLanguageCode) !== null && _d !== void 0 ? _d : 'N/A';
|
|
64
|
+
const defaultCurrency = (_e = c.defaultCurrencyCode) !== null && _e !== void 0 ? _e : 'N/A';
|
|
65
|
+
const availableCurrencies = ((_f = c.availableCurrencyCodes) !== null && _f !== void 0 ? _f : []).join(', ') || defaultCurrency;
|
|
66
|
+
const pricesIncludeTax = c.pricesIncludeTax ? 'Yes' : 'No';
|
|
67
|
+
const defaultTaxZone = (_h = (_g = c.defaultTaxZone) === null || _g === void 0 ? void 0 : _g.name) !== null && _h !== void 0 ? _h : 'N/A';
|
|
68
|
+
const defaultShippingZone = (_k = (_j = c.defaultShippingZone) === null || _j === void 0 ? void 0 : _j.name) !== null && _k !== void 0 ? _k : 'N/A';
|
|
69
|
+
const seller = (_m = (_l = c.seller) === null || _l === void 0 ? void 0 : _l.name) !== null && _m !== void 0 ? _m : 'none';
|
|
70
|
+
const trackInventory = c.trackInventory ? 'Yes' : 'No';
|
|
71
|
+
const descSnippet = description.length > 80 ? description.substring(0, 80) + '...' : description;
|
|
72
|
+
return `- **${code}** (ID: ${c.id}) | Token: \`${token}\` | Language: ${defaultLang} | Currency: ${defaultCurrency} (${availableCurrencies}) | Prices incl. tax: ${pricesIncludeTax} | Tax Zone: ${defaultTaxZone} | Shipping Zone: ${defaultShippingZone} | Seller: ${seller} | Track Inventory: ${trackInventory}${descSnippet ? ` | ${descSnippet}` : ''}`;
|
|
73
|
+
});
|
|
74
|
+
return {
|
|
75
|
+
summary: `Found ${channels.length} channel(s)${query ? ` matching "${query}"` : ''}:\n${lines.join('\n')}`,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
catch (e) {
|
|
79
|
+
this.logger.error(`Error fetching channels: ${e}`);
|
|
80
|
+
return { summary: 'Error fetching channels. Please try again.' };
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
async getSellers(ctx, args) {
|
|
84
|
+
var _a, _b;
|
|
85
|
+
const query = ((_a = args.query) !== null && _a !== void 0 ? _a : '').trim();
|
|
86
|
+
const take = Math.min((_b = args.take) !== null && _b !== void 0 ? _b : 20, 50);
|
|
87
|
+
const repo = this.connection.rawConnection.getRepository(core_1.Seller);
|
|
88
|
+
let qb = repo.createQueryBuilder('seller')
|
|
89
|
+
.where('seller.deletedAt IS NULL');
|
|
90
|
+
if (query) {
|
|
91
|
+
qb = qb.andWhere('LOWER(seller.name) LIKE :term', { term: `%${query.toLowerCase()}%` });
|
|
92
|
+
}
|
|
93
|
+
qb = qb.orderBy('seller.name', 'ASC').take(take);
|
|
94
|
+
try {
|
|
95
|
+
const sellers = await qb.getMany();
|
|
96
|
+
if (sellers.length === 0) {
|
|
97
|
+
return { summary: query ? `No sellers found matching "${query}".` : 'No sellers configured.' };
|
|
98
|
+
}
|
|
99
|
+
const lines = sellers.map(s => {
|
|
100
|
+
const created = s.createdAt ? new Date(s.createdAt).toISOString().split('T')[0] : 'N/A';
|
|
101
|
+
return `- **${s.name}** (ID: ${s.id}) | Created: ${created}`;
|
|
102
|
+
});
|
|
103
|
+
return {
|
|
104
|
+
summary: `Found ${sellers.length} seller(s)${query ? ` matching "${query}"` : ''}:\n${lines.join('\n')}`,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
catch (e) {
|
|
108
|
+
this.logger.error(`Error fetching sellers: ${e}`);
|
|
109
|
+
return { summary: 'Error fetching sellers. Please try again.' };
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.AdminSettingsTools = AdminSettingsTools;
|
|
114
|
+
//# sourceMappingURL=admin-settings-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-settings-tools.js","sourceRoot":"","sources":["../../../src/services/admin-tools/admin-settings-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { RequestContext, TransactionalConnection } from '@vendure/core';
|
|
2
|
+
interface AdminToolResult {
|
|
3
|
+
summary: string;
|
|
4
|
+
}
|
|
5
|
+
export declare class AdminShippingTools {
|
|
6
|
+
private connection;
|
|
7
|
+
private readonly logger;
|
|
8
|
+
constructor(connection: TransactionalConnection);
|
|
9
|
+
getShippingMethods(ctx: RequestContext, args: {
|
|
10
|
+
query?: string;
|
|
11
|
+
take?: number;
|
|
12
|
+
includeDeleted?: boolean;
|
|
13
|
+
}): Promise<AdminToolResult>;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=admin-shipping-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-shipping-tools.d.ts","sourceRoot":"","sources":["../../../src/services/admin-tools/admin-shipping-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAkB,MAAM,eAAe,CAAC;AAExF,UAAU,eAAe;IACrB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,kBAAkB;IAIvB,OAAO,CAAC,UAAU;IAHtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;gBAGlD,UAAU,EAAE,uBAAuB;IAGzC,kBAAkB,CACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,GAClE,OAAO,CAAC,eAAe,CAAC;CAgD9B"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AdminShippingTools = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const core_1 = require("@vendure/core");
|
|
6
|
+
class AdminShippingTools {
|
|
7
|
+
constructor(connection) {
|
|
8
|
+
this.connection = connection;
|
|
9
|
+
this.logger = new common_1.Logger(AdminShippingTools.name);
|
|
10
|
+
}
|
|
11
|
+
async getShippingMethods(ctx, args) {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
const query = ((_a = args.query) !== null && _a !== void 0 ? _a : '').trim();
|
|
14
|
+
const take = Math.min((_b = args.take) !== null && _b !== void 0 ? _b : 20, 50);
|
|
15
|
+
const repo = this.connection.rawConnection.getRepository(core_1.ShippingMethod);
|
|
16
|
+
let qb = repo.createQueryBuilder('sm')
|
|
17
|
+
.leftJoinAndSelect('sm.translations', 'translation')
|
|
18
|
+
.leftJoinAndSelect('sm.channels', 'channel');
|
|
19
|
+
if (!args.includeDeleted) {
|
|
20
|
+
qb = qb.where('sm.deletedAt IS NULL');
|
|
21
|
+
}
|
|
22
|
+
if (query) {
|
|
23
|
+
qb = qb.andWhere('(LOWER(translation.name) LIKE :term OR LOWER(sm.code) LIKE :term)', {
|
|
24
|
+
term: `%${query.toLowerCase()}%`,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
qb = qb.orderBy('sm.createdAt', 'DESC').take(take);
|
|
28
|
+
try {
|
|
29
|
+
const methods = await qb.getMany();
|
|
30
|
+
if (methods.length === 0) {
|
|
31
|
+
return { summary: query ? `No shipping methods found matching "${query}".` : 'No shipping methods configured.' };
|
|
32
|
+
}
|
|
33
|
+
const lines = methods.map(m => {
|
|
34
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
35
|
+
const name = (_c = (_b = (_a = m.translations) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : '';
|
|
36
|
+
const description = (_f = (_e = (_d = m.translations) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.description) !== null && _f !== void 0 ? _f : '';
|
|
37
|
+
const code = (_g = m.code) !== null && _g !== void 0 ? _g : '';
|
|
38
|
+
const fulfillmentHandler = (_h = m.fulfillmentHandlerCode) !== null && _h !== void 0 ? _h : 'N/A';
|
|
39
|
+
const deleted = m.deletedAt ? ' (DELETED)' : '';
|
|
40
|
+
const channels = ((_j = m.channels) !== null && _j !== void 0 ? _j : []).map((c) => c.code).join(', ') || 'none';
|
|
41
|
+
const descSnippet = description.length > 100 ? description.substring(0, 100) + '...' : description;
|
|
42
|
+
return `- **${name}** (ID: ${m.id}) | Code: \`${code}\` | Fulfillment: ${fulfillmentHandler} | Channels: ${channels}${deleted}${descSnippet ? ` | ${descSnippet}` : ''}`;
|
|
43
|
+
});
|
|
44
|
+
return {
|
|
45
|
+
summary: `Found ${methods.length} shipping method(s)${query ? ` matching "${query}"` : ''}:\n${lines.join('\n')}`,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
catch (e) {
|
|
49
|
+
this.logger.error(`Error fetching shipping methods: ${e}`);
|
|
50
|
+
return { summary: 'Error fetching shipping methods. Please try again.' };
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.AdminShippingTools = AdminShippingTools;
|
|
55
|
+
//# sourceMappingURL=admin-shipping-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-shipping-tools.js","sourceRoot":"","sources":["../../../src/services/admin-tools/admin-shipping-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { RequestContext, TransactionalConnection } from '@vendure/core';
|
|
2
|
+
interface AdminToolResult {
|
|
3
|
+
summary: string;
|
|
4
|
+
}
|
|
5
|
+
export declare class AdminStaffTools {
|
|
6
|
+
private connection;
|
|
7
|
+
private readonly logger;
|
|
8
|
+
constructor(connection: TransactionalConnection);
|
|
9
|
+
getAdministrators(ctx: RequestContext, args: {
|
|
10
|
+
query?: string;
|
|
11
|
+
take?: number;
|
|
12
|
+
}): Promise<AdminToolResult>;
|
|
13
|
+
getRoles(ctx: RequestContext, args: {
|
|
14
|
+
query?: string;
|
|
15
|
+
take?: number;
|
|
16
|
+
}): Promise<AdminToolResult>;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=admin-staff-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-staff-tools.d.ts","sourceRoot":"","sources":["../../../src/services/admin-tools/admin-staff-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAuB,MAAM,eAAe,CAAC;AAE7F,UAAU,eAAe;IACrB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,eAAe;IAIpB,OAAO,CAAC,UAAU;IAHtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;gBAG/C,UAAU,EAAE,uBAAuB;IAGzC,iBAAiB,CACnB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,OAAO,CAAC,eAAe,CAAC;IA8CrB,QAAQ,CACV,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,OAAO,CAAC,eAAe,CAAC;CA2C9B"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AdminStaffTools = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const core_1 = require("@vendure/core");
|
|
6
|
+
class AdminStaffTools {
|
|
7
|
+
constructor(connection) {
|
|
8
|
+
this.connection = connection;
|
|
9
|
+
this.logger = new common_1.Logger(AdminStaffTools.name);
|
|
10
|
+
}
|
|
11
|
+
async getAdministrators(ctx, args) {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
const query = ((_a = args.query) !== null && _a !== void 0 ? _a : '').trim();
|
|
14
|
+
const take = Math.min((_b = args.take) !== null && _b !== void 0 ? _b : 20, 50);
|
|
15
|
+
const repo = this.connection.rawConnection.getRepository(core_1.Administrator);
|
|
16
|
+
let qb = repo.createQueryBuilder('admin')
|
|
17
|
+
.leftJoinAndSelect('admin.user', 'user')
|
|
18
|
+
.leftJoinAndSelect('user.roles', 'role')
|
|
19
|
+
.where('admin.deletedAt IS NULL');
|
|
20
|
+
if (query) {
|
|
21
|
+
qb = qb.andWhere('(LOWER(admin.firstName) LIKE :term OR LOWER(admin.lastName) LIKE :term OR LOWER(admin.emailAddress) LIKE :term)', { term: `%${query.toLowerCase()}%` });
|
|
22
|
+
}
|
|
23
|
+
qb = qb.orderBy('admin.createdAt', 'ASC').take(take);
|
|
24
|
+
try {
|
|
25
|
+
const admins = await qb.getMany();
|
|
26
|
+
if (admins.length === 0) {
|
|
27
|
+
return { summary: query ? `No administrators found matching "${query}".` : 'No administrators found.' };
|
|
28
|
+
}
|
|
29
|
+
const lines = admins.map(a => {
|
|
30
|
+
var _a, _b, _c, _d, _e;
|
|
31
|
+
const firstName = (_a = a.firstName) !== null && _a !== void 0 ? _a : '';
|
|
32
|
+
const lastName = (_b = a.lastName) !== null && _b !== void 0 ? _b : '';
|
|
33
|
+
const email = (_c = a.emailAddress) !== null && _c !== void 0 ? _c : '';
|
|
34
|
+
const roles = ((_e = (_d = a.user) === null || _d === void 0 ? void 0 : _d.roles) !== null && _e !== void 0 ? _e : []);
|
|
35
|
+
const roleNames = roles.map((r) => r.code || r.description).join(', ') || 'none';
|
|
36
|
+
const created = a.createdAt ? new Date(a.createdAt).toISOString().split('T')[0] : 'N/A';
|
|
37
|
+
return `- **${firstName} ${lastName}** (ID: ${a.id}) | Email: ${email} | Roles: ${roleNames} | Created: ${created}`;
|
|
38
|
+
});
|
|
39
|
+
return {
|
|
40
|
+
summary: `Found ${admins.length} administrator(s)${query ? ` matching "${query}"` : ''}:\n${lines.join('\n')}`,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
this.logger.error(`Error fetching administrators: ${e}`);
|
|
45
|
+
return { summary: 'Error fetching administrators. Please try again.' };
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async getRoles(ctx, args) {
|
|
49
|
+
var _a, _b;
|
|
50
|
+
const query = ((_a = args.query) !== null && _a !== void 0 ? _a : '').trim();
|
|
51
|
+
const take = Math.min((_b = args.take) !== null && _b !== void 0 ? _b : 20, 50);
|
|
52
|
+
const repo = this.connection.rawConnection.getRepository(core_1.Role);
|
|
53
|
+
let qb = repo.createQueryBuilder('role')
|
|
54
|
+
.leftJoinAndSelect('role.channels', 'channel');
|
|
55
|
+
if (query) {
|
|
56
|
+
qb = qb.where('(LOWER(role.code) LIKE :term OR LOWER(role.description) LIKE :term)', {
|
|
57
|
+
term: `%${query.toLowerCase()}%`,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
qb = qb.orderBy('role.code', 'ASC').take(take);
|
|
61
|
+
try {
|
|
62
|
+
const roles = await qb.getMany();
|
|
63
|
+
if (roles.length === 0) {
|
|
64
|
+
return { summary: query ? `No roles found matching "${query}".` : 'No roles found.' };
|
|
65
|
+
}
|
|
66
|
+
const lines = roles.map(r => {
|
|
67
|
+
var _a, _b, _c, _d;
|
|
68
|
+
const code = (_a = r.code) !== null && _a !== void 0 ? _a : '';
|
|
69
|
+
const description = (_b = r.description) !== null && _b !== void 0 ? _b : '';
|
|
70
|
+
const permissions = ((_c = r.permissions) !== null && _c !== void 0 ? _c : []);
|
|
71
|
+
const channels = ((_d = r.channels) !== null && _d !== void 0 ? _d : []).map((c) => c.code).join(', ') || 'none';
|
|
72
|
+
const permStr = permissions.length > 0
|
|
73
|
+
? (permissions.length <= 5 ? permissions.join(', ') : `${permissions.slice(0, 5).join(', ')} (+${permissions.length - 5} more)`)
|
|
74
|
+
: 'none';
|
|
75
|
+
return `- **${code}** (ID: ${r.id}) | ${description} | Permissions: ${permStr} | Channels: ${channels}`;
|
|
76
|
+
});
|
|
77
|
+
return {
|
|
78
|
+
summary: `Found ${roles.length} role(s)${query ? ` matching "${query}"` : ''}:\n${lines.join('\n')}`,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
catch (e) {
|
|
82
|
+
this.logger.error(`Error fetching roles: ${e}`);
|
|
83
|
+
return { summary: 'Error fetching roles. Please try again.' };
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.AdminStaffTools = AdminStaffTools;
|
|
88
|
+
//# sourceMappingURL=admin-staff-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-staff-tools.js","sourceRoot":"","sources":["../../../src/services/admin-tools/admin-staff-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { RequestContext, TransactionalConnection } from '@vendure/core';
|
|
2
|
+
interface AdminToolResult {
|
|
3
|
+
summary: string;
|
|
4
|
+
}
|
|
5
|
+
export declare class AdminTaxTools {
|
|
6
|
+
private connection;
|
|
7
|
+
private readonly logger;
|
|
8
|
+
constructor(connection: TransactionalConnection);
|
|
9
|
+
getTaxRates(ctx: RequestContext, args: {
|
|
10
|
+
query?: string;
|
|
11
|
+
take?: number;
|
|
12
|
+
}): Promise<AdminToolResult>;
|
|
13
|
+
getTaxCategories(ctx: RequestContext, args: {
|
|
14
|
+
query?: string;
|
|
15
|
+
take?: number;
|
|
16
|
+
}): Promise<AdminToolResult>;
|
|
17
|
+
getZones(ctx: RequestContext, args: {
|
|
18
|
+
query?: string;
|
|
19
|
+
take?: number;
|
|
20
|
+
}): Promise<AdminToolResult>;
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=admin-tax-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-tax-tools.d.ts","sourceRoot":"","sources":["../../../src/services/admin-tools/admin-tax-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAA8B,MAAM,eAAe,CAAC;AAEpG,UAAU,eAAe;IACrB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,aAAa;IAIlB,OAAO,CAAC,UAAU;IAHtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;gBAG7C,UAAU,EAAE,uBAAuB;IAGzC,WAAW,CACb,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,OAAO,CAAC,eAAe,CAAC;IA8CrB,gBAAgB,CAClB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,OAAO,CAAC,eAAe,CAAC;IAmCrB,QAAQ,CACV,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,OAAO,CAAC,eAAe,CAAC;CAwC9B"}
|