@deephaven/console 0.15.6-beta.5 → 0.15.6

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.
@@ -0,0 +1,60 @@
1
+ .max-memory {
2
+ position: relative;
3
+ color: #c0bfbf;
4
+ background-color: #211f22;
5
+ border: #1a171a;
6
+ width: 4.25rem;
7
+ vertical-align: middle;
8
+ text-align: center;
9
+ user-select: none;
10
+ z-index: 1;
11
+ }
12
+
13
+ .total-memory,
14
+ .used-memory {
15
+ position: absolute;
16
+ inset: 0;
17
+ margin: 1px;
18
+ z-index: -1;
19
+ }
20
+
21
+ .total-memory {
22
+ background-color: #403e41;
23
+ }
24
+
25
+ .used-memory {
26
+ background-color: #5b5a5c;
27
+ }
28
+
29
+ .heap-overflow {
30
+ background-color: #f95d84;
31
+ }
32
+
33
+ .heap-tooltip {
34
+ padding: 0.25rem;
35
+ width: 200px;
36
+ }
37
+
38
+ .heap-usage-info-row {
39
+ display: flex;
40
+ color: #f0f0ee;
41
+ padding: 0.25rem;
42
+ justify-content: space-between;
43
+ }
44
+
45
+ .heap-plot {
46
+ display: flex;
47
+ align-items: center;
48
+ }
49
+
50
+ .heading-bottom-border {
51
+ border-bottom: 1px solid #211f22;
52
+ margin-bottom: 0.25rem;
53
+ }
54
+
55
+ .heap-utilisation-text {
56
+ margin-top: 0.25rem;
57
+ color: #929192;
58
+ }
59
+
60
+ /*# sourceMappingURL=HeapUsage.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sourceRoot":"","sources":["../src/HeapUsage.scss","../../components/scss/bootstrap_overrides.scss","../../components/scss/new_variables.scss"],"names":[],"mappings":"AAEA;EACE;EACA,OCgBS;EDfT,kBCsBS;EDrBT,QCQe;EDPf;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;;;AAGF;EACE,kBCCS;;;ADEX;EACE,kBCLS;;;ADQX;EACE,kBC5BI;;;AD+BN;EACE,SEjCS;EFkCT;;;AAGF;EACE;EACA,OC5Be;ED6Bf,SExCS;EFyCT;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA,eEnDS;;;AFsDX;EACE,YEvDS;EFwDT,OCrCS","file":"HeapUsage.css"}
@@ -0,0 +1,13 @@
1
+ import { QueryConnectable } from '@deephaven/jsapi-shim';
2
+ import { ReactElement } from 'react';
3
+ import './HeapUsage.scss';
4
+ interface HeapUsageProps {
5
+ connection: QueryConnectable;
6
+ defaultUpdateInterval: number;
7
+ hoverUpdateInterval: number;
8
+ bgMonitoring?: boolean;
9
+ monitorDuration: number;
10
+ }
11
+ declare const HeapUsage: ({ connection, defaultUpdateInterval, hoverUpdateInterval, bgMonitoring, monitorDuration, }: HeapUsageProps) => ReactElement;
12
+ export default HeapUsage;
13
+ //# sourceMappingURL=HeapUsage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeapUsage.d.ts","sourceRoot":"","sources":["../src/HeapUsage.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAc,EAAuB,YAAY,EAAU,MAAM,OAAO,CAAC;AAEzE,OAAO,kBAAkB,CAAC;AAG1B,UAAU,cAAc;IACtB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IAGvB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,QAAA,MAAM,SAAS,+FAMZ,cAAc,KAAG,YAgLnB,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,179 @@
1
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
2
+
3
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
4
+
5
+ import { Tooltip } from '@deephaven/components';
6
+ import React, { useEffect, useState, useRef } from 'react';
7
+ import { Plot, ChartTheme } from '@deephaven/chart';
8
+ import "./HeapUsage.css";
9
+ import classNames from 'classnames';
10
+
11
+ var HeapUsage = _ref => {
12
+ var _timestamps2;
13
+
14
+ var {
15
+ connection,
16
+ defaultUpdateInterval,
17
+ hoverUpdateInterval,
18
+ bgMonitoring = true,
19
+ monitorDuration
20
+ } = _ref;
21
+ var [memoryUsage, setMemoryUsage] = useState({
22
+ freeMemory: 0,
23
+ maximumHeapSize: 999,
24
+ totalHeapSize: 0
25
+ });
26
+ var [isOpen, setIsOpen] = useState(false);
27
+ var historyUsage = useRef({
28
+ timestamps: [],
29
+ usages: []
30
+ });
31
+ useEffect(function setUsageUpdateInterval() {
32
+ var fetchAndUpdate = /*#__PURE__*/function () {
33
+ var _ref2 = _asyncToGenerator(function* () {
34
+ var newUsage = yield connection.getWorkerHeapInfo();
35
+ setMemoryUsage(newUsage);
36
+
37
+ if (bgMonitoring || isOpen) {
38
+ var currentUsage = (newUsage.totalHeapSize - newUsage.freeMemory) / newUsage.maximumHeapSize;
39
+ var currentTime = Date.now();
40
+ var {
41
+ timestamps: _timestamps,
42
+ usages: _usages
43
+ } = historyUsage.current;
44
+
45
+ while (_timestamps.length !== 0 && currentTime - _timestamps[0] > monitorDuration * 1.5) {
46
+ _timestamps.shift();
47
+
48
+ _usages.shift();
49
+ }
50
+
51
+ _timestamps.push(currentTime);
52
+
53
+ _usages.push(currentUsage);
54
+ } else {
55
+ historyUsage.current = {
56
+ timestamps: [],
57
+ usages: []
58
+ };
59
+ }
60
+ });
61
+
62
+ return function fetchAndUpdate() {
63
+ return _ref2.apply(this, arguments);
64
+ };
65
+ }();
66
+
67
+ fetchAndUpdate();
68
+ var updateUsage = setInterval(fetchAndUpdate, isOpen ? hoverUpdateInterval : defaultUpdateInterval);
69
+ return () => {
70
+ clearInterval(updateUsage);
71
+ };
72
+ }, [isOpen, hoverUpdateInterval, connection, defaultUpdateInterval, monitorDuration, bgMonitoring]);
73
+
74
+ var toDecimalPlace = (num, dec) => Math.round(num * 10 ** dec) / 10 ** dec;
75
+
76
+ var decimalPlace = 2;
77
+ var GbToByte = 1024 ** 3;
78
+ var {
79
+ freeMemory,
80
+ totalHeapSize,
81
+ maximumHeapSize
82
+ } = memoryUsage;
83
+ var freeMemoryGB = toDecimalPlace(freeMemory / GbToByte, decimalPlace);
84
+ var totalHeapGB = toDecimalPlace(totalHeapSize / GbToByte, decimalPlace);
85
+ var maxHeapGB = toDecimalPlace(maximumHeapSize / GbToByte, decimalPlace);
86
+ var inUseGB = totalHeapGB - freeMemoryGB;
87
+
88
+ var getRow = function getRow(text, size) {
89
+ var bottomBorder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
90
+ return /*#__PURE__*/React.createElement("div", {
91
+ className: classNames("heap-usage-info-row", {
92
+ 'heading-bottom-border': bottomBorder
93
+ })
94
+ }, /*#__PURE__*/React.createElement("div", {
95
+ className: "font-weight-bold"
96
+ }, text), /*#__PURE__*/React.createElement("div", null, size));
97
+ };
98
+
99
+ var {
100
+ timestamps,
101
+ usages
102
+ } = historyUsage.current;
103
+ var lastTimestamp = (_timestamps2 = timestamps[timestamps.length - 1]) !== null && _timestamps2 !== void 0 ? _timestamps2 : 0;
104
+ var totalPercentage = totalHeapSize / maximumHeapSize;
105
+ var usedPercentage = (totalHeapSize - freeMemory) / maximumHeapSize;
106
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
107
+ className: "max-memory"
108
+ }, /*#__PURE__*/React.createElement("div", {
109
+ className: "total-memory",
110
+ style: {
111
+ width: "calc(".concat(totalPercentage * 100, "% - ").concat(totalPercentage * 2, "px")
112
+ }
113
+ }), /*#__PURE__*/React.createElement("div", {
114
+ className: classNames('used-memory', {
115
+ 'heap-overflow': (totalHeapSize - freeMemory) / maximumHeapSize > 0.95
116
+ }),
117
+ style: {
118
+ width: "calc(".concat(usedPercentage * 100, "% - ").concat(usedPercentage * 2, "px")
119
+ }
120
+ }), /*#__PURE__*/React.createElement("div", {
121
+ className: "memory-text"
122
+ }, maxHeapGB.toFixed(1), " GB")), /*#__PURE__*/React.createElement(Tooltip, {
123
+ onEntered: () => setIsOpen(true),
124
+ onExited: () => setIsOpen(false),
125
+ interactive: true
126
+ }, /*#__PURE__*/React.createElement("div", {
127
+ className: "heap-tooltip"
128
+ }, getRow('In use:', "".concat(inUseGB.toFixed(decimalPlace), " of ").concat(maxHeapGB.toFixed(decimalPlace), " GB"), true), getRow('Free:', "".concat(freeMemoryGB.toFixed(decimalPlace), " GB")), getRow('Total:', "".concat(totalHeapGB.toFixed(decimalPlace), " GB")), getRow('Max:', "".concat(maxHeapGB.toFixed(decimalPlace), " GB")), /*#__PURE__*/React.createElement("div", {
129
+ className: "heap-plot"
130
+ }, /*#__PURE__*/React.createElement(Plot, {
131
+ data: [{
132
+ x: [...timestamps],
133
+ y: [...usages],
134
+ type: 'scatter',
135
+ mode: 'lines'
136
+ }],
137
+ config: {
138
+ staticPlot: true,
139
+ responsive: true
140
+ },
141
+ style: {
142
+ width: '196px',
143
+ height: '100px'
144
+ },
145
+ layout: {
146
+ legend: false,
147
+ margin: {
148
+ l: 2,
149
+ t: 2,
150
+ r: 2,
151
+ b: 2
152
+ },
153
+ plot_bgcolor: 'transparent',
154
+ paper_bgcolor: 'transparent',
155
+ colorway: ['#4878ea'],
156
+ xaxis: {
157
+ dtick: Math.round(monitorDuration / 6),
158
+ gridcolor: ChartTheme.linecolor,
159
+ range: [lastTimestamp - monitorDuration, lastTimestamp],
160
+ linecolor: ChartTheme.linecolor,
161
+ linewidth: 2,
162
+ mirror: true
163
+ },
164
+ yaxis: {
165
+ dtick: 0.2,
166
+ gridcolor: ChartTheme.linecolor,
167
+ range: [0, 1],
168
+ linecolor: ChartTheme.linecolor,
169
+ linewidth: 2,
170
+ mirror: true
171
+ }
172
+ }
173
+ })), /*#__PURE__*/React.createElement("div", {
174
+ className: "heap-utilisation-text"
175
+ }, "% utilization over ", Math.round(monitorDuration / 1000 / 60), " min."))));
176
+ };
177
+
178
+ export default HeapUsage;
179
+ //# sourceMappingURL=HeapUsage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/HeapUsage.tsx"],"names":["Tooltip","React","useEffect","useState","useRef","Plot","ChartTheme","classNames","HeapUsage","connection","defaultUpdateInterval","hoverUpdateInterval","bgMonitoring","monitorDuration","memoryUsage","setMemoryUsage","freeMemory","maximumHeapSize","totalHeapSize","isOpen","setIsOpen","historyUsage","timestamps","usages","setUsageUpdateInterval","fetchAndUpdate","newUsage","getWorkerHeapInfo","currentUsage","currentTime","Date","now","current","length","shift","push","updateUsage","setInterval","clearInterval","toDecimalPlace","num","dec","Math","round","decimalPlace","GbToByte","freeMemoryGB","totalHeapGB","maxHeapGB","inUseGB","getRow","text","size","bottomBorder","lastTimestamp","totalPercentage","usedPercentage","width","toFixed","x","y","type","mode","staticPlot","responsive","height","legend","margin","l","t","r","b","plot_bgcolor","paper_bgcolor","colorway","xaxis","dtick","gridcolor","linecolor","range","linewidth","mirror","yaxis"],"mappings":"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","sourcesContent":["import { Tooltip } from '@deephaven/components';\nimport { QueryConnectable } from '@deephaven/jsapi-shim';\nimport React, { useEffect, useState, ReactElement, useRef } from 'react';\nimport { Plot, ChartTheme } from '@deephaven/chart';\nimport './HeapUsage.scss';\nimport classNames from 'classnames';\n\ninterface HeapUsageProps {\n connection: QueryConnectable;\n defaultUpdateInterval: number;\n hoverUpdateInterval: number;\n bgMonitoring?: boolean;\n\n // in millis\n monitorDuration: number;\n}\n\nconst HeapUsage = ({\n connection,\n defaultUpdateInterval,\n hoverUpdateInterval,\n bgMonitoring = true,\n monitorDuration,\n}: HeapUsageProps): ReactElement => {\n const [memoryUsage, setMemoryUsage] = useState({\n freeMemory: 0,\n maximumHeapSize: 999,\n totalHeapSize: 0,\n });\n\n const [isOpen, setIsOpen] = useState(false);\n\n const historyUsage = useRef<{ timestamps: number[]; usages: number[] }>({\n timestamps: [],\n usages: [],\n });\n\n useEffect(\n function setUsageUpdateInterval() {\n const fetchAndUpdate = async () => {\n const newUsage = await connection.getWorkerHeapInfo();\n setMemoryUsage(newUsage);\n\n if (bgMonitoring || isOpen) {\n const currentUsage =\n (newUsage.totalHeapSize - newUsage.freeMemory) /\n newUsage.maximumHeapSize;\n const currentTime = Date.now();\n\n const { timestamps, usages } = historyUsage.current;\n while (\n timestamps.length !== 0 &&\n currentTime - timestamps[0] > monitorDuration * 1.5\n ) {\n timestamps.shift();\n usages.shift();\n }\n\n timestamps.push(currentTime);\n usages.push(currentUsage);\n } else {\n historyUsage.current = { timestamps: [], usages: [] };\n }\n };\n fetchAndUpdate();\n\n const updateUsage = setInterval(\n fetchAndUpdate,\n isOpen ? hoverUpdateInterval : defaultUpdateInterval\n );\n return () => {\n clearInterval(updateUsage);\n };\n },\n [\n isOpen,\n hoverUpdateInterval,\n connection,\n defaultUpdateInterval,\n monitorDuration,\n bgMonitoring,\n ]\n );\n\n const toDecimalPlace = (num: number, dec: number) =>\n Math.round(num * 10 ** dec) / 10 ** dec;\n\n const decimalPlace = 2;\n const GbToByte = 1024 ** 3;\n\n const { freeMemory, totalHeapSize, maximumHeapSize } = memoryUsage;\n\n const freeMemoryGB = toDecimalPlace(freeMemory / GbToByte, decimalPlace);\n const totalHeapGB = toDecimalPlace(totalHeapSize / GbToByte, decimalPlace);\n const maxHeapGB = toDecimalPlace(maximumHeapSize / GbToByte, decimalPlace);\n const inUseGB = totalHeapGB - freeMemoryGB;\n\n const getRow = (text: string, size: string, bottomBorder = false) => (\n <div\n className={classNames(`heap-usage-info-row`, {\n 'heading-bottom-border': bottomBorder,\n })}\n >\n <div className=\"font-weight-bold\">{text}</div>\n <div>{size}</div>\n </div>\n );\n\n const { timestamps, usages } = historyUsage.current;\n\n const lastTimestamp = timestamps[timestamps.length - 1] ?? 0;\n\n const totalPercentage = totalHeapSize / maximumHeapSize;\n const usedPercentage = (totalHeapSize - freeMemory) / maximumHeapSize;\n\n return (\n <>\n <div className=\"max-memory\">\n <div\n className=\"total-memory\"\n style={{\n width: `calc(${totalPercentage * 100}% - ${totalPercentage * 2}px`,\n }}\n />\n <div\n className={classNames('used-memory', {\n 'heap-overflow':\n (totalHeapSize - freeMemory) / maximumHeapSize > 0.95,\n })}\n style={{\n width: `calc(${usedPercentage * 100}% - ${usedPercentage * 2}px`,\n }}\n />\n <div className=\"memory-text\">{maxHeapGB.toFixed(1)} GB</div>\n </div>\n\n <Tooltip\n onEntered={() => setIsOpen(true)}\n onExited={() => setIsOpen(false)}\n interactive\n >\n <div className=\"heap-tooltip\">\n {getRow(\n 'In use:',\n `${inUseGB.toFixed(decimalPlace)} of ${maxHeapGB.toFixed(\n decimalPlace\n )} GB`,\n true\n )}\n {getRow('Free:', `${freeMemoryGB.toFixed(decimalPlace)} GB`)}\n {getRow('Total:', `${totalHeapGB.toFixed(decimalPlace)} GB`)}\n {getRow('Max:', `${maxHeapGB.toFixed(decimalPlace)} GB`)}\n <div className=\"heap-plot\">\n <Plot\n data={[\n {\n x: [...timestamps],\n y: [...usages],\n type: 'scatter',\n mode: 'lines',\n },\n ]}\n config={{ staticPlot: true, responsive: true }}\n style={{\n width: '196px',\n height: '100px',\n }}\n layout={{\n legend: false,\n margin: { l: 2, t: 2, r: 2, b: 2 },\n plot_bgcolor: 'transparent',\n paper_bgcolor: 'transparent',\n colorway: ['#4878ea'],\n xaxis: {\n dtick: Math.round(monitorDuration / 6),\n gridcolor: ChartTheme.linecolor,\n range: [lastTimestamp - monitorDuration, lastTimestamp],\n linecolor: ChartTheme.linecolor,\n linewidth: 2,\n mirror: true,\n },\n yaxis: {\n dtick: 0.2,\n gridcolor: ChartTheme.linecolor,\n range: [0, 1],\n linecolor: ChartTheme.linecolor,\n linewidth: 2,\n mirror: true,\n },\n }}\n />\n </div>\n <div className=\"heap-utilisation-text\">\n % utilization over {Math.round(monitorDuration / 1000 / 60)} min.\n </div>\n </div>\n </Tooltip>\n </>\n );\n};\n\nexport default HeapUsage;\n"],"file":"HeapUsage.js"}
package/dist/index.d.ts CHANGED
@@ -11,5 +11,6 @@ export * from './common';
11
11
  export * from './command-history';
