@23blocks/block-sales 1.0.3 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.esm.js +438 -0
  3. package/dist/src/index.d.ts +7 -0
  4. package/dist/src/index.d.ts.map +1 -0
  5. package/dist/{lib/mappers/index.js → src/lib/mappers/index.d.ts} +1 -2
  6. package/dist/src/lib/mappers/index.d.ts.map +1 -0
  7. package/dist/src/lib/mappers/order-detail.mapper.d.ts +4 -0
  8. package/dist/src/lib/mappers/order-detail.mapper.d.ts.map +1 -0
  9. package/dist/src/lib/mappers/order.mapper.d.ts +4 -0
  10. package/dist/src/lib/mappers/order.mapper.d.ts.map +1 -0
  11. package/dist/src/lib/mappers/payment.mapper.d.ts +4 -0
  12. package/dist/src/lib/mappers/payment.mapper.d.ts.map +1 -0
  13. package/dist/src/lib/mappers/subscription.mapper.d.ts +4 -0
  14. package/dist/src/lib/mappers/subscription.mapper.d.ts.map +1 -0
  15. package/dist/src/lib/mappers/utils.d.ts +45 -0
  16. package/dist/src/lib/mappers/utils.d.ts.map +1 -0
  17. package/dist/src/lib/sales.block.d.ts +15 -0
  18. package/dist/src/lib/sales.block.d.ts.map +1 -0
  19. package/dist/{lib/services/index.js → src/lib/services/index.d.ts} +1 -2
  20. package/dist/src/lib/services/index.d.ts.map +1 -0
  21. package/dist/src/lib/services/order-details.service.d.ts +12 -0
  22. package/dist/src/lib/services/order-details.service.d.ts.map +1 -0
  23. package/dist/src/lib/services/orders.service.d.ts +17 -0
  24. package/dist/src/lib/services/orders.service.d.ts.map +1 -0
  25. package/dist/src/lib/services/payments.service.d.ts +13 -0
  26. package/dist/src/lib/services/payments.service.d.ts.map +1 -0
  27. package/dist/src/lib/services/subscriptions.service.d.ts +16 -0
  28. package/dist/src/lib/services/subscriptions.service.d.ts.map +1 -0
  29. package/dist/{lib/types/index.js → src/lib/types/index.d.ts} +1 -2
  30. package/dist/src/lib/types/index.d.ts.map +1 -0
  31. package/dist/src/lib/types/order-detail.d.ts +25 -0
  32. package/dist/src/lib/types/order-detail.d.ts.map +1 -0
  33. package/dist/src/lib/types/order.d.ts +50 -0
  34. package/dist/src/lib/types/order.d.ts.map +1 -0
  35. package/dist/src/lib/types/payment.d.ts +34 -0
  36. package/dist/src/lib/types/payment.d.ts.map +1 -0
  37. package/dist/src/lib/types/subscription.d.ts +49 -0
  38. package/dist/src/lib/types/subscription.d.ts.map +1 -0
  39. package/package.json +10 -8
  40. package/dist/index.js +0 -7
  41. package/dist/index.js.map +0 -1
  42. package/dist/lib/mappers/index.js.map +0 -1
  43. package/dist/lib/mappers/order-detail.mapper.js +0 -25
  44. package/dist/lib/mappers/order-detail.mapper.js.map +0 -1
  45. package/dist/lib/mappers/order.mapper.js +0 -27
  46. package/dist/lib/mappers/order.mapper.js.map +0 -1
  47. package/dist/lib/mappers/payment.mapper.js +0 -21
  48. package/dist/lib/mappers/payment.mapper.js.map +0 -1
  49. package/dist/lib/mappers/subscription.mapper.js +0 -24
  50. package/dist/lib/mappers/subscription.mapper.js.map +0 -1
  51. package/dist/lib/mappers/utils.js +0 -111
  52. package/dist/lib/mappers/utils.js.map +0 -1
  53. package/dist/lib/sales.block.js +0 -22
  54. package/dist/lib/sales.block.js.map +0 -1
  55. package/dist/lib/services/index.js.map +0 -1
  56. package/dist/lib/services/order-details.service.js +0 -36
  57. package/dist/lib/services/order-details.service.js.map +0 -1
  58. package/dist/lib/services/orders.service.js +0 -98
  59. package/dist/lib/services/orders.service.js.map +0 -1
  60. package/dist/lib/services/payments.service.js +0 -59
  61. package/dist/lib/services/payments.service.js.map +0 -1
  62. package/dist/lib/services/subscriptions.service.js +0 -90
  63. package/dist/lib/services/subscriptions.service.js.map +0 -1
  64. package/dist/lib/types/index.js.map +0 -1
  65. package/dist/lib/types/order-detail.js +0 -3
  66. package/dist/lib/types/order-detail.js.map +0 -1
  67. package/dist/lib/types/order.js +0 -3
  68. package/dist/lib/types/order.js.map +0 -1
  69. package/dist/lib/types/payment.js +0 -3
  70. package/dist/lib/types/payment.js.map +0 -1
  71. package/dist/lib/types/subscription.js +0 -3
  72. package/dist/lib/types/subscription.js.map +0 -1
