{
  "_id": "6a1e8c321d7bb097a0a69665",
  "Package": "sketch",
  "Type": "Package",
  "Title": "Interactive Sketches",
  "Version": "1.1.20.3",
  "Authors@R": "c(\nperson(\"Chun Fung\",\"Kwok\", role = c(\"aut\", \"cre\"), email = \"jkwok@svi.edu.au\", comment = c(ORCID = \"0000-0002-0716-3879\")),\nperson(\"Kate\", \"Saunders\", role = \"ctb\")\n)",
  "Description": "Creates static / animated / interactive visualisations\nembeddable in R Markdown documents. It implements an\nR-to-JavaScript transpiler and enables users to write\nJavaScript applications using the syntax of R.",
  "License": "Apache License (>= 2.0)",
  "Encoding": "UTF-8",
  "RoxygenNote": "7.2.3",
  "BugReports": "https://github.com/kcf-jackson/sketch",
  "VignetteBuilder": "knitr",
  "Config/pak/sysreqs": "cmake make libuv1-dev libssl-dev libnode-dev\nzlib1g-dev",
  "Repository": "https://kcf-jackson.r-universe.dev",
  "Date/Publication": "2024-02-17 18:38:52 UTC",
  "RemoteUrl": "https://github.com/kcf-jackson/sketch",
  "RemoteRef": "HEAD",
  "RemoteSha": "51d4e441a21490d0571da86d16e904233602e853",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-06-02 07:51:01 UTC",
    "User": "root"
  },
  "Author": "Chun Fung Kwok [aut, cre] (ORCID:\n<https://orcid.org/0000-0002-0716-3879>),\nKate Saunders [ctb]",
  "Maintainer": "Chun Fung Kwok <jkwok@svi.edu.au>",
  "MD5sum": "42947928b29e3843e26cb10b8794b7f7",
  "_user": "kcf-jackson",
  "_type": "src",
  "_file": "sketch_1.1.20.3.tar.gz",
  "_fileid": "4985a9c3a7b41502e1b5c3f05e5b850310f5d9dcf7ccc08c44a346cec6d2d881",
  "_filesize": 1049839,
  "_sha256": "4985a9c3a7b41502e1b5c3f05e5b850310f5d9dcf7ccc08c44a346cec6d2d881",
  "_created": "2026-06-02T07:51:01.000Z",
  "_published": "2026-06-02T07:54:26.176Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 79024234487,
      "time": 146,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7351992962"
    },
    {
      "job": 79024234525,
      "time": 140,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7351991059"
    },
    {
      "job": 79024234502,
      "time": 131,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7351981908"
    },
    {
      "job": 79024234447,
      "time": 163,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7351987332"
    },
    {
      "job": 79023730562,
      "time": 190,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7351941960"
    },
    {
      "job": 79024234553,
      "time": 110,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7351980547"
    },
    {
      "job": 79024234589,
      "time": 94,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7351975174"
    },
    {
      "job": 79024234490,
      "time": 132,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7351988385"
    },
    {
      "job": 79024234556,
      "time": 91,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7351974083"
    }
  ],
  "_buildurl": "https://github.com/r-universe/kcf-jackson/actions/runs/26806038954",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/kcf-jackson/sketch",
  "_commit": {
    "id": "51d4e441a21490d0571da86d16e904233602e853",
    "author": "Jackson Kwok <kcf.jackson@gmail.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "Merge pull request #23 from kcf-jackson/develop\n\nMerge develop into main (CRAN submission v1.1.20.3)",
    "time": 1708195132
  },
  "_maintainer": {
    "name": "Chun Fung Kwok",
    "email": "jkwok@svi.edu.au",
    "orcid": "0000-0002-0716-3879"
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "magrittr",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "purrr",
      "role": "Imports"
    },
    {
      "package": "rstudioapi",
      "role": "Imports"
    },
    {
      "package": "glue",
      "role": "Imports"
    },
    {
      "package": "htmltools",
      "role": "Imports"
    },
    {
      "package": "base64enc",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "shiny",
      "role": "Imports"
    },
    {
      "package": "methods",
      "role": "Imports"
    },
    {
      "package": "V8",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "role": "Suggests"
    },
    {
      "package": "covr",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    }
  ],
  "_owner": "kcf-jackson",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [],
  "_tags": [],
  "_topics": [
    "javascript",
    "js",
    "transpiler",
    "visualisation"
  ],
  "_stars": 126,
  "_contributors": [
    {
      "user": "kcf-jackson",
      "count": 274,
      "uuid": 12783172
    }
  ],
  "_userbio": {
    "uuid": 12783172,
    "type": "user",
    "name": "Jackson Kwok",
    "description": "PhD in Statistics, Postdoc in Econometrics, Postdoc in Deep Learning"
  },
  "_downloads": {
    "count": 172,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/sketch"
  },
  "_mentions": 3,
  "_devurl": "https://github.com/kcf-jackson/sketch",
  "_searchresults": 30,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/readme.html",
    "extra/readme.md",
    "extra/sketch.html",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/kcf-jackson/sketch",
  "_realowner": "kcf-jackson",
  "_cranurl": true,
  "_releases": [
    {
      "version": "1.0.3",
      "date": "2020-10-08"
    },
    {
      "version": "1.1.17",
      "date": "2021-10-06"
    },
    {
      "version": "1.1.19",
      "date": "2022-10-23"
    },
    {
      "version": "1.1.20.3",
      "date": "2024-02-02"
    }
  ],
  "_exports": [
    "assets",
    "basic_deparsers",
    "basic_rules",
    "basic_tags",
    "bundle",
    "combine_rules",
    "compile_active",
    "compile_data",
    "compile_exprs",
    "compile_r",
    "const",
    "declare",
    "default_2_deparsers",
    "default_deparsers",
    "default_processors",
    "default_rules",
    "default_tags",
    "deparse_js",
    "dp",
    "eng_sketch",
    "flatten_filelist",
    "get_dependencies",
    "insert_sketch",
    "let",
    "license_info",
    "local",
    "make_deparser",
    "make_rule",
    "parse_expr",
    "read_multilines",
    "rewrite",
    "runShinyApp",
    "safeguard",
    "source_active",
    "source_js",
    "source_r",
    "split_rules",
    "src",
    "test_sketch",
    "websocket"
  ],
  "_help": [
    {
      "page": "sketch-package",
      "title": "Interactive visualisation",
      "topics": [
        "sketch-package",
        "sketch"
      ]
    },
    {
      "page": "annotate_exprs",
      "title": "Parse and annotate expressions",
      "topics": [
        "annotate_exprs"
      ]
    },
    {
      "page": "assets",
      "title": "Process assets in headers",
      "topics": [
        "assets"
      ]
    },
    {
      "page": "basic_deparsers",
      "title": "A minimal list of deparsers for deparsing JavaScript",
      "topics": [
        "basic_deparsers"
      ]
    },
    {
      "page": "bundle",
      "title": "Bundle a list of files into a single JavaScript file",
      "topics": [
        "bundle"
      ]
    },
    {
      "page": "combine_rules",
      "title": "Combine rules for fast transpilation",
      "topics": [
        "combine_rules"
      ]
    },
    {
      "page": "compile_active",
      "title": "Compile active file in 'RStudio'",
      "topics": [
        "compile_active"
      ]
    },
    {
      "page": "compile_data",
      "title": "Compile a data file into a JavaScript file",
      "topics": [
        "compile_data"
      ]
    },
    {
      "page": "compile_exprs",
      "title": "Compile R code into JavaScript code",
      "topics": [
        "compile_exprs"
      ]
    },
    {
      "page": "compile_r",
      "title": "Compile an R file into a JavaScript file",
      "topics": [
        "compile_r"
      ]
    },
    {
      "page": "convert_src",
      "title": "Convert an asset link into a 'shiny.tag' object",
      "topics": [
        "convert_src"
      ]
    },
    {
      "page": "default_2_deparsers",
      "title": "A list of deparsers with additional features",
      "topics": [
        "default_2_deparsers"
      ]
    },
    {
      "page": "default_deparsers",
      "title": "A list of default deparsers for deparsing JavaScript",
      "topics": [
        "default_deparsers"
      ]
    },
    {
      "page": "default_processors",
      "title": "A list of handlers for processing the '#!'/'#|' header",
      "topics": [
        "default_processors"
      ]
    },
    {
      "page": "deparsers_component",
      "title": "Deparsers (specialised)",
      "topics": [
        "deparse_add",
        "deparse_assignment",
        "deparse_assignment_auto",
        "deparse_assignment_pipe",
        "deparse_async_await",
        "deparse_call",
        "deparse_const",
        "deparse_d3_attr",
        "deparse_d3_style",
        "deparse_data",
        "deparse_dataURI",
        "deparse_df",
        "deparse_df_mutate",
        "deparse_df_summarise",
        "deparse_export",
        "deparse_extract",
        "deparse_extract2",
        "deparse_extract2Assign",
        "deparse_extractAssign",
        "deparse_Family",
        "deparse_for",
        "deparse_formula",
        "deparse_function",
        "deparse_function_with_return",
        "deparse_html_tags",
        "deparse_if",
        "deparse_ifelse",
        "deparse_infix",
        "deparse_lambda",
        "deparse_let",
        "deparse_list",
        "deparse_macro",
        "deparse_NA",
        "deparse_NaN",
        "deparse_new",
        "deparse_next",
        "deparse_NULL",
        "deparse_pipe",
        "deparse_R6Class",
        "deparse_raw_string",
        "deparse_return",
        "deparse_subtract",
        "deparse_sym",
        "deparse_throw",
        "deparse_try",
        "deparse_tryCatch",
        "deparse_typeof",
        "deparse_var",
        "deparse_while",
        "deparse_wrap"
      ]
    },
    {
      "page": "deparse_js",
      "title": "Expression deparsing for JavaScript",
      "topics": [
        "deparse_js"
      ]
    },
    {
      "page": "deparse_js_ast",
      "title": "Deparse a compiled AST",
      "topics": [
        "deparse_js_ast"
      ]
    },
    {
      "page": "dp",
      "title": "Constructor function to combine low-level deparsers",
      "topics": [
        "dp"
      ]
    },
    {
      "page": "eng_sketch",
      "title": "A language engine for 'sketch'",
      "topics": [
        "eng_sketch"
      ]
    },
    {
      "page": "flatten_filelist",
      "title": "Flatten a list of files and directories into a list of files",
      "topics": [
        "flatten_filelist"
      ]
    },
    {
      "page": "get_dependencies",
      "title": "Extract the content of the `load_script` headers of a sketch R file",
      "topics": [
        "get_dependencies"
      ]
    },
    {
      "page": "html_tags",
      "title": "HTML templates",
      "topics": [
        "basic_tags",
        "default_tags",
        "html_tags"
      ]
    },
    {
      "page": "insert_sketch",
      "title": "Insert a 'sketch' app into an R Markdown document",
      "topics": [
        "insert_sketch"
      ]
    },
    {
      "page": "is_call",
      "title": "Predicate for calls",
      "topics": [
        "is_call"
      ]
    },
    {
      "page": "predicate_component",
      "title": "Predicate for symbols, i.e. symbols or syntactic literals",
      "topics": [
        "is_call_add",
        "is_call_assignment",
        "is_call_assignment_auto",
        "is_call_assignment_pipe",
        "is_call_async_await",
        "is_call_break",
        "is_call_const",
        "is_call_dataURI",
        "is_call_df",
        "is_call_df_mutate",
        "is_call_df_summarise",
        "is_call_export",
        "is_call_extract",
        "is_call_extract2",
        "is_call_extract2Assign",
        "is_call_extractAssign",
        "is_call_for",
        "is_call_formula",
        "is_call_function",
        "is_call_if",
        "is_call_ifelse",
        "is_call_lambda",
        "is_call_let",
        "is_call_list",
        "is_call_new",
        "is_call_next",
        "is_call_pipe",
        "is_call_R6Class",
        "is_call_raw_string",
        "is_call_return",
        "is_call_subtract",
        "is_call_throw",
        "is_call_try",
        "is_call_tryCatch",
        "is_call_typeof",
        "is_call_var",
        "is_call_while",
        "is_d3_attr",
        "is_d3_style",
        "is_data",
        "is_Family",
        "is_html_tags",
        "is_infix",
        "is_macro",
        "is_sym",
        "is_wrap"
      ]
    },
    {
      "page": "is_syntactic_literal",
      "title": "Predicate for syntactic literal",
      "topics": [
        "is_syntactic_literal"
      ]
    },
    {
      "page": "empty-functions",
      "title": "Empty functions",
      "topics": [
        "const",
        "declare",
        "let",
        "let-declare-const"
      ]
    },
    {
      "page": "license_info",
      "title": "License information",
      "topics": [
        "license_info"
      ]
    },
    {
      "page": "list-of-deparsers",
      "title": "Low-level lists of deparsers",
      "topics": [
        "dp_auto",
        "dp_d3",
        "dp_dom",
        "dp_macro",
        "dp_r_support",
        "list-of-deparsers"
      ]
    },
    {
      "page": "header-functions",
      "title": "Header functions",
      "topics": [
        "load_data",
        "load_Family",
        "load_library",
        "load_script"
      ]
    },
    {
      "page": "local",
      "title": "A helper function to enable debugger option",
      "topics": [
        "local"
      ]
    },
    {
      "page": "make_deparser",
      "title": "A constructor for a \"typed\" deparser",
      "topics": [
        "make_deparser"
      ]
    },
    {
      "page": "make_processor",
      "title": "Make a handle to process header",
      "topics": [
        "make_processor"
      ]
    },
    {
      "page": "make_rule",
      "title": "Make a AST transformation rule",
      "topics": [
        "make_rule"
      ]
    },
    {
      "page": "parse_expr",
      "title": "Parse R code",
      "topics": [
        "parse_expr"
      ]
    },
    {
      "page": "print.sketch_rule",
      "title": "Print function for 'sketch_rule' objects",
      "topics": [
        "print.sketch_rule"
      ]
    },
    {
      "page": "r-to-js-rules",
      "title": "Mapping R operators into JavaScript operators",
      "topics": [
        "basic_rules",
        "default_rules",
        "r-to-js-rules"
      ]
    },
    {
      "page": "read_multilines",
      "title": "Read one or more lines from the console for the first successful parse",
      "topics": [
        "read_multilines"
      ]
    },
    {
      "page": "rewrite",
      "title": "Interface for AST rewriting",
      "topics": [
        "rewrite"
      ]
    },
    {
      "page": "runShinyApp",
      "title": "Run 'Shiny' Application",
      "topics": [
        "runShinyApp"
      ]
    },
    {
      "page": "safeguard",
      "title": "Perform pre-transpilation check",
      "topics": [
        "safeguard"
      ]
    },
    {
      "page": "source_active",
      "title": "Source active file in 'RStudio'",
      "topics": [
        "source_active"
      ]
    },
    {
      "page": "source_js",
      "title": "Serve a compiled 'sketch' JavaScript file",
      "topics": [
        "source_js"
      ]
    },
    {
      "page": "source_map",
      "title": "Convert a compiled AST into a source map",
      "topics": [
        "source_map"
      ]
    },
    {
      "page": "source_map_from_files",
      "title": "Create a source map (.map) file",
      "topics": [
        "source_map_from_files"
      ]
    },
    {
      "page": "source_map_table",
      "title": "Display the source map in a table",
      "topics": [
        "source_map_table"
      ]
    },
    {
      "page": "source_r",
      "title": "Source a 'sketch' R file",
      "topics": [
        "source_r"
      ]
    },
    {
      "page": "split_rules",
      "title": "Split rules for customisation",
      "topics": [
        "split_rules"
      ]
    },
    {
      "page": "src",
      "title": "Get the source link of a JavaScript library",
      "topics": [
        "src"
      ]
    },
    {
      "page": "test_sketch",
      "title": "Test a sketch application",
      "topics": [
        "test_sketch"
      ]
    },
    {
      "page": "to_json",
      "title": "Convert a file into a JavaScript expression",
      "topics": [
        "to_json"
      ]
    },
    {
      "page": "verify_source_map",
      "title": "Verify a source map",
      "topics": [
        "verify_source_map"
      ]
    },
    {
      "page": "websocket",
      "title": "Websocket for 'sketch' applications",
      "topics": [
        "websocket"
      ]
    }
  ],
  "_readme": "https://github.com/kcf-jackson/sketch/raw/HEAD/readme.md",
  "_rundeps": [
    "base64enc",
    "bslib",
    "cachem",
    "cli",
    "commonmark",
    "curl",
    "digest",
    "fastmap",
    "fontawesome",
    "fs",
    "glue",
    "htmltools",
    "httpuv",
    "jquerylib",
    "jsonlite",
    "later",
    "lifecycle",
    "magrittr",
    "memoise",
    "mime",
    "otel",
    "promises",
    "purrr",
    "R6",
    "rappdirs",
    "Rcpp",
    "rlang",
    "rstudioapi",
    "sass",
    "shiny",
    "sourcetools",
    "V8",
    "vctrs",
    "withr",
    "xtable"
  ],
  "_score": 5.753583058892907,
  "_indexed": true,
  "_nocasepkg": "sketch",
  "_universes": [
    "kcf-jackson"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.1.20.3",
      "date": "2026-06-02T07:53:20.000Z",
      "distro": "noble",
      "commit": "51d4e441a21490d0571da86d16e904233602e853",
      "fileid": "3a6f00b130279a59f076da01cbf0e06b54e7c51ced9ef00292ce1e8c38d32887",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/kcf-jackson/actions/runs/26806038954"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "1.1.20.3",
      "date": "2026-06-02T07:53:17.000Z",
      "distro": "noble",
      "commit": "51d4e441a21490d0571da86d16e904233602e853",
      "fileid": "50bfe91c89704f0e9409e3e501e1a849d632ced4af5aba926b17a69c8b155ba8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/kcf-jackson/actions/runs/26806038954"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.1.20.3",
      "date": "2026-06-02T07:52:59.000Z",
      "commit": "51d4e441a21490d0571da86d16e904233602e853",
      "fileid": "8feb1843cfafbb2dc49bcf2eef8fef60cb022e89e021627d8dc6023f530ae28a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/kcf-jackson/actions/runs/26806038954"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "1.1.20.3",
      "date": "2026-06-02T07:53:06.000Z",
      "commit": "51d4e441a21490d0571da86d16e904233602e853",
      "fileid": "12b7d258dbe6b288195daf9d62e553e64eae172bcc4b61014fbd32b2ebfee4ce",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/kcf-jackson/actions/runs/26806038954"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.1.20.3",
      "date": "2026-06-02T07:53:09.000Z",
      "commit": "51d4e441a21490d0571da86d16e904233602e853",
      "fileid": "58e66e925c9028e6d30199d4b119723048403defd4d3c7c7ca6b1ff34f04bc94",
      "status": "success",
      "buildurl": "https://github.com/r-universe/kcf-jackson/actions/runs/26806038954"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.1.20.3",
      "date": "2026-06-02T07:52:22.000Z",
      "commit": "51d4e441a21490d0571da86d16e904233602e853",
      "fileid": "6749482d97f959e4c3f499a617976ea4f2183fae0c8acaf6285b5ffdaf1e4c16",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/kcf-jackson/actions/runs/26806038954"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.1.20.3",
      "date": "2026-06-02T07:52:55.000Z",
      "commit": "51d4e441a21490d0571da86d16e904233602e853",
      "fileid": "22353f5325704d76d76a62914cc0ae46b0e485865e239b2296ba4ccbeeb4b0aa",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/kcf-jackson/actions/runs/26806038954"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "1.1.20.3",
      "date": "2026-06-02T07:52:20.000Z",
      "commit": "51d4e441a21490d0571da86d16e904233602e853",
      "fileid": "301b8e8cf827e45a6e25a84decb3bc707b454c4bccb8b80ac86ac1cec64ecb65",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/kcf-jackson/actions/runs/26806038954"
    }
  ]
}