@priceos/react 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -111,7 +111,7 @@ function PriceOSProvider({ children, getBearerToken, backendUrl, logLevel }) {
111
111
  );
112
112
  }
113
113
  function useCustomer(options = {}) {
114
- const { errorOnNotFound = false, swr } = options;
114
+ const { enabled = true, errorOnNotFound = false, swr } = options;
115
115
  const { getBearerToken, backendUrl, logLevel = DEFAULT_LOG_LEVEL } = (0, import_react.useContext)(PriceOSContext);
116
116
  const fetcher = async (url) => {
117
117
  let bearerToken;
@@ -130,8 +130,9 @@ function useCustomer(options = {}) {
130
130
  });
131
131
  return requestCustomer(fetch, url, logLevel, errorOnNotFound, bearerToken);
132
132
  };
133
+ const key = enabled ? buildUrl(backendUrl ?? DEFAULT_BACKEND_URL) : null;
133
134
  const { data, error, isLoading, mutate } = (0, import_swr.default)(
134
- buildUrl(backendUrl ?? DEFAULT_BACKEND_URL),
135
+ key,
135
136
  fetcher,
136
137
  swr
137
138
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { createContext, createElement, useContext, type ReactNode } from \"react\";\nimport useSWR, { type SWRConfiguration } from \"swr\";\nimport type { GetCustomerResponse } from \"priceos\";\n\nexport type PriceOSLogLevel = \"none\" | \"error\" | \"warn\" | \"info\" | \"debug\";\n\nexport type UseCustomerOptions = {\n errorOnNotFound?: boolean;\n swr?: SWRConfiguration<GetCustomerResponse | null, Error>;\n};\n\nexport type PriceOSProviderProps = {\n children: ReactNode;\n getBearerToken?: () => Promise<string | null | undefined>;\n backendUrl?: string;\n logLevel?: PriceOSLogLevel;\n};\n\nexport type UseCustomerResult = {\n customer: GetCustomerResponse | null;\n error: Error | null;\n loading: boolean;\n refetch: () => Promise<void>;\n};\n\nconst DEFAULT_BACKEND_URL = \"/api/priceos\";\nconst DEFAULT_LOG_LEVEL: PriceOSLogLevel = \"error\";\nconst LOG_LEVEL_RANK: Record<Exclude<PriceOSLogLevel, \"none\">, number> = {\n error: 0,\n warn: 1,\n info: 2,\n debug: 3,\n};\nconst LOG_PREFIX = \"[priceos/react]\";\n\ntype PriceOSContextValue = {\n getBearerToken?: () => Promise<string | null | undefined>;\n backendUrl?: string;\n logLevel?: PriceOSLogLevel;\n};\n\nconst PriceOSContext = createContext<PriceOSContextValue>({});\n\nconst normalizeBaseUrl = (baseUrl: string) => baseUrl.replace(/\\/$/, \"\");\n\nconst buildUrl = (backendUrl: string) => {\n const normalizedBase = normalizeBaseUrl(backendUrl);\n return `${normalizedBase}/v1/customer`;\n};\n\nconst shouldLog = (currentLevel: PriceOSLogLevel, targetLevel: Exclude<PriceOSLogLevel, \"none\">) => {\n if (currentLevel === \"none\") return false;\n return LOG_LEVEL_RANK[targetLevel] <= LOG_LEVEL_RANK[currentLevel];\n};\n\nconst logMessage = (\n currentLevel: PriceOSLogLevel,\n level: Exclude<PriceOSLogLevel, \"none\">,\n message: string,\n details?: unknown\n) => {\n if (!shouldLog(currentLevel, level)) return;\n const logger =\n level === \"error\" ? console.error : level === \"warn\" ? console.warn : console.info;\n if (details === undefined) {\n logger(LOG_PREFIX, message);\n return;\n }\n logger(LOG_PREFIX, message, details);\n};\n\nconst requestCustomer = async (\n fetchFn: typeof fetch,\n url: string,\n logLevel: PriceOSLogLevel,\n errorOnNotFound: boolean,\n bearerToken?: string | null\n): Promise<GetCustomerResponse | null> => {\n logMessage(logLevel, \"debug\", \"Requesting customer\", { url, hasBearerToken: Boolean(bearerToken) });\n const headers = bearerToken ? { Authorization: `Bearer ${bearerToken}` } : undefined;\n const response = await fetchFn(url, headers ? { headers } : undefined);\n logMessage(logLevel, \"info\", \"Customer request completed\", { url, status: response.status });\n const text = await response.text();\n let data: unknown = null;\n let parseFailed = false;\n if (text) {\n try {\n data = JSON.parse(text) as unknown;\n } catch {\n parseFailed = true;\n logMessage(logLevel, \"warn\", \"Customer response is not JSON\", {\n url,\n status: response.status,\n bodyPreview: text.slice(0, 300),\n });\n }\n }\n if (!response.ok) {\n if (response.status === 404 && !errorOnNotFound) {\n logMessage(logLevel, \"info\", \"Customer not found\", { url, status: response.status });\n return null;\n }\n const message =\n !parseFailed && data && typeof data === \"object\" && \"error\" in data\n ? String((data as { error?: unknown }).error)\n : text || response.statusText;\n logMessage(logLevel, \"error\", \"Customer request failed\", {\n url,\n status: response.status,\n message,\n });\n throw new Error(message || \"Request failed\");\n }\n if (parseFailed) {\n throw new Error(\"Invalid JSON response\");\n }\n logMessage(logLevel, \"debug\", \"Customer request succeeded\", { url, hasCustomer: Boolean(data) });\n return data as GetCustomerResponse | null;\n};\n\nexport function PriceOSProvider({ children, getBearerToken, backendUrl, logLevel }: PriceOSProviderProps) {\n return createElement(\n PriceOSContext.Provider,\n { value: { getBearerToken, backendUrl, logLevel } },\n children\n );\n}\n\nexport function useCustomer(options: UseCustomerOptions = {}): UseCustomerResult {\n const { errorOnNotFound = false, swr } = options;\n const { getBearerToken, backendUrl, logLevel = DEFAULT_LOG_LEVEL } = useContext(PriceOSContext);\n const fetcher = async (url: string) => {\n let bearerToken: string | null | undefined;\n try {\n bearerToken = getBearerToken ? await getBearerToken() : undefined;\n } catch (error) {\n logMessage(logLevel, \"error\", \"Failed to resolve bearer token\", {\n url,\n error: error instanceof Error ? error.message : String(error),\n });\n throw error;\n }\n logMessage(logLevel, \"debug\", \"Resolved bearer token\", {\n url,\n hasBearerToken: Boolean(bearerToken),\n });\n return requestCustomer(fetch, url, logLevel, errorOnNotFound, bearerToken);\n };\n const { data, error, isLoading, mutate } = useSWR(\n buildUrl(backendUrl ?? DEFAULT_BACKEND_URL),\n fetcher,\n swr\n );\n\n return {\n customer: data ?? null,\n error,\n loading: isLoading,\n refetch: async () => {\n await mutate();\n },\n };\n}\n"],"mappings":"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","names":["error","useSWR"]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { createContext, createElement, useContext, type ReactNode } from \"react\";\nimport useSWR, { type SWRConfiguration } from \"swr\";\nimport type { GetCustomerResponse } from \"priceos\";\n\nexport type PriceOSLogLevel = \"none\" | \"error\" | \"warn\" | \"info\" | \"debug\";\n\nexport type UseCustomerOptions = {\n enabled?: boolean;\n errorOnNotFound?: boolean;\n swr?: SWRConfiguration<GetCustomerResponse | null, Error>;\n};\n\nexport type PriceOSProviderProps = {\n children: ReactNode;\n getBearerToken?: () => Promise<string | null | undefined>;\n backendUrl?: string;\n logLevel?: PriceOSLogLevel;\n};\n\nexport type UseCustomerResult = {\n customer: GetCustomerResponse | null;\n error: Error | null;\n loading: boolean;\n refetch: () => Promise<void>;\n};\n\nconst DEFAULT_BACKEND_URL = \"/api/priceos\";\nconst DEFAULT_LOG_LEVEL: PriceOSLogLevel = \"error\";\nconst LOG_LEVEL_RANK: Record<Exclude<PriceOSLogLevel, \"none\">, number> = {\n error: 0,\n warn: 1,\n info: 2,\n debug: 3,\n};\nconst LOG_PREFIX = \"[priceos/react]\";\n\ntype PriceOSContextValue = {\n getBearerToken?: () => Promise<string | null | undefined>;\n backendUrl?: string;\n logLevel?: PriceOSLogLevel;\n};\n\nconst PriceOSContext = createContext<PriceOSContextValue>({});\n\nconst normalizeBaseUrl = (baseUrl: string) => baseUrl.replace(/\\/$/, \"\");\n\nconst buildUrl = (backendUrl: string) => {\n const normalizedBase = normalizeBaseUrl(backendUrl);\n return `${normalizedBase}/v1/customer`;\n};\n\nconst shouldLog = (currentLevel: PriceOSLogLevel, targetLevel: Exclude<PriceOSLogLevel, \"none\">) => {\n if (currentLevel === \"none\") return false;\n return LOG_LEVEL_RANK[targetLevel] <= LOG_LEVEL_RANK[currentLevel];\n};\n\nconst logMessage = (\n currentLevel: PriceOSLogLevel,\n level: Exclude<PriceOSLogLevel, \"none\">,\n message: string,\n details?: unknown\n) => {\n if (!shouldLog(currentLevel, level)) return;\n const logger =\n level === \"error\" ? console.error : level === \"warn\" ? console.warn : console.info;\n if (details === undefined) {\n logger(LOG_PREFIX, message);\n return;\n }\n logger(LOG_PREFIX, message, details);\n};\n\nconst requestCustomer = async (\n fetchFn: typeof fetch,\n url: string,\n logLevel: PriceOSLogLevel,\n errorOnNotFound: boolean,\n bearerToken?: string | null\n): Promise<GetCustomerResponse | null> => {\n logMessage(logLevel, \"debug\", \"Requesting customer\", { url, hasBearerToken: Boolean(bearerToken) });\n const headers = bearerToken ? { Authorization: `Bearer ${bearerToken}` } : undefined;\n const response = await fetchFn(url, headers ? { headers } : undefined);\n logMessage(logLevel, \"info\", \"Customer request completed\", { url, status: response.status });\n const text = await response.text();\n let data: unknown = null;\n let parseFailed = false;\n if (text) {\n try {\n data = JSON.parse(text) as unknown;\n } catch {\n parseFailed = true;\n logMessage(logLevel, \"warn\", \"Customer response is not JSON\", {\n url,\n status: response.status,\n bodyPreview: text.slice(0, 300),\n });\n }\n }\n if (!response.ok) {\n if (response.status === 404 && !errorOnNotFound) {\n logMessage(logLevel, \"info\", \"Customer not found\", { url, status: response.status });\n return null;\n }\n const message =\n !parseFailed && data && typeof data === \"object\" && \"error\" in data\n ? String((data as { error?: unknown }).error)\n : text || response.statusText;\n logMessage(logLevel, \"error\", \"Customer request failed\", {\n url,\n status: response.status,\n message,\n });\n throw new Error(message || \"Request failed\");\n }\n if (parseFailed) {\n throw new Error(\"Invalid JSON response\");\n }\n logMessage(logLevel, \"debug\", \"Customer request succeeded\", { url, hasCustomer: Boolean(data) });\n return data as GetCustomerResponse | null;\n};\n\nexport function PriceOSProvider({ children, getBearerToken, backendUrl, logLevel }: PriceOSProviderProps) {\n return createElement(\n PriceOSContext.Provider,\n { value: { getBearerToken, backendUrl, logLevel } },\n children\n );\n}\n\nexport function useCustomer(options: UseCustomerOptions = {}): UseCustomerResult {\n const { enabled = true, errorOnNotFound = false, swr } = options;\n const { getBearerToken, backendUrl, logLevel = DEFAULT_LOG_LEVEL } = useContext(PriceOSContext);\n const fetcher = async (url: string) => {\n let bearerToken: string | null | undefined;\n try {\n bearerToken = getBearerToken ? await getBearerToken() : undefined;\n } catch (error) {\n logMessage(logLevel, \"error\", \"Failed to resolve bearer token\", {\n url,\n error: error instanceof Error ? error.message : String(error),\n });\n throw error;\n }\n logMessage(logLevel, \"debug\", \"Resolved bearer token\", {\n url,\n hasBearerToken: Boolean(bearerToken),\n });\n return requestCustomer(fetch, url, logLevel, errorOnNotFound, bearerToken);\n };\n const key = enabled ? buildUrl(backendUrl ?? DEFAULT_BACKEND_URL) : null;\n const { data, error, isLoading, mutate } = useSWR(\n key,\n fetcher,\n swr\n );\n\n return {\n customer: data ?? null,\n error,\n loading: isLoading,\n refetch: async () => {\n await mutate();\n },\n };\n}\n"],"mappings":"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","names":["error","useSWR"]}
package/dist/index.d.cts CHANGED
@@ -5,6 +5,7 @@ import { GetCustomerResponse } from 'priceos';
5
5
 