@@ -0,0 +1 @@
1
+ export * from "./src/index";
@@ -0,0 +1,438 @@
1
+ import { decodePageResult, decodeOne, decodeMany } from '@23blocks/jsonapi-codec';
2
+
3
+ /**
4
+ * Parse a string value, returning undefined for empty/undefined
5
+ */ function parseString(value) {
6
+ if (value === null || value === undefined) {
7
+ return undefined;
8
+ }
9
+ const str = String(value);
10
+ return str.length > 0 ? str : undefined;
11
+ }
12
+ /**
13
+ * Parse a date value
14
+ */ function parseDate(value) {
15
+ if (value === null || value === undefined) {
16
+ return undefined;
17
+ }
18
+ if (value instanceof Date) {
19
+ return value;
20
+ }
21
+ if (typeof value === 'string' || typeof value === 'number') {
22
+ const date = new Date(value);
23
+ return isNaN(date.getTime()) ? undefined : date;
24
+ }
25
+ return undefined;
26
+ }
27
+ /**
28
+ * Parse a number value
29
+ */ function parseNumber(value) {
30
+ if (value === null || value === undefined) {
31
+ return 0;
32
+ }
33
+ const num = Number(value);
34
+ return isNaN(num) ? 0 : num;
35
+ }
36
+ /**
37
+ * Parse entity status
38
+ */ function parseStatus(value) {
39
+ const status = parseString(value);
40
+ if (status === 'active' || status === 'inactive' || status === 'pending' || status === 'archived' || status === 'deleted') {
41
+ return status;
42
+ }
43
+ return 'active';
44
+ }
45
+ /**
46
+ * Parse order status
47
+ */ function parseOrderStatus(value) {
48
+ const status = parseString(value);
49
+ if (status === 'pending' || status === 'confirmed' || status === 'processing' || status === 'shipped' || status === 'delivered' || status === 'cancelled') {
50
+ return status;
51
+ }
52
+ return 'pending';
53
+ }
54
+ /**
55
+ * Parse payment status
56
+ */ function parsePaymentStatus(value) {
57
+ const status = parseString(value);
58
+ if (status === 'pending' || status === 'completed' || status === 'failed' || status === 'refunded') {
59
+ return status;
60
+ }
61
+ return 'pending';
62
+ }
63
+ /**
64
+ * Parse subscription status
65
+ */ function parseSubscriptionStatus(value) {
66
+ const status = parseString(value);
67
+ if (status === 'active' || status === 'cancelled' || status === 'expired' || status === 'paused') {
68
+ return status;
69
+ }
70
+ return 'active';
71
+ }
72
+ /**
73
+ * Parse subscription interval
74
+ */ function parseSubscriptionInterval(value) {
75
+ const interval = parseString(value);
76
+ if (interval === 'monthly' || interval === 'yearly') {
77
+ return interval;
78
+ }
79
+ return 'monthly';
80
+ }
81
+
82
+ const orderMapper = {
83
+ type: 'Order',
84
+ map: (resource)=>({
85
+ id: resource.id,
86
+ uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
87
+ createdAt: parseDate(resource.attributes['created_at']) || new Date(),
88
+ updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
89
+ displayId: parseString(resource.attributes['display_id']) || resource.id,
90
+ userUniqueId: parseString(resource.attributes['user_unique_id']) || '',
91
+ status: parseOrderStatus(resource.attributes['status']),
92
+ subtotal: parseNumber(resource.attributes['subtotal']),
93
+ tax: parseNumber(resource.attributes['tax']),
94
+ shipping: parseNumber(resource.attributes['shipping']),
95
+ discount: parseNumber(resource.attributes['discount']),
96
+ total: parseNumber(resource.attributes['total']),
97
+ shippingAddressUniqueId: parseString(resource.attributes['shipping_address_unique_id']),
98
+ billingAddressUniqueId: parseString(resource.attributes['billing_address_unique_id']),
99
+ notes: parseString(resource.attributes['notes']),
100
+ paidAt: parseDate(resource.attributes['paid_at']),
101
+ shippedAt: parseDate(resource.attributes['shipped_at']),
102
+ deliveredAt: parseDate(resource.attributes['delivered_at']),
103
+ payload: resource.attributes['payload']
104
+ })
105
+ };
106
+
107
+ function createOrdersService(transport, _config) {
108
+ return {
109
+ async list (params) {
110
+ const queryParams = {};
111
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
112
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
113
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
114
+ if (params == null ? void 0 : params.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;
115
+ if (params == null ? void 0 : params.startDate) queryParams['start_date'] = params.startDate.toISOString();
116
+ if (params == null ? void 0 : params.endDate) queryParams['end_date'] = params.endDate.toISOString();
117
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
118
+ const response = await transport.get('/orders', {
119
+ params: queryParams
120
+ });
121
+ return decodePageResult(response, orderMapper);
122
+ },
123
+ async get (uniqueId) {
124
+ const response = await transport.get(`/orders/${uniqueId}`);
125
+ return decodeOne(response, orderMapper);
126
+ },
127
+ async create (data) {
128
+ const response = await transport.post('/orders', {
129
+ order: {
130
+ user_unique_id: data.userUniqueId,
131
+ items: data.items.map((item)=>({
132
+ product_unique_id: item.productUniqueId,
133
+ product_variation_unique_id: item.productVariationUniqueId,
134
+ quantity: item.quantity,
135
+ unit_price: item.unitPrice
136
+ })),
137
+ shipping_address_unique_id: data.shippingAddressUniqueId,
138
+ billing_address_unique_id: data.billingAddressUniqueId,
139
+ notes: data.notes,
140
+ payload: data.payload
141
+ }
142
+ });
143
+ return decodeOne(response, orderMapper);
144
+ },
145
+ async update (uniqueId, data) {
146
+ const response = await transport.put(`/orders/${uniqueId}`, {
147
+ order: {
148
+ status: data.status,
149
+ shipping_address_unique_id: data.shippingAddressUniqueId,
150
+ billing_address_unique_id: data.billingAddressUniqueId,
151
+ notes: data.notes,
152
+ payload: data.payload
153
+ }
154
+ });
155
+ return decodeOne(response, orderMapper);
156
+ },
157
+ async cancel (uniqueId) {
158
+ const response = await transport.put(`/orders/${uniqueId}/cancel`, {});
159
+ return decodeOne(response, orderMapper);
160
+ },
161
+ async confirm (uniqueId) {
162
+ const response = await transport.put(`/orders/${uniqueId}/confirm`, {});
163
+ return decodeOne(response, orderMapper);
164
+ },
165
+ async ship (uniqueId, trackingNumber) {
166
+ const response = await transport.put(`/orders/${uniqueId}/ship`, {
167
+ order: {
168
+ tracking_number: trackingNumber
169
+ }
170
+ });
171
+ return decodeOne(response, orderMapper);
172
+ },
173
+ async deliver (uniqueId) {
174
+ const response = await transport.put(`/orders/${uniqueId}/deliver`, {});
175
+ return decodeOne(response, orderMapper);
176
+ },
177
+ async listByUser (userUniqueId, params) {
178
+ const queryParams = {};
179
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
180
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
181
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
182
+ if (params == null ? void 0 : params.startDate) queryParams['start_date'] = params.startDate.toISOString();
183
+ if (params == null ? void 0 : params.endDate) queryParams['end_date'] = params.endDate.toISOString();
184
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
185
+ const response = await transport.get(`/users/${userUniqueId}/orders`, {
186
+ params: queryParams
187
+ });
188
+ return decodePageResult(response, orderMapper);
189
+ }
190
+ };
191
+ }
192
+
193
+ const orderDetailMapper = {
194
+ type: 'OrderDetail',
195
+ map: (resource)=>({
196
+ id: resource.id,
197
+ uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
198
+ createdAt: parseDate(resource.attributes['created_at']) || new Date(),
199
+ updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
200
+ orderUniqueId: parseString(resource.attributes['order_unique_id']) || '',
201
+ productUniqueId: parseString(resource.attributes['product_unique_id']) || '',
202
+ productVariationUniqueId: parseString(resource.attributes['product_variation_unique_id']),
203
+ sku: parseString(resource.attributes['sku']) || '',
204
+ name: parseString(resource.attributes['name']) || '',
205
+ quantity: parseNumber(resource.attributes['quantity']),
206
+ unitPrice: parseNumber(resource.attributes['unit_price']),
207
+ discount: parseNumber(resource.attributes['discount']),
208
+ tax: parseNumber(resource.attributes['tax']),
209
+ total: parseNumber(resource.attributes['total']),
210
+ status: parseStatus(resource.attributes['status']),
211
+ vendorUniqueId: parseString(resource.attributes['vendor_unique_id']),
212
+ payload: resource.attributes['payload']
213
+ })
214
+ };
215
+
216
+ function createOrderDetailsService(transport, _config) {
217
+ return {
218
+ async list () {
219
+ const response = await transport.get('/order_details');
220
+ return decodeMany(response, orderDetailMapper);
221
+ },
222
+ async get (uniqueId) {
223
+ const response = await transport.get(`/order_details/${uniqueId}`);
224
+ return decodeOne(response, orderDetailMapper);
225
+ },
226
+ async update (uniqueId, data) {
227
+ const response = await transport.put(`/order_details/${uniqueId}`, {
228
+ details: {
229
+ quantity: data.quantity,
230
+ unit_price: data.unitPrice,
231
+ discount: data.discount,
232
+ tax: data.tax,
233
+ status: data.status,
234
+ payload: data.payload
235
+ }
236
+ });
237
+ return decodeOne(response, orderDetailMapper);
238
+ },
239
+ async listByOrder (orderUniqueId) {
240
+ const response = await transport.get(`/orders/${orderUniqueId}/details`);
241
+ return decodeMany(response, orderDetailMapper);
242
+ }
243
+ };
244
+ }
245
+
246
+ const paymentMapper = {
247
+ type: 'Payment',
248
+ map: (resource)=>({
249
+ id: resource.id,
250
+ uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
251
+ createdAt: parseDate(resource.attributes['created_at']) || new Date(),
252
+ updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
253
+ orderUniqueId: parseString(resource.attributes['order_unique_id']) || '',
254
+ paymentMethod: parseString(resource.attributes['payment_method']) || '',
255
+ paymentProvider: parseString(resource.attributes['payment_provider']) || '',
256
+ transactionId: parseString(resource.attributes['transaction_id']),
257
+ amount: parseNumber(resource.attributes['amount']),
258
+ currency: parseString(resource.attributes['currency']) || 'USD',
259
+ status: parsePaymentStatus(resource.attributes['status']),
260
+ paidAt: parseDate(resource.attributes['paid_at']),
261
+ payload: resource.attributes['payload']
262
+ })
263
+ };
264
+
265
+ function createPaymentsService(transport, _config) {
266
+ return {
267
+ async list (params) {
268
+ const queryParams = {};
269
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
270
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
271
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
272
+ if (params == null ? void 0 : params.orderUniqueId) queryParams['order_unique_id'] = params.orderUniqueId;
273
+ if (params == null ? void 0 : params.paymentMethod) queryParams['payment_method'] = params.paymentMethod;
274
+ if (params == null ? void 0 : params.startDate) queryParams['start_date'] = params.startDate.toISOString();
275
+ if (params == null ? void 0 : params.endDate) queryParams['end_date'] = params.endDate.toISOString();
276
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
277
+ const response = await transport.get('/payments', {
278
+ params: queryParams
279
+ });
280
+ return decodePageResult(response, paymentMapper);
281
+ },
282
+ async get (uniqueId) {
283
+ const response = await transport.get(`/payments/${uniqueId}`);
284
+ return decodeOne(response, paymentMapper);
285
+ },
286
+ async create (data) {
287
+ const response = await transport.post('/payments', {
288
+ payment: {
289
+ order_unique_id: data.orderUniqueId,
290
+ payment_method: data.paymentMethod,
291
+ payment_provider: data.paymentProvider,
292
+ amount: data.amount,
293
+ currency: data.currency,
294
+ transaction_id: data.transactionId,
295
+ payload: data.payload
296
+ }
297
+ });
298
+ return decodeOne(response, paymentMapper);
299
+ },
300
+ async refund (uniqueId, amount) {
301
+ const response = await transport.put(`/payments/${uniqueId}/refund`, {
302
+ payment: {
303
+ amount
304
+ }
305
+ });
306
+ return decodeOne(response, paymentMapper);
307
+ },
308
+ async listByOrder (orderUniqueId) {
309
+ const response = await transport.get(`/orders/${orderUniqueId}/payments`);
310
+ return decodeMany(response, paymentMapper);
311
+ }
312
+ };
313
+ }
314
+
315
+ const subscriptionMapper = {
316
+ type: 'Subscription',
317
+ map: (resource)=>({
318
+ id: resource.id,
319
+ uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
320
+ createdAt: parseDate(resource.attributes['created_at']) || new Date(),
321
+ updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
322
+ userUniqueId: parseString(resource.attributes['user_unique_id']) || '',
323
+ planUniqueId: parseString(resource.attributes['plan_unique_id']) || '',
324
+ planName: parseString(resource.attributes['plan_name']) || '',
325
+ price: parseNumber(resource.attributes['price']),
326
+ currency: parseString(resource.attributes['currency']) || 'USD',
327
+ interval: parseSubscriptionInterval(resource.attributes['interval']),
328
+ status: parseSubscriptionStatus(resource.attributes['status']),
329
+ startDate: parseDate(resource.attributes['start_date']) || new Date(),
330
+ endDate: parseDate(resource.attributes['end_date']),
331
+ nextBillingDate: parseDate(resource.attributes['next_billing_date']),
332
+ cancelledAt: parseDate(resource.attributes['cancelled_at']),
333
+ payload: resource.attributes['payload']
334
+ })
335
+ };
336
+
337
+ function createSubscriptionsService(transport, _config) {
338
+ return {
339
+ async list (params) {
340
+ const queryParams = {};
341
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
342
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
343
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
344
+ if (params == null ? void 0 : params.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;
345
+ if (params == null ? void 0 : params.planUniqueId) queryParams['plan_unique_id'] = params.planUniqueId;
346
+ if (params == null ? void 0 : params.interval) queryParams['interval'] = params.interval;
347
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
348
+ const response = await transport.get('/subscriptions', {
349
+ params: queryParams
350
+ });
351
+ return decodePageResult(response, subscriptionMapper);
352
+ },
353
+ async get (uniqueId) {
354
+ const response = await transport.get(`/subscriptions/${uniqueId}`);
355
+ return decodeOne(response, subscriptionMapper);
356
+ },
357
+ async create (data) {
358
+ var _data_startDate;
359
+ const response = await transport.post('/subscriptions', {
360
+ subscription: {
361
+ user_unique_id: data.userUniqueId,
362
+ plan_unique_id: data.planUniqueId,
363
+ plan_name: data.planName,
364
+ price: data.price,
365
+ currency: data.currency,
366
+ interval: data.interval,
367
+ start_date: (_data_startDate = data.startDate) == null ? void 0 : _data_startDate.toISOString(),
368
+ payload: data.payload
369
+ }
370
+ });
371
+ return decodeOne(response, subscriptionMapper);
372
+ },
373
+ async update (uniqueId, data) {
374
+ var _data_endDate, _data_nextBillingDate;
375
+ const response = await transport.put(`/subscriptions/${uniqueId}`, {
376
+ subscription: {
377
+ plan_unique_id: data.planUniqueId,
378
+ plan_name: data.planName,
379
+ price: data.price,
380
+ currency: data.currency,
381
+ interval: data.interval,
382
+ status: data.status,
383
+ end_date: (_data_endDate = data.endDate) == null ? void 0 : _data_endDate.toISOString(),
384
+ next_billing_date: (_data_nextBillingDate = data.nextBillingDate) == null ? void 0 : _data_nextBillingDate.toISOString(),
385
+ payload: data.payload
386
+ }
387
+ });
388
+ return decodeOne(response, subscriptionMapper);
389
+ },
390
+ async cancel (uniqueId) {
391
+ const response = await transport.put(`/subscriptions/${uniqueId}/cancel`, {});
392
+ return decodeOne(response, subscriptionMapper);
393
+ },
394
+ async pause (uniqueId) {
395
+ const response = await transport.put(`/subscriptions/${uniqueId}/pause`, {});
396
+ return decodeOne(response, subscriptionMapper);
397
+ },
398
+ async resume (uniqueId) {
399
+ const response = await transport.put(`/subscriptions/${uniqueId}/resume`, {});
400
+ return decodeOne(response, subscriptionMapper);
401
+ },
402
+ async listByUser (userUniqueId, params) {
403
+ const queryParams = {};
404
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
405
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
406
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
407
+ if (params == null ? void 0 : params.planUniqueId) queryParams['plan_unique_id'] = params.planUniqueId;
408
+ if (params == null ? void 0 : params.interval) queryParams['interval'] = params.interval;
409
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
410
+ const response = await transport.get(`/users/${userUniqueId}/subscriptions`, {
411
+ params: queryParams
412
+ });
413
+ return decodePageResult(response, subscriptionMapper);
414
+ }
415
+ };
416
+ }
417
+
418
+ function createSalesBlock(transport, config) {
419
+ return {
420
+ orders: createOrdersService(transport),
421
+ orderDetails: createOrderDetailsService(transport),
422
+ payments: createPaymentsService(transport),
423
+ subscriptions: createSubscriptionsService(transport)
424
+ };
425
+ }
426
+ const salesBlockMetadata = {
427
+ name: 'sales',
428
+ version: '0.1.0',
429
+ description: 'Sales management - orders, payments, subscriptions, and transactions',
430
+ resourceTypes: [
431
+ 'Order',
432
+ 'OrderDetail',
433
+ 'Payment',
434
+ 'Subscription'
435
+ ]
436
+ };
437
+
438
+ export { createOrderDetailsService, createOrdersService, createPaymentsService, createSalesBlock, createSubscriptionsService, orderDetailMapper, orderMapper, paymentMapper, salesBlockMetadata, subscriptionMapper };
@@ -0,0 +1,7 @@
1
+ export { createSalesBlock, salesBlockMetadata } from './lib/sales.block';
2
+ export type { SalesBlock, SalesBlockConfig } from './lib/sales.block';
3
+ export type { Order, OrderStatus, CreateOrderRequest, UpdateOrderRequest, ListOrdersParams, OrderDetail, UpdateOrderDetailRequest, Payment, PaymentStatus, CreatePaymentRequest, ListPaymentsParams, Subscription, SubscriptionInterval, SubscriptionStatus, CreateSubscriptionRequest, UpdateSubscriptionRequest, ListSubscriptionsParams, } from './lib/types';
4
+ export type { OrdersService, OrderDetailsService, PaymentsService, SubscriptionsService, } from './lib/services';
5
+ export { createOrdersService, createOrderDetailsService, createPaymentsService, createSubscriptionsService, } from './lib/services';
6
+ export { orderMapper, orderDetailMapper, paymentMapper, subscriptionMapper, } from './lib/mappers';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACzE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGtE,YAAY,EAEV,KAAK,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAEhB,WAAW,EACX,wBAAwB,EAExB,OAAO,EACP,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAElB,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,kBAAkB,GACnB,MAAM,eAAe,CAAC"}
@@ -3,5 +3,4 @@ export * from './order-detail.mapper';
3
3
  export * from './payment.mapper';
4
4
  export * from './subscription.mapper';
5
5
  export * from './utils';
6
-
7
- //# sourceMappingURL=index.js.map
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/mappers/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,SAAS,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ResourceMapper } from '@23blocks/jsonapi-codec';
2
+ import type { OrderDetail } from '../types/order-detail';
3
+ export declare const orderDetailMapper: ResourceMapper<OrderDetail>;
4
+ //# sourceMappingURL=order-detail.mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-detail.mapper.d.ts","sourceRoot":"","sources":["../../../../src/lib/mappers/order-detail.mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,eAAO,MAAM,iBAAiB,EAAE,cAAc,CAAC,WAAW,CAsBzD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ResourceMapper } from '@23blocks/jsonapi-codec';
2
+ import type { Order } from '../types/order';
3
+ export declare const orderMapper: ResourceMapper<Order>;
4
+ //# sourceMappingURL=order.mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order.mapper.d.ts","sourceRoot":"","sources":["../../../../src/lib/mappers/order.mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAG5C,eAAO,MAAM,WAAW,EAAE,cAAc,CAAC,KAAK,CAwB7C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ResourceMapper } from '@23blocks/jsonapi-codec';
2
+ import type { Payment } from '../types/payment';
3
+ export declare const paymentMapper: ResourceMapper<Payment>;
4
+ //# sourceMappingURL=payment.mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment.mapper.d.ts","sourceRoot":"","sources":["../../../../src/lib/mappers/payment.mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGhD,eAAO,MAAM,aAAa,EAAE,cAAc,CAAC,OAAO,CAkBjD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ResourceMapper } from '@23blocks/jsonapi-codec';
2
+ import type { Subscription } from '../types/subscription';
3
+ export declare const subscriptionMapper: ResourceMapper<Subscription>;
4
+ //# sourceMappingURL=subscription.mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscription.mapper.d.ts","sourceRoot":"","sources":["../../../../src/lib/mappers/subscription.mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,eAAO,MAAM,kBAAkB,EAAE,cAAc,CAAC,YAAY,CAqB3D,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Parse a string value, returning undefined for empty/undefined
3
+ */
4
+ export declare function parseString(value: unknown): string | undefined;
5
+ /**
6
+ * Parse a date value
7
+ */
8
+ export declare function parseDate(value: unknown): Date | undefined;
9
+ /**
10
+ * Parse a boolean value
11
+ */
12
+ export declare function parseBoolean(value: unknown): boolean;
13
+ /**
14
+ * Parse an array of strings
15
+ */
16
+ export declare function parseStringArray(value: unknown): string[] | undefined;
17
+ /**
18
+ * Parse a number value
19
+ */
20
+ export declare function parseNumber(value: unknown): number;
21
+ /**
22
+ * Parse an optional number value
23
+ */
24
+ export declare function parseOptionalNumber(value: unknown): number | undefined;
25
+ /**
26
+ * Parse entity status
27
+ */
28
+ export declare function parseStatus(value: unknown): 'active' | 'inactive' | 'pending' | 'archived' | 'deleted';
29
+ /**
30
+ * Parse order status
31
+ */
32
+ export declare function parseOrderStatus(value: unknown): 'pending' | 'confirmed' | 'processing' | 'shipped' | 'delivered' | 'cancelled';
33
+ /**
34
+ * Parse payment status
35
+ */
36
+ export declare function parsePaymentStatus(value: unknown): 'pending' | 'completed' | 'failed' | 'refunded';
37
+ /**
38
+ * Parse subscription status
39
+ */
40
+ export declare function parseSubscriptionStatus(value: unknown): 'active' | 'cancelled' | 'expired' | 'paused';
41
+ /**
42
+ * Parse subscription interval
43
+ */
44
+ export declare function parseSubscriptionInterval(value: unknown): 'monthly' | 'yearly';
45
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/lib/mappers/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAM9D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAe1D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAQpD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAQrE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAMlD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAMtE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAMtG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAM/H;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAMlG;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAMrG;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,CAM9E"}
@@ -0,0 +1,15 @@
1
+ import type { Transport, BlockConfig, BlockMetadata } from '@23blocks/contracts';
2
+ import { type OrdersService, type OrderDetailsService, type PaymentsService, type SubscriptionsService } from './services';
3
+ export interface SalesBlockConfig extends BlockConfig {
4
+ appId: string;
5
+ tenantId?: string;
6
+ }
7
+ export interface SalesBlock {
8
+ orders: OrdersService;
9
+ orderDetails: OrderDetailsService;
10
+ payments: PaymentsService;
11
+ subscriptions: SubscriptionsService;
12
+ }
13
+ export declare function createSalesBlock(transport: Transport, config: SalesBlockConfig): SalesBlock;
14
+ export declare const salesBlockMetadata: BlockMetadata;
15
+ //# sourceMappingURL=sales.block.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sales.block.d.ts","sourceRoot":"","sources":["../../../src/lib/sales.block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAC1B,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,aAAa,CAAC;IACtB,YAAY,EAAE,mBAAmB,CAAC;IAClC,QAAQ,EAAE,eAAe,CAAC;IAC1B,aAAa,EAAE,oBAAoB,CAAC;CACrC;AAED,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,gBAAgB,GACvB,UAAU,CAOZ;AAED,eAAO,MAAM,kBAAkB,EAAE,aAUhC,CAAC"}
@@ -2,5 +2,4 @@ export * from './orders.service';
2
2
  export * from './order-details.service';
3
3
  export * from './payments.service';
4
4
  export * from './subscriptions.service';
5
-
6
- //# sourceMappingURL=index.js.map
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { Transport } from '@23blocks/contracts';
2
+ import type { OrderDetail, UpdateOrderDetailRequest } from '../types/order-detail';
3
+ export interface OrderDetailsService {
4
+ list(): Promise<OrderDetail[]>;
5
+ get(uniqueId: string): Promise<OrderDetail>;
6
+ update(uniqueId: string, data: UpdateOrderDetailRequest): Promise<OrderDetail>;
7
+ listByOrder(orderUniqueId: string): Promise<OrderDetail[]>;
8
+ }
9
+ export declare function createOrderDetailsService(transport: Transport, _config: {
10
+ appId: string;
11
+ }): OrderDetailsService;
12
+ //# sourceMappingURL=order-details.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-details.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/order-details.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGnF,MAAM,WAAW,mBAAmB;IAClC,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/B,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/E,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;CAC5D;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,mBAAmB,CA+B/G"}
@@ -0,0 +1,17 @@
1
+ import type { Transport, PageResult } from '@23blocks/contracts';
2
+ import type { Order, CreateOrderRequest, UpdateOrderRequest, ListOrdersParams } from '../types/order';
3
+ export interface OrdersService {
4
+ list(params?: ListOrdersParams): Promise<PageResult<Order>>;
5
+ get(uniqueId: string): Promise<Order>;
6
+ create(data: CreateOrderRequest): Promise<Order>;
7
+ update(uniqueId: string, data: UpdateOrderRequest): Promise<Order>;
8
+ cancel(uniqueId: string): Promise<Order>;
9
+ confirm(uniqueId: string): Promise<Order>;
10
+ ship(uniqueId: string, trackingNumber?: string): Promise<Order>;
11
+ deliver(uniqueId: string): Promise<Order>;
12
+ listByUser(userUniqueId: string, params?: ListOrdersParams): Promise<PageResult<Order>>;
13
+ }
14
+ export declare function createOrdersService(transport: Transport, _config: {
15
+ appId: string;
16
+ }): OrdersService;
17
+ //# sourceMappingURL=orders.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orders.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/orders.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGtG,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACnE,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAChE,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1C,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;CACzF;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CA0FnG"}
@@ -0,0 +1,13 @@
1
+ import type { Transport, PageResult } from '@23blocks/contracts';
2
+ import type { Payment, CreatePaymentRequest, ListPaymentsParams } from '../types/payment';
3
+ export interface PaymentsService {
4
+ list(params?: ListPaymentsParams): Promise<PageResult<Payment>>;
5
+ get(uniqueId: string): Promise<Payment>;
6
+ create(data: CreatePaymentRequest): Promise<Payment>;
7
+ refund(uniqueId: string, amount?: number): Promise<Payment>;
8
+ listByOrder(orderUniqueId: string): Promise<Payment[]>;
9
+ }
10
+ export declare function createPaymentsService(transport: Transport, _config: {
11
+ appId: string;
12
+ }): PaymentsService;
13
+ //# sourceMappingURL=payments.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payments.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/payments.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG1F,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5D,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CACxD;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,eAAe,CAmDvG"}