@offerkit/sdk 0.2.0 → 0.2.3
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/dist/index.d.mts +401 -12
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +334 -146
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["programs","orderItem","webhooks"],"sources":["../../contract/src/schemas/api-key.ts","../../contract/src/routes/api-keys.ts","../../contract/src/mcp.ts","../../contract/src/schemas/campaign.ts","../../contract/src/schemas/pagination.ts","../../contract/src/routes/campaigns.ts","../../contract/src/schemas/customer.ts","../../contract/src/routes/customers.ts","../../contract/src/schemas/loyalty.ts","../../contract/src/routes/loyalty.ts","../../contract/src/schemas/referral.ts","../../contract/src/routes/referrals.ts","../../contract/src/schemas/reward-type.ts","../../contract/src/routes/reward-types.ts","../../contract/src/schemas/segment.ts","../../contract/src/routes/segments.ts","../../contract/src/schemas/validation-rule.ts","../../contract/src/routes/validation-rules.ts","../../contract/src/schemas/voucher.ts","../../contract/src/schemas/redemption.ts","../../contract/src/routes/vouchers.ts","../../contract/src/schemas/webhook.ts","../../contract/src/routes/webhooks.ts","../../contract/src/routes/insights.ts","../../contract/src/schemas/user.ts","../../contract/src/routes/users.ts","../../contract/src/schemas/order.ts","../../contract/src/routes/orders.ts","../../contract/src/schemas/audit-log.ts","../../contract/src/routes/audit-log.ts","../../contract/src/routes/workspace.ts","../../contract/src/router.ts","../src/index.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const apiKeyOutput = z.object({\n id: z.string(),\n name: z.string(),\n prefix: z.string(),\n scopes: z.array(z.string()),\n rateLimitRps: z.number().int(),\n lastUsedAt: z.string().datetime().nullable(),\n disabledAt: z.string().datetime().nullable(),\n createdAt: z.string().datetime(),\n});\n\nexport const apiKeyCreateInput = z.object({\n name: z.string().min(1).max(100),\n scopes: z.array(z.string()).optional(),\n rateLimitRps: z.number().int().min(1).max(10_000).optional(),\n});\n\nexport const apiKeyCreateOutput = apiKeyOutput.extend({\n /** The plaintext token. Shown once at creation; never returned again. */\n token: z.string(),\n});\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport {\n apiKeyCreateInput,\n apiKeyCreateOutput,\n apiKeyOutput,\n} from \"../schemas/api-key.ts\";\n\nexport const apiKeys = {\n list: oc\n .route({ method: \"GET\", path: \"/api-keys\", summary: \"List API keys\" })\n .output(z.object({ data: z.array(apiKeyOutput) })),\n create: oc\n .route({ method: \"POST\", path: \"/api-keys\", summary: \"Mint a new API key\" })\n .input(apiKeyCreateInput)\n .output(apiKeyCreateOutput),\n revoke: oc\n .route({\n method: \"DELETE\",\n path: \"/api-keys/{id}\",\n summary: \"Disable an API key (cannot be re-enabled)\",\n })\n .input(z.object({ id: z.string() }))\n .output(z.object({ ok: z.literal(true) })),\n};\n","// Declarative MCP-exposure metadata. Attach via `.meta(mcpMeta({...}))`\n// on a contract procedure to make it appear as a tool in the\n// @offerkit/mcp server. Metadata is read at server boot — new\n// procedures opt in (or stay hidden) by tagging this `mcp` field\n// without touching the MCP package.\n\nexport type McpRiskLevel = \"safe\" | \"mutating\" | \"destructive\";\n\nexport interface McpExposure {\n expose: true;\n /** Override for the MCP tool description. Falls back to procedure summary. */\n description?: string;\n /** Hint to the LLM host: `safe` is read-only, `mutating` writes state, `destructive` cannot be undone. */\n riskLevel: McpRiskLevel;\n /** Optional override for the MCP tool name. Defaults to the dotted procedure path with `_` separators. */\n name?: string;\n}\n\nexport interface ProcedureMeta {\n mcp?: McpExposure;\n}\n\n/**\n * Returns a `meta` object that attaches MCP exposure to a procedure.\n * Wrapping in a helper keeps the call sites typed and uniform.\n */\nexport function mcpMeta(meta: McpExposure): ProcedureMeta {\n return { mcp: meta };\n}\n","import { z } from \"zod\";\n\nexport const campaignType = z.enum([\n \"DISCOUNT\",\n \"GIFT_VOUCHERS\",\n \"LOYALTY_PROGRAM\",\n \"REFERRAL_PROGRAM\",\n \"PROMOTION\",\n]);\nexport const campaignStatus = z.enum([\"draft\", \"active\", \"paused\", \"ended\"]);\n\nexport const codeConfig = z.object({\n length: z.number().int().min(4).max(32).optional(),\n prefix: z.string().max(20).optional(),\n suffix: z.string().max(20).optional(),\n charset: z.enum([\"alphanumeric\", \"uppercase\", \"lowercase\", \"numeric\"]).optional(),\n excludeConfusable: z.boolean().optional(),\n});\n\nexport const campaignOutput = z.object({\n id: z.string().uuid(),\n name: z.string(),\n description: z.string().nullable(),\n type: campaignType,\n status: campaignStatus,\n currency: z.string().length(3),\n timezone: z.string(),\n startDate: z.string().datetime().nullable(),\n endDate: z.string().datetime().nullable(),\n codeConfig,\n validationRuleId: z.string().uuid().nullable(),\n autoApply: z.boolean(),\n voucherCount: z.number().int(),\n metadata: z.record(z.string(), z.unknown()),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const campaignCreateInput = z.object({\n name: z.string().min(1).max(100),\n description: z.string().max(500).optional(),\n type: campaignType,\n currency: z.string().length(3),\n timezone: z.string().optional(),\n startDate: z.string().datetime().optional(),\n endDate: z.string().datetime().optional(),\n codeConfig: codeConfig.optional(),\n validationRuleId: z.string().uuid().nullable().optional(),\n autoApply: z.boolean().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const campaignUpdateInput = campaignCreateInput.omit({ type: true }).partial().extend({\n status: campaignStatus.optional(),\n});\n","import { z } from \"zod\";\n\n// Accept either a number or a numeric string so REST query-string callers and\n// typed RPC callers share the same contract. Coercion happens here, not in the\n// route handlers.\nconst limit = z\n .union([z.number(), z.string().regex(/^\\d+$/)])\n .transform((v) => (typeof v === \"string\" ? Number.parseInt(v, 10) : v))\n .pipe(z.number().int().min(1).max(100))\n .default(20);\n\nexport const paginationInput = z.object({\n cursor: z.string().optional(),\n limit,\n});\n\nexport function paginatedOutput<T extends z.ZodTypeAny>(item: T) {\n return z.object({\n data: z.array(item),\n next: z.string().optional(),\n prev: z.string().optional(),\n });\n}\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport { mcpMeta } from \"../mcp.ts\";\nimport {\n campaignCreateInput,\n campaignOutput,\n campaignUpdateInput,\n} from \"../schemas/campaign.ts\";\nimport { paginatedOutput, paginationInput } from \"../schemas/pagination.ts\";\n\nexport const campaigns = {\n list: oc\n .meta(mcpMeta({ expose: true, riskLevel: \"safe\" }))\n .route({ method: \"GET\", path: \"/campaigns\", summary: \"List campaigns\" })\n .input(paginationInput.extend({ search: z.string().optional() }))\n .output(paginatedOutput(campaignOutput)),\n get: oc\n .meta(mcpMeta({ expose: true, riskLevel: \"safe\" }))\n .route({ method: \"GET\", path: \"/campaigns/{id}\", summary: \"Get campaign\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(campaignOutput),\n create: oc\n .route({ method: \"POST\", path: \"/campaigns\", summary: \"Create campaign\" })\n .input(campaignCreateInput)\n .output(campaignOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/campaigns/{id}\", summary: \"Update campaign\" })\n .input(z.object({ id: z.string().uuid(), patch: campaignUpdateInput }))\n .output(campaignOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/campaigns/{id}\", summary: \"Soft-delete campaign\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n};\n","import { z } from \"zod\";\n\nexport const customerAddress = z.object({\n line1: z.string().optional(),\n line2: z.string().optional(),\n city: z.string().optional(),\n state: z.string().optional(),\n postalCode: z.string().optional(),\n country: z.string().length(2).optional(),\n});\n\nexport const customerSummary = z.object({\n totalSpent: z.number().int().nonnegative().optional(),\n redemptionCount: z.number().int().nonnegative().optional(),\n lastRedeemedAt: z.string().datetime().optional(),\n});\n\nexport const customerOutput = z.object({\n id: z.string().uuid(),\n email: z.string().email().nullable(),\n name: z.string().nullable(),\n phone: z.string().nullable(),\n externalId: z.string().nullable(),\n address: customerAddress.nullable(),\n metadata: z.record(z.string(), z.unknown()),\n summary: customerSummary,\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const customerCreateInput = z.object({\n email: z.string().email().optional(),\n name: z.string().optional(),\n phone: z.string().optional(),\n externalId: z.string().min(1).max(256).optional(),\n address: customerAddress.optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const customerUpdateInput = customerCreateInput.partial();\n\n// Idempotent on externalId. If a live customer exists with this externalId,\n// fields are updated in place (omitted fields are left untouched). Otherwise\n// a new customer is created. `created` tells the caller which path was taken\n// so they can fire a \"new customer\" event downstream if needed.\nexport const customerUpsertInput = z.object({\n externalId: z.string().min(1).max(256),\n email: z.string().email().optional(),\n name: z.string().optional(),\n phone: z.string().optional(),\n address: customerAddress.optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const customerUpsertOutput = z.object({\n customer: customerOutput,\n created: z.boolean(),\n});\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport { mcpMeta } from \"../mcp.ts\";\nimport {\n customerCreateInput,\n customerOutput,\n customerUpdateInput,\n customerUpsertInput,\n customerUpsertOutput,\n} from \"../schemas/customer.ts\";\nimport { paginatedOutput, paginationInput } from \"../schemas/pagination.ts\";\n\nexport const customers = {\n list: oc\n .meta(mcpMeta({ expose: true, riskLevel: \"safe\" }))\n .route({ method: \"GET\", path: \"/customers\", summary: \"List customers\" })\n .input(paginationInput.extend({ search: z.string().optional() }))\n .output(paginatedOutput(customerOutput)),\n get: oc\n .meta(mcpMeta({ expose: true, riskLevel: \"safe\" }))\n .route({ method: \"GET\", path: \"/customers/{id}\", summary: \"Get customer\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(customerOutput),\n getByExternalId: oc\n .meta(mcpMeta({ expose: true, riskLevel: \"safe\" }))\n .route({\n method: \"GET\",\n path: \"/customers/by-external-id/{externalId}\",\n summary: \"Get a customer by integrator-supplied externalId\",\n })\n .input(z.object({ externalId: z.string().min(1).max(256) }))\n .output(customerOutput),\n create: oc\n .route({ method: \"POST\", path: \"/customers\", summary: \"Create customer\" })\n .input(customerCreateInput)\n .output(customerOutput),\n upsert: oc\n .route({\n method: \"PUT\",\n path: \"/customers/by-external-id\",\n summary: \"Create or update a customer keyed by externalId (idempotent)\",\n })\n .input(customerUpsertInput)\n .output(customerUpsertOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/customers/{id}\", summary: \"Update customer\" })\n .input(z.object({ id: z.string().uuid(), patch: customerUpdateInput }))\n .output(customerOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/customers/{id}\", summary: \"Soft-delete customer\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n};\n","import { z } from \"zod\";\n\nexport const loyaltyProgramOutput = z.object({\n id: z.string().uuid(),\n campaignId: z.string().uuid(),\n pointsExpiryDays: z.number().int().nullable(),\n metadata: z.record(z.string(), z.unknown()),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const loyaltyProgramCreateInput = z.object({\n campaignId: z.string().uuid(),\n pointsExpiryDays: z.number().int().min(1).optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const loyaltyProgramUpdateInput = z\n .object({\n pointsExpiryDays: z.number().int().min(1).nullable().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n })\n .partial();\n\nexport const loyaltyTierOutput = z.object({\n id: z.string().uuid(),\n programId: z.string().uuid(),\n name: z.string(),\n threshold: z.number().int(),\n earnMultiplier: z.number().int(),\n sortOrder: z.number().int(),\n});\n\nexport const loyaltyTierCreateInput = z.object({\n programId: z.string().uuid(),\n name: z.string().min(1).max(100),\n threshold: z.number().int().min(0),\n earnMultiplier: z.number().int().min(0).default(10000),\n sortOrder: z.number().int().default(0),\n});\n\nexport const loyaltyTierUpdateInput = loyaltyTierCreateInput.omit({ programId: true }).partial();\n\nexport const loyaltyEarningRuleFormula = z.object({\n kind: z.enum([\"fixed\", \"per_cents\", \"custom\"]),\n value: z.number().int().min(0).optional(),\n divisor: z.number().int().min(1).optional(),\n});\n\nexport const loyaltyEarningRuleOutput = z.object({\n id: z.string().uuid(),\n programId: z.string().uuid(),\n name: z.string(),\n event: z.string(),\n validationRuleId: z.string().uuid().nullable(),\n formula: loyaltyEarningRuleFormula,\n active: z.enum([\"yes\", \"no\"]),\n});\n\nexport const loyaltyEarningRuleCreateInput = z.object({\n programId: z.string().uuid(),\n name: z.string().min(1).max(100),\n event: z.string().min(1).max(100),\n validationRuleId: z.string().uuid().optional(),\n formula: loyaltyEarningRuleFormula,\n active: z.enum([\"yes\", \"no\"]).optional(),\n});\n\nexport const loyaltyEarningRuleUpdateInput = loyaltyEarningRuleCreateInput\n .omit({ programId: true })\n .partial();\n\nexport const loyaltyRewardPayload = z.object({\n kind: z.enum([\"discount\", \"gift_card\", \"custom\"]),\n discount: z\n .object({\n type: z.enum([\"AMOUNT\", \"PERCENTAGE\"]),\n amount: z.number().int().min(0).optional(),\n percent: z.number().int().min(0).max(10000).optional(),\n maxDiscountAmount: z.number().int().min(0).optional(),\n })\n .optional(),\n creditCents: z.number().int().min(0).optional(),\n typeKey: z.string().optional(),\n payload: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const loyaltyRewardOutput = z.object({\n id: z.string().uuid(),\n programId: z.string().uuid(),\n name: z.string(),\n description: z.string().nullable(),\n cost: z.number().int(),\n payload: loyaltyRewardPayload,\n});\n\nexport const loyaltyRewardCreateInput = z.object({\n programId: z.string().uuid(),\n name: z.string().min(1).max(100),\n description: z.string().max(500).optional(),\n cost: z.number().int().min(1),\n payload: loyaltyRewardPayload,\n});\n\nexport const loyaltyRewardUpdateInput = loyaltyRewardCreateInput.omit({ programId: true }).partial();\n\nexport const loyaltyMemberOutput = z.object({\n id: z.string().uuid(),\n customerId: z.string().uuid(),\n programId: z.string().uuid(),\n balance: z.number().int(),\n lifetimePoints: z.number().int(),\n currentTierId: z.string().uuid().nullable(),\n enrolledAt: z.string().datetime(),\n});\n\nexport const loyaltyMemberEnrollInput = z.object({\n programId: z.string().uuid(),\n customerId: z.string().uuid(),\n});\n\nexport const loyaltyEarnInput = z.object({\n memberId: z.string().uuid(),\n basePoints: z.number().int().min(1),\n earningRuleId: z.string().uuid().optional(),\n eventId: z.string().optional(),\n note: z.string().max(500).optional(),\n expiresAt: z.string().datetime().optional(),\n applyMultiplier: z.boolean().optional(),\n});\n\nexport const loyaltyAdjustInput = z.object({\n memberId: z.string().uuid(),\n delta: z.number().int(),\n note: z.string().max(500).optional(),\n});\n\nexport const loyaltyRedeemInput = z.object({\n memberId: z.string().uuid(),\n rewardId: z.string().uuid(),\n note: z.string().max(500).optional(),\n});\n\nexport const loyaltyTransactionOutput = z.object({\n id: z.string().uuid(),\n memberId: z.string().uuid(),\n delta: z.number().int(),\n balanceAfter: z.number().int(),\n reason: z.enum([\"EARN\", \"REDEEM\", \"ADJUSTMENT\", \"EXPIRY\", \"ROLLBACK\"]),\n rewardId: z.string().uuid().nullable(),\n earningRuleId: z.string().uuid().nullable(),\n eventId: z.string().nullable(),\n note: z.string().nullable(),\n expiresAt: z.string().datetime().nullable(),\n expiredAt: z.string().datetime().nullable(),\n createdAt: z.string().datetime(),\n});\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport { mcpMeta } from \"../mcp.ts\";\nimport { paginatedOutput, paginationInput } from \"../schemas/pagination.ts\";\nimport {\n loyaltyAdjustInput,\n loyaltyEarnInput,\n loyaltyEarningRuleCreateInput,\n loyaltyEarningRuleOutput,\n loyaltyEarningRuleUpdateInput,\n loyaltyMemberEnrollInput,\n loyaltyMemberOutput,\n loyaltyProgramCreateInput,\n loyaltyProgramOutput,\n loyaltyProgramUpdateInput,\n loyaltyRedeemInput,\n loyaltyRewardCreateInput,\n loyaltyRewardOutput,\n loyaltyRewardPayload,\n loyaltyRewardUpdateInput,\n loyaltyTierCreateInput,\n loyaltyTierOutput,\n loyaltyTierUpdateInput,\n loyaltyTransactionOutput,\n} from \"../schemas/loyalty.ts\";\n\nconst programs = {\n list: oc\n .route({ method: \"GET\", path: \"/loyalty/programs\", summary: \"List loyalty programs\" })\n .input(paginationInput)\n .output(paginatedOutput(loyaltyProgramOutput)),\n get: oc\n .route({ method: \"GET\", path: \"/loyalty/programs/{id}\", summary: \"Get loyalty program\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(loyaltyProgramOutput),\n create: oc\n .route({ method: \"POST\", path: \"/loyalty/programs\", summary: \"Create loyalty program\" })\n .input(loyaltyProgramCreateInput)\n .output(loyaltyProgramOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/loyalty/programs/{id}\", summary: \"Update loyalty program\" })\n .input(z.object({ id: z.string().uuid(), patch: loyaltyProgramUpdateInput }))\n .output(loyaltyProgramOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/loyalty/programs/{id}\", summary: \"Soft-delete program\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n};\n\nconst tiers = {\n list: oc\n .route({ method: \"GET\", path: \"/loyalty/programs/{programId}/tiers\", summary: \"List tiers\" })\n .input(z.object({ programId: z.string().uuid() }))\n .output(z.object({ data: z.array(loyaltyTierOutput) })),\n create: oc\n .route({ method: \"POST\", path: \"/loyalty/tiers\", summary: \"Create tier\" })\n .input(loyaltyTierCreateInput)\n .output(loyaltyTierOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/loyalty/tiers/{id}\", summary: \"Update tier\" })\n .input(z.object({ id: z.string().uuid(), patch: loyaltyTierUpdateInput }))\n .output(loyaltyTierOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/loyalty/tiers/{id}\", summary: \"Delete tier\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n};\n\nconst earningRules = {\n list: oc\n .route({\n method: \"GET\",\n path: \"/loyalty/programs/{programId}/earning-rules\",\n summary: \"List earning rules\",\n })\n .input(z.object({ programId: z.string().uuid() }))\n .output(z.object({ data: z.array(loyaltyEarningRuleOutput) })),\n create: oc\n .route({ method: \"POST\", path: \"/loyalty/earning-rules\", summary: \"Create earning rule\" })\n .input(loyaltyEarningRuleCreateInput)\n .output(loyaltyEarningRuleOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/loyalty/earning-rules/{id}\", summary: \"Update earning rule\" })\n .input(z.object({ id: z.string().uuid(), patch: loyaltyEarningRuleUpdateInput }))\n .output(loyaltyEarningRuleOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/loyalty/earning-rules/{id}\", summary: \"Delete earning rule\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n};\n\nconst rewards = {\n list: oc\n .route({\n method: \"GET\",\n path: \"/loyalty/programs/{programId}/rewards\",\n summary: \"List rewards\",\n })\n .input(z.object({ programId: z.string().uuid() }))\n .output(z.object({ data: z.array(loyaltyRewardOutput) })),\n create: oc\n .route({ method: \"POST\", path: \"/loyalty/rewards\", summary: \"Create reward\" })\n .input(loyaltyRewardCreateInput)\n .output(loyaltyRewardOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/loyalty/rewards/{id}\", summary: \"Update reward\" })\n .input(z.object({ id: z.string().uuid(), patch: loyaltyRewardUpdateInput }))\n .output(loyaltyRewardOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/loyalty/rewards/{id}\", summary: \"Soft-delete reward\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n};\n\nconst members = {\n list: oc\n .route({\n method: \"GET\",\n path: \"/loyalty/programs/{programId}/members\",\n summary: \"List members of a program\",\n })\n .input(paginationInput.extend({ programId: z.string().uuid() }))\n .output(paginatedOutput(loyaltyMemberOutput)),\n get: oc\n .route({ method: \"GET\", path: \"/loyalty/members/{id}\", summary: \"Get member\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(loyaltyMemberOutput),\n enroll: oc\n .route({ method: \"POST\", path: \"/loyalty/members\", summary: \"Enroll a customer\" })\n .input(loyaltyMemberEnrollInput)\n .output(loyaltyMemberOutput),\n earn: oc\n .route({ method: \"POST\", path: \"/loyalty/members/earn\", summary: \"Earn points\" })\n .input(loyaltyEarnInput)\n .output(\n z.object({\n ok: z.boolean(),\n transactionId: z.string().uuid().optional(),\n delta: z.number().int().optional(),\n balance: z.number().int().optional(),\n lifetimePoints: z.number().int().optional(),\n tierId: z.string().uuid().nullable().optional(),\n code: z.string().optional(),\n message: z.string().optional(),\n }),\n ),\n adjust: oc\n .route({ method: \"POST\", path: \"/loyalty/members/adjust\", summary: \"Manual adjustment\" })\n .input(loyaltyAdjustInput)\n .output(\n z.object({\n ok: z.boolean(),\n transactionId: z.string().uuid().optional(),\n balance: z.number().int().optional(),\n code: z.string().optional(),\n message: z.string().optional(),\n }),\n ),\n redeem: oc\n .route({ method: \"POST\", path: \"/loyalty/members/redeem\", summary: \"Redeem a reward\" })\n .input(loyaltyRedeemInput)\n .output(\n z.object({\n ok: z.boolean(),\n transactionId: z.string().uuid().optional(),\n rewardId: z.string().uuid().optional(),\n cost: z.number().int().optional(),\n balance: z.number().int().optional(),\n payload: loyaltyRewardPayload.optional(),\n code: z.string().optional(),\n message: z.string().optional(),\n }),\n ),\n history: oc\n .meta(\n mcpMeta({\n expose: true,\n riskLevel: \"safe\",\n description: \"List a loyalty member's transaction history (earn / redeem / adjust / expiry).\",\n }),\n )\n .route({\n method: \"GET\",\n path: \"/loyalty/members/{id}/transactions\",\n summary: \"Member transaction ledger\",\n })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ data: z.array(loyaltyTransactionOutput) })),\n};\n\nexport const loyalty = {\n programs,\n tiers,\n earningRules,\n rewards,\n members,\n};\n","import { z } from \"zod\";\n\nexport const referralReward = z.object({\n kind: z.enum([\"discount\", \"gift_card\", \"loyalty_points\", \"custom\"]),\n discount: z\n .object({\n type: z.enum([\"AMOUNT\", \"PERCENTAGE\"]),\n amount: z.number().int().min(0).optional(),\n percent: z.number().int().min(0).max(10000).optional(),\n maxDiscountAmount: z.number().int().min(0).optional(),\n })\n .optional(),\n creditCents: z.number().int().min(0).optional(),\n loyaltyProgramId: z.string().uuid().optional(),\n loyaltyPoints: z.number().int().min(0).optional(),\n typeKey: z.string().optional(),\n payload: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const referralProgramOutput = z.object({\n id: z.string().uuid(),\n campaignId: z.string().uuid(),\n referrerReward: referralReward,\n refereeReward: referralReward,\n codeLength: z.number().int(),\n metadata: z.record(z.string(), z.unknown()),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const referralProgramCreateInput = z.object({\n campaignId: z.string().uuid(),\n referrerReward: referralReward,\n refereeReward: referralReward,\n codeLength: z.number().int().min(4).max(32).optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const referralProgramUpdateInput = referralProgramCreateInput\n .omit({ campaignId: true })\n .partial();\n\nexport const referralOutcome = z.object({\n kind: z.enum([\"discount\", \"gift_card\", \"loyalty_points\", \"custom\"]),\n voucherCode: z.string().optional(),\n loyaltyTransactionId: z.string().uuid().optional(),\n payload: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const referralCodeOutput = z.object({\n id: z.string().uuid(),\n programId: z.string().uuid(),\n referrerCustomerId: z.string().uuid(),\n code: z.string(),\n metadata: z.record(z.string(), z.unknown()),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const referralConversionStatus = z.enum([\"converted\", \"rejected\"]);\n\nexport const referralConversionOutput = z.object({\n id: z.string().uuid(),\n codeId: z.string().uuid(),\n refereeCustomerId: z.string().uuid(),\n status: referralConversionStatus,\n convertedAt: z.string().datetime(),\n conversionEventId: z.string().nullable(),\n referrerOutcome: referralOutcome,\n refereeOutcome: referralOutcome,\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const referralIssueInput = z.object({\n programId: z.string().uuid(),\n referrerCustomerId: z.string().uuid(),\n prefix: z.string().min(1).max(12).optional(),\n});\n\nexport const referralConvertInput = z.object({\n code: z.string().min(1),\n refereeCustomerId: z.string().uuid(),\n conversionEventId: z.string().optional(),\n});\n\nexport const referralIssueOutput = z.object({\n ok: z.boolean(),\n codeId: z.string().uuid().optional(),\n code: z.string().optional(),\n errorCode: z.string().optional(),\n message: z.string().optional(),\n});\n\nexport const referralConvertOutput = z.object({\n ok: z.boolean(),\n conversionId: z.string().uuid().optional(),\n codeId: z.string().uuid().optional(),\n code: z.string().optional(),\n referrerCustomerId: z.string().uuid().optional(),\n refereeCustomerId: z.string().uuid().optional(),\n referrerReward: referralOutcome.optional(),\n refereeReward: referralOutcome.optional(),\n idempotent: z.boolean().optional(),\n errorCode: z.string().optional(),\n message: z.string().optional(),\n});\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport { paginatedOutput, paginationInput } from \"../schemas/pagination.ts\";\nimport {\n referralCodeOutput,\n referralConversionOutput,\n referralConvertInput,\n referralConvertOutput,\n referralIssueInput,\n referralIssueOutput,\n referralProgramCreateInput,\n referralProgramOutput,\n referralProgramUpdateInput,\n} from \"../schemas/referral.ts\";\n\nconst programs = {\n list: oc\n .route({\n method: \"GET\",\n path: \"/referral-programs\",\n summary: \"List referral programs\",\n })\n .input(paginationInput)\n .output(paginatedOutput(referralProgramOutput)),\n get: oc\n .route({\n method: \"GET\",\n path: \"/referral-programs/{id}\",\n summary: \"Get referral program\",\n })\n .input(z.object({ id: z.string().uuid() }))\n .output(referralProgramOutput),\n create: oc\n .route({\n method: \"POST\",\n path: \"/referral-programs\",\n summary: \"Create referral program\",\n })\n .input(referralProgramCreateInput)\n .output(referralProgramOutput),\n update: oc\n .route({\n method: \"PATCH\",\n path: \"/referral-programs/{id}\",\n summary: \"Update referral program\",\n })\n .input(z.object({ id: z.string().uuid(), patch: referralProgramUpdateInput }))\n .output(referralProgramOutput),\n delete: oc\n .route({\n method: \"DELETE\",\n path: \"/referral-programs/{id}\",\n summary: \"Soft-delete referral program\",\n })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n};\n\nexport const referrals = {\n programs,\n listCodes: oc\n .route({\n method: \"GET\",\n path: \"/referral-programs/{programId}/codes\",\n summary: \"List referral codes in a program\",\n })\n .input(paginationInput.extend({ programId: z.string().uuid() }))\n .output(paginatedOutput(referralCodeOutput)),\n listConversions: oc\n .route({\n method: \"GET\",\n path: \"/referral-codes/{codeId}/conversions\",\n summary: \"List conversions for a referral code\",\n })\n .input(paginationInput.extend({ codeId: z.string().uuid() }))\n .output(paginatedOutput(referralConversionOutput)),\n getByCode: oc\n .route({\n method: \"GET\",\n path: \"/referrals/{code}\",\n summary: \"Look up a referral code\",\n })\n .input(z.object({ code: z.string() }))\n .output(referralCodeOutput),\n issue: oc\n .route({\n method: \"POST\",\n path: \"/referrals/issue\",\n summary: \"Issue (or fetch) a referral code for a customer\",\n })\n .input(referralIssueInput)\n .output(referralIssueOutput),\n convert: oc\n .route({\n method: \"POST\",\n path: \"/referrals/convert\",\n summary: \"Convert a referral and issue both rewards\",\n })\n .input(referralConvertInput)\n .output(referralConvertOutput),\n};\n","import { z } from \"zod\";\n\nexport const rewardTypeOutput = z.object({\n id: z.string().uuid(),\n key: z.string(),\n name: z.string(),\n description: z.string().nullable(),\n payloadSchema: z.record(z.string(), z.unknown()),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const rewardTypeCreateInput = z.object({\n key: z\n .string()\n .min(2)\n .max(50)\n .regex(/^[A-Z][A-Z0-9_]*$/, \"Use SCREAMING_SNAKE_CASE: e.g. FREE_SHIPPING\"),\n name: z.string().min(1).max(100),\n description: z.string().max(500).optional(),\n payloadSchema: z.record(z.string(), z.unknown()),\n});\n\nexport const rewardTypeUpdateInput = rewardTypeCreateInput.omit({ key: true }).partial();\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport { paginatedOutput, paginationInput } from \"../schemas/pagination.ts\";\nimport {\n rewardTypeCreateInput,\n rewardTypeOutput,\n rewardTypeUpdateInput,\n} from \"../schemas/reward-type.ts\";\n\nexport const rewardTypes = {\n list: oc\n .route({ method: \"GET\", path: \"/reward-types\", summary: \"List reward types\" })\n .input(paginationInput.extend({ search: z.string().optional() }))\n .output(paginatedOutput(rewardTypeOutput)),\n get: oc\n .route({ method: \"GET\", path: \"/reward-types/{id}\", summary: \"Get reward type\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(rewardTypeOutput),\n create: oc\n .route({ method: \"POST\", path: \"/reward-types\", summary: \"Create reward type\" })\n .input(rewardTypeCreateInput)\n .output(rewardTypeOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/reward-types/{id}\", summary: \"Update reward type\" })\n .input(z.object({ id: z.string().uuid(), patch: rewardTypeUpdateInput }))\n .output(rewardTypeOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/reward-types/{id}\", summary: \"Soft-delete reward type\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n};\n","import { z } from \"zod\";\n\n// JSON Logic rules are deeply recursive; the contract treats them as an\n// opaque object validated only as \"valid JSON\". The rules engine performs\n// runtime validation when evaluating.\nexport const segmentRule = z.record(z.string(), z.unknown());\n\nexport const segmentOutput = z.object({\n id: z.string().uuid(),\n name: z.string(),\n description: z.string().nullable(),\n rule: segmentRule,\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const segmentCreateInput = z.object({\n name: z.string().min(1).max(100),\n description: z.string().max(500).optional(),\n rule: segmentRule,\n});\n\nexport const segmentUpdateInput = segmentCreateInput.partial();\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport { mcpMeta } from \"../mcp.ts\";\nimport { customerOutput } from \"../schemas/customer.ts\";\nimport { paginatedOutput, paginationInput } from \"../schemas/pagination.ts\";\nimport {\n segmentCreateInput,\n segmentOutput,\n segmentRule,\n segmentUpdateInput,\n} from \"../schemas/segment.ts\";\n\nexport const segments = {\n list: oc\n .route({ method: \"GET\", path: \"/segments\", summary: \"List segments\" })\n .input(paginationInput.extend({ search: z.string().optional() }))\n .output(paginatedOutput(segmentOutput)),\n get: oc\n .route({ method: \"GET\", path: \"/segments/{id}\", summary: \"Get segment\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(segmentOutput),\n create: oc\n .route({ method: \"POST\", path: \"/segments\", summary: \"Create segment\" })\n .input(segmentCreateInput)\n .output(segmentOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/segments/{id}\", summary: \"Update segment\" })\n .input(z.object({ id: z.string().uuid(), patch: segmentUpdateInput }))\n .output(segmentOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/segments/{id}\", summary: \"Soft-delete segment\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n preview: oc\n .meta(\n mcpMeta({\n expose: true,\n riskLevel: \"safe\",\n description:\n \"Run a JSON Logic rule against existing customers and report match count plus a sample.\",\n }),\n )\n .route({ method: \"POST\", path: \"/segments/preview\", summary: \"Preview rule against customers\" })\n .input(z.object({ rule: segmentRule, sampleSize: z.number().int().min(1).max(50).default(10) }))\n .output(\n z.object({\n matchedCount: z.number().int().nonnegative(),\n sample: z.array(customerOutput),\n }),\n ),\n};\n","import { z } from \"zod\";\n\nexport const validationRuleAppliesTo = z.enum([\"voucher\", \"promotion\", \"earn\", \"reward\"]);\n\nexport const validationRuleOutput = z.object({\n id: z.string().uuid(),\n name: z.string(),\n description: z.string().nullable(),\n rule: z.record(z.string(), z.unknown()),\n appliesTo: validationRuleAppliesTo,\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const validationRuleCreateInput = z.object({\n name: z.string().min(1).max(100),\n description: z.string().max(500).optional(),\n rule: z.record(z.string(), z.unknown()),\n appliesTo: validationRuleAppliesTo.optional(),\n});\n\nexport const validationRuleUpdateInput = validationRuleCreateInput.partial();\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport { paginatedOutput, paginationInput } from \"../schemas/pagination.ts\";\nimport {\n validationRuleCreateInput,\n validationRuleOutput,\n validationRuleUpdateInput,\n} from \"../schemas/validation-rule.ts\";\n\nexport const validationRules = {\n list: oc\n .route({ method: \"GET\", path: \"/validation-rules\", summary: \"List validation rules\" })\n .input(paginationInput.extend({ search: z.string().optional() }))\n .output(paginatedOutput(validationRuleOutput)),\n get: oc\n .route({ method: \"GET\", path: \"/validation-rules/{id}\", summary: \"Get validation rule\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(validationRuleOutput),\n create: oc\n .route({ method: \"POST\", path: \"/validation-rules\", summary: \"Create validation rule\" })\n .input(validationRuleCreateInput)\n .output(validationRuleOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/validation-rules/{id}\", summary: \"Update validation rule\" })\n .input(z.object({ id: z.string().uuid(), patch: validationRuleUpdateInput }))\n .output(validationRuleOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/validation-rules/{id}\", summary: \"Soft-delete validation rule\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n};\n","import { z } from \"zod\";\n\nexport const voucherType = z.enum([\"DISCOUNT\", \"GIFT_CARD\"]);\n\nexport const voucherDiscount = z.object({\n type: z.enum([\"AMOUNT\", \"PERCENTAGE\"]),\n amount: z.number().int().min(0).optional(),\n percent: z.number().int().min(0).max(10000).optional(),\n maxDiscountAmount: z.number().int().min(0).optional(),\n appliesTo: z\n .object({\n productIds: z.array(z.string()).optional(),\n collectionIds: z.array(z.string()).optional(),\n })\n .optional(),\n});\n\nexport const customReward = z.object({\n typeKey: z.string().min(1),\n payload: z.record(z.string(), z.unknown()),\n});\n\nexport const voucherOutput = z.object({\n id: z.string().uuid(),\n code: z.string(),\n campaignId: z.string().uuid().nullable(),\n type: voucherType,\n discount: voucherDiscount.nullable(),\n customRewards: z.array(customReward),\n giftBalance: z.number().int().nullable(),\n redemptionLimit: z.number().int().nullable(),\n redemptionCount: z.number().int(),\n priority: z.number().int(),\n exclusive: z.boolean(),\n active: z.boolean(),\n startDate: z.string().datetime().nullable(),\n endDate: z.string().datetime().nullable(),\n customerId: z.string().uuid().nullable(),\n metadata: z.record(z.string(), z.unknown()),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const voucherCreateInput = z.object({\n code: z.string().min(1).optional(),\n campaignId: z.string().uuid().optional(),\n type: voucherType,\n discount: voucherDiscount.optional(),\n customRewards: z.array(customReward).optional(),\n giftBalance: z.number().int().min(0).optional(),\n redemptionLimit: z.number().int().min(1).optional(),\n priority: z.number().int().optional(),\n exclusive: z.boolean().optional(),\n startDate: z.string().datetime().optional(),\n endDate: z.string().datetime().optional(),\n customerId: z.string().uuid().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const voucherUpdateInput = voucherCreateInput.omit({ type: true, code: true }).partial().extend({\n active: z.boolean().optional(),\n});\n\nexport const voucherBulkCreateInput = z.object({\n campaignId: z.string().uuid(),\n count: z.number().int().min(1).max(100_000),\n});\n","import { z } from \"zod\";\n\nexport const orderItem = z.object({\n productId: z.string(),\n collectionId: z.string().optional(),\n quantity: z.number().int().min(1),\n unitPrice: z.number().int().min(0),\n});\n\nexport const orderInput = z.object({\n amount: z.number().int().min(0),\n currency: z.string().length(3),\n items: z.array(orderItem).optional(),\n});\n\nexport const validateInput = z.object({\n code: z.string().min(1),\n customerId: z.string().uuid().optional(),\n order: orderInput.optional(),\n});\n\nexport const redeemInput = validateInput.extend({\n /** uuid of an `order` row created via the orders API. */\n orderId: z.string().uuid().optional(),\n /** Free-form integrator order reference (Shopify id, etc). */\n externalOrderId: z.string().min(1).max(120).optional(),\n idempotencyKey: z.string().min(1).max(128).optional(),\n});\n\nexport const breakdownEntry = z.object({\n voucherId: z.string().uuid(),\n code: z.string(),\n amount: z.number().int(),\n type: z.enum([\"AMOUNT\", \"PERCENTAGE\"]).optional(),\n reason: z.enum([\"exclusivity_lost\", \"zero_after_running_total\"]).optional(),\n});\n\nexport const validateOutput = z.object({\n valid: z.boolean(),\n code: z.string().optional(),\n message: z.string().optional(),\n preview: z\n .object({\n amount: z.number().int(),\n finalOrder: z.object({ amount: z.number().int(), currency: z.string() }),\n breakdown: z.array(breakdownEntry),\n })\n .optional(),\n});\n\nexport const redeemOutput = z.object({\n ok: z.boolean(),\n redemptionId: z.string().uuid().optional(),\n amount: z.number().int().optional(),\n finalOrder: z.object({ amount: z.number().int(), currency: z.string() }).optional(),\n breakdown: z.array(breakdownEntry).optional(),\n idempotent: z.boolean().optional(),\n code: z.string().optional(),\n message: z.string().optional(),\n});\n\nexport const stackRedeemInput = z.object({\n codes: z.array(z.string().min(1)).min(1).max(20),\n customerId: z.string().uuid().optional(),\n orderId: z.string().uuid().optional(),\n externalOrderId: z.string().min(1).max(120).optional(),\n order: orderInput,\n idempotencyKey: z.string().min(1).max(128).optional(),\n});\n\nexport const stackEntry = z.object({\n voucherCode: z.string(),\n voucherId: z.string().uuid(),\n redemptionId: z.string().uuid(),\n amount: z.number().int(),\n});\n\nexport const stackRedeemOutput = z.object({\n ok: z.boolean(),\n batchId: z.string().uuid().optional(),\n amount: z.number().int().optional(),\n finalOrder: z.object({ amount: z.number().int(), currency: z.string() }).optional(),\n breakdown: z.array(breakdownEntry).optional(),\n entries: z.array(stackEntry).optional(),\n idempotent: z.boolean().optional(),\n code: z.string().optional(),\n message: z.string().optional(),\n});\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport { mcpMeta } from \"../mcp.ts\";\nimport { paginatedOutput, paginationInput } from \"../schemas/pagination.ts\";\nimport {\n voucherBulkCreateInput,\n voucherCreateInput,\n voucherOutput,\n voucherUpdateInput,\n} from \"../schemas/voucher.ts\";\nimport {\n redeemInput,\n redeemOutput,\n stackRedeemInput,\n stackRedeemOutput,\n validateInput,\n validateOutput,\n} from \"../schemas/redemption.ts\";\n\nexport const vouchers = {\n list: oc\n .meta(mcpMeta({ expose: true, riskLevel: \"safe\" }))\n .route({ method: \"GET\", path: \"/vouchers\", summary: \"List vouchers\" })\n .input(\n paginationInput.extend({\n search: z.string().optional(),\n campaignId: z.string().uuid().optional(),\n active: z.boolean().optional(),\n customerId: z.string().uuid().optional(),\n }),\n )\n .output(paginatedOutput(voucherOutput)),\n get: oc\n .meta(mcpMeta({ expose: true, riskLevel: \"safe\" }))\n .route({ method: \"GET\", path: \"/vouchers/{code}\", summary: \"Get voucher by code\" })\n .input(z.object({ code: z.string() }))\n .output(voucherOutput),\n create: oc\n .route({ method: \"POST\", path: \"/vouchers\", summary: \"Create voucher\" })\n .input(voucherCreateInput)\n .output(voucherOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/vouchers/{code}\", summary: \"Update voucher\" })\n .input(z.object({ code: z.string(), patch: voucherUpdateInput }))\n .output(voucherOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/vouchers/{code}\", summary: \"Soft-delete voucher\" })\n .input(z.object({ code: z.string() }))\n .output(z.object({ ok: z.literal(true) })),\n bulk: oc\n .route({ method: \"POST\", path: \"/vouchers/bulk\", summary: \"Generate vouchers in bulk\" })\n .input(voucherBulkCreateInput)\n .output(\n z.object({\n campaignId: z.string().uuid(),\n // Number generated synchronously; 0 when the work was queued.\n generated: z.number().int(),\n // Set when count exceeds the inline threshold and the job is queued.\n jobId: z.string().uuid().optional(),\n }),\n ),\n\n // Hot path\n validate: oc\n .meta(mcpMeta({ expose: true, riskLevel: \"safe\" }))\n .route({\n method: \"POST\",\n path: \"/vouchers/{code}/validate\",\n summary: \"Validate a voucher against an optional order context\",\n })\n .input(validateInput)\n .output(validateOutput),\n redeem: oc\n .meta(\n mcpMeta({\n expose: true,\n riskLevel: \"mutating\",\n description:\n \"Commit a redemption against an order. Confirm with the user before calling. Use idempotencyKey to safely retry.\",\n }),\n )\n .route({\n method: \"POST\",\n path: \"/vouchers/{code}/redemption\",\n summary: \"Redeem a voucher\",\n })\n .input(redeemInput)\n .output(redeemOutput),\n\n stackRedeem: oc\n .meta(\n mcpMeta({\n expose: true,\n riskLevel: \"mutating\",\n description:\n \"Apply N codes to one order atomically. Either every voucher commits or none. Confirm with the user before calling.\",\n }),\n )\n .route({\n method: \"POST\",\n path: \"/redemptions/stack\",\n summary: \"Redeem multiple vouchers against one order in a single transaction\",\n })\n .input(stackRedeemInput)\n .output(stackRedeemOutput),\n\n transactions: oc\n .route({\n method: \"GET\",\n path: \"/vouchers/{code}/transactions\",\n summary: \"Gift card balance ledger\",\n })\n .input(z.object({ code: z.string() }))\n .output(\n z.object({\n data: z.array(\n z.object({\n id: z.string().uuid(),\n redemptionId: z.string().uuid().nullable(),\n delta: z.number().int(),\n balanceAfter: z.number().int(),\n reason: z.enum([\"CREDIT\", \"REDEMPTION\", \"ROLLBACK\", \"ADJUSTMENT\"]),\n createdAt: z.string().datetime(),\n }),\n ),\n }),\n ),\n};\n","import { z } from \"zod\";\n\nexport const webhookOutput = z.object({\n id: z.string().uuid(),\n name: z.string(),\n url: z.string().url(),\n secretPrefix: z.string(),\n events: z.array(z.string()),\n active: z.boolean(),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const webhookCreateInput = z.object({\n name: z.string().min(1).max(100),\n url: z.string().url(),\n events: z.array(z.string()).min(1).default([\"*\"]),\n active: z.boolean().default(true),\n});\n\nexport const webhookCreateOutput = webhookOutput.extend({\n /** Plaintext signing secret. Shown once. */\n secret: z.string(),\n});\n\nexport const webhookUpdateInput = z.object({\n name: z.string().min(1).max(100).optional(),\n url: z.string().url().optional(),\n events: z.array(z.string()).optional(),\n active: z.boolean().optional(),\n});\n\nexport const webhookDeliveryOutput = z.object({\n id: z.string().uuid(),\n webhookId: z.string().uuid(),\n eventId: z.string().uuid(),\n eventType: z.string(),\n status: z.enum([\"pending\", \"succeeded\", \"failed\", \"dead\"]),\n attempts: z.number().int(),\n responseStatus: z.number().int().nullable(),\n responseBody: z.string().nullable(),\n error: z.string().nullable(),\n nextRetryAt: z.string().datetime().nullable(),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const eventOutput = z.object({\n id: z.string().uuid(),\n type: z.string(),\n payload: z.record(z.string(), z.unknown()),\n entityId: z.string().nullable(),\n createdAt: z.string().datetime(),\n});\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport { paginatedOutput, paginationInput } from \"../schemas/pagination.ts\";\nimport {\n eventOutput,\n webhookCreateInput,\n webhookCreateOutput,\n webhookDeliveryOutput,\n webhookOutput,\n webhookUpdateInput,\n} from \"../schemas/webhook.ts\";\n\nexport const webhooks = {\n list: oc\n .route({ method: \"GET\", path: \"/webhooks\", summary: \"List webhooks\" })\n .output(z.object({ data: z.array(webhookOutput) })),\n get: oc\n .route({ method: \"GET\", path: \"/webhooks/{id}\", summary: \"Get webhook\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(webhookOutput),\n create: oc\n .route({ method: \"POST\", path: \"/webhooks\", summary: \"Create webhook\" })\n .input(webhookCreateInput)\n .output(webhookCreateOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/webhooks/{id}\", summary: \"Update webhook\" })\n .input(z.object({ id: z.string().uuid(), patch: webhookUpdateInput }))\n .output(webhookOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/webhooks/{id}\", summary: \"Soft-delete webhook\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n deliveries: oc\n .route({\n method: \"GET\",\n path: \"/webhooks/{id}/deliveries\",\n summary: \"Recent deliveries for a webhook\",\n })\n .input(z.object({ id: z.string().uuid(), limit: z.number().int().min(1).max(100).default(50) }))\n .output(z.object({ data: z.array(webhookDeliveryOutput) })),\n replay: oc\n .route({\n method: \"POST\",\n path: \"/webhooks/deliveries/{id}/replay\",\n summary: \"Re-enqueue a delivery (succeeded or otherwise)\",\n })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n};\n\nexport const events = {\n list: oc\n .route({ method: \"GET\", path: \"/events\", summary: \"List events\" })\n .input(paginationInput.extend({ type: z.string().optional() }))\n .output(paginatedOutput(eventOutput)),\n get: oc\n .route({ method: \"GET\", path: \"/events/{id}\", summary: \"Get event\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(eventOutput),\n};\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\n\nconst counters = z.object({\n redemptionsToday: z.number().int(),\n redemptions7d: z.number().int(),\n redemptions30d: z.number().int(),\n});\n\nconst daily = z.array(z.object({ day: z.string(), total: z.number().int() }));\n\nconst topCampaigns = z.array(\n z.object({\n campaignId: z.string().uuid(),\n campaignName: z.string(),\n redemptions: z.number().int(),\n }),\n);\n\nconst failures = z.array(z.object({ reason: z.string(), total: z.number().int() }));\n\nconst webhooks = z.array(\n z.object({\n status: z.enum([\"pending\", \"succeeded\", \"failed\", \"dead\"]),\n total: z.number().int(),\n }),\n);\n\nexport const insights = {\n summary: oc\n .route({\n method: \"GET\",\n path: \"/insights/summary\",\n summary: \"Headline metrics for the dashboard insights page\",\n })\n .output(\n z.object({\n sinceDays: z.number().int(),\n counters,\n daily,\n topCampaigns,\n failures,\n webhooks,\n }),\n ),\n};\n","import { z } from \"zod\";\n\nexport const userRole = z.enum([\"admin\", \"member\"]);\n\nexport const userOutput = z.object({\n id: z.string(),\n email: z.string().email(),\n name: z.string().nullable(),\n role: userRole,\n mustChangePassword: z.boolean(),\n disabledAt: z.string().datetime().nullable(),\n createdAt: z.string().datetime(),\n});\n\nexport const userCreateInput = z.object({\n email: z.string().email(),\n name: z.string().max(120).optional(),\n role: userRole.default(\"member\"),\n});\n\nexport const userCreateOutput = userOutput.extend({\n /** Generated password. Shown once at creation. */\n password: z.string(),\n});\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport {\n userCreateInput,\n userCreateOutput,\n userOutput,\n userRole,\n} from \"../schemas/user.ts\";\n\nexport const users = {\n list: oc\n .route({ method: \"GET\", path: \"/users\", summary: \"List staff users (admin)\" })\n .output(z.object({ data: z.array(userOutput) })),\n create: oc\n .route({ method: \"POST\", path: \"/users\", summary: \"Create staff user (admin)\" })\n .input(userCreateInput)\n .output(userCreateOutput),\n resetPassword: oc\n .route({\n method: \"POST\",\n path: \"/users/{id}/reset-password\",\n summary: \"Reset a staff user's password (admin)\",\n })\n .input(z.object({ id: z.string() }))\n .output(userCreateOutput),\n setRole: oc\n .route({\n method: \"PATCH\",\n path: \"/users/{id}/role\",\n summary: \"Change a staff user's role (admin)\",\n })\n .input(z.object({ id: z.string(), role: userRole }))\n .output(userOutput),\n disable: oc\n .route({\n method: \"POST\",\n path: \"/users/{id}/disable\",\n summary: \"Disable a staff user (admin)\",\n })\n .input(z.object({ id: z.string() }))\n .output(userOutput),\n enable: oc\n .route({\n method: \"POST\",\n path: \"/users/{id}/enable\",\n summary: \"Re-enable a staff user (admin)\",\n })\n .input(z.object({ id: z.string() }))\n .output(userOutput),\n};\n","import { z } from \"zod\";\n\nexport const orderStatus = z.enum([\"CREATED\", \"PAID\", \"CANCELED\", \"FULFILLED\"]);\n\nexport const orderItem = z.object({\n productId: z.string().optional(),\n sku: z.string().optional(),\n name: z.string().min(1),\n quantity: z.number().int().positive(),\n unitPrice: z.number().int().nonnegative(),\n});\n\nexport const orderOutput = z.object({\n id: z.string().uuid(),\n externalId: z.string().nullable(),\n customerId: z.string().uuid().nullable(),\n items: z.array(orderItem),\n amount: z.number().int(),\n discountAmount: z.number().int(),\n currency: z.string(),\n status: orderStatus,\n metadata: z.record(z.string(), z.unknown()),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const orderCreateInput = z.object({\n externalId: z.string().min(1).max(120).optional(),\n customerId: z.string().uuid().optional(),\n items: z.array(orderItem).min(1),\n amount: z.number().int().nonnegative(),\n discountAmount: z.number().int().nonnegative().optional(),\n currency: z.string().length(3),\n status: orderStatus.optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const orderUpdateInput = z.object({\n id: z.string().uuid(),\n patch: z.object({\n status: orderStatus.optional(),\n discountAmount: z.number().int().nonnegative().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n }),\n});\n\nexport const orderListInput = z.object({\n limit: z.number().int().min(1).max(100).default(20),\n cursor: z.string().optional(),\n customerId: z.string().uuid().optional(),\n status: orderStatus.optional(),\n search: z.string().optional(),\n});\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport { paginatedOutput } from \"../schemas/pagination.ts\";\nimport {\n orderCreateInput,\n orderListInput,\n orderOutput,\n orderUpdateInput,\n} from \"../schemas/order.ts\";\n\nexport const orders = {\n list: oc\n .route({ method: \"GET\", path: \"/orders\", summary: \"List orders\" })\n .input(orderListInput)\n .output(paginatedOutput(orderOutput)),\n get: oc\n .route({ method: \"GET\", path: \"/orders/{id}\", summary: \"Fetch one order\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(orderOutput),\n create: oc\n .route({ method: \"POST\", path: \"/orders\", summary: \"Create an order\" })\n .input(orderCreateInput)\n .output(orderOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/orders/{id}\", summary: \"Update an order\" })\n .input(orderUpdateInput)\n .output(orderOutput),\n cancel: oc\n .route({ method: \"POST\", path: \"/orders/{id}/cancel\", summary: \"Cancel an order\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(orderOutput),\n fulfill: oc\n .route({ method: \"POST\", path: \"/orders/{id}/fulfill\", summary: \"Mark order fulfilled\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(orderOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/orders/{id}\", summary: \"Soft-delete an order\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n redemptions: oc\n .route({\n method: \"GET\",\n path: \"/orders/{id}/redemptions\",\n summary: \"List redemptions attached to an order\",\n })\n .input(z.object({ id: z.string().uuid() }))\n .output(\n z.object({\n data: z.array(\n z.object({\n id: z.string().uuid(),\n voucherCode: z.string(),\n voucherId: z.string().uuid(),\n customerId: z.string().uuid().nullable(),\n result: z.enum([\"SUCCESS\", \"FAILURE\", \"ROLLBACK\"]),\n failureReason: z.string().nullable(),\n amount: z.number().int().nullable(),\n createdAt: z.string().datetime(),\n }),\n ),\n }),\n ),\n};\n","import { z } from \"zod\";\n\nexport const auditActor = z.enum([\"user\", \"api_key\", \"system\"]);\n\nexport const auditLogOutput = z.object({\n id: z.string().uuid(),\n actor: auditActor,\n actorId: z.string().nullable(),\n action: z.string(),\n entity: z.string(),\n entityId: z.string().nullable(),\n before: z.unknown().nullable(),\n after: z.unknown().nullable(),\n ip: z.string().nullable(),\n userAgent: z.string().nullable(),\n createdAt: z.string().datetime(),\n});\n\nexport const auditLogListInput = z.object({\n limit: z.number().int().min(1).max(100).default(50),\n cursor: z.string().optional(),\n actor: auditActor.optional(),\n entity: z.string().optional(),\n action: z.string().optional(),\n entityId: z.string().optional(),\n});\n","import { oc } from \"@orpc/contract\";\nimport { auditLogListInput, auditLogOutput } from \"../schemas/audit-log.ts\";\nimport { z } from \"zod\";\n\nexport const auditLog = {\n list: oc\n .route({ method: \"GET\", path: \"/audit-log\", summary: \"List audit log entries (admin)\" })\n .input(auditLogListInput)\n .output(z.object({ data: z.array(auditLogOutput), next: z.string().optional() })),\n};\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\n\nconst workspaceOutput = z.object({\n name: z.string(),\n defaultCurrency: z.string(),\n defaultTimezone: z.string(),\n emailProvider: z.enum([\"resend\", \"log\"]),\n updatedAt: z.string().datetime(),\n});\n\nconst workspaceUpdateInput = z.object({\n name: z.string().min(1).max(120).optional(),\n defaultCurrency: z.string().length(3).optional(),\n defaultTimezone: z.string().min(1).max(64).optional(),\n});\n\nexport const workspace = {\n get: oc\n .route({ method: \"GET\", path: \"/workspace\", summary: \"Workspace settings\" })\n .output(workspaceOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/workspace\", summary: \"Update workspace settings (admin)\" })\n .input(workspaceUpdateInput)\n .output(workspaceOutput),\n};\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport { apiKeys } from \"./routes/api-keys.ts\";\nimport { campaigns } from \"./routes/campaigns.ts\";\nimport { customers } from \"./routes/customers.ts\";\nimport { loyalty } from \"./routes/loyalty.ts\";\nimport { referrals } from \"./routes/referrals.ts\";\nimport { rewardTypes } from \"./routes/reward-types.ts\";\nimport { segments } from \"./routes/segments.ts\";\nimport { validationRules } from \"./routes/validation-rules.ts\";\nimport { vouchers } from \"./routes/vouchers.ts\";\nimport { events, webhooks } from \"./routes/webhooks.ts\";\nimport { insights } from \"./routes/insights.ts\";\nimport { users } from \"./routes/users.ts\";\nimport { orders } from \"./routes/orders.ts\";\nimport { auditLog } from \"./routes/audit-log.ts\";\nimport { workspace } from \"./routes/workspace.ts\";\n\nconst healthOutput = z.object({\n status: z.literal(\"ok\"),\n version: z.string(),\n});\n\nexport const contract = {\n health: oc\n .route({ method: \"GET\", path: \"/health\", summary: \"Liveness probe\" })\n .output(healthOutput),\n ready: oc\n .route({ method: \"GET\", path: \"/ready\", summary: \"Readiness probe (db + worker)\" })\n .output(\n z.object({\n status: z.enum([\"ok\", \"degraded\"]),\n checks: z.object({\n db: z.boolean(),\n worker: z.boolean(),\n }),\n }),\n ),\n customers,\n segments,\n campaigns,\n vouchers,\n validationRules,\n rewardTypes,\n loyalty,\n referrals,\n apiKeys,\n webhooks,\n events,\n insights,\n users,\n orders,\n auditLog,\n workspace,\n};\n\nexport type Contract = typeof contract;\n","import { createHmac, timingSafeEqual } from \"node:crypto\";\nimport { createORPCClient } from \"@orpc/client\";\nimport { OpenAPILink } from \"@orpc/openapi-client/fetch\";\nimport type { ContractRouterClient } from \"@orpc/contract\";\nimport { contract, type Contract } from \"@offerkit/contract\";\n\nexport interface SdkOptions {\n /** Base URL of the Offerkit deployment, e.g. https://offerkit.example.com */\n baseUrl: string;\n /** API key for programmatic access. Optional for browser callers using cookie auth. */\n apiKey?: string;\n /** Custom fetch implementation (e.g. node-fetch, undici, edge runtime). */\n fetch?: typeof fetch;\n}\n\nexport type Client = ContractRouterClient<Contract>;\n\nexport function createClient(options: SdkOptions): Client {\n const link = new OpenAPILink(contract, {\n url: `${options.baseUrl.replace(/\\/$/, \"\")}/api/v1`,\n headers: () => {\n const headers: Record<string, string> = {};\n if (options.apiKey) headers[\"Authorization\"] = `Bearer ${options.apiKey}`;\n return headers;\n },\n ...(options.fetch ? { fetch: options.fetch } : {}),\n });\n return createORPCClient(link) satisfies Client;\n}\n\nexport interface VerifyWebhookOptions {\n /** Reject signatures whose timestamp is older than this many seconds. Default 300. */\n toleranceSeconds?: number;\n /** Override the current time (millis). Tests only. */\n now?: number;\n}\n\n/**\n * Verify the X-Offerkit-Signature header against the raw request body.\n *\n * Format: `t=<unix-seconds>,v1=<hex>`. v1 = HMAC-SHA256(secret, \"${t}.${rawBody}\").\n * Returns true on match within the tolerance window.\n */\nexport function verifyWebhook(\n rawBody: string,\n signature: string,\n secret: string,\n options: VerifyWebhookOptions = {},\n): boolean {\n const tolerance = options.toleranceSeconds ?? 300;\n const now = options.now ?? Date.now();\n const parts: Record<string, string> = {};\n for (const segment of signature.split(\",\")) {\n const idx = segment.indexOf(\"=\");\n if (idx <= 0) continue;\n parts[segment.slice(0, idx)] = segment.slice(idx + 1);\n }\n const t = Number(parts[\"t\"]);\n const v1 = parts[\"v1\"];\n if (!Number.isFinite(t) || !v1) return false;\n if (Math.abs(now / 1000 - t) > tolerance) return false;\n const expected = createHmac(\"sha256\", secret).update(`${String(t)}.${rawBody}`).digest(\"hex\");\n if (expected.length !== v1.length) return false;\n return timingSafeEqual(Buffer.from(expected, \"hex\"), Buffer.from(v1, \"hex\"));\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["programs","orderItem","webhooks"],"sources":["../../contract/src/schemas/api-key.ts","../../contract/src/routes/api-keys.ts","../../contract/src/mcp.ts","../../contract/src/schemas/campaign.ts","../../contract/src/schemas/pagination.ts","../../contract/src/routes/campaigns.ts","../../contract/src/schemas/customer.ts","../../contract/src/routes/customers.ts","../../contract/src/schemas/loyalty.ts","../../contract/src/routes/loyalty.ts","../../contract/src/schemas/referral.ts","../../contract/src/routes/referrals.ts","../../contract/src/schemas/voucher.ts","../../contract/src/schemas/redemption.ts","../../contract/src/schemas/promotion.ts","../../contract/src/routes/promotions.ts","../../contract/src/schemas/reward-type.ts","../../contract/src/routes/reward-types.ts","../../contract/src/schemas/segment.ts","../../contract/src/routes/segments.ts","../../contract/src/schemas/validation-rule.ts","../../contract/src/routes/validation-rules.ts","../../contract/src/routes/vouchers.ts","../../contract/src/schemas/webhook.ts","../../contract/src/routes/webhooks.ts","../../contract/src/routes/insights.ts","../../contract/src/schemas/user.ts","../../contract/src/routes/users.ts","../../contract/src/schemas/order.ts","../../contract/src/routes/orders.ts","../../contract/src/schemas/audit-log.ts","../../contract/src/routes/audit-log.ts","../../contract/src/routes/workspace.ts","../../contract/src/router.ts","../src/index.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const apiKeyOutput = z.object({\n id: z.string(),\n name: z.string(),\n prefix: z.string(),\n scopes: z.array(z.string()),\n rateLimitRps: z.number().int(),\n lastUsedAt: z.string().datetime().nullable(),\n disabledAt: z.string().datetime().nullable(),\n createdAt: z.string().datetime(),\n});\n\nexport const apiKeyCreateInput = z.object({\n name: z.string().min(1).max(100),\n scopes: z.array(z.string()).optional(),\n rateLimitRps: z.number().int().min(1).max(10_000).optional(),\n});\n\nexport const apiKeyCreateOutput = apiKeyOutput.extend({\n /** The plaintext token. Shown once at creation; never returned again. */\n token: z.string(),\n});\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport {\n apiKeyCreateInput,\n apiKeyCreateOutput,\n apiKeyOutput,\n} from \"../schemas/api-key.ts\";\n\nexport const apiKeys = {\n list: oc\n .route({ method: \"GET\", path: \"/api-keys\", summary: \"List API keys\" })\n .output(z.object({ data: z.array(apiKeyOutput) })),\n create: oc\n .route({ method: \"POST\", path: \"/api-keys\", summary: \"Mint a new API key\" })\n .input(apiKeyCreateInput)\n .output(apiKeyCreateOutput),\n revoke: oc\n .route({\n method: \"DELETE\",\n path: \"/api-keys/{id}\",\n summary: \"Disable an API key (cannot be re-enabled)\",\n })\n .input(z.object({ id: z.string() }))\n .output(z.object({ ok: z.literal(true) })),\n};\n","// Declarative MCP-exposure metadata. Attach via `.meta(mcpMeta({...}))`\n// on a contract procedure to make it appear as a tool in the\n// @offerkit/mcp server. Metadata is read at server boot — new\n// procedures opt in (or stay hidden) by tagging this `mcp` field\n// without touching the MCP package.\n\nexport type McpRiskLevel = \"safe\" | \"mutating\" | \"destructive\";\n\nexport interface McpExposure {\n expose: true;\n /** Override for the MCP tool description. Falls back to procedure summary. */\n description?: string;\n /** Hint to the LLM host: `safe` is read-only, `mutating` writes state, `destructive` cannot be undone. */\n riskLevel: McpRiskLevel;\n /** Optional override for the MCP tool name. Defaults to the dotted procedure path with `_` separators. */\n name?: string;\n}\n\nexport interface ProcedureMeta {\n mcp?: McpExposure;\n}\n\n/**\n * Returns a `meta` object that attaches MCP exposure to a procedure.\n * Wrapping in a helper keeps the call sites typed and uniform.\n */\nexport function mcpMeta(meta: McpExposure): ProcedureMeta {\n return { mcp: meta };\n}\n","import { z } from \"zod\";\n\nexport const campaignType = z.enum([\n \"DISCOUNT\",\n \"GIFT_VOUCHERS\",\n \"LOYALTY_PROGRAM\",\n \"REFERRAL_PROGRAM\",\n \"PROMOTION\",\n]);\nexport const campaignStatus = z.enum([\"draft\", \"active\", \"paused\", \"ended\"]);\n\nexport const codeConfig = z.object({\n length: z.number().int().min(4).max(32).optional(),\n prefix: z.string().max(20).optional(),\n suffix: z.string().max(20).optional(),\n charset: z.enum([\"alphanumeric\", \"uppercase\", \"lowercase\", \"numeric\"]).optional(),\n excludeConfusable: z.boolean().optional(),\n});\n\nexport const campaignOutput = z.object({\n id: z.string().uuid(),\n name: z.string(),\n description: z.string().nullable(),\n type: campaignType,\n status: campaignStatus,\n currency: z.string().length(3),\n timezone: z.string(),\n startDate: z.string().datetime().nullable(),\n endDate: z.string().datetime().nullable(),\n codeConfig,\n validationRuleId: z.string().uuid().nullable(),\n autoApply: z.boolean(),\n voucherCount: z.number().int(),\n metadata: z.record(z.string(), z.unknown()),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const campaignCreateInput = z.object({\n name: z.string().min(1).max(100),\n description: z.string().max(500).optional(),\n type: campaignType,\n currency: z.string().length(3),\n timezone: z.string().optional(),\n startDate: z.string().datetime().optional(),\n endDate: z.string().datetime().optional(),\n codeConfig: codeConfig.optional(),\n validationRuleId: z.string().uuid().nullable().optional(),\n autoApply: z.boolean().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const campaignUpdateInput = campaignCreateInput.omit({ type: true }).partial().extend({\n status: campaignStatus.optional(),\n});\n","import { z } from \"zod\";\n\n// Accept either a number or a numeric string so REST query-string callers and\n// typed RPC callers share the same contract. Coercion happens here, not in the\n// route handlers.\nconst limit = z\n .union([z.number(), z.string().regex(/^\\d+$/)])\n .transform((v) => (typeof v === \"string\" ? Number.parseInt(v, 10) : v))\n .pipe(z.number().int().min(1).max(100))\n .default(20);\n\nexport const paginationInput = z.object({\n cursor: z.string().optional(),\n limit,\n});\n\nexport function paginatedOutput<T extends z.ZodTypeAny>(item: T) {\n return z.object({\n data: z.array(item),\n next: z.string().optional(),\n prev: z.string().optional(),\n });\n}\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport { mcpMeta } from \"../mcp.ts\";\nimport {\n campaignCreateInput,\n campaignOutput,\n campaignUpdateInput,\n} from \"../schemas/campaign.ts\";\nimport { paginatedOutput, paginationInput } from \"../schemas/pagination.ts\";\n\nexport const campaigns = {\n list: oc\n .meta(mcpMeta({ expose: true, riskLevel: \"safe\" }))\n .route({ method: \"GET\", path: \"/campaigns\", summary: \"List campaigns\" })\n .input(paginationInput.extend({ search: z.string().optional() }))\n .output(paginatedOutput(campaignOutput)),\n get: oc\n .meta(mcpMeta({ expose: true, riskLevel: \"safe\" }))\n .route({ method: \"GET\", path: \"/campaigns/{id}\", summary: \"Get campaign\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(campaignOutput),\n create: oc\n .route({ method: \"POST\", path: \"/campaigns\", summary: \"Create campaign\" })\n .input(campaignCreateInput)\n .output(campaignOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/campaigns/{id}\", summary: \"Update campaign\" })\n .input(z.object({ id: z.string().uuid(), patch: campaignUpdateInput }))\n .output(campaignOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/campaigns/{id}\", summary: \"Soft-delete campaign\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n};\n","import { z } from \"zod\";\n\nexport const customerAddress = z.object({\n line1: z.string().optional(),\n line2: z.string().optional(),\n city: z.string().optional(),\n state: z.string().optional(),\n postalCode: z.string().optional(),\n country: z.string().length(2).optional(),\n});\n\nexport const customerSummary = z.object({\n totalSpent: z.number().int().nonnegative().optional(),\n redemptionCount: z.number().int().nonnegative().optional(),\n lastRedeemedAt: z.string().datetime().optional(),\n});\n\nexport const customerOutput = z.object({\n id: z.string().uuid(),\n email: z.string().email().nullable(),\n name: z.string().nullable(),\n phone: z.string().nullable(),\n externalId: z.string().nullable(),\n address: customerAddress.nullable(),\n metadata: z.record(z.string(), z.unknown()),\n summary: customerSummary,\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const customerCreateInput = z.object({\n email: z.string().email().optional(),\n name: z.string().optional(),\n phone: z.string().optional(),\n externalId: z.string().min(1).max(256).optional(),\n address: customerAddress.optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const customerUpdateInput = customerCreateInput.partial();\n\n// Idempotent on externalId. If a live customer exists with this externalId,\n// fields are updated in place (omitted fields are left untouched). Otherwise\n// a new customer is created. `created` tells the caller which path was taken\n// so they can fire a \"new customer\" event downstream if needed.\nexport const customerUpsertInput = z.object({\n externalId: z.string().min(1).max(256),\n email: z.string().email().optional(),\n name: z.string().optional(),\n phone: z.string().optional(),\n address: customerAddress.optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const customerUpsertOutput = z.object({\n customer: customerOutput,\n created: z.boolean(),\n});\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport { mcpMeta } from \"../mcp.ts\";\nimport {\n customerCreateInput,\n customerOutput,\n customerUpdateInput,\n customerUpsertInput,\n customerUpsertOutput,\n} from \"../schemas/customer.ts\";\nimport { paginatedOutput, paginationInput } from \"../schemas/pagination.ts\";\n\nexport const customers = {\n list: oc\n .meta(mcpMeta({ expose: true, riskLevel: \"safe\" }))\n .route({ method: \"GET\", path: \"/customers\", summary: \"List customers\" })\n .input(paginationInput.extend({ search: z.string().optional() }))\n .output(paginatedOutput(customerOutput)),\n get: oc\n .meta(mcpMeta({ expose: true, riskLevel: \"safe\" }))\n .route({ method: \"GET\", path: \"/customers/{id}\", summary: \"Get customer\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(customerOutput),\n getByExternalId: oc\n .meta(mcpMeta({ expose: true, riskLevel: \"safe\" }))\n .route({\n method: \"GET\",\n path: \"/customers/by-external-id/{externalId}\",\n summary: \"Get a customer by integrator-supplied externalId\",\n })\n .input(z.object({ externalId: z.string().min(1).max(256) }))\n .output(customerOutput),\n create: oc\n .route({ method: \"POST\", path: \"/customers\", summary: \"Create customer\" })\n .input(customerCreateInput)\n .output(customerOutput),\n upsert: oc\n .route({\n method: \"PUT\",\n path: \"/customers/by-external-id\",\n summary: \"Create or update a customer keyed by externalId (idempotent)\",\n })\n .input(customerUpsertInput)\n .output(customerUpsertOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/customers/{id}\", summary: \"Update customer\" })\n .input(z.object({ id: z.string().uuid(), patch: customerUpdateInput }))\n .output(customerOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/customers/{id}\", summary: \"Soft-delete customer\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n};\n","import { z } from \"zod\";\n\nexport const loyaltyProgramOutput = z.object({\n id: z.string().uuid(),\n campaignId: z.string().uuid(),\n pointsExpiryDays: z.number().int().nullable(),\n metadata: z.record(z.string(), z.unknown()),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const loyaltyProgramCreateInput = z.object({\n campaignId: z.string().uuid(),\n pointsExpiryDays: z.number().int().min(1).optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const loyaltyProgramUpdateInput = z\n .object({\n pointsExpiryDays: z.number().int().min(1).nullable().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n })\n .partial();\n\nexport const loyaltyTierOutput = z.object({\n id: z.string().uuid(),\n programId: z.string().uuid(),\n name: z.string(),\n threshold: z.number().int(),\n earnMultiplier: z.number().int(),\n sortOrder: z.number().int(),\n});\n\nexport const loyaltyTierCreateInput = z.object({\n programId: z.string().uuid(),\n name: z.string().min(1).max(100),\n threshold: z.number().int().min(0),\n earnMultiplier: z.number().int().min(0).default(10000),\n sortOrder: z.number().int().default(0),\n});\n\nexport const loyaltyTierUpdateInput = loyaltyTierCreateInput.omit({ programId: true }).partial();\n\nexport const loyaltyEarningRuleFormula = z.object({\n kind: z.enum([\"fixed\", \"per_cents\", \"custom\"]),\n value: z.number().int().min(0).optional(),\n divisor: z.number().int().min(1).optional(),\n});\n\nexport const loyaltyEarningRuleOutput = z.object({\n id: z.string().uuid(),\n programId: z.string().uuid(),\n name: z.string(),\n event: z.string(),\n validationRuleId: z.string().uuid().nullable(),\n formula: loyaltyEarningRuleFormula,\n active: z.enum([\"yes\", \"no\"]),\n});\n\nexport const loyaltyEarningRuleCreateInput = z.object({\n programId: z.string().uuid(),\n name: z.string().min(1).max(100),\n event: z.string().min(1).max(100),\n validationRuleId: z.string().uuid().optional(),\n formula: loyaltyEarningRuleFormula,\n active: z.enum([\"yes\", \"no\"]).optional(),\n});\n\nexport const loyaltyEarningRuleUpdateInput = loyaltyEarningRuleCreateInput\n .omit({ programId: true })\n .partial();\n\nexport const loyaltyRewardPayload = z.object({\n kind: z.enum([\"discount\", \"gift_card\", \"custom\"]),\n discount: z\n .object({\n type: z.enum([\"AMOUNT\", \"PERCENTAGE\"]),\n amount: z.number().int().min(0).optional(),\n percent: z.number().int().min(0).max(10000).optional(),\n maxDiscountAmount: z.number().int().min(0).optional(),\n })\n .optional(),\n creditCents: z.number().int().min(0).optional(),\n typeKey: z.string().optional(),\n payload: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const loyaltyRewardOutput = z.object({\n id: z.string().uuid(),\n programId: z.string().uuid(),\n name: z.string(),\n description: z.string().nullable(),\n cost: z.number().int(),\n payload: loyaltyRewardPayload,\n});\n\nexport const loyaltyRewardCreateInput = z.object({\n programId: z.string().uuid(),\n name: z.string().min(1).max(100),\n description: z.string().max(500).optional(),\n cost: z.number().int().min(1),\n payload: loyaltyRewardPayload,\n});\n\nexport const loyaltyRewardUpdateInput = loyaltyRewardCreateInput.omit({ programId: true }).partial();\n\nexport const loyaltyMemberOutput = z.object({\n id: z.string().uuid(),\n customerId: z.string().uuid(),\n programId: z.string().uuid(),\n balance: z.number().int(),\n lifetimePoints: z.number().int(),\n currentTierId: z.string().uuid().nullable(),\n enrolledAt: z.string().datetime(),\n});\n\nexport const loyaltyMemberEnrollInput = z.object({\n programId: z.string().uuid(),\n customerId: z.string().uuid(),\n});\n\nexport const loyaltyEarnInput = z.object({\n memberId: z.string().uuid(),\n basePoints: z.number().int().min(1),\n earningRuleId: z.string().uuid().optional(),\n eventId: z.string().optional(),\n note: z.string().max(500).optional(),\n expiresAt: z.string().datetime().optional(),\n applyMultiplier: z.boolean().optional(),\n});\n\nexport const loyaltyAdjustInput = z.object({\n memberId: z.string().uuid(),\n delta: z.number().int(),\n note: z.string().max(500).optional(),\n});\n\nexport const loyaltyRedeemInput = z.object({\n memberId: z.string().uuid(),\n rewardId: z.string().uuid(),\n note: z.string().max(500).optional(),\n});\n\nexport const loyaltyTransactionOutput = z.object({\n id: z.string().uuid(),\n memberId: z.string().uuid(),\n delta: z.number().int(),\n balanceAfter: z.number().int(),\n reason: z.enum([\"EARN\", \"REDEEM\", \"ADJUSTMENT\", \"EXPIRY\", \"ROLLBACK\"]),\n rewardId: z.string().uuid().nullable(),\n earningRuleId: z.string().uuid().nullable(),\n eventId: z.string().nullable(),\n note: z.string().nullable(),\n expiresAt: z.string().datetime().nullable(),\n expiredAt: z.string().datetime().nullable(),\n createdAt: z.string().datetime(),\n});\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport { mcpMeta } from \"../mcp.ts\";\nimport { paginatedOutput, paginationInput } from \"../schemas/pagination.ts\";\nimport {\n loyaltyAdjustInput,\n loyaltyEarnInput,\n loyaltyEarningRuleCreateInput,\n loyaltyEarningRuleOutput,\n loyaltyEarningRuleUpdateInput,\n loyaltyMemberEnrollInput,\n loyaltyMemberOutput,\n loyaltyProgramCreateInput,\n loyaltyProgramOutput,\n loyaltyProgramUpdateInput,\n loyaltyRedeemInput,\n loyaltyRewardCreateInput,\n loyaltyRewardOutput,\n loyaltyRewardPayload,\n loyaltyRewardUpdateInput,\n loyaltyTierCreateInput,\n loyaltyTierOutput,\n loyaltyTierUpdateInput,\n loyaltyTransactionOutput,\n} from \"../schemas/loyalty.ts\";\n\nconst programs = {\n list: oc\n .route({ method: \"GET\", path: \"/loyalty/programs\", summary: \"List loyalty programs\" })\n .input(paginationInput)\n .output(paginatedOutput(loyaltyProgramOutput)),\n get: oc\n .route({ method: \"GET\", path: \"/loyalty/programs/{id}\", summary: \"Get loyalty program\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(loyaltyProgramOutput),\n create: oc\n .route({ method: \"POST\", path: \"/loyalty/programs\", summary: \"Create loyalty program\" })\n .input(loyaltyProgramCreateInput)\n .output(loyaltyProgramOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/loyalty/programs/{id}\", summary: \"Update loyalty program\" })\n .input(z.object({ id: z.string().uuid(), patch: loyaltyProgramUpdateInput }))\n .output(loyaltyProgramOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/loyalty/programs/{id}\", summary: \"Soft-delete program\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n};\n\nconst tiers = {\n list: oc\n .route({ method: \"GET\", path: \"/loyalty/programs/{programId}/tiers\", summary: \"List tiers\" })\n .input(z.object({ programId: z.string().uuid() }))\n .output(z.object({ data: z.array(loyaltyTierOutput) })),\n create: oc\n .route({ method: \"POST\", path: \"/loyalty/tiers\", summary: \"Create tier\" })\n .input(loyaltyTierCreateInput)\n .output(loyaltyTierOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/loyalty/tiers/{id}\", summary: \"Update tier\" })\n .input(z.object({ id: z.string().uuid(), patch: loyaltyTierUpdateInput }))\n .output(loyaltyTierOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/loyalty/tiers/{id}\", summary: \"Delete tier\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n};\n\nconst earningRules = {\n list: oc\n .route({\n method: \"GET\",\n path: \"/loyalty/programs/{programId}/earning-rules\",\n summary: \"List earning rules\",\n })\n .input(z.object({ programId: z.string().uuid() }))\n .output(z.object({ data: z.array(loyaltyEarningRuleOutput) })),\n create: oc\n .route({ method: \"POST\", path: \"/loyalty/earning-rules\", summary: \"Create earning rule\" })\n .input(loyaltyEarningRuleCreateInput)\n .output(loyaltyEarningRuleOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/loyalty/earning-rules/{id}\", summary: \"Update earning rule\" })\n .input(z.object({ id: z.string().uuid(), patch: loyaltyEarningRuleUpdateInput }))\n .output(loyaltyEarningRuleOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/loyalty/earning-rules/{id}\", summary: \"Delete earning rule\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n};\n\nconst rewards = {\n list: oc\n .route({\n method: \"GET\",\n path: \"/loyalty/programs/{programId}/rewards\",\n summary: \"List rewards\",\n })\n .input(z.object({ programId: z.string().uuid() }))\n .output(z.object({ data: z.array(loyaltyRewardOutput) })),\n create: oc\n .route({ method: \"POST\", path: \"/loyalty/rewards\", summary: \"Create reward\" })\n .input(loyaltyRewardCreateInput)\n .output(loyaltyRewardOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/loyalty/rewards/{id}\", summary: \"Update reward\" })\n .input(z.object({ id: z.string().uuid(), patch: loyaltyRewardUpdateInput }))\n .output(loyaltyRewardOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/loyalty/rewards/{id}\", summary: \"Soft-delete reward\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n};\n\nconst members = {\n list: oc\n .route({\n method: \"GET\",\n path: \"/loyalty/programs/{programId}/members\",\n summary: \"List members of a program\",\n })\n .input(paginationInput.extend({ programId: z.string().uuid() }))\n .output(paginatedOutput(loyaltyMemberOutput)),\n get: oc\n .route({ method: \"GET\", path: \"/loyalty/members/{id}\", summary: \"Get member\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(loyaltyMemberOutput),\n enroll: oc\n .route({ method: \"POST\", path: \"/loyalty/members\", summary: \"Enroll a customer\" })\n .input(loyaltyMemberEnrollInput)\n .output(loyaltyMemberOutput),\n earn: oc\n .route({ method: \"POST\", path: \"/loyalty/members/earn\", summary: \"Earn points\" })\n .input(loyaltyEarnInput)\n .output(\n z.object({\n ok: z.boolean(),\n transactionId: z.string().uuid().optional(),\n delta: z.number().int().optional(),\n balance: z.number().int().optional(),\n lifetimePoints: z.number().int().optional(),\n tierId: z.string().uuid().nullable().optional(),\n code: z.string().optional(),\n message: z.string().optional(),\n }),\n ),\n adjust: oc\n .route({ method: \"POST\", path: \"/loyalty/members/adjust\", summary: \"Manual adjustment\" })\n .input(loyaltyAdjustInput)\n .output(\n z.object({\n ok: z.boolean(),\n transactionId: z.string().uuid().optional(),\n balance: z.number().int().optional(),\n code: z.string().optional(),\n message: z.string().optional(),\n }),\n ),\n redeem: oc\n .route({ method: \"POST\", path: \"/loyalty/members/redeem\", summary: \"Redeem a reward\" })\n .input(loyaltyRedeemInput)\n .output(\n z.object({\n ok: z.boolean(),\n transactionId: z.string().uuid().optional(),\n rewardId: z.string().uuid().optional(),\n cost: z.number().int().optional(),\n balance: z.number().int().optional(),\n payload: loyaltyRewardPayload.optional(),\n code: z.string().optional(),\n message: z.string().optional(),\n }),\n ),\n history: oc\n .meta(\n mcpMeta({\n expose: true,\n riskLevel: \"safe\",\n description: \"List a loyalty member's transaction history (earn / redeem / adjust / expiry).\",\n }),\n )\n .route({\n method: \"GET\",\n path: \"/loyalty/members/{id}/transactions\",\n summary: \"Member transaction ledger\",\n })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ data: z.array(loyaltyTransactionOutput) })),\n};\n\nexport const loyalty = {\n programs,\n tiers,\n earningRules,\n rewards,\n members,\n};\n","import { z } from \"zod\";\n\nexport const referralReward = z.object({\n kind: z.enum([\"discount\", \"gift_card\", \"loyalty_points\", \"custom\"]),\n discount: z\n .object({\n type: z.enum([\"AMOUNT\", \"PERCENTAGE\"]),\n amount: z.number().int().min(0).optional(),\n percent: z.number().int().min(0).max(10000).optional(),\n maxDiscountAmount: z.number().int().min(0).optional(),\n })\n .optional(),\n creditCents: z.number().int().min(0).optional(),\n loyaltyProgramId: z.string().uuid().optional(),\n loyaltyPoints: z.number().int().min(0).optional(),\n typeKey: z.string().optional(),\n payload: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const referralProgramOutput = z.object({\n id: z.string().uuid(),\n campaignId: z.string().uuid(),\n referrerReward: referralReward,\n refereeReward: referralReward,\n codeLength: z.number().int(),\n metadata: z.record(z.string(), z.unknown()),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const referralProgramCreateInput = z.object({\n campaignId: z.string().uuid(),\n referrerReward: referralReward,\n refereeReward: referralReward,\n codeLength: z.number().int().min(4).max(32).optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const referralProgramUpdateInput = referralProgramCreateInput\n .omit({ campaignId: true })\n .partial();\n\nexport const referralOutcome = z.object({\n kind: z.enum([\"discount\", \"gift_card\", \"loyalty_points\", \"custom\"]),\n voucherCode: z.string().optional(),\n loyaltyTransactionId: z.string().uuid().optional(),\n payload: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const referralCodeOutput = z.object({\n id: z.string().uuid(),\n programId: z.string().uuid(),\n referrerCustomerId: z.string().uuid(),\n code: z.string(),\n metadata: z.record(z.string(), z.unknown()),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const referralConversionStatus = z.enum([\"converted\", \"rejected\"]);\n\nexport const referralConversionOutput = z.object({\n id: z.string().uuid(),\n codeId: z.string().uuid(),\n refereeCustomerId: z.string().uuid(),\n status: referralConversionStatus,\n convertedAt: z.string().datetime(),\n conversionEventId: z.string().nullable(),\n referrerOutcome: referralOutcome,\n refereeOutcome: referralOutcome,\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const referralIssueInput = z.object({\n programId: z.string().uuid(),\n referrerCustomerId: z.string().uuid(),\n prefix: z.string().min(1).max(12).optional(),\n});\n\nexport const referralConvertInput = z.object({\n code: z.string().min(1),\n refereeCustomerId: z.string().uuid(),\n conversionEventId: z.string().optional(),\n});\n\nexport const referralIssueOutput = z.object({\n ok: z.boolean(),\n codeId: z.string().uuid().optional(),\n code: z.string().optional(),\n errorCode: z.string().optional(),\n message: z.string().optional(),\n});\n\nexport const referralConvertOutput = z.object({\n ok: z.boolean(),\n conversionId: z.string().uuid().optional(),\n codeId: z.string().uuid().optional(),\n code: z.string().optional(),\n referrerCustomerId: z.string().uuid().optional(),\n refereeCustomerId: z.string().uuid().optional(),\n referrerReward: referralOutcome.optional(),\n refereeReward: referralOutcome.optional(),\n idempotent: z.boolean().optional(),\n errorCode: z.string().optional(),\n message: z.string().optional(),\n});\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport { paginatedOutput, paginationInput } from \"../schemas/pagination.ts\";\nimport {\n referralCodeOutput,\n referralConversionOutput,\n referralConvertInput,\n referralConvertOutput,\n referralIssueInput,\n referralIssueOutput,\n referralProgramCreateInput,\n referralProgramOutput,\n referralProgramUpdateInput,\n} from \"../schemas/referral.ts\";\n\nconst programs = {\n list: oc\n .route({\n method: \"GET\",\n path: \"/referral-programs\",\n summary: \"List referral programs\",\n })\n .input(paginationInput)\n .output(paginatedOutput(referralProgramOutput)),\n get: oc\n .route({\n method: \"GET\",\n path: \"/referral-programs/{id}\",\n summary: \"Get referral program\",\n })\n .input(z.object({ id: z.string().uuid() }))\n .output(referralProgramOutput),\n create: oc\n .route({\n method: \"POST\",\n path: \"/referral-programs\",\n summary: \"Create referral program\",\n })\n .input(referralProgramCreateInput)\n .output(referralProgramOutput),\n update: oc\n .route({\n method: \"PATCH\",\n path: \"/referral-programs/{id}\",\n summary: \"Update referral program\",\n })\n .input(z.object({ id: z.string().uuid(), patch: referralProgramUpdateInput }))\n .output(referralProgramOutput),\n delete: oc\n .route({\n method: \"DELETE\",\n path: \"/referral-programs/{id}\",\n summary: \"Soft-delete referral program\",\n })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n};\n\nexport const referrals = {\n programs,\n listCodes: oc\n .route({\n method: \"GET\",\n path: \"/referral-programs/{programId}/codes\",\n summary: \"List referral codes in a program\",\n })\n .input(paginationInput.extend({ programId: z.string().uuid() }))\n .output(paginatedOutput(referralCodeOutput)),\n listConversions: oc\n .route({\n method: \"GET\",\n path: \"/referral-codes/{codeId}/conversions\",\n summary: \"List conversions for a referral code\",\n })\n .input(paginationInput.extend({ codeId: z.string().uuid() }))\n .output(paginatedOutput(referralConversionOutput)),\n getByCode: oc\n .route({\n method: \"GET\",\n path: \"/referrals/{code}\",\n summary: \"Look up a referral code\",\n })\n .input(z.object({ code: z.string() }))\n .output(referralCodeOutput),\n issue: oc\n .route({\n method: \"POST\",\n path: \"/referrals/issue\",\n summary: \"Issue (or fetch) a referral code for a customer\",\n })\n .input(referralIssueInput)\n .output(referralIssueOutput),\n convert: oc\n .route({\n method: \"POST\",\n path: \"/referrals/convert\",\n summary: \"Convert a referral and issue both rewards\",\n })\n .input(referralConvertInput)\n .output(referralConvertOutput),\n};\n","import { z } from \"zod\";\n\nexport const voucherType = z.enum([\"DISCOUNT\", \"GIFT_CARD\"]);\n\nexport const voucherDiscount = z.object({\n type: z.enum([\"AMOUNT\", \"PERCENTAGE\"]),\n amount: z.number().int().min(0).optional(),\n percent: z.number().int().min(0).max(10000).optional(),\n maxDiscountAmount: z.number().int().min(0).optional(),\n appliesTo: z\n .object({\n productIds: z.array(z.string()).optional(),\n collectionIds: z.array(z.string()).optional(),\n })\n .optional(),\n});\n\nexport const customReward = z.object({\n typeKey: z.string().min(1),\n payload: z.record(z.string(), z.unknown()),\n});\n\nexport const voucherOutput = z.object({\n id: z.string().uuid(),\n code: z.string(),\n campaignId: z.string().uuid().nullable(),\n type: voucherType,\n discount: voucherDiscount.nullable(),\n customRewards: z.array(customReward),\n giftBalance: z.number().int().nullable(),\n redemptionLimit: z.number().int().nullable(),\n redemptionCount: z.number().int(),\n priority: z.number().int(),\n exclusive: z.boolean(),\n active: z.boolean(),\n startDate: z.string().datetime().nullable(),\n endDate: z.string().datetime().nullable(),\n customerId: z.string().uuid().nullable(),\n metadata: z.record(z.string(), z.unknown()),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const voucherCreateInput = z.object({\n code: z.string().min(1).optional(),\n campaignId: z.string().uuid().optional(),\n type: voucherType,\n discount: voucherDiscount.optional(),\n customRewards: z.array(customReward).optional(),\n giftBalance: z.number().int().min(0).optional(),\n redemptionLimit: z.number().int().min(1).optional(),\n priority: z.number().int().optional(),\n exclusive: z.boolean().optional(),\n startDate: z.string().datetime().optional(),\n endDate: z.string().datetime().optional(),\n customerId: z.string().uuid().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const voucherUpdateInput = voucherCreateInput.omit({ type: true, code: true }).partial().extend({\n active: z.boolean().optional(),\n});\n\nexport const voucherBulkCreateInput = z.object({\n campaignId: z.string().uuid(),\n count: z.number().int().min(1).max(100_000),\n});\n","import { z } from \"zod\";\nimport { voucherDiscount } from \"./voucher.ts\";\n\nexport const orderItem = z.object({\n productId: z.string(),\n collectionId: z.string().optional(),\n quantity: z.number().int().min(1),\n unitPrice: z.number().int().min(0),\n});\n\nexport const orderInput = z.object({\n amount: z.number().int().min(0),\n currency: z.string().length(3),\n items: z.array(orderItem).optional(),\n});\n\nexport const validateInput = z.object({\n code: z.string().min(1),\n customerId: z.string().uuid().optional(),\n order: orderInput.optional(),\n});\n\nexport const redeemInput = validateInput.extend({\n /** uuid of an `order` row created via the orders API. */\n orderId: z.string().uuid().optional(),\n /** Free-form integrator order reference (Shopify id, etc). */\n externalOrderId: z.string().min(1).max(120).optional(),\n idempotencyKey: z.string().min(1).max(128).optional(),\n});\n\nexport const breakdownEntry = z.object({\n voucherId: z.string().uuid(),\n code: z.string(),\n amount: z.number().int(),\n type: z.enum([\"AMOUNT\", \"PERCENTAGE\"]).optional(),\n reason: z.enum([\"exclusivity_lost\", \"zero_after_running_total\"]).optional(),\n});\n\nexport const redemptionExplanation = z.object({\n code: z.enum([\n \"voucher_not_found\",\n \"voucher_disabled\",\n \"voucher_expired\",\n \"redemption_limit_reached\",\n \"currency_mismatch\",\n \"gift_balance_zero\",\n \"order_required\",\n \"exclusivity_lost\",\n \"zero_after_running_total\",\n \"gift_card_stacking_unsupported\",\n ]),\n message: z.string(),\n voucherId: z.string().uuid().optional(),\n voucherCode: z.string().optional(),\n details: z.record(z.string(), z.union([z.string(), z.number(), z.boolean(), z.null()])).optional(),\n});\n\nexport const validateOutput = z.object({\n valid: z.boolean(),\n code: z.string().optional(),\n message: z.string().optional(),\n explanations: z.array(redemptionExplanation).optional(),\n preview: z\n .object({\n amount: z.number().int(),\n finalOrder: z.object({ amount: z.number().int(), currency: z.string() }),\n breakdown: z.array(breakdownEntry),\n })\n .optional(),\n});\n\nexport const qualifyInput = z.object({\n customerId: z.string().uuid(),\n order: orderInput,\n filters: z\n .object({\n campaignIds: z.array(z.string().uuid()).max(100).optional(),\n includeSkipped: z.boolean().optional(),\n })\n .optional(),\n});\n\nexport const qualifyOutput = z.object({\n eligible: z.array(\n z.object({\n code: z.string(),\n campaignId: z.string().uuid().nullable(),\n discount: voucherDiscount\n .omit({ appliesTo: true })\n .nullable(),\n endDate: z.string().datetime().nullable(),\n preview: z\n .object({\n amount: z.number().int(),\n finalOrder: z.object({ amount: z.number().int(), currency: z.string() }),\n breakdown: z.array(breakdownEntry),\n })\n .optional(),\n }),\n ),\n skipped: z.array(\n z.object({\n code: z.string(),\n campaignId: z.string().uuid().nullable(),\n reason: z.string(),\n message: z.string(),\n }),\n ),\n});\n\nexport const redeemOutput = z.object({\n ok: z.boolean(),\n redemptionId: z.string().uuid().optional(),\n amount: z.number().int().optional(),\n finalOrder: z.object({ amount: z.number().int(), currency: z.string() }).optional(),\n breakdown: z.array(breakdownEntry).optional(),\n idempotent: z.boolean().optional(),\n code: z.string().optional(),\n message: z.string().optional(),\n explanations: z.array(redemptionExplanation).optional(),\n});\n\nexport const stackRedeemInput = z.object({\n codes: z.array(z.string().min(1)).min(1).max(20),\n customerId: z.string().uuid().optional(),\n orderId: z.string().uuid().optional(),\n externalOrderId: z.string().min(1).max(120).optional(),\n order: orderInput,\n idempotencyKey: z.string().min(1).max(128).optional(),\n});\n\nexport const stackEntry = z.object({\n voucherCode: z.string(),\n voucherId: z.string().uuid(),\n redemptionId: z.string().uuid(),\n amount: z.number().int(),\n});\n\nexport const stackRedeemOutput = z.object({\n ok: z.boolean(),\n batchId: z.string().uuid().optional(),\n amount: z.number().int().optional(),\n finalOrder: z.object({ amount: z.number().int(), currency: z.string() }).optional(),\n breakdown: z.array(breakdownEntry).optional(),\n entries: z.array(stackEntry).optional(),\n idempotent: z.boolean().optional(),\n code: z.string().optional(),\n message: z.string().optional(),\n explanations: z.array(redemptionExplanation).optional(),\n});\n","import { z } from \"zod\";\nimport { orderInput, breakdownEntry } from \"./redemption.ts\";\nimport { customReward, voucherDiscount } from \"./voucher.ts\";\n\nexport const promotionTierOutput = z.object({\n id: z.string().uuid(),\n campaignId: z.string().uuid(),\n name: z.string(),\n description: z.string().nullable(),\n effect: voucherDiscount,\n customRewards: z.array(customReward),\n validationRuleId: z.string().uuid().nullable(),\n active: z.boolean(),\n priority: z.number().int(),\n exclusive: z.boolean(),\n startDate: z.string().datetime().nullable(),\n endDate: z.string().datetime().nullable(),\n metadata: z.record(z.string(), z.unknown()),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const promotionTierCreateInput = z.object({\n campaignId: z.string().uuid(),\n name: z.string().min(1),\n description: z.string().optional(),\n effect: voucherDiscount,\n customRewards: z.array(customReward).optional(),\n validationRuleId: z.string().uuid().optional(),\n active: z.boolean().optional(),\n priority: z.number().int().optional(),\n exclusive: z.boolean().optional(),\n startDate: z.string().datetime().optional(),\n endDate: z.string().datetime().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const promotionTierUpdateInput = promotionTierCreateInput.omit({ campaignId: true }).partial();\n\nexport const qualificationInput = z.object({\n customerId: z.string().uuid().optional(),\n order: orderInput,\n metadata: z.record(z.string(), z.unknown()).optional(),\n filters: z\n .object({\n campaignIds: z.array(z.string().uuid()).optional(),\n includeSkipped: z.boolean().optional(),\n })\n .optional(),\n});\n\nexport const qualificationReason = z.enum([\n \"campaign_inactive\",\n \"campaign_not_active\",\n \"promotion_inactive\",\n \"promotion_not_active\",\n \"currency_mismatch\",\n \"rule_failed\",\n \"rule_error\",\n \"no_discount_effect\",\n \"exclusivity_lost\",\n \"zero_after_running_total\",\n]);\n\nexport const qualifiedPromotion = z.object({\n source: z.literal(\"promotion\"),\n campaignId: z.string().uuid(),\n promotionTierId: z.string().uuid(),\n name: z.string(),\n discount: voucherDiscount,\n customRewards: z.array(customReward),\n priority: z.number().int(),\n exclusive: z.boolean(),\n metadata: z.record(z.string(), z.unknown()),\n});\n\nexport const skippedPromotion = qualifiedPromotion.extend({\n reason: qualificationReason,\n message: z.string(),\n trace: z.unknown().optional(),\n});\n\nexport const qualificationOutput = z.object({\n eligible: z.array(qualifiedPromotion),\n skipped: z.array(skippedPromotion),\n preview: z.object({\n amount: z.number().int(),\n finalOrder: z.object({ amount: z.number().int(), currency: z.string() }),\n breakdown: z.array(breakdownEntry),\n }),\n});\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport { mcpMeta } from \"../mcp.ts\";\nimport { paginatedOutput, paginationInput } from \"../schemas/pagination.ts\";\nimport {\n qualificationInput,\n qualificationOutput,\n promotionTierCreateInput,\n promotionTierOutput,\n promotionTierUpdateInput,\n} from \"../schemas/promotion.ts\";\n\nexport const promotions = {\n tiers: {\n list: oc\n .route({ method: \"GET\", path: \"/promotions/tiers\", summary: \"List promotion tiers\" })\n .input(\n paginationInput.extend({\n campaignId: z.string().uuid().optional(),\n active: z.boolean().optional(),\n }),\n )\n .output(paginatedOutput(promotionTierOutput)),\n create: oc\n .route({ method: \"POST\", path: \"/promotions/tiers\", summary: \"Create promotion tier\" })\n .input(promotionTierCreateInput)\n .output(promotionTierOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/promotions/tiers/{id}\", summary: \"Update promotion tier\" })\n .input(z.object({ id: z.string().uuid(), patch: promotionTierUpdateInput }))\n .output(promotionTierOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/promotions/tiers/{id}\", summary: \"Soft-delete promotion tier\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n },\n qualify: oc\n .meta(mcpMeta({ expose: true, riskLevel: \"safe\" }))\n .route({\n method: \"POST\",\n path: \"/promotions/qualify\",\n summary: \"Return auto-applied promotions a cart qualifies for\",\n })\n .input(qualificationInput)\n .output(qualificationOutput),\n};\n","import { z } from \"zod\";\n\nexport const rewardTypeOutput = z.object({\n id: z.string().uuid(),\n key: z.string(),\n name: z.string(),\n description: z.string().nullable(),\n payloadSchema: z.record(z.string(), z.unknown()),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const rewardTypeCreateInput = z.object({\n key: z\n .string()\n .min(2)\n .max(50)\n .regex(/^[A-Z][A-Z0-9_]*$/, \"Use SCREAMING_SNAKE_CASE: e.g. FREE_SHIPPING\"),\n name: z.string().min(1).max(100),\n description: z.string().max(500).optional(),\n payloadSchema: z.record(z.string(), z.unknown()),\n});\n\nexport const rewardTypeUpdateInput = rewardTypeCreateInput.omit({ key: true }).partial();\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport { paginatedOutput, paginationInput } from \"../schemas/pagination.ts\";\nimport {\n rewardTypeCreateInput,\n rewardTypeOutput,\n rewardTypeUpdateInput,\n} from \"../schemas/reward-type.ts\";\n\nexport const rewardTypes = {\n list: oc\n .route({ method: \"GET\", path: \"/reward-types\", summary: \"List reward types\" })\n .input(paginationInput.extend({ search: z.string().optional() }))\n .output(paginatedOutput(rewardTypeOutput)),\n get: oc\n .route({ method: \"GET\", path: \"/reward-types/{id}\", summary: \"Get reward type\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(rewardTypeOutput),\n create: oc\n .route({ method: \"POST\", path: \"/reward-types\", summary: \"Create reward type\" })\n .input(rewardTypeCreateInput)\n .output(rewardTypeOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/reward-types/{id}\", summary: \"Update reward type\" })\n .input(z.object({ id: z.string().uuid(), patch: rewardTypeUpdateInput }))\n .output(rewardTypeOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/reward-types/{id}\", summary: \"Soft-delete reward type\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n};\n","import { z } from \"zod\";\n\n// JSON Logic rules are deeply recursive; the contract treats them as an\n// opaque object validated only as \"valid JSON\". The rules engine performs\n// runtime validation when evaluating.\nexport const segmentRule = z.record(z.string(), z.unknown());\n\nexport const segmentOutput = z.object({\n id: z.string().uuid(),\n name: z.string(),\n description: z.string().nullable(),\n rule: segmentRule,\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const segmentCreateInput = z.object({\n name: z.string().min(1).max(100),\n description: z.string().max(500).optional(),\n rule: segmentRule,\n});\n\nexport const segmentUpdateInput = segmentCreateInput.partial();\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport { mcpMeta } from \"../mcp.ts\";\nimport { customerOutput } from \"../schemas/customer.ts\";\nimport { paginatedOutput, paginationInput } from \"../schemas/pagination.ts\";\nimport {\n segmentCreateInput,\n segmentOutput,\n segmentRule,\n segmentUpdateInput,\n} from \"../schemas/segment.ts\";\n\nexport const segments = {\n list: oc\n .route({ method: \"GET\", path: \"/segments\", summary: \"List segments\" })\n .input(paginationInput.extend({ search: z.string().optional() }))\n .output(paginatedOutput(segmentOutput)),\n get: oc\n .route({ method: \"GET\", path: \"/segments/{id}\", summary: \"Get segment\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(segmentOutput),\n create: oc\n .route({ method: \"POST\", path: \"/segments\", summary: \"Create segment\" })\n .input(segmentCreateInput)\n .output(segmentOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/segments/{id}\", summary: \"Update segment\" })\n .input(z.object({ id: z.string().uuid(), patch: segmentUpdateInput }))\n .output(segmentOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/segments/{id}\", summary: \"Soft-delete segment\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n preview: oc\n .meta(\n mcpMeta({\n expose: true,\n riskLevel: \"safe\",\n description:\n \"Run a JSON Logic rule against existing customers and report match count plus a sample.\",\n }),\n )\n .route({ method: \"POST\", path: \"/segments/preview\", summary: \"Preview rule against customers\" })\n .input(z.object({ rule: segmentRule, sampleSize: z.number().int().min(1).max(50).default(10) }))\n .output(\n z.object({\n matchedCount: z.number().int().nonnegative(),\n sample: z.array(customerOutput),\n }),\n ),\n};\n","import { z } from \"zod\";\n\nexport const validationRuleAppliesTo = z.enum([\"voucher\", \"promotion\", \"earn\", \"reward\"]);\n\nexport const validationRuleOutput = z.object({\n id: z.string().uuid(),\n name: z.string(),\n description: z.string().nullable(),\n rule: z.record(z.string(), z.unknown()),\n appliesTo: validationRuleAppliesTo,\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const validationRuleCreateInput = z.object({\n name: z.string().min(1).max(100),\n description: z.string().max(500).optional(),\n rule: z.record(z.string(), z.unknown()),\n appliesTo: validationRuleAppliesTo.optional(),\n});\n\nexport const validationRuleUpdateInput = validationRuleCreateInput.partial();\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport { paginatedOutput, paginationInput } from \"../schemas/pagination.ts\";\nimport {\n validationRuleCreateInput,\n validationRuleOutput,\n validationRuleUpdateInput,\n} from \"../schemas/validation-rule.ts\";\n\nexport const validationRules = {\n list: oc\n .route({ method: \"GET\", path: \"/validation-rules\", summary: \"List validation rules\" })\n .input(paginationInput.extend({ search: z.string().optional() }))\n .output(paginatedOutput(validationRuleOutput)),\n get: oc\n .route({ method: \"GET\", path: \"/validation-rules/{id}\", summary: \"Get validation rule\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(validationRuleOutput),\n create: oc\n .route({ method: \"POST\", path: \"/validation-rules\", summary: \"Create validation rule\" })\n .input(validationRuleCreateInput)\n .output(validationRuleOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/validation-rules/{id}\", summary: \"Update validation rule\" })\n .input(z.object({ id: z.string().uuid(), patch: validationRuleUpdateInput }))\n .output(validationRuleOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/validation-rules/{id}\", summary: \"Soft-delete validation rule\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n};\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport { mcpMeta } from \"../mcp.ts\";\nimport { paginatedOutput, paginationInput } from \"../schemas/pagination.ts\";\nimport {\n voucherBulkCreateInput,\n voucherCreateInput,\n voucherOutput,\n voucherUpdateInput,\n} from \"../schemas/voucher.ts\";\nimport {\n redeemInput,\n redeemOutput,\n qualifyInput,\n qualifyOutput,\n stackRedeemInput,\n stackRedeemOutput,\n validateInput,\n validateOutput,\n} from \"../schemas/redemption.ts\";\n\nexport const vouchers = {\n list: oc\n .meta(mcpMeta({ expose: true, riskLevel: \"safe\" }))\n .route({ method: \"GET\", path: \"/vouchers\", summary: \"List vouchers\" })\n .input(\n paginationInput.extend({\n search: z.string().optional(),\n campaignId: z.string().uuid().optional(),\n active: z.boolean().optional(),\n customerId: z.string().uuid().optional(),\n }),\n )\n .output(paginatedOutput(voucherOutput)),\n get: oc\n .meta(mcpMeta({ expose: true, riskLevel: \"safe\" }))\n .route({ method: \"GET\", path: \"/vouchers/{code}\", summary: \"Get voucher by code\" })\n .input(z.object({ code: z.string() }))\n .output(voucherOutput),\n create: oc\n .route({ method: \"POST\", path: \"/vouchers\", summary: \"Create voucher\" })\n .input(voucherCreateInput)\n .output(voucherOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/vouchers/{code}\", summary: \"Update voucher\" })\n .input(z.object({ code: z.string(), patch: voucherUpdateInput }))\n .output(voucherOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/vouchers/{code}\", summary: \"Soft-delete voucher\" })\n .input(z.object({ code: z.string() }))\n .output(z.object({ ok: z.literal(true) })),\n bulk: oc\n .route({ method: \"POST\", path: \"/vouchers/bulk\", summary: \"Generate vouchers in bulk\" })\n .input(voucherBulkCreateInput)\n .output(\n z.object({\n campaignId: z.string().uuid(),\n // Number generated synchronously; 0 when the work was queued.\n generated: z.number().int(),\n // Set when count exceeds the inline threshold and the job is queued.\n jobId: z.string().uuid().optional(),\n }),\n ),\n\n // Hot path\n validate: oc\n .meta(mcpMeta({ expose: true, riskLevel: \"safe\" }))\n .route({\n method: \"POST\",\n path: \"/vouchers/{code}/validate\",\n summary: \"Validate a voucher against an optional order context\",\n })\n .input(validateInput)\n .output(validateOutput),\n qualify: oc\n .meta(mcpMeta({ expose: true, riskLevel: \"safe\" }))\n .route({\n method: \"POST\",\n path: \"/vouchers/qualify\",\n summary: \"Batch-qualify customer-held voucher codes for an order\",\n })\n .input(qualifyInput)\n .output(qualifyOutput),\n redeem: oc\n .meta(\n mcpMeta({\n expose: true,\n riskLevel: \"mutating\",\n description:\n \"Commit a redemption against an order. Confirm with the user before calling. Use idempotencyKey to safely retry.\",\n }),\n )\n .route({\n method: \"POST\",\n path: \"/vouchers/{code}/redemption\",\n summary: \"Redeem a voucher\",\n })\n .input(redeemInput)\n .output(redeemOutput),\n\n stackRedeem: oc\n .meta(\n mcpMeta({\n expose: true,\n riskLevel: \"mutating\",\n description:\n \"Apply N codes to one order atomically. Either every voucher commits or none. Confirm with the user before calling.\",\n }),\n )\n .route({\n method: \"POST\",\n path: \"/redemptions/stack\",\n summary: \"Redeem multiple vouchers against one order in a single transaction\",\n })\n .input(stackRedeemInput)\n .output(stackRedeemOutput),\n\n transactions: oc\n .route({\n method: \"GET\",\n path: \"/vouchers/{code}/transactions\",\n summary: \"Gift card balance ledger\",\n })\n .input(z.object({ code: z.string() }))\n .output(\n z.object({\n data: z.array(\n z.object({\n id: z.string().uuid(),\n redemptionId: z.string().uuid().nullable(),\n delta: z.number().int(),\n balanceAfter: z.number().int(),\n reason: z.enum([\"CREDIT\", \"REDEMPTION\", \"ROLLBACK\", \"ADJUSTMENT\"]),\n createdAt: z.string().datetime(),\n }),\n ),\n }),\n ),\n};\n","import { z } from \"zod\";\n\nexport const webhookOutput = z.object({\n id: z.string().uuid(),\n name: z.string(),\n url: z.string().url(),\n secretPrefix: z.string(),\n events: z.array(z.string()),\n active: z.boolean(),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const webhookCreateInput = z.object({\n name: z.string().min(1).max(100),\n url: z.string().url(),\n events: z.array(z.string()).min(1).default([\"*\"]),\n active: z.boolean().default(true),\n});\n\nexport const webhookCreateOutput = webhookOutput.extend({\n /** Plaintext signing secret. Shown once. */\n secret: z.string(),\n});\n\nexport const webhookUpdateInput = z.object({\n name: z.string().min(1).max(100).optional(),\n url: z.string().url().optional(),\n events: z.array(z.string()).optional(),\n active: z.boolean().optional(),\n});\n\nexport const webhookDeliveryOutput = z.object({\n id: z.string().uuid(),\n webhookId: z.string().uuid(),\n eventId: z.string().uuid(),\n eventType: z.string(),\n status: z.enum([\"pending\", \"succeeded\", \"failed\", \"dead\"]),\n attempts: z.number().int(),\n responseStatus: z.number().int().nullable(),\n responseBody: z.string().nullable(),\n error: z.string().nullable(),\n nextRetryAt: z.string().datetime().nullable(),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const eventOutput = z.object({\n id: z.string().uuid(),\n type: z.string(),\n payload: z.record(z.string(), z.unknown()),\n entityId: z.string().nullable(),\n createdAt: z.string().datetime(),\n});\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport { paginatedOutput, paginationInput } from \"../schemas/pagination.ts\";\nimport {\n eventOutput,\n webhookCreateInput,\n webhookCreateOutput,\n webhookDeliveryOutput,\n webhookOutput,\n webhookUpdateInput,\n} from \"../schemas/webhook.ts\";\n\nexport const webhooks = {\n list: oc\n .route({ method: \"GET\", path: \"/webhooks\", summary: \"List webhooks\" })\n .output(z.object({ data: z.array(webhookOutput) })),\n get: oc\n .route({ method: \"GET\", path: \"/webhooks/{id}\", summary: \"Get webhook\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(webhookOutput),\n create: oc\n .route({ method: \"POST\", path: \"/webhooks\", summary: \"Create webhook\" })\n .input(webhookCreateInput)\n .output(webhookCreateOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/webhooks/{id}\", summary: \"Update webhook\" })\n .input(z.object({ id: z.string().uuid(), patch: webhookUpdateInput }))\n .output(webhookOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/webhooks/{id}\", summary: \"Soft-delete webhook\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n deliveries: oc\n .route({\n method: \"GET\",\n path: \"/webhooks/{id}/deliveries\",\n summary: \"Recent deliveries for a webhook\",\n })\n .input(z.object({ id: z.string().uuid(), limit: z.number().int().min(1).max(100).default(50) }))\n .output(z.object({ data: z.array(webhookDeliveryOutput) })),\n replay: oc\n .route({\n method: \"POST\",\n path: \"/webhooks/deliveries/{id}/replay\",\n summary: \"Re-enqueue a delivery (succeeded or otherwise)\",\n })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n};\n\nexport const events = {\n list: oc\n .route({ method: \"GET\", path: \"/events\", summary: \"List events\" })\n .input(paginationInput.extend({ type: z.string().optional() }))\n .output(paginatedOutput(eventOutput)),\n get: oc\n .route({ method: \"GET\", path: \"/events/{id}\", summary: \"Get event\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(eventOutput),\n};\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\n\nconst counters = z.object({\n redemptionsToday: z.number().int(),\n redemptions7d: z.number().int(),\n redemptions30d: z.number().int(),\n});\n\nconst daily = z.array(z.object({ day: z.string(), total: z.number().int() }));\n\nconst topCampaigns = z.array(\n z.object({\n campaignId: z.string().uuid(),\n campaignName: z.string(),\n redemptions: z.number().int(),\n }),\n);\n\nconst failures = z.array(z.object({ reason: z.string(), total: z.number().int() }));\n\nconst webhooks = z.array(\n z.object({\n status: z.enum([\"pending\", \"succeeded\", \"failed\", \"dead\"]),\n total: z.number().int(),\n }),\n);\n\nexport const insights = {\n summary: oc\n .route({\n method: \"GET\",\n path: \"/insights/summary\",\n summary: \"Headline metrics for the dashboard insights page\",\n })\n .output(\n z.object({\n sinceDays: z.number().int(),\n counters,\n daily,\n topCampaigns,\n failures,\n webhooks,\n }),\n ),\n};\n","import { z } from \"zod\";\n\nexport const userRole = z.enum([\"admin\", \"member\"]);\n\nexport const userOutput = z.object({\n id: z.string(),\n email: z.string().email(),\n name: z.string().nullable(),\n role: userRole,\n mustChangePassword: z.boolean(),\n disabledAt: z.string().datetime().nullable(),\n createdAt: z.string().datetime(),\n});\n\nexport const userCreateInput = z.object({\n email: z.string().email(),\n name: z.string().max(120).optional(),\n role: userRole.default(\"member\"),\n});\n\nexport const userCreateOutput = userOutput.extend({\n /** Generated password. Shown once at creation. */\n password: z.string(),\n});\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport {\n userCreateInput,\n userCreateOutput,\n userOutput,\n userRole,\n} from \"../schemas/user.ts\";\n\nexport const users = {\n list: oc\n .route({ method: \"GET\", path: \"/users\", summary: \"List staff users (admin)\" })\n .output(z.object({ data: z.array(userOutput) })),\n create: oc\n .route({ method: \"POST\", path: \"/users\", summary: \"Create staff user (admin)\" })\n .input(userCreateInput)\n .output(userCreateOutput),\n resetPassword: oc\n .route({\n method: \"POST\",\n path: \"/users/{id}/reset-password\",\n summary: \"Reset a staff user's password (admin)\",\n })\n .input(z.object({ id: z.string() }))\n .output(userCreateOutput),\n setRole: oc\n .route({\n method: \"PATCH\",\n path: \"/users/{id}/role\",\n summary: \"Change a staff user's role (admin)\",\n })\n .input(z.object({ id: z.string(), role: userRole }))\n .output(userOutput),\n disable: oc\n .route({\n method: \"POST\",\n path: \"/users/{id}/disable\",\n summary: \"Disable a staff user (admin)\",\n })\n .input(z.object({ id: z.string() }))\n .output(userOutput),\n enable: oc\n .route({\n method: \"POST\",\n path: \"/users/{id}/enable\",\n summary: \"Re-enable a staff user (admin)\",\n })\n .input(z.object({ id: z.string() }))\n .output(userOutput),\n};\n","import { z } from \"zod\";\n\nexport const orderStatus = z.enum([\"CREATED\", \"PAID\", \"CANCELED\", \"FULFILLED\"]);\n\nexport const orderItem = z.object({\n productId: z.string().optional(),\n sku: z.string().optional(),\n name: z.string().min(1),\n quantity: z.number().int().positive(),\n unitPrice: z.number().int().nonnegative(),\n});\n\nexport const orderOutput = z.object({\n id: z.string().uuid(),\n externalId: z.string().nullable(),\n customerId: z.string().uuid().nullable(),\n items: z.array(orderItem),\n amount: z.number().int(),\n discountAmount: z.number().int(),\n currency: z.string(),\n status: orderStatus,\n metadata: z.record(z.string(), z.unknown()),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const orderCreateInput = z.object({\n externalId: z.string().min(1).max(120).optional(),\n customerId: z.string().uuid().optional(),\n items: z.array(orderItem).min(1),\n amount: z.number().int().nonnegative(),\n discountAmount: z.number().int().nonnegative().optional(),\n currency: z.string().length(3),\n status: orderStatus.optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const orderUpdateInput = z.object({\n id: z.string().uuid(),\n patch: z.object({\n status: orderStatus.optional(),\n discountAmount: z.number().int().nonnegative().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n }),\n});\n\nexport const orderListInput = z.object({\n limit: z.number().int().min(1).max(100).default(20),\n cursor: z.string().optional(),\n customerId: z.string().uuid().optional(),\n status: orderStatus.optional(),\n search: z.string().optional(),\n});\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport { paginatedOutput } from \"../schemas/pagination.ts\";\nimport {\n orderCreateInput,\n orderListInput,\n orderOutput,\n orderUpdateInput,\n} from \"../schemas/order.ts\";\n\nexport const orders = {\n list: oc\n .route({ method: \"GET\", path: \"/orders\", summary: \"List orders\" })\n .input(orderListInput)\n .output(paginatedOutput(orderOutput)),\n get: oc\n .route({ method: \"GET\", path: \"/orders/{id}\", summary: \"Fetch one order\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(orderOutput),\n create: oc\n .route({ method: \"POST\", path: \"/orders\", summary: \"Create an order\" })\n .input(orderCreateInput)\n .output(orderOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/orders/{id}\", summary: \"Update an order\" })\n .input(orderUpdateInput)\n .output(orderOutput),\n cancel: oc\n .route({ method: \"POST\", path: \"/orders/{id}/cancel\", summary: \"Cancel an order\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(orderOutput),\n fulfill: oc\n .route({ method: \"POST\", path: \"/orders/{id}/fulfill\", summary: \"Mark order fulfilled\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(orderOutput),\n delete: oc\n .route({ method: \"DELETE\", path: \"/orders/{id}\", summary: \"Soft-delete an order\" })\n .input(z.object({ id: z.string().uuid() }))\n .output(z.object({ ok: z.literal(true) })),\n redemptions: oc\n .route({\n method: \"GET\",\n path: \"/orders/{id}/redemptions\",\n summary: \"List redemptions attached to an order\",\n })\n .input(z.object({ id: z.string().uuid() }))\n .output(\n z.object({\n data: z.array(\n z.object({\n id: z.string().uuid(),\n voucherCode: z.string(),\n voucherId: z.string().uuid(),\n customerId: z.string().uuid().nullable(),\n result: z.enum([\"SUCCESS\", \"FAILURE\", \"ROLLBACK\"]),\n failureReason: z.string().nullable(),\n amount: z.number().int().nullable(),\n createdAt: z.string().datetime(),\n }),\n ),\n }),\n ),\n};\n","import { z } from \"zod\";\n\nexport const auditActor = z.enum([\"user\", \"api_key\", \"system\"]);\n\nexport const auditLogOutput = z.object({\n id: z.string().uuid(),\n actor: auditActor,\n actorId: z.string().nullable(),\n action: z.string(),\n entity: z.string(),\n entityId: z.string().nullable(),\n before: z.unknown().nullable(),\n after: z.unknown().nullable(),\n ip: z.string().nullable(),\n userAgent: z.string().nullable(),\n createdAt: z.string().datetime(),\n});\n\nexport const auditLogListInput = z.object({\n limit: z.number().int().min(1).max(100).default(50),\n cursor: z.string().optional(),\n actor: auditActor.optional(),\n entity: z.string().optional(),\n action: z.string().optional(),\n entityId: z.string().optional(),\n});\n","import { oc } from \"@orpc/contract\";\nimport { auditLogListInput, auditLogOutput } from \"../schemas/audit-log.ts\";\nimport { z } from \"zod\";\n\nexport const auditLog = {\n list: oc\n .route({ method: \"GET\", path: \"/audit-log\", summary: \"List audit log entries (admin)\" })\n .input(auditLogListInput)\n .output(z.object({ data: z.array(auditLogOutput), next: z.string().optional() })),\n};\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\n\nconst workspaceOutput = z.object({\n name: z.string(),\n defaultCurrency: z.string(),\n defaultTimezone: z.string(),\n emailProvider: z.enum([\"resend\", \"log\"]),\n updatedAt: z.string().datetime(),\n});\n\nconst workspaceUpdateInput = z.object({\n name: z.string().min(1).max(120).optional(),\n defaultCurrency: z.string().length(3).optional(),\n defaultTimezone: z.string().min(1).max(64).optional(),\n});\n\nexport const workspace = {\n get: oc\n .route({ method: \"GET\", path: \"/workspace\", summary: \"Workspace settings\" })\n .output(workspaceOutput),\n update: oc\n .route({ method: \"PATCH\", path: \"/workspace\", summary: \"Update workspace settings (admin)\" })\n .input(workspaceUpdateInput)\n .output(workspaceOutput),\n};\n","import { oc } from \"@orpc/contract\";\nimport { z } from \"zod\";\nimport { apiKeys } from \"./routes/api-keys.ts\";\nimport { campaigns } from \"./routes/campaigns.ts\";\nimport { customers } from \"./routes/customers.ts\";\nimport { loyalty } from \"./routes/loyalty.ts\";\nimport { referrals } from \"./routes/referrals.ts\";\nimport { promotions } from \"./routes/promotions.ts\";\nimport { rewardTypes } from \"./routes/reward-types.ts\";\nimport { segments } from \"./routes/segments.ts\";\nimport { validationRules } from \"./routes/validation-rules.ts\";\nimport { vouchers } from \"./routes/vouchers.ts\";\nimport { events, webhooks } from \"./routes/webhooks.ts\";\nimport { insights } from \"./routes/insights.ts\";\nimport { users } from \"./routes/users.ts\";\nimport { orders } from \"./routes/orders.ts\";\nimport { auditLog } from \"./routes/audit-log.ts\";\nimport { workspace } from \"./routes/workspace.ts\";\n\nconst healthOutput = z.object({\n status: z.literal(\"ok\"),\n version: z.string(),\n});\n\nexport const contract = {\n health: oc\n .route({ method: \"GET\", path: \"/health\", summary: \"Liveness probe\" })\n .output(healthOutput),\n ready: oc\n .route({ method: \"GET\", path: \"/ready\", summary: \"Readiness probe (db + worker)\" })\n .output(\n z.object({\n status: z.enum([\"ok\", \"degraded\"]),\n checks: z.object({\n db: z.boolean(),\n worker: z.boolean(),\n }),\n }),\n ),\n customers,\n segments,\n campaigns,\n promotions,\n vouchers,\n validationRules,\n rewardTypes,\n loyalty,\n referrals,\n apiKeys,\n webhooks,\n events,\n insights,\n users,\n orders,\n auditLog,\n workspace,\n};\n\nexport type Contract = typeof contract;\n","import { createHmac, timingSafeEqual } from \"node:crypto\";\nimport { createORPCClient } from \"@orpc/client\";\nimport { OpenAPILink } from \"@orpc/openapi-client/fetch\";\nimport type { ContractRouterClient } from \"@orpc/contract\";\nimport { contract, type Contract } from \"@offerkit/contract\";\n\nexport interface SdkOptions {\n /** Base URL of the Offerkit deployment, e.g. https://offerkit.example.com */\n baseUrl: string;\n /** API key for programmatic access. Optional for browser callers using cookie auth. */\n apiKey?: string;\n /** Custom fetch implementation (e.g. node-fetch, undici, edge runtime). */\n fetch?: typeof fetch;\n}\n\nexport type Client = ContractRouterClient<Contract>;\n\nexport function createClient(options: SdkOptions): Client {\n const link = new OpenAPILink(contract, {\n url: `${options.baseUrl.replace(/\\/$/, \"\")}/api/v1`,\n headers: () => {\n const headers: Record<string, string> = {};\n if (options.apiKey) headers[\"Authorization\"] = `Bearer ${options.apiKey}`;\n return headers;\n },\n ...(options.fetch ? { fetch: options.fetch } : {}),\n });\n return createORPCClient(link) satisfies Client;\n}\n\nexport interface VerifyWebhookOptions {\n /** Reject signatures whose timestamp is older than this many seconds. Default 300. */\n toleranceSeconds?: number;\n /** Override the current time (millis). Tests only. */\n now?: number;\n}\n\n/**\n * Verify the X-Offerkit-Signature header against the raw request body.\n *\n * Format: `t=<unix-seconds>,v1=<hex>`. v1 = HMAC-SHA256(secret, \"${t}.${rawBody}\").\n * Returns true on match within the tolerance window.\n */\nexport function verifyWebhook(\n rawBody: string,\n signature: string,\n secret: string,\n options: VerifyWebhookOptions = {},\n): boolean {\n const tolerance = options.toleranceSeconds ?? 300;\n const now = options.now ?? Date.now();\n const parts: Record<string, string> = {};\n for (const segment of signature.split(\",\")) {\n const idx = segment.indexOf(\"=\");\n if (idx <= 0) continue;\n parts[segment.slice(0, idx)] = segment.slice(idx + 1);\n }\n const t = Number(parts[\"t\"]);\n const v1 = parts[\"v1\"];\n if (!Number.isFinite(t) || !v1) return false;\n if (Math.abs(now / 1000 - t) > tolerance) return false;\n const expected = createHmac(\"sha256\", secret).update(`${String(t)}.${rawBody}`).digest(\"hex\");\n if (expected.length !== v1.length) return false;\n return timingSafeEqual(Buffer.from(expected, \"hex\"), Buffer.from(v1, \"hex\"));\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@offerkit/sdk",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Typed client for the Offerkit promotions API.",
|
|
@@ -9,9 +9,6 @@
|
|
|
9
9
|
"url": "https://github.com/akshitkrnagpal/offerkit.git",
|
|
10
10
|
"directory": "packages/sdk"
|
|
11
11
|
},
|
|
12
|
-
"main": "./dist/index.mjs",
|
|
13
|
-
"module": "./dist/index.mjs",
|
|
14
|
-
"types": "./dist/index.d.mts",
|
|
15
12
|
"exports": {
|
|
16
13
|
".": {
|
|
17
14
|
"types": "./dist/index.d.mts",
|
|
@@ -42,5 +39,8 @@
|
|
|
42
39
|
"build": "tsdown",
|
|
43
40
|
"typecheck": "tsc --noEmit",
|
|
44
41
|
"test": "vitest run --passWithNoTests"
|
|
45
|
-
}
|
|
42
|
+
},
|
|
43
|
+
"main": "./dist/index.mjs",
|
|
44
|
+
"module": "./dist/index.mjs",
|
|
45
|
+
"types": "./dist/index.d.mts"
|
|
46
46
|
}
|