@shophost/rest-api 2.0.50 → 2.0.51
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/src/app-services.d.ts +47 -0
- package/src/app-services.js +1 -0
- package/src/app-services.js.map +1 -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/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/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/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/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.service.d.ts +3 -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 +6 -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 +1 -0
- 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-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/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
package/README.md
CHANGED
|
@@ -58,14 +58,14 @@ const handler = createNextHandler({
|
|
|
58
58
|
},
|
|
59
59
|
},
|
|
60
60
|
},
|
|
61
|
-
notifications: {
|
|
62
|
-
resendApiKey: process.env.RESEND_API_KEY!,
|
|
63
|
-
},
|
|
64
61
|
});
|
|
65
62
|
|
|
66
63
|
export { handler as GET, handler as POST, handler as PUT, handler as PATCH, handler as DELETE, handler as OPTIONS };
|
|
67
64
|
```
|
|
68
65
|
|
|
66
|
+
You can configure Resend per organization from the admin UI under
|
|
67
|
+
`Settings -> Integrations -> Resend`.
|
|
68
|
+
|
|
69
69
|
## Database Schema Sync
|
|
70
70
|
|
|
71
71
|
The published package ships the Prisma schema and a CLI so a consuming app can
|
package/package.json
CHANGED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { PrismaClientType } from "./core/lib/prisma";
|
|
2
|
+
import { AccessService } from "./features/access/access.service";
|
|
3
|
+
import { AnalyticsService } from "./features/analytics/analytics.service";
|
|
4
|
+
import { CartService } from "./features/cart/cart.service";
|
|
5
|
+
import { FileService } from "./features/file/file.service";
|
|
6
|
+
import { IntegrationRegistry } from "./features/integration/integration-registry";
|
|
7
|
+
import { IntegrationService } from "./features/integration/integration.service";
|
|
8
|
+
import { LocationService } from "./features/location/location.service";
|
|
9
|
+
import { ManufacturerService } from "./features/manufacturer/manufacturer.service";
|
|
10
|
+
import { OrderService } from "./features/order/order.service";
|
|
11
|
+
import { OrganizationService } from "./features/organization/organization.service";
|
|
12
|
+
import { PaymentService, type PaymentServiceOptions } from "./features/payment/payment.service";
|
|
13
|
+
import { ProductCategoryService } from "./features/product-category/product-category.service";
|
|
14
|
+
import { ProductService } from "./features/product/product.service";
|
|
15
|
+
import { ReservationService } from "./features/reservation/reservation.service";
|
|
16
|
+
import { ShippingMethodService } from "./features/shipping-method/shipping-method.service";
|
|
17
|
+
import { ShippingService } from "./features/shipping/shipping.service";
|
|
18
|
+
interface CreateAppServicesOptions {
|
|
19
|
+
maps?: {
|
|
20
|
+
google?: {
|
|
21
|
+
key: string;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
payment?: PaymentServiceOptions;
|
|
25
|
+
prisma?: PrismaClientType | any;
|
|
26
|
+
}
|
|
27
|
+
interface AppServices {
|
|
28
|
+
access: AccessService;
|
|
29
|
+
analytics: AnalyticsService;
|
|
30
|
+
cart: CartService;
|
|
31
|
+
file: FileService;
|
|
32
|
+
integration: IntegrationService;
|
|
33
|
+
integrationRegistry: IntegrationRegistry;
|
|
34
|
+
location: LocationService | null;
|
|
35
|
+
manufacturer: ManufacturerService;
|
|
36
|
+
order: OrderService;
|
|
37
|
+
organization: OrganizationService;
|
|
38
|
+
payment: PaymentService;
|
|
39
|
+
product: ProductService;
|
|
40
|
+
productCategory: ProductCategoryService;
|
|
41
|
+
reservation: ReservationService;
|
|
42
|
+
shipping: ShippingService;
|
|
43
|
+
shippingMethod: ShippingMethodService;
|
|
44
|
+
}
|
|
45
|
+
declare const createAppServices: ({ maps, payment, prisma, }?: CreateAppServicesOptions) => AppServices;
|
|
46
|
+
export { createAppServices };
|
|
47
|
+
export type { AppServices, CreateAppServicesOptions };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{AccessService as v}from"./features/access/access.service";import{AnalyticsService as f}from"./features/analytics/analytics.service";import{CartService as S}from"./features/cart/cart.service";import{FileService as g}from"./features/file/file.service";import{IntegrationRegistry as m}from"./features/integration/integration-registry";import{IntegrationService as w}from"./features/integration/integration.service";import{LocationService as l}from"./features/location/location.service";import{ManufacturerService as d}from"./features/manufacturer/manufacturer.service";import{OrderService as u}from"./features/order/order.service";import{OrganizationService as p}from"./features/organization/organization.service";import{PaymentService as a}from"./features/payment/payment.service";import{ProductCategoryService as y}from"./features/product-category/product-category.service";import{ProductService as h}from"./features/product/product.service";import{ReservationService as A}from"./features/reservation/reservation.service";import{ShippingMethodService as C}from"./features/shipping-method/shipping-method.service";import{ShippingService as M}from"./features/shipping/shipping.service";const P=({maps:o,payment:t,prisma:e}={})=>{var i;const n=!((i=o?.google)===null||i===void 0)&&i.key?new l(o.google.key):null,r=new m(e),c=new a(e,t??{},r);return{access:new v(e),analytics:new f(e),cart:new S(e),file:new g(e),integration:new w(e,r),integrationRegistry:r,location:n,manufacturer:new d(e),order:new u(e,c),organization:new p(e,n),payment:c,product:new h(e),productCategory:new y(e),reservation:new A(e,r),shipping:new M(e,n),shippingMethod:new C(e)}};export{P as createAppServices};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-services.js","sourceRoot":"","sources":["../../../../packages/rest-api/src/app-services.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EACL,cAAc,GAEf,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AA+BvE,MAAM,iBAAiB,GAAG,CAAC,EACzB,IAAI,EACJ,OAAO,EACP,MAAM,MACsB,EAAE,EAAe,EAAE;;IAC/C,MAAM,QAAQ,GAAG,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,0CAAE,GAAG;QAChC,CAAC,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QACtC,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,MAAM,EACN,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,EACb,mBAAmB,CACpB,CAAC;IAEF,OAAO;QACL,MAAM,EAAE,IAAI,aAAa,CAAC,MAAM,CAAC;QACjC,SAAS,EAAE,IAAI,gBAAgB,CAAC,MAAM,CAAC;QACvC,IAAI,EAAE,IAAI,WAAW,CAAC,MAAM,CAAC;QAC7B,IAAI,EAAE,IAAI,WAAW,CAAC,MAAM,CAAC;QAC7B,WAAW,EAAE,IAAI,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,CAAC;QAChE,mBAAmB;QACnB,QAAQ;QACR,YAAY,EAAE,IAAI,mBAAmB,CAAC,MAAM,CAAC;QAC7C,KAAK,EAAE,IAAI,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC;QAC/C,YAAY,EAAE,IAAI,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC;QACvD,OAAO,EAAE,cAAc;QACvB,OAAO,EAAE,IAAI,cAAc,CAAC,MAAM,CAAC;QACnC,eAAe,EAAE,IAAI,sBAAsB,CAAC,MAAM,CAAC;QACnD,WAAW,EAAE,IAAI,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,CAAC;QAChE,QAAQ,EAAE,IAAI,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC;QAC/C,cAAc,EAAE,IAAI,qBAAqB,CAAC,MAAM,CAAC;KAClD,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
import { cors } from "hono/cors";
|
|
2
|
-
import { NotificationOptions } from "./core/notifications/notification-options";
|
|
3
2
|
import { type AuthContext } from "./core/hono/hono";
|
|
4
3
|
import type { PrismaClientType } from "./core/lib/prisma";
|
|
5
4
|
import { PaymentServiceOptions } from "./features/payment/payment.service";
|
|
6
|
-
export interface
|
|
5
|
+
export interface BootstrapOptions {
|
|
7
6
|
corsOptions?: Parameters<typeof cors>[0];
|
|
8
7
|
maps?: {
|
|
9
8
|
google?: {
|
|
10
9
|
key: string;
|
|
11
10
|
};
|
|
12
11
|
};
|
|
13
|
-
notifications?: NotificationOptions;
|
|
14
12
|
payment?: PaymentServiceOptions;
|
|
15
13
|
prisma?: PrismaClientType | any;
|
|
16
14
|
resolveAuth?: (request: Request, path: string) => AuthContext;
|
|
17
15
|
}
|
|
18
|
-
export declare const
|
|
16
|
+
export declare const bootstrap: ({ corsOptions, maps, payment, prisma, resolveAuth, }?: BootstrapOptions) => import("@hono/zod-openapi").OpenAPIHono<import("./core/hono/hono").AppBindings, {}, "/">;
|
package/src/bootstrap.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{__awaiter as l}from"tslib";import{cors as g}from"hono/cors";import{createAppServices as p}from"./app-services";import{createApiRouter as c,createUnavailableAuth as H,handleAppError as h}from"./core/hono/hono";import{registerAccessHandlers as m,registerAnalyticsHandlers as f,registerCartHandlers as O,registerFileHandlers as v,registerHealthHandlers as y,registerIntegrationHandlers as A,registerLocationHandlers as C,registerManufacturerHandlers as T,registerOrderHandlers as P,registerOrganizationHandlers as b,registerPaymentHandlers as E,registerProductCategoryHandlers as S,registerProductHandlers as w,registerReservationHandlers as R,registerShippingHandlers as q,registerShippingMethodHandlers as M,registerWebhookHandlers as j}from"./features";const z={allowHeaders:["Content-Type","Authorization","X-Requested-With","Accept","Origin","X-CSRF-Token"],allowMethods:["GET","POST","PUT","DELETE","OPTIONS","PATCH"],credentials:!0,exposeHeaders:["Content-Length","X-Kuma-Revision"],origin:["http://localhost:3000"]};export const bootstrap=({corsOptions:s,maps:a,payment:i,prisma:n,resolveAuth:u=()=>H()}={})=>{const e=c(),r=p({maps:a,payment:i,prisma:n});return e.use("*",g(Object.assign(Object.assign({},z),s))),e.use("*",(t,d)=>l(void 0,void 0,void 0,function*(){const o=u(t.req.raw,t.req.path);t.set("auth",o),Object.assign(t.req.raw,{auth:o}),yield d()})),e.onError(t=>h(t)),e.route("/",y()),e.route("/",f(r.analytics)),e.route("/",T(r.manufacturer)),e.route("/",A(r.integration)),e.route("/",b(r.organization)),e.route("/",v(r.file)),e.route("/",S(r.productCategory)),e.route("/",w(r.product)),e.route("/",m(r.access)),e.route("/",M(r.shippingMethod)),e.route("/",P(r.order)),e.route("/",O(r.cart)),e.route("/",q(r.shipping)),e.route("/",C(r.location)),e.route("/",E(r.payment)),e.route("/",j(r.payment)),e.route("/",R(r.reservation)),e};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../../packages/rest-api/src/bootstrap.ts"],"names":[],"mappings":"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"}
|