{
  "_id": "6af0e16994cdbf48db2b0e46",
  "Package": "sideview",
  "Title": "Explore and Join Many Tables on a Zoomable Canvas",
  "Version": "0.3.0",
  "Authors@R": "c(\nperson(\"Yee How\", \"Lau\", email = \"lauyeehow1986@gmail.com\", role = c(\"aut\", \"cre\", \"cph\"))\n)",
  "Description": "Lays out many data frames side by side as cards on a\npan-and-zoom canvas, either as a 'shiny' gadget for 'RStudio'\nor as an 'htmlwidgets' widget for 'R Markdown' and 'Quarto'\npages. Drawing a line between two columns writes the 'dplyr'\njoin and checks it first: match rates, unmatched keys and the\nkey relationship. Sorts, filters and other steps build up a\nreadable pipeline of R code, and a column inspector exports a\ndata dictionary. An optional large language model (LLM)\nassistant, using 'Ollama' or an 'OpenAI'-compatible service,\nsuggests 'tidyverse' code from the table schema only, never the\ndata rows.",
  "URL": "https://lauyeehow1986-hub.github.io/sideview/,\nhttps://github.com/lauyeehow1986-hub/sideview",
  "BugReports": "https://github.com/lauyeehow1986-hub/sideview/issues",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "RoxygenNote": "7.3.3",
  "Config/testthat/edition": "3",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-11-08 20:50:28 UTC",
    "User": "root"
  },
  "Author": "Yee How Lau [aut, cre, cph]",
  "Maintainer": "Yee How Lau <lauyeehow1986@gmail.com>",
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-11-08 19:52:23 UTC",
  "RemoteUrl": "https://github.com/cran/sideview",
  "RemoteRef": "HEAD",
  "RemoteSha": "3fe90c5390c79425b3ef634698229edd235715a4",
  "_user": "cran",
  "_type": "src",
  "_file": "sideview_0.3.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/72a56c0041143d806afd7bf5764265251b2edd93a62b7bd95c53295f34265b3e",
  "_filesize": 488706,
  "_sha256": "72a56c0041143d806afd7bf5764265251b2edd93a62b7bd95c53295f34265b3e",
  "_expires": "2027-02-16T20:53:59.000Z",
  "_created": "2026-11-08T20:50:28.000Z",
  "_published": "2026-11-08T20:54:01.794Z",
  "_upstream": "https://github.com/cran/sideview",
  "_status": "success",
  "_maintainer": {
    "name": "Yee How Lau",
    "email": "lauyeehow1986@gmail.com",
    "login": "lauyeehow1986-hub",
    "description": "",
    "uuid": 249935955
  },
  "_jobs": [
    {
      "job": 128857867938,
      "time": 159,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "13633901488"
    },
    {
      "job": 128857867904,
      "time": 173,
      "config": "linux-release-x86_64",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13634270478"
    },
    {
      "job": 128856912991,
      "time": 226,
      "config": "source",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13633578284"
    },
    {
      "job": 128857867837,
      "time": 122,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "13634146613"
    },
    {
      "job": 128857867901,
      "time": 78,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "13634095889"
    },
    {
      "job": 128857867960,
      "time": 109,
      "config": "windows-release-x86_64",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13634115960"
    }
  ],
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/42521829809",
  "_commit": {
    "id": "3fe90c5390c79425b3ef634698229edd235715a4",
    "author": "Yee How Lau <lauyeehow1986@gmail.com>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 0.3.0\n",
    "time": 1794167543
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_registered": true,
  "_dependencies": [
    {
      "package": "shiny",
      "role": "Imports"
    },
    {
      "package": "htmltools",
      "role": "Imports"
    },
    {
      "package": "htmlwidgets",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "httr2",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "later",
      "role": "Imports"
    },
    {
      "package": "rstudioapi",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "shinytest2",
      "role": "Suggests"
    },
    {
      "package": "arrow",
      "role": "Suggests"
    },
    {
      "package": "duckdb",
      "role": "Suggests"
    },
    {
      "package": "DBI",
      "role": "Suggests"
    },
    {
      "package": "gt",
      "role": "Suggests"
    },
    {
      "package": "flextable",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "writexl",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    },
    {
      "package": "bslib",
      "role": "Suggests"
    },
    {
      "package": "dbplyr",
      "role": "Suggests"
    },
    {
      "package": "callr",
      "role": "Suggests"
    },
    {
      "package": "chromote",
      "role": "Suggests"
    },
    {
      "package": "httpuv",
      "role": "Suggests"
    },
    {
      "package": "pkgload",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-45",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "0.3.0",
      "date": "2026-11-08"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "lauyeehow1986-hub",
      "count": 1,
      "uuid": 249935955
    }
  ],
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "followers": 636,
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/sideview"
  },
  "_devurl": "https://github.com/lauyeehow1986-hub/sideview",
  "_pkgdown": "https://lauyeehow1986-hub.github.io/sideview/",
  "_searchresults": 0,
  "_rbuild": "4.6.2",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/sideview.html",
    "LICENSE"
  ],
  "_cranurl": false,
  "_releases": [
    {
      "version": "0.3.0",
      "date": "2026-11-08"
    }
  ],
  "_exports": [
    "new_sideview_state",
    "renderSideview",
    "save_sideview",
    "sideview",
    "sideview_addin",
    "sideview_server",
    "sideview_ui",
    "sideview_widget",
    "sideviewOutput",
    "sv_auto_clean_rules",
    "sv_build_chat_prompt",
    "sv_build_prompt",
    "sv_build_schema_context",
    "sv_call_llm",
    "sv_code_arrange",
    "sv_code_auto_clean",
    "sv_code_filter",
    "sv_code_group_summarize",
    "sv_code_join",
    "sv_code_mutate",
    "sv_code_pivot_longer",
    "sv_code_pivot_wider",
    "sv_code_recode",
    "sv_code_rename",
    "sv_code_select",
    "sv_codebook",
    "sv_column_profile",
    "sv_detect_discrepancies",
    "sv_escape_ident",
    "sv_extract_code",
    "sv_find_tables",
    "sv_insert_code",
    "sv_is_rstudio_available",
    "sv_join_diagnostics",
    "sv_llm_models",
    "sv_load_state",
    "sv_normalize",
    "sv_save_state",
    "sv_send_to_console",
    "sv_suggest_mappings",
    "sv_theme"
  ],
  "_help": [
    {
      "page": "new_sideview_state",
      "title": "Create a New Sideview Canvas State Object",
      "topics": [
        "new_sideview_state"
      ]
    },
    {
      "page": "print.sideview_state",
      "title": "Print Method for Sideview State Objects",
      "topics": [
        "print.sideview_state"
      ]
    },
    {
      "page": "renderSideview",
      "title": "Shiny Render Function for Sideview Widget",
      "topics": [
        "renderSideview"
      ]
    },
    {
      "page": "save_sideview",
      "title": "Save Sideview Widget to a Standalone HTML File",
      "topics": [
        "save_sideview"
      ]
    },
    {
      "page": "sideview",
      "title": "Multi-Table 2D Infinite Canvas Interactive Gadget",
      "topics": [
        "sideview"
      ]
    },
    {
      "page": "sideview_addin",
      "title": "RStudio Addin for Sideview",
      "topics": [
        "sideview_addin"
      ]
    },
    {
      "page": "sideview_server",
      "title": "Sideview Server Logic",
      "topics": [
        "sideview_server"
      ]
    },
    {
      "page": "sideview_ui",
      "title": "Sideview User Interface",
      "topics": [
        "sideview_ui"
      ]
    },
    {
      "page": "sideview_widget",
      "title": "Create a Standalone Sideview HTMLWidget",
      "topics": [
        "sideview_widget"
      ]
    },
    {
      "page": "sideviewOutput",
      "title": "Shiny Output Container for Sideview Widget",
      "topics": [
        "sideviewOutput"
      ]
    },
    {
      "page": "sv_auto_clean_rules",
      "title": "Generate tidyverse Code for Automatic Discrepancy Cleaning and Crosswalks",
      "topics": [
        "sv_auto_clean_rules",
        "sv_code_auto_clean"
      ]
    },
    {
      "page": "sv_build_chat_prompt",
      "title": "Build Structured Multi-Turn Prompt for Conversational Copilot",
      "topics": [
        "sv_build_chat_prompt"
      ]
    },
    {
      "page": "sv_build_prompt",
      "title": "Build Structured Prompt for Tidyverse LLM Code Generation",
      "topics": [
        "sv_build_prompt"
      ]
    },
    {
      "page": "sv_build_schema_context",
      "title": "Build a Privacy-Safe Schema Context from Sideview Cards",
      "topics": [
        "sv_build_schema_context"
      ]
    },
    {
      "page": "sv_call_llm",
      "title": "Call Local Ollama or OpenAI-Compatible LLM Endpoint",
      "topics": [
        "sv_call_llm"
      ]
    },
    {
      "page": "sv_code_arrange",
      "title": "Generate tidyverse Code for Arranging (Sorting) Rows",
      "topics": [
        "sv_code_arrange"
      ]
    },
    {
      "page": "sv_code_filter",
      "title": "Generate tidyverse Code for Filtering Rows",
      "topics": [
        "sv_code_filter"
      ]
    },
    {
      "page": "sv_code_group_summarize",
      "title": "Generate tidyverse Code for Grouping and Aggregating Data",
      "topics": [
        "sv_code_group_summarize"
      ]
    },
    {
      "page": "sv_code_join",
      "title": "Generate tidyverse Code for Relational Table Joins",
      "topics": [
        "sv_code_join"
      ]
    },
    {
      "page": "sv_code_mutate",
      "title": "Generate tidyverse Code for Column Mutation",
      "topics": [
        "sv_code_mutate"
      ]
    },
    {
      "page": "sv_code_pivot_longer",
      "title": "Generate tidyverse Code for Reshaping Data from Wide to Long",
      "topics": [
        "sv_code_pivot_longer"
      ]
    },
    {
      "page": "sv_code_pivot_wider",
      "title": "Generate tidyverse Code for Reshaping Data from Long to Wide",
      "topics": [
        "sv_code_pivot_wider"
      ]
    },
    {
      "page": "sv_code_recode",
      "title": "Generate tidyverse Code for Categorical Recoding and Discrepancy Crosswalks",
      "topics": [
        "sv_code_recode"
      ]
    },
    {
      "page": "sv_code_rename",
      "title": "Generate tidyverse Code for Column Renaming",
      "topics": [
        "sv_code_rename"
      ]
    },
    {
      "page": "sv_code_select",
      "title": "Generate tidyverse Code for Selecting Columns",
      "topics": [
        "sv_code_select"
      ]
    },
    {
      "page": "sv_codebook",
      "title": "Codebook (Data Dictionary)",
      "topics": [
        "sv_codebook"
      ]
    },
    {
      "page": "sv_column_profile",
      "title": "Column Profile",
      "topics": [
        "sv_column_profile"
      ]
    },
    {
      "page": "sv_detect_discrepancies",
      "title": "Detect Exact Matches, Discrepancies, and Fuzzy Near-Matches",
      "topics": [
        "sv_detect_discrepancies"
      ]
    },
    {
      "page": "sv_escape_ident",
      "title": "Escape R Identifiers with Backticks If Non-Syntactic",
      "topics": [
        "sv_escape_ident"
      ]
    },
    {
      "page": "sv_extract_code",
      "title": "Extract Executable R Code from LLM Response Text",
      "topics": [
        "sv_extract_code"
      ]
    },
    {
      "page": "sv_find_tables",
      "title": "Find Tabular Data Objects in an Environment",
      "topics": [
        "sv_find_tables"
      ]
    },
    {
      "page": "sv_insert_code",
      "title": "Insert Generated Code into the Active RStudio Editor",
      "topics": [
        "sv_insert_code"
      ]
    },
    {
      "page": "sv_is_rstudio_available",
      "title": "Check if RStudio API is Available",
      "topics": [
        "sv_is_rstudio_available"
      ]
    },
    {
      "page": "sv_join_diagnostics",
      "title": "Join Diagnostics",
      "topics": [
        "sv_join_diagnostics"
      ]
    },
    {
      "page": "sv_llm_models",
      "title": "List the models available from an LLM backend",
      "topics": [
        "sv_llm_models"
      ]
    },
    {
      "page": "sv_load_state",
      "title": "Load Canvas State from File",
      "topics": [
        "sv_load_state"
      ]
    },
    {
      "page": "sv_normalize",
      "title": "Universal Normalization Engine for Sideview Cards",
      "topics": [
        "sv_normalize"
      ]
    },
    {
      "page": "sv_save_state",
      "title": "Save Canvas State to File",
      "topics": [
        "sv_save_state"
      ]
    },
    {
      "page": "sv_send_to_console",
      "title": "Send Generated Code to the RStudio Console",
      "topics": [
        "sv_send_to_console"
      ]
    },
    {
      "page": "sv_suggest_mappings",
      "title": "Suggest Foreign Key Mappings Across Canvas Cards",
      "topics": [
        "sv_suggest_mappings"
      ]
    },
    {
      "page": "sv_theme",
      "title": "Canvas Theme",
      "topics": [
        "sv_theme"
      ]
    }
  ],
  "_pkglogo": "https://github.com/cran/sideview/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/cran/sideview/raw/HEAD/README.md",
  "_rundeps": [
    "askpass",
    "base64enc",
    "bslib",
    "cachem",
    "cli",
    "commonmark",
    "curl",
    "digest",
    "dplyr",
    "evaluate",
    "fastmap",
    "fontawesome",
    "fs",
    "generics",
    "glue",
    "highr",
    "htmltools",
    "htmlwidgets",
    "httpuv",
    "httr2",
    "jquerylib",
    "jsonlite",
    "knitr",
    "later",
    "lifecycle",
    "magrittr",
    "memoise",
    "mime",
    "openssl",
    "otel",
    "pillar",
    "pkgconfig",
    "promises",
    "R6",
    "rappdirs",
    "Rcpp",
    "rlang",
    "rmarkdown",
    "rstudioapi",
    "sass",
    "shiny",
    "sourcetools",
    "sys",
    "tibble",
    "tidyselect",
    "tinytex",
    "utf8",
    "vctrs",
    "withr",
    "xfun",
    "xtable",
    "yaml"
  ],
  "_score": 1.6989700043360187,
  "_indexed": true,
  "_nocasepkg": "sideview",
  "_universes": [
    "cran",
    "lauyeehow1986-hub"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.3.0",
      "date": "2026-11-08T20:53:06.000Z",
      "distro": "resolute",
      "commit": "3fe90c5390c79425b3ef634698229edd235715a4",
      "fileid": "https://r2.ropensci.org/e49e4c86571477e927833b90abaee06830db67f2f7b93612a32594f5faaeb7b1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/42521829809"
    },
    {
      "r": "4.6.2",
      "os": "linux",
      "version": "0.3.0",
      "date": "2026-11-08T20:53:15.000Z",
      "distro": "resolute",
      "commit": "3fe90c5390c79425b3ef634698229edd235715a4",
      "fileid": "https://r2.ropensci.org/d6f84baf15dc2b2c72bfc97ef7014b285ff18c13c0256ba1d19b530d3d3b08bb",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/42521829809"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.3.0",
      "date": "2026-11-08T20:52:51.000Z",
      "commit": "3fe90c5390c79425b3ef634698229edd235715a4",
      "fileid": "https://r2.ropensci.org/96882f11707895129ec319778d9a1253d39101d6b9d198239faa17cff1bab299",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/42521829809"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.3.0",
      "date": "2026-11-08T20:51:35.000Z",
      "commit": "3fe90c5390c79425b3ef634698229edd235715a4",
      "fileid": "https://r2.ropensci.org/4bf7fe54f771a2d15d349d1943b4808a079987b88cab694310a77a8414f15cd1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/42521829809"
    },
    {
      "r": "4.6.2",
      "os": "win",
      "version": "0.3.0",
      "date": "2026-11-08T20:51:53.000Z",
      "commit": "3fe90c5390c79425b3ef634698229edd235715a4",
      "fileid": "https://r2.ropensci.org/613d8b1305ac3fe94ff062f49ac8a1c5a826663603f9f60ba23bf9438b6cd6f6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/42521829809"
    }
  ]
}