@fantastic.dev/better-stripe 0.15.0 → 0.17.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 (127) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/MIGRATION.md +6 -0
  3. package/README.md +15 -1
  4. package/dist/client/connect/payoutSnapshot.d.ts +2 -0
  5. package/dist/client/connect/payoutSnapshot.d.ts.map +1 -1
  6. package/dist/client/connect/payoutSnapshot.js +2 -0
  7. package/dist/client/connect/payoutSnapshot.js.map +1 -1
  8. package/dist/client/connect/refunds.d.ts +12 -0
  9. package/dist/client/connect/refunds.d.ts.map +1 -1
  10. package/dist/client/connect/refunds.js +8 -0
  11. package/dist/client/connect/refunds.js.map +1 -1
  12. package/dist/client/index.d.ts +8 -10
  13. package/dist/client/index.d.ts.map +1 -1
  14. package/dist/client/index.js +6 -3
  15. package/dist/client/index.js.map +1 -1
  16. package/dist/client/readContracts.d.ts +50 -0
  17. package/dist/client/readContracts.d.ts.map +1 -0
  18. package/dist/client/readContracts.js +24 -0
  19. package/dist/client/readContracts.js.map +1 -0
  20. package/dist/client/types/documents.d.ts +2 -0
  21. package/dist/client/types/documents.d.ts.map +1 -1
  22. package/dist/client/webhooks/processors.js +2 -0
  23. package/dist/client/webhooks/processors.js.map +1 -1
  24. package/dist/component/_generated/component.d.ts +213 -0
  25. package/dist/component/_generated/component.d.ts.map +1 -1
  26. package/dist/component/connect/mutations.d.ts +2 -0
  27. package/dist/component/connect/mutations.d.ts.map +1 -1
  28. package/dist/component/connect/mutations.js +8 -8
  29. package/dist/component/connect/mutations.js.map +1 -1
  30. package/dist/component/connect/queries.d.ts +102 -2
  31. package/dist/component/connect/queries.d.ts.map +1 -1
  32. package/dist/component/connect/queries.js +88 -45
  33. package/dist/component/connect/queries.js.map +1 -1
  34. package/dist/component/connect/schema.d.ts +14 -2
  35. package/dist/component/connect/schema.d.ts.map +1 -1
  36. package/dist/component/connect/schema.js +19 -1
  37. package/dist/component/connect/schema.js.map +1 -1
  38. package/dist/component/connect/validators.d.ts +13 -2
  39. package/dist/component/connect/validators.d.ts.map +1 -1
  40. package/dist/component/connect/validators.js +4 -0
  41. package/dist/component/connect/validators.js.map +1 -1
  42. package/dist/component/earnings/legacyReads.d.ts +51 -0
  43. package/dist/component/earnings/legacyReads.d.ts.map +1 -0
  44. package/dist/component/earnings/legacyReads.js +43 -0
  45. package/dist/component/earnings/legacyReads.js.map +1 -0
  46. package/dist/component/earnings/mutations.d.ts +9 -0
  47. package/dist/component/earnings/mutations.d.ts.map +1 -0
  48. package/dist/component/earnings/mutations.js +23 -0
  49. package/dist/component/earnings/mutations.js.map +1 -0
  50. package/dist/component/earnings/reads.d.ts +14 -0
  51. package/dist/component/earnings/reads.d.ts.map +1 -0
  52. package/dist/component/earnings/reads.js +28 -0
  53. package/dist/component/earnings/reads.js.map +1 -0
  54. package/dist/component/earnings/schema.d.ts +20 -0
  55. package/dist/component/earnings/schema.d.ts.map +1 -0
  56. package/dist/component/earnings/schema.js +12 -0
  57. package/dist/component/earnings/schema.js.map +1 -0
  58. package/dist/component/earnings/triggers.d.ts +1294 -0
  59. package/dist/component/earnings/triggers.d.ts.map +1 -0
  60. package/dist/component/earnings/triggers.js +68 -0
  61. package/dist/component/earnings/triggers.js.map +1 -0
  62. package/dist/component/products/queries.d.ts +47 -0
  63. package/dist/component/products/queries.d.ts.map +1 -1
  64. package/dist/component/products/queries.js +59 -0
  65. package/dist/component/products/queries.js.map +1 -1
  66. package/dist/component/refundHistory/queries.d.ts +28 -0
  67. package/dist/component/refundHistory/queries.d.ts.map +1 -0
  68. package/dist/component/refundHistory/queries.js +59 -0
  69. package/dist/component/refundHistory/queries.js.map +1 -0
  70. package/dist/component/schema.d.ts +33 -2
  71. package/dist/component/schema.js +2 -0
  72. package/dist/component/schema.js.map +1 -1
  73. package/dist/react/components/EarningsSummary.d.ts +3 -1
  74. package/dist/react/components/EarningsSummary.d.ts.map +1 -1
  75. package/dist/react/components/EarningsSummary.js +3 -3
  76. package/dist/react/components/EarningsSummary.js.map +1 -1
  77. package/dist/react/hooks/useCurrencyEarnings.d.ts +31 -0
  78. package/dist/react/hooks/useCurrencyEarnings.d.ts.map +1 -0
  79. package/dist/react/hooks/useCurrencyEarnings.js +30 -0
  80. package/dist/react/hooks/useCurrencyEarnings.js.map +1 -0
  81. package/dist/react/index.d.ts +3 -0
  82. package/dist/react/index.d.ts.map +1 -1
  83. package/dist/react/index.js +3 -0
  84. package/dist/react/index.js.map +1 -1
  85. package/dist/react/workflows/Costs.d.ts +1 -0
  86. package/dist/react/workflows/Costs.d.ts.map +1 -1
  87. package/dist/react/workflows/Costs.js +7 -3
  88. package/dist/react/workflows/Costs.js.map +1 -1
  89. package/docs/react-workflows.md +40 -0
  90. package/docs/read-contracts.md +136 -0
  91. package/package.json +3 -2
  92. package/src/client/connect/payoutSnapshot.test.ts +27 -0
  93. package/src/client/connect/payoutSnapshot.ts +4 -0
  94. package/src/client/connect/refunds.ts +28 -0
  95. package/src/client/index.ts +10 -11
  96. package/src/client/readContracts.ts +90 -0
  97. package/src/client/readPagination.test.ts +62 -0
  98. package/src/client/refund-history.test.ts +67 -0
  99. package/src/client/types/documents.ts +2 -0
  100. package/src/client/webhooks/payout-canceled.integration.test.ts +25 -0
  101. package/src/client/webhooks/processors.ts +2 -0
  102. package/src/component/_generated/api.ts +10 -0
  103. package/src/component/_generated/component.ts +257 -0
  104. package/src/component/connect/mutations.ts +8 -8
  105. package/src/component/connect/queries.ts +110 -48
  106. package/src/component/connect/schema.ts +19 -1
  107. package/src/component/connect/validators.ts +4 -0
  108. package/src/component/currency-migration.test.ts +119 -0
  109. package/src/component/currency-totals.test.ts +95 -0
  110. package/src/component/earnings/legacyReads.ts +59 -0
  111. package/src/component/earnings/mutations.ts +21 -0
  112. package/src/component/earnings/reads.ts +41 -0
  113. package/src/component/earnings/schema.ts +11 -0
  114. package/src/component/earnings/triggers.ts +91 -0
  115. package/src/component/products/queries.ts +74 -0
  116. package/src/component/public.test.ts +1 -1
  117. package/src/component/read-pagination.test.ts +193 -0
  118. package/src/component/refund-history.test.ts +198 -0
  119. package/src/component/refundHistory/queries.ts +99 -0
  120. package/src/component/schema.ts +2 -0
  121. package/src/react/components/EarningsSummary.tsx +5 -2
  122. package/src/react/hooks/useCurrencyEarnings.test.ts +59 -0
  123. package/src/react/hooks/useCurrencyEarnings.ts +73 -0
  124. package/src/react/index.ts +12 -0
  125. package/src/react/read-contracts.render.test.tsx +20 -0
  126. package/src/react/workflows/Costs.test.tsx +21 -0
  127. package/src/react/workflows/Costs.tsx +9 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triggers.d.ts","sourceRoot":"","sources":["../../../src/component/earnings/triggers.ts"],"names":[],"mappings":"AA0FA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAA0D,CAAC"}
