@unifiedcommerce/plugin-giftcards 0.0.1 → 0.2.1

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 (38) hide show
  1. package/dist/hooks/checkout-deduction.d.ts +1 -1
  2. package/dist/hooks/checkout-deduction.d.ts.map +1 -1
  3. package/dist/hooks/checkout-issuance.d.ts +2 -2
  4. package/dist/hooks/checkout-issuance.d.ts.map +1 -1
  5. package/dist/hooks/refund-credit.d.ts +1 -1
  6. package/dist/hooks/refund-credit.d.ts.map +1 -1
  7. package/dist/index.d.ts +3 -3
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +81 -14
  10. package/dist/routes/admin.d.ts +1 -1
  11. package/dist/routes/admin.d.ts.map +1 -1
  12. package/dist/routes/admin.js +1 -1
  13. package/dist/routes/customer.d.ts +1 -1
  14. package/dist/routes/customer.d.ts.map +1 -1
  15. package/dist/routes/customer.js +1 -1
  16. package/dist/routes/public.d.ts +1 -1
  17. package/dist/routes/public.d.ts.map +1 -1
  18. package/dist/services/gift-card-repository.d.ts +1 -1
  19. package/dist/services/gift-card-repository.d.ts.map +1 -1
  20. package/dist/services/gift-card-repository.js +1 -1
  21. package/dist/services/gift-card-service.d.ts +1 -1
  22. package/dist/services/gift-card-service.d.ts.map +1 -1
  23. package/dist/services/gift-card-service.js +2 -2
  24. package/dist/tsconfig.tsbuildinfo +1 -1
  25. package/dist/types.d.ts +1 -1
  26. package/dist/types.d.ts.map +1 -1
  27. package/dist/types.js +1 -1
  28. package/package.json +15 -5
  29. package/src/hooks/checkout-deduction.ts +2 -2
  30. package/src/hooks/checkout-issuance.ts +2 -2
  31. package/src/hooks/refund-credit.ts +2 -2
  32. package/src/index.ts +93 -21
  33. package/src/routes/admin.ts +2 -2
  34. package/src/routes/customer.ts +2 -2
  35. package/src/routes/public.ts +1 -1
  36. package/src/services/gift-card-repository.ts +2 -2
  37. package/src/services/gift-card-service.ts +3 -3
  38. package/src/types.ts +2 -2
@@ -1,5 +1,5 @@
1
1
  import type { PluginHookRegistration } from "@unifiedcommerce/core";
