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,320 @@
1
+ /**
2
+ * Universal Escrow Module (Escrow as a Service - EaaS)
3
+ *
4
+ * Smart contract-style escrow for multiple verticals:
5
+ * - Real estate (earnest money, security deposits, closing)
6
+ * - Freelance/Services (milestones, deliverables)
7
+ * - Commerce (purchases, trades, swaps)
8
+ * - P2P (OTC trades, loans)
9
+ * - Digital (licenses, subscriptions, content)
10
+ * - Custom (user-defined)
11
+ */
12
+ import type { BuiltCondition } from './condition-builder';
13
+ export type EscrowType = 'earnest_money' | 'security_deposit' | 'closing_funds' | 'milestone' | 'freelance' | 'purchase' | 'trade' | 'general';
14
+ export type EscrowStatus = 'created' | 'funded' | 'pending_release' | 'released' | 'refunded' | 'disputed' | 'cancelled';
15
+ /**
16
+ * Standard roles across verticals
17
+ */
18
+ export type StandardRole = 'depositor' | 'recipient' | 'buyer' | 'seller' | 'client' | 'provider' | 'landlord' | 'tenant' | 'agent' | 'title_company' | 'arbiter' | 'witness' | 'lender' | 'borrower' | 'party_a' | 'party_b' | 'marketplace' | 'platform' | 'consultant' | 'contractor' | 'inspector' | 'vendor' | 'subscriber' | 'creator';
19
+ export interface EscrowParty {
20
+ role: StandardRole | string;
21
+ name: string;
22
+ email?: string;
23
+ phone?: string;
24
+ walletAddress?: string;
25
+ sessionId?: string;
26
+ }
27
+ export interface EscrowCondition {
28
+ id: string;
29
+ description: string;
30
+ type: 'inspection' | 'financing' | 'appraisal' | 'title' | 'closing' | 'move_out' | 'milestone' | 'delivery' | 'approval' | 'revision' | 'shipping' | 'receipt' | 'verification' | 'document' | 'deadline' | 'custom';
31
+ status: 'pending' | 'satisfied' | 'waived' | 'failed';
32
+ deadline?: string;
33
+ satisfiedAt?: string;
34
+ satisfiedBy?: string;
35
+ evidence?: string;
36
+ releaseAmount?: string;
37
+ releasePercentage?: string;
38
+ metadata?: Record<string, any>;
39
+ }
40
+ export interface Escrow {
41
+ id: string;
42
+ type: EscrowType;
43
+ status: EscrowStatus;
44
+ property?: {
45
+ address: string;
46
+ city: string;
47
+ state: string;
48
+ zip: string;
49
+ mlsNumber?: string;
50
+ };
51
+ parties: EscrowParty[];
52
+ amount: string;
53
+ chain: string;
54
+ escrowAddress: string;
55
+ fundingTxHash?: string;
56
+ fundedAt?: string;
57
+ conditions: EscrowCondition[];
58
+ releaseRequires: 'all_conditions' | 'majority_approval' | 'any_party';
59
+ approvals: {
60
+ partyRole: string;
61
+ approved: boolean;
62
+ timestamp: string;
63
+ note?: string;
64
+ }[];
65
+ requiredApprovals: string[];
66
+ releaseTo?: string;
67
+ releaseToRole?: string;
68
+ releaseTxHash?: string;
69
+ releasedAt?: string;
70
+ dispute?: {
71
+ raisedBy: string;
72
+ reason: string;
73
+ raisedAt: string;
74
+ resolution?: string;
75
+ resolvedAt?: string;
76
+ };
77
+ fundingDeadline?: string;
78
+ closingDate?: string;
79
+ leaseEndDate?: string;
80
+ notes?: string;
81
+ documents: {
82
+ name: string;
83
+ url: string;
84
+ uploadedAt: string;
85
+ }[];
86
+ createdAt: string;
87
+ updatedAt: string;
88
+ }
89
+ /**
90
+ * Escrow Manager
91
+ */
92
+ export declare class EscrowManager {
93
+ private dataPath;
94
+ constructor(dataDir?: string);
95
+ private loadEscrows;
96
+ private saveEscrows;
97
+ /**
98
+ * Create earnest money escrow
99
+ */
100
+ createEarnestMoney(params: {
101
+ property: Escrow['property'];
102
+ amount: string;
103
+ chain: string;
104
+ buyer: Omit<EscrowParty, 'role'>;
105
+ seller: Omit<EscrowParty, 'role'>;
106
+ agent?: Omit<EscrowParty, 'role'>;
107
+ closingDate?: string;
108
+ conditions?: Omit<EscrowCondition, 'id' | 'status'>[];
109
+ }): Promise<Escrow>;
110
+ /**
111
+ * Create rental security deposit escrow
112
+ */
113
+ createSecurityDeposit(params: {
114
+ property: Escrow['property'];
115
+ amount: string;
116
+ chain: string;
117
+ landlord: Omit<EscrowParty, 'role'>;
118
+ tenant: Omit<EscrowParty, 'role'>;
119
+ leaseEndDate: string;
120
+ }): Promise<Escrow>;
121
+ /**
122
+ * Create general escrow
123
+ */
124
+ createGeneral(params: {
125
+ amount: string;
126
+ chain: string;
127
+ depositor: Omit<EscrowParty, 'role'>;
128
+ recipient: Omit<EscrowParty, 'role'>;
129
+ conditions?: Omit<EscrowCondition, 'id' | 'status'>[];
130
+ description?: string;
131
+ }): Promise<Escrow>;
132
+ /**
133
+ * Create milestone escrow for freelance/service work
134
+ */
135
+ createMilestone(params: {
136
+ amount: string;
137
+ chain: string;
138
+ client: Omit<EscrowParty, 'role'>;
139
+ freelancer: Omit<EscrowParty, 'role'>;
140
+ projectName: string;
141
+ milestones: {
142
+ description: string;
143
+ amount?: string;
144
+ percentage?: string;
145
+ deadline?: string;
146
+ }[];
147
+ }): Promise<Escrow>;
148
+ /**
149
+ * Create purchase escrow (buyer/seller goods transaction)
150
+ */
151
+ createPurchase(params: {
152
+ amount: string;
153
+ chain: string;
154
+ buyer: Omit<EscrowParty, 'role'>;
155
+ seller: Omit<EscrowParty, 'role'>;
156
+ itemDescription: string;
157
+ requiresShipping?: boolean;
158
+ inspectionPeriodDays?: number;
159
+ }): Promise<Escrow>;
160
+ /**
161
+ * Release partial amount (for milestone escrows)
162
+ */
163
+ releasePartial(escrowId: string, conditionId: string, toAddress: string, txHash: string): Promise<Escrow | null>;
164
+ /**
165
+ * Get escrow by ID
166
+ */
167
+ get(id: string): Promise<Escrow | null>;
168
+ /**
169
+ * List escrows with filters
170
+ */
171
+ list(filters?: {
172
+ type?: EscrowType;
173
+ status?: EscrowStatus;
174
+ partyAddress?: string;
175
+ propertyAddress?: string;
176
+ }): Promise<Escrow[]>;
177
+ /**
178
+ * Mark escrow as funded
179
+ */
180
+ markFunded(id: string, txHash: string): Promise<Escrow | null>;
181
+ /**
182
+ * Satisfy a condition
183
+ */
184
+ satisfyCondition(escrowId: string, conditionId: string, satisfiedBy: string, evidence?: string): Promise<Escrow | null>;
185
+ /**
186
+ * Waive a condition
187
+ */
188
+ waiveCondition(escrowId: string, conditionId: string, waivedBy: string): Promise<Escrow | null>;
189
+ /**
190
+ * Fail a condition (triggers refund flow)
191
+ */
192
+ failCondition(escrowId: string, conditionId: string, reason: string): Promise<Escrow | null>;
193
+ /**
194
+ * Submit approval for release
195
+ */
196
+ approve(escrowId: string, partyRole: string, note?: string): Promise<Escrow | null>;
197
+ /**
198
+ * Execute release
199
+ */
200
+ release(escrowId: string, toAddress: string, txHash: string): Promise<Escrow | null>;
201
+ /**
202
+ * Execute refund
203
+ */
204
+ refund(escrowId: string, txHash: string): Promise<Escrow | null>;
205
+ /**
206
+ * Raise dispute
207
+ */
208
+ raiseDispute(escrowId: string, raisedBy: string, reason: string): Promise<Escrow | null>;
209
+ /**
210
+ * Cancel escrow (before funding)
211
+ */
212
+ cancel(escrowId: string): Promise<Escrow | null>;
213
+ /**
214
+ * Add document to escrow
215
+ */
216
+ addDocument(escrowId: string, name: string, url: string): Promise<Escrow | null>;
217
+ /**
218
+ * Create escrow from template
219
+ *
220
+ * @example
221
+ * await escrowManager.create({
222
+ * template: 'project_milestone',
223
+ * amount: '1000',
224
+ * chain: 'polygon',
225
+ * parties: [
226
+ * { role: 'client', name: 'Alice' },
227
+ * { role: 'provider', name: 'Bob' }
228
+ * ]
229
+ * })
230
+ */
231
+ create(params: {
232
+ template: string;
233
+ amount: string;
234
+ chain: string;
235
+ parties: Omit<EscrowParty, 'role'> & {
236
+ role: string;
237
+ }[];
238
+ customConditions?: Omit<EscrowCondition, 'id' | 'status'>[];
239
+ metadata?: Record<string, any>;
240
+ autoReleaseDays?: number;
241
+ }): Promise<Escrow>;
242
+ /**
243
+ * Create custom escrow with builder conditions
244
+ *
245
+ * @example
246
+ * import { ConditionBuilder } from './condition-builder';
247
+ *
248
+ * await escrowManager.createCustom({
249
+ * amount: '5000',
250
+ * chain: 'ethereum',
251
+ * parties: [
252
+ * { role: 'buyer', name: 'Alice' },
253
+ * { role: 'seller', name: 'Bob' }
254
+ * ],
255
+ * conditions: [
256
+ * ConditionBuilder.milestone('Phase 1', 30),
257
+ * ConditionBuilder.milestone('Phase 2', 70),
258
+ * ],
259
+ * releaseRequires: 'condition_based'
260
+ * })
261
+ */
262
+ createCustom(params: {
263
+ amount: string;
264
+ chain: string;
265
+ parties: Omit<EscrowParty, 'role'> & {
266
+ role: string;
267
+ }[];
268
+ conditions: BuiltCondition[];
269
+ releaseRequires?: 'all_conditions' | 'majority_approval' | 'condition_based' | 'any_party';
270
+ requiredApprovals?: string[];
271
+ metadata?: Record<string, any>;
272
+ autoReleaseDays?: number;
273
+ }): Promise<Escrow>;
274
+ /**
275
+ * Map vertical to legacy EscrowType
276
+ */
277
+ private mapVerticalToType;
278
+ /**
279
+ * Format escrow summary for display
280
+ */
281
+ formatEscrowSummary(escrow: Escrow): string;
282
+ private generateEscrowAddress;
283
+ private addDays;
284
+ }
285
+ /**
286
+ * x402 Premium Escrow Features
287
+ *
288
+ * Gate premium escrow operations behind x402 payments
289
+ */
290
+ export interface PremiumEscrowFeatures {
291
+ yieldOptimization?: boolean;
292
+ insurance?: boolean;
293
+ prioritySupport?: boolean;
294
+ analytics?: boolean;
295
+ }
296
+ export interface X402EscrowEndpoints {
297
+ optimize: string;
298
+ insure: string;
299
+ analytics: string;
300
+ support: string;
301
+ }
302
+ export declare const PREMIUM_ESCROW_PRICING: {
303
+ yieldOptimization: string;
304
+ insurance: string;
305
+ prioritySupport: string;
306
+ analytics: string;
307
+ };
308
+ /**
309
+ * Generate x402 premium feature URLs for escrow
310
+ */
311
+ export declare function generateX402EscrowUrls(escrowId: string, baseUrl?: string): X402EscrowEndpoints;
312
+ /**
313
+ * Example: Enable premium features on escrow
314
+ */
315
+ export declare function enablePremiumFeatures(escrow: Escrow, features: PremiumEscrowFeatures, x402Fetch: (url: string) => Promise<Response>): Promise<{
316
+ enabled: string[];
317
+ failed: string[];
318
+ }>;
319
+ export default EscrowManager;
320
+ //# sourceMappingURL=escrow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escrow.d.ts","sourceRoot":"","sources":["../lib/escrow.ts"],"names":[],"mappings":"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"}