@fantastic.dev/better-stripe 0.14.0 → 0.16.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/CHANGELOG.md +12 -0
- package/MIGRATION.md +6 -0
- package/README.md +40 -1
- package/dist/client/billing/checkoutOptions.d.ts +27 -0
- package/dist/client/billing/checkoutOptions.d.ts.map +1 -0
- package/dist/client/billing/checkoutOptions.js +2 -0
- package/dist/client/billing/checkoutOptions.js.map +1 -0
- package/dist/client/billing/intents.d.ts +32 -0
- package/dist/client/billing/intents.d.ts.map +1 -0
- package/dist/client/billing/intents.js +71 -0
- package/dist/client/billing/intents.js.map +1 -0
- package/dist/client/connect/payoutSnapshot.d.ts +2 -0
- package/dist/client/connect/payoutSnapshot.d.ts.map +1 -1
- package/dist/client/connect/payoutSnapshot.js +2 -0
- package/dist/client/connect/payoutSnapshot.js.map +1 -1
- package/dist/client/core/fees.d.ts +2 -0
- package/dist/client/core/fees.d.ts.map +1 -1
- package/dist/client/core/fees.js +7 -0
- package/dist/client/core/fees.js.map +1 -1
- package/dist/client/index.d.ts +18 -26
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +18 -16
- package/dist/client/index.js.map +1 -1
- package/dist/client/readContracts.d.ts +50 -0
- package/dist/client/readContracts.d.ts.map +1 -0
- package/dist/client/readContracts.js +24 -0
- package/dist/client/readContracts.js.map +1 -0
- package/dist/client/types/documents.d.ts +2 -0
- package/dist/client/types/documents.d.ts.map +1 -1
- package/dist/client/webhooks/processors.js +2 -0
- package/dist/client/webhooks/processors.js.map +1 -1
- package/dist/component/_generated/component.d.ts +177 -0
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/connect/mutations.d.ts +2 -0
- package/dist/component/connect/mutations.d.ts.map +1 -1
- package/dist/component/connect/mutations.js +8 -8
- package/dist/component/connect/mutations.js.map +1 -1
- package/dist/component/connect/queries.d.ts +102 -2
- package/dist/component/connect/queries.d.ts.map +1 -1
- package/dist/component/connect/queries.js +88 -45
- package/dist/component/connect/queries.js.map +1 -1
- package/dist/component/connect/schema.d.ts +12 -2
- package/dist/component/connect/schema.d.ts.map +1 -1
- package/dist/component/connect/schema.js +10 -1
- package/dist/component/connect/schema.js.map +1 -1
- package/dist/component/connect/validators.d.ts +13 -2
- package/dist/component/connect/validators.d.ts.map +1 -1
- package/dist/component/connect/validators.js +4 -0
- package/dist/component/connect/validators.js.map +1 -1
- package/dist/component/earnings/legacyReads.d.ts +51 -0
- package/dist/component/earnings/legacyReads.d.ts.map +1 -0
- package/dist/component/earnings/legacyReads.js +43 -0
- package/dist/component/earnings/legacyReads.js.map +1 -0
- package/dist/component/earnings/mutations.d.ts +9 -0
- package/dist/component/earnings/mutations.d.ts.map +1 -0
- package/dist/component/earnings/mutations.js +23 -0
- package/dist/component/earnings/mutations.js.map +1 -0
- package/dist/component/earnings/reads.d.ts +14 -0
- package/dist/component/earnings/reads.d.ts.map +1 -0
- package/dist/component/earnings/reads.js +28 -0
- package/dist/component/earnings/reads.js.map +1 -0
- package/dist/component/earnings/schema.d.ts +20 -0
- package/dist/component/earnings/schema.d.ts.map +1 -0
- package/dist/component/earnings/schema.js +12 -0
- package/dist/component/earnings/schema.js.map +1 -0
- package/dist/component/earnings/triggers.d.ts +1290 -0
- package/dist/component/earnings/triggers.d.ts.map +1 -0
- package/dist/component/earnings/triggers.js +68 -0
- package/dist/component/earnings/triggers.js.map +1 -0
- package/dist/component/products/queries.d.ts +47 -0
- package/dist/component/products/queries.d.ts.map +1 -1
- package/dist/component/products/queries.js +59 -0
- package/dist/component/products/queries.js.map +1 -1
- package/dist/component/schema.d.ts +31 -2
- package/dist/component/schema.js +2 -0
- package/dist/component/schema.js.map +1 -1
- package/dist/react/components/EarningsSummary.d.ts +3 -1
- package/dist/react/components/EarningsSummary.d.ts.map +1 -1
- package/dist/react/components/EarningsSummary.js +3 -3
- package/dist/react/components/EarningsSummary.js.map +1 -1
- package/dist/react/hooks/useConfirmPayment.d.ts +1 -1
- package/dist/react/hooks/useConfirmPayment.d.ts.map +1 -1
- package/dist/react/hooks/useConfirmPayment.js +13 -2
- package/dist/react/hooks/useConfirmPayment.js.map +1 -1
- package/dist/react/hooks/useCurrencyEarnings.d.ts +31 -0
- package/dist/react/hooks/useCurrencyEarnings.d.ts.map +1 -0
- package/dist/react/hooks/useCurrencyEarnings.js +30 -0
- package/dist/react/hooks/useCurrencyEarnings.js.map +1 -0
- package/dist/react/index.d.ts +5 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +4 -0
- package/dist/react/index.js.map +1 -1
- package/dist/react/workflows/SaveCard.d.ts +27 -0
- package/dist/react/workflows/SaveCard.d.ts.map +1 -0
- package/dist/react/workflows/SaveCard.js +56 -0
- package/dist/react/workflows/SaveCard.js.map +1 -0
- package/docs/react-workflows.md +47 -0
- package/docs/read-contracts.md +136 -0
- package/package.json +3 -2
- package/src/client/billing/checkoutOptions.ts +27 -0
- package/src/client/billing/intents.test.ts +216 -0
- package/src/client/billing/intents.ts +120 -0
- package/src/client/billing/intentsTransport.test.ts +94 -0
- package/src/client/connect/payoutSnapshot.test.ts +27 -0
- package/src/client/connect/payoutSnapshot.ts +4 -0
- package/src/client/core/fees.ts +8 -0
- package/src/client/index.ts +40 -43
- package/src/client/readContracts.ts +90 -0
- package/src/client/readPagination.test.ts +62 -0
- package/src/client/types/documents.ts +2 -0
- package/src/client/webhooks/payout-canceled.integration.test.ts +25 -0
- package/src/client/webhooks/processors.ts +2 -0
- package/src/component/_generated/api.ts +8 -0
- package/src/component/_generated/component.ts +201 -0
- package/src/component/connect/mutations.ts +8 -8
- package/src/component/connect/queries.ts +110 -48
- package/src/component/connect/schema.ts +10 -1
- package/src/component/connect/validators.ts +4 -0
- package/src/component/currency-migration.test.ts +119 -0
- package/src/component/currency-totals.test.ts +95 -0
- package/src/component/earnings/legacyReads.ts +59 -0
- package/src/component/earnings/mutations.ts +21 -0
- package/src/component/earnings/reads.ts +41 -0
- package/src/component/earnings/schema.ts +11 -0
- package/src/component/earnings/triggers.ts +91 -0
- package/src/component/products/queries.ts +74 -0
- package/src/component/public.test.ts +1 -1
- package/src/component/read-pagination.test.ts +193 -0
- package/src/component/schema.ts +2 -0
- package/src/react/components/EarningsSummary.tsx +5 -2
- package/src/react/hooks/useConfirmPayment.test.tsx +47 -0
- package/src/react/hooks/useConfirmPayment.ts +16 -2
- package/src/react/hooks/useCurrencyEarnings.test.ts +59 -0
- package/src/react/hooks/useCurrencyEarnings.ts +73 -0
- package/src/react/index.ts +15 -0
- package/src/react/read-contracts.render.test.tsx +20 -0
- package/src/react/workflows/SaveCard.test.tsx +127 -0
- package/src/react/workflows/SaveCard.tsx +117 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { v } from "convex/values";
|
|
1
2
|
import { defineTable } from "convex/server";
|
|
2
3
|
import { disputeFields, paymentFields, pendingFeeRefundFields, payoutFields, refundFields, transferFields, transferPersistedFields, transferReversalOpFields, } from "./validators";
|
|
3
4
|
/**
|
|
@@ -10,10 +11,14 @@ export const paymentsTable = defineTable(paymentFields)
|
|
|
10
11
|
/**
|
|
11
12
|
* Payouts to V2 accounts (marketplace).
|
|
12
13
|
*/
|
|
13
|
-
export const payoutsTable = defineTable(
|
|
14
|
+
export const payoutsTable = defineTable({
|
|
15
|
+
...payoutFields,
|
|
16
|
+
totalsRecorded: v.optional(v.literal(true)),
|
|
17
|
+
})
|
|
14
18
|
.index("by_stripe_payout_id", ["stripePayoutId"])
|
|
15
19
|
.index("by_account_id", ["accountId"])
|
|
16
20
|
.index("by_status", ["status"])
|
|
21
|
+
.index("by_account_totals_recorded", ["accountId", "totalsRecorded"])
|
|
17
22
|
.index("by_account_status", ["accountId", "status"]);
|
|
18
23
|
/**
|
|
19
24
|
* Fee-refund facts parked when `application_fee.refunded` outruns the
|
|
@@ -45,6 +50,10 @@ export const transfersTable = defineTable({
|
|
|
45
50
|
...transferPersistedFields,
|
|
46
51
|
})
|
|
47
52
|
.index("by_stripe_transfer_id", ["stripeTransferId"])
|
|
53
|
+
.index("by_account_totals_recorded", [
|
|
54
|
+
"destinationAccountId",
|
|
55
|
+
"totalsRecorded",
|
|
56
|
+
])
|
|
48
57
|
.index("by_destination_account_id", ["destinationAccountId"])
|
|
49
58
|
.index("by_source_charge_id", ["sourceChargeId"]);
|
|
50
59
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/component/connect/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EACL,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,cAAc,CAAC;AAEtB;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;KACpD,KAAK,CAAC,6BAA6B,EAAE,CAAC,uBAAuB,CAAC,CAAC;KAC/D,KAAK,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC;KAC/B,KAAK,CAAC,eAAe,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/component/connect/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -124,6 +124,8 @@ export declare const payoutFields: {
|
|
|
124
124
|
status: import("convex/values").VUnion<"canceled" | "failed" | "in_transit" | "paid" | "pending", [import("convex/values").VLiteral<"pending", "required">, import("convex/values").VLiteral<"paid", "required">, import("convex/values").VLiteral<"failed", "required">, import("convex/values").VLiteral<"canceled", "required">, import("convex/values").VLiteral<"in_transit", "required">], "required", never>;
|
|
125
125
|
arrivalDate: import("convex/values").VString<string | undefined, "optional">;
|
|
126
126
|
method: import("convex/values").VString<string | undefined, "optional">;
|
|
127
|
+
failureCode: import("convex/values").VString<string | undefined, "optional">;
|
|
128
|
+
failureMessage: import("convex/values").VString<string | undefined, "optional">;
|
|
127
129
|
metadata: import("convex/values").VAny<any, "optional", string>;
|
|
128
130
|
};
|
|
129
131
|
/** Full `payouts` document, including system fields. */
|
|
@@ -134,10 +136,13 @@ export declare const payoutDocValidator: import("convex/values").VObject<{
|
|
|
134
136
|
amount: number;
|
|
135
137
|
arrivalDate?: string | undefined;
|
|
136
138
|
currency: string;
|
|
139
|
+
failureCode?: string | undefined;
|
|
140
|
+
failureMessage?: string | undefined;
|
|
137
141
|
metadata?: any;
|
|
138
142
|
method?: string | undefined;
|
|
139
143
|
status: "canceled" | "failed" | "in_transit" | "paid" | "pending";
|
|
140
144
|
stripePayoutId: string;
|
|
145
|
+
totalsRecorded?: true | undefined;
|
|
141
146
|
}, {
|
|
142
147
|
stripePayoutId: import("convex/values").VString<string, "required">;
|
|
143
148
|
accountId: import("convex/values").VString<string, "required">;
|
|
@@ -146,10 +151,13 @@ export declare const payoutDocValidator: import("convex/values").VObject<{
|
|
|
146
151
|
status: import("convex/values").VUnion<"canceled" | "failed" | "in_transit" | "paid" | "pending", [import("convex/values").VLiteral<"pending", "required">, import("convex/values").VLiteral<"paid", "required">, import("convex/values").VLiteral<"failed", "required">, import("convex/values").VLiteral<"canceled", "required">, import("convex/values").VLiteral<"in_transit", "required">], "required", never>;
|
|
147
152
|
arrivalDate: import("convex/values").VString<string | undefined, "optional">;
|
|
148
153
|
method: import("convex/values").VString<string | undefined, "optional">;
|
|
154
|
+
failureCode: import("convex/values").VString<string | undefined, "optional">;
|
|
155
|
+
failureMessage: import("convex/values").VString<string | undefined, "optional">;
|
|
149
156
|
metadata: import("convex/values").VAny<any, "optional", string>;
|
|
150
157
|
_id: import("convex/values").VId<import("convex/values").GenericId<"payouts">, "required">;
|
|
151
158
|
_creationTime: import("convex/values").VFloat64<number, "required">;
|
|
152
|
-
|
|
159
|
+
totalsRecorded: import("convex/values").VLiteral<true | undefined, "optional">;
|
|
160
|
+
}, "required", "_creationTime" | "_id" | "accountId" | "amount" | "arrivalDate" | "currency" | "failureCode" | "failureMessage" | "metadata" | "method" | "status" | "stripePayoutId" | "totalsRecorded" | `metadata.${string}`>;
|
|
153
161
|
/**
|
|
154
162
|
* Fields for the `pendingFeeRefunds` table: a fee-refund fact parked when
|
|
155
163
|
* `application_fee.refunded` arrives before its `payments` row exists (Stripe
|
|
@@ -313,6 +321,7 @@ export declare const transferFields: {
|
|
|
313
321
|
* redelivered base payload must not clobber an in-flight reversal claim.
|
|
314
322
|
*/
|
|
315
323
|
export declare const transferPersistedFields: {
|
|
324
|
+
totalsRecorded: import("convex/values").VLiteral<true | undefined, "optional">;
|
|
316
325
|
/**
|
|
317
326
|
* Reversal claim frontier (BTS-63): the highest cumulative reversal amount
|
|
318
327
|
* reserved by `claimReversalSlices` before money moves. Always ≥
|
|
@@ -339,6 +348,7 @@ export declare const transferDocValidator: import("convex/values").VObject<{
|
|
|
339
348
|
sourceInvoiceId?: string | undefined;
|
|
340
349
|
status: "failed" | "paid" | "pending" | "reversed";
|
|
341
350
|
stripeTransferId: string;
|
|
351
|
+
totalsRecorded?: true | undefined;
|
|
342
352
|
}, {
|
|
343
353
|
stripeTransferId: import("convex/values").VString<string, "required">;
|
|
344
354
|
sourceChargeId: import("convex/values").VString<string | undefined, "optional">;
|
|
@@ -353,6 +363,7 @@ export declare const transferDocValidator: import("convex/values").VObject<{
|
|
|
353
363
|
paymentId: import("convex/values").VString<string | undefined, "optional">;
|
|
354
364
|
reinstatement: import("convex/values").VBoolean<boolean | undefined, "optional">;
|
|
355
365
|
metadata: import("convex/values").VAny<any, "optional", string>;
|
|
366
|
+
totalsRecorded: import("convex/values").VLiteral<true | undefined, "optional">;
|
|
356
367
|
/**
|
|
357
368
|
* Reversal claim frontier (BTS-63): the highest cumulative reversal amount
|
|
358
369
|
* reserved by `claimReversalSlices` before money moves. Always ≥
|
|
@@ -362,7 +373,7 @@ export declare const transferDocValidator: import("convex/values").VObject<{
|
|
|
362
373
|
reversalClaimedAmount: import("convex/values").VFloat64<number | undefined, "optional">;
|
|
363
374
|
_id: import("convex/values").VId<import("convex/values").GenericId<"transfers">, "required">;
|
|
364
375
|
_creationTime: import("convex/values").VFloat64<number, "required">;
|
|
365
|
-
}, "required", "_creationTime" | "_id" | "amount" | "currency" | "destinationAccountId" | "metadata" | "paymentId" | "reinstatement" | "reversalClaimedAmount" | "reversalStatus" | "reversedAmount" | "role" | "sourceChargeId" | "sourceInvoiceId" | "status" | "stripeTransferId" | `metadata.${string}`>;
|
|
376
|
+
}, "required", "_creationTime" | "_id" | "amount" | "currency" | "destinationAccountId" | "metadata" | "paymentId" | "reinstatement" | "reversalClaimedAmount" | "reversalStatus" | "reversedAmount" | "role" | "sourceChargeId" | "sourceInvoiceId" | "status" | "stripeTransferId" | "totalsRecorded" | `metadata.${string}`>;
|
|
366
377
|
/** One claimed reversal slice: [from, to) on the cumulative reversed axis. */
|
|
367
378
|
export declare const reversalSliceValidator: import("convex/values").VObject<{
|
|
368
379
|
from: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../../src/component/connect/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAK,MAAM,eAAe,CAAC;AAI9C,eAAO,MAAM,sBAAsB,uaAMlC,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEjE,eAAO,MAAM,qBAAqB,6YAMjC,CAAC;AACF,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE/D;;;;GAIG;AACH;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,kOAGxC,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAE7E,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAczB,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2WAI9B,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,YAAY;IACvB,cAAc;IACd,SAAS;IACT,MAAM;IACN,QAAQ;IACR,MAAM;IACN,WAAW;IACX,MAAM;IACN,QAAQ;CACT,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../../src/component/connect/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAK,MAAM,eAAe,CAAC;AAI9C,eAAO,MAAM,sBAAsB,uaAMlC,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEjE,eAAO,MAAM,qBAAqB,6YAMjC,CAAC;AACF,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE/D;;;;GAIG;AACH;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,kOAGxC,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAE7E,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAczB,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2WAI9B,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,YAAY;IACvB,cAAc;IACd,SAAS;IACT,MAAM;IACN,QAAQ;IACR,MAAM;IACN,WAAW;IACX,MAAM;IACN,WAAW;IACX,cAAc;IACd,QAAQ;CACT,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;gOAK7B,CAAC;AAMH;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB;IACjC,qBAAqB;IACrB,kBAAkB;IAClB,iBAAiB;CAClB,CAAC;AAMF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,iaAMjC,CAAC;AACF,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE/D,+DAA+D;AAC/D,eAAO,MAAM,qBAAqB,kZAKjC,CAAC;AACF,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE/D;;;;GAIG;AACH,eAAO,MAAM,YAAY;IACvB,cAAc;IAGd,qBAAqB;IACrB,cAAc;IACd,SAAS;IACT,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,aAAa;IACb,QAAQ;CACT,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;yNAI7B,CAAC;AAMH,iEAAiE;AACjE,eAAO,MAAM,sBAAsB,grBASlC,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEjE;;;;GAIG;AACH,eAAO,MAAM,aAAa;IACxB,eAAe;IACf,qBAAqB;IACrB,cAAc;IACd,SAAS;IACT,MAAM;IACN,QAAQ;IACR,MAAM;IAGN,MAAM;IACN,kBAAkB;IAIlB,SAAS;IAET,aAAa;IAEb,QAAQ;IAER,mBAAmB;IAEnB,iBAAiB;IACjB,QAAQ;CACT,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iVAI9B,CAAC;AAMH;;;GAGG;AACH,eAAO,MAAM,uBAAuB,kUAKnC,CAAC;AACF,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEnE,gFAAgF;AAChF,eAAO,MAAM,+BAA+B,kOAG3C,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,KAAK,CACxC,OAAO,+BAA+B,CACvC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc;IACzB,gBAAgB;IAEhB,cAAc;IACd,eAAe;IACf,oBAAoB;IACpB,MAAM;IACN,QAAQ;IAER,IAAI;IACJ,MAAM;IAEN,cAAc;IACd,cAAc;IAEd,SAAS;IAIT,aAAa;IACb,QAAQ;CACT,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;IAClC,cAAc;IACd;;;;;OAKG;IACH,qBAAqB;CACtB,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAV/B;;;;;OAKG;;;;+TAUH,CAAC;AAEH,8EAA8E;AAC9E,eAAO,MAAM,sBAAsB;;;;;;;;kDAIjC,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB;IACnC,WAAW;IACX,cAAc;IACd,MAAM;;;;;;;;;;;;;CACP,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;qFAIzC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;IAMvC,4EAA4E;;;;;;;;;;;;;;6HAQ5E,CAAC"}
|
|
@@ -47,6 +47,8 @@ export const payoutFields = {
|
|
|
47
47
|
status: payoutStatusValidator,
|
|
48
48
|
arrivalDate: v.optional(v.string()),
|
|
49
49
|
method: v.optional(v.string()),
|
|
50
|
+
failureCode: v.optional(v.string()),
|
|
51
|
+
failureMessage: v.optional(v.string()),
|
|
50
52
|
metadata: v.optional(v.any()),
|
|
51
53
|
};
|
|
52
54
|
/** Full `payouts` document, including system fields. */
|
|
@@ -54,6 +56,7 @@ export const payoutDocValidator = v.object({
|
|
|
54
56
|
_id: v.id("payouts"),
|
|
55
57
|
_creationTime: v.number(),
|
|
56
58
|
...payoutFields,
|
|
59
|
+
totalsRecorded: v.optional(v.literal(true)),
|
|
57
60
|
});
|
|
58
61
|
// =============================================================================
|
|
59
62
|
// PENDING FEE REFUNDS (BTS-103)
|
|
@@ -189,6 +192,7 @@ export const transferFields = {
|
|
|
189
192
|
* redelivered base payload must not clobber an in-flight reversal claim.
|
|
190
193
|
*/
|
|
191
194
|
export const transferPersistedFields = {
|
|
195
|
+
totalsRecorded: v.optional(v.literal(true)),
|
|
192
196
|
/**
|
|
193
197
|
* Reversal claim frontier (BTS-63): the highest cumulative reversal amount
|
|
194
198
|
* reserved by `claimReversalSlices` before money moves. Always ≥
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/component/connect/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,CAAC,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAE5E,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAC3C,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EACtB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EACnB,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EACrB,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EACvB,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAC7B,CAAC;AAGF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAC1C,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EACpB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EACjB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EACnB,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EACrB,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CACxB,CAAC;AAGF;;;;GAIG;AACH;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CACjD,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAC/B,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAC5B,CAAC;AAGF,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE;IACjC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC7B,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,MAAM,EAAE,sBAAsB;IAC9B,gFAAgF;IAChF,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACtC,0DAA0D;IAC1D,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACtD,GAAG,gBAAgB;IACnB,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;CAC9B,CAAC;AAEF,yDAAyD;AACzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC;IACrB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,GAAG,aAAa;CACjB,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,MAAM,EAAE,qBAAqB;IAC7B,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACnC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;CAC9B,CAAC;AAEF,wDAAwD;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;IACpB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,GAAG,YAAY;
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/component/connect/validators.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { QueryCtx } from "../_generated/server.js";
|
|
2
|
+
export declare function getAccountEarnings(ctx: QueryCtx, args: {
|
|
3
|
+
destinationAccountId: string;
|
|
4
|
+
previewLimit?: number;
|
|
5
|
+
}): Promise<{
|
|
6
|
+
gross: number;
|
|
7
|
+
reversed: number;
|
|
8
|
+
transferCount: number;
|
|
9
|
+
transfers: {
|
|
10
|
+
_creationTime: number;
|
|
11
|
+
_id: import("convex/values").GenericId<"transfers">;
|
|
12
|
+
amount: number;
|
|
13
|
+
currency: string;
|
|
14
|
+
destinationAccountId: string;
|
|
15
|
+
metadata?: any;
|
|
16
|
+
paymentId?: string | undefined;
|
|
17
|
+
reinstatement?: boolean | undefined;
|
|
18
|
+
reversalClaimedAmount?: number | undefined;
|
|
19
|
+
reversalStatus?: "fully_reversed" | "partially_reversed" | undefined;
|
|
20
|
+
reversedAmount?: number | undefined;
|
|
21
|
+
role?: "affiliate" | "other" | "store" | undefined;
|
|
22
|
+
sourceChargeId?: string | undefined;
|
|
23
|
+
sourceInvoiceId?: string | undefined;
|
|
24
|
+
status: "failed" | "paid" | "pending" | "reversed";
|
|
25
|
+
stripeTransferId: string;
|
|
26
|
+
totalsRecorded?: true | undefined;
|
|
27
|
+
}[];
|
|
28
|
+
}>;
|
|
29
|
+
export declare function getAccountPayouts(ctx: QueryCtx, args: {
|
|
30
|
+
accountId: string;
|
|
31
|
+
previewLimit?: number;
|
|
32
|
+
}): Promise<{
|
|
33
|
+
paidOut: number;
|
|
34
|
+
payoutCount: number;
|
|
35
|
+
payouts: {
|
|
36
|
+
_creationTime: number;
|
|
37
|
+
_id: import("convex/values").GenericId<"payouts">;
|
|
38
|
+
accountId: string;
|
|
39
|
+
amount: number;
|
|
40
|
+
arrivalDate?: string | undefined;
|
|
41
|
+
currency: string;
|
|
42
|
+
failureCode?: string | undefined;
|
|
43
|
+
failureMessage?: string | undefined;
|
|
44
|
+
metadata?: any;
|
|
45
|
+
method?: string | undefined;
|
|
46
|
+
status: "canceled" | "failed" | "in_transit" | "paid" | "pending";
|
|
47
|
+
stripePayoutId: string;
|
|
48
|
+
totalsRecorded?: true | undefined;
|
|
49
|
+
}[];
|
|
50
|
+
}>;
|
|
51
|
+
//# sourceMappingURL=legacyReads.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacyReads.d.ts","sourceRoot":"","sources":["../../../src/component/earnings/legacyReads.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE;IAAE,oBAAoB,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;GA2B9D;AAED,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;GAsBnD"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export async function getAccountEarnings(ctx, args) {
|
|
2
|
+
const previewLimit = args.previewLimit ?? 50;
|
|
3
|
+
let currency;
|
|
4
|
+
let gross = 0;
|
|
5
|
+
let reversed = 0;
|
|
6
|
+
let transferCount = 0;
|
|
7
|
+
const transfers = [];
|
|
8
|
+
for await (const tr of ctx.db
|
|
9
|
+
.query("transfers")
|
|
10
|
+
.withIndex("by_destination_account_id", (q) => q.eq("destinationAccountId", args.destinationAccountId))
|
|
11
|
+
.order("desc")) {
|
|
12
|
+
if (currency !== undefined && currency !== tr.currency)
|
|
13
|
+
throw new Error("Mixed currency account: use getAccountEarningsByCurrency");
|
|
14
|
+
currency = tr.currency;
|
|
15
|
+
gross += tr.amount;
|
|
16
|
+
reversed += tr.reversedAmount ?? 0;
|
|
17
|
+
transferCount += 1;
|
|
18
|
+
if (transfers.length < previewLimit)
|
|
19
|
+
transfers.push(tr);
|
|
20
|
+
}
|
|
21
|
+
return { gross, reversed, transferCount, transfers };
|
|
22
|
+
}
|
|
23
|
+
export async function getAccountPayouts(ctx, args) {
|
|
24
|
+
const previewLimit = args.previewLimit ?? 50;
|
|
25
|
+
let currency;
|
|
26
|
+
let paidOut = 0;
|
|
27
|
+
let payoutCount = 0;
|
|
28
|
+
const payouts = [];
|
|
29
|
+
for await (const p of ctx.db
|
|
30
|
+
.query("payouts")
|
|
31
|
+
.withIndex("by_account_id", (q) => q.eq("accountId", args.accountId))) {
|
|
32
|
+
if (currency !== undefined && currency !== p.currency)
|
|
33
|
+
throw new Error("Mixed currency account: use getAccountPayoutsByCurrency");
|
|
34
|
+
currency = p.currency;
|
|
35
|
+
payoutCount += 1;
|
|
36
|
+
if (p.status === "paid")
|
|
37
|
+
paidOut += p.amount;
|
|
38
|
+
if (payouts.length < previewLimit)
|
|
39
|
+
payouts.push(p);
|
|
40
|
+
}
|
|
41
|
+
return { paidOut, payoutCount, payouts };
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=legacyReads.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacyReads.js","sourceRoot":"","sources":["../../../src/component/earnings/legacyReads.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAa,EACb,IAA6D;IAE7D,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;IAC7C,IAAI,QAA4B,CAAC;IACjC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,MAAM,SAAS,GAAuB,EAAE,CAAC;IAEzC,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE;SAC1B,KAAK,CAAC,WAAW,CAAC;SAClB,SAAS,CAAC,2BAA2B,EAAE,CAAC,CAAC,EAAE,EAAE,CAC5C,CAAC,CAAC,EAAE,CAAC,sBAAsB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CACxD;SACA,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACjB,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE,CAAC,QAAQ;YACpD,MAAM,IAAI,KAAK,CACb,0DAA0D,CAC3D,CAAC;QACJ,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;QACvB,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC;QACnB,QAAQ,IAAI,EAAE,CAAC,cAAc,IAAI,CAAC,CAAC;QACnC,aAAa,IAAI,CAAC,CAAC;QACnB,IAAI,SAAS,CAAC,MAAM,GAAG,YAAY;YAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAa,EACb,IAAkD;IAElD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;IAC7C,IAAI,QAA4B,CAAC;IACjC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,MAAM,OAAO,GAAqB,EAAE,CAAC;IAErC,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE;SACzB,KAAK,CAAC,SAAS,CAAC;SAChB,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QACxE,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,CAAC,CAAC,QAAQ;YACnD,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAC;QACJ,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;QACtB,WAAW,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC;QAC7C,IAAI,OAAO,CAAC,MAAM,GAAG,YAAY;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Call repeatedly until isDone. Updates and backfill share one transaction. */
|
|
2
|
+
export declare const backfillCurrencyTotals: import("convex/server").RegisteredMutation<"public", {
|
|
3
|
+
cursor: string | null;
|
|
4
|
+
kind: "earnings" | "payouts";
|
|
5
|
+
}, Promise<{
|
|
6
|
+
isDone: boolean;
|
|
7
|
+
continueCursor: string;
|
|
8
|
+
}>>;
|
|
9
|
+
//# sourceMappingURL=mutations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../../../src/component/earnings/mutations.ts"],"names":[],"mappings":"AAIA,gFAAgF;AAChF,eAAO,MAAM,sBAAsB;;;;;;GAejC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { paginator } from "convex-helpers/server/pagination";
|
|
2
|
+
import schema from "../schema.js";
|
|
3
|
+
import { v } from "convex/values";
|
|
4
|
+
import { mutation } from "./triggers.js";
|
|
5
|
+
/** Call repeatedly until isDone. Updates and backfill share one transaction. */
|
|
6
|
+
export const backfillCurrencyTotals = mutation({
|
|
7
|
+
args: {
|
|
8
|
+
kind: v.union(v.literal("earnings"), v.literal("payouts")),
|
|
9
|
+
cursor: v.union(v.string(), v.null()),
|
|
10
|
+
},
|
|
11
|
+
returns: v.object({ isDone: v.boolean(), continueCursor: v.string() }),
|
|
12
|
+
handler: async (ctx, args) => {
|
|
13
|
+
const table = args.kind === "earnings" ? "transfers" : "payouts";
|
|
14
|
+
const result = await paginator(ctx.db, schema)
|
|
15
|
+
.query(table)
|
|
16
|
+
.paginate({ numItems: 100, cursor: args.cursor });
|
|
17
|
+
for (const row of result.page)
|
|
18
|
+
if (!row.totalsRecorded)
|
|
19
|
+
await ctx.db.patch(table, row._id, {});
|
|
20
|
+
return { isDone: result.isDone, continueCursor: result.continueCursor };
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=mutations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutations.js","sourceRoot":"","sources":["../../../src/component/earnings/mutations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,gFAAgF;AAChF,MAAM,CAAC,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC7C,IAAI,EAAE;QACJ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;KACtC;IACD,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IACtE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QACjE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC;aAC3C,KAAK,CAAC,KAAK,CAAC;aACZ,QAAQ,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACpD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI;YAC3B,IAAI,CAAC,GAAG,CAAC,cAAc;gBAAE,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAClE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC;IAC1E,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { QueryCtx } from "../_generated/server.js";
|
|
2
|
+
export declare function previewSize(value?: number): number;
|
|
3
|
+
export declare function currencyTotals(ctx: QueryCtx, accountId: string, kind: "earnings" | "payouts"): Promise<{
|
|
4
|
+
_creationTime: number;
|
|
5
|
+
_id: import("convex/values").GenericId<"currencyTotals">;
|
|
6
|
+
accountId: string;
|
|
7
|
+
count: number;
|
|
8
|
+
currency: string;
|
|
9
|
+
gross: number;
|
|
10
|
+
kind: "earnings" | "payouts";
|
|
11
|
+
paidOut: number;
|
|
12
|
+
reversed: number;
|
|
13
|
+
}[]>;
|
|
14
|
+
//# sourceMappingURL=reads.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reads.d.ts","sourceRoot":"","sources":["../../../src/component/earnings/reads.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,wBAAgB,WAAW,CAAC,KAAK,SAAK,UAIrC;AACD,wBAAsB,cAAc,CAClC,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,UAAU,GAAG,SAAS;;;;;;;;;;KA+B7B"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export function previewSize(value = 50) {
|
|
2
|
+
if (!Number.isInteger(value) || value < 0 || value > 100)
|
|
3
|
+
throw new Error("Preview size must be an integer from 0 to 100");
|
|
4
|
+
return value;
|
|
5
|
+
}
|
|
6
|
+
export async function currencyTotals(ctx, accountId, kind) {
|
|
7
|
+
const pending = kind === "earnings"
|
|
8
|
+
? await ctx.db
|
|
9
|
+
.query("transfers")
|
|
10
|
+
.withIndex("by_account_totals_recorded", (q) => q
|
|
11
|
+
.eq("destinationAccountId", accountId)
|
|
12
|
+
.eq("totalsRecorded", undefined))
|
|
13
|
+
.first()
|
|
14
|
+
: await ctx.db
|
|
15
|
+
.query("payouts")
|
|
16
|
+
.withIndex("by_account_totals_recorded", (q) => q.eq("accountId", accountId).eq("totalsRecorded", undefined))
|
|
17
|
+
.first();
|
|
18
|
+
if (pending)
|
|
19
|
+
throw new Error("Currency totals require backfillCurrencyTotals before reading this account");
|
|
20
|
+
const rows = await ctx.db
|
|
21
|
+
.query("currencyTotals")
|
|
22
|
+
.withIndex("by_account_kind_currency", (q) => q.eq("accountId", accountId).eq("kind", kind))
|
|
23
|
+
.take(501);
|
|
24
|
+
if (rows.length > 500)
|
|
25
|
+
throw new Error("Account exceeds supported currency count");
|
|
26
|
+
return rows;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=reads.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reads.js","sourceRoot":"","sources":["../../../src/component/earnings/reads.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,WAAW,CAAC,KAAK,GAAG,EAAE;IACpC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG;QACtD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,OAAO,KAAK,CAAC;AACf,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAa,EACb,SAAiB,EACjB,IAA4B;IAE5B,MAAM,OAAO,GACX,IAAI,KAAK,UAAU;QACjB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;aACT,KAAK,CAAC,WAAW,CAAC;aAClB,SAAS,CAAC,4BAA4B,EAAE,CAAC,CAAC,EAAE,EAAE,CAC7C,CAAC;aACE,EAAE,CAAC,sBAAsB,EAAE,SAAS,CAAC;aACrC,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAC,CACnC;aACA,KAAK,EAAE;QACZ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;aACT,KAAK,CAAC,SAAS,CAAC;aAChB,SAAS,CAAC,4BAA4B,EAAE,CAAC,CAAC,EAAE,EAAE,CAC7C,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAC7D;aACA,KAAK,EAAE,CAAC;IACjB,IAAI,OAAO;QACT,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAC;IACJ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,EAAE;SACtB,KAAK,CAAC,gBAAgB,CAAC;SACvB,SAAS,CAAC,0BAA0B,EAAE,CAAC,CAAC,EAAE,EAAE,CAC3C,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAC9C;SACA,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG;QACnB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare const currencyTotalsTable: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
2
|
+
accountId: string;
|
|
3
|
+
count: number;
|
|
4
|
+
currency: string;
|
|
5
|
+
gross: number;
|
|
6
|
+
kind: "earnings" | "payouts";
|
|
7
|
+
paidOut: number;
|
|
8
|
+
reversed: number;
|
|
9
|
+
}, {
|
|
10
|
+
accountId: import("convex/values").VString<string, "required">;
|
|
11
|
+
currency: import("convex/values").VString<string, "required">;
|
|
12
|
+
kind: import("convex/values").VUnion<"earnings" | "payouts", [import("convex/values").VLiteral<"earnings", "required">, import("convex/values").VLiteral<"payouts", "required">], "required", never>;
|
|
13
|
+
gross: import("convex/values").VFloat64<number, "required">;
|
|
14
|
+
reversed: import("convex/values").VFloat64<number, "required">;
|
|
15
|
+
paidOut: import("convex/values").VFloat64<number, "required">;
|
|
16
|
+
count: import("convex/values").VFloat64<number, "required">;
|
|
17
|
+
}, "required", "accountId" | "count" | "currency" | "gross" | "kind" | "paidOut" | "reversed">, {
|
|
18
|
+
by_account_kind_currency: ["accountId", "kind", "currency", "_creationTime"];
|
|
19
|
+
}, {}, {}>;
|
|
20
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/component/earnings/schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;UAQuC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { defineTable } from "convex/server";
|
|
2
|
+
import { v } from "convex/values";
|
|
3
|
+
export const currencyTotalsTable = defineTable({
|
|
4
|
+
accountId: v.string(),
|
|
5
|
+
currency: v.string(),
|
|
6
|
+
kind: v.union(v.literal("earnings"), v.literal("payouts")),
|
|
7
|
+
gross: v.number(),
|
|
8
|
+
reversed: v.number(),
|
|
9
|
+
paidOut: v.number(),
|
|
10
|
+
count: v.number(),
|
|
11
|
+
}).index("by_account_kind_currency", ["accountId", "kind", "currency"]);
|
|
12
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/component/earnings/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAClC,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAC;IAC7C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC,KAAK,CAAC,0BAA0B,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC"}
|