@open-loyalty/mcp-server 1.5.3 → 1.7.0

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 (132) hide show
  1. package/dist/config.d.ts +4 -0
  2. package/dist/config.js +11 -0
  3. package/dist/index.js +0 -8
  4. package/dist/server.js +13 -0
  5. package/dist/tools/achievement/handlers.js +47 -0
  6. package/dist/tools/achievement/index.d.ts +11 -4
  7. package/dist/tools/achievement/index.js +12 -1
  8. package/dist/tools/achievement/schemas.d.ts +4 -4
  9. package/dist/tools/achievement/schemas.js +13 -12
  10. package/dist/tools/admin/handlers.d.ts +48 -0
  11. package/dist/tools/admin/handlers.js +159 -0
  12. package/dist/tools/admin/index.d.ts +86 -0
  13. package/dist/tools/admin/index.js +64 -0
  14. package/dist/tools/admin/schemas.d.ts +40 -0
  15. package/dist/tools/admin/schemas.js +40 -0
  16. package/dist/tools/analytics/handlers.d.ts +42 -0
  17. package/dist/tools/analytics/handlers.js +282 -0
  18. package/dist/tools/analytics/index.d.ts +108 -0
  19. package/dist/tools/analytics/index.js +91 -0
  20. package/dist/tools/analytics/schemas.d.ts +42 -0
  21. package/dist/tools/analytics/schemas.js +47 -0
  22. package/dist/tools/apikey/handlers.d.ts +15 -0
  23. package/dist/tools/apikey/handlers.js +53 -0
  24. package/dist/tools/apikey/index.d.ts +41 -0
  25. package/dist/tools/apikey/index.js +38 -0
  26. package/dist/tools/apikey/schemas.d.ts +31 -0
  27. package/dist/tools/apikey/schemas.js +15 -0
  28. package/dist/tools/audit/handlers.d.ts +20 -0
  29. package/dist/tools/audit/handlers.js +82 -0
  30. package/dist/tools/audit/index.d.ts +36 -0
  31. package/dist/tools/audit/index.js +28 -0
  32. package/dist/tools/audit/schemas.d.ts +62 -0
  33. package/dist/tools/audit/schemas.js +18 -0
  34. package/dist/tools/badge/handlers.d.ts +45 -0
  35. package/dist/tools/badge/handlers.js +135 -0
  36. package/dist/tools/badge/index.d.ts +68 -0
  37. package/dist/tools/badge/index.js +47 -0
  38. package/dist/tools/badge/schemas.d.ts +37 -0
  39. package/dist/tools/badge/schemas.js +31 -0
  40. package/dist/tools/campaign/handlers.js +61 -0
  41. package/dist/tools/campaign/index.d.ts +12 -0
  42. package/dist/tools/campaign/index.js +20 -1
  43. package/dist/tools/campaign/member-handlers.js +37 -1
  44. package/dist/tools/campaign/schemas.js +16 -14
  45. package/dist/tools/custom-event/handlers.d.ts +98 -0
  46. package/dist/tools/custom-event/handlers.js +238 -0
  47. package/dist/tools/custom-event/index.d.ts +139 -0
  48. package/dist/tools/custom-event/index.js +78 -0
  49. package/dist/tools/custom-event/schemas.d.ts +87 -0
  50. package/dist/tools/custom-event/schemas.js +59 -0
  51. package/dist/tools/export/handlers.d.ts +29 -0
  52. package/dist/tools/export/handlers.js +128 -0
  53. package/dist/tools/export/index.d.ts +56 -0
  54. package/dist/tools/export/index.js +46 -0
  55. package/dist/tools/export/schemas.d.ts +42 -0
  56. package/dist/tools/export/schemas.js +41 -0
  57. package/dist/tools/import/handlers.d.ts +22 -0
  58. package/dist/tools/import/handlers.js +123 -0
  59. package/dist/tools/import/index.d.ts +45 -0
  60. package/dist/tools/import/index.js +41 -0
  61. package/dist/tools/import/schemas.d.ts +57 -0
  62. package/dist/tools/import/schemas.js +39 -0
  63. package/dist/tools/index.d.ts +1 -0
  64. package/dist/tools/index.js +11 -11
  65. package/dist/tools/member/handlers.js +30 -0
  66. package/dist/tools/member/index.d.ts +10 -0
  67. package/dist/tools/member/index.js +10 -0
  68. package/dist/tools/member/schemas.js +13 -13
  69. package/dist/tools/points/handlers.js +73 -0
  70. package/dist/tools/points/index.d.ts +6 -0
  71. package/dist/tools/points/index.js +6 -0
  72. package/dist/tools/points/schemas.js +1 -1
  73. package/dist/tools/referral/index.d.ts +3 -0
  74. package/dist/tools/referral/index.js +3 -0
  75. package/dist/tools/reward/handlers.js +21 -13
  76. package/dist/tools/reward/index.d.ts +9 -0
  77. package/dist/tools/reward/index.js +12 -1
  78. package/dist/tools/reward/schemas.js +2 -2
  79. package/dist/tools/role/handlers.d.ts +35 -0
  80. package/dist/tools/role/handlers.js +127 -0
  81. package/dist/tools/role/index.d.ts +99 -0
  82. package/dist/tools/role/index.js +65 -0
  83. package/dist/tools/role/schemas.d.ts +56 -0
  84. package/dist/tools/role/schemas.js +35 -0
  85. package/dist/tools/segment/handlers.js +68 -1
  86. package/dist/tools/segment/index.d.ts +9 -0
  87. package/dist/tools/segment/index.js +13 -0
  88. package/dist/tools/segment/schemas.js +8 -5
  89. package/dist/tools/store/handlers.d.ts +25 -0
  90. package/dist/tools/store/handlers.js +89 -0
  91. package/dist/tools/store/index.d.ts +55 -0
  92. package/dist/tools/store/index.js +46 -0
  93. package/dist/tools/store/schemas.d.ts +38 -0
  94. package/dist/tools/store/schemas.js +23 -0
  95. package/dist/tools/tierset/handlers.js +92 -1
  96. package/dist/tools/tierset/index.d.ts +6 -0
  97. package/dist/tools/tierset/index.js +8 -1
  98. package/dist/tools/transaction/handlers.js +40 -0
  99. package/dist/tools/transaction/index.d.ts +4 -0
  100. package/dist/tools/transaction/index.js +4 -0
  101. package/dist/tools/transaction/schemas.js +3 -3
  102. package/dist/tools/wallet-type/index.d.ts +4 -0
  103. package/dist/tools/wallet-type/index.js +5 -1
  104. package/dist/tools/webhook/handlers.d.ts +34 -0
  105. package/dist/tools/webhook/handlers.js +147 -0
  106. package/dist/tools/webhook/index.d.ts +97 -0
  107. package/dist/tools/webhook/index.js +65 -0
  108. package/dist/tools/webhook/schemas.d.ts +72 -0
  109. package/dist/tools/{webhook.js → webhook/schemas.js} +0 -140
  110. package/dist/types/schemas/tierset.js +3 -1
  111. package/package.json +1 -1
  112. package/dist/tools/admin.d.ts +0 -165
  113. package/dist/tools/admin.js +0 -205
  114. package/dist/tools/analytics.d.ts +0 -180
  115. package/dist/tools/analytics.js +0 -255
  116. package/dist/tools/apikey.d.ts +0 -79
  117. package/dist/tools/apikey.js +0 -85
  118. package/dist/tools/audit.d.ts +0 -111
  119. package/dist/tools/audit.js +0 -94
  120. package/dist/tools/badge.d.ts +0 -143
  121. package/dist/tools/badge.js +0 -174
  122. package/dist/tools/custom-event.d.ts +0 -315
  123. package/dist/tools/custom-event.js +0 -271
  124. package/dist/tools/export.d.ts +0 -118
  125. package/dist/tools/export.js +0 -152
  126. package/dist/tools/import.d.ts +0 -116
  127. package/dist/tools/import.js +0 -143
  128. package/dist/tools/role.d.ts +0 -180
  129. package/dist/tools/role.js +0 -173
  130. package/dist/tools/store.d.ts +0 -109
  131. package/dist/tools/store.js +0 -125
  132. package/dist/tools/webhook.d.ts +0 -192
