pay-lobster 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 (120) hide show
  1. package/README.md +401 -0
  2. package/README.md.bak +401 -0
  3. package/dist/agent.d.ts +132 -0
  4. package/dist/agent.d.ts.map +1 -0
  5. package/dist/agent.js +224 -0
  6. package/dist/agent.js.map +1 -0
  7. package/dist/analytics.d.ts +120 -0
  8. package/dist/analytics.d.ts.map +1 -0
  9. package/dist/analytics.js +345 -0
  10. package/dist/analytics.js.map +1 -0
  11. package/dist/approvals.d.ts +168 -0
  12. package/dist/approvals.d.ts.map +1 -0
  13. package/dist/approvals.js +406 -0
  14. package/dist/approvals.js.map +1 -0
  15. package/dist/circle-client.d.ts +152 -0
  16. package/dist/circle-client.d.ts.map +1 -0
  17. package/dist/circle-client.js +266 -0
  18. package/dist/circle-client.js.map +1 -0
  19. package/dist/commission.d.ts +191 -0
  20. package/dist/commission.d.ts.map +1 -0
  21. package/dist/commission.js +475 -0
  22. package/dist/commission.js.map +1 -0
  23. package/dist/condition-builder.d.ts +98 -0
  24. package/dist/condition-builder.d.ts.map +1 -0
  25. package/dist/condition-builder.js +193 -0
  26. package/dist/condition-builder.js.map +1 -0
  27. package/dist/contacts.d.ts +179 -0
  28. package/dist/contacts.d.ts.map +1 -0
  29. package/dist/contacts.js +445 -0
  30. package/dist/contacts.js.map +1 -0
  31. package/dist/easy.d.ts +22 -0
  32. package/dist/easy.d.ts.map +1 -0
  33. package/dist/easy.js +40 -0
  34. package/dist/easy.js.map +1 -0
  35. package/dist/erc8004/constants.d.ts +152 -0
  36. package/dist/erc8004/constants.d.ts.map +1 -0
  37. package/dist/erc8004/constants.js +114 -0
  38. package/dist/erc8004/constants.js.map +1 -0
  39. package/dist/erc8004/discovery.d.ts +84 -0
  40. package/dist/erc8004/discovery.d.ts.map +1 -0
  41. package/dist/erc8004/discovery.js +217 -0
  42. package/dist/erc8004/discovery.js.map +1 -0
  43. package/dist/erc8004/identity.d.ts +91 -0
  44. package/dist/erc8004/identity.d.ts.map +1 -0
  45. package/dist/erc8004/identity.js +250 -0
  46. package/dist/erc8004/identity.js.map +1 -0
  47. package/dist/erc8004/index.d.ts +147 -0
  48. package/dist/erc8004/index.d.ts.map +1 -0
  49. package/dist/erc8004/index.js +225 -0
  50. package/dist/erc8004/index.js.map +1 -0
  51. package/dist/erc8004/reputation.d.ts +133 -0
  52. package/dist/erc8004/reputation.d.ts.map +1 -0
  53. package/dist/erc8004/reputation.js +277 -0
  54. package/dist/erc8004/reputation.js.map +1 -0
  55. package/dist/escrow-templates.d.ts +38 -0
  56. package/dist/escrow-templates.d.ts.map +1 -0
  57. package/dist/escrow-templates.js +419 -0
  58. package/dist/escrow-templates.js.map +1 -0
  59. package/dist/escrow.d.ts +320 -0
  60. package/dist/escrow.d.ts.map +1 -0
  61. package/dist/escrow.js +854 -0
  62. package/dist/escrow.js.map +1 -0
  63. package/dist/index.d.ts +11 -0
  64. package/dist/index.d.ts.map +1 -0
  65. package/dist/index.js +33 -0
  66. package/dist/index.js.map +1 -0
  67. package/dist/invoices.d.ts +212 -0
  68. package/dist/invoices.d.ts.map +1 -0
  69. package/dist/invoices.js +393 -0
  70. package/dist/invoices.js.map +1 -0
  71. package/dist/notifications.d.ts +141 -0
  72. package/dist/notifications.d.ts.map +1 -0
  73. package/dist/notifications.js +350 -0
  74. package/dist/notifications.js.map +1 -0
  75. package/dist/tips.d.ts +171 -0
  76. package/dist/tips.d.ts.map +1 -0
  77. package/dist/tips.js +390 -0
  78. package/dist/tips.js.map +1 -0
  79. package/dist/types.d.ts +100 -0
  80. package/dist/types.d.ts.map +1 -0
  81. package/dist/types.js +6 -0
  82. package/dist/types.js.map +1 -0
  83. package/dist/x402-client.d.ts +127 -0
  84. package/dist/x402-client.d.ts.map +1 -0
  85. package/dist/x402-client.js +350 -0
  86. package/dist/x402-client.js.map +1 -0
  87. package/dist/x402-server.d.ts +133 -0
  88. package/dist/x402-server.d.ts.map +1 -0
  89. package/dist/x402-server.js +330 -0
  90. package/dist/x402-server.js.map +1 -0
  91. package/lib/agent.ts +273 -0
  92. package/lib/analytics.ts +474 -0
  93. package/lib/analytics.ts.bak +474 -0
  94. package/lib/approvals.ts +585 -0
  95. package/lib/approvals.ts.bak +585 -0
  96. package/lib/circle-client.ts +376 -0
  97. package/lib/circle-client.ts.bak +376 -0
  98. package/lib/commission.ts +680 -0
  99. package/lib/commission.ts.bak +680 -0
  100. package/lib/condition-builder.ts +223 -0
  101. package/lib/condition-builder.ts.bak +223 -0
  102. package/lib/contacts.ts +615 -0
  103. package/lib/contacts.ts.bak +615 -0
  104. package/lib/easy.ts +46 -0
  105. package/lib/easy.ts.bak +352 -0
  106. package/lib/erc8004/constants.ts +175 -0
  107. package/lib/erc8004/discovery.ts +299 -0
  108. package/lib/erc8004/identity.ts +327 -0
  109. package/lib/erc8004/index.ts +285 -0
  110. package/lib/erc8004/reputation.ts +368 -0
  111. package/lib/escrow-templates.ts +462 -0
  112. package/lib/escrow.ts +1216 -0
  113. package/lib/index.ts +13 -0
  114. package/lib/invoices.ts +588 -0
  115. package/lib/notifications.ts +484 -0
  116. package/lib/tips.ts +570 -0
  117. package/lib/types.ts +108 -0
  118. package/lib/x402-client.ts +471 -0
  119. package/lib/x402-server.ts +462 -0
  120. package/package.json +58 -0