@@ -0,0 +1,68 @@
1
+ import { Triggers } from "convex-helpers/server/triggers";
2
+ import { customCtx, customMutation, } from "convex-helpers/server/customFunctions";
3
+ import { mutation as rawMutation, } from "../_generated/server.js";
4
+ async function adjust(ctx, kind, value, sign) {
5
+ const row = await ctx.db
6
+ .query("currencyTotals")
7
+ .withIndex("by_account_kind_currency", (q) => q
8
+ .eq("accountId", value.accountId)
9
+ .eq("kind", kind)
10
+ .eq("currency", value.currency))
11
+ .unique();
12
+ const totals = {
13
+ gross: (row?.gross ?? 0) + sign * value.gross,
14
+ reversed: (row?.reversed ?? 0) + sign * value.reversed,
15
+ paidOut: (row?.paidOut ?? 0) + sign * value.paidOut,
16
+ count: (row?.count ?? 0) + sign * value.count,
17
+ };
18
+ if (row) {
19
+ if (totals.count === 0)
20
+ await ctx.db.delete("currencyTotals", row._id);
21
+ else
22
+ await ctx.db.patch("currencyTotals", row._id, totals);
23
+ }
24
+ else
25
+ await ctx.db.insert("currencyTotals", {
26
+ accountId: value.accountId,
27
+ currency: value.currency,
28
+ kind,
29
+ ...totals,
30
+ });
31
+ }
32
+ const triggers = new Triggers();
33
+ triggers.register("transfers", async (ctx, change) => {
34
+ const contribution = (row) => ({
35
+ accountId: row.destinationAccountId,
36
+ currency: row.currency,
37
+ gross: row.amount,
38
+ reversed: row.reversedAmount ?? 0,
39
+ paidOut: 0,
40
+ count: 1,
41
+ });
42
+ if (change.oldDoc?.totalsRecorded)
43
+ await adjust(ctx, "earnings", contribution(change.oldDoc), -1);
44
+ if (change.newDoc) {
45
+ await adjust(ctx, "earnings", contribution(change.newDoc), 1);
46
+ if (!change.newDoc.totalsRecorded)
47
+ await ctx.innerDb.patch("transfers", change.id, { totalsRecorded: true });
48
+ }
49
+ });
50
+ triggers.register("payouts", async (ctx, change) => {
51
+ const contribution = (row) => ({
52
+ accountId: row.accountId,
53
+ currency: row.currency,
54
+ gross: 0,
55
+ reversed: 0,
56
+ paidOut: row.status === "paid" ? row.amount : 0,
57
+ count: 1,
58
+ });
59
+ if (change.oldDoc?.totalsRecorded)
60
+ await adjust(ctx, "payouts", contribution(change.oldDoc), -1);
61
+ if (change.newDoc) {
62
+ await adjust(ctx, "payouts", contribution(change.newDoc), 1);
63
+ if (!change.newDoc.totalsRecorded)
64
+ await ctx.innerDb.patch("payouts", change.id, { totalsRecorded: true });
65
+ }
66
+ });
67
+ export const mutation = customMutation(rawMutation, customCtx(triggers.wrapDB));
68
+ //# sourceMappingURL=triggers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triggers.js","sourceRoot":"","sources":["../../../src/component/earnings/triggers.ts"],"names":[],"mappings":"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"}
@@ -106,4 +106,51 @@ export declare const listPricesByProduct: import("convex/server").RegisteredQuer
106
106
  type: "one_time" | "recurring";
107
107
  unitAmount: number;
108
108
  }[]>>;
