@burdenoff/microfe-billing 2026.626.1 → 2026.708.1
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/dist/billing/BillingAdminRoutes.js +74 -61
- package/dist/billing/BillingAdminRoutes.js.map +1 -1
- package/dist/billing/BillingRoot.js +84 -76
- package/dist/billing/BillingRoot.js.map +1 -1
- package/dist/billing/modules/checkout/hooks/useCheckout.js +0 -1
- package/dist/billing/modules/checkout/hooks/useCheckout.js.map +1 -1
- package/dist/billing/modules/earnings/api.js +67 -31
- package/dist/billing/modules/earnings/api.js.map +1 -1
- package/dist/billing/modules/earnings/index.js +4 -3
- package/dist/billing/modules/earnings/pages/DeveloperRevenueAdminPage.js +438 -0
- package/dist/billing/modules/earnings/pages/DeveloperRevenueAdminPage.js.map +1 -0
- package/dist/billing/modules/earnings/pages/PayoutAdminPage.js +106 -67
- package/dist/billing/modules/earnings/pages/PayoutAdminPage.js.map +1 -1
- package/dist/generated/global-operations.js +194 -111
- package/dist/generated/global-operations.js.map +1 -1
- package/dist/generated/global-types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { gatewayGraphqlRequest as e } from "../../shared/utils/gatewayGraphql.js";
|
|
2
2
|
import { directBillingGraphqlRequest as t } from "../../shared/utils/directBillingGraphql.js";
|
|
3
3
|
import "../../shared/utils/index.js";
|
|
4
|
-
import { AddPayoutAccountDocument as n,
|
|
4
|
+
import { AddPayoutAccountDocument as n, AdminDeveloperRevenueOrgDetailDocument as r, AdminDeveloperRevenueOrgsDocument as i, AdminPayoutRequestsDocument as a, AdminPayoutSummaryDocument as o, ApprovePayoutRequestDocument as s, ArchivePayoutAccountDocument as c, BillingDeveloperPortalRevenueDocument as l, MarkPayoutPaidDocument as u, MyEarningsEntriesDocument as d, MyEarningsSummaryDocument as f, MyPayoutAccountsDocument as p, MyPayoutRequestsDocument as m, RejectPayoutRequestDocument as h, RetrySaleCreditSyncDocument as g, SetDefaultPayoutAccountDocument as _, UpdatePayoutAccountDocument as v } from "../../../generated/global-operations.js";
|
|
5
5
|
//#region src/billing/modules/earnings/api.ts
|
|
6
|
-
async function
|
|
6
|
+
async function y(t, n) {
|
|
7
7
|
let r = await e({
|
|
8
8
|
...n,
|
|
9
|
-
query:
|
|
9
|
+
query: l,
|
|
10
10
|
variables: { organizationId: t }
|
|
11
11
|
});
|
|
12
12
|
return {
|
|
@@ -15,104 +15,140 @@ async function g(t, n) {
|
|
|
15
15
|
payouts: r.developerOrgPayouts.edges.map((e) => e.node)
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
|
-
async function
|
|
18
|
+
async function b(e, n) {
|
|
19
19
|
return (await t({
|
|
20
20
|
...n,
|
|
21
|
-
query:
|
|
21
|
+
query: f,
|
|
22
22
|
variables: { billingAccountId: e }
|
|
23
23
|
})).myEarningsSummary;
|
|
24
24
|
}
|
|
25
|
-
async function
|
|
25
|
+
async function x(e, n) {
|
|
26
26
|
return (await t({
|
|
27
27
|
...n,
|
|
28
|
-
query:
|
|
28
|
+
query: d,
|
|
29
29
|
variables: { billingAccountId: e }
|
|
30
30
|
})).myEarningsEntries.items;
|
|
31
31
|
}
|
|
32
|
-
async function
|
|
32
|
+
async function S(e, n) {
|
|
33
33
|
return (await t({
|
|
34
34
|
...n,
|
|
35
|
-
query:
|
|
35
|
+
query: p,
|
|
36
36
|
variables: { billingAccountId: e }
|
|
37
37
|
})).myPayoutAccounts;
|
|
38
38
|
}
|
|
39
|
-
async function
|
|
39
|
+
async function C(e, n) {
|
|
40
40
|
return (await t({
|
|
41
41
|
...n,
|
|
42
|
-
query:
|
|
42
|
+
query: m,
|
|
43
43
|
variables: { billingAccountId: e }
|
|
44
44
|
})).myPayoutRequests.items;
|
|
45
45
|
}
|
|
46
|
-
async function
|
|
46
|
+
async function w(e, r) {
|
|
47
47
|
await t({
|
|
48
48
|
...r,
|
|
49
49
|
query: n,
|
|
50
50
|
variables: { input: e }
|
|
51
51
|
});
|
|
52
52
|
}
|
|
53
|
-
async function
|
|
53
|
+
async function T(e, n, r) {
|
|
54
54
|
await t({
|
|
55
55
|
...r,
|
|
56
|
-
query:
|
|
56
|
+
query: v,
|
|
57
57
|
variables: {
|
|
58
58
|
id: e,
|
|
59
59
|
input: n
|
|
60
60
|
}
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
|
-
async function
|
|
63
|
+
async function E(e, n) {
|
|
64
64
|
await t({
|
|
65
65
|
...n,
|
|
66
|
-
query:
|
|
66
|
+
query: _,
|
|
67
67
|
variables: { id: e }
|
|
68
68
|
});
|
|
69
69
|
}
|
|
70
|
-
async function
|
|
70
|
+
async function D(e, n) {
|
|
71
71
|
await t({
|
|
72
72
|
...n,
|
|
73
|
-
query:
|
|
73
|
+
query: c,
|
|
74
74
|
variables: { id: e }
|
|
75
75
|
});
|
|
76
76
|
}
|
|
77
|
-
async function
|
|
77
|
+
async function O(e, t) {
|
|
78
78
|
throw Error("Payout request not yet implemented");
|
|
79
79
|
}
|
|
80
|
-
async function
|
|
80
|
+
async function k(e) {
|
|
81
81
|
return (await t({
|
|
82
82
|
...e,
|
|
83
|
-
query:
|
|
83
|
+
query: o
|
|
84
84
|
})).adminPayoutSummary;
|
|
85
85
|
}
|
|
86
|
-
async function
|
|
86
|
+
async function A(e, n = {}) {
|
|
87
87
|
return (await t({
|
|
88
88
|
...e,
|
|
89
|
-
query:
|
|
90
|
-
|
|
89
|
+
query: a,
|
|
90
|
+
variables: {
|
|
91
|
+
limit: n.limit ?? 50,
|
|
92
|
+
offset: n.offset ?? 0
|
|
93
|
+
}
|
|
94
|
+
})).adminPayoutRequests;
|
|
95
|
+
}
|
|
96
|
+
async function j(t) {
|
|
97
|
+
return (await e({
|
|
98
|
+
...t,
|
|
99
|
+
query: i
|
|
100
|
+
})).developerOrganizations.edges.map((e) => e.node);
|
|
91
101
|
}
|
|
92
|
-
async function
|
|
102
|
+
async function M(t, n) {
|
|
103
|
+
let i = await e({
|
|
104
|
+
...n,
|
|
105
|
+
query: r,
|
|
106
|
+
variables: {
|
|
107
|
+
organizationId: t,
|
|
108
|
+
period: "monthly",
|
|
109
|
+
salesLimit: 20,
|
|
110
|
+
salesOffset: 0
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
return {
|
|
114
|
+
summary: i.developerOrgRevenueSummary,
|
|
115
|
+
unpaidSales: {
|
|
116
|
+
totalCount: i.developerOrgSales.totalCount,
|
|
117
|
+
items: i.developerOrgSales.edges.map((e) => e.node)
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
async function N(t, n) {
|
|
122
|
+
return (await e({
|
|
123
|
+
...n,
|
|
124
|
+
query: g,
|
|
125
|
+
variables: { saleId: t }
|
|
126
|
+
})).retrySaleCreditSync;
|
|
127
|
+
}
|
|
128
|
+
async function P(e, n, r) {
|
|
93
129
|
await t({
|
|
94
130
|
...r,
|
|
95
|
-
query:
|
|
131
|
+
query: s,
|
|
96
132
|
variables: {
|
|
97
133
|
id: e,
|
|
98
134
|
notes: n
|
|
99
135
|
}
|
|
100
136
|
});
|
|
101
137
|
}
|
|
102
|
-
async function
|
|
138
|
+
async function F(e, n, r) {
|
|
103
139
|
await t({
|
|
104
140
|
...r,
|
|
105
|
-
query:
|
|
141
|
+
query: h,
|
|
106
142
|
variables: {
|
|
107
143
|
id: e,
|
|
108
144
|
reason: n
|
|
109
145
|
}
|
|
110
146
|
});
|
|
111
147
|
}
|
|
112
|
-
async function
|
|
148
|
+
async function I(e, n, r, i) {
|
|
113
149
|
await t({
|
|
114
150
|
...i,
|
|
115
|
-
query:
|
|
151
|
+
query: u,
|
|
116
152
|
variables: {
|
|
117
153
|
id: e,
|
|
118
154
|
externalReference: n,
|
|
@@ -121,6 +157,6 @@ async function A(e, n, r, i) {
|
|
|
121
157
|
});
|
|
122
158
|
}
|
|
123
159
|
//#endregion
|
|
124
|
-
export {
|
|
160
|
+
export { w as addPayoutAccount, P as approvePayoutRequest, D as archivePayoutAccount, M as fetchAdminDeveloperRevenueOrgDetail, j as fetchAdminDeveloperRevenueOrgs, A as fetchAdminPayoutRequests, k as fetchAdminPayoutSummary, y as fetchDeveloperPortalRevenueDashboard, x as fetchEarningsEntries, b as fetchEarningsSummary, S as fetchPayoutAccounts, C as fetchPayoutRequests, I as markPayoutPaid, F as rejectPayoutRequest, O as requestPayout, N as retrySaleCreditSync, E as setDefaultPayoutAccount, T as updatePayoutAccount };
|
|
125
161
|
|
|
126
162
|
//# sourceMappingURL=api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","names":[],"sources":["../../../../src/billing/modules/earnings/api.ts"],"sourcesContent":["import { directBillingGraphqlRequest } from '../../shared/utils';\nimport { gatewayGraphqlRequest } from '../../shared/utils/gatewayGraphql';\nimport {\n AddPayoutAccountDocument,\n AdminPayoutRequestsDocument,\n AdminPayoutSummaryDocument,\n ApprovePayoutRequestDocument,\n ArchivePayoutAccountDocument,\n BillingDeveloperPortalRevenueDocument,\n MarkPayoutPaidDocument,\n MyEarningsEntriesDocument,\n MyEarningsSummaryDocument,\n MyPayoutAccountsDocument,\n MyPayoutRequestsDocument,\n ProcessPayoutRequestDocument,\n RejectPayoutRequestDocument,\n SetDefaultPayoutAccountDocument,\n UpdatePayoutAccountDocument,\n} from '../../../generated/global-operations';\n\nexport interface EarningsSummary {\n totalLifetimeAmount: number;\n availableAmount: number;\n reservedAmount: number;\n paidAmount: number;\n pendingAmount: number;\n moneyAmount: number;\n creditsAmount: number;\n categoryBreakdown?: Array<{\n category: 'AFFILIATE' | 'STORE' | 'OTHER';\n amount: number;\n count: number;\n }>;\n}\n\nexport interface EarningsEntry {\n id: string;\n sourceCategory: 'AFFILIATE' | 'STORE' | 'OTHER';\n sourceSubcategory?: string | null;\n description?: string | null;\n unitType: 'MONEY' | 'CREDITS';\n amount: number;\n currency: string;\n status: 'AVAILABLE' | 'RESERVED' | 'PAID' | 'REVERSED';\n createdAt: string;\n}\n\nexport interface PayoutAccount {\n id: string;\n label: string;\n type: 'BANK_ACCOUNT' | 'UPI' | 'WALLET';\n providerPreference: 'AUTO' | 'STRIPE' | 'RAZORPAY' | 'MANUAL';\n status: 'PENDING_VERIFICATION' | 'ACTIVE' | 'FAILED_VERIFICATION' | 'ARCHIVED';\n displayName?: string | null;\n accountLast4?: string | null;\n country?: string | null;\n currency: string;\n isDefault: boolean;\n accountDetails?: Record<string, unknown> | null;\n}\n\nexport interface PayoutRequest {\n id: string;\n billingAccountId?: string | null;\n requesterUserId?: string | null;\n requestedAmount: number;\n approvedAmount?: number | null;\n currency: string;\n provider: 'AUTO' | 'STRIPE' | 'RAZORPAY' | 'MANUAL';\n status: 'REQUESTED' | 'APPROVED' | 'REJECTED' | 'PROCESSING' | 'PAID' | 'FAILED' | 'CANCELED';\n externalReference?: string | null;\n failureReason?: string | null;\n internalNotes?: string | null;\n userNotes?: string | null;\n createdAt: string;\n processedAt?: string | null;\n paidAt?: string | null;\n payoutAccount?: PayoutAccount | null;\n}\n\nexport interface PayoutAdminSummary {\n totalRequestedAmount: number;\n totalProcessingAmount: number;\n totalPaidAmount: number;\n pendingCount: number;\n failedCount: number;\n statusBreakdown?: Array<{ status: string; count: number; totalAmount: number }>;\n providerBreakdown?: Array<{ provider: string; count: number; totalAmount: number }>;\n}\n\nexport interface DeveloperPortalRevenueSummary {\n totalGrossRevenue: number;\n totalNetRevenue: number;\n totalPlatformFees: number;\n totalRefunds: number;\n totalRefundsCount: number;\n totalSales: number;\n pendingBalance: number;\n nextPayoutDate?: string | null;\n nextPayoutAmount?: number | null;\n}\n\nexport interface DeveloperPortalRevenueSale {\n id: string;\n grossAmount: number;\n netAmount: number;\n currency: string;\n pricingModel: string;\n status: string;\n purchasedAt: string;\n application?: {\n id: string;\n name: string;\n slug: string;\n } | null;\n}\n\nexport interface DeveloperPortalRevenuePayout {\n id: string;\n periodLabel?: string | null;\n netAmount: number;\n currency: string;\n status: string;\n scheduledAt?: string | null;\n completedAt?: string | null;\n}\n\nexport interface DeveloperPortalRevenueDashboard {\n summary: DeveloperPortalRevenueSummary | null;\n sales: DeveloperPortalRevenueSale[];\n payouts: DeveloperPortalRevenuePayout[];\n}\n\ninterface GatewayContext {\n apiGatewayUrl?: string;\n authToken?: string;\n orgId?: string;\n}\n\nexport async function fetchDeveloperPortalRevenueDashboard(\n organizationId: string,\n context: GatewayContext\n): Promise<DeveloperPortalRevenueDashboard> {\n type RevenueQueryResult = {\n developerOrgRevenueSummary: DeveloperPortalRevenueSummary | null;\n developerOrgSales: { edges: Array<{ node: DeveloperPortalRevenueSale }> };\n developerOrgPayouts: { edges: Array<{ node: DeveloperPortalRevenuePayout }> };\n };\n\n const data = await gatewayGraphqlRequest<RevenueQueryResult, { organizationId: string }>({\n ...context,\n query: BillingDeveloperPortalRevenueDocument,\n variables: { organizationId },\n });\n\n return {\n summary: data.developerOrgRevenueSummary,\n sales: data.developerOrgSales.edges.map((edge) => edge.node),\n payouts: data.developerOrgPayouts.edges.map((edge) => edge.node),\n };\n}\n\nexport async function fetchEarningsSummary(billingAccountId: string, context: GatewayContext) {\n const data = await directBillingGraphqlRequest<\n {\n myEarningsSummary: EarningsSummary;\n },\n { billingAccountId: string }\n >({\n ...context,\n query: MyEarningsSummaryDocument,\n variables: { billingAccountId },\n });\n\n return data.myEarningsSummary;\n}\n\nexport async function fetchEarningsEntries(billingAccountId: string, context: GatewayContext) {\n const data = await directBillingGraphqlRequest<\n {\n myEarningsEntries: { items: EarningsEntry[] };\n },\n { billingAccountId: string }\n >({\n ...context,\n query: MyEarningsEntriesDocument,\n variables: { billingAccountId },\n });\n\n return data.myEarningsEntries.items;\n}\n\nexport async function fetchPayoutAccounts(billingAccountId: string, context: GatewayContext) {\n const data = await directBillingGraphqlRequest<\n {\n myPayoutAccounts: PayoutAccount[];\n },\n { billingAccountId: string }\n >({\n ...context,\n query: MyPayoutAccountsDocument,\n variables: { billingAccountId },\n });\n\n return data.myPayoutAccounts;\n}\n\nexport async function fetchPayoutRequests(billingAccountId: string, context: GatewayContext) {\n const data = await directBillingGraphqlRequest<\n {\n myPayoutRequests: { items: PayoutRequest[] };\n },\n { billingAccountId: string }\n >({\n ...context,\n query: MyPayoutRequestsDocument,\n variables: { billingAccountId },\n });\n\n return data.myPayoutRequests.items;\n}\n\nexport async function addPayoutAccount(input: Record<string, unknown>, context: GatewayContext) {\n await directBillingGraphqlRequest<\n {\n addPayoutAccount: { id: string };\n },\n { input: Record<string, unknown> }\n >({\n ...context,\n query: AddPayoutAccountDocument,\n variables: { input },\n });\n}\n\nexport async function updatePayoutAccount(\n id: string,\n input: Record<string, unknown>,\n context: GatewayContext\n) {\n await directBillingGraphqlRequest<\n { updatePayoutAccount: { id: string } },\n { id: string; input: Record<string, unknown> }\n >({\n ...context,\n query: UpdatePayoutAccountDocument,\n variables: { id, input },\n });\n}\n\nexport async function setDefaultPayoutAccount(id: string, context: GatewayContext) {\n await directBillingGraphqlRequest<{ setDefaultPayoutAccount: { id: string } }, { id: string }>({\n ...context,\n query: SetDefaultPayoutAccountDocument,\n variables: { id },\n });\n}\n\nexport async function archivePayoutAccount(id: string, context: GatewayContext) {\n await directBillingGraphqlRequest<{ archivePayoutAccount: boolean }, { id: string }>({\n ...context,\n query: ArchivePayoutAccountDocument,\n variables: { id },\n });\n}\n\nexport async function requestPayout(_input: Record<string, unknown>, _context: GatewayContext) {\n throw new Error('Payout request not yet implemented');\n}\n\nexport async function fetchAdminPayoutSummary(context: GatewayContext) {\n const data = await directBillingGraphqlRequest<{\n adminPayoutSummary: PayoutAdminSummary;\n }>({\n ...context,\n query: AdminPayoutSummaryDocument,\n });\n\n return data.adminPayoutSummary;\n}\n\nexport async function fetchAdminPayoutRequests(context: GatewayContext) {\n const data = await directBillingGraphqlRequest<{\n adminPayoutRequests: { items: PayoutRequest[] };\n }>({\n ...context,\n query: AdminPayoutRequestsDocument,\n });\n\n return data.adminPayoutRequests.items;\n}\n\nexport async function approvePayoutRequest(\n id: string,\n notes: string | null,\n context: GatewayContext\n) {\n await directBillingGraphqlRequest<\n {\n approvePayoutRequest: { id: string };\n },\n { id: string; notes: string | null }\n >({\n ...context,\n query: ApprovePayoutRequestDocument,\n variables: { id, notes },\n });\n}\n\nexport async function rejectPayoutRequest(id: string, reason: string, context: GatewayContext) {\n await directBillingGraphqlRequest<\n {\n rejectPayoutRequest: { id: string };\n },\n { id: string; reason: string }\n >({\n ...context,\n query: RejectPayoutRequestDocument,\n variables: { id, reason },\n });\n}\n\nexport async function processPayoutRequest(id: string, context: GatewayContext) {\n await directBillingGraphqlRequest<\n {\n processPayoutRequest: { id: string };\n },\n { id: string }\n >({\n ...context,\n query: ProcessPayoutRequestDocument,\n variables: { id },\n });\n}\n\nexport async function markPayoutPaid(\n id: string,\n externalReference: string | null,\n notes: string | null,\n context: GatewayContext\n) {\n await directBillingGraphqlRequest<\n { markPayoutPaid: { id: string } },\n { id: string; externalReference: string | null; notes: string | null }\n >({\n ...context,\n query: MarkPayoutPaidDocument,\n variables: { id, externalReference, notes },\n });\n}\n"],"mappings":";;;;;AA2IA,eAAsB,EACpB,GACA,GAC0C;CAO1C,IAAM,IAAO,MAAM,EAAsE;EACvF,GAAG;EACH,OAAO;EACP,WAAW,EAAE,mBAAgB;EAC9B,CAAC;AAEF,QAAO;EACL,SAAS,EAAK;EACd,OAAO,EAAK,kBAAkB,MAAM,KAAK,MAAS,EAAK,KAAK;EAC5D,SAAS,EAAK,oBAAoB,MAAM,KAAK,MAAS,EAAK,KAAK;EACjE;;AAGH,eAAsB,EAAqB,GAA0B,GAAyB;AAY5F,SAXa,MAAM,EAKjB;EACA,GAAG;EACH,OAAO;EACP,WAAW,EAAE,qBAAkB;EAChC,CAAC,EAEU;;AAGd,eAAsB,EAAqB,GAA0B,GAAyB;AAY5F,SAXa,MAAM,EAKjB;EACA,GAAG;EACH,OAAO;EACP,WAAW,EAAE,qBAAkB;EAChC,CAAC,EAEU,kBAAkB;;AAGhC,eAAsB,EAAoB,GAA0B,GAAyB;AAY3F,SAXa,MAAM,EAKjB;EACA,GAAG;EACH,OAAO;EACP,WAAW,EAAE,qBAAkB;EAChC,CAAC,EAEU;;AAGd,eAAsB,EAAoB,GAA0B,GAAyB;AAY3F,SAXa,MAAM,EAKjB;EACA,GAAG;EACH,OAAO;EACP,WAAW,EAAE,qBAAkB;EAChC,CAAC,EAEU,iBAAiB;;AAG/B,eAAsB,EAAiB,GAAgC,GAAyB;AAC9F,OAAM,EAKJ;EACA,GAAG;EACH,OAAO;EACP,WAAW,EAAE,UAAO;EACrB,CAAC;;AAGJ,eAAsB,EACpB,GACA,GACA,GACA;AACA,OAAM,EAGJ;EACA,GAAG;EACH,OAAO;EACP,WAAW;GAAE;GAAI;GAAO;EACzB,CAAC;;AAGJ,eAAsB,EAAwB,GAAY,GAAyB;AACjF,OAAM,EAAyF;EAC7F,GAAG;EACH,OAAO;EACP,WAAW,EAAE,OAAI;EAClB,CAAC;;AAGJ,eAAsB,EAAqB,GAAY,GAAyB;AAC9E,OAAM,EAA+E;EACnF,GAAG;EACH,OAAO;EACP,WAAW,EAAE,OAAI;EAClB,CAAC;;AAGJ,eAAsB,EAAc,GAAiC,GAA0B;AAC7F,OAAU,MAAM,qCAAqC;;AAGvD,eAAsB,EAAwB,GAAyB;AAQrE,SAPa,MAAM,EAEhB;EACD,GAAG;EACH,OAAO;EACR,CAAC,EAEU;;AAGd,eAAsB,EAAyB,GAAyB;AAQtE,SAPa,MAAM,EAEhB;EACD,GAAG;EACH,OAAO;EACR,CAAC,EAEU,oBAAoB;;AAGlC,eAAsB,EACpB,GACA,GACA,GACA;AACA,OAAM,EAKJ;EACA,GAAG;EACH,OAAO;EACP,WAAW;GAAE;GAAI;GAAO;EACzB,CAAC;;AAGJ,eAAsB,EAAoB,GAAY,GAAgB,GAAyB;AAC7F,OAAM,EAKJ;EACA,GAAG;EACH,OAAO;EACP,WAAW;GAAE;GAAI;GAAQ;EAC1B,CAAC;;AAgBJ,eAAsB,EACpB,GACA,GACA,GACA,GACA;AACA,OAAM,EAGJ;EACA,GAAG;EACH,OAAO;EACP,WAAW;GAAE;GAAI;GAAmB;GAAO;EAC5C,CAAC"}
|
|
1
|
+
{"version":3,"file":"api.js","names":[],"sources":["../../../../src/billing/modules/earnings/api.ts"],"sourcesContent":["import { directBillingGraphqlRequest } from '../../shared/utils';\nimport { gatewayGraphqlRequest } from '../../shared/utils/gatewayGraphql';\nimport {\n AddPayoutAccountDocument,\n AdminDeveloperRevenueOrgDetailDocument,\n AdminDeveloperRevenueOrgsDocument,\n AdminPayoutRequestsDocument,\n AdminPayoutSummaryDocument,\n ApprovePayoutRequestDocument,\n ArchivePayoutAccountDocument,\n BillingDeveloperPortalRevenueDocument,\n MarkPayoutPaidDocument,\n MyEarningsEntriesDocument,\n MyEarningsSummaryDocument,\n MyPayoutAccountsDocument,\n MyPayoutRequestsDocument,\n ProcessPayoutRequestDocument,\n RejectPayoutRequestDocument,\n RetrySaleCreditSyncDocument,\n SetDefaultPayoutAccountDocument,\n UpdatePayoutAccountDocument,\n} from '../../../generated/global-operations';\n\nexport interface EarningsSummary {\n totalLifetimeAmount: number;\n availableAmount: number;\n reservedAmount: number;\n paidAmount: number;\n pendingAmount: number;\n moneyAmount: number;\n creditsAmount: number;\n categoryBreakdown?: Array<{\n category: 'AFFILIATE' | 'STORE' | 'OTHER';\n amount: number;\n count: number;\n }>;\n}\n\nexport interface EarningsEntry {\n id: string;\n sourceCategory: 'AFFILIATE' | 'STORE' | 'OTHER';\n sourceSubcategory?: string | null;\n description?: string | null;\n unitType: 'MONEY' | 'CREDITS';\n amount: number;\n currency: string;\n status: 'AVAILABLE' | 'RESERVED' | 'PAID' | 'REVERSED';\n createdAt: string;\n}\n\nexport interface PayoutAccount {\n id: string;\n label: string;\n type: 'BANK_ACCOUNT' | 'UPI' | 'WALLET';\n providerPreference: 'AUTO' | 'STRIPE' | 'RAZORPAY' | 'MANUAL';\n status: 'PENDING_VERIFICATION' | 'ACTIVE' | 'FAILED_VERIFICATION' | 'ARCHIVED';\n displayName?: string | null;\n accountLast4?: string | null;\n country?: string | null;\n currency: string;\n isDefault: boolean;\n accountDetails?: Record<string, unknown> | null;\n}\n\nexport interface PayoutRequest {\n id: string;\n billingAccountId?: string | null;\n requesterUserId?: string | null;\n requestedAmount: number;\n approvedAmount?: number | null;\n currency: string;\n provider: 'AUTO' | 'STRIPE' | 'RAZORPAY' | 'MANUAL';\n status: 'REQUESTED' | 'APPROVED' | 'REJECTED' | 'PROCESSING' | 'PAID' | 'FAILED' | 'CANCELED';\n externalReference?: string | null;\n failureReason?: string | null;\n internalNotes?: string | null;\n userNotes?: string | null;\n createdAt: string;\n processedAt?: string | null;\n paidAt?: string | null;\n payoutAccount?: PayoutAccount | null;\n}\n\nexport interface PayoutAdminSummary {\n totalRequestedAmount: number;\n totalProcessingAmount: number;\n totalPaidAmount: number;\n pendingCount: number;\n failedCount: number;\n statusBreakdown?: Array<{ status: string; count: number; totalAmount: number }>;\n providerBreakdown?: Array<{ provider: string; count: number; totalAmount: number }>;\n}\n\nexport interface AdminPayoutRequestsPage {\n items: PayoutRequest[];\n totalCount: number;\n hasMore: boolean;\n}\n\nexport interface DeveloperPortalRevenueSummary {\n totalGrossRevenue: number;\n totalNetRevenue: number;\n totalPlatformFees: number;\n totalRefunds: number;\n totalRefundsCount: number;\n totalSales: number;\n pendingBalance: number;\n nextPayoutDate?: string | null;\n nextPayoutAmount?: number | null;\n}\n\nexport interface DeveloperPortalRevenueSale {\n id: string;\n grossAmount: number;\n netAmount: number;\n currency: string;\n pricingModel: string;\n status: string;\n billingCreditSyncStatus?: string | null;\n billingCreditSyncError?: string | null;\n billingCreditSyncedAt?: string | null;\n purchasedAt: string;\n application?: {\n id: string;\n name: string;\n slug: string;\n } | null;\n}\n\nexport interface DeveloperPortalRevenuePayout {\n id: string;\n periodLabel?: string | null;\n netAmount: number;\n currency: string;\n status: string;\n scheduledAt?: string | null;\n completedAt?: string | null;\n}\n\nexport interface DeveloperPortalRevenueDashboard {\n summary: DeveloperPortalRevenueSummary | null;\n sales: DeveloperPortalRevenueSale[];\n payouts: DeveloperPortalRevenuePayout[];\n}\n\nexport interface AdminDeveloperRevenueOrg {\n id: string;\n name: string;\n slug: string;\n billingAccountId?: string | null;\n isVerified: boolean;\n totalApps: number;\n publishedApps: number;\n totalInstalls: number;\n activeInstalls: number;\n averageRating?: number | null;\n totalRevenue: number;\n totalPlatformFees: number;\n totalPayouts: number;\n pendingBalance: number;\n lifetimeRevenue: number;\n platformFeeRate: number;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface AdminDeveloperRevenueOrgDetail {\n summary: DeveloperPortalRevenueSummary | null;\n unpaidSales: {\n totalCount: number;\n items: DeveloperPortalRevenueSale[];\n };\n}\n\ninterface GatewayContext {\n apiGatewayUrl?: string;\n authToken?: string;\n orgId?: string;\n}\n\nexport async function fetchDeveloperPortalRevenueDashboard(\n organizationId: string,\n context: GatewayContext\n): Promise<DeveloperPortalRevenueDashboard> {\n type RevenueQueryResult = {\n developerOrgRevenueSummary: DeveloperPortalRevenueSummary | null;\n developerOrgSales: { edges: Array<{ node: DeveloperPortalRevenueSale }> };\n developerOrgPayouts: { edges: Array<{ node: DeveloperPortalRevenuePayout }> };\n };\n\n const data = await gatewayGraphqlRequest<RevenueQueryResult, { organizationId: string }>({\n ...context,\n query: BillingDeveloperPortalRevenueDocument,\n variables: { organizationId },\n });\n\n return {\n summary: data.developerOrgRevenueSummary,\n sales: data.developerOrgSales.edges.map((edge) => edge.node),\n payouts: data.developerOrgPayouts.edges.map((edge) => edge.node),\n };\n}\n\nexport async function fetchEarningsSummary(billingAccountId: string, context: GatewayContext) {\n const data = await directBillingGraphqlRequest<\n {\n myEarningsSummary: EarningsSummary;\n },\n { billingAccountId: string }\n >({\n ...context,\n query: MyEarningsSummaryDocument,\n variables: { billingAccountId },\n });\n\n return data.myEarningsSummary;\n}\n\nexport async function fetchEarningsEntries(billingAccountId: string, context: GatewayContext) {\n const data = await directBillingGraphqlRequest<\n {\n myEarningsEntries: { items: EarningsEntry[] };\n },\n { billingAccountId: string }\n >({\n ...context,\n query: MyEarningsEntriesDocument,\n variables: { billingAccountId },\n });\n\n return data.myEarningsEntries.items;\n}\n\nexport async function fetchPayoutAccounts(billingAccountId: string, context: GatewayContext) {\n const data = await directBillingGraphqlRequest<\n {\n myPayoutAccounts: PayoutAccount[];\n },\n { billingAccountId: string }\n >({\n ...context,\n query: MyPayoutAccountsDocument,\n variables: { billingAccountId },\n });\n\n return data.myPayoutAccounts;\n}\n\nexport async function fetchPayoutRequests(billingAccountId: string, context: GatewayContext) {\n const data = await directBillingGraphqlRequest<\n {\n myPayoutRequests: { items: PayoutRequest[] };\n },\n { billingAccountId: string }\n >({\n ...context,\n query: MyPayoutRequestsDocument,\n variables: { billingAccountId },\n });\n\n return data.myPayoutRequests.items;\n}\n\nexport async function addPayoutAccount(input: Record<string, unknown>, context: GatewayContext) {\n await directBillingGraphqlRequest<\n {\n addPayoutAccount: { id: string };\n },\n { input: Record<string, unknown> }\n >({\n ...context,\n query: AddPayoutAccountDocument,\n variables: { input },\n });\n}\n\nexport async function updatePayoutAccount(\n id: string,\n input: Record<string, unknown>,\n context: GatewayContext\n) {\n await directBillingGraphqlRequest<\n { updatePayoutAccount: { id: string } },\n { id: string; input: Record<string, unknown> }\n >({\n ...context,\n query: UpdatePayoutAccountDocument,\n variables: { id, input },\n });\n}\n\nexport async function setDefaultPayoutAccount(id: string, context: GatewayContext) {\n await directBillingGraphqlRequest<{ setDefaultPayoutAccount: { id: string } }, { id: string }>({\n ...context,\n query: SetDefaultPayoutAccountDocument,\n variables: { id },\n });\n}\n\nexport async function archivePayoutAccount(id: string, context: GatewayContext) {\n await directBillingGraphqlRequest<{ archivePayoutAccount: boolean }, { id: string }>({\n ...context,\n query: ArchivePayoutAccountDocument,\n variables: { id },\n });\n}\n\nexport async function requestPayout(_input: Record<string, unknown>, _context: GatewayContext) {\n throw new Error('Payout request not yet implemented');\n}\n\nexport async function fetchAdminPayoutSummary(context: GatewayContext) {\n const data = await directBillingGraphqlRequest<{\n adminPayoutSummary: PayoutAdminSummary;\n }>({\n ...context,\n query: AdminPayoutSummaryDocument,\n });\n\n return data.adminPayoutSummary;\n}\n\nexport async function fetchAdminPayoutRequests(\n context: GatewayContext,\n pagination: { limit?: number; offset?: number } = {}\n) {\n const data = await directBillingGraphqlRequest<{\n adminPayoutRequests: AdminPayoutRequestsPage;\n },\n {\n limit: number;\n offset: number;\n }>({\n ...context,\n query: AdminPayoutRequestsDocument,\n variables: {\n limit: pagination.limit ?? 50,\n offset: pagination.offset ?? 0,\n },\n });\n\n return data.adminPayoutRequests;\n}\n\nexport async function fetchAdminDeveloperRevenueOrgs(context: GatewayContext) {\n const data = await gatewayGraphqlRequest<{\n developerOrganizations: {\n edges: Array<{ node: AdminDeveloperRevenueOrg }>;\n };\n }>({\n ...context,\n query: AdminDeveloperRevenueOrgsDocument,\n });\n\n return data.developerOrganizations.edges.map((edge) => edge.node);\n}\n\nexport async function fetchAdminDeveloperRevenueOrgDetail(\n organizationId: string,\n context: GatewayContext\n) {\n const data = await gatewayGraphqlRequest<{\n developerOrgRevenueSummary: DeveloperPortalRevenueSummary | null;\n developerOrgSales: { totalCount: number; edges: Array<{ node: DeveloperPortalRevenueSale }> };\n },\n {\n organizationId: string;\n period: string;\n salesLimit: number;\n salesOffset: number;\n }>({\n ...context,\n query: AdminDeveloperRevenueOrgDetailDocument,\n variables: {\n organizationId,\n period: 'monthly',\n salesLimit: 20,\n salesOffset: 0,\n },\n });\n\n return {\n summary: data.developerOrgRevenueSummary,\n unpaidSales: {\n totalCount: data.developerOrgSales.totalCount,\n items: data.developerOrgSales.edges.map((edge) => edge.node),\n },\n } satisfies AdminDeveloperRevenueOrgDetail;\n}\n\nexport async function retrySaleCreditSync(saleId: string, context: GatewayContext) {\n const data = await gatewayGraphqlRequest<\n {\n retrySaleCreditSync: Pick<\n DeveloperPortalRevenueSale,\n 'id' | 'billingCreditSyncStatus' | 'billingCreditSyncError' | 'billingCreditSyncedAt'\n >;\n },\n { saleId: string }\n >({\n ...context,\n query: RetrySaleCreditSyncDocument,\n variables: { saleId },\n });\n\n return data.retrySaleCreditSync;\n}\n\nexport async function approvePayoutRequest(\n id: string,\n notes: string | null,\n context: GatewayContext\n) {\n await directBillingGraphqlRequest<\n {\n approvePayoutRequest: { id: string };\n },\n { id: string; notes: string | null }\n >({\n ...context,\n query: ApprovePayoutRequestDocument,\n variables: { id, notes },\n });\n}\n\nexport async function rejectPayoutRequest(id: string, reason: string, context: GatewayContext) {\n await directBillingGraphqlRequest<\n {\n rejectPayoutRequest: { id: string };\n },\n { id: string; reason: string }\n >({\n ...context,\n query: RejectPayoutRequestDocument,\n variables: { id, reason },\n });\n}\n\nexport async function processPayoutRequest(id: string, context: GatewayContext) {\n await directBillingGraphqlRequest<\n {\n processPayoutRequest: { id: string };\n },\n { id: string }\n >({\n ...context,\n query: ProcessPayoutRequestDocument,\n variables: { id },\n });\n}\n\nexport async function markPayoutPaid(\n id: string,\n externalReference: string | null,\n notes: string | null,\n context: GatewayContext\n) {\n await directBillingGraphqlRequest<\n { markPayoutPaid: { id: string } },\n { id: string; externalReference: string | null; notes: string | null }\n >({\n ...context,\n query: MarkPayoutPaidDocument,\n variables: { id, externalReference, notes },\n });\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EarningsPage as e } from "./pages/EarningsPage.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
2
|
+
import { DeveloperRevenueAdminPage as t } from "./pages/DeveloperRevenueAdminPage.js";
|
|
3
|
+
import { PayoutsPage as n } from "./pages/PayoutsPage.js";
|
|
4
|
+
import { PayoutAdminPage as r } from "./pages/PayoutAdminPage.js";
|
|
5
|
+
export { t as DeveloperRevenueAdminPage, e as EarningsPage, r as PayoutAdminPage, n as PayoutsPage };
|