@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.
@@ -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"]}
@@ -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",
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": "./src/api-spec.ts",
16
- "import": "./src/api-spec.ts",
17
- "default": "./src/api-spec.ts"
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": "./src/schemas.ts",
21
- "import": "./src/schemas.ts",
22
- "default": "./src/schemas.ts"
20
+ "types": "./dist/schemas.d.ts",
21
+ "import": "./dist/schemas.mjs",
22
+ "require": "./dist/schemas.js"
23
23
  }
24
24
  },
25
25
  "files": [