@alexasomba/better-auth-paystack 1.2.1 → 2.2.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 +232 -59
- package/dist/client.d.mts +133 -305
- package/dist/client.d.mts.map +1 -1
- package/dist/client.mjs +90 -94
- package/dist/client.mjs.map +1 -1
- package/dist/index.d.mts +423 -2
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +818 -687
- package/dist/index.mjs.map +1 -1
- package/dist/types-B5ZnlFrq.d.mts +258 -0
- package/dist/types-B5ZnlFrq.d.mts.map +1 -0
- package/package.json +64 -73
- package/dist/index-DoMJ9OLF.d.mts +0 -488
- package/dist/index-DoMJ9OLF.d.mts.map +0 -1
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import { GenericEndpointContext, Session, User } from "better-auth";
|
|
2
|
+
import { PaystackCustomerClient, PaystackPlanClient, PaystackProductClient, PaystackSubscriptionClient, PaystackTransactionClient, PaystackWebhookEvent, components } from "@alexasomba/paystack-node";
|
|
3
|
+
//#region src/types.d.ts
|
|
4
|
+
type PaystackCheckoutChannel = "card" | "bank" | "ussd" | "qr" | "mobile_money" | "bank_transfer" | "eft" | "apple_pay";
|
|
5
|
+
/**
|
|
6
|
+
* Custom models for Paystack Plugin
|
|
7
|
+
* These align with the database schema in src/schema.ts
|
|
8
|
+
*/
|
|
9
|
+
interface PaystackTransaction {
|
|
10
|
+
id: string;
|
|
11
|
+
reference: string;
|
|
12
|
+
paystackId?: string;
|
|
13
|
+
referenceId: string;
|
|
14
|
+
userId: string;
|
|
15
|
+
amount: number;
|
|
16
|
+
currency: string;
|
|
17
|
+
status: string;
|
|
18
|
+
plan?: string | null;
|
|
19
|
+
product?: string | null;
|
|
20
|
+
metadata?: string | null;
|
|
21
|
+
createdAt: Date;
|
|
22
|
+
updatedAt: Date;
|
|
23
|
+
}
|
|
24
|
+
interface PaystackProduct {
|
|
25
|
+
id?: string;
|
|
26
|
+
name: string;
|
|
27
|
+
description?: string;
|
|
28
|
+
price: number;
|
|
29
|
+
currency: string;
|
|
30
|
+
quantity?: number;
|
|
31
|
+
unlimited?: boolean;
|
|
32
|
+
paystackId?: string;
|
|
33
|
+
slug?: string;
|
|
34
|
+
metadata?: string | null;
|
|
35
|
+
createdAt: Date;
|
|
36
|
+
updatedAt: Date;
|
|
37
|
+
}
|
|
38
|
+
interface PaystackPlan {
|
|
39
|
+
id?: string;
|
|
40
|
+
name: string;
|
|
41
|
+
description?: string;
|
|
42
|
+
amount?: number;
|
|
43
|
+
currency?: string;
|
|
44
|
+
interval?: string;
|
|
45
|
+
planCode?: string;
|
|
46
|
+
paystackId?: string;
|
|
47
|
+
seatAmount?: number;
|
|
48
|
+
/**
|
|
49
|
+
* Deprecated legacy alias for `seatAmount`.
|
|
50
|
+
* If used, it must still be a numeric amount in the smallest currency unit.
|
|
51
|
+
*/
|
|
52
|
+
seatPriceId?: number | string;
|
|
53
|
+
seatPlanCode?: string;
|
|
54
|
+
invoiceLimit?: number;
|
|
55
|
+
freeTrial?: {
|
|
56
|
+
days?: number;
|
|
57
|
+
onTrialStart?: (subscription: Subscription) => Promise<void>;
|
|
58
|
+
};
|
|
59
|
+
limits?: Record<string, unknown>;
|
|
60
|
+
features?: string[];
|
|
61
|
+
metadata?: string | null;
|
|
62
|
+
createdAt?: Date;
|
|
63
|
+
updatedAt?: Date;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Paystack Webhook Payload structure
|
|
67
|
+
*/
|
|
68
|
+
type PaystackWebhookPayload = PaystackWebhookEvent;
|
|
69
|
+
/**
|
|
70
|
+
* Paystack SDK Result types
|
|
71
|
+
*/
|
|
72
|
+
type PaystackTransactionResponse = components["schemas"]["VerifyResponse"]["data"];
|
|
73
|
+
interface SubscriptionOptions {
|
|
74
|
+
/**
|
|
75
|
+
* Enable subscriptions
|
|
76
|
+
*/
|
|
77
|
+
enabled?: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Plans configuration
|
|
80
|
+
*/
|
|
81
|
+
plans: PaystackPlan[] | (() => Promise<PaystackPlan[]>);
|
|
82
|
+
/**
|
|
83
|
+
* Automatically sync quantity from local DB to Paystack (if seats are used)
|
|
84
|
+
*/
|
|
85
|
+
autoSyncQuantity?: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Handling of subscription cancellation
|
|
88
|
+
* @default "at_period_end"
|
|
89
|
+
*/
|
|
90
|
+
cancelBehavior?: "at_period_end" | "immediately";
|
|
91
|
+
/**
|
|
92
|
+
* Handlers for subscription events
|
|
93
|
+
*/
|
|
94
|
+
onSubscriptionComplete?: (data: {
|
|
95
|
+
event: PaystackWebhookPayload;
|
|
96
|
+
subscription: Subscription;
|
|
97
|
+
plan: PaystackPlan;
|
|
98
|
+
}, ctx: GenericEndpointContext) => Promise<void>;
|
|
99
|
+
onSubscriptionCreated?: (data: {
|
|
100
|
+
event: PaystackWebhookPayload;
|
|
101
|
+
subscription: Subscription;
|
|
102
|
+
plan: PaystackPlan;
|
|
103
|
+
}, ctx: GenericEndpointContext) => Promise<void>;
|
|
104
|
+
onSubscriptionCancel?: (data: {
|
|
105
|
+
event: PaystackWebhookPayload;
|
|
106
|
+
subscription: Subscription;
|
|
107
|
+
}, ctx: GenericEndpointContext) => Promise<void>;
|
|
108
|
+
/**
|
|
109
|
+
* Authorization handler for reference checks
|
|
110
|
+
*/
|
|
111
|
+
authorizeReference?: (data: {
|
|
112
|
+
user: User;
|
|
113
|
+
session: Session;
|
|
114
|
+
referenceId: string;
|
|
115
|
+
action: string;
|
|
116
|
+
}, ctx: GenericEndpointContext) => Promise<boolean>;
|
|
117
|
+
/**
|
|
118
|
+
* Require email verification before subscription
|
|
119
|
+
*/
|
|
120
|
+
requireEmailVerification?: boolean;
|
|
121
|
+
/**
|
|
122
|
+
* Restrict checkout to specific Paystack channels for subscription flows.
|
|
123
|
+
* Use `["card"]` to enforce card-only subscriptions.
|
|
124
|
+
*/
|
|
125
|
+
allowedPaymentChannels?: PaystackCheckoutChannel[];
|
|
126
|
+
}
|
|
127
|
+
interface PaystackOptions<TPaystackClient extends PaystackClientLike = PaystackClientLike> {
|
|
128
|
+
/**
|
|
129
|
+
* Paystack Secret Key
|
|
130
|
+
*/
|
|
131
|
+
secretKey: string;
|
|
132
|
+
/**
|
|
133
|
+
* Deprecated alias for `webhook.secret`.
|
|
134
|
+
* Use `webhook.secret` for new code.
|
|
135
|
+
*/
|
|
136
|
+
paystackWebhookSecret?: string;
|
|
137
|
+
/**
|
|
138
|
+
* Paystack Client Instance
|
|
139
|
+
* If provided, will be used instead of creating a new one with secretKey
|
|
140
|
+
*/
|
|
141
|
+
paystackClient?: TPaystackClient;
|
|
142
|
+
/**
|
|
143
|
+
* Webhook configuration
|
|
144
|
+
*/
|
|
145
|
+
webhook?: {
|
|
146
|
+
/**
|
|
147
|
+
* Webhook secret for signature verification
|
|
148
|
+
*/
|
|
149
|
+
secret?: string;
|
|
150
|
+
/**
|
|
151
|
+
* Whether to verify the request origin IP address
|
|
152
|
+
* @default false
|
|
153
|
+
*/
|
|
154
|
+
verifyIP?: boolean;
|
|
155
|
+
/**
|
|
156
|
+
* List of trusted IP addresses for webhooks.
|
|
157
|
+
* Defaults to official Paystack IPs if verifyIP is true and this is empty.
|
|
158
|
+
*/
|
|
159
|
+
trustedIPs?: string[];
|
|
160
|
+
};
|
|
161
|
+
/**
|
|
162
|
+
* Subscription configuration
|
|
163
|
+
*/
|
|
164
|
+
subscription?: SubscriptionOptions;
|
|
165
|
+
/**
|
|
166
|
+
* Billing pattern
|
|
167
|
+
* @default "native"
|
|
168
|
+
*/
|
|
169
|
+
billingPattern?: "native" | "local";
|
|
170
|
+
/**
|
|
171
|
+
* Global event handler
|
|
172
|
+
*/
|
|
173
|
+
onEvent?: (event: PaystackWebhookEvent) => Promise<void>;
|
|
174
|
+
/**
|
|
175
|
+
* Organization billing configuration
|
|
176
|
+
*/
|
|
177
|
+
organization?: {
|
|
178
|
+
enabled?: boolean;
|
|
179
|
+
getCustomerCreateParams?: (org: {
|
|
180
|
+
id: string;
|
|
181
|
+
name: string;
|
|
182
|
+
email?: string | null;
|
|
183
|
+
}, ctx: GenericEndpointContext) => Promise<Record<string, unknown>>;
|
|
184
|
+
onCustomerCreate?: (data: {
|
|
185
|
+
paystackCustomer: Record<string, unknown>;
|
|
186
|
+
organization: unknown;
|
|
187
|
+
}, ctx: GenericEndpointContext) => Promise<void>;
|
|
188
|
+
};
|
|
189
|
+
/**
|
|
190
|
+
* Products configuration
|
|
191
|
+
*/
|
|
192
|
+
products?: {
|
|
193
|
+
products?: PaystackProduct[] | (() => Promise<PaystackProduct[]>);
|
|
194
|
+
};
|
|
195
|
+
createCustomerOnSignUp?: boolean;
|
|
196
|
+
onCustomerCreate?: (data: {
|
|
197
|
+
paystackCustomer: Record<string, unknown>;
|
|
198
|
+
user: unknown;
|
|
199
|
+
}, ctx: GenericEndpointContext) => Promise<void>;
|
|
200
|
+
/**
|
|
201
|
+
* Custom database schema / model names
|
|
202
|
+
*/
|
|
203
|
+
schema?: Record<string, {
|
|
204
|
+
modelName?: string;
|
|
205
|
+
fields?: Record<string, string>;
|
|
206
|
+
}>;
|
|
207
|
+
}
|
|
208
|
+
interface Subscription {
|
|
209
|
+
id: string;
|
|
210
|
+
userId: string;
|
|
211
|
+
organizationId?: string;
|
|
212
|
+
plan: string;
|
|
213
|
+
pendingPlan?: string | null;
|
|
214
|
+
paystackSubscriptionCode?: string;
|
|
215
|
+
paystackCustomerCode?: string;
|
|
216
|
+
paystackPlanCode?: string;
|
|
217
|
+
paystackAuthorizationCode?: string;
|
|
218
|
+
paystackTransactionReference?: string;
|
|
219
|
+
paystackEmailToken?: string;
|
|
220
|
+
status: string;
|
|
221
|
+
seats: number;
|
|
222
|
+
referenceId: string;
|
|
223
|
+
periodStart?: Date | null;
|
|
224
|
+
periodEnd?: Date | null;
|
|
225
|
+
cancelAtPeriodEnd: boolean;
|
|
226
|
+
trialStart?: Date | null;
|
|
227
|
+
trialEnd?: Date | null;
|
|
228
|
+
groupId?: string | null;
|
|
229
|
+
createdAt: Date;
|
|
230
|
+
updatedAt: Date;
|
|
231
|
+
}
|
|
232
|
+
interface ChargeRecurringSubscriptionInput {
|
|
233
|
+
subscriptionId: string;
|
|
234
|
+
amount?: number;
|
|
235
|
+
}
|
|
236
|
+
interface ChargeRecurringSubscriptionResult {
|
|
237
|
+
status: "success" | "failed";
|
|
238
|
+
data: PaystackTransactionResponse;
|
|
239
|
+
}
|
|
240
|
+
interface PaystackSyncResult {
|
|
241
|
+
status: "success";
|
|
242
|
+
count: number;
|
|
243
|
+
}
|
|
244
|
+
type AnyPaystackOptions = PaystackOptions<PaystackClientLike>;
|
|
245
|
+
/**
|
|
246
|
+
* Exact grouped SDK slices used by this plugin.
|
|
247
|
+
* This deliberately matches the official SDK surface instead of a handwritten approximation.
|
|
248
|
+
*/
|
|
249
|
+
interface PaystackClientLike {
|
|
250
|
+
transaction: Pick<PaystackTransactionClient, "initialize" | "verify" | "chargeAuthorization">;
|
|
251
|
+
customer: Pick<PaystackCustomerClient, "create" | "update" | "fetch">;
|
|
252
|
+
subscription: Pick<PaystackSubscriptionClient, "create" | "fetch" | "disable" | "enable" | "manageLink">;
|
|
253
|
+
product: Pick<PaystackProductClient, "fetch" | "list">;
|
|
254
|
+
plan: Pick<PaystackPlanClient, "list" | "create">;
|
|
255
|
+
}
|
|
256
|
+
//#endregion
|
|
257
|
+
export { PaystackOptions as a, PaystackSyncResult as c, Subscription as d, SubscriptionOptions as f, PaystackClientLike as i, PaystackTransaction as l, ChargeRecurringSubscriptionInput as n, PaystackPlan as o, ChargeRecurringSubscriptionResult as r, PaystackProduct as s, AnyPaystackOptions as t, PaystackTransactionResponse as u };
|
|
258
|
+
//# sourceMappingURL=types-B5ZnlFrq.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-B5ZnlFrq.d.mts","names":["GenericEndpointContext","Session","User","Organization","Member","PaystackPaths","PaystackResponse","PaystackWebhookEvent","PaystackClient","PaystackCustomerClient","PaystackPlanClient","PaystackProductClient","PaystackSubscriptionClient","PaystackTransactionClient","components","PaystackCurrency","PaystackCheckoutChannel","PaystackTransaction","Date","id","reference","paystackId","referenceId","userId","amount","currency","status","plan","product","metadata","createdAt","updatedAt","PaystackProduct","name","description","price","quantity","unlimited","slug","InputPaystackProduct","PaystackUser","paystackCustomerCode","PaystackOrganization","PaystackPlan","Subscription","Promise","Record","interval","planCode","seatAmount","seatPriceId","seatPlanCode","invoiceLimit","freeTrial","days","onTrialStart","subscription","limits","features","PaystackWebhookPayload","PaystackTransactionResponse","PaystackPlanResponse","PaystackCustomerResponse","PaystackSubscriptionResponse","PaystackProductResponse","SubscriptionOptions","enabled","plans","autoSyncQuantity","cancelBehavior","onSubscriptionComplete","event","data","ctx","onSubscriptionCreated","onSubscriptionCancel","authorizeReference","user","session","action","requireEmailVerification","allowedPaymentChannels","PaystackOptions","TPaystackClient","PaystackClientLike","secretKey","paystackWebhookSecret","paystackClient","webhook","secret","verifyIP","trustedIPs","billingPattern","onEvent","organization","getCustomerCreateParams","email","org","onCustomerCreate","paystackCustomer","products","createCustomerOnSignUp","schema","modelName","fields","organizationId","pendingPlan","paystackSubscriptionCode","paystackPlanCode","paystackAuthorizationCode","paystackTransactionReference","paystackEmailToken","seats","periodStart","periodEnd","cancelAtPeriodEnd","trialStart","trialEnd","groupId","ChargeRecurringSubscriptionInput","subscriptionId","ChargeRecurringSubscriptionResult","PaystackSyncResult","count","AnyPaystackOptions","Pick","transaction","customer"],"sources":["../src/types.d.ts"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,38 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alexasomba/better-auth-paystack",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "Production-ready Paystack billing plugin for Better Auth. Supports subscriptions, one-time payments, organization billing, secure webhooks and more",
|
|
5
|
-
"
|
|
6
|
-
|
|
5
|
+
"keywords": [
|
|
6
|
+
"africa",
|
|
7
|
+
"auth",
|
|
8
|
+
"better-auth",
|
|
9
|
+
"billing-system",
|
|
10
|
+
"checkout",
|
|
11
|
+
"cote-divoire",
|
|
12
|
+
"egp",
|
|
13
|
+
"egypt",
|
|
14
|
+
"fintech",
|
|
15
|
+
"ghana",
|
|
16
|
+
"ghs",
|
|
17
|
+
"ivory-coast",
|
|
18
|
+
"kenya",
|
|
19
|
+
"kes",
|
|
20
|
+
"ngn",
|
|
21
|
+
"nigeria",
|
|
22
|
+
"paystack",
|
|
23
|
+
"rwanda",
|
|
24
|
+
"saas",
|
|
25
|
+
"south-africa",
|
|
26
|
+
"subscriptions",
|
|
27
|
+
"usd",
|
|
28
|
+
"zar"
|
|
29
|
+
],
|
|
7
30
|
"homepage": "https://github.com/alexasomba/better-auth-paystack#readme",
|
|
8
31
|
"bugs": {
|
|
9
32
|
"url": "https://github.com/alexasomba/better-auth-paystack/issues"
|
|
10
33
|
},
|
|
34
|
+
"license": "MIT",
|
|
35
|
+
"author": "alexasomba",
|
|
11
36
|
"repository": {
|
|
12
37
|
"type": "git",
|
|
13
38
|
"url": "git+https://github.com/alexasomba/better-auth-paystack.git"
|
|
@@ -18,39 +43,12 @@
|
|
|
18
43
|
"url": "https://solscan.io/account/Gepby394bBBn4AEKkSwAPVnjgBULvYTiXBpbZe9CQqSp"
|
|
19
44
|
}
|
|
20
45
|
],
|
|
21
|
-
"keywords": [
|
|
22
|
-
"paystack",
|
|
23
|
-
"auth",
|
|
24
|
-
"better-auth",
|
|
25
|
-
"billing-system",
|
|
26
|
-
"checkout",
|
|
27
|
-
"fintech",
|
|
28
|
-
"nigeria",
|
|
29
|
-
"ghana",
|
|
30
|
-
"south-africa",
|
|
31
|
-
"kenya",
|
|
32
|
-
"ivory-coast",
|
|
33
|
-
"cote-divoire",
|
|
34
|
-
"egypt",
|
|
35
|
-
"rwanda",
|
|
36
|
-
"ngn",
|
|
37
|
-
"ghs",
|
|
38
|
-
"zar",
|
|
39
|
-
"kes",
|
|
40
|
-
"usd",
|
|
41
|
-
"egp",
|
|
42
|
-
"subscriptions",
|
|
43
|
-
"africa",
|
|
44
|
-
"saas"
|
|
45
|
-
],
|
|
46
|
-
"engines": {
|
|
47
|
-
"node": ">=22.0.0"
|
|
48
|
-
},
|
|
49
|
-
"type": "module",
|
|
50
|
-
"types": "./dist/index.d.mts",
|
|
51
46
|
"files": [
|
|
52
47
|
"dist"
|
|
53
48
|
],
|
|
49
|
+
"type": "module",
|
|
50
|
+
"sideEffects": false,
|
|
51
|
+
"types": "./dist/index.d.mts",
|
|
54
52
|
"exports": {
|
|
55
53
|
".": {
|
|
56
54
|
"types": "./dist/index.d.mts",
|
|
@@ -63,61 +61,54 @@
|
|
|
63
61
|
"default": "./dist/client.mjs"
|
|
64
62
|
}
|
|
65
63
|
},
|
|
66
|
-
"sideEffects": false,
|
|
67
64
|
"publishConfig": {
|
|
68
65
|
"access": "public"
|
|
69
66
|
},
|
|
70
|
-
"peerDependencies": {
|
|
71
|
-
"better-auth": ">=1.3.0"
|
|
72
|
-
},
|
|
73
67
|
"dependencies": {
|
|
74
|
-
"@alexasomba/paystack-node": "^1.
|
|
75
|
-
"better-call": "^
|
|
76
|
-
"defu": "^6.1.
|
|
68
|
+
"@alexasomba/paystack-node": "^1.9.4",
|
|
69
|
+
"better-call": "^1.3.5",
|
|
70
|
+
"defu": "^6.1.7",
|
|
77
71
|
"zod": "^4.3.6"
|
|
78
72
|
},
|
|
79
|
-
"optionalDependencies": {
|
|
80
|
-
"@rollup/rollup-linux-x64-gnu": "^4.59.0"
|
|
81
|
-
},
|
|
82
73
|
"devDependencies": {
|
|
83
74
|
"@arethetypeswrong/cli": "^0.18.2",
|
|
84
|
-
"@better-auth/core": "
|
|
75
|
+
"@better-auth/core": "1.7.0-beta.1",
|
|
85
76
|
"@better-fetch/fetch": "^1.1.21",
|
|
86
|
-
"@
|
|
87
|
-
"@
|
|
88
|
-
"@
|
|
89
|
-
"@
|
|
90
|
-
"@
|
|
91
|
-
"@typescript-eslint/
|
|
92
|
-
"@
|
|
93
|
-
"
|
|
94
|
-
"
|
|
95
|
-
"eslint-plugin-import-x": "^4.16.
|
|
77
|
+
"@commitlint/cli": "^20.5.0",
|
|
78
|
+
"@commitlint/config-conventional": "^20.5.0",
|
|
79
|
+
"@eslint/compat": "^2.0.5",
|
|
80
|
+
"@eslint/js": "^10.0.1",
|
|
81
|
+
"@types/node": "^24.12.2",
|
|
82
|
+
"@typescript-eslint/eslint-plugin": "^8.58.2",
|
|
83
|
+
"@typescript-eslint/parser": "^8.58.2",
|
|
84
|
+
"@vitest/coverage-v8": "^4.1.4",
|
|
85
|
+
"better-auth": "1.7.0-beta.1",
|
|
86
|
+
"eslint-plugin-import-x": "^4.16.2",
|
|
96
87
|
"eslint-plugin-promise": "^7.2.1",
|
|
97
|
-
"eslint-plugin-react-hooks": "^7.
|
|
98
|
-
"eslint-plugin-unicorn": "^
|
|
99
|
-
"husky": "^9.1.7",
|
|
100
|
-
"lint-staged": "^16.3.2",
|
|
88
|
+
"eslint-plugin-react-hooks": "^7.1.1",
|
|
89
|
+
"eslint-plugin-unicorn": "^64.0.0",
|
|
101
90
|
"publint": "^0.3.18",
|
|
102
|
-
"tsdown": "^0.21.0",
|
|
103
91
|
"typescript": "^5.9.3",
|
|
104
|
-
"typescript-eslint": "^8.
|
|
105
|
-
"
|
|
92
|
+
"typescript-eslint": "^8.58.2",
|
|
93
|
+
"vite-plus": "^0.1.18",
|
|
94
|
+
"vitest": "npm:@voidzero-dev/vite-plus-test@^0.1.18"
|
|
95
|
+
},
|
|
96
|
+
"peerDependencies": {
|
|
97
|
+
"better-auth": "^1.6.5"
|
|
98
|
+
},
|
|
99
|
+
"optionalDependencies": {
|
|
100
|
+
"@rollup/rollup-linux-x64-gnu": "^4.60.2"
|
|
106
101
|
},
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
"bash -c 'pnpm tsc --noEmit'",
|
|
110
|
-
"eslint --fix",
|
|
111
|
-
"vitest related --run"
|
|
112
|
-
]
|
|
102
|
+
"engines": {
|
|
103
|
+
"node": ">=24.0.0"
|
|
113
104
|
},
|
|
114
105
|
"scripts": {
|
|
115
|
-
"build": "
|
|
116
|
-
"dev": "
|
|
117
|
-
"test": "
|
|
118
|
-
"test:integration": "RUN_INTEGRATION_TESTS=1
|
|
119
|
-
"coverage": "
|
|
120
|
-
"lint": "
|
|
106
|
+
"build": "vp pack",
|
|
107
|
+
"dev": "vp pack --watch",
|
|
108
|
+
"test": "vp test run",
|
|
109
|
+
"test:integration": "RUN_INTEGRATION_TESTS=1 vp test run",
|
|
110
|
+
"coverage": "vp test run --coverage",
|
|
111
|
+
"lint": "vp lint src",
|
|
121
112
|
"lint:package": "publint run --strict",
|
|
122
113
|
"lint:types": "attw --profile esm-only --pack .",
|
|
123
114
|
"typecheck": "tsc -p tsconfig.json --noEmit"
|