cd /workspace/react-pdf && python3 - <<'PY'
import binascii, zlib, sys
s='140630f60760ce02e004b027806c0a6538178e06518b51c00b5551803a1002754043195002806f60e39c64057016c200b8e2b76ec009804b28001d92d4482039003334003c1401a362256a550045c4d1031c644100893af0816b48b8008d68800d601cca982e11440613064302a4b0077127a3b6d005f2d6d2f50c16111096959793865354d6d765d032354133301380b04a8877c807104c100467b3858e06d2571646424dca7170f2f1f7f40e0cb1a514a9150f15118224b0016000600520996ed4f5252e4f667374f6f5f00a090b2cdd45b26e8e068804a006e56f0687800212e772c38465bac003e6fb68003cfa300817817181fc7a408002ad1dca8043e0d09866120d0504a2046cd168439d840801ab8950a164410d118f439012789e83989a4f2752a9289a7b53a78a0401e84964fc4121c0c91102002a7a2849d503c38388a4505e2f225aa2848b79fcd0a0b093cf862305bcd07827890e843d5a00253a09961fa0018ad22ea25415118ef772dd5a5ea00000'
b=bytes.fromhex(s)
print('len', len(b), 'prefix', b[:20])
for wbits in [15, -15, 31]:
  try:
    out=zlib.decompress(b, wbits)
    print('zlib', wbits, out.decode('utf8', 'replace'))
  except Exception as e: print('zlib fail', wbits, e)
try:
  import brotli
  print('brotli', brotli.decompress(b).decode())
except Exception as e: print('brotli fail', e)
PY
len 374 prefix b"\x14\x060\xf6\x07`\xce\x02\xe0\x04\xb0'\x80l\ne8\x17\x8e\x06"
zlib fail 15 Error -3 while decompressing data: incorrect header check
zlib fail -15 Error -3 while decompressing data: invalid code lengths set
zlib fail 31 Error -3 while decompressing data: incorrect header check
brotli fail No module named 'brotli'


printf '\n--- grep repl codecs ---\n'

--- grep repl codecs ---


