@fluid-app/portal-sdk 0.1.154 → 0.1.156

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 (92) hide show
  1. package/dist/{ContactsScreen-Dy9coizh.cjs → ContactsScreen-BKQk5wU5.cjs} +2 -2
  2. package/dist/{ContactsScreen-Djvyn4Rq.cjs → ContactsScreen-Ck5NCh9d.cjs} +3 -3
  3. package/dist/{ContactsScreen-Djvyn4Rq.cjs.map → ContactsScreen-Ck5NCh9d.cjs.map} +1 -1
  4. package/dist/{ContactsScreen-BKT7Ohfe.mjs → ContactsScreen-CmnKU--w.mjs} +3 -3
  5. package/dist/{ContactsScreen-BKT7Ohfe.mjs.map → ContactsScreen-CmnKU--w.mjs.map} +1 -1
  6. package/dist/{FluidProvider-CRMe-Enf.cjs → FluidProvider-Bc-3uN7M.cjs} +151 -19
  7. package/dist/FluidProvider-Bc-3uN7M.cjs.map +1 -0
  8. package/dist/{FluidProvider-DpET43hN.mjs → FluidProvider-Cqf2kmUc.mjs} +137 -5
  9. package/dist/FluidProvider-Cqf2kmUc.mjs.map +1 -0
  10. package/dist/{MessagingScreen-DXgDrzlG.mjs → MessagingScreen-B1MbKdSO.mjs} +2 -2
  11. package/dist/{MessagingScreen-DXgDrzlG.mjs.map → MessagingScreen-B1MbKdSO.mjs.map} +1 -1
  12. package/dist/{MessagingScreen-cxQADd91.cjs → MessagingScreen-lAO4PVqi.cjs} +2 -2
  13. package/dist/{MessagingScreen-cxQADd91.cjs.map → MessagingScreen-lAO4PVqi.cjs.map} +1 -1
  14. package/dist/{MessagingScreen-ChCBVO4U.cjs → MessagingScreen-s9HaMQGR.cjs} +4 -3
  15. package/dist/{MySiteScreen-gl8KGOrU.mjs → MySiteScreen-BEbj9K8U.mjs} +262 -602
  16. package/dist/MySiteScreen-BEbj9K8U.mjs.map +1 -0
  17. package/dist/{MySiteScreen-CdsAyh7a.cjs → MySiteScreen-D8YvEYwH.cjs} +262 -611
  18. package/dist/MySiteScreen-D8YvEYwH.cjs.map +1 -0
  19. package/dist/{MySiteScreen-efkpTcUh.cjs → MySiteScreen-DIbwHNbV.cjs} +2 -1
  20. package/dist/{OrdersScreen-C0HGsjwv.mjs → OrdersScreen-CSbbQw2L.mjs} +2 -2
  21. package/dist/{OrdersScreen-C0HGsjwv.mjs.map → OrdersScreen-CSbbQw2L.mjs.map} +1 -1
  22. package/dist/{OrdersScreen-Dbmbf9g_.cjs → OrdersScreen-DLjDPnqI.cjs} +2 -2
  23. package/dist/{OrdersScreen-Dbmbf9g_.cjs.map → OrdersScreen-DLjDPnqI.cjs.map} +1 -1
  24. package/dist/{OrdersScreen-dNALJLm3.cjs → OrdersScreen-Dxv6ZQlu.cjs} +1 -1
  25. package/dist/{ProductsScreen-H-8HShV5.mjs → ProductsScreen-CcRQhx0c.mjs} +2 -2
  26. package/dist/{ProductsScreen-H-8HShV5.mjs.map → ProductsScreen-CcRQhx0c.mjs.map} +1 -1
  27. package/dist/{ProductsScreen-CfcVBUZ8.cjs → ProductsScreen-DTBg7Bm3.cjs} +2 -2
  28. package/dist/{ProductsScreen-CfcVBUZ8.cjs.map → ProductsScreen-DTBg7Bm3.cjs.map} +1 -1
  29. package/dist/{ProductsScreen-Dcnp0MG-.mjs → ProductsScreen-MADYD0MH.mjs} +5 -4
  30. package/dist/{ProductsScreen-BJ2ZUaPi.cjs → ProductsScreen-NmOdT82w.cjs} +5 -4
  31. package/dist/{ProfileScreen-CaNQYd_F.mjs → ProfileScreen-BcCYQt5U.mjs} +4 -4
  32. package/dist/{ProfileScreen-CaNQYd_F.mjs.map → ProfileScreen-BcCYQt5U.mjs.map} +1 -1
  33. package/dist/{ProfileScreen-BRPBvvI7.cjs → ProfileScreen-C01vRpm3.cjs} +4 -3
  34. package/dist/{ProfileScreen-D4OJk9F0.cjs → ProfileScreen-fmUckcMP.cjs} +4 -4
  35. package/dist/{ProfileScreen-D4OJk9F0.cjs.map → ProfileScreen-fmUckcMP.cjs.map} +1 -1
  36. package/dist/{ShareablesScreen-CL6A1m_P.cjs → ShareablesScreen-BMxugV_y.cjs} +5 -4
  37. package/dist/{ShareablesScreen-FDOtQ67f.mjs → ShareablesScreen-BkVWntLq.mjs} +5 -4
  38. package/dist/{ShareablesScreen-DLz5tvRS.cjs → ShareablesScreen-DmtFkpDO.cjs} +2 -2
  39. package/dist/{ShareablesScreen-DLz5tvRS.cjs.map → ShareablesScreen-DmtFkpDO.cjs.map} +1 -1
  40. package/dist/{ShareablesScreen-CtK4S7FT.mjs → ShareablesScreen-WW2uw8wV.mjs} +2 -2
  41. package/dist/{ShareablesScreen-CtK4S7FT.mjs.map → ShareablesScreen-WW2uw8wV.mjs.map} +1 -1
  42. package/dist/{ShopScreen-Bj3PjrVi.cjs → ShopScreen-BeBh8oUd.cjs} +3 -3
  43. package/dist/{ShopScreen-Bj3PjrVi.cjs.map → ShopScreen-BeBh8oUd.cjs.map} +1 -1
  44. package/dist/{ShopScreen-CKidhX9F.cjs → ShopScreen-D2DmHW7P.cjs} +4 -3
  45. package/dist/{ShopScreen-DDscuexZ.mjs → ShopScreen-DQDOi7Xn.mjs} +3 -3
  46. package/dist/{ShopScreen-DDscuexZ.mjs.map → ShopScreen-DQDOi7Xn.mjs.map} +1 -1
  47. package/dist/{SubscriptionsScreen-Cu9Fc98m.mjs → SubscriptionsScreen-3u1tEn1b.mjs} +2 -2
  48. package/dist/{SubscriptionsScreen-Cu9Fc98m.mjs.map → SubscriptionsScreen-3u1tEn1b.mjs.map} +1 -1
  49. package/dist/{SubscriptionsScreen-DHg2Y0Vk.cjs → SubscriptionsScreen-D0gK60uD.cjs} +1 -1
  50. package/dist/{SubscriptionsScreen-RaocKuQG.cjs → SubscriptionsScreen-DQt1YUAH.cjs} +2 -2
  51. package/dist/{SubscriptionsScreen-RaocKuQG.cjs.map → SubscriptionsScreen-DQt1YUAH.cjs.map} +1 -1
  52. package/dist/{countries-api-context-EEnpUpp2.cjs → countries-api-context-CwUkJTdy.cjs} +1 -1
  53. package/dist/{countries-api-context-EEnpUpp2.cjs.map → countries-api-context-CwUkJTdy.cjs.map} +1 -1
  54. package/dist/{countries-api-context-esV7AdsB.mjs → countries-api-context-D0dubtHy.mjs} +1 -1
  55. package/dist/{countries-api-context-esV7AdsB.mjs.map → countries-api-context-D0dubtHy.mjs.map} +1 -1
  56. package/dist/index.cjs +31 -30
  57. package/dist/index.cjs.map +1 -1
  58. package/dist/index.d.cts +4 -25
  59. package/dist/index.d.cts.map +1 -1
  60. package/dist/index.d.mts +4 -25
  61. package/dist/index.d.mts.map +1 -1
  62. package/dist/index.mjs +31 -30
  63. package/dist/index.mjs.map +1 -1
  64. package/dist/mysite-api-context-BTt-_urb.cjs +25 -0
  65. package/dist/mysite-api-context-BTt-_urb.cjs.map +1 -0
  66. package/dist/mysite-api-context-C7eiw7TO.mjs +13 -0
  67. package/dist/mysite-api-context-C7eiw7TO.mjs.map +1 -0
  68. package/dist/{parse-api-errors-DLWVAkAd.mjs → parse-api-errors-D8PITFLg.mjs} +1 -1
  69. package/dist/{parse-api-errors-DLWVAkAd.mjs.map → parse-api-errors-D8PITFLg.mjs.map} +1 -1
  70. package/dist/{parse-api-errors-J6VflWm8.cjs → parse-api-errors-pw_TZf_b.cjs} +1 -1
  71. package/dist/{parse-api-errors-J6VflWm8.cjs.map → parse-api-errors-pw_TZf_b.cjs.map} +1 -1
  72. package/dist/{portal_tenant-DTIfG6m4.cjs → portal_tenant-CSxWYAH-.cjs} +1 -1
  73. package/dist/{portal_tenant-DTIfG6m4.cjs.map → portal_tenant-CSxWYAH-.cjs.map} +1 -1
  74. package/dist/{portal_tenant-S57LBMo6.mjs → portal_tenant-Taa7uJwV.mjs} +1 -1
  75. package/dist/{portal_tenant-S57LBMo6.mjs.map → portal_tenant-Taa7uJwV.mjs.map} +1 -1
  76. package/dist/{use-portal-products-client-DGYbhJLC.mjs → use-portal-products-client-CChGsvZI.mjs} +2 -2
  77. package/dist/{use-portal-products-client-DGYbhJLC.mjs.map → use-portal-products-client-CChGsvZI.mjs.map} +1 -1
  78. package/dist/{use-portal-products-client-CkehVVCL.cjs → use-portal-products-client-mpdZuZyu.cjs} +2 -2
  79. package/dist/{use-portal-products-client-CkehVVCL.cjs.map → use-portal-products-client-mpdZuZyu.cjs.map} +1 -1
  80. package/dist/{use-portal-shareables-api-BpQpcPcx.cjs → use-portal-shareables-api-CZ4ELYei.cjs} +3 -3
  81. package/dist/{use-portal-shareables-api-BpQpcPcx.cjs.map → use-portal-shareables-api-CZ4ELYei.cjs.map} +1 -1
  82. package/dist/{use-portal-shareables-api-kcUnux8J.mjs → use-portal-shareables-api-DXuaX66a.mjs} +3 -3
  83. package/dist/{use-portal-shareables-api-kcUnux8J.mjs.map → use-portal-shareables-api-DXuaX66a.mjs.map} +1 -1
  84. package/package.json +12 -12
  85. package/dist/FluidProvider-CRMe-Enf.cjs.map +0 -1
  86. package/dist/FluidProvider-DpET43hN.mjs.map +0 -1
  87. package/dist/MySiteScreen-CdsAyh7a.cjs.map +0 -1
  88. package/dist/MySiteScreen-gl8KGOrU.mjs.map +0 -1
  89. package/dist/portal_tenant_mysite-NSJTd8ff.mjs +0 -136
  90. package/dist/portal_tenant_mysite-NSJTd8ff.mjs.map +0 -1
  91. package/dist/portal_tenant_mysite-PDI1nxcm.cjs +0 -213
  92. package/dist/portal_tenant_mysite-PDI1nxcm.cjs.map +0 -1
