@shophost/rest-api 2.0.50 → 2.0.52

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 (154) hide show
  1. package/README.md +3 -3
  2. package/package.json +1 -1
  3. package/schema.prisma +4 -0
  4. package/src/{app.d.ts → bootstrap.d.ts} +2 -4
  5. package/src/bootstrap.js +1 -0
  6. package/src/bootstrap.js.map +1 -0
  7. package/src/container.d.ts +49 -0
  8. package/src/container.js +1 -0
  9. package/src/container.js.map +1 -0
  10. package/src/core/db/__generated__/client/internal/class.js +33 -29
  11. package/src/core/db/__generated__/client/internal/class.js.map +1 -1
  12. package/src/core/db/__generated__/client/internal/prismaNamespace.d.ts +4 -0
  13. package/src/core/db/__generated__/client/internal/prismaNamespace.js +1 -1
  14. package/src/core/db/__generated__/client/internal/prismaNamespace.js.map +1 -1
  15. package/src/core/db/__generated__/client/internal/prismaNamespaceBrowser.d.ts +4 -0
  16. package/src/core/db/__generated__/client/internal/prismaNamespaceBrowser.js +1 -1
  17. package/src/core/db/__generated__/client/internal/prismaNamespaceBrowser.js.map +1 -1
  18. package/src/core/db/__generated__/client/models/Order.d.ts +178 -1
  19. package/src/core/db/__generated__/client/models/Product.d.ts +75 -1
  20. package/src/core/lib/prisma.d.ts +62 -62
  21. package/src/core/notifications/email.service.d.ts +8 -2
  22. package/src/core/notifications/email.service.js +1 -1
  23. package/src/core/notifications/email.service.js.map +1 -1
  24. package/src/core/openapi/openapi.lib.d.ts +2 -2
  25. package/src/core/openapi/openapi.lib.js +1 -1
  26. package/src/core/openapi/openapi.lib.js.map +1 -1
  27. package/src/core/utils/zod.util.js +1 -1
  28. package/src/core/utils/zod.util.js.map +1 -1
  29. package/src/features/access/access.handler.d.ts +2 -2
  30. package/src/features/access/access.handler.js +1 -1
  31. package/src/features/access/access.handler.js.map +1 -1
  32. package/src/features/analytics/analytics.handler.d.ts +2 -2
  33. package/src/features/analytics/analytics.handler.js +1 -1
  34. package/src/features/analytics/analytics.handler.js.map +1 -1
  35. package/src/features/cart/cart.handler.d.ts +2 -2
  36. package/src/features/cart/cart.handler.js +1 -1
  37. package/src/features/cart/cart.handler.js.map +1 -1
  38. package/src/features/cart/cart.route.d.ts +29 -0
  39. package/src/features/cart/cart.route.js +1 -1
  40. package/src/features/cart/cart.route.js.map +1 -1
  41. package/src/features/cart/cart.schema.d.ts +399 -0
  42. package/src/features/cart/cart.schema.js +1 -1
  43. package/src/features/cart/cart.schema.js.map +1 -1
  44. package/src/features/cart/cart.service.d.ts +30 -3
  45. package/src/features/cart/cart.service.js +1 -1
  46. package/src/features/cart/cart.service.js.map +1 -1
  47. package/src/features/file/file.handler.d.ts +2 -2
  48. package/src/features/file/file.handler.js +1 -1
  49. package/src/features/file/file.handler.js.map +1 -1
  50. package/src/features/health/health.handler.d.ts +1 -1
  51. package/src/features/health/health.handler.js +1 -1
  52. package/src/features/health/health.handler.js.map +1 -1
  53. package/src/features/index.d.ts +17 -17
  54. package/src/features/index.js +1 -1
  55. package/src/features/index.js.map +1 -1
  56. package/src/features/integration/integration-config.d.ts +25 -0
  57. package/src/features/integration/integration-config.js +1 -0
  58. package/src/features/integration/integration-config.js.map +1 -0
  59. package/src/features/integration/integration-registry.d.ts +39 -0
  60. package/src/features/integration/integration-registry.js +1 -0
  61. package/src/features/integration/integration-registry.js.map +1 -0
  62. package/src/features/integration/integration.handler.d.ts +2 -2
  63. package/src/features/integration/integration.handler.js +1 -1
  64. package/src/features/integration/integration.handler.js.map +1 -1
  65. package/src/features/integration/integration.schema.d.ts +15 -0
  66. package/src/features/integration/integration.schema.js +1 -1
  67. package/src/features/integration/integration.schema.js.map +1 -1
  68. package/src/features/integration/integration.service.d.ts +3 -4
  69. package/src/features/integration/integration.service.js +1 -1
  70. package/src/features/integration/integration.service.js.map +1 -1
  71. package/src/features/inventory/inventory.service.d.ts +24 -0
  72. package/src/features/inventory/inventory.service.js +1 -0
  73. package/src/features/inventory/inventory.service.js.map +1 -0
  74. package/src/features/location/location.handler.d.ts +2 -7
  75. package/src/features/location/location.handler.js +1 -1
  76. package/src/features/location/location.handler.js.map +1 -1
  77. package/src/features/manufacturer/manufacturer.handler.d.ts +2 -2
  78. package/src/features/manufacturer/manufacturer.handler.js +1 -1
  79. package/src/features/manufacturer/manufacturer.handler.js.map +1 -1
  80. package/src/features/order/order.handler.d.ts +2 -4
  81. package/src/features/order/order.handler.js +1 -1
  82. package/src/features/order/order.handler.js.map +1 -1
  83. package/src/features/order/order.route.d.ts +314 -0
  84. package/src/features/order/order.route.js +1 -1
  85. package/src/features/order/order.route.js.map +1 -1
  86. package/src/features/order/order.schema.d.ts +33 -0
  87. package/src/features/order/order.schema.js +1 -1
  88. package/src/features/order/order.schema.js.map +1 -1
  89. package/src/features/order/order.service.d.ts +57 -6
  90. package/src/features/order/order.service.js +1 -1
  91. package/src/features/order/order.service.js.map +1 -1
  92. package/src/features/organization/organization-configuration.schema.d.ts +18 -18
  93. package/src/features/organization/organization.handler.d.ts +2 -2
  94. package/src/features/organization/organization.handler.js +1 -1
  95. package/src/features/organization/organization.handler.js.map +1 -1
  96. package/src/features/organization/organization.route.d.ts +18 -18
  97. package/src/features/organization/organization.schema.d.ts +18 -18
  98. package/src/features/organization/organization.service.d.ts +4 -2
  99. package/src/features/organization/organization.service.js +1 -1
  100. package/src/features/organization/organization.service.js.map +1 -1
  101. package/src/features/payment/payment.handler.d.ts +2 -3
  102. package/src/features/payment/payment.handler.js +1 -1
  103. package/src/features/payment/payment.handler.js.map +1 -1
  104. package/src/features/payment/payment.service.d.ts +9 -8
  105. package/src/features/payment/payment.service.js +1 -1
  106. package/src/features/payment/payment.service.js.map +1 -1
  107. package/src/features/payment/stripe.service.d.ts +3 -2
  108. package/src/features/payment/stripe.service.js +1 -1
  109. package/src/features/payment/stripe.service.js.map +1 -1
  110. package/src/features/product/product.handler.d.ts +2 -2
  111. package/src/features/product/product.handler.js +1 -1
  112. package/src/features/product/product.handler.js.map +1 -1
  113. package/src/features/product/product.route.d.ts +10 -0
  114. package/src/features/product/product.schema.d.ts +4 -0
  115. package/src/features/product/product.schema.js +1 -1
  116. package/src/features/product/product.schema.js.map +1 -1
  117. package/src/features/product/product.service.d.ts +8 -0
  118. package/src/features/product/product.service.js +1 -1
  119. package/src/features/product/product.service.js.map +1 -1
  120. package/src/features/product-category/product-category.handler.d.ts +2 -2
  121. package/src/features/product-category/product-category.handler.js +1 -1
  122. package/src/features/product-category/product-category.handler.js.map +1 -1
  123. package/src/features/reservation/reservation.handler.d.ts +2 -2
  124. package/src/features/reservation/reservation.handler.js +1 -1
  125. package/src/features/reservation/reservation.handler.js.map +1 -1
  126. package/src/features/reservation/reservation.service.d.ts +5 -2
  127. package/src/features/reservation/reservation.service.js +1 -1
  128. package/src/features/reservation/reservation.service.js.map +1 -1
  129. package/src/features/shipping/shipping.handler.d.ts +2 -2
  130. package/src/features/shipping/shipping.handler.js +1 -1
  131. package/src/features/shipping/shipping.handler.js.map +1 -1
  132. package/src/features/shipping/shipping.service.d.ts +4 -2
  133. package/src/features/shipping/shipping.service.js +1 -1
  134. package/src/features/shipping/shipping.service.js.map +1 -1
  135. package/src/features/shipping-method/shipping-method.handler.d.ts +2 -2
  136. package/src/features/shipping-method/shipping-method.handler.js +1 -1
  137. package/src/features/shipping-method/shipping-method.handler.js.map +1 -1
  138. package/src/features/webhook/webhook.handler.d.ts +2 -4
  139. package/src/features/webhook/webhook.handler.js +1 -1
  140. package/src/features/webhook/webhook.handler.js.map +1 -1
  141. package/src/index.d.ts +1 -2
  142. package/src/index.js +1 -1
  143. package/src/index.js.map +1 -1
  144. package/src/integrations/next.d.ts +2 -4
  145. package/src/integrations/next.js +1 -1
  146. package/src/integrations/next.js.map +1 -1
  147. package/src/schemas/number.schema.d.ts +1 -0
  148. package/src/schemas/number.schema.js +1 -1
  149. package/src/schemas/number.schema.js.map +1 -1
  150. package/src/app.js +0 -1
  151. package/src/app.js.map +0 -1
  152. package/src/core/notifications/notification-options.d.ts +0 -3
  153. package/src/core/notifications/notification-options.js +0 -1
  154. package/src/core/notifications/notification-options.js.map +0 -1
@@ -1 +1 @@
1
- import{z as e}from"@hono/zod-openapi";import{LocalizedProductSchema as t}from"../product/product.schema";export const CartProductsMappingSchema=e.record(e.string().openapi({example:"clf9876543210abcdef",description:"ID of the product in the cart"}),t),CartItemSchema=e.object({productId:e.string().cuid().openapi({example:"clf9876543210abcdef",description:"ID of the product in the cart"}),quantity:e.number().default(1).optional().openapi({example:2,description:"Quantity of this item in the cart"}),modifierGroups:e.array(e.object({id:e.string().cuid().openapi({example:"clg1234567890abcdef",description:"ID of the modifier group"}),modifiers:e.array(e.object({id:e.string().cuid().openapi({example:"clh9876543210abcdef",description:"ID of the selected modifier"}),quantity:e.number().default(1).openapi({example:1,description:"Quantity of this modifier"})}))}))}).openapi("CartItem"),CartSchema=e.object({items:e.array(CartItemSchema),shippingMethodId:e.string().cuid().optional()});
1
+ import{z as t}from"@hono/zod-openapi";import{LocalizedProductSchema as e}from"../product/product.schema";export const CartProductsMappingSchema=t.record(t.string().openapi({example:"clf9876543210abcdef",description:"ID of the product in the cart"}),e),CartItemSchema=t.object({productId:t.string().cuid().openapi({example:"clf9876543210abcdef",description:"ID of the product in the cart"}),quantity:t.number().default(1).optional().openapi({example:2,description:"Quantity of this item in the cart"}),modifierGroups:t.array(t.object({id:t.string().cuid().openapi({example:"clg1234567890abcdef",description:"ID of the modifier group"}),modifiers:t.array(t.object({id:t.string().cuid().openapi({example:"clh9876543210abcdef",description:"ID of the selected modifier"}),quantity:t.number().default(1).openapi({example:1,description:"Quantity of this modifier"})}))}))}).openapi("CartItem"),CartSchema=t.object({items:t.array(CartItemSchema),shippingMethodId:t.string().cuid().optional()}),CartAdjustmentReasonSchema=t.enum(["invalid_product","out_of_stock","insufficient_stock"]).openapi("CartAdjustmentReason"),CartAdjustmentSchema=t.object({productId:t.string().cuid().openapi({example:"clf9876543210abcdef",description:"ID of the affected product"}),modifierGroups:CartItemSchema.shape.modifierGroups.optional(),reason:CartAdjustmentReasonSchema,requestedQuantity:t.number().int().min(0).openapi({example:3,description:"Quantity requested by the customer"}),resolvedQuantity:t.number().int().min(0).openapi({example:1,description:"Quantity accepted after stock normalization"})}).openapi("CartAdjustment"),CartDataSchema=t.object({invalidProductIds:t.array(t.string()),normalizedItems:t.array(CartItemSchema),adjustments:t.array(CartAdjustmentSchema),products:CartProductsMappingSchema,shipping:t.number().optional(),subtotal:t.number(),total:t.number()}),CartConflictSchema=CartDataSchema.extend({message:t.string()}).openapi("CartConflict");
@@ -1 +1 @@
1
- {"version":3,"file":"cart.schema.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/cart/cart.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAEtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAC/C,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,OAAO,EAAE,qBAAqB;IAC9B,WAAW,EAAE,+BAA+B;CAC7C,CAAC,EACF,sBAAsB,CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,CAAC;IACN,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC;QACnC,OAAO,EAAE,qBAAqB;QAC9B,WAAW,EAAE,+BAA+B;KAC7C,CAAC;IACF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC;QACjD,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,mCAAmC;KACjD,CAAC;IACF,cAAc,EAAE,CAAC,CAAC,KAAK,CACrB,CAAC,CAAC,MAAM,CAAC;QACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC;YAC5B,OAAO,EAAE,qBAAqB;YAC9B,WAAW,EAAE,0BAA0B;SACxC,CAAC;QACF,SAAS,EAAE,CAAC,CAAC,KAAK,CAChB,CAAC,CAAC,MAAM,CAAC;YACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC;gBAC5B,OAAO,EAAE,qBAAqB;gBAC9B,WAAW,EAAE,6BAA6B;aAC3C,CAAC;YACF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACtC,OAAO,EAAE,CAAC;gBACV,WAAW,EAAE,2BAA2B;aACzC,CAAC;SACH,CAAC,CACH;KACF,CAAC,CACH;CACF,CAAC;KACD,OAAO,CAAC,UAAU,CAAC,CAAC;AAEvB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;IAC9B,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC/C,CAAC,CAAC"}
1
+ {"version":3,"file":"cart.schema.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/cart/cart.schema.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  import { z } from "@hono/zod-openapi";
2
2
  import { PrismaClientType } from "../../core/lib/prisma";
3
3
  import { CartSchema } from "../../schemas";
4
+ import { InventoryService } from "../inventory/inventory.service";
4
5
  declare class CartService {
5
6
  private readonly prisma;
6
- constructor(prisma: PrismaClientType);
7
+ private readonly inventoryService;
8
+ constructor(prisma: PrismaClientType, inventoryService: InventoryService);
7
9
  /**
8
10
  * Calculate price breakdown for cart items
9
11
  */
@@ -16,6 +18,30 @@ declare class CartService {
16
18
  locale?: string;
17
19
  }): Promise<{
18
20
  invalidProductIds: string[];
21
+ normalizedItems: {
22
+ productId: string;
23
+ modifierGroups: {
24
+ id: string;
25
+ modifiers: {
26
+ id: string;
27
+ quantity: number;
28
+ }[];
29
+ }[];
30
+ quantity?: number | undefined;
31
+ }[];
32
+ adjustments: {
33
+ productId: string;
34
+ reason: "invalid_product" | "out_of_stock" | "insufficient_stock";
35
+ requestedQuantity: number;
36
+ resolvedQuantity: number;
37
+ modifierGroups?: {
38
+ id: string;
39
+ modifiers: {
40
+ id: string;
41
+ quantity: number;
42
+ }[];
43
+ }[] | undefined;
44
+ }[];
19
45
  products: Record<string, {
20
46
  description: string | null;
21
47
  title: string;
@@ -24,6 +50,7 @@ declare class CartService {
24
50
  createdAt: Date;
25
51
  basePrice: number;
26
52
  discountedBasePrice: number | null;
53
+ availableQuantity: number | null;
27
54
  modifierGroups: {
28
55
  title: string | null;
29
56
  id: string;
@@ -53,9 +80,9 @@ declare class CartService {
53
80
  manufacturerId?: string | null | undefined;
54
81
  metadata?: Record<string, string> | null | undefined;
55
82
  }>;
56
- total: number;
57
83
  subtotal: number;
58
- shipping: number | undefined;
84
+ total: number;
85
+ shipping?: number | undefined;
59
86
  }>;
60
87
  }
61
88
  export { CartService };
@@ -1 +1 @@
1
- import{__awaiter as m}from"tslib";import{flattenTranslationData as g}from"../../core/utils/zod.util";import{LocalizedProductSchema as w}from"../../schemas";class I{constructor(o){this.prisma=o}calculatePriceBreakdown(o,e,c){return m(this,void 0,void 0,function*(){var r,d;const i=c?yield this.prisma.shippingMethod.findUnique({where:{id:c},include:{shippingZones:!0}}):null,u=o.reduce((n,a)=>{var l,p;const h=e.find(f=>f.id===a.productId);if(!h)return n;const v=(p=(l=h.discountedBasePrice)!==null&&l!==void 0?l:h.basePrice)!==null&&p!==void 0?p:0;return n+v*(a.quantity||1)},0),s=(r=i?.shippingZones[0])===null||r===void 0?void 0:r.price;return{total:u+(s??0),subtotal:u,shipping:(d=i?.shippingZones[0])===null||d===void 0?void 0:d.price}})}getCartData(o,e,c){return m(this,void 0,void 0,function*(){const{locale:r}=c,d=new Set(e.items.map(t=>t.productId)),i=yield this.prisma.product.findMany({where:{id:{in:Array.from(d)},organizationId:o,deletedAt:null,publishedAt:{not:null}},include:{translations:!0,images:!0,categories:{include:{translations:{where:{locale:r}}}},modifierGroups:{include:{translations:{where:{locale:r}},modifiers:!0}}}}),u=e.items.filter(t=>!i.find(a=>a.id===t.productId)).map(t=>t.productId),s=yield this.calculatePriceBreakdown(e.items,i,e.shippingMethodId);return Object.assign(Object.assign({},s),{invalidProductIds:u,products:i.reduce((t,n)=>(t[n.id]=w.parse(g(n)),t),{})})})}}export{I as CartService};
1
+ import{__awaiter as v}from"tslib";import{flattenTranslationData as g}from"../../core/utils/zod.util";import{CartDataSchema as w,LocalizedProductSchema as y}from"../../schemas";class I{constructor(o,e){this.prisma=o,this.inventoryService=e}calculatePriceBreakdown(o,e,l){return v(this,void 0,void 0,function*(){var r,a;const i=l?yield this.prisma.shippingMethod.findUnique({where:{id:l},include:{shippingZones:!0}}):null,n=o.reduce((d,m)=>{var c,u;const p=e.find(f=>f.id===m.productId);if(!p)return d;const h=(u=(c=p.discountedBasePrice)!==null&&c!==void 0?c:p.basePrice)!==null&&u!==void 0?u:0;return d+h*(m.quantity||1)},0),s=(r=i?.shippingZones[0])===null||r===void 0?void 0:r.price;return{total:n+(s??0),subtotal:n,shipping:(a=i?.shippingZones[0])===null||a===void 0?void 0:a.price}})}getCartData(o,e,l){return v(this,void 0,void 0,function*(){const{locale:r}=l,a=new Set(e.items.map(t=>t.productId)),i=yield this.prisma.product.findMany({where:{id:{in:Array.from(a)},organizationId:o,deletedAt:null,publishedAt:{not:null}},include:{translations:!0,images:!0,categories:{include:{translations:{where:{locale:r}}}},modifierGroups:{include:{translations:{where:{locale:r}},modifiers:!0}}}}),n=this.inventoryService.normalizeCartItems(e.items,i.map(t=>({id:t.id,availableQuantity:t.availableQuantity}))),s=yield this.calculatePriceBreakdown(n.normalizedItems,i,e.shippingMethodId);return w.parse(Object.assign(Object.assign({},s),{adjustments:n.adjustments,invalidProductIds:n.invalidProductIds,normalizedItems:n.normalizedItems,products:i.reduce((t,d)=>(t[d.id]=y.parse(g(d)),t),{})}))})}}export{I as CartService};
@@ -1 +1 @@
1
- {"version":3,"file":"cart.service.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/cart/cart.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cart.service.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/cart/cart.service.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { PrismaClientType } from "../../core/lib/prisma";
2
- export declare const buildFileHandler: (prisma: PrismaClientType) => import("@hono/zod-openapi").OpenAPIHono<import("../../core/hono/hono").AppBindings, {}, "/">;
1
+ import { FileService } from "./file.service";
2
+ export declare const registerFileHandlers: (service: FileService) => import("@hono/zod-openapi").OpenAPIHono<import("../../core/hono/hono").AppBindings, {}, "/">;
@@ -1 +1 @@
1
- import{__awaiter as n}from"tslib";import{createApiRouter as l}from"../../core/hono/hono";import{fileRoute as s}from"./file.route";import{FileService as c}from"./file.service";export const buildFileHandler=i=>{const o=l();return o.openapi(s.getVercelToken,e=>n(void 0,void 0,void 0,function*(){const r=e.req.valid("json"),t=yield new c(i).getVercelToken(r,e.req.raw);return e.json(t,200)})),o.openapi(s.createTemporaryFile,e=>n(void 0,void 0,void 0,function*(){const r=e.req.valid("json"),t=yield e.get("auth").getCurrentUser(),d=yield new c(i).createTemporaryFile(t.id,r);return e.json(d,201)})),o};
1
+ import{__awaiter as i}from"tslib";import{createApiRouter as p}from"../../core/hono/hono";import{fileRoute as a}from"./file.route";export const registerFileHandlers=t=>{const o=p();return o.openapi(a.getVercelToken,e=>i(void 0,void 0,void 0,function*(){const r=e.req.valid("json"),n=yield t.getVercelToken(r,e.req.raw);return e.json(n,200)})),o.openapi(a.createTemporaryFile,e=>i(void 0,void 0,void 0,function*(){const r=e.req.valid("json"),s=yield e.get("auth").getCurrentUser(),d=yield t.createTemporaryFile(s.id,r);return e.json(d,201)})),o};
@@ -1 +1 @@
1
- {"version":3,"file":"file.handler.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/file/file.handler.ts"],"names":[],"mappings":";AAAA,OAAO,EAEL,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAwB,EAAE,EAAE;IAC3D,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAE9B,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,EAAE,CAAO,CAAC,EAAE,EAAE;QAChD,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,cAAc,CAChD,IAAI,EACJ,CAAC,CAAC,GAAG,CAAC,GAA2B,CAClC,CAAC;QAEF,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC,CAAA,CAAC,CAAC;IAEH,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAO,CAAC,EAAE,EAAE;QACrD,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAEzC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAE9D,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC,CAAA,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
1
+ {"version":3,"file":"file.handler.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/file/file.handler.ts"],"names":[],"mappings":";AAAA,OAAO,EAEL,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,OAAoB,EAAE,EAAE;IAC3D,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAE9B,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,EAAE,CAAO,CAAC,EAAE,EAAE;QAChD,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,cAAc,CAChD,IAAI,EACJ,CAAC,CAAC,GAAG,CAAC,GAA2B,CAClC,CAAC;QAEF,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC,CAAA,CAAC,CAAC;IAEH,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAO,CAAC,EAAE,EAAE;QACrD,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAEzC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAE9D,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC,CAAA,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
@@ -1 +1 @@
1
- export declare const buildHealthHandler: () => import("@hono/zod-openapi").OpenAPIHono<import("../../core/hono/hono").AppBindings, {}, "/">;
1
+ export declare const registerHealthHandlers: () => import("@hono/zod-openapi").OpenAPIHono<import("../../core/hono/hono").AppBindings, {}, "/">;
@@ -1 +1 @@
1
- import{createApiRouter as e}from"../../core/hono/hono";import{healthRoute as o}from"./health.route";export const buildHealthHandler=()=>{const r=e();return r.openapi(o.ping,t=>t.json({ok:!0},200)),r};
1
+ import{createApiRouter as t}from"../../core/hono/hono";import{healthRoute as o}from"./health.route";export const registerHealthHandlers=()=>{const r=t();return r.openapi(o.ping,e=>e.json({ok:!0},200)),r};
@@ -1 +1 @@
1
- {"version":3,"file":"health.handler.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/health/health.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAE9B,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;QAClC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
1
+ {"version":3,"file":"health.handler.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/health/health.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,EAAE;IACzC,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAE9B,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;QAClC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
@@ -1,17 +1,17 @@
1
- export { buildAnalyticsHandler } from "./analytics/analytics.handler";
2
- export { buildAccessHandler } from "./access/access.handler";
3
- export { buildCartHandler } from "./cart/cart.handler";
4
- export { buildFileHandler } from "./file/file.handler";
5
- export { buildHealthHandler } from "./health/health.handler";
6
- export { buildIntegrationHandler } from "./integration/integration.handler";
7
- export { buildLocationHandler } from "./location/location.handler";
8
- export { buildManufacturerHandler } from "./manufacturer/manufacturer.handler";
9
- export { buildOrderHandler } from "./order/order.handler";
10
- export { buildOrganizationHandler } from "./organization/organization.handler";
11
- export { buildPaymentHandler } from "./payment/payment.handler";
12
- export { buildProductCategoryHandler } from "./product-category/product-category.handler";
13
- export { buildProductHandler } from "./product/product.handler";
14
- export { buildReservationHandler } from "./reservation/reservation.handler";
15
- export { buildShippingHandler } from "./shipping/shipping.handler";
16
- export { buildShippingMethodHandler } from "./shipping-method/shipping-method.handler";
17
- export { buildWebhookHandler } from "./webhook/webhook.handler";
1
+ export { registerAnalyticsHandlers } from "./analytics/analytics.handler";
2
+ export { registerAccessHandlers } from "./access/access.handler";
3
+ export { registerCartHandlers } from "./cart/cart.handler";
4
+ export { registerFileHandlers } from "./file/file.handler";
5
+ export { registerHealthHandlers } from "./health/health.handler";
6
+ export { registerIntegrationHandlers } from "./integration/integration.handler";
7
+ export { registerLocationHandlers } from "./location/location.handler";
8
+ export { registerManufacturerHandlers } from "./manufacturer/manufacturer.handler";
9
+ export { registerOrderHandlers } from "./order/order.handler";
10
+ export { registerOrganizationHandlers } from "./organization/organization.handler";
11
+ export { registerPaymentHandlers } from "./payment/payment.handler";
12
+ export { registerProductCategoryHandlers } from "./product-category/product-category.handler";
13
+ export { registerProductHandlers } from "./product/product.handler";
14
+ export { registerReservationHandlers } from "./reservation/reservation.handler";
15
+ export { registerShippingHandlers } from "./shipping/shipping.handler";
16
+ export { registerShippingMethodHandlers } from "./shipping-method/shipping-method.handler";
17
+ export { registerWebhookHandlers } from "./webhook/webhook.handler";
@@ -1 +1 @@
1
- export{buildAnalyticsHandler}from"./analytics/analytics.handler";export{buildAccessHandler}from"./access/access.handler";export{buildCartHandler}from"./cart/cart.handler";export{buildFileHandler}from"./file/file.handler";export{buildHealthHandler}from"./health/health.handler";export{buildIntegrationHandler}from"./integration/integration.handler";export{buildLocationHandler}from"./location/location.handler";export{buildManufacturerHandler}from"./manufacturer/manufacturer.handler";export{buildOrderHandler}from"./order/order.handler";export{buildOrganizationHandler}from"./organization/organization.handler";export{buildPaymentHandler}from"./payment/payment.handler";export{buildProductCategoryHandler}from"./product-category/product-category.handler";export{buildProductHandler}from"./product/product.handler";export{buildReservationHandler}from"./reservation/reservation.handler";export{buildShippingHandler}from"./shipping/shipping.handler";export{buildShippingMethodHandler}from"./shipping-method/shipping-method.handler";export{buildWebhookHandler}from"./webhook/webhook.handler";
1
+ export{registerAnalyticsHandlers}from"./analytics/analytics.handler";export{registerAccessHandlers}from"./access/access.handler";export{registerCartHandlers}from"./cart/cart.handler";export{registerFileHandlers}from"./file/file.handler";export{registerHealthHandlers}from"./health/health.handler";export{registerIntegrationHandlers}from"./integration/integration.handler";export{registerLocationHandlers}from"./location/location.handler";export{registerManufacturerHandlers}from"./manufacturer/manufacturer.handler";export{registerOrderHandlers}from"./order/order.handler";export{registerOrganizationHandlers}from"./organization/organization.handler";export{registerPaymentHandlers}from"./payment/payment.handler";export{registerProductCategoryHandlers}from"./product-category/product-category.handler";export{registerProductHandlers}from"./product/product.handler";export{registerReservationHandlers}from"./reservation/reservation.handler";export{registerShippingHandlers}from"./shipping/shipping.handler";export{registerShippingMethodHandlers}from"./shipping-method/shipping-method.handler";export{registerWebhookHandlers}from"./webhook/webhook.handler";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/rest-api/src/features/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/rest-api/src/features/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,+BAA+B,EAAE,MAAM,6CAA6C,CAAC;AAC9F,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,25 @@
1
+ export declare const normalizeSecret: (value?: string | null) => string | undefined;
2
+ export declare const normalizeEmail: (value?: string | null) => string | undefined;
3
+ export declare const normalizeStripePaymentMethods: (methods: string[]) => ("card" | "blik")[];
4
+ export declare const parseStripeStoredConfig: (config: unknown) => {
5
+ paymentMethods: ("card" | "blik")[] | undefined;
6
+ secretKey: string | undefined;
7
+ webhookSecret: string | undefined;
8
+ } | undefined;
9
+ export declare const parseResendStoredConfig: (config: unknown) => {
10
+ apiKey: string | undefined;
11
+ fromEmail: string | undefined;
12
+ } | undefined;
13
+ type IntegrationConfigSource = {
14
+ config: unknown;
15
+ } | null | undefined;
16
+ export declare const getStoredStripeConfig: (integration: IntegrationConfigSource) => {
17
+ paymentMethods: ("card" | "blik")[] | undefined;
18
+ secretKey: string | undefined;
19
+ webhookSecret: string | undefined;
20
+ } | undefined;
21
+ export declare const getStoredResendConfig: (integration: IntegrationConfigSource) => {
22
+ apiKey: string | undefined;
23
+ fromEmail: string | undefined;
24
+ } | undefined;
25
+ export {};
@@ -0,0 +1 @@
1
+ import{ResendIntegrationStoredConfigSchema as o,StripeIntegrationStoredConfigSchema as r}from"./integration.schema";export const normalizeSecret=e=>{const t=e?.trim();return t||void 0},normalizeEmail=e=>{const t=e?.trim();return t||void 0},normalizeStripePaymentMethods=e=>Array.from(new Set(e.filter(t=>t==="card"||t==="blik"))),parseStripeStoredConfig=e=>{const t=r.safeParse(e);if(t.success)return{paymentMethods:t.data.paymentMethods?normalizeStripePaymentMethods(t.data.paymentMethods):void 0,secretKey:normalizeSecret(t.data.secretKey),webhookSecret:normalizeSecret(t.data.webhookSecret)}},parseResendStoredConfig=e=>{const t=o.safeParse(e);if(t.success)return{apiKey:normalizeSecret(t.data.apiKey),fromEmail:normalizeEmail(t.data.fromEmail)}},getStoredStripeConfig=e=>parseStripeStoredConfig(e?.config),getStoredResendConfig=e=>parseResendStoredConfig(e?.config);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration-config.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/integration/integration-config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mCAAmC,EACnC,mCAAmC,GACpC,MAAM,sBAAsB,CAAC;AAE9B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAqB,EAAE,EAAE;IACvD,MAAM,UAAU,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,EAAE,CAAC;IACjC,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAqB,EAAE,EAAE;IACtD,MAAM,UAAU,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,EAAE,CAAC;IACjC,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,OAAiB,EAAE,EAAE,CACjE,KAAK,CAAC,IAAI,CACR,IAAI,GAAG,CACL,OAAO,CAAC,MAAM,CACZ,CAAC,MAAM,EAA6B,EAAE,CACpC,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,CACzC,CACF,CACF,CAAC;AAEJ,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAAe,EAAE,EAAE;IACzD,MAAM,MAAM,GAAG,mCAAmC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAErE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc;YACxC,CAAC,CAAC,6BAA6B,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YAC3D,CAAC,CAAC,SAAS;QACb,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QACjD,aAAa,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;KAC1D,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAAe,EAAE,EAAE;IACzD,MAAM,MAAM,GAAG,mCAAmC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAErE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3C,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;KACjD,CAAC;AACJ,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,WAAoC,EAAE,EAAE,CAC5E,uBAAuB,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,WAAoC,EAAE,EAAE,CAC5E,uBAAuB,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,CAAC,CAAC"}
@@ -0,0 +1,39 @@
1
+ import type { Integration } from "../../core/db";
2
+ import type { PrismaClientType } from "../../core/lib/prisma";
3
+ declare class IntegrationRegistry {
4
+ private readonly prisma?;
5
+ private readonly entries;
6
+ private readonly initialLoadPromise;
7
+ constructor(prisma?: (PrismaClientType | any) | undefined);
8
+ private loadAll;
9
+ ready(): Promise<void>;
10
+ get(organizationId: string | undefined, type: string): Promise<{
11
+ type: string;
12
+ organizationId: string;
13
+ createdAt: Date;
14
+ config: import("@prisma/client/runtime/client").JsonValue;
15
+ updatedAt: Date;
16
+ createdBy: string | null;
17
+ updatedBy: string | null;
18
+ } | undefined>;
19
+ list(organizationId: string): Promise<{
20
+ type: string;
21
+ organizationId: string;
22
+ createdAt: Date;
23
+ config: import("@prisma/client/runtime/client").JsonValue;
24
+ updatedAt: Date;
25
+ createdBy: string | null;
26
+ updatedBy: string | null;
27
+ }[]>;
28
+ upsert(integration: Integration): Promise<{
29
+ type: string;
30
+ organizationId: string;
31
+ createdAt: Date;
32
+ config: import("@prisma/client/runtime/client").JsonValue;
33
+ updatedAt: Date;
34
+ createdBy: string | null;
35
+ updatedBy: string | null;
36
+ }>;
37
+ delete(organizationId: string, type: string): Promise<void>;
38
+ }
39
+ export { IntegrationRegistry };
@@ -0,0 +1 @@
1
+ import{__awaiter as e}from"tslib";const r=(o,i)=>`${o}:${i}`;class d{constructor(i){this.prisma=i,this.entries=new Map,this.initialLoadPromise=this.loadAll()}loadAll(){return e(this,void 0,void 0,function*(){var i,t;if(!(!((t=(i=this.prisma)===null||i===void 0?void 0:i.integration)===null||t===void 0)&&t.findMany))return;const n=yield this.prisma.integration.findMany();this.entries.clear();for(const s of n)this.entries.set(r(s.organizationId,s.type),s)})}ready(){return e(this,void 0,void 0,function*(){yield this.initialLoadPromise})}get(i,t){return e(this,void 0,void 0,function*(){if(i)return yield this.ready(),this.entries.get(r(i,t))})}list(i){return e(this,void 0,void 0,function*(){return yield this.ready(),[...this.entries.values()].filter(t=>t.organizationId===i).sort((t,n)=>t.type.localeCompare(n.type))})}upsert(i){return e(this,void 0,void 0,function*(){return yield this.ready(),this.entries.set(r(i.organizationId,i.type),i),i})}delete(i,t){return e(this,void 0,void 0,function*(){yield this.ready(),this.entries.delete(r(i,t))})}}export{d as IntegrationRegistry};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration-registry.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/integration/integration-registry.ts"],"names":[],"mappings":";AAGA,MAAM,iBAAiB,GAAG,CAAC,cAAsB,EAAE,IAAY,EAAE,EAAE,CACjE,GAAG,cAAc,IAAI,IAAI,EAAE,CAAC;AAE9B,MAAM,mBAAmB;IAIvB,YAA6B,MAA+B;QAA/B,WAAM,GAAN,MAAM,CAAyB;QAH3C,YAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;QAIxD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3C,CAAC;IAEa,OAAO;;;YACnB,IAAI,CAAC,CAAA,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,WAAW,0CAAE,QAAQ,CAAA,EAAE,CAAC;gBACxC,OAAO;YACT,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAE9D,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAErB,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;gBACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CACd,iBAAiB,CAAC,WAAW,CAAC,cAAc,EAAE,WAAW,CAAC,IAAI,CAAC,EAC/D,WAAW,CACZ,CAAC;YACJ,CAAC;QACH,CAAC;KAAA;IAEY,KAAK;;YAChB,MAAM,IAAI,CAAC,kBAAkB,CAAC;QAChC,CAAC;KAAA;IAEY,GAAG,CAAC,cAAkC,EAAE,IAAY;;YAC/D,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YAEnB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;QACnE,CAAC;KAAA;IAEY,IAAI,CAAC,cAAsB;;YACtC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YAEnB,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;iBAC9B,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,cAAc,KAAK,cAAc,CAAC;iBACtE,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAChE,CAAC;KAAA;IAEY,MAAM,CAAC,WAAwB;;YAC1C,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YAEnB,IAAI,CAAC,OAAO,CAAC,GAAG,CACd,iBAAiB,CAAC,WAAW,CAAC,cAAc,EAAE,WAAW,CAAC,IAAI,CAAC,EAC/D,WAAW,CACZ,CAAC;YAEF,OAAO,WAAW,CAAC;QACrB,CAAC;KAAA;IAEY,MAAM,CAAC,cAAsB,EAAE,IAAY;;YACtD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YAEnB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;QAC/D,CAAC;KAAA;CACF;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -1,2 +1,2 @@
1
- import { PrismaClientType } from "../../core/lib/prisma";
2
- export declare const buildIntegrationHandler: (prisma: PrismaClientType) => import("@hono/zod-openapi").OpenAPIHono<import("../../core/hono/hono").AppBindings, {}, "/">;
1
+ import { IntegrationService } from "./integration.service";
2
+ export declare const registerIntegrationHandlers: (service: IntegrationService) => import("@hono/zod-openapi").OpenAPIHono<import("../../core/hono/hono").AppBindings, {}, "/">;
@@ -1 +1 @@
1
- import{__awaiter as d}from"tslib";import{createApiRouter as v}from"../../core/hono/hono";import{IntegrationService as s}from"./integration.service";import{integrationRoutes as p}from"./integration.route";export const buildIntegrationHandler=i=>{const o=v();return o.openapi(p.getIntegrations,t=>d(void 0,void 0,void 0,function*(){const n=t.get("auth"),e=t.req.valid("param");yield n.isGranted("read");const a=yield new s(i).getIntegrations(e.organizationId);return t.json(a,200)})),o.openapi(p.upsertIntegration,t=>d(void 0,void 0,void 0,function*(){const n=t.get("auth"),e=t.req.valid("param"),r=t.req.valid("json"),a=yield n.isGranted("update"),u=yield new s(i).upsertIntegration(e.organizationId,e.type,a.id,r);return t.json(u,200)})),o.openapi(p.deleteIntegration,t=>d(void 0,void 0,void 0,function*(){const n=t.get("auth"),e=t.req.valid("param");return yield n.isGranted("update"),yield new s(i).deleteIntegration(e.organizationId,e.type),t.body(null,204)})),o};
1
+ import{__awaiter as r}from"tslib";import{createApiRouter as u}from"../../core/hono/hono";import{integrationRoutes as d}from"./integration.route";export const registerIntegrationHandlers=a=>{const e=u();return e.openapi(d.getIntegrations,t=>r(void 0,void 0,void 0,function*(){const o=t.get("auth"),n=t.req.valid("param");yield o.isGranted("read");const i=yield a.getIntegrations(n.organizationId);return t.json(i,200)})),e.openapi(d.upsertIntegration,t=>r(void 0,void 0,void 0,function*(){const o=t.get("auth"),n=t.req.valid("param"),i=t.req.valid("json"),s=yield o.isGranted("update"),p=yield a.upsertIntegration(n.organizationId,n.type,s.id,i);return t.json(p,200)})),e.openapi(d.deleteIntegration,t=>r(void 0,void 0,void 0,function*(){const o=t.get("auth"),n=t.req.valid("param");return yield o.isGranted("update"),yield a.deleteIntegration(n.organizationId,n.type),t.body(null,204)})),e};
@@ -1 +1 @@
1
- {"version":3,"file":"integration.handler.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/integration/integration.handler.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAAwB,EAAE,EAAE;IAClE,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAE9B,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAO,CAAC,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEpC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAE7B,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAE1E,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC,CAAA,CAAC,CAAC;IAEH,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAO,CAAC,EAAE,EAAE;QAC3D,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE5C,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,iBAAiB,CACjD,MAAM,CAAC,cAAc,EACrB,MAAM,CAAC,IAAI,EACX,IAAI,CAAC,EAAE,EACP,IAAI,CACL,CAAC;QAEF,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC,CAAA,CAAC,CAAC;IAEH,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAO,CAAC,EAAE,EAAE;QAC3D,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEpC,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE/B,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAEpE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC,CAAA,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
1
+ {"version":3,"file":"integration.handler.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/integration/integration.handler.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,OAA2B,EAAE,EAAE;IACzE,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAE9B,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAO,CAAC,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEpC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAE7B,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAE1E,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC,CAAA,CAAC,CAAC;IAEH,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAO,CAAC,EAAE,EAAE;QAC3D,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE5C,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,iBAAiB,CACjD,MAAM,CAAC,cAAc,EACrB,MAAM,CAAC,IAAI,EACX,IAAI,CAAC,EAAE,EACP,IAAI,CACL,CAAC;QAEF,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC,CAAA,CAAC,CAAC;IAEH,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAO,CAAC,EAAE,EAAE;QAC3D,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEpC,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE/B,MAAM,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAEpE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC,CAAA,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
@@ -12,6 +12,10 @@ export declare const StripeIntegrationStoredConfigSchema: z.ZodObject<{
12
12
  secretKey: z.ZodOptional<z.ZodString>;
13
13
  webhookSecret: z.ZodOptional<z.ZodString>;
14
14
  }, z.core.$strict>;
15
+ export declare const ResendIntegrationStoredConfigSchema: z.ZodObject<{
16
+ apiKey: z.ZodOptional<z.ZodString>;
17
+ fromEmail: z.ZodOptional<z.ZodString>;
18
+ }, z.core.$strict>;
15
19
  export declare const StripeIntegrationConfigSchema: z.ZodObject<{
16
20
  paymentMethods: z.ZodArray<z.ZodEnum<{
17
21
  card: "card";
@@ -28,6 +32,14 @@ export declare const UpsertStripeIntegrationConfigSchema: z.ZodObject<{
28
32
  secretKey: z.ZodOptional<z.ZodString>;
29
33
  webhookSecret: z.ZodOptional<z.ZodString>;
30
34
  }, z.core.$strict>;
35
+ export declare const ResendIntegrationConfigSchema: z.ZodObject<{
36
+ hasApiKey: z.ZodBoolean;
37
+ fromEmail: z.ZodOptional<z.ZodString>;
38
+ }, z.core.$strict>;
39
+ export declare const UpsertResendIntegrationConfigSchema: z.ZodObject<{
40
+ apiKey: z.ZodOptional<z.ZodString>;
41
+ fromEmail: z.ZodOptional<z.ZodString>;
42
+ }, z.core.$strict>;
31
43
  export declare const IntegrationConfigSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
32
44
  export declare const IntegrationSchema: z.ZodObject<{
33
45
  organizationId: z.ZodString;
@@ -42,3 +54,6 @@ export declare const UpsertIntegrationSchema: z.ZodObject<{
42
54
  export type StripeIntegrationConfig = z.infer<typeof StripeIntegrationConfigSchema>;
43
55
  export type StripeIntegrationStoredConfig = z.infer<typeof StripeIntegrationStoredConfigSchema>;
44
56
  export type UpsertStripeIntegrationConfig = z.infer<typeof UpsertStripeIntegrationConfigSchema>;
57
+ export type ResendIntegrationConfig = z.infer<typeof ResendIntegrationConfigSchema>;
58
+ export type ResendIntegrationStoredConfig = z.infer<typeof ResendIntegrationStoredConfigSchema>;
59
+ export type UpsertResendIntegrationConfig = z.infer<typeof UpsertResendIntegrationConfigSchema>;
@@ -1 +1 @@
1
- import{z as e}from"@hono/zod-openapi";export const IntegrationTypeSchema=e.string().min(1).openapi({example:"stripe",description:"Integration type key"}),StripePaymentMethodSchema=e.enum(["card","blik"]).openapi({example:"card",description:"Stripe payment method"}),StripeIntegrationStoredConfigSchema=e.object({paymentMethods:e.array(StripePaymentMethodSchema).max(2).optional(),secretKey:e.string().trim().min(1).optional(),webhookSecret:e.string().trim().min(1).optional()}).strict(),StripeIntegrationConfigSchema=e.object({paymentMethods:e.array(StripePaymentMethodSchema).max(2).openapi({example:["card","blik"],description:"Enabled Stripe payment methods for the organization"}),hasSecretKey:e.boolean().openapi({example:!0,description:"Whether the Stripe API key has been configured"}),hasWebhookSecret:e.boolean().openapi({example:!0,description:"Whether the Stripe webhook signing secret has been configured"})}).strict().openapi("StripeIntegrationConfig"),UpsertStripeIntegrationConfigSchema=e.object({paymentMethods:e.array(StripePaymentMethodSchema).max(2).openapi({example:["card","blik"],description:"Enabled Stripe payment methods for the organization"}),secretKey:e.string().trim().min(1).optional().openapi({example:"sk_live_123456789",description:"Stripe secret API key for the organization"}),webhookSecret:e.string().trim().min(1).optional().openapi({example:"whsec_123456789",description:"Stripe webhook signing secret for the organization"})}).strict().openapi("UpsertStripeIntegrationConfig"),IntegrationConfigSchema=e.record(e.string(),e.unknown()).openapi("IntegrationConfig"),IntegrationSchema=e.object({organizationId:e.string().openapi({example:"clm1234567890abcdef",description:"Organization ID"}),type:IntegrationTypeSchema,config:IntegrationConfigSchema.openapi({description:"Stored integration configuration JSON"}),createdAt:e.date().openapi({description:"Timestamp when the integration was created"}),updatedAt:e.date().openapi({description:"Timestamp when the integration was last updated"})}).openapi("Integration"),UpsertIntegrationSchema=e.object({config:e.unknown().openapi({example:{paymentMethods:["card","blik"],secretKey:"sk_live_123456789",webhookSecret:"whsec_123456789"},description:"Integration configuration payload. Validation depends on the integration type."})}).openapi("UpsertIntegration");
1
+ import{z as e}from"@hono/zod-openapi";export const IntegrationTypeSchema=e.string().min(1).openapi({example:"stripe",description:"Integration type key"}),StripePaymentMethodSchema=e.enum(["card","blik"]).openapi({example:"card",description:"Stripe payment method"}),StripeIntegrationStoredConfigSchema=e.object({paymentMethods:e.array(StripePaymentMethodSchema).max(2).optional(),secretKey:e.string().trim().min(1).optional(),webhookSecret:e.string().trim().min(1).optional()}).strict(),ResendIntegrationStoredConfigSchema=e.object({apiKey:e.string().trim().min(1).optional(),fromEmail:e.string().trim().email().optional()}).strict(),StripeIntegrationConfigSchema=e.object({paymentMethods:e.array(StripePaymentMethodSchema).max(2).openapi({example:["card","blik"],description:"Enabled Stripe payment methods for the organization"}),hasSecretKey:e.boolean().openapi({example:!0,description:"Whether the Stripe API key has been configured"}),hasWebhookSecret:e.boolean().openapi({example:!0,description:"Whether the Stripe webhook signing secret has been configured"})}).strict().openapi("StripeIntegrationConfig"),UpsertStripeIntegrationConfigSchema=e.object({paymentMethods:e.array(StripePaymentMethodSchema).max(2).openapi({example:["card","blik"],description:"Enabled Stripe payment methods for the organization"}),secretKey:e.string().trim().min(1).optional().openapi({example:"sk_live_123456789",description:"Stripe secret API key for the organization"}),webhookSecret:e.string().trim().min(1).optional().openapi({example:"whsec_123456789",description:"Stripe webhook signing secret for the organization"})}).strict().openapi("UpsertStripeIntegrationConfig"),ResendIntegrationConfigSchema=e.object({hasApiKey:e.boolean().openapi({example:!0,description:"Whether the Resend API key has been configured"}),fromEmail:e.string().trim().email().optional().openapi({example:"orders@example.com",description:"Verified sender email used for transactional messages"})}).strict().openapi("ResendIntegrationConfig"),UpsertResendIntegrationConfigSchema=e.object({apiKey:e.string().trim().min(1).optional().openapi({example:"re_123456789",description:"Resend API key for the organization"}),fromEmail:e.string().trim().email().optional().openapi({example:"orders@example.com",description:"Verified sender email used for transactional messages"})}).strict().openapi("UpsertResendIntegrationConfig"),IntegrationConfigSchema=e.record(e.string(),e.unknown()).openapi("IntegrationConfig"),IntegrationSchema=e.object({organizationId:e.string().openapi({example:"clm1234567890abcdef",description:"Organization ID"}),type:IntegrationTypeSchema,config:IntegrationConfigSchema.openapi({description:"Stored integration configuration JSON"}),createdAt:e.date().openapi({description:"Timestamp when the integration was created"}),updatedAt:e.date().openapi({description:"Timestamp when the integration was last updated"})}).openapi("Integration"),UpsertIntegrationSchema=e.object({config:e.unknown().openapi({example:{paymentMethods:["card","blik"],secretKey:"sk_live_123456789",webhookSecret:"whsec_123456789"},description:"Integration configuration payload. Validation depends on the integration type."})}).openapi("UpsertIntegration");
@@ -1 +1 @@
1
- {"version":3,"file":"integration.schema.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/integration/integration.schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"integration.schema.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/integration/integration.schema.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,11 @@
1
1
  import { z } from "@hono/zod-openapi";
2
2
  import { PrismaClientType } from "../../core/lib/prisma";
3
3
  import { UpsertIntegrationSchema } from "./integration.schema";
4
+ import { IntegrationRegistry } from "./integration-registry";
4
5
  declare class IntegrationService {
5
6
  private readonly prisma;
6
- constructor(prisma: PrismaClientType);
7
- private normalizeSecret;
8
- private normalizeStripePaymentMethods;
9
- private parseStripeStoredConfig;
7
+ private readonly integrationRegistry;
8
+ constructor(prisma: PrismaClientType, integrationRegistry: IntegrationRegistry);
10
9
  private sanitizeConfig;
11
10
  private sanitizeIntegration;
12
11
  private ensureOrganizationExists;
@@ -1 +1 @@
1
- import{__awaiter as h}from"tslib";import{HttpException as a}from"../../core/exceptions/http-exception";import{IntegrationSchema as p,StripeIntegrationConfigSchema as g,StripeIntegrationStoredConfigSchema as f,UpsertStripeIntegrationConfigSchema as m}from"./integration.schema";class y{constructor(e){this.prisma=e}normalizeSecret(e){const t=e?.trim();return t||void 0}normalizeStripePaymentMethods(e){return Array.from(new Set(e.filter(t=>t==="card"||t==="blik")))}parseStripeStoredConfig(e){const t=f.safeParse(e);if(t.success)return{paymentMethods:t.data.paymentMethods?this.normalizeStripePaymentMethods(t.data.paymentMethods):void 0,secretKey:this.normalizeSecret(t.data.secretKey),webhookSecret:this.normalizeSecret(t.data.webhookSecret)}}sanitizeConfig(e,t){var n;if(e==="stripe"){const i=this.parseStripeStoredConfig(t);return g.parse({paymentMethods:(n=i?.paymentMethods)!==null&&n!==void 0?n:[],hasSecretKey:!!i?.secretKey,hasWebhookSecret:!!i?.webhookSecret})}else return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}sanitizeIntegration(e){return p.parse(Object.assign(Object.assign({},e),{config:this.sanitizeConfig(e.type,e.config)}))}ensureOrganizationExists(e){return h(this,void 0,void 0,function*(){if(!(yield this.prisma.organization.findUnique({where:{id:e,deletedAt:null},select:{id:!0}})))throw new a(404,"Organization not found")})}validateConfig(e,t,n){var i,r,o,d;switch(e){case"stripe":{const c=m.safeParse(t);if(!c.success)throw new a(400,(r=(i=c.error.issues[0])===null||i===void 0?void 0:i.message)!==null&&r!==void 0?r:"Invalid Stripe configuration");const s=this.parseStripeStoredConfig(n),l=(o=this.normalizeSecret(c.data.secretKey))!==null&&o!==void 0?o:s?.secretKey,u=(d=this.normalizeSecret(c.data.webhookSecret))!==null&&d!==void 0?d:s?.webhookSecret;if(!l)throw new a(400,"Stripe API key is required");if(!u)throw new a(400,"Stripe webhook secret is required");return{paymentMethods:this.normalizeStripePaymentMethods(c.data.paymentMethods),secretKey:l,webhookSecret:u}}default:throw new a(400,`Unsupported integration type: ${e}`)}}getIntegrations(e){return h(this,void 0,void 0,function*(){return yield this.ensureOrganizationExists(e),(yield this.prisma.integration.findMany({where:{organizationId:e},orderBy:{type:"asc"}})).map(n=>this.sanitizeIntegration(n))})}upsertIntegration(e,t,n,i){return h(this,void 0,void 0,function*(){yield this.ensureOrganizationExists(e);const r=yield this.prisma.integration.findUnique({where:{organizationId_type:{organizationId:e,type:t}}}),o=this.validateConfig(t,i.config,r?.config),d=yield this.prisma.integration.upsert({where:{organizationId_type:{organizationId:e,type:t}},update:{config:o,updatedBy:n},create:{organization:{connect:{id:e}},type:t,config:o,createdBy:n,updatedBy:n}});return this.sanitizeIntegration(d)})}deleteIntegration(e,t){return h(this,void 0,void 0,function*(){if(yield this.ensureOrganizationExists(e),(yield this.prisma.integration.deleteMany({where:{organizationId:e,type:t}})).count===0)throw new a(404,"Integration not found")})}}export{y as IntegrationService};
1
+ import{__awaiter as h}from"tslib";import{HttpException as s}from"../../core/exceptions/http-exception";import{IntegrationSchema as S,ResendIntegrationConfigSchema as z,StripeIntegrationConfigSchema as _,UpsertResendIntegrationConfigSchema as E,UpsertStripeIntegrationConfigSchema as R}from"./integration.schema";import{normalizeEmail as b,normalizeSecret as m,normalizeStripePaymentMethods as I,parseResendStoredConfig as y,parseStripeStoredConfig as w}from"./integration-config";class K{constructor(e,t){this.prisma=e,this.integrationRegistry=t}sanitizeConfig(e,t){var n;switch(e){case"stripe":{const i=w(t);return _.parse({paymentMethods:(n=i?.paymentMethods)!==null&&n!==void 0?n:[],hasSecretKey:!!i?.secretKey,hasWebhookSecret:!!i?.webhookSecret})}case"resend":{const i=y(t);return z.parse({hasApiKey:!!i?.apiKey,fromEmail:i?.fromEmail})}default:return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}}sanitizeIntegration(e){return S.parse(Object.assign(Object.assign({},e),{config:this.sanitizeConfig(e.type,e.config)}))}ensureOrganizationExists(e){return h(this,void 0,void 0,function*(){if(!(yield this.prisma.organization.findUnique({where:{id:e,deletedAt:null},select:{id:!0}})))throw new s(404,"Organization not found")})}validateConfig(e,t,n){var i,a,d,l,g,v,p,f;switch(e){case"stripe":{const o=R.safeParse(t);if(!o.success)throw new s(400,(a=(i=o.error.issues[0])===null||i===void 0?void 0:i.message)!==null&&a!==void 0?a:"Invalid Stripe configuration");const r=w(n),u=(d=m(o.data.secretKey))!==null&&d!==void 0?d:r?.secretKey,c=(l=m(o.data.webhookSecret))!==null&&l!==void 0?l:r?.webhookSecret;if(!u)throw new s(400,"Stripe API key is required");if(!c)throw new s(400,"Stripe webhook secret is required");return{paymentMethods:I(o.data.paymentMethods),secretKey:u,webhookSecret:c}}case"resend":{const o=E.safeParse(t);if(!o.success)throw new s(400,(v=(g=o.error.issues[0])===null||g===void 0?void 0:g.message)!==null&&v!==void 0?v:"Invalid Resend configuration");const r=y(n),u=(p=m(o.data.apiKey))!==null&&p!==void 0?p:r?.apiKey,c=(f=b(o.data.fromEmail))!==null&&f!==void 0?f:r?.fromEmail;if(!u)throw new s(400,"Resend API key is required");if(!c)throw new s(400,"Resend sender email is required");return{apiKey:u,fromEmail:c}}default:throw new s(400,`Unsupported integration type: ${e}`)}}getIntegrations(e){return h(this,void 0,void 0,function*(){return yield this.ensureOrganizationExists(e),(yield this.integrationRegistry.list(e)).map(n=>this.sanitizeIntegration(n))})}upsertIntegration(e,t,n,i){return h(this,void 0,void 0,function*(){yield this.ensureOrganizationExists(e);const a=yield this.integrationRegistry.get(e,t),d=this.validateConfig(t,i.config,a?.config),l=yield this.prisma.integration.upsert({where:{organizationId_type:{organizationId:e,type:t}},update:{config:d,updatedBy:n},create:{organization:{connect:{id:e}},type:t,config:d,createdBy:n,updatedBy:n}});return yield this.integrationRegistry.upsert(l),this.sanitizeIntegration(l)})}deleteIntegration(e,t){return h(this,void 0,void 0,function*(){if(yield this.ensureOrganizationExists(e),(yield this.prisma.integration.deleteMany({where:{organizationId:e,type:t}})).count===0)throw new s(404,"Integration not found");yield this.integrationRegistry.delete(e,t)})}}export{K as IntegrationService};
@@ -1 +1 @@
1
- {"version":3,"file":"integration.service.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/integration/integration.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"integration.service.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/integration/integration.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { PrismaClientType } from "../../core/lib/prisma";
2
+ import { CartAdjustment, CartItem } from "../cart/cart.schema";
3
+ import { InventoryConflictItem } from "../order/order.schema";
4
+ type InventoryProduct = {
5
+ availableQuantity: number | null;
6
+ id: string;
7
+ };
8
+ declare class InventoryService {
9
+ private readonly prisma;
10
+ constructor(prisma: PrismaClientType);
11
+ normalizeCartItems(items: CartItem[], products: InventoryProduct[]): {
12
+ adjustments: CartAdjustment[];
13
+ invalidProductIds: string[];
14
+ normalizedItems: CartItem[];
15
+ };
16
+ hasCartConflict(items: CartItem[], normalizedItems: CartItem[]): boolean;
17
+ private aggregateOrderItems;
18
+ private buildConflictItems;
19
+ processPaidOrderInventory(orderId: string): Promise<{
20
+ conflictItems?: InventoryConflictItem[];
21
+ status: "already_processed" | "conflict" | "deducted";
22
+ }>;
23
+ }
24
+ export { InventoryService };
@@ -0,0 +1 @@
1
+ import{__awaiter as v}from"tslib";import{Prisma as m}from"../../core/db";import{CartItemSchema as g}from"../cart/cart.schema";class I extends Error{}class w{constructor(r){this.prisma=r}normalizeCartItems(r,d){var o,t,i;const n=new Map(d.map(e=>[e.id,e])),a=new Set,s=[],l=[],f=new Map;for(const e of r){const u=n.get(e.productId),c=e.quantity||1;if(!u){a.add(e.productId),l.push({productId:e.productId,modifierGroups:e.modifierGroups,reason:"invalid_product",requestedQuantity:c,resolvedQuantity:0});continue}if(u.availableQuantity===null||u.availableQuantity===void 0){s.push(Object.assign(Object.assign({},e),{modifierGroups:(o=e.modifierGroups)!==null&&o!==void 0?o:[],quantity:c}));continue}const p=(t=f.get(u.id))!==null&&t!==void 0?t:u.availableQuantity,y=Math.min(c,p);if(f.set(u.id,Math.max(p-y,0)),y<=0){l.push({productId:e.productId,modifierGroups:e.modifierGroups,reason:"out_of_stock",requestedQuantity:c,resolvedQuantity:0});continue}y!==c&&l.push({productId:e.productId,modifierGroups:e.modifierGroups,reason:"insufficient_stock",requestedQuantity:c,resolvedQuantity:y}),s.push(Object.assign(Object.assign({},e),{modifierGroups:(i=e.modifierGroups)!==null&&i!==void 0?i:[],quantity:y}))}return{adjustments:l,invalidProductIds:Array.from(a),normalizedItems:s}}hasCartConflict(r,d){return JSON.stringify(r)!==JSON.stringify(d)}aggregateOrderItems(r){var d;const o=new Map;for(const t of r){const i=g.safeParse(t.rawData);if(!i.success)throw new Error("Order item raw data is invalid");const n=i.data,a=o.get(n.productId),s=((d=t.translations[0])===null||d===void 0?void 0:d.title)||"Product";if(a){a.requestedQuantity+=n.quantity||1;continue}o.set(n.productId,{productId:n.productId,requestedQuantity:n.quantity||1,title:s})}return o}buildConflictItems(r,d){const o=new Map(d.map(t=>[t.id,t]));return Array.from(r.values()).flatMap(t=>{var i;const n=o.get(t.productId),a=Math.max((i=n?.availableQuantity)!==null&&i!==void 0?i:0,0);return a>=t.requestedQuantity?[]:[{productId:t.productId,title:t.title,requestedQuantity:t.requestedQuantity,availableQuantity:a}]})}processPaidOrderInventory(r){return v(this,void 0,void 0,function*(){var d;const o=yield this.prisma.order.findUnique({where:{id:r},include:{items:{include:{translations:!0}}}});if(!o)throw new Error("Order not found");if(o.inventoryDeductedAt)return{status:"already_processed"};if(o.inventoryConflictAt)return{conflictItems:(d=o.inventoryConflictItems)!==null&&d!==void 0?d:[],status:"conflict"};const t=this.aggregateOrderItems(o.items);if(t.size===0)return yield this.prisma.order.update({where:{id:r},data:{inventoryConflictAt:null,inventoryConflictItems:m.DbNull,inventoryDeductedAt:new Date}}),{status:"deducted"};try{return yield this.prisma.$transaction(i=>v(this,void 0,void 0,function*(){var n,a;const s=yield i.order.findUnique({where:{id:r},select:{id:!0,inventoryConflictAt:!0,inventoryConflictItems:!0,inventoryDeductedAt:!0,organizationId:!0}});if(!s)throw new Error("Order not found");if(s.inventoryDeductedAt)return{status:"already_processed"};if(s.inventoryConflictAt)return{conflictItems:(n=s.inventoryConflictItems)!==null&&n!==void 0?n:[],status:"conflict"};const f=(yield i.product.findMany({where:{id:{in:Array.from(t.keys())},organizationId:s.organizationId},select:{availableQuantity:!0,id:!0}})).filter(u=>u.availableQuantity!==null),e=this.buildConflictItems(t,f);if(e.length>0)return yield i.order.update({where:{id:r},data:{inventoryConflictAt:new Date,inventoryConflictItems:e}}),{conflictItems:e,status:"conflict"};for(const u of f){const c=(a=t.get(u.id))===null||a===void 0?void 0:a.requestedQuantity;if(!c)continue;if((yield i.product.updateMany({where:{id:u.id,organizationId:s.organizationId,availableQuantity:{gte:c}},data:{availableQuantity:{decrement:c}}})).count!==1)throw new I}return yield i.order.update({where:{id:r},data:{inventoryConflictAt:null,inventoryConflictItems:m.DbNull,inventoryDeductedAt:new Date}}),{status:"deducted"}}))}catch(i){if(!(i instanceof I))throw i;const n=yield this.prisma.product.findMany({where:{id:{in:Array.from(t.keys())},organizationId:o.organizationId},select:{availableQuantity:!0,id:!0}}),a=this.buildConflictItems(t,n);return yield this.prisma.order.update({where:{id:r},data:{inventoryConflictAt:new Date,inventoryConflictItems:a}}),{conflictItems:a,status:"conflict"}}})}}export{w as InventoryService};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inventory.service.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/inventory/inventory.service.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,2 @@
1
- interface LocationHandlerOptions {
2
- google?: {
3
- key: string;
4
- };
5
- }
6
- export declare const buildLocationHandler: (options: LocationHandlerOptions) => import("@hono/zod-openapi").OpenAPIHono<import("../../core/hono/hono").AppBindings, {}, "/">;
7
- export {};
1
+ import { LocationService } from "./location.service";
2
+ export declare const registerLocationHandlers: (service: LocationService | null) => import("@hono/zod-openapi").OpenAPIHono<import("../../core/hono/hono").AppBindings, {}, "/">;
@@ -1 +1 @@
1
- import{__awaiter as s}from"tslib";import{createApiRouter as u}from"../../core/hono/hono";import{locationRoute as c}from"./location.route";import{LocationService as d}from"./location.service";export const buildLocationHandler=n=>{const r=u(),a=()=>{var e;if(!(!((e=n.google)===null||e===void 0)&&e.key))throw new Error("Google Maps API key is required");return n.google.key};return r.openapi(c.getPredictions,e=>s(void 0,void 0,void 0,function*(){const t=e.get("auth"),o=e.req.valid("query");yield t.getCurrentUser();const i=yield new d(a()).getPredictions(o.query,o.radius);return e.json(i,200)})),r.openapi(c.getPlaceDetails,e=>s(void 0,void 0,void 0,function*(){const t=e.get("auth"),o=e.req.valid("param");yield t.getCurrentUser();const i=yield new d(a()).getPlaceDetails(o.placeId);return e.json(i,200)})),r};
1
+ import{__awaiter as s}from"tslib";import{createApiRouter as d}from"../../core/hono/hono";import{locationRoute as u}from"./location.route";export const registerLocationHandlers=n=>{const r=d(),a=()=>{if(!n)throw new Error("Google Maps API key is required");return n};return r.openapi(u.getPredictions,e=>s(void 0,void 0,void 0,function*(){const o=e.get("auth"),t=e.req.valid("query");yield o.getCurrentUser();const i=yield a().getPredictions(t.query,t.radius);return e.json(i,200)})),r.openapi(u.getPlaceDetails,e=>s(void 0,void 0,void 0,function*(){const o=e.get("auth"),t=e.req.valid("param");yield o.getCurrentUser();const i=yield a().getPlaceDetails(t.placeId);return e.json(i,200)})),r};
@@ -1 +1 @@
1
- {"version":3,"file":"location.handler.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/location/location.handler.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAQrD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,OAA+B,EAAE,EAAE;IACtE,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAC9B,MAAM,mBAAmB,GAAG,GAAG,EAAE;;QAC/B,IAAI,CAAC,CAAA,MAAA,OAAO,CAAC,MAAM,0CAAE,GAAG,CAAA,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;IAC5B,CAAC,CAAC;IAEF,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,EAAE,CAAO,CAAC,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEnC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAE5E,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC,CAAA,CAAC,CAAC;IAEH,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,eAAe,EAAE,CAAO,CAAC,EAAE,EAAE;QACrD,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEpC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAC3D,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEnE,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC,CAAA,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
1
+ {"version":3,"file":"location.handler.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/location/location.handler.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,OAA+B,EAAE,EAAE;IAC1E,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAE9B,MAAM,sBAAsB,GAAG,GAAG,EAAE;QAClC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,EAAE,CAAO,CAAC,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEnC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,WAAW,GAAG,MAAM,sBAAsB,EAAE,CAAC,cAAc,CAC/D,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,MAAM,CACb,CAAC;QAEF,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC,CAAA,CAAC,CAAC;IAEH,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,eAAe,EAAE,CAAO,CAAC,EAAE,EAAE;QACrD,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEpC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,YAAY,GAAG,MAAM,sBAAsB,EAAE,CAAC,eAAe,CACjE,MAAM,CAAC,OAAO,CACf,CAAC;QAEF,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC,CAAA,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
@@ -1,2 +1,2 @@
1
- import { PrismaClientType } from "../../core/lib/prisma";
2
- export declare const buildManufacturerHandler: (prisma: PrismaClientType) => import("@hono/zod-openapi").OpenAPIHono<import("../../core/hono/hono").AppBindings, {}, "/">;
1
+ import { ManufacturerService } from "./manufacturer.service";
2
+ export declare const registerManufacturerHandlers: (service: ManufacturerService) => import("@hono/zod-openapi").OpenAPIHono<import("../../core/hono/hono").AppBindings, {}, "/">;