6
6
  type PriceOSLogLevel = "none" | "error" | "warn" | "info" | "debug";
7
7
  type UseCustomerOptions = {
8
+ enabled?: boolean;
8
9
  errorOnNotFound?: boolean;
9
10
  swr?: SWRConfiguration<GetCustomerResponse | null, Error>;
10
11
  };
package/dist/index.d.ts CHANGED
@@ -5,6 +5,7 @@ import { GetCustomerResponse } from 'priceos';
5
5
 
6
6
  type PriceOSLogLevel = "none" | "error" | "warn" | "info" | "debug";
7
7
  type UseCustomerOptions = {
8
+ enabled?: boolean;
8
9
  errorOnNotFound?: boolean;
9
10
  swr?: SWRConfiguration<GetCustomerResponse | null, Error>;
10
11
  };
package/dist/index.js CHANGED
@@ -76,7 +76,7 @@ function PriceOSProvider({ children, getBearerToken, backendUrl, logLevel }) {
76
76
  );
77
77
  }
78
78
  function useCustomer(options = {}) {
79
- const { errorOnNotFound = false, swr } = options;
79
+ const { enabled = true, errorOnNotFound = false, swr } = options;
80
80
  const { getBearerToken, backendUrl, logLevel = DEFAULT_LOG_LEVEL } = useContext(PriceOSContext);
81
81
  const fetcher = async (url) => {
82
82
  let bearerToken;
@@ -95,8 +95,9 @@ function useCustomer(options = {}) {
95
95
  });
96
96
  return requestCustomer(fetch, url, logLevel, errorOnNotFound, bearerToken);
97
97
  };
