{
  "_id": "6a3800883efcd9bda4431e9a",
  "Package": "tinyoauth",
  "Type": "Package",
  "Title": "Minimal OAuth 2.0 Client",
  "Version": "0.1.0.1",
  "Date": "2026-06-20",
  "Authors@R": "c(\nperson(\"Troy\", \"Hernandez\", role = c(\"aut\", \"cre\"),\nemail = \"troy@cornball.ai\",\ncomment = c(ORCID = \"0009-0005-4248-604X\")),\nperson(\"cornball.ai\", role = \"cph\"))",
  "Description": "A dependency-light OAuth 2.0\n<https://www.rfc-editor.org/rfc/rfc6749> client supporting the\nclient-credentials and authorization-code grants with token\nrefresh. Built on 'curl' and 'jsonlite', with base R's socket\nserver for the redirect listener, avoiding heavier HTTP stacks.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "URL": "https://github.com/cornball-ai/tinyoauth",
  "BugReports": "https://github.com/cornball-ai/tinyoauth/issues",
  "Config/pak/sysreqs": "libssl-dev",
  "Repository": "https://cornball-ai.r-universe.dev",
  "Date/Publication": "2026-06-21 12:18:46 UTC",
  "RemoteUrl": "https://github.com/cornball-ai/tinyoauth",
  "RemoteRef": "HEAD",
  "RemoteSha": "94b1c8f3c90308f3b0cad426290e2cb7993ace18",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-06-21 15:14:25 UTC",
    "User": "root"
  },
  "Author": "Troy Hernandez [aut, cre] (ORCID:\n<https://orcid.org/0009-0005-4248-604X>),\ncornball.ai [cph]",
  "Maintainer": "Troy Hernandez <troy@cornball.ai>",
  "MD5sum": "cfa56f9f2e63c979ff1ddac60875bbf4",
  "_user": "cornball-ai",
  "_type": "src",
  "_file": "tinyoauth_0.1.0.1.tar.gz",
  "_fileid": "ebdde7527ea72c688482dab8669b8396a456f1fbcff4d9b02b63c07d8b54aaee",
  "_filesize": 150898,
  "_sha256": "ebdde7527ea72c688482dab8669b8396a456f1fbcff4d9b02b63c07d8b54aaee",
  "_created": "2026-06-21T15:14:25.000Z",
  "_published": "2026-06-21T15:17:28.660Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 82581631353,
      "time": 115,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7776611115"
    },
    {
      "job": 82581631355,
      "time": 152,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7776615805"
    },
    {
      "job": 82581631371,
      "time": 69,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7776605569"
    },
    {
      "job": 82581631394,
      "time": 69,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7776605383"
    },
    {
      "job": 82581383513,
      "time": 211,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7776595767"
    },
    {
      "job": 82581631354,
      "time": 100,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7776609364"
    },
    {
      "job": 82581631395,
      "time": 93,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7776608261"
    },
    {
      "job": 82581631389,
      "time": 60,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7776604327"
    },
    {
      "job": 82581631385,
      "time": 84,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7776607504"
    }
  ],
  "_buildurl": "https://github.com/r-universe/cornball-ai/actions/runs/27908493294",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/cornball-ai/tinyoauth",
  "_commit": {
    "id": "94b1c8f3c90308f3b0cad426290e2cb7993ace18",
    "author": "Troy Hernandez <troy@cornball.ai>",
    "committer": "GitHub <noreply@github.com>",
    "message": "Reconcile main with the 0.1.0 CRAN release; bump to 0.1.0.1 (#11)\n\n* Reconcile NEWS with the 0.1.0 CRAN release; carry cran-comments.md\n\nmain was branched before 0.1.0 was finalized, so it never received the 0.1.0\nNEWS heading or cran-comments.md. Insert the 0.1.0 release heading below a new\n0.1.0.1 dev entry (the Claude route), and carry cran-comments.md + its\n.Rbuildignore entry. No code changes (the release's R-file diffs vs main were\npure formatting).\n\n* Bump version to 0.1.0.1",
    "time": 1782044326
  },
  "_maintainer": {
    "name": "Troy Hernandez",
    "email": "troy@cornball.ai",
    "login": "troyhernandez",
    "description": "",
    "uuid": 5670773
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.0",
      "role": "Depends"
    },
    {
      "package": "curl",
      "role": "Imports"
    },
    {
      "package": "digest",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "tinytest",
      "role": "Suggests"
    }
  ],
  "_owner": "cornball-ai",
  "_selfowned": true,
  "_usedby": 3,
  "_updates": [
    {
      "week": "2026-23",
      "n": 5
    },
    {
      "week": "2026-24",
      "n": 4
    },
    {
      "week": "2026-25",
      "n": 2
    }
  ],
  "_tags": [
    {
      "name": "v0.1.0",
      "date": "2026-06-10"
    }
  ],
  "_stars": 1,
  "_contributors": [
    {
      "user": "troyhernandez",
      "count": 11,
      "uuid": 5670773
    }
  ],
  "_userbio": {
    "uuid": 153995987,
    "type": "organization",
    "name": "cornball.ai",
    "followers": 13
  },
  "_downloads": {
    "count": 68,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/tinyoauth"
  },
  "_devurl": "https://github.com/cornball-ai/tinyoauth",
  "_searchresults": 0,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/tinyoauth.html",
    "LICENSE",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/cornball-ai/tinyoauth",
  "_realowner": "cornball-ai",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2026-06-17"
    }
  ],
  "_exports": [
    "anthropic_claude_client",
    "oauth_authorize_url",
    "oauth_bearer",
    "oauth_cache_path",
    "oauth_client",
    "oauth_exchange_code",
    "oauth_expired",
    "oauth_import_httr",
    "oauth_jwt_payload",
    "oauth_refresh",
    "oauth_request",
    "oauth_token",
    "oauth_token_anthropic",
    "oauth_token_authcode",
    "oauth_token_client",
    "oauth_token_openai_codex",
    "openai_codex_account_id",
    "openai_codex_client"
  ],
  "_help": [
    {
      "page": "anthropic_claude_client",
      "title": "OAuth client for the Anthropic Claude (Claude Code) login flow",
      "topics": [
        "anthropic_claude_client"
      ]
    },
    {
      "page": "oauth_authorize_url",
      "title": "Build an authorization URL",
      "topics": [
        "oauth_authorize_url"
      ]
    },
    {
      "page": "oauth_bearer",
      "title": "Authorization header value for a token",
      "topics": [
        "oauth_bearer"
      ]
    },
    {
      "page": "oauth_cache_path",
      "title": "Default on-disk cache path for a client's token",
      "topics": [
        "oauth_cache_path"
      ]
    },
    {
      "page": "oauth_client",
      "title": "Define an OAuth 2.0 client",
      "topics": [
        "oauth_client"
      ]
    },
    {
      "page": "oauth_exchange_code",
      "title": "Exchange an authorization code for a token",
      "topics": [
        "oauth_exchange_code"
      ]
    },
    {
      "page": "oauth_expired",
      "title": "Is a token expired?",
      "topics": [
        "oauth_expired"
      ]
    },
    {
      "page": "oauth_import_httr",
      "title": "Import an httr `.httr-oauth` cache into tinyoauth",
      "topics": [
        "oauth_import_httr"
      ]
    },
    {
      "page": "oauth_jwt_payload",
      "title": "Decode a JWT payload",
      "topics": [
        "oauth_jwt_payload"
      ]
    },
    {
      "page": "oauth_refresh",
      "title": "Refresh an access token",
      "topics": [
        "oauth_refresh"
      ]
    },
    {
      "page": "oauth_request",
      "title": "Make an authenticated request",
      "topics": [
        "oauth_request"
      ]
    },
    {
      "page": "oauth_token",
      "title": "Get a valid token, using the cache and refreshing as needed",
      "topics": [
        "oauth_token"
      ]
    },
    {
      "page": "oauth_token_anthropic",
      "title": "Get a valid Anthropic Claude token, using the cache and refreshing as needed",
      "topics": [
        "oauth_token_anthropic"
      ]
    },
    {
      "page": "oauth_token_authcode",
      "title": "Run the authorization-code flow end to end",
      "topics": [
        "oauth_token_authcode"
      ]
    },
    {
      "page": "oauth_token_client",
      "title": "Fetch a token via the client-credentials grant",
      "topics": [
        "oauth_token_client"
      ]
    },
    {
      "page": "oauth_token_openai_codex",
      "title": "Get a valid OpenAI Codex token, using the cache and refreshing as needed",
      "topics": [
        "oauth_token_openai_codex"
      ]
    },
    {
      "page": "openai_codex_account_id",
      "title": "Extract the ChatGPT account id from a Codex token",
      "topics": [
        "openai_codex_account_id"
      ]
    },
    {
      "page": "openai_codex_client",
      "title": "OAuth client for the OpenAI Codex (ChatGPT) device-login flow",
      "topics": [
        "openai_codex_client"
      ]
    }
  ],
  "_readme": "https://github.com/cornball-ai/tinyoauth/raw/HEAD/README.md",
  "_rundeps": [
    "curl",
    "digest",
    "jsonlite"
  ],
  "_score": 4.1303337684950066,
  "_indexed": true,
  "_nocasepkg": "tinyoauth",
  "_universes": [
    "cornball-ai",
    "troyhernandez"
  ],
  "_previous": "0.0.1.7",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.1.0.1",
      "date": "2026-06-21T15:16:29.000Z",
      "distro": "noble",
      "commit": "94b1c8f3c90308f3b0cad426290e2cb7993ace18",
      "fileid": "5bd6d8ee03c34862ef0cae6ce938e803e334c0333ab1524a14fca67031087014",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cornball-ai/actions/runs/27908493294"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.1.0.1",
      "date": "2026-06-21T15:17:04.000Z",
      "distro": "noble",
      "commit": "94b1c8f3c90308f3b0cad426290e2cb7993ace18",
      "fileid": "5b336499619388acabe2d1a83d52b0588f2987f9aaa12d7af693605352002a21",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cornball-ai/actions/runs/27908493294"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.1.0.1",
      "date": "2026-06-21T15:15:46.000Z",
      "commit": "94b1c8f3c90308f3b0cad426290e2cb7993ace18",
      "fileid": "7b278e855e9a5a659fd419f96398859f91538a7930b2a8da39fda442bcf52ed0",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cornball-ai/actions/runs/27908493294"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.1.0.1",
      "date": "2026-06-21T15:15:45.000Z",
      "commit": "94b1c8f3c90308f3b0cad426290e2cb7993ace18",
      "fileid": "a21cf33e21ecf10d1dd4cbcd3b5c149ebf8ec4ff8da058ed5756c9b53a89994b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cornball-ai/actions/runs/27908493294"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.1.0.1",
      "date": "2026-06-21T15:16:23.000Z",
      "commit": "94b1c8f3c90308f3b0cad426290e2cb7993ace18",
      "fileid": "2ffcfad303d0fa5201d59f58d2bc71ac8b480887faee759c4fc9270b00f8f9ef",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cornball-ai/actions/runs/27908493294"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.1.0.1",
      "date": "2026-06-21T15:16:00.000Z",
      "commit": "94b1c8f3c90308f3b0cad426290e2cb7993ace18",
      "fileid": "c2f3538348c96ebe5c043c05270e4765aea38ca32d2d3d22637f94dcded14503",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cornball-ai/actions/runs/27908493294"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.1.0.1",
      "date": "2026-06-21T15:15:30.000Z",
      "commit": "94b1c8f3c90308f3b0cad426290e2cb7993ace18",
      "fileid": "625916f62a13c84429196c0b9b54c3cb0808bb2ee01ba46630fb1adc48a0217a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cornball-ai/actions/runs/27908493294"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "0.1.0.1",
      "date": "2026-06-21T15:15:45.000Z",
      "commit": "94b1c8f3c90308f3b0cad426290e2cb7993ace18",
      "fileid": "0c7f79c80fbbcf76a6dea7cd5017a1bdfd125fbb0e0a0a286b031d3e80def18b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cornball-ai/actions/runs/27908493294"
    }
  ]
}