{"version":3,"file":"index.cjs","names":[],"sources":["../../../node_modules/@vercel/stega/dist/index.mjs","../src/encode.ts","../../../node_modules/foreach/index.js","../../../node_modules/json-pointer/index.js","../src/richText.ts","../src/utils.ts","../src/graphql/encodeGraphQLResponse.ts","../src/rest/encodeCPAResponse.ts"],"sourcesContent":["var p={0:8203,1:8204,2:8205,3:8290,4:8291,5:8288,6:65279,7:8289,8:119155,9:119156,a:119157,b:119158,c:119159,d:119160,e:119161,f:119162},l={0:8203,1:8204,2:8205,3:65279},d={0:String.fromCodePoint(l[0]),1:String.fromCodePoint(l[1]),2:String.fromCodePoint(l[2]),3:String.fromCodePoint(l[3])},u=new Array(4).fill(String.fromCodePoint(l[0])).join(\"\"),g=String.fromCharCode(0);function A(e){let r=JSON.stringify(e),t=new TextEncoder().encode(r),i=\"\";for(let c=0;c<t.length;c++){let n=t[c];i+=d[n>>6&3]+d[n>>4&3]+d[n>>2&3]+d[n&3]}return u+i}function C(e){let r=JSON.stringify(e);return Array.from(r).map(t=>{let i=t.charCodeAt(0);if(i>255)throw new Error(`Only ASCII edit info can be encoded. Error attempting to encode ${r} on character ${t} (${i})`);return Array.from(i.toString(16).padStart(2,\"0\")).map(c=>String.fromCodePoint(p[c])).join(\"\")}).join(\"\")}function I(e){return!Number.isNaN(Number(e))||/[a-z]/i.test(e)&&!/\\d+(?:[-:\\/]\\d+){2}(?:T\\d+(?:[-:\\/]\\d+){1,2}(\\.\\d+)?Z?)?/.test(e)?!1:!!Date.parse(e)}function S(e){try{new URL(e,e.startsWith(\"/\")?\"https://acme.com\":void 0)}catch{return!1}return!0}function y(e,r,t=\"auto\"){return t===!0||t===\"auto\"&&(I(e)||S(e))?e:`${e}${A(r)}`}var m=Object.fromEntries(Object.entries(d).map(e=>[e[1],+e[0]])),T=Object.fromEntries(Object.entries(p).map(e=>e.reverse())),h=`${Object.values(p).map(e=>`\\\\u{${e.toString(16)}}`).join(\"\")}`,x=new RegExp(`[${h}]{4,}`,\"gu\");function X(e){let r=e.match(x);if(r)return E(r[0],!0)[0]}function M(e){let r=e.match(x);if(r)return r.map(t=>E(t)).flat()}function E(e,r=!1){let t=Array.from(e),i=1/0,c=-1;for(let n=0;n<t.length;++n)t[n]===u[0]&&t[n+1]===u[1]&&t[n+2]===u[2]&&t[n+3]===u[3]&&(i=Math.min(i,n),c=Math.max(c,n));if(c===-1)return _(t,r);for(let n=i;n<=c;++n)if(!((t.length-n)%4))try{let f=t.slice(n+4),s=new Uint8Array(f.length/4);for(let o=0;o<s.length;o++)s[o]=m[f[o*4]]<<6|m[f[o*4+1]]<<4|m[f[o*4+2]]<<2|m[f[o*4+3]];let a=new TextDecoder().decode(s);if(r){let o=a.indexOf(g);return o===-1&&(o=a.length),[JSON.parse(a.slice(0,o))]}return a.split(g).filter(Boolean).map(o=>JSON.parse(o))}catch{}return[]}function _(e,r){var f;let t=[];for(let s=e.length*.5;s--;){let a=`${T[e[s*2].codePointAt(0)]}${T[e[s*2+1].codePointAt(0)]}`;t.unshift(String.fromCharCode(parseInt(a,16)))}let i=[],c=[t.join(\"\")],n=10;for(;c.length;){let s=c.shift();try{if(i.push(JSON.parse(s)),r)return i}catch(a){if(!n--)throw a;let o=+((f=a.message.match(/\\sposition\\s(\\d+)$/))==null?void 0:f[1]);if(!o)throw a;c.unshift(s.substring(0,o),s.substring(o))}}return i}function P(e){var r;return{cleaned:e.replace(x,\"\"),encoded:((r=e.match(x))==null?void 0:r[0])||\"\"}}function w(e){return e&&JSON.parse(P(JSON.stringify(e)).cleaned)}export{x as VERCEL_STEGA_REGEX,C as legacyStegaEncode,w as vercelStegaClean,y as vercelStegaCombine,X as vercelStegaDecode,M as vercelStegaDecodeAll,A as vercelStegaEncode,P as vercelStegaSplit};\n","import {\n  vercelStegaCombine,\n  vercelStegaDecode,\n  vercelStegaEncode,\n  vercelStegaSplit,\n} from '@vercel/stega';\n\nimport type { SourceMapMetadata } from './types.js';\n\nexport function combine(text: string, metadata: SourceMapMetadata): string {\n  return vercelStegaCombine(text, metadata);\n}\n\nexport function encode(metadata: SourceMapMetadata): string {\n  return vercelStegaEncode(metadata);\n}\n\nexport function decode(text: string): SourceMapMetadata | undefined {\n  return vercelStegaDecode(text);\n}\n\nexport function splitEncoding(text: string): {\n  /** The original string with encoded substring removed */\n  cleaned: string;\n  /** The encoded substring from the original string */\n  encoded: string;\n} {\n  return vercelStegaSplit(text);\n}\n","\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n    if (toString.call(fn) !== '[object Function]') {\n        throw new TypeError('iterator must be a function');\n    }\n    var l = obj.length;\n    if (l === +l) {\n        for (var i = 0; i < l; i++) {\n            fn.call(ctx, obj[i], i, obj);\n        }\n    } else {\n        for (var k in obj) {\n            if (hasOwn.call(obj, k)) {\n                fn.call(ctx, obj[k], k, obj);\n            }\n        }\n    }\n};\n\n","'use strict';\n\nvar each = require('foreach');\nmodule.exports = api;\n\n\n/**\n * Convenience wrapper around the api.\n * Calls `.get` when called with an `object` and a `pointer`.\n * Calls `.set` when also called with `value`.\n * If only supplied `object`, returns a partially applied function, mapped to the object.\n *\n * @param {Object} obj\n * @param {String|Array} pointer\n * @param value\n * @returns {*}\n */\n\nfunction api (obj, pointer, value) {\n    // .set()\n    if (arguments.length === 3) {\n        return api.set(obj, pointer, value);\n    }\n    // .get()\n    if (arguments.length === 2) {\n        return api.get(obj, pointer);\n    }\n    // Return a partially applied function on `obj`.\n    var wrapped = api.bind(api, obj);\n\n    // Support for oo style\n    for (var name in api) {\n        if (api.hasOwnProperty(name)) {\n            wrapped[name] = api[name].bind(wrapped, obj);\n        }\n    }\n    return wrapped;\n}\n\n\n/**\n * Lookup a json pointer in an object\n *\n * @param {Object} obj\n * @param {String|Array} pointer\n * @returns {*}\n */\napi.get = function get (obj, pointer) {\n    var refTokens = Array.isArray(pointer) ? pointer : api.parse(pointer);\n\n    for (var i = 0; i < refTokens.length; ++i) {\n        var tok = refTokens[i];\n        if (!(typeof obj == 'object' && tok in obj)) {\n            throw new Error('Invalid reference token: ' + tok);\n        }\n        obj = obj[tok];\n    }\n    return obj;\n};\n\n/**\n * Sets a value on an object\n *\n * @param {Object} obj\n * @param {String|Array} pointer\n * @param value\n */\napi.set = function set (obj, pointer, value) {\n    var refTokens = Array.isArray(pointer) ? pointer : api.parse(pointer),\n      nextTok = refTokens[0];\n\n    if (refTokens.length === 0) {\n      throw Error('Can not set the root object');\n    }\n\n    for (var i = 0; i < refTokens.length - 1; ++i) {\n        var tok = refTokens[i];\n        if (typeof tok !== 'string' && typeof tok !== 'number') {\n          tok = String(tok)\n        }\n        if (tok === \"__proto__\" || tok === \"constructor\" || tok === \"prototype\") {\n            continue\n        }\n        if (tok === '-' && Array.isArray(obj)) {\n          tok = obj.length;\n        }\n        nextTok = refTokens[i + 1];\n\n        if (!(tok in obj)) {\n            if (nextTok.match(/^(\\d+|-)$/)) {\n                obj[tok] = [];\n            } else {\n                obj[tok] = {};\n            }\n        }\n        obj = obj[tok];\n    }\n    if (nextTok === '-' && Array.isArray(obj)) {\n      nextTok = obj.length;\n    }\n    obj[nextTok] = value;\n    return this;\n};\n\n/**\n * Removes an attribute\n *\n * @param {Object} obj\n * @param {String|Array} pointer\n */\napi.remove = function (obj, pointer) {\n    var refTokens = Array.isArray(pointer) ? pointer : api.parse(pointer);\n    var finalToken = refTokens[refTokens.length -1];\n    if (finalToken === undefined) {\n        throw new Error('Invalid JSON pointer for remove: \"' + pointer + '\"');\n    }\n\n    var parent = api.get(obj, refTokens.slice(0, -1));\n    if (Array.isArray(parent)) {\n      var index = +finalToken;\n      if (finalToken === '' && isNaN(index)) {\n        throw new Error('Invalid array index: \"' + finalToken + '\"');\n      }\n\n      Array.prototype.splice.call(parent, index, 1);\n    } else {\n      delete parent[finalToken];\n    }\n};\n\n/**\n * Returns a (pointer -> value) dictionary for an object\n *\n * @param obj\n * @param {function} descend\n * @returns {}\n */\napi.dict = function dict (obj, descend) {\n    var results = {};\n    api.walk(obj, function (value, pointer) {\n        results[pointer] = value;\n    }, descend);\n    return results;\n};\n\n/**\n * Iterates over an object\n * Iterator: function (value, pointer) {}\n *\n * @param obj\n * @param {function} iterator\n * @param {function} descend\n */\napi.walk = function walk (obj, iterator, descend) {\n    var refTokens = [];\n\n    descend = descend || function (value) {\n        var type = Object.prototype.toString.call(value);\n        return type === '[object Object]' || type === '[object Array]';\n    };\n\n    (function next (cur) {\n        each(cur, function (value, key) {\n            refTokens.push(String(key));\n            if (descend(value)) {\n                next(value);\n            } else {\n                iterator(value, api.compile(refTokens));\n            }\n            refTokens.pop();\n        });\n    }(obj));\n};\n\n/**\n * Tests if an object has a value for a json pointer\n *\n * @param obj\n * @param pointer\n * @returns {boolean}\n */\napi.has = function has (obj, pointer) {\n    try {\n        api.get(obj, pointer);\n    } catch (e) {\n        return false;\n    }\n    return true;\n};\n\n/**\n * Escapes a reference token\n *\n * @param str\n * @returns {string}\n */\napi.escape = function escape (str) {\n    return str.toString().replace(/~/g, '~0').replace(/\\//g, '~1');\n};\n\n/**\n * Unescapes a reference token\n *\n * @param str\n * @returns {string}\n */\napi.unescape = function unescape (str) {\n    return str.replace(/~1/g, '/').replace(/~0/g, '~');\n};\n\n/**\n * Converts a json pointer into a array of reference tokens\n *\n * @param pointer\n * @returns {Array}\n */\napi.parse = function parse (pointer) {\n    if (pointer === '') { return []; }\n    if (pointer.charAt(0) !== '/') { throw new Error('Invalid JSON pointer: ' + pointer); }\n    return pointer.substring(1).split(/\\//).map(api.unescape);\n};\n\n/**\n * Builds a json pointer from a array of reference tokens\n *\n * @param refTokens\n * @returns {string}\n */\napi.compile = function compile (refTokens) {\n    if (refTokens.length === 0) { return ''; }\n    return '/' + refTokens.map(api.escape).join('/');\n};\n","import type { Block, Inline, Node } from '@contentful/rich-text-types';\nimport { get, set } from 'json-pointer';\n\nimport { combine } from './encode.js';\nimport type { CPAMappings, GraphQLMappings, SourceMapMetadata } from './types.js';\n\nexport const encodeRichTextValue = ({\n  pointer,\n  mappings,\n  data,\n  hiddenStrings,\n}: {\n  pointer: string;\n  mappings: CPAMappings | GraphQLMappings;\n  data: Node;\n  hiddenStrings: SourceMapMetadata;\n}) => {\n  const source = mappings[pointer];\n\n  // Only proceed with mapping if we have a valid source\n  if (source) {\n    // We can now safely delete the original pointer as we've preserved the source\n    delete mappings[pointer];\n\n    const textNodes = findRichTextNodes(data, pointer);\n    for (const textNode of textNodes) {\n      mappings[textNode] = source;\n      const currentTextNodeValue = get(data, textNode);\n      const encodedValue = combine(currentTextNodeValue, hiddenStrings);\n      set(data, textNode, encodedValue);\n    }\n  } else {\n    // If there's no source mapping, just encode the text nodes without creating mappings\n    const textNodes = findRichTextNodes(data, pointer);\n    for (const textNode of textNodes) {\n      const currentTextNodeValue = get(data, textNode);\n      const encodedValue = combine(currentTextNodeValue, hiddenStrings);\n      set(data, textNode, encodedValue);\n    }\n  }\n};\n\nfunction isNode(node: Node): node is Block | Inline {\n  return 'content' in node && !!node.content;\n}\n\nconst findRichTextNodes = (data: Node, currentPath = ''): string[] => {\n  const textNodes = [];\n  const node = get(data, currentPath);\n\n  if (isNode(node)) {\n    for (let i = 0; i < node.content.length; i++) {\n      if (node.content[i].nodeType === 'text') {\n        textNodes.push(`${currentPath}/content/${i}/value`);\n      } else {\n        textNodes.push(...findRichTextNodes(data, `${currentPath}/content/${i}`));\n      }\n    }\n  }\n\n  return textNodes;\n};\n","import { set } from 'json-pointer';\n\nimport { combine } from './encode.js';\nimport { encodeRichTextValue } from './richText.js';\nimport type {\n  CPAAsset,\n  CPAEntry,\n  CPAMappings,\n  CreateSourceMapParams,\n  FieldType,\n  GraphQLMappings,\n  GraphQLResponse,\n  SourceMapMetadata,\n  WidgetId,\n  WidgetNamespace,\n} from './types.js';\n\nexport const createSourceMapMetadata = ({\n  entityId,\n  entityType,\n  space,\n  environment,\n  field,\n  locale,\n  editorInterface,\n  fieldType,\n  targetOrigin,\n  platform,\n}: CreateSourceMapParams): SourceMapMetadata => {\n  const targetOriginUrl = targetOrigin || 'https://app.contentful.com';\n  const basePath = `${targetOriginUrl}/spaces/${space}/environments/${environment}`;\n  const entityRoute = entityType === 'Entry' ? 'entries' : 'assets';\n  const href = `${basePath}/${entityRoute}/${entityId}/?focusedField=${field}&focusedLocale=${locale}&source=vercel-content-link`;\n\n  const result: SourceMapMetadata = {\n    origin: 'contentful.com',\n    href,\n    contentful: {\n      editorInterface,\n      fieldType,\n    },\n  };\n\n  // If the user has specified a platform, we remove the fields that are not relevant to that platform\n  if (platform === 'vercel') {\n    delete result.contentful;\n  }\n\n  return result;\n};\n\nexport const isBuiltinNamespace = (namespace: WidgetNamespace) =>\n  ['builtin', 'sidebar-builtin', 'editor-builtin'].includes(namespace);\nexport const isSupportedWidget = (widgetId: WidgetId) => SUPPORTED_WIDGETS.includes(widgetId);\n\n/**\n * Ninetailed reserved fields that should not be encoded.\n * Includes both snake_case (CPA/REST) and camelCase (GraphQL) variants.\n */\nconst NINETAILED_RESERVED_FIELDS_CT = [\n  'nt_experiences',\n  'nt_name',\n  'nt_description',\n  'nt_audience_id',\n  'nt_rules',\n  'nt_metadata',\n  'nt_experience_id',\n  'nt_type',\n  'nt_config',\n  'nt_audience',\n  'nt_variants',\n];\n\nconst NINETAILED_RESERVED_FIELDS_GRAPHQL = NINETAILED_RESERVED_FIELDS_CT.map((field) =>\n  field.replace(/_([a-z])/g, (_, char) => char.toUpperCase()),\n);\n\nconst NINETAILED_RESERVED_FIELDS = [\n  ...NINETAILED_RESERVED_FIELDS_CT,\n  ...NINETAILED_RESERVED_FIELDS_GRAPHQL,\n];\n\nexport const isNinetailedField = (field: string) => NINETAILED_RESERVED_FIELDS.includes(field);\n\n/**\n * Clones the incoming element into a new one, to prevent modification on the original object\n * Hint: It uses the structuredClone which is only available in modern browsers,\n * for older one it uses the JSON.parse(JSON.stringify) hack.\n */\nexport function clone<T extends Record<string, unknown> | Array<unknown>>(incoming: T): T {\n  if (typeof structuredClone === 'function') {\n    return structuredClone(incoming);\n  }\n\n  try {\n    return JSON.parse(JSON.stringify(incoming));\n  } catch (err) {\n    console.warn('Failed to clone data:', incoming, err);\n    return incoming;\n  }\n}\n\nexport const SUPPORTED_WIDGETS: WidgetId[] = [\n  'singleLine',\n  'tagEditor',\n  'listInput',\n  'checkbox',\n  'richTextEditor',\n  'multipleLine',\n];\n\nexport function encodeField(\n  fieldType: FieldType,\n  currentValue: any,\n  hiddenStrings: SourceMapMetadata,\n  target: GraphQLResponse | CPAEntry | CPAAsset,\n  pointer: string,\n  mappings: CPAMappings | GraphQLMappings,\n  locale?: string,\n) {\n  // Determine the value based on locale (if provided)\n  const value = locale ? currentValue[locale] : currentValue;\n\n  // Process based on fieldType\n  switch (fieldType) {\n    case 'Symbol': {\n      const encodedValue = combine(value, hiddenStrings);\n      set(target, pointer, encodedValue);\n      break;\n    }\n\n    case 'Text': {\n      const encodedValue = combine(value, hiddenStrings);\n      set(target, pointer, encodedValue);\n      break;\n    }\n\n    case 'RichText': {\n      encodeRichTextValue({\n        pointer: '',\n        mappings,\n        data: value,\n        hiddenStrings,\n      });\n      break;\n    }\n\n    case 'Array': {\n      const encodedArray = value.map((item: unknown) => {\n        if (typeof item === 'string') {\n          return combine(item, hiddenStrings);\n        } else {\n          return item; // Return the item unchanged if it's not a string\n        }\n      });\n      set(target, pointer, encodedArray);\n      break;\n    }\n  }\n}\n","import { get, has } from 'json-pointer';\n\nimport type { CreateSourceMapParams } from '../types.js';\nimport {\n  clone,\n  createSourceMapMetadata,\n  encodeField,\n  isBuiltinNamespace,\n  isSupportedWidget,\n} from '../utils.js';\n\nexport const encodeGraphQLResponse = <TResponse extends { data: any; extensions: any }>(\n  originalGraphqlResponse: TResponse,\n  targetOrigin?: CreateSourceMapParams['targetOrigin'],\n  platform?: CreateSourceMapParams['platform'],\n): TResponse => {\n  if (\n    !originalGraphqlResponse ||\n    !originalGraphqlResponse.extensions ||\n    !originalGraphqlResponse.extensions.contentSourceMaps\n  ) {\n    console.error(\n      'GraphQL response does not contain Content Source Maps information.',\n      originalGraphqlResponse,\n    );\n    return originalGraphqlResponse;\n  }\n  const modifiedGraphqlResponse = clone(originalGraphqlResponse);\n  const {\n    spaces,\n    environments,\n    editorInterfaces,\n    fields,\n    locales,\n    entries,\n    assets,\n    mappings,\n    fieldTypes,\n  } = modifiedGraphqlResponse.extensions.contentSourceMaps;\n  const target = modifiedGraphqlResponse;\n\n  for (const pointer in mappings) {\n    const { source } = mappings[pointer];\n\n    const entity = 'entry' in source ? entries[source.entry] : assets[source.asset];\n    const entityType = 'entry' in source ? 'Entry' : 'Asset';\n\n    if (!entity) {\n      return modifiedGraphqlResponse;\n    }\n\n    const space = spaces[entity.space];\n    const environment = environments[entity.environment];\n    const entityId = entity.id;\n    const field = fields[source.field];\n    const locale = locales[source.locale];\n    const editorInterface = editorInterfaces[source.editorInterface];\n    const fieldType = fieldTypes[source.fieldType];\n\n    // Skip unsupported widgets\n    if (\n      isBuiltinNamespace(editorInterface.widgetNamespace) &&\n      !isSupportedWidget(editorInterface.widgetId)\n    ) {\n      continue;\n    }\n\n    if (has(target, pointer)) {\n      const currentValue = get(target, pointer);\n\n      if (currentValue !== null) {\n        const hiddenStrings = createSourceMapMetadata({\n          entityId,\n          entityType,\n          space,\n          environment,\n          field,\n          locale,\n          editorInterface,\n          fieldType,\n          targetOrigin,\n          platform,\n        });\n\n        encodeField(fieldType, currentValue, hiddenStrings, target, pointer, mappings);\n      }\n    } else {\n      //@TODO - add Sentry logging\n      // console.warn(`Pointer ${pointer} not found in the entry`, target);\n    }\n  }\n  return modifiedGraphqlResponse;\n};\n","import { get, has } from 'json-pointer';\n\nimport type {\n  CPAEntry,\n  CPAEntryCollection,\n  EditorInterfaceSource,\n  FieldType,\n  CreateSourceMapParams,\n  CPAAsset,\n} from '../types.js';\nimport {\n  clone,\n  createSourceMapMetadata,\n  encodeField,\n  isBuiltinNamespace,\n  isNinetailedField,\n  isSupportedWidget,\n} from '../utils.js';\n\nconst applyEncoding = (\n  target: CPAEntry | CPAAsset,\n  fieldTypes: FieldType[],\n  editorInterfaces: EditorInterfaceSource[],\n  targetOrigin?: CreateSourceMapParams['targetOrigin'],\n  platform?: CreateSourceMapParams['platform'],\n) => {\n  if (!target.fields) {\n    return;\n  }\n\n  const { contentSourceMaps } = target.sys;\n\n  // Skip if there are no source maps\n  // For example if an entry has only one unsupported field\n  if (!contentSourceMaps) {\n    return;\n  }\n\n  const { mappings } = contentSourceMaps;\n\n  for (const pointer in mappings) {\n    const { source } = mappings[pointer];\n    const space = target.sys.space.sys.id;\n    const environment = target.sys.environment.sys.id;\n    const entityId = target.sys.id;\n    const entityType = target.sys.type;\n    const fieldType = fieldTypes[source.fieldType];\n    const editorInterface = editorInterfaces[source.editorInterface];\n\n    // Skip unsupported widgets\n    if (\n      isBuiltinNamespace(editorInterface.widgetNamespace) &&\n      !isSupportedWidget(editorInterface.widgetId)\n    ) {\n      continue;\n    }\n\n    const formattedPointer = pointer.startsWith('/') ? pointer : `/${pointer}`;\n\n    if (has(target, formattedPointer)) {\n      const currentValue = get(target, formattedPointer);\n      if (currentValue === null) {\n        return;\n      }\n      const fieldParts = formattedPointer.split('/'); // Split the pointer into parts\n      const field = fieldParts.pop(); // Get the last part, which is the field name\n      if (!field) {\n        console.error('Field name could not be extracted from the pointer', formattedPointer);\n        return;\n      }\n\n      // Skip encoding for Ninetailed reserved fields\n      if (isNinetailedField(field)) {\n        continue;\n      }\n\n      const locale = target.sys.locale;\n\n      // Determine if we are dealing with multiple locale values in the response or just a single locale\n      if (locale) {\n        const hiddenStrings = createSourceMapMetadata({\n          entityId,\n          entityType,\n          space,\n          environment,\n          field,\n          locale,\n          editorInterface,\n          fieldType,\n          targetOrigin,\n          platform,\n        });\n\n        encodeField(fieldType, currentValue, hiddenStrings, target, formattedPointer, mappings);\n      } else {\n        const locales = Object.keys(currentValue);\n        locales.forEach((locale) => {\n          const hiddenStrings = createSourceMapMetadata({\n            entityId,\n            entityType,\n            space,\n            environment,\n            field,\n            locale,\n            editorInterface,\n            fieldType,\n            targetOrigin,\n            platform,\n          });\n\n          encodeField(\n            fieldType,\n            currentValue,\n            hiddenStrings,\n            target,\n            `${formattedPointer}/${locale}`,\n            mappings,\n            locale,\n          );\n        });\n      }\n    } else {\n      //@TODO - add Sentry logging\n      // console.warn(`Pointer ${pointer} not found in the entry`, target);\n    }\n  }\n};\n\nexport const encodeCPAResponse = (\n  CPAResponse: CPAEntry | CPAEntryCollection,\n  targetOrigin?: CreateSourceMapParams['targetOrigin'],\n  platform?: CreateSourceMapParams['platform'],\n): CPAEntry | CPAEntryCollection => {\n  const modifiedCPAResponse = clone(\n    CPAResponse as unknown as Record<string, unknown>,\n  ) as unknown as CPAEntry | CPAEntryCollection;\n\n  // Entity collections\n  if (modifiedCPAResponse.sys && 'items' in (modifiedCPAResponse as CPAEntryCollection)) {\n    const collection = modifiedCPAResponse as CPAEntryCollection;\n    if (!collection.sys?.contentSourceMapsLookup) {\n      return collection;\n    }\n    const {\n      contentSourceMapsLookup: { fieldTypes, editorInterfaces },\n    } = collection.sys;\n    const { items, includes } = collection;\n\n    items.forEach((target) =>\n      applyEncoding(target, fieldTypes, editorInterfaces, targetOrigin, platform),\n    );\n    if (includes && includes.Entry) {\n      includes.Entry.forEach((entry) =>\n        applyEncoding(entry, fieldTypes, editorInterfaces, targetOrigin, platform),\n      );\n    }\n    if (includes && includes.Asset) {\n      includes.Asset.forEach((asset) =>\n        applyEncoding(asset, fieldTypes, editorInterfaces, targetOrigin, platform),\n      );\n    }\n    // Single entity\n  } else {\n    const entry = modifiedCPAResponse as CPAEntry;\n    if (!entry.sys.contentSourceMapsLookup) {\n      console.error('Content source maps lookup data is missing');\n      return entry;\n    }\n\n    applyEncoding(\n      entry,\n      entry.sys.contentSourceMapsLookup.fieldTypes,\n      entry.sys.contentSourceMapsLookup.editorInterfaces,\n      targetOrigin,\n      platform,\n    );\n  }\n\n  return modifiedCPAResponse;\n};\n"],"x_google_ignoreList":[0,2,3],"mappings":"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"}