12
12
  export * from './console-history';
13
13
  export { default as LogView } from './log/LogView';
14
+ export { default as HeapUsage } from './HeapUsage';
14
15
  export { default } from './Console';
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -11,5 +11,6 @@ export * from "./common/index.js";
11
11
  export * from "./command-history/index.js";
12
12
  export * from "./console-history/index.js";
13
13
  export { default as LogView } from "./log/LogView.js";
14
+ export { default as HeapUsage } from "./HeapUsage.js";
14
15
  export { default } from "./Console.js";
15
16
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["default","Console","ConsoleInput","ConsoleMenu","SHORTCUTS","ConsoleStatusBar","MonacoUtils","Editor","ScriptEditor","ScriptEditorUtils","LogView"],"mappings":"SAASA,OAAO,IAAIC,O;SACXD,OAAO,IAAIE,Y;SACXF,OAAO,IAAIG,W;SACXH,OAAO,IAAII,S;SACXJ,OAAO,IAAIK,gB;SACXL,OAAO,IAAIM,W;SACXN,OAAO,IAAIO,M;SACXP,OAAO,IAAIQ,Y;SACXR,OAAO,IAAIS,iB;;;;SAIXT,OAAO,IAAIU,O;SAEXV,O","sourcesContent":["export { default as Console } from './Console';\nexport { default as ConsoleInput } from './ConsoleInput';\nexport { default as ConsoleMenu } from './ConsoleMenu';\nexport { default as SHORTCUTS } from './ConsoleShortcuts';\nexport { default as ConsoleStatusBar } from './ConsoleStatusBar';\nexport { default as MonacoUtils } from './monaco/MonacoUtils';\nexport { default as Editor } from './notebook/Editor';\nexport { default as ScriptEditor } from './notebook/ScriptEditor';\nexport { default as ScriptEditorUtils } from './notebook/ScriptEditorUtils';\nexport * from './common';\nexport * from './command-history';\nexport * from './console-history';\nexport { default as LogView } from './log/LogView';\n\nexport { default } from './Console';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["default","Console","ConsoleInput","ConsoleMenu","SHORTCUTS","ConsoleStatusBar","MonacoUtils","Editor","ScriptEditor","ScriptEditorUtils","LogView","HeapUsage"],"mappings":"SAASA,OAAO,IAAIC,O;SACXD,OAAO,IAAIE,Y;SACXF,OAAO,IAAIG,W;SACXH,OAAO,IAAII,S;SACXJ,OAAO,IAAIK,gB;SACXL,OAAO,IAAIM,W;SACXN,OAAO,IAAIO,M;SACXP,OAAO,IAAIQ,Y;SACXR,OAAO,IAAIS,iB;;;;SAIXT,OAAO,IAAIU,O;SACXV,OAAO,IAAIW,S;SAEXX,O","sourcesContent":["export { default as Console } from './Console';\nexport { default as ConsoleInput } from './ConsoleInput';\nexport { default as ConsoleMenu } from './ConsoleMenu';\nexport { default as SHORTCUTS } from './ConsoleShortcuts';\nexport { default as ConsoleStatusBar } from './ConsoleStatusBar';\nexport { default as MonacoUtils } from './monaco/MonacoUtils';\nexport { default as Editor } from './notebook/Editor';\nexport { default as ScriptEditor } from './notebook/ScriptEditor';\nexport { default as ScriptEditorUtils } from './notebook/ScriptEditorUtils';\nexport * from './common';\nexport * from './command-history';\nexport * from './console-history';\nexport { default as LogView } from './log/LogView';\nexport { default as HeapUsage } from './HeapUsage';\n\nexport { default } from './Console';\n"],"file":"index.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/console",
3
- "version": "0.15.6-beta.5+0a9a917",
3
+ "version": "0.15.6",
4
4
  "description": "Deephaven Console",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -30,12 +30,13 @@
30
30
  "start": "cross-env NODE_ENV=development npm run watch"
31
31
  },
