@whooshbang/contract-mock 2.3.1 → 2.5.0

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.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export { createWhooshBangContractMock } from "./app.js";
2
2
  export { CONTRACT_MOCK_FIXTURE_CREDENTIALS, CONTRACT_MOCK_FIXTURE_ENVIRONMENTS, } from "./core.js";
3
3
  export { CONTRACT_MOCK_SCENARIOS, isContractMockScenarioName, } from "./scenarios.js";
4
- export type { ContractMockBillingOptions, EmailConsentAuthorityFixture, ContractMockClock, ContractMockControl, ContractMockOrganizationCredential, ContractMockCredential, ContractMockHumanCredential, ContractMockIdGenerator, ContractMockMachineCredential, ContractMockProjectCredential, ContractMockScenarioDescriptor, ContractMockScenarioName, ContractMockSnapshot, InteractionControlInput, InteractionControlOutcome, InteractionControlResult, MachineEventDeliveryScript, MachineEventSeed, WhooshBangContractMock, WhooshBangContractMockOptions, ProviderOutcome, ProviderOutcomeScript, WebhookReceiver, } from "./types.js";
4
+ export type { ContractMockBillingOptions, ContractMockPromotionCode, EmailConsentAuthorityFixture, ContractMockClock, ContractMockControl, ContractMockOrganizationCredential, ContractMockCredential, ContractMockHumanCredential, ContractMockIdGenerator, ContractMockMachineCredential, ContractMockProjectCredential, ContractMockScenarioDescriptor, ContractMockScenarioName, ContractMockSnapshot, InteractionControlInput, InteractionControlOutcome, InteractionControlResult, MachineEventDeliveryScript, MachineEventSeed, WhooshBangContractMock, WhooshBangContractMockOptions, ProviderOutcome, ProviderOutcomeScript, WebhookReceiver, } from "./types.js";
package/dist/types.d.ts CHANGED
@@ -134,7 +134,27 @@ export interface WhooshBangContractMockOptions {
134
134
  readonly scenario?: ContractMockScenarioName;
135
135
  readonly webhookReceiver?: WebhookReceiver;
136
136
  }
137
+ /** A synthetic promotion code a mock organization may redeem once. */
138
+ export interface ContractMockPromotionCode {
139
+ /** Matched ignoring case, spaces, hyphens and underscores. */
140
+ readonly code: string;
141
+ readonly name: string;
142
+ readonly benefit: {
143
+ readonly kind: "message_credit";
144
+ readonly credit_usd: string;
145
+ } | {
146
+ readonly kind: "shared_emails";
147
+ readonly shared_emails: number;
148
+ } | {
149
+ readonly kind: "branding";
150
+ };
151
+ /** How long the granted benefit lasts from redemption. */
152
+ readonly benefit_days: number;
153
+ }
137
154
  export interface ContractMockBillingOptions {
155
+ /** Redeemable promotion codes. Defaults to one: `MOCK-CREDIT`, $10 message
156
+ * credit for 30 days. An empty list makes every code unredeemable. */
157
+ readonly promotionCodes?: readonly ContractMockPromotionCode[];
138
158
  /** Synthetic card form completion; never actual card or charge authority. */
139
159
  readonly cardOutcome?: (setup: {
140
160
  readonly id: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whooshbang/contract-mock",
3
- "version": "2.3.1",
3
+ "version": "2.5.0",
4
4
  "description": "Deterministic local executable mock for WhooshBang V1",
5
5
  "private": false,
6
6
  "license": "MIT",
@@ -55,12 +55,12 @@
55
55
  "generate:copy": "tsx scripts/generate-recipient-copy.ts"
56
56
  },
57
57
  "dependencies": {
58
- "@whooshbang/contracts": "2.4.0",
58
+ "@whooshbang/contracts": "2.6.0",
59
59
  "hono": "4.13.7"
60
60
  },
61
61
  "devDependencies": {
62
62
  "@whooshbang/mcp": "1.0.0",
63
- "@whooshbang/sdk": "3.0.1"
63
+ "@whooshbang/sdk": "3.2.0"
64
64
  },
65
65
  "engines": {
66
66
  "node": ">=22.13.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema": "contract-mock-scenarios.v1",
3
- "contract_version": "2.4.0",
3
+ "contract_version": "2.6.0",
4
4
  "scenarios": [
5
5
  "nominal",
6
6
  "recipient-experience-journey",