@r-universe/webr 2023.6.21 → 2023.9.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/dist/R.bin.data +3934 -2174
  2. package/dist/R.bin.js +1 -6
  3. package/dist/R.bin.wasm +0 -0
  4. package/dist/repl/App.d.ts +15 -0
  5. package/dist/repl/components/Editor.d.ts +26 -0
  6. package/dist/repl/components/Files.d.ts +19 -0
  7. package/dist/repl/components/Plot.d.ts +7 -0
  8. package/dist/repl/components/Terminal.d.ts +9 -0
  9. package/dist/repl/components/utils.d.ts +11 -0
  10. package/dist/tests/webR/chan/channel-postmessage.test.d.ts +1 -0
  11. package/dist/tests/webR/error.test.d.ts +1 -0
  12. package/dist/vfs/usr/lib/R/library/grDevices/afm/ArialMT-Bold.afm.gz +0 -0
  13. package/dist/vfs/usr/lib/R/library/grDevices/afm/ArialMT-BoldItalic.afm.gz +0 -0
  14. package/dist/vfs/usr/lib/R/library/grDevices/afm/ArialMT-Italic.afm.gz +0 -0
  15. package/dist/vfs/usr/lib/R/library/grDevices/afm/ArialMT.afm.gz +0 -0
  16. package/dist/vfs/usr/lib/R/library/grDevices/afm/CM_boldx_10.afm.gz +0 -0
  17. package/dist/vfs/usr/lib/R/library/grDevices/afm/CM_boldx_italic_10.afm.gz +0 -0
  18. package/dist/vfs/usr/lib/R/library/grDevices/afm/CM_italic_10.afm.gz +0 -0
  19. package/dist/vfs/usr/lib/R/library/grDevices/afm/CM_regular_10.afm.gz +0 -0
  20. package/dist/vfs/usr/lib/R/library/grDevices/afm/CM_symbol_10.afm.gz +0 -0
  21. package/dist/vfs/usr/lib/R/library/grDevices/afm/Courier-Bold.afm.gz +0 -0
  22. package/dist/vfs/usr/lib/R/library/grDevices/afm/Courier-BoldOblique.afm.gz +0 -0
  23. package/dist/vfs/usr/lib/R/library/grDevices/afm/Courier-Oblique.afm.gz +0 -0
  24. package/dist/vfs/usr/lib/R/library/grDevices/afm/Courier.afm.gz +0 -0
  25. package/dist/vfs/usr/lib/R/library/grDevices/afm/Helvetica-Bold.afm.gz +0 -0
  26. package/dist/vfs/usr/lib/R/library/grDevices/afm/Helvetica-BoldOblique.afm.gz +0 -0
  27. package/dist/vfs/usr/lib/R/library/grDevices/afm/Helvetica-Oblique.afm.gz +0 -0
  28. package/dist/vfs/usr/lib/R/library/grDevices/afm/Helvetica.afm.gz +0 -0
  29. package/dist/vfs/usr/lib/R/library/grDevices/afm/Symbol.afm.gz +0 -0
  30. package/dist/vfs/usr/lib/R/library/grDevices/afm/Times-Bold.afm.gz +0 -0
  31. package/dist/vfs/usr/lib/R/library/grDevices/afm/Times-BoldItalic.afm.gz +0 -0
  32. package/dist/vfs/usr/lib/R/library/grDevices/afm/Times-Italic.afm.gz +0 -0
  33. package/dist/vfs/usr/lib/R/library/grDevices/afm/Times-Roman.afm.gz +0 -0
  34. package/dist/vfs/usr/lib/R/library/grDevices/afm/ZapfDingbats.afm.gz +0 -0
  35. package/dist/vfs/usr/lib/R/library/grDevices/afm/a010013l.afm.gz +0 -0
  36. package/dist/vfs/usr/lib/R/library/grDevices/afm/a010015l.afm.gz +0 -0
  37. package/dist/vfs/usr/lib/R/library/grDevices/afm/a010033l.afm.gz +0 -0
  38. package/dist/vfs/usr/lib/R/library/grDevices/afm/a010035l.afm.gz +0 -0
  39. package/dist/vfs/usr/lib/R/library/grDevices/afm/agd_____.afm.gz +0 -0
  40. package/dist/vfs/usr/lib/R/library/grDevices/afm/agdo____.afm.gz +0 -0
  41. package/dist/vfs/usr/lib/R/library/grDevices/afm/agw_____.afm.gz +0 -0
  42. package/dist/vfs/usr/lib/R/library/grDevices/afm/agwo____.afm.gz +0 -0
  43. package/dist/vfs/usr/lib/R/library/grDevices/afm/b018012l.afm.gz +0 -0
  44. package/dist/vfs/usr/lib/R/library/grDevices/afm/b018015l.afm.gz +0 -0
  45. package/dist/vfs/usr/lib/R/library/grDevices/afm/b018032l.afm.gz +0 -0
  46. package/dist/vfs/usr/lib/R/library/grDevices/afm/b018035l.afm.gz +0 -0
  47. package/dist/vfs/usr/lib/R/library/grDevices/afm/bkd_____.afm.gz +0 -0
  48. package/dist/vfs/usr/lib/R/library/grDevices/afm/bkdi____.afm.gz +0 -0
  49. package/dist/vfs/usr/lib/R/library/grDevices/afm/bkl_____.afm.gz +0 -0
  50. package/dist/vfs/usr/lib/R/library/grDevices/afm/bkli____.afm.gz +0 -0
  51. package/dist/vfs/usr/lib/R/library/grDevices/afm/c059013l.afm.gz +0 -0
  52. package/dist/vfs/usr/lib/R/library/grDevices/afm/c059016l.afm.gz +0 -0
  53. package/dist/vfs/usr/lib/R/library/grDevices/afm/c059033l.afm.gz +0 -0
  54. package/dist/vfs/usr/lib/R/library/grDevices/afm/c059036l.afm.gz +0 -0
  55. package/dist/vfs/usr/lib/R/library/grDevices/afm/cmbxti10.afm.gz +0 -0
  56. package/dist/vfs/usr/lib/R/library/grDevices/afm/cmti10.afm.gz +0 -0
  57. package/dist/vfs/usr/lib/R/library/grDevices/afm/cob_____.afm.gz +0 -0
  58. package/dist/vfs/usr/lib/R/library/grDevices/afm/cobo____.afm.gz +0 -0
  59. package/dist/vfs/usr/lib/R/library/grDevices/afm/com_____.afm.gz +0 -0
  60. package/dist/vfs/usr/lib/R/library/grDevices/afm/coo_____.afm.gz +0 -0
  61. package/dist/vfs/usr/lib/R/library/grDevices/afm/hv______.afm.gz +0 -0
  62. package/dist/vfs/usr/lib/R/library/grDevices/afm/hvb_____.afm.gz +0 -0
  63. package/dist/vfs/usr/lib/R/library/grDevices/afm/hvbo____.afm.gz +0 -0
  64. package/dist/vfs/usr/lib/R/library/grDevices/afm/hvn_____.afm.gz +0 -0
  65. package/dist/vfs/usr/lib/R/library/grDevices/afm/hvnb____.afm.gz +0 -0
  66. package/dist/vfs/usr/lib/R/library/grDevices/afm/hvnbo___.afm.gz +0 -0
  67. package/dist/vfs/usr/lib/R/library/grDevices/afm/hvno____.afm.gz +0 -0
  68. package/dist/vfs/usr/lib/R/library/grDevices/afm/hvo_____.afm.gz +0 -0
  69. package/dist/vfs/usr/lib/R/library/grDevices/afm/n019003l.afm.gz +0 -0
  70. package/dist/vfs/usr/lib/R/library/grDevices/afm/n019004l.afm.gz +0 -0
  71. package/dist/vfs/usr/lib/R/library/grDevices/afm/n019023l.afm.gz +0 -0
  72. package/dist/vfs/usr/lib/R/library/grDevices/afm/n019024l.afm.gz +0 -0
  73. package/dist/vfs/usr/lib/R/library/grDevices/afm/n019043l.afm.gz +0 -0
  74. package/dist/vfs/usr/lib/R/library/grDevices/afm/n019044l.afm.gz +0 -0
  75. package/dist/vfs/usr/lib/R/library/grDevices/afm/n019063l.afm.gz +0 -0
  76. package/dist/vfs/usr/lib/R/library/grDevices/afm/n019064l.afm.gz +0 -0
  77. package/dist/vfs/usr/lib/R/library/grDevices/afm/n021003l.afm.gz +0 -0
  78. package/dist/vfs/usr/lib/R/library/grDevices/afm/n021004l.afm.gz +0 -0
  79. package/dist/vfs/usr/lib/R/library/grDevices/afm/n021023l.afm.gz +0 -0
  80. package/dist/vfs/usr/lib/R/library/grDevices/afm/n021024l.afm.gz +0 -0
  81. package/dist/vfs/usr/lib/R/library/grDevices/afm/n022003l.afm.gz +0 -0
  82. package/dist/vfs/usr/lib/R/library/grDevices/afm/n022004l.afm.gz +0 -0
  83. package/dist/vfs/usr/lib/R/library/grDevices/afm/n022023l.afm.gz +0 -0
  84. package/dist/vfs/usr/lib/R/library/grDevices/afm/n022024l.afm.gz +0 -0
  85. package/dist/vfs/usr/lib/R/library/grDevices/afm/ncb_____.afm.gz +0 -0
  86. package/dist/vfs/usr/lib/R/library/grDevices/afm/ncbi____.afm.gz +0 -0
  87. package/dist/vfs/usr/lib/R/library/grDevices/afm/nci_____.afm.gz +0 -0
  88. package/dist/vfs/usr/lib/R/library/grDevices/afm/ncr_____.afm.gz +0 -0
  89. package/dist/vfs/usr/lib/R/library/grDevices/afm/p052003l.afm.gz +0 -0
  90. package/dist/vfs/usr/lib/R/library/grDevices/afm/p052004l.afm.gz +0 -0
  91. package/dist/vfs/usr/lib/R/library/grDevices/afm/p052023l.afm.gz +0 -0
  92. package/dist/vfs/usr/lib/R/library/grDevices/afm/p052024l.afm.gz +0 -0
  93. package/dist/vfs/usr/lib/R/library/grDevices/afm/pob_____.afm.gz +0 -0
  94. package/dist/vfs/usr/lib/R/library/grDevices/afm/pobi____.afm.gz +0 -0
  95. package/dist/vfs/usr/lib/R/library/grDevices/afm/poi_____.afm.gz +0 -0
  96. package/dist/vfs/usr/lib/R/library/grDevices/afm/por_____.afm.gz +0 -0
  97. package/dist/vfs/usr/lib/R/library/grDevices/afm/s050000l.afm.gz +0 -0
  98. package/dist/vfs/usr/lib/R/library/grDevices/afm/sy______.afm.gz +0 -0
  99. package/dist/vfs/usr/lib/R/library/grDevices/afm/tib_____.afm.gz +0 -0
  100. package/dist/vfs/usr/lib/R/library/grDevices/afm/tibi____.afm.gz +0 -0
  101. package/dist/vfs/usr/lib/R/library/grDevices/afm/tii_____.afm.gz +0 -0
  102. package/dist/vfs/usr/lib/R/library/grDevices/afm/tir_____.afm.gz +0 -0
  103. package/dist/vfs/usr/lib/R/library/parallel/DESCRIPTION +1 -1
  104. package/dist/vfs/usr/lib/R/library/parallel/Meta/package.rds +0 -0
  105. package/dist/vfs/usr/lib/R/library/tcltk/DESCRIPTION +1 -1
  106. package/dist/vfs/usr/lib/R/library/tcltk/Meta/package.rds +0 -0
  107. package/dist/vfs/usr/lib/R/library/tools/help/tools.rdb +0 -0
  108. package/dist/vfs/usr/lib/R/library/translations/Meta/package.rds +0 -0
  109. package/dist/webR/chan/channel-common.d.ts +4 -2
  110. package/dist/webR/chan/channel-postmessage.d.ts +26 -0
  111. package/dist/webR/chan/channel-shared.d.ts +1 -0
  112. package/dist/webR/chan/channel.d.ts +1 -0
  113. package/dist/webR/console.d.ts +6 -2
  114. package/dist/webR/emscripten.d.ts +7 -0
  115. package/dist/webR/error.d.ts +26 -0
  116. package/dist/webR/payload.d.ts +1 -1
  117. package/dist/webR/webr-chan.d.ts +18 -0
  118. package/dist/webR/webr-main.d.ts +7 -0
  119. package/dist/webr-serviceworker.js +14 -3
  120. package/dist/webr-serviceworker.js.map +3 -3
  121. package/dist/webr-serviceworker.mjs +14 -3
  122. package/dist/webr-serviceworker.mjs.map +3 -3
  123. package/dist/webr-worker.js +435 -175
  124. package/dist/webr-worker.js.map +4 -4
  125. package/dist/webr.cjs +3 -3
  126. package/dist/webr.cjs.map +4 -4
  127. package/dist/webr.mjs +3 -3
  128. package/dist/webr.mjs.map +4 -4
  129. package/package.json +20 -18
  130. package/dist/repl/fstree.d.ts +0 -57
  131. package/dist/repl/repl.d.ts +0 -1
  132. package/dist/vfs/usr/lib/R/library/grDevices/libs/grDevices.so +0 -0
  133. package/dist/vfs/usr/lib/R/modules/internet.so +0 -0
  134. package/dist/vfs/usr/lib/R/modules/lapack.so +0 -0
  135. package/templates/repl.html +0 -134
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@r-universe/webr",
3
- "version": "2023.06.21",
3
+ "version": "2023.09.18",
4
4
  "description": "The statistical programming langauge R compiled into WASM for use in a web browser and node.",
