@fantastic.dev/better-stripe 0.28.3 → 0.28.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +3 -1
  3. package/dist/client/connect/payoutAdoptionTestHelpers.d.ts +96 -2
  4. package/dist/client/connect/payoutAdoptionTestHelpers.d.ts.map +1 -1
  5. package/dist/client/connect/payoutExecutionTestHelpers.d.ts +48 -1
  6. package/dist/client/connect/payoutExecutionTestHelpers.d.ts.map +1 -1
  7. package/dist/client/connect/payoutExpiry.d.ts +42 -0
  8. package/dist/client/connect/payoutExpiry.d.ts.map +1 -0
  9. package/dist/client/connect/payoutExpiry.js +93 -0
  10. package/dist/client/connect/payoutExpiry.js.map +1 -0
  11. package/dist/client/connect/payoutSyncTestHelpers.d.ts +38 -1
  12. package/dist/client/connect/payoutSyncTestHelpers.d.ts.map +1 -1
  13. package/dist/client/payoutPolicy.d.ts +18 -2
  14. package/dist/client/payoutPolicy.d.ts.map +1 -1
  15. package/dist/client/payoutPolicy.js +3 -25
  16. package/dist/client/payoutPolicy.js.map +1 -1
  17. package/dist/component/_generated/component.d.ts +116 -0
  18. package/dist/component/_generated/component.d.ts.map +1 -1
  19. package/dist/component/core/resetSafety.d.ts.map +1 -1
  20. package/dist/component/core/resetSafety.js +7 -1
  21. package/dist/component/core/resetSafety.js.map +1 -1
  22. package/dist/component/earnings/triggers.d.ts +22 -2
  23. package/dist/component/earnings/triggers.d.ts.map +1 -1
  24. package/dist/component/payoutPolicy/expiry.d.ts +78 -0
  25. package/dist/component/payoutPolicy/expiry.d.ts.map +1 -0
  26. package/dist/component/payoutPolicy/expiry.js +57 -0
  27. package/dist/component/payoutPolicy/expiry.js.map +1 -0
  28. package/dist/component/payoutPolicy/helpers.d.ts +10 -0
  29. package/dist/component/payoutPolicy/helpers.d.ts.map +1 -1
  30. package/dist/component/payoutPolicy/mutations.d.ts +77 -0
  31. package/dist/component/payoutPolicy/mutations.d.ts.map +1 -1
  32. package/dist/component/payoutPolicy/mutations.js +36 -3
  33. package/dist/component/payoutPolicy/mutations.js.map +1 -1
  34. package/dist/component/payoutPolicy/queries.d.ts +20 -0
  35. package/dist/component/payoutPolicy/queries.d.ts.map +1 -1
  36. package/dist/component/payoutPolicy/schema.d.ts +139 -2
  37. package/dist/component/payoutPolicy/schema.d.ts.map +1 -1
  38. package/dist/component/payoutPolicy/schema.js +12 -0
  39. package/dist/component/payoutPolicy/schema.js.map +1 -1
  40. package/dist/component/payoutRelease/helpers.d.ts +10 -0
  41. package/dist/component/payoutRelease/helpers.d.ts.map +1 -1
  42. package/dist/component/payoutWorker/queries.d.ts +20 -0
  43. package/dist/component/payoutWorker/queries.d.ts.map +1 -1
  44. package/dist/component/schema.d.ts +38 -1
  45. package/dist/react/workflows/PayoutProgress.d.ts.map +1 -1
  46. package/dist/react/workflows/PayoutProgress.js +2 -2
  47. package/dist/react/workflows/PayoutProgress.js.map +1 -1
  48. package/dist/react/workflows/payout-progress-state.d.ts +11 -1
  49. package/dist/react/workflows/payout-progress-state.d.ts.map +1 -1
  50. package/dist/react/workflows/payout-progress-state.js +26 -0
  51. package/dist/react/workflows/payout-progress-state.js.map +1 -1
  52. package/docs/react-workflows.md +11 -0
  53. package/docs/settlement.md +31 -3
  54. package/package.json +1 -1
  55. package/src/client/connect/payoutDeadline.test.ts +70 -0
  56. package/src/client/connect/payoutExpiry.ts +132 -0
  57. package/src/client/payoutPolicy.test.ts +196 -0
  58. package/src/client/payoutPolicy.ts +9 -23
  59. package/src/component/_generated/api.ts +2 -0
  60. package/src/component/_generated/component.ts +143 -0
  61. package/src/component/core/resetSafety.ts +49 -33
  62. package/src/component/payout-reset-safety.test.ts +28 -0
  63. package/src/component/payoutPolicy/expiry.ts +80 -0
  64. package/src/component/payoutPolicy/mutations.ts +47 -2
  65. package/src/component/payoutPolicy/schema.ts +17 -0
  66. package/src/react/workflows/PayoutProgress.test.tsx +42 -0
  67. package/src/react/workflows/PayoutProgress.tsx +25 -1
  68. package/src/react/workflows/payout-progress-state.ts +41 -1
