@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":"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"}