5
5
  "keywords": [
6
6
  "webR",
@@ -35,7 +35,6 @@
35
35
  }
36
36
  ],
37
37
  "files": [
38
- "templates",
39
38
  "dist"
40
39
  ],
41
40
  "main": "dist/webr.mjs",
@@ -45,32 +44,31 @@
45
44
  "node": "./dist/webr.cjs",
46
45
  "default": "./dist/webr.mjs"
47
46
  },
48
- "./chan/serviceworker": "./dist/webr-serviceworker.mjs",
49
- "./repl": "./dist/repl.mjs"
47
+ "./chan/serviceworker": "./dist/webr-serviceworker.mjs"
50
48
  },
51
49
  "typesVersions": {
52
50
  "*": {
53
- "repl": [
54
- "dist/repl/repl"
55
- ],
56
- "repl/*": [
57
- "dist/repl/*"
58
- ],
59
51
  "*": [
60
52
  "dist/webR/*"
61
53
  ]
62
54
  }
63
55
  },
64
56
  "engines": {
65
- "node": ">=14.0.0"
57
+ "node": ">=17.0.0"
66
58
  },
67
59
  "dependencies": {
60
+ "@codemirror/autocomplete": "^6.8.1",
61
+ "@codemirror/commands": "^6.2.4",
62
+ "@codemirror/state": "^6.2.1",
63
+ "@codemirror/view": "^6.15.0",
68
64
  "@msgpack/msgpack": "^2.8.0",
69
- "@types/emscripten": "^1.39.6",
70
- "esbuild": "^0.17.19",
71
- "eslint-plugin-jsdoc": "^46.2.4",
72
- "jquery": "^3.6.0",
73
- "jstree": "^3.3.12",
65
+ "codemirror": "^6.0.1",
66
+ "codemirror-lang-r": "^0.1.0-2",
67
+ "lightningcss": "^1.21.5",
68
+ "react": "^18.2.0",
69
+ "react-accessible-treeview": "^2.6.1",
70
+ "react-dom": "^18.2.0",
71
+ "react-icons": "^4.10.1",
74
72
  "tsx": "^3.12.7",
75
73
  "xmlhttprequest-ssl": "^2.1.0",
76
74
  "xterm": "^5.1.0",
@@ -78,17 +76,21 @@
78
76
  "xterm-readline": "^1.1.1"
79
77
  },