2
- import type { GiftCardService } from "../services/gift-card-service";
2
+ import type { GiftCardService } from "../services/gift-card-service.js";
3
3
  /**
4
4
  * checkout.beforePayment hook — deducts gift card balances before the
5
5
  * payment adapter authorizes the remaining amount.
@@ -1 +1 @@
1
- {"version":3,"file":"checkout-deduction.d.ts","sourceRoot":"","sources":["../../src/hooks/checkout-deduction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAwBrE;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,eAAe,GACvB,sBAAsB,CAkDxB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,eAAe,GACvB,sBAAsB,CAyBxB"}
1
+ {"version":3,"file":"checkout-deduction.d.ts","sourceRoot":"","sources":["../../src/hooks/checkout-deduction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAwBxE;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,eAAe,GACvB,sBAAsB,CAkDxB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,eAAe,GACvB,sBAAsB,CAyBxB"}
@@ -1,6 +1,6 @@
1
1
  import type { PluginHookRegistration } from "@unifiedcommerce/core";
2
- import type { GiftCardService } from "../services/gift-card-service";
3
- import type { GiftCardPluginOptions } from "../types";
2
+ import type { GiftCardService } from "../services/gift-card-service.js";
3
+ import type { GiftCardPluginOptions } from "../types.js";
4
4
  /**
5
5
  * checkout.afterCreate hook — issues gift cards when a gift card product is purchased.
6
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"checkout-issuance.d.ts","sourceRoot":"","sources":["../../src/hooks/checkout-issuance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AA6BtD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC,EACxC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,GAC7E,sBAAsB,CAqDxB"}
1
+ {"version":3,"file":"checkout-issuance.d.ts","sourceRoot":"","sources":["../../src/hooks/checkout-issuance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AA6BzD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC,EACxC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,GAC7E,sBAAsB,CAqDxB"}
@@ -1,5 +1,5 @@
1
1
  import type { PluginHookRegistration } from "@unifiedcommerce/core";
2
- import type { GiftCardService } from "../services/gift-card-service";
2
+ import type { GiftCardService } from "../services/gift-card-service.js";
3
3
  /**
4
4
  * order.afterUpdate hook — restores gift card balances when an order is refunded.
5
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"refund-credit.d.ts","sourceRoot":"","sources":["../../src/hooks/refund-credit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAkBrE;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,eAAe,GACvB,sBAAsB,CA8BxB"}
1
+ {"version":3,"file":"refund-credit.d.ts","sourceRoot":"","sources":["../../src/hooks/refund-credit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAkBxE;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,eAAe,GACvB,sBAAsB,CA8BxB"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import type { GiftCardPluginOptions } from "./types";
2
- export type { GiftCardPluginOptions } from "./types";
3
- export { GiftCardService } from "./services/gift-card-service";
1
+ import type { GiftCardPluginOptions } from "./types.js";
2
+ export type { GiftCardPluginOptions } from "./types.js";
3
+ export { GiftCardService } from "./services/gift-card-service.js";
4
4
  export declare function giftCardPlugin(userOptions?: GiftCardPluginOptions): import("@unifiedcommerce/core").CommercePlugin;
5
5
  /**
6
6
  * Standalone factory for the plugin with hooks wired.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,qBAAqB,EAAM,MAAM,SAAS,CAAC;AAGzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,wBAAgB,cAAc,CAAC,WAAW,GAAE,qBAA0B,kDAiDrE;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,GAAE,qBAA0B,kDAqExC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGxD,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,wBAAgB,cAAc,CAAC,WAAW,GAAE,qBAA0B,kDAuHrE;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,GAAE,qBAA0B,kDAsExC"}
package/dist/index.js CHANGED
@@ -1,14 +1,15 @@
1
- import { defineCommercePlugin } from "@unifiedcommerce/core";
2
- import { giftCards, giftCardTransactions } from "./schema";
3
- import { GiftCardService } from "./services/gift-card-service";
4
- import { buildCheckoutDeductionHook, buildCheckoutCompensationHook, } from "./hooks/checkout-deduction";
5
- import { buildGiftCardIssuanceHook } from "./hooks/checkout-issuance";
6
- import { buildRefundCreditHook } from "./hooks/refund-credit";
7
- import { buildAdminRoutes } from "./routes/admin";
8
- import { buildPublicRoutes } from "./routes/public";
9
- import { buildCustomerRoutes } from "./routes/customer";
10
- import { DEFAULT_OPTIONS } from "./types";
11
- export { GiftCardService } from "./services/gift-card-service";
1
+ import { defineCommercePlugin, toolBuilder } from "@unifiedcommerce/core";
2
+ import { z } from "zod";
3
+ import { giftCards, giftCardTransactions } from "./schema.js";
4
+ import { GiftCardService } from "./services/gift-card-service.js";
5
+ import { buildCheckoutDeductionHook, buildCheckoutCompensationHook, } from "./hooks/checkout-deduction.js";
6
+ import { buildGiftCardIssuanceHook } from "./hooks/checkout-issuance.js";
7
+ import { buildRefundCreditHook } from "./hooks/refund-credit.js";
8
+ import { buildAdminRoutes } from "./routes/admin.js";
9
+ import { buildPublicRoutes } from "./routes/public.js";
10
+ import { buildCustomerRoutes } from "./routes/customer.js";
11
+ import { DEFAULT_OPTIONS } from "./types.js";
12
+ export { GiftCardService } from "./services/gift-card-service.js";
12
13
  export function giftCardPlugin(userOptions = {}) {
13
14
  const options = {
14
15
  ...DEFAULT_OPTIONS,
@@ -35,6 +36,71 @@ export function giftCardPlugin(userOptions = {}) {
35
36
  // For now, return empty — we'll wire them up via a shared reference.
36
37
  return [];
37
38
  },
39
+ mcpTools: (ctx) => {
40
+ const db = ctx.database.db;
41
+ if (!db)
42
+ return [];
43
+ const service = new GiftCardService(db, ctx.database.transaction, options);
44
+ const t = toolBuilder("giftcards", "Manage gift cards. Use when checking balances, issuing new cards, looking up card details, or viewing transaction history.");
45
+ t.action("check_balance", "look up balance by code")
46
+ .input(z.object({
47
+ orgId: z.string().describe("Organization ID"),
48
+ code: z.string().describe("Gift card code"),
49
+ }))
50
+ .handler(async (args) => service.checkBalance(args.orgId, args.code));
51
+ t.action("issue", "create new card with amount/currency")
52
+ .input(z.object({
53
+ orgId: z.string().describe("Organization ID"),
54
+ amount: z.number().describe("Initial balance in minor units/cents"),
55
+ currency: z.string().describe("Currency code e.g. USD"),
56
+ purchaserId: z.string().describe("Customer who purchased the card").optional(),
57
+ recipientEmail: z.string().describe("Email to deliver the card to").optional(),
58
+ senderName: z.string().describe("Name of the sender").optional(),
59
+ personalMessage: z.string().describe("Personal message for recipient").optional(),
60
+ }))
61
+ .handler(async (args) => {
62
+ const input = {
63
+ amount: args.amount,
64
+ currency: args.currency,
65
+ };
66
+ if (args.purchaserId != null)
67
+ input.purchaserId = args.purchaserId;
68
+ if (args.recipientEmail != null)
69
+ input.recipientEmail = args.recipientEmail;
70
+ if (args.senderName != null)
71
+ input.senderName = args.senderName;
72
+ if (args.personalMessage != null)
73
+ input.personalMessage = args.personalMessage;
74
+ return service.create(args.orgId, input);
75
+ });
76
+ t.action("get", "card details by ID")
77
+ .input(z.object({
78
+ orgId: z.string().describe("Organization ID"),
79
+ id: z.string().describe("Gift card ID"),
80
+ }))
81
+ .handler(async (args) => service.getById(args.orgId, args.id));
82
+ t.action("list", "all cards with optional filters")
83
+ .input(z.object({
84
+ orgId: z.string().describe("Organization ID"),
85
+ status: z.string().describe("Filter by status: active, exhausted, or disabled").optional(),
86
+ purchaserId: z.string().describe("Filter by purchaser ID").optional(),
87
+ }))
88
+ .handler(async (args) => {
89
+ const filters = {};
90
+ if (args.status != null)
91
+ filters.status = args.status;
92
+ if (args.purchaserId != null)
93
+ filters.purchaserId = args.purchaserId;
94
+ return service.list(args.orgId, filters);
95
+ });
96
+ t.action("transactions", "credit/debit history for a card")
97
+ .input(z.object({
98
+ orgId: z.string().describe("Organization ID"),
99
+ giftCardId: z.string().describe("Gift card ID"),
100
+ }))
101
+ .handler(async (args) => service.getTransactions(args.orgId, args.giftCardId));
102
+ return t.build(ctx);
103
+ },
38
104
  routes: (ctx) => {
39
105
  const db = ctx.database.db;
40
106
  if (!db)
@@ -77,13 +143,14 @@ export function giftCardPluginWithHooks(userOptions = {}) {
77
143
  giftCardTransactions,
78
144
  }),
79
145
  hooks: () => {
80
- // Create a lazy proxy service that defers to serviceRef.current
146
+ // Lazy proxy: defers to serviceRef.current once routes() initializes it.
147
+ // Uses Reflect.get for type-safe dynamic property access (no index signature needed).
81
148
  const lazyService = new Proxy({}, {
82
- get(_target, prop) {
149
+ get(_target, prop, receiver) {
83
150
  if (!serviceRef.current) {
84
151
  throw new Error("Gift card service not initialized — hooks ran before routes()");
85
152
  }
86
- return serviceRef.current[prop];
153
+ return Reflect.get(serviceRef.current, prop, receiver);
87
154
  },
88
155
  });
89
156
  return [
@@ -1,4 +1,4 @@
1
- import type { GiftCardService } from "../services/gift-card-service";
1
+ import type { GiftCardService } from "../services/gift-card-service.js";
2
2
  import type { PluginRouteRegistration } from "@unifiedcommerce/core";
3
3
  export declare function buildAdminRoutes(service: GiftCardService, ctx: {
4
4
  services?: Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/routes/admin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGrE,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,eAAe,EACxB,GAAG,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GACtE,uBAAuB,EAAE,CAyG3B"}
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/routes/admin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGrE,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,eAAe,EACxB,GAAG,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GACtE,uBAAuB,EAAE,CAyG3B"}
@@ -1,6 +1,6 @@
1
1
  import { router } from "@unifiedcommerce/core";
2
2
  import { z } from "@hono/zod-openapi";
3
- import { formatCode } from "../code-generator";
3
+ import { formatCode } from "../code-generator.js";
4
4
  export function buildAdminRoutes(service, ctx) {
5
5
  const r = router("Gift Cards (Admin)", "/gift-cards", ctx);
6
6
  // ─── Create Gift Card ─────────────────────────────────────────────
@@ -1,4 +1,4 @@
1
- import type { GiftCardService } from "../services/gift-card-service";
1
+ import type { GiftCardService } from "../services/gift-card-service.js";
2
2
  import type { PluginRouteRegistration } from "@unifiedcommerce/core";
3
3
  export declare function buildCustomerRoutes(service: GiftCardService, ctx: {
4
4
  services?: Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"customer.d.ts","sourceRoot":"","sources":["../../src/routes/customer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGrE,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,eAAe,EACxB,GAAG,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GACtE,uBAAuB,EAAE,CAqB3B"}
1
+ {"version":3,"file":"customer.d.ts","sourceRoot":"","sources":["../../src/routes/customer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGrE,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,eAAe,EACxB,GAAG,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GACtE,uBAAuB,EAAE,CAqB3B"}
@@ -1,5 +1,5 @@
1
1
  import { router } from "@unifiedcommerce/core";
2
- import { formatCode } from "../code-generator";
2
+ import { formatCode } from "../code-generator.js";
3
3
  export function buildCustomerRoutes(service, ctx) {
4
4
  const r = router("Gift Cards (Customer)", "/me/gift-cards", ctx);
5
5
  // ─── List Customer's Gift Cards ───────────────────────────────────
@@ -1,4 +1,4 @@
1
- import type { GiftCardService } from "../services/gift-card-service";
1
+ import type { GiftCardService } from "../services/gift-card-service.js";
2
2
  import type { PluginRouteRegistration } from "@unifiedcommerce/core";
3
3
  export declare function buildPublicRoutes(service: GiftCardService, ctx: {
4
4
  services?: Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/routes/public.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAErE,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,eAAe,EACxB,GAAG,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GACtE,uBAAuB,EAAE,CAsB3B"}
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/routes/public.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAErE,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,eAAe,EACxB,GAAG,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GACtE,uBAAuB,EAAE,CAsB3B"}
@@ -1,4 +1,4 @@
1
- import type { Db, GiftCard, GiftCardInsert, GiftCardTransaction, GiftCardStatus, TransactionType } from "../types";
1
+ import type { Db, GiftCard, GiftCardInsert, GiftCardTransaction, GiftCardStatus, TransactionType } from "../types.js";
2
2
  export declare class GiftCardRepository {
3
3
  private db;
4
4
  constructor(db: Db);
@@ -1 +1 @@
1
- {"version":3,"file":"gift-card-repository.d.ts","sourceRoot":"","sources":["../../src/services/gift-card-repository.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,mBAAmB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEnH,qBAAa,kBAAkB;IACjB,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,EAAE;IAE1B,OAAO,CAAC,KAAK;IAMP,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;IAQlE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAQtE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAQ1E,IAAI,CACR,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,cAAc,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAC3D,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAChB,OAAO,CAAC,QAAQ,EAAE,CAAC;IAYhB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAWrE,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IASxE,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IASpE,aAAa,CACjB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,cAAc,EACtB,cAAc,EAAE,MAAM,EACtB,EAAE,EAAE,EAAE,GACL,OAAO,CAAC,QAAQ,CAAC;IAcd,aAAa,CACjB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,EAAE,GACL,OAAO,CAAC,QAAQ,CAAC;IAYd,iBAAiB,CACrB,IAAI,EAAE;QACJ,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,eAAe,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,EACD,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAChB,OAAO,CAAC,mBAAmB,CAAC;IAQzB,gBAAgB,CACpB,UAAU,EAAE,MAAM,EAClB,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAChB,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAQ3B,yBAAyB,CAC7B,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAChB,OAAO,CAAC,mBAAmB,EAAE,CAAC;CAOlC"}
1
+ {"version":3,"file":"gift-card-repository.d.ts","sourceRoot":"","sources":["../../src/services/gift-card-repository.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,mBAAmB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEtH,qBAAa,kBAAkB;IACjB,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,EAAE;IAE1B,OAAO,CAAC,KAAK;IAMP,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;IAQlE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAQtE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAQ1E,IAAI,CACR,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,cAAc,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAC3D,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAChB,OAAO,CAAC,QAAQ,EAAE,CAAC;IAYhB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAWrE,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IASxE,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IASpE,aAAa,CACjB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,cAAc,EACtB,cAAc,EAAE,MAAM,EACtB,EAAE,EAAE,EAAE,GACL,OAAO,CAAC,QAAQ,CAAC;IAcd,aAAa,CACjB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,EAAE,GACL,OAAO,CAAC,QAAQ,CAAC;IAYd,iBAAiB,CACrB,IAAI,EAAE;QACJ,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,eAAe,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,EACD,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAChB,OAAO,CAAC,mBAAmB,CAAC;IAQzB,gBAAgB,CACpB,UAAU,EAAE,MAAM,EAClB,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAChB,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAQ3B,yBAAyB,CAC7B,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAChB,OAAO,CAAC,mBAAmB,EAAE,CAAC;CAOlC"}
@@ -1,5 +1,5 @@
1
1
  import { eq, desc, and } from "drizzle-orm";
2
- import { giftCards, giftCardTransactions } from "../schema";
2
+ import { giftCards, giftCardTransactions } from "../schema.js";
3
3
  export class GiftCardRepository {
4
4
  db;
5
5
  constructor(db) {
@@ -1,5 +1,5 @@
1
1
  import type { PluginResult } from "@unifiedcommerce/core";
2
- import type { Db, GiftCard, GiftCardDeduction, GiftCardPluginOptions, GiftCardTransaction, GiftCardStatus } from "../types";
2
+ import type { Db, GiftCard, GiftCardDeduction, GiftCardPluginOptions, GiftCardTransaction, GiftCardStatus } from "../types.js";
3
3
  export declare class GiftCardService {
4
4
  private options;
5
5
  private repo;
@@ -1 +1 @@
1
- {"version":3,"file":"gift-card-service.d.ts","sourceRoot":"","sources":["../../src/services/gift-card-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,OAAO,KAAK,EACV,EAAE,EACF,QAAQ,EACR,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EAEf,MAAM,UAAU,CAAC;AAElB,qBAAa,eAAe;IAOxB,OAAO,CAAC,OAAO;IANjB,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,WAAW,CAAyD;gBAG1E,EAAE,EAAE,EAAE,EACN,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,EAC7D,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC;IAQ5C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;QACjC,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAuD7B,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAMnE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAMvE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAClC,MAAM,CAAC,EAAE,cAAc,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;IAK/B,eAAe,CACnB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAOzC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;QACpE,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IAaH;;;OAGG;IACG,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAwC3C;;;OAGG;IACG,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,YAAY,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAsC5C,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAMnE,MAAM,CACV,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;CAoCnC"}
1
+ {"version":3,"file":"gift-card-service.d.ts","sourceRoot":"","sources":["../../src/services/gift-card-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,OAAO,KAAK,EACV,EAAE,EACF,QAAQ,EACR,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EAEf,MAAM,aAAa,CAAC;AAErB,qBAAa,eAAe;IAOxB,OAAO,CAAC,OAAO;IANjB,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,WAAW,CAAyD;gBAG1E,EAAE,EAAE,EAAE,EACN,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,EAC7D,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC;IAQ5C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;QACjC,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAuD7B,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAMnE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAMvE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAClC,MAAM,CAAC,EAAE,cAAc,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;IAK/B,eAAe,CACnB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAOzC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;QACpE,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IAaH;;;OAGG;IACG,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAwC3C;;;OAGG;IACG,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,YAAY,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAsC5C,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAMnE,MAAM,CACV,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;CAoCnC"}
@@ -1,6 +1,6 @@
1
1
  import { Ok, Err } from "@unifiedcommerce/core";
2
- import { generateGiftCardCode, normalizeCode } from "../code-generator";
3
- import { GiftCardRepository } from "./gift-card-repository";
2
+ import { generateGiftCardCode, normalizeCode } from "../code-generator.js";
3
+ import { GiftCardRepository } from "./gift-card-repository.js";
4
4
  export class GiftCardService {
5
5
  options;
6
6
  repo;