@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,983 @@
1
+ import { z } from "zod";
2
+ import { AchievementListItem } from "../types/schemas/achievement.js";
3
+ export declare const AchievementListInputSchema: {
4
+ storeCode: z.ZodOptional<z.ZodString>;
5
+ page: z.ZodOptional<z.ZodNumber>;
6
+ perPage: z.ZodOptional<z.ZodNumber>;
7
+ active: z.ZodOptional<z.ZodBoolean>;
8
+ name: z.ZodOptional<z.ZodString>;
9
+ };
10
+ export declare const AchievementCreateInputSchema: {
11
+ storeCode: z.ZodOptional<z.ZodString>;
12
+ translations: z.ZodRecord<z.ZodString, z.ZodObject<{
13
+ name: z.ZodString;
14
+ description: z.ZodOptional<z.ZodString>;
15
+ }, "strip", z.ZodTypeAny, {
16
+ name: string;
17
+ description?: string | undefined;
18
+ }, {
19
+ name: string;
20
+ description?: string | undefined;
21
+ }>>;
22
+ active: z.ZodOptional<z.ZodBoolean>;
23
+ activity: z.ZodOptional<z.ZodObject<{
24
+ startsAt: z.ZodOptional<z.ZodString>;
25
+ endsAt: z.ZodOptional<z.ZodString>;
26
+ operator: z.ZodOptional<z.ZodString>;
27
+ }, "strip", z.ZodTypeAny, {
28
+ operator?: string | undefined;
29
+ startsAt?: string | undefined;
30
+ endsAt?: string | undefined;
31
+ }, {
32
+ operator?: string | undefined;
33
+ startsAt?: string | undefined;
34
+ endsAt?: string | undefined;
35
+ }>>;
36
+ limit: z.ZodOptional<z.ZodObject<{
37
+ value: z.ZodOptional<z.ZodNumber>;
38
+ interval: z.ZodOptional<z.ZodObject<{
39
+ type: z.ZodString;
40
+ value: z.ZodOptional<z.ZodNumber>;
41
+ }, "strip", z.ZodTypeAny, {
42
+ type: string;
43
+ value?: number | undefined;
44
+ }, {
45
+ type: string;
46
+ value?: number | undefined;
47
+ }>>;
48
+ }, "strip", z.ZodTypeAny, {
49
+ value?: number | undefined;
50
+ interval?: {
51
+ type: string;
52
+ value?: number | undefined;
53
+ } | undefined;
54
+ }, {
55
+ value?: number | undefined;
56
+ interval?: {
57
+ type: string;
58
+ value?: number | undefined;
59
+ } | undefined;
60
+ }>>;
61
+ rules: z.ZodArray<z.ZodObject<{
62
+ achievementRuleId: z.ZodOptional<z.ZodString>;
63
+ translations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
64
+ name: z.ZodString;
65
+ description: z.ZodOptional<z.ZodString>;
66
+ }, "strip", z.ZodTypeAny, {
67
+ name: string;
68
+ description?: string | undefined;
69
+ }, {
70
+ name: string;
71
+ description?: string | undefined;
72
+ }>>>;
73
+ trigger: z.ZodOptional<z.ZodString>;
74
+ type: z.ZodOptional<z.ZodString>;
75
+ event: z.ZodOptional<z.ZodString>;
76
+ completeRule: z.ZodObject<{
77
+ periodGoal: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
78
+ period: z.ZodOptional<z.ZodObject<{
79
+ consecutive: z.ZodOptional<z.ZodNumber>;
80
+ value: z.ZodOptional<z.ZodNumber>;
81
+ }, "strip", z.ZodTypeAny, {
82
+ value?: number | undefined;
83
+ consecutive?: number | undefined;
84
+ }, {
85
+ value?: number | undefined;
86
+ consecutive?: number | undefined;
87
+ }>>;
88
+ uniqueAttribute: z.ZodOptional<z.ZodString>;
89
+ }, "strip", z.ZodTypeAny, {
90
+ periodGoal: string | number;
91
+ period?: {
92
+ value?: number | undefined;
93
+ consecutive?: number | undefined;
94
+ } | undefined;
95
+ uniqueAttribute?: string | undefined;
96
+ }, {
97
+ periodGoal: string | number;
98
+ period?: {
99
+ value?: number | undefined;
100
+ consecutive?: number | undefined;
101
+ } | undefined;
102
+ uniqueAttribute?: string | undefined;
103
+ }>;
104
+ aggregation: z.ZodOptional<z.ZodObject<{
105
+ rule: z.ZodOptional<z.ZodString>;
106
+ }, "strip", z.ZodTypeAny, {
107
+ rule?: string | undefined;
108
+ }, {
109
+ rule?: string | undefined;
110
+ }>>;
111
+ conditions: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">>;
112
+ limit: z.ZodOptional<z.ZodObject<{
113
+ value: z.ZodOptional<z.ZodNumber>;
114
+ interval: z.ZodOptional<z.ZodObject<{
115
+ type: z.ZodString;
116
+ value: z.ZodOptional<z.ZodNumber>;
117
+ }, "strip", z.ZodTypeAny, {
118
+ type: string;
119
+ value?: number | undefined;
120
+ }, {
121
+ type: string;
122
+ value?: number | undefined;
123
+ }>>;
124
+ }, "strip", z.ZodTypeAny, {
125
+ value?: number | undefined;
126
+ interval?: {
127
+ type: string;
128
+ value?: number | undefined;
129
+ } | undefined;
130
+ }, {
131
+ value?: number | undefined;
132
+ interval?: {
133
+ type: string;
134
+ value?: number | undefined;
135
+ } | undefined;
136
+ }>>;
137
+ uniqueReferee: z.ZodOptional<z.ZodBoolean>;
138
+ }, "strip", z.ZodTypeAny, {
139
+ completeRule: {
140
+ periodGoal: string | number;
141
+ period?: {
142
+ value?: number | undefined;
143
+ consecutive?: number | undefined;
144
+ } | undefined;
145
+ uniqueAttribute?: string | undefined;
146
+ };
147
+ type?: string | undefined;
148
+ conditions?: Record<string, unknown>[] | undefined;
149
+ translations?: Record<string, {
150
+ name: string;
151
+ description?: string | undefined;
152
+ }> | undefined;
153
+ trigger?: string | undefined;
154
+ event?: string | undefined;
155
+ achievementRuleId?: string | undefined;
156
+ aggregation?: {
157
+ rule?: string | undefined;
158
+ } | undefined;
159
+ limit?: {
160
+ value?: number | undefined;
161
+ interval?: {
162
+ type: string;
163
+ value?: number | undefined;
164
+ } | undefined;
165
+ } | undefined;
166
+ uniqueReferee?: boolean | undefined;
167
+ }, {
168
+ completeRule: {
169
+ periodGoal: string | number;
170
+ period?: {
171
+ value?: number | undefined;
172
+ consecutive?: number | undefined;
173
+ } | undefined;
174
+ uniqueAttribute?: string | undefined;
175
+ };
176
+ type?: string | undefined;
177
+ conditions?: Record<string, unknown>[] | undefined;
178
+ translations?: Record<string, {
179
+ name: string;
180
+ description?: string | undefined;
181
+ }> | undefined;
182
+ trigger?: string | undefined;
183
+ event?: string | undefined;
184
+ achievementRuleId?: string | undefined;
185
+ aggregation?: {
186
+ rule?: string | undefined;
187
+ } | undefined;
188
+ limit?: {
189
+ value?: number | undefined;
190
+ interval?: {
191
+ type: string;
192
+ value?: number | undefined;
193
+ } | undefined;
194
+ } | undefined;
195
+ uniqueReferee?: boolean | undefined;
196
+ }>, "many">;
197
+ badgeTypeId: z.ZodOptional<z.ZodString>;
198
+ };
199
+ export declare const AchievementGetInputSchema: {
200
+ storeCode: z.ZodOptional<z.ZodString>;
201
+ achievementId: z.ZodString;
202
+ };
203
+ export declare const AchievementUpdateInputSchema: {
204
+ storeCode: z.ZodOptional<z.ZodString>;
205
+ achievementId: z.ZodString;
206
+ translations: z.ZodRecord<z.ZodString, z.ZodObject<{
207
+ name: z.ZodString;
208
+ description: z.ZodOptional<z.ZodString>;
209
+ }, "strip", z.ZodTypeAny, {
210
+ name: string;
211
+ description?: string | undefined;
212
+ }, {
213
+ name: string;
214
+ description?: string | undefined;
215
+ }>>;
216
+ active: z.ZodOptional<z.ZodBoolean>;
217
+ activity: z.ZodOptional<z.ZodObject<{
218
+ startsAt: z.ZodOptional<z.ZodString>;
219
+ endsAt: z.ZodOptional<z.ZodString>;
220
+ operator: z.ZodOptional<z.ZodString>;
221
+ }, "strip", z.ZodTypeAny, {
222
+ operator?: string | undefined;
223
+ startsAt?: string | undefined;
224
+ endsAt?: string | undefined;
225
+ }, {
226
+ operator?: string | undefined;
227
+ startsAt?: string | undefined;
228
+ endsAt?: string | undefined;
229
+ }>>;
230
+ limit: z.ZodOptional<z.ZodObject<{
231
+ value: z.ZodOptional<z.ZodNumber>;
232
+ interval: z.ZodOptional<z.ZodObject<{
233
+ type: z.ZodString;
234
+ value: z.ZodOptional<z.ZodNumber>;
235
+ }, "strip", z.ZodTypeAny, {
236
+ type: string;
237
+ value?: number | undefined;
238
+ }, {
239
+ type: string;
240
+ value?: number | undefined;
241
+ }>>;
242
+ }, "strip", z.ZodTypeAny, {
243
+ value?: number | undefined;
244
+ interval?: {
245
+ type: string;
246
+ value?: number | undefined;
247
+ } | undefined;
248
+ }, {
249
+ value?: number | undefined;
250
+ interval?: {
251
+ type: string;
252
+ value?: number | undefined;
253
+ } | undefined;
254
+ }>>;
255
+ rules: z.ZodArray<z.ZodObject<{
256
+ achievementRuleId: z.ZodOptional<z.ZodString>;
257
+ translations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
258
+ name: z.ZodString;
259
+ description: z.ZodOptional<z.ZodString>;
260
+ }, "strip", z.ZodTypeAny, {
261
+ name: string;
262
+ description?: string | undefined;
263
+ }, {
264
+ name: string;
265
+ description?: string | undefined;
266
+ }>>>;
267
+ trigger: z.ZodOptional<z.ZodString>;
268
+ type: z.ZodOptional<z.ZodString>;
269
+ event: z.ZodOptional<z.ZodString>;
270
+ completeRule: z.ZodObject<{
271
+ periodGoal: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
272
+ period: z.ZodOptional<z.ZodObject<{
273
+ consecutive: z.ZodOptional<z.ZodNumber>;
274
+ value: z.ZodOptional<z.ZodNumber>;
275
+ }, "strip", z.ZodTypeAny, {
276
+ value?: number | undefined;
277
+ consecutive?: number | undefined;
278
+ }, {
279
+ value?: number | undefined;
280
+ consecutive?: number | undefined;
281
+ }>>;
282
+ uniqueAttribute: z.ZodOptional<z.ZodString>;
283
+ }, "strip", z.ZodTypeAny, {
284
+ periodGoal: string | number;
285
+ period?: {
286
+ value?: number | undefined;
287
+ consecutive?: number | undefined;
288
+ } | undefined;
289
+ uniqueAttribute?: string | undefined;
290
+ }, {
291
+ periodGoal: string | number;
292
+ period?: {
293
+ value?: number | undefined;
294
+ consecutive?: number | undefined;
295
+ } | undefined;
296
+ uniqueAttribute?: string | undefined;
297
+ }>;
298
+ aggregation: z.ZodOptional<z.ZodObject<{
299
+ rule: z.ZodOptional<z.ZodString>;
300
+ }, "strip", z.ZodTypeAny, {
301
+ rule?: string | undefined;
302
+ }, {
303
+ rule?: string | undefined;
304
+ }>>;
305
+ conditions: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">>;
306
+ limit: z.ZodOptional<z.ZodObject<{
307
+ value: z.ZodOptional<z.ZodNumber>;
308
+ interval: z.ZodOptional<z.ZodObject<{
309
+ type: z.ZodString;
310
+ value: z.ZodOptional<z.ZodNumber>;
311
+ }, "strip", z.ZodTypeAny, {
312
+ type: string;
313
+ value?: number | undefined;
314
+ }, {
315
+ type: string;
316
+ value?: number | undefined;
317
+ }>>;
318
+ }, "strip", z.ZodTypeAny, {
319
+ value?: number | undefined;
320
+ interval?: {
321
+ type: string;
322
+ value?: number | undefined;
323
+ } | undefined;
324
+ }, {
325
+ value?: number | undefined;
326
+ interval?: {
327
+ type: string;
328
+ value?: number | undefined;
329
+ } | undefined;
330
+ }>>;
331
+ uniqueReferee: z.ZodOptional<z.ZodBoolean>;
332
+ }, "strip", z.ZodTypeAny, {
333
+ completeRule: {
334
+ periodGoal: string | number;
335
+ period?: {
336
+ value?: number | undefined;
337
+ consecutive?: number | undefined;
338
+ } | undefined;
339
+ uniqueAttribute?: string | undefined;
340
+ };
341
+ type?: string | undefined;
342
+ conditions?: Record<string, unknown>[] | undefined;
343
+ translations?: Record<string, {
344
+ name: string;
345
+ description?: string | undefined;
346
+ }> | undefined;
347
+ trigger?: string | undefined;
348
+ event?: string | undefined;
349
+ achievementRuleId?: string | undefined;
350
+ aggregation?: {
351
+ rule?: string | undefined;
352
+ } | undefined;
353
+ limit?: {
354
+ value?: number | undefined;
355
+ interval?: {
356
+ type: string;
357
+ value?: number | undefined;
358
+ } | undefined;
359
+ } | undefined;
360
+ uniqueReferee?: boolean | undefined;
361
+ }, {
362
+ completeRule: {
363
+ periodGoal: string | number;
364
+ period?: {
365
+ value?: number | undefined;
366
+ consecutive?: number | undefined;
367
+ } | undefined;
368
+ uniqueAttribute?: string | undefined;
369
+ };
370
+ type?: string | undefined;
371
+ conditions?: Record<string, unknown>[] | undefined;
372
+ translations?: Record<string, {
373
+ name: string;
374
+ description?: string | undefined;
375
+ }> | undefined;
376
+ trigger?: string | undefined;
377
+ event?: string | undefined;
378
+ achievementRuleId?: string | undefined;
379
+ aggregation?: {
380
+ rule?: string | undefined;
381
+ } | undefined;
382
+ limit?: {
383
+ value?: number | undefined;
384
+ interval?: {
385
+ type: string;
386
+ value?: number | undefined;
387
+ } | undefined;
388
+ } | undefined;
389
+ uniqueReferee?: boolean | undefined;
390
+ }>, "many">;
391
+ badgeTypeId: z.ZodOptional<z.ZodString>;
392
+ };
393
+ export declare const AchievementPatchInputSchema: {
394
+ storeCode: z.ZodOptional<z.ZodString>;
395
+ achievementId: z.ZodString;
396
+ active: z.ZodOptional<z.ZodBoolean>;
397
+ translations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
398
+ name: z.ZodOptional<z.ZodString>;
399
+ description: z.ZodOptional<z.ZodString>;
400
+ }, "strip", z.ZodTypeAny, {
401
+ name?: string | undefined;
402
+ description?: string | undefined;
403
+ }, {
404
+ name?: string | undefined;
405
+ description?: string | undefined;
406
+ }>>>;
407
+ };
408
+ export declare const AchievementGetMemberProgressInputSchema: {
409
+ storeCode: z.ZodOptional<z.ZodString>;
410
+ memberId: z.ZodString;
411
+ achievementId: z.ZodString;
412
+ };
413
+ export declare const AchievementListMemberAchievementsInputSchema: {
414
+ storeCode: z.ZodOptional<z.ZodString>;
415
+ memberId: z.ZodString;
416
+ page: z.ZodOptional<z.ZodNumber>;
417
+ perPage: z.ZodOptional<z.ZodNumber>;
418
+ name: z.ZodOptional<z.ZodString>;
419
+ achievementId: z.ZodOptional<z.ZodString>;
420
+ };
421
+ export declare function achievementList(input: {
422
+ storeCode?: string;
423
+ page?: number;
424
+ perPage?: number;
425
+ active?: boolean;
426
+ name?: string;
427
+ }): Promise<{
428
+ achievements: AchievementListItem[];
429
+ total: {
430
+ all?: number;
431
+ filtered?: number;
432
+ };
433
+ }>;
434
+ interface AchievementCreateInput {
435
+ storeCode?: string;
436
+ translations: Record<string, {
437
+ name: string;
438
+ description?: string;
439
+ }>;
440
+ active?: boolean;
441
+ activity?: {
442
+ startsAt?: string;
443
+ endsAt?: string;
444
+ operator?: string;
445
+ };
446
+ limit?: {
447
+ value?: number;
448
+ interval?: {
449
+ type: string;
450
+ value?: number;
451
+ };
452
+ };
453
+ rules: Array<Record<string, unknown>>;
454
+ badgeTypeId?: string;
455
+ }
456
+ export declare function achievementCreate(input: AchievementCreateInput): Promise<{
457
+ achievementId: string;
458
+ }>;
459
+ export declare function achievementGet(input: {
460
+ storeCode?: string;
461
+ achievementId: string;
462
+ }): Promise<Record<string, unknown>>;
463
+ interface AchievementUpdateInput {
464
+ storeCode?: string;
465
+ achievementId: string;
466
+ translations: Record<string, {
467
+ name: string;
468
+ description?: string;
469
+ }>;
470
+ active?: boolean;
471
+ activity?: {
472
+ startsAt?: string;
473
+ endsAt?: string;
474
+ operator?: string;
475
+ };
476
+ limit?: {
477
+ value?: number;
478
+ interval?: {
479
+ type: string;
480
+ value?: number;
481
+ };
482
+ };
483
+ rules: Array<Record<string, unknown>>;
484
+ badgeTypeId?: string;
485
+ }
486
+ export declare function achievementUpdate(input: AchievementUpdateInput): Promise<void>;
487
+ interface AchievementPatchInput {
488
+ storeCode?: string;
489
+ achievementId: string;
490
+ active?: boolean;
491
+ translations?: Record<string, {
492
+ name?: string;
493
+ description?: string;
494
+ }>;
495
+ }
496
+ export declare function achievementPatch(input: AchievementPatchInput): Promise<void>;
497
+ interface AchievementMemberProgress {
498
+ achievementId: string;
499
+ achievementName?: string;
500
+ achievementDescription?: string;
501
+ limitReached?: boolean;
502
+ memberProgress: {
503
+ completedCount: number;
504
+ rules: Array<{
505
+ achievementRuleId: string;
506
+ periodGoal: number;
507
+ currentPeriodValue: number;
508
+ consecutivePeriods?: number;
509
+ completedConsecutivePeriods?: number;
510
+ periodType?: string;
511
+ type?: string;
512
+ trigger?: string;
513
+ periodValue?: number;
514
+ }>;
515
+ };
516
+ }
517
+ export declare function achievementGetMemberProgress(input: {
518
+ storeCode?: string;
519
+ memberId: string;
520
+ achievementId: string;
521
+ }): Promise<AchievementMemberProgress>;
522
+ export declare function achievementListMemberAchievements(input: {
523
+ storeCode?: string;
524
+ memberId: string;
525
+ page?: number;
526
+ perPage?: number;
527
+ name?: string;
528
+ achievementId?: string;
529
+ }): Promise<{
530
+ achievements: AchievementMemberProgress[];
531
+ total: {
532
+ all?: number;
533
+ filtered?: number;
534
+ };
535
+ }>;
536
+ export declare const achievementToolDefinitions: readonly [{
537
+ readonly name: "openloyalty_achievement_list";
538
+ readonly description: "List achievements. Achievements gamify member behavior by setting goals (e.g., 'Make 5 purchases this month'). Returns achievementId, name, active status, and associated badge. Use achievement_get for full rules and configuration.";
539
+ readonly inputSchema: {
540
+ storeCode: z.ZodOptional<z.ZodString>;
541
+ page: z.ZodOptional<z.ZodNumber>;
542
+ perPage: z.ZodOptional<z.ZodNumber>;
543
+ active: z.ZodOptional<z.ZodBoolean>;
544
+ name: z.ZodOptional<z.ZodString>;
545
+ };
546
+ readonly handler: typeof achievementList;
547
+ }, {
548
+ readonly name: "openloyalty_achievement_create";
549
+ readonly description: "Create achievement with rules that track member progress. Triggers: transaction (purchases), custom_event (custom actions), points_transfer, referral, etc. CompleteRule sets the goal: periodGoal (target value) with optional period (consecutive periods). Example - '5 purchases/month': rules: [{ trigger: 'transaction', completeRule: { periodGoal: 5, period: { value: 1, consecutive: 1 } } }]";
550
+ readonly inputSchema: {
551
+ storeCode: z.ZodOptional<z.ZodString>;
552
+ translations: z.ZodRecord<z.ZodString, z.ZodObject<{
553
+ name: z.ZodString;
554
+ description: z.ZodOptional<z.ZodString>;
555
+ }, "strip", z.ZodTypeAny, {
556
+ name: string;
557
+ description?: string | undefined;
558
+ }, {
559
+ name: string;
560
+ description?: string | undefined;
561
+ }>>;
562
+ active: z.ZodOptional<z.ZodBoolean>;
563
+ activity: z.ZodOptional<z.ZodObject<{
564
+ startsAt: z.ZodOptional<z.ZodString>;
565
+ endsAt: z.ZodOptional<z.ZodString>;
566
+ operator: z.ZodOptional<z.ZodString>;
567
+ }, "strip", z.ZodTypeAny, {
568
+ operator?: string | undefined;
569
+ startsAt?: string | undefined;
570
+ endsAt?: string | undefined;
571
+ }, {
572
+ operator?: string | undefined;
573
+ startsAt?: string | undefined;
574
+ endsAt?: string | undefined;
575
+ }>>;
576
+ limit: z.ZodOptional<z.ZodObject<{
577
+ value: z.ZodOptional<z.ZodNumber>;
578
+ interval: z.ZodOptional<z.ZodObject<{
579
+ type: z.ZodString;
580
+ value: z.ZodOptional<z.ZodNumber>;
581
+ }, "strip", z.ZodTypeAny, {
582
+ type: string;
583
+ value?: number | undefined;
584
+ }, {
585
+ type: string;
586
+ value?: number | undefined;
587
+ }>>;
588
+ }, "strip", z.ZodTypeAny, {
589
+ value?: number | undefined;
590
+ interval?: {
591
+ type: string;
592
+ value?: number | undefined;
593
+ } | undefined;
594
+ }, {
595
+ value?: number | undefined;
596
+ interval?: {
597
+ type: string;
598
+ value?: number | undefined;
599
+ } | undefined;
600
+ }>>;
601
+ rules: z.ZodArray<z.ZodObject<{
602
+ achievementRuleId: z.ZodOptional<z.ZodString>;
603
+ translations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
604
+ name: z.ZodString;
605
+ description: z.ZodOptional<z.ZodString>;
606
+ }, "strip", z.ZodTypeAny, {
607
+ name: string;
608
+ description?: string | undefined;
609
+ }, {
610
+ name: string;
611
+ description?: string | undefined;
612
+ }>>>;
613
+ trigger: z.ZodOptional<z.ZodString>;
614
+ type: z.ZodOptional<z.ZodString>;
615
+ event: z.ZodOptional<z.ZodString>;
616
+ completeRule: z.ZodObject<{
617
+ periodGoal: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
618
+ period: z.ZodOptional<z.ZodObject<{
619
+ consecutive: z.ZodOptional<z.ZodNumber>;
620
+ value: z.ZodOptional<z.ZodNumber>;
621
+ }, "strip", z.ZodTypeAny, {
622
+ value?: number | undefined;
623
+ consecutive?: number | undefined;
624
+ }, {
625
+ value?: number | undefined;
626
+ consecutive?: number | undefined;
627
+ }>>;
628
+ uniqueAttribute: z.ZodOptional<z.ZodString>;
629
+ }, "strip", z.ZodTypeAny, {
630
+ periodGoal: string | number;
631
+ period?: {
632
+ value?: number | undefined;
633
+ consecutive?: number | undefined;
634
+ } | undefined;
635
+ uniqueAttribute?: string | undefined;
636
+ }, {
637
+ periodGoal: string | number;
638
+ period?: {
639
+ value?: number | undefined;
640
+ consecutive?: number | undefined;
641
+ } | undefined;
642
+ uniqueAttribute?: string | undefined;
643
+ }>;
644
+ aggregation: z.ZodOptional<z.ZodObject<{
645
+ rule: z.ZodOptional<z.ZodString>;
646
+ }, "strip", z.ZodTypeAny, {
647
+ rule?: string | undefined;
648
+ }, {
649
+ rule?: string | undefined;
650
+ }>>;
651
+ conditions: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">>;
652
+ limit: z.ZodOptional<z.ZodObject<{
653
+ value: z.ZodOptional<z.ZodNumber>;
654
+ interval: z.ZodOptional<z.ZodObject<{
655
+ type: z.ZodString;
656
+ value: z.ZodOptional<z.ZodNumber>;
657
+ }, "strip", z.ZodTypeAny, {
658
+ type: string;
659
+ value?: number | undefined;
660
+ }, {
661
+ type: string;
662
+ value?: number | undefined;
663
+ }>>;
664
+ }, "strip", z.ZodTypeAny, {
665
+ value?: number | undefined;
666
+ interval?: {
667
+ type: string;
668
+ value?: number | undefined;
669
+ } | undefined;
670
+ }, {
671
+ value?: number | undefined;
672
+ interval?: {
673
+ type: string;
674
+ value?: number | undefined;
675
+ } | undefined;
676
+ }>>;
677
+ uniqueReferee: z.ZodOptional<z.ZodBoolean>;
678
+ }, "strip", z.ZodTypeAny, {
679
+ completeRule: {
680
+ periodGoal: string | number;
681
+ period?: {
682
+ value?: number | undefined;
683
+ consecutive?: number | undefined;
684
+ } | undefined;
685
+ uniqueAttribute?: string | undefined;
686
+ };
687
+ type?: string | undefined;
688
+ conditions?: Record<string, unknown>[] | undefined;
689
+ translations?: Record<string, {
690
+ name: string;
691
+ description?: string | undefined;
692
+ }> | undefined;
693
+ trigger?: string | undefined;
694
+ event?: string | undefined;
695
+ achievementRuleId?: string | undefined;
696
+ aggregation?: {
697
+ rule?: string | undefined;
698
+ } | undefined;
699
+ limit?: {
700
+ value?: number | undefined;
701
+ interval?: {
702
+ type: string;
703
+ value?: number | undefined;
704
+ } | undefined;
705
+ } | undefined;
706
+ uniqueReferee?: boolean | undefined;
707
+ }, {
708
+ completeRule: {
709
+ periodGoal: string | number;
710
+ period?: {
711
+ value?: number | undefined;
712
+ consecutive?: number | undefined;
713
+ } | undefined;
714
+ uniqueAttribute?: string | undefined;
715
+ };
716
+ type?: string | undefined;
717
+ conditions?: Record<string, unknown>[] | undefined;
718
+ translations?: Record<string, {
719
+ name: string;
720
+ description?: string | undefined;
721
+ }> | undefined;
722
+ trigger?: string | undefined;
723
+ event?: string | undefined;
724
+ achievementRuleId?: string | undefined;
725
+ aggregation?: {
726
+ rule?: string | undefined;
727
+ } | undefined;
728
+ limit?: {
729
+ value?: number | undefined;
730
+ interval?: {
731
+ type: string;
732
+ value?: number | undefined;
733
+ } | undefined;
734
+ } | undefined;
735
+ uniqueReferee?: boolean | undefined;
736
+ }>, "many">;
737
+ badgeTypeId: z.ZodOptional<z.ZodString>;
738
+ };
739
+ readonly handler: typeof achievementCreate;
740
+ }, {
741
+ readonly name: "openloyalty_achievement_get";
742
+ readonly description: "Get achievement details including all rules, conditions, activity period, limits, and completions count.";
743
+ readonly inputSchema: {
744
+ storeCode: z.ZodOptional<z.ZodString>;
745
+ achievementId: z.ZodString;
746
+ };
747
+ readonly handler: typeof achievementGet;
748
+ }, {
749
+ readonly name: "openloyalty_achievement_update";
750
+ readonly description: "Update achievement configuration. Requires full achievement object (translations, rules). Use achievement_get first to retrieve current configuration.";
751
+ readonly inputSchema: {
752
+ storeCode: z.ZodOptional<z.ZodString>;
753
+ achievementId: z.ZodString;
754
+ translations: z.ZodRecord<z.ZodString, z.ZodObject<{
755
+ name: z.ZodString;
756
+ description: z.ZodOptional<z.ZodString>;
757
+ }, "strip", z.ZodTypeAny, {
758
+ name: string;
759
+ description?: string | undefined;
760
+ }, {
761
+ name: string;
762
+ description?: string | undefined;
763
+ }>>;
764
+ active: z.ZodOptional<z.ZodBoolean>;
765
+ activity: z.ZodOptional<z.ZodObject<{
766
+ startsAt: z.ZodOptional<z.ZodString>;
767
+ endsAt: z.ZodOptional<z.ZodString>;
768
+ operator: z.ZodOptional<z.ZodString>;
769
+ }, "strip", z.ZodTypeAny, {
770
+ operator?: string | undefined;
771
+ startsAt?: string | undefined;
772
+ endsAt?: string | undefined;
773
+ }, {
774
+ operator?: string | undefined;
775
+ startsAt?: string | undefined;
776
+ endsAt?: string | undefined;
777
+ }>>;
778
+ limit: z.ZodOptional<z.ZodObject<{
779
+ value: z.ZodOptional<z.ZodNumber>;
780
+ interval: z.ZodOptional<z.ZodObject<{
781
+ type: z.ZodString;
782
+ value: z.ZodOptional<z.ZodNumber>;
783
+ }, "strip", z.ZodTypeAny, {
784
+ type: string;
785
+ value?: number | undefined;
786
+ }, {
787
+ type: string;
788
+ value?: number | undefined;
789
+ }>>;
790
+ }, "strip", z.ZodTypeAny, {
791
+ value?: number | undefined;
792
+ interval?: {
793
+ type: string;
794
+ value?: number | undefined;
795
+ } | undefined;
796
+ }, {
797
+ value?: number | undefined;
798
+ interval?: {
799
+ type: string;
800
+ value?: number | undefined;
801
+ } | undefined;
802
+ }>>;
803
+ rules: z.ZodArray<z.ZodObject<{
804
+ achievementRuleId: z.ZodOptional<z.ZodString>;
805
+ translations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
806
+ name: z.ZodString;
807
+ description: z.ZodOptional<z.ZodString>;
808
+ }, "strip", z.ZodTypeAny, {
809
+ name: string;
810
+ description?: string | undefined;
811
+ }, {
812
+ name: string;
813
+ description?: string | undefined;
814
+ }>>>;
815
+ trigger: z.ZodOptional<z.ZodString>;
816
+ type: z.ZodOptional<z.ZodString>;
817
+ event: z.ZodOptional<z.ZodString>;
818
+ completeRule: z.ZodObject<{
819
+ periodGoal: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
820
+ period: z.ZodOptional<z.ZodObject<{
821
+ consecutive: z.ZodOptional<z.ZodNumber>;
822
+ value: z.ZodOptional<z.ZodNumber>;
823
+ }, "strip", z.ZodTypeAny, {
824
+ value?: number | undefined;
825
+ consecutive?: number | undefined;
826
+ }, {
827
+ value?: number | undefined;
828
+ consecutive?: number | undefined;
829
+ }>>;
830
+ uniqueAttribute: z.ZodOptional<z.ZodString>;
831
+ }, "strip", z.ZodTypeAny, {
832
+ periodGoal: string | number;
833
+ period?: {
834
+ value?: number | undefined;
835
+ consecutive?: number | undefined;
836
+ } | undefined;
837
+ uniqueAttribute?: string | undefined;
838
+ }, {
839
+ periodGoal: string | number;
840
+ period?: {
841
+ value?: number | undefined;
842
+ consecutive?: number | undefined;
843
+ } | undefined;
844
+ uniqueAttribute?: string | undefined;
845
+ }>;
846
+ aggregation: z.ZodOptional<z.ZodObject<{
847
+ rule: z.ZodOptional<z.ZodString>;
848
+ }, "strip", z.ZodTypeAny, {
849
+ rule?: string | undefined;
850
+ }, {
851
+ rule?: string | undefined;
852
+ }>>;
853
+ conditions: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">>;
854
+ limit: z.ZodOptional<z.ZodObject<{
855
+ value: z.ZodOptional<z.ZodNumber>;
856
+ interval: z.ZodOptional<z.ZodObject<{
857
+ type: z.ZodString;
858
+ value: z.ZodOptional<z.ZodNumber>;
859
+ }, "strip", z.ZodTypeAny, {
860
+ type: string;
861
+ value?: number | undefined;
862
+ }, {
863
+ type: string;
864
+ value?: number | undefined;
865
+ }>>;
866
+ }, "strip", z.ZodTypeAny, {
867
+ value?: number | undefined;
868
+ interval?: {
869
+ type: string;
870
+ value?: number | undefined;
871
+ } | undefined;
872
+ }, {
873
+ value?: number | undefined;
874
+ interval?: {
875
+ type: string;
876
+ value?: number | undefined;
877
+ } | undefined;
878
+ }>>;
879
+ uniqueReferee: z.ZodOptional<z.ZodBoolean>;
880
+ }, "strip", z.ZodTypeAny, {
881
+ completeRule: {
882
+ periodGoal: string | number;
883
+ period?: {
884
+ value?: number | undefined;
885
+ consecutive?: number | undefined;
886
+ } | undefined;
887
+ uniqueAttribute?: string | undefined;
888
+ };
889
+ type?: string | undefined;
890
+ conditions?: Record<string, unknown>[] | undefined;
891
+ translations?: Record<string, {
892
+ name: string;
893
+ description?: string | undefined;
894
+ }> | undefined;
895
+ trigger?: string | undefined;
896
+ event?: string | undefined;
897
+ achievementRuleId?: string | undefined;
898
+ aggregation?: {
899
+ rule?: string | undefined;
900
+ } | undefined;
901
+ limit?: {
902
+ value?: number | undefined;
903
+ interval?: {
904
+ type: string;
905
+ value?: number | undefined;
906
+ } | undefined;
907
+ } | undefined;
908
+ uniqueReferee?: boolean | undefined;
909
+ }, {
910
+ completeRule: {
911
+ periodGoal: string | number;
912
+ period?: {
913
+ value?: number | undefined;
914
+ consecutive?: number | undefined;
915
+ } | undefined;
916
+ uniqueAttribute?: string | undefined;
917
+ };
918
+ type?: string | undefined;
919
+ conditions?: Record<string, unknown>[] | undefined;
920
+ translations?: Record<string, {
921
+ name: string;
922
+ description?: string | undefined;
923
+ }> | undefined;
924
+ trigger?: string | undefined;
925
+ event?: string | undefined;
926
+ achievementRuleId?: string | undefined;
927
+ aggregation?: {
928
+ rule?: string | undefined;
929
+ } | undefined;
930
+ limit?: {
931
+ value?: number | undefined;
932
+ interval?: {
933
+ type: string;
934
+ value?: number | undefined;
935
+ } | undefined;
936
+ } | undefined;
937
+ uniqueReferee?: boolean | undefined;
938
+ }>, "many">;
939
+ badgeTypeId: z.ZodOptional<z.ZodString>;
940
+ };
941
+ readonly handler: typeof achievementUpdate;
942
+ }, {
943
+ readonly name: "openloyalty_achievement_patch";
944
+ readonly description: "Partial update of achievement. Use for simple changes like activating/deactivating or updating translations without providing full rules.";
945
+ readonly inputSchema: {
946
+ storeCode: z.ZodOptional<z.ZodString>;
947
+ achievementId: z.ZodString;
948
+ active: z.ZodOptional<z.ZodBoolean>;
949
+ translations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
950
+ name: z.ZodOptional<z.ZodString>;
951
+ description: z.ZodOptional<z.ZodString>;
952
+ }, "strip", z.ZodTypeAny, {
953
+ name?: string | undefined;
954
+ description?: string | undefined;
955
+ }, {
956
+ name?: string | undefined;
957
+ description?: string | undefined;
958
+ }>>>;
959
+ };
960
+ readonly handler: typeof achievementPatch;
961
+ }, {
962
+ readonly name: "openloyalty_achievement_get_member_progress";
963
+ readonly description: "Get member's progress on a specific achievement. Returns completedCount, and for each rule: periodGoal, currentPeriodValue, and consecutive period tracking.";
964
+ readonly inputSchema: {
965
+ storeCode: z.ZodOptional<z.ZodString>;
966
+ memberId: z.ZodString;
967
+ achievementId: z.ZodString;
968
+ };
969
+ readonly handler: typeof achievementGetMemberProgress;
970
+ }, {
971
+ readonly name: "openloyalty_achievement_list_member_achievements";
972
+ readonly description: "List all achievements with member's progress. Returns each achievement's status, completion count, and per-rule progress. Use for displaying gamification dashboard.";
973
+ readonly inputSchema: {
974
+ storeCode: z.ZodOptional<z.ZodString>;
975
+ memberId: z.ZodString;
976
+ page: z.ZodOptional<z.ZodNumber>;
977
+ perPage: z.ZodOptional<z.ZodNumber>;
978
+ name: z.ZodOptional<z.ZodString>;
979
+ achievementId: z.ZodOptional<z.ZodString>;
980
+ };
981
+ readonly handler: typeof achievementListMemberAchievements;
982
+ }];
983
+ export {};