@fantastic.dev/better-stripe 0.22.0 → 0.23.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.
Files changed (91) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +5 -3
  3. package/dist/client/connect/payoutActivationProof.d.ts +16 -0
  4. package/dist/client/connect/payoutActivationProof.d.ts.map +1 -0
  5. package/dist/client/connect/payoutActivationProof.js +72 -0
  6. package/dist/client/connect/payoutActivationProof.js.map +1 -0
  7. package/dist/client/connect/payoutAdoption.d.ts +35 -0
  8. package/dist/client/connect/payoutAdoption.d.ts.map +1 -0
  9. package/dist/client/connect/payoutAdoption.js +230 -0
  10. package/dist/client/connect/payoutAdoption.js.map +1 -0
  11. package/dist/client/connect/payoutAdoptionAge.d.ts +19 -0
  12. package/dist/client/connect/payoutAdoptionAge.d.ts.map +1 -0
  13. package/dist/client/connect/payoutAdoptionAge.js +56 -0
  14. package/dist/client/connect/payoutAdoptionAge.js.map +1 -0
  15. package/dist/client/connect/payoutAdoptionAllocation.d.ts +24 -0
  16. package/dist/client/connect/payoutAdoptionAllocation.d.ts.map +1 -0
  17. package/dist/client/connect/payoutAdoptionAllocation.js +78 -0
  18. package/dist/client/connect/payoutAdoptionAllocation.js.map +1 -0
  19. package/dist/client/connect/payoutReconciliation.d.ts.map +1 -1
  20. package/dist/client/connect/payoutReconciliation.js +4 -2
  21. package/dist/client/connect/payoutReconciliation.js.map +1 -1
  22. package/dist/client/payoutPolicy.d.ts +7 -1
  23. package/dist/client/payoutPolicy.d.ts.map +1 -1
  24. package/dist/client/payoutPolicy.js +78 -7
  25. package/dist/client/payoutPolicy.js.map +1 -1
  26. package/dist/component/_generated/component.d.ts +196 -0
  27. package/dist/component/_generated/component.d.ts.map +1 -1
  28. package/dist/component/earnings/triggers.d.ts +38 -4
  29. package/dist/component/earnings/triggers.d.ts.map +1 -1
  30. package/dist/component/payoutPolicy/adoption.d.ts +9 -0
  31. package/dist/component/payoutPolicy/adoption.d.ts.map +1 -0
  32. package/dist/component/payoutPolicy/adoption.js +45 -0
  33. package/dist/component/payoutPolicy/adoption.js.map +1 -0
  34. package/dist/component/payoutPolicy/mutations.d.ts +96 -0
  35. package/dist/component/payoutPolicy/mutations.d.ts.map +1 -1
  36. package/dist/component/payoutPolicy/mutations.js +38 -5
  37. package/dist/component/payoutPolicy/mutations.js.map +1 -1
  38. package/dist/component/payoutPolicy/queries.d.ts +16 -0
  39. package/dist/component/payoutPolicy/queries.d.ts.map +1 -1
  40. package/dist/component/payoutPolicy/schema.d.ts +299 -2
  41. package/dist/component/payoutPolicy/schema.d.ts.map +1 -1
  42. package/dist/component/payoutPolicy/schema.js +7 -0
  43. package/dist/component/payoutPolicy/schema.js.map +1 -1
  44. package/dist/component/payoutRelease/adoption.d.ts +269 -0
  45. package/dist/component/payoutRelease/adoption.d.ts.map +1 -0
  46. package/dist/component/payoutRelease/adoption.js +197 -0
  47. package/dist/component/payoutRelease/adoption.js.map +1 -0
  48. package/dist/component/payoutRelease/helpers.d.ts +3 -0
  49. package/dist/component/payoutRelease/helpers.d.ts.map +1 -1
  50. package/dist/component/payoutRelease/helpers.js +20 -0
  51. package/dist/component/payoutRelease/helpers.js.map +1 -1
  52. package/dist/component/payoutRelease/mutations.d.ts +81 -0
  53. package/dist/component/payoutRelease/mutations.d.ts.map +1 -1
  54. package/dist/component/payoutRelease/mutations.js +6 -0
  55. package/dist/component/payoutRelease/mutations.js.map +1 -1
  56. package/dist/component/payoutRelease/observation.d.ts +18 -0
  57. package/dist/component/payoutRelease/observation.d.ts.map +1 -0
  58. package/dist/component/payoutRelease/observation.js +11 -0
  59. package/dist/component/payoutRelease/observation.js.map +1 -0
  60. package/dist/component/payoutRelease/queries.d.ts +3 -0
  61. package/dist/component/payoutRelease/queries.d.ts.map +1 -1
  62. package/dist/component/payoutRelease/schema.d.ts +8 -19
  63. package/dist/component/payoutRelease/schema.d.ts.map +1 -1
  64. package/dist/component/payoutRelease/schema.js +3 -9
  65. package/dist/component/payoutRelease/schema.js.map +1 -1
  66. package/dist/component/schema.d.ts +73 -2
  67. package/docs/settlement.md +121 -40
  68. package/package.json +1 -1
  69. package/src/client/connect/payoutActivationProof.ts +101 -0
  70. package/src/client/connect/payoutAdoption.test.ts +421 -0
  71. package/src/client/connect/payoutAdoption.ts +330 -0
  72. package/src/client/connect/payoutAdoptionAge.test.ts +89 -0
  73. package/src/client/connect/payoutAdoptionAge.ts +74 -0
  74. package/src/client/connect/payoutAdoptionAllocation.test.ts +132 -0
  75. package/src/client/connect/payoutAdoptionAllocation.ts +106 -0
  76. package/src/client/connect/payoutReconciliation.test.ts +16 -0
  77. package/src/client/connect/payoutReconciliation.ts +6 -2
  78. package/src/client/payoutPolicy.test.ts +16 -0
  79. package/src/client/payoutPolicy.ts +107 -5
  80. package/src/component/_generated/api.ts +6 -0
  81. package/src/component/_generated/component.ts +192 -1
  82. package/src/component/payout-adoption.test.ts +272 -0
  83. package/src/component/payout-policy-adoption.test.ts +131 -0
  84. package/src/component/payoutPolicy/adoption.ts +76 -0
  85. package/src/component/payoutPolicy/mutations.ts +46 -3
  86. package/src/component/payoutPolicy/schema.ts +9 -0
  87. package/src/component/payoutRelease/adoption.ts +262 -0
  88. package/src/component/payoutRelease/helpers.ts +21 -0
  89. package/src/component/payoutRelease/mutations.ts +10 -0
  90. package/src/component/payoutRelease/observation.ts +10 -0
  91. package/src/component/payoutRelease/schema.ts +3 -9