109
+ export declare const paginateProducts: import("convex/server").RegisteredQuery<"public", {
110
+ accountId?: string | undefined;
111
+ active?: boolean | undefined;
112
+ paginationOpts: {
113
+ id?: number;
114
+ endCursor?: string | null;
115
+ maximumRowsRead?: number;
116
+ maximumBytesRead?: number;
117
+ numItems: number;
118
+ cursor: string | null;
119
+ };
120
+ }, Promise<import("convex/server").PaginationResult<{
121
+ _creationTime: number;
122
+ _id: import("convex/values").GenericId<"products">;
123
+ accountId?: string | undefined;
124
+ active: boolean;
125
+ description?: string | undefined;
126
+ metadata?: any;
127
+ name: string;
128
+ stripeProductId: string;
129
+ }>>>;
130
+ export declare const paginatePrices: import("convex/server").RegisteredQuery<"public", {
131
+ active?: boolean | undefined;
132
+ paginationOpts: {
133
+ id?: number;
134
+ endCursor?: string | null;
135
+ maximumRowsRead?: number;
136
+ maximumBytesRead?: number;
137
+ numItems: number;
138
+ cursor: string | null;
139
+ };
140
+ productId?: string | undefined;
141
+ }, Promise<import("convex/server").PaginationResult<{
142
+ _creationTime: number;
143
+ _id: import("convex/values").GenericId<"prices">;
144
+ active: boolean;
145
+ currency: string;
146
+ interval?: "day" | "month" | "week" | "year" | undefined;
147
+ intervalCount?: number | undefined;
148
+ metadata?: any;
149
+ nickname?: string | undefined;
150
+ productId: string;
151
+ stripePriceId: string;
152
+ stripeProductId: string;
153
+ type: "one_time" | "recurring";
154
+ unitAmount: number;
155
+ }>>>;
109
156
  //# sourceMappingURL=queries.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/component/products/queries.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,UAAU;;;;;;;;;;;UAMrB,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;UAW/B,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;KAsCvB,CAAC;AAMH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;UAMnB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;UAW7B,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;KAsCrB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;KAa9B,CAAC"}
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/component/products/queries.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,UAAU;;;;;;;;;;;UAMrB,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;UAW/B,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;KAsCvB,CAAC;AAMH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;UAMnB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;UAW7B,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;KAsCrB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;KAa9B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;IAgC3B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;IAgCzB,CAAC"}
@@ -1,3 +1,6 @@
1
+ import { paginator } from "convex-helpers/server/pagination";
2
+ import schema from "../schema.js";
3
+ import { paginationOptsValidator, paginationResultValidator, } from "convex/server";
1
4
  import { v } from "convex/values";
2
5
  import { query } from "../_generated/server";
3
6
  import { priceDocValidator, productDocValidator } from "./validators";
@@ -119,4 +122,60 @@ export const listPricesByProduct = query({
119
122
  .collect();
120
123
  },
121
124
  });
125
+ export const paginateProducts = query({
126
+ args: {
127
+ accountId: v.optional(v.string()),
128
+ active: v.optional(v.boolean()),
129
+ paginationOpts: paginationOptsValidator,
130
+ },
131
+ returns: paginationResultValidator(productDocValidator),
132
+ handler: (ctx, args) => {
133
+ if (!Number.isInteger(args.paginationOpts.numItems) ||
134
+ args.paginationOpts.numItems < 1 ||
135
+ args.paginationOpts.numItems > 100)
136
+ throw new Error("Page size must be an integer from 1 to 100");
137
+ const { accountId, active } = args;
138
+ const rows = paginator(ctx.db, schema).query("products");
139
+ const scoped = accountId !== undefined
140
+ ? active !== undefined
141
+ ? rows.withIndex("by_account_active", (q) => q.eq("accountId", accountId).eq("active", active))
142
+ : rows.withIndex("by_account_id", (q) => q.eq("accountId", accountId))
143
+ : active !== undefined
144
+ ? rows.withIndex("by_active", (q) => q.eq("active", active))
145
+ : rows;
146
+ return scoped.order("desc").paginate({
147
+ ...args.paginationOpts,
148
+ maximumRowsRead: 200,
149
+ maximumBytesRead: 1_000_000,
150
+ });
151
+ },
152
+ });
153
+ export const paginatePrices = query({
154
+ args: {
155
+ productId: v.optional(v.string()),
156
+ active: v.optional(v.boolean()),
157
+ paginationOpts: paginationOptsValidator,
158
+ },
159
+ returns: paginationResultValidator(priceDocValidator),
160
+ handler: (ctx, args) => {
161
+ if (!Number.isInteger(args.paginationOpts.numItems) ||
162
+ args.paginationOpts.numItems < 1 ||
163
+ args.paginationOpts.numItems > 100)
164
+ throw new Error("Page size must be an integer from 1 to 100");
165
+ const { productId, active } = args;
166
+ const rows = paginator(ctx.db, schema).query("prices");
167
+ const scoped = productId !== undefined
168
+ ? active !== undefined
169
+ ? rows.withIndex("by_product_active", (q) => q.eq("productId", productId).eq("active", active))
170
+ : rows.withIndex("by_product_id", (q) => q.eq("productId", productId))
171
+ : active !== undefined
172
+ ? rows.withIndex("by_active", (q) => q.eq("active", active))
173
+ : rows;
174
+ return scoped.order("desc").paginate({
175
+ ...args.paginationOpts,
176
+ maximumRowsRead: 200,
177
+ maximumBytesRead: 1_000_000,
178
+ });
179
+ },
180
+ });
122
181
  //# sourceMappingURL=queries.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/component/products/queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/component/products/queries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /** Host-authorized scopes are conjunctive; use the package React pagination binding. */