@@ -0,0 +1,25 @@
1
+ require("./chunk-9hOWP6kD.cjs");
2
+ let react = require("react");
3
+ //#region ../../mysite/core/src/mysite-api-context.ts
4
+ const MySiteApiContext = (0, react.createContext)(null);
5
+ const MySiteApiProvider = MySiteApiContext.Provider;
6
+ function useMySiteApi() {
7
+ const api = (0, react.useContext)(MySiteApiContext);
8
+ if (!api) throw new Error("useMySiteApi must be used within a MySiteApiProvider");
9
+ return api;
10
+ }
11
+ //#endregion
12
+ Object.defineProperty(exports, "MySiteApiProvider", {
13
+ enumerable: true,
14
+ get: function() {
15
+ return MySiteApiProvider;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "useMySiteApi", {
19
+ enumerable: true,
20
+ get: function() {
21
+ return useMySiteApi;
22
+ }
23
+ });
24
+
25
+ //# sourceMappingURL=mysite-api-context-BTt-_urb.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysite-api-context-BTt-_urb.cjs","names":[],"sources":["../../../mysite/core/src/mysite-api-context.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { MySiteApi } from \"./mysite-api\";\n\nconst MySiteApiContext = createContext<MySiteApi | null>(null);\n\nexport const MySiteApiProvider = MySiteApiContext.Provider;\n\nexport function useMySiteApi(): MySiteApi {\n const api = useContext(MySiteApiContext);\n if (!api) {\n throw new Error(\"useMySiteApi must be used within a MySiteApiProvider\");\n }\n return api;\n}\n"],"mappings":";;;AAGA,MAAM,oBAAA,GAAA,MAAA,eAAmD,KAAK;AAE9D,MAAa,oBAAoB,iBAAiB;AAElD,SAAgB,eAA0B;CACxC,MAAM,OAAA,GAAA,MAAA,YAAiB,iBAAiB;AACxC,KAAI,CAAC,IACH,OAAM,IAAI,MAAM,uDAAuD;AAEzE,QAAO"}
@@ -0,0 +1,13 @@
1
+ import { createContext, useContext } from "react";
2
+ //#region ../../mysite/core/src/mysite-api-context.ts
3
+ const MySiteApiContext = createContext(null);
4
+ const MySiteApiProvider = MySiteApiContext.Provider;
5
+ function useMySiteApi() {
6
+ const api = useContext(MySiteApiContext);
7
+ if (!api) throw new Error("useMySiteApi must be used within a MySiteApiProvider");
8
+ return api;
9
+ }
10
+ //#endregion
11
+ export { useMySiteApi as n, MySiteApiProvider as t };
12
+
13
+ //# sourceMappingURL=mysite-api-context-C7eiw7TO.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysite-api-context-C7eiw7TO.mjs","names":[],"sources":["../../../mysite/core/src/mysite-api-context.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { MySiteApi } from \"./mysite-api\";\n\nconst MySiteApiContext = createContext<MySiteApi | null>(null);\n\nexport const MySiteApiProvider = MySiteApiContext.Provider;\n\nexport function useMySiteApi(): MySiteApi {\n const api = useContext(MySiteApiContext);\n if (!api) {\n throw new Error(\"useMySiteApi must be used within a MySiteApiProvider\");\n }\n return api;\n}\n"],"mappings":";;AAGA,MAAM,mBAAmB,cAAgC,KAAK;AAE9D,MAAa,oBAAoB,iBAAiB;AAElD,SAAgB,eAA0B;CACxC,MAAM,MAAM,WAAW,iBAAiB;AACxC,KAAI,CAAC,IACH,OAAM,IAAI,MAAM,uDAAuD;AAEzE,QAAO"}
@@ -85,4 +85,4 @@ function parseApiErrors(error, fallback) {
85
85
  //#endregion
86
86
  export { parseApiErrors as t };
87
87
 
88
- //# sourceMappingURL=parse-api-errors-DLWVAkAd.mjs.map
88
+ //# sourceMappingURL=parse-api-errors-D8PITFLg.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-api-errors-DLWVAkAd.mjs","names":[],"sources":["../../../platform/api-client-core/src/parse-api-errors.ts"],"sourcesContent":["/**\n * Framework-agnostic API error parsing utilities.\n *\n * Extracts structured field-level errors from API responses and formats\n * them into human-readable messages. Works with ApiError from this package\n * as well as any error object that has `status`, `data`, and optional `message`.\n */\n\n/**\n * Converts snake_case or camelCase field names to Title Case\n */\nexport function formatFieldName(field: string): string {\n return field\n .replace(/_/g, \" \")\n .replace(/([A-Z])/g, \" $1\")\n .split(\" \")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(\" \")\n .trim();\n}\n\nexport interface ParsedFieldError {\n field: string;\n messages: string[];\n}\n\n/**\n * Type guard to check if an error looks like an API error\n */\nexport function isApiLikeError(\n error: unknown,\n): error is { message: string | undefined; status: number; data: unknown } {\n if (!error || typeof error !== \"object\") {\n return false;\n }\n\n const err = error as Record<string, unknown>;\n return (\n typeof err.status === \"number\" &&\n \"data\" in err &&\n (typeof err.message === \"string\" || err.message === undefined)\n );\n}\n\n/**\n * Extracts field-level errors from API error data\n */\nexport function extractFieldErrors(data: unknown): ParsedFieldError[] {\n const errors: ParsedFieldError[] = [];\n\n if (!data || typeof data !== \"object\") {\n return errors;\n }\n\n const errorObj = data as Record<string, unknown>;\n\n for (const [key, value] of Object.entries(errorObj)) {\n if (Array.isArray(value) && value.length > 0) {\n errors.push({\n field: formatFieldName(key),\n messages: value.map((item) =>\n typeof item === \"string\" ? item : JSON.stringify(item),\n ),\n });\n } else if (typeof value === \"string\" && value.length > 0) {\n errors.push({\n field: formatFieldName(key),\n messages: [value],\n });\n } else if (value && typeof value === \"object\" && !Array.isArray(value)) {\n const nestedErrors = extractFieldErrors(value);\n nestedErrors.forEach((nestedError) => {\n errors.push({\n field: `${formatFieldName(key)} → ${nestedError.field}`,\n messages: nestedError.messages,\n });\n });\n }\n }\n\n return errors;\n}\n\n/**\n * Formats field errors into a readable description string\n */\nexport function formatErrorDescription(errors: ParsedFieldError[]): string {\n if (errors.length === 0) {\n return \"\";\n }\n\n if (errors.length === 1) {\n const err = errors[0];\n if (!err) return \"\";\n const message = err.messages[0] || \"is invalid\";\n return `${err.field} ${message}`;\n }\n\n if (errors.length <= 3) {\n return errors\n .map((e) => `${e.field} ${e.messages[0] || \"is invalid\"}`)\n .join(\"\\n\");\n }\n\n const shown = errors\n .slice(0, 3)\n .map((e) => `${e.field} ${e.messages[0] || \"is invalid\"}`)\n .join(\"\\n\");\n const remaining = errors.length - 3;\n return `${shown}\\n...and ${remaining} more ${remaining === 1 ? \"error\" : \"errors\"}`;\n}\n\n/**\n * Parses an error and returns a human-readable description string.\n *\n * Handles:\n * - API-like errors with structured field-level data\n * - API-like errors with a top-level message\n * - Standard Error instances\n * - Falls back to the provided fallback string\n *\n * @param error - The error to parse (ApiError, Error, or unknown)\n * @param fallback - Optional fallback description if error cannot be parsed\n * @returns A human-readable error description, or undefined if nothing could be extracted\n */\nexport function parseApiErrors(\n error: unknown,\n fallback?: string,\n): string | undefined {\n if (isApiLikeError(error)) {\n if (error.data) {\n const fieldErrors = extractFieldErrors(error.data);\n if (fieldErrors.length > 0) {\n return formatErrorDescription(fieldErrors);\n }\n }\n\n if (error.message) {\n return error.message;\n }\n } else if (error instanceof Error) {\n return error.message;\n }\n\n return fallback;\n}\n"],"mappings":";;;;;;;;;;;AAWA,SAAgB,gBAAgB,OAAuB;AACrD,QAAO,MACJ,QAAQ,MAAM,IAAI,CAClB,QAAQ,YAAY,MAAM,CAC1B,MAAM,IAAI,CACV,KAAK,SAAS,KAAK,OAAO,EAAE,CAAC,aAAa,GAAG,KAAK,MAAM,EAAE,CAAC,aAAa,CAAC,CACzE,KAAK,IAAI,CACT,MAAM;;;;;AAWX,SAAgB,eACd,OACyE;AACzE,KAAI,CAAC,SAAS,OAAO,UAAU,SAC7B,QAAO;CAGT,MAAM,MAAM;AACZ,QACE,OAAO,IAAI,WAAW,YACtB,UAAU,QACT,OAAO,IAAI,YAAY,YAAY,IAAI,YAAY,KAAA;;;;;AAOxD,SAAgB,mBAAmB,MAAmC;CACpE,MAAM,SAA6B,EAAE;AAErC,KAAI,CAAC,QAAQ,OAAO,SAAS,SAC3B,QAAO;CAGT,MAAM,WAAW;AAEjB,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,SAAS,CACjD,KAAI,MAAM,QAAQ,MAAM,IAAI,MAAM,SAAS,EACzC,QAAO,KAAK;EACV,OAAO,gBAAgB,IAAI;EAC3B,UAAU,MAAM,KAAK,SACnB,OAAO,SAAS,WAAW,OAAO,KAAK,UAAU,KAAK,CACvD;EACF,CAAC;UACO,OAAO,UAAU,YAAY,MAAM,SAAS,EACrD,QAAO,KAAK;EACV,OAAO,gBAAgB,IAAI;EAC3B,UAAU,CAAC,MAAM;EAClB,CAAC;UACO,SAAS,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,MAAM,CAC/C,oBAAmB,MAAM,CACjC,SAAS,gBAAgB;AACpC,SAAO,KAAK;GACV,OAAO,GAAG,gBAAgB,IAAI,CAAC,KAAK,YAAY;GAChD,UAAU,YAAY;GACvB,CAAC;GACF;AAIN,QAAO;;;;;AAMT,SAAgB,uBAAuB,QAAoC;AACzE,KAAI,OAAO,WAAW,EACpB,QAAO;AAGT,KAAI,OAAO,WAAW,GAAG;EACvB,MAAM,MAAM,OAAO;AACnB,MAAI,CAAC,IAAK,QAAO;EACjB,MAAM,UAAU,IAAI,SAAS,MAAM;AACnC,SAAO,GAAG,IAAI,MAAM,GAAG;;AAGzB,KAAI,OAAO,UAAU,EACnB,QAAO,OACJ,KAAK,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,SAAS,MAAM,eAAe,CACzD,KAAK,KAAK;CAGf,MAAM,QAAQ,OACX,MAAM,GAAG,EAAE,CACX,KAAK,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,SAAS,MAAM,eAAe,CACzD,KAAK,KAAK;CACb,MAAM,YAAY,OAAO,SAAS;AAClC,QAAO,GAAG,MAAM,WAAW,UAAU,QAAQ,cAAc,IAAI,UAAU;;;;;;;;;;;;;;;AAgB3E,SAAgB,eACd,OACA,UACoB;AACpB,KAAI,eAAe,MAAM,EAAE;AACzB,MAAI,MAAM,MAAM;GACd,MAAM,cAAc,mBAAmB,MAAM,KAAK;AAClD,OAAI,YAAY,SAAS,EACvB,QAAO,uBAAuB,YAAY;;AAI9C,MAAI,MAAM,QACR,QAAO,MAAM;YAEN,iBAAiB,MAC1B,QAAO,MAAM;AAGf,QAAO"}
1
+ {"version":3,"file":"parse-api-errors-D8PITFLg.mjs","names":[],"sources":["../../../platform/api-client-core/src/parse-api-errors.ts"],"sourcesContent":["/**\n * Framework-agnostic API error parsing utilities.\n *\n * Extracts structured field-level errors from API responses and formats\n * them into human-readable messages. Works with ApiError from this package\n * as well as any error object that has `status`, `data`, and optional `message`.\n */\n\n/**\n * Converts snake_case or camelCase field names to Title Case\n */\nexport function formatFieldName(field: string): string {\n return field\n .replace(/_/g, \" \")\n .replace(/([A-Z])/g, \" $1\")\n .split(\" \")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(\" \")\n .trim();\n}\n\nexport interface ParsedFieldError {\n field: string;\n messages: string[];\n}\n\n/**\n * Type guard to check if an error looks like an API error\n */\nexport function isApiLikeError(\n error: unknown,\n): error is { message: string | undefined; status: number; data: unknown } {\n if (!error || typeof error !== \"object\") {\n return false;\n }\n\n const err = error as Record<string, unknown>;\n return (\n typeof err.status === \"number\" &&\n \"data\" in err &&\n (typeof err.message === \"string\" || err.message === undefined)\n );\n}\n\n/**\n * Extracts field-level errors from API error data\n */\nexport function extractFieldErrors(data: unknown): ParsedFieldError[] {\n const errors: ParsedFieldError[] = [];\n\n if (!data || typeof data !== \"object\") {\n return errors;\n }\n\n const errorObj = data as Record<string, unknown>;\n\n for (const [key, value] of Object.entries(errorObj)) {\n if (Array.isArray(value) && value.length > 0) {\n errors.push({\n field: formatFieldName(key),\n messages: value.map((item) =>\n typeof item === \"string\" ? item : JSON.stringify(item),\n ),\n });\n } else if (typeof value === \"string\" && value.length > 0) {\n errors.push({\n field: formatFieldName(key),\n messages: [value],\n });\n } else if (value && typeof value === \"object\" && !Array.isArray(value)) {\n const nestedErrors = extractFieldErrors(value);\n nestedErrors.forEach((nestedError) => {\n errors.push({\n field: `${formatFieldName(key)} → ${nestedError.field}`,\n messages: nestedError.messages,\n });\n });\n }\n }\n\n return errors;\n}\n\n/**\n * Formats field errors into a readable description string\n */\nexport function formatErrorDescription(errors: ParsedFieldError[]): string {\n if (errors.length === 0) {\n return \"\";\n }\n\n if (errors.length === 1) {\n const err = errors[0];\n if (!err) return \"\";\n const message = err.messages[0] || \"is invalid\";\n return `${err.field} ${message}`;\n }\n\n if (errors.length <= 3) {\n return errors\n .map((e) => `${e.field} ${e.messages[0] || \"is invalid\"}`)\n .join(\"\\n\");\n }\n\n const shown = errors\n .slice(0, 3)\n .map((e) => `${e.field} ${e.messages[0] || \"is invalid\"}`)\n .join(\"\\n\");\n const remaining = errors.length - 3;\n return `${shown}\\n...and ${remaining} more ${remaining === 1 ? \"error\" : \"errors\"}`;\n}\n\n/**\n * Parses an error and returns a human-readable description string.\n *\n * Handles:\n * - API-like errors with structured field-level data\n * - API-like errors with a top-level message\n * - Standard Error instances\n * - Falls back to the provided fallback string\n *\n * @param error - The error to parse (ApiError, Error, or unknown)\n * @param fallback - Optional fallback description if error cannot be parsed\n * @returns A human-readable error description, or undefined if nothing could be extracted\n */\nexport function parseApiErrors(\n error: unknown,\n fallback?: string,\n): string | undefined {\n if (isApiLikeError(error)) {\n if (error.data) {\n const fieldErrors = extractFieldErrors(error.data);\n if (fieldErrors.length > 0) {\n return formatErrorDescription(fieldErrors);\n }\n }\n\n if (error.message) {\n return error.message;\n }\n } else if (error instanceof Error) {\n return error.message;\n }\n\n return fallback;\n}\n"],"mappings":";;;;;;;;;;;AAWA,SAAgB,gBAAgB,OAAuB;AACrD,QAAO,MACJ,QAAQ,MAAM,IAAI,CAClB,QAAQ,YAAY,MAAM,CAC1B,MAAM,IAAI,CACV,KAAK,SAAS,KAAK,OAAO,EAAE,CAAC,aAAa,GAAG,KAAK,MAAM,EAAE,CAAC,aAAa,CAAC,CACzE,KAAK,IAAI,CACT,MAAM;;;;;AAWX,SAAgB,eACd,OACyE;AACzE,KAAI,CAAC,SAAS,OAAO,UAAU,SAC7B,QAAO;CAGT,MAAM,MAAM;AACZ,QACE,OAAO,IAAI,WAAW,YACtB,UAAU,QACT,OAAO,IAAI,YAAY,YAAY,IAAI,YAAY,KAAA;;;;;AAOxD,SAAgB,mBAAmB,MAAmC;CACpE,MAAM,SAA6B,EAAE;AAErC,KAAI,CAAC,QAAQ,OAAO,SAAS,SAC3B,QAAO;CAGT,MAAM,WAAW;AAEjB,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,SAAS,CACjD,KAAI,MAAM,QAAQ,MAAM,IAAI,MAAM,SAAS,EACzC,QAAO,KAAK;EACV,OAAO,gBAAgB,IAAI;EAC3B,UAAU,MAAM,KAAK,SACnB,OAAO,SAAS,WAAW,OAAO,KAAK,UAAU,KAAK,CACvD;EACF,CAAC;UACO,OAAO,UAAU,YAAY,MAAM,SAAS,EACrD,QAAO,KAAK;EACV,OAAO,gBAAgB,IAAI;EAC3B,UAAU,CAAC,MAAM;EAClB,CAAC;UACO,SAAS,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,MAAM,CAC/C,oBAAmB,MAAM,CACjC,SAAS,gBAAgB;AACpC,SAAO,KAAK;GACV,OAAO,GAAG,gBAAgB,IAAI,CAAC,KAAK,YAAY;GAChD,UAAU,YAAY;GACvB,CAAC;GACF;AAIN,QAAO;;;;;AAMT,SAAgB,uBAAuB,QAAoC;AACzE,KAAI,OAAO,WAAW,EACpB,QAAO;AAGT,KAAI,OAAO,WAAW,GAAG;EACvB,MAAM,MAAM,OAAO;AACnB,MAAI,CAAC,IAAK,QAAO;EACjB,MAAM,UAAU,IAAI,SAAS,MAAM;AACnC,SAAO,GAAG,IAAI,MAAM,GAAG;;AAGzB,KAAI,OAAO,UAAU,EACnB,QAAO,OACJ,KAAK,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,SAAS,MAAM,eAAe,CACzD,KAAK,KAAK;CAGf,MAAM,QAAQ,OACX,MAAM,GAAG,EAAE,CACX,KAAK,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,SAAS,MAAM,eAAe,CACzD,KAAK,KAAK;CACb,MAAM,YAAY,OAAO,SAAS;AAClC,QAAO,GAAG,MAAM,WAAW,UAAU,QAAQ,cAAc,IAAI,UAAU;;;;;;;;;;;;;;;AAgB3E,SAAgB,eACd,OACA,UACoB;AACpB,KAAI,eAAe,MAAM,EAAE;AACzB,MAAI,MAAM,MAAM;GACd,MAAM,cAAc,mBAAmB,MAAM,KAAK;AAClD,OAAI,YAAY,SAAS,EACvB,QAAO,uBAAuB,YAAY;;AAI9C,MAAI,MAAM,QACR,QAAO,MAAM;YAEN,iBAAiB,MAC1B,QAAO,MAAM;AAGf,QAAO"}
@@ -90,4 +90,4 @@ Object.defineProperty(exports, "parseApiErrors", {
90
90
  }
91
91
  });
92
92
 
93
- //# sourceMappingURL=parse-api-errors-J6VflWm8.cjs.map
93
+ //# sourceMappingURL=parse-api-errors-pw_TZf_b.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-api-errors-J6VflWm8.cjs","names":[],"sources":["../../../platform/api-client-core/src/parse-api-errors.ts"],"sourcesContent":["/**\n * Framework-agnostic API error parsing utilities.\n *\n * Extracts structured field-level errors from API responses and formats\n * them into human-readable messages. Works with ApiError from this package\n * as well as any error object that has `status`, `data`, and optional `message`.\n */\n\n/**\n * Converts snake_case or camelCase field names to Title Case\n */\nexport function formatFieldName(field: string): string {\n return field\n .replace(/_/g, \" \")\n .replace(/([A-Z])/g, \" $1\")\n .split(\" \")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(\" \")\n .trim();\n}\n\nexport interface ParsedFieldError {\n field: string;\n messages: string[];\n}\n\n/**\n * Type guard to check if an error looks like an API error\n */\nexport function isApiLikeError(\n error: unknown,\n): error is { message: string | undefined; status: number; data: unknown } {\n if (!error || typeof error !== \"object\") {\n return false;\n }\n\n const err = error as Record<string, unknown>;\n return (\n typeof err.status === \"number\" &&\n \"data\" in err &&\n (typeof err.message === \"string\" || err.message === undefined)\n );\n}\n\n/**\n * Extracts field-level errors from API error data\n */\nexport function extractFieldErrors(data: unknown): ParsedFieldError[] {\n const errors: ParsedFieldError[] = [];\n\n if (!data || typeof data !== \"object\") {\n return errors;\n }\n\n const errorObj = data as Record<string, unknown>;\n\n for (const [key, value] of Object.entries(errorObj)) {\n if (Array.isArray(value) && value.length > 0) {\n errors.push({\n field: formatFieldName(key),\n messages: value.map((item) =>\n typeof item === \"string\" ? item : JSON.stringify(item),\n ),\n });\n } else if (typeof value === \"string\" && value.length > 0) {\n errors.push({\n field: formatFieldName(key),\n messages: [value],\n });\n } else if (value && typeof value === \"object\" && !Array.isArray(value)) {\n const nestedErrors = extractFieldErrors(value);\n nestedErrors.forEach((nestedError) => {\n errors.push({\n field: `${formatFieldName(key)} → ${nestedError.field}`,\n messages: nestedError.messages,\n });\n });\n }\n }\n\n return errors;\n}\n\n/**\n * Formats field errors into a readable description string\n */\nexport function formatErrorDescription(errors: ParsedFieldError[]): string {\n if (errors.length === 0) {\n return \"\";\n }\n\n if (errors.length === 1) {\n const err = errors[0];\n if (!err) return \"\";\n const message = err.messages[0] || \"is invalid\";\n return `${err.field} ${message}`;\n }\n\n if (errors.length <= 3) {\n return errors\n .map((e) => `${e.field} ${e.messages[0] || \"is invalid\"}`)\n .join(\"\\n\");\n }\n\n const shown = errors\n .slice(0, 3)\n .map((e) => `${e.field} ${e.messages[0] || \"is invalid\"}`)\n .join(\"\\n\");\n const remaining = errors.length - 3;\n return `${shown}\\n...and ${remaining} more ${remaining === 1 ? \"error\" : \"errors\"}`;\n}\n\n/**\n * Parses an error and returns a human-readable description string.\n *\n * Handles:\n * - API-like errors with structured field-level data\n * - API-like errors with a top-level message\n * - Standard Error instances\n * - Falls back to the provided fallback string\n *\n * @param error - The error to parse (ApiError, Error, or unknown)\n * @param fallback - Optional fallback description if error cannot be parsed\n * @returns A human-readable error description, or undefined if nothing could be extracted\n */\nexport function parseApiErrors(\n error: unknown,\n fallback?: string,\n): string | undefined {\n if (isApiLikeError(error)) {\n if (error.data) {\n const fieldErrors = extractFieldErrors(error.data);\n if (fieldErrors.length > 0) {\n return formatErrorDescription(fieldErrors);\n }\n }\n\n if (error.message) {\n return error.message;\n }\n } else if (error instanceof Error) {\n return error.message;\n }\n\n return fallback;\n}\n"],"mappings":";;;;;;;;;;;AAWA,SAAgB,gBAAgB,OAAuB;AACrD,QAAO,MACJ,QAAQ,MAAM,IAAI,CAClB,QAAQ,YAAY,MAAM,CAC1B,MAAM,IAAI,CACV,KAAK,SAAS,KAAK,OAAO,EAAE,CAAC,aAAa,GAAG,KAAK,MAAM,EAAE,CAAC,aAAa,CAAC,CACzE,KAAK,IAAI,CACT,MAAM;;;;;AAWX,SAAgB,eACd,OACyE;AACzE,KAAI,CAAC,SAAS,OAAO,UAAU,SAC7B,QAAO;CAGT,MAAM,MAAM;AACZ,QACE,OAAO,IAAI,WAAW,YACtB,UAAU,QACT,OAAO,IAAI,YAAY,YAAY,IAAI,YAAY,KAAA;;;;;AAOxD,SAAgB,mBAAmB,MAAmC;CACpE,MAAM,SAA6B,EAAE;AAErC,KAAI,CAAC,QAAQ,OAAO,SAAS,SAC3B,QAAO;CAGT,MAAM,WAAW;AAEjB,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,SAAS,CACjD,KAAI,MAAM,QAAQ,MAAM,IAAI,MAAM,SAAS,EACzC,QAAO,KAAK;EACV,OAAO,gBAAgB,IAAI;EAC3B,UAAU,MAAM,KAAK,SACnB,OAAO,SAAS,WAAW,OAAO,KAAK,UAAU,KAAK,CACvD;EACF,CAAC;UACO,OAAO,UAAU,YAAY,MAAM,SAAS,EACrD,QAAO,KAAK;EACV,OAAO,gBAAgB,IAAI;EAC3B,UAAU,CAAC,MAAM;EAClB,CAAC;UACO,SAAS,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,MAAM,CAC/C,oBAAmB,MAAM,CACjC,SAAS,gBAAgB;AACpC,SAAO,KAAK;GACV,OAAO,GAAG,gBAAgB,IAAI,CAAC,KAAK,YAAY;GAChD,UAAU,YAAY;GACvB,CAAC;GACF;AAIN,QAAO;;;;;AAMT,SAAgB,uBAAuB,QAAoC;AACzE,KAAI,OAAO,WAAW,EACpB,QAAO;AAGT,KAAI,OAAO,WAAW,GAAG;EACvB,MAAM,MAAM,OAAO;AACnB,MAAI,CAAC,IAAK,QAAO;EACjB,MAAM,UAAU,IAAI,SAAS,MAAM;AACnC,SAAO,GAAG,IAAI,MAAM,GAAG;;AAGzB,KAAI,OAAO,UAAU,EACnB,QAAO,OACJ,KAAK,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,SAAS,MAAM,eAAe,CACzD,KAAK,KAAK;CAGf,MAAM,QAAQ,OACX,MAAM,GAAG,EAAE,CACX,KAAK,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,SAAS,MAAM,eAAe,CACzD,KAAK,KAAK;CACb,MAAM,YAAY,OAAO,SAAS;AAClC,QAAO,GAAG,MAAM,WAAW,UAAU,QAAQ,cAAc,IAAI,UAAU;;;;;;;;;;;;;;;AAgB3E,SAAgB,eACd,OACA,UACoB;AACpB,KAAI,eAAe,MAAM,EAAE;AACzB,MAAI,MAAM,MAAM;GACd,MAAM,cAAc,mBAAmB,MAAM,KAAK;AAClD,OAAI,YAAY,SAAS,EACvB,QAAO,uBAAuB,YAAY;;AAI9C,MAAI,MAAM,QACR,QAAO,MAAM;YAEN,iBAAiB,MAC1B,QAAO,MAAM;AAGf,QAAO"}
1
+ {"version":3,"file":"parse-api-errors-pw_TZf_b.cjs","names":[],"sources":["../../../platform/api-client-core/src/parse-api-errors.ts"],"sourcesContent":["/**\n * Framework-agnostic API error parsing utilities.\n *\n * Extracts structured field-level errors from API responses and formats\n * them into human-readable messages. Works with ApiError from this package\n * as well as any error object that has `status`, `data`, and optional `message`.\n */\n\n/**\n * Converts snake_case or camelCase field names to Title Case\n */\nexport function formatFieldName(field: string): string {\n return field\n .replace(/_/g, \" \")\n .replace(/([A-Z])/g, \" $1\")\n .split(\" \")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(\" \")\n .trim();\n}\n\nexport interface ParsedFieldError {\n field: string;\n messages: string[];\n}\n\n/**\n * Type guard to check if an error looks like an API error\n */\nexport function isApiLikeError(\n error: unknown,\n): error is { message: string | undefined; status: number; data: unknown } {\n if (!error || typeof error !== \"object\") {\n return false;\n }\n\n const err = error as Record<string, unknown>;\n return (\n typeof err.status === \"number\" &&\n \"data\" in err &&\n (typeof err.message === \"string\" || err.message === undefined)\n );\n}\n\n/**\n * Extracts field-level errors from API error data\n */\nexport function extractFieldErrors(data: unknown): ParsedFieldError[] {\n const errors: ParsedFieldError[] = [];\n\n if (!data || typeof data !== \"object\") {\n return errors;\n }\n\n const errorObj = data as Record<string, unknown>;\n\n for (const [key, value] of Object.entries(errorObj)) {\n if (Array.isArray(value) && value.length > 0) {\n errors.push({\n field: formatFieldName(key),\n messages: value.map((item) =>\n typeof item === \"string\" ? item : JSON.stringify(item),\n ),\n });\n } else if (typeof value === \"string\" && value.length > 0) {\n errors.push({\n field: formatFieldName(key),\n messages: [value],\n });\n } else if (value && typeof value === \"object\" && !Array.isArray(value)) {\n const nestedErrors = extractFieldErrors(value);\n nestedErrors.forEach((nestedError) => {\n errors.push({\n field: `${formatFieldName(key)} → ${nestedError.field}`,\n messages: nestedError.messages,\n });\n });\n }\n }\n\n return errors;\n}\n\n/**\n * Formats field errors into a readable description string\n */\nexport function formatErrorDescription(errors: ParsedFieldError[]): string {\n if (errors.length === 0) {\n return \"\";\n }\n\n if (errors.length === 1) {\n const err = errors[0];\n if (!err) return \"\";\n const message = err.messages[0] || \"is invalid\";\n return `${err.field} ${message}`;\n }\n\n if (errors.length <= 3) {\n return errors\n .map((e) => `${e.field} ${e.messages[0] || \"is invalid\"}`)\n .join(\"\\n\");\n }\n\n const shown = errors\n .slice(0, 3)\n .map((e) => `${e.field} ${e.messages[0] || \"is invalid\"}`)\n .join(\"\\n\");\n const remaining = errors.length - 3;\n return `${shown}\\n...and ${remaining} more ${remaining === 1 ? \"error\" : \"errors\"}`;\n}\n\n/**\n * Parses an error and returns a human-readable description string.\n *\n * Handles:\n * - API-like errors with structured field-level data\n * - API-like errors with a top-level message\n * - Standard Error instances\n * - Falls back to the provided fallback string\n *\n * @param error - The error to parse (ApiError, Error, or unknown)\n * @param fallback - Optional fallback description if error cannot be parsed\n * @returns A human-readable error description, or undefined if nothing could be extracted\n */\nexport function parseApiErrors(\n error: unknown,\n fallback?: string,\n): string | undefined {\n if (isApiLikeError(error)) {\n if (error.data) {\n const fieldErrors = extractFieldErrors(error.data);\n if (fieldErrors.length > 0) {\n return formatErrorDescription(fieldErrors);\n }\n }\n\n if (error.message) {\n return error.message;\n }\n } else if (error instanceof Error) {\n return error.message;\n }\n\n return fallback;\n}\n"],"mappings":";;;;;;;;;;;AAWA,SAAgB,gBAAgB,OAAuB;AACrD,QAAO,MACJ,QAAQ,MAAM,IAAI,CAClB,QAAQ,YAAY,MAAM,CAC1B,MAAM,IAAI,CACV,KAAK,SAAS,KAAK,OAAO,EAAE,CAAC,aAAa,GAAG,KAAK,MAAM,EAAE,CAAC,aAAa,CAAC,CACzE,KAAK,IAAI,CACT,MAAM;;;;;AAWX,SAAgB,eACd,OACyE;AACzE,KAAI,CAAC,SAAS,OAAO,UAAU,SAC7B,QAAO;CAGT,MAAM,MAAM;AACZ,QACE,OAAO,IAAI,WAAW,YACtB,UAAU,QACT,OAAO,IAAI,YAAY,YAAY,IAAI,YAAY,KAAA;;;;;AAOxD,SAAgB,mBAAmB,MAAmC;CACpE,MAAM,SAA6B,EAAE;AAErC,KAAI,CAAC,QAAQ,OAAO,SAAS,SAC3B,QAAO;CAGT,MAAM,WAAW;AAEjB,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,SAAS,CACjD,KAAI,MAAM,QAAQ,MAAM,IAAI,MAAM,SAAS,EACzC,QAAO,KAAK;EACV,OAAO,gBAAgB,IAAI;EAC3B,UAAU,MAAM,KAAK,SACnB,OAAO,SAAS,WAAW,OAAO,KAAK,UAAU,KAAK,CACvD;EACF,CAAC;UACO,OAAO,UAAU,YAAY,MAAM,SAAS,EACrD,QAAO,KAAK;EACV,OAAO,gBAAgB,IAAI;EAC3B,UAAU,CAAC,MAAM;EAClB,CAAC;UACO,SAAS,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,MAAM,CAC/C,oBAAmB,MAAM,CACjC,SAAS,gBAAgB;AACpC,SAAO,KAAK;GACV,OAAO,GAAG,gBAAgB,IAAI,CAAC,KAAK,YAAY;GAChD,UAAU,YAAY;GACvB,CAAC;GACF;AAIN,QAAO;;;;;AAMT,SAAgB,uBAAuB,QAAoC;AACzE,KAAI,OAAO,WAAW,EACpB,QAAO;AAGT,KAAI,OAAO,WAAW,GAAG;EACvB,MAAM,MAAM,OAAO;AACnB,MAAI,CAAC,IAAK,QAAO;EACjB,MAAM,UAAU,IAAI,SAAS,MAAM;AACnC,SAAO,GAAG,IAAI,MAAM,GAAG;;AAGzB,KAAI,OAAO,UAAU,EACnB,QAAO,OACJ,KAAK,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,SAAS,MAAM,eAAe,CACzD,KAAK,KAAK;CAGf,MAAM,QAAQ,OACX,MAAM,GAAG,EAAE,CACX,KAAK,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,SAAS,MAAM,eAAe,CACzD,KAAK,KAAK;CACb,MAAM,YAAY,OAAO,SAAS;AAClC,QAAO,GAAG,MAAM,WAAW,UAAU,QAAQ,cAAc,IAAI,UAAU;;;;;;;;;;;;;;;AAgB3E,SAAgB,eACd,OACA,UACoB;AACpB,KAAI,eAAe,MAAM,EAAE;AACzB,MAAI,MAAM,MAAM;GACd,MAAM,cAAc,mBAAmB,MAAM,KAAK;AAClD,OAAI,YAAY,SAAS,EACvB,QAAO,uBAAuB,YAAY;;AAI9C,MAAI,MAAM,QACR,QAAO,MAAM;YAEN,iBAAiB,MAC1B,QAAO,MAAM;AAGf,QAAO"}
@@ -274,4 +274,4 @@ Object.defineProperty(exports, "subscriptions_update", {
274
274
  }
275
275
  });
276
276
 
277
- //# sourceMappingURL=portal_tenant-DTIfG6m4.cjs.map
277
+ //# sourceMappingURL=portal_tenant-CSxWYAH-.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"portal_tenant-DTIfG6m4.cjs","names":[],"sources":["../../../api-clients/portal-tenant/src/namespaces/portal_tenant.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 token (slug) with its line items.\n *\n * @param client - Fetch client instance\n * @param token - token\n */\nexport async function orders_show(\n client: FetchClient,\n token: string | number,\n): Promise<\n operations[\"orders_show\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.get(`/api/orders/${token}`);\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\n// ============================================================================\n// carts\n// ============================================================================\n\n/**\n * Claim a cart\n * Assigns the logged-in member as buyer_rep on an unclaimed FairShare cart. Any portal member (rep or customer) can claim. Returns an error if the cart has already been claimed.\n *\n * @param client - Fetch client instance\n * @param token - token\n */\nexport async function carts_claim(\n client: FetchClient,\n token: string | number,\n): Promise<\n operations[\"carts_claim\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.post(`/api/carts/${token}/claim`);\n}\n"],"mappings":";;;;;;;;AAuBA,eAAsB,aACpB,QAGA;AACA,QAAO,OAAO,IAAI,eAAe;;;;;;;;;AAUnC,eAAsB,eACpB,QACA,MAGA;AACA,QAAO,OAAO,MAAM,gBAAgB,KAAK;;;;;;;;;AAc3C,eAAsB,oBACpB,QAGA;AACA,QAAO,OAAO,IAAI,sBAAsB;;;;;;;;;AAc1C,eAAsB,YACpB,QACA,QAGA;AACA,QAAO,OAAO,IAAI,eAAe,OAAO;;;;;;;;;AAU1C,eAAsB,YACpB,QACA,OAGA;AACA,QAAO,OAAO,IAAI,eAAe,QAAQ;;;;;;;;;AAc3C,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;;;;;;;;;AAchD,eAAsB,mBACpB,QACA,QAGA;AACA,QAAO,OAAO,IAAI,sBAAsB,OAAO;;;;;;;;;AAUjD,eAAsB,mBACpB,QACA,OAGA;AACA,QAAO,OAAO,IAAI,sBAAsB,QAAQ;;;;;;;;;;AAWlD,eAAsB,qBACpB,QACA,OACA,MAGA;AACA,QAAO,OAAO,IAAI,sBAAsB,SAAS,KAAK;;;;;;;;;AAUxD,eAAsB,oBACpB,QACA,OAGA;AACA,QAAO,OAAO,KAAK,sBAAsB,MAAM,QAAQ;;;;;;;;;AAUzD,eAAsB,qBACpB,QACA,OAGA;AACA,QAAO,OAAO,KAAK,sBAAsB,MAAM,SAAS;;;;;;;;;AAU1D,eAAsB,mBACpB,QACA,OAGA;AACA,QAAO,OAAO,KAAK,sBAAsB,MAAM,oBAAoB;;;;;;;;;AAUrE,eAAsB,qBACpB,QACA,OAGA;AACA,QAAO,OAAO,KAAK,sBAAsB,MAAM,SAAS;;;;;;;;;AAU1D,eAAsB,yBACpB,QACA,OAGA;AACA,QAAO,OAAO,KAAK,sBAAsB,MAAM,aAAa"}
1
+ {"version":3,"file":"portal_tenant-CSxWYAH-.cjs","names":[],"sources":["../../../api-clients/portal-tenant/src/namespaces/portal_tenant.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 token (slug) with its line items.\n *\n * @param client - Fetch client instance\n * @param token - token\n */\nexport async function orders_show(\n client: FetchClient,\n token: string | number,\n): Promise<\n operations[\"orders_show\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.get(`/api/orders/${token}`);\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\n// ============================================================================\n// carts\n// ============================================================================\n\n/**\n * Claim a cart\n * Assigns the logged-in member as buyer_rep on an unclaimed FairShare cart. Any portal member (rep or customer) can claim. Returns an error if the cart has already been claimed.\n *\n * @param client - Fetch client instance\n * @param token - token\n */\nexport async function carts_claim(\n client: FetchClient,\n token: string | number,\n): Promise<\n operations[\"carts_claim\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.post(`/api/carts/${token}/claim`);\n}\n"],"mappings":";;;;;;;;AAuBA,eAAsB,aACpB,QAGA;AACA,QAAO,OAAO,IAAI,eAAe;;;;;;;;;AAUnC,eAAsB,eACpB,QACA,MAGA;AACA,QAAO,OAAO,MAAM,gBAAgB,KAAK;;;;;;;;;AAc3C,eAAsB,oBACpB,QAGA;AACA,QAAO,OAAO,IAAI,sBAAsB;;;;;;;;;AAc1C,eAAsB,YACpB,QACA,QAGA;AACA,QAAO,OAAO,IAAI,eAAe,OAAO;;;;;;;;;AAU1C,eAAsB,YACpB,QACA,OAGA;AACA,QAAO,OAAO,IAAI,eAAe,QAAQ;;;;;;;;;AAc3C,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;;;;;;;;;AAchD,eAAsB,mBACpB,QACA,QAGA;AACA,QAAO,OAAO,IAAI,sBAAsB,OAAO;;;;;;;;;AAUjD,eAAsB,mBACpB,QACA,OAGA;AACA,QAAO,OAAO,IAAI,sBAAsB,QAAQ;;;;;;;;;;AAWlD,eAAsB,qBACpB,QACA,OACA,MAGA;AACA,QAAO,OAAO,IAAI,sBAAsB,SAAS,KAAK;;;;;;;;;AAUxD,eAAsB,oBACpB,QACA,OAGA;AACA,QAAO,OAAO,KAAK,sBAAsB,MAAM,QAAQ;;;;;;;;;AAUzD,eAAsB,qBACpB,QACA,OAGA;AACA,QAAO,OAAO,KAAK,sBAAsB,MAAM,SAAS;;;;;;;;;AAU1D,eAAsB,mBACpB,QACA,OAGA;AACA,QAAO,OAAO,KAAK,sBAAsB,MAAM,oBAAoB;;;;;;;;;AAUrE,eAAsB,qBACpB,QACA,OAGA;AACA,QAAO,OAAO,KAAK,sBAAsB,MAAM,SAAS;;;;;;;;;AAU1D,eAAsB,yBACpB,QACA,OAGA;AACA,QAAO,OAAO,KAAK,sBAAsB,MAAM,aAAa"}
@@ -173,4 +173,4 @@ async function subscriptions_reactivate(client, token) {
173
173
  //#endregion
174
174
  export { subscriptions_update as _, orders_show as a, products_search as c, subscriptions_list as d, subscriptions_pause as f, subscriptions_skip as g, subscriptions_show as h, orders_list as i, products_show as l, subscriptions_resume as m, account_update as n, products_list as o, subscriptions_reactivate as p, app_definition_show as r, products_media_list as s, account_show as t, subscriptions_cancel as u };
175
175
 
176
- //# sourceMappingURL=portal_tenant-S57LBMo6.mjs.map
176
+ //# sourceMappingURL=portal_tenant-Taa7uJwV.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"portal_tenant-S57LBMo6.mjs","names":[],"sources":["../../../api-clients/portal-tenant/src/namespaces/portal_tenant.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 token (slug) with its line items.\n *\n * @param client - Fetch client instance\n * @param token - token\n */\nexport async function orders_show(\n client: FetchClient,\n token: string | number,\n): Promise<\n operations[\"orders_show\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.get(`/api/orders/${token}`);\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\n// ============================================================================\n// carts\n// ============================================================================\n\n/**\n * Claim a cart\n * Assigns the logged-in member as buyer_rep on an unclaimed FairShare cart. Any portal member (rep or customer) can claim. Returns an error if the cart has already been claimed.\n *\n * @param client - Fetch client instance\n * @param token - token\n */\nexport async function carts_claim(\n client: FetchClient,\n token: string | number,\n): Promise<\n operations[\"carts_claim\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.post(`/api/carts/${token}/claim`);\n}\n"],"mappings":";;;;;;;;AAuBA,eAAsB,aACpB,QAGA;AACA,QAAO,OAAO,IAAI,eAAe;;;;;;;;;AAUnC,eAAsB,eACpB,QACA,MAGA;AACA,QAAO,OAAO,MAAM,gBAAgB,KAAK;;;;;;;;;AAc3C,eAAsB,oBACpB,QAGA;AACA,QAAO,OAAO,IAAI,sBAAsB;;;;;;;;;AAc1C,eAAsB,YACpB,QACA,QAGA;AACA,QAAO,OAAO,IAAI,eAAe,OAAO;;;;;;;;;AAU1C,eAAsB,YACpB,QACA,OAGA;AACA,QAAO,OAAO,IAAI,eAAe,QAAQ;;;;;;;;;AAc3C,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;;;;;;;;;AAchD,eAAsB,mBACpB,QACA,QAGA;AACA,QAAO,OAAO,IAAI,sBAAsB,OAAO;;;;;;;;;AAUjD,eAAsB,mBACpB,QACA,OAGA;AACA,QAAO,OAAO,IAAI,sBAAsB,QAAQ;;;;;;;;;;AAWlD,eAAsB,qBACpB,QACA,OACA,MAGA;AACA,QAAO,OAAO,IAAI,sBAAsB,SAAS,KAAK;;;;;;;;;AAUxD,eAAsB,oBACpB,QACA,OAGA;AACA,QAAO,OAAO,KAAK,sBAAsB,MAAM,QAAQ;;;;;;;;;AAUzD,eAAsB,qBACpB,QACA,OAGA;AACA,QAAO,OAAO,KAAK,sBAAsB,MAAM,SAAS;;;;;;;;;AAU1D,eAAsB,mBACpB,QACA,OAGA;AACA,QAAO,OAAO,KAAK,sBAAsB,MAAM,oBAAoB;;;;;;;;;AAUrE,eAAsB,qBACpB,QACA,OAGA;AACA,QAAO,OAAO,KAAK,sBAAsB,MAAM,SAAS;;;;;;;;;AAU1D,eAAsB,yBACpB,QACA,OAGA;AACA,QAAO,OAAO,KAAK,sBAAsB,MAAM,aAAa"}
1
+ {"version":3,"file":"portal_tenant-Taa7uJwV.mjs","names":[],"sources":["../../../api-clients/portal-tenant/src/namespaces/portal_tenant.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 token (slug) with its line items.\n *\n * @param client - Fetch client instance\n * @param token - token\n */\nexport async function orders_show(\n client: FetchClient,\n token: string | number,\n): Promise<\n operations[\"orders_show\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.get(`/api/orders/${token}`);\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\n// ============================================================================\n// carts\n// ============================================================================\n\n/**\n * Claim a cart\n * Assigns the logged-in member as buyer_rep on an unclaimed FairShare cart. Any portal member (rep or customer) can claim. Returns an error if the cart has already been claimed.\n *\n * @param client - Fetch client instance\n * @param token - token\n */\nexport async function carts_claim(\n client: FetchClient,\n token: string | number,\n): Promise<\n operations[\"carts_claim\"][\"responses\"][200][\"content\"][\"application/json\"]\n> {\n return client.post(`/api/carts/${token}/claim`);\n}\n"],"mappings":";;;;;;;;AAuBA,eAAsB,aACpB,QAGA;AACA,QAAO,OAAO,IAAI,eAAe;;;;;;;;;AAUnC,eAAsB,eACpB,QACA,MAGA;AACA,QAAO,OAAO,MAAM,gBAAgB,KAAK;;;;;;;;;AAc3C,eAAsB,oBACpB,QAGA;AACA,QAAO,OAAO,IAAI,sBAAsB;;;;;;;;;AAc1C,eAAsB,YACpB,QACA,QAGA;AACA,QAAO,OAAO,IAAI,eAAe,OAAO;;;;;;;;;AAU1C,eAAsB,YACpB,QACA,OAGA;AACA,QAAO,OAAO,IAAI,eAAe,QAAQ;;;;;;;;;AAc3C,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;;;;;;;;;AAchD,eAAsB,mBACpB,QACA,QAGA;AACA,QAAO,OAAO,IAAI,sBAAsB,OAAO;;;;;;;;;AAUjD,eAAsB,mBACpB,QACA,OAGA;AACA,QAAO,OAAO,IAAI,sBAAsB,QAAQ;;;;;;;;;;AAWlD,eAAsB,qBACpB,QACA,OACA,MAGA;AACA,QAAO,OAAO,IAAI,sBAAsB,SAAS,KAAK;;;;;;;;;AAUxD,eAAsB,oBACpB,QACA,OAGA;AACA,QAAO,OAAO,KAAK,sBAAsB,MAAM,QAAQ;;;;;;;;;AAUzD,eAAsB,qBACpB,QACA,OAGA;AACA,QAAO,OAAO,KAAK,sBAAsB,MAAM,SAAS;;;;;;;;;AAU1D,eAAsB,mBACpB,QACA,OAGA;AACA,QAAO,OAAO,KAAK,sBAAsB,MAAM,oBAAoB;;;;;;;;;AAUrE,eAAsB,qBACpB,QACA,OAGA;AACA,QAAO,OAAO,KAAK,sBAAsB,MAAM,SAAS;;;;;;;;;AAU1D,eAAsB,yBACpB,QACA,OAGA;AACA,QAAO,OAAO,KAAK,sBAAsB,MAAM,aAAa"}
@@ -1,4 +1,4 @@
1
- import { c as products_search, l as products_show, o as products_list, s as products_media_list } from "./portal_tenant-S57LBMo6.mjs";
1
+ import { c as products_search, l as products_show, o as products_list, s as products_media_list } from "./portal_tenant-Taa7uJwV.mjs";
2
2
  import { n as usePortalTenantClient } from "./PortalTenantClientProvider-_VXOs0t4.mjs";
3
3
  import { useMemo } from "react";
4
4
  //#region ../../products/api-client/src/portal-tenant-adapter.ts
@@ -57,4 +57,4 @@ function usePortalProductsClient() {
57
57
  //#endregion
58
58
  export { usePortalProductsClient as t };
59
59
 
60
- //# sourceMappingURL=use-portal-products-client-DGYbhJLC.mjs.map
60
+ //# sourceMappingURL=use-portal-products-client-CChGsvZI.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-portal-products-client-DGYbhJLC.mjs","names":["portalTenant.products_list","portalTenant.products_show","portalTenant.products_search","portalTenant.products_media_list"],"sources":["../../../products/api-client/src/portal-tenant-adapter.ts","../src/products/use-portal-products-client.ts"],"sourcesContent":["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 });\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 });\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 { usePortalTenantClient } from \"../providers/PortalTenantClientProvider\";\n\nexport function usePortalProductsClient(): PortalProductsApi {\n const client = usePortalTenantClient();\n\n return useMemo(() => createPortalProductsApiAdapter(client), [client]);\n}\n"],"mappings":";;;;;;;;;;;;;;;AAkBA,SAAgB,+BACd,QACmB;AACnB,QAAO;EACL,cAAc,OAAO,WAAW;GAC9B,MAAM,WAAW,MAAMA,cAA2B,QAAQ,EACxD,gBAAgB,QAAQ,QACzB,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;IACzB,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;;;;ACxDH,SAAgB,0BAA6C;CAC3D,MAAM,SAAS,uBAAuB;AAEtC,QAAO,cAAc,+BAA+B,OAAO,EAAE,CAAC,OAAO,CAAC"}
1
+ {"version":3,"file":"use-portal-products-client-CChGsvZI.mjs","names":["portalTenant.products_list","portalTenant.products_show","portalTenant.products_search","portalTenant.products_media_list"],"sources":["../../../products/api-client/src/portal-tenant-adapter.ts","../src/products/use-portal-products-client.ts"],"sourcesContent":["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 });\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 });\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 { usePortalTenantClient } from \"../providers/PortalTenantClientProvider\";\n\nexport function usePortalProductsClient(): PortalProductsApi {\n const client = usePortalTenantClient();\n\n return useMemo(() => createPortalProductsApiAdapter(client), [client]);\n}\n"],"mappings":";;;;;;;;;;;;;;;AAkBA,SAAgB,+BACd,QACmB;AACnB,QAAO;EACL,cAAc,OAAO,WAAW;GAC9B,MAAM,WAAW,MAAMA,cAA2B,QAAQ,EACxD,gBAAgB,QAAQ,QACzB,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;IACzB,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;;;;ACxDH,SAAgB,0BAA6C;CAC3D,MAAM,SAAS,uBAAuB;AAEtC,QAAO,cAAc,+BAA+B,OAAO,EAAE,CAAC,OAAO,CAAC"}
@@ -1,5 +1,5 @@
1
1
  require("./chunk-9hOWP6kD.cjs");
2
- const require_portal_tenant = require("./portal_tenant-DTIfG6m4.cjs");
2
+ const require_portal_tenant = require("./portal_tenant-CSxWYAH-.cjs");
3
3
  const require_PortalTenantClientProvider = require("./PortalTenantClientProvider-C4Gnq5tJ.cjs");
4
4
  let react = require("react");
5
5
  //#region ../../products/api-client/src/portal-tenant-adapter.ts
@@ -63,4 +63,4 @@ Object.defineProperty(exports, "usePortalProductsClient", {
63
63
  }
64
64
  });
65
65
 
66
- //# sourceMappingURL=use-portal-products-client-CkehVVCL.cjs.map
66
+ //# sourceMappingURL=use-portal-products-client-mpdZuZyu.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-portal-products-client-CkehVVCL.cjs","names":["usePortalTenantClient"],"sources":["../../../products/api-client/src/portal-tenant-adapter.ts","../src/products/use-portal-products-client.ts"],"sourcesContent":["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 });\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 });\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 { usePortalTenantClient } from \"../providers/PortalTenantClientProvider\";\n\nexport function usePortalProductsClient(): PortalProductsApi {\n const client = usePortalTenantClient();\n\n return useMemo(() => createPortalProductsApiAdapter(client), [client]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAkBA,SAAgB,+BACd,QACmB;AACnB,QAAO;EACL,cAAc,OAAO,WAAW;GAC9B,MAAM,WAAW,MAAA,sBAAA,cAAiC,QAAQ,EACxD,gBAAgB,QAAQ,QACzB,CAAC;AACF,UAAO;IACL,UAAU,SAAS,YAAY,EAAE;IACjC,MAAM,SAAS;IAChB;;EAGH,YAAY,OAAO,OAAO;GACxB,MAAM,WAAW,MAAA,sBAAA,cAAiC,QAAQ,GAAG;AAC7D,UAAO;IACL,SAAS,SAAS,WAAW,EAAE;IAC/B,MAAM,SAAS;IAChB;;EAGH,gBAAgB,OAAO,OAAO,WAAW;GACvC,MAAM,WAAW,MAAA,sBAAA,gBAAmC,QAAQ;IAC1D,GAAG;IACH,gBAAgB,QAAQ;IACzB,CAAC;AACF,UAAO;IACL,UAAU,SAAS,YAAY,EAAE;IACjC,MAAM,SAAS;IAChB;;EAGH,iBAAiB,OAAO,cAAc;GACpC,MAAM,WAAW,MAAA,sBAAA,oBACf,QACA,UACD;AACD,UAAO;IACL,OAAO,SAAS,SAAS,EAAE;IAC3B,MAAM,SAAS;IAChB;;EAEJ;;;;ACxDH,SAAgB,0BAA6C;CAC3D,MAAM,SAASA,mCAAAA,uBAAuB;AAEtC,SAAA,GAAA,MAAA,eAAqB,+BAA+B,OAAO,EAAE,CAAC,OAAO,CAAC"}
1
+ {"version":3,"file":"use-portal-products-client-mpdZuZyu.cjs","names":["usePortalTenantClient"],"sources":["../../../products/api-client/src/portal-tenant-adapter.ts","../src/products/use-portal-products-client.ts"],"sourcesContent":["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 });\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 });\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 { usePortalTenantClient } from \"../providers/PortalTenantClientProvider\";\n\nexport function usePortalProductsClient(): PortalProductsApi {\n const client = usePortalTenantClient();\n\n return useMemo(() => createPortalProductsApiAdapter(client), [client]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAkBA,SAAgB,+BACd,QACmB;AACnB,QAAO;EACL,cAAc,OAAO,WAAW;GAC9B,MAAM,WAAW,MAAA,sBAAA,cAAiC,QAAQ,EACxD,gBAAgB,QAAQ,QACzB,CAAC;AACF,UAAO;IACL,UAAU,SAAS,YAAY,EAAE;IACjC,MAAM,SAAS;IAChB;;EAGH,YAAY,OAAO,OAAO;GACxB,MAAM,WAAW,MAAA,sBAAA,cAAiC,QAAQ,GAAG;AAC7D,UAAO;IACL,SAAS,SAAS,WAAW,EAAE;IAC/B,MAAM,SAAS;IAChB;;EAGH,gBAAgB,OAAO,OAAO,WAAW;GACvC,MAAM,WAAW,MAAA,sBAAA,gBAAmC,QAAQ;IAC1D,GAAG;IACH,gBAAgB,QAAQ;IACzB,CAAC;AACF,UAAO;IACL,UAAU,SAAS,YAAY,EAAE;IACjC,MAAM,SAAS;IAChB;;EAGH,iBAAiB,OAAO,cAAc;GACpC,MAAM,WAAW,MAAA,sBAAA,oBACf,QACA,UACD;AACD,UAAO;IACL,OAAO,SAAS,SAAS,EAAE;IAC3B,MAAM,SAAS;IAChB;;EAEJ;;;;ACxDH,SAAgB,0BAA6C;CAC3D,MAAM,SAASA,mCAAAA,uBAAuB;AAEtC,SAAA,GAAA,MAAA,eAAqB,+BAA+B,OAAO,EAAE,CAAC,OAAO,CAAC"}
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-9hOWP6kD.cjs");
2
- const require_FluidProvider = require("./FluidProvider-CRMe-Enf.cjs");
2
+ const require_FluidProvider = require("./FluidProvider-Bc-3uN7M.cjs");
3
3
  const require_PortalTenantClientProvider = require("./PortalTenantClientProvider-C4Gnq5tJ.cjs");
4
4
  const require_src = require("./src-Bm9zqmV3.cjs");
5
5
  const require_ScreenHeaderContext = require("./ScreenHeaderContext-DRIKmM2G.cjs");
@@ -7,7 +7,7 @@ const require_dist$3 = require("./dist-DBTvrTYG.cjs");
7
7
  const require_es = require("./es-D2KjfxgY.cjs");
8
8
  const require_SearchSort = require("./SearchSort-CZvjMXhS.cjs");
9
9
  const require_dist$4 = require("./dist-Dh18LTcb.cjs");
10
- const require_use_portal_products_client = require("./use-portal-products-client-CkehVVCL.cjs");
10
+ const require_use_portal_products_client = require("./use-portal-products-client-mpdZuZyu.cjs");
11
11
  const require_dist$5 = require("./dist-Mf7Sx86H.cjs");
12
12
  let react = require("react");
13
13
  react = require_chunk.__toESM(react);
@@ -9961,4 +9961,4 @@ Object.defineProperty(exports, "useSdkClient", {
9961
9961
  }
9962
9962
  });
9963
9963
 
9964
- //# sourceMappingURL=use-portal-shareables-api-BpQpcPcx.cjs.map
9964
+ //# sourceMappingURL=use-portal-shareables-api-CZ4ELYei.cjs.map