@scalemule/nextjs 0.0.10 → 0.0.11

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.js CHANGED
@@ -2851,7 +2851,7 @@ function useFeatureFlags(options = {}) {
2851
2851
  keys,
2852
2852
  enabled = true
2853
2853
  } = options;
2854
- const { client } = useScaleMule();
2854
+ const { client, publishableKey, gatewayUrl } = useScaleMule();
2855
2855
  const [flags, setFlags] = react.useState({});
2856
2856
  const [loading, setLoading] = react.useState(enabled);
2857
2857
  const [error, setError] = react.useState(null);
@@ -2868,7 +2868,25 @@ function useFeatureFlags(options = {}) {
2868
2868
  setLoading(true);
2869
2869
  try {
2870
2870
  const payload = keys && keys.length > 0 ? { flag_keys: keys, environment, context: contextRef.current } : { environment, context: contextRef.current };
2871
- const result = keys && keys.length > 0 ? await client.post("/v1/flags/evaluate/batch", payload) : await client.post("/v1/flags/evaluate/all", payload);
2871
+ const endpoint = keys && keys.length > 0 ? "/v1/flags/evaluate/batch" : "/v1/flags/evaluate/all";
2872
+ let result;
2873
+ if (publishableKey && gatewayUrl) {
2874
+ const response = await fetch(`${gatewayUrl}${endpoint}`, {
2875
+ method: "POST",
2876
+ headers: {
2877
+ "Content-Type": "application/json",
2878
+ "x-api-key": publishableKey
2879
+ },
2880
+ body: JSON.stringify(payload)
2881
+ });
2882
+ if (!response.ok) {
2883
+ throw new Error(`Flag evaluation failed: ${response.status}`);
2884
+ }
2885
+ const json = await response.json();
2886
+ result = json.data || json || {};
2887
+ } else {
2888
+ result = await client.post(endpoint, payload);
2889
+ }
2872
2890
  setFlags(result || {});
2873
2891
  setError(null);
2874
2892
  } catch (err) {
@@ -2876,7 +2894,7 @@ function useFeatureFlags(options = {}) {
2876
2894
  } finally {
2877
2895
  setLoading(false);
2878
2896
  }
2879
- }, [client, enabled, environment, keys, keysKey]);
2897
+ }, [client, enabled, environment, keys, keysKey, publishableKey, gatewayUrl]);
2880
2898
  react.useEffect(() => {
2881
2899
  void refresh();
2882
2900
  }, [refresh]);
package/dist/index.mjs CHANGED
@@ -2849,7 +2849,7 @@ function useFeatureFlags(options = {}) {
2849
2849
  keys,
2850
2850
  enabled = true
2851
2851
  } = options;
2852
- const { client } = useScaleMule();
2852
+ const { client, publishableKey, gatewayUrl } = useScaleMule();
2853
2853
  const [flags, setFlags] = useState({});
2854
2854
  const [loading, setLoading] = useState(enabled);
2855
2855
  const [error, setError] = useState(null);
@@ -2866,7 +2866,25 @@ function useFeatureFlags(options = {}) {
2866
2866
  setLoading(true);
2867
2867
  try {
2868
2868
  const payload = keys && keys.length > 0 ? { flag_keys: keys, environment, context: contextRef.current } : { environment, context: contextRef.current };
2869
- const result = keys && keys.length > 0 ? await client.post("/v1/flags/evaluate/batch", payload) : await client.post("/v1/flags/evaluate/all", payload);
2869
+ const endpoint = keys && keys.length > 0 ? "/v1/flags/evaluate/batch" : "/v1/flags/evaluate/all";
2870
+ let result;
2871
+ if (publishableKey && gatewayUrl) {
2872
+ const response = await fetch(`${gatewayUrl}${endpoint}`, {
2873
+ method: "POST",
2874
+ headers: {
2875
+ "Content-Type": "application/json",
2876
+ "x-api-key": publishableKey
2877
+ },
2878
+ body: JSON.stringify(payload)
2879
+ });
2880
+ if (!response.ok) {
2881
+ throw new Error(`Flag evaluation failed: ${response.status}`);
2882
+ }
2883
+ const json = await response.json();
2884
+ result = json.data || json || {};
2885
+ } else {
2886
+ result = await client.post(endpoint, payload);
2887
+ }
2870
2888
  setFlags(result || {});
2871
2889
  setError(null);
2872
2890
  } catch (err) {
@@ -2874,7 +2892,7 @@ function useFeatureFlags(options = {}) {
2874
2892
  } finally {
2875
2893
  setLoading(false);
2876
2894
  }
2877
- }, [client, enabled, environment, keys, keysKey]);
2895
+ }, [client, enabled, environment, keys, keysKey, publishableKey, gatewayUrl]);
2878
2896
  useEffect(() => {
2879
2897
  void refresh();
2880
2898
  }, [refresh]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scalemule/nextjs",
3
- "version": "0.0.10",
3
+ "version": "0.0.11",
4
4
  "description": "ScaleMule SDK for Next.js applications - authentication, storage, and user management",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",