{
  "_id": "6a48df65b5e98c4082a013c1",
  "Package": "jgd",
  "Title": "JSON Graphics Device",
  "Version": "0.1.1",
  "Authors@R": "c(\nperson(\"Grant\", \"McDermott\", role = c(\"aut\", \"cre\"),\nemail = \"contact@grantmcdermott.com\"),\nperson(\"Tatsuya\", \"Shima\", role = \"aut\",\nemail = \"ts1s1andn@gmail.com\"),\nperson(\"Dave\", \"Gamble\", role = \"cph\",\ncomment = \"cJSON library in src/cjson/\"),\nperson(\"cJSON contributors\", role = \"cph\",\ncomment = \"cJSON library in src/cjson/\")\n)",
  "Description": "A graphics device that translates R plotting operations\ninto JSON and streams them over a local connection to an\nexternal display application. The device acts as a pure\nrecorder with no rendering dependencies; all rendering occurs\nin that application (e.g. a 'VS Code' extension or a web\nbrowser). Official display applications are available from the\nproject homepage.",
  "License": "MIT + file LICENSE",
  "Copyright": "file inst/COPYRIGHTS",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "NeedsCompilation": "yes",
  "URL": "https://github.com/grantmcdermott/jgd",
  "BugReports": "https://github.com/grantmcdermott/jgd/issues",
  "Config/testthat/edition": "3",
  "Config/roxygen2/version": "8.0.0",
  "Repository": "https://grantmcdermott.r-universe.dev",
  "Date/Publication": "2026-07-01 00:57:14 UTC",
  "RemoteUrl": "https://github.com/grantmcdermott/jgd",
  "RemoteRef": "HEAD",
  "RemoteSha": "d5541dee61ca9f1d51a8cd47668b5f7d0eeb5e38",
  "RemoteSubdir": "r-pkg",
  "Packaged": {
    "Date": "2026-07-04 09:53:51 UTC",
    "User": "root"
  },
  "Author": "Grant McDermott [aut, cre],\nTatsuya Shima [aut],\nDave Gamble [cph] (cJSON library in src/cjson/),\ncJSON contributors [cph] (cJSON library in src/cjson/)",
  "Maintainer": "Grant McDermott <contact@grantmcdermott.com>",
  "_user": "grantmcdermott",
  "_type": "src",
  "_file": "jgd_0.1.1.tar.gz",
  "_fileid": "https://r2.ropensci.org/fddb379d4f8b4980af6c33106f36285f3614d2b7049e313d997ca6aae67d2e28",
  "_filesize": 247233,
  "_sha256": "fddb379d4f8b4980af6c33106f36285f3614d2b7049e313d997ca6aae67d2e28",
  "_expires": "2026-10-12T10:24:36.000Z",
  "_created": "2026-07-04T09:53:51.000Z",
  "_published": "2026-07-04T10:24:37.800Z",
  "_jobs": [
    {
      "job": 85122826378,
      "time": 250,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8080664204"
    },
    {
      "job": 85122826376,
      "time": 238,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8080662709"
    },
    {
      "job": 85122826398,
      "time": 244,
      "config": "linux-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8080663590"
    },
    {
      "job": 85122826409,
      "time": 239,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8080662725"
    },
    {
      "job": 85122826381,
      "time": 204,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8080836690"
    },
    {
      "job": 85122826389,
      "time": 351,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8080676073"
    },
    {
      "job": 85122826380,
      "time": 206,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8080829030"
    },
    {
      "job": 85122826370,
      "time": 367,
      "config": "macos-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8080677377"
    },
    {
      "job": 85122682299,
      "time": 151,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8080635990"
    },
    {
      "job": 85122826336,
      "time": 103,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "8080647840"
    },
    {
      "job": 85122826363,
      "time": 167,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8080654898"
    },
    {
      "job": 85122826349,
      "time": 158,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8080654086"
    },
    {
      "job": 85122826345,
      "time": 173,
      "config": "windows-release",
      "r": "4.6.1",
      "check": "ERROR",
      "artifact": "8080655625"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/grantmcdermott/actions/runs/28495693429",
  "_status": "success",
  "_upstream": "https://github.com/grantmcdermott/jgd",
  "_commit": {
    "id": "d5541dee61ca9f1d51a8cd47668b5f7d0eeb5e38",
    "author": "eitsupi <50911393+eitsupi@users.noreply.github.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "docs(server): document Windows -A requirement for named pipes (#70)\n\n## Summary\n- Windows named-pipe binding always falls into Deno's `check_has_all_permissions`, which only `-A`/`--allow-all` can satisfy — no combination of scoped `--allow-net`/`--allow-read`/`--allow-write`/`--allow-env` works (confirmed by reading Deno's `check_special_file`, the same regression fixed for the test tasks in #69).\n- `server/deno.json`'s `start`/`dev` tasks were left scoped in #69 since they aren't exercised by CI, but that means real Windows users following the README's quick-start hit this wall. Unify `start`/`dev` to `-A` (matching `test`/`test:e2e`) since `deno.json` tasks can't branch by OS.\n- Update the README's Deno-server quick-start with an explicit Windows command (`-A`) alongside the macOS/Linux one, and a callout documenting a `--tcp <port>` fallback for users who want to keep permissions scoped on Windows (bypasses named pipes entirely).\n\n## Upstream context\n\nThis isn't something jgd can fix on its own — it's Deno's permission model:\n\n- [denoland/deno#26045](https://github.com/denoland/deno/issues/26045) covers the same underlying code path (Windows device/network paths falling into `check_special_file` → `check_has_all_permissions` with no scoped alternative and no prompt), though it doesn't name named pipes specifically.\n- [denoland/deno#35617](https://github.com/denoland/deno/issues/35617) is a more general, more recent complaint about the same class of problem: Deno throwing `NotCapable` without ever offering a permission prompt for the missing grant, which matches what we hit here.\n- We're forced through this code path at all because `Deno.connect` has no native named-pipe transport ([denoland/deno#10244](https://github.com/denoland/deno/issues/10244)), so named-pipe support goes through the `node:net` compat layer's `PipeWrap`, which is what trips the all-or-nothing check.\n- There is precedent for Deno carving out narrower exceptions for specific special-file case",
    "time": 1782867434
  },
  "_maintainer": {
    "name": "Grant McDermott",
    "email": "contact@grantmcdermott.com"
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "callr",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "jsonlite",
      "role": "Suggests"
    },
    {
      "package": "processx",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    }
  ],
  "_owner": "grantmcdermott",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-06",
      "n": 24
    },
    {
      "week": "2026-07",
      "n": 31
    },
    {
      "week": "2026-08",
      "n": 5
    },
    {
      "week": "2026-09",
      "n": 14
    },
    {
      "week": "2026-10",
      "n": 2
    },
    {
      "week": "2026-12",
      "n": 7
    },
    {
      "week": "2026-13",
      "n": 6
    },
    {
      "week": "2026-14",
      "n": 3
    },
    {
      "week": "2026-17",
      "n": 3
    },
    {
      "week": "2026-18",
      "n": 5
    },
    {
      "week": "2026-19",
      "n": 2
    },
    {
      "week": "2026-20",
      "n": 1
    },
    {
      "week": "2026-23",
      "n": 2
    },
    {
      "week": "2026-27",
      "n": 5
    }
  ],
  "_tags": [
    {
      "name": "v0.1.0",
      "date": "2026-04-29"
    },
    {
      "name": "nightly",
      "date": "2026-06-04"
    },
    {
      "name": "v0.1.1",
      "date": "2026-06-30"
    }
  ],
  "_stars": 48,
  "_contributors": [
    {
      "user": "eitsupi",
      "count": 310,
      "uuid": 50911393
    },
    {
      "user": "grantmcdermott",
      "count": 75,
      "uuid": 10285037
    }
  ],
  "_userbio": {
    "uuid": 10285037,
    "type": "user",
    "name": "Grant McDermott",
    "followers": 904,
    "description": "Principal Economist at Amazon. Mix of economics, data science, and open source."
  },
  "_downloads": {
    "count": 514,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/jgd"
  },
  "_devurl": "https://github.com/grantmcdermott/jgd",
  "_searchresults": 26,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/jgd.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE",
    "manual.pdf"
  ],
  "_realowner": "cran",
  "_cranurl": false,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2026-04-29"
    },
    {
      "version": "0.1.1",
      "date": "2026-07-01"
    }
  ],
  "_exports": [
    "jgd",
    "jgd_begin_group",
    "jgd_discover",
    "jgd_end_group",
    "jgd_ext",
    "jgd_frame_ext",
    "jgd_server_info",
    "with_jgd_ext",
    "with_jgd_frame_ext",
    "with_jgd_group"
  ],
  "_help": [
    {
      "page": "jgd",
      "title": "JSON Graphics Device",
      "topics": [
        "jgd"
      ]
    },
    {
      "page": "jgd_begin_group",
      "title": "Begin a drawing group (experimental)",
      "topics": [
        "jgd_begin_group"
      ]
    },
    {
      "page": "jgd_discover",
      "title": "Discover a running jgd server",
      "topics": [
        "jgd_discover"
      ]
    },
    {
      "page": "jgd_end_group",
      "title": "End a drawing group (experimental)",
      "topics": [
        "jgd_end_group"
      ]
    },
    {
      "page": "jgd_ext",
      "title": "Set extended graphics context (experimental)",
      "topics": [
        "jgd_ext"
      ]
    },
    {
      "page": "jgd_frame_ext",
      "title": "Set frame-level extension fields (experimental)",
      "topics": [
        "jgd_frame_ext"
      ]
    },
    {
      "page": "jgd_server_info",
      "title": "Get server information",
      "topics": [
        "jgd_server_info"
      ]
    },
    {
      "page": "jgd_spec",
      "title": "jgd JSONL Protocol Specification",
      "topics": [
        "jgd_protocol",
        "jgd_spec"
      ]
    },
    {
      "page": "with_jgd_ext",
      "title": "Scoped extended graphics context (experimental)",
      "topics": [
        "with_jgd_ext"
      ]
    },
    {
      "page": "with_jgd_frame_ext",
      "title": "Scoped frame-level extension fields (experimental)",
      "topics": [
        "with_jgd_frame_ext"
      ]
    },
    {
      "page": "with_jgd_group",
      "title": "Scoped drawing group (experimental)",
      "topics": [
        "with_jgd_group"
      ]
    }
  ],
  "_readme": "https://github.com/grantmcdermott/jgd/raw/HEAD/README.md",
  "_rundeps": [],
  "_score": 4.941312625360662,
  "_indexed": false,
  "_nocasepkg": "jgd",
  "_universes": [
    "grantmcdermott"
  ],
  "_indexurl": "https://cran.r-universe.dev/jgd",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.1.1",
      "date": "2026-07-04T09:56:05.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "d5541dee61ca9f1d51a8cd47668b5f7d0eeb5e38",
      "fileid": "https://r2.ropensci.org/3d517f425cc820f704f973761a6d039ca937a09b94c9cf2a0112f26ab208f829",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/grantmcdermott/actions/runs/28495693429"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.1.1",
      "date": "2026-07-04T09:55:44.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "d5541dee61ca9f1d51a8cd47668b5f7d0eeb5e38",
      "fileid": "https://r2.ropensci.org/36e751e101ea151fbf300ced016a1544f85f747c0cdbca7be5734cb027c8f454",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/grantmcdermott/actions/runs/28495693429"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.1.1",
      "date": "2026-07-04T09:55:59.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "d5541dee61ca9f1d51a8cd47668b5f7d0eeb5e38",
      "fileid": "https://r2.ropensci.org/6a67b218e7c61253025ae6314db114db54c6dbe8f7742ed6467ac4e6640203a8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/grantmcdermott/actions/runs/28495693429"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.1.1",
      "date": "2026-07-04T09:55:44.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "d5541dee61ca9f1d51a8cd47668b5f7d0eeb5e38",
      "fileid": "https://r2.ropensci.org/78000ab10159b3b61a79094d93f116728a4f256ceb153c79ea6f6d27071bfd81",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/grantmcdermott/actions/runs/28495693429"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.1.1",
      "date": "2026-07-04T10:22:00.000Z",
      "arch": "aarch64",
      "commit": "d5541dee61ca9f1d51a8cd47668b5f7d0eeb5e38",
      "fileid": "https://r2.ropensci.org/8e2deffc2216e491546fd6b1fe0eab580e06d60b1b79ea3a158a99aeb7166e54",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/grantmcdermott/actions/runs/28495693429"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.1.1",
      "date": "2026-07-04T09:57:27.000Z",
      "arch": "x86_64",
      "commit": "d5541dee61ca9f1d51a8cd47668b5f7d0eeb5e38",
      "fileid": "https://r2.ropensci.org/26901b350a7167eb76dd978160305f7a88104077577b6afac5455d85361eb6b0",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/grantmcdermott/actions/runs/28495693429"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.1.1",
      "date": "2026-07-04T10:20:45.000Z",
      "arch": "aarch64",
      "commit": "d5541dee61ca9f1d51a8cd47668b5f7d0eeb5e38",
      "fileid": "https://r2.ropensci.org/d44aa0620c8a5b7a2be50465285d0bf174b7e6484e9dc85a09bcd41bb45d103b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/grantmcdermott/actions/runs/28495693429"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.1.1",
      "date": "2026-07-04T09:57:24.000Z",
      "arch": "x86_64",
      "commit": "d5541dee61ca9f1d51a8cd47668b5f7d0eeb5e38",
      "fileid": "https://r2.ropensci.org/a59f5698501efac51b100cd50f2084c63aed1d92e3c8464f175e83c94d9db51e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/grantmcdermott/actions/runs/28495693429"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.1.1",
      "date": "2026-07-04T09:55:45.000Z",
      "arch": "emscripten",
      "commit": "d5541dee61ca9f1d51a8cd47668b5f7d0eeb5e38",
      "fileid": "https://r2.ropensci.org/c3d83f7159c062f2f6cef8bd8478da41c0cb140c1749ade501afc2ca403709c1",
      "status": "success",
      "buildurl": "https://github.com/r-universe/grantmcdermott/actions/runs/28495693429"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.1.1",
      "date": "2026-07-04T09:55:06.000Z",
      "arch": "x86_64",
      "commit": "d5541dee61ca9f1d51a8cd47668b5f7d0eeb5e38",
      "fileid": "https://r2.ropensci.org/aaad99ce458ba8520196ea1289d43db920bf8dfb5a010c18546fb8f4b4c938c4",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/grantmcdermott/actions/runs/28495693429"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.1.1",
      "date": "2026-07-04T09:55:03.000Z",
      "arch": "x86_64",
      "commit": "d5541dee61ca9f1d51a8cd47668b5f7d0eeb5e38",
      "fileid": "https://r2.ropensci.org/4ba4424eaf888e2e4b85cebf131f59107e7c6708957b5000b22168c8087552fe",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/grantmcdermott/actions/runs/28495693429"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.1.1",
      "date": "2026-07-04T09:55:09.000Z",
      "arch": "x86_64",
      "commit": "d5541dee61ca9f1d51a8cd47668b5f7d0eeb5e38",
      "fileid": "https://r2.ropensci.org/a260bd3ecea099ef0f9a8878c79dc06dc34bb1312e7b6e5dde330cf48dc6fc1b",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/grantmcdermott/actions/runs/28495693429"
    }
  ]
}