<template>
  <div style="flex: 0 0 100%">
    <div style="margin: 0 auto; max-width: 600px" flex justify-center gap-3>
      <n-form-item label="Sort keys :" label-placement="left" label-width="100">
        <n-switch v-model:value="sortKeys" />
      </n-form-item>
      <n-form-item label="Indent size :" label-placement="left" label-width="100" :show-feedback="false">
        <n-input-number v-model:value="indentSize" min="0" max="10" style="width: 100px" />
      </n-form-item>
    </div>
  </div>

  <n-form-item
    label="Your raw json"
    :feedback="rawJsonValidation.message"
    :validation-status="rawJsonValidation.status"
  >
    <n-input
      ref="inputElement"
      v-model:value="rawJson"
      placeholder="Paste your raw json here..."
      type="textarea"
      rows="20"
      autocomplete="off"
      autocorrect="off"
      autocapitalize="off"
      spellcheck="false"
    />
  </n-form-item>
  <n-form-item label="Prettify version of your json">
    <textarea-copyable :value="cleanJson" language="json" :follow-height-of="inputElement" />
  </n-form-item>
</template>

<script setup lang="ts">
import TextareaCopyable from '@/components/TextareaCopyable.vue';
import { useValidation } from '@/composable/validation';
import { withDefaultOnError } from '@/utils/defaults';
import { computed, ref } from 'vue';
import JSON5 from 'json5';
import { useStorage } from '@vueuse/core';
import { formatJson } from './json.models';

const inputElement = ref<HTMLElement>();

const rawJson = useStorage('json-prettify:raw-json', '{"hello": "world", "foo": "bar"}');
const indentSize = useStorage('json-prettify:indent-size', 3);
const sortKeys = useStorage('json-prettify:sort-keys', true);
const cleanJson = computed(() => withDefaultOnError(() => formatJson({ rawJson, indentSize, sortKeys }), ''));

const rawJsonValidation = useValidation({
  source: rawJson,
  rules: [
    {
      validator: (v) => v === '' || JSON5.parse(v),
      message: 'Provided JSON is not valid.',
    },
  ],
});
</script>

