@sanity/client 7.11.1 → 7.11.2-audience-decide.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -14
- package/dist/index.browser.cjs +49 -5
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.d.cts +30 -0
- package/dist/index.browser.d.ts +30 -0
- package/dist/index.browser.js +49 -5
- package/dist/index.browser.js.map +1 -1
- package/dist/index.cjs +50 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +30 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.js +50 -6
- package/dist/index.js.map +1 -1
- package/dist/stega.browser.d.cts +30 -0
- package/dist/stega.browser.d.ts +30 -0
- package/dist/stega.d.cts +30 -0
- package/dist/stega.d.ts +30 -0
- package/package.json +1 -1
- package/src/data/dataMethods.ts +44 -2
- package/src/data/decideResponseProcessor.ts +114 -0
- package/src/types.ts +32 -0
- package/umd/sanityClient.js +49 -5
- package/umd/sanityClient.min.js +2 -2
package/dist/index.cjs
CHANGED
|
@@ -682,6 +682,33 @@ function requestOptions(config2, overrides = {}) {
|
|
|
682
682
|
fetch: typeof overrides.fetch == "object" && typeof config2.fetch == "object" ? { ...config2.fetch, ...overrides.fetch } : overrides.fetch || config2.fetch
|
|
683
683
|
});
|
|
684
684
|
}
|
|
685
|
+
function isDecideField(value) {
|
|
686
|
+
return value != null && typeof value == "object" && !Array.isArray(value) && "default" in value && "conditions" in value && Array.isArray(value.conditions);
|
|
687
|
+
}
|
|
688
|
+
function resolveDecideField(field, decideParameters) {
|
|
689
|
+
const audience = decideParameters.audience, matchingCondition = field.conditions.find((condition) => Array.isArray(audience) ? audience.includes(condition.audience) : condition.audience === audience);
|
|
690
|
+
return matchingCondition ? matchingCondition.value : field.default;
|
|
691
|
+
}
|
|
692
|
+
function processObjectRecursively(obj, decideParameters) {
|
|
693
|
+
return obj == null || typeof obj != "object" ? obj : Array.isArray(obj) ? obj.map((item) => processObjectRecursively(item, decideParameters)) : Object.entries(obj).reduce((processed, [key, value]) => {
|
|
694
|
+
try {
|
|
695
|
+
isDecideField(value) ? processed[key] = resolveDecideField(value, decideParameters) : processed[key] = processObjectRecursively(value, decideParameters);
|
|
696
|
+
} catch (error) {
|
|
697
|
+
console.warn(`Failed to process decide field '${key}':`, error), processed[key] = value;
|
|
698
|
+
}
|
|
699
|
+
return processed;
|
|
700
|
+
}, {});
|
|
701
|
+
}
|
|
702
|
+
function processDecideFields(data, decideParameters) {
|
|
703
|
+
if (!decideParameters || !decideParameters.audience)
|
|
704
|
+
return data;
|
|
705
|
+
console.log("Starting decide field processing with parameters:", decideParameters);
|
|
706
|
+
try {
|
|
707
|
+
return processObjectRecursively(data, decideParameters);
|
|
708
|
+
} catch (error) {
|
|
709
|
+
return console.warn("Failed to process decide fields:", error), data;
|
|
710
|
+
}
|
|
711
|
+
}
|
|
685
712
|
const encodeQueryString = ({
|
|
686
713
|
query,
|
|
687
714
|
params = {},
|
|
@@ -706,7 +733,10 @@ function _fetch(client, httpRequest, _stega, query, _params = {}, options = {})
|
|
|
706
733
|
const stega = "stega" in options ? {
|
|
707
734
|
..._stega || {},
|
|
708
735
|
...typeof options.stega == "boolean" ? { enabled: options.stega } : options.stega || {}
|
|
709
|
-
} : _stega, params = stega.enabled ? stegaClean.stegaClean(_params) : _params, mapResponse = options.filterResponse === !1 ? (res) => res : (res) => res.result,
|
|
736
|
+
} : _stega, params = stega.enabled ? stegaClean.stegaClean(_params) : _params, mapResponse = options.filterResponse === !1 ? (res) => res : (res) => res.result, processDecideResponse = (response) => options.decideParameters && options.decideParameters.audience ? (console.log("Processing response with decideParameters:", {
|
|
737
|
+
audience: options.decideParameters.audience,
|
|
738
|
+
decideParameters: options.decideParameters
|
|
739
|
+
}), processDecideFields(response, options.decideParameters)) : response, { cache, next, ...opts } = {
|
|
710
740
|
// Opt out of setting a `signal` on an internal `fetch` if one isn't provided.
|
|
711
741
|
// This is necessary in React Server Components to avoid opting out of Request Memoization.
|
|
712
742
|
useAbortSignal: typeof options.signal < "u",
|
|
@@ -731,11 +761,11 @@ function _fetch(client, httpRequest, _stega, query, _params = {}, options = {})
|
|
|
731
761
|
),
|
|
732
762
|
operators.map(
|
|
733
763
|
([res, stegaEncodeSourceMap]) => {
|
|
734
|
-
const result = stegaEncodeSourceMap(res.result, res.resultSourceMap, stega);
|
|
735
|
-
return
|
|
764
|
+
const result = stegaEncodeSourceMap(res.result, res.resultSourceMap, stega), mappedResponse = mapResponse({ ...res, result });
|
|
765
|
+
return processDecideResponse(mappedResponse);
|
|
736
766
|
}
|
|
737
767
|
)
|
|
738
|
-
) : $request.pipe(operators.map(mapResponse));
|
|
768
|
+
) : $request.pipe(operators.map(mapResponse), operators.map(processDecideResponse));
|
|
739
769
|
}
|
|
740
770
|
function _getDocument(client, httpRequest, id, opts = {}) {
|
|
741
771
|
const docId = (() => {
|
|
@@ -888,6 +918,7 @@ function _dataRequest(client, httpRequest, endpoint, body, options = {}) {
|
|
|
888
918
|
tag,
|
|
889
919
|
returnQuery,
|
|
890
920
|
perspective: options.perspective,
|
|
921
|
+
decideParameters: options.decideParameters,
|
|
891
922
|
resultSourceMap: options.resultSourceMap,
|
|
892
923
|
lastLiveEventId: Array.isArray(lastLiveEventId) ? lastLiveEventId[0] : lastLiveEventId,
|
|
893
924
|
cacheMode,
|
|
@@ -932,7 +963,20 @@ function _requestObservable(client, httpRequest, options) {
|
|
|
932
963
|
perspective: Array.isArray(perspectiveOption) ? perspectiveOption.join(",") : perspectiveOption,
|
|
933
964
|
...options.query
|
|
934
965
|
}, (Array.isArray(perspectiveOption) && perspectiveOption.length > 0 || // previewDrafts was renamed to drafts, but keep for backwards compat
|
|
935
|
-
perspectiveOption === "previewDrafts" || perspectiveOption === "drafts") && useCdn && (useCdn = !1, config.printCdnPreviewDraftsWarning()))
|
|
966
|
+
perspectiveOption === "previewDrafts" || perspectiveOption === "drafts") && useCdn && (useCdn = !1, config.printCdnPreviewDraftsWarning()));
|
|
967
|
+
const decideParametersOption = options.decideParameters || config$1.decideParameters;
|
|
968
|
+
if (decideParametersOption && typeof decideParametersOption == "object") {
|
|
969
|
+
console.log("DecideParameters received:", decideParametersOption);
|
|
970
|
+
const decideQueryParams = Object.keys(decideParametersOption).reduce(
|
|
971
|
+
(acc, key) => (acc[`decide.${key}`] = decideParametersOption[key], acc),
|
|
972
|
+
{}
|
|
973
|
+
);
|
|
974
|
+
console.log("DecideParameters transformed to query params:", decideQueryParams), options.query = {
|
|
975
|
+
...options.query,
|
|
976
|
+
...decideQueryParams
|
|
977
|
+
};
|
|
978
|
+
}
|
|
979
|
+
options.lastLiveEventId && (options.query = { ...options.query, lastLiveEventId: options.lastLiveEventId }), options.returnQuery === !1 && (options.query = { returnQuery: "false", ...options.query }), useCdn && options.cacheMode == "noStale" && (options.query = { cacheMode: "noStale", ...options.query });
|
|
936
980
|
}
|
|
937
981
|
const reqOptions = requestOptions(
|
|
938
982
|
config$1,
|
|
@@ -2683,7 +2727,7 @@ function defineDeprecatedCreateClient(createClient2) {
|
|
|
2683
2727
|
return config.printNoDefaultExport(), createClient2(config$1);
|
|
2684
2728
|
};
|
|
2685
2729
|
}
|
|
2686
|
-
var name = "@sanity/client", version = "7.11.1";
|
|
2730
|
+
var name = "@sanity/client", version = "7.11.2-audience-decide.1";
|
|
2687
2731
|
const middleware = [
|
|
2688
2732
|
middleware$1.debug({ verbose: !0, namespace: "sanity:client" }),
|
|
2689
2733
|
middleware$1.headers({ "User-Agent": `${name} ${version}` }),
|