@@ -0,0 +1,269 @@
1
+ import { type Infer } from "convex/values";
2
+ import type { MutationCtx } from "../_generated/server.js";
3
+ export declare const historicalArgs: {
4
+ accountId: import("convex/values").VString<string, "required">;
5
+ ownerKey: import("convex/values").VString<string, "required">;
6
+ expectedRevision: import("convex/values").VFloat64<number, "required">;
7
+ payout: import("convex/values").VObject<{
8
+ amount: number;
9
+ created: number;
10
+ currency: string;
11
+ debitFee: number;
12
+ debitTransactionId: string;
13
+ destinationId: string;
14
+ returnFee?: number | undefined;
15
+ returnTransactionId?: string | undefined;
16
+ status: "paid" | "returned";
17
+ stripePayoutId: string;
18
+ }, {
19
+ stripePayoutId: import("convex/values").VString<string, "required">;
20
+ amount: import("convex/values").VFloat64<number, "required">;
21
+ currency: import("convex/values").VString<string, "required">;
22
+ created: import("convex/values").VFloat64<number, "required">;
23
+ destinationId: import("convex/values").VString<string, "required">;
24
+ status: import("convex/values").VUnion<"paid" | "returned", [import("convex/values").VLiteral<"paid", "required">, import("convex/values").VLiteral<"returned", "required">], "required", never>;
25
+ debitTransactionId: import("convex/values").VString<string, "required">;
26
+ debitFee: import("convex/values").VFloat64<number, "required">;
27
+ returnTransactionId: import("convex/values").VString<string | undefined, "optional">;
28
+ returnFee: import("convex/values").VFloat64<number | undefined, "optional">;
29
+ }, "required", "amount" | "created" | "currency" | "debitFee" | "debitTransactionId" | "destinationId" | "returnFee" | "returnTransactionId" | "status" | "stripePayoutId">;
30
+ allocations: import("convex/values").VArray<{
31
+ amount: number;
32
+ role?: "affiliate" | "other" | "store" | undefined;
33
+ stripeTransferId: string;
34
+ }[], import("convex/values").VObject<{
35
+ amount: number;
36
+ role?: "affiliate" | "other" | "store" | undefined;
37
+ stripeTransferId: string;
38
+ }, {
39
+ stripeTransferId: import("convex/values").VString<string, "required">;
40
+ amount: import("convex/values").VFloat64<number, "required">;
41
+ role: import("convex/values").VUnion<"affiliate" | "other" | "store" | undefined, [import("convex/values").VLiteral<"store", "required">, import("convex/values").VLiteral<"affiliate", "required">, import("convex/values").VLiteral<"other", "required">], "optional", never>;
42
+ }, "required", "amount" | "role" | "stripeTransferId">, "required">;
43
+ observations: import("convex/values").VArray<{
44
+ currency: string;
45
+ ledgerFingerprint: string;
46
+ matureNet: number;
47
+ observedAt: number;
48
+ pendingCredits: number;
49
+ stripeTransferId: string;
50
+ transactionIds: string[];
51
+ }[], import("convex/values").VObject<{
52
+ currency: string;
53
+ ledgerFingerprint: string;
54
+ matureNet: number;
55
+ observedAt: number;
56
+ pendingCredits: number;
57
+ stripeTransferId: string;
58
+ transactionIds: string[];
59
+ }, {
60
+ stripeTransferId: import("convex/values").VString<string, "required">;
61
+ currency: import("convex/values").VString<string, "required">;
62
+ matureNet: import("convex/values").VFloat64<number, "required">;
63
+ pendingCredits: import("convex/values").VFloat64<number, "required">;
64
+ ledgerFingerprint: import("convex/values").VString<string, "required">;
65
+ observedAt: import("convex/values").VFloat64<number, "required">;
66
+ transactionIds: import("convex/values").VArray<string[], import("convex/values").VString<string, "required">, "required">;
67
+ }, "required", "currency" | "ledgerFingerprint" | "matureNet" | "observedAt" | "pendingCredits" | "stripeTransferId" | "transactionIds">, "required">;
68
+ };
69
+ type Args = {
70
+ [K in keyof typeof historicalArgs]: Infer<(typeof historicalArgs)[K]>;
71
+ };
72
+ /** Trusted package observations only. Provider history and historical maturity are verified upstream. */
73
+ export declare function adoptHistoricalPayout(ctx: MutationCtx, args: Args): Promise<{
74
+ _creationTime: number;
75
+ _id: import("convex/values").GenericId<"payoutReleaseClaims">;
76
+ accountId: string;
77
+ allocations: {
78
+ amount: number;
79
+ role?: "affiliate" | "other" | "store" | undefined;
80
+ stripeTransferId: string;
81
+ }[];
82
+ amount: number;
83
+ attemptedAt?: number | undefined;
84
+ currency: string;
85
+ debitFee?: number | undefined;
86
+ debitTransactionId?: string | undefined;
87
+ destinationId?: string | undefined;
88
+ expectedRevision: number;
89
+ feeRevision?: number | undefined;
90
+ historical?: boolean | undefined;
91
+ observations: {
92
+ currency: string;
93
+ ledgerFingerprint: string;
94
+ matureNet: number;
95
+ observedAt: number;
96
+ pendingCredits: number;
97
+ stripeTransferId: string;
98
+ transactionIds: string[];
99
+ }[];
100
+ operationKey: string;
101
+ ownerKey: string;
102
+ providerFee?: number | undefined;
103
+ rejection?: {
104
+ code: "amount_too_small" | "balance_insufficient";
105
+ requestId: string;
106
+ } | undefined;
107
+ returnTransactionId?: string | undefined;
108
+ status: "canceled" | "paid" | "rejected" | "reserved" | "returned" | "submitted";
109
+ stripePayoutId?: string | undefined;
110
+ }>;
111
+ export declare const historicalBatchArgs: {
112
+ accountId: import("convex/values").VString<string, "required">;
113
+ ownerKey: import("convex/values").VString<string, "required">;
114
+ expectedRevision: import("convex/values").VFloat64<number, "required">;
115
+ observations: import("convex/values").VArray<{
116
+ currency: string;
117
+ ledgerFingerprint: string;
118
+ matureNet: number;
119
+ observedAt: number;
120
+ pendingCredits: number;
121
+ stripeTransferId: string;
122
+ transactionIds: string[];
123
+ }[], import("convex/values").VObject<{
124
+ currency: string;
125
+ ledgerFingerprint: string;
126
+ matureNet: number;
127
+ observedAt: number;
128
+ pendingCredits: number;
129
+ stripeTransferId: string;
130
+ transactionIds: string[];
131
+ }, {
132
+ stripeTransferId: import("convex/values").VString<string, "required">;
133
+ currency: import("convex/values").VString<string, "required">;
134
+ matureNet: import("convex/values").VFloat64<number, "required">;
135
+ pendingCredits: import("convex/values").VFloat64<number, "required">;
136
+ ledgerFingerprint: import("convex/values").VString<string, "required">;
137
+ observedAt: import("convex/values").VFloat64<number, "required">;
138
+ transactionIds: import("convex/values").VArray<string[], import("convex/values").VString<string, "required">, "required">;
139
+ }, "required", "currency" | "ledgerFingerprint" | "matureNet" | "observedAt" | "pendingCredits" | "stripeTransferId" | "transactionIds">, "required">;
140
+ expectedClaims: import("convex/values").VArray<{
141
+ fingerprint: string;
142
+ operationKey: string;
143
+ }[], import("convex/values").VObject<{
144
+ fingerprint: string;
145
+ operationKey: string;
146
+ }, {
147
+ operationKey: import("convex/values").VString<string, "required">;
148
+ fingerprint: import("convex/values").VString<string, "required">;
149
+ }, "required", "fingerprint" | "operationKey">, "required">;
150
+ payouts: import("convex/values").VArray<{
151
+ allocations: {
152
+ amount: number;
153
+ role?: "affiliate" | "other" | "store" | undefined;
154
+ stripeTransferId: string;
155
+ }[];
156
+ payout: {
157
+ amount: number;
158
+ created: number;
159
+ currency: string;
160
+ debitFee: number;
161
+ debitTransactionId: string;
162
+ destinationId: string;
163
+ returnFee?: number | undefined;
164
+ returnTransactionId?: string | undefined;
165
+ status: "paid" | "returned";
166
+ stripePayoutId: string;
167
+ };
168
+ }[], import("convex/values").VObject<{
169
+ allocations: {
170
+ amount: number;
171
+ role?: "affiliate" | "other" | "store" | undefined;
172
+ stripeTransferId: string;
173
+ }[];
174
+ payout: {
175
+ amount: number;
176
+ created: number;
177
+ currency: string;
178
+ debitFee: number;
179
+ debitTransactionId: string;
180
+ destinationId: string;
181
+ returnFee?: number | undefined;
182
+ returnTransactionId?: string | undefined;
183
+ status: "paid" | "returned";
184
+ stripePayoutId: string;
185
+ };
186
+ }, {
187
+ payout: import("convex/values").VObject<{
188
+ amount: number;
189
+ created: number;
190
+ currency: string;
191
+ debitFee: number;
192
+ debitTransactionId: string;
193
+ destinationId: string;
194
+ returnFee?: number | undefined;
195
+ returnTransactionId?: string | undefined;
196
+ status: "paid" | "returned";
197
+ stripePayoutId: string;
198
+ }, {
199
+ stripePayoutId: import("convex/values").VString<string, "required">;
200
+ amount: import("convex/values").VFloat64<number, "required">;
201
+ currency: import("convex/values").VString<string, "required">;
202
+ created: import("convex/values").VFloat64<number, "required">;
203
+ destinationId: import("convex/values").VString<string, "required">;
204
+ status: import("convex/values").VUnion<"paid" | "returned", [import("convex/values").VLiteral<"paid", "required">, import("convex/values").VLiteral<"returned", "required">], "required", never>;
205
+ debitTransactionId: import("convex/values").VString<string, "required">;
206
+ debitFee: import("convex/values").VFloat64<number, "required">;
207
+ returnTransactionId: import("convex/values").VString<string | undefined, "optional">;
208
+ returnFee: import("convex/values").VFloat64<number | undefined, "optional">;
209
+ }, "required", "amount" | "created" | "currency" | "debitFee" | "debitTransactionId" | "destinationId" | "returnFee" | "returnTransactionId" | "status" | "stripePayoutId">;
210
+ allocations: import("convex/values").VArray<{
211
+ amount: number;
212
+ role?: "affiliate" | "other" | "store" | undefined;
213
+ stripeTransferId: string;
214
+ }[], import("convex/values").VObject<{
215
+ amount: number;
216
+ role?: "affiliate" | "other" | "store" | undefined;
217
+ stripeTransferId: string;
218
+ }, {
219
+ stripeTransferId: import("convex/values").VString<string, "required">;
220
+ amount: import("convex/values").VFloat64<number, "required">;
221
+ role: import("convex/values").VUnion<"affiliate" | "other" | "store" | undefined, [import("convex/values").VLiteral<"store", "required">, import("convex/values").VLiteral<"affiliate", "required">, import("convex/values").VLiteral<"other", "required">], "optional", never>;
222
+ }, "required", "amount" | "role" | "stripeTransferId">, "required">;
223
+ }, "required", "allocations" | "payout" | "payout.amount" | "payout.created" | "payout.currency" | "payout.debitFee" | "payout.debitTransactionId" | "payout.destinationId" | "payout.returnFee" | "payout.returnTransactionId" | "payout.status" | "payout.stripePayoutId">, "required">;
224
+ };
225
+ type BatchArgs = {
226
+ [K in keyof typeof historicalBatchArgs]: Infer<(typeof historicalBatchArgs)[K]>;
227
+ };
228
+ export declare function adoptHistoricalBatch(ctx: MutationCtx, args: BatchArgs): Promise<{
229
+ claims: {
230
+ _creationTime: number;
231
+ _id: import("convex/values").GenericId<"payoutReleaseClaims">;
232
+ accountId: string;
233
+ allocations: {
234
+ amount: number;
235
+ role?: "affiliate" | "other" | "store" | undefined;
236
+ stripeTransferId: string;
237
+ }[];
238
+ amount: number;
239
+ attemptedAt?: number | undefined;
240
+ currency: string;
241
+ debitFee?: number | undefined;
242
+ debitTransactionId?: string | undefined;
243
+ destinationId?: string | undefined;
244
+ expectedRevision: number;
245
+ feeRevision?: number | undefined;
246
+ historical?: boolean | undefined;
247
+ observations: {
248
+ currency: string;
249
+ ledgerFingerprint: string;
250
+ matureNet: number;
251
+ observedAt: number;
252
+ pendingCredits: number;
253
+ stripeTransferId: string;
254
+ transactionIds: string[];
255
+ }[];
256
+ operationKey: string;
257
+ ownerKey: string;
258
+ providerFee?: number | undefined;
259
+ rejection?: {
260
+ code: "amount_too_small" | "balance_insufficient";
261
+ requestId: string;
262
+ } | undefined;
263
+ returnTransactionId?: string | undefined;
264
+ status: "canceled" | "paid" | "rejected" | "reserved" | "returned" | "submitted";
265
+ stripePayoutId?: string | undefined;
266
+ }[];
267
+ }>;
268
+ export {};
269
+ //# sourceMappingURL=adoption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adoption.d.ts","sourceRoot":"","sources":["../../../src/component/payoutRelease/adoption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAW3D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiB1B,CAAC;AACF,KAAK,IAAI,GAAG;KACT,CAAC,IAAI,MAAM,OAAO,cAAc,GAAG,KAAK,CAAC,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;CACtE,CAAC;AACF,yGAAyG;AACzG,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6KvE;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAa/B,CAAC;AACF,KAAK,SAAS,GAAG;KACd,CAAC,IAAI,MAAM,OAAO,mBAAmB,GAAG,KAAK,CAC5C,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAChC;CACF,CAAC;AACF,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiC3E"}
@@ -0,0 +1,197 @@
1
+ import { v } from "convex/values";
2
+ import { scopeFields } from "../payoutPolicy/schema.js";
3
+ import { readPolicy } from "../payoutPolicy/helpers.js";
4
+ import { observation, allocation } from "./schema.js";
5
+ import { add, checkSnapshot, sourceById, payoutClaimFingerprint, } from "./helpers.js";
6
+ import { recordFees } from "./fees.js";
7
+ export const historicalArgs = {
8
+ ...scopeFields,
9
+ expectedRevision: v.number(),
10
+ payout: v.object({
11
+ stripePayoutId: v.string(),
12
+ amount: v.number(),
13
+ currency: v.string(),
14
+ created: v.number(),
15
+ destinationId: v.string(),
16
+ status: v.union(v.literal("paid"), v.literal("returned")),
17
+ debitTransactionId: v.string(),
18
+ debitFee: v.number(),
19
+ returnTransactionId: v.optional(v.string()),
20
+ returnFee: v.optional(v.number()),
21
+ }),
22
+ allocations: v.array(allocation),
23
+ observations: v.array(observation),
24
+ };
25
+ /** Trusted package observations only. Provider history and historical maturity are verified upstream. */
26
+ export async function adoptHistoricalPayout(ctx, args) {
27
+ const policy = await readPolicy(ctx, args);
28
+ if (!policy || policy.revision !== args.expectedRevision)
29
+ throw new Error("Historical payout policy revision changed.");
30
+ if (policy.mode !== "stripe_managed" || policy.status !== "ready")
31
+ throw new Error("Historical adoption requires an inactive automatic policy.");
32
+ const p = args.payout;
33
+ if (!/^po_\w+$/.test(p.stripePayoutId) ||
34
+ !/^ba_\w+$/.test(p.destinationId) ||
35
+ !/^[a-z]{3}$/.test(p.currency) ||
36
+ !Number.isSafeInteger(p.amount) ||
37
+ p.amount <= 0 ||
38
+ !Number.isSafeInteger(p.created) ||
39
+ p.created < 0 ||
40
+ p.created * 1000 > Date.now() ||
41
+ !Number.isSafeInteger(p.created * 1000) ||
42
+ !/^txn_\w+$/.test(p.debitTransactionId) ||
43
+ !Number.isSafeInteger(p.debitFee) ||
44
+ p.debitFee < 0 ||
45
+ (p.status === "returned"
46
+ ? !p.returnTransactionId ||
47
+ !/^txn_\w+$/.test(p.returnTransactionId) ||
48
+ !Number.isSafeInteger(p.returnFee)
49
+ : p.returnTransactionId !== undefined || p.returnFee !== undefined))
50
+ throw new Error("Invalid historical payout receipt.");
51
+ const rows = await checkSnapshot(ctx, args.accountId, args.observations, true);
52
+ const byObservation = new Map(args.observations.map((o) => [o.stripeTransferId, o]));
53
+ const seen = new Set();
54
+ let total = 0;
55
+ const allocations = args.allocations
56
+ .map((a) => {
57
+ if (!Number.isSafeInteger(a.amount) ||
58
+ a.amount <= 0 ||
59
+ seen.has(a.stripeTransferId) ||
60
+ !rows.has(a.stripeTransferId) ||
61
+ byObservation.get(a.stripeTransferId)?.currency !== p.currency)
62
+ throw new Error("Invalid historical source allocation.");
63
+ seen.add(a.stripeTransferId);
64
+ total = add(total, a.amount);
65
+ const role = rows.get(a.stripeTransferId).role;
66
+ return {
67
+ stripeTransferId: a.stripeTransferId,
68
+ amount: a.amount,
69
+ ...(role ? { role } : {}),
70
+ };
71
+ })
72
+ .sort((a, b) => a.stripeTransferId.localeCompare(b.stripeTransferId));
73
+ if (total !== p.amount)
74
+ throw new Error("Historical source allocations do not equal payout principal.");
75
+ const operationKey = `bs:historical:${p.stripePayoutId}`;
76
+ const old = await ctx.db
77
+ .query("payoutReleaseClaims")
78
+ .withIndex("by_provider_payout", (q) => q.eq("stripePayoutId", p.stripePayoutId))
79
+ .unique();
80
+ if (old) {
81
+ if (!old.historical ||
82
+ old.accountId !== args.accountId ||
83
+ old.ownerKey !== args.ownerKey ||
84
+ old.operationKey !== operationKey ||
85
+ old.currency !== p.currency ||
86
+ old.amount !== p.amount ||
87
+ old.destinationId !== p.destinationId ||
88
+ old.attemptedAt !== p.created * 1000 ||
89
+ old.status !== p.status ||
90
+ old.debitTransactionId !== p.debitTransactionId ||
91
+ old.debitFee !== p.debitFee ||
92
+ old.returnTransactionId !== p.returnTransactionId ||
93
+ old.providerFee !== add(p.debitFee, p.returnFee ?? 0) ||
94
+ JSON.stringify(old.allocations.map((a) => [a.stripeTransferId, a.amount, a.role])) !==
95
+ JSON.stringify(allocations.map((a) => [a.stripeTransferId, a.amount, a.role])))
96
+ throw new Error("Historical payout identity or source allocation changed; reconcile existing outcomes.");
97
+ return old;
98
+ }
99
+ for (const status of ["reserved", "submitted"]) {
100
+ const unresolved = await ctx.db
101
+ .query("payoutReleaseClaims")
102
+ .withIndex("by_account_status", (q) => q.eq("accountId", args.accountId).eq("status", status))
103
+ .first();
104
+ if (unresolved)
105
+ throw new Error("Resolve existing payout attempts before historical adoption.");
106
+ }
107
+ const history = await ctx.db
108
+ .query("payoutReleaseClaims")
109
+ .withIndex("by_account_status", (q) => q.eq("accountId", args.accountId))
110
+ .take(100);
111
+ if (history.length >= 100)
112
+ throw new Error("Historical payout snapshot limit exceeded.");
113
+ for (const a of allocations) {
114
+ const source = await sourceById(ctx, a.stripeTransferId);
115
+ if (source &&
116
+ (source.accountId !== args.accountId ||
117
+ source.ownerKey !== args.ownerKey ||
118
+ source.currency !== p.currency ||
119
+ source.reservedAmount !== 0))
120
+ throw new Error("Historical source allocation identity or reservations changed.");
121
+ const paid = p.status === "paid" ? a.amount : 0;
122
+ if (source)
123
+ await ctx.db.patch("payoutSourceAllocations", source._id, {
124
+ paidAmount: add(source.paidAmount, paid),
125
+ });
126
+ else
127
+ await ctx.db.insert("payoutSourceAllocations", {
128
+ accountId: args.accountId,
129
+ ownerKey: args.ownerKey,
130
+ stripeTransferId: a.stripeTransferId,
131
+ currency: p.currency,
132
+ paidAmount: paid,
133
+ reservedAmount: 0,
134
+ });
135
+ }
136
+ const id = await ctx.db.insert("payoutReleaseClaims", {
137
+ accountId: args.accountId,
138
+ ownerKey: args.ownerKey,
139
+ operationKey,
140
+ expectedRevision: args.expectedRevision,
141
+ historical: true,
142
+ currency: p.currency,
143
+ amount: p.amount,
144
+ destinationId: p.destinationId,
145
+ allocations,
146
+ observations: args.observations,
147
+ status: p.status,
148
+ attemptedAt: p.created * 1000,
149
+ stripePayoutId: p.stripePayoutId,
150
+ ...(p.returnTransactionId
151
+ ? { returnTransactionId: p.returnTransactionId }
152
+ : {}),
153
+ });
154
+ const claim = (await ctx.db.get("payoutReleaseClaims", id));
155
+ await recordFees(ctx, claim, {
156
+ debitTransactionId: p.debitTransactionId,
157
+ debitFee: p.debitFee,
158
+ ...(p.returnFee !== undefined ? { returnFee: p.returnFee } : {}),
159
+ }, p.status === "returned");
160
+ return (await ctx.db.get("payoutReleaseClaims", id));
161
+ }
162
+ export const historicalBatchArgs = {
163
+ ...scopeFields,
164
+ expectedRevision: v.number(),
165
+ observations: v.array(observation),
166
+ expectedClaims: v.array(v.object({ operationKey: v.string(), fingerprint: v.string() })),
167
+ payouts: v.array(v.object({
168
+ payout: historicalArgs.payout,
169
+ allocations: historicalArgs.allocations,
170
+ })),
171
+ };
172
+ export async function adoptHistoricalBatch(ctx, args) {
173
+ if (!args.payouts.length || args.payouts.length > 100)
174
+ throw new Error("Invalid historical payout batch size.");
175
+ const rows = await ctx.db
176
+ .query("payoutReleaseClaims")
177
+ .withIndex("by_account_status", (q) => q.eq("accountId", args.accountId))
178
+ .take(101);
179
+ const expected = new Map(args.expectedClaims.map((c) => [c.operationKey, c.fingerprint]));
180
+ if (rows.length > 100 ||
181
+ expected.size !== args.expectedClaims.length ||
182
+ rows.length !== expected.size ||
183
+ rows.some((c) => c.ownerKey !== args.ownerKey ||
184
+ expected.get(c.operationKey) !== payoutClaimFingerprint(c)))
185
+ throw new Error("Historical payout history snapshot changed.");
186
+ const claims = [];
187
+ for (const p of args.payouts)
188
+ claims.push(await adoptHistoricalPayout(ctx, {
189
+ accountId: args.accountId,
190
+ ownerKey: args.ownerKey,
191
+ expectedRevision: args.expectedRevision,
192
+ observations: args.observations,
193
+ ...p,
194
+ }));
195
+ return { claims };
196
+ }
197
+ //# sourceMappingURL=adoption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adoption.js","sourceRoot":"","sources":["../../../src/component/payoutRelease/adoption.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,7 @@ export declare function claimByKey(ctx: MutationCtx, args: {
32
32
  destinationId?: string | undefined;
