├── configure.win ├── .covrignore ├── client ├── src │ ├── index.js │ ├── assets │ │ ├── favicon.ico │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── icons │ │ │ ├── hamburger.svg │ │ │ ├── arrow-right.svg │ │ │ ├── arrow-left.svg │ │ │ ├── export.svg │ │ │ ├── cross.svg │ │ │ ├── download.svg │ │ │ ├── image.svg │ │ │ ├── copy.svg │ │ │ ├── vdots.svg │ │ │ ├── magnify-minus.svg │ │ │ ├── trash.svg │ │ │ └── magnify-plus.svg │ │ └── plot-none.svg │ ├── index.ts │ ├── resources.ts │ ├── index.ejs │ ├── app.ts │ ├── views │ │ ├── container.ejs │ │ ├── overlayView.ts │ │ ├── exportDialog.ejs │ │ ├── toolbar.ejs │ │ ├── toolbarView.ts │ │ ├── toolbarData.ts │ │ ├── sidebarView.ts │ │ ├── plotView.ts │ │ └── exportView.ts │ ├── typings │ │ └── clipboard.d.ts │ ├── utils.ts │ ├── viewer.ts │ └── style │ │ └── style.scss ├── .eslintignore ├── tsconfig.json ├── .eslintrc ├── package.json ├── webpack.config.js └── .gitignore ├── .github ├── .gitignore ├── ISSUE_TEMPLATE │ ├── other.md │ ├── bug_report.md │ └── feature-request.md ├── dependabot.yaml └── workflows │ ├── lint.yml │ ├── pkgdown.yaml │ ├── R-CMD-check.yaml │ ├── test-coverage.yaml │ └── rhub.yaml ├── vignettes ├── .gitignore ├── b01_vscode.Rmd ├── a00_installation.Rmd ├── b02_rstudio.Rmd ├── a01_how-to-get-started.Rmd ├── b03_docker.Rmd └── c01_httpgd-api.Rmd ├── cleanup ├── configure ├── tests ├── testthat.R └── testthat │ ├── test-security.R │ ├── helper-server.R │ └── test-server.R ├── _pkgdown.yml ├── inst ├── www │ ├── favicon.ico │ ├── 199bb9cab408c177.png │ ├── e13eb9df618a2fbe.png │ ├── 18c7a89e30a180cb.svg │ ├── style.css │ └── index.html └── licenses │ ├── belle-MIT.txt │ └── CrowCpp-BSD-3-Clause.txt ├── src ├── httpgd_version.h ├── Makevars.in ├── lib │ ├── crow │ │ ├── version.h │ │ ├── returnable.h │ │ ├── middlewares │ │ │ ├── utf-8.h │ │ │ ├── cors.h │ │ │ └── cookie_parser.h │ │ ├── ci_map.h │ │ ├── settings.h │ │ ├── middleware_context.h │ │ ├── http_request.h │ │ ├── compression.h │ │ ├── mime_types.h │ │ ├── socket_adaptors.h │ │ ├── logging.h │ │ ├── task_timer.h │ │ ├── TinySHA1.hpp │ │ └── parser.h │ └── crow.h ├── Makevars.ucrt ├── unigd_impl.h ├── httpgd_rng.h ├── Makevars.win ├── unigd_impl.cpp ├── httpgd_rng.cpp ├── cpp11.cpp ├── httpgd_webserver.h ├── httpgd.cpp └── optional_lex.h ├── .clang-format ├── .gitignore ├── codecov.yml ├── LICENSE.note ├── tools └── winlibs.R ├── valgrind.dockerfile ├── R ├── cpp11.R └── httpgd-package.R ├── .Rbuildignore ├── man ├── hgd_generate_token.Rd ├── hgd_view.Rd ├── hgd_browse.Rd ├── hgd_close.Rd ├── httpgd-package.Rd ├── hgd_details.Rd ├── hgd_url.Rd ├── hgd_watch.Rd └── hgd.Rd ├── NAMESPACE ├── cran-comments.md ├── DESCRIPTION ├── NEWS.md └── README.md /configure.win: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.covrignore: -------------------------------------------------------------------------------- 1 | src/lib 2 | -------------------------------------------------------------------------------- /client/src/index.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.github/.gitignore: -------------------------------------------------------------------------------- 1 | *.html 2 | -------------------------------------------------------------------------------- /vignettes/.gitignore: -------------------------------------------------------------------------------- 1 | *.html 2 | *.R 3 | -------------------------------------------------------------------------------- /cleanup: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | rm -f src/Makevars configure.log -------------------------------------------------------------------------------- /client/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | webpack.config.js -------------------------------------------------------------------------------- /configure: -------------------------------------------------------------------------------- 1 | cat src/Makevars.in > src/Makevars 2 | 3 | # Success 4 | exit 0 -------------------------------------------------------------------------------- /tests/testthat.R: -------------------------------------------------------------------------------- 1 | library(testthat) 2 | library(httpgd) 3 | 4 | test_check("httpgd") -------------------------------------------------------------------------------- /_pkgdown.yml: -------------------------------------------------------------------------------- 1 | url: https://nx10.github.io/httpgd 2 | template: 3 | bootstrap: 5 4 | -------------------------------------------------------------------------------- /inst/www/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nx10/httpgd/HEAD/inst/www/favicon.ico -------------------------------------------------------------------------------- /src/httpgd_version.h: -------------------------------------------------------------------------------- 1 | #ifndef HTTPGD_VERSION 2 | #define HTTPGD_VERSION "2.0.1" 3 | #endif 4 | -------------------------------------------------------------------------------- /client/src/assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nx10/httpgd/HEAD/client/src/assets/favicon.ico -------------------------------------------------------------------------------- /inst/www/199bb9cab408c177.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nx10/httpgd/HEAD/inst/www/199bb9cab408c177.png -------------------------------------------------------------------------------- /inst/www/e13eb9df618a2fbe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nx10/httpgd/HEAD/inst/www/e13eb9df618a2fbe.png -------------------------------------------------------------------------------- /client/src/assets/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nx10/httpgd/HEAD/client/src/assets/favicon-16x16.png -------------------------------------------------------------------------------- /client/src/assets/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nx10/httpgd/HEAD/client/src/assets/favicon-32x32.png -------------------------------------------------------------------------------- /src/Makevars.in: -------------------------------------------------------------------------------- 1 | PKG_CPPFLAGS = -Ilib -DFMT_HEADER_ONLY 2 | 3 | all: clean 4 | 5 | clean: 6 | rm -f $(SHLIB) $(OBJECTS) -------------------------------------------------------------------------------- /src/lib/crow/version.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace crow 4 | { 5 | constexpr const char VERSION[] = "master"; 6 | } 7 | -------------------------------------------------------------------------------- /.clang-format: -------------------------------------------------------------------------------- 1 | --- 2 | BasedOnStyle: Google 3 | BreakBeforeBraces: Allman 4 | ColumnLimit: '90' 5 | SortIncludes: 'true' 6 | 7 | ... 8 | -------------------------------------------------------------------------------- /client/src/index.ts: -------------------------------------------------------------------------------- 1 | import "./style/style.scss"; 2 | import App from "./app" ; 3 | 4 | window.onload = function () { 5 | App.viewer.init(); 6 | } -------------------------------------------------------------------------------- /client/src/resources.ts: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line @typescript-eslint/no-var-requires 2 | export const ASSET_PLOT_NONE: string = require('./assets/plot-none.svg'); -------------------------------------------------------------------------------- /client/src/assets/icons/hamburger.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/other.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Other 3 | about: Something other than a bug report or feature request 4 | title: '' 5 | labels: 6 | assignees: '' 7 | 8 | --- 9 | 10 | -------------------------------------------------------------------------------- /src/Makevars.ucrt: -------------------------------------------------------------------------------- 1 | PKG_CPPFLAGS = -Ilib \ 2 | -DFMT_HEADER_ONLY \ 3 | -DHTTPGD_DEBUG_DEVICE 4 | 5 | PKG_LIBS = -lmswsock -lwsock32 -lws2_32 -lbcrypt 6 | 7 | all: clean 8 | 9 | clean: 10 | rm -f $(OBJECTS) -------------------------------------------------------------------------------- /client/src/assets/icons/arrow-right.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/src/assets/icons/arrow-left.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/src/assets/icons/export.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .Rproj.user 2 | .Rhistory 3 | .RData 4 | .Ruserdata 5 | src/*.o 6 | src/*.so 7 | src/*.dll 8 | .vscode 9 | windows 10 | *.Rproj 11 | inst/doc 12 | revdep 13 | configure.log 14 | src/Makevars 15 | docs 16 | src-i386 17 | src-x64 18 | -------------------------------------------------------------------------------- /client/src/assets/icons/cross.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/src/assets/icons/download.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/src/assets/icons/image.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/src/assets/icons/copy.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "outDir": "./dist/", 4 | "noImplicitAny": true, 5 | "module": "es6", 6 | "target": "es5", 7 | "jsx": "react", 8 | "allowJs": true, 9 | "moduleResolution": "node", 10 | } 11 | } -------------------------------------------------------------------------------- /codecov.yml: -------------------------------------------------------------------------------- 1 | comment: false 2 | 3 | coverage: 4 | status: 5 | project: 6 | default: 7 | target: auto 8 | threshold: 1% 9 | informational: true 10 | patch: 11 | default: 12 | target: auto 13 | threshold: 1% 14 | informational: true 15 | -------------------------------------------------------------------------------- /client/src/assets/icons/vdots.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /inst/www/18c7a89e30a180cb.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/src/assets/plot-none.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/unigd_impl.h: -------------------------------------------------------------------------------- 1 | #ifndef __UNIGD_UNIGD_IMPL_H__ 2 | #define __UNIGD_UNIGD_IMPL_H__ 3 | 4 | #include "unigd_api_v1.h" 5 | 6 | namespace httpgd 7 | { 8 | namespace ugd 9 | { 10 | extern unigd_api_v1 *api; 11 | extern UNIGD_CLIENT_ID httpgd_client_id; 12 | } // namespace ugd 13 | 14 | } // namespace httpgd 15 | 16 | #endif /* __UNIGD_UNIGD_IMPL_H__ */ 17 | -------------------------------------------------------------------------------- /LICENSE.note: -------------------------------------------------------------------------------- 1 | The httpgd package as a whole is distributed under GPL-2. The httpgd package includes other open source software components. The following is a list of these components: 2 | 3 | * fmt: MIT 4 | * belle: MIT 5 | * svglite: GPL-2 | GPL-3 6 | * material-design-icons: Apache 2.0 7 | 8 | Full copies of the license agreements used by these components are included in `inst/licenses`. -------------------------------------------------------------------------------- /tools/winlibs.R: -------------------------------------------------------------------------------- 1 | VERSION <- commandArgs(TRUE) 2 | if(!file.exists(sprintf("../windows/harfbuzz-%s/include/png.h", VERSION))){ 3 | if(getRversion() < "3.3.0") setInternet2() 4 | download.file(sprintf("https://github.com/rwinlib/harfbuzz/archive/v%s.zip", VERSION), "lib.zip", quiet = TRUE) 5 | dir.create("../windows", showWarnings = FALSE) 6 | unzip("lib.zip", exdir = "../windows") 7 | unlink("lib.zip") 8 | } 9 | -------------------------------------------------------------------------------- /valgrind.dockerfile: -------------------------------------------------------------------------------- 1 | FROM rocker/r-devel-san:latest 2 | 3 | WORKDIR /app 4 | COPY . . 5 | 6 | RUN R -e "install.packages('pak', repos = 'http://cran.us.r-project.org')" 7 | RUN apt-get install -y --no-install-recommends libxml2-dev libssl-dev 8 | RUN R -e "pak::pkg_install('.', dependencies=TRUE)" 9 | 10 | ENTRYPOINT ["/bin/sh"] 11 | 12 | # Use this: cd tests && R -d "valgrind --leak-check=full" -f testthat.R -------------------------------------------------------------------------------- /client/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": [ 5 | "@typescript-eslint" 6 | ], 7 | "extends": [ 8 | "eslint:recommended", 9 | "plugin:@typescript-eslint/eslint-recommended", 10 | "plugin:@typescript-eslint/recommended" 11 | ], 12 | "rules": { 13 | "@typescript-eslint/no-inferrable-types": 0 14 | } 15 | } -------------------------------------------------------------------------------- /client/src/index.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |