{"version":3,"file":"json.mjs","sources":["../../src/fields/json.ts"],"sourcesContent":["import Field from './field';\n\nexport default class JSONField extends Field {\n toDB(value: unknown) {\n if (value == null) {\n return null;\n }\n\n if (typeof value === 'object') {\n return JSON.stringify(value);\n }\n\n return value;\n }\n\n fromDB(value: unknown) {\n try {\n if (typeof value === 'string') {\n const parsedValue = JSON.parse(value);\n\n /**\n * On Strapi 5 until 5.0.0-rc.7, the values were accidentally stringified twice when saved,\n * so in those cases we need to parse them twice to retrieve the actual value.\n */\n if (typeof parsedValue === 'string') {\n return JSON.parse(parsedValue);\n }\n\n return parsedValue;\n }\n } catch (error) {\n // Just return the value if it's not a valid JSON string\n return value;\n }\n\n return value;\n }\n}\n"],"names":["JSONField","Field","toDB","value","JSON","stringify","fromDB","parsedValue","parse","error"],"mappings":";;AAEe,MAAMA,SAAkBC,SAAAA,KAAAA,CAAAA;AACrCC,IAAAA,IAAAA,CAAKC,KAAc,EAAE;AACnB,QAAA,IAAIA,SAAS,IAAM,EAAA;YACjB,OAAO,IAAA;AACT;QAEA,IAAI,OAAOA,UAAU,QAAU,EAAA;YAC7B,OAAOC,IAAAA,CAAKC,SAAS,CAACF,KAAAA,CAAAA;AACxB;QAEA,OAAOA,KAAAA;AACT;AAEAG,IAAAA,MAAAA,CAAOH,KAAc,EAAE;QACrB,IAAI;YACF,IAAI,OAAOA,UAAU,QAAU,EAAA;gBAC7B,MAAMI,WAAAA,GAAcH,IAAKI,CAAAA,KAAK,CAACL,KAAAA,CAAAA;AAE/B;;;YAIA,IAAI,OAAOI,WAAAA,KAAgB,QAAU,EAAA;oBACnC,OAAOH,IAAAA,CAAKI,KAAK,CAACD,WAAAA,CAAAA;AACpB;gBAEA,OAAOA,WAAAA;AACT;AACF,SAAA,CAAE,OAAOE,KAAO,EAAA;;YAEd,OAAON,KAAAA;AACT;QAEA,OAAOA,KAAAA;AACT;AACF;;;;"}