package/CHANGELOG.md CHANGED
@@ -26,6 +26,12 @@
26
26
  - Remove internal tracker references from public documentation and add a
27
27
  regression check that prevents their reintroduction.
28
28
 
29
+ ## [0.28.4](https://github.com/FantasticDevHQ/better-stripe/compare/v0.28.3...v0.28.4) (2026-10-15)
30
+
31
+ ### Bug Fixes
32
+
33
+ - **payouts:** retain unresolved recovery after holding expiry ([#216](https://github.com/FantasticDevHQ/better-stripe/issues/216)) ([3ccb39a](https://github.com/FantasticDevHQ/better-stripe/commit/3ccb39adef0f4352cf2992ab73f20a93c84db75d))
34
+
29
35
  ## [0.28.3](https://github.com/FantasticDevHQ/better-stripe/compare/v0.28.2...v0.28.3) (2026-10-15)
30
36
 
31
37
  ### Bug Fixes
package/README.md CHANGED
@@ -70,7 +70,7 @@ claim execution are completed.
70
70
 
71
71
  ## Status
72
72
 
73
- **Version**: `0.28.3` <!-- x-release-please-version --> (pre-1.0). API may change between minor versions until 1.0.
73
+ **Version**: `0.28.4` <!-- x-release-please-version --> (pre-1.0). API may change between minor versions until 1.0.
74
74
 
75
75
  Used in production by its authors. Webhook pipeline is covered by unit tests and a live E2E harness (`npm run e2e:webhooks`) that fires real Stripe-signed events and asserts the ledger.
76
76
 
@@ -1736,3 +1736,5 @@ cursors, exact currency summaries, legacy backfill, payout failure details, and
1736
1736
  published-version adoption requirements.
1737
1737
 
1738
1738
  Custom recipient payout minimums are waived during the final day before the verified holding deadline. Provider limits and all financial checks still apply. See [settlement and deadline handling](docs/settlement.md) for worker cadence, retries and expiry limitations.
1739
+
1740
+ Holding-expiry recovery remains visible and retryable after schedule restoration. The package preserves unresolved provider balances and payout claims, and prevents reset or custom reactivation from erasing them. See [expiry recovery](docs/settlement.md) for operator handling.
@@ -618,6 +618,16 @@ export declare function setup(amounts?: number[], currency?: string): Promise<{
618
618
  accountId: string;
619
619
  country: string;
620
620
  holdDeadline?: number | undefined;
621
+ holdingExpiry?: {
622
+ balances?: {
623
+ available: number;
624
+ currency: string;
625
+ pending: number;
626
+ }[] | undefined;
627
+ deadline: number;
628
+ observedAt?: number | undefined;
629
+ status: "balance_remaining" | "claims_unresolved" | "no_held_balance" | "unverified";
630
+ } | undefined;
621
631
  mode: "custom" | "stripe_managed";
622
632
  operationKey: string;
623
633
  ownerKey: string;
@@ -660,7 +670,34 @@ export declare function setup(amounts?: number[], currency?: string): Promise<{
660
670
  monthlyDays: import("convex/values").VArray<number[] | undefined, import("convex/values").VFloat64<number, "required">, "optional">;
661
671
  }, "optional", "interval" | "monthlyDays" | "weeklyDays">;
662
672
  holdDeadline: import("convex/values").VFloat64<number | undefined, "optional">;
663
- }, "required", "accountId" | "country" | "holdDeadline" | "mode" | "operationKey" | "ownerKey" | "previousSchedule" | "previousSchedule.interval" | "previousSchedule.monthlyDays" | "previousSchedule.weeklyDays" | "revision" | "status" | "thresholds">, {
673
+ holdingExpiry: import("convex/values").VObject<{
674
+ balances?: {
675
+ available: number;
676
+ currency: string;
677
+ pending: number;
678
+ }[] | undefined;
679
+ deadline: number;
680
+ observedAt?: number | undefined;
681
+ status: "balance_remaining" | "claims_unresolved" | "no_held_balance" | "unverified";
682
+ } | undefined, {
683
+ deadline: import("convex/values").VFloat64<number, "required">;
684
+ status: import("convex/values").VUnion<"balance_remaining" | "claims_unresolved" | "no_held_balance" | "unverified", [import("convex/values").VLiteral<"unverified", "required">, import("convex/values").VLiteral<"balance_remaining", "required">, import("convex/values").VLiteral<"claims_unresolved", "required">, import("convex/values").VLiteral<"no_held_balance", "required">], "required", never>;
685
+ observedAt: import("convex/values").VFloat64<number | undefined, "optional">;
686
+ balances: import("convex/values").VArray<{
687
+ available: number;
688
+ currency: string;
689
+ pending: number;
690
+ }[] | undefined, import("convex/values").VObject<{
691
+ available: number;
692
+ currency: string;
693
+ pending: number;
694
+ }, {
695
+ currency: import("convex/values").VString<string, "required">;
696
+ available: import("convex/values").VFloat64<number, "required">;
697
+ pending: import("convex/values").VFloat64<number, "required">;
698
+ }, "required", "available" | "currency" | "pending">, "optional">;
699
+ }, "optional", "balances" | "deadline" | "observedAt" | "status">;
700
+ }, "required", "accountId" | "country" | "holdDeadline" | "holdingExpiry" | "holdingExpiry.balances" | "holdingExpiry.deadline" | "holdingExpiry.observedAt" | "holdingExpiry.status" | "mode" | "operationKey" | "ownerKey" | "previousSchedule" | "previousSchedule.interval" | "previousSchedule.monthlyDays" | "previousSchedule.weeklyDays" | "revision" | "status" | "thresholds">, {
664
701
  by_account: ["accountId", "_creationTime"];
665
702
  by_deadline: ["holdDeadline", "_creationTime"];
666
703
  by_mode_status: ["mode", "status", "_creationTime"];
@@ -1758,6 +1795,16 @@ export declare function setup(amounts?: number[], currency?: string): Promise<{
1758
1795
  accountId: string;
1759
1796
  country: string;
1760
1797
  holdDeadline?: number | undefined;
1798
+ holdingExpiry?: {
1799
+ balances?: {
1800
+ available: number;
1801
+ currency: string;
1802
+ pending: number;
1803
+ }[] | undefined;
1804
+ deadline: number;
1805
+ observedAt?: number | undefined;
1806
+ status: "balance_remaining" | "claims_unresolved" | "no_held_balance" | "unverified";
1807
+ } | undefined;
1761
1808
  mode: "custom" | "stripe_managed";
1762
1809
  operationKey: string;
1763
1810
  ownerKey: string;
@@ -2413,6 +2460,16 @@ export declare function historical(currency?: string): Promise<{
2413
2460
  accountId: string;
2414
2461
  country: string;
2415
2462
  holdDeadline?: number | undefined;
2463
+ holdingExpiry?: {
2464
+ balances?: {
2465
+ available: number;
2466
+ currency: string;
2467
+ pending: number;
2468
+ }[] | undefined;
2469
+ deadline: number;
2470
+ observedAt?: number | undefined;
2471
+ status: "balance_remaining" | "claims_unresolved" | "no_held_balance" | "unverified";
2472
+ } | undefined;
2416
2473
  mode: "custom" | "stripe_managed";
2417
2474
  operationKey: string;
2418
2475
  ownerKey: string;
@@ -2455,7 +2512,34 @@ export declare function historical(currency?: string): Promise<{
2455
2512
  monthlyDays: import("convex/values").VArray<number[] | undefined, import("convex/values").VFloat64<number, "required">, "optional">;
2456
2513
  }, "optional", "interval" | "monthlyDays" | "weeklyDays">;
2457
2514
  holdDeadline: import("convex/values").VFloat64<number | undefined, "optional">;
2458
- }, "required", "accountId" | "country" | "holdDeadline" | "mode" | "operationKey" | "ownerKey" | "previousSchedule" | "previousSchedule.interval" | "previousSchedule.monthlyDays" | "previousSchedule.weeklyDays" | "revision" | "status" | "thresholds">, {
2515
+ holdingExpiry: import("convex/values").VObject<{
2516
+ balances?: {
2517
+ available: number;
2518
+ currency: string;
2519
+ pending: number;
2520
+ }[] | undefined;
2521
+ deadline: number;
2522
+ observedAt?: number | undefined;
2523
+ status: "balance_remaining" | "claims_unresolved" | "no_held_balance" | "unverified";
2524
+ } | undefined, {
2525
+ deadline: import("convex/values").VFloat64<number, "required">;
2526
+ status: import("convex/values").VUnion<"balance_remaining" | "claims_unresolved" | "no_held_balance" | "unverified", [import("convex/values").VLiteral<"unverified", "required">, import("convex/values").VLiteral<"balance_remaining", "required">, import("convex/values").VLiteral<"claims_unresolved", "required">, import("convex/values").VLiteral<"no_held_balance", "required">], "required", never>;
2527
+ observedAt: import("convex/values").VFloat64<number | undefined, "optional">;
2528
+ balances: import("convex/values").VArray<{
2529
+ available: number;
2530
+ currency: string;
2531
+ pending: number;
2532
+ }[] | undefined, import("convex/values").VObject<{
2533
+ available: number;
2534
+ currency: string;
2535
+ pending: number;
2536
+ }, {
2537
+ currency: import("convex/values").VString<string, "required">;
2538
+ available: import("convex/values").VFloat64<number, "required">;
2539
+ pending: import("convex/values").VFloat64<number, "required">;
2540
+ }, "required", "available" | "currency" | "pending">, "optional">;
2541
+ }, "optional", "balances" | "deadline" | "observedAt" | "status">;
2542
+ }, "required", "accountId" | "country" | "holdDeadline" | "holdingExpiry" | "holdingExpiry.balances" | "holdingExpiry.deadline" | "holdingExpiry.observedAt" | "holdingExpiry.status" | "mode" | "operationKey" | "ownerKey" | "previousSchedule" | "previousSchedule.interval" | "previousSchedule.monthlyDays" | "previousSchedule.weeklyDays" | "revision" | "status" | "thresholds">, {
2459
2543
  by_account: ["accountId", "_creationTime"];
2460
2544
  by_deadline: ["holdDeadline", "_creationTime"];
2461
2545
  by_mode_status: ["mode", "status", "_creationTime"];
@@ -3553,6 +3637,16 @@ export declare function historical(currency?: string): Promise<{
3553
3637
  accountId: string;
3554
3638
  country: string;
3555
3639
  holdDeadline?: number | undefined;
3640
+ holdingExpiry?: {
3641
+ balances?: {
3642
+ available: number;
3643
+ currency: string;
3644
+ pending: number;
3645
+ }[] | undefined;
3646
+ deadline: number;
3647
+ observedAt?: number | undefined;
3648
+ status: "balance_remaining" | "claims_unresolved" | "no_held_balance" | "unverified";
3649
+ } | undefined;
3556
3650
  mode: "custom" | "stripe_managed";
3557
3651
  operationKey: string;
3558
3652
  ownerKey: string;
@@ -1 +1 @@
1
- {"version":3,"file":"payoutAdoptionTestHelpers.d.ts","sourceRoot":"","sources":["../../../src/client/connect/payoutAdoptionTestHelpers.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YArJ3C,oBAAoB;;;;;;;;;;;YAapB,QAAQ,6BAAmB,MAAM;;;;;;;;;YAYjC,aAAa;;;;;;YAGb,QAAQ,6BAAmB,MAAM;;;;;;;;;;;YAcjC,IAAI,iCAAuB;gBAAE,MAAM,CAAC,EAAE,MAAM,CAAC;gBAAC,KAAK,CAAC,EAAE,MAAM,CAAA;aAAE;;;;;;;;;;;;;;;;YAM9D,QAAQ,6BAAmB,MAAM;;;;;;;;;;;;;;;YAKjC,QAAQ;;;;;wBAQA,IAAI;;;;;;;YAUZ,IAAI;;;;YAIJ,QAAQ,8BAAoB,MAAM;YAGlC,MAAM,iCACW;gBACb,MAAM,EAAE,MAAM,CAAC;gBACf,QAAQ,EAAE,MAAM,CAAC;gBACjB,QAAQ,EAAE,MAAM,CAAC;aAClB;;;;gBA2CG,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDrB"}
1
+ {"version":3,"file":"payoutAdoptionTestHelpers.d.ts","sourceRoot":"","sources":["../../../src/client/connect/payoutAdoptionTestHelpers.ts"],"names":[],"mappings":"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D,wBAAsB,UAAU,CAAC,QAAQ,SAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YArJ3C,oBAAoB;;;;;;;;;;;YAapB,QAAQ,6BAAmB,MAAM;;;;;;;;;YAYjC,aAAa;;;;;;YAGb,QAAQ,6BAAmB,MAAM;;;;;;;;;;;YAcjC,IAAI,iCAAuB;gBAAE,MAAM,CAAC,EAAE,MAAM,CAAC;gBAAC,KAAK,CAAC,EAAE,MAAM,CAAA;aAAE;;;;;;;;;;;;;;;;YAM9D,QAAQ,6BAAmB,MAAM;;;;;;;;;;;;;;;YAKjC,QAAQ;;;;;wBAQA,IAAI;;;;;;;YAUZ,IAAI;;;;YAIJ,QAAQ,8BAAoB,MAAM;YAGlC,MAAM,iCACW;gBACb,MAAM,EAAE,MAAM,CAAC;gBACf,QAAQ,EAAE,MAAM,CAAC;gBACjB,QAAQ,EAAE,MAAM,CAAC;aAClB;;;;gBA2CG,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDrB"}
@@ -619,6 +619,16 @@ export declare function setup(amounts?: number[]): Promise<{
619
619
  accountId: string;
620
620
  country: string;
621
621
  holdDeadline?: number | undefined;
622
+ holdingExpiry?: {
623
+ balances?: {
624
+ available: number;
625
+ currency: string;
626
+ pending: number;
627
+ }[] | undefined;
628
+ deadline: number;
629
+ observedAt?: number | undefined;
630
+ status: "balance_remaining" | "claims_unresolved" | "no_held_balance" | "unverified";
631
+ } | undefined;
622
632
  mode: "custom" | "stripe_managed";
623
633
  operationKey: string;
624
634
  ownerKey: string;
@@ -661,7 +671,34 @@ export declare function setup(amounts?: number[]): Promise<{
661
671
  monthlyDays: import("convex/values").VArray<number[] | undefined, import("convex/values").VFloat64<number, "required">, "optional">;
662
672
  }, "optional", "interval" | "monthlyDays" | "weeklyDays">;
663
673
  holdDeadline: import("convex/values").VFloat64<number | undefined, "optional">;
664
- }, "required", "accountId" | "country" | "holdDeadline" | "mode" | "operationKey" | "ownerKey" | "previousSchedule" | "previousSchedule.interval" | "previousSchedule.monthlyDays" | "previousSchedule.weeklyDays" | "revision" | "status" | "thresholds">, {
674
+ holdingExpiry: import("convex/values").VObject<{
675
+ balances?: {
676
+ available: number;
677
+ currency: string;
678
+ pending: number;
679
+ }[] | undefined;
680
+ deadline: number;
681
+ observedAt?: number | undefined;
682
+ status: "balance_remaining" | "claims_unresolved" | "no_held_balance" | "unverified";
683
+ } | undefined, {
684
+ deadline: import("convex/values").VFloat64<number, "required">;
685
+ status: import("convex/values").VUnion<"balance_remaining" | "claims_unresolved" | "no_held_balance" | "unverified", [import("convex/values").VLiteral<"unverified", "required">, import("convex/values").VLiteral<"balance_remaining", "required">, import("convex/values").VLiteral<"claims_unresolved", "required">, import("convex/values").VLiteral<"no_held_balance", "required">], "required", never>;
686
+ observedAt: import("convex/values").VFloat64<number | undefined, "optional">;
687
+ balances: import("convex/values").VArray<{
688
+ available: number;
689
+ currency: string;
690
+ pending: number;
691
+ }[] | undefined, import("convex/values").VObject<{
692
+ available: number;
693
+ currency: string;
694
+ pending: number;
695
+ }, {
696
+ currency: import("convex/values").VString<string, "required">;
697
+ available: import("convex/values").VFloat64<number, "required">;
698
+ pending: import("convex/values").VFloat64<number, "required">;
699
+ }, "required", "available" | "currency" | "pending">, "optional">;
700
+ }, "optional", "balances" | "deadline" | "observedAt" | "status">;
701
+ }, "required", "accountId" | "country" | "holdDeadline" | "holdingExpiry" | "holdingExpiry.balances" | "holdingExpiry.deadline" | "holdingExpiry.observedAt" | "holdingExpiry.status" | "mode" | "operationKey" | "ownerKey" | "previousSchedule" | "previousSchedule.interval" | "previousSchedule.monthlyDays" | "previousSchedule.weeklyDays" | "revision" | "status" | "thresholds">, {
665
702
  by_account: ["accountId", "_creationTime"];
666
703
  by_deadline: ["holdDeadline", "_creationTime"];
667
704
  by_mode_status: ["mode", "status", "_creationTime"];
@@ -1750,6 +1787,16 @@ export declare function setup(amounts?: number[]): Promise<{
1750
1787
  accountId: string;
1751
1788
  country: string;
1752
1789
  holdDeadline?: number | undefined;
1790
+ holdingExpiry?: {
1791
+ balances?: {
1792
+ available: number;
1793
+ currency: string;
1794
+ pending: number;
1795
+ }[] | undefined;
1796
+ deadline: number;
1797
+ observedAt?: number | undefined;
1798
+ status: "balance_remaining" | "claims_unresolved" | "no_held_balance" | "unverified";
1799
+ } | undefined;
1753
1800
  mode: "custom" | "stripe_managed";
1754
1801
  operationKey: string;
1755
1802
  ownerKey: string;
@@ -1 +1 @@
1
- {"version":3,"file":"payoutExecutionTestHelpers.d.ts","sourceRoot":"","sources":["../../../src/client/connect/payoutExecutionTestHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payoutExecutionTestHelpers.d.ts","sourceRoot":"","sources":["../../../src/client/connect/payoutExecutionTestHelpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type Stripe from "stripe";
2
+ import type { Infer } from "convex/values";
3
+ import type { Component, RunCtx } from "../helpers.js";
4
+ import type { policyDoc } from "../../component/payoutPolicy/schema.js";
5
+ type Scope = {
6
+ accountId: string;
7
+ ownerKey: string;
8
+ };
9
+ type Policy = Infer<typeof policyDoc>;
10
+ /** Restore controls, then separately verify remaining balances and durable claims. Never creates a payout. */
11
+ export declare function expirePayoutPolicy<R extends {
12
+ status: string;
13
+ }, P extends {
14
+ status: string;
15
+ }>(stripe: Stripe, component: Component, ctx: RunCtx, scope: Scope, client: {
16
+ get(ctx: RunCtx, scope: Scope): Promise<Policy | null>;
17
+ apply(ctx: RunCtx, args: Scope & {
18
+ operationKey: string;
19
+ }): Promise<R>;
20
+ prepare(ctx: RunCtx, args: Scope & {
21
+ operationKey: string;
22
+ expectedRevision: number;
23
+ mode: "stripe_managed";
24
+ thresholds: [];
25
+ }): Promise<P>;
26
+ }): Promise<P | R | {
27
+ status: "not_due";
28
+ } | {
29
+ status: "expiry_unresolved";
30
+ holdingExpiry: {
31
+ balances?: {
32
+ available: number;
33
+ currency: string;
34
+ pending: number;
35
+ }[] | undefined;
36
+ deadline: number;
37
+ observedAt?: number | undefined;
38
+ status: "balance_remaining" | "claims_unresolved" | "no_held_balance" | "unverified";
39
+ };
40
+ }>;
41
+ export {};
42
+ //# sourceMappingURL=payoutExpiry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payoutExpiry.d.ts","sourceRoot":"","sources":["../../../src/client/connect/payoutExpiry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACxE,KAAK,KAAK,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AACrD,KAAK,MAAM,GAAG,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AA6BtC,8GAA8G;AAC9G,wBAAsB,kBAAkB,CACtC,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EAC5B,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EAE5B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE;IACN,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACvD,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACvE,OAAO,CACL,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,KAAK,GAAG;QACZ,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,IAAI,EAAE,gBAAgB,CAAC;QACvB,UAAU,EAAE,EAAE,CAAC;KAChB,GACA,OAAO,CAAC,CAAC,CAAC,CAAC;CACf;YAKkB,SAAS;;YAqClB,mBAAmB;;;;;;;;;;;GAgC9B"}
@@ -0,0 +1,93 @@
1
+ import { runMutationOrThrow } from "../helpers.js";
2
+ import { componentRef } from "../webhooks/helpers.js";
3
+ function expiryBalances(balance) {
4
+ const values = new Map();
5
+ for (const type of ["available", "pending"]) {
6
+ const seen = new Set();
7
+ for (const row of balance[type]) {
8
+ if (!/^[a-z]{3}$/.test(row.currency) ||
9
+ !Number.isSafeInteger(row.amount) ||
10
+ seen.has(row.currency))
11
+ throw new Error("Invalid expiry balance.");
12
+ seen.add(row.currency);
13
+ const value = values.get(row.currency) ?? {
14
+ currency: row.currency,
15
+ available: 0,
16
+ pending: 0,
17
+ };
18
+ value[type] = row.amount;
19
+ values.set(row.currency, value);
20
+ }
21
+ }
22
+ return [...values.values()].sort((a, b) => a.currency.localeCompare(b.currency));
23
+ }
24
+ /** Restore controls, then separately verify remaining balances and durable claims. Never creates a payout. */
25
+ export async function expirePayoutPolicy(stripe, component, ctx, scope, client) {
26
+ scope = { accountId: scope.accountId, ownerKey: scope.ownerKey };
27
+ let policy = await client.get(ctx, scope);
28
+ if (!policy?.holdDeadline || policy.holdDeadline > Date.now())
29
+ return { status: "not_due" };
30
+ if (policy.mode === "custom")
31
+ policy = (await runMutationOrThrow(ctx, componentRef(component, "payoutPolicy/mutations/beginHoldingExpiry"), scope));
32
+ if (policy.status === "changing") {
33
+ const result = await client.apply(ctx, {
34
+ ...scope,
35
+ operationKey: policy.operationKey,
36
+ });
37
+ if (result.status !== "ready")
38
+ return result;
39
+ policy = await client.get(ctx, scope);
40
+ }
41
+ if (!policy)
42
+ return { status: "not_due" };
43
+ if (policy.mode === "custom") {
44
+ const operationKey = `bs:payout-expiry:${scope.accountId}:${policy.revision}`;
45
+ const prepared = await client.prepare(ctx, {
46
+ ...scope,
47
+ operationKey,
48
+ expectedRevision: policy.revision,
49
+ mode: "stripe_managed",
50
+ thresholds: [],
51
+ });
52
+ if (prepared.status !== "prepared")
53
+ return prepared;
54
+ const applied = await client.apply(ctx, { ...scope, operationKey });
55
+ if (applied.status !== "ready")
56
+ return applied;
57
+ policy = await client.get(ctx, scope);
58
+ }
59
+ if (!policy?.holdingExpiry ||
60
+ policy.mode !== "stripe_managed" ||
61
+ policy.status !== "ready")
62
+ return { status: "not_due" };
63
+ const unresolved = {
64
+ status: "expiry_unresolved",
65
+ holdingExpiry: policy.holdingExpiry,
66
+ };
67
+ let balances;
68
+ const observedAt = Date.now();
69
+ try {
70
+ balances = expiryBalances(await stripe.balance.retrieve(undefined, {
71
+ stripeAccount: scope.accountId,
72
+ }));
73
+ }
74
+ catch {
75
+ return unresolved;
76
+ }
77
+ if (Date.now() - observedAt > 30000)
78
+ return unresolved;
79
+ const observed = (await runMutationOrThrow(ctx, componentRef(component, "payoutPolicy/mutations/observeHoldingExpiry"), {
80
+ ...scope,
81
+ expectedRevision: policy.revision,
82
+ deadline: policy.holdingExpiry.deadline,
83
+ observedAt,
84
+ balances,
85
+ }));
86
+ if (observed.holdingExpiry.status !== "no_held_balance")
87
+ return {
88
+ status: "expiry_unresolved",
89
+ holdingExpiry: observed.holdingExpiry,
90
+ };
91
+ return client.apply(ctx, { ...scope, operationKey: policy.operationKey });
92
+ }
93
+ //# sourceMappingURL=payoutExpiry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payoutExpiry.js","sourceRoot":"","sources":["../../../src/client/connect/payoutExpiry.ts"],"names":[],"mappings":"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"}
@@ -623,6 +623,16 @@ export declare function setup(scope?: Scope): Promise<{
623
623
  accountId: string;
624
624
  country: string;
625
625
  holdDeadline?: number | undefined;
626
+ holdingExpiry?: {
627
+ balances?: {
628
+ available: number;
629
+ currency: string;
630
+ pending: number;
631
+ }[] | undefined;
632
+ deadline: number;
633
+ observedAt?: number | undefined;
634
+ status: "balance_remaining" | "claims_unresolved" | "no_held_balance" | "unverified";
635
+ } | undefined;
626
636
  mode: "custom" | "stripe_managed";
627
637
  operationKey: string;
628
638
  ownerKey: string;
@@ -665,7 +675,34 @@ export declare function setup(scope?: Scope): Promise<{
665
675
  monthlyDays: import("convex/values").VArray<number[] | undefined, import("convex/values").VFloat64<number, "required">, "optional">;
666
676
  }, "optional", "interval" | "monthlyDays" | "weeklyDays">;
667
677
  holdDeadline: import("convex/values").VFloat64<number | undefined, "optional">;
668
- }, "required", "accountId" | "country" | "holdDeadline" | "mode" | "operationKey" | "ownerKey" | "previousSchedule" | "previousSchedule.interval" | "previousSchedule.monthlyDays" | "previousSchedule.weeklyDays" | "revision" | "status" | "thresholds">, {
678
+ holdingExpiry: import("convex/values").VObject<{
679
+ balances?: {
680
+ available: number;
681
+ currency: string;
682
+ pending: number;
683
+ }[] | undefined;
684
+ deadline: number;
685
+ observedAt?: number | undefined;
686
+ status: "balance_remaining" | "claims_unresolved" | "no_held_balance" | "unverified";
687
+ } | undefined, {
688
+ deadline: import("convex/values").VFloat64<number, "required">;
689
+ status: import("convex/values").VUnion<"balance_remaining" | "claims_unresolved" | "no_held_balance" | "unverified", [import("convex/values").VLiteral<"unverified", "required">, import("convex/values").VLiteral<"balance_remaining", "required">, import("convex/values").VLiteral<"claims_unresolved", "required">, import("convex/values").VLiteral<"no_held_balance", "required">], "required", never>;
690
+ observedAt: import("convex/values").VFloat64<number | undefined, "optional">;
691
+ balances: import("convex/values").VArray<{
692
+ available: number;
693
+ currency: string;
694
+ pending: number;
695
+ }[] | undefined, import("convex/values").VObject<{
696
+ available: number;
697
+ currency: string;
698
+ pending: number;
699
+ }, {
700
+ currency: import("convex/values").VString<string, "required">;
701
+ available: import("convex/values").VFloat64<number, "required">;
702
+ pending: import("convex/values").VFloat64<number, "required">;
703
+ }, "required", "available" | "currency" | "pending">, "optional">;
704
+ }, "optional", "balances" | "deadline" | "observedAt" | "status">;
705
+ }, "required", "accountId" | "country" | "holdDeadline" | "holdingExpiry" | "holdingExpiry.balances" | "holdingExpiry.deadline" | "holdingExpiry.observedAt" | "holdingExpiry.status" | "mode" | "operationKey" | "ownerKey" | "previousSchedule" | "previousSchedule.interval" | "previousSchedule.monthlyDays" | "previousSchedule.weeklyDays" | "revision" | "status" | "thresholds">, {
669
706
  by_account: ["accountId", "_creationTime"];
670
707
  by_deadline: ["holdDeadline", "_creationTime"];
671
708
  by_mode_status: ["mode", "status", "_creationTime"];
@@ -1 +1 @@
1
- {"version":3,"file":"payoutSyncTestHelpers.d.ts","sourceRoot":"","sources":["../../../src/client/connect/payoutSyncTestHelpers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAIvD,eAAO,MAAM,SAAS,EAIN,SAAS,CAAC;AAC1B,MAAM,MAAM,KAAK,GACf;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAClE,KAAK,IAAI,GAAG,CACV,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,KAC3C,OAAO,CAAC,OAAO,CAAC,CAAC;AACtB,wBAAsB,SAAS,kBAU9B;AACD,wBAAsB,KAAK,CACzB,KAAK,GAAE,KAAsD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAKxC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkCzC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAQtC"}
1
+ {"version":3,"file":"payoutSyncTestHelpers.d.ts","sourceRoot":"","sources":["../../../src/client/connect/payoutSyncTestHelpers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAIvD,eAAO,MAAM,SAAS,EAIN,SAAS,CAAC;AAC1B,MAAM,MAAM,KAAK,GACf;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAClE,KAAK,IAAI,GAAG,CACV,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,KAC3C,OAAO,CAAC,OAAO,CAAC,CAAC;AACtB,wBAAsB,SAAS,kBAU9B;AACD,wBAAsB,KAAK,CACzB,KAAK,GAAE,KAAsD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAKxC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkCzC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAQtC"}
@@ -1,3 +1,4 @@
1
+ export { holdingExpiry as payoutHoldingExpiryValidator } from "../component/payoutPolicy/schema.js";
1
2
  import { type PayoutPreviewOptions } from "./connect/payoutPreview.js";
2
3
  export type * from "./connect/payoutPreview.js";
3
4
  export { previewResult as payoutPreviewValidator } from "../component/payoutRelease/preview.js";
@@ -156,6 +157,23 @@ export declare class PayoutPolicyClient {
156
157
  } | PayoutPolicyLimitation>;
157
158
  /** A host cron must page due() and call expire(); payout execution is a separate boundary. */
158
159
  expire(ctx: RunCtx, scope: PayoutPolicyScope): Promise<PayoutPolicyLimitation | {
160
+ status: "not_due";
161
+ } | {
162
+ status: "expiry_unresolved";
163
+ holdingExpiry: {
164
+ balances?: {
165
+ available: number;
166
+ currency: string;
167
+ pending: number;
168
+ }[] | undefined;
169
+ deadline: number;
170
+ observedAt?: number | undefined;
171
+ status: "balance_remaining" | "claims_unresolved" | "no_held_balance" | "unverified";
172
+ };
173
+ } | {
174
+ status: "prepared";
175
+ operation: PayoutPolicyOperation;
176
+ } | {
159
177
  status: "ready";
160
178
  operation: PayoutPolicyOperation;
161
179
  } | {
@@ -163,8 +181,6 @@ export declare class PayoutPolicyClient {
163
181
  } | {
164
182
  status: "canceled";
165
183
  operation: PayoutPolicyOperation;
166
- } | {
167
- status: "not_due";
168
184
  }>;
169
185
  }
170
186
  //# sourceMappingURL=payoutPolicy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"payoutPolicy.d.ts","sourceRoot":"","sources":["../../src/client/payoutPolicy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payoutPolicy.d.ts","sourceRoot":"","sources":["../../src/client/payoutPolicy.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ export { holdingExpiry as payoutHoldingExpiryValidator } from "../component/payoutPolicy/schema.js";
2
+ import { expirePayoutPolicy } from "./connect/payoutExpiry.js";
1
3
  import { previewRecipientPayout, } from "./connect/payoutPreview.js";
2
4
  export { previewResult as payoutPreviewValidator } from "../component/payoutRelease/preview.js";
3
5
  import { PayoutWorkerClient } from "./connect/payoutWorker.js";
@@ -334,31 +336,7 @@ export class PayoutPolicyClient {
334
336
  }
335
337
  /** A host cron must page due() and call expire(); payout execution is a separate boundary. */
336
338
  async expire(ctx, scope) {
337
- let policy = await this.get(ctx, scope);
338
- if (!policy?.holdDeadline || policy.holdDeadline > Date.now())
339
- return { status: "not_due" };
340
- if (policy.status === "changing") {
341
- const result = await this.apply(ctx, {
342
- ...scope,
343
- operationKey: policy.operationKey,
344
- });
345
- if (result.status !== "ready")
346
- return result;
347
- policy = await this.get(ctx, scope);
348
- }
349
- if (!policy || policy.mode !== "custom")
350
- return { status: "not_due" };
351
- const operationKey = `bs:payout-expiry:${scope.accountId}:${policy.revision}`;
352
- const prepared = await this.prepare(ctx, {
353
- ...scope,
354
- operationKey,
355
- expectedRevision: policy.revision,
356
- mode: "stripe_managed",
357
- thresholds: [],
358
- });
359
- if (prepared.status !== "prepared")
360
- return prepared;
361
- return this.apply(ctx, { ...scope, operationKey });
339
+ return expirePayoutPolicy(this.provider(), this.component, ctx, scope, this);
362
340
  }
363
341
  }
364
342
  //# sourceMappingURL=payoutPolicy.js.map