@payark/sdk-effect 0.1.3 → 0.1.6
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/dist/api-spec.d.mts +719 -0
- package/dist/api-spec.d.ts +719 -0
- package/dist/api-spec.js +430 -0
- package/dist/api-spec.js.map +1 -0
- package/dist/api-spec.mjs +410 -0
- package/dist/api-spec.mjs.map +1 -0
- package/dist/index.d.mts +287 -972
- package/dist/index.d.ts +287 -972
- package/dist/index.js +102 -46
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +98 -47
- package/dist/index.mjs.map +1 -1
- package/dist/schemas.d.mts +294 -0
- package/dist/schemas.d.ts +294 -0
- package/dist/schemas.js +281 -0
- package/dist/schemas.js.map +1 -0
- package/dist/schemas.mjs +244 -0
- package/dist/schemas.mjs.map +1 -0
- package/package.json +7 -7
package/dist/schemas.js
ADDED
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var effect = require('effect');
|
|
4
|
+
|
|
5
|
+
// src/schemas.ts
|
|
6
|
+
var NonEmptyString = effect.Schema.String.pipe(
|
|
7
|
+
effect.Schema.nonEmptyString(),
|
|
8
|
+
effect.Schema.brand("NonEmptyString")
|
|
9
|
+
);
|
|
10
|
+
var UrlString = effect.Schema.String.pipe(
|
|
11
|
+
effect.Schema.pattern(/^https?:\/\/.+/),
|
|
12
|
+
effect.Schema.brand("UrlString")
|
|
13
|
+
);
|
|
14
|
+
var MinorUnitsInt = effect.Schema.Number.pipe(
|
|
15
|
+
effect.Schema.int(),
|
|
16
|
+
effect.Schema.greaterThan(0),
|
|
17
|
+
effect.Schema.brand("MinorUnitsInt")
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
// src/schemas.ts
|
|
21
|
+
var Id = effect.Schema.String.pipe(effect.Schema.brand("Id"));
|
|
22
|
+
var ProjectId = effect.Schema.String.pipe(effect.Schema.brand("ProjectId"));
|
|
23
|
+
var PaymentId = effect.Schema.String.pipe(effect.Schema.brand("PaymentId"));
|
|
24
|
+
var CheckoutSessionId = effect.Schema.String.pipe(
|
|
25
|
+
effect.Schema.brand("CheckoutSessionId")
|
|
26
|
+
);
|
|
27
|
+
var SubscriptionId = effect.Schema.String.pipe(
|
|
28
|
+
effect.Schema.brand("SubscriptionId")
|
|
29
|
+
);
|
|
30
|
+
var CustomerId = effect.Schema.String.pipe(effect.Schema.brand("CustomerId"));
|
|
31
|
+
var TokenId = effect.Schema.String.pipe(effect.Schema.brand("TokenId"));
|
|
32
|
+
var Email = effect.Schema.String.pipe(
|
|
33
|
+
effect.Schema.filter((s) => s.includes("@")),
|
|
34
|
+
effect.Schema.brand("Email")
|
|
35
|
+
);
|
|
36
|
+
var Timestamp = effect.Schema.String.pipe(effect.Schema.brand("Timestamp"));
|
|
37
|
+
var Metadata = effect.Schema.Record({
|
|
38
|
+
key: effect.Schema.String,
|
|
39
|
+
value: effect.Schema.Any
|
|
40
|
+
});
|
|
41
|
+
var Timestamps = effect.Schema.Struct({
|
|
42
|
+
created_at: Timestamp,
|
|
43
|
+
updated_at: Timestamp
|
|
44
|
+
});
|
|
45
|
+
var Provider = effect.Schema.Literal(
|
|
46
|
+
"esewa",
|
|
47
|
+
"khalti",
|
|
48
|
+
"connectips",
|
|
49
|
+
"imepay",
|
|
50
|
+
"fonepay",
|
|
51
|
+
"sandbox"
|
|
52
|
+
);
|
|
53
|
+
var PaymentStatus = effect.Schema.Literal("pending", "success", "failed");
|
|
54
|
+
var SubscriptionStatus = effect.Schema.Literal(
|
|
55
|
+
"active",
|
|
56
|
+
"past_due",
|
|
57
|
+
"canceled",
|
|
58
|
+
"paused"
|
|
59
|
+
);
|
|
60
|
+
var SubscriptionInterval = effect.Schema.Literal("month", "year", "week");
|
|
61
|
+
var Customer = effect.Schema.Struct({
|
|
62
|
+
id: CustomerId,
|
|
63
|
+
merchant_customer_id: NonEmptyString,
|
|
64
|
+
email: effect.Schema.NullOr(Email),
|
|
65
|
+
name: effect.Schema.NullOr(NonEmptyString),
|
|
66
|
+
phone: effect.Schema.NullOr(effect.Schema.String),
|
|
67
|
+
project_id: ProjectId,
|
|
68
|
+
metadata: effect.Schema.NullOr(Metadata),
|
|
69
|
+
created_at: Timestamp,
|
|
70
|
+
updated_at: effect.Schema.optional(Timestamp)
|
|
71
|
+
});
|
|
72
|
+
var Payment = effect.Schema.Struct({
|
|
73
|
+
id: PaymentId,
|
|
74
|
+
project_id: ProjectId,
|
|
75
|
+
amount: effect.Schema.Number,
|
|
76
|
+
currency: effect.Schema.String,
|
|
77
|
+
status: PaymentStatus,
|
|
78
|
+
provider_ref: effect.Schema.optional(effect.Schema.NullOr(effect.Schema.String)),
|
|
79
|
+
metadata_json: effect.Schema.optional(effect.Schema.NullOr(Metadata)),
|
|
80
|
+
gateway_response: effect.Schema.optional(effect.Schema.NullOr(effect.Schema.Any)),
|
|
81
|
+
created_at: Timestamp,
|
|
82
|
+
updated_at: effect.Schema.optional(Timestamp)
|
|
83
|
+
});
|
|
84
|
+
var Subscription = effect.Schema.Struct({
|
|
85
|
+
id: SubscriptionId,
|
|
86
|
+
project_id: ProjectId,
|
|
87
|
+
customer_id: CustomerId,
|
|
88
|
+
status: SubscriptionStatus,
|
|
89
|
+
amount: effect.Schema.Number,
|
|
90
|
+
currency: effect.Schema.String,
|
|
91
|
+
interval: SubscriptionInterval,
|
|
92
|
+
interval_count: effect.Schema.Number,
|
|
93
|
+
current_period_start: Timestamp,
|
|
94
|
+
current_period_end: Timestamp,
|
|
95
|
+
payment_link: UrlString,
|
|
96
|
+
auto_send_link: effect.Schema.Boolean,
|
|
97
|
+
metadata: effect.Schema.optional(effect.Schema.NullOr(Metadata)),
|
|
98
|
+
canceled_at: effect.Schema.optional(effect.Schema.NullOr(Timestamp)),
|
|
99
|
+
created_at: Timestamp,
|
|
100
|
+
updated_at: effect.Schema.optional(Timestamp)
|
|
101
|
+
});
|
|
102
|
+
var Project = effect.Schema.Struct({
|
|
103
|
+
id: ProjectId,
|
|
104
|
+
name: NonEmptyString,
|
|
105
|
+
api_key_secret: effect.Schema.String,
|
|
106
|
+
created_at: Timestamp
|
|
107
|
+
});
|
|
108
|
+
var Token = effect.Schema.Struct({
|
|
109
|
+
id: TokenId,
|
|
110
|
+
name: NonEmptyString,
|
|
111
|
+
scopes: effect.Schema.Array(effect.Schema.String),
|
|
112
|
+
last_used_at: effect.Schema.NullOr(Timestamp),
|
|
113
|
+
expires_at: effect.Schema.NullOr(Timestamp),
|
|
114
|
+
created_at: Timestamp
|
|
115
|
+
});
|
|
116
|
+
var PaginationMeta = effect.Schema.Struct({
|
|
117
|
+
total: effect.Schema.NullOr(effect.Schema.Number),
|
|
118
|
+
limit: effect.Schema.Number,
|
|
119
|
+
offset: effect.Schema.Number
|
|
120
|
+
});
|
|
121
|
+
var PaginatedResponse = (schema) => effect.Schema.Struct({
|
|
122
|
+
data: effect.Schema.Array(schema),
|
|
123
|
+
meta: PaginationMeta
|
|
124
|
+
});
|
|
125
|
+
var WebhookEventType = effect.Schema.Literal(
|
|
126
|
+
"payment.success",
|
|
127
|
+
"payment.failed",
|
|
128
|
+
"subscription.created",
|
|
129
|
+
"subscription.payment_succeeded",
|
|
130
|
+
"subscription.payment_failed",
|
|
131
|
+
"subscription.renewal_due",
|
|
132
|
+
"subscription.canceled"
|
|
133
|
+
);
|
|
134
|
+
var WebhookEvent = effect.Schema.Struct({
|
|
135
|
+
type: WebhookEventType,
|
|
136
|
+
id: effect.Schema.optional(effect.Schema.String),
|
|
137
|
+
data: effect.Schema.Union(
|
|
138
|
+
Payment,
|
|
139
|
+
Subscription,
|
|
140
|
+
Customer,
|
|
141
|
+
effect.Schema.Struct({
|
|
142
|
+
id: effect.Schema.String,
|
|
143
|
+
amount: effect.Schema.optional(effect.Schema.Number),
|
|
144
|
+
currency: effect.Schema.optional(effect.Schema.String),
|
|
145
|
+
status: effect.Schema.String,
|
|
146
|
+
metadata: effect.Schema.optional(Metadata)
|
|
147
|
+
})
|
|
148
|
+
),
|
|
149
|
+
is_test: effect.Schema.Boolean,
|
|
150
|
+
created: effect.Schema.optional(effect.Schema.Number)
|
|
151
|
+
});
|
|
152
|
+
var CreateCheckoutParams = effect.Schema.Struct({
|
|
153
|
+
amount: effect.Schema.optional(MinorUnitsInt),
|
|
154
|
+
currency: effect.Schema.optionalWith(effect.Schema.String, { default: () => "NPR" }),
|
|
155
|
+
provider: Provider,
|
|
156
|
+
returnUrl: UrlString,
|
|
157
|
+
cancelUrl: effect.Schema.optional(UrlString),
|
|
158
|
+
metadata: effect.Schema.optional(Metadata),
|
|
159
|
+
subscriptionId: effect.Schema.optional(SubscriptionId)
|
|
160
|
+
}).pipe(
|
|
161
|
+
effect.Schema.filter((data) => {
|
|
162
|
+
if (!data.subscriptionId && !data.amount) {
|
|
163
|
+
return "amount is required when subscriptionId is not provided";
|
|
164
|
+
}
|
|
165
|
+
return true;
|
|
166
|
+
})
|
|
167
|
+
);
|
|
168
|
+
var CheckoutSession = effect.Schema.Struct({
|
|
169
|
+
id: CheckoutSessionId,
|
|
170
|
+
checkout_url: UrlString,
|
|
171
|
+
payment_method: effect.Schema.Struct({
|
|
172
|
+
type: Provider,
|
|
173
|
+
url: effect.Schema.optional(UrlString),
|
|
174
|
+
method: effect.Schema.optional(effect.Schema.Literal("GET", "POST")),
|
|
175
|
+
fields: effect.Schema.optional(
|
|
176
|
+
effect.Schema.Record({ key: effect.Schema.String, value: effect.Schema.String })
|
|
177
|
+
)
|
|
178
|
+
})
|
|
179
|
+
});
|
|
180
|
+
var CreateCustomerParams = effect.Schema.Struct({
|
|
181
|
+
merchant_customer_id: NonEmptyString,
|
|
182
|
+
email: effect.Schema.optional(Email),
|
|
183
|
+
name: effect.Schema.optional(NonEmptyString),
|
|
184
|
+
phone: effect.Schema.optional(effect.Schema.String),
|
|
185
|
+
project_id: effect.Schema.optional(ProjectId),
|
|
186
|
+
metadata: effect.Schema.optional(Metadata)
|
|
187
|
+
});
|
|
188
|
+
var ListPaymentsParams = effect.Schema.Struct({
|
|
189
|
+
limit: effect.Schema.optional(effect.Schema.NumberFromString),
|
|
190
|
+
offset: effect.Schema.optional(effect.Schema.NumberFromString),
|
|
191
|
+
projectId: effect.Schema.optional(ProjectId)
|
|
192
|
+
});
|
|
193
|
+
var ListCustomersParams = effect.Schema.Struct({
|
|
194
|
+
limit: effect.Schema.optional(effect.Schema.NumberFromString),
|
|
195
|
+
offset: effect.Schema.optional(effect.Schema.NumberFromString),
|
|
196
|
+
email: effect.Schema.optional(effect.Schema.String),
|
|
197
|
+
merchant_customer_id: effect.Schema.optional(effect.Schema.String),
|
|
198
|
+
projectId: effect.Schema.optional(ProjectId)
|
|
199
|
+
});
|
|
200
|
+
var UpdateCustomerParams = effect.Schema.Struct({
|
|
201
|
+
email: effect.Schema.optional(Email),
|
|
202
|
+
name: effect.Schema.optional(NonEmptyString),
|
|
203
|
+
phone: effect.Schema.optional(effect.Schema.String),
|
|
204
|
+
metadata: effect.Schema.optional(Metadata)
|
|
205
|
+
});
|
|
206
|
+
var CreateSubscriptionParams = effect.Schema.Struct({
|
|
207
|
+
customer_id: CustomerId,
|
|
208
|
+
amount: MinorUnitsInt,
|
|
209
|
+
currency: effect.Schema.optionalWith(effect.Schema.String, { default: () => "NPR" }),
|
|
210
|
+
interval: SubscriptionInterval,
|
|
211
|
+
interval_count: effect.Schema.optional(effect.Schema.Number),
|
|
212
|
+
project_id: effect.Schema.optional(ProjectId),
|
|
213
|
+
auto_send_link: effect.Schema.optional(effect.Schema.Boolean),
|
|
214
|
+
metadata: effect.Schema.optional(Metadata)
|
|
215
|
+
});
|
|
216
|
+
var CallbackQueryParams = effect.Schema.Struct({
|
|
217
|
+
payment_id: effect.Schema.optional(effect.Schema.String),
|
|
218
|
+
data: effect.Schema.optional(effect.Schema.String),
|
|
219
|
+
pidx: effect.Schema.optional(effect.Schema.String)
|
|
220
|
+
});
|
|
221
|
+
var ListSubscriptionsParams = effect.Schema.Struct({
|
|
222
|
+
limit: effect.Schema.optional(effect.Schema.NumberFromString),
|
|
223
|
+
offset: effect.Schema.optional(effect.Schema.NumberFromString),
|
|
224
|
+
projectId: effect.Schema.optional(ProjectId),
|
|
225
|
+
customerId: effect.Schema.optional(CustomerId),
|
|
226
|
+
status: effect.Schema.optional(SubscriptionStatus)
|
|
227
|
+
});
|
|
228
|
+
var RealtimeTriggerPayload = effect.Schema.Struct({
|
|
229
|
+
event: effect.Schema.optional(WebhookEventType),
|
|
230
|
+
data: effect.Schema.optional(effect.Schema.Any)
|
|
231
|
+
});
|
|
232
|
+
var PayArkConfig = effect.Schema.Struct({
|
|
233
|
+
apiKey: effect.Schema.String,
|
|
234
|
+
baseUrl: effect.Schema.optional(effect.Schema.String),
|
|
235
|
+
timeout: effect.Schema.optional(effect.Schema.Number),
|
|
236
|
+
maxRetries: effect.Schema.optional(effect.Schema.Number),
|
|
237
|
+
sandbox: effect.Schema.optional(effect.Schema.Boolean)
|
|
238
|
+
});
|
|
239
|
+
var PayArkErrorBody = effect.Schema.Struct({
|
|
240
|
+
error: effect.Schema.String,
|
|
241
|
+
details: effect.Schema.optional(effect.Schema.Any)
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
exports.CallbackQueryParams = CallbackQueryParams;
|
|
245
|
+
exports.CheckoutSession = CheckoutSession;
|
|
246
|
+
exports.CheckoutSessionId = CheckoutSessionId;
|
|
247
|
+
exports.CreateCheckoutParams = CreateCheckoutParams;
|
|
248
|
+
exports.CreateCustomerParams = CreateCustomerParams;
|
|
249
|
+
exports.CreateSubscriptionParams = CreateSubscriptionParams;
|
|
250
|
+
exports.Customer = Customer;
|
|
251
|
+
exports.CustomerId = CustomerId;
|
|
252
|
+
exports.Email = Email;
|
|
253
|
+
exports.Id = Id;
|
|
254
|
+
exports.ListCustomersParams = ListCustomersParams;
|
|
255
|
+
exports.ListPaymentsParams = ListPaymentsParams;
|
|
256
|
+
exports.ListSubscriptionsParams = ListSubscriptionsParams;
|
|
257
|
+
exports.Metadata = Metadata;
|
|
258
|
+
exports.PaginatedResponse = PaginatedResponse;
|
|
259
|
+
exports.PaginationMeta = PaginationMeta;
|
|
260
|
+
exports.PayArkConfig = PayArkConfig;
|
|
261
|
+
exports.PayArkErrorBody = PayArkErrorBody;
|
|
262
|
+
exports.Payment = Payment;
|
|
263
|
+
exports.PaymentId = PaymentId;
|
|
264
|
+
exports.PaymentStatus = PaymentStatus;
|
|
265
|
+
exports.Project = Project;
|
|
266
|
+
exports.ProjectId = ProjectId;
|
|
267
|
+
exports.Provider = Provider;
|
|
268
|
+
exports.RealtimeTriggerPayload = RealtimeTriggerPayload;
|
|
269
|
+
exports.Subscription = Subscription;
|
|
270
|
+
exports.SubscriptionId = SubscriptionId;
|
|
271
|
+
exports.SubscriptionInterval = SubscriptionInterval;
|
|
272
|
+
exports.SubscriptionStatus = SubscriptionStatus;
|
|
273
|
+
exports.Timestamp = Timestamp;
|
|
274
|
+
exports.Timestamps = Timestamps;
|
|
275
|
+
exports.Token = Token;
|
|
276
|
+
exports.TokenId = TokenId;
|
|
277
|
+
exports.UpdateCustomerParams = UpdateCustomerParams;
|
|
278
|
+
exports.WebhookEvent = WebhookEvent;
|
|
279
|
+
exports.WebhookEventType = WebhookEventType;
|
|
280
|
+
//# sourceMappingURL=schemas.js.map
|
|
281
|
+
//# sourceMappingURL=schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/schemas/validation.ts","../src/schemas.ts"],"names":["Schema"],"mappings":"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","file":"schemas.js","sourcesContent":["import { Schema } from \"effect\";\n\n/**\n * ── Refinements ──\n */\n\nexport const NonEmptyString = Schema.String.pipe(\n Schema.nonEmptyString(),\n Schema.brand(\"NonEmptyString\"),\n);\nexport type NonEmptyString = Schema.Schema.Type<typeof NonEmptyString>;\n\nexport const UrlString = Schema.String.pipe(\n Schema.pattern(/^https?:\\/\\/.+/),\n Schema.brand(\"UrlString\"),\n);\nexport type UrlString = Schema.Schema.Type<typeof UrlString>;\n\nexport const MinorUnitsInt = Schema.Number.pipe(\n Schema.int(),\n Schema.greaterThan(0),\n Schema.brand(\"MinorUnitsInt\"),\n);\nexport type MinorUnitsInt = Schema.Schema.Type<typeof MinorUnitsInt>;\n","import { Schema } from \"effect\";\nimport * as V from \"./schemas/validation\";\n\n/**\n * ── Branded Types ──\n */\nexport const Id = Schema.String.pipe(Schema.brand(\"Id\"));\nexport const ProjectId = Schema.String.pipe(Schema.brand(\"ProjectId\"));\nexport const PaymentId = Schema.String.pipe(Schema.brand(\"PaymentId\"));\nexport const CheckoutSessionId = Schema.String.pipe(\n Schema.brand(\"CheckoutSessionId\"),\n);\nexport const SubscriptionId = Schema.String.pipe(\n Schema.brand(\"SubscriptionId\"),\n);\nexport const CustomerId = Schema.String.pipe(Schema.brand(\"CustomerId\"));\nexport const TokenId = Schema.String.pipe(Schema.brand(\"TokenId\"));\n\nexport type Id = Schema.Schema.Type<typeof Id>;\nexport type ProjectId = Schema.Schema.Type<typeof ProjectId>;\nexport type PaymentId = Schema.Schema.Type<typeof PaymentId>;\nexport type CheckoutSessionId = Schema.Schema.Type<typeof CheckoutSessionId>;\nexport type SubscriptionId = Schema.Schema.Type<typeof SubscriptionId>;\nexport type CustomerId = Schema.Schema.Type<typeof CustomerId>;\nexport type TokenId = Schema.Schema.Type<typeof TokenId>;\n\n/**\n * ── Atomic Atoms ──\n */\nexport const Email = Schema.String.pipe(\n Schema.filter((s) => s.includes(\"@\")),\n Schema.brand(\"Email\"),\n);\nexport type Email = Schema.Schema.Type<typeof Email>;\n\nexport const Timestamp = Schema.String.pipe(Schema.brand(\"Timestamp\"));\nexport type Timestamp = Schema.Schema.Type<typeof Timestamp>;\n\nexport const Metadata = Schema.Record({\n key: Schema.String,\n value: Schema.Any,\n});\nexport type Metadata = Schema.Schema.Type<typeof Metadata>;\n\nexport const Timestamps = Schema.Struct({\n created_at: Timestamp,\n updated_at: Timestamp,\n});\nexport type Timestamps = Schema.Schema.Type<typeof Timestamps>;\n\n/**\n * ── Enums ──\n */\nexport const Provider = Schema.Literal(\n \"esewa\",\n \"khalti\",\n \"connectips\",\n \"imepay\",\n \"fonepay\",\n \"sandbox\",\n);\nexport type Provider = Schema.Schema.Type<typeof Provider>;\n\nexport const PaymentStatus = Schema.Literal(\"pending\", \"success\", \"failed\");\nexport type PaymentStatus = Schema.Schema.Type<typeof PaymentStatus>;\n\nexport const SubscriptionStatus = Schema.Literal(\n \"active\",\n \"past_due\",\n \"canceled\",\n \"paused\",\n);\nexport type SubscriptionStatus = Schema.Schema.Type<typeof SubscriptionStatus>;\n\nexport const SubscriptionInterval = Schema.Literal(\"month\", \"year\", \"week\");\nexport type SubscriptionInterval = Schema.Schema.Type<\n typeof SubscriptionInterval\n>;\n\n/**\n * ── Models ──\n */\n\nexport const Customer = Schema.Struct({\n id: CustomerId,\n merchant_customer_id: V.NonEmptyString,\n email: Schema.NullOr(Email),\n name: Schema.NullOr(V.NonEmptyString),\n phone: Schema.NullOr(Schema.String),\n project_id: ProjectId,\n metadata: Schema.NullOr(Metadata),\n created_at: Timestamp,\n updated_at: Schema.optional(Timestamp),\n});\nexport type Customer = Schema.Schema.Type<typeof Customer>;\n\nexport const Payment = Schema.Struct({\n id: PaymentId,\n project_id: ProjectId,\n amount: Schema.Number,\n currency: Schema.String,\n status: PaymentStatus,\n provider_ref: Schema.optional(Schema.NullOr(Schema.String)),\n metadata_json: Schema.optional(Schema.NullOr(Metadata)),\n gateway_response: Schema.optional(Schema.NullOr(Schema.Any)),\n created_at: Timestamp,\n updated_at: Schema.optional(Timestamp),\n});\nexport type Payment = Schema.Schema.Type<typeof Payment>;\n\nexport const Subscription = Schema.Struct({\n id: SubscriptionId,\n project_id: ProjectId,\n customer_id: CustomerId,\n status: SubscriptionStatus,\n amount: Schema.Number,\n currency: Schema.String,\n interval: SubscriptionInterval,\n interval_count: Schema.Number,\n current_period_start: Timestamp,\n current_period_end: Timestamp,\n payment_link: V.UrlString,\n auto_send_link: Schema.Boolean,\n metadata: Schema.optional(Schema.NullOr(Metadata)),\n canceled_at: Schema.optional(Schema.NullOr(Timestamp)),\n created_at: Timestamp,\n updated_at: Schema.optional(Timestamp),\n});\nexport type Subscription = Schema.Schema.Type<typeof Subscription>;\n\nexport const Project = Schema.Struct({\n id: ProjectId,\n name: V.NonEmptyString,\n api_key_secret: Schema.String,\n created_at: Timestamp,\n});\nexport type Project = Schema.Schema.Type<typeof Project>;\n\nexport const Token = Schema.Struct({\n id: TokenId,\n name: V.NonEmptyString,\n scopes: Schema.Array(Schema.String),\n last_used_at: Schema.NullOr(Timestamp),\n expires_at: Schema.NullOr(Timestamp),\n created_at: Timestamp,\n});\nexport type Token = Schema.Schema.Type<typeof Token>;\n\n/**\n * ── Pagination ──\n */\nexport const PaginationMeta = Schema.Struct({\n total: Schema.NullOr(Schema.Number),\n limit: Schema.Number,\n offset: Schema.Number,\n});\nexport type PaginationMeta = Schema.Schema.Type<typeof PaginationMeta>;\n\nexport const PaginatedResponse = <A, I, R>(schema: Schema.Schema<A, I, R>) =>\n Schema.Struct({\n data: Schema.Array(schema),\n meta: PaginationMeta,\n });\n\nexport interface PaginatedResponse<T> {\n readonly data: readonly T[];\n readonly meta: PaginationMeta;\n}\n\n/**\n * ── Webhooks ──\n */\nexport const WebhookEventType = Schema.Literal(\n \"payment.success\",\n \"payment.failed\",\n \"subscription.created\",\n \"subscription.payment_succeeded\",\n \"subscription.payment_failed\",\n \"subscription.renewal_due\",\n \"subscription.canceled\",\n);\nexport type WebhookEventType = Schema.Schema.Type<typeof WebhookEventType>;\n\nexport const WebhookEvent = Schema.Struct({\n type: WebhookEventType,\n id: Schema.optional(Schema.String),\n data: Schema.Union(\n Payment,\n Subscription,\n Customer,\n Schema.Struct({\n id: Schema.String,\n amount: Schema.optional(Schema.Number),\n currency: Schema.optional(Schema.String),\n status: Schema.String,\n metadata: Schema.optional(Metadata),\n }),\n ),\n is_test: Schema.Boolean,\n created: Schema.optional(Schema.Number),\n});\nexport type WebhookEvent = Schema.Schema.Type<typeof WebhookEvent>;\n\n/**\n * ── Params & Inputs ──\n */\n\nexport const CreateCheckoutParams = Schema.Struct({\n amount: Schema.optional(V.MinorUnitsInt),\n currency: Schema.optionalWith(Schema.String, { default: () => \"NPR\" }),\n provider: Provider,\n returnUrl: V.UrlString,\n cancelUrl: Schema.optional(V.UrlString),\n metadata: Schema.optional(Metadata),\n subscriptionId: Schema.optional(SubscriptionId),\n}).pipe(\n Schema.filter((data) => {\n if (!data.subscriptionId && !data.amount) {\n return \"amount is required when subscriptionId is not provided\";\n }\n return true;\n }),\n);\nexport type CreateCheckoutParams = Schema.Schema.Type<\n typeof CreateCheckoutParams\n>;\n\nexport const CheckoutSession = Schema.Struct({\n id: CheckoutSessionId,\n checkout_url: V.UrlString,\n payment_method: Schema.Struct({\n type: Provider,\n url: Schema.optional(V.UrlString),\n method: Schema.optional(Schema.Literal(\"GET\", \"POST\")),\n fields: Schema.optional(\n Schema.Record({ key: Schema.String, value: Schema.String }),\n ),\n }),\n});\nexport type CheckoutSession = Schema.Schema.Type<typeof CheckoutSession>;\n\nexport const CreateCustomerParams = Schema.Struct({\n merchant_customer_id: V.NonEmptyString,\n email: Schema.optional(Email),\n name: Schema.optional(V.NonEmptyString),\n phone: Schema.optional(Schema.String),\n project_id: Schema.optional(ProjectId),\n metadata: Schema.optional(Metadata),\n});\nexport type CreateCustomerParams = Schema.Schema.Type<\n typeof CreateCustomerParams\n>;\n\nexport const ListPaymentsParams = Schema.Struct({\n limit: Schema.optional(Schema.NumberFromString),\n offset: Schema.optional(Schema.NumberFromString),\n projectId: Schema.optional(ProjectId),\n});\nexport type ListPaymentsParams = Schema.Schema.Type<typeof ListPaymentsParams>;\n\nexport const ListCustomersParams = Schema.Struct({\n limit: Schema.optional(Schema.NumberFromString),\n offset: Schema.optional(Schema.NumberFromString),\n email: Schema.optional(Schema.String),\n merchant_customer_id: Schema.optional(Schema.String),\n projectId: Schema.optional(ProjectId),\n});\nexport type ListCustomersParams = Schema.Schema.Type<\n typeof ListCustomersParams\n>;\n\nexport const UpdateCustomerParams = Schema.Struct({\n email: Schema.optional(Email),\n name: Schema.optional(V.NonEmptyString),\n phone: Schema.optional(Schema.String),\n metadata: Schema.optional(Metadata),\n});\nexport type UpdateCustomerParams = Schema.Schema.Type<\n typeof UpdateCustomerParams\n>;\n\nexport const CreateSubscriptionParams = Schema.Struct({\n customer_id: CustomerId,\n amount: V.MinorUnitsInt,\n currency: Schema.optionalWith(Schema.String, { default: () => \"NPR\" }),\n interval: SubscriptionInterval,\n interval_count: Schema.optional(Schema.Number),\n project_id: Schema.optional(ProjectId),\n auto_send_link: Schema.optional(Schema.Boolean),\n metadata: Schema.optional(Metadata),\n});\nexport type CreateSubscriptionParams = Schema.Schema.Type<\n typeof CreateSubscriptionParams\n>;\n\nexport const CallbackQueryParams = Schema.Struct({\n payment_id: Schema.optional(Schema.String),\n data: Schema.optional(Schema.String),\n pidx: Schema.optional(Schema.String),\n});\nexport type CallbackQueryParams = Schema.Schema.Type<\n typeof CallbackQueryParams\n>;\n\nexport const ListSubscriptionsParams = Schema.Struct({\n limit: Schema.optional(Schema.NumberFromString),\n offset: Schema.optional(Schema.NumberFromString),\n projectId: Schema.optional(ProjectId),\n customerId: Schema.optional(CustomerId),\n status: Schema.optional(SubscriptionStatus),\n});\nexport type ListSubscriptionsParams = Schema.Schema.Type<\n typeof ListSubscriptionsParams\n>;\n\nexport const RealtimeTriggerPayload = Schema.Struct({\n event: Schema.optional(WebhookEventType),\n data: Schema.optional(Schema.Any),\n});\nexport type RealtimeTriggerPayload = Schema.Schema.Type<\n typeof RealtimeTriggerPayload\n>;\n\n/**\n * ── Client Config ──\n */\nexport const PayArkConfig = Schema.Struct({\n apiKey: Schema.String,\n baseUrl: Schema.optional(Schema.String),\n timeout: Schema.optional(Schema.Number),\n maxRetries: Schema.optional(Schema.Number),\n sandbox: Schema.optional(Schema.Boolean),\n});\nexport type PayArkConfig = Schema.Schema.Type<typeof PayArkConfig>;\n\n/**\n * ── Error Schemas ──\n */\nexport const PayArkErrorBody = Schema.Struct({\n error: Schema.String,\n details: Schema.optional(Schema.Any),\n});\nexport type PayArkErrorBody = Schema.Schema.Type<typeof PayArkErrorBody>;\n"]}
|
package/dist/schemas.mjs
ADDED
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
|
|
3
|
+
// src/schemas.ts
|
|
4
|
+
var NonEmptyString = Schema.String.pipe(
|
|
5
|
+
Schema.nonEmptyString(),
|
|
6
|
+
Schema.brand("NonEmptyString")
|
|
7
|
+
);
|
|
8
|
+
var UrlString = Schema.String.pipe(
|
|
9
|
+
Schema.pattern(/^https?:\/\/.+/),
|
|
10
|
+
Schema.brand("UrlString")
|
|
11
|
+
);
|
|
12
|
+
var MinorUnitsInt = Schema.Number.pipe(
|
|
13
|
+
Schema.int(),
|
|
14
|
+
Schema.greaterThan(0),
|
|
15
|
+
Schema.brand("MinorUnitsInt")
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
// src/schemas.ts
|
|
19
|
+
var Id = Schema.String.pipe(Schema.brand("Id"));
|
|
20
|
+
var ProjectId = Schema.String.pipe(Schema.brand("ProjectId"));
|
|
21
|
+
var PaymentId = Schema.String.pipe(Schema.brand("PaymentId"));
|
|
22
|
+
var CheckoutSessionId = Schema.String.pipe(
|
|
23
|
+
Schema.brand("CheckoutSessionId")
|
|
24
|
+
);
|
|
25
|
+
var SubscriptionId = Schema.String.pipe(
|
|
26
|
+
Schema.brand("SubscriptionId")
|
|
27
|
+
);
|
|
28
|
+
var CustomerId = Schema.String.pipe(Schema.brand("CustomerId"));
|
|
29
|
+
var TokenId = Schema.String.pipe(Schema.brand("TokenId"));
|
|
30
|
+
var Email = Schema.String.pipe(
|
|
31
|
+
Schema.filter((s) => s.includes("@")),
|
|
32
|
+
Schema.brand("Email")
|
|
33
|
+
);
|
|
34
|
+
var Timestamp = Schema.String.pipe(Schema.brand("Timestamp"));
|
|
35
|
+
var Metadata = Schema.Record({
|
|
36
|
+
key: Schema.String,
|
|
37
|
+
value: Schema.Any
|
|
38
|
+
});
|
|
39
|
+
var Timestamps = Schema.Struct({
|
|
40
|
+
created_at: Timestamp,
|
|
41
|
+
updated_at: Timestamp
|
|
42
|
+
});
|
|
43
|
+
var Provider = Schema.Literal(
|
|
44
|
+
"esewa",
|
|
45
|
+
"khalti",
|
|
46
|
+
"connectips",
|
|
47
|
+
"imepay",
|
|
48
|
+
"fonepay",
|
|
49
|
+
"sandbox"
|
|
50
|
+
);
|
|
51
|
+
var PaymentStatus = Schema.Literal("pending", "success", "failed");
|
|
52
|
+
var SubscriptionStatus = Schema.Literal(
|
|
53
|
+
"active",
|
|
54
|
+
"past_due",
|
|
55
|
+
"canceled",
|
|
56
|
+
"paused"
|
|
57
|
+
);
|
|
58
|
+
var SubscriptionInterval = Schema.Literal("month", "year", "week");
|
|
59
|
+
var Customer = Schema.Struct({
|
|
60
|
+
id: CustomerId,
|
|
61
|
+
merchant_customer_id: NonEmptyString,
|
|
62
|
+
email: Schema.NullOr(Email),
|
|
63
|
+
name: Schema.NullOr(NonEmptyString),
|
|
64
|
+
phone: Schema.NullOr(Schema.String),
|
|
65
|
+
project_id: ProjectId,
|
|
66
|
+
metadata: Schema.NullOr(Metadata),
|
|
67
|
+
created_at: Timestamp,
|
|
68
|
+
updated_at: Schema.optional(Timestamp)
|
|
69
|
+
});
|
|
70
|
+
var Payment = Schema.Struct({
|
|
71
|
+
id: PaymentId,
|
|
72
|
+
project_id: ProjectId,
|
|
73
|
+
amount: Schema.Number,
|
|
74
|
+
currency: Schema.String,
|
|
75
|
+
status: PaymentStatus,
|
|
76
|
+
provider_ref: Schema.optional(Schema.NullOr(Schema.String)),
|
|
77
|
+
metadata_json: Schema.optional(Schema.NullOr(Metadata)),
|
|
78
|
+
gateway_response: Schema.optional(Schema.NullOr(Schema.Any)),
|
|
79
|
+
created_at: Timestamp,
|
|
80
|
+
updated_at: Schema.optional(Timestamp)
|
|
81
|
+
});
|
|
82
|
+
var Subscription = Schema.Struct({
|
|
83
|
+
id: SubscriptionId,
|
|
84
|
+
project_id: ProjectId,
|
|
85
|
+
customer_id: CustomerId,
|
|
86
|
+
status: SubscriptionStatus,
|
|
87
|
+
amount: Schema.Number,
|
|
88
|
+
currency: Schema.String,
|
|
89
|
+
interval: SubscriptionInterval,
|
|
90
|
+
interval_count: Schema.Number,
|
|
91
|
+
current_period_start: Timestamp,
|
|
92
|
+
current_period_end: Timestamp,
|
|
93
|
+
payment_link: UrlString,
|
|
94
|
+
auto_send_link: Schema.Boolean,
|
|
95
|
+
metadata: Schema.optional(Schema.NullOr(Metadata)),
|
|
96
|
+
canceled_at: Schema.optional(Schema.NullOr(Timestamp)),
|
|
97
|
+
created_at: Timestamp,
|
|
98
|
+
updated_at: Schema.optional(Timestamp)
|
|
99
|
+
});
|
|
100
|
+
var Project = Schema.Struct({
|
|
101
|
+
id: ProjectId,
|
|
102
|
+
name: NonEmptyString,
|
|
103
|
+
api_key_secret: Schema.String,
|
|
104
|
+
created_at: Timestamp
|
|
105
|
+
});
|
|
106
|
+
var Token = Schema.Struct({
|
|
107
|
+
id: TokenId,
|
|
108
|
+
name: NonEmptyString,
|
|
109
|
+
scopes: Schema.Array(Schema.String),
|
|
110
|
+
last_used_at: Schema.NullOr(Timestamp),
|
|
111
|
+
expires_at: Schema.NullOr(Timestamp),
|
|
112
|
+
created_at: Timestamp
|
|
113
|
+
});
|
|
114
|
+
var PaginationMeta = Schema.Struct({
|
|
115
|
+
total: Schema.NullOr(Schema.Number),
|
|
116
|
+
limit: Schema.Number,
|
|
117
|
+
offset: Schema.Number
|
|
118
|
+
});
|
|
119
|
+
var PaginatedResponse = (schema) => Schema.Struct({
|
|
120
|
+
data: Schema.Array(schema),
|
|
121
|
+
meta: PaginationMeta
|
|
122
|
+
});
|
|
123
|
+
var WebhookEventType = Schema.Literal(
|
|
124
|
+
"payment.success",
|
|
125
|
+
"payment.failed",
|
|
126
|
+
"subscription.created",
|
|
127
|
+
"subscription.payment_succeeded",
|
|
128
|
+
"subscription.payment_failed",
|
|
129
|
+
"subscription.renewal_due",
|
|
130
|
+
"subscription.canceled"
|
|
131
|
+
);
|
|
132
|
+
var WebhookEvent = Schema.Struct({
|
|
133
|
+
type: WebhookEventType,
|
|
134
|
+
id: Schema.optional(Schema.String),
|
|
135
|
+
data: Schema.Union(
|
|
136
|
+
Payment,
|
|
137
|
+
Subscription,
|
|
138
|
+
Customer,
|
|
139
|
+
Schema.Struct({
|
|
140
|
+
id: Schema.String,
|
|
141
|
+
amount: Schema.optional(Schema.Number),
|
|
142
|
+
currency: Schema.optional(Schema.String),
|
|
143
|
+
status: Schema.String,
|
|
144
|
+
metadata: Schema.optional(Metadata)
|
|
145
|
+
})
|
|
146
|
+
),
|
|
147
|
+
is_test: Schema.Boolean,
|
|
148
|
+
created: Schema.optional(Schema.Number)
|
|
149
|
+
});
|
|
150
|
+
var CreateCheckoutParams = Schema.Struct({
|
|
151
|
+
amount: Schema.optional(MinorUnitsInt),
|
|
152
|
+
currency: Schema.optionalWith(Schema.String, { default: () => "NPR" }),
|
|
153
|
+
provider: Provider,
|
|
154
|
+
returnUrl: UrlString,
|
|
155
|
+
cancelUrl: Schema.optional(UrlString),
|
|
156
|
+
metadata: Schema.optional(Metadata),
|
|
157
|
+
subscriptionId: Schema.optional(SubscriptionId)
|
|
158
|
+
}).pipe(
|
|
159
|
+
Schema.filter((data) => {
|
|
160
|
+
if (!data.subscriptionId && !data.amount) {
|
|
161
|
+
return "amount is required when subscriptionId is not provided";
|
|
162
|
+
}
|
|
163
|
+
return true;
|
|
164
|
+
})
|
|
165
|
+
);
|
|
166
|
+
var CheckoutSession = Schema.Struct({
|
|
167
|
+
id: CheckoutSessionId,
|
|
168
|
+
checkout_url: UrlString,
|
|
169
|
+
payment_method: Schema.Struct({
|
|
170
|
+
type: Provider,
|
|
171
|
+
url: Schema.optional(UrlString),
|
|
172
|
+
method: Schema.optional(Schema.Literal("GET", "POST")),
|
|
173
|
+
fields: Schema.optional(
|
|
174
|
+
Schema.Record({ key: Schema.String, value: Schema.String })
|
|
175
|
+
)
|
|
176
|
+
})
|
|
177
|
+
});
|
|
178
|
+
var CreateCustomerParams = Schema.Struct({
|
|
179
|
+
merchant_customer_id: NonEmptyString,
|
|
180
|
+
email: Schema.optional(Email),
|
|
181
|
+
name: Schema.optional(NonEmptyString),
|
|
182
|
+
phone: Schema.optional(Schema.String),
|
|
183
|
+
project_id: Schema.optional(ProjectId),
|
|
184
|
+
metadata: Schema.optional(Metadata)
|
|
185
|
+
});
|
|
186
|
+
var ListPaymentsParams = Schema.Struct({
|
|
187
|
+
limit: Schema.optional(Schema.NumberFromString),
|
|
188
|
+
offset: Schema.optional(Schema.NumberFromString),
|
|
189
|
+
projectId: Schema.optional(ProjectId)
|
|
190
|
+
});
|
|
191
|
+
var ListCustomersParams = Schema.Struct({
|
|
192
|
+
limit: Schema.optional(Schema.NumberFromString),
|
|
193
|
+
offset: Schema.optional(Schema.NumberFromString),
|
|
194
|
+
email: Schema.optional(Schema.String),
|
|
195
|
+
merchant_customer_id: Schema.optional(Schema.String),
|
|
196
|
+
projectId: Schema.optional(ProjectId)
|
|
197
|
+
});
|
|
198
|
+
var UpdateCustomerParams = Schema.Struct({
|
|
199
|
+
email: Schema.optional(Email),
|
|
200
|
+
name: Schema.optional(NonEmptyString),
|
|
201
|
+
phone: Schema.optional(Schema.String),
|
|
202
|
+
metadata: Schema.optional(Metadata)
|
|
203
|
+
});
|
|
204
|
+
var CreateSubscriptionParams = Schema.Struct({
|
|
205
|
+
customer_id: CustomerId,
|
|
206
|
+
amount: MinorUnitsInt,
|
|
207
|
+
currency: Schema.optionalWith(Schema.String, { default: () => "NPR" }),
|
|
208
|
+
interval: SubscriptionInterval,
|
|
209
|
+
interval_count: Schema.optional(Schema.Number),
|
|
210
|
+
project_id: Schema.optional(ProjectId),
|
|
211
|
+
auto_send_link: Schema.optional(Schema.Boolean),
|
|
212
|
+
metadata: Schema.optional(Metadata)
|
|
213
|
+
});
|
|
214
|
+
var CallbackQueryParams = Schema.Struct({
|
|
215
|
+
payment_id: Schema.optional(Schema.String),
|
|
216
|
+
data: Schema.optional(Schema.String),
|
|
217
|
+
pidx: Schema.optional(Schema.String)
|
|
218
|
+
});
|
|
219
|
+
var ListSubscriptionsParams = Schema.Struct({
|
|
220
|
+
limit: Schema.optional(Schema.NumberFromString),
|
|
221
|
+
offset: Schema.optional(Schema.NumberFromString),
|
|
222
|
+
projectId: Schema.optional(ProjectId),
|
|
223
|
+
customerId: Schema.optional(CustomerId),
|
|
224
|
+
status: Schema.optional(SubscriptionStatus)
|
|
225
|
+
});
|
|
226
|
+
var RealtimeTriggerPayload = Schema.Struct({
|
|
227
|
+
event: Schema.optional(WebhookEventType),
|
|
228
|
+
data: Schema.optional(Schema.Any)
|
|
229
|
+
});
|
|
230
|
+
var PayArkConfig = Schema.Struct({
|
|
231
|
+
apiKey: Schema.String,
|
|
232
|
+
baseUrl: Schema.optional(Schema.String),
|
|
233
|
+
timeout: Schema.optional(Schema.Number),
|
|
234
|
+
maxRetries: Schema.optional(Schema.Number),
|
|
235
|
+
sandbox: Schema.optional(Schema.Boolean)
|
|
236
|
+
});
|
|
237
|
+
var PayArkErrorBody = Schema.Struct({
|
|
238
|
+
error: Schema.String,
|
|
239
|
+
details: Schema.optional(Schema.Any)
|
|
240
|
+
});
|
|
241
|
+
|
|
242
|
+
export { CallbackQueryParams, CheckoutSession, CheckoutSessionId, CreateCheckoutParams, CreateCustomerParams, CreateSubscriptionParams, Customer, CustomerId, Email, Id, ListCustomersParams, ListPaymentsParams, ListSubscriptionsParams, Metadata, PaginatedResponse, PaginationMeta, PayArkConfig, PayArkErrorBody, Payment, PaymentId, PaymentStatus, Project, ProjectId, Provider, RealtimeTriggerPayload, Subscription, SubscriptionId, SubscriptionInterval, SubscriptionStatus, Timestamp, Timestamps, Token, TokenId, UpdateCustomerParams, WebhookEvent, WebhookEventType };
|
|
243
|
+
//# sourceMappingURL=schemas.mjs.map
|
|
244
|
+
//# sourceMappingURL=schemas.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/schemas/validation.ts","../src/schemas.ts"],"names":["Schema"],"mappings":"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","file":"schemas.mjs","sourcesContent":["import { Schema } from \"effect\";\n\n/**\n * ── Refinements ──\n */\n\nexport const NonEmptyString = Schema.String.pipe(\n Schema.nonEmptyString(),\n Schema.brand(\"NonEmptyString\"),\n);\nexport type NonEmptyString = Schema.Schema.Type<typeof NonEmptyString>;\n\nexport const UrlString = Schema.String.pipe(\n Schema.pattern(/^https?:\\/\\/.+/),\n Schema.brand(\"UrlString\"),\n);\nexport type UrlString = Schema.Schema.Type<typeof UrlString>;\n\nexport const MinorUnitsInt = Schema.Number.pipe(\n Schema.int(),\n Schema.greaterThan(0),\n Schema.brand(\"MinorUnitsInt\"),\n);\nexport type MinorUnitsInt = Schema.Schema.Type<typeof MinorUnitsInt>;\n","import { Schema } from \"effect\";\nimport * as V from \"./schemas/validation\";\n\n/**\n * ── Branded Types ──\n */\nexport const Id = Schema.String.pipe(Schema.brand(\"Id\"));\nexport const ProjectId = Schema.String.pipe(Schema.brand(\"ProjectId\"));\nexport const PaymentId = Schema.String.pipe(Schema.brand(\"PaymentId\"));\nexport const CheckoutSessionId = Schema.String.pipe(\n Schema.brand(\"CheckoutSessionId\"),\n);\nexport const SubscriptionId = Schema.String.pipe(\n Schema.brand(\"SubscriptionId\"),\n);\nexport const CustomerId = Schema.String.pipe(Schema.brand(\"CustomerId\"));\nexport const TokenId = Schema.String.pipe(Schema.brand(\"TokenId\"));\n\nexport type Id = Schema.Schema.Type<typeof Id>;\nexport type ProjectId = Schema.Schema.Type<typeof ProjectId>;\nexport type PaymentId = Schema.Schema.Type<typeof PaymentId>;\nexport type CheckoutSessionId = Schema.Schema.Type<typeof CheckoutSessionId>;\nexport type SubscriptionId = Schema.Schema.Type<typeof SubscriptionId>;\nexport type CustomerId = Schema.Schema.Type<typeof CustomerId>;\nexport type TokenId = Schema.Schema.Type<typeof TokenId>;\n\n/**\n * ── Atomic Atoms ──\n */\nexport const Email = Schema.String.pipe(\n Schema.filter((s) => s.includes(\"@\")),\n Schema.brand(\"Email\"),\n);\nexport type Email = Schema.Schema.Type<typeof Email>;\n\nexport const Timestamp = Schema.String.pipe(Schema.brand(\"Timestamp\"));\nexport type Timestamp = Schema.Schema.Type<typeof Timestamp>;\n\nexport const Metadata = Schema.Record({\n key: Schema.String,\n value: Schema.Any,\n});\nexport type Metadata = Schema.Schema.Type<typeof Metadata>;\n\nexport const Timestamps = Schema.Struct({\n created_at: Timestamp,\n updated_at: Timestamp,\n});\nexport type Timestamps = Schema.Schema.Type<typeof Timestamps>;\n\n/**\n * ── Enums ──\n */\nexport const Provider = Schema.Literal(\n \"esewa\",\n \"khalti\",\n \"connectips\",\n \"imepay\",\n \"fonepay\",\n \"sandbox\",\n);\nexport type Provider = Schema.Schema.Type<typeof Provider>;\n\nexport const PaymentStatus = Schema.Literal(\"pending\", \"success\", \"failed\");\nexport type PaymentStatus = Schema.Schema.Type<typeof PaymentStatus>;\n\nexport const SubscriptionStatus = Schema.Literal(\n \"active\",\n \"past_due\",\n \"canceled\",\n \"paused\",\n);\nexport type SubscriptionStatus = Schema.Schema.Type<typeof SubscriptionStatus>;\n\nexport const SubscriptionInterval = Schema.Literal(\"month\", \"year\", \"week\");\nexport type SubscriptionInterval = Schema.Schema.Type<\n typeof SubscriptionInterval\n>;\n\n/**\n * ── Models ──\n */\n\nexport const Customer = Schema.Struct({\n id: CustomerId,\n merchant_customer_id: V.NonEmptyString,\n email: Schema.NullOr(Email),\n name: Schema.NullOr(V.NonEmptyString),\n phone: Schema.NullOr(Schema.String),\n project_id: ProjectId,\n metadata: Schema.NullOr(Metadata),\n created_at: Timestamp,\n updated_at: Schema.optional(Timestamp),\n});\nexport type Customer = Schema.Schema.Type<typeof Customer>;\n\nexport const Payment = Schema.Struct({\n id: PaymentId,\n project_id: ProjectId,\n amount: Schema.Number,\n currency: Schema.String,\n status: PaymentStatus,\n provider_ref: Schema.optional(Schema.NullOr(Schema.String)),\n metadata_json: Schema.optional(Schema.NullOr(Metadata)),\n gateway_response: Schema.optional(Schema.NullOr(Schema.Any)),\n created_at: Timestamp,\n updated_at: Schema.optional(Timestamp),\n});\nexport type Payment = Schema.Schema.Type<typeof Payment>;\n\nexport const Subscription = Schema.Struct({\n id: SubscriptionId,\n project_id: ProjectId,\n customer_id: CustomerId,\n status: SubscriptionStatus,\n amount: Schema.Number,\n currency: Schema.String,\n interval: SubscriptionInterval,\n interval_count: Schema.Number,\n current_period_start: Timestamp,\n current_period_end: Timestamp,\n payment_link: V.UrlString,\n auto_send_link: Schema.Boolean,\n metadata: Schema.optional(Schema.NullOr(Metadata)),\n canceled_at: Schema.optional(Schema.NullOr(Timestamp)),\n created_at: Timestamp,\n updated_at: Schema.optional(Timestamp),\n});\nexport type Subscription = Schema.Schema.Type<typeof Subscription>;\n\nexport const Project = Schema.Struct({\n id: ProjectId,\n name: V.NonEmptyString,\n api_key_secret: Schema.String,\n created_at: Timestamp,\n});\nexport type Project = Schema.Schema.Type<typeof Project>;\n\nexport const Token = Schema.Struct({\n id: TokenId,\n name: V.NonEmptyString,\n scopes: Schema.Array(Schema.String),\n last_used_at: Schema.NullOr(Timestamp),\n expires_at: Schema.NullOr(Timestamp),\n created_at: Timestamp,\n});\nexport type Token = Schema.Schema.Type<typeof Token>;\n\n/**\n * ── Pagination ──\n */\nexport const PaginationMeta = Schema.Struct({\n total: Schema.NullOr(Schema.Number),\n limit: Schema.Number,\n offset: Schema.Number,\n});\nexport type PaginationMeta = Schema.Schema.Type<typeof PaginationMeta>;\n\nexport const PaginatedResponse = <A, I, R>(schema: Schema.Schema<A, I, R>) =>\n Schema.Struct({\n data: Schema.Array(schema),\n meta: PaginationMeta,\n });\n\nexport interface PaginatedResponse<T> {\n readonly data: readonly T[];\n readonly meta: PaginationMeta;\n}\n\n/**\n * ── Webhooks ──\n */\nexport const WebhookEventType = Schema.Literal(\n \"payment.success\",\n \"payment.failed\",\n \"subscription.created\",\n \"subscription.payment_succeeded\",\n \"subscription.payment_failed\",\n \"subscription.renewal_due\",\n \"subscription.canceled\",\n);\nexport type WebhookEventType = Schema.Schema.Type<typeof WebhookEventType>;\n\nexport const WebhookEvent = Schema.Struct({\n type: WebhookEventType,\n id: Schema.optional(Schema.String),\n data: Schema.Union(\n Payment,\n Subscription,\n Customer,\n Schema.Struct({\n id: Schema.String,\n amount: Schema.optional(Schema.Number),\n currency: Schema.optional(Schema.String),\n status: Schema.String,\n metadata: Schema.optional(Metadata),\n }),\n ),\n is_test: Schema.Boolean,\n created: Schema.optional(Schema.Number),\n});\nexport type WebhookEvent = Schema.Schema.Type<typeof WebhookEvent>;\n\n/**\n * ── Params & Inputs ──\n */\n\nexport const CreateCheckoutParams = Schema.Struct({\n amount: Schema.optional(V.MinorUnitsInt),\n currency: Schema.optionalWith(Schema.String, { default: () => \"NPR\" }),\n provider: Provider,\n returnUrl: V.UrlString,\n cancelUrl: Schema.optional(V.UrlString),\n metadata: Schema.optional(Metadata),\n subscriptionId: Schema.optional(SubscriptionId),\n}).pipe(\n Schema.filter((data) => {\n if (!data.subscriptionId && !data.amount) {\n return \"amount is required when subscriptionId is not provided\";\n }\n return true;\n }),\n);\nexport type CreateCheckoutParams = Schema.Schema.Type<\n typeof CreateCheckoutParams\n>;\n\nexport const CheckoutSession = Schema.Struct({\n id: CheckoutSessionId,\n checkout_url: V.UrlString,\n payment_method: Schema.Struct({\n type: Provider,\n url: Schema.optional(V.UrlString),\n method: Schema.optional(Schema.Literal(\"GET\", \"POST\")),\n fields: Schema.optional(\n Schema.Record({ key: Schema.String, value: Schema.String }),\n ),\n }),\n});\nexport type CheckoutSession = Schema.Schema.Type<typeof CheckoutSession>;\n\nexport const CreateCustomerParams = Schema.Struct({\n merchant_customer_id: V.NonEmptyString,\n email: Schema.optional(Email),\n name: Schema.optional(V.NonEmptyString),\n phone: Schema.optional(Schema.String),\n project_id: Schema.optional(ProjectId),\n metadata: Schema.optional(Metadata),\n});\nexport type CreateCustomerParams = Schema.Schema.Type<\n typeof CreateCustomerParams\n>;\n\nexport const ListPaymentsParams = Schema.Struct({\n limit: Schema.optional(Schema.NumberFromString),\n offset: Schema.optional(Schema.NumberFromString),\n projectId: Schema.optional(ProjectId),\n});\nexport type ListPaymentsParams = Schema.Schema.Type<typeof ListPaymentsParams>;\n\nexport const ListCustomersParams = Schema.Struct({\n limit: Schema.optional(Schema.NumberFromString),\n offset: Schema.optional(Schema.NumberFromString),\n email: Schema.optional(Schema.String),\n merchant_customer_id: Schema.optional(Schema.String),\n projectId: Schema.optional(ProjectId),\n});\nexport type ListCustomersParams = Schema.Schema.Type<\n typeof ListCustomersParams\n>;\n\nexport const UpdateCustomerParams = Schema.Struct({\n email: Schema.optional(Email),\n name: Schema.optional(V.NonEmptyString),\n phone: Schema.optional(Schema.String),\n metadata: Schema.optional(Metadata),\n});\nexport type UpdateCustomerParams = Schema.Schema.Type<\n typeof UpdateCustomerParams\n>;\n\nexport const CreateSubscriptionParams = Schema.Struct({\n customer_id: CustomerId,\n amount: V.MinorUnitsInt,\n currency: Schema.optionalWith(Schema.String, { default: () => \"NPR\" }),\n interval: SubscriptionInterval,\n interval_count: Schema.optional(Schema.Number),\n project_id: Schema.optional(ProjectId),\n auto_send_link: Schema.optional(Schema.Boolean),\n metadata: Schema.optional(Metadata),\n});\nexport type CreateSubscriptionParams = Schema.Schema.Type<\n typeof CreateSubscriptionParams\n>;\n\nexport const CallbackQueryParams = Schema.Struct({\n payment_id: Schema.optional(Schema.String),\n data: Schema.optional(Schema.String),\n pidx: Schema.optional(Schema.String),\n});\nexport type CallbackQueryParams = Schema.Schema.Type<\n typeof CallbackQueryParams\n>;\n\nexport const ListSubscriptionsParams = Schema.Struct({\n limit: Schema.optional(Schema.NumberFromString),\n offset: Schema.optional(Schema.NumberFromString),\n projectId: Schema.optional(ProjectId),\n customerId: Schema.optional(CustomerId),\n status: Schema.optional(SubscriptionStatus),\n});\nexport type ListSubscriptionsParams = Schema.Schema.Type<\n typeof ListSubscriptionsParams\n>;\n\nexport const RealtimeTriggerPayload = Schema.Struct({\n event: Schema.optional(WebhookEventType),\n data: Schema.optional(Schema.Any),\n});\nexport type RealtimeTriggerPayload = Schema.Schema.Type<\n typeof RealtimeTriggerPayload\n>;\n\n/**\n * ── Client Config ──\n */\nexport const PayArkConfig = Schema.Struct({\n apiKey: Schema.String,\n baseUrl: Schema.optional(Schema.String),\n timeout: Schema.optional(Schema.Number),\n maxRetries: Schema.optional(Schema.Number),\n sandbox: Schema.optional(Schema.Boolean),\n});\nexport type PayArkConfig = Schema.Schema.Type<typeof PayArkConfig>;\n\n/**\n * ── Error Schemas ──\n */\nexport const PayArkErrorBody = Schema.Struct({\n error: Schema.String,\n details: Schema.optional(Schema.Any),\n});\nexport type PayArkErrorBody = Schema.Schema.Type<typeof PayArkErrorBody>;\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payark/sdk-effect",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"description": "Functional, type-safe Effect SDK for the PayArk API.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -12,14 +12,14 @@
|
|
|
12
12
|
"require": "./dist/index.js"
|
|
13
13
|
},
|
|
14
14
|
"./api-spec": {
|
|
15
|
-
"types": "./
|
|
16
|
-
"import": "./
|
|
17
|
-
"
|
|
15
|
+
"types": "./dist/api-spec.d.ts",
|
|
16
|
+
"import": "./dist/api-spec.mjs",
|
|
17
|
+
"require": "./dist/api-spec.js"
|
|
18
18
|
},
|
|
19
19
|
"./schemas": {
|
|
20
|
-
"types": "./
|
|
21
|
-
"import": "./
|
|
22
|
-
"
|
|
20
|
+
"types": "./dist/schemas.d.ts",
|
|
21
|
+
"import": "./dist/schemas.mjs",
|
|
22
|
+
"require": "./dist/schemas.js"
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
25
|
"files": [
|