@open-loyalty/mcp-server 1.0.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 (99) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +654 -0
  3. package/dist/client/http.d.ts +8 -0
  4. package/dist/client/http.js +69 -0
  5. package/dist/config.d.ts +17 -0
  6. package/dist/config.js +40 -0
  7. package/dist/index.d.ts +2 -0
  8. package/dist/index.js +20 -0
  9. package/dist/server.d.ts +4 -0
  10. package/dist/server.js +334 -0
  11. package/dist/tools/achievement.d.ts +983 -0
  12. package/dist/tools/achievement.js +311 -0
  13. package/dist/tools/admin.d.ts +153 -0
  14. package/dist/tools/admin.js +193 -0
  15. package/dist/tools/analytics.d.ts +162 -0
  16. package/dist/tools/analytics.js +245 -0
  17. package/dist/tools/apikey.d.ts +72 -0
  18. package/dist/tools/apikey.js +78 -0
  19. package/dist/tools/audit.d.ts +107 -0
  20. package/dist/tools/audit.js +90 -0
  21. package/dist/tools/badge.d.ts +135 -0
  22. package/dist/tools/badge.js +165 -0
  23. package/dist/tools/campaign.d.ts +1775 -0
  24. package/dist/tools/campaign.js +724 -0
  25. package/dist/tools/export.d.ts +110 -0
  26. package/dist/tools/export.js +147 -0
  27. package/dist/tools/import.d.ts +110 -0
  28. package/dist/tools/import.js +126 -0
  29. package/dist/tools/index.d.ts +22 -0
  30. package/dist/tools/index.js +527 -0
  31. package/dist/tools/member.d.ts +345 -0
  32. package/dist/tools/member.js +358 -0
  33. package/dist/tools/member.test.d.ts +1 -0
  34. package/dist/tools/member.test.js +213 -0
  35. package/dist/tools/points.d.ts +188 -0
  36. package/dist/tools/points.js +306 -0
  37. package/dist/tools/points.test.d.ts +1 -0
  38. package/dist/tools/points.test.js +292 -0
  39. package/dist/tools/reward.d.ts +261 -0
  40. package/dist/tools/reward.js +371 -0
  41. package/dist/tools/reward.test.d.ts +1 -0
  42. package/dist/tools/reward.test.js +240 -0
  43. package/dist/tools/role.d.ts +161 -0
  44. package/dist/tools/role.js +160 -0
  45. package/dist/tools/segment.d.ts +797 -0
  46. package/dist/tools/segment.js +299 -0
  47. package/dist/tools/store.d.ts +101 -0
  48. package/dist/tools/store.js +117 -0
  49. package/dist/tools/tierset.d.ts +288 -0
  50. package/dist/tools/tierset.js +244 -0
  51. package/dist/tools/transaction.d.ts +357 -0
  52. package/dist/tools/transaction.js +242 -0
  53. package/dist/tools/transaction.test.d.ts +1 -0
  54. package/dist/tools/transaction.test.js +235 -0
  55. package/dist/tools/wallet-type.d.ts +32 -0
  56. package/dist/tools/wallet-type.js +58 -0
  57. package/dist/tools/webhook.d.ts +179 -0
  58. package/dist/tools/webhook.js +171 -0
  59. package/dist/types/schemas/achievement.d.ts +1116 -0
  60. package/dist/types/schemas/achievement.js +172 -0
  61. package/dist/types/schemas/admin.d.ts +263 -0
  62. package/dist/types/schemas/admin.js +99 -0
  63. package/dist/types/schemas/analytics.d.ts +542 -0
  64. package/dist/types/schemas/analytics.js +130 -0
  65. package/dist/types/schemas/badge.d.ts +131 -0
  66. package/dist/types/schemas/badge.js +48 -0
  67. package/dist/types/schemas/campaign.d.ts +2005 -0
  68. package/dist/types/schemas/campaign.js +189 -0
  69. package/dist/types/schemas/common.d.ts +52 -0
  70. package/dist/types/schemas/common.js +26 -0
  71. package/dist/types/schemas/export.d.ts +127 -0
  72. package/dist/types/schemas/export.js +43 -0
  73. package/dist/types/schemas/import.d.ts +344 -0
  74. package/dist/types/schemas/import.js +68 -0
  75. package/dist/types/schemas/member.d.ts +443 -0
  76. package/dist/types/schemas/member.js +92 -0
  77. package/dist/types/schemas/points.d.ts +188 -0
  78. package/dist/types/schemas/points.js +54 -0
  79. package/dist/types/schemas/reward.d.ts +278 -0
  80. package/dist/types/schemas/reward.js +69 -0
  81. package/dist/types/schemas/role.d.ts +260 -0
  82. package/dist/types/schemas/role.js +75 -0
  83. package/dist/types/schemas/segment.d.ts +592 -0
  84. package/dist/types/schemas/segment.js +114 -0
  85. package/dist/types/schemas/tierset.d.ts +552 -0
  86. package/dist/types/schemas/tierset.js +87 -0
  87. package/dist/types/schemas/transaction.d.ts +1022 -0
  88. package/dist/types/schemas/transaction.js +63 -0
  89. package/dist/types/schemas/wallet-type.d.ts +99 -0
  90. package/dist/types/schemas/wallet-type.js +17 -0
  91. package/dist/types/schemas/webhook.d.ts +195 -0
  92. package/dist/types/schemas/webhook.js +39 -0
  93. package/dist/utils/cursor.d.ts +84 -0
  94. package/dist/utils/cursor.js +117 -0
  95. package/dist/utils/errors.d.ts +12 -0
  96. package/dist/utils/errors.js +69 -0
  97. package/dist/utils/pagination.d.ts +39 -0
  98. package/dist/utils/pagination.js +77 -0
  99. package/package.json +65 -0
@@ -0,0 +1,131 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Badge Type Schema.
4
+ * Represents a badge type that can be linked to achievements.
5
+ */
6
+ export declare const BadgeTypeSchema: z.ZodObject<{
7
+ badgeTypeId: z.ZodString;
8
+ name: z.ZodOptional<z.ZodString>;
9
+ translations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
10
+ name: z.ZodString;
11
+ description: z.ZodOptional<z.ZodString>;
12
+ }, "strip", z.ZodTypeAny, {
13
+ name: string;
14
+ description?: string | undefined;
15
+ }, {
16
+ name: string;
17
+ description?: string | undefined;
18
+ }>>>;
19
+ imageUrl: z.ZodOptional<z.ZodString>;
20
+ active: z.ZodOptional<z.ZodBoolean>;
21
+ achievementsCount: z.ZodOptional<z.ZodNumber>;
22
+ createdAt: z.ZodOptional<z.ZodString>;
23
+ updatedAt: z.ZodOptional<z.ZodString>;
24
+ }, "strip", z.ZodTypeAny, {
25
+ badgeTypeId: string;
26
+ name?: string | undefined;
27
+ active?: boolean | undefined;
28
+ createdAt?: string | undefined;
29
+ translations?: Record<string, {
30
+ name: string;
31
+ description?: string | undefined;
32
+ }> | undefined;
33
+ imageUrl?: string | undefined;
34
+ achievementsCount?: number | undefined;
35
+ updatedAt?: string | undefined;
36
+ }, {
37
+ badgeTypeId: string;
38
+ name?: string | undefined;
39
+ active?: boolean | undefined;
40
+ createdAt?: string | undefined;
41
+ translations?: Record<string, {
42
+ name: string;
43
+ description?: string | undefined;
44
+ }> | undefined;
45
+ imageUrl?: string | undefined;
46
+ achievementsCount?: number | undefined;
47
+ updatedAt?: string | undefined;
48
+ }>;
49
+ export type BadgeType = z.infer<typeof BadgeTypeSchema>;
50
+ /**
51
+ * Badge Type List Item Schema.
52
+ * Simplified representation for list responses.
53
+ */
54
+ export declare const BadgeTypeListItemSchema: z.ZodObject<{
55
+ badgeTypeId: z.ZodString;
56
+ name: z.ZodOptional<z.ZodString>;
57
+ createdAt: z.ZodOptional<z.ZodString>;
58
+ updatedAt: z.ZodOptional<z.ZodString>;
59
+ }, "strip", z.ZodTypeAny, {
60
+ badgeTypeId: string;
61
+ name?: string | undefined;
62
+ createdAt?: string | undefined;
63
+ updatedAt?: string | undefined;
64
+ }, {
65
+ badgeTypeId: string;
66
+ name?: string | undefined;
67
+ createdAt?: string | undefined;
68
+ updatedAt?: string | undefined;
69
+ }>;
70
+ export type BadgeTypeListItem = z.infer<typeof BadgeTypeListItemSchema>;
71
+ /**
72
+ * Badge Type Create/Update Input Schema.
73
+ * Matches the PUT /api/{storeCode}/badge-type/{badgeTypeId} body structure.
74
+ * IMPORTANT: Request must be wrapped as { badgeType: {...} }
75
+ */
76
+ export declare const BadgeTypeUpdateInputSchema: z.ZodObject<{
77
+ name: z.ZodOptional<z.ZodString>;
78
+ translations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
79
+ name: z.ZodString;
80
+ description: z.ZodOptional<z.ZodString>;
81
+ }, "strip", z.ZodTypeAny, {
82
+ name: string;
83
+ description?: string | undefined;
84
+ }, {
85
+ name: string;
86
+ description?: string | undefined;
87
+ }>>>;
88
+ imageUrl: z.ZodOptional<z.ZodString>;
89
+ active: z.ZodOptional<z.ZodBoolean>;
90
+ }, "strip", z.ZodTypeAny, {
91
+ name?: string | undefined;
92
+ active?: boolean | undefined;
93
+ translations?: Record<string, {
94
+ name: string;
95
+ description?: string | undefined;
96
+ }> | undefined;
97
+ imageUrl?: string | undefined;
98
+ }, {
99
+ name?: string | undefined;
100
+ active?: boolean | undefined;
101
+ translations?: Record<string, {
102
+ name: string;
103
+ description?: string | undefined;
104
+ }> | undefined;
105
+ imageUrl?: string | undefined;
106
+ }>;
107
+ export type BadgeTypeUpdateInput = z.infer<typeof BadgeTypeUpdateInputSchema>;
108
+ /**
109
+ * Member Badge Schema.
110
+ * Represents a member's earned badge.
111
+ */
112
+ export declare const MemberBadgeSchema: z.ZodObject<{
113
+ badgeTypeId: z.ZodString;
114
+ name: z.ZodOptional<z.ZodString>;
115
+ completedCount: z.ZodOptional<z.ZodNumber>;
116
+ createdAt: z.ZodOptional<z.ZodString>;
117
+ updatedAt: z.ZodOptional<z.ZodString>;
118
+ }, "strip", z.ZodTypeAny, {
119
+ badgeTypeId: string;
120
+ name?: string | undefined;
121
+ createdAt?: string | undefined;
122
+ completedCount?: number | undefined;
123
+ updatedAt?: string | undefined;
124
+ }, {
125
+ badgeTypeId: string;
126
+ name?: string | undefined;
127
+ createdAt?: string | undefined;
128
+ completedCount?: number | undefined;
129
+ updatedAt?: string | undefined;
130
+ }>;
131
+ export type MemberBadge = z.infer<typeof MemberBadgeSchema>;
@@ -0,0 +1,48 @@
1
+ import { z } from "zod";
2
+ import { TranslationsSchema } from "./common.js";
3
+ /**
4
+ * Badge Type Schema.
5
+ * Represents a badge type that can be linked to achievements.
6
+ */
7
+ export const BadgeTypeSchema = z.object({
8
+ badgeTypeId: z.string().describe("Badge type ID (UUID)."),
9
+ name: z.string().optional().describe("Badge name."),
10
+ translations: TranslationsSchema.optional().describe("Badge name and description translations."),
11
+ imageUrl: z.string().optional().describe("URL to badge image."),
12
+ active: z.boolean().optional().describe("Whether badge type is active."),
13
+ achievementsCount: z.number().optional().describe("Number of achievements using this badge."),
14
+ createdAt: z.string().optional().describe("Creation timestamp."),
15
+ updatedAt: z.string().optional().describe("Last update timestamp."),
16
+ });
17
+ /**
18
+ * Badge Type List Item Schema.
19
+ * Simplified representation for list responses.
20
+ */
21
+ export const BadgeTypeListItemSchema = z.object({
22
+ badgeTypeId: z.string(),
23
+ name: z.string().optional(),
24
+ createdAt: z.string().optional(),
25
+ updatedAt: z.string().optional(),
26
+ });
27
+ /**
28
+ * Badge Type Create/Update Input Schema.
29
+ * Matches the PUT /api/{storeCode}/badge-type/{badgeTypeId} body structure.
30
+ * IMPORTANT: Request must be wrapped as { badgeType: {...} }
31
+ */
32
+ export const BadgeTypeUpdateInputSchema = z.object({
33
+ name: z.string().optional().describe("Badge name."),
34
+ translations: TranslationsSchema.optional().describe("Badge translations (at least 'en' key recommended)."),
35
+ imageUrl: z.string().optional().describe("URL to badge image."),
36
+ active: z.boolean().optional().describe("Whether badge type is active."),
37
+ });
38
+ /**
39
+ * Member Badge Schema.
40
+ * Represents a member's earned badge.
41
+ */
42
+ export const MemberBadgeSchema = z.object({
43
+ badgeTypeId: z.string().describe("Badge type ID."),
44
+ name: z.string().optional().describe("Badge name."),
45
+ completedCount: z.number().optional().describe("Number of times the badge has been earned."),
46
+ createdAt: z.string().optional().describe("When badge was first earned."),
47
+ updatedAt: z.string().optional().describe("Last update timestamp."),
48
+ });