33
33
  expectedRevision: number;
34
34
  feeRevision?: number | undefined;
35
+ historical?: boolean | undefined;
35
36
  observations: {
36
37
  currency: string;
37
38
  ledgerFingerprint: string;
@@ -108,4 +109,6 @@ export declare function sourceById(ctx: MutationCtx, stripeTransferId: string):
108
109
  stripeTransferId: string;
109
110
  } | null>;
110
111
  export declare function moveAllocations(ctx: MutationCtx, claim: Doc<"payoutReleaseClaims">, transition: "pay" | "release" | "return"): Promise<void>;
112
+ /** Stable financial identity for historical adoption and activation snapshots. */
113
+ export declare function payoutClaimFingerprint(c: Doc<"payoutReleaseClaims">): string;
111
114
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/component/payoutRelease/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,eAAO,MAAM,GAAG,0BAAoB,CAAC;AACrC,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,oBAAoB,CAAC,UAaxE;AACD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB,QAQA;AACD,wBAAsB,UAAU,CAC9B,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAapE;AACD,wBAAsB,WAAW,CAC/B,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;GAaxE;AACD,iFAAiF;AACjF,wBAAsB,aAAa,CACjC,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,KAAK,CAAC,OAAO,WAAW,CAAC,EAAE,EACzC,KAAK,EAAE,OAAO;;;;;;;;;;;;;;;;;;IAuDf;AACD,wBAAsB,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM;;;;;;;;;UAK1E;AACD,wBAAsB,eAAe,CACnC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,GAAG,CAAC,qBAAqB,CAAC,EACjC,UAAU,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,iBA8BzC"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/component/payoutRelease/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,eAAO,MAAM,GAAG,0BAAoB,CAAC;AACrC,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,oBAAoB,CAAC,UAaxE;AACD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB,QAQA;AACD,wBAAsB,UAAU,CAC9B,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAapE;AACD,wBAAsB,WAAW,CAC/B,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;GAaxE;AACD,iFAAiF;AACjF,wBAAsB,aAAa,CACjC,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,KAAK,CAAC,OAAO,WAAW,CAAC,EAAE,EACzC,KAAK,EAAE,OAAO;;;;;;;;;;;;;;;;;;IAuDf;AACD,wBAAsB,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM;;;;;;;;;UAK1E;AACD,wBAAsB,eAAe,CACnC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,GAAG,CAAC,qBAAqB,CAAC,EACjC,UAAU,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,iBA8BzC;AAED,kFAAkF;AAClF,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,GAAG,CAAC,qBAAqB,CAAC,UAkBnE"}
@@ -116,4 +116,24 @@ export async function moveAllocations(ctx, claim, transition) {
116
116
  });
