dodopayments-cli 2.0.2 → 2.1.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.
- package/README.md +30 -7
- package/build-binaries.ts +27 -4
- package/dist/index.js +22 -22
- package/package.json +3 -3
- package/dodo-webhooks/functions/generate-dispute-data.ts +0 -123
- package/dodo-webhooks/functions/generate-licence-data.ts +0 -39
- package/dodo-webhooks/functions/generate-payment-data.ts +0 -101
- package/dodo-webhooks/functions/generate-refund-data.ts +0 -44
- package/dodo-webhooks/functions/generate-subscription-data.ts +0 -153
- package/dodo-webhooks/functions/supported-events.ts +0 -24
- package/dodo-webhooks/index.ts +0 -207
- package/dodo-webhooks/types/baseArgs.ts +0 -9
- package/index.ts +0 -494
- package/utils/currency-to-symbol-map.ts +0 -8
package/dodo-webhooks/index.ts
DELETED
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
import { input, password as passwordPrompt, select } from '@inquirer/prompts';
|
|
2
|
-
import { supportedEvents } from './functions/supported-events';
|
|
3
|
-
|
|
4
|
-
// Subscription Events
|
|
5
|
-
import {
|
|
6
|
-
genSubscriptionActive,
|
|
7
|
-
genSubscriptionUpdated,
|
|
8
|
-
genSubscriptionOnHold,
|
|
9
|
-
genSubscriptionRenewed,
|
|
10
|
-
genSubscriptionPlanChanged,
|
|
11
|
-
genSubscriptionCancelled,
|
|
12
|
-
genSubscriptionFailed,
|
|
13
|
-
genSubscriptionExpired
|
|
14
|
-
} from './functions/generate-subscription-data';
|
|
15
|
-
|
|
16
|
-
// Payment events
|
|
17
|
-
import {
|
|
18
|
-
genPaymentSuccess,
|
|
19
|
-
genPaymentFailed,
|
|
20
|
-
genPaymentProcessing,
|
|
21
|
-
genPaymentCancelled
|
|
22
|
-
} from './functions/generate-payment-data';
|
|
23
|
-
|
|
24
|
-
// Refund events
|
|
25
|
-
import {
|
|
26
|
-
genRefundSuccess,
|
|
27
|
-
genRefundFailed
|
|
28
|
-
} from './functions/generate-refund-data';
|
|
29
|
-
|
|
30
|
-
// Dispute events
|
|
31
|
-
import {
|
|
32
|
-
genDisputeOpened,
|
|
33
|
-
genDisputeExpired,
|
|
34
|
-
genDisputeAccepted,
|
|
35
|
-
genDisputeCancelled,
|
|
36
|
-
genDisputeChallenged,
|
|
37
|
-
genDisputeWon,
|
|
38
|
-
genDisputeLost
|
|
39
|
-
} from './functions/generate-dispute-data';
|
|
40
|
-
|
|
41
|
-
// Licence events
|
|
42
|
-
import {
|
|
43
|
-
genLicenceCreated
|
|
44
|
-
} from './functions/generate-licence-data';
|
|
45
|
-
|
|
46
|
-
const endpoint = await input({
|
|
47
|
-
message: 'What is your endpoint?',
|
|
48
|
-
validate: (input) => {
|
|
49
|
-
if (!input.startsWith('http')) {
|
|
50
|
-
return 'Please enter a valid URL starting with http or https';
|
|
51
|
-
}
|
|
52
|
-
return true;
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
// const webhook_secret = await passwordPrompt({
|
|
57
|
-
// message: 'What is your Dodo Payments webhook secret? (Optional)',
|
|
58
|
-
// mask: true
|
|
59
|
-
// });
|
|
60
|
-
|
|
61
|
-
const business_id = await input({
|
|
62
|
-
message: 'What is your Dodo Payments business ID? (Optional)',
|
|
63
|
-
default: 'bus_test'
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
const product_id = await input({
|
|
67
|
-
message: 'What is your product ID? (Optional)',
|
|
68
|
-
default: 'pdt_test'
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
const metadata = await input({
|
|
72
|
-
message: 'What is your metadata? (JSON stringified, Optional)',
|
|
73
|
-
default: '{}'
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
while (true) {
|
|
77
|
-
const event = await select({
|
|
78
|
-
message: 'Select an event to send:',
|
|
79
|
-
choices: [...supportedEvents, 'exit'].map(e => ({ value: e, name: e })),
|
|
80
|
-
loop: false,
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
if (event === 'exit') {
|
|
84
|
-
console.log('Exiting...');
|
|
85
|
-
process.exit();
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
let data;
|
|
89
|
-
const metadataParsed: { [key: string]: string } = JSON.parse(metadata);
|
|
90
|
-
|
|
91
|
-
// Parameters based on subscription event
|
|
92
|
-
if (event.startsWith('subscription.')) {
|
|
93
|
-
const params = {
|
|
94
|
-
business_id,
|
|
95
|
-
product_id,
|
|
96
|
-
metadata: metadataParsed
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
if (event === 'subscription.active') {
|
|
100
|
-
data = genSubscriptionActive(params);
|
|
101
|
-
} else if (event === 'subscription.updated') {
|
|
102
|
-
data = genSubscriptionUpdated(params);
|
|
103
|
-
} else if (event === 'subscription.on_hold') {
|
|
104
|
-
data = genSubscriptionOnHold(params);
|
|
105
|
-
} else if (event === 'subscription.renewed') {
|
|
106
|
-
data = genSubscriptionRenewed(params);
|
|
107
|
-
} else if (event === 'subscription.plan_changed') {
|
|
108
|
-
data = genSubscriptionPlanChanged(params);
|
|
109
|
-
} else if (event === 'subscription.cancelled') {
|
|
110
|
-
data = genSubscriptionCancelled(params);
|
|
111
|
-
} else if (event === 'subscription.failed') {
|
|
112
|
-
data = genSubscriptionFailed(params);
|
|
113
|
-
} else if (event === 'subscription.expired') {
|
|
114
|
-
data = genSubscriptionExpired(params);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
// Parameters based on payment event
|
|
119
|
-
if (event.startsWith('payment.')) {
|
|
120
|
-
const params = {
|
|
121
|
-
business_id,
|
|
122
|
-
product_id,
|
|
123
|
-
metadata: metadataParsed
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
if (event === 'payment.success') {
|
|
127
|
-
data = genPaymentSuccess(params);
|
|
128
|
-
} else if (event === 'payment.failed') {
|
|
129
|
-
data = genPaymentFailed(params);
|
|
130
|
-
} else if (event === 'payment.processing') {
|
|
131
|
-
data = genPaymentProcessing(params);
|
|
132
|
-
} else if (event === 'payment.cancelled') {
|
|
133
|
-
data = genPaymentCancelled(params);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
// Parameters based on refund event
|
|
138
|
-
if (event.startsWith('refund.')) {
|
|
139
|
-
const params = {
|
|
140
|
-
business_id
|
|
141
|
-
};
|
|
142
|
-
|
|
143
|
-
if (event === 'refund.success') {
|
|
144
|
-
data = genRefundSuccess(params);
|
|
145
|
-
} else if (event === 'refund.failed') {
|
|
146
|
-
data = genRefundFailed(params);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
// Parameters based on dispute event
|
|
151
|
-
if (event.startsWith('dispute.')) {
|
|
152
|
-
const params = {
|
|
153
|
-
business_id
|
|
154
|
-
};
|
|
155
|
-
|
|
156
|
-
if (event === 'dispute.opened') {
|
|
157
|
-
data = genDisputeOpened(params);
|
|
158
|
-
} else if (event === 'dispute.expired') {
|
|
159
|
-
data = genDisputeExpired(params);
|
|
160
|
-
} else if (event === 'dispute.accepted') {
|
|
161
|
-
data = genDisputeAccepted(params);
|
|
162
|
-
} else if (event === 'dispute.cancelled') {
|
|
163
|
-
data = genDisputeCancelled(params);
|
|
164
|
-
} else if (event === 'dispute.challenged') {
|
|
165
|
-
data = genDisputeChallenged(params);
|
|
166
|
-
} else if (event === 'dispute.won') {
|
|
167
|
-
data = genDisputeWon(params);
|
|
168
|
-
} else if (event === 'dispute.lost') {
|
|
169
|
-
data = genDisputeLost(params);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
// Parameters based on licence event
|
|
174
|
-
if (event.startsWith('licence.')) {
|
|
175
|
-
const params = {
|
|
176
|
-
business_id,
|
|
177
|
-
product_id
|
|
178
|
-
};
|
|
179
|
-
|
|
180
|
-
if (event === 'licence.created') {
|
|
181
|
-
data = genLicenceCreated(params);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
// const timestamp = new Date();
|
|
186
|
-
// const webhookId = crypto.randomUUID();
|
|
187
|
-
// const webhookInstance = new Webhook(webhook_secret);
|
|
188
|
-
// const payloadString = JSON.stringify(data);
|
|
189
|
-
// const signature = webhookInstance.sign(webhookId, timestamp, payloadString);
|
|
190
|
-
|
|
191
|
-
await fetch(endpoint, {
|
|
192
|
-
method: 'POST',
|
|
193
|
-
headers: {
|
|
194
|
-
'Content-Type': 'application/json',
|
|
195
|
-
// "webhook-id": webhookId,
|
|
196
|
-
// "webhook-timestamp": Math.floor(timestamp.getTime() / 1000).toString(),
|
|
197
|
-
// "webhook-signature": signature,
|
|
198
|
-
},
|
|
199
|
-
body: JSON.stringify(data)
|
|
200
|
-
}).then(async res => {
|
|
201
|
-
console.log(`✅ Webhook Event Sent!\nReceived Response Code: ${res.status}\nReceived Response Body: ${await res.text()}`);
|
|
202
|
-
console.log();
|
|
203
|
-
}).catch(error => {
|
|
204
|
-
console.error('❌ Webhook Event Failed:', error);
|
|
205
|
-
console.log();
|
|
206
|
-
});
|
|
207
|
-
}
|