@@ -0,0 +1,350 @@
1
+ "use strict";
2
+ /**
3
+ * Payment Notifications & Webhooks
4
+ *
5
+ * Real-time notifications for USDC transactions and events.
6
+ */
7
+ var __importDefault = (this && this.__importDefault) || function (mod) {
8
+ return (mod && mod.__esModule) ? mod : { "default": mod };
9
+ };
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.NotificationManager = void 0;
12
+ const crypto_1 = __importDefault(require("crypto"));
13
+ const promises_1 = __importDefault(require("fs/promises"));
14
+ const path_1 = __importDefault(require("path"));
15
+ const DATA_DIR = process.env.USDC_DATA_DIR || './data';
16
+ /**
17
+ * Notification Manager
18
+ */
19
+ class NotificationManager {
20
+ constructor(dataDir = DATA_DIR) {
21
+ this.configPath = path_1.default.join(dataDir, 'notification-configs.json');
22
+ this.historyPath = path_1.default.join(dataDir, 'notification-history.json');
23
+ }
24
+ async loadConfigs() {
25
+ try {
26
+ const data = await promises_1.default.readFile(this.configPath, 'utf-8');
27
+ return JSON.parse(data);
28
+ }
29
+ catch {
30
+ return [];
31
+ }
32
+ }
33
+ async saveConfigs(configs) {
34
+ await promises_1.default.mkdir(path_1.default.dirname(this.configPath), { recursive: true });
35
+ await promises_1.default.writeFile(this.configPath, JSON.stringify(configs, null, 2));
36
+ }
37
+ async loadHistory() {
38
+ try {
39
+ const data = await promises_1.default.readFile(this.historyPath, 'utf-8');
40
+ return JSON.parse(data);
41
+ }
42
+ catch {
43
+ return [];
44
+ }
45
+ }
46
+ async saveHistory(history) {
47
+ await promises_1.default.mkdir(path_1.default.dirname(this.historyPath), { recursive: true });
48
+ // Keep last 1000 notifications
49
+ const trimmed = history.slice(-1000);
50
+ await promises_1.default.writeFile(this.historyPath, JSON.stringify(trimmed, null, 2));
51
+ }
52
+ // ============ Configuration Management ============
53
+ /**
54
+ * Create notification configuration
55
+ */
56
+ async createConfig(params) {
57
+ const configs = await this.loadConfigs();
58
+ const config = {
59
+ id: crypto_1.default.randomUUID(),
60
+ name: params.name,
61
+ enabled: true,
62
+ triggers: params.triggers,
63
+ channels: params.channels,
64
+ cooldownMs: params.cooldownMs,
65
+ createdAt: new Date().toISOString(),
66
+ updatedAt: new Date().toISOString(),
67
+ };
68
+ configs.push(config);
69
+ await this.saveConfigs(configs);
70
+ return config;
71
+ }
72
+ /**
73
+ * Enable/disable notification config
74
+ */
75
+ async toggleConfig(id, enabled) {
76
+ const configs = await this.loadConfigs();
77
+ const config = configs.find(c => c.id === id);
78
+ if (config) {
79
+ config.enabled = enabled;
80
+ config.updatedAt = new Date().toISOString();
81
+ await this.saveConfigs(configs);
82
+ }
83
+ return config || null;
84
+ }
85
+ /**
86
+ * List notification configs
87
+ */
88
+ async listConfigs() {
89
+ return this.loadConfigs();
90
+ }
91
+ /**
92
+ * Delete notification config
93
+ */
94
+ async deleteConfig(id) {
95
+ const configs = await this.loadConfigs();
96
+ const index = configs.findIndex(c => c.id === id);
97
+ if (index >= 0) {
98
+ configs.splice(index, 1);
99
+ await this.saveConfigs(configs);
100
+ return true;
101
+ }
102
+ return false;
103
+ }
104
+ // ============ Notification Triggering ============
105
+ /**
106
+ * Process a transaction and trigger matching notifications
107
+ */
108
+ async processTransaction(tx) {
109
+ const configs = await this.loadConfigs();
110
+ const triggeredNotifications = [];
111
+ const now = new Date();
112
+ for (const config of configs) {
113
+ if (!config.enabled)
114
+ continue;
115
+ // Check cooldown
116
+ if (config.cooldownMs && config.lastTriggeredAt) {
117
+ const timeSince = now.getTime() - new Date(config.lastTriggeredAt).getTime();
118
+ if (timeSince < config.cooldownMs)
119
+ continue;
120
+ }
121
+ // Check triggers
122
+ const matchingTrigger = config.triggers.find(trigger => {
123
+ if (trigger.type !== tx.type)
124
+ return false;
125
+ if (trigger.minAmount && parseFloat(tx.amount) < parseFloat(trigger.minAmount)) {
126
+ return false;
127
+ }
128
+ if (trigger.addresses && trigger.addresses.length > 0) {
129
+ const relevantAddr = tx.type === 'incoming' ? tx.fromAddress : tx.toAddress;
130
+ if (!trigger.addresses.some(a => a.toLowerCase() === relevantAddr.toLowerCase())) {
131
+ return false;
132
+ }
133
+ }
134
+ if (trigger.chains && trigger.chains.length > 0) {
135
+ if (!trigger.chains.includes(tx.chain))
136
+ return false;
137
+ }
138
+ return true;
139
+ });
140
+ if (!matchingTrigger)
141
+ continue;
142
+ // Create notification
143
+ const notification = await this.createNotification({
144
+ configId: config.id,
145
+ type: tx.type === 'incoming' ? 'payment_received' : 'payment_sent',
146
+ title: tx.type === 'incoming'
147
+ ? `Received ${tx.amount} USDC`
148
+ : `Sent ${tx.amount} USDC`,
149
+ message: tx.type === 'incoming'
150
+ ? `You received ${tx.amount} USDC from ${this.shortAddress(tx.fromAddress)} on ${tx.chain}`
151
+ : `You sent ${tx.amount} USDC to ${this.shortAddress(tx.toAddress)} on ${tx.chain}`,
152
+ data: tx,
153
+ channels: config.channels,
154
+ });
155
+ triggeredNotifications.push(notification);
156
+ // Update last triggered
157
+ config.lastTriggeredAt = now.toISOString();
158
+ }
159
+ await this.saveConfigs(configs);
160
+ return triggeredNotifications;
161
+ }
162
+ /**
163
+ * Create and deliver a notification
164
+ */
165
+ async createNotification(params) {
166
+ const notification = {
167
+ id: crypto_1.default.randomUUID(),
168
+ configId: params.configId,
169
+ type: params.type,
170
+ title: params.title,
171
+ message: params.message,
172
+ data: params.data,
173
+ deliveries: params.channels.map(ch => ({
174
+ channel: ch.type,
175
+ status: 'pending',
176
+ })),
177
+ createdAt: new Date().toISOString(),
178
+ };
179
+ // Attempt delivery to each channel
180
+ for (let i = 0; i < params.channels.length; i++) {
181
+ const channel = params.channels[i];
182
+ try {
183
+ await this.deliver(channel, notification);
184
+ notification.deliveries[i].status = 'sent';
185
+ notification.deliveries[i].sentAt = new Date().toISOString();
186
+ }
187
+ catch (err) {
188
+ notification.deliveries[i].status = 'failed';
189
+ notification.deliveries[i].error = err.message;
190
+ }
191
+ }
192
+ // Save to history
193
+ const history = await this.loadHistory();
194
+ history.push(notification);
195
+ await this.saveHistory(history);
196
+ return notification;
197
+ }
198
+ /**
199
+ * Deliver notification to a channel
200
+ */
201
+ async deliver(channel, notification) {
202
+ switch (channel.type) {
203
+ case 'webhook':
204
+ await this.deliverWebhook(channel.config, notification);
205
+ break;
206
+ case 'telegram':
207
+ await this.deliverTelegram(channel.config, notification);
208
+ break;
209
+ case 'clawdbot':
210
+ await this.deliverClawdbot(channel.config, notification);
211
+ break;
212
+ case 'email':
213
+ // Email delivery would require SMTP config
214
+ console.log('Email delivery not implemented');
215
+ break;
216
+ default:
217
+ throw new Error(`Unknown channel type: ${channel.type}`);
218
+ }
219
+ }
220
+ /**
221
+ * Deliver via webhook
222
+ */
223
+ async deliverWebhook(config, notification) {
224
+ if (!config.url) {
225
+ throw new Error('Webhook URL not configured');
226
+ }
227
+ const payload = {
228
+ id: notification.id,
229
+ type: notification.type,
230
+ title: notification.title,
231
+ message: notification.message,
232
+ data: notification.data,
233
+ timestamp: notification.createdAt,
234
+ };
235
+ const headers = {
236
+ 'Content-Type': 'application/json',
237
+ };
238
+ // Add optional secret for verification
239
+ if (config.secret) {
240
+ const signature = crypto_1.default
241
+ .createHmac('sha256', config.secret)
242
+ .update(JSON.stringify(payload))
243
+ .digest('hex');
244
+ headers['X-Signature'] = signature;
245
+ }
246
+ const response = await fetch(config.url, {
247
+ method: 'POST',
248
+ headers,
249
+ body: JSON.stringify(payload),
250
+ });
251
+ if (!response.ok) {
252
+ throw new Error(`Webhook failed: ${response.status}`);
253
+ }
254
+ }
255
+ /**
256
+ * Deliver via Telegram (would integrate with Clawdbot's messaging)
257
+ */
258
+ async deliverTelegram(config, notification) {
259
+ // This would use Clawdbot's message tool
260
+ console.log(`[Telegram] ${notification.title}: ${notification.message}`);
261
+ // In practice, this would call the message API
262
+ }
263
+ /**
264
+ * Deliver via Clawdbot session message
265
+ */
266
+ async deliverClawdbot(config, notification) {
267
+ // This would use sessions_send
268
+ console.log(`[Clawdbot] ${notification.title}: ${notification.message}`);
269
+ // In practice, this would call sessions_send
270
+ }
271
+ // ============ History & Management ============
272
+ /**
273
+ * Get notification history
274
+ */
275
+ async getHistory(options) {
276
+ let history = await this.loadHistory();
277
+ if (options?.type) {
278
+ history = history.filter(n => n.type === options.type);
279
+ }
280
+ if (options?.unreadOnly) {
281
+ history = history.filter(n => !n.readAt);
282
+ }
283
+ history.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime());
284
+ if (options?.limit) {
285
+ history = history.slice(0, options.limit);
286
+ }
287
+ return history;
288
+ }
289
+ /**
290
+ * Mark notification as read
291
+ */
292
+ async markRead(id) {
293
+ const history = await this.loadHistory();
294
+ const notification = history.find(n => n.id === id);
295
+ if (notification) {
296
+ notification.readAt = new Date().toISOString();
297
+ await this.saveHistory(history);
298
+ }
299
+ }
300
+ /**
301
+ * Mark all as read
302
+ */
303
+ async markAllRead() {
304
+ const history = await this.loadHistory();
305
+ const now = new Date().toISOString();
306
+ for (const notification of history) {
307
+ if (!notification.readAt) {
308
+ notification.readAt = now;
309
+ }
310
+ }
311
+ await this.saveHistory(history);
312
+ }
313
+ /**
314
+ * Get unread count
315
+ */
316
+ async getUnreadCount() {
317
+ const history = await this.loadHistory();
318
+ return history.filter(n => !n.readAt).length;
319
+ }
320
+ // ============ Helpers ============
321
+ /**
322
+ * Shorten address for display
323
+ */
324
+ shortAddress(address) {
325
+ return `${address.slice(0, 6)}...${address.slice(-4)}`;
326
+ }
327
+ /**
328
+ * Create default notification configs for a new user
329
+ */
330
+ async createDefaultConfigs() {
331
+ const configs = [];
332
+ // Incoming payments
333
+ configs.push(await this.createConfig({
334
+ name: 'All Incoming Payments',
335
+ triggers: [{ type: 'incoming' }],
336
+ channels: [{ type: 'clawdbot', config: {} }],
337
+ }));
338
+ // Large outgoing (security alert)
339
+ configs.push(await this.createConfig({
340
+ name: 'Large Outgoing (>1000 USDC)',
341
+ triggers: [{ type: 'outgoing', minAmount: '1000' }],
342
+ channels: [{ type: 'clawdbot', config: {} }],
343
+ cooldownMs: 60000, // 1 min cooldown
344
+ }));
345
+ return configs;
346
+ }
347
+ }
348
+ exports.NotificationManager = NotificationManager;
349
+ exports.default = NotificationManager;
350
+ //# sourceMappingURL=notifications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../lib/notifications.ts"],"names":[],"mappings":"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"}
package/dist/tips.d.ts ADDED
@@ -0,0 +1,171 @@
1
+ /**
2
+ * Tip Jar / Creator Economy Module
3
+ *
4
+ * Enable Clawdbot operators and agents to receive USDC tips
5
+ * via simple commands. Built for the creator economy.
6
+ */
7
+ export interface TipJar {
8
+ id: string;
9
+ name: string;
10
+ description?: string;
11
+ ownerId: string;
12
+ ownerName: string;
13
+ addresses: {
14
+ chain: string;
15
+ address: string;
16
+ isDefault: boolean;
17
+ }[];
18
+ settings: {
19
+ minTip: string;
20
+ suggestedAmounts: string[];
21
+ thankYouMessage?: string;
22
+ allowAnonymous: boolean;
23
+ notifyOnTip: boolean;
24
+ };
25
+ stats: {
26
+ totalReceived: string;
27
+ tipCount: number;
28
+ uniqueTippers: number;
29
+ largestTip: string;
30
+ lastTipAt?: string;
31
+ };
32
+ publicSlug?: string;
33
+ createdAt: string;
34
+ updatedAt: string;
35
+ }
36
+ export interface Tip {
37
+ id: string;
38
+ tipJarId: string;
39
+ fromAddress: string;
40
+ fromName?: string;
41
+ isAnonymous: boolean;
42
+ amount: string;
43
+ chain: string;
44
+ txHash: string;
45
+ message?: string;
46
+ status: 'pending' | 'confirmed' | 'failed';
47
+ confirmedAt?: string;
48
+ createdAt: string;
49
+ }
50
+ export interface Leaderboard {
51
+ tipJarId: string;
52
+ period: 'all-time' | 'monthly' | 'weekly';
53
+ entries: {
54
+ rank: number;
55
+ name: string;
56
+ address: string;
57
+ totalTipped: string;
58
+ tipCount: number;
59
+ }[];
60
+ generatedAt: string;
61
+ }
62
+ /**
63
+ * Tip Jar Manager
64
+ */
65
+ export declare class TipJarManager {
66
+ private jarsPath;
67
+ private tipsPath;
68
+ constructor(dataDir?: string);
69
+ private loadJars;
70
+ private saveJars;
71
+ private loadTips;
72
+ private saveTips;
73
+ /**
74
+ * Create a new tip jar
75
+ */
76
+ createJar(params: {
77
+ ownerId: string;
78
+ ownerName: string;
79
+ name?: string;
80
+ description?: string;
81
+ addresses: {
82
+ chain: string;
83
+ address: string;
84
+ }[];
85
+ publicSlug?: string;
86
+ settings?: Partial<TipJar['settings']>;
87
+ }): Promise<TipJar>;
88
+ /**
89
+ * Get tip jar by ID, slug, or owner
90
+ */
91
+ getJar(identifier: string): Promise<TipJar | null>;
92
+ /**
93
+ * Update tip jar settings
94
+ */
95
+ updateJar(id: string, updates: Partial<Pick<TipJar, 'name' | 'description' | 'settings' | 'publicSlug'>>): Promise<TipJar | null>;
96
+ /**
97
+ * Add address to tip jar
98
+ */
99
+ addAddress(jarId: string, chain: string, address: string): Promise<TipJar | null>;
100
+ /**
101
+ * Set default address
102
+ */
103
+ setDefaultAddress(jarId: string, chain: string): Promise<TipJar | null>;
104
+ /**
105
+ * Record a tip
106
+ */
107
+ recordTip(params: {
108
+ tipJarId: string;
109
+ fromAddress: string;
110
+ fromName?: string;
111
+ isAnonymous?: boolean;
112
+ amount: string;
113
+ chain: string;
114
+ txHash: string;
115
+ message?: string;
116
+ }): Promise<Tip>;
117
+ /**
118
+ * Get tips for a jar
119
+ */
120
+ getTips(jarId: string, options?: {
121
+ limit?: number;
122
+ includeAnonymous?: boolean;
123
+ }): Promise<Tip[]>;
124
+ /**
125
+ * Get recent tips across all jars (for activity feed)
126
+ */
127
+ getRecentTips(limit?: number): Promise<(Tip & {
128
+ jarName: string;
129
+ })[]>;
130
+ /**
131
+ * Generate leaderboard for a tip jar
132
+ */
133
+ getLeaderboard(jarId: string, period?: Leaderboard['period']): Promise<Leaderboard>;
134
+ /**
135
+ * Parse tip command and return tip info
136
+ * Supports: "tip @gustav 10", "tip 5 to gustav", etc.
137
+ */
138
+ parseTipCommand(command: string): {
139
+ recipient: string;
140
+ amount: string;
141
+ message?: string;
142
+ } | null;
143
+ /**
144
+ * Generate tip jar card/embed for display
145
+ */
146
+ formatTipJarCard(jar: TipJar): string;
147
+ /**
148
+ * Format tip notification
149
+ */
150
+ formatTipNotification(tip: Tip, jar: TipJar): string;
151
+ private shortAddress;
152
+ /**
153
+ * Send tip from one agent to another
154
+ * Returns the transaction to be executed
155
+ */
156
+ prepareAgentTip(params: {
157
+ fromAgentId: string;
158
+ fromWalletId: string;
159
+ toAgentId: string;
160
+ amount: string;
161
+ message?: string;
162
+ }): Promise<{
163
+ toJar: TipJar;
164
+ toAddress: string;
165
+ chain: string;
166
+ amount: string;
167
+ message?: string;
168
+ } | null>;
169
+ }
170
+ export default TipJarManager;
171
+ //# sourceMappingURL=tips.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tips.d.ts","sourceRoot":"","sources":["../lib/tips.ts"],"names":[],"mappings":"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"}