@fluid-app/portal-sdk 0.1.128 → 0.1.130
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/{AppDownloadScreen-DTxo4z3_.cjs → AppDownloadScreen-ChKim_6A.cjs} +2 -2
- package/dist/{AppDownloadScreen-DTxo4z3_.cjs.map → AppDownloadScreen-ChKim_6A.cjs.map} +1 -1
- package/dist/{AppDownloadScreen-BoGSdsJk.mjs → AppDownloadScreen-DGHd6hYM.mjs} +2 -2
- package/dist/{AppDownloadScreen-BoGSdsJk.mjs.map → AppDownloadScreen-DGHd6hYM.mjs.map} +1 -1
- package/dist/{AppDownloadScreen-Chxavsr_.cjs → AppDownloadScreen-DpyV1tJw.cjs} +2 -2
- package/dist/{ContactsScreen-BKOHursc.mjs → ContactsScreen-Bcea6126.mjs} +3 -3
- package/dist/{ContactsScreen-BKOHursc.mjs.map → ContactsScreen-Bcea6126.mjs.map} +1 -1
- package/dist/{ContactsScreen-DN8Qt2Ih.cjs → ContactsScreen-CsIGZaWy.cjs} +4 -4
- package/dist/{ContactsScreen-DN8Qt2Ih.cjs.map → ContactsScreen-CsIGZaWy.cjs.map} +1 -1
- package/dist/{ContactsScreen-FrVLbjGO.cjs → ContactsScreen-OBDC1046.cjs} +4 -4
- package/dist/{FluidProvider-CgTeGUnF.mjs → FluidProvider-BJQSXofR.mjs} +198 -615
- package/dist/FluidProvider-BJQSXofR.mjs.map +1 -0
- package/dist/{FluidProvider-BMMu_rp3.cjs → FluidProvider-DvqnkjZI.cjs} +196 -625
- package/dist/FluidProvider-DvqnkjZI.cjs.map +1 -0
- package/dist/{MessagingScreen-Bvq3Dd5i.mjs → MessagingScreen-B48ksZOJ.mjs} +3 -3
- package/dist/{MessagingScreen-Bvq3Dd5i.mjs.map → MessagingScreen-B48ksZOJ.mjs.map} +1 -1
- package/dist/{MessagingScreen-DMDXiH97.mjs → MessagingScreen-COGo4S9K.mjs} +2 -2
- package/dist/{MessagingScreen-DgbNN4BF.cjs → MessagingScreen-DYgiatey.cjs} +3 -3
- package/dist/{MessagingScreen-DgbNN4BF.cjs.map → MessagingScreen-DYgiatey.cjs.map} +1 -1
- package/dist/{MessagingScreen-bzzXjQMu.cjs → MessagingScreen-QyUOxYXl.cjs} +2 -2
- package/dist/{MySiteScreen-nV8x9xyy.cjs → MySiteScreen-ByIJ6CkU.cjs} +2 -2
- package/dist/{MySiteScreen-nV8x9xyy.cjs.map → MySiteScreen-ByIJ6CkU.cjs.map} +1 -1
- package/dist/{MySiteScreen-BJH5-RNT.mjs → MySiteScreen-DZ0ru6Bn.mjs} +2 -2
- package/dist/{MySiteScreen-BJH5-RNT.mjs.map → MySiteScreen-DZ0ru6Bn.mjs.map} +1 -1
- package/dist/{MySiteScreen-CYZpUYTn.cjs → MySiteScreen-DrWUJJiH.cjs} +2 -2
- package/dist/{OrdersScreen-BL__flBE.cjs → OrdersScreen-CkvoeTvK.cjs} +3 -3
- package/dist/OrdersScreen-D_7TJgZ4.mjs +561 -0
- package/dist/OrdersScreen-D_7TJgZ4.mjs.map +1 -0
- package/dist/OrdersScreen-DyYYjl9I.cjs +568 -0
- package/dist/OrdersScreen-DyYYjl9I.cjs.map +1 -0
- package/dist/{ProductsScreen-BIYHPaBZ.cjs → ProductsScreen-B8NmyIJy.cjs} +3 -3
- package/dist/{ProductsScreen-COwahI-V.mjs → ProductsScreen-CMnhqsSA.mjs} +5 -5
- package/dist/{ProductsScreen-COwahI-V.mjs.map → ProductsScreen-CMnhqsSA.mjs.map} +1 -1
- package/dist/{ProductsScreen-D6h-r9ht.mjs → ProductsScreen-DzNmbwVi.mjs} +3 -3
- package/dist/{ProductsScreen-C8UfVLRr.cjs → ProductsScreen-Z1hx1YZQ.cjs} +5 -5
- package/dist/{ProductsScreen-C8UfVLRr.cjs.map → ProductsScreen-Z1hx1YZQ.cjs.map} +1 -1
- package/dist/{ProfileScreen-CZp_NrjO.cjs → ProfileScreen-B81Ovmh_.cjs} +2 -2
- package/dist/{ProfileScreen-FYGHStqM.cjs → ProfileScreen-CYTxOGeW.cjs} +526 -137
- package/dist/ProfileScreen-CYTxOGeW.cjs.map +1 -0
- package/dist/{ProfileScreen-BKRn8AqI.mjs → ProfileScreen-QOXtyrJi.mjs} +522 -133
- package/dist/ProfileScreen-QOXtyrJi.mjs.map +1 -0
- package/dist/{ShareablesScreen-BEPVTMeI.cjs → ShareablesScreen-1HpfEjyd.cjs} +7 -7
- package/dist/{ShareablesScreen-BEPVTMeI.cjs.map → ShareablesScreen-1HpfEjyd.cjs.map} +1 -1
- package/dist/{ShareablesScreen-BrC5LGtU.cjs → ShareablesScreen-BXO8MpAy.cjs} +3 -3
- package/dist/{ShareablesScreen-BXzxUg0E.mjs → ShareablesScreen-DSsMJJh_.mjs} +7 -7
- package/dist/{ShareablesScreen-BXzxUg0E.mjs.map → ShareablesScreen-DSsMJJh_.mjs.map} +1 -1
- package/dist/{ShareablesScreen-aMnwEOAH.mjs → ShareablesScreen-Oo3jMHX6.mjs} +3 -3
- package/dist/{ShopScreen-B4Tmn4pJ.cjs → ShopScreen-BDcWpmi7.cjs} +5 -5
- package/dist/{ShopScreen-B4Tmn4pJ.cjs.map → ShopScreen-BDcWpmi7.cjs.map} +1 -1
- package/dist/{ShopScreen-B0VkBuQI.cjs → ShopScreen-CWxOPn7H.cjs} +2 -2
- package/dist/{ShopScreen-DJt1rKw3.mjs → ShopScreen-DsReuJ7P.mjs} +5 -5
- package/dist/{ShopScreen-DJt1rKw3.mjs.map → ShopScreen-DsReuJ7P.mjs.map} +1 -1
- package/dist/{SubscriptionsScreen-oApGaq11.cjs → SubscriptionsScreen-B8mLGt5-.cjs} +27 -10
- package/dist/SubscriptionsScreen-B8mLGt5-.cjs.map +1 -0
- package/dist/{SubscriptionsScreen-C2F3HNJS.cjs → SubscriptionsScreen-C2zbEjMC.cjs} +4 -4
- package/dist/{SubscriptionsScreen-CZ-1jSO2.mjs → SubscriptionsScreen-DZxLo4up.mjs} +21 -4
- package/dist/SubscriptionsScreen-DZxLo4up.mjs.map +1 -0
- package/dist/index.cjs +37 -37
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +37 -37
- package/dist/order-status-badge-KooNqnAs.mjs +262 -0
- package/dist/order-status-badge-KooNqnAs.mjs.map +1 -0
- package/dist/order-status-badge-cwqA8dZ-.cjs +304 -0
- package/dist/order-status-badge-cwqA8dZ-.cjs.map +1 -0
- package/dist/portal_tenant-CP5Ce8Jn.cjs +261 -0
- package/dist/portal_tenant-CP5Ce8Jn.cjs.map +1 -0
- package/dist/portal_tenant-CWy4Zg2t.mjs +166 -0
- package/dist/portal_tenant-CWy4Zg2t.mjs.map +1 -0
- package/dist/src-BOIW-KES.mjs +3 -0
- package/dist/src-CzwiFO_J.cjs +3 -0
- package/dist/{src-BMUEjfhg.mjs → src-Dgo44BGe.mjs} +1 -1
- package/dist/{src-BMUEjfhg.mjs.map → src-Dgo44BGe.mjs.map} +1 -1
- package/dist/{src-BJdOxgpp.cjs → src-DkhHoxnS.cjs} +1 -1
- package/dist/{src-BJdOxgpp.cjs.map → src-DkhHoxnS.cjs.map} +1 -1
- package/dist/use-account-clients-Dim60sir.mjs +451 -0
- package/dist/use-account-clients-Dim60sir.mjs.map +1 -0
- package/dist/use-account-clients-DoJW3KTx.cjs +481 -0
- package/dist/use-account-clients-DoJW3KTx.cjs.map +1 -0
- package/dist/{use-current-user-DCk55_Qn.mjs → use-current-user-Baxj7HJt.mjs} +3 -3
- package/dist/{use-current-user-DCk55_Qn.mjs.map → use-current-user-Baxj7HJt.mjs.map} +1 -1
- package/dist/{use-current-user-BR5_zaoZ.cjs → use-current-user-BcZWV7oU.cjs} +3 -3
- package/dist/{use-current-user-BR5_zaoZ.cjs.map → use-current-user-BcZWV7oU.cjs.map} +1 -1
- package/dist/{use-fluid-api-CmCAH10d.mjs → use-fluid-api-BP05Cf-f.mjs} +2 -2
- package/dist/{use-fluid-api-CmCAH10d.mjs.map → use-fluid-api-BP05Cf-f.mjs.map} +1 -1
- package/dist/{use-fluid-api-C1KeHB7q.cjs → use-fluid-api-Ds8BInAZ.cjs} +2 -2
- package/dist/{use-fluid-api-C1KeHB7q.cjs.map → use-fluid-api-Ds8BInAZ.cjs.map} +1 -1
- package/dist/{use-fluid-auth-BQEV7ylM.mjs → use-fluid-auth-C-Qpl8j4.mjs} +2 -2
- package/dist/{use-fluid-auth-BQEV7ylM.mjs.map → use-fluid-auth-C-Qpl8j4.mjs.map} +1 -1
- package/dist/{use-fluid-auth-CyKaXLbW.cjs → use-fluid-auth-sGNMgfnt.cjs} +2 -2
- package/dist/{use-fluid-auth-CyKaXLbW.cjs.map → use-fluid-auth-sGNMgfnt.cjs.map} +1 -1
- package/dist/{use-portal-products-client-pptYMuSw.cjs → use-portal-products-client-DKYkBjm-.cjs} +7 -48
- package/dist/use-portal-products-client-DKYkBjm-.cjs.map +1 -0
- package/dist/{use-portal-products-client-BL1xVtex.mjs → use-portal-products-client-s2qtZjhU.mjs} +3 -44
- package/dist/use-portal-products-client-s2qtZjhU.mjs.map +1 -0
- package/dist/vite/index.cjs +44 -2
- package/dist/vite/index.cjs.map +1 -1
- package/dist/vite/index.d.cts +2 -2
- package/dist/vite/index.d.cts.map +1 -1
- package/dist/vite/index.d.mts +2 -2
- package/dist/vite/index.d.mts.map +1 -1
- package/dist/vite/index.mjs +44 -2
- package/dist/vite/index.mjs.map +1 -1
- package/package.json +15 -14
- package/dist/FluidProvider-BMMu_rp3.cjs.map +0 -1
- package/dist/FluidProvider-CgTeGUnF.mjs.map +0 -1
- package/dist/OrdersScreen-BLb3_KtI.mjs +0 -176
- package/dist/OrdersScreen-BLb3_KtI.mjs.map +0 -1
- package/dist/OrdersScreen-uL3mRk1h.cjs +0 -183
- package/dist/OrdersScreen-uL3mRk1h.cjs.map +0 -1
- package/dist/ProfileScreen-BKRn8AqI.mjs.map +0 -1
- package/dist/ProfileScreen-FYGHStqM.cjs.map +0 -1
- package/dist/SubscriptionsScreen-CZ-1jSO2.mjs.map +0 -1
- package/dist/SubscriptionsScreen-oApGaq11.cjs.map +0 -1
- package/dist/order-detail-DHXdE4Cl.cjs +0 -961
- package/dist/order-detail-DHXdE4Cl.cjs.map +0 -1
- package/dist/order-detail-iZm_R0TX.mjs +0 -931
- package/dist/order-detail-iZm_R0TX.mjs.map +0 -1
- package/dist/src-BJSTFxSO.mjs +0 -1
- package/dist/src-DMVR26Fk.cjs +0 -1
- package/dist/use-account-clients-CL6rr17o.cjs +0 -214
- package/dist/use-account-clients-CL6rr17o.cjs.map +0 -1
- package/dist/use-account-clients-CMjRB5On.mjs +0 -190
- package/dist/use-account-clients-CMjRB5On.mjs.map +0 -1
- package/dist/use-customer-account-BAolVc3q.mjs +0 -22
- package/dist/use-customer-account-BAolVc3q.mjs.map +0 -1
- package/dist/use-customer-account-DSsXbcme.cjs +0 -28
- package/dist/use-customer-account-DSsXbcme.cjs.map +0 -1
- package/dist/use-portal-products-client-BL1xVtex.mjs.map +0 -1
- package/dist/use-portal-products-client-pptYMuSw.cjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-account-clients-CMjRB5On.mjs","names":["subscriptionsApi.fetchCustomerSubscriptions","subscriptionsApi.fetchSubscription","subscriptionsApi.pauseSubscription","subscriptionsApi.resumeSubscription","subscriptionsApi.skipSubscription","subscriptionsApi.cancelSubscription","subscriptionsApi.reactivateSubscription","subscriptionsApi.updateSubscriptionInfo","ordersApi.fetchOrder","ordersApi.fetchCustomerOrders"],"sources":["../../../orders/api-client/src/namespaces/orders.ts","../../../subscriptions/api-client/src/namespaces/subscriptions.ts","../../../subscriptions/api-client/src/adapter.ts","../src/account/use-account-clients.ts"],"sourcesContent":["import type { FetchClient } from \"../lib/fetch-client\";\nimport type { orders } from \"../custom/orders\";\n\n/**\n * Fetch a single order by token.\n * Endpoint: GET /public/v2025-06/orders/{orderToken}\n */\nexport async function fetchOrder(\n client: FetchClient,\n orderToken: string,\n): Promise<orders.OrderResponse> {\n return client.get(`/public/v2025-06/orders/${orderToken}`);\n}\n\n/**\n * Fetch a paginated list of customer orders.\n * Endpoint: GET /v202506/orders\n */\nexport async function fetchCustomerOrders(\n client: FetchClient,\n params: orders.FetchOrdersParams,\n): Promise<orders.CustomerOrdersResponse> {\n const input: Record<string, string> = {};\n\n if (params.cursor) input[\"page[cursor]\"] = params.cursor;\n if (params.limit != null) input[\"page[limit]\"] = params.limit.toString();\n if (params.search) input.search = params.search;\n if (params.sort) input.sort = params.sort;\n if (params.status) input.status = params.status;\n if (params.type) input.type = params.type;\n if (params.customerId != null)\n input.customer_id = params.customerId.toString();\n if (params.userCompanyId != null)\n input.user_company_id = params.userCompanyId.toString();\n if (params.subscriptionId != null)\n input.subscription_id = params.subscriptionId.toString();\n if (params.startDate) input.start_date = params.startDate;\n if (params.endDate) input.end_date = params.endDate;\n if (params.withinDays != null)\n input.within_days = params.withinDays.toString();\n if (params.cartSource) input.cart_source = params.cartSource;\n if (params.countryIsos) input.country_isos = params.countryIsos;\n if (params.forceStats != null)\n input.force_stats = params.forceStats.toString();\n\n return client.get(\"/v202506/orders\", input);\n}\n","import type { FetchClient } from \"../lib/fetch-client\";\nimport type { subscriptions } from \"../custom/subscriptions\";\n\n/**\n * Fetch a paginated list of customer subscriptions.\n * Endpoint: GET /subscriptions\n */\nexport async function fetchCustomerSubscriptions(\n client: FetchClient,\n params: subscriptions.FetchSubscriptionsParams,\n): Promise<subscriptions.SubscriptionsResponse> {\n const input: Record<string, string> = {};\n\n if (params.customerId != null) {\n input.customer_id = params.customerId.toString();\n }\n\n // Cursor-based pagination\n if (params.cursor != null) input[\"page[cursor]\"] = params.cursor;\n if (params.limit != null) input[\"page[limit]\"] = params.limit.toString();\n\n // Offset-based pagination (legacy)\n if (params.page != null) input.page = params.page.toString();\n if (params.perPage != null) input.per_page = params.perPage.toString();\n\n if (params.status != null) input.status = params.status;\n if (params.search != null) input.search = params.search;\n if (params.sortBy != null) input.sort_by = params.sortBy;\n if (params.sortDirection != null) input.sort_direction = params.sortDirection;\n\n return client.get(\"/subscriptions\", input);\n}\n\n/**\n * Fetch a single subscription by token.\n * Endpoint: GET /subscriptions/{token}\n */\nexport async function fetchSubscription(\n client: FetchClient,\n subscriptionToken: string,\n): Promise<subscriptions.SubscriptionDetail> {\n return client.get(`/subscriptions/${subscriptionToken}`);\n}\n\n/**\n * Pause a subscription.\n * Endpoint: POST /subscriptions/{token}/pause\n */\nexport async function pauseSubscription(\n client: FetchClient,\n subscriptionToken: string,\n params: subscriptions.PauseSubscriptionParams,\n): Promise<subscriptions.SubscriptionDetail> {\n const queryParams: Record<string, string> = {\n customer_id: params.customerId.toString(),\n };\n\n if (params.nextBillDate != null) {\n queryParams.next_bill_date = params.nextBillDate;\n }\n if (params.numberOfOrders != null) {\n queryParams.number_of_orders = params.numberOfOrders.toString();\n }\n\n const query = new URLSearchParams(queryParams).toString();\n return client.post(`/subscriptions/${subscriptionToken}/pause?${query}`);\n}\n\n/**\n * Resume a paused subscription.\n * Endpoint: POST /subscriptions/{token}/resume\n */\nexport async function resumeSubscription(\n client: FetchClient,\n subscriptionToken: string,\n params: subscriptions.ResumeSubscriptionParams,\n): Promise<subscriptions.SubscriptionDetail> {\n const query = new URLSearchParams({\n customer_id: params.customerId.toString(),\n next_bill_date: params.nextBillDate,\n }).toString();\n\n return client.post(`/subscriptions/${subscriptionToken}/resume?${query}`);\n}\n\n/**\n * Skip the next billing cycle.\n * Endpoint: POST /subscriptions/{token}/skip_next_billing\n */\nexport async function skipSubscription(\n client: FetchClient,\n subscriptionToken: string,\n params: subscriptions.SkipSubscriptionParams,\n): Promise<subscriptions.SubscriptionDetail> {\n const query = new URLSearchParams({\n customer_id: params.customerId.toString(),\n next_bill_date: params.nextBillDate,\n }).toString();\n\n return client.post(\n `/subscriptions/${subscriptionToken}/skip_next_billing?${query}`,\n );\n}\n\n/**\n * Cancel a subscription.\n * Endpoint: POST /subscriptions/{token}/cancel\n */\nexport async function cancelSubscription(\n client: FetchClient,\n subscriptionToken: string,\n customerId?: number,\n): Promise<subscriptions.SubscriptionDetail> {\n if (customerId != null) {\n const query = new URLSearchParams({\n customer_id: customerId.toString(),\n }).toString();\n return client.post(`/subscriptions/${subscriptionToken}/cancel?${query}`);\n }\n return client.post(`/subscriptions/${subscriptionToken}/cancel`);\n}\n\n/**\n * Reactivate a cancelled subscription.\n * Endpoint: POST /subscriptions/{token}/reactivate\n */\nexport async function reactivateSubscription(\n client: FetchClient,\n subscriptionToken: string,\n params: subscriptions.ReactivateSubscriptionParams,\n): Promise<subscriptions.SubscriptionDetail> {\n const body =\n params.process_immediately === true\n ? { process_immediately: true }\n : params.next_bill_date\n ? { next_bill_date: params.next_bill_date }\n : {};\n\n return client.post(\n `/subscriptions/${subscriptionToken}/reactivate`,\n Object.keys(body).length > 0 ? body : undefined,\n );\n}\n\n/**\n * Update subscription info (plan, variant, address, payment method, quantity).\n * Endpoint: PUT /subscriptions/{token}\n */\nexport async function updateSubscriptionInfo(\n client: FetchClient,\n subscriptionToken: string,\n body: subscriptions.UpdateSubscriptionInfoBody,\n): Promise<subscriptions.SubscriptionDetail> {\n return client.put(`/subscriptions/${subscriptionToken}`, {\n subscription: body,\n });\n}\n\n/**\n * Create a new subscription. Two-step process: creates a cart first, then the subscription.\n * Endpoint: POST /carts + POST /subscriptions\n */\nexport async function createSubscription(\n client: FetchClient,\n data: subscriptions.CreateSubscriptionData,\n): Promise<subscriptions.SubscriptionCreateResponse> {\n // Step 1: Create a cart with the subscription item\n const cartResponse = await client.post<subscriptions.CartCreateResponse>(\n \"/carts\",\n {\n country_code: \"US\",\n items: [\n {\n variant_id: data.variant_id,\n quantity: data.quantity ?? 1,\n subscription: true,\n subscription_plan_id: data.subscription_plan_id,\n },\n ],\n },\n );\n\n // Step 2: Create the subscription using the cart token\n return client.post(\"/subscriptions\", {\n subscription: {\n ...data,\n cart_token: cartResponse.cart.cart_token,\n },\n });\n}\n","import type { FetchClient } from \"./lib/fetch-client\";\nimport type { subscriptions } from \"./custom/subscriptions\";\nimport * as subscriptionsApi from \"./namespaces/subscriptions\";\n\n/**\n * Creates a SubscriptionsApi-compatible adapter from a FetchClient.\n *\n * This bridges the concrete API client to the abstract SubscriptionsApi\n * interface defined in @fluid-app/subscriptions-core, closing over the\n * FetchClient so consumers don't need to pass it per-call.\n */\nexport function createSubscriptionsApiAdapter(client: FetchClient) {\n return {\n fetchCustomerSubscriptions: (\n params: subscriptions.FetchSubscriptionsParams,\n ) => subscriptionsApi.fetchCustomerSubscriptions(client, params),\n fetchSubscription: (token: string) =>\n subscriptionsApi.fetchSubscription(client, token),\n pauseSubscription: (\n token: string,\n params: subscriptions.PauseSubscriptionParams,\n ) => subscriptionsApi.pauseSubscription(client, token, params),\n resumeSubscription: (\n token: string,\n params: subscriptions.ResumeSubscriptionParams,\n ) => subscriptionsApi.resumeSubscription(client, token, params),\n skipSubscription: (\n token: string,\n params: subscriptions.SkipSubscriptionParams,\n ) => subscriptionsApi.skipSubscription(client, token, params),\n cancelSubscription: (token: string, customerId?: number) =>\n subscriptionsApi.cancelSubscription(client, token, customerId),\n reactivateSubscription: (\n token: string,\n params: subscriptions.ReactivateSubscriptionParams,\n ) => subscriptionsApi.reactivateSubscription(client, token, params),\n updateSubscriptionInfo: (\n token: string,\n body: subscriptions.UpdateSubscriptionInfoBody,\n ) => subscriptionsApi.updateSubscriptionInfo(client, token, body),\n };\n}\n","import { useMemo } from \"react\";\nimport type { OrdersApi } from \"@fluid-app/orders-core\";\nimport { ordersApi } from \"@fluid-app/orders-api-client\";\nimport type { SubscriptionsApi } from \"@fluid-app/subscriptions-core\";\nimport { createSubscriptionsApiAdapter } from \"./subscriptions-api-adapter\";\nimport {\n createFetchClient,\n type FetchClient as CoreFetchClient,\n} from \"@fluid-app/api-client-core\";\nimport { useFluidContext } from \"../providers/FluidProvider\";\n\n/** API version prefix for versioned endpoints (e.g. points ledger) */\nexport const API_VERSION = \"/v202506\";\n\n/**\n * Ensures baseUrl ends with /api.\n * Domain-specific API clients (orders, subscriptions, fluid-pay) use endpoint\n * paths without /api (e.g. /fluid_pay/me, /subscriptions), matching fluid-admin's\n * NEXT_PUBLIC_API_URL convention. The portal SDK's config.baseUrl is the domain\n * root (e.g. https://api.fluid.app), so we append /api here.\n */\nfunction withApiPrefix(baseUrl: string): string {\n const base = baseUrl.replace(/\\/+$/, \"\");\n return base.endsWith(\"/api\") ? base : `${base}/api`;\n}\n\nexport function useOrdersApi(): OrdersApi {\n const { config } = useFluidContext();\n\n return useMemo(() => {\n const client = createFetchClient({\n baseUrl: withApiPrefix(config.baseUrl),\n // Session-based auth: cookies sent automatically, no token needed\n onAuthError: config.onAuthError,\n });\n return {\n fetchOrder: (orderToken) => ordersApi.fetchOrder(client, orderToken),\n fetchCustomerOrders: (params) =>\n ordersApi.fetchCustomerOrders(client, params),\n };\n }, [config.baseUrl, config.onAuthError]);\n}\n\nexport function useSubscriptionsApiClient(): SubscriptionsApi {\n const { config } = useFluidContext();\n\n return useMemo(\n () =>\n createSubscriptionsApiAdapter(\n createFetchClient({\n baseUrl: withApiPrefix(config.baseUrl),\n // Session-based auth: cookies sent automatically, no token needed\n onAuthError: config.onAuthError,\n }),\n ),\n [config.baseUrl, config.onAuthError],\n );\n}\n\n/**\n * Generic SDK fetch client for endpoints not covered by domain-specific clients\n * (e.g. /countries, /v202506/customers/:id/points_ledgers).\n * Uses the same auth/baseUrl/error handling as the domain clients.\n */\nexport function useSdkClient(): CoreFetchClient {\n const { config } = useFluidContext();\n\n return useMemo(\n () =>\n createFetchClient({\n baseUrl: withApiPrefix(config.baseUrl),\n // Session-based auth: cookies sent automatically, no token needed\n onAuthError: config.onAuthError,\n }),\n [config.baseUrl, config.onAuthError],\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { ot as useFluidPayApi } from "./FluidProvider-CgTeGUnF.mjs";
|
|
2
|
-
import { t as useFluidAuth } from "./use-fluid-auth-BQEV7ylM.mjs";
|
|
3
|
-
import { useQuery } from "@tanstack/react-query";
|
|
4
|
-
//#region src/account/use-customer-account.ts
|
|
5
|
-
function useCustomerAccount({ enabled = true } = {}) {
|
|
6
|
-
const { isAuthenticated, user } = useFluidAuth();
|
|
7
|
-
const api = useFluidPayApi();
|
|
8
|
-
const query = useQuery({
|
|
9
|
-
queryKey: ["fluidPayAccount", user?.id],
|
|
10
|
-
queryFn: () => api.customers.fetchAccount(""),
|
|
11
|
-
enabled: isAuthenticated && enabled
|
|
12
|
-
});
|
|
13
|
-
return {
|
|
14
|
-
customerId: query.data?.customer?.id,
|
|
15
|
-
isLoadingCustomer: query.isLoading,
|
|
16
|
-
isCustomerError: query.isError
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
//#endregion
|
|
20
|
-
export { useCustomerAccount as t };
|
|
21
|
-
|
|
22
|
-
//# sourceMappingURL=use-customer-account-BAolVc3q.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-customer-account-BAolVc3q.mjs","names":[],"sources":["../src/account/use-customer-account.ts"],"sourcesContent":["import { useQuery } from \"@tanstack/react-query\";\nimport { useFluidPayApi } from \"@fluid-app/fluid-pay-core\";\nimport { useFluidAuth } from \"../hooks/use-fluid-auth\";\n\nexport function useCustomerAccount({\n enabled = true,\n}: { enabled?: boolean } = {}) {\n const { isAuthenticated, user } = useFluidAuth();\n const api = useFluidPayApi();\n\n const query = useQuery({\n queryKey: [\"fluidPayAccount\", user?.id],\n // Session-based auth: fluid-pay APIs still accept a JWT parameter but\n // credentials are sent via HTTP-only cookies. Pass empty string until\n // fluid-pay-core is migrated to session auth.\n queryFn: () => api.customers.fetchAccount(\"\"),\n enabled: isAuthenticated && enabled,\n });\n\n return {\n customerId: query.data?.customer?.id,\n isLoadingCustomer: query.isLoading,\n isCustomerError: query.isError,\n };\n}\n"],"mappings":";;;;AAIA,SAAgB,mBAAmB,EACjC,UAAU,SACe,EAAE,EAAE;CAC7B,MAAM,EAAE,iBAAiB,SAAS,cAAc;CAChD,MAAM,MAAM,gBAAgB;CAE5B,MAAM,QAAQ,SAAS;EACrB,UAAU,CAAC,mBAAmB,MAAM,GAAG;EAIvC,eAAe,IAAI,UAAU,aAAa,GAAG;EAC7C,SAAS,mBAAmB;EAC7B,CAAC;AAEF,QAAO;EACL,YAAY,MAAM,MAAM,UAAU;EAClC,mBAAmB,MAAM;EACzB,iBAAiB,MAAM;EACxB"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
require("./chunk-9hOWP6kD.cjs");
|
|
2
|
-
const require_FluidProvider = require("./FluidProvider-BMMu_rp3.cjs");
|
|
3
|
-
const require_use_fluid_auth = require("./use-fluid-auth-CyKaXLbW.cjs");
|
|
4
|
-
let _tanstack_react_query = require("@tanstack/react-query");
|
|
5
|
-
//#region src/account/use-customer-account.ts
|
|
6
|
-
function useCustomerAccount({ enabled = true } = {}) {
|
|
7
|
-
const { isAuthenticated, user } = require_use_fluid_auth.useFluidAuth();
|
|
8
|
-
const api = require_FluidProvider.useFluidPayApi();
|
|
9
|
-
const query = (0, _tanstack_react_query.useQuery)({
|
|
10
|
-
queryKey: ["fluidPayAccount", user?.id],
|
|
11
|
-
queryFn: () => api.customers.fetchAccount(""),
|
|
12
|
-
enabled: isAuthenticated && enabled
|
|
13
|
-
});
|
|
14
|
-
return {
|
|
15
|
-
customerId: query.data?.customer?.id,
|
|
16
|
-
isLoadingCustomer: query.isLoading,
|
|
17
|
-
isCustomerError: query.isError
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
//#endregion
|
|
21
|
-
Object.defineProperty(exports, "useCustomerAccount", {
|
|
22
|
-
enumerable: true,
|
|
23
|
-
get: function() {
|
|
24
|
-
return useCustomerAccount;
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
//# sourceMappingURL=use-customer-account-DSsXbcme.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-customer-account-DSsXbcme.cjs","names":["useFluidAuth","useFluidPayApi"],"sources":["../src/account/use-customer-account.ts"],"sourcesContent":["import { useQuery } from \"@tanstack/react-query\";\nimport { useFluidPayApi } from \"@fluid-app/fluid-pay-core\";\nimport { useFluidAuth } from \"../hooks/use-fluid-auth\";\n\nexport function useCustomerAccount({\n enabled = true,\n}: { enabled?: boolean } = {}) {\n const { isAuthenticated, user } = useFluidAuth();\n const api = useFluidPayApi();\n\n const query = useQuery({\n queryKey: [\"fluidPayAccount\", user?.id],\n // Session-based auth: fluid-pay APIs still accept a JWT parameter but\n // credentials are sent via HTTP-only cookies. Pass empty string until\n // fluid-pay-core is migrated to session auth.\n queryFn: () => api.customers.fetchAccount(\"\"),\n enabled: isAuthenticated && enabled,\n });\n\n return {\n customerId: query.data?.customer?.id,\n isLoadingCustomer: query.isLoading,\n isCustomerError: query.isError,\n };\n}\n"],"mappings":";;;;;AAIA,SAAgB,mBAAmB,EACjC,UAAU,SACe,EAAE,EAAE;CAC7B,MAAM,EAAE,iBAAiB,SAASA,uBAAAA,cAAc;CAChD,MAAM,MAAMC,sBAAAA,gBAAgB;CAE5B,MAAM,SAAA,GAAA,sBAAA,UAAiB;EACrB,UAAU,CAAC,mBAAmB,MAAM,GAAG;EAIvC,eAAe,IAAI,UAAU,aAAa,GAAG;EAC7C,SAAS,mBAAmB;EAC7B,CAAC;AAEF,QAAO;EACL,YAAY,MAAM,MAAM,UAAU;EAClC,mBAAmB,MAAM;EACzB,iBAAiB,MAAM;EACxB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-portal-products-client-BL1xVtex.mjs","names":["portalTenant.products_list","portalTenant.products_show","portalTenant.products_search","portalTenant.products_media_list"],"sources":["../../../api-clients/portal-tenant/src/namespaces/portal_tenant.ts","../../../products/api-client/src/portal-tenant-adapter.ts","../src/products/use-portal-products-client.ts"],"sourcesContent":["/**\n * Generated API client functions for portal_tenant\n *\n * DO NOT EDIT THIS FILE DIRECTLY\n * This file is auto-generated. To update:\n * 1. Update the OpenAPI spec file\n * 2. Run: pnpm generate\n */\n\nimport type { FetchClient } from \"../lib/fetch-client\";\nimport type { operations } from \"../generated/portal-tenant\";\n\n// ============================================================================\n// account\n// ============================================================================\n\n/**\n * Get current account\n * Returns the authenticated member's account profile and company context. This is the primary endpoint the SPA calls to check auth status and display user information.\n *\n * @param client - Fetch client instance\n \n */\nexport async function account_show(\n client: FetchClient,\n): Promise<\n operations[\"account_show\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.get(`/api/account`);\n}\n\n/**\n * Update current account\n * Updates the authenticated member's profile fields such as name, phone, bio, avatar, and social links.\n *\n * @param client - Fetch client instance\n * @param body - body\n */\nexport async function account_update(\n client: FetchClient,\n body: operations[\"account_update\"][\"requestBody\"][\"content\"][\"application/json\"],\n): Promise<\n operations[\"account_update\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.patch(`/api/account`, body);\n}\n\n// ============================================================================\n// app\n// ============================================================================\n\n/**\n * Get the app definition\n * Returns the active FluidOS definition for the tenant company, including its component configuration.\n *\n * @param client - Fetch client instance\n \n */\nexport async function app_definition_show(\n client: FetchClient,\n): Promise<\n operations[\"app_definition_show\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.get(`/api/app/definition`);\n}\n\n// ============================================================================\n// orders\n// ============================================================================\n\n/**\n * List orders\n * Returns a paginated list of orders placed through the tenant company, optionally filtered by status.\n *\n * @param client - Fetch client instance\n * @param [params] - params\n */\nexport async function orders_list(\n client: FetchClient,\n params?: operations[\"orders_list\"][\"parameters\"][\"query\"],\n): Promise<\n operations[\"orders_list\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.get(`/api/orders`, params);\n}\n\n/**\n * Get an order\n * Returns a single order by ID with its line items.\n *\n * @param client - Fetch client instance\n * @param id - id\n */\nexport async function orders_show(\n client: FetchClient,\n id: string | number,\n): Promise<\n operations[\"orders_show\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.get(`/api/orders/${id}`);\n}\n\n// ============================================================================\n// products\n// ============================================================================\n\n/**\n * List products\n * Returns a paginated list of products available in the tenant company's catalog.\n *\n * @param client - Fetch client instance\n * @param [params] - params\n */\nexport async function products_list(\n client: FetchClient,\n params?: operations[\"products_list\"][\"parameters\"][\"query\"],\n): Promise<\n operations[\"products_list\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.get(`/api/products`, params);\n}\n\n/**\n * Get a product\n * Returns a single product by ID with its variants.\n *\n * @param client - Fetch client instance\n * @param id - id\n */\nexport async function products_show(\n client: FetchClient,\n id: string | number,\n): Promise<\n operations[\"products_show\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.get(`/api/products/${id}`);\n}\n\n/**\n * Search products\n * Searches the tenant company's product catalog by keyword, returning paginated results.\n *\n * @param client - Fetch client instance\n * @param [params] - params\n */\nexport async function products_search(\n client: FetchClient,\n params?: operations[\"products_search\"][\"parameters\"][\"query\"],\n): Promise<\n operations[\"products_search\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.get(`/api/products/search`, params);\n}\n\n/**\n * List product media\n * Returns all media (images, videos) attached to a product.\n *\n * @param client - Fetch client instance\n * @param id - id\n */\nexport async function products_media_list(\n client: FetchClient,\n id: string | number,\n): Promise<\n operations[\"products_media_list\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.get(`/api/products/${id}/media`);\n}\n\n// ============================================================================\n// subscriptions\n// ============================================================================\n\n/**\n * List subscriptions\n * Returns a paginated list of the member's active and historical subscriptions.\n *\n * @param client - Fetch client instance\n * @param [params] - params\n */\nexport async function subscriptions_list(\n client: FetchClient,\n params?: operations[\"subscriptions_list\"][\"parameters\"][\"query\"],\n): Promise<\n operations[\"subscriptions_list\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.get(`/api/subscriptions`, params);\n}\n\n/**\n * Get a subscription\n * Returns a single subscription by its token.\n *\n * @param client - Fetch client instance\n * @param token - token\n */\nexport async function subscriptions_show(\n client: FetchClient,\n token: string | number,\n): Promise<\n operations[\"subscriptions_show\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.get(`/api/subscriptions/${token}`);\n}\n\n/**\n * Update a subscription\n * Updates a subscription's default payment method.\n *\n * @param client - Fetch client instance\n * @param token - token\n * @param body - body\n */\nexport async function subscriptions_update(\n client: FetchClient,\n token: string | number,\n body: operations[\"subscriptions_update\"][\"requestBody\"][\"content\"][\"application/json\"],\n): Promise<\n operations[\"subscriptions_update\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.put(`/api/subscriptions/${token}`, body);\n}\n\n/**\n * Pause a subscription\n * Pauses billing on an active subscription.\n *\n * @param client - Fetch client instance\n * @param token - token\n */\nexport async function subscriptions_pause(\n client: FetchClient,\n token: string | number,\n): Promise<\n operations[\"subscriptions_pause\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.post(`/api/subscriptions/${token}/pause`);\n}\n\n/**\n * Resume a subscription\n * Resumes billing on a paused subscription.\n *\n * @param client - Fetch client instance\n * @param token - token\n */\nexport async function subscriptions_resume(\n client: FetchClient,\n token: string | number,\n): Promise<\n operations[\"subscriptions_resume\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.post(`/api/subscriptions/${token}/resume`);\n}\n\n/**\n * Skip next billing cycle\n * Skips the next billing cycle for a subscription without pausing it.\n *\n * @param client - Fetch client instance\n * @param token - token\n */\nexport async function subscriptions_skip(\n client: FetchClient,\n token: string | number,\n): Promise<\n operations[\"subscriptions_skip\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.post(`/api/subscriptions/${token}/skip_next_billing`);\n}\n\n/**\n * Cancel a subscription\n * Cancels an active subscription.\n *\n * @param client - Fetch client instance\n * @param token - token\n */\nexport async function subscriptions_cancel(\n client: FetchClient,\n token: string | number,\n): Promise<\n operations[\"subscriptions_cancel\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.post(`/api/subscriptions/${token}/cancel`);\n}\n\n/**\n * Reactivate a subscription\n * Reactivates a previously cancelled subscription.\n *\n * @param client - Fetch client instance\n * @param token - token\n */\nexport async function subscriptions_reactivate(\n client: FetchClient,\n token: string | number,\n): Promise<\n operations[\"subscriptions_reactivate\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.post(`/api/subscriptions/${token}/reactivate`);\n}\n","import type {\n PortalProductsApi,\n portalProducts,\n} from \"@fluid-app/products-core\";\nimport type { FetchClient } from \"./lib/fetch-client\";\nimport { portalTenant } from \"@fluid-app/portal-tenant-api-client\";\n\n/**\n * Creates a PortalProductsApi-compatible adapter from a portal-tenant FetchClient.\n *\n * This bridges the auto-generated portal-tenant API client to the abstract\n * PortalProductsApi interface defined in @fluid-app/products-core, closing\n * over the FetchClient so consumers don't need to pass it per-call.\n *\n * Each method maps the BFF response to the port type at runtime rather than\n * using type assertions, so TypeScript catches schema drift between the\n * generated client and the hand-authored port types at compile time.\n */\nexport function createPortalProductsApiAdapter(\n client: FetchClient,\n): PortalProductsApi {\n return {\n listProducts: async (params) => {\n const response = await portalTenant.products_list(client, {\n \"page[cursor]\": params?.cursor,\n \"page[limit]\": params?.limit,\n });\n return {\n products: response.products ?? [],\n meta: response.meta,\n } satisfies portalProducts.PortalProductsResponse;\n },\n\n getProduct: async (id) => {\n const response = await portalTenant.products_show(client, id);\n return {\n product: response.product ?? {},\n meta: response.meta,\n } satisfies portalProducts.PortalProductResponse;\n },\n\n searchProducts: async (query, params) => {\n const response = await portalTenant.products_search(client, {\n q: query,\n \"page[cursor]\": params?.cursor,\n \"page[limit]\": params?.limit,\n });\n return {\n products: response.products ?? [],\n meta: response.meta,\n } satisfies portalProducts.PortalProductsResponse;\n },\n\n getProductMedia: async (productId) => {\n const response = await portalTenant.products_media_list(\n client,\n productId,\n );\n return {\n media: response.media ?? [],\n meta: response.meta,\n } satisfies portalProducts.PortalProductMediaResponse;\n },\n };\n}\n","import { useMemo } from \"react\";\nimport type { PortalProductsApi } from \"@fluid-app/products-core\";\nimport { createPortalProductsApiAdapter } from \"@fluid-app/products-api-client\";\nimport { createFetchClient } from \"@fluid-app/portal-tenant-api-client\";\nimport { useFluidContext } from \"../providers/FluidProvider\";\n\nexport function usePortalProductsClient(): PortalProductsApi {\n const { config } = useFluidContext();\n\n return useMemo(() => {\n // Portal-tenant endpoints already include /api in their paths\n // (e.g. client.get('/api/products')), so the base URL must NOT\n // have /api appended — otherwise we get double /api/api.\n const client = createFetchClient({\n baseUrl: config.baseUrl.replace(/\\/+$/, \"\"),\n onAuthError: config.onAuthError,\n });\n return createPortalProductsApiAdapter(client);\n }, [config.baseUrl, config.onAuthError]);\n}\n"],"mappings":";;;;;;;;;;AAiHA,eAAsB,cACpB,QACA,QAGA;AACA,QAAO,OAAO,IAAI,iBAAiB,OAAO;;;;;;;;;AAU5C,eAAsB,cACpB,QACA,IAGA;AACA,QAAO,OAAO,IAAI,iBAAiB,KAAK;;;;;;;;;AAU1C,eAAsB,gBACpB,QACA,QAGA;AACA,QAAO,OAAO,IAAI,wBAAwB,OAAO;;;;;;;;;AAUnD,eAAsB,oBACpB,QACA,IAGA;AACA,QAAO,OAAO,IAAI,iBAAiB,GAAG,QAAQ;;;;;;;;;;;;;;;ACrJhD,SAAgB,+BACd,QACmB;AACnB,QAAO;EACL,cAAc,OAAO,WAAW;GAC9B,MAAM,WAAW,MAAMA,cAA2B,QAAQ;IACxD,gBAAgB,QAAQ;IACxB,eAAe,QAAQ;IACxB,CAAC;AACF,UAAO;IACL,UAAU,SAAS,YAAY,EAAE;IACjC,MAAM,SAAS;IAChB;;EAGH,YAAY,OAAO,OAAO;GACxB,MAAM,WAAW,MAAMC,cAA2B,QAAQ,GAAG;AAC7D,UAAO;IACL,SAAS,SAAS,WAAW,EAAE;IAC/B,MAAM,SAAS;IAChB;;EAGH,gBAAgB,OAAO,OAAO,WAAW;GACvC,MAAM,WAAW,MAAMC,gBAA6B,QAAQ;IAC1D,GAAG;IACH,gBAAgB,QAAQ;IACxB,eAAe,QAAQ;IACxB,CAAC;AACF,UAAO;IACL,UAAU,SAAS,YAAY,EAAE;IACjC,MAAM,SAAS;IAChB;;EAGH,iBAAiB,OAAO,cAAc;GACpC,MAAM,WAAW,MAAMC,oBACrB,QACA,UACD;AACD,UAAO;IACL,OAAO,SAAS,SAAS,EAAE;IAC3B,MAAM,SAAS;IAChB;;EAEJ;;;;ACzDH,SAAgB,0BAA6C;CAC3D,MAAM,EAAE,WAAW,iBAAiB;AAEpC,QAAO,cAAc;AAQnB,SAAO,+BAJQ,kBAAkB;GAC/B,SAAS,OAAO,QAAQ,QAAQ,QAAQ,GAAG;GAC3C,aAAa,OAAO;GACrB,CAAC,CAC2C;IAC5C,CAAC,OAAO,SAAS,OAAO,YAAY,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-portal-products-client-pptYMuSw.cjs","names":["portalTenant.products_list","portalTenant.products_show","portalTenant.products_search","portalTenant.products_media_list","useFluidContext","createFetchClient"],"sources":["../../../api-clients/portal-tenant/src/namespaces/portal_tenant.ts","../../../products/api-client/src/portal-tenant-adapter.ts","../src/products/use-portal-products-client.ts"],"sourcesContent":["/**\n * Generated API client functions for portal_tenant\n *\n * DO NOT EDIT THIS FILE DIRECTLY\n * This file is auto-generated. To update:\n * 1. Update the OpenAPI spec file\n * 2. Run: pnpm generate\n */\n\nimport type { FetchClient } from \"../lib/fetch-client\";\nimport type { operations } from \"../generated/portal-tenant\";\n\n// ============================================================================\n// account\n// ============================================================================\n\n/**\n * Get current account\n * Returns the authenticated member's account profile and company context. This is the primary endpoint the SPA calls to check auth status and display user information.\n *\n * @param client - Fetch client instance\n \n */\nexport async function account_show(\n client: FetchClient,\n): Promise<\n operations[\"account_show\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.get(`/api/account`);\n}\n\n/**\n * Update current account\n * Updates the authenticated member's profile fields such as name, phone, bio, avatar, and social links.\n *\n * @param client - Fetch client instance\n * @param body - body\n */\nexport async function account_update(\n client: FetchClient,\n body: operations[\"account_update\"][\"requestBody\"][\"content\"][\"application/json\"],\n): Promise<\n operations[\"account_update\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.patch(`/api/account`, body);\n}\n\n// ============================================================================\n// app\n// ============================================================================\n\n/**\n * Get the app definition\n * Returns the active FluidOS definition for the tenant company, including its component configuration.\n *\n * @param client - Fetch client instance\n \n */\nexport async function app_definition_show(\n client: FetchClient,\n): Promise<\n operations[\"app_definition_show\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.get(`/api/app/definition`);\n}\n\n// ============================================================================\n// orders\n// ============================================================================\n\n/**\n * List orders\n * Returns a paginated list of orders placed through the tenant company, optionally filtered by status.\n *\n * @param client - Fetch client instance\n * @param [params] - params\n */\nexport async function orders_list(\n client: FetchClient,\n params?: operations[\"orders_list\"][\"parameters\"][\"query\"],\n): Promise<\n operations[\"orders_list\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.get(`/api/orders`, params);\n}\n\n/**\n * Get an order\n * Returns a single order by ID with its line items.\n *\n * @param client - Fetch client instance\n * @param id - id\n */\nexport async function orders_show(\n client: FetchClient,\n id: string | number,\n): Promise<\n operations[\"orders_show\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.get(`/api/orders/${id}`);\n}\n\n// ============================================================================\n// products\n// ============================================================================\n\n/**\n * List products\n * Returns a paginated list of products available in the tenant company's catalog.\n *\n * @param client - Fetch client instance\n * @param [params] - params\n */\nexport async function products_list(\n client: FetchClient,\n params?: operations[\"products_list\"][\"parameters\"][\"query\"],\n): Promise<\n operations[\"products_list\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.get(`/api/products`, params);\n}\n\n/**\n * Get a product\n * Returns a single product by ID with its variants.\n *\n * @param client - Fetch client instance\n * @param id - id\n */\nexport async function products_show(\n client: FetchClient,\n id: string | number,\n): Promise<\n operations[\"products_show\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.get(`/api/products/${id}`);\n}\n\n/**\n * Search products\n * Searches the tenant company's product catalog by keyword, returning paginated results.\n *\n * @param client - Fetch client instance\n * @param [params] - params\n */\nexport async function products_search(\n client: FetchClient,\n params?: operations[\"products_search\"][\"parameters\"][\"query\"],\n): Promise<\n operations[\"products_search\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.get(`/api/products/search`, params);\n}\n\n/**\n * List product media\n * Returns all media (images, videos) attached to a product.\n *\n * @param client - Fetch client instance\n * @param id - id\n */\nexport async function products_media_list(\n client: FetchClient,\n id: string | number,\n): Promise<\n operations[\"products_media_list\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.get(`/api/products/${id}/media`);\n}\n\n// ============================================================================\n// subscriptions\n// ============================================================================\n\n/**\n * List subscriptions\n * Returns a paginated list of the member's active and historical subscriptions.\n *\n * @param client - Fetch client instance\n * @param [params] - params\n */\nexport async function subscriptions_list(\n client: FetchClient,\n params?: operations[\"subscriptions_list\"][\"parameters\"][\"query\"],\n): Promise<\n operations[\"subscriptions_list\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.get(`/api/subscriptions`, params);\n}\n\n/**\n * Get a subscription\n * Returns a single subscription by its token.\n *\n * @param client - Fetch client instance\n * @param token - token\n */\nexport async function subscriptions_show(\n client: FetchClient,\n token: string | number,\n): Promise<\n operations[\"subscriptions_show\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.get(`/api/subscriptions/${token}`);\n}\n\n/**\n * Update a subscription\n * Updates a subscription's default payment method.\n *\n * @param client - Fetch client instance\n * @param token - token\n * @param body - body\n */\nexport async function subscriptions_update(\n client: FetchClient,\n token: string | number,\n body: operations[\"subscriptions_update\"][\"requestBody\"][\"content\"][\"application/json\"],\n): Promise<\n operations[\"subscriptions_update\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.put(`/api/subscriptions/${token}`, body);\n}\n\n/**\n * Pause a subscription\n * Pauses billing on an active subscription.\n *\n * @param client - Fetch client instance\n * @param token - token\n */\nexport async function subscriptions_pause(\n client: FetchClient,\n token: string | number,\n): Promise<\n operations[\"subscriptions_pause\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.post(`/api/subscriptions/${token}/pause`);\n}\n\n/**\n * Resume a subscription\n * Resumes billing on a paused subscription.\n *\n * @param client - Fetch client instance\n * @param token - token\n */\nexport async function subscriptions_resume(\n client: FetchClient,\n token: string | number,\n): Promise<\n operations[\"subscriptions_resume\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.post(`/api/subscriptions/${token}/resume`);\n}\n\n/**\n * Skip next billing cycle\n * Skips the next billing cycle for a subscription without pausing it.\n *\n * @param client - Fetch client instance\n * @param token - token\n */\nexport async function subscriptions_skip(\n client: FetchClient,\n token: string | number,\n): Promise<\n operations[\"subscriptions_skip\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.post(`/api/subscriptions/${token}/skip_next_billing`);\n}\n\n/**\n * Cancel a subscription\n * Cancels an active subscription.\n *\n * @param client - Fetch client instance\n * @param token - token\n */\nexport async function subscriptions_cancel(\n client: FetchClient,\n token: string | number,\n): Promise<\n operations[\"subscriptions_cancel\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.post(`/api/subscriptions/${token}/cancel`);\n}\n\n/**\n * Reactivate a subscription\n * Reactivates a previously cancelled subscription.\n *\n * @param client - Fetch client instance\n * @param token - token\n */\nexport async function subscriptions_reactivate(\n client: FetchClient,\n token: string | number,\n): Promise<\n operations[\"subscriptions_reactivate\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.post(`/api/subscriptions/${token}/reactivate`);\n}\n","import type {\n PortalProductsApi,\n portalProducts,\n} from \"@fluid-app/products-core\";\nimport type { FetchClient } from \"./lib/fetch-client\";\nimport { portalTenant } from \"@fluid-app/portal-tenant-api-client\";\n\n/**\n * Creates a PortalProductsApi-compatible adapter from a portal-tenant FetchClient.\n *\n * This bridges the auto-generated portal-tenant API client to the abstract\n * PortalProductsApi interface defined in @fluid-app/products-core, closing\n * over the FetchClient so consumers don't need to pass it per-call.\n *\n * Each method maps the BFF response to the port type at runtime rather than\n * using type assertions, so TypeScript catches schema drift between the\n * generated client and the hand-authored port types at compile time.\n */\nexport function createPortalProductsApiAdapter(\n client: FetchClient,\n): PortalProductsApi {\n return {\n listProducts: async (params) => {\n const response = await portalTenant.products_list(client, {\n \"page[cursor]\": params?.cursor,\n \"page[limit]\": params?.limit,\n });\n return {\n products: response.products ?? [],\n meta: response.meta,\n } satisfies portalProducts.PortalProductsResponse;\n },\n\n getProduct: async (id) => {\n const response = await portalTenant.products_show(client, id);\n return {\n product: response.product ?? {},\n meta: response.meta,\n } satisfies portalProducts.PortalProductResponse;\n },\n\n searchProducts: async (query, params) => {\n const response = await portalTenant.products_search(client, {\n q: query,\n \"page[cursor]\": params?.cursor,\n \"page[limit]\": params?.limit,\n });\n return {\n products: response.products ?? [],\n meta: response.meta,\n } satisfies portalProducts.PortalProductsResponse;\n },\n\n getProductMedia: async (productId) => {\n const response = await portalTenant.products_media_list(\n client,\n productId,\n );\n return {\n media: response.media ?? [],\n meta: response.meta,\n } satisfies portalProducts.PortalProductMediaResponse;\n },\n };\n}\n","import { useMemo } from \"react\";\nimport type { PortalProductsApi } from \"@fluid-app/products-core\";\nimport { createPortalProductsApiAdapter } from \"@fluid-app/products-api-client\";\nimport { createFetchClient } from \"@fluid-app/portal-tenant-api-client\";\nimport { useFluidContext } from \"../providers/FluidProvider\";\n\nexport function usePortalProductsClient(): PortalProductsApi {\n const { config } = useFluidContext();\n\n return useMemo(() => {\n // Portal-tenant endpoints already include /api in their paths\n // (e.g. client.get('/api/products')), so the base URL must NOT\n // have /api appended — otherwise we get double /api/api.\n const client = createFetchClient({\n baseUrl: config.baseUrl.replace(/\\/+$/, \"\"),\n onAuthError: config.onAuthError,\n });\n return createPortalProductsApiAdapter(client);\n }, [config.baseUrl, config.onAuthError]);\n}\n"],"mappings":";;;;;;;;;;;AAiHA,eAAsB,cACpB,QACA,QAGA;AACA,QAAO,OAAO,IAAI,iBAAiB,OAAO;;;;;;;;;AAU5C,eAAsB,cACpB,QACA,IAGA;AACA,QAAO,OAAO,IAAI,iBAAiB,KAAK;;;;;;;;;AAU1C,eAAsB,gBACpB,QACA,QAGA;AACA,QAAO,OAAO,IAAI,wBAAwB,OAAO;;;;;;;;;AAUnD,eAAsB,oBACpB,QACA,IAGA;AACA,QAAO,OAAO,IAAI,iBAAiB,GAAG,QAAQ;;;;;;;;;;;;;;;ACrJhD,SAAgB,+BACd,QACmB;AACnB,QAAO;EACL,cAAc,OAAO,WAAW;GAC9B,MAAM,WAAW,MAAMA,cAA2B,QAAQ;IACxD,gBAAgB,QAAQ;IACxB,eAAe,QAAQ;IACxB,CAAC;AACF,UAAO;IACL,UAAU,SAAS,YAAY,EAAE;IACjC,MAAM,SAAS;IAChB;;EAGH,YAAY,OAAO,OAAO;GACxB,MAAM,WAAW,MAAMC,cAA2B,QAAQ,GAAG;AAC7D,UAAO;IACL,SAAS,SAAS,WAAW,EAAE;IAC/B,MAAM,SAAS;IAChB;;EAGH,gBAAgB,OAAO,OAAO,WAAW;GACvC,MAAM,WAAW,MAAMC,gBAA6B,QAAQ;IAC1D,GAAG;IACH,gBAAgB,QAAQ;IACxB,eAAe,QAAQ;IACxB,CAAC;AACF,UAAO;IACL,UAAU,SAAS,YAAY,EAAE;IACjC,MAAM,SAAS;IAChB;;EAGH,iBAAiB,OAAO,cAAc;GACpC,MAAM,WAAW,MAAMC,oBACrB,QACA,UACD;AACD,UAAO;IACL,OAAO,SAAS,SAAS,EAAE;IAC3B,MAAM,SAAS;IAChB;;EAEJ;;;;ACzDH,SAAgB,0BAA6C;CAC3D,MAAM,EAAE,WAAWC,sBAAAA,iBAAiB;AAEpC,SAAA,GAAA,MAAA,eAAqB;AAQnB,SAAO,+BAJQC,sBAAAA,kBAAkB;GAC/B,SAAS,OAAO,QAAQ,QAAQ,QAAQ,GAAG;GAC3C,aAAa,OAAO;GACrB,CAAC,CAC2C;IAC5C,CAAC,OAAO,SAAS,OAAO,YAAY,CAAC"}
|