80
78
  "devDependencies": {
79
+ "@types/emscripten": "^1.39.6",
81
80
  "@types/jest": "^28.1.8",
82
- "@types/jquery": "^3.5.14",
83
- "@types/jstree": "^3.3.41",
84
81
  "@types/node": "^17.0.35",
82
+ "@types/react": "^18.2.15",
83
+ "@types/react-dom": "^18.2.7",
85
84
  "@typescript-eslint/eslint-plugin": "^5.51.0",
86
85
  "@typescript-eslint/parser": "^5.51.0",
87
86
  "c8": "^7.12.0",
87
+ "esbuild": "^0.17.19",
88
88
  "esbuild-css-modules-plugin": "^2.2.16",
89
89
  "eslint": "^8.33.0",
90
90
  "eslint-config-google": "^0.14.0",
91
91
  "eslint-plugin-jest": "^26.8.7",
92
+ "eslint-plugin-jsdoc": "^46.2.4",
93
+ "eslint-plugin-react": "^7.32.2",
92
94
  "gts": "^3.1.0",
93
95
  "jest": "^28.1.3",
94
96
  "ts-jest": "^28.0.8",
@@ -1,57 +0,0 @@
1
- /// <reference types="jquery" />
2
- /// <reference types="jquery" />
3
- /// <reference types="jstree" />
4
- import { FSNode } from '../webR/webr-main';
5
- import 'jstree/dist/themes/default/style.css';
6
- interface JQueryJSTreeElement extends Omit<JQuery, 'on'> {
7
- jstree(options?: {}): JSTree;
8
- on(eventName: string, callback: (event: Event, data: {
9
- node: JSTreeNode;
10
- action: any;
11
- selected: string[];
12
- event: Event;
13
- }) => void): this;
14
- }
15
- export type JSTreeNode = {
16
- text: string;
17
- icon?: string;
18
- state?: {
19
- opened?: boolean;
20
- disabled?: boolean;
21
- selected?: boolean;
22
- };
23
- parents?: JSTreeNode[];
24
- children?: JSTreeNode[];
25
- original?: {
26
- [key: string]: any;
27
- };
28
- isFolder?: boolean;
29
- };
30
- type FSTreeOptions = {
31
- selector: string;
32
- core?: {
33
- check_callback: boolean;
34
- data: (obj: {
35
- id: string;
36
- }, cb: {
37
- call: (FSTree: FSTreeInterface, jsTreeNode: JSTreeNode) => any;
38
- }) => void;
39
- multiple: boolean;
40
- };
41
- };
42
- export interface FSTreeInterface {
43
- getSelectedNodes: typeof getSelectedNodes;
44
- getSelectedNode: typeof getSelectedNode;
45
- refresh: typeof refresh;
46
- createJSTreeNodefromFSNode: typeof createJSTreeNodefromFSNode;
47
- getJSTreeElement: typeof getJSTreeElement;
48
- getNodeFileName: typeof getNodeFileName;
49
- }
50
- export declare function initFSTree(options: FSTreeOptions): FSTreeInterface;
51
- export declare function getJSTreeElement(): JQueryJSTreeElement;
52
- export declare function getSelectedNodes(): JSTreeNode[];
53
- export declare function getSelectedNode(): JSTreeNode | undefined;
54
- export declare function getNodeFileName(node: JSTreeNode): string;
55
- export declare function refresh(): void;
56
- export declare function createJSTreeNodefromFSNode(fsNode: FSNode): JSTreeNode;
57
- export {};
@@ -1 +0,0 @@
1
- import 'xterm/css/xterm.css';
@@ -1,134 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <link href="repl.css" rel="stylesheet"/>
5
- <style>
6
- body {
7
- margin: 0;
8
- font-family: sans-serif;
9
- overflow:hidden;
10
- }
11
- .tabs {
12
- display: flex;
13
- flex-wrap: wrap;
14
- background: #eee;
15
- height: 100%;
16
- min-height: 100%;
17
- align-items: flex-start;
18
- align-content: flex-start;
19
- }
20
- .tabs label {
21
- order: 1;
22
- display: block;
23
- padding: 6px 25px;
24
- margin-right: 0.2rem;
25
- cursor: pointer;
26
- background: #ccc;
27
- font-weight: bold;
28
- transition: background ease 0.2s;
29
- }
30
- .tabs .tab {
31
- order: 99;
32
- flex-grow: 1;
33
- width: 100%;
34
- display: none;
35
- background: #fff;
36
- padding-top: 5px;
37
- height: calc(100% - 30px);
38
- }
39
- .tabs input[type="radio"] {
40
- display: none;
41
- }
42
- .tabs input[type="radio"]:checked + label {
43
- background: #fff;
44
- }
45
- .tabs input[type="radio"]:checked + label + .tab {
46
- display: block;
47
- }
48
- .dispbox {
49
- display: flex;
50
- justify-content: center;
51
- }
52
- .main {
53
- height: 100vh;
54
- }
55
- .box {
56
- position: relative;
57
- width: 50vw;
58
- height: 100vh;
59
- background-color: #191919;
60
- }
61
- #plot {
62
- background-color: #727272;
63
- align-items: center;
64
- height: 100%;
65
- position: relative;
66
- }
67
- #plot-canvas {
68
- background-color: #FFFFFF;
69
- width: 40vw;
70
- height: 40vw;
71
- max-height: 80vh;
72
- max-width: 80vh;
73
- }
74
- #plot-save {
75
- position: absolute;
76
- top: 5px;
77
- right: 5px;
78
- }
79
- #files-bar {
80
- display: flex;
81
- flex-wrap: wrap;
82
- flex-direction: row;
83
- align-items: stretch;
84
- width: 100%;
85
- }
86
- @media (orientation: portrait) {
87
- .dispbox {
88
- flex-flow: column;
89
- }
90
- .box {
91
- width: 100vw;
92
- height: 50vh;
93
- }
94
- #plot-canvas {
95
- width: 40vh;
96
- height: 40vh;
97
- max-height: 80vw;
98
- max-width: 80vw;
99
- }
100
- }
101
- </style>
102
- </head>
103
- <body>
104
- <div class="main dispbox">
105
- <div id='term' class="box"></div>
106
- <div class="box">
107
- <div class="tabs">
108
- <input type="radio" id="plots-tab" name="tab-group-1" checked="checked">
109
- <label for="plots-tab">Plotting</label>
110
- <div class="tab">
111
- <div id='plot' class="dispbox">
112
- <button id="plot-save">Save Plot</button>
113
- <canvas id='plot-canvas' class="box" width="1008" height="1008"></canvas>
114
- </div>
115
- </div>
116
- <input type="radio" id="files-tab" name="tab-group-1">
117
- <label for="files-tab">Files</label>
118
- <div class="tab">
119
- <div>
120
- <div id="files-bar">
121
- <button id="upload-file" disabled onclick="document.getElementById('input-upload').click();" style="flex: 1">Upload File</button>
122
- <input id="input-upload" type="file" style="display: none"/>
123
- <button id="download-file" disabled style="flex: 1">Download File</button>
124
- </div>
125
- </div>
126
- <div id="jstree_fs">
127
- </div>
128
- </div>
129
- </div>
130
- </div>
131
- </div>
132
- </body>
133
- <script type="module" src="repl.mjs"></script>
134
- </html>