grep -R "compress\|decompress\|pako\|lz" -n packages website examples 2>/dev/null | head -n 80
packages/renderer/lib/react-pdf.browser.es.js.map:1:{"version":3,"file":"react-pdf.browser.es.js","sources":["../src/utils/propsEqual.js","../src/renderer.js","../src/index.js","../src/dom/usePDF.js","../src/dom/PDFViewer.js","../src/dom/BlobProvider.js","../src/dom/PDFDownloadLink.js","../src/dom/index.js"],"sourcesContent":["/* eslint-disable no-continue */\n\n/**\n * Checks if two sets of props are equal (recursively)\n *\n * @param {Object} props A\n * @param {Object} props B\n * @returns {Boolean} props equals?\n *\n */\nconst propsEqual = (a, b) => {\n  const oldPropsKeys = Object.keys(a);\n  const newPropsKeys = Object.keys(b);\n\n  if (oldPropsKeys.length !== newPropsKeys.length) {\n    return false;\n  }\n\n  for (let i = 0; i < oldPropsKeys.length; i += 1) {\n    const propName = oldPropsKeys[i];\n\n    if (propName === 'render' && !a[propName] !== !b[propName]) {\n      return false;\n    }\n\n    if (propName !== 'children' && a[propName] !== b[propName]) {\n      if (\n        typeof a[propName] === 'object' &&\n        typeof b[propName] === 'object' &&\n        propsEqual(a[propName], b[propName])\n      ) {\n        continue;\n      }\n\n      return false;\n    }\n\n    if (\n      propName === 'children' &&\n      (typeof a[propName] === 'string' || typeof b[propName] === 'string')\n    ) {\n      return a[propName] === b[propName];\n    }\n  }\n\n  return true;\n};\n\nexport default propsEqual;\n","/* eslint-disable no-unused-vars */\n/* eslint-disable no-param-reassign */\n\nimport ReactFiberReconciler from 'react-reconciler';\nimport {\n  unstable_scheduleCallback as schedulePassiveEffects,\n  unstable_cancelCallback as cancelPassiveEffects,\n} from 'scheduler';\n\nimport propsEqual from './utils/propsEqual';\n\nconst emptyObject = {};\n\nconst createRenderer = ({ onChange = () => {} }) => {\n  return ReactFiberReconciler({\n    schedulePassiveEffects,\n\n    cancelPassiveEffects,\n\n    supportsMutation: true,\n\n    isPrimaryRenderer: false,\n\n    warnsIfNotActing: false,\n\n    appendInitialChild(parentInstance, child) {\n      parentInstance.children.push(child);\n    },\n\n    createInstance(type, { style, children, ...props }) {\n      return {\n        type,\n        box: {},\n        style: style || {},\n        props: props || {},\n        children: [],\n      };\n    },\n\n    createTextInstance(text, rootContainerInstance) {\n      return { type: 'TEXT_INSTANCE', value: text };\n    },\n\n    finalizeInitialChildren(element, type, props) {\n      return false;\n    },\n\n    getPublicInstance(instance) {\n      return instance;\n    },\n\n    prepareForCommit() {\n      // Noop\n    },\n\n    clearContainer() {\n      // Noop\n    },\n\n    prepareUpdate(element, type, oldProps, newProps) {\n      return !propsEqual(oldProps, newProps);\n    },\n\n    resetAfterCommit: onChange,\n\n    resetTextContent(element) {\n      // Noop\n    },\n\n    getRootHostContext() {\n      return emptyObject;\n    },\n\n    getChildHostContext() {\n      return emptyObject;\n    },\n\n    shouldSetTextContent(type, props) {\n      return false;\n    },\n\n    now: Date.now,\n\n    useSyncScheduling: true,\n\n    appendChild(parentInstance, child) {\n      parentInstance.children.push(child);\n    },\n\n    appendChildToContainer(parentInstance, child) {\n      if (parentInstance.type === 'ROOT') {\n        parentInstance.document = child;\n      } else {\n        parentInstance.children.push(child);\n      }\n    },\n\n    insertBefore(parentInstance, child, beforeChild) {\n      const index = parentInstance.children?.indexOf(beforeChild);\n\n      if (index === undefined) return;\n\n      if (index !== -1 && child)\n        parentInstance.children.splice(index, 0, child);\n    },\n\n    removeChild(parentInstance, child) {\n      const index = parentInstance.children?.indexOf(child);\n\n      if (index === undefined) return;\n\n      if (index !== -1) parentInstance.children.splice(index, 1);\n    },\n\n    removeChildFromContainer(parentInstance, child) {\n      const index = parentInstance.children?.indexOf(child);\n\n      if (index === undefined) return;\n\n      if (index !== -1) parentInstance.children.splice(index, 1);\n    },\n\n    commitTextUpdate(textInstance, oldText, newText) {\n      textInstance.value = newText;\n    },\n\n    commitUpdate(instance, updatePayload, type, oldProps, newProps) {\n      const { style, ...props } = newProps;\n      instance.props = props;\n      instance.style = style;\n    },\n  });\n};\n\nexport default createRenderer;\n","import BlobStream from 'blob-stream';\nimport FontStore from '@react-pdf/font';\nimport renderPDF from '@react-pdf/render';\nimport PDFDocument from '@react-pdf/pdfkit';\nimport layoutDocument from '@react-pdf/layout';\n\nimport createRenderer from './renderer';\nimport { version } from '../package.json';\n\nconst fontStore = new FontStore();\n\n// We must keep a single renderer instance, otherwise React will complain\nlet renderer;\n\n// The pdf instance acts as an event emitter for DOM usage.\n// We only want to trigger an update when PDF content changes\nconst events = {};\n\nconst pdf = initialValue => {\n  const onChange = () => {\n    const listeners = events.change?.slice() || [];\n    for (let i = 0; i < listeners.length; i += 1) listeners[i]();\n  };\n\n  const container = { type: 'ROOT', document: null };\n  renderer = renderer || createRenderer({ onChange });\n  const mountNode = renderer.createContainer(container);\n\n  const updateContainer = doc => {\n    renderer.updateContainer(doc, mountNode, null);\n  };\n\n  if (initialValue) updateContainer(initialValue);\n\n  const render = async (compress = true) => {\n    const props = container.document.props || {};\n    const { pdfVersion, language } = props;\n\n    const ctx = new PDFDocument({\n      compress,\n      pdfVersion,\n      lang: language,\n      displayTitle: true,\n      autoFirstPage: false,\n    });\n\n    const layout = await layoutDocument(container.document, fontStore);\n\n    return renderPDF(ctx, layout);\n  };\n\n  const callOnRender = (params = {}) => {\n    if (container.document.props.onRender) {\n      container.document.props.onRender(params);\n    }\n  };\n\n  const toBlob = async () => {\n    const instance = await render();\n    const stream = instance.pipe(BlobStream());\n\n    return new Promise((resolve, reject) => {\n      stream.on('finish', () => {\n        try {\n          const blob = stream.toBlob('application/pdf');\n          callOnRender({ blob });\n          resolve(blob);\n        } catch (error) {\n          reject(error);\n        }\n      });\n\n      stream.on('error', reject);\n    });\n  };\n\n  const toBuffer = async () => {\n    callOnRender();\n    return render();\n  };\n\n  const toString = async () => {\n    let result = '';\n    const instance = await render(false); // For some reason, when rendering to string if compress=true the document is blank\n\n    return new Promise((resolve, reject) => {\n      try {\n        instance.on('data', buffer => {\n          result += buffer;\n        });\n\n        instance.on('end', () => {\n          callOnRender();\n          resolve(result);\n        });\n      } catch (error) {\n        reject(error);\n      }\n    });\n  };\n\n  const on = (event, listener) => {\n    if (!events[event]) events[event] = [];\n    events[event].push(listener);\n  };\n\n  const removeListener = (event, listener) => {\n    if (!events[event]) return;\n    const idx = events[event].indexOf(listener);\n    if (idx > -1) events[event].splice(idx, 1);\n  };\n\n  return {\n    on,\n    container,\n    toBlob,\n    toBuffer,\n    toString,\n    removeListener,\n    updateContainer,\n  };\n};\n\nconst Font = fontStore;\n\nconst StyleSheet = {\n  create: s => s,\n};\n\nexport { version, Font, StyleSheet, pdf, createRenderer };\n","/* eslint-disable no-console */\n\nimport queue from 'queue';\nimport { useState, useRef, useEffect } from 'react';\n\nimport { pdf } from '../index';\n\nexport const usePDF = ({ document }) => {\n  const pdfInstance = useRef(null);\n\n  const [state, setState] = useState({\n    url: null,\n    blob: null,\n    error: null,\n    loading: false,\n  });\n\n  // Setup rendering queue\n  useEffect(() => {\n    const renderQueue = queue({ autostart: true, concurrency: 1 });\n\n    const queueDocumentRender = () => {\n      setState(prev => ({ ...prev, loading: true }));\n\n      renderQueue.splice(0, renderQueue.length, () =>\n        state.error ? Promise.resolve() : pdfInstance.current.toBlob(),\n      );\n    };\n\n    const onRenderFailed = error => {\n      console.error(error);\n      setState(prev => ({ ...prev, error }));\n    };\n\n    const onRenderSuccessful = blob => {\n      setState({\n        blob,\n        error: null,\n        loading: false,\n        url: URL.createObjectURL(blob),\n      });\n    };\n\n    pdfInstance.current = pdf();\n    pdfInstance.current.on('change', queueDocumentRender);\n    pdfInstance.current.updateContainer(document);\n\n    renderQueue.on('error', onRenderFailed);\n    renderQueue.on('success', onRenderSuccessful);\n\n    return () => {\n      renderQueue.end();\n      pdfInstance.current.removeListener('change', queueDocumentRender);\n    };\n  }, []);\n\n  // Revoke old unused url instances\n  useEffect(() => {\n    return () => {\n      if (state.url) {\n        URL.revokeObjectURL(state.url);\n      }\n    };\n  }, [state.url]);\n\n  const update = () => {\n    pdfInstance.current.updateContainer(document);\n  };\n\n  return [state, update];\n};\n\nexport default usePDF;\n","/* eslint-disable no-console */\n/* eslint-disable react/jsx-props-no-spreading */\n\nimport React, { useEffect } from 'react';\n\nimport usePDF from './usePDF';\n\nexport const PDFViewer = ({\n  title,\n  style,\n  className,\n  children,\n  innerRef,\n  showToolbar = true,\n  ...props\n}) => {\n  const [instance, updateInstance] = usePDF({ document: children });\n\n  useEffect(updateInstance, [children]);\n\n  const src = instance.url\n    ? `${instance.url}#toolbar=${showToolbar ? 1 : 0}`\n    : null;\n\n  return (\n    <iframe\n      src={src}\n      title={title}\n      ref={innerRef}\n      style={style}\n      className={className}\n      {...props}\n    />\n  );\n};\n\nexport default PDFViewer;\n","/* eslint-disable no-console */\n\nimport { useEffect } from 'react';\n\nimport usePDF from './usePDF';\n\nexport const BlobProvider = ({ document: doc, children }) => {\n  const [instance, updateInstance] = usePDF({ document: doc });\n\n  useEffect(updateInstance, [doc]);\n\n  if (!doc) {\n    console.warn('You should pass a valid document to BlobProvider');\n    return null;\n  }\n\n  return children(instance);\n};\n\nexport default BlobProvider;\n","/* eslint-disable no-console */\n\nimport React, { useEffect } from 'react';\n\nimport usePDF from './usePDF';\n\nexport const PDFDownloadLink = ({\n  style,\n  children,\n  className,\n  document: doc,\n  fileName = 'document.pdf',\n}) => {\n  const [instance, updateInstance] = usePDF({ document: doc });\n\n  useEffect(updateInstance, [children]);\n\n  if (!doc) {\n    console.warn('You should pass a valid document to PDFDownloadLink');\n    return null;\n  }\n\n  const handleDownloadIE = () => {\n    if (window.navigator.msSaveBlob) {\n      // IE\n      window.navigator.msSaveBlob(instance.blob, fileName);\n    }\n  };\n\n  return (\n    <a\n      style={style}\n      href={instance.url}\n      download={fileName}\n      className={className}\n      onClick={handleDownloadIE}\n    >\n      {typeof children === 'function' ? children(instance) : children}\n    </a>\n  );\n};\n\nexport default PDFDownloadLink;\n","import * as primitives from '@react-pdf/primitives';\n\nimport usePDF from './usePDF';\nimport PDFViewer from './PDFViewer';\nimport BlobProvider from './BlobProvider';\nimport PDFDownloadLink from './PDFDownloadLink';\nimport { pdf, version, Font, StyleSheet } from '../index';\n\nconst throwEnvironmentError = name => {\n  throw new Error(\n    `${name} is a Node specific API. You're either using this method in a browser, or your bundler is not loading react-pdf from the appropriate web build.`,\n  );\n};\n\nexport const renderToStream = () => {\n  throwEnvironmentError('renderToStream');\n};\n\nexport const renderToString = () => {\n  throwEnvironmentError('renderToString');\n};\n\nexport const renderToFile = () => {\n  throwEnvironmentError('renderToFile');\n};\n\nexport const render = () => {\n  throwEnvironmentError('render');\n};\n\nexport * from '../index';\n\nexport * from './usePDF';\n\nexport * from './PDFViewer';\n\nexport * from './BlobProvider';\n\nexport * from './PDFDownloadLink';\n\nexport * from '@react-pdf/primitives';\n\nexport default {\n  pdf,\n  usePDF,\n  Font,\n  version,\n  StyleSheet,\n  PDFViewer,\n  BlobProvider,\n  PDFDownloadLink,\n  renderToStream,\n  renderToString,\n  renderToFile,\n  render,\n  ...primitives,\n};\n"],"names":["propsEqual","a","b","oldPropsKeys","Object","keys","newPropsKeys","length","i","propName","emptyObject","createRenderer","onChange","ReactFiberReconciler","schedulePassiveEffects","cancelPassiveEffects","supportsMutation","isPrimaryRenderer","warnsI<response clipped><NOTE>Due to the max output limit, only part of the full response has been shown to you.</NOTE>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
packages/pdfkit/src/font/data/Courier-Bold.b64.afm:1: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
[The command completed with exit code 0.]
[Current working directory: /workspace/react-pdf]
[Python interpreter: /usr/bin/python]
[Command finished with exit code 0]