I am experiencing difficulty decompressing the input value, but when I use the same value as a static string within the code, it can be decompressed successfully. To verify this, if you click on submit button without typing any text it will return decompressed value, but if you input the below encoded string it will throw an error.
Encoded string
\u001f\u008b\u0008\u0000\u0000\u0000\u0000\u0000\u0000\u0003\u008d\u0094ͪÛ0\u0010\u0085_¥¨[;è_£l/-t×}\u0008A±å[\u0017\'vm9%\u0084¼{Çq¬Èp[\n\u0001\u0013}\u009a9G#Íìn¤\u001dC7\u0086\u0081lw7R\u0097dKÀ)\u0090ÜT9\u0013\u0096æÒW.?\u001a/ó\u0092\u0015\u00950UE\u009d1${Æ\u001dÞ}ûshÏd{#áÚy\u008cÿê]\u0018{ÿÖ6\u008d/B\u008d,#Õ¼6«¬÷\u0021Å\u001c\'\u001fúk\u0092ä{Û\\ß\u001f¡EÛöe}vá\u0011½ÛåVl¤æT3©Í$Û\u0018*8gV\u0082Ùg/lµ\u0082\u0014s\u0080\u0017f\u008csmô\u00825\u0007\u0095P\u0081K\u0002T¤\u0096sËV\u0098i`\u000b\u0006m©\u0092Inj9Ó1\u001a\u0094\u0015¤Xk+LÄ À\u0088\u0015fhï\u0089\u0005î\u0095"5N\u008d\u008dÇ\u0012\u001a¤L¥\u0005å \u0085þ\u0007fB.XI\u008cPiÍð` "6LY³Æ\n\u0016ãJ(EE\u0092\u009c\u0002·\u009aÚ\u0088%\u0093 R,@*¾`F\u0099Q|\u0015\u008d;br¼>ü´¥bÑ\u001a\u0005 2M\u008e5\u0083¨\u008d\u0017&µY9ÿè O\u008a.%\u0087è]X,Ó+\u009e[\u0085êò\u0085\u0005¤wÂQ\u000e?O,\u0019W\u0006\u0092²r°TÒåh\u0098ZI\u0096Re\u0018Ä+³Ô0ºz\u000e\u0086ª\u0098\u001b±äjõ\u001c>2¾ßß3ÒõmçûPOm3w6Ë\u0088ë½#[®\u0094Ù`5\u0009n¨±ó|O¶\u001aÄFÙ\u008c4îêûoÿ=\u0007î÷Ik\u0008×ÆO2EÛ´\u0098\u008c|¦ Þ¾plßßu\u0019~ $\u000e\u008cÎ\u0015uÀ&§\u001b\u009d\u0091z8\\ê¡>Nq¡\u001fýSù\u0080Í>Ùa÷84\u0016û\u0004+Q\u0018(u®\u0083\u001cëló£4Ç\u009c\u001e\u008feI©óÔST<»Óc\u0082¸\u008b?ùsHæËa\u001e.â¡^\u008cChOd[¹fðóJ{êÜùzhüÅ7/Pb\u0092ºª\'W¤[\u0092¢½\u0093w\u0003Ú\u009bþÎsí)ü¨qF.®\u0019ý\\ë\u008c\u008cç: \u001a~}ª&C(\u0086ã³Ä\u0099VΧ¿g1üu\'1\u0007öqLñ\u0097øýcÑá¼½øeé¾ÿ\u0003gÑçýß\u0005\u0000\u0000
const Buffer = buffer.Buffer;
const {inflate} = pako;
const { useCallback, useEffect, useState, ReactDom } = React;
function App() {
// debugger
const [compressedString, setCompressedString] = useState("");
const copyGeojson = useCallback(() => {
let compressedString2 = '\u001f\u008b\u0008\u0000\u0000\u0000\u0000\u0000\u0000\u0003\u008d\u0094ͪÛ0\u0010\u0085_¥¨[;è_£l/-t×}\u0008A±å[\u0017\'vm9%\u0084¼{Çq¬Èp[\n\u0001\u0013}\u009a9G#Íìn¤\u001dC7\u0086\u0081lw7R\u0097dKÀ)\u0090ÜT9\u0013\u0096æÒW.?\u001a/ó\u0092\u0015\u00950UE\u009d1${Æ\u001dÞ}ûshÏd{#áÚy\u008cÿê]\u0018{ÿÖ6\u008d/B\u008d,#Õ¼6«¬÷\u0021Å\u001c\'\u001fúk\u0092ä{Û\\ß\u001f¡EÛöe}vá\u0011½ÛåVl¤æT3©Í$Û\u0018*8gV\u0082Ùg/lµ\u0082\u0014s\u0080\u0017f\u008csmô\u00825\u0007\u0095P\u0081K\u0002T¤\u0096sËV\u0098i`\u000b\u0006m©\u0092Inj9Ó1\u001a\u0094\u0015¤Xk+LÄ À\u0088\u0015fhï\u0089\u0005î\u0095"5N\u008d\u008dÇ\u0012\u001a¤L¥\u0005å \u0085þ\u0007fB.XI\u008cPiÍð` "6LY³Æ\n\u0016ãJ(EE\u0092\u009c\u0002·\u009aÚ\u0088%\u0093 R,@*¾`F\u0099Q|\u0015\u008d;br¼>ü´¥bÑ\u001a\u0005 2M\u008e5\u0083¨\u008d\u0017&µY9ÿè O\u008a.%\u0087è]X,Ó+\u009e[\u0085êò\u0085\u0005¤wÂQ\u000e?O,\u0019W\u0006\u0092²r°TÒåh\u0098ZI\u0096Re\u0018Ä+³Ô0ºz\u000e\u0086ª\u0098\u001b±äjõ\u001c>2¾ßß3ÒõmçûPOm3w6Ë\u0088ë½#[®\u0094Ù`5\u0009n¨±ó|O¶\u001aÄFÙ\u008c4îêûoÿ=\u0007î÷Ik\u0008×ÆO2EÛ´\u0098\u008c|¦ Þ¾plßßu\u0019~ $\u000e\u008cÎ\u0015uÀ&§\u001b\u009d\u0091z8\\ê¡>Nq¡\u001fýSù\u0080Í>Ùa÷84\u0016û\u0004+Q\u0018(u®\u0083\u001cëló£4Ç\u009c\u001e\u008feI©óÔST<»Óc\u0082¸\u008b?ùsHæËa\u001e.â¡^\u008cChOd[¹fðóJ{êÜùzhüÅ7/Pb\u0092ºª\'W¤[\u0092¢½\u0093w\u0003Ú\u009bþÎsí)ü¨qF.®\u0019ý\\ë\u008c\u008cç: \u001a~}ª&C(\u0086ã³Ä\u0099VΧ¿g1üu\'1\u0007öqLñ\u0097øýcÑá¼½øeé¾ÿ\u0003gÑçýß\u0005\u0000\u0000';
try {
const response = JSON.parse(
inflate(
new Uint8Array(
Buffer.from(
compressedString || compressedString2,
"binary"
)
),
{ to: "string" }
)
);
console.log(response[0].outputs[0].output_geojson);
navigator.clipboard.writeText(JSON.stringify(response[0].outputs[0].output_geojson))
.then(() => {
alert("Copied");
});
} catch (err) {
console.error(err);
}
}, [compressedString]);
return (
<div className="App">
<h1>Hello CodeSandbox</h1>
<h2>Start editing to see some magic happen!</h2>
<label htmlFor="uncompressed-string">Enter compressed string</label>
<input
id="uncompressed-string"
type="text"
onChange={(e) => setCompressedString(e.target.value)}
value={compressedString}
/>
<button type="button" onClick={copyGeojson}>
Submit
</button>
</div>
);
}
ReactDOM.createRoot(
document.getElementById("root")
).render(<App/>);
<script src="https://bundle.run/[email protected]"></script>
<script src="https://unpkg.com/[email protected]/dist/pako.min.js"></script>
<div id="root"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/18.2.0/umd/react.development.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.2.0/umd/react-dom.development.js"></script>