2
+ export declare const paginateRefunds: import("convex/server").RegisteredQuery<"public", {
3
+ accountId?: string | undefined;
4
+ paginationOpts: {
5
+ id?: number;
6
+ endCursor?: string | null;
7
+ maximumRowsRead?: number;
8
+ maximumBytesRead?: number;
9
+ numItems: number;
10
+ cursor: string | null;
11
+ };
12
+ status?: "canceled" | "failed" | "pending" | "requires_action" | "succeeded" | undefined;
13
+ stripePaymentIntentId?: string | undefined;
14
+ }, Promise<import("convex/server").PaginationResult<{
15
+ _creationTime: number;
16
+ _id: import("convex/values").GenericId<"refunds">;
17
+ accountId?: string | undefined;
18
+ amount: number;
19
+ currency: string;
20
+ failureReason?: string | undefined;
21
+ metadata?: any;
22
+ reason?: "duplicate" | "expired_uncaptured_charge" | "fraudulent" | "requested_by_customer" | undefined;
23
+ status: "canceled" | "failed" | "pending" | "requires_action" | "succeeded";
24
+ stripeChargeId?: string | undefined;
25
+ stripePaymentIntentId?: string | undefined;
26
+ stripeRefundId: string;
27
+ }>>>;
28
+ //# sourceMappingURL=queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/component/refundHistory/queries.ts"],"names":[],"mappings":"AAeA,wFAAwF;AACxF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;IA0B1B,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { paginationOptsValidator, paginationResultValidator, } from "convex/server";
2
+ import { v } from "convex/values";
3
+ import { paginator } from "convex-helpers/server/pagination";
4
+ import { query } from "../_generated/server.js";
5
+ import schema from "../schema.js";
6
+ import { refundDocValidator, refundStatusValidator, } from "../connect/validators.js";
7
+ /** Host-authorized scopes are conjunctive; use the package React pagination binding. */
8
+ export const paginateRefunds = query({
9
+ args: {
10
+ accountId: v.optional(v.string()),
11
+ stripePaymentIntentId: v.optional(v.string()),
12
+ status: v.optional(refundStatusValidator),
13
+ paginationOpts: paginationOptsValidator,
14
+ },
15
+ returns: paginationResultValidator(refundDocValidator),
16
+ handler: (ctx, args) => {
17
+ const { paginationOpts } = args;
18
+ if (!Number.isSafeInteger(paginationOpts.numItems) ||
19
+ paginationOpts.numItems < 1 ||
20
+ paginationOpts.numItems > 100)
21
+ throw new Error("Refund history page size must be an integer from 1 to 100");
22
+ return scopedRefunds(ctx, args)
23
+ .order("desc")
24
+ .paginate({
25
+ ...paginationOpts,
26
+ maximumRowsRead: 200,
27
+ maximumBytesRead: 1_000_000,
28
+ });
29
+ },
30
+ });
31
+ function scopedRefunds(ctx, args) {
32
+ const { accountId, stripePaymentIntentId, status } = args;
33
+ const refunds = paginator(ctx.db, schema).query("refunds");
34
+ if (accountId !== undefined &&
35
+ stripePaymentIntentId !== undefined &&
36
+ status === undefined)
37
+ return refunds.withIndex("by_account_id_and_stripe_payment_intent_id", (q) => q
38
+ .eq("accountId", accountId)
39
+ .eq("stripePaymentIntentId", stripePaymentIntentId));
40
+ if (accountId !== undefined &&
41
+ stripePaymentIntentId !== undefined &&
42
+ status !== undefined)
43
+ return refunds.withIndex("by_account_id_and_stripe_payment_intent_id_and_status", (q) => q
44
+ .eq("accountId", accountId)
45
+ .eq("stripePaymentIntentId", stripePaymentIntentId)
46
+ .eq("status", status));
47
+ if (accountId !== undefined && status !== undefined)
48
+ return refunds.withIndex("by_account_id_and_status", (q) => q.eq("accountId", accountId).eq("status", status));
49
+ if (stripePaymentIntentId !== undefined && status !== undefined)
50
+ return refunds.withIndex("by_payment_intent_id_and_status", (q) => q.eq("stripePaymentIntentId", stripePaymentIntentId).eq("status", status));
51
+ if (accountId !== undefined)
52
+ return refunds.withIndex("by_account_id", (q) => q.eq("accountId", accountId));
53
+ if (stripePaymentIntentId !== undefined)
54
+ return refunds.withIndex("by_stripe_payment_intent_id", (q) => q.eq("stripePaymentIntentId", stripePaymentIntentId));
55
+ if (status !== undefined)
56
+ return refunds.withIndex("by_status", (q) => q.eq("status", status));
57
+ return refunds;
58
+ }
59
+ //# sourceMappingURL=queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/component/refundHistory/queries.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,23 @@
1
1
  declare const _default: import("convex/server").SchemaDefinition<{
2
+ currencyTotals: import("convex/server").TableDefinition<import("convex/values").VObject<{
3
+ accountId: string;
4
+ count: number;
5
+ currency: string;
6
+ gross: number;
7
+ kind: "earnings" | "payouts";
8
+ paidOut: number;
9
+ reversed: number;
10
+ }, {
11
+ accountId: import("convex/values").VString<string, "required">;
12
+ currency: import("convex/values").VString<string, "required">;
13
+ kind: import("convex/values").VUnion<"earnings" | "payouts", [import("convex/values").VLiteral<"earnings", "required">, import("convex/values").VLiteral<"payouts", "required">], "required", never>;
14
+ gross: import("convex/values").VFloat64<number, "required">;
15
+ reversed: import("convex/values").VFloat64<number, "required">;
16
+ paidOut: import("convex/values").VFloat64<number, "required">;
17
+ count: import("convex/values").VFloat64<number, "required">;
18
+ }, "required", "accountId" | "count" | "currency" | "gross" | "kind" | "paidOut" | "reversed">, {
19
+ by_account_kind_currency: ["accountId", "kind", "currency", "_creationTime"];
20
+ }, {}, {}>;
2
21
  recoveryClaims: import("convex/server").TableDefinition<import("convex/values").VObject<{
3
22
  accountId: string;
4
23
  amountDue: number;
@@ -593,10 +612,13 @@ declare const _default: import("convex/server").SchemaDefinition<{
593
612
  amount: number;
594
613
  arrivalDate?: string | undefined;
595
614
  currency: string;
615
+ failureCode?: string | undefined;
616
+ failureMessage?: string | undefined;
596
617
  metadata?: any;
597
618
  method?: string | undefined;
598
619
  status: "canceled" | "failed" | "in_transit" | "paid" | "pending";
599
620
  stripePayoutId: string;
621
+ totalsRecorded?: true | undefined;
600
622
  }, {
601
623
  stripePayoutId: import("convex/values").VString<string, "required">;
602
624
  accountId: import("convex/values").VString<string, "required">;
@@ -605,10 +627,14 @@ declare const _default: import("convex/server").SchemaDefinition<{
605
627
  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>;
606
628
  arrivalDate: import("convex/values").VString<string | undefined, "optional">;
607
629
  method: import("convex/values").VString<string | undefined, "optional">;
630
+ failureCode: import("convex/values").VString<string | undefined, "optional">;
631
+ failureMessage: import("convex/values").VString<string | undefined, "optional">;
608
632
  metadata: import("convex/values").VAny<any, "optional", string>;
609
- }, "required", "accountId" | "amount" | "arrivalDate" | "currency" | "metadata" | "method" | "status" | "stripePayoutId" | `metadata.${string}`>, {
633
+ totalsRecorded: import("convex/values").VLiteral<true | undefined, "optional">;
634
+ }, "required", "accountId" | "amount" | "arrivalDate" | "currency" | "failureCode" | "failureMessage" | "metadata" | "method" | "status" | "stripePayoutId" | "totalsRecorded" | `metadata.${string}`>, {
610
635
  by_account_id: ["accountId", "_creationTime"];
611
636
  by_account_status: ["accountId", "status", "_creationTime"];
637
+ by_account_totals_recorded: ["accountId", "totalsRecorded", "_creationTime"];
612
638
  by_status: ["status", "_creationTime"];
613
639
  by_stripe_payout_id: ["stripePayoutId", "_creationTime"];
614
640
  }, {}, {}>;
@@ -648,6 +674,8 @@ declare const _default: import("convex/server").SchemaDefinition<{
648
674
  }, "required", "accountId" | "amount" | "currency" | "failureReason" | "metadata" | "reason" | "status" | "stripeChargeId" | "stripePaymentIntentId" | "stripeRefundId" | `metadata.${string}`>, {
649
675
  by_account_id: ["accountId", "_creationTime"];
650
676
  by_account_id_and_status: ["accountId", "status", "_creationTime"];
677
+ by_account_id_and_stripe_payment_intent_id: ["accountId", "stripePaymentIntentId", "_creationTime"];
678
+ by_account_id_and_stripe_payment_intent_id_and_status: ["accountId", "stripePaymentIntentId", "status", "_creationTime"];
651
679
  by_payment_intent_id_and_status: ["stripePaymentIntentId", "status", "_creationTime"];
652
680
  by_status: ["status", "_creationTime"];
653
681
  by_stripe_payment_intent_id: ["stripePaymentIntentId", "_creationTime"];
@@ -708,6 +736,7 @@ declare const _default: import("convex/server").SchemaDefinition<{
708
736
  sourceInvoiceId?: string | undefined;
709
737
  status: "failed" | "paid" | "pending" | "reversed";
710
738
  stripeTransferId: string;
739
+ totalsRecorded?: true | undefined;
711
740
  }, {
712
741
  stripeTransferId: import("convex/values").VString<string, "required">;
713
742
  sourceChargeId: import("convex/values").VString<string | undefined, "optional">;
@@ -722,8 +751,10 @@ declare const _default: import("convex/server").SchemaDefinition<{
722
751
  paymentId: import("convex/values").VString<string | undefined, "optional">;
723
752
  reinstatement: import("convex/values").VBoolean<boolean | undefined, "optional">;
724
753
  metadata: import("convex/values").VAny<any, "optional", string>;
754
+ totalsRecorded: import("convex/values").VLiteral<true | undefined, "optional">;
725
755
  reversalClaimedAmount: import("convex/values").VFloat64<number | undefined, "optional">;
726
- }, "required", "amount" | "currency" | "destinationAccountId" | "metadata" | "paymentId" | "reinstatement" | "reversalClaimedAmount" | "reversalStatus" | "reversedAmount" | "role" | "sourceChargeId" | "sourceInvoiceId" | "status" | "stripeTransferId" | `metadata.${string}`>, {
756
+ }, "required", "amount" | "currency" | "destinationAccountId" | "metadata" | "paymentId" | "reinstatement" | "reversalClaimedAmount" | "reversalStatus" | "reversedAmount" | "role" | "sourceChargeId" | "sourceInvoiceId" | "status" | "stripeTransferId" | "totalsRecorded" | `metadata.${string}`>, {
757
+ by_account_totals_recorded: ["destinationAccountId", "totalsRecorded", "_creationTime"];
727
758
  by_destination_account_id: ["destinationAccountId", "_creationTime"];
728
759
  by_source_charge_id: ["sourceChargeId", "_creationTime"];
729
760
  by_stripe_transfer_id: ["stripeTransferId", "_creationTime"];
@@ -1,3 +1,4 @@
1
+ import { currencyTotalsTable } from "./earnings/schema.js";
1
2
  import { claimsTable, balancesTable, groupsTable, reservationsTable, } from "./costRecovery/schema";
2
3
  import { allocationsTable, commissionTermsTable, commissionDecisionsTable, } from "./settlement/schema";
3
4
  import { defineSchema } from "convex/server";
@@ -7,6 +8,7 @@ import { accountsTable } from "./core/schema";
7
8
  import { pricesTable, productsTable } from "./products/schema";
8
9
  import { webhookEventsTable } from "./webhooks/schema";
9
10
  export default defineSchema({
11
+ currencyTotals: currencyTotalsTable,
10
12
  recoveryClaims: claimsTable,
11
13
  recoveryBalances: balancesTable,
12
14
  recoveryGroups: groupsTable,
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/component/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,aAAa,EACb,WAAW,EACX,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,EACZ,sBAAsB,EACtB,YAAY,EACZ,wBAAwB,EACxB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,eAAe,YAAY,CAAC;IAC1B,cAAc,EAAE,WAAW;IAC3B,gBAAgB,EAAE,aAAa;IAC/B,cAAc,EAAE,WAAW;IAC3B,oBAAoB,EAAE,iBAAiB;IACvC,qBAAqB,EAAE,gBAAgB;IACvC,eAAe,EAAE,oBAAoB;IACrC,mBAAmB,EAAE,wBAAwB;IAC7C,OAAO;IACP,QAAQ,EAAE,aAAa;IAEvB,WAAW;IACX,QAAQ,EAAE,aAAa;IACvB,MAAM,EAAE,WAAW;IAEnB,UAAU;IACV,aAAa,EAAE,kBAAkB;IACjC,gBAAgB,EAAE,qBAAqB;IACvC,QAAQ,EAAE,aAAa;IAEvB,UAAU;IACV,QAAQ,EAAE,aAAa;IACvB,OAAO,EAAE,YAAY;IACrB,iBAAiB,EAAE,sBAAsB;IACzC,OAAO,EAAE,YAAY;IACrB,QAAQ,EAAE,aAAa;IACvB,SAAS,EAAE,cAAc;IACzB,mBAAmB,EAAE,wBAAwB;IAE7C,WAAW;IACX,aAAa,EAAE,kBAAkB;CAClC,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/component/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EACL,WAAW,EACX,aAAa,EACb,WAAW,EACX,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,EACZ,sBAAsB,EACtB,YAAY,EACZ,wBAAwB,EACxB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,eAAe,YAAY,CAAC;IAC1B,cAAc,EAAE,mBAAmB;IACnC,cAAc,EAAE,WAAW;IAC3B,gBAAgB,EAAE,aAAa;IAC/B,cAAc,EAAE,WAAW;IAC3B,oBAAoB,EAAE,iBAAiB;IACvC,qBAAqB,EAAE,gBAAgB;IACvC,eAAe,EAAE,oBAAoB;IACrC,mBAAmB,EAAE,wBAAwB;IAC7C,OAAO;IACP,QAAQ,EAAE,aAAa;IAEvB,WAAW;IACX,QAAQ,EAAE,aAAa;IACvB,MAAM,EAAE,WAAW;IAEnB,UAAU;IACV,aAAa,EAAE,kBAAkB;IACjC,gBAAgB,EAAE,qBAAqB;IACvC,QAAQ,EAAE,aAAa;IAEvB,UAAU;IACV,QAAQ,EAAE,aAAa;IACvB,OAAO,EAAE,YAAY;IACrB,iBAAiB,EAAE,sBAAsB;IACzC,OAAO,EAAE,YAAY;IACrB,QAAQ,EAAE,aAAa;IACvB,SAAS,EAAE,cAAc;IACzB,mBAAmB,EAAE,wBAAwB;IAE7C,WAAW;IACX,aAAa,EAAE,kBAAkB;CAClC,CAAC,CAAC"}
@@ -40,6 +40,8 @@ export type EarningsSummaryProps = {
40
40
  net?: string;
41
41
  paidOut?: string;
42
42
  };
43
+ /** Override formatting for observed currencies outside the charge formatter. */
44
+ formatAmount?: (amount: number, currency: string, locale?: string) => string;
43
45
  locale?: string;
44
46
  className?: string;
45
47
  children?: (props: EarningsSummaryRenderProps) => ReactNode;
@@ -49,5 +51,5 @@ export type EarningsSummaryProps = {
49
51
  * payout status, from the `useEarnings` figures (BTS-36). Pure presentation —
50
52
  * the ledger math lives in the hook.
51
53
  */
52
- export declare function EarningsSummary({ gross, reversed, net, payouts, paidOut, isLoading, currency, loadingLabel, emptyLabel, latestPayoutLabel, noPayoutsLabel, labels, locale, className, children, }: EarningsSummaryProps): import("react").JSX.Element;
54
+ export declare function EarningsSummary({ gross, reversed, net, payouts, paidOut, isLoading, currency, loadingLabel, emptyLabel, latestPayoutLabel, noPayoutsLabel, labels, locale, formatAmount, className, children, }: EarningsSummaryProps): import("react").JSX.Element;
53
55
  //# sourceMappingURL=EarningsSummary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EarningsSummary.d.ts","sourceRoot":"","sources":["../../../src/react/components/EarningsSummary.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGzD,MAAM,MAAM,0BAA0B,GAAG;IACvC,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,YAAY,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC3C,wDAAwD;IACxD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qBAAqB;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,SAAS,CAAC;CAC7D,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,GAAG,EACH,OAAO,EACP,OAAO,EACP,SAAiB,EACjB,QAAgB,EAChB,YAAkC,EAClC,UAA8B,EAC9B,iBAA0D,EAC1D,cAAiC,EACjC,MAAM,EACN,MAAM,EACN,SAAS,EACT,QAAQ,GACT,EAAE,oBAAoB,+BAwDtB"}
1
+ {"version":3,"file":"EarningsSummary.d.ts","sourceRoot":"","sources":["../../../src/react/components/EarningsSummary.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGzD,MAAM,MAAM,0BAA0B,GAAG;IACvC,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,YAAY,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC3C,wDAAwD;IACxD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qBAAqB;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,gFAAgF;IAChF,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,SAAS,CAAC;CAC7D,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,GAAG,EACH,OAAO,EACP,OAAO,EACP,SAAiB,EACjB,QAAgB,EAChB,YAAkC,EAClC,UAA8B,EAC9B,iBAA0D,EAC1D,cAAiC,EACjC,MAAM,EACN,MAAM,EACN,YAA0B,EAC1B,SAAS,EACT,QAAQ,GACT,EAAE,oBAAoB,+BAwDtB"}
@@ -6,7 +6,7 @@ import { formatPrice } from "../lib/price-helpers.js";
6
6
  * payout status, from the `useEarnings` figures (BTS-36). Pure presentation —
7
7
  * the ledger math lives in the hook.
8
8
  */
9
- export function EarningsSummary({ gross, reversed, net, payouts, paidOut, isLoading = false, currency = "usd", loadingLabel = "Loading earnings…", emptyLabel = "No earnings yet", latestPayoutLabel = "Latest payout of {amount} — {status}", noPayoutsLabel = "No payouts yet", labels, locale, className, children, }) {
9
+ export function EarningsSummary({ gross, reversed, net, payouts, paidOut, isLoading = false, currency = "usd", loadingLabel = "Loading earnings…", emptyLabel = "No earnings yet", latestPayoutLabel = "Latest payout of {amount} — {status}", noPayoutsLabel = "No payouts yet", labels, locale, formatAmount = formatPrice, className, children, }) {
10
10
  if (isLoading) {
11
11
  return (_jsx("div", { className: className, role: "status", children: loadingLabel }));
12
12
  }
@@ -16,10 +16,10 @@ export function EarningsSummary({ gross, reversed, net, payouts, paidOut, isLoad
16
16
  const latestPayout = payouts.reduce((latest, p) => latest === null || p._creationTime > latest._creationTime ? p : latest, null);
17
17
  const latestPayoutMessage = latestPayout
18
18
  ? latestPayoutLabel
19
- .replace("{amount}", formatPrice(latestPayout.amount, latestPayout.currency, locale))
19
+ .replace("{amount}", formatAmount(latestPayout.amount, latestPayout.currency, locale))
20
20
  .replace("{status}", latestPayout.status)
21
21
  : noPayoutsLabel;
22
- const money = (amount) => formatPrice(amount, currency, locale);
22
+ const money = (amount) => formatAmount(amount, currency, locale);
23
23
  const renderProps = {
24
24
  grossLabel: money(gross),
25
25
  reversedLabel: money(reversed),
@@ -1 +1 @@
1
- {"version":3,"file":"EarningsSummary.js","sourceRoot":"","sources":["../../../src/react/components/EarningsSummary.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAKb,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAgDtD;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,GAAG,EACH,OAAO,EACP,OAAO,EACP,SAAS,GAAG,KAAK,EACjB,QAAQ,GAAG,KAAK,EAChB,YAAY,GAAG,mBAAmB,EAClC,UAAU,GAAG,iBAAiB,EAC9B,iBAAiB,GAAG,sCAAsC,EAC1D,cAAc,GAAG,gBAAgB,EACjC,MAAM,EACN,MAAM,EACN,SAAS,EACT,QAAQ,GACa;IACrB,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CACL,cAAK,SAAS,EAAE,SAAS,EAAE,IAAI,EAAC,QAAQ,YACrC,YAAY,GACT,CACP,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,cAAK,SAAS,EAAE,SAAS,YAAG,UAAU,GAAO,CAAC;IACvD,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CACjC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CACZ,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EACxE,IAAI,CACL,CAAC;IACF,MAAM,mBAAmB,GAAG,YAAY;QACtC,CAAC,CAAC,iBAAiB;aACd,OAAO,CACN,UAAU,EACV,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAChE;aACA,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC;QAC7C,CAAC,CAAC,cAAc,CAAC;IAEnB,MAAM,KAAK,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxE,MAAM,WAAW,GAA+B;QAC9C,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC;QACxB,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC;QAC9B,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC;QACpB,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;QAC5B,YAAY;QACZ,mBAAmB;QACnB,OAAO;KACR,CAAC;IAEF,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,4BAAG,QAAQ,CAAC,WAAW,CAAC,GAAI,CAAC;IACtC,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAE,SAAS,aACvB,yBACE,uBAAK,MAAM,EAAE,KAAK,IAAI,OAAO,GAAM,EACnC,uBAAK,WAAW,CAAC,UAAU,GAAM,EACjC,uBAAK,MAAM,EAAE,QAAQ,IAAI,yBAAyB,GAAM,EACxD,uBAAK,WAAW,CAAC,aAAa,GAAM,EACpC,uBAAK,MAAM,EAAE,GAAG,IAAI,KAAK,GAAM,EAC/B,uBAAK,WAAW,CAAC,QAAQ,GAAM,EAC/B,uBAAK,MAAM,EAAE,OAAO,IAAI,UAAU,GAAM,EACxC,uBAAK,WAAW,CAAC,YAAY,GAAM,IAChC,EACL,sBAAI,mBAAmB,GAAK,IACxB,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"EarningsSummary.js","sourceRoot":"","sources":["../../../src/react/components/EarningsSummary.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAKb,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAkDtD;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,GAAG,EACH,OAAO,EACP,OAAO,EACP,SAAS,GAAG,KAAK,EACjB,QAAQ,GAAG,KAAK,EAChB,YAAY,GAAG,mBAAmB,EAClC,UAAU,GAAG,iBAAiB,EAC9B,iBAAiB,GAAG,sCAAsC,EAC1D,cAAc,GAAG,gBAAgB,EACjC,MAAM,EACN,MAAM,EACN,YAAY,GAAG,WAAW,EAC1B,SAAS,EACT,QAAQ,GACa;IACrB,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CACL,cAAK,SAAS,EAAE,SAAS,EAAE,IAAI,EAAC,QAAQ,YACrC,YAAY,GACT,CACP,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,cAAK,SAAS,EAAE,SAAS,YAAG,UAAU,GAAO,CAAC;IACvD,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CACjC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CACZ,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EACxE,IAAI,CACL,CAAC;IACF,MAAM,mBAAmB,GAAG,YAAY;QACtC,CAAC,CAAC,iBAAiB;aACd,OAAO,CACN,UAAU,EACV,YAAY,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CACjE;aACA,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC;QAC7C,CAAC,CAAC,cAAc,CAAC;IAEnB,MAAM,KAAK,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACzE,MAAM,WAAW,GAA+B;QAC9C,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC;QACxB,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC;QAC9B,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC;QACpB,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;QAC5B,YAAY;QACZ,mBAAmB;QACnB,OAAO;KACR,CAAC;IAEF,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,4BAAG,QAAQ,CAAC,WAAW,CAAC,GAAI,CAAC;IACtC,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAE,SAAS,aACvB,yBACE,uBAAK,MAAM,EAAE,KAAK,IAAI,OAAO,GAAM,EACnC,uBAAK,WAAW,CAAC,UAAU,GAAM,EACjC,uBAAK,MAAM,EAAE,QAAQ,IAAI,yBAAyB,GAAM,EACxD,uBAAK,WAAW,CAAC,aAAa,GAAM,EACpC,uBAAK,MAAM,EAAE,GAAG,IAAI,KAAK,GAAM,EAC/B,uBAAK,WAAW,CAAC,QAAQ,GAAM,EAC/B,uBAAK,MAAM,EAAE,OAAO,IAAI,UAAU,GAAM,EACxC,uBAAK,WAAW,CAAC,YAAY,GAAM,IAChC,EACL,sBAAI,mBAAmB,GAAK,IACxB,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { EarningsTransfer } from "./useEarnings.js";
2
+ import type { StripeComponentPayout } from "../types.js";
3
+ export type CurrencyEarningsTotal = {
4
+ currency: string;
5
+ gross: number;
6
+ reversed: number;
7
+ net: number;
8
+ transferCount: number;
9
+ };
10
+ export type CurrencyPayoutTotal = {
11
+ currency: string;
12
+ paidOut: number;
13
+ payoutCount: number;
14
+ };
15
+ export type AccountCurrencyEarnings = {
16
+ totals: CurrencyEarningsTotal[];
17
+ transfers: EarningsTransfer[];
18
+ };
19
+ export type AccountCurrencyPayouts = {
20
+ totals: CurrencyPayoutTotal[];
21
+ payouts: StripeComponentPayout[];
22
+ };
23
+ export type UseCurrencyEarningsResult = {
24
+ totals: (CurrencyEarningsTotal & CurrencyPayoutTotal)[];
25
+ transfers: EarningsTransfer[];
26
+ payouts: StripeComponentPayout[];
27
+ isLoading: boolean;
28
+ };
29
+ /** Bind authorized host queries to the maintained component currency summaries. */
30
+ export declare function createUseCurrencyEarnings(useQuery: (ref: any, args: Record<string, unknown> | "skip") => any, earningsRef: any, payoutsRef: any): (accountId: string | undefined) => UseCurrencyEarningsResult;
31
+ //# sourceMappingURL=useCurrencyEarnings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCurrencyEarnings.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useCurrencyEarnings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,qBAAqB,EAAE,CAAC;IAChC,SAAS,EAAE,gBAAgB,EAAE,CAAC;CAC/B,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC,CAAC;AACF,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,CAAC,qBAAqB,GAAG,mBAAmB,CAAC,EAAE,CAAC;IACxD,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AACF,mFAAmF;AACnF,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,KAAK,GAAG,EACnE,WAAW,EAAE,GAAG,EAChB,UAAU,EAAE,GAAG,eAGF,MAAM,GAAG,SAAS,KAC5B,yBAAyB,CAmC7B"}
@@ -0,0 +1,30 @@
1
+ "use client";
2
+ /** Bind authorized host queries to the maintained component currency summaries. */
3
+ export function createUseCurrencyEarnings(useQuery, earningsRef, payoutsRef) {
4
+ return function useCurrencyEarnings(accountId) {
5
+ const earnings = useQuery(earningsRef, accountId ? { destinationAccountId: accountId } : "skip");
6
+ const payouts = useQuery(payoutsRef, accountId ? { accountId } : "skip");
7
+ const byCurrency = new Map();
8
+ for (const row of earnings?.totals ?? [])
9
+ byCurrency.set(row.currency, { ...row, paidOut: 0, payoutCount: 0 });
10
+ for (const row of payouts?.totals ?? [])
11
+ byCurrency.set(row.currency, {
12
+ ...(byCurrency.get(row.currency) ?? {
13
+ currency: row.currency,
14
+ gross: 0,
15
+ reversed: 0,
16
+ net: 0,
17
+ transferCount: 0,
18
+ }),
19
+ ...row,
20
+ });
21
+ return {
22
+ totals: [...byCurrency.values()].sort((a, b) => a.currency.localeCompare(b.currency)),
23
+ transfers: earnings?.transfers ?? [],
24
+ payouts: payouts?.payouts ?? [],
25
+ isLoading: accountId !== undefined &&
26
+ (earnings === undefined || payouts === undefined),
27
+ };
28
+ };
29
+ }
30
+ //# sourceMappingURL=useCurrencyEarnings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCurrencyEarnings.js","sourceRoot":"","sources":["../../../src/react/hooks/useCurrencyEarnings.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AA6Bb,mFAAmF;AACnF,MAAM,UAAU,yBAAyB,CACvC,QAAmE,EACnE,WAAgB,EAChB,UAAe;IAEf,OAAO,SAAS,mBAAmB,CACjC,SAA6B;QAE7B,MAAM,QAAQ,GAAG,QAAQ,CACvB,WAAW,EACX,SAAS,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,CAClB,CAAC;QACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,CACnC,CAAC;QACrC,MAAM,UAAU,GAAG,IAAI,GAAG,EAGvB,CAAC;QACJ,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,MAAM,IAAI,EAAE;YACtC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;QACvE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,MAAM,IAAI,EAAE;YACrC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAC3B,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI;oBAClC,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,KAAK,EAAE,CAAC;oBACR,QAAQ,EAAE,CAAC;oBACX,GAAG,EAAE,CAAC;oBACN,aAAa,EAAE,CAAC;iBACjB,CAAC;gBACF,GAAG,GAAG;aACP,CAAC,CAAC;QACL,OAAO;YACL,MAAM,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC7C,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CACrC;YACD,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,EAAE;YACpC,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE;YAC/B,SAAS,EACP,SAAS,KAAK,SAAS;gBACvB,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,CAAC;SACpD,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -109,4 +109,7 @@ export * from "./workflows/index.js";
109
109
  export { chargeAmountToDecimal, getChargeCurrencyMetadata, parseChargeAmount, formatChargeAmount, type ChargeCurrencyMetadata, } from "../client/charge-currency.js";
110
110
  export { SaveCard } from "./workflows/SaveCard.js";
111
111
  export type { SaveCardProps, SaveCardFormState } from "./workflows/SaveCard.js";
112
+ export { createUseCurrencyEarnings } from "./hooks/useCurrencyEarnings.js";
113
+ export type { CurrencyEarningsTotal, CurrencyPayoutTotal, AccountCurrencyEarnings, AccountCurrencyPayouts, UseCurrencyEarningsResult, } from "./hooks/useCurrencyEarnings.js";
114
+ export { usePaginatedQuery as useComponentPaginatedQuery } from "convex-helpers/react";
112
115
  //# sourceMappingURL=index.d.ts.map