next-csrf
Version:
CSRF mitigation library for Next.js
1 lines • 3.88 kB
JSON
{"ast":null,"code":"\"use strict\";\n\nexports.__esModule = true;\nexports.searchParamsToUrlQuery = searchParamsToUrlQuery;\nexports.urlQueryToSearchParams = urlQueryToSearchParams;\nexports.assign = assign;\n\nfunction searchParamsToUrlQuery(searchParams) {\n const query = {};\n searchParams.forEach((value, key) => {\n if (typeof query[key] === 'undefined') {\n query[key] = value;\n } else if (Array.isArray(query[key])) {\n ;\n query[key].push(value);\n } else {\n query[key] = [query[key], value];\n }\n });\n return query;\n}\n\nfunction urlQueryToSearchParams(urlQuery) {\n const result = new URLSearchParams();\n Object.entries(urlQuery).forEach(([key, value]) => {\n if (Array.isArray(value)) {\n value.forEach(item => result.append(key, item));\n } else {\n result.set(key, value);\n }\n });\n return result;\n}\n\nfunction assign(target, ...searchParamsList) {\n searchParamsList.forEach(searchParams => {\n Array.from(searchParams.keys()).forEach(key => target.delete(key));\n searchParams.forEach((value, key) => target.append(key, value));\n });\n return target;\n}","map":{"version":3,"sources":["../../../../../next-server/lib/router/utils/querystring.ts"],"names":["query","searchParams","Array","result","Object","value","item","searchParamsList","key","target"],"mappings":";;;;;;;AAEO,SAAA,sBAAA,CAAA,YAAA,EAEW;AAChB,QAAMA,KAAqB,GAA3B,EAAA;AACAC,EAAAA,YAAY,CAAZA,OAAAA,CAAqB,CAAA,KAAA,EAAA,GAAA,KAAgB;AACnC,QAAI,OAAOD,KAAK,CAAZ,GAAY,CAAZ,KAAJ,WAAA,EAAuC;AACrCA,MAAAA,KAAK,CAALA,GAAK,CAALA,GAAAA,KAAAA;AADF,KAAA,MAEO,IAAIE,KAAK,CAALA,OAAAA,CAAcF,KAAK,CAAvB,GAAuB,CAAnBE,CAAJ,EAA+B;AACpC;AAAEF,MAAAA,KAAK,CAAN,GAAM,CAALA,CAAD,IAACA,CAAD,KAACA;AADG,KAAA,MAEA;AACLA,MAAAA,KAAK,CAALA,GAAK,CAALA,GAAa,CAACA,KAAK,CAAN,GAAM,CAAN,EAAbA,KAAa,CAAbA;AAEH;AARDC,GAAAA;AASA,SAAA,KAAA;AAGK;;AAAA,SAAA,sBAAA,CAAA,QAAA,EAEY;AACjB,QAAME,MAAM,GAAG,IAAf,eAAe,EAAf;AACAC,EAAAA,MAAM,CAANA,OAAAA,CAAAA,QAAAA,EAAAA,OAAAA,CAAiC,CAAC,CAAA,GAAA,EAAD,KAAC,CAAD,KAAkB;AACjD,QAAIF,KAAK,CAALA,OAAAA,CAAJ,KAAIA,CAAJ,EAA0B;AACxBG,MAAAA,KAAK,CAALA,OAAAA,CAAeC,IAAD,IAAUH,MAAM,CAANA,MAAAA,CAAAA,GAAAA,EAAxBE,IAAwBF,CAAxBE;AADF,KAAA,MAEO;AACLF,MAAAA,MAAM,CAANA,GAAAA,CAAAA,GAAAA,EAAAA,KAAAA;AAEH;AANDC,GAAAA;AAOA,SAAA,MAAA;AAGK;;AAAA,SAAA,MAAA,CAAA,MAAA,EAEL,GAFK,gBAAA,EAGY;AACjBG,EAAAA,gBAAgB,CAAhBA,OAAAA,CAA0BN,YAAD,IAAkB;AACzCC,IAAAA,KAAK,CAALA,IAAAA,CAAWD,YAAY,CAAvBC,IAAWD,EAAXC,EAAAA,OAAAA,CAAyCM,GAAD,IAASC,MAAM,CAANA,MAAAA,CAAjDP,GAAiDO,CAAjDP;AACAD,IAAAA,YAAY,CAAZA,OAAAA,CAAqB,CAAA,KAAA,EAAA,GAAA,KAAgBQ,MAAM,CAANA,MAAAA,CAAAA,GAAAA,EAArCR,KAAqCQ,CAArCR;AAFFM,GAAAA;AAIA,SAAA,MAAA;AACD","sourcesContent":["import { ParsedUrlQuery } from 'querystring'\n\nexport function searchParamsToUrlQuery(\n searchParams: URLSearchParams\n): ParsedUrlQuery {\n const query: ParsedUrlQuery = {}\n searchParams.forEach((value, key) => {\n if (typeof query[key] === 'undefined') {\n query[key] = value\n } else if (Array.isArray(query[key])) {\n ;(query[key] as string[]).push(value)\n } else {\n query[key] = [query[key] as string, value]\n }\n })\n return query\n}\n\nexport function urlQueryToSearchParams(\n urlQuery: ParsedUrlQuery\n): URLSearchParams {\n const result = new URLSearchParams()\n Object.entries(urlQuery).forEach(([key, value]) => {\n if (Array.isArray(value)) {\n value.forEach((item) => result.append(key, item))\n } else {\n result.set(key, value)\n }\n })\n return result\n}\n\nexport function assign(\n target: URLSearchParams,\n ...searchParamsList: URLSearchParams[]\n): URLSearchParams {\n searchParamsList.forEach((searchParams) => {\n Array.from(searchParams.keys()).forEach((key) => target.delete(key))\n searchParams.forEach((value, key) => target.append(key, value))\n })\n return target\n}\n"]},"metadata":{},"sourceType":"script"}