@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.
Files changed (113) hide show
  1. package/README.md +3 -3
  2. package/package.json +1 -1
  3. package/src/app-services.d.ts +47 -0
  4. package/src/app-services.js +1 -0
  5. package/src/app-services.js.map +1 -0
  6. package/src/{app.d.ts → bootstrap.d.ts} +2 -4
  7. package/src/bootstrap.js +1 -0
  8. package/src/bootstrap.js.map +1 -0
  9. package/src/core/lib/prisma.d.ts +62 -62
  10. package/src/core/notifications/email.service.d.ts +8 -2
  11. package/src/core/notifications/email.service.js +1 -1
  12. package/src/core/notifications/email.service.js.map +1 -1
  13. package/src/core/openapi/openapi.lib.d.ts +2 -2
  14. package/src/core/openapi/openapi.lib.js +1 -1
  15. package/src/core/openapi/openapi.lib.js.map +1 -1
  16. package/src/features/access/access.handler.d.ts +2 -2
  17. package/src/features/access/access.handler.js +1 -1
  18. package/src/features/access/access.handler.js.map +1 -1
  19. package/src/features/analytics/analytics.handler.d.ts +2 -2
  20. package/src/features/analytics/analytics.handler.js +1 -1
  21. package/src/features/analytics/analytics.handler.js.map +1 -1
  22. package/src/features/cart/cart.handler.d.ts +2 -2
  23. package/src/features/cart/cart.handler.js +1 -1
  24. package/src/features/cart/cart.handler.js.map +1 -1
  25. package/src/features/file/file.handler.d.ts +2 -2
  26. package/src/features/file/file.handler.js +1 -1
  27. package/src/features/file/file.handler.js.map +1 -1
  28. package/src/features/health/health.handler.d.ts +1 -1
  29. package/src/features/health/health.handler.js +1 -1
  30. package/src/features/health/health.handler.js.map +1 -1
  31. package/src/features/index.d.ts +17 -17
  32. package/src/features/index.js +1 -1
  33. package/src/features/index.js.map +1 -1
  34. package/src/features/integration/integration-config.d.ts +25 -0
  35. package/src/features/integration/integration-config.js +1 -0
  36. package/src/features/integration/integration-config.js.map +1 -0
  37. package/src/features/integration/integration-registry.d.ts +39 -0
  38. package/src/features/integration/integration-registry.js +1 -0
  39. package/src/features/integration/integration-registry.js.map +1 -0
  40. package/src/features/integration/integration.handler.d.ts +2 -2
  41. package/src/features/integration/integration.handler.js +1 -1
  42. package/src/features/integration/integration.handler.js.map +1 -1
  43. package/src/features/integration/integration.schema.d.ts +15 -0
  44. package/src/features/integration/integration.schema.js +1 -1
  45. package/src/features/integration/integration.schema.js.map +1 -1
  46. package/src/features/integration/integration.service.d.ts +3 -4
  47. package/src/features/integration/integration.service.js +1 -1
  48. package/src/features/integration/integration.service.js.map +1 -1
  49. package/src/features/location/location.handler.d.ts +2 -7
  50. package/src/features/location/location.handler.js +1 -1
  51. package/src/features/location/location.handler.js.map +1 -1
  52. package/src/features/manufacturer/manufacturer.handler.d.ts +2 -2
  53. package/src/features/manufacturer/manufacturer.handler.js +1 -1
  54. package/src/features/manufacturer/manufacturer.handler.js.map +1 -1
  55. package/src/features/order/order.handler.d.ts +2 -4
  56. package/src/features/order/order.handler.js +1 -1
  57. package/src/features/order/order.handler.js.map +1 -1
  58. package/src/features/order/order.service.d.ts +3 -6
  59. package/src/features/order/order.service.js +1 -1
  60. package/src/features/order/order.service.js.map +1 -1
  61. package/src/features/organization/organization-configuration.schema.d.ts +18 -18
  62. package/src/features/organization/organization.handler.d.ts +2 -2
  63. package/src/features/organization/organization.handler.js +1 -1
  64. package/src/features/organization/organization.handler.js.map +1 -1
  65. package/src/features/organization/organization.route.d.ts +18 -18
  66. package/src/features/organization/organization.schema.d.ts +18 -18
  67. package/src/features/organization/organization.service.d.ts +4 -2
  68. package/src/features/organization/organization.service.js +1 -1
  69. package/src/features/organization/organization.service.js.map +1 -1
  70. package/src/features/payment/payment.handler.d.ts +2 -3
  71. package/src/features/payment/payment.handler.js +1 -1
  72. package/src/features/payment/payment.handler.js.map +1 -1
  73. package/src/features/payment/payment.service.d.ts +6 -8
  74. package/src/features/payment/payment.service.js +1 -1
  75. package/src/features/payment/payment.service.js.map +1 -1
  76. package/src/features/payment/stripe.service.d.ts +1 -0
  77. package/src/features/payment/stripe.service.js +1 -1
  78. package/src/features/payment/stripe.service.js.map +1 -1
  79. package/src/features/product/product.handler.d.ts +2 -2
  80. package/src/features/product/product.handler.js +1 -1
  81. package/src/features/product/product.handler.js.map +1 -1
  82. package/src/features/product-category/product-category.handler.d.ts +2 -2
  83. package/src/features/product-category/product-category.handler.js +1 -1
  84. package/src/features/product-category/product-category.handler.js.map +1 -1
  85. package/src/features/reservation/reservation.handler.d.ts +2 -2
  86. package/src/features/reservation/reservation.handler.js +1 -1
  87. package/src/features/reservation/reservation.handler.js.map +1 -1
  88. package/src/features/reservation/reservation.service.d.ts +5 -2
  89. package/src/features/reservation/reservation.service.js +1 -1
  90. package/src/features/reservation/reservation.service.js.map +1 -1
  91. package/src/features/shipping/shipping.handler.d.ts +2 -2
  92. package/src/features/shipping/shipping.handler.js +1 -1
  93. package/src/features/shipping/shipping.handler.js.map +1 -1
  94. package/src/features/shipping/shipping.service.d.ts +4 -2
  95. package/src/features/shipping/shipping.service.js +1 -1
  96. package/src/features/shipping/shipping.service.js.map +1 -1
  97. package/src/features/shipping-method/shipping-method.handler.d.ts +2 -2
  98. package/src/features/shipping-method/shipping-method.handler.js +1 -1
  99. package/src/features/shipping-method/shipping-method.handler.js.map +1 -1
  100. package/src/features/webhook/webhook.handler.d.ts +2 -4
  101. package/src/features/webhook/webhook.handler.js +1 -1
  102. package/src/features/webhook/webhook.handler.js.map +1 -1
  103. package/src/index.d.ts +1 -2
  104. package/src/index.js +1 -1
  105. package/src/index.js.map +1 -1
  106. package/src/integrations/next.d.ts +2 -4
  107. package/src/integrations/next.js +1 -1
  108. package/src/integrations/next.js.map +1 -1
  109. package/src/app.js +0 -1
  110. package/src/app.js.map +0 -1
  111. package/src/core/notifications/notification-options.d.ts +0 -3
  112. package/src/core/notifications/notification-options.js +0 -1
  113. 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shophost/rest-api",
3
- "version": "2.0.50",
3
+ "version": "2.0.51",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "shophost-rest-api": "./scripts/shophost-rest-api.mjs"
@@ -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 BuildApiAppOptions {
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 buildApiApp: ({ corsOptions, maps, notifications, payment, prisma, resolveAuth, }?: BuildApiAppOptions) => import("@hono/zod-openapi").OpenAPIHono<import("./core/hono/hono").AppBindings, {}, "/">;
16
+ export declare const bootstrap: ({ corsOptions, maps, payment, prisma, resolveAuth, }?: BootstrapOptions) => import("@hono/zod-openapi").OpenAPIHono<import("./core/hono/hono").AppBindings, {}, "/">;
@@ -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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"}