32
32
  "dependencies": {
33
- "@deephaven/components": "^0.15.6-beta.5+0a9a917",
34
- "@deephaven/icons": "^0.15.6-beta.5+0a9a917",
35
- "@deephaven/jsapi-shim": "^0.15.6-beta.5+0a9a917",
36
- "@deephaven/log": "^0.15.6-beta.5+0a9a917",
37
- "@deephaven/storage": "^0.15.6-beta.5+0a9a917",
38
- "@deephaven/utils": "^0.15.6-beta.5+0a9a917",
33
+ "@deephaven/chart": "^0.15.6",
34
+ "@deephaven/components": "^0.15.6",
35
+ "@deephaven/icons": "^0.15.0",
36
+ "@deephaven/jsapi-shim": "^0.15.6",
37
+ "@deephaven/log": "^0.15.5",
38
+ "@deephaven/storage": "^0.15.5",
39
+ "@deephaven/utils": "^0.15.6",
39
40
  "@fortawesome/react-fontawesome": "^0.1.18",
40
41
  "classnames": "^2.3.1",
41
42
  "lodash.debounce": "^4.0.8",
@@ -53,8 +54,8 @@
53
54
  "react-dom": "^17.x"
54
55
  },
55
56
  "devDependencies": {
56
- "@deephaven/mocks": "^0.15.6-beta.5+0a9a917",
57
- "@deephaven/tsconfig": "^0.15.6-beta.5+0a9a917"
57
+ "@deephaven/mocks": "^0.15.0",
58
+ "@deephaven/tsconfig": "^0.15.2"
58
59
  },
59
60
  "files": [
60
61
  "dist"
@@ -65,5 +66,5 @@
65
66
  "publishConfig": {
66
67
  "access": "public"
67
68
  },
68
- "gitHead": "0a9a917b4eefeb720261af4368f5c6d73cfc268f"
69
+ "gitHead": "c54e11a1fe772b855b6bac2a1534857c8cedc8f8"
69
70
  }