@23blocks/block-sales 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/index.js +7 -0
  2. package/dist/index.js.map +1 -0
  3. package/dist/lib/mappers/index.js +7 -0
  4. package/dist/lib/mappers/index.js.map +1 -0
  5. package/dist/lib/mappers/order-detail.mapper.js +25 -0
  6. package/dist/lib/mappers/order-detail.mapper.js.map +1 -0
  7. package/dist/lib/mappers/order.mapper.js +27 -0
  8. package/dist/lib/mappers/order.mapper.js.map +1 -0
  9. package/dist/lib/mappers/payment.mapper.js +21 -0
  10. package/dist/lib/mappers/payment.mapper.js.map +1 -0
  11. package/dist/lib/mappers/subscription.mapper.js +24 -0
  12. package/dist/lib/mappers/subscription.mapper.js.map +1 -0
  13. package/dist/lib/mappers/utils.js +111 -0
  14. package/dist/lib/mappers/utils.js.map +1 -0
  15. package/dist/lib/sales.block.js +22 -0
  16. package/dist/lib/sales.block.js.map +1 -0
  17. package/dist/lib/services/index.js +6 -0
  18. package/dist/lib/services/index.js.map +1 -0
  19. package/dist/lib/services/order-details.service.js +36 -0
  20. package/dist/lib/services/order-details.service.js.map +1 -0
  21. package/dist/lib/services/orders.service.js +98 -0
  22. package/dist/lib/services/orders.service.js.map +1 -0
  23. package/dist/lib/services/payments.service.js +59 -0
  24. package/dist/lib/services/payments.service.js.map +1 -0
  25. package/dist/lib/services/subscriptions.service.js +90 -0
  26. package/dist/lib/services/subscriptions.service.js.map +1 -0
  27. package/dist/lib/types/index.js +6 -0
  28. package/dist/lib/types/index.js.map +1 -0
  29. package/dist/lib/types/order-detail.js +3 -0
  30. package/dist/lib/types/order-detail.js.map +1 -0
  31. package/dist/lib/types/order.js +3 -0
  32. package/dist/lib/types/order.js.map +1 -0
  33. package/dist/lib/types/payment.js +3 -0
  34. package/dist/lib/types/payment.js.map +1 -0
  35. package/dist/lib/types/subscription.js +3 -0
  36. package/dist/lib/types/subscription.js.map +1 -0
  37. package/package.json +64 -0
package/dist/index.js ADDED
@@ -0,0 +1,7 @@
1
+ // Block factory and metadata
2
+ export { createSalesBlock, salesBlockMetadata } from './lib/sales.block';
3
+ export { createOrdersService, createOrderDetailsService, createPaymentsService, createSubscriptionsService } from './lib/services';
4
+ // Mappers (for advanced use cases)
5
+ export { orderMapper, orderDetailMapper, paymentMapper, subscriptionMapper } from './lib/mappers';
6
+
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// Block factory and metadata\nexport { createSalesBlock, salesBlockMetadata } from './lib/sales.block';\nexport type { SalesBlock, SalesBlockConfig } from './lib/sales.block';\n\n// Types\nexport type {\n // Order types\n Order,\n OrderStatus,\n CreateOrderRequest,\n UpdateOrderRequest,\n ListOrdersParams,\n // Order detail types\n OrderDetail,\n UpdateOrderDetailRequest,\n // Payment types\n Payment,\n PaymentStatus,\n CreatePaymentRequest,\n ListPaymentsParams,\n // Subscription types\n Subscription,\n SubscriptionInterval,\n SubscriptionStatus,\n CreateSubscriptionRequest,\n UpdateSubscriptionRequest,\n ListSubscriptionsParams,\n} from './lib/types';\n\n// Services\nexport type {\n OrdersService,\n OrderDetailsService,\n PaymentsService,\n SubscriptionsService,\n} from './lib/services';\n\nexport {\n createOrdersService,\n createOrderDetailsService,\n createPaymentsService,\n createSubscriptionsService,\n} from './lib/services';\n\n// Mappers (for advanced use cases)\nexport {\n orderMapper,\n orderDetailMapper,\n paymentMapper,\n subscriptionMapper,\n} from './lib/mappers';\n"],"names":["createSalesBlock","salesBlockMetadata","createOrdersService","createOrderDetailsService","createPaymentsService","createSubscriptionsService","orderMapper","orderDetailMapper","paymentMapper","subscriptionMapper"],"rangeMappings":";;;;","mappings":"AAAA,6BAA6B;AAC7B,SAASA,gBAAgB,EAAEC,kBAAkB,QAAQ,oBAAoB;AAoCzE,SACEC,mBAAmB,EACnBC,yBAAyB,EACzBC,qBAAqB,EACrBC,0BAA0B,QACrB,iBAAiB;AAExB,mCAAmC;AACnC,SACEC,WAAW,EACXC,iBAAiB,EACjBC,aAAa,EACbC,kBAAkB,QACb,gBAAgB"}
@@ -0,0 +1,7 @@
1
+ export * from './order.mapper';
2
+ export * from './order-detail.mapper';
3
+ export * from './payment.mapper';
4
+ export * from './subscription.mapper';
5
+ export * from './utils';
6
+
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/mappers/index.ts"],"sourcesContent":["export * from './order.mapper';\nexport * from './order-detail.mapper';\nexport * from './payment.mapper';\nexport * from './subscription.mapper';\nexport * from './utils';\n"],"names":[],"rangeMappings":";;;;","mappings":"AAAA,cAAc,iBAAiB;AAC/B,cAAc,wBAAwB;AACtC,cAAc,mBAAmB;AACjC,cAAc,wBAAwB;AACtC,cAAc,UAAU"}
@@ -0,0 +1,25 @@
1
+ import { parseString, parseDate, parseNumber, parseStatus } from './utils';
2
+ export const orderDetailMapper = {
3
+ type: 'OrderDetail',
4
+ map: (resource)=>({
5
+ id: resource.id,
6
+ uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
7
+ createdAt: parseDate(resource.attributes['created_at']) || new Date(),
8
+ updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
9
+ orderUniqueId: parseString(resource.attributes['order_unique_id']) || '',
10
+ productUniqueId: parseString(resource.attributes['product_unique_id']) || '',
11
+ productVariationUniqueId: parseString(resource.attributes['product_variation_unique_id']),
12
+ sku: parseString(resource.attributes['sku']) || '',
13
+ name: parseString(resource.attributes['name']) || '',
14
+ quantity: parseNumber(resource.attributes['quantity']),
15
+ unitPrice: parseNumber(resource.attributes['unit_price']),
16
+ discount: parseNumber(resource.attributes['discount']),
17
+ tax: parseNumber(resource.attributes['tax']),
18
+ total: parseNumber(resource.attributes['total']),
19
+ status: parseStatus(resource.attributes['status']),
20
+ vendorUniqueId: parseString(resource.attributes['vendor_unique_id']),
21
+ payload: resource.attributes['payload']
22
+ })
23
+ };
24
+
25
+ //# sourceMappingURL=order-detail.mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/mappers/order-detail.mapper.ts"],"sourcesContent":["import type { ResourceMapper } from '@23blocks/jsonapi-codec';\nimport type { OrderDetail } from '../types/order-detail';\nimport { parseString, parseDate, parseNumber, parseStatus } from './utils';\n\nexport const orderDetailMapper: ResourceMapper<OrderDetail> = {\n type: 'OrderDetail',\n map: (resource) => ({\n id: resource.id,\n uniqueId: parseString(resource.attributes['unique_id']) || resource.id,\n createdAt: parseDate(resource.attributes['created_at']) || new Date(),\n updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),\n\n orderUniqueId: parseString(resource.attributes['order_unique_id']) || '',\n productUniqueId: parseString(resource.attributes['product_unique_id']) || '',\n productVariationUniqueId: parseString(resource.attributes['product_variation_unique_id']),\n sku: parseString(resource.attributes['sku']) || '',\n name: parseString(resource.attributes['name']) || '',\n quantity: parseNumber(resource.attributes['quantity']),\n unitPrice: parseNumber(resource.attributes['unit_price']),\n discount: parseNumber(resource.attributes['discount']),\n tax: parseNumber(resource.attributes['tax']),\n total: parseNumber(resource.attributes['total']),\n status: parseStatus(resource.attributes['status']),\n vendorUniqueId: parseString(resource.attributes['vendor_unique_id']),\n payload: resource.attributes['payload'] as Record<string, unknown> | undefined,\n }),\n};\n"],"names":["parseString","parseDate","parseNumber","parseStatus","orderDetailMapper","type","map","resource","id","uniqueId","attributes","createdAt","Date","updatedAt","orderUniqueId","productUniqueId","productVariationUniqueId","sku","name","quantity","unitPrice","discount","tax","total","status","vendorUniqueId","payload"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,WAAW,EAAEC,SAAS,EAAEC,WAAW,EAAEC,WAAW,QAAQ,UAAU;AAE3E,OAAO,MAAMC,oBAAiD;IAC5DC,MAAM;IACNC,KAAK,CAACC,WAAc,CAAA;YAClBC,IAAID,SAASC,EAAE;YACfC,UAAUT,YAAYO,SAASG,UAAU,CAAC,YAAY,KAAKH,SAASC,EAAE;YACtEG,WAAWV,UAAUM,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAC/DC,WAAWZ,UAAUM,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAE/DE,eAAed,YAAYO,SAASG,UAAU,CAAC,kBAAkB,KAAK;YACtEK,iBAAiBf,YAAYO,SAASG,UAAU,CAAC,oBAAoB,KAAK;YAC1EM,0BAA0BhB,YAAYO,SAASG,UAAU,CAAC,8BAA8B;YACxFO,KAAKjB,YAAYO,SAASG,UAAU,CAAC,MAAM,KAAK;YAChDQ,MAAMlB,YAAYO,SAASG,UAAU,CAAC,OAAO,KAAK;YAClDS,UAAUjB,YAAYK,SAASG,UAAU,CAAC,WAAW;YACrDU,WAAWlB,YAAYK,SAASG,UAAU,CAAC,aAAa;YACxDW,UAAUnB,YAAYK,SAASG,UAAU,CAAC,WAAW;YACrDY,KAAKpB,YAAYK,SAASG,UAAU,CAAC,MAAM;YAC3Ca,OAAOrB,YAAYK,SAASG,UAAU,CAAC,QAAQ;YAC/Cc,QAAQrB,YAAYI,SAASG,UAAU,CAAC,SAAS;YACjDe,gBAAgBzB,YAAYO,SAASG,UAAU,CAAC,mBAAmB;YACnEgB,SAASnB,SAASG,UAAU,CAAC,UAAU;QACzC,CAAA;AACF,EAAE"}
@@ -0,0 +1,27 @@
1
+ import { parseString, parseDate, parseNumber, parseOrderStatus } from './utils';
2
+ export const orderMapper = {
3
+ type: 'Order',
4
+ map: (resource)=>({
5
+ id: resource.id,
6
+ uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
7
+ createdAt: parseDate(resource.attributes['created_at']) || new Date(),
8
+ updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
9
+ displayId: parseString(resource.attributes['display_id']) || resource.id,
10
+ userUniqueId: parseString(resource.attributes['user_unique_id']) || '',
11
+ status: parseOrderStatus(resource.attributes['status']),
12
+ subtotal: parseNumber(resource.attributes['subtotal']),
13
+ tax: parseNumber(resource.attributes['tax']),
14
+ shipping: parseNumber(resource.attributes['shipping']),
15
+ discount: parseNumber(resource.attributes['discount']),
16
+ total: parseNumber(resource.attributes['total']),
17
+ shippingAddressUniqueId: parseString(resource.attributes['shipping_address_unique_id']),
18
+ billingAddressUniqueId: parseString(resource.attributes['billing_address_unique_id']),
19
+ notes: parseString(resource.attributes['notes']),
20
+ paidAt: parseDate(resource.attributes['paid_at']),
21
+ shippedAt: parseDate(resource.attributes['shipped_at']),
22
+ deliveredAt: parseDate(resource.attributes['delivered_at']),
23
+ payload: resource.attributes['payload']
24
+ })
25
+ };
26
+
27
+ //# sourceMappingURL=order.mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/mappers/order.mapper.ts"],"sourcesContent":["import type { ResourceMapper } from '@23blocks/jsonapi-codec';\nimport type { Order } from '../types/order';\nimport { parseString, parseDate, parseNumber, parseOrderStatus } from './utils';\n\nexport const orderMapper: ResourceMapper<Order> = {\n type: 'Order',\n map: (resource) => ({\n id: resource.id,\n uniqueId: parseString(resource.attributes['unique_id']) || resource.id,\n createdAt: parseDate(resource.attributes['created_at']) || new Date(),\n updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),\n\n displayId: parseString(resource.attributes['display_id']) || resource.id,\n userUniqueId: parseString(resource.attributes['user_unique_id']) || '',\n status: parseOrderStatus(resource.attributes['status']),\n subtotal: parseNumber(resource.attributes['subtotal']),\n tax: parseNumber(resource.attributes['tax']),\n shipping: parseNumber(resource.attributes['shipping']),\n discount: parseNumber(resource.attributes['discount']),\n total: parseNumber(resource.attributes['total']),\n shippingAddressUniqueId: parseString(resource.attributes['shipping_address_unique_id']),\n billingAddressUniqueId: parseString(resource.attributes['billing_address_unique_id']),\n notes: parseString(resource.attributes['notes']),\n paidAt: parseDate(resource.attributes['paid_at']),\n shippedAt: parseDate(resource.attributes['shipped_at']),\n deliveredAt: parseDate(resource.attributes['delivered_at']),\n payload: resource.attributes['payload'] as Record<string, unknown> | undefined,\n }),\n};\n"],"names":["parseString","parseDate","parseNumber","parseOrderStatus","orderMapper","type","map","resource","id","uniqueId","attributes","createdAt","Date","updatedAt","displayId","userUniqueId","status","subtotal","tax","shipping","discount","total","shippingAddressUniqueId","billingAddressUniqueId","notes","paidAt","shippedAt","deliveredAt","payload"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,WAAW,EAAEC,SAAS,EAAEC,WAAW,EAAEC,gBAAgB,QAAQ,UAAU;AAEhF,OAAO,MAAMC,cAAqC;IAChDC,MAAM;IACNC,KAAK,CAACC,WAAc,CAAA;YAClBC,IAAID,SAASC,EAAE;YACfC,UAAUT,YAAYO,SAASG,UAAU,CAAC,YAAY,KAAKH,SAASC,EAAE;YACtEG,WAAWV,UAAUM,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAC/DC,WAAWZ,UAAUM,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAE/DE,WAAWd,YAAYO,SAASG,UAAU,CAAC,aAAa,KAAKH,SAASC,EAAE;YACxEO,cAAcf,YAAYO,SAASG,UAAU,CAAC,iBAAiB,KAAK;YACpEM,QAAQb,iBAAiBI,SAASG,UAAU,CAAC,SAAS;YACtDO,UAAUf,YAAYK,SAASG,UAAU,CAAC,WAAW;YACrDQ,KAAKhB,YAAYK,SAASG,UAAU,CAAC,MAAM;YAC3CS,UAAUjB,YAAYK,SAASG,UAAU,CAAC,WAAW;YACrDU,UAAUlB,YAAYK,SAASG,UAAU,CAAC,WAAW;YACrDW,OAAOnB,YAAYK,SAASG,UAAU,CAAC,QAAQ;YAC/CY,yBAAyBtB,YAAYO,SAASG,UAAU,CAAC,6BAA6B;YACtFa,wBAAwBvB,YAAYO,SAASG,UAAU,CAAC,4BAA4B;YACpFc,OAAOxB,YAAYO,SAASG,UAAU,CAAC,QAAQ;YAC/Ce,QAAQxB,UAAUM,SAASG,UAAU,CAAC,UAAU;YAChDgB,WAAWzB,UAAUM,SAASG,UAAU,CAAC,aAAa;YACtDiB,aAAa1B,UAAUM,SAASG,UAAU,CAAC,eAAe;YAC1DkB,SAASrB,SAASG,UAAU,CAAC,UAAU;QACzC,CAAA;AACF,EAAE"}
@@ -0,0 +1,21 @@
1
+ import { parseString, parseDate, parseNumber, parsePaymentStatus } from './utils';
2
+ export const paymentMapper = {
3
+ type: 'Payment',
4
+ map: (resource)=>({
5
+ id: resource.id,
6
+ uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
7
+ createdAt: parseDate(resource.attributes['created_at']) || new Date(),
8
+ updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
9
+ orderUniqueId: parseString(resource.attributes['order_unique_id']) || '',
10
+ paymentMethod: parseString(resource.attributes['payment_method']) || '',
11
+ paymentProvider: parseString(resource.attributes['payment_provider']) || '',
12
+ transactionId: parseString(resource.attributes['transaction_id']),
13
+ amount: parseNumber(resource.attributes['amount']),
14
+ currency: parseString(resource.attributes['currency']) || 'USD',
15
+ status: parsePaymentStatus(resource.attributes['status']),
16
+ paidAt: parseDate(resource.attributes['paid_at']),
17
+ payload: resource.attributes['payload']
18
+ })
19
+ };
20
+
21
+ //# sourceMappingURL=payment.mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/mappers/payment.mapper.ts"],"sourcesContent":["import type { ResourceMapper } from '@23blocks/jsonapi-codec';\nimport type { Payment } from '../types/payment';\nimport { parseString, parseDate, parseNumber, parsePaymentStatus } from './utils';\n\nexport const paymentMapper: ResourceMapper<Payment> = {\n type: 'Payment',\n map: (resource) => ({\n id: resource.id,\n uniqueId: parseString(resource.attributes['unique_id']) || resource.id,\n createdAt: parseDate(resource.attributes['created_at']) || new Date(),\n updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),\n\n orderUniqueId: parseString(resource.attributes['order_unique_id']) || '',\n paymentMethod: parseString(resource.attributes['payment_method']) || '',\n paymentProvider: parseString(resource.attributes['payment_provider']) || '',\n transactionId: parseString(resource.attributes['transaction_id']),\n amount: parseNumber(resource.attributes['amount']),\n currency: parseString(resource.attributes['currency']) || 'USD',\n status: parsePaymentStatus(resource.attributes['status']),\n paidAt: parseDate(resource.attributes['paid_at']),\n payload: resource.attributes['payload'] as Record<string, unknown> | undefined,\n }),\n};\n"],"names":["parseString","parseDate","parseNumber","parsePaymentStatus","paymentMapper","type","map","resource","id","uniqueId","attributes","createdAt","Date","updatedAt","orderUniqueId","paymentMethod","paymentProvider","transactionId","amount","currency","status","paidAt","payload"],"rangeMappings":";;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,WAAW,EAAEC,SAAS,EAAEC,WAAW,EAAEC,kBAAkB,QAAQ,UAAU;AAElF,OAAO,MAAMC,gBAAyC;IACpDC,MAAM;IACNC,KAAK,CAACC,WAAc,CAAA;YAClBC,IAAID,SAASC,EAAE;YACfC,UAAUT,YAAYO,SAASG,UAAU,CAAC,YAAY,KAAKH,SAASC,EAAE;YACtEG,WAAWV,UAAUM,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAC/DC,WAAWZ,UAAUM,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAE/DE,eAAed,YAAYO,SAASG,UAAU,CAAC,kBAAkB,KAAK;YACtEK,eAAef,YAAYO,SAASG,UAAU,CAAC,iBAAiB,KAAK;YACrEM,iBAAiBhB,YAAYO,SAASG,UAAU,CAAC,mBAAmB,KAAK;YACzEO,eAAejB,YAAYO,SAASG,UAAU,CAAC,iBAAiB;YAChEQ,QAAQhB,YAAYK,SAASG,UAAU,CAAC,SAAS;YACjDS,UAAUnB,YAAYO,SAASG,UAAU,CAAC,WAAW,KAAK;YAC1DU,QAAQjB,mBAAmBI,SAASG,UAAU,CAAC,SAAS;YACxDW,QAAQpB,UAAUM,SAASG,UAAU,CAAC,UAAU;YAChDY,SAASf,SAASG,UAAU,CAAC,UAAU;QACzC,CAAA;AACF,EAAE"}
@@ -0,0 +1,24 @@
1
+ import { parseString, parseDate, parseNumber, parseSubscriptionStatus, parseSubscriptionInterval } from './utils';
2
+ export const subscriptionMapper = {
3
+ type: 'Subscription',
4
+ map: (resource)=>({
5
+ id: resource.id,
6
+ uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
7
+ createdAt: parseDate(resource.attributes['created_at']) || new Date(),
8
+ updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
9
+ userUniqueId: parseString(resource.attributes['user_unique_id']) || '',
10
+ planUniqueId: parseString(resource.attributes['plan_unique_id']) || '',
11
+ planName: parseString(resource.attributes['plan_name']) || '',
12
+ price: parseNumber(resource.attributes['price']),
13
+ currency: parseString(resource.attributes['currency']) || 'USD',
14
+ interval: parseSubscriptionInterval(resource.attributes['interval']),
15
+ status: parseSubscriptionStatus(resource.attributes['status']),
16
+ startDate: parseDate(resource.attributes['start_date']) || new Date(),
17
+ endDate: parseDate(resource.attributes['end_date']),
18
+ nextBillingDate: parseDate(resource.attributes['next_billing_date']),
19
+ cancelledAt: parseDate(resource.attributes['cancelled_at']),
20
+ payload: resource.attributes['payload']
21
+ })
22
+ };
23
+
24
+ //# sourceMappingURL=subscription.mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/mappers/subscription.mapper.ts"],"sourcesContent":["import type { ResourceMapper } from '@23blocks/jsonapi-codec';\nimport type { Subscription } from '../types/subscription';\nimport { parseString, parseDate, parseNumber, parseSubscriptionStatus, parseSubscriptionInterval } from './utils';\n\nexport const subscriptionMapper: ResourceMapper<Subscription> = {\n type: 'Subscription',\n map: (resource) => ({\n id: resource.id,\n uniqueId: parseString(resource.attributes['unique_id']) || resource.id,\n createdAt: parseDate(resource.attributes['created_at']) || new Date(),\n updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),\n\n userUniqueId: parseString(resource.attributes['user_unique_id']) || '',\n planUniqueId: parseString(resource.attributes['plan_unique_id']) || '',\n planName: parseString(resource.attributes['plan_name']) || '',\n price: parseNumber(resource.attributes['price']),\n currency: parseString(resource.attributes['currency']) || 'USD',\n interval: parseSubscriptionInterval(resource.attributes['interval']),\n status: parseSubscriptionStatus(resource.attributes['status']),\n startDate: parseDate(resource.attributes['start_date']) || new Date(),\n endDate: parseDate(resource.attributes['end_date']),\n nextBillingDate: parseDate(resource.attributes['next_billing_date']),\n cancelledAt: parseDate(resource.attributes['cancelled_at']),\n payload: resource.attributes['payload'] as Record<string, unknown> | undefined,\n }),\n};\n"],"names":["parseString","parseDate","parseNumber","parseSubscriptionStatus","parseSubscriptionInterval","subscriptionMapper","type","map","resource","id","uniqueId","attributes","createdAt","Date","updatedAt","userUniqueId","planUniqueId","planName","price","currency","interval","status","startDate","endDate","nextBillingDate","cancelledAt","payload"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,WAAW,EAAEC,SAAS,EAAEC,WAAW,EAAEC,uBAAuB,EAAEC,yBAAyB,QAAQ,UAAU;AAElH,OAAO,MAAMC,qBAAmD;IAC9DC,MAAM;IACNC,KAAK,CAACC,WAAc,CAAA;YAClBC,IAAID,SAASC,EAAE;YACfC,UAAUV,YAAYQ,SAASG,UAAU,CAAC,YAAY,KAAKH,SAASC,EAAE;YACtEG,WAAWX,UAAUO,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAC/DC,WAAWb,UAAUO,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAE/DE,cAAcf,YAAYQ,SAASG,UAAU,CAAC,iBAAiB,KAAK;YACpEK,cAAchB,YAAYQ,SAASG,UAAU,CAAC,iBAAiB,KAAK;YACpEM,UAAUjB,YAAYQ,SAASG,UAAU,CAAC,YAAY,KAAK;YAC3DO,OAAOhB,YAAYM,SAASG,UAAU,CAAC,QAAQ;YAC/CQ,UAAUnB,YAAYQ,SAASG,UAAU,CAAC,WAAW,KAAK;YAC1DS,UAAUhB,0BAA0BI,SAASG,UAAU,CAAC,WAAW;YACnEU,QAAQlB,wBAAwBK,SAASG,UAAU,CAAC,SAAS;YAC7DW,WAAWrB,UAAUO,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAC/DU,SAAStB,UAAUO,SAASG,UAAU,CAAC,WAAW;YAClDa,iBAAiBvB,UAAUO,SAASG,UAAU,CAAC,oBAAoB;YACnEc,aAAaxB,UAAUO,SAASG,UAAU,CAAC,eAAe;YAC1De,SAASlB,SAASG,UAAU,CAAC,UAAU;QACzC,CAAA;AACF,EAAE"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Parse a string value, returning undefined for empty/undefined
3
+ */ export function parseString(value) {
4
+ if (value === null || value === undefined) {
5
+ return undefined;
6
+ }
7
+ const str = String(value);
8
+ return str.length > 0 ? str : undefined;
9
+ }
10
+ /**
11
+ * Parse a date value
12
+ */ export function parseDate(value) {
13
+ if (value === null || value === undefined) {
14
+ return undefined;
15
+ }
16
+ if (value instanceof Date) {
17
+ return value;
18
+ }
19
+ if (typeof value === 'string' || typeof value === 'number') {
20
+ const date = new Date(value);
21
+ return isNaN(date.getTime()) ? undefined : date;
22
+ }
23
+ return undefined;
24
+ }
25
+ /**
26
+ * Parse a boolean value
27
+ */ export function parseBoolean(value) {
28
+ if (typeof value === 'boolean') {
29
+ return value;
30
+ }
31
+ if (value === 'true' || value === '1' || value === 1) {
32
+ return true;
33
+ }
34
+ return false;
35
+ }
36
+ /**
37
+ * Parse an array of strings
38
+ */ export function parseStringArray(value) {
39
+ if (value === null || value === undefined) {
40
+ return undefined;
41
+ }
42
+ if (Array.isArray(value)) {
43
+ return value.map(String);
44
+ }
45
+ return undefined;
46
+ }
47
+ /**
48
+ * Parse a number value
49
+ */ export function parseNumber(value) {
50
+ if (value === null || value === undefined) {
51
+ return 0;
52
+ }
53
+ const num = Number(value);
54
+ return isNaN(num) ? 0 : num;
55
+ }
56
+ /**
57
+ * Parse an optional number value
58
+ */ export function parseOptionalNumber(value) {
59
+ if (value === null || value === undefined) {
60
+ return undefined;
61
+ }
62
+ const num = Number(value);
63
+ return isNaN(num) ? undefined : num;
64
+ }
65
+ /**
66
+ * Parse entity status
67
+ */ export function parseStatus(value) {
68
+ const status = parseString(value);
69
+ if (status === 'active' || status === 'inactive' || status === 'pending' || status === 'archived' || status === 'deleted') {
70
+ return status;
71
+ }
72
+ return 'active';
73
+ }
74
+ /**
75
+ * Parse order status
76
+ */ export function parseOrderStatus(value) {
77
+ const status = parseString(value);
78
+ if (status === 'pending' || status === 'confirmed' || status === 'processing' || status === 'shipped' || status === 'delivered' || status === 'cancelled') {
79
+ return status;
80
+ }
81
+ return 'pending';
82
+ }
83
+ /**
84
+ * Parse payment status
85
+ */ export function parsePaymentStatus(value) {
86
+ const status = parseString(value);
87
+ if (status === 'pending' || status === 'completed' || status === 'failed' || status === 'refunded') {
88
+ return status;
89
+ }
90
+ return 'pending';
91
+ }
92
+ /**
93
+ * Parse subscription status
94
+ */ export function parseSubscriptionStatus(value) {
95
+ const status = parseString(value);
96
+ if (status === 'active' || status === 'cancelled' || status === 'expired' || status === 'paused') {
97
+ return status;
98
+ }
99
+ return 'active';
100
+ }
101
+ /**
102
+ * Parse subscription interval
103
+ */ export function parseSubscriptionInterval(value) {
104
+ const interval = parseString(value);
105
+ if (interval === 'monthly' || interval === 'yearly') {
106
+ return interval;
107
+ }
108
+ return 'monthly';
109
+ }
110
+
111
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/mappers/utils.ts"],"sourcesContent":["/**\n * Parse a string value, returning undefined for empty/undefined\n */\nexport function parseString(value: unknown): string | undefined {\n if (value === null || value === undefined) {\n return undefined;\n }\n const str = String(value);\n return str.length > 0 ? str : undefined;\n}\n\n/**\n * Parse a date value\n */\nexport function parseDate(value: unknown): Date | undefined {\n if (value === null || value === undefined) {\n return undefined;\n }\n\n if (value instanceof Date) {\n return value;\n }\n\n if (typeof value === 'string' || typeof value === 'number') {\n const date = new Date(value);\n return isNaN(date.getTime()) ? undefined : date;\n }\n\n return undefined;\n}\n\n/**\n * Parse a boolean value\n */\nexport function parseBoolean(value: unknown): boolean {\n if (typeof value === 'boolean') {\n return value;\n }\n if (value === 'true' || value === '1' || value === 1) {\n return true;\n }\n return false;\n}\n\n/**\n * Parse an array of strings\n */\nexport function parseStringArray(value: unknown): string[] | undefined {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (Array.isArray(value)) {\n return value.map(String);\n }\n return undefined;\n}\n\n/**\n * Parse a number value\n */\nexport function parseNumber(value: unknown): number {\n if (value === null || value === undefined) {\n return 0;\n }\n const num = Number(value);\n return isNaN(num) ? 0 : num;\n}\n\n/**\n * Parse an optional number value\n */\nexport function parseOptionalNumber(value: unknown): number | undefined {\n if (value === null || value === undefined) {\n return undefined;\n }\n const num = Number(value);\n return isNaN(num) ? undefined : num;\n}\n\n/**\n * Parse entity status\n */\nexport function parseStatus(value: unknown): 'active' | 'inactive' | 'pending' | 'archived' | 'deleted' {\n const status = parseString(value);\n if (status === 'active' || status === 'inactive' || status === 'pending' || status === 'archived' || status === 'deleted') {\n return status;\n }\n return 'active';\n}\n\n/**\n * Parse order status\n */\nexport function parseOrderStatus(value: unknown): 'pending' | 'confirmed' | 'processing' | 'shipped' | 'delivered' | 'cancelled' {\n const status = parseString(value);\n if (status === 'pending' || status === 'confirmed' || status === 'processing' || status === 'shipped' || status === 'delivered' || status === 'cancelled') {\n return status;\n }\n return 'pending';\n}\n\n/**\n * Parse payment status\n */\nexport function parsePaymentStatus(value: unknown): 'pending' | 'completed' | 'failed' | 'refunded' {\n const status = parseString(value);\n if (status === 'pending' || status === 'completed' || status === 'failed' || status === 'refunded') {\n return status;\n }\n return 'pending';\n}\n\n/**\n * Parse subscription status\n */\nexport function parseSubscriptionStatus(value: unknown): 'active' | 'cancelled' | 'expired' | 'paused' {\n const status = parseString(value);\n if (status === 'active' || status === 'cancelled' || status === 'expired' || status === 'paused') {\n return status;\n }\n return 'active';\n}\n\n/**\n * Parse subscription interval\n */\nexport function parseSubscriptionInterval(value: unknown): 'monthly' | 'yearly' {\n const interval = parseString(value);\n if (interval === 'monthly' || interval === 'yearly') {\n return interval;\n }\n return 'monthly';\n}\n"],"names":["parseString","value","undefined","str","String","length","parseDate","Date","date","isNaN","getTime","parseBoolean","parseStringArray","Array","isArray","map","parseNumber","num","Number","parseOptionalNumber","parseStatus","status","parseOrderStatus","parsePaymentStatus","parseSubscriptionStatus","parseSubscriptionInterval","interval"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;CAEC,GACD,OAAO,SAASA,YAAYC,KAAc;IACxC,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAOA;IACT;IACA,MAAMC,MAAMC,OAAOH;IACnB,OAAOE,IAAIE,MAAM,GAAG,IAAIF,MAAMD;AAChC;AAEA;;CAEC,GACD,OAAO,SAASI,UAAUL,KAAc;IACtC,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAOA;IACT;IAEA,IAAID,iBAAiBM,MAAM;QACzB,OAAON;IACT;IAEA,IAAI,OAAOA,UAAU,YAAY,OAAOA,UAAU,UAAU;QAC1D,MAAMO,OAAO,IAAID,KAAKN;QACtB,OAAOQ,MAAMD,KAAKE,OAAO,MAAMR,YAAYM;IAC7C;IAEA,OAAON;AACT;AAEA;;CAEC,GACD,OAAO,SAASS,aAAaV,KAAc;IACzC,IAAI,OAAOA,UAAU,WAAW;QAC9B,OAAOA;IACT;IACA,IAAIA,UAAU,UAAUA,UAAU,OAAOA,UAAU,GAAG;QACpD,OAAO;IACT;IACA,OAAO;AACT;AAEA;;CAEC,GACD,OAAO,SAASW,iBAAiBX,KAAc;IAC7C,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAOA;IACT;IACA,IAAIW,MAAMC,OAAO,CAACb,QAAQ;QACxB,OAAOA,MAAMc,GAAG,CAACX;IACnB;IACA,OAAOF;AACT;AAEA;;CAEC,GACD,OAAO,SAASc,YAAYf,KAAc;IACxC,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAO;IACT;IACA,MAAMe,MAAMC,OAAOjB;IACnB,OAAOQ,MAAMQ,OAAO,IAAIA;AAC1B;AAEA;;CAEC,GACD,OAAO,SAASE,oBAAoBlB,KAAc;IAChD,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAOA;IACT;IACA,MAAMe,MAAMC,OAAOjB;IACnB,OAAOQ,MAAMQ,OAAOf,YAAYe;AAClC;AAEA;;CAEC,GACD,OAAO,SAASG,YAAYnB,KAAc;IACxC,MAAMoB,SAASrB,YAAYC;IAC3B,IAAIoB,WAAW,YAAYA,WAAW,cAAcA,WAAW,aAAaA,WAAW,cAAcA,WAAW,WAAW;QACzH,OAAOA;IACT;IACA,OAAO;AACT;AAEA;;CAEC,GACD,OAAO,SAASC,iBAAiBrB,KAAc;IAC7C,MAAMoB,SAASrB,YAAYC;IAC3B,IAAIoB,WAAW,aAAaA,WAAW,eAAeA,WAAW,gBAAgBA,WAAW,aAAaA,WAAW,eAAeA,WAAW,aAAa;QACzJ,OAAOA;IACT;IACA,OAAO;AACT;AAEA;;CAEC,GACD,OAAO,SAASE,mBAAmBtB,KAAc;IAC/C,MAAMoB,SAASrB,YAAYC;IAC3B,IAAIoB,WAAW,aAAaA,WAAW,eAAeA,WAAW,YAAYA,WAAW,YAAY;QAClG,OAAOA;IACT;IACA,OAAO;AACT;AAEA;;CAEC,GACD,OAAO,SAASG,wBAAwBvB,KAAc;IACpD,MAAMoB,SAASrB,YAAYC;IAC3B,IAAIoB,WAAW,YAAYA,WAAW,eAAeA,WAAW,aAAaA,WAAW,UAAU;QAChG,OAAOA;IACT;IACA,OAAO;AACT;AAEA;;CAEC,GACD,OAAO,SAASI,0BAA0BxB,KAAc;IACtD,MAAMyB,WAAW1B,YAAYC;IAC7B,IAAIyB,aAAa,aAAaA,aAAa,UAAU;QACnD,OAAOA;IACT;IACA,OAAO;AACT"}
@@ -0,0 +1,22 @@
1
+ import { createOrdersService, createOrderDetailsService, createPaymentsService, createSubscriptionsService } from './services';
2
+ export function createSalesBlock(transport, config) {
3
+ return {
4
+ orders: createOrdersService(transport, config),
5
+ orderDetails: createOrderDetailsService(transport, config),
6
+ payments: createPaymentsService(transport, config),
7
+ subscriptions: createSubscriptionsService(transport, config)
8
+ };
9
+ }
10
+ export const salesBlockMetadata = {
11
+ name: 'sales',
12
+ version: '0.1.0',
13
+ description: 'Sales management - orders, payments, subscriptions, and transactions',
14
+ resourceTypes: [
15
+ 'Order',
16
+ 'OrderDetail',
17
+ 'Payment',
18
+ 'Subscription'
19
+ ]
20
+ };
21
+
22
+ //# sourceMappingURL=sales.block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/sales.block.ts"],"sourcesContent":["import type { Transport, BlockConfig, BlockMetadata } from '@23blocks/contracts';\nimport {\n createOrdersService,\n createOrderDetailsService,\n createPaymentsService,\n createSubscriptionsService,\n type OrdersService,\n type OrderDetailsService,\n type PaymentsService,\n type SubscriptionsService,\n} from './services';\n\nexport interface SalesBlockConfig extends BlockConfig {\n appId: string;\n tenantId?: string;\n}\n\nexport interface SalesBlock {\n orders: OrdersService;\n orderDetails: OrderDetailsService;\n payments: PaymentsService;\n subscriptions: SubscriptionsService;\n}\n\nexport function createSalesBlock(\n transport: Transport,\n config: SalesBlockConfig\n): SalesBlock {\n return {\n orders: createOrdersService(transport, config),\n orderDetails: createOrderDetailsService(transport, config),\n payments: createPaymentsService(transport, config),\n subscriptions: createSubscriptionsService(transport, config),\n };\n}\n\nexport const salesBlockMetadata: BlockMetadata = {\n name: 'sales',\n version: '0.1.0',\n description: 'Sales management - orders, payments, subscriptions, and transactions',\n resourceTypes: [\n 'Order',\n 'OrderDetail',\n 'Payment',\n 'Subscription',\n ],\n};\n"],"names":["createOrdersService","createOrderDetailsService","createPaymentsService","createSubscriptionsService","createSalesBlock","transport","config","orders","orderDetails","payments","subscriptions","salesBlockMetadata","name","version","description","resourceTypes"],"rangeMappings":";;;;;;;;;;;;;;;;;;;","mappings":"AACA,SACEA,mBAAmB,EACnBC,yBAAyB,EACzBC,qBAAqB,EACrBC,0BAA0B,QAKrB,aAAa;AAcpB,OAAO,SAASC,iBACdC,SAAoB,EACpBC,MAAwB;IAExB,OAAO;QACLC,QAAQP,oBAAoBK,WAAWC;QACvCE,cAAcP,0BAA0BI,WAAWC;QACnDG,UAAUP,sBAAsBG,WAAWC;QAC3CI,eAAeP,2BAA2BE,WAAWC;IACvD;AACF;AAEA,OAAO,MAAMK,qBAAoC;IAC/CC,MAAM;IACNC,SAAS;IACTC,aAAa;IACbC,eAAe;QACb;QACA;QACA;QACA;KACD;AACH,EAAE"}
@@ -0,0 +1,6 @@
1
+ export * from './orders.service';
2
+ export * from './order-details.service';
3
+ export * from './payments.service';
4
+ export * from './subscriptions.service';
5
+
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/services/index.ts"],"sourcesContent":["export * from './orders.service';\nexport * from './order-details.service';\nexport * from './payments.service';\nexport * from './subscriptions.service';\n"],"names":[],"rangeMappings":";;;","mappings":"AAAA,cAAc,mBAAmB;AACjC,cAAc,0BAA0B;AACxC,cAAc,qBAAqB;AACnC,cAAc,0BAA0B"}
@@ -0,0 +1,36 @@
1
+ import { decodeOne, decodeMany } from '@23blocks/jsonapi-codec';
2
+ import { orderDetailMapper } from '../mappers/order-detail.mapper';
3
+ export function createOrderDetailsService(transport, _config) {
4
+ return {
5
+ async list () {
6
+ const response = await transport.get('/order_details');
7
+ return decodeMany(response, orderDetailMapper);
8
+ },
9
+ async get (uniqueId) {
10
+ const response = await transport.get(`/order_details/${uniqueId}`);
11
+ return decodeOne(response, orderDetailMapper);
12
+ },
13
+ async update (uniqueId, data) {
14
+ const response = await transport.put(`/order_details/${uniqueId}`, {
15
+ data: {
16
+ type: 'OrderDetail',
17
+ attributes: {
18
+ quantity: data.quantity,
19
+ unit_price: data.unitPrice,
20
+ discount: data.discount,
21
+ tax: data.tax,
22
+ status: data.status,
23
+ payload: data.payload
24
+ }
25
+ }
26
+ });
27
+ return decodeOne(response, orderDetailMapper);
28
+ },
29
+ async listByOrder (orderUniqueId) {
30
+ const response = await transport.get(`/orders/${orderUniqueId}/details`);
31
+ return decodeMany(response, orderDetailMapper);
32
+ }
33
+ };
34
+ }
35
+
36
+ //# sourceMappingURL=order-details.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/services/order-details.service.ts"],"sourcesContent":["import type { Transport } from '@23blocks/contracts';\nimport { decodeOne, decodeMany } from '@23blocks/jsonapi-codec';\nimport type { OrderDetail, UpdateOrderDetailRequest } from '../types/order-detail';\nimport { orderDetailMapper } from '../mappers/order-detail.mapper';\n\nexport interface OrderDetailsService {\n list(): Promise<OrderDetail[]>;\n get(uniqueId: string): Promise<OrderDetail>;\n update(uniqueId: string, data: UpdateOrderDetailRequest): Promise<OrderDetail>;\n listByOrder(orderUniqueId: string): Promise<OrderDetail[]>;\n}\n\nexport function createOrderDetailsService(transport: Transport, _config: { appId: string }): OrderDetailsService {\n return {\n async list(): Promise<OrderDetail[]> {\n const response = await transport.get<unknown>('/order_details');\n return decodeMany(response, orderDetailMapper);\n },\n\n async get(uniqueId: string): Promise<OrderDetail> {\n const response = await transport.get<unknown>(`/order_details/${uniqueId}`);\n return decodeOne(response, orderDetailMapper);\n },\n\n async update(uniqueId: string, data: UpdateOrderDetailRequest): Promise<OrderDetail> {\n const response = await transport.put<unknown>(`/order_details/${uniqueId}`, {\n data: {\n type: 'OrderDetail',\n attributes: {\n quantity: data.quantity,\n unit_price: data.unitPrice,\n discount: data.discount,\n tax: data.tax,\n status: data.status,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, orderDetailMapper);\n },\n\n async listByOrder(orderUniqueId: string): Promise<OrderDetail[]> {\n const response = await transport.get<unknown>(`/orders/${orderUniqueId}/details`);\n return decodeMany(response, orderDetailMapper);\n },\n };\n}\n"],"names":["decodeOne","decodeMany","orderDetailMapper","createOrderDetailsService","transport","_config","list","response","get","uniqueId","update","data","put","type","attributes","quantity","unit_price","unitPrice","discount","tax","status","payload","listByOrder","orderUniqueId"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,SAAS,EAAEC,UAAU,QAAQ,0BAA0B;AAEhE,SAASC,iBAAiB,QAAQ,iCAAiC;AASnE,OAAO,SAASC,0BAA0BC,SAAoB,EAAEC,OAA0B;IACxF,OAAO;QACL,MAAMC;YACJ,MAAMC,WAAW,MAAMH,UAAUI,GAAG,CAAU;YAC9C,OAAOP,WAAWM,UAAUL;QAC9B;QAEA,MAAMM,KAAIC,QAAgB;YACxB,MAAMF,WAAW,MAAMH,UAAUI,GAAG,CAAU,CAAC,eAAe,EAAEC,SAAS,CAAC;YAC1E,OAAOT,UAAUO,UAAUL;QAC7B;QAEA,MAAMQ,QAAOD,QAAgB,EAAEE,IAA8B;YAC3D,MAAMJ,WAAW,MAAMH,UAAUQ,GAAG,CAAU,CAAC,eAAe,EAAEH,SAAS,CAAC,EAAE;gBAC1EE,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVC,UAAUJ,KAAKI,QAAQ;wBACvBC,YAAYL,KAAKM,SAAS;wBAC1BC,UAAUP,KAAKO,QAAQ;wBACvBC,KAAKR,KAAKQ,GAAG;wBACbC,QAAQT,KAAKS,MAAM;wBACnBC,SAASV,KAAKU,OAAO;oBACvB;gBACF;YACF;YACA,OAAOrB,UAAUO,UAAUL;QAC7B;QAEA,MAAMoB,aAAYC,aAAqB;YACrC,MAAMhB,WAAW,MAAMH,UAAUI,GAAG,CAAU,CAAC,QAAQ,EAAEe,cAAc,QAAQ,CAAC;YAChF,OAAOtB,WAAWM,UAAUL;QAC9B;IACF;AACF"}
@@ -0,0 +1,98 @@
1
+ import { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';
2
+ import { orderMapper } from '../mappers/order.mapper';
3
+ export function createOrdersService(transport, _config) {
4
+ return {
5
+ async list (params) {
6
+ const queryParams = {};
7
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
8
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
9
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
10
+ if (params == null ? void 0 : params.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;
11
+ if (params == null ? void 0 : params.startDate) queryParams['start_date'] = params.startDate.toISOString();
12
+ if (params == null ? void 0 : params.endDate) queryParams['end_date'] = params.endDate.toISOString();
13
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
14
+ const response = await transport.get('/orders', {
15
+ params: queryParams
16
+ });
17
+ return decodePageResult(response, orderMapper);
18
+ },
19
+ async get (uniqueId) {
20
+ const response = await transport.get(`/orders/${uniqueId}`);
21
+ return decodeOne(response, orderMapper);
22
+ },
23
+ async create (data) {
24
+ const response = await transport.post('/orders', {
25
+ data: {
26
+ type: 'Order',
27
+ attributes: {
28
+ user_unique_id: data.userUniqueId,
29
+ items: data.items.map((item)=>({
30
+ product_unique_id: item.productUniqueId,
31
+ product_variation_unique_id: item.productVariationUniqueId,
32
+ quantity: item.quantity,
33
+ unit_price: item.unitPrice
34
+ })),
35
+ shipping_address_unique_id: data.shippingAddressUniqueId,
36
+ billing_address_unique_id: data.billingAddressUniqueId,
37
+ notes: data.notes,
38
+ payload: data.payload
39
+ }
40
+ }
41
+ });
42
+ return decodeOne(response, orderMapper);
43
+ },
44
+ async update (uniqueId, data) {
45
+ const response = await transport.put(`/orders/${uniqueId}`, {
46
+ data: {
47
+ type: 'Order',
48
+ attributes: {
49
+ status: data.status,
50
+ shipping_address_unique_id: data.shippingAddressUniqueId,
51
+ billing_address_unique_id: data.billingAddressUniqueId,
52
+ notes: data.notes,
53
+ payload: data.payload
54
+ }
55
+ }
56
+ });
57
+ return decodeOne(response, orderMapper);
58
+ },
59
+ async cancel (uniqueId) {
60
+ const response = await transport.put(`/orders/${uniqueId}/cancel`, {});
61
+ return decodeOne(response, orderMapper);
62
+ },
63
+ async confirm (uniqueId) {
64
+ const response = await transport.put(`/orders/${uniqueId}/confirm`, {});
65
+ return decodeOne(response, orderMapper);
66
+ },
67
+ async ship (uniqueId, trackingNumber) {
68
+ const response = await transport.put(`/orders/${uniqueId}/ship`, {
69
+ data: {
70
+ type: 'Order',
71
+ attributes: {
72
+ tracking_number: trackingNumber
73
+ }
74
+ }
75
+ });
76
+ return decodeOne(response, orderMapper);
77
+ },
78
+ async deliver (uniqueId) {
79
+ const response = await transport.put(`/orders/${uniqueId}/deliver`, {});
80
+ return decodeOne(response, orderMapper);
81
+ },
82
+ async listByUser (userUniqueId, params) {
83
+ const queryParams = {};
84
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
85
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
86
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
87
+ if (params == null ? void 0 : params.startDate) queryParams['start_date'] = params.startDate.toISOString();
88
+ if (params == null ? void 0 : params.endDate) queryParams['end_date'] = params.endDate.toISOString();
89
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
90
+ const response = await transport.get(`/users/${userUniqueId}/orders`, {
91
+ params: queryParams
92
+ });
93
+ return decodePageResult(response, orderMapper);
94
+ }
95
+ };
96
+ }
97
+
98
+ //# sourceMappingURL=orders.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/services/orders.service.ts"],"sourcesContent":["import type { Transport, PageResult } from '@23blocks/contracts';\nimport { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type { Order, CreateOrderRequest, UpdateOrderRequest, ListOrdersParams } from '../types/order';\nimport { orderMapper } from '../mappers/order.mapper';\n\nexport interface OrdersService {\n list(params?: ListOrdersParams): Promise<PageResult<Order>>;\n get(uniqueId: string): Promise<Order>;\n create(data: CreateOrderRequest): Promise<Order>;\n update(uniqueId: string, data: UpdateOrderRequest): Promise<Order>;\n cancel(uniqueId: string): Promise<Order>;\n confirm(uniqueId: string): Promise<Order>;\n ship(uniqueId: string, trackingNumber?: string): Promise<Order>;\n deliver(uniqueId: string): Promise<Order>;\n listByUser(userUniqueId: string, params?: ListOrdersParams): Promise<PageResult<Order>>;\n}\n\nexport function createOrdersService(transport: Transport, _config: { appId: string }): OrdersService {\n return {\n async list(params?: ListOrdersParams): Promise<PageResult<Order>> {\n const queryParams: Record<string, string> = {};\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n if (params?.status) queryParams['status'] = params.status;\n if (params?.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;\n if (params?.startDate) queryParams['start_date'] = params.startDate.toISOString();\n if (params?.endDate) queryParams['end_date'] = params.endDate.toISOString();\n if (params?.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;\n\n const response = await transport.get<unknown>('/orders', { params: queryParams });\n return decodePageResult(response, orderMapper);\n },\n\n async get(uniqueId: string): Promise<Order> {\n const response = await transport.get<unknown>(`/orders/${uniqueId}`);\n return decodeOne(response, orderMapper);\n },\n\n async create(data: CreateOrderRequest): Promise<Order> {\n const response = await transport.post<unknown>('/orders', {\n data: {\n type: 'Order',\n attributes: {\n user_unique_id: data.userUniqueId,\n items: data.items.map((item) => ({\n product_unique_id: item.productUniqueId,\n product_variation_unique_id: item.productVariationUniqueId,\n quantity: item.quantity,\n unit_price: item.unitPrice,\n })),\n shipping_address_unique_id: data.shippingAddressUniqueId,\n billing_address_unique_id: data.billingAddressUniqueId,\n notes: data.notes,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, orderMapper);\n },\n\n async update(uniqueId: string, data: UpdateOrderRequest): Promise<Order> {\n const response = await transport.put<unknown>(`/orders/${uniqueId}`, {\n data: {\n type: 'Order',\n attributes: {\n status: data.status,\n shipping_address_unique_id: data.shippingAddressUniqueId,\n billing_address_unique_id: data.billingAddressUniqueId,\n notes: data.notes,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, orderMapper);\n },\n\n async cancel(uniqueId: string): Promise<Order> {\n const response = await transport.put<unknown>(`/orders/${uniqueId}/cancel`, {});\n return decodeOne(response, orderMapper);\n },\n\n async confirm(uniqueId: string): Promise<Order> {\n const response = await transport.put<unknown>(`/orders/${uniqueId}/confirm`, {});\n return decodeOne(response, orderMapper);\n },\n\n async ship(uniqueId: string, trackingNumber?: string): Promise<Order> {\n const response = await transport.put<unknown>(`/orders/${uniqueId}/ship`, {\n data: {\n type: 'Order',\n attributes: {\n tracking_number: trackingNumber,\n },\n },\n });\n return decodeOne(response, orderMapper);\n },\n\n async deliver(uniqueId: string): Promise<Order> {\n const response = await transport.put<unknown>(`/orders/${uniqueId}/deliver`, {});\n return decodeOne(response, orderMapper);\n },\n\n async listByUser(userUniqueId: string, params?: ListOrdersParams): Promise<PageResult<Order>> {\n const queryParams: Record<string, string> = {};\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n if (params?.status) queryParams['status'] = params.status;\n if (params?.startDate) queryParams['start_date'] = params.startDate.toISOString();\n if (params?.endDate) queryParams['end_date'] = params.endDate.toISOString();\n if (params?.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;\n\n const response = await transport.get<unknown>(`/users/${userUniqueId}/orders`, { params: queryParams });\n return decodePageResult(response, orderMapper);\n },\n };\n}\n"],"names":["decodeOne","decodePageResult","orderMapper","createOrdersService","transport","_config","list","params","queryParams","page","String","perPage","status","userUniqueId","startDate","toISOString","endDate","sortBy","sortOrder","response","get","uniqueId","create","data","post","type","attributes","user_unique_id","items","map","item","product_unique_id","productUniqueId","product_variation_unique_id","productVariationUniqueId","quantity","unit_price","unitPrice","shipping_address_unique_id","shippingAddressUniqueId","billing_address_unique_id","billingAddressUniqueId","notes","payload","update","put","cancel","confirm","ship","trackingNumber","tracking_number","deliver","listByUser"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import { decodeOne, decodeMany, decodePageResult } from '@23blocks/jsonapi-codec';
2
+ import { paymentMapper } from '../mappers/payment.mapper';
3
+ export function createPaymentsService(transport, _config) {
4
+ return {
5
+ async list (params) {
6
+ const queryParams = {};
7
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
8
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
9
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
10
+ if (params == null ? void 0 : params.orderUniqueId) queryParams['order_unique_id'] = params.orderUniqueId;
11
+ if (params == null ? void 0 : params.paymentMethod) queryParams['payment_method'] = params.paymentMethod;
12
+ if (params == null ? void 0 : params.startDate) queryParams['start_date'] = params.startDate.toISOString();
13
+ if (params == null ? void 0 : params.endDate) queryParams['end_date'] = params.endDate.toISOString();
14
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
15
+ const response = await transport.get('/payments', {
16
+ params: queryParams
17
+ });
18
+ return decodePageResult(response, paymentMapper);
19
+ },
20
+ async get (uniqueId) {
21
+ const response = await transport.get(`/payments/${uniqueId}`);
22
+ return decodeOne(response, paymentMapper);
23
+ },
24
+ async create (data) {
25
+ const response = await transport.post('/payments', {
26
+ data: {
27
+ type: 'Payment',
28
+ attributes: {
29
+ order_unique_id: data.orderUniqueId,
30
+ payment_method: data.paymentMethod,
31
+ payment_provider: data.paymentProvider,
32
+ amount: data.amount,
33
+ currency: data.currency,
34
+ transaction_id: data.transactionId,
35
+ payload: data.payload
36
+ }
37
+ }
38
+ });
39
+ return decodeOne(response, paymentMapper);
40
+ },
41
+ async refund (uniqueId, amount) {
42
+ const response = await transport.put(`/payments/${uniqueId}/refund`, {
43
+ data: {
44
+ type: 'Payment',
45
+ attributes: {
46
+ amount
47
+ }
48
+ }
49
+ });
50
+ return decodeOne(response, paymentMapper);
51
+ },
52
+ async listByOrder (orderUniqueId) {
53
+ const response = await transport.get(`/orders/${orderUniqueId}/payments`);
54
+ return decodeMany(response, paymentMapper);
55
+ }
56
+ };
57
+ }
58
+
59
+ //# sourceMappingURL=payments.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/services/payments.service.ts"],"sourcesContent":["import type { Transport, PageResult } from '@23blocks/contracts';\nimport { decodeOne, decodeMany, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type { Payment, CreatePaymentRequest, ListPaymentsParams } from '../types/payment';\nimport { paymentMapper } from '../mappers/payment.mapper';\n\nexport interface PaymentsService {\n list(params?: ListPaymentsParams): Promise<PageResult<Payment>>;\n get(uniqueId: string): Promise<Payment>;\n create(data: CreatePaymentRequest): Promise<Payment>;\n refund(uniqueId: string, amount?: number): Promise<Payment>;\n listByOrder(orderUniqueId: string): Promise<Payment[]>;\n}\n\nexport function createPaymentsService(transport: Transport, _config: { appId: string }): PaymentsService {\n return {\n async list(params?: ListPaymentsParams): Promise<PageResult<Payment>> {\n const queryParams: Record<string, string> = {};\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n if (params?.status) queryParams['status'] = params.status;\n if (params?.orderUniqueId) queryParams['order_unique_id'] = params.orderUniqueId;\n if (params?.paymentMethod) queryParams['payment_method'] = params.paymentMethod;\n if (params?.startDate) queryParams['start_date'] = params.startDate.toISOString();\n if (params?.endDate) queryParams['end_date'] = params.endDate.toISOString();\n if (params?.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;\n\n const response = await transport.get<unknown>('/payments', { params: queryParams });\n return decodePageResult(response, paymentMapper);\n },\n\n async get(uniqueId: string): Promise<Payment> {\n const response = await transport.get<unknown>(`/payments/${uniqueId}`);\n return decodeOne(response, paymentMapper);\n },\n\n async create(data: CreatePaymentRequest): Promise<Payment> {\n const response = await transport.post<unknown>('/payments', {\n data: {\n type: 'Payment',\n attributes: {\n order_unique_id: data.orderUniqueId,\n payment_method: data.paymentMethod,\n payment_provider: data.paymentProvider,\n amount: data.amount,\n currency: data.currency,\n transaction_id: data.transactionId,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, paymentMapper);\n },\n\n async refund(uniqueId: string, amount?: number): Promise<Payment> {\n const response = await transport.put<unknown>(`/payments/${uniqueId}/refund`, {\n data: {\n type: 'Payment',\n attributes: {\n amount,\n },\n },\n });\n return decodeOne(response, paymentMapper);\n },\n\n async listByOrder(orderUniqueId: string): Promise<Payment[]> {\n const response = await transport.get<unknown>(`/orders/${orderUniqueId}/payments`);\n return decodeMany(response, paymentMapper);\n },\n };\n}\n"],"names":["decodeOne","decodeMany","decodePageResult","paymentMapper","createPaymentsService","transport","_config","list","params","queryParams","page","String","perPage","status","orderUniqueId","paymentMethod","startDate","toISOString","endDate","sortBy","sortOrder","response","get","uniqueId","create","data","post","type","attributes","order_unique_id","payment_method","payment_provider","paymentProvider","amount","currency","transaction_id","transactionId","payload","refund","put","listByOrder"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,SAAS,EAAEC,UAAU,EAAEC,gBAAgB,QAAQ,0BAA0B;AAElF,SAASC,aAAa,QAAQ,4BAA4B;AAU1D,OAAO,SAASC,sBAAsBC,SAAoB,EAAEC,OAA0B;IACpF,OAAO;QACL,MAAMC,MAAKC,MAA2B;YACpC,MAAMC,cAAsC,CAAC;YAC7C,IAAID,0BAAAA,OAAQE,IAAI,EAAED,WAAW,CAAC,OAAO,GAAGE,OAAOH,OAAOE,IAAI;YAC1D,IAAIF,0BAAAA,OAAQI,OAAO,EAAEH,WAAW,CAAC,UAAU,GAAGE,OAAOH,OAAOI,OAAO;YACnE,IAAIJ,0BAAAA,OAAQK,MAAM,EAAEJ,WAAW,CAAC,SAAS,GAAGD,OAAOK,MAAM;YACzD,IAAIL,0BAAAA,OAAQM,aAAa,EAAEL,WAAW,CAAC,kBAAkB,GAAGD,OAAOM,aAAa;YAChF,IAAIN,0BAAAA,OAAQO,aAAa,EAAEN,WAAW,CAAC,iBAAiB,GAAGD,OAAOO,aAAa;YAC/E,IAAIP,0BAAAA,OAAQQ,SAAS,EAAEP,WAAW,CAAC,aAAa,GAAGD,OAAOQ,SAAS,CAACC,WAAW;YAC/E,IAAIT,0BAAAA,OAAQU,OAAO,EAAET,WAAW,CAAC,WAAW,GAAGD,OAAOU,OAAO,CAACD,WAAW;YACzE,IAAIT,0BAAAA,OAAQW,MAAM,EAAEV,WAAW,CAAC,OAAO,GAAGD,OAAOY,SAAS,KAAK,SAAS,CAAC,CAAC,EAAEZ,OAAOW,MAAM,CAAC,CAAC,GAAGX,OAAOW,MAAM;YAE3G,MAAME,WAAW,MAAMhB,UAAUiB,GAAG,CAAU,aAAa;gBAAEd,QAAQC;YAAY;YACjF,OAAOP,iBAAiBmB,UAAUlB;QACpC;QAEA,MAAMmB,KAAIC,QAAgB;YACxB,MAAMF,WAAW,MAAMhB,UAAUiB,GAAG,CAAU,CAAC,UAAU,EAAEC,SAAS,CAAC;YACrE,OAAOvB,UAAUqB,UAAUlB;QAC7B;QAEA,MAAMqB,QAAOC,IAA0B;YACrC,MAAMJ,WAAW,MAAMhB,UAAUqB,IAAI,CAAU,aAAa;gBAC1DD,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVC,iBAAiBJ,KAAKX,aAAa;wBACnCgB,gBAAgBL,KAAKV,aAAa;wBAClCgB,kBAAkBN,KAAKO,eAAe;wBACtCC,QAAQR,KAAKQ,MAAM;wBACnBC,UAAUT,KAAKS,QAAQ;wBACvBC,gBAAgBV,KAAKW,aAAa;wBAClCC,SAASZ,KAAKY,OAAO;oBACvB;gBACF;YACF;YACA,OAAOrC,UAAUqB,UAAUlB;QAC7B;QAEA,MAAMmC,QAAOf,QAAgB,EAAEU,MAAe;YAC5C,MAAMZ,WAAW,MAAMhB,UAAUkC,GAAG,CAAU,CAAC,UAAU,EAAEhB,SAAS,OAAO,CAAC,EAAE;gBAC5EE,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVK;oBACF;gBACF;YACF;YACA,OAAOjC,UAAUqB,UAAUlB;QAC7B;QAEA,MAAMqC,aAAY1B,aAAqB;YACrC,MAAMO,WAAW,MAAMhB,UAAUiB,GAAG,CAAU,CAAC,QAAQ,EAAER,cAAc,SAAS,CAAC;YACjF,OAAOb,WAAWoB,UAAUlB;QAC9B;IACF;AACF"}
@@ -0,0 +1,90 @@
1
+ import { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';
2
+ import { subscriptionMapper } from '../mappers/subscription.mapper';
3
+ export function createSubscriptionsService(transport, _config) {
4
+ return {
5
+ async list (params) {
6
+ const queryParams = {};
7
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
8
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
9
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
10
+ if (params == null ? void 0 : params.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;
11
+ if (params == null ? void 0 : params.planUniqueId) queryParams['plan_unique_id'] = params.planUniqueId;
12
+ if (params == null ? void 0 : params.interval) queryParams['interval'] = params.interval;
13
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
14
+ const response = await transport.get('/subscriptions', {
15
+ params: queryParams
16
+ });
17
+ return decodePageResult(response, subscriptionMapper);
18
+ },
19
+ async get (uniqueId) {
20
+ const response = await transport.get(`/subscriptions/${uniqueId}`);
21
+ return decodeOne(response, subscriptionMapper);
22
+ },
23
+ async create (data) {
24
+ var _data_startDate;
25
+ const response = await transport.post('/subscriptions', {
26
+ data: {
27
+ type: 'Subscription',
28
+ attributes: {
29
+ user_unique_id: data.userUniqueId,
30
+ plan_unique_id: data.planUniqueId,
31
+ plan_name: data.planName,
32
+ price: data.price,
33
+ currency: data.currency,
34
+ interval: data.interval,
35
+ start_date: (_data_startDate = data.startDate) == null ? void 0 : _data_startDate.toISOString(),
36
+ payload: data.payload
37
+ }
38
+ }
39
+ });
40
+ return decodeOne(response, subscriptionMapper);
41
+ },
42
+ async update (uniqueId, data) {
43
+ var _data_endDate, _data_nextBillingDate;
44
+ const response = await transport.put(`/subscriptions/${uniqueId}`, {
45
+ data: {
46
+ type: 'Subscription',
47
+ attributes: {
48
+ plan_unique_id: data.planUniqueId,
49
+ plan_name: data.planName,
50
+ price: data.price,
51
+ currency: data.currency,
52
+ interval: data.interval,
53
+ status: data.status,
54
+ end_date: (_data_endDate = data.endDate) == null ? void 0 : _data_endDate.toISOString(),
55
+ next_billing_date: (_data_nextBillingDate = data.nextBillingDate) == null ? void 0 : _data_nextBillingDate.toISOString(),
56
+ payload: data.payload
57
+ }
58
+ }
59
+ });
60
+ return decodeOne(response, subscriptionMapper);
61
+ },
62
+ async cancel (uniqueId) {
63
+ const response = await transport.put(`/subscriptions/${uniqueId}/cancel`, {});
64
+ return decodeOne(response, subscriptionMapper);
65
+ },
66
+ async pause (uniqueId) {
67
+ const response = await transport.put(`/subscriptions/${uniqueId}/pause`, {});
68
+ return decodeOne(response, subscriptionMapper);
69
+ },
70
+ async resume (uniqueId) {
71
+ const response = await transport.put(`/subscriptions/${uniqueId}/resume`, {});
72
+ return decodeOne(response, subscriptionMapper);
73
+ },
74
+ async listByUser (userUniqueId, params) {
75
+ const queryParams = {};
76
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
77
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
78
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
79
+ if (params == null ? void 0 : params.planUniqueId) queryParams['plan_unique_id'] = params.planUniqueId;
80
+ if (params == null ? void 0 : params.interval) queryParams['interval'] = params.interval;
81
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
82
+ const response = await transport.get(`/users/${userUniqueId}/subscriptions`, {
83
+ params: queryParams
84
+ });
85
+ return decodePageResult(response, subscriptionMapper);
86
+ }
87
+ };
88
+ }
89
+
90
+ //# sourceMappingURL=subscriptions.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/services/subscriptions.service.ts"],"sourcesContent":["import type { Transport, PageResult } from '@23blocks/contracts';\nimport { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type { Subscription, CreateSubscriptionRequest, UpdateSubscriptionRequest, ListSubscriptionsParams } from '../types/subscription';\nimport { subscriptionMapper } from '../mappers/subscription.mapper';\n\nexport interface SubscriptionsService {\n list(params?: ListSubscriptionsParams): Promise<PageResult<Subscription>>;\n get(uniqueId: string): Promise<Subscription>;\n create(data: CreateSubscriptionRequest): Promise<Subscription>;\n update(uniqueId: string, data: UpdateSubscriptionRequest): Promise<Subscription>;\n cancel(uniqueId: string): Promise<Subscription>;\n pause(uniqueId: string): Promise<Subscription>;\n resume(uniqueId: string): Promise<Subscription>;\n listByUser(userUniqueId: string, params?: ListSubscriptionsParams): Promise<PageResult<Subscription>>;\n}\n\nexport function createSubscriptionsService(transport: Transport, _config: { appId: string }): SubscriptionsService {\n return {\n async list(params?: ListSubscriptionsParams): Promise<PageResult<Subscription>> {\n const queryParams: Record<string, string> = {};\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n if (params?.status) queryParams['status'] = params.status;\n if (params?.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;\n if (params?.planUniqueId) queryParams['plan_unique_id'] = params.planUniqueId;\n if (params?.interval) queryParams['interval'] = params.interval;\n if (params?.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;\n\n const response = await transport.get<unknown>('/subscriptions', { params: queryParams });\n return decodePageResult(response, subscriptionMapper);\n },\n\n async get(uniqueId: string): Promise<Subscription> {\n const response = await transport.get<unknown>(`/subscriptions/${uniqueId}`);\n return decodeOne(response, subscriptionMapper);\n },\n\n async create(data: CreateSubscriptionRequest): Promise<Subscription> {\n const response = await transport.post<unknown>('/subscriptions', {\n data: {\n type: 'Subscription',\n attributes: {\n user_unique_id: data.userUniqueId,\n plan_unique_id: data.planUniqueId,\n plan_name: data.planName,\n price: data.price,\n currency: data.currency,\n interval: data.interval,\n start_date: data.startDate?.toISOString(),\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, subscriptionMapper);\n },\n\n async update(uniqueId: string, data: UpdateSubscriptionRequest): Promise<Subscription> {\n const response = await transport.put<unknown>(`/subscriptions/${uniqueId}`, {\n data: {\n type: 'Subscription',\n attributes: {\n plan_unique_id: data.planUniqueId,\n plan_name: data.planName,\n price: data.price,\n currency: data.currency,\n interval: data.interval,\n status: data.status,\n end_date: data.endDate?.toISOString(),\n next_billing_date: data.nextBillingDate?.toISOString(),\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, subscriptionMapper);\n },\n\n async cancel(uniqueId: string): Promise<Subscription> {\n const response = await transport.put<unknown>(`/subscriptions/${uniqueId}/cancel`, {});\n return decodeOne(response, subscriptionMapper);\n },\n\n async pause(uniqueId: string): Promise<Subscription> {\n const response = await transport.put<unknown>(`/subscriptions/${uniqueId}/pause`, {});\n return decodeOne(response, subscriptionMapper);\n },\n\n async resume(uniqueId: string): Promise<Subscription> {\n const response = await transport.put<unknown>(`/subscriptions/${uniqueId}/resume`, {});\n return decodeOne(response, subscriptionMapper);\n },\n\n async listByUser(userUniqueId: string, params?: ListSubscriptionsParams): Promise<PageResult<Subscription>> {\n const queryParams: Record<string, string> = {};\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n if (params?.status) queryParams['status'] = params.status;\n if (params?.planUniqueId) queryParams['plan_unique_id'] = params.planUniqueId;\n if (params?.interval) queryParams['interval'] = params.interval;\n if (params?.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;\n\n const response = await transport.get<unknown>(`/users/${userUniqueId}/subscriptions`, { params: queryParams });\n return decodePageResult(response, subscriptionMapper);\n },\n };\n}\n"],"names":["decodeOne","decodePageResult","subscriptionMapper","createSubscriptionsService","transport","_config","list","params","queryParams","page","String","perPage","status","userUniqueId","planUniqueId","interval","sortBy","sortOrder","response","get","uniqueId","create","data","post","type","attributes","user_unique_id","plan_unique_id","plan_name","planName","price","currency","start_date","startDate","toISOString","payload","update","put","end_date","endDate","next_billing_date","nextBillingDate","cancel","pause","resume","listByUser"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export * from './order';
2
+ export * from './order-detail';
3
+ export * from './payment';
4
+ export * from './subscription';
5
+
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/types/index.ts"],"sourcesContent":["export * from './order';\nexport * from './order-detail';\nexport * from './payment';\nexport * from './subscription';\n"],"names":[],"rangeMappings":";;;","mappings":"AAAA,cAAc,UAAU;AACxB,cAAc,iBAAiB;AAC/B,cAAc,YAAY;AAC1B,cAAc,iBAAiB"}
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=order-detail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/types/order-detail.ts"],"sourcesContent":["import type { IdentityCore, EntityStatus } from '@23blocks/contracts';\n\nexport interface OrderDetail extends IdentityCore {\n orderUniqueId: string;\n productUniqueId: string;\n productVariationUniqueId?: string;\n sku: string;\n name: string;\n quantity: number;\n unitPrice: number;\n discount: number;\n tax: number;\n total: number;\n status: EntityStatus;\n vendorUniqueId?: string;\n payload?: Record<string, unknown>;\n}\n\nexport interface UpdateOrderDetailRequest {\n quantity?: number;\n unitPrice?: number;\n discount?: number;\n tax?: number;\n status?: EntityStatus;\n payload?: Record<string, unknown>;\n}\n"],"names":[],"rangeMappings":"","mappings":"AAkBA,WAOC"}
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=order.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/types/order.ts"],"sourcesContent":["import type { IdentityCore, EntityStatus } from '@23blocks/contracts';\n\nexport type OrderStatus = 'pending' | 'confirmed' | 'processing' | 'shipped' | 'delivered' | 'cancelled';\n\nexport interface Order extends IdentityCore {\n displayId: string;\n userUniqueId: string;\n status: OrderStatus;\n subtotal: number;\n tax: number;\n shipping: number;\n discount: number;\n total: number;\n shippingAddressUniqueId?: string;\n billingAddressUniqueId?: string;\n notes?: string;\n paidAt?: Date;\n shippedAt?: Date;\n deliveredAt?: Date;\n payload?: Record<string, unknown>;\n}\n\nexport interface CreateOrderRequest {\n userUniqueId: string;\n items: Array<{\n productUniqueId: string;\n productVariationUniqueId?: string;\n quantity: number;\n unitPrice: number;\n }>;\n shippingAddressUniqueId?: string;\n billingAddressUniqueId?: string;\n notes?: string;\n payload?: Record<string, unknown>;\n}\n\nexport interface UpdateOrderRequest {\n status?: OrderStatus;\n shippingAddressUniqueId?: string;\n billingAddressUniqueId?: string;\n notes?: string;\n payload?: Record<string, unknown>;\n}\n\nexport interface ListOrdersParams {\n page?: number;\n perPage?: number;\n status?: OrderStatus;\n userUniqueId?: string;\n startDate?: Date;\n endDate?: Date;\n sortBy?: string;\n sortOrder?: 'asc' | 'desc';\n}\n"],"names":[],"rangeMappings":"","mappings":"AA4CA,WASC"}
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=payment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/types/payment.ts"],"sourcesContent":["import type { IdentityCore } from '@23blocks/contracts';\n\nexport type PaymentStatus = 'pending' | 'completed' | 'failed' | 'refunded';\n\nexport interface Payment extends IdentityCore {\n orderUniqueId: string;\n paymentMethod: string;\n paymentProvider: string;\n transactionId?: string;\n amount: number;\n currency: string;\n status: PaymentStatus;\n paidAt?: Date;\n payload?: Record<string, unknown>;\n}\n\nexport interface CreatePaymentRequest {\n orderUniqueId: string;\n paymentMethod: string;\n paymentProvider: string;\n amount: number;\n currency: string;\n transactionId?: string;\n payload?: Record<string, unknown>;\n}\n\nexport interface ListPaymentsParams {\n page?: number;\n perPage?: number;\n status?: PaymentStatus;\n orderUniqueId?: string;\n paymentMethod?: string;\n startDate?: Date;\n endDate?: Date;\n sortBy?: string;\n sortOrder?: 'asc' | 'desc';\n}\n"],"names":[],"rangeMappings":"","mappings":"AA0BA,WAUC"}
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=subscription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/types/subscription.ts"],"sourcesContent":["import type { IdentityCore } from '@23blocks/contracts';\n\nexport type SubscriptionInterval = 'monthly' | 'yearly';\nexport type SubscriptionStatus = 'active' | 'cancelled' | 'expired' | 'paused';\n\nexport interface Subscription extends IdentityCore {\n userUniqueId: string;\n planUniqueId: string;\n planName: string;\n price: number;\n currency: string;\n interval: SubscriptionInterval;\n status: SubscriptionStatus;\n startDate: Date;\n endDate?: Date;\n nextBillingDate?: Date;\n cancelledAt?: Date;\n payload?: Record<string, unknown>;\n}\n\nexport interface CreateSubscriptionRequest {\n userUniqueId: string;\n planUniqueId: string;\n planName: string;\n price: number;\n currency: string;\n interval: SubscriptionInterval;\n startDate?: Date;\n payload?: Record<string, unknown>;\n}\n\nexport interface UpdateSubscriptionRequest {\n planUniqueId?: string;\n planName?: string;\n price?: number;\n currency?: string;\n interval?: SubscriptionInterval;\n status?: SubscriptionStatus;\n endDate?: Date;\n nextBillingDate?: Date;\n payload?: Record<string, unknown>;\n}\n\nexport interface ListSubscriptionsParams {\n page?: number;\n perPage?: number;\n status?: SubscriptionStatus;\n userUniqueId?: string;\n planUniqueId?: string;\n interval?: SubscriptionInterval;\n sortBy?: string;\n sortOrder?: 'asc' | 'desc';\n}\n"],"names":[],"rangeMappings":"","mappings":"AA2CA,WASC"}
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@23blocks/block-sales",
3
+ "version": "0.1.0",
4
+ "description": "Sales block for 23blocks SDK - orders, payments, subscriptions, transactions",
5
+ "license": "MIT",
6
+ "author": "23blocks <hello@23blocks.com>",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/23blocks-OS/frontend-sdk.git",
10
+ "directory": "packages/block-sales"
11
+ },
12
+ "homepage": "https://github.com/23blocks-OS/frontend-sdk/tree/main/packages/block-sales",
13
+ "bugs": {
14
+ "url": "https://github.com/23blocks-OS/frontend-sdk/issues"
15
+ },
16
+ "keywords": [
17
+ "23blocks",
18
+ "sdk",
19
+ "sales",
20
+ "orders",
21
+ "payments",
22
+ "subscriptions",
23
+ "transactions"
24
+ ],
25
+ "type": "module",
26
+ "main": "./dist/index.js",
27
+ "module": "./dist/index.js",
28
+ "types": "./dist/index.d.ts",
29
+ "exports": {
30
+ "./package.json": "./package.json",
31
+ ".": {
32
+ "types": "./dist/index.d.ts",
33
+ "import": "./dist/index.js",
34
+ "default": "./dist/index.js"
35
+ }
36
+ },
37
+ "files": [
38
+ "dist",
39
+ "!**/*.tsbuildinfo"
40
+ ],
41
+ "nx": {
42
+ "sourceRoot": "packages/block-sales/src",
43
+ "targets": {
44
+ "build": {
45
+ "executor": "@nx/js:swc",
46
+ "outputs": [
47
+ "{options.outputPath}"
48
+ ],
49
+ "options": {
50
+ "outputPath": "packages/block-sales/dist",
51
+ "main": "packages/block-sales/src/index.ts",
52
+ "tsConfig": "packages/block-sales/tsconfig.lib.json",
53
+ "skipTypeCheck": true,
54
+ "stripLeadingPaths": true
55
+ }
56
+ }
57
+ }
58
+ },
59
+ "dependencies": {
60
+ "@23blocks/contracts": "*",
61
+ "@23blocks/jsonapi-codec": "*",
62
+ "@swc/helpers": "~0.5.11"
63
+ }
64
+ }