Handle pasted Scattermind payload wrappers
This commit is contained in:
@@ -587,6 +587,11 @@ function looksLikeRankPayload(value = {}) {
|
||||
|| value.concept_map_json
|
||||
|| value.buildOrderPreview
|
||||
|| value.build_order_preview
|
||||
|| value.payload
|
||||
|| value.rankPayload
|
||||
|| value.rank_payload
|
||||
|| value.scattermindPayload
|
||||
|| value.scattermind_payload
|
||||
|| value.opening_reflection
|
||||
|| value.restated_idea
|
||||
|| value.ideaText
|
||||
@@ -597,6 +602,10 @@ function looksLikeRankPayload(value = {}) {
|
||||
|| Array.isArray(value.recommended_actions)
|
||||
|| Array.isArray(value.suggestedActions)
|
||||
|| Array.isArray(value.suggested_actions)
|
||||
|| Array.isArray(value.nextSteps)
|
||||
|| Array.isArray(value.next_steps)
|
||||
|| Array.isArray(value.recommendedNextSteps)
|
||||
|| Array.isArray(value.recommended_next_steps)
|
||||
|| Array.isArray(value.nextActions)
|
||||
|| Array.isArray(value.next_actions)
|
||||
|| Array.isArray(value.next48Hours)
|
||||
@@ -666,6 +675,24 @@ function looksLikeRankPayload(value = {}) {
|
||||
);
|
||||
}
|
||||
|
||||
function payloadEnvelopeFrom(input = {}) {
|
||||
const body = objectFrom(input);
|
||||
return objectFrom(
|
||||
body.payload
|
||||
|| body.rankPayload
|
||||
|| body.rank_payload
|
||||
|| body.scattermindPayload
|
||||
|| body.scattermind_payload
|
||||
);
|
||||
}
|
||||
|
||||
function unwrapPayloadEnvelope(input = {}) {
|
||||
const body = objectFrom(input);
|
||||
const payload = payloadEnvelopeFrom(body);
|
||||
if (!Object.keys(payload).length || !looksLikeRankPayload(payload)) return body;
|
||||
return { ...body, ...payload };
|
||||
}
|
||||
|
||||
function extractFirstJsonObject(text = '') {
|
||||
const start = text.indexOf('{');
|
||||
if (start < 0) return '';
|
||||
@@ -763,13 +790,14 @@ function expandEmbeddedRankPayload(body = {}) {
|
||||
? original[key]
|
||||
: null;
|
||||
if (!embedded) continue;
|
||||
const unwrappedEmbedded = unwrapPayloadEnvelope(embedded);
|
||||
const expanded = stringOnlyEmbeddedKeys.has(key)
|
||||
? { ...original, [key]: embedded }
|
||||
: { ...original, ...embedded };
|
||||
if (key === 'idea' && !embedded.idea && !embedded.ideaText) expanded.idea = '';
|
||||
if (key === 'optionsText' && !embedded.optionsText) expanded.optionsText = '';
|
||||
if (original.mode && !embedded.mode) expanded.mode = original.mode;
|
||||
if (original.context && !embedded.context) expanded.context = original.context;
|
||||
? { ...original, [key]: unwrappedEmbedded }
|
||||
: { ...original, ...unwrappedEmbedded };
|
||||
if (key === 'idea' && !unwrappedEmbedded.idea && !unwrappedEmbedded.ideaText) expanded.idea = '';
|
||||
if (key === 'optionsText' && !unwrappedEmbedded.optionsText) expanded.optionsText = '';
|
||||
if (original.mode && !unwrappedEmbedded.mode) expanded.mode = original.mode;
|
||||
if (original.context && !unwrappedEmbedded.context) expanded.context = original.context;
|
||||
expanded._embeddedPayloadSource = key;
|
||||
return expanded;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user