<style lang="less" scoped>
.result-card {
  position: relative;
  .copy-button {
    position: absolute;
    top: 10px;
    right: 10px;
  }
}
</style>
sert-double-is-valid'>dave/assert-double-is-valid</option>
<option value='dave/bundler-string-length'>dave/bundler-string-length</option>
<option value='dave/es5-class-helper'>dave/es5-class-helper</option>
<option value='dave/import.meta.resolve'>dave/import.meta.resolve</option>
<option value='dave/install-tag-without-dash'>dave/install-tag-without-dash</option>
<option value='dave/lol'>dave/lol</option>
<option value='dave/nodemodule-preloadmodules'>dave/nodemodule-preloadmodules</option>
<option value='dave/postinstall'>dave/postinstall</option>
<option value='dave/postinstall_2'>dave/postinstall_2</option>
<option value='dave/remove-native-event'>dave/remove-native-event</option>
<option value='dave/zlib'>dave/zlib</option>
<option value='debugger-dev'>debugger-dev</option>
<option value='derrick/fix/bindings-mark-jscinitialize'>derrick/fix/bindings-mark-jscinitialize</option>
<option value='derrick/fix/event-emitter-async-iter'>derrick/fix/event-emitter-async-iter</option>
<option value='derrick/fix/event-emitter-emit-throw-native'>derrick/fix/event-emitter-emit-throw-native</option>
<option value='derrick/fix/http-lowercase-headers'>derrick/fix/http-lowercase-headers</option>
<option value='derrick/fix/node-tests'>derrick/fix/node-tests</option>
<option value='derrick/test/add-ed25519-tests'>derrick/test/add-ed25519-tests</option>
<option value='detect-libc'>detect-libc</option>
<option value='doc/0.8'>doc/0.8</option>
<option value='dylan/callback-fulfilled-after-rejection'>dylan/callback-fulfilled-after-rejection</option>
<option value='dylan/change-pathname-assert'>dylan/change-pathname-assert</option>
<option value='dylan/cli-fixes'>dylan/cli-fixes</option>
<option value='dylan/encoding-fix'>dylan/encoding-fix</option>
<option value='dylan/fix-bundling-lodash-es-is-buffer'>dylan/fix-bundling-lodash-es-is-buffer</option>
<option value='dylan/fix-error-inlining'>dylan/fix-error-inlining</option>
<option value='dylan/fix-module-field-in-exports'>dylan/fix-module-field-in-exports</option>
<option value='dylan/github-api-option'>dylan/github-api-option</option>
<option value='dylan/github-dependencies'>dylan/github-dependencies</option>
<option value='dylan/import-file-path'>dylan/import-file-path</option>
<option value='dylan/non-enumerable-export-values'>dylan/non-enumerable-export-values</option>
<option value='dylan/resolve-rope-in-string'>dylan/resolve-rope-in-string</option>
<option value='dylan/set-exit-code'>dylan/set-exit-code</option>
<option value='dylan/source-map-names-property'>dylan/source-map-names-property</option>
<option value='eventstream'>eventstream</option>
<option value='feat/ecosystem'>feat/ecosystem</option>
<option value='feat/npm'>feat/npm</option>
<option value='fix'>fix</option>
<option value='fix-prepare-stack-trace'>fix-prepare-stack-trace</option>
<option value='fix-websocket-upgrade'>fix-websocket-upgrade</option>
<option value='fs-watch-file'>fs-watch-file</option>
<option value='got'>got</option>
<option value='guides-3'>guides-3</option>
<option value='improve-docker'>improve-docker</option>
<option value='insensitive-pkg-names'>insensitive-pkg-names</option>
<option value='integration-tests'>integration-tests</option>
<option value='jarred/5859'>jarred/5859</option>
<option value='jarred/actions'>jarred/actions</option>
<option value='jarred/add-git'>jarred/add-git</option>
<option value='jarred/analytics'>jarred/analytics</option>
<option value='jarred/arenas'>jarred/arenas</option>
<option value='jarred/ast'>jarred/ast</option>
<option value='jarred/ast-again'>jarred/ast-again</option>
<option value='jarred/async_bio'>jarred/async_bio</option>
<option value='jarred/bench'>jarred/bench</option>
<option value='jarred/brotli'>jarred/brotli</option>
<option value='jarred/bump-uws'>jarred/bump-uws</option>
<option value='jarred/bundle-workspace-packages'>jarred/bundle-workspace-packages</option>
<option value='jarred/bunfig'>jarred/bunfig</option>
<option value='jarred/callable'>jarred/callable</option>
<option value='jarred/canvas'>jarred/canvas</option>
<option value='jarred/ci-check'>jarred/ci-check</option>
<option value='jarred/cjs2'>jarred/cjs2</option>
<option value='jarred/cleanup-error'>jarred/cleanup-error</option>
<option value='jarred/clipboard-objc'>jarred/clipboard-objc</option>
<option value='jarred/direct'>jarred/direct</option>
<option value='jarred/dump'>jarred/dump</option>
<option value='jarred/edgecase'>jarred/edgecase</option>
<option value='jarred/esbuild-plugin-api'>jarred/esbuild-plugin-api</option>
<option value='jarred/escapeHTML'>jarred/escapeHTML</option>
<option value='jarred/esm-conditions'>jarred/esm-conditions</option>
<option value='jarred/experiment-bsp'>jarred/experiment-bsp</option>
<option value='jarred/export-star-flat'>jarred/export-star-flat</option>
<option value='jarred/exports-map'>jarred/exports-map</option>
<option value='jarred/faster-error-capturestacktrace'>jarred/faster-error-capturestacktrace</option>
<option value='jarred/faster-ordered-properties'>jarred/faster-ordered-properties</option>
<option value='jarred/fastmalloc'>jarred/fastmalloc</option>
<option value='jarred/fetch-experiment'>jarred/fetch-experiment</option>
<option value='jarred/fetchheaders'>jarred/fetchheaders</option>
<option value='jarred/fix-blob-slice-test'>jarred/fix-blob-slice-test</option>
<option value='jarred/fix-bunbun-on-wsl'>jarred/fix-bunbun-on-wsl</option>
<option value='jarred/fix-crash'>jarred/fix-crash</option>
<option value='jarred/fix-http-compression'>jarred/fix-http-compression</option>
<option value='jarred/fix-issue-with-tsconfig-run'>jarred/fix-issue-with-tsconfig-run</option>
<option value='jarred/fix-proxy-regression'>jarred/fix-proxy-regression</option>
<option value='jarred/fixes-3129'>jarred/fixes-3129</option>
<option value='jarred/gen'>jarred/gen</option>
<option value='jarred/htmlrewriter'>jarred/htmlrewriter</option>
<option value='jarred/improve-testing'>jarred/improve-testing</option>
<option value='jarred/inquirer'>jarred/inquirer</option>
<option value='jarred/isolation'>jarred/isolation</option>
<option value='jarred/jsc'>jarred/jsc</option>
<option value='jarred/land'>jarred/land</option>
<option value='jarred/landing'>jarred/landing</option>
<option value='jarred/linux' selected='selected'>jarred/linux</option>
<option value='jarred/live-bindings'>jarred/live-bindings</option>
<option value='jarred/make-strings-better'>jarred/make-strings-better</option>
<option value='jarred/mdx-thrwawy'>jarred/mdx-thrwawy</option>
<option value='jarred/move'>jarred/move</option>
<option value='jarred/napi'>jarred/napi</option>
<option value='jarred/new-bund'>jarred/new-bund</option>
<option value='jarred/new-bund-ressurected-branch'>jarred/new-bund-ressurected-branch</option>
<option value='jarred/new-http'>jarred/new-http</option>
<option value='jarred/no-more-npm'>jarred/no-more-npm</option>
<option value='jarred/package-mapper'>jarred/package-mapper</option>
<option value='jarred/pg'>jarred/pg</option>
<option value='jarred/port'>jarred/port</option>
<option value='jarred/possibly-2732'>jarred/possibly-2732</option>
<option value='jarred/postgresql'>jarred/postgresql</option>
<option value='jarred/precompile-linux-dependencies'>jarred/precompile-linux-dependencies</option>
<option value='jarred/prepare-for-libuv'>jarred/prepare-for-libuv</option>
<option value='jarred/profiled-call'>jarred/profiled-call</option>
<option value='jarred/read-tsconfig-jsx'>jarred/read-tsconfig-jsx</option>
<option value='jarred/redo-evaluation-order'>jarred/redo-evaluation-order</option>
<option value='jarred/redo-zigstring-for-utf16'>jarred/redo-zigstring-for-utf16</option>
<option value='jarred/relay'>jarred/relay</option>
<option value='jarred/rename'>jarred/rename</option>
<option value='jarred/repl'>jarred/repl</option>
<option value='jarred/request-finalizer'>jarred/request-finalizer</option>
<option value='jarred/rewrite-router'>jarred/rewrite-router</option>
<option value='jarred/run'>jarred/run</option>
<option value='jarred/simdjson'>jarred/simdjson</option>
<option value='jarred/simplify'>jarred/simplify</option>
<option value='jarred/some-fixes-for-eventsource'>jarred/some-fixes-for-eventsource</option>
<option value='jarred/standalone-repro1'>jarred/standalone-repro1</option>
<option value='jarred/start'>jarred/start</option>
<option value='jarred/strong'>jarred/strong</option>
<option value='jarred/subprocess'>jarred/subprocess</option>
<option value='jarred/support-tee'>jarred/support-tee</option>
<option value='jarred/tcc'>jarred/tcc</option>
<option value='jarred/throw-if'>jarred/throw-if</option>
<option value='jarred/update-install-stuff'>jarred/update-install-stuff</option>
<option value='jarred/update-zig1'>jarred/update-zig1</option>
<option value='jarred/upgrade-zig-2'>jarred/upgrade-zig-2</option>
<option value='jarred/uws'>jarred/uws</option>
<option value='jarred/webkit-upgrade-may-17'>jarred/webkit-upgrade-may-17</option>
<option value='jarred/wip-more-reliable'>jarred/wip-more-reliable</option>
<option value='jarred/workers'>jarred/workers</option>
<option value='jarred/zlib'>jarred/zlib</option>
<option value='jarred/zls'>jarred/zls</option>
<option value='lithdew/picohttp-mimalloc'>lithdew/picohttp-mimalloc</option>
<option value='main'>main</option>
<option value='move-templates'>move-templates</option>
<option value='nestjs-guide'>nestjs-guide</option>
<option value='next-cleanup'>next-cleanup</option>
<option value='origin/main'>origin/main</option>
<option value='plugin/plugindata'>plugin/plugindata</option>
<option value='plugin/resolvedir'>plugin/resolvedir</option>
<option value='postinstall_3'>postinstall_3</option>
<option value='repl'>repl</option>
<option value='request-body-stream'>request-body-stream</option>
<option value='reserve-commands'>reserve-commands</option>
<option value='revert-5167-dylan/decode-regex-if-needed'>revert-5167-dylan/decode-regex-if-needed</option>
<option value='rfc/bun-bundler-api'>rfc/bun-bundler-api</option>
<option value='rfc/bunfig-overhaul'>rfc/bunfig-overhaul</option>
<option value='save-in-update'>save-in-update</option>
<option value='sdl'>sdl</option>
<option value='test/action'>test/action</option>
<option value='types/mock'>types/mock</option>
<option value='types/readable-stream-default'>types/readable-stream-default</option>
<option value='types/tty'>types/tty</option>
<option value='u/vjpr/zig-0.10'>u/vjpr/zig-0.10</option>
<option value='xHyroM/types/expose-Bun-Env'>xHyroM/types/expose-Bun-Env</option>
</select> <input type='submit' value='switch'/></form></td></tr>
<tr><td class='sub'>Unnamed repository; edit this file 'description' to name the repository.</td><td class='sub right'></td></tr></table>
<table class='tabs'><tr><td>
<a href='/ansg191/bun/about/?h=jarred/linux'>about</a><a href='/ansg191/bun/?h=jarred/linux'>summary</a><a href='/ansg191/bun/refs/?h=jarred/linux'>refs</a><a class='active' href='/ansg191/bun/log/integration/snapshots/string-escapes.debug.js?h=jarred/linux&amp;showmsg=1&amp;follow=1'>log</a><a href='/ansg191/bun/tree/integration/snapshots/string-escapes.debug.js?h=jarred/linux'>tree</a><a href='/ansg191/bun/commit/integration/snapshots/string-escapes.debug.js?h=jarred/linux&amp;follow=1'>commit</a><a href='/ansg191/bun/diff/integration/snapshots/string-escapes.debug.js?h=jarred/linux&amp;follow=1'>diff</a></td><td class='form'><form class='right' method='get' action='/ansg191/bun/log/integration/snapshots/string-escapes.debug.js'>
<input type='hidden' name='h' value='jarred/linux'/><input type='hidden' name='showmsg' value='1'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/ansg191/bun/log/?h=jarred/linux&amp;showmsg=1&amp;follow=1'>root</a>/<a href='/ansg191/bun/log/integration?h=jarred/linux&amp;showmsg=1&amp;follow=1'>integration</a>/<a href='/ansg191/bun/log/integration/snapshots?h=jarred/linux&amp;showmsg=1&amp;follow=1'>snapshots</a>/<a href='/ansg191/bun/log/integration/snapshots/string-escapes.debug.js?h=jarred/linux&amp;showmsg=1&amp;follow=1'>string-escapes.debug.js</a> (<a href='/ansg191/bun/log/integration/snapshots/string-escapes.debug.js?h=jarred/linux&amp;showmsg=1'>unfollow</a>)</div><div class='content'><table class='list nowrap'><tr class='nohover'><th class='left'>Age</th><th class='left'>Commit message (<a href='/ansg191/bun/log/integration/snapshots/string-escapes.debug.js?h=jarred/linux&amp;follow=1'>Collapse</a>)</th><th class='left'>Author</th><th class='left'>Files</th><th class='left'>Lines</th></tr>
<tr class='logheader'><td><span title='2021-10-03 02:22:00 -0700'>2021-10-03</span></td><td class='logsubject'><a href='/ansg191/bun/commit/src/main.zig?h=jarred/linux&amp;id=f4a4e793aa964ba2d0883a19205c32ec01eaf8f0&amp;follow=1'>Add Three.js benchmark</a></td><td><img src='//www.gravatar.com/avatar/764ea52180f7f5236744034dd5e1a3c0?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Jarred SUmner
</td><td>5</td><td><span class='deletions'>-14</span>/<span class='insertions'>+33</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-10-02 22:54:19 -0700'>2021-10-02</span></td><td class='logsubject'><a href='/ansg191/bun/commit/src/watcher.zig?h=jarred/linux&amp;id=cdabcfd9d09d2f4928ba7a918f654e001bb3c2eb&amp;follow=1'>Linux works now.</a></td><td><img src='//www.gravatar.com/avatar/764ea52180f7f5236744034dd5e1a3c0?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Jarred SUmner
</td><td>21</td><td><span class='deletions'>-100</span>/<span class='insertions'>+320</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-10-01 22:41:59 -0700'>2021-10-01</span></td><td class='logsubject'><a href='/ansg191/bun/commit/src/watcher.zig?h=jarred/linux&amp;id=ac7a96b088bce9e9703e6501a0546357b3a33faf&amp;follow=1'>Add support for INotify-based filesystem watcher</a></td><td><img src='//www.gravatar.com/avatar/764ea52180f7f5236744034dd5e1a3c0?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Jarred Sumner
</td><td>6</td><td><span class='deletions'>-93</span>/<span class='insertions'>+287</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-10-01 15:05:34 -0700'>2021-10-01</span></td><td class='logsubject'><a href='/ansg191/bun/commit/src/runtime.version?h=jarred/linux&amp;id=222027991f65c6520b747b4d3f3be6dec14083ff&amp;follow=1'>Build stuff</a></td><td><img src='//www.gravatar.com/avatar/764ea52180f7f5236744034dd5e1a3c0?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Jarred SUmner
</td><td>9</td><td><span class='deletions'>-1371</span>/<span class='insertions'>+71</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-10-01 15:02:17 -0700'>2021-10-01</span></td><td class='logsubject'><a href='/ansg191/bun/commit/src/javascript/jsc/WebKit?h=jarred/linux&amp;id=5bb5091fe0134f4fd5dd9133da2280736363b3f4&amp;follow=1'>Bump webkit</a></td><td><img src='//www.gravatar.com/avatar/764ea52180f7f5236744034dd5e1a3c0?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Jarred Sumner
</td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+0</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-10-01 02:06:35 -0700'>2021-10-01</span></td><td class='logsubject'><a href='/ansg191/bun/commit/src/watcher.zig?h=jarred/linux&amp;id=c8127d0ae6f7e1efa3e514411bc08d21ff22cbdc&amp;follow=1'>Split out the macOS specific parts</a></td><td><img src='//www.gravatar.com/avatar/764ea52180f7f5236744034dd5e1a3c0?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Jarred Sumner
</td><td>4</td><td><span class='deletions'>-207</span>/<span class='insertions'>+238</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-30 23:37:33 -0700'>2021-09-30</span></td><td class='logsubject'><a href='/ansg191/bun/commit/packages/bun-macro-relay/README.md?h=jarred/linux&amp;id=8764fa6d4e1c32b4fce90a2ac7db2f14d50b354a&amp;follow=1'>Update README.md</a></td><td><img src='//www.gravatar.com/avatar/764ea52180f7f5236744034dd5e1a3c0?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Jarred Sumner
</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-30 23:37:03 -0700'>2021-09-30</span></td><td class='logsubject'><a href='/ansg191/bun/commit/packages/bun-macro-relay/README.md?h=jarred/linux&amp;id=86b7b5b8d8b2ea951f369f9e91a77ae0e42ce026&amp;follow=1'>Update README.md</a></td><td><img src='//www.gravatar.com/avatar/764ea52180f7f5236744034dd5e1a3c0?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Jarred Sumner
</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-30 23:34:20 -0700'>2021-09-30</span></td><td class='logsubject'><a href='/ansg191/bun/commit/packages/bun-macro-relay/README.md?h=jarred/linux&amp;id=127426f506f7c145303652ff006d49f034d8dc5d&amp;follow=1'>Update README.md</a></td><td><img src='//www.gravatar.com/avatar/764ea52180f7f5236744034dd5e1a3c0?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Jarred Sumner
</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-30 23:33:28 -0700'>2021-09-30</span></td><td class='logsubject'><a href='/ansg191/bun/commit/packages/bun-macro-relay/README.md?h=jarred/linux&amp;id=09cc970b9ee25ce0f83dbe6e3f2daf572545c0fd&amp;follow=1'>Update README.md</a></td><td><img src='//www.gravatar.com/avatar/764ea52180f7f5236744034dd5e1a3c0?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Jarred Sumner
</td><td>1</td><td><span class='deletions'>-5</span>/<span class='insertions'>+5</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-30 23:29:19 -0700'>2021-09-30</span></td><td class='logsubject'><a href='/ansg191/bun/commit/packages/bun-macro-relay/package.json?h=jarred/linux&amp;id=03f7c5be1f8d9ed2e91d0a96f6ac4ebb5a6af77c&amp;follow=1'>Fix up readme</a></td><td><img src='//www.gravatar.com/avatar/764ea52180f7f5236744034dd5e1a3c0?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Jarred Sumner
</td><td>2</td><td><span class='deletions'>-9</span>/<span class='insertions'>+24</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-30 23:22:35 -0700'>2021-09-30</span></td><td class='logsubject'><a href='/ansg191/bun/commit/src/runtime.version?h=jarred/linux&amp;id=4ecf5136626dae34ea1e3f74a69b040f193c0e3a&amp;follow=1'>Bump version</a></td><td><img src='//www.gravatar.com/avatar/764ea52180f7f5236744034dd5e1a3c0?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Jarred Sumner
</td><td>3</td><td><span class='deletions'>-3</span>/<span class='insertions'>+3</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-30 23:22:28 -0700'>2021-09-30</span></td><td class='logsubject'><a href='/ansg191/bun/commit/packages/bun-macro-relay/package.json?h=jarred/linux&amp;id=76b450386f3049cbfd1597975ff58ec23efdf4e0&amp;follow=1'>Add a readme</a></td><td><img src='//www.gravatar.com/avatar/764ea52180f7f5236744034dd5e1a3c0?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Jarred Sumner
</td><td>3</td><td><span class='deletions'>-3</span>/<span class='insertions'>+119</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-30 22:38:03 -0700'>2021-09-30</span></td><td class='logsubject'><a href='/ansg191/bun/commit/build-id?h=jarred/linux&amp;id=38a54898a3bd9ffc2b23b2f7d81eed612ef782d7&amp;follow=1'>Bump build-id</a><span class='decoration'><a class='tag-deco' href='/ansg191/bun/tag/?h=bun-v0.0.27'>bun-v0.0.27</a><a class='branch-deco' href='/ansg191/bun/log/build-id?h=jarred/relay&amp;showmsg=1'>jarred/relay</a></span></td><td><img src='//www.gravatar.com/avatar/764ea52180f7f5236744034dd5e1a3c0?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Jarred Sumner
</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-30 22:37:57 -0700'>2021-09-30</span></td><td class='logsubject'><a href='/ansg191/bun/commit/src/runtime.version?h=jarred/linux&amp;id=147d1f395121d0139ca93122154ef9def41ca2d2&amp;follow=1'>runtime.version</a></td><td><img src='//www.gravatar.com/avatar/764ea52180f7f5236744034dd5e1a3c0?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Jarred Sumner
</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-30 22:37:46 -0700'>2021-09-30</span></td><td class='logsubject'><a href='/ansg191/bun/commit/integration/snapshots/void-shouldnt-delete-call-expressions.hmr.debug.js?h=jarred/linux&amp;id=d47419f4711c562e4b4b1642406cb29e326201c2&amp;follow=1'>Snapshots</a></td><td><img src='//www.gravatar.com/avatar/764ea52180f7f5236744034dd5e1a3c0?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Jarred Sumner
</td><td>9</td><td><span class='deletions'>-36</span>/<span class='insertions'>+63</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