117
117
  }
118
118
  }
119
+ /** Stable financial identity for historical adoption and activation snapshots. */
120
+ export function payoutClaimFingerprint(c) {
121
+ return JSON.stringify([
122
+ c.accountId,
123
+ c.ownerKey,
124
+ c.operationKey,
125
+ c.historical ?? false,
126
+ c.currency,
127
+ c.amount,
128
+ c.status,
129
+ c.attemptedAt,
130
+ c.stripePayoutId,
131
+ c.destinationId,
132
+ c.debitTransactionId,
133
+ c.debitFee,
134
+ c.providerFee,
135
+ c.returnTransactionId,
136
+ c.allocations.map((a) => [a.stripeTransferId, a.amount, a.role]),
137
+ ]);
138
+ }
119
139
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/component/payoutRelease/helpers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,MAAM,CAAC,MAAM,GAAG,GAAG,iBAAiB,CAAC;AACrC,MAAM,UAAU,mBAAmB,CAAC,CAAqC;IACvE,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,oBAAoB;QACtB,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,cAAc,IAAI,CAAC;QACrB,CAAC,CAAC,qBAAqB,IAAI,CAAC;QAC5B,CAAC,CAAC,aAAa,IAAI,KAAK;KACzB,CAAC,CAAC;AACL,CAAC;AACD,MAAM,UAAU,gBAAgB,CAAC,IAIhC;IACC,aAAa,CAAC,IAAI,CAAC,CAAC;IACpB,IACE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;QACzB,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,GAAG;QAC9B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAEhC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACtD,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,GAAgB,EAChB,IAAmE;IAEnE,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE;SACvB,KAAK,CAAC,qBAAqB,CAAC;SAC5B,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;SACzE,MAAM,EAAE,CAAC;IACZ,IACE,KAAK;QACL,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC;QAExE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC;AACf,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAgB,EAChB,IAAuE;IAEvE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC3C,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAC5C,MAAM,EAAE,QAAQ,KAAK,IAAI,CAAC,gBAAgB;QAC1C,MAAM,CAAC,IAAI,KAAK,QAAQ;QACxB,MAAM,CAAC,MAAM,KAAK,OAAO;QACzB,CAAC,MAAM,CAAC,YAAY;QACpB,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE;QAEjC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,OAAO,MAAM,CAAC;AAChB,CAAC;AACD,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAgB,EAChB,SAAiB,EACjB,YAAyC,EACzC,KAAc;IAEd,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,EAAE;SACtB,KAAK,CAAC,WAAW,CAAC;SAClB,SAAS,CAAC,2BAA2B,EAAE,CAAC,CAAC,EAAE,EAAE,CAC5C,CAAC,CAAC,EAAE,CAAC,sBAAsB,EAAE,SAAS,CAAC,CACxC;SACA,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,IACE,IAAI,CAAC,MAAM,GAAG,GAAG;QACjB,YAAY,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QACnC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM;QAEzE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,EAAE;SAC3B,KAAK,CAAC,yBAAyB,CAAC;SAChC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;SAC5D,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,IACE,SAAS,CAAC,MAAM,GAAG,GAAG;QACtB,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAE9D,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;QACzC,IACE,CAAC,GAAG;YACJ,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,iBAAiB;YAChD,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC;YACpD,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,CAAC;YAE5D,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,IACE,KAAK;YACL,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC;gBAClC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE;gBACzB,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YAEpC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,IACE,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM;YACxB,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI;YAC9B,IAAI,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,cAAc,CAAC,MAAM;YAC1D,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YAExE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;YAClC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACtD,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAgB,EAAE,gBAAwB;IACzE,OAAO,GAAG,CAAC,EAAE;SACV,KAAK,CAAC,yBAAyB,CAAC;SAChC,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;SAC3E,MAAM,EAAE,CAAC;AACd,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAgB,EAChB,KAAiC,EACjC,UAAwC;IAExC,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAClE,IACE,CAAC,MAAM;YACP,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;YACpC,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;YAClC,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;YAElC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,MAAM,cAAc,GAAG,GAAG,CACxB,MAAM,CAAC,cAAc,EACrB,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CACjD,CAAC;QACF,MAAM,UAAU,GAAG,GAAG,CACpB,MAAM,CAAC,UAAU,EACjB,UAAU,KAAK,KAAK;YAClB,CAAC,CAAC,UAAU,CAAC,MAAM;YACnB,CAAC,CAAC,UAAU,KAAK,QAAQ;gBACvB,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM;gBACpB,CAAC,CAAC,CAAC,CACR,CAAC;QACF,IAAI,cAAc,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,yBAAyB,EAAE,MAAM,CAAC,GAAG,EAAE;YACxD,cAAc;YACd,UAAU;SACX,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/component/payoutRelease/helpers.ts"],"names":[],"mappings":"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"}