{
  "_id": "6a10186bacfb0bcc41c8564c",
  "Package": "freshwater",
  "Title": "Server-side rendering utilities for Plumber2 APIs",
  "Version": "0.0.0.9000",
  "Authors@R": "person(\"Elian\", \"Thiele-Evans\", , \"elianhte@gmail.com\", role = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0001-8008-3165\"))",
  "Description": "Provides various utility functions for improving\nserver-side rendered HTML applications, such as enhanced HTML\ntemplating, response caching, and HTML tag serialisation.",
  "License": "GPL (>= 3)",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.3.9000",
  "Config/testthat/edition": "3",
  "URL": "https://elianhugh.github.io/freshwater/",
  "Collate": "'cget.R' 'handler_hooks.R' 'context.R' 'security.R'\n'template.R' 'errors.R' 'serialisers.R' 'template_cache.R'\n'url.R' 'zzz.R'",
  "Config/pak/sysreqs": "cmake libfontconfig1-dev libfreetype6-dev\nlibfribidi-dev make libharfbuzz-dev libicu-dev libjpeg-dev\nlibpng-dev libsodium-dev libtiff-dev libuv1-dev libwebp-dev\nlibxml2-dev libssl-dev libx11-dev xz-utils zlib1g-dev\nlibclang-dev",
  "Repository": "https://elianhugh.r-universe.dev",
  "Date/Publication": "2026-05-15 01:06:24 UTC",
  "RemoteUrl": "https://github.com/ElianHugh/freshwater",
  "RemoteRef": "HEAD",
  "RemoteSha": "eb4f187f65c99f1845c12901f4a89093382cfa91",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-05-15 02:42:32 UTC",
    "User": "root"
  },
  "Author": "Elian Thiele-Evans [aut, cre] (ORCID:\n<https://orcid.org/0000-0001-8008-3165>)",
  "Maintainer": "Elian Thiele-Evans <elianhte@gmail.com>",
  "MD5sum": "a60b7369834657fe0090d51b3f7e28e2",
  "_user": "elianhugh",
  "_type": "src",
  "_file": "freshwater_0.0.0.9000.tar.gz",
  "_fileid": "6f99908dbd38db301425864800fac1b88ef28f251e08ad331d53593cf4058c82",
  "_filesize": 228804,
  "_sha256": "6f99908dbd38db301425864800fac1b88ef28f251e08ad331d53593cf4058c82",
  "_created": "2026-05-15T02:42:32.000Z",
  "_published": "2026-05-22T08:48:43.165Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 77346624007,
      "time": 165,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7009128540"
    },
    {
      "job": 77346624072,
      "time": 143,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7009124663"
    },
    {
      "job": 77346624041,
      "time": 126,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7009122011"
    },
    {
      "job": 77346623733,
      "time": 87,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7009116090"
    },
    {
      "job": 77346623689,
      "time": 215,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7009101364"
    },
    {
      "job": 77346623367,
      "time": 145,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7156515298"
    },
    {
      "job": 77346623816,
      "time": 148,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7009125369"
    },
    {
      "job": 77346624085,
      "time": 159,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7009127721"
    },
    {
      "job": 77346624283,
      "time": 222,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7009137327"
    }
  ],
  "_buildurl": "https://github.com/r-universe/elianhugh/actions/runs/25897262658",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/ElianHugh/freshwater",
  "_commit": {
    "id": "eb4f187f65c99f1845c12901f4a89093382cfa91",
    "author": "Elian H. Thiele-Evans <60372411+ElianHugh@users.noreply.github.com>",
    "committer": "Elian H. Thiele-Evans <60372411+ElianHugh@users.noreply.github.com>",
    "message": "Update security.R\n",
    "time": 1778807184
  },
  "_maintainer": {
    "name": "Elian Thiele-Evans",
    "email": "elianhte@gmail.com",
    "login": "elianhugh",
    "mastodon": "@elianhugh@fosstodon.org",
    "twitter": "@ElianHugh",
    "uuid": 60372411,
    "orcid": "0000-0001-8008-3165"
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.2.0",
      "role": "Depends"
    },
    {
      "package": "htmltools",
      "role": "Imports"
    },
    {
      "package": "memoise",
      "role": "Imports"
    },
    {
      "package": "plumber2",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "cachem",
      "role": "Imports"
    },
    {
      "package": "glue",
      "role": "Imports"
    },
    {
      "package": "waysign",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "stringi",
      "role": "Imports"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "mirai",
      "role": "Imports"
    },
    {
      "package": "mori",
      "role": "Imports"
    },
    {
      "package": "promises",
      "role": "Imports"
    },
    {
      "package": "fiery",
      "role": "Suggests"
    },
    {
      "package": "openssl",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "later",
      "role": "Suggests"
    },
    {
      "package": "otel",
      "role": "Suggests"
    }
  ],
  "_owner": "elianhugh",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-05",
      "n": 17
    },
    {
      "week": "2026-06",
      "n": 9
    },
    {
      "week": "2026-07",
      "n": 10
    },
    {
      "week": "2026-08",
      "n": 1
    },
    {
      "week": "2026-09",
      "n": 2
    },
    {
      "week": "2026-10",
      "n": 7
    },
    {
      "week": "2026-13",
      "n": 4
    },
    {
      "week": "2026-14",
      "n": 6
    },
    {
      "week": "2026-16",
      "n": 2
    },
    {
      "week": "2026-17",
      "n": 1
    },
    {
      "week": "2026-18",
      "n": 2
    },
    {
      "week": "2026-19",
      "n": 10
    },
    {
      "week": "2026-20",
      "n": 3
    }
  ],
  "_tags": [],
  "_topics": [
    "api",
    "http",
    "plumber2",
    "ssr",
    "templating"
  ],
  "_stars": 3,
  "_contributors": [
    {
      "user": "elianhugh",
      "count": 81,
      "uuid": 60372411
    }
  ],
  "_userbio": {
    "uuid": 60372411,
    "type": "user",
    "name": "Elian H. Thiele-Evans",
    "description": "I mostly write R (and a little typescript)"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/freshwater"
  },
  "_devurl": "https://github.com/elianhugh/freshwater",
  "_pkgdown": "https://elianhugh.github.io/freshwater/",
  "_searchresults": 0,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/freshwater.html",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_cranurl": false,
  "_exports": [
    "api_cget",
    "api_csrf",
    "api_error_pages",
    "api_freshwater",
    "api_hooks",
    "cache",
    "clear_cache",
    "csrf_token",
    "current_cookie",
    "current_header",
    "current_method",
    "current_path",
    "current_query",
    "default_error_403_template",
    "default_error_404_template",
    "default_error_500_template",
    "document",
    "endpoints",
    "form",
    "fragment",
    "get_cache_backend",
    "hook",
    "invalidate_cache",
    "invalidate_cache_here",
    "map_tags",
    "redirect",
    "register_async_evaluator",
    "register_html_serialiser",
    "set_cache_backend",
    "target",
    "targets",
    "template"
  ],
  "_help": [
    {
      "page": "api_cget",
      "title": "Conditional GET",
      "topics": [
        "api_cget"
      ]
    },
    {
      "page": "api_csrf",
      "title": "Apply CSRF Protection to a plumber2 API",
      "topics": [
        "api_csrf"
      ]
    },
    {
      "page": "error_pages",
      "title": "Freshwater Error Pages",
      "topics": [
        "api_error_pages"
      ]
    },
    {
      "page": "api_freshwater",
      "title": "Freshwater defaults for plumber2 APIs",
      "topics": [
        "api_freshwater"
      ]
    },
    {
      "page": "hooks",
      "title": "Route handler hooks",
      "topics": [
        "api_hooks",
        "hook"
      ]
    },
    {
      "page": "template-caching",
      "title": "Cache a partial within a template",
      "topics": [
        "cache",
        "clear_cache",
        "invalidate_cache",
        "invalidate_cache_here"
      ]
    },
    {
      "page": "csrf_token",
      "title": "CSRF Token",
      "topics": [
        "csrf_token"
      ]
    },
    {
      "page": "current_context",
      "title": "Get request data from current context",
      "concept": [
        "context helpers"
      ],
      "topics": [
        "current_cookie",
        "current_header",
        "current_method",
        "current_path",
        "current_query"
      ]
    },
    {
      "page": "document",
      "title": "HTML Document Root",
      "topics": [
        "document"
      ]
    },
    {
      "page": "endpoints",
      "title": "Reverse Routing",
      "topics": [
        "endpoints"
      ]
    },
    {
      "page": "form",
      "title": "Form",
      "topics": [
        "form"
      ]
    },
    {
      "page": "freshwater_context",
      "title": "Freshwater Request Context",
      "topics": [
        "freshwater_context"
      ]
    },
    {
      "page": "freshwater_error_templates",
      "title": "Error Page Templates",
      "topics": [
        "default_error_403_template",
        "default_error_404_template",
        "default_error_500_template",
        "freshwater_error_templates"
      ]
    },
    {
      "page": "get_cache_backend",
      "title": "Get freshwater's current cache backend",
      "topics": [
        "get_cache_backend"
      ]
    },
    {
      "page": "map_tags",
      "title": "Apply template function to each element of a vector",
      "topics": [
        "map_tags"
      ]
    },
    {
      "page": "redirect",
      "title": "Redirect to another resource",
      "topics": [
        "redirect"
      ]
    },
    {
      "page": "register_async_evaluator",
      "title": "Register context-safe async evaluator",
      "topics": [
        "register_async_evaluator"
      ]
    },
    {
      "page": "register_html_serialiser",
      "title": "Register HTML Serialiser",
      "topics": [
        "register_html_serialiser"
      ]
    },
    {
      "page": "set_cache_backend",
      "title": "Configure freshwater's cache backend",
      "topics": [
        "set_cache_backend"
      ]
    },
    {
      "page": "target",
      "title": "Resolve a template's target selector",
      "topics": [
        "target"
      ]
    },
    {
      "page": "targets",
      "title": "Combine multiple target selectors",
      "topics": [
        "targets"
      ]
    },
    {
      "page": "templating",
      "title": "Create a reusable HTML template",
      "topics": [
        "fragment",
        "template"
      ]
    }
  ],
  "_readme": "https://github.com/ElianHugh/freshwater/raw/HEAD/README.md",
  "_rundeps": [
    "AsioHeaders",
    "askpass",
    "base64enc",
    "bit",
    "bit64",
    "brew",
    "brio",
    "brotli",
    "cachem",
    "callr",
    "cli",
    "clipr",
    "commonmark",
    "cpp11",
    "crayon",
    "curl",
    "desc",
    "digest",
    "evaluate",
    "fastmap",
    "fiery",
    "fireproof",
    "firesafety",
    "firesale",
    "firestorm",
    "fs",
    "glue",
    "highr",
    "hms",
    "htmltools",
    "httpuv",
    "jose",
    "jsonlite",
    "knitr",
    "later",
    "lifecycle",
    "magrittr",
    "memoise",
    "mirai",
    "mori",
    "nanonext",
    "openssl",
    "otel",
    "pillar",
    "pkgbuild",
    "pkgconfig",
    "pkgload",
    "plumber2",
    "prettyunits",
    "processx",
    "progress",
    "promises",
    "ps",
    "R6",
    "ragg",
    "rapidoc",
    "Rcpp",
    "readr",
    "reqres",
    "rlang",
    "routr",
    "roxygen2",
    "rprojroot",
    "sodium",
    "storr",
    "stringi",
    "svglite",
    "sys",
    "systemfonts",
    "textshaping",
    "tibble",
    "tidyselect",
    "triebeard",
    "tzdb",
    "urltools",
    "utf8",
    "vctrs",
    "vroom",
    "waysign",
    "websocket",
    "webutils",
    "withr",
    "xfun",
    "xml2",
    "yaml"
  ],
  "_score": 3.290034611362518,
  "_indexed": true,
  "_nocasepkg": "freshwater",
  "_universes": [
    "elianhugh"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.0.0.9000",
      "date": "2026-05-15T02:45:06.000Z",
      "distro": "noble",
      "commit": "eb4f187f65c99f1845c12901f4a89093382cfa91",
      "fileid": "e26d6b5857f72ddc2f4a323ab214c75084028d26893e0ea0e178077831c5f435",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/elianhugh/actions/runs/25897262658"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.0.0.9000",
      "date": "2026-05-15T02:44:47.000Z",
      "distro": "noble",
      "commit": "eb4f187f65c99f1845c12901f4a89093382cfa91",
      "fileid": "88f84db59384bbc5eca345269bb2352a7a512e28da42a23da2a07d31d015b05b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/elianhugh/actions/runs/25897262658"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.0.0.9000",
      "date": "2026-05-15T02:44:33.000Z",
      "commit": "eb4f187f65c99f1845c12901f4a89093382cfa91",
      "fileid": "b4c1ccfd8d7ea3319d3675c1eaf7dee3560eaed21d0b2dc13accbb9a8e2c127d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/elianhugh/actions/runs/25897262658"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.0.0.9000",
      "date": "2026-05-15T02:44:01.000Z",
      "commit": "eb4f187f65c99f1845c12901f4a89093382cfa91",
      "fileid": "6cd35998fcefc4241af118b4e56a36a6dd1b833ab38f3ff69eef0ab94111cbba",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/elianhugh/actions/runs/25897262658"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.0.0.9000",
      "date": "2026-05-15T02:44:41.000Z",
      "commit": "eb4f187f65c99f1845c12901f4a89093382cfa91",
      "fileid": "94c953535ce8d1a8d11842a7b2f5043138692033d5aabd09c8d6e8f504b80b31",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/elianhugh/actions/runs/25897262658"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.0.0.9000",
      "date": "2026-05-15T02:45:00.000Z",
      "commit": "eb4f187f65c99f1845c12901f4a89093382cfa91",
      "fileid": "8e6b320c189e2553c39d2a31c23f69b0c6fc79ef1dbbeecee68d209b16f772f5",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/elianhugh/actions/runs/25897262658"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "0.0.0.9000",
      "date": "2026-05-15T02:45:54.000Z",
      "commit": "eb4f187f65c99f1845c12901f4a89093382cfa91",
      "fileid": "a9790414df3c8153f4130a6d88569c091a1f1a7dd56dcd162df9b125d8671d8b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/elianhugh/actions/runs/25897262658"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.0.0.9000",
      "date": "2026-05-22T08:48:27.000Z",
      "commit": "eb4f187f65c99f1845c12901f4a89093382cfa91",
      "fileid": "40a15203c18fb4e0f66da992eeff829afd69cff1946b8a707815b26b46935996",
      "status": "success",
      "buildurl": "https://github.com/r-universe/elianhugh/actions/runs/25897262658"
    }
  ]
}