@@ -1,143 +0,0 @@
1
- import { z } from "zod";
2
- import { BadgeTypeListItem, MemberBadge } from "../types/schemas/badge.js";
3
- export declare const BadgeListInputSchema: {
4
- storeCode: z.ZodOptional<z.ZodString>;
5
- page: z.ZodOptional<z.ZodNumber>;
6
- perPage: z.ZodOptional<z.ZodNumber>;
7
- name: z.ZodOptional<z.ZodString>;
8
- badgeTypeId: z.ZodOptional<z.ZodString>;
9
- };
10
- export declare const BadgeGetInputSchema: {
11
- storeCode: z.ZodOptional<z.ZodString>;
12
- badgeTypeId: z.ZodString;
13
- };
14
- export declare const BadgeUpdateInputSchema: {
15
- storeCode: z.ZodOptional<z.ZodString>;
16
- badgeTypeId: z.ZodString;
17
- name: z.ZodString;
18
- translations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
19
- name: z.ZodString;
20
- description: z.ZodOptional<z.ZodString>;
21
- }, "strip", z.ZodTypeAny, {
22
- name: string;
23
- description?: string | undefined;
24
- }, {
25
- name: string;
26
- description?: string | undefined;
27
- }>>>;
28
- imageUrl: z.ZodOptional<z.ZodString>;
29
- active: z.ZodOptional<z.ZodBoolean>;
30
- };
31
- export declare const BadgeGetMemberBadgesInputSchema: {
32
- storeCode: z.ZodOptional<z.ZodString>;
33
- memberId: z.ZodString;
34
- page: z.ZodOptional<z.ZodNumber>;
35
- perPage: z.ZodOptional<z.ZodNumber>;
36
- name: z.ZodOptional<z.ZodString>;
37
- badgeTypeId: z.ZodOptional<z.ZodString>;
38
- };
39
- export declare function badgeList(input: {
40
- storeCode?: string;
41
- page?: number;
42
- perPage?: number;
43
- name?: string;
44
- badgeTypeId?: string;
45
- }): Promise<{
46
- badges: BadgeTypeListItem[];
47
- total: {
48
- all?: number;
49
- filtered?: number;
50
- };
51
- }>;
52
- export declare function badgeGet(input: {
53
- storeCode?: string;
54
- badgeTypeId: string;
55
- }): Promise<Record<string, unknown>>;
56
- interface BadgeUpdateInput {
57
- storeCode?: string;
58
- badgeTypeId: string;
59
- name?: string;
60
- translations?: Record<string, {
61
- name: string;
62
- description?: string;
63
- }>;
64
- imageUrl?: string;
65
- active?: boolean;
66
- }
67
- export declare function badgeUpdate(input: BadgeUpdateInput): Promise<void>;
68
- export declare function badgeGetMemberBadges(input: {
69
- storeCode?: string;
70
- memberId: string;
71
- page?: number;
72
- perPage?: number;
73
- name?: string;
74
- badgeTypeId?: string;
75
- }): Promise<{
76
- badges: MemberBadge[];
77
- total: {
78
- all?: number;
79
- filtered?: number;
80
- };
81
- }>;
82
- export declare const badgeToolDefinitions: readonly [{
83
- readonly name: "ol_badge_list";
84
- readonly title: "List Badges";
85
- readonly description: "List badge types. Badges are visual rewards linked to achievements. When a member completes an achievement with a badgeTypeId, they earn that badge. Use for displaying available badges.";
86
- readonly readOnly: true;
87
- readonly inputSchema: {
88
- storeCode: z.ZodOptional<z.ZodString>;
89
- page: z.ZodOptional<z.ZodNumber>;
90
- perPage: z.ZodOptional<z.ZodNumber>;
91
- name: z.ZodOptional<z.ZodString>;
92
- badgeTypeId: z.ZodOptional<z.ZodString>;
93
- };
94
- readonly handler: typeof badgeList;
95
- }, {
96
- readonly name: "ol_badge_get";
97
- readonly title: "Get Badge Details";
98
- readonly description: "Get badge type details including name, image URL, and linked achievements count.";
99
- readonly readOnly: true;
100
- readonly inputSchema: {
101
- storeCode: z.ZodOptional<z.ZodString>;
102
- badgeTypeId: z.ZodString;
103
- };
104
- readonly handler: typeof badgeGet;
105
- }, {
106
- readonly name: "ol_badge_update";
107
- readonly title: "Update Badge";
108
- readonly description: "Update badge type configuration. Badge types are created automatically when referenced by achievements. Use this to update name, image, or translations.";
109
- readonly readOnly: false;
110
- readonly inputSchema: {
111
- storeCode: z.ZodOptional<z.ZodString>;
112
- badgeTypeId: z.ZodString;
113
- name: z.ZodString;
114
- translations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
115
- name: z.ZodString;
116
- description: z.ZodOptional<z.ZodString>;
117
- }, "strip", z.ZodTypeAny, {
118
- name: string;
119
- description?: string | undefined;
120
- }, {
121
- name: string;
122
- description?: string | undefined;
123
- }>>>;
124
- imageUrl: z.ZodOptional<z.ZodString>;
125
- active: z.ZodOptional<z.ZodBoolean>;
126
- };
127
- readonly handler: typeof badgeUpdate;
128
- }, {
129
- readonly name: "ol_badge_get_member_badges";
130
- readonly title: "Get Member Badges";
131
- readonly description: "Get badges earned by a member. Returns each badge with completedCount showing how many times it was earned. Use for displaying member's badge collection.";
132
- readonly readOnly: true;
133
- readonly inputSchema: {
134
- storeCode: z.ZodOptional<z.ZodString>;
135
- memberId: z.ZodString;
136
- page: z.ZodOptional<z.ZodNumber>;
137
- perPage: z.ZodOptional<z.ZodNumber>;
138
- name: z.ZodOptional<z.ZodString>;
139
- badgeTypeId: z.ZodOptional<z.ZodString>;
140
- };
141
- readonly handler: typeof badgeGetMemberBadges;
142
- }];
143
- export {};
@@ -1,174 +0,0 @@
1
- import { z } from "zod";
2
- import { apiGet, apiPut } from "../client/http.js";
3
- import { formatApiError } from "../utils/errors.js";
4
- import { getStoreCode } from "../config.js";
5
- // Input Schemas
6
- export const BadgeListInputSchema = {
7
- storeCode: z.string().optional().describe("INTERNAL: Auto-configured from server settings. NEVER ask the user for this value. Only set if the user explicitly requests a different store."),
8
- page: z.number().optional().describe("Page number (default: 1)."),
9
- perPage: z.number().optional().describe("Items per page (default: 10)."),
10
- name: z.string().optional().describe("Filter by badge name."),
11
- badgeTypeId: z.string().optional().describe("Filter by specific badge type ID."),
12
- };
13
- export const BadgeGetInputSchema = {
14
- storeCode: z.string().optional().describe("INTERNAL: Auto-configured from server settings. NEVER ask the user for this value. Only set if the user explicitly requests a different store."),
15
- badgeTypeId: z.string().describe("The badge type ID (UUID) to retrieve."),
16
- };
17
- export const BadgeUpdateInputSchema = {
18
- storeCode: z.string().optional().describe("INTERNAL: Auto-configured from server settings. NEVER ask the user for this value. Only set if the user explicitly requests a different store."),
19
- badgeTypeId: z.string().describe("The badge type ID (UUID) to update."),
20
- name: z.string().describe("Badge name (REQUIRED). API requires name as a direct field."),
21
- translations: z.record(z.string(), z.object({
22
- name: z.string(),
23
- description: z.string().optional(),
24
- })).optional().describe("Badge translations (for convenience - will extract name from translations.en.name if name not provided directly)."),
25
- imageUrl: z.string().optional().describe("URL to badge image."),
26
- active: z.boolean().optional().describe("Whether badge type is active."),
27
- };
28
- export const BadgeGetMemberBadgesInputSchema = {
29
- storeCode: z.string().optional().describe("INTERNAL: Auto-configured from server settings. NEVER ask the user for this value. Only set if the user explicitly requests a different store."),
30
- memberId: z.string().describe("The member ID (UUID)."),
31
- page: z.number().optional().describe("Page number (default: 1)."),
32
- perPage: z.number().optional().describe("Items per page (default: 10)."),
33
- name: z.string().optional().describe("Filter by badge name."),
34
- badgeTypeId: z.string().optional().describe("Filter by specific badge type ID."),
35
- };
36
- // Handler functions
37
- export async function badgeList(input) {
38
- const storeCode = getStoreCode(input.storeCode);
39
- const params = new URLSearchParams();
40
- if (input.page)
41
- params.append("_page", String(input.page));
42
- if (input.perPage)
43
- params.append("_itemsOnPage", String(input.perPage));
44
- if (input.name)
45
- params.append("name", input.name);
46
- if (input.badgeTypeId)
47
- params.append("badgeTypeId", input.badgeTypeId);
48
- const queryString = params.toString();
49
- const url = `/${storeCode}/badge-type${queryString ? `?${queryString}` : ""}`;
50
- try {
51
- const response = await apiGet(url);
52
- const badges = (response.items || []).map((item) => ({
53
- badgeTypeId: item.badgeTypeId,
54
- name: item.name,
55
- createdAt: item.createdAt,
56
- updatedAt: item.updatedAt,
57
- }));
58
- const total = response.total || {};
59
- return {
60
- badges,
61
- total: {
62
- all: typeof total.all === "number" ? total.all : undefined,
63
- filtered: typeof total.filtered === "number" ? total.filtered : undefined,
64
- },
65
- };
66
- }
67
- catch (error) {
68
- throw formatApiError(error, "ol_badge_list");
69
- }
70
- }
71
- export async function badgeGet(input) {
72
- const storeCode = getStoreCode(input.storeCode);
73
- try {
74
- const response = await apiGet(`/${storeCode}/badge-type/${input.badgeTypeId}`);
75
- return response;
76
- }
77
- catch (error) {
78
- throw formatApiError(error, "ol_badge_get");
79
- }
80
- }
81
- export async function badgeUpdate(input) {
82
- const storeCode = getStoreCode(input.storeCode);
83
- const badgePayload = {};
84
- // API requires name as direct field, not nested in translations
85
- // Extract from translations.en.name if name not provided directly
86
- let badgeName = input.name;
87
- if (!badgeName && input.translations?.en?.name) {
88
- badgeName = input.translations.en.name;
89
- }
90
- if (badgeName !== undefined)
91
- badgePayload.name = badgeName;
92
- // Note: API does not accept nested translations - only direct fields
93
- if (input.imageUrl !== undefined)
94
- badgePayload.imageUrl = input.imageUrl;
95
- if (input.active !== undefined)
96
- badgePayload.active = input.active;
97
- try {
98
- // CRITICAL: Wrap body as { badgeType: {...} }
99
- await apiPut(`/${storeCode}/badge-type/${input.badgeTypeId}`, { badgeType: badgePayload });
100
- }
101
- catch (error) {
102
- throw formatApiError(error, "ol_badge_update");
103
- }
104
- }
105
- export async function badgeGetMemberBadges(input) {
106
- const storeCode = getStoreCode(input.storeCode);
107
- const params = new URLSearchParams();
108
- if (input.page)
109
- params.append("_page", String(input.page));
110
- if (input.perPage)
111
- params.append("_itemsOnPage", String(input.perPage));
112
- if (input.name)
113
- params.append("name", input.name);
114
- if (input.badgeTypeId)
115
- params.append("badgeTypeId", input.badgeTypeId);
116
- const queryString = params.toString();
117
- const url = `/${storeCode}/member/${input.memberId}/badge${queryString ? `?${queryString}` : ""}`;
118
- try {
119
- const response = await apiGet(url);
120
- const badges = (response.items || []).map((item) => ({
121
- badgeTypeId: item.badgeTypeId,
122
- name: item.name,
123
- completedCount: item.completedCount,
124
- createdAt: item.createdAt,
125
- updatedAt: item.updatedAt,
126
- }));
127
- const total = response.total || {};
128
- return {
129
- badges,
130
- total: {
131
- all: typeof total.all === "number" ? total.all : undefined,
132
- filtered: typeof total.filtered === "number" ? total.filtered : undefined,
133
- },
134
- };
135
- }
136
- catch (error) {
137
- throw formatApiError(error, "ol_badge_get_member_badges");
138
- }
139
- }
140
- // Tool definitions
141
- export const badgeToolDefinitions = [
142
- {
143
- name: "ol_badge_list",
144
- title: "List Badges",
145
- description: "List badge types. Badges are visual rewards linked to achievements. When a member completes an achievement with a badgeTypeId, they earn that badge. Use for displaying available badges.",
146
- readOnly: true,
147
- inputSchema: BadgeListInputSchema,
148
- handler: badgeList,
149
- },
150
- {
151
- name: "ol_badge_get",
152
- title: "Get Badge Details",
153
- description: "Get badge type details including name, image URL, and linked achievements count.",
154
- readOnly: true,
155
- inputSchema: BadgeGetInputSchema,
156
- handler: badgeGet,
157
- },
158
- {
159
- name: "ol_badge_update",
160
- title: "Update Badge",
161
- description: "Update badge type configuration. Badge types are created automatically when referenced by achievements. Use this to update name, image, or translations.",
162
- readOnly: false,
163
- inputSchema: BadgeUpdateInputSchema,
164
- handler: badgeUpdate,
165
- },
166
- {
167
- name: "ol_badge_get_member_badges",
168
- title: "Get Member Badges",
169
- description: "Get badges earned by a member. Returns each badge with completedCount showing how many times it was earned. Use for displaying member's badge collection.",
170
- readOnly: true,
171
- inputSchema: BadgeGetMemberBadgesInputSchema,
172
- handler: badgeGetMemberBadges,
173
- },
174
- ];
@@ -1,315 +0,0 @@
1
- import { z } from "zod";
2
- export declare const CustomEventSchemaListInputSchema: {
3
- storeCode: z.ZodOptional<z.ZodString>;
4
- page: z.ZodOptional<z.ZodNumber>;
5
- perPage: z.ZodOptional<z.ZodNumber>;
6
- eventType: z.ZodOptional<z.ZodString>;
7
- name: z.ZodOptional<z.ZodString>;
8
- active: z.ZodOptional<z.ZodBoolean>;
9
- };
10
- export declare const CustomEventSchemaGetInputSchema: {
11
- storeCode: z.ZodOptional<z.ZodString>;
12
- eventType: z.ZodString;
13
- };
14
- export declare const CustomEventSchemaCreateInputSchema: {
15
- storeCode: z.ZodOptional<z.ZodString>;
16
- eventType: z.ZodString;
17
- name: z.ZodString;
18
- fields: z.ZodArray<z.ZodObject<{
19
- name: z.ZodString;
20
- type: z.ZodEnum<["text", "number", "boolean", "datetime"]>;
21
- description: z.ZodOptional<z.ZodString>;
22
- }, "strip", z.ZodTypeAny, {
23
- type: "number" | "boolean" | "text" | "datetime";
24
- name: string;
25
- description?: string | undefined;
26
- }, {
27
- type: "number" | "boolean" | "text" | "datetime";
28
- name: string;
29
- description?: string | undefined;
30
- }>, "many">;
31
- active: z.ZodOptional<z.ZodBoolean>;
32
- };
33
- export declare const CustomEventSchemaUpdateInputSchema: {
34
- storeCode: z.ZodOptional<z.ZodString>;
35
- eventType: z.ZodString;
36
- name: z.ZodString;
37
- fields: z.ZodArray<z.ZodObject<{
38
- name: z.ZodString;
39
- type: z.ZodEnum<["text", "number", "boolean", "datetime"]>;
40
- description: z.ZodOptional<z.ZodString>;
41
- }, "strip", z.ZodTypeAny, {
42
- type: "number" | "boolean" | "text" | "datetime";
43
- name: string;
44
- description?: string | undefined;
45
- }, {
46
- type: "number" | "boolean" | "text" | "datetime";
47
- name: string;
48
- description?: string | undefined;
49
- }>, "many">;
50
- active: z.ZodOptional<z.ZodBoolean>;
51
- };
52
- export declare const CustomEventSchemaActivateInputSchema: {
53
- storeCode: z.ZodOptional<z.ZodString>;
54
- eventType: z.ZodString;
55
- active: z.ZodBoolean;
56
- };
57
- export declare const CustomEventSendInputSchema: {
58
- storeCode: z.ZodOptional<z.ZodString>;
59
- eventType: z.ZodString;
60
- customerData: z.ZodObject<{
61
- customerId: z.ZodOptional<z.ZodString>;
62
- email: z.ZodOptional<z.ZodString>;
63
- phone: z.ZodOptional<z.ZodString>;
64
- loyaltyCardNumber: z.ZodOptional<z.ZodString>;
65
- }, "strip", z.ZodTypeAny, {
66
- email?: string | undefined;
67
- phone?: string | undefined;
68
- loyaltyCardNumber?: string | undefined;
69
- customerId?: string | undefined;
70
- }, {
71
- email?: string | undefined;
72
- phone?: string | undefined;
73
- loyaltyCardNumber?: string | undefined;
74
- customerId?: string | undefined;
75
- }>;
76
- eventDate: z.ZodString;
77
- body: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
78
- eventId: z.ZodOptional<z.ZodString>;
79
- };
80
- export declare const CustomEventListInputSchema: {
81
- storeCode: z.ZodOptional<z.ZodString>;
82
- page: z.ZodOptional<z.ZodNumber>;
83
- perPage: z.ZodOptional<z.ZodNumber>;
84
- type: z.ZodOptional<z.ZodString>;
85
- customerId: z.ZodOptional<z.ZodString>;
86
- email: z.ZodOptional<z.ZodString>;
87
- };
88
- interface CustomEventSchemaItem {
89
- eventType: string;
90
- name: string;
91
- schema?: {
92
- fields?: Array<{
93
- name: string;
94
- type: string;
95
- description?: string;
96
- }>;
97
- };
98
- active: boolean;
99
- createdAt?: string;
100
- }
101
- export declare function customEventSchemaList(input: {
102
- storeCode?: string;
103
- page?: number;
104
- perPage?: number;
105
- eventType?: string;
106
- name?: string;
107
- active?: boolean;
108
- }): Promise<{
109
- schemas: CustomEventSchemaItem[];
110
- total: {
111
- all?: number;
112
- filtered?: number;
113
- };
114
- }>;
115
- export declare function customEventSchemaGet(input: {
116
- storeCode?: string;
117
- eventType: string;
118
- }): Promise<CustomEventSchemaItem>;
119
- interface CustomEventSchemaCreateInput {
120
- storeCode?: string;
121
- eventType: string;
122
- name: string;
123
- fields: Array<{
124
- name: string;
125
- type: string;
126
- description?: string;
127
- }>;
128
- active?: boolean;
129
- }
130
- export declare function customEventSchemaCreate(input: CustomEventSchemaCreateInput): Promise<void>;
131
- interface CustomEventSchemaUpdateInput {
132
- storeCode?: string;
133
- eventType: string;
134
- name: string;
135
- fields: Array<{
136
- name: string;
137
- type: string;
138
- description?: string;
139
- }>;
140
- active?: boolean;
141
- }
142
- export declare function customEventSchemaUpdate(input: CustomEventSchemaUpdateInput): Promise<void>;
143
- export declare function customEventSchemaActivate(input: {
144
- storeCode?: string;
145
- eventType: string;
146
- active: boolean;
147
- }): Promise<void>;
148
- interface CustomEventSendInput {
149
- storeCode?: string;
150
- eventType: string;
151
- customerData: {
152
- customerId?: string;
153
- email?: string;
154
- phone?: string;
155
- loyaltyCardNumber?: string;
156
- };
157
- eventDate: string;
158
- body?: Record<string, unknown>;
159
- eventId?: string;
160
- }
161
- export declare function customEventSend(input: CustomEventSendInput): Promise<{
162
- customEventId?: string;
163
- }>;
164
- interface CustomEventItem {
165
- customEventId: string;
166
- type: string;
167
- customerId?: string;
168
- eventDate?: string;
169
- body?: Record<string, unknown>;
170
- createdAt?: string;
171
- }
172
- export declare function customEventList(input: {
173
- storeCode?: string;
174
- page?: number;
175
- perPage?: number;
176
- type?: string;
177
- customerId?: string;
178
- email?: string;
179
- }): Promise<{
180
- events: CustomEventItem[];
181
- total: {
182
- all?: number;
183
- filtered?: number;
184
- };
185
- }>;
186
- export declare const customEventToolDefinitions: readonly [{
187
- readonly name: "ol_custom_event_schema_list";
188
- readonly title: "List Custom Event Schemas";
189
- readonly description: string;
190
- readonly readOnly: true;
191
- readonly inputSchema: {
192
- storeCode: z.ZodOptional<z.ZodString>;
193
- page: z.ZodOptional<z.ZodNumber>;
194
- perPage: z.ZodOptional<z.ZodNumber>;
195
- eventType: z.ZodOptional<z.ZodString>;
196
- name: z.ZodOptional<z.ZodString>;
197
- active: z.ZodOptional<z.ZodBoolean>;
198
- };
199
- readonly handler: typeof customEventSchemaList;
200
- }, {
201
- readonly name: "ol_custom_event_schema_get";
202
- readonly title: "Get Custom Event Schema";
203
- readonly description: "Get details of a specific custom event schema including its fields.";
204
- readonly readOnly: true;
205
- readonly inputSchema: {
206
- storeCode: z.ZodOptional<z.ZodString>;
207
- eventType: z.ZodString;
208
- };
209
- readonly handler: typeof customEventSchemaGet;
210
- }, {
211
- readonly name: "ol_custom_event_schema_create";
212
- readonly title: "Create Custom Event Schema";
213
- readonly description: string;
214
- readonly readOnly: false;
215
- readonly inputSchema: {
216
- storeCode: z.ZodOptional<z.ZodString>;
217
- eventType: z.ZodString;
218
- name: z.ZodString;
219
- fields: z.ZodArray<z.ZodObject<{
220
- name: z.ZodString;
221
- type: z.ZodEnum<["text", "number", "boolean", "datetime"]>;
222
- description: z.ZodOptional<z.ZodString>;
223
- }, "strip", z.ZodTypeAny, {
224
- type: "number" | "boolean" | "text" | "datetime";
225
- name: string;
226
- description?: string | undefined;
227
- }, {
228
- type: "number" | "boolean" | "text" | "datetime";
229
- name: string;
230
- description?: string | undefined;
231
- }>, "many">;
232
- active: z.ZodOptional<z.ZodBoolean>;
233
- };
234
- readonly handler: typeof customEventSchemaCreate;
235
- }, {
236
- readonly name: "ol_custom_event_schema_update";
237
- readonly title: "Update Custom Event Schema";
238
- readonly description: "Update an existing custom event schema (name, fields, active status).";
239
- readonly readOnly: false;
240
- readonly inputSchema: {
241
- storeCode: z.ZodOptional<z.ZodString>;
242
- eventType: z.ZodString;
243
- name: z.ZodString;
244
- fields: z.ZodArray<z.ZodObject<{
245
- name: z.ZodString;
246
- type: z.ZodEnum<["text", "number", "boolean", "datetime"]>;
247
- description: z.ZodOptional<z.ZodString>;
248
- }, "strip", z.ZodTypeAny, {
249
- type: "number" | "boolean" | "text" | "datetime";
250
- name: string;
251
- description?: string | undefined;
252
- }, {
253
- type: "number" | "boolean" | "text" | "datetime";
254
- name: string;
255
- description?: string | undefined;
256
- }>, "many">;
257
- active: z.ZodOptional<z.ZodBoolean>;
258
- };
259
- readonly handler: typeof customEventSchemaUpdate;
260
- }, {
261
- readonly name: "ol_custom_event_schema_activate";
262
- readonly title: "Activate/Deactivate Custom Event Schema";
263
- readonly description: "Activate or deactivate a custom event schema. Inactive schemas won't trigger campaigns/achievements.";
264
- readonly readOnly: false;
265
- readonly inputSchema: {
266
- storeCode: z.ZodOptional<z.ZodString>;
267
- eventType: z.ZodString;
268
- active: z.ZodBoolean;
269
- };
270
- readonly handler: typeof customEventSchemaActivate;
271
- }, {
272
- readonly name: "ol_custom_event_send";
273
- readonly title: "Send Custom Event";
274
- readonly description: string;
275
- readonly readOnly: false;
276
- readonly inputSchema: {
277
- storeCode: z.ZodOptional<z.ZodString>;
278
- eventType: z.ZodString;
279
- customerData: z.ZodObject<{
280
- customerId: z.ZodOptional<z.ZodString>;
281
- email: z.ZodOptional<z.ZodString>;
282
- phone: z.ZodOptional<z.ZodString>;
283
- loyaltyCardNumber: z.ZodOptional<z.ZodString>;
284
- }, "strip", z.ZodTypeAny, {
285
- email?: string | undefined;
286
- phone?: string | undefined;
287
- loyaltyCardNumber?: string | undefined;
288
- customerId?: string | undefined;
289
- }, {
290
- email?: string | undefined;
291
- phone?: string | undefined;
292
- loyaltyCardNumber?: string | undefined;
293
- customerId?: string | undefined;
294
- }>;
295
- eventDate: z.ZodString;
296
- body: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
297
- eventId: z.ZodOptional<z.ZodString>;
298
- };
299
- readonly handler: typeof customEventSend;
300
- }, {
301
- readonly name: "ol_custom_event_list";
302
- readonly title: "List Custom Events";
303
- readonly description: "List custom events that have been sent. Filter by event type or member to see event history.";
304
- readonly readOnly: true;
305
- readonly inputSchema: {
306
- storeCode: z.ZodOptional<z.ZodString>;
307
- page: z.ZodOptional<z.ZodNumber>;
308
- perPage: z.ZodOptional<z.ZodNumber>;
309
- type: z.ZodOptional<z.ZodString>;
310
- customerId: z.ZodOptional<z.ZodString>;
311
- email: z.ZodOptional<z.ZodString>;
312
- };
313
- readonly handler: typeof customEventList;
314
- }];
315
- export {};