98
+ const key = enabled ? buildUrl(backendUrl ?? DEFAULT_BACKEND_URL) : null;
98
99
  const { data, error, isLoading, mutate } = useSWR(
99
- buildUrl(backendUrl ?? DEFAULT_BACKEND_URL),
100
+ key,
100
101
  fetcher,
101
102
  swr
102
103
  );
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { createContext, createElement, useContext, type ReactNode } from \"react\";\nimport useSWR, { type SWRConfiguration } from \"swr\";\nimport type { GetCustomerResponse } from \"priceos\";\n\nexport type PriceOSLogLevel = \"none\" | \"error\" | \"warn\" | \"info\" | \"debug\";\n\nexport type UseCustomerOptions = {\n errorOnNotFound?: boolean;\n swr?: SWRConfiguration<GetCustomerResponse | null, Error>;\n};\n\nexport type PriceOSProviderProps = {\n children: ReactNode;\n getBearerToken?: () => Promise<string | null | undefined>;\n backendUrl?: string;\n logLevel?: PriceOSLogLevel;\n};\n\nexport type UseCustomerResult = {\n customer: GetCustomerResponse | null;\n error: Error | null;\n loading: boolean;\n refetch: () => Promise<void>;\n};\n\nconst DEFAULT_BACKEND_URL = \"/api/priceos\";\nconst DEFAULT_LOG_LEVEL: PriceOSLogLevel = \"error\";\nconst LOG_LEVEL_RANK: Record<Exclude<PriceOSLogLevel, \"none\">, number> = {\n error: 0,\n warn: 1,\n info: 2,\n debug: 3,\n};\nconst LOG_PREFIX = \"[priceos/react]\";\n\ntype PriceOSContextValue = {\n getBearerToken?: () => Promise<string | null | undefined>;\n backendUrl?: string;\n logLevel?: PriceOSLogLevel;\n};\n\nconst PriceOSContext = createContext<PriceOSContextValue>({});\n\nconst normalizeBaseUrl = (baseUrl: string) => baseUrl.replace(/\\/$/, \"\");\n\nconst buildUrl = (backendUrl: string) => {\n const normalizedBase = normalizeBaseUrl(backendUrl);\n return `${normalizedBase}/v1/customer`;\n};\n\nconst shouldLog = (currentLevel: PriceOSLogLevel, targetLevel: Exclude<PriceOSLogLevel, \"none\">) => {\n if (currentLevel === \"none\") return false;\n return LOG_LEVEL_RANK[targetLevel] <= LOG_LEVEL_RANK[currentLevel];\n};\n\nconst logMessage = (\n currentLevel: PriceOSLogLevel,\n level: Exclude<PriceOSLogLevel, \"none\">,\n message: string,\n details?: unknown\n) => {\n if (!shouldLog(currentLevel, level)) return;\n const logger =\n level === \"error\" ? console.error : level === \"warn\" ? console.warn : console.info;\n if (details === undefined) {\n logger(LOG_PREFIX, message);\n return;\n }\n logger(LOG_PREFIX, message, details);\n};\n\nconst requestCustomer = async (\n fetchFn: typeof fetch,\n url: string,\n logLevel: PriceOSLogLevel,\n errorOnNotFound: boolean,\n bearerToken?: string | null\n): Promise<GetCustomerResponse | null> => {\n logMessage(logLevel, \"debug\", \"Requesting customer\", { url, hasBearerToken: Boolean(bearerToken) });\n const headers = bearerToken ? { Authorization: `Bearer ${bearerToken}` } : undefined;\n const response = await fetchFn(url, headers ? { headers } : undefined);\n logMessage(logLevel, \"info\", \"Customer request completed\", { url, status: response.status });\n const text = await response.text();\n let data: unknown = null;\n let parseFailed = false;\n if (text) {\n try {\n data = JSON.parse(text) as unknown;\n } catch {\n parseFailed = true;\n logMessage(logLevel, \"warn\", \"Customer response is not JSON\", {\n url,\n status: response.status,\n bodyPreview: text.slice(0, 300),\n });\n }\n }\n if (!response.ok) {\n if (response.status === 404 && !errorOnNotFound) {\n logMessage(logLevel, \"info\", \"Customer not found\", { url, status: response.status });\n return null;\n }\n const message =\n !parseFailed && data && typeof data === \"object\" && \"error\" in data\n ? String((data as { error?: unknown }).error)\n : text || response.statusText;\n logMessage(logLevel, \"error\", \"Customer request failed\", {\n url,\n status: response.status,\n message,\n });\n throw new Error(message || \"Request failed\");\n }\n if (parseFailed) {\n throw new Error(\"Invalid JSON response\");\n }\n logMessage(logLevel, \"debug\", \"Customer request succeeded\", { url, hasCustomer: Boolean(data) });\n return data as GetCustomerResponse | null;\n};\n\nexport function PriceOSProvider({ children, getBearerToken, backendUrl, logLevel }: PriceOSProviderProps) {\n return createElement(\n PriceOSContext.Provider,\n { value: { getBearerToken, backendUrl, logLevel } },\n children\n );\n}\n\nexport function useCustomer(options: UseCustomerOptions = {}): UseCustomerResult {\n const { errorOnNotFound = false, swr } = options;\n const { getBearerToken, backendUrl, logLevel = DEFAULT_LOG_LEVEL } = useContext(PriceOSContext);\n const fetcher = async (url: string) => {\n let bearerToken: string | null | undefined;\n try {\n bearerToken = getBearerToken ? await getBearerToken() : undefined;\n } catch (error) {\n logMessage(logLevel, \"error\", \"Failed to resolve bearer token\", {\n url,\n error: error instanceof Error ? error.message : String(error),\n });\n throw error;\n }\n logMessage(logLevel, \"debug\", \"Resolved bearer token\", {\n url,\n hasBearerToken: Boolean(bearerToken),\n });\n return requestCustomer(fetch, url, logLevel, errorOnNotFound, bearerToken);\n };\n const { data, error, isLoading, mutate } = useSWR(\n buildUrl(backendUrl ?? DEFAULT_BACKEND_URL),\n fetcher,\n swr\n );\n\n return {\n customer: data ?? null,\n error,\n loading: isLoading,\n refetch: async () => {\n await mutate();\n },\n };\n}\n"],"mappings":"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","names":["error"]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { createContext, createElement, useContext, type ReactNode } from \"react\";\nimport useSWR, { type SWRConfiguration } from \"swr\";\nimport type { GetCustomerResponse } from \"priceos\";\n\nexport type PriceOSLogLevel = \"none\" | \"error\" | \"warn\" | \"info\" | \"debug\";\n\nexport type UseCustomerOptions = {\n enabled?: boolean;\n errorOnNotFound?: boolean;\n swr?: SWRConfiguration<GetCustomerResponse | null, Error>;\n};\n\nexport type PriceOSProviderProps = {\n children: ReactNode;\n getBearerToken?: () => Promise<string | null | undefined>;\n backendUrl?: string;\n logLevel?: PriceOSLogLevel;\n};\n\nexport type UseCustomerResult = {\n customer: GetCustomerResponse | null;\n error: Error | null;\n loading: boolean;\n refetch: () => Promise<void>;\n};\n\nconst DEFAULT_BACKEND_URL = \"/api/priceos\";\nconst DEFAULT_LOG_LEVEL: PriceOSLogLevel = \"error\";\nconst LOG_LEVEL_RANK: Record<Exclude<PriceOSLogLevel, \"none\">, number> = {\n error: 0,\n warn: 1,\n info: 2,\n debug: 3,\n};\nconst LOG_PREFIX = \"[priceos/react]\";\n\ntype PriceOSContextValue = {\n getBearerToken?: () => Promise<string | null | undefined>;\n backendUrl?: string;\n logLevel?: PriceOSLogLevel;\n};\n\nconst PriceOSContext = createContext<PriceOSContextValue>({});\n\nconst normalizeBaseUrl = (baseUrl: string) => baseUrl.replace(/\\/$/, \"\");\n\nconst buildUrl = (backendUrl: string) => {\n const normalizedBase = normalizeBaseUrl(backendUrl);\n return `${normalizedBase}/v1/customer`;\n};\n\nconst shouldLog = (currentLevel: PriceOSLogLevel, targetLevel: Exclude<PriceOSLogLevel, \"none\">) => {\n if (currentLevel === \"none\") return false;\n return LOG_LEVEL_RANK[targetLevel] <= LOG_LEVEL_RANK[currentLevel];\n};\n\nconst logMessage = (\n currentLevel: PriceOSLogLevel,\n level: Exclude<PriceOSLogLevel, \"none\">,\n message: string,\n details?: unknown\n) => {\n if (!shouldLog(currentLevel, level)) return;\n const logger =\n level === \"error\" ? console.error : level === \"warn\" ? console.warn : console.info;\n if (details === undefined) {\n logger(LOG_PREFIX, message);\n return;\n }\n logger(LOG_PREFIX, message, details);\n};\n\nconst requestCustomer = async (\n fetchFn: typeof fetch,\n url: string,\n logLevel: PriceOSLogLevel,\n errorOnNotFound: boolean,\n bearerToken?: string | null\n): Promise<GetCustomerResponse | null> => {\n logMessage(logLevel, \"debug\", \"Requesting customer\", { url, hasBearerToken: Boolean(bearerToken) });\n const headers = bearerToken ? { Authorization: `Bearer ${bearerToken}` } : undefined;\n const response = await fetchFn(url, headers ? { headers } : undefined);\n logMessage(logLevel, \"info\", \"Customer request completed\", { url, status: response.status });\n const text = await response.text();\n let data: unknown = null;\n let parseFailed = false;\n if (text) {\n try {\n data = JSON.parse(text) as unknown;\n } catch {\n parseFailed = true;\n logMessage(logLevel, \"warn\", \"Customer response is not JSON\", {\n url,\n status: response.status,\n bodyPreview: text.slice(0, 300),\n });\n }\n }\n if (!response.ok) {\n if (response.status === 404 && !errorOnNotFound) {\n logMessage(logLevel, \"info\", \"Customer not found\", { url, status: response.status });\n return null;\n }\n const message =\n !parseFailed && data && typeof data === \"object\" && \"error\" in data\n ? String((data as { error?: unknown }).error)\n : text || response.statusText;\n logMessage(logLevel, \"error\", \"Customer request failed\", {\n url,\n status: response.status,\n message,\n });\n throw new Error(message || \"Request failed\");\n }\n if (parseFailed) {\n throw new Error(\"Invalid JSON response\");\n }\n logMessage(logLevel, \"debug\", \"Customer request succeeded\", { url, hasCustomer: Boolean(data) });\n return data as GetCustomerResponse | null;\n};\n\nexport function PriceOSProvider({ children, getBearerToken, backendUrl, logLevel }: PriceOSProviderProps) {\n return createElement(\n PriceOSContext.Provider,\n { value: { getBearerToken, backendUrl, logLevel } },\n children\n );\n}\n\nexport function useCustomer(options: UseCustomerOptions = {}): UseCustomerResult {\n const { enabled = true, errorOnNotFound = false, swr } = options;\n const { getBearerToken, backendUrl, logLevel = DEFAULT_LOG_LEVEL } = useContext(PriceOSContext);\n const fetcher = async (url: string) => {\n let bearerToken: string | null | undefined;\n try {\n bearerToken = getBearerToken ? await getBearerToken() : undefined;\n } catch (error) {\n logMessage(logLevel, \"error\", \"Failed to resolve bearer token\", {\n url,\n error: error instanceof Error ? error.message : String(error),\n });\n throw error;\n }\n logMessage(logLevel, \"debug\", \"Resolved bearer token\", {\n url,\n hasBearerToken: Boolean(bearerToken),\n });\n return requestCustomer(fetch, url, logLevel, errorOnNotFound, bearerToken);\n };\n const key = enabled ? buildUrl(backendUrl ?? DEFAULT_BACKEND_URL) : null;\n const { data, error, isLoading, mutate } = useSWR(\n key,\n fetcher,\n swr\n );\n\n return {\n customer: data ?? null,\n error,\n loading: isLoading,\n refetch: async () => {\n await mutate();\n },\n };\n}\n"],"mappings":"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","names":["error"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@priceos/react",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",