@deephaven/jsapi-components 0.37.4-logout.2 → 0.37.4-logout.21
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.
- package/dist/RefreshTokenBootstrap.d.ts.map +1 -1
- package/dist/RefreshTokenBootstrap.js +1 -3
- package/dist/RefreshTokenBootstrap.js.map +1 -1
- package/dist/RefreshTokenUtils.d.ts.map +1 -1
- package/dist/RefreshTokenUtils.js +22 -13
- package/dist/RefreshTokenUtils.js.map +1 -1
- package/dist/useBroadcastChannel.d.ts.map +1 -1
- package/dist/useBroadcastChannel.js +5 -1
- package/dist/useBroadcastChannel.js.map +1 -1
- package/package.json +11 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefreshTokenBootstrap.d.ts","sourceRoot":"","sources":["../src/RefreshTokenBootstrap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"RefreshTokenBootstrap.d.ts","sourceRoot":"","sources":["../src/RefreshTokenBootstrap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAShE,MAAM,MAAM,0BAA0B,GAAG;IACvC;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,GACT,EAAE,0BAA0B,eAoC5B;AAED,eAAe,qBAAqB,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useState } from 'react';
|
|
2
2
|
import { useApi, useClient } from '@deephaven/jsapi-bootstrap';
|
|
3
|
-
import useBroadcastChannel from "./useBroadcastChannel.js";
|
|
4
3
|
import useBroadcastLoginListener from "./useBroadcastLoginListener.js";
|
|
5
4
|
import { readRefreshToken, RefreshTokenContext, storeRefreshToken } from "./RefreshTokenUtils.js";
|
|
6
5
|
/**
|
|
@@ -12,7 +11,6 @@ export function RefreshTokenBootstrap(_ref) {
|
|
|
12
11
|
} = _ref;
|
|
13
12
|
var api = useApi();
|
|
14
13
|
var client = useClient();
|
|
15
|
-
var channel = useBroadcastChannel();
|
|
16
14
|
var [token, setToken] = useState(readRefreshToken());
|
|
17
15
|
useEffect(function listenForTokenUpdates() {
|
|
18
16
|
var cleanup = client.addEventListener(api.CoreClient.EVENT_REFRESH_TOKEN_UPDATED, event => {
|
|
@@ -23,7 +21,7 @@ export function RefreshTokenBootstrap(_ref) {
|
|
|
23
21
|
setToken(newToken);
|
|
24
22
|
});
|
|
25
23
|
return cleanup;
|
|
26
|
-
}, [api,
|
|
24
|
+
}, [api, client, token]);
|
|
27
25
|
var onLogin = useCallback(() => {
|
|
28
26
|
setToken(readRefreshToken());
|
|
29
27
|
}, []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefreshTokenBootstrap.js","names":["React","useCallback","useEffect","useState","useApi","useClient","
|
|
1
|
+
{"version":3,"file":"RefreshTokenBootstrap.js","names":["React","useCallback","useEffect","useState","useApi","useClient","useBroadcastLoginListener","readRefreshToken","RefreshTokenContext","storeRefreshToken","RefreshTokenBootstrap","children","api","client","token","setToken","listenForTokenUpdates","cleanup","addEventListener","CoreClient","EVENT_REFRESH_TOKEN_UPDATED","event","detail","newToken","onLogin","onLogout"],"sources":["../src/RefreshTokenBootstrap.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { useApi, useClient } from '@deephaven/jsapi-bootstrap';\nimport useBroadcastLoginListener from './useBroadcastLoginListener';\nimport {\n readRefreshToken,\n RefreshTokenContext,\n storeRefreshToken,\n} from './RefreshTokenUtils';\n\nexport type RefreshTokenBootstrapProps = {\n /**\n * The children to render wrapped with the RefreshTokenContext.\n */\n children: React.ReactNode;\n};\n\n/**\n * RefreshTokenBootstrap component. Handles storing and reading the refresh token.\n */\nexport function RefreshTokenBootstrap({\n children,\n}: RefreshTokenBootstrapProps) {\n const api = useApi();\n const client = useClient();\n const [token, setToken] = useState(readRefreshToken());\n\n useEffect(\n function listenForTokenUpdates() {\n const cleanup = client.addEventListener(\n api.CoreClient.EVENT_REFRESH_TOKEN_UPDATED,\n (event: CustomEvent) => {\n const { detail: newToken } = event;\n storeRefreshToken(newToken);\n setToken(newToken);\n }\n );\n return cleanup;\n },\n [api, client, token]\n );\n\n const onLogin = useCallback(() => {\n setToken(readRefreshToken());\n }, []);\n\n const onLogout = useCallback(() => {\n storeRefreshToken(null);\n setToken(null);\n }, []);\n\n useBroadcastLoginListener(onLogin, onLogout);\n\n return (\n <RefreshTokenContext.Provider value={token}>\n {children}\n </RefreshTokenContext.Provider>\n );\n}\n\nexport default RefreshTokenBootstrap;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC/D,SAASC,MAAM,EAAEC,SAAS,QAAQ,4BAA4B;AAAC,OACxDC,yBAAyB;AAAA,SAE9BC,gBAAgB,EAChBC,mBAAmB,EACnBC,iBAAiB;AAUnB;AACA;AACA;AACA,OAAO,SAASC,qBAAqB,OAEN;EAAA,IAFO;IACpCC;EAC0B,CAAC;EAC3B,IAAMC,GAAG,GAAGR,MAAM,EAAE;EACpB,IAAMS,MAAM,GAAGR,SAAS,EAAE;EAC1B,IAAM,CAACS,KAAK,EAAEC,QAAQ,CAAC,GAAGZ,QAAQ,CAACI,gBAAgB,EAAE,CAAC;EAEtDL,SAAS,CACP,SAASc,qBAAqB,GAAG;IAC/B,IAAMC,OAAO,GAAGJ,MAAM,CAACK,gBAAgB,CACrCN,GAAG,CAACO,UAAU,CAACC,2BAA2B,EACzCC,KAAkB,IAAK;MACtB,IAAM;QAAEC,MAAM,EAAEC;MAAS,CAAC,GAAGF,KAAK;MAClCZ,iBAAiB,CAACc,QAAQ,CAAC;MAC3BR,QAAQ,CAACQ,QAAQ,CAAC;IACpB,CAAC,CACF;IACD,OAAON,OAAO;EAChB,CAAC,EACD,CAACL,GAAG,EAAEC,MAAM,EAAEC,KAAK,CAAC,CACrB;EAED,IAAMU,OAAO,GAAGvB,WAAW,CAAC,MAAM;IAChCc,QAAQ,CAACR,gBAAgB,EAAE,CAAC;EAC9B,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMkB,QAAQ,GAAGxB,WAAW,CAAC,MAAM;IACjCQ,iBAAiB,CAAC,IAAI,CAAC;IACvBM,QAAQ,CAAC,IAAI,CAAC;EAChB,CAAC,EAAE,EAAE,CAAC;EAENT,yBAAyB,CAACkB,OAAO,EAAEC,QAAQ,CAAC;EAE5C,oBACE,oBAAC,mBAAmB,CAAC,QAAQ;IAAC,KAAK,EAAEX;EAAM,GACxCH,QAAQ,CACoB;AAEnC;AAEA,eAAeD,qBAAqB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefreshTokenUtils.d.ts","sourceRoot":"","sources":["../src/RefreshTokenUtils.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"RefreshTokenUtils.d.ts","sourceRoot":"","sources":["../src/RefreshTokenUtils.ts"],"names":[],"mappings":";AAIA,eAAO,MAAM,iBAAiB,8CAA8C,CAAC;AAE7E,MAAM,MAAM,YAAY,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7D,eAAO,MAAM,mBAAmB,8CAA2C,CAAC;AAI5E;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,GAAG,IAAI,CAUtD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,QAiB3D"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { createContext } from 'react';
|
|
2
2
|
import Cookies from 'js-cookie';
|
|
3
|
+
import Log from '@deephaven/log';
|
|
3
4
|
export var REFRESH_TOKEN_KEY = 'io.deephaven.web.client.auth.refreshToken';
|
|
4
5
|
export var RefreshTokenContext = /*#__PURE__*/createContext(null);
|
|
6
|
+
var log = Log.module('RefreshTokenUtils');
|
|
5
7
|
|
|
6
8
|
/**
|
|
7
9
|
* Read the refresh token from our cookie store
|
|
@@ -9,7 +11,14 @@ export var RefreshTokenContext = /*#__PURE__*/createContext(null);
|
|
|
9
11
|
*/
|
|
10
12
|
export function readRefreshToken() {
|
|
11
13
|
var cookieToken = Cookies.get(REFRESH_TOKEN_KEY);
|
|
12
|
-
|
|
14
|
+
try {
|
|
15
|
+
if (cookieToken != null) {
|
|
16
|
+
return JSON.parse(cookieToken);
|
|
17
|
+
}
|
|
18
|
+
} catch (e) {
|
|
19
|
+
log.error('Error parsing refresh token', cookieToken, e);
|
|
20
|
+
}
|
|
21
|
+
return null;
|
|
13
22
|
}
|
|
14
23
|
|
|
15
24
|
/**
|
|
@@ -17,19 +26,19 @@ export function readRefreshToken() {
|
|
|
17
26
|
* @param token The refresh token to store
|
|
18
27
|
*/
|
|
19
28
|
export function storeRefreshToken(token) {
|
|
20
|
-
if (token
|
|
21
|
-
var cookieToken = JSON.stringify({
|
|
22
|
-
bytes: token.bytes,
|
|
23
|
-
expiry: token.expiry
|
|
24
|
-
});
|
|
25
|
-
var expires = new Date(token.expiry);
|
|
26
|
-
Cookies.set(REFRESH_TOKEN_KEY, cookieToken, {
|
|
27
|
-
secure: true,
|
|
28
|
-
sameSite: 'strict',
|
|
29
|
-
expires
|
|
30
|
-
});
|
|
31
|
-
} else {
|
|
29
|
+
if (token == null) {
|
|
32
30
|
Cookies.remove(REFRESH_TOKEN_KEY);
|
|
31
|
+
return;
|
|
33
32
|
}
|
|
33
|
+
var cookieToken = JSON.stringify({
|
|
34
|
+
bytes: token.bytes,
|
|
35
|
+
expiry: token.expiry
|
|
36
|
+
});
|
|
37
|
+
var expires = new Date(token.expiry);
|
|
38
|
+
Cookies.set(REFRESH_TOKEN_KEY, cookieToken, {
|
|
39
|
+
secure: true,
|
|
40
|
+
sameSite: 'strict',
|
|
41
|
+
expires
|
|
42
|
+
});
|
|
34
43
|
}
|
|
35
44
|
//# sourceMappingURL=RefreshTokenUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefreshTokenUtils.js","names":["createContext","Cookies","REFRESH_TOKEN_KEY","RefreshTokenContext","readRefreshToken","cookieToken","get","JSON","parse","storeRefreshToken","token","stringify","bytes","expiry","expires","Date","set","secure","sameSite"
|
|
1
|
+
{"version":3,"file":"RefreshTokenUtils.js","names":["createContext","Cookies","Log","REFRESH_TOKEN_KEY","RefreshTokenContext","log","module","readRefreshToken","cookieToken","get","JSON","parse","e","error","storeRefreshToken","token","remove","stringify","bytes","expiry","expires","Date","set","secure","sameSite"],"sources":["../src/RefreshTokenUtils.ts"],"sourcesContent":["import { createContext } from 'react';\nimport Cookies from 'js-cookie';\nimport Log from '@deephaven/log';\n\nexport const REFRESH_TOKEN_KEY = 'io.deephaven.web.client.auth.refreshToken';\n\nexport type RefreshToken = { bytes: string; expiry: number };\n\nexport const RefreshTokenContext = createContext<RefreshToken | null>(null);\n\nconst log = Log.module('RefreshTokenUtils');\n\n/**\n * Read the refresh token from our cookie store\n * @returns RefreshToken if it exists, null otherwise\n */\nexport function readRefreshToken(): RefreshToken | null {\n const cookieToken = Cookies.get(REFRESH_TOKEN_KEY);\n try {\n if (cookieToken != null) {\n return JSON.parse(cookieToken);\n }\n } catch (e) {\n log.error('Error parsing refresh token', cookieToken, e);\n }\n return null;\n}\n\n/**\n * Store the provided refresh token as a cookie\n * @param token The refresh token to store\n */\nexport function storeRefreshToken(token: RefreshToken | null) {\n if (token == null) {\n Cookies.remove(REFRESH_TOKEN_KEY);\n return;\n }\n\n const cookieToken = JSON.stringify({\n bytes: token.bytes,\n expiry: token.expiry,\n });\n const expires = new Date(token.expiry);\n\n Cookies.set(REFRESH_TOKEN_KEY, cookieToken, {\n secure: true,\n sameSite: 'strict',\n expires,\n });\n}\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,OAAO;AACrC,OAAOC,OAAO,MAAM,WAAW;AAC/B,OAAOC,GAAG,MAAM,gBAAgB;AAEhC,OAAO,IAAMC,iBAAiB,GAAG,2CAA2C;AAI5E,OAAO,IAAMC,mBAAmB,gBAAGJ,aAAa,CAAsB,IAAI,CAAC;AAE3E,IAAMK,GAAG,GAAGH,GAAG,CAACI,MAAM,CAAC,mBAAmB,CAAC;;AAE3C;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgB,GAAwB;EACtD,IAAMC,WAAW,GAAGP,OAAO,CAACQ,GAAG,CAACN,iBAAiB,CAAC;EAClD,IAAI;IACF,IAAIK,WAAW,IAAI,IAAI,EAAE;MACvB,OAAOE,IAAI,CAACC,KAAK,CAACH,WAAW,CAAC;IAChC;EACF,CAAC,CAAC,OAAOI,CAAC,EAAE;IACVP,GAAG,CAACQ,KAAK,CAAC,6BAA6B,EAAEL,WAAW,EAAEI,CAAC,CAAC;EAC1D;EACA,OAAO,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASE,iBAAiB,CAACC,KAA0B,EAAE;EAC5D,IAAIA,KAAK,IAAI,IAAI,EAAE;IACjBd,OAAO,CAACe,MAAM,CAACb,iBAAiB,CAAC;IACjC;EACF;EAEA,IAAMK,WAAW,GAAGE,IAAI,CAACO,SAAS,CAAC;IACjCC,KAAK,EAAEH,KAAK,CAACG,KAAK;IAClBC,MAAM,EAAEJ,KAAK,CAACI;EAChB,CAAC,CAAC;EACF,IAAMC,OAAO,GAAG,IAAIC,IAAI,CAACN,KAAK,CAACI,MAAM,CAAC;EAEtClB,OAAO,CAACqB,GAAG,CAACnB,iBAAiB,EAAEK,WAAW,EAAE;IAC1Ce,MAAM,EAAE,IAAI;IACZC,QAAQ,EAAE,QAAQ;IAClBJ;EACF,CAAC,CAAC;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBroadcastChannel.d.ts","sourceRoot":"","sources":["../src/useBroadcastChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,OAAO,EACR,MAAM,wBAAwB,CAAC;AAOhC,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,IAAqB,EACzE,IAAI,SAAyB,
|
|
1
|
+
{"version":3,"file":"useBroadcastChannel.d.ts","sourceRoot":"","sources":["../src/useBroadcastChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,OAAO,EACR,MAAM,wBAAwB,CAAC;AAOhC,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,IAAqB,EACzE,IAAI,SAAyB,oBA2B9B;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -11,7 +11,7 @@ export function useBroadcastChannel() {
|
|
|
11
11
|
channel.close();
|
|
12
12
|
}, [channel]);
|
|
13
13
|
useEffect(() => {
|
|
14
|
-
|
|
14
|
+
function handleEvent(event) {
|
|
15
15
|
var {
|
|
16
16
|
data
|
|
17
17
|
} = event;
|
|
@@ -21,6 +21,10 @@ export function useBroadcastChannel() {
|
|
|
21
21
|
}
|
|
22
22
|
log.debug('event received', data);
|
|
23
23
|
onEvent(event);
|
|
24
|
+
}
|
|
25
|
+
channel.addEventListener('message', handleEvent);
|
|
26
|
+
return () => {
|
|
27
|
+
channel.removeEventListener('message', handleEvent);
|
|
24
28
|
};
|
|
25
29
|
}, [channel, onEvent]);
|
|
26
30
|
return channel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBroadcastChannel.js","names":["BROADCAST_CHANNEL_NAME","isMessage","Log","EMPTY_FUNCTION","useEffect","useMemo","log","module","useBroadcastChannel","onEvent","name","channel","BroadcastChannel","close","
|
|
1
|
+
{"version":3,"file":"useBroadcastChannel.js","names":["BROADCAST_CHANNEL_NAME","isMessage","Log","EMPTY_FUNCTION","useEffect","useMemo","log","module","useBroadcastChannel","onEvent","name","channel","BroadcastChannel","close","handleEvent","event","data","debug","addEventListener","removeEventListener"],"sources":["../src/useBroadcastChannel.ts"],"sourcesContent":["import {\n BROADCAST_CHANNEL_NAME,\n isMessage,\n Message,\n} from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport { EMPTY_FUNCTION } from '@deephaven/utils';\nimport { useEffect, useMemo } from 'react';\n\nconst log = Log.module('useBroadcastChannel');\n\nexport function useBroadcastChannel(\n onEvent: (event: MessageEvent<Message<unknown>>) => void = EMPTY_FUNCTION,\n name = BROADCAST_CHANNEL_NAME\n) {\n const channel = useMemo(() => new BroadcastChannel(name), [name]);\n useEffect(\n () => () => {\n channel.close();\n },\n [channel]\n );\n\n useEffect(() => {\n function handleEvent(event: MessageEvent) {\n const { data } = event;\n if (!isMessage(data)) {\n log.debug('Ignoring non-deephaven message', data);\n return;\n }\n log.debug('event received', data);\n onEvent(event);\n }\n channel.addEventListener('message', handleEvent);\n return () => {\n channel.removeEventListener('message', handleEvent);\n };\n }, [channel, onEvent]);\n\n return channel;\n}\n\nexport default useBroadcastChannel;\n"],"mappings":"AAAA,SACEA,sBAAsB,EACtBC,SAAS,QAEJ,wBAAwB;AAC/B,OAAOC,GAAG,MAAM,gBAAgB;AAChC,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,SAAS,EAAEC,OAAO,QAAQ,OAAO;AAE1C,IAAMC,GAAG,GAAGJ,GAAG,CAACK,MAAM,CAAC,qBAAqB,CAAC;AAE7C,OAAO,SAASC,mBAAmB,GAGjC;EAAA,IAFAC,OAAwD,uEAAGN,cAAc;EAAA,IACzEO,IAAI,uEAAGV,sBAAsB;EAE7B,IAAMW,OAAO,GAAGN,OAAO,CAAC,MAAM,IAAIO,gBAAgB,CAACF,IAAI,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EACjEN,SAAS,CACP,MAAM,MAAM;IACVO,OAAO,CAACE,KAAK,EAAE;EACjB,CAAC,EACD,CAACF,OAAO,CAAC,CACV;EAEDP,SAAS,CAAC,MAAM;IACd,SAASU,WAAW,CAACC,KAAmB,EAAE;MACxC,IAAM;QAAEC;MAAK,CAAC,GAAGD,KAAK;MACtB,IAAI,CAACd,SAAS,CAACe,IAAI,CAAC,EAAE;QACpBV,GAAG,CAACW,KAAK,CAAC,gCAAgC,EAAED,IAAI,CAAC;QACjD;MACF;MACAV,GAAG,CAACW,KAAK,CAAC,gBAAgB,EAAED,IAAI,CAAC;MACjCP,OAAO,CAACM,KAAK,CAAC;IAChB;IACAJ,OAAO,CAACO,gBAAgB,CAAC,SAAS,EAAEJ,WAAW,CAAC;IAChD,OAAO,MAAM;MACXH,OAAO,CAACQ,mBAAmB,CAAC,SAAS,EAAEL,WAAW,CAAC;IACrD,CAAC;EACH,CAAC,EAAE,CAACH,OAAO,EAAEF,OAAO,CAAC,CAAC;EAEtB,OAAOE,OAAO;AAChB;AAEA,eAAeH,mBAAmB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/jsapi-components",
|
|
3
|
-
"version": "0.37.4-logout.
|
|
3
|
+
"version": "0.37.4-logout.21+ae439be8",
|
|
4
4
|
"description": "Deephaven JSAPI Components",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -22,13 +22,13 @@
|
|
|
22
22
|
"build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@deephaven/components": "^0.37.4-logout.
|
|
26
|
-
"@deephaven/jsapi-bootstrap": "^0.37.4-logout.
|
|
27
|
-
"@deephaven/jsapi-types": "^0.37.4-logout.
|
|
28
|
-
"@deephaven/jsapi-utils": "^0.37.4-logout.
|
|
29
|
-
"@deephaven/log": "^0.37.4-logout.
|
|
30
|
-
"@deephaven/react-hooks": "^0.37.4-logout.
|
|
31
|
-
"@deephaven/utils": "^0.37.4-logout.
|
|
25
|
+
"@deephaven/components": "^0.37.4-logout.21+ae439be8",
|
|
26
|
+
"@deephaven/jsapi-bootstrap": "^0.37.4-logout.21+ae439be8",
|
|
27
|
+
"@deephaven/jsapi-types": "^0.37.4-logout.21+ae439be8",
|
|
28
|
+
"@deephaven/jsapi-utils": "^0.37.4-logout.21+ae439be8",
|
|
29
|
+
"@deephaven/log": "^0.37.4-logout.21+ae439be8",
|
|
30
|
+
"@deephaven/react-hooks": "^0.37.4-logout.21+ae439be8",
|
|
31
|
+
"@deephaven/utils": "^0.37.4-logout.21+ae439be8",
|
|
32
32
|
"@react-stately/data": "^3.9.1",
|
|
33
33
|
"@types/js-cookie": "^3.0.3",
|
|
34
34
|
"classnames": "^2.3.2",
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"prop-types": "^15.8.1"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@deephaven/jsapi-shim": "^0.37.4-logout.
|
|
40
|
-
"@deephaven/tsconfig": "^0.37.4-logout.
|
|
39
|
+
"@deephaven/jsapi-shim": "^0.37.4-logout.21+ae439be8",
|
|
40
|
+
"@deephaven/tsconfig": "^0.37.4-logout.21+ae439be8",
|
|
41
41
|
"@testing-library/react-hooks": "^8.0.1",
|
|
42
42
|
"react-test-renderer": "^17.0.2"
|
|
43
43
|
},
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
"publishConfig": {
|
|
54
54
|
"access": "public"
|
|
55
55
|
},
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "ae439be89da6d61abc3e6f86ec734ddda74e67e3"
|
|
57
57
|
}
|