@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.
- package/README.md +3 -3
- package/package.json +1 -1
- package/schema.prisma +4 -0
- package/src/{app.d.ts → bootstrap.d.ts} +2 -4
- package/src/bootstrap.js +1 -0
- package/src/bootstrap.js.map +1 -0
- package/src/container.d.ts +49 -0
- package/src/container.js +1 -0
- package/src/container.js.map +1 -0
- package/src/core/db/__generated__/client/internal/class.js +33 -29
- package/src/core/db/__generated__/client/internal/class.js.map +1 -1
- package/src/core/db/__generated__/client/internal/prismaNamespace.d.ts +4 -0
- package/src/core/db/__generated__/client/internal/prismaNamespace.js +1 -1
- package/src/core/db/__generated__/client/internal/prismaNamespace.js.map +1 -1
- package/src/core/db/__generated__/client/internal/prismaNamespaceBrowser.d.ts +4 -0
- package/src/core/db/__generated__/client/internal/prismaNamespaceBrowser.js +1 -1
- package/src/core/db/__generated__/client/internal/prismaNamespaceBrowser.js.map +1 -1
- package/src/core/db/__generated__/client/models/Order.d.ts +178 -1
- package/src/core/db/__generated__/client/models/Product.d.ts +75 -1
- package/src/core/lib/prisma.d.ts +62 -62
- package/src/core/notifications/email.service.d.ts +8 -2
- package/src/core/notifications/email.service.js +1 -1
- package/src/core/notifications/email.service.js.map +1 -1
- package/src/core/openapi/openapi.lib.d.ts +2 -2
- package/src/core/openapi/openapi.lib.js +1 -1
- package/src/core/openapi/openapi.lib.js.map +1 -1
- package/src/core/utils/zod.util.js +1 -1
- package/src/core/utils/zod.util.js.map +1 -1
- package/src/features/access/access.handler.d.ts +2 -2
- package/src/features/access/access.handler.js +1 -1
- package/src/features/access/access.handler.js.map +1 -1
- package/src/features/analytics/analytics.handler.d.ts +2 -2
- package/src/features/analytics/analytics.handler.js +1 -1
- package/src/features/analytics/analytics.handler.js.map +1 -1
- package/src/features/cart/cart.handler.d.ts +2 -2
- package/src/features/cart/cart.handler.js +1 -1
- package/src/features/cart/cart.handler.js.map +1 -1
- package/src/features/cart/cart.route.d.ts +29 -0
- package/src/features/cart/cart.route.js +1 -1
- package/src/features/cart/cart.route.js.map +1 -1
- package/src/features/cart/cart.schema.d.ts +399 -0
- package/src/features/cart/cart.schema.js +1 -1
- package/src/features/cart/cart.schema.js.map +1 -1
- package/src/features/cart/cart.service.d.ts +30 -3
- package/src/features/cart/cart.service.js +1 -1
- package/src/features/cart/cart.service.js.map +1 -1
- package/src/features/file/file.handler.d.ts +2 -2
- package/src/features/file/file.handler.js +1 -1
- package/src/features/file/file.handler.js.map +1 -1
- package/src/features/health/health.handler.d.ts +1 -1
- package/src/features/health/health.handler.js +1 -1
- package/src/features/health/health.handler.js.map +1 -1
- package/src/features/index.d.ts +17 -17
- package/src/features/index.js +1 -1
- package/src/features/index.js.map +1 -1
- package/src/features/integration/integration-config.d.ts +25 -0
- package/src/features/integration/integration-config.js +1 -0
- package/src/features/integration/integration-config.js.map +1 -0
- package/src/features/integration/integration-registry.d.ts +39 -0
- package/src/features/integration/integration-registry.js +1 -0
- package/src/features/integration/integration-registry.js.map +1 -0
- package/src/features/integration/integration.handler.d.ts +2 -2
- package/src/features/integration/integration.handler.js +1 -1
- package/src/features/integration/integration.handler.js.map +1 -1
- package/src/features/integration/integration.schema.d.ts +15 -0
- package/src/features/integration/integration.schema.js +1 -1
- package/src/features/integration/integration.schema.js.map +1 -1
- package/src/features/integration/integration.service.d.ts +3 -4
- package/src/features/integration/integration.service.js +1 -1
- package/src/features/integration/integration.service.js.map +1 -1
- package/src/features/inventory/inventory.service.d.ts +24 -0
- package/src/features/inventory/inventory.service.js +1 -0
- package/src/features/inventory/inventory.service.js.map +1 -0
- package/src/features/location/location.handler.d.ts +2 -7
- package/src/features/location/location.handler.js +1 -1
- package/src/features/location/location.handler.js.map +1 -1
- package/src/features/manufacturer/manufacturer.handler.d.ts +2 -2
- package/src/features/manufacturer/manufacturer.handler.js +1 -1
- package/src/features/manufacturer/manufacturer.handler.js.map +1 -1
- package/src/features/order/order.handler.d.ts +2 -4
- package/src/features/order/order.handler.js +1 -1
- package/src/features/order/order.handler.js.map +1 -1
- package/src/features/order/order.route.d.ts +314 -0
- package/src/features/order/order.route.js +1 -1
- package/src/features/order/order.route.js.map +1 -1
- package/src/features/order/order.schema.d.ts +33 -0
- package/src/features/order/order.schema.js +1 -1
- package/src/features/order/order.schema.js.map +1 -1
- package/src/features/order/order.service.d.ts +57 -6
- package/src/features/order/order.service.js +1 -1
- package/src/features/order/order.service.js.map +1 -1
- package/src/features/organization/organization-configuration.schema.d.ts +18 -18
- package/src/features/organization/organization.handler.d.ts +2 -2
- package/src/features/organization/organization.handler.js +1 -1
- package/src/features/organization/organization.handler.js.map +1 -1
- package/src/features/organization/organization.route.d.ts +18 -18
- package/src/features/organization/organization.schema.d.ts +18 -18
- package/src/features/organization/organization.service.d.ts +4 -2
- package/src/features/organization/organization.service.js +1 -1
- package/src/features/organization/organization.service.js.map +1 -1
- package/src/features/payment/payment.handler.d.ts +2 -3
- package/src/features/payment/payment.handler.js +1 -1
- package/src/features/payment/payment.handler.js.map +1 -1
- package/src/features/payment/payment.service.d.ts +9 -8
- package/src/features/payment/payment.service.js +1 -1
- package/src/features/payment/payment.service.js.map +1 -1
- package/src/features/payment/stripe.service.d.ts +3 -2
- package/src/features/payment/stripe.service.js +1 -1
- package/src/features/payment/stripe.service.js.map +1 -1
- package/src/features/product/product.handler.d.ts +2 -2
- package/src/features/product/product.handler.js +1 -1
- package/src/features/product/product.handler.js.map +1 -1
- package/src/features/product/product.route.d.ts +10 -0
- package/src/features/product/product.schema.d.ts +4 -0
- package/src/features/product/product.schema.js +1 -1
- package/src/features/product/product.schema.js.map +1 -1
- package/src/features/product/product.service.d.ts +8 -0
- package/src/features/product/product.service.js +1 -1
- package/src/features/product/product.service.js.map +1 -1
- package/src/features/product-category/product-category.handler.d.ts +2 -2
- package/src/features/product-category/product-category.handler.js +1 -1
- package/src/features/product-category/product-category.handler.js.map +1 -1
- package/src/features/reservation/reservation.handler.d.ts +2 -2
- package/src/features/reservation/reservation.handler.js +1 -1
- package/src/features/reservation/reservation.handler.js.map +1 -1
- package/src/features/reservation/reservation.service.d.ts +5 -2
- package/src/features/reservation/reservation.service.js +1 -1
- package/src/features/reservation/reservation.service.js.map +1 -1
- package/src/features/shipping/shipping.handler.d.ts +2 -2
- package/src/features/shipping/shipping.handler.js +1 -1
- package/src/features/shipping/shipping.handler.js.map +1 -1
- package/src/features/shipping/shipping.service.d.ts +4 -2
- package/src/features/shipping/shipping.service.js +1 -1
- package/src/features/shipping/shipping.service.js.map +1 -1
- package/src/features/shipping-method/shipping-method.handler.d.ts +2 -2
- package/src/features/shipping-method/shipping-method.handler.js +1 -1
- package/src/features/shipping-method/shipping-method.handler.js.map +1 -1
- package/src/features/webhook/webhook.handler.d.ts +2 -4
- package/src/features/webhook/webhook.handler.js +1 -1
- package/src/features/webhook/webhook.handler.js.map +1 -1
- package/src/index.d.ts +1 -2
- package/src/index.js +1 -1
- package/src/index.js.map +1 -1
- package/src/integrations/next.d.ts +2 -4
- package/src/integrations/next.js +1 -1
- package/src/integrations/next.js.map +1 -1
- package/src/schemas/number.schema.d.ts +1 -0
- package/src/schemas/number.schema.js +1 -1
- package/src/schemas/number.schema.js.map +1 -1
- package/src/app.js +0 -1
- package/src/app.js.map +0 -1
- package/src/core/notifications/notification-options.d.ts +0 -3
- package/src/core/notifications/notification-options.js +0 -1
- package/src/core/notifications/notification-options.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{z as
|
|
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
|
-
|
|
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
|
-
|
|
84
|
+
total: number;
|
|
85
|
+
shipping?: number | undefined;
|
|
59
86
|
}>;
|
|
60
87
|
}
|
|
61
88
|
export { CartService };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__awaiter as
|
|
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":";AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,
|
|
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 {
|
|
2
|
-
export declare const
|
|
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
|
|
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;
|
|
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
|
|
1
|
+
export declare const registerHealthHandlers: () => import("@hono/zod-openapi").OpenAPIHono<import("../../core/hono/hono").AppBindings, {}, "/">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createApiRouter as
|
|
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,
|
|
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"}
|
package/src/features/index.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
13
|
-
export {
|
|
14
|
-
export {
|
|
15
|
-
export {
|
|
16
|
-
export {
|
|
17
|
-
export {
|
|
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";
|
package/src/features/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
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,
|
|
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 {
|
|
2
|
-
export declare const
|
|
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
|
|
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,
|
|
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":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAEtC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7D,OAAO,EAAE,QAAQ;IACjB,WAAW,EAAE,sBAAsB;CACpC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IACxE,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,uBAAuB;CACrC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC;KACjD,MAAM,CAAC;IACN,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC9C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACnD,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC;KACjD,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;CAChD,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC;KAC3C,MAAM,CAAC;IACN,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAChE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,qDAAqD;KACnE,CAAC;IACF,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC;QAChC,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,gDAAgD;KAC9D,CAAC;IACF,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC;QACpC,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,+DAA+D;KAC7E,CAAC;CACH,CAAC;KACD,MAAM,EAAE;KACR,OAAO,CAAC,yBAAyB,CAAC,CAAC;AAEtC,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC;KACjD,MAAM,CAAC;IACN,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAChE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,qDAAqD;KACnE,CAAC;IACF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC;QACrD,OAAO,EAAE,mBAAmB;QAC5B,WAAW,EAAE,4CAA4C;KAC1D,CAAC;IACF,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC;QACzD,OAAO,EAAE,iBAAiB;QAC1B,WAAW,EAAE,oDAAoD;KAClE,CAAC;CACH,CAAC;KACD,MAAM,EAAE;KACR,OAAO,CAAC,+BAA+B,CAAC,CAAC;AAE5C,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC;KAC3C,MAAM,CAAC;IACN,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC;QAC7B,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,gDAAgD;KAC9D,CAAC;IACF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC;QACtD,OAAO,EAAE,oBAAoB;QAC7B,WAAW,EAAE,uDAAuD;KACrE,CAAC;CACH,CAAC;KACD,MAAM,EAAE;KACR,OAAO,CAAC,yBAAyB,CAAC,CAAC;AAEtC,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC;KACjD,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC;QAClD,OAAO,EAAE,cAAc;QACvB,WAAW,EAAE,qCAAqC;KACnD,CAAC;IACF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC;QACtD,OAAO,EAAE,oBAAoB;QAC7B,WAAW,EAAE,uDAAuD;KACrE,CAAC;CACH,CAAC;KACD,MAAM,EAAE;KACR,OAAO,CAAC,+BAA+B,CAAC,CAAC;AAE5C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC;KACrC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;KAC/B,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAEhC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC;QACjC,OAAO,EAAE,qBAAqB;QAC9B,WAAW,EAAE,iBAAiB;KAC/B,CAAC;IACF,IAAI,EAAE,qBAAqB;IAC3B,MAAM,EAAE,uBAAuB,CAAC,OAAO,CAAC;QACtC,WAAW,EAAE,uCAAuC;KACrD,CAAC;IACF,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC;QAC1B,WAAW,EAAE,4CAA4C;KAC1D,CAAC;IACF,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC;QAC1B,WAAW,EAAE,iDAAiD;KAC/D,CAAC;CACH,CAAC;KACD,OAAO,CAAC,aAAa,CAAC,CAAC;AAE1B,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC;KACrC,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC;QAC1B,OAAO,EAAE;YACP,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;YAChC,SAAS,EAAE,mBAAmB;YAC9B,aAAa,EAAE,iBAAiB;SACjC;QACD,WAAW,EACT,gFAAgF;KACnF,CAAC;CACH,CAAC;KACD,OAAO,CAAC,mBAAmB,CAAC,CAAC"}
|
|
@@ -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
|
-
|
|
7
|
-
|
|
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
|
|
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":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,OAAO,EACL,iBAAiB,EACjB,6BAA6B,EAC7B,mCAAmC,
|
|
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
|
-
|
|
2
|
-
|
|
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
|
|
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;
|
|
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 {
|
|
2
|
-
export declare const
|
|
1
|
+
import { ManufacturerService } from "./manufacturer.service";
|
|
2
|
+
export declare const registerManufacturerHandlers: (service: ManufacturerService) => import("@hono/zod-openapi").OpenAPIHono<import("../../core/hono/hono").AppBindings, {}, "/">;
|