@myst-theme/jupyter 0.5.7 → 0.5.9
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/BinderBadge.d.ts.map +1 -0
- package/dist/ClientOnly.d.ts.map +1 -0
- package/dist/ConnectionStatusTray.d.ts +4 -0
- package/dist/ConnectionStatusTray.d.ts.map +1 -0
- package/dist/ConnectionStatusTray.js +54 -0
- package/dist/ErrorTray.d.ts.map +1 -0
- package/dist/{esm/ErrorTray.js → ErrorTray.js} +1 -1
- package/dist/components.d.ts.map +1 -0
- package/dist/{esm/components.js → components.js} +1 -1
- package/dist/controls/ArticleCellControls.d.ts.map +1 -0
- package/dist/{esm/controls → controls}/ArticleCellControls.js +7 -3
- package/dist/{cjs/controls → controls}/Buttons.d.ts +4 -0
- package/dist/{cjs/controls → controls}/Buttons.d.ts.map +1 -1
- package/dist/{esm/controls → controls}/Buttons.js +67 -11
- package/dist/controls/NotebookCellControls.d.ts.map +1 -0
- package/dist/{esm/controls → controls}/NotebookCellControls.js +2 -2
- package/dist/controls/NotebookToolbar.d.ts.map +1 -0
- package/dist/{esm/controls → controls}/NotebookToolbar.js +9 -5
- package/dist/controls/Spinner.d.ts.map +1 -0
- package/dist/controls/index.d.ts +5 -0
- package/dist/controls/index.d.ts.map +1 -0
- package/dist/controls/index.js +4 -0
- package/dist/convertImages.d.ts.map +1 -0
- package/dist/decoration.d.ts.map +1 -0
- package/dist/{esm/decoration.js → decoration.js} +2 -2
- package/dist/embed.d.ts.map +1 -0
- package/dist/{esm/embed.js → embed.js} +1 -1
- package/dist/error.d.ts.map +1 -0
- package/dist/{esm/error.js → error.js} +2 -2
- package/dist/{types/execute → execute}/actions.d.ts +1 -1
- package/dist/execute/actions.d.ts.map +1 -0
- package/dist/execute/busy.d.ts.map +1 -0
- package/dist/{cjs/execute → execute}/hooks.d.ts +7 -7
- package/dist/execute/hooks.d.ts.map +1 -0
- package/dist/{esm/execute → execute}/hooks.js +3 -3
- package/dist/execute/index.d.ts +7 -0
- package/dist/execute/index.d.ts.map +1 -0
- package/dist/execute/index.js +6 -0
- package/dist/{types/execute → execute}/leaf.d.ts +3 -3
- package/dist/execute/leaf.d.ts.map +1 -0
- package/dist/{esm/execute → execute}/leaf.js +2 -2
- package/dist/{types/execute → execute}/provider.d.ts +2 -2
- package/dist/execute/provider.d.ts.map +1 -0
- package/dist/{esm/execute → execute}/provider.js +4 -4
- package/dist/execute/reducer.d.ts +4 -0
- package/dist/execute/reducer.d.ts.map +1 -0
- package/dist/{esm/execute → execute}/reducer.js +1 -1
- package/dist/{cjs/execute → execute}/selectors.d.ts +3 -3
- package/dist/execute/selectors.d.ts.map +1 -0
- package/dist/execute/types.d.ts.map +1 -0
- package/dist/{esm/execute → execute}/utils.d.ts +2 -2
- package/dist/execute/utils.d.ts.map +1 -0
- package/dist/figure.d.ts.map +1 -0
- package/dist/{esm/figure.js → figure.js} +1 -1
- package/dist/hooks.d.ts.map +1 -0
- package/dist/{esm/hooks.js → hooks.js} +1 -1
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/jupyter.d.ts.map +1 -0
- package/dist/{esm/jupyter.js → jupyter.js} +4 -4
- package/dist/output.d.ts.map +1 -0
- package/dist/{esm/output.js → output.js} +4 -4
- package/dist/providers.d.ts +32 -0
- package/dist/providers.d.ts.map +1 -0
- package/dist/providers.js +38 -0
- package/dist/safe.d.ts.map +1 -0
- package/dist/{esm/safe.js → safe.js} +3 -3
- package/dist/stream.d.ts.map +1 -0
- package/dist/{esm/stream.js → stream.js} +2 -2
- package/dist/utils.d.ts.map +1 -0
- package/dist/{esm/utils.js → utils.js} +1 -1
- package/package.json +18 -17
- package/dist/cjs/BinderBadge.d.ts.map +0 -1
- package/dist/cjs/BinderBadge.js +0 -13
- package/dist/cjs/ClientOnly.d.ts.map +0 -1
- package/dist/cjs/ClientOnly.js +0 -13
- package/dist/cjs/ConnectionStatusTray.d.ts +0 -2
- package/dist/cjs/ConnectionStatusTray.d.ts.map +0 -1
- package/dist/cjs/ConnectionStatusTray.js +0 -56
- package/dist/cjs/ErrorTray.d.ts.map +0 -1
- package/dist/cjs/ErrorTray.js +0 -42
- package/dist/cjs/components.d.ts.map +0 -1
- package/dist/cjs/components.js +0 -41
- package/dist/cjs/controls/ArticleCellControls.d.ts.map +0 -1
- package/dist/cjs/controls/ArticleCellControls.js +0 -33
- package/dist/cjs/controls/Buttons.js +0 -70
- package/dist/cjs/controls/NotebookCellControls.d.ts.map +0 -1
- package/dist/cjs/controls/NotebookCellControls.js +0 -27
- package/dist/cjs/controls/NotebookToolbar.d.ts.map +0 -1
- package/dist/cjs/controls/NotebookToolbar.js +0 -47
- package/dist/cjs/controls/Spinner.d.ts.map +0 -1
- package/dist/cjs/controls/Spinner.js +0 -8
- package/dist/cjs/controls/index.d.ts +0 -5
- package/dist/cjs/controls/index.d.ts.map +0 -1
- package/dist/cjs/controls/index.js +0 -20
- package/dist/cjs/convertImages.d.ts.map +0 -1
- package/dist/cjs/convertImages.js +0 -70
- package/dist/cjs/decoration.d.ts.map +0 -1
- package/dist/cjs/decoration.js +0 -40
- package/dist/cjs/embed.d.ts.map +0 -1
- package/dist/cjs/embed.js +0 -14
- package/dist/cjs/error.d.ts.map +0 -1
- package/dist/cjs/error.js +0 -15
- package/dist/cjs/execute/actions.d.ts +0 -56
- package/dist/cjs/execute/actions.d.ts.map +0 -1
- package/dist/cjs/execute/actions.js +0 -50
- package/dist/cjs/execute/busy.d.ts.map +0 -1
- package/dist/cjs/execute/busy.js +0 -259
- package/dist/cjs/execute/hooks.d.ts.map +0 -1
- package/dist/cjs/execute/hooks.js +0 -311
- package/dist/cjs/execute/index.d.ts +0 -7
- package/dist/cjs/execute/index.d.ts.map +0 -1
- package/dist/cjs/execute/index.js +0 -22
- package/dist/cjs/execute/leaf.d.ts +0 -27
- package/dist/cjs/execute/leaf.d.ts.map +0 -1
- package/dist/cjs/execute/leaf.js +0 -160
- package/dist/cjs/execute/provider.d.ts +0 -35
- package/dist/cjs/execute/provider.d.ts.map +0 -1
- package/dist/cjs/execute/provider.js +0 -129
- package/dist/cjs/execute/reducer.d.ts +0 -4
- package/dist/cjs/execute/reducer.d.ts.map +0 -1
- package/dist/cjs/execute/reducer.js +0 -138
- package/dist/cjs/execute/selectors.d.ts.map +0 -1
- package/dist/cjs/execute/selectors.js +0 -99
- package/dist/cjs/execute/types.d.ts.map +0 -1
- package/dist/cjs/execute/types.js +0 -2
- package/dist/cjs/execute/utils.d.ts +0 -23
- package/dist/cjs/execute/utils.d.ts.map +0 -1
- package/dist/cjs/execute/utils.js +0 -63
- package/dist/cjs/figure.d.ts.map +0 -1
- package/dist/cjs/figure.js +0 -20
- package/dist/cjs/hooks.d.ts.map +0 -1
- package/dist/cjs/hooks.js +0 -122
- package/dist/cjs/index.d.ts +0 -16
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js +0 -31
- package/dist/cjs/jupyter.d.ts.map +0 -1
- package/dist/cjs/jupyter.js +0 -111
- package/dist/cjs/output.d.ts.map +0 -1
- package/dist/cjs/output.js +0 -67
- package/dist/cjs/providers.d.ts +0 -28
- package/dist/cjs/providers.d.ts.map +0 -1
- package/dist/cjs/providers.js +0 -44
- package/dist/cjs/safe.d.ts.map +0 -1
- package/dist/cjs/safe.js +0 -79
- package/dist/cjs/stream.d.ts.map +0 -1
- package/dist/cjs/stream.js +0 -13
- package/dist/cjs/utils.d.ts.map +0 -1
- package/dist/cjs/utils.js +0 -179
- package/dist/esm/BinderBadge.d.ts +0 -4
- package/dist/esm/BinderBadge.d.ts.map +0 -1
- package/dist/esm/ClientOnly.d.ts +0 -5
- package/dist/esm/ClientOnly.d.ts.map +0 -1
- package/dist/esm/ConnectionStatusTray.d.ts +0 -2
- package/dist/esm/ConnectionStatusTray.d.ts.map +0 -1
- package/dist/esm/ConnectionStatusTray.js +0 -52
- package/dist/esm/ErrorTray.d.ts +0 -5
- package/dist/esm/ErrorTray.d.ts.map +0 -1
- package/dist/esm/components.d.ts +0 -9
- package/dist/esm/components.d.ts.map +0 -1
- package/dist/esm/controls/ArticleCellControls.d.ts +0 -10
- package/dist/esm/controls/ArticleCellControls.d.ts.map +0 -1
- package/dist/esm/controls/Buttons.d.ts +0 -47
- package/dist/esm/controls/Buttons.d.ts.map +0 -1
- package/dist/esm/controls/NotebookCellControls.d.ts +0 -10
- package/dist/esm/controls/NotebookCellControls.d.ts.map +0 -1
- package/dist/esm/controls/NotebookToolbar.d.ts +0 -4
- package/dist/esm/controls/NotebookToolbar.d.ts.map +0 -1
- package/dist/esm/controls/Spinner.d.ts +0 -4
- package/dist/esm/controls/Spinner.d.ts.map +0 -1
- package/dist/esm/controls/index.d.ts +0 -5
- package/dist/esm/controls/index.d.ts.map +0 -1
- package/dist/esm/controls/index.js +0 -4
- package/dist/esm/convertImages.d.ts +0 -3
- package/dist/esm/convertImages.d.ts.map +0 -1
- package/dist/esm/decoration.d.ts +0 -11
- package/dist/esm/decoration.d.ts.map +0 -1
- package/dist/esm/embed.d.ts +0 -5
- package/dist/esm/embed.d.ts.map +0 -1
- package/dist/esm/error.d.ts +0 -5
- package/dist/esm/error.d.ts.map +0 -1
- package/dist/esm/execute/actions.d.ts +0 -56
- package/dist/esm/execute/actions.d.ts.map +0 -1
- package/dist/esm/execute/busy.d.ts +0 -96
- package/dist/esm/execute/busy.d.ts.map +0 -1
- package/dist/esm/execute/hooks.d.ts +0 -65
- package/dist/esm/execute/hooks.d.ts.map +0 -1
- package/dist/esm/execute/index.d.ts +0 -7
- package/dist/esm/execute/index.d.ts.map +0 -1
- package/dist/esm/execute/index.js +0 -6
- package/dist/esm/execute/leaf.d.ts +0 -27
- package/dist/esm/execute/leaf.d.ts.map +0 -1
- package/dist/esm/execute/provider.d.ts +0 -35
- package/dist/esm/execute/provider.d.ts.map +0 -1
- package/dist/esm/execute/reducer.d.ts +0 -4
- package/dist/esm/execute/reducer.d.ts.map +0 -1
- package/dist/esm/execute/selectors.d.ts +0 -27
- package/dist/esm/execute/selectors.d.ts.map +0 -1
- package/dist/esm/execute/types.d.ts +0 -50
- package/dist/esm/execute/types.d.ts.map +0 -1
- package/dist/esm/execute/utils.d.ts.map +0 -1
- package/dist/esm/figure.d.ts +0 -5
- package/dist/esm/figure.d.ts.map +0 -1
- package/dist/esm/hooks.d.ts +0 -19
- package/dist/esm/hooks.d.ts.map +0 -1
- package/dist/esm/index.d.ts +0 -16
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/index.js +0 -15
- package/dist/esm/jupyter.d.ts +0 -7
- package/dist/esm/jupyter.d.ts.map +0 -1
- package/dist/esm/output.d.ts +0 -15
- package/dist/esm/output.d.ts.map +0 -1
- package/dist/esm/providers.d.ts +0 -28
- package/dist/esm/providers.d.ts.map +0 -1
- package/dist/esm/providers.js +0 -35
- package/dist/esm/safe.d.ts +0 -6
- package/dist/esm/safe.d.ts.map +0 -1
- package/dist/esm/stream.d.ts +0 -5
- package/dist/esm/stream.d.ts.map +0 -1
- package/dist/esm/utils.d.ts +0 -8
- package/dist/esm/utils.d.ts.map +0 -1
- package/dist/types/BinderBadge.d.ts +0 -4
- package/dist/types/BinderBadge.d.ts.map +0 -1
- package/dist/types/ClientOnly.d.ts +0 -5
- package/dist/types/ClientOnly.d.ts.map +0 -1
- package/dist/types/ConnectionStatusTray.d.ts +0 -2
- package/dist/types/ConnectionStatusTray.d.ts.map +0 -1
- package/dist/types/ErrorTray.d.ts +0 -5
- package/dist/types/ErrorTray.d.ts.map +0 -1
- package/dist/types/components.d.ts +0 -9
- package/dist/types/components.d.ts.map +0 -1
- package/dist/types/controls/ArticleCellControls.d.ts +0 -10
- package/dist/types/controls/ArticleCellControls.d.ts.map +0 -1
- package/dist/types/controls/Buttons.d.ts +0 -47
- package/dist/types/controls/Buttons.d.ts.map +0 -1
- package/dist/types/controls/NotebookCellControls.d.ts +0 -10
- package/dist/types/controls/NotebookCellControls.d.ts.map +0 -1
- package/dist/types/controls/NotebookToolbar.d.ts +0 -4
- package/dist/types/controls/NotebookToolbar.d.ts.map +0 -1
- package/dist/types/controls/Spinner.d.ts +0 -4
- package/dist/types/controls/Spinner.d.ts.map +0 -1
- package/dist/types/controls/index.d.ts +0 -5
- package/dist/types/controls/index.d.ts.map +0 -1
- package/dist/types/convertImages.d.ts +0 -3
- package/dist/types/convertImages.d.ts.map +0 -1
- package/dist/types/decoration.d.ts +0 -11
- package/dist/types/decoration.d.ts.map +0 -1
- package/dist/types/embed.d.ts +0 -5
- package/dist/types/embed.d.ts.map +0 -1
- package/dist/types/error.d.ts +0 -5
- package/dist/types/error.d.ts.map +0 -1
- package/dist/types/execute/actions.d.ts.map +0 -1
- package/dist/types/execute/busy.d.ts +0 -96
- package/dist/types/execute/busy.d.ts.map +0 -1
- package/dist/types/execute/hooks.d.ts +0 -65
- package/dist/types/execute/hooks.d.ts.map +0 -1
- package/dist/types/execute/index.d.ts +0 -7
- package/dist/types/execute/index.d.ts.map +0 -1
- package/dist/types/execute/leaf.d.ts.map +0 -1
- package/dist/types/execute/provider.d.ts.map +0 -1
- package/dist/types/execute/reducer.d.ts +0 -4
- package/dist/types/execute/reducer.d.ts.map +0 -1
- package/dist/types/execute/selectors.d.ts +0 -27
- package/dist/types/execute/selectors.d.ts.map +0 -1
- package/dist/types/execute/types.d.ts +0 -50
- package/dist/types/execute/types.d.ts.map +0 -1
- package/dist/types/execute/utils.d.ts +0 -23
- package/dist/types/execute/utils.d.ts.map +0 -1
- package/dist/types/figure.d.ts +0 -5
- package/dist/types/figure.d.ts.map +0 -1
- package/dist/types/hooks.d.ts +0 -19
- package/dist/types/hooks.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -16
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/jupyter.d.ts +0 -7
- package/dist/types/jupyter.d.ts.map +0 -1
- package/dist/types/output.d.ts +0 -15
- package/dist/types/output.d.ts.map +0 -1
- package/dist/types/providers.d.ts +0 -28
- package/dist/types/providers.d.ts.map +0 -1
- package/dist/types/safe.d.ts +0 -6
- package/dist/types/safe.d.ts.map +0 -1
- package/dist/types/stream.d.ts +0 -5
- package/dist/types/stream.d.ts.map +0 -1
- package/dist/types/utils.d.ts +0 -8
- package/dist/types/utils.d.ts.map +0 -1
- /package/dist/{cjs/BinderBadge.d.ts → BinderBadge.d.ts} +0 -0
- /package/dist/{esm/BinderBadge.js → BinderBadge.js} +0 -0
- /package/dist/{cjs/ClientOnly.d.ts → ClientOnly.d.ts} +0 -0
- /package/dist/{esm/ClientOnly.js → ClientOnly.js} +0 -0
- /package/dist/{cjs/ErrorTray.d.ts → ErrorTray.d.ts} +0 -0
- /package/dist/{cjs/components.d.ts → components.d.ts} +0 -0
- /package/dist/{cjs/controls → controls}/ArticleCellControls.d.ts +0 -0
- /package/dist/{cjs/controls → controls}/NotebookCellControls.d.ts +0 -0
- /package/dist/{cjs/controls → controls}/NotebookToolbar.d.ts +0 -0
- /package/dist/{cjs/controls → controls}/Spinner.d.ts +0 -0
- /package/dist/{esm/controls → controls}/Spinner.js +0 -0
- /package/dist/{cjs/convertImages.d.ts → convertImages.d.ts} +0 -0
- /package/dist/{esm/convertImages.js → convertImages.js} +0 -0
- /package/dist/{cjs/decoration.d.ts → decoration.d.ts} +0 -0
- /package/dist/{cjs/embed.d.ts → embed.d.ts} +0 -0
- /package/dist/{cjs/error.d.ts → error.d.ts} +0 -0
- /package/dist/{esm/execute → execute}/actions.js +0 -0
- /package/dist/{cjs/execute → execute}/busy.d.ts +0 -0
- /package/dist/{esm/execute → execute}/busy.js +0 -0
- /package/dist/{esm/execute → execute}/selectors.js +0 -0
- /package/dist/{cjs/execute → execute}/types.d.ts +0 -0
- /package/dist/{esm/execute → execute}/types.js +0 -0
- /package/dist/{esm/execute → execute}/utils.js +0 -0
- /package/dist/{cjs/figure.d.ts → figure.d.ts} +0 -0
- /package/dist/{cjs/hooks.d.ts → hooks.d.ts} +0 -0
- /package/dist/{cjs/jupyter.d.ts → jupyter.d.ts} +0 -0
- /package/dist/{cjs/output.d.ts → output.d.ts} +0 -0
- /package/dist/{cjs/safe.d.ts → safe.d.ts} +0 -0
- /package/dist/{cjs/stream.d.ts → stream.d.ts} +0 -0
- /package/dist/{cjs/utils.d.ts → utils.d.ts} +0 -0
package/dist/cjs/execute/leaf.js
DELETED
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ServerMonitor = exports.SessionStarter = exports.NotebookBuilder = exports.MdastFetcher = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const react_1 = require("react");
|
|
6
|
-
const thebe_react_1 = require("thebe-react");
|
|
7
|
-
const utils_1 = require("./utils");
|
|
8
|
-
const selectors_1 = require("./selectors");
|
|
9
|
-
const myst_to_react_1 = require("myst-to-react");
|
|
10
|
-
function MdastFetcher({ slug, url, dispatch, }) {
|
|
11
|
-
const { data, error } = (0, myst_to_react_1.useFetchMdast)({ remote: true, dataUrl: `${url}.json` });
|
|
12
|
-
(0, react_1.useEffect)(() => {
|
|
13
|
-
if (!data)
|
|
14
|
-
return;
|
|
15
|
-
dispatch({ type: 'ADD_MDAST', payload: { slug, mdast: data.mdast } });
|
|
16
|
-
}, [data]);
|
|
17
|
-
if (error) {
|
|
18
|
-
return ((0, jsx_runtime_1.jsxs)("div", { children: ["error: ", slug, error.message] }));
|
|
19
|
-
}
|
|
20
|
-
return null;
|
|
21
|
-
}
|
|
22
|
-
exports.MdastFetcher = MdastFetcher;
|
|
23
|
-
function NotebookBuilder({ pageSlug, notebookSlug, idkmap, state, dispatch, }) {
|
|
24
|
-
var _a;
|
|
25
|
-
const { core } = (0, thebe_react_1.useThebeLoader)();
|
|
26
|
-
const { config } = (0, thebe_react_1.useThebeConfig)();
|
|
27
|
-
const lock = (0, react_1.useRef)(false); // TODO can be removed if we solve double render from provider
|
|
28
|
-
const scopeHasNotebook = !!((_a = state.pages[pageSlug]) === null || _a === void 0 ? void 0 : _a.scopes[notebookSlug]);
|
|
29
|
-
(0, react_1.useEffect)(() => {
|
|
30
|
-
var _a;
|
|
31
|
-
if (!core || !config || scopeHasNotebook || lock.current)
|
|
32
|
-
return;
|
|
33
|
-
lock.current = true;
|
|
34
|
-
console.debug(`Jupyter: NotebookBuilder - ${notebookSlug} being added to scope ${pageSlug}`);
|
|
35
|
-
const rendermime = core === null || core === void 0 ? void 0 : core.makeRenderMimeRegistry(config === null || config === void 0 ? void 0 : config.mathjax);
|
|
36
|
-
const notebook = (0, utils_1.notebookFromMdast)(core, config, pageSlug, notebookSlug, state.mdast[notebookSlug].root, idkmap, rendermime);
|
|
37
|
-
// hook up computable targets
|
|
38
|
-
const computables = (_a = state.pages[pageSlug]) === null || _a === void 0 ? void 0 : _a.computables;
|
|
39
|
-
computables === null || computables === void 0 ? void 0 : computables.forEach((c) => {
|
|
40
|
-
if (idkmap[c.label]) {
|
|
41
|
-
idkmap[c.outputKey] = idkmap[c.label];
|
|
42
|
-
idkmap[c.embedKey] = idkmap[c.label];
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
dispatch({
|
|
46
|
-
type: 'ADD_NOTEBOOK',
|
|
47
|
-
payload: { pageSlug, notebookSlug, rendermime, notebook },
|
|
48
|
-
});
|
|
49
|
-
}, [core, config, pageSlug, notebookSlug, scopeHasNotebook, lock]);
|
|
50
|
-
// TODO find a way to check if the all the notebooks are built and do a single dispatch
|
|
51
|
-
// potentilly use a move the loop down into this component
|
|
52
|
-
const allNotebooksAreBuilt = (0, selectors_1.selectAreAllNotebookScopesBuilt)(state, pageSlug);
|
|
53
|
-
(0, react_1.useEffect)(() => {
|
|
54
|
-
if (!allNotebooksAreBuilt)
|
|
55
|
-
return;
|
|
56
|
-
dispatch({ type: 'BUILD_STATUS', payload: { slug: pageSlug, status: 'wait-for-server' } });
|
|
57
|
-
}, [allNotebooksAreBuilt]);
|
|
58
|
-
return null;
|
|
59
|
-
}
|
|
60
|
-
exports.NotebookBuilder = NotebookBuilder;
|
|
61
|
-
function SessionStarter({ pageSlug, notebookSlug, location, state, dispatch, }) {
|
|
62
|
-
var _a;
|
|
63
|
-
const { core } = (0, thebe_react_1.useThebeLoader)();
|
|
64
|
-
const { config, server } = (0, thebe_react_1.useThebeServer)();
|
|
65
|
-
const lock = (0, react_1.useRef)(false); // TODO can be removed if we solve double render from provider
|
|
66
|
-
const scope = (_a = state.pages[pageSlug]) === null || _a === void 0 ? void 0 : _a.scopes[notebookSlug];
|
|
67
|
-
(0, react_1.useEffect)(() => {
|
|
68
|
-
if (!core || !server || scope.session || lock.current)
|
|
69
|
-
return;
|
|
70
|
-
lock.current = true;
|
|
71
|
-
console.debug(`Jupyter: Starting session for ${pageSlug}-${notebookSlug} at ${location}`);
|
|
72
|
-
server.listRunningSessions().then((sessions) => {
|
|
73
|
-
var _a;
|
|
74
|
-
console.debug('Jupyter: running sessions', sessions);
|
|
75
|
-
// the location gives us the correct path for the notebook including it's filename
|
|
76
|
-
// we need to replace the filename with one based on the page slug and notebook slug
|
|
77
|
-
// in order to allow for multiple independent sessions of the same notebook
|
|
78
|
-
let path = `/${pageSlug}-${notebookSlug}.ipynb`;
|
|
79
|
-
const match = (_a = location === null || location === void 0 ? void 0 : location.match(/(.*)\/.*.ipynb$/)) !== null && _a !== void 0 ? _a : null;
|
|
80
|
-
if (match) {
|
|
81
|
-
path = `${match[1]}/${pageSlug}-${notebookSlug}.ipynb`;
|
|
82
|
-
}
|
|
83
|
-
const existing = sessions.find((s) => s.path === path);
|
|
84
|
-
if (existing) {
|
|
85
|
-
console.debug(`session already exists for ${path}`, existing);
|
|
86
|
-
server.connectToExistingSession(existing, scope.rendermime).then((sesh) => {
|
|
87
|
-
var _a;
|
|
88
|
-
if (sesh == null) {
|
|
89
|
-
console.error(`Could not connect to session for ${path}`);
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
console.debug(`reconnected to session for ${path}`, sesh);
|
|
93
|
-
console.debug('restarting session', sesh);
|
|
94
|
-
(_a = sesh.kernel) === null || _a === void 0 ? void 0 : _a.restart().then(() => {
|
|
95
|
-
const notebook = (0, selectors_1.selectNotebookForPage)(state, pageSlug, notebookSlug);
|
|
96
|
-
notebook.attachSession(sesh);
|
|
97
|
-
dispatch({ type: 'ADD_SESSION', payload: { pageSlug, notebookSlug, session: sesh } });
|
|
98
|
-
});
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
server
|
|
103
|
-
.startNewSession(scope.rendermime, Object.assign(Object.assign({}, config === null || config === void 0 ? void 0 : config.kernels), { path }))
|
|
104
|
-
.then((sesh) => {
|
|
105
|
-
if (sesh == null) {
|
|
106
|
-
server === null || server === void 0 ? void 0 : server.getKernelSpecs().then((specs) => {
|
|
107
|
-
console.error(`Could not start session for ${path}`);
|
|
108
|
-
console.debug(`Available kernels: ${Object.keys(specs)}`);
|
|
109
|
-
});
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
console.debug(`session started for ${path}`, sesh);
|
|
113
|
-
const notebook = (0, selectors_1.selectNotebookForPage)(state, pageSlug, notebookSlug);
|
|
114
|
-
notebook.attachSession(sesh);
|
|
115
|
-
dispatch({ type: 'ADD_SESSION', payload: { pageSlug, notebookSlug, session: sesh } });
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
});
|
|
119
|
-
}, [core, config, pageSlug, notebookSlug, lock]);
|
|
120
|
-
// TODO avoid multiple dispatch?
|
|
121
|
-
const allSessionsAreStarted = (0, selectors_1.selectAreAllSessionsStarted)(state, pageSlug);
|
|
122
|
-
(0, react_1.useEffect)(() => {
|
|
123
|
-
if (!allSessionsAreStarted)
|
|
124
|
-
return;
|
|
125
|
-
dispatch({
|
|
126
|
-
type: 'SET_RENDERING_READY',
|
|
127
|
-
payload: { slug: pageSlug },
|
|
128
|
-
});
|
|
129
|
-
}, [allSessionsAreStarted]);
|
|
130
|
-
return null;
|
|
131
|
-
}
|
|
132
|
-
exports.SessionStarter = SessionStarter;
|
|
133
|
-
function ServerMonitor({ state, dispatch, }) {
|
|
134
|
-
const { core, load, loading } = (0, thebe_react_1.useThebeLoader)();
|
|
135
|
-
const { ready, error } = (0, thebe_react_1.useThebeServer)();
|
|
136
|
-
(0, react_1.useEffect)(() => {
|
|
137
|
-
if (core || loading)
|
|
138
|
-
return;
|
|
139
|
-
load();
|
|
140
|
-
}, [core, load, loading]);
|
|
141
|
-
// When server is ready, move any waiting builds onto the start session step
|
|
142
|
-
(0, react_1.useEffect)(() => {
|
|
143
|
-
if (ready) {
|
|
144
|
-
// TODO optimize to do a single dispatch
|
|
145
|
-
Object.entries(state.builds).forEach(([slug, { status }]) => {
|
|
146
|
-
if (status === 'wait-for-server') {
|
|
147
|
-
dispatch({ type: 'BUILD_STATUS', payload: { slug, status: 'start-session' } });
|
|
148
|
-
}
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
}, [ready, state]);
|
|
152
|
-
(0, react_1.useEffect)(() => {
|
|
153
|
-
if (!error)
|
|
154
|
-
return;
|
|
155
|
-
// TODO
|
|
156
|
-
// dispatch({ type: 'SERVER_ERROR', payload: error });
|
|
157
|
-
}, [error]);
|
|
158
|
-
return null;
|
|
159
|
-
}
|
|
160
|
-
exports.ServerMonitor = ServerMonitor;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import type { Dependency } from 'myst-spec-ext';
|
|
2
|
-
import { SourceFileKind } from 'myst-spec-ext';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
import type { ExecuteScopeAction } from './actions';
|
|
5
|
-
import type { ExecuteScopeState, IdKeyMap } from './types';
|
|
6
|
-
import type { Thebe } from 'myst-frontmatter';
|
|
7
|
-
import type { GenericParent } from 'myst-common';
|
|
8
|
-
export interface ExecuteScopeType {
|
|
9
|
-
canCompute: boolean;
|
|
10
|
-
slug: string;
|
|
11
|
-
state: ExecuteScopeState;
|
|
12
|
-
dispatch: React.Dispatch<ExecuteScopeAction>;
|
|
13
|
-
idkmap: IdKeyMap;
|
|
14
|
-
}
|
|
15
|
-
export declare const ExecuteScopeContext: React.Context<ExecuteScopeType | undefined>;
|
|
16
|
-
type ArticleContents = {
|
|
17
|
-
slug: string;
|
|
18
|
-
kind: SourceFileKind;
|
|
19
|
-
mdast: GenericParent;
|
|
20
|
-
location?: string;
|
|
21
|
-
dependencies?: Dependency[];
|
|
22
|
-
frontmatter: {
|
|
23
|
-
thebe?: boolean | Thebe;
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* The ExecuteScopeProvider is responsible for maintaining the state of the
|
|
28
|
-
* execution scope. It is also responsible for fetching the json for dependencies
|
|
29
|
-
* and adding them to the sources tree.
|
|
30
|
-
*/
|
|
31
|
-
export declare function ExecuteScopeProvider({ children, contents, }: React.PropsWithChildren<{
|
|
32
|
-
contents: ArticleContents;
|
|
33
|
-
}>): import("react/jsx-runtime").JSX.Element;
|
|
34
|
-
export {};
|
|
35
|
-
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/execute/provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAwC,MAAM,OAAO,CAAC;AAE7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,KAAK,EAAc,iBAAiB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AASvE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC7C,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED,eAAO,MAAM,mBAAmB,6CAA+D,CAAC;AAEhG,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5B,WAAW,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;KAAE,CAAC;CAC1C,CAAC;AAiEF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,QAAQ,EACR,QAAQ,GACT,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAAE,QAAQ,EAAE,eAAe,CAAA;CAAE,CAAC,2CAmGxD"}
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.ExecuteScopeProvider = exports.ExecuteScopeContext = void 0;
|
|
27
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
28
|
-
const myst_spec_ext_1 = require("myst-spec-ext");
|
|
29
|
-
const react_1 = __importStar(require("react"));
|
|
30
|
-
const unist_util_select_1 = require("unist-util-select");
|
|
31
|
-
const reducer_1 = require("./reducer");
|
|
32
|
-
const selectors_1 = require("./selectors");
|
|
33
|
-
const leaf_1 = require("./leaf");
|
|
34
|
-
const providers_1 = require("../providers");
|
|
35
|
-
exports.ExecuteScopeContext = react_1.default.createContext(undefined);
|
|
36
|
-
function useScopeNavigate({ contents: { slug, location, kind, mdast, dependencies }, state, dispatch, }) {
|
|
37
|
-
(0, react_1.useEffect)(() => {
|
|
38
|
-
if (state.pages[slug]) {
|
|
39
|
-
console.debug(`Jupyter: ExecuteScopeProvider - ${slug} is already in scope`);
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
const computables = listComputables(mdast);
|
|
43
|
-
dispatch({
|
|
44
|
-
type: 'NAVIGATE',
|
|
45
|
-
payload: {
|
|
46
|
-
kind: kind,
|
|
47
|
-
slug: slug,
|
|
48
|
-
location: location !== null && location !== void 0 ? location : (kind === myst_spec_ext_1.SourceFileKind.Notebook ? '/fallback.ipynb' : '/'),
|
|
49
|
-
mdast: mdast,
|
|
50
|
-
dependencies: dependencies !== null && dependencies !== void 0 ? dependencies : [],
|
|
51
|
-
computables,
|
|
52
|
-
},
|
|
53
|
-
});
|
|
54
|
-
}, [slug]);
|
|
55
|
-
}
|
|
56
|
-
function useExecutionScopeFetcher({ slug, state, dispatch, }) {
|
|
57
|
-
(0, react_1.useEffect)(() => {
|
|
58
|
-
if (!state.builds[slug])
|
|
59
|
-
return;
|
|
60
|
-
// TODO could be moved to the leaf
|
|
61
|
-
if (state.builds[slug].status === 'pending') {
|
|
62
|
-
dispatch({ type: 'BUILD_STATUS', payload: { slug, status: 'fetching' } });
|
|
63
|
-
}
|
|
64
|
-
// TODO could be moved to the leaf
|
|
65
|
-
if (state.builds[slug].status === 'fetching') {
|
|
66
|
-
if ((0, selectors_1.selectAreAllDependenciesReady)(state, slug)) {
|
|
67
|
-
dispatch({ type: 'BUILD_STATUS', payload: { slug, status: 'build-notebooks' } });
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}, [state.builds, state.mdast]);
|
|
71
|
-
}
|
|
72
|
-
function listComputables(mdast) {
|
|
73
|
-
return (0, unist_util_select_1.selectAll)('container[kind=figure] > output, embed > output', mdast).map((node) => {
|
|
74
|
-
const { key, label, source } = node;
|
|
75
|
-
const output = (0, unist_util_select_1.selectAll)('output', node);
|
|
76
|
-
return { embedKey: key, outputKey: output[0].key, label, source };
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* The ExecuteScopeProvider is responsible for maintaining the state of the
|
|
81
|
-
* execution scope. It is also responsible for fetching the json for dependencies
|
|
82
|
-
* and adding them to the sources tree.
|
|
83
|
-
*/
|
|
84
|
-
function ExecuteScopeProvider({ children, contents, }) {
|
|
85
|
-
var _a, _b;
|
|
86
|
-
const canCompute = (0, providers_1.useCanCompute)(contents);
|
|
87
|
-
// compute incoming for first render
|
|
88
|
-
const computables = listComputables(contents.mdast);
|
|
89
|
-
const fallbackLocation = contents.kind === myst_spec_ext_1.SourceFileKind.Notebook ? '/fallback.ipynb' : '/';
|
|
90
|
-
const initialState = {
|
|
91
|
-
mdast: {
|
|
92
|
-
[contents.slug]: { root: contents.mdast },
|
|
93
|
-
},
|
|
94
|
-
pages: {
|
|
95
|
-
[contents.slug]: {
|
|
96
|
-
computable: computables.length > 0 || contents.kind === myst_spec_ext_1.SourceFileKind.Notebook,
|
|
97
|
-
kind: contents.kind,
|
|
98
|
-
slug: contents.slug,
|
|
99
|
-
location: (_a = contents.location) !== null && _a !== void 0 ? _a : fallbackLocation,
|
|
100
|
-
dependencies: (_b = contents.dependencies) !== null && _b !== void 0 ? _b : [],
|
|
101
|
-
computables,
|
|
102
|
-
ready: false,
|
|
103
|
-
scopes: {},
|
|
104
|
-
},
|
|
105
|
-
},
|
|
106
|
-
builds: {},
|
|
107
|
-
};
|
|
108
|
-
const [state, dispatch] = (0, react_1.useReducer)(reducer_1.reducer, initialState);
|
|
109
|
-
const idkmap = (0, react_1.useRef)({});
|
|
110
|
-
useScopeNavigate({ contents, state: state, dispatch });
|
|
111
|
-
// TODO phase this out as it is based on the current slug only!
|
|
112
|
-
useExecutionScopeFetcher({ slug: contents.slug, state: state, dispatch });
|
|
113
|
-
const fetchTargets = (0, selectors_1.selectDependenciesToFetch)(state);
|
|
114
|
-
const notebookBuildTargets = (0, selectors_1.selectScopeNotebooksToBuild)(state);
|
|
115
|
-
const sessionStartTargets = (0, selectors_1.selectSessionsToStart)(state);
|
|
116
|
-
const memo = react_1.default.useMemo(() => ({
|
|
117
|
-
canCompute,
|
|
118
|
-
slug: contents.slug,
|
|
119
|
-
location: contents.location,
|
|
120
|
-
state,
|
|
121
|
-
dispatch,
|
|
122
|
-
idkmap: idkmap.current,
|
|
123
|
-
}), [state, contents.slug]);
|
|
124
|
-
if (typeof window !== 'undefined') {
|
|
125
|
-
window.executeScope = memo;
|
|
126
|
-
}
|
|
127
|
-
return ((0, jsx_runtime_1.jsxs)(exports.ExecuteScopeContext.Provider, { value: memo, children: [(0, jsx_runtime_1.jsxs)("div", { className: "hidden", children: [fetchTargets.length > 0 && ((0, jsx_runtime_1.jsx)("div", { className: "p-1 pl-4", children: fetchTargets.map(({ slug, url }) => ((0, jsx_runtime_1.jsx)(leaf_1.MdastFetcher, { slug: slug, url: url, dispatch: dispatch }, `fetch-${slug}`))) })), notebookBuildTargets.length > 0 && ((0, jsx_runtime_1.jsx)("div", { className: "p-1 pl-4", children: notebookBuildTargets.map(({ pageSlug, notebookSlug }) => ((0, jsx_runtime_1.jsx)(leaf_1.NotebookBuilder, { pageSlug: pageSlug, notebookSlug: notebookSlug, idkmap: idkmap.current, state: state, dispatch: dispatch }, `build-${pageSlug}-${notebookSlug}`))) })), sessionStartTargets.length > 0 && ((0, jsx_runtime_1.jsx)("div", { className: "p-1 pl-4", children: sessionStartTargets.map(({ pageSlug, notebookSlug, location }) => ((0, jsx_runtime_1.jsx)(leaf_1.SessionStarter, { pageSlug: pageSlug, notebookSlug: notebookSlug, location: location, state: state, dispatch: dispatch }, `session-${pageSlug}-${notebookSlug}`))) }))] }), (0, jsx_runtime_1.jsx)(leaf_1.ServerMonitor, { state: state, dispatch: dispatch }), children] }));
|
|
128
|
-
}
|
|
129
|
-
exports.ExecuteScopeProvider = ExecuteScopeProvider;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../../../src/execute/reducer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AASpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,wBAAgB,OAAO,CAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,kBAAkB,GAAG,iBAAiB,CAwL/F"}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
-
var t = {};
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.reducer = void 0;
|
|
15
|
-
const myst_spec_ext_1 = require("myst-spec-ext");
|
|
16
|
-
const actions_1 = require("./actions");
|
|
17
|
-
function reducer(state, action) {
|
|
18
|
-
var _a;
|
|
19
|
-
switch (action.type) {
|
|
20
|
-
case 'NAVIGATE': {
|
|
21
|
-
if (!(0, actions_1.isNavigatePayload)(action.payload)) {
|
|
22
|
-
console.error(action.payload);
|
|
23
|
-
throw new Error('invalid NAVIGATE payload');
|
|
24
|
-
}
|
|
25
|
-
const { kind, slug, location, mdast, dependencies, computables } = action.payload;
|
|
26
|
-
if (state.pages[slug])
|
|
27
|
-
return state;
|
|
28
|
-
return Object.assign(Object.assign({}, state), { mdast: Object.assign(Object.assign({}, state.mdast), { [slug]: { root: mdast } }), pages: Object.assign(Object.assign({}, state.pages), { [slug]: {
|
|
29
|
-
kind,
|
|
30
|
-
slug,
|
|
31
|
-
location,
|
|
32
|
-
dependencies,
|
|
33
|
-
computables,
|
|
34
|
-
computable: computables.length > 0 || kind === myst_spec_ext_1.SourceFileKind.Notebook,
|
|
35
|
-
ready: false,
|
|
36
|
-
scopes: {},
|
|
37
|
-
} }) });
|
|
38
|
-
}
|
|
39
|
-
case 'ADD_MDAST': {
|
|
40
|
-
if (!(0, actions_1.isAddMdastPayload)(action.payload)) {
|
|
41
|
-
console.error(action.payload);
|
|
42
|
-
throw new Error('invalid ADD_MDAST payload');
|
|
43
|
-
}
|
|
44
|
-
const { slug, mdast } = action.payload;
|
|
45
|
-
if (state.mdast[slug])
|
|
46
|
-
return state;
|
|
47
|
-
return Object.assign(Object.assign({}, state), { mdast: Object.assign(Object.assign({}, state.mdast), { [slug]: { root: mdast } }) });
|
|
48
|
-
}
|
|
49
|
-
case 'REQUEST_BUILD': {
|
|
50
|
-
if (!(0, actions_1.isSlugPayload)(action.payload)) {
|
|
51
|
-
console.error(action.payload);
|
|
52
|
-
throw new Error('invalid REQUEST_BUILD payload');
|
|
53
|
-
}
|
|
54
|
-
const { slug } = action.payload;
|
|
55
|
-
if (!!state.builds[slug] && state.builds[slug].status === 'pending')
|
|
56
|
-
return state;
|
|
57
|
-
return Object.assign(Object.assign({}, state), { builds: Object.assign(Object.assign({}, state.builds), { [slug]: {
|
|
58
|
-
status: 'pending',
|
|
59
|
-
} }) });
|
|
60
|
-
}
|
|
61
|
-
case 'BUILD_STATUS': {
|
|
62
|
-
if (!(0, actions_1.isBuildStatusPayload)(action.payload)) {
|
|
63
|
-
console.error(action.payload);
|
|
64
|
-
throw new Error('invalid BUILD_STATUS payload');
|
|
65
|
-
}
|
|
66
|
-
const { slug } = action.payload;
|
|
67
|
-
if (!state.builds[slug]) {
|
|
68
|
-
console.error(state, action.payload);
|
|
69
|
-
throw new Error('Trying to set build status when there is no build state');
|
|
70
|
-
}
|
|
71
|
-
if (state.builds[slug].status === action.payload.status)
|
|
72
|
-
return state;
|
|
73
|
-
return Object.assign(Object.assign({}, state), { builds: Object.assign(Object.assign({}, state.builds), { [slug]: Object.assign(Object.assign({}, state.builds[slug]), { status: action.payload.status }) }) });
|
|
74
|
-
}
|
|
75
|
-
case 'CLEAR_BUILD': {
|
|
76
|
-
if (!(0, actions_1.isSlugPayload)(action.payload)) {
|
|
77
|
-
console.error(action.payload);
|
|
78
|
-
throw new Error('invalid CLEAR_BUILD payload');
|
|
79
|
-
}
|
|
80
|
-
const { slug } = action.payload;
|
|
81
|
-
if (!state.builds[slug])
|
|
82
|
-
return state;
|
|
83
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
84
|
-
const _b = state.builds, _c = slug, _ = _b[_c], builds = __rest(_b, [typeof _c === "symbol" ? _c : _c + ""]);
|
|
85
|
-
return Object.assign(Object.assign({}, state), { builds });
|
|
86
|
-
}
|
|
87
|
-
case 'SET_RENDERING_READY': {
|
|
88
|
-
if (!(0, actions_1.isSlugPayload)(action.payload)) {
|
|
89
|
-
console.error(action.payload);
|
|
90
|
-
throw new Error('invalid SET_READY payload');
|
|
91
|
-
}
|
|
92
|
-
const { slug } = action.payload;
|
|
93
|
-
if (state.pages[slug].ready)
|
|
94
|
-
return state;
|
|
95
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
96
|
-
const _d = state.builds, _e = slug, _ = _d[_e], builds = __rest(_d, [typeof _e === "symbol" ? _e : _e + ""]);
|
|
97
|
-
const newState = Object.assign(Object.assign({}, state), { builds, pages: Object.assign(Object.assign({}, state.pages), { [slug]: Object.assign(Object.assign({}, state.pages[slug]), { ready: true }) }) });
|
|
98
|
-
return newState;
|
|
99
|
-
}
|
|
100
|
-
case 'ADD_NOTEBOOK': {
|
|
101
|
-
if (!(0, actions_1.isAddNotebookPayload)(action.payload)) {
|
|
102
|
-
console.error(action.payload);
|
|
103
|
-
throw new Error('invalid ADD_NOTEBOOK payload');
|
|
104
|
-
}
|
|
105
|
-
const { pageSlug, notebookSlug, notebook, rendermime } = action.payload;
|
|
106
|
-
if (!state.pages[pageSlug]) {
|
|
107
|
-
console.error(state, action.payload);
|
|
108
|
-
throw new Error('Trying to add notebook when there is no rendering state');
|
|
109
|
-
}
|
|
110
|
-
if (state.pages[pageSlug].scopes[notebookSlug]) {
|
|
111
|
-
console.warn('Trying to add notebook scope when rendering already has one', action.payload);
|
|
112
|
-
return state;
|
|
113
|
-
}
|
|
114
|
-
return Object.assign(Object.assign({}, state), { pages: Object.assign(Object.assign({}, state.pages), { [pageSlug]: Object.assign(Object.assign({}, state.pages[pageSlug]), { scopes: Object.assign(Object.assign({}, state.pages[pageSlug].scopes), { [notebookSlug]: {
|
|
115
|
-
notebook,
|
|
116
|
-
rendermime,
|
|
117
|
-
} }) }) }) });
|
|
118
|
-
}
|
|
119
|
-
case 'ADD_SESSION': {
|
|
120
|
-
if (!(0, actions_1.isAddSessionPayload)(action.payload)) {
|
|
121
|
-
console.error(action.payload);
|
|
122
|
-
throw new Error('invalid ADD_SESSION payload');
|
|
123
|
-
}
|
|
124
|
-
const { pageSlug, notebookSlug, session } = action.payload;
|
|
125
|
-
if (!state.pages[pageSlug]) {
|
|
126
|
-
console.error(state, action.payload);
|
|
127
|
-
throw new Error('Trying to add session when there is no rendering state');
|
|
128
|
-
}
|
|
129
|
-
if ((_a = state.pages[pageSlug].scopes[notebookSlug]) === null || _a === void 0 ? void 0 : _a.session) {
|
|
130
|
-
console.warn('Trying to add session scope when rendering already has one', action.payload);
|
|
131
|
-
return state;
|
|
132
|
-
}
|
|
133
|
-
return Object.assign(Object.assign({}, state), { pages: Object.assign(Object.assign({}, state.pages), { [pageSlug]: Object.assign(Object.assign({}, state.pages[pageSlug]), { scopes: Object.assign(Object.assign({}, state.pages[pageSlug].scopes), { [notebookSlug]: Object.assign(Object.assign({}, state.pages[pageSlug].scopes[notebookSlug]), { session }) }) }) }) });
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
return state;
|
|
137
|
-
}
|
|
138
|
-
exports.reducer = reducer;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../../src/execute/selectors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE9D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM;;EAE5E;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,oDAGrB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAExE;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAEnF;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAEtF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,yBAEhF;AAQD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,iBAAiB;UAKpD,MAAM;SACP,MAAM;IAclB;AA8BD,eAAO,MAAM,2BAA2B,UA1BvB,iBAAiB;cAGR,MAAM;kBAAgB,MAAM;cAAY,MAAM,GAAG,SAAS;GAuBI,CAAC;AACzF,eAAO,MAAM,qBAAqB,UA3BjB,iBAAiB;cAGR,MAAM;kBAAgB,MAAM;cAAY,MAAM,GAAG,SAAS;GAwBJ,CAAC;AAEjF,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAInF;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAKrF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAMjF"}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.selectAreAllSessionsStarted = exports.selectAreAllNotebookScopesBuilt = exports.selectAreAllDependenciesReady = exports.selectSessionsToStart = exports.selectScopeNotebooksToBuild = exports.selectDependenciesToFetch = exports.selectExecutionScopeStatus = exports.selectAreExecutionScopesBuilding = exports.selectAreExecutionScopesReady = exports.selectIsComputable = exports.selectNotebookForPage = exports.selectScopeForPage = void 0;
|
|
4
|
-
const myst_spec_ext_1 = require("myst-spec-ext");
|
|
5
|
-
function selectScopeForPage(state, pageSlug) {
|
|
6
|
-
var _a, _b;
|
|
7
|
-
return (_b = (_a = state.pages[pageSlug]) === null || _a === void 0 ? void 0 : _a.scopes) !== null && _b !== void 0 ? _b : {};
|
|
8
|
-
}
|
|
9
|
-
exports.selectScopeForPage = selectScopeForPage;
|
|
10
|
-
function selectNotebookForPage(state, pageSlug, notebookSlug) {
|
|
11
|
-
var _a, _b;
|
|
12
|
-
return (_b = (_a = state.pages[pageSlug]) === null || _a === void 0 ? void 0 : _a.scopes[notebookSlug]) === null || _b === void 0 ? void 0 : _b.notebook;
|
|
13
|
-
}
|
|
14
|
-
exports.selectNotebookForPage = selectNotebookForPage;
|
|
15
|
-
function selectIsComputable(state, slug) {
|
|
16
|
-
var _a, _b;
|
|
17
|
-
return (_b = (_a = state.pages[slug]) === null || _a === void 0 ? void 0 : _a.computable) !== null && _b !== void 0 ? _b : false;
|
|
18
|
-
}
|
|
19
|
-
exports.selectIsComputable = selectIsComputable;
|
|
20
|
-
function selectAreExecutionScopesReady(state, slug) {
|
|
21
|
-
var _a;
|
|
22
|
-
return (_a = state.pages[slug]) === null || _a === void 0 ? void 0 : _a.ready;
|
|
23
|
-
}
|
|
24
|
-
exports.selectAreExecutionScopesReady = selectAreExecutionScopesReady;
|
|
25
|
-
function selectAreExecutionScopesBuilding(state, slug) {
|
|
26
|
-
var _a;
|
|
27
|
-
return !((_a = state.pages[slug]) === null || _a === void 0 ? void 0 : _a.ready) && !!state.builds[slug];
|
|
28
|
-
}
|
|
29
|
-
exports.selectAreExecutionScopesBuilding = selectAreExecutionScopesBuilding;
|
|
30
|
-
function selectExecutionScopeStatus(state, slug) {
|
|
31
|
-
var _a, _b, _c;
|
|
32
|
-
return ((_a = state.pages[slug]) === null || _a === void 0 ? void 0 : _a.ready) ? 'ready' : (_c = (_b = state.builds[slug]) === null || _b === void 0 ? void 0 : _b.status) !== null && _c !== void 0 ? _c : 'unknown';
|
|
33
|
-
}
|
|
34
|
-
exports.selectExecutionScopeStatus = selectExecutionScopeStatus;
|
|
35
|
-
//
|
|
36
|
-
// The following teo functions are ripe for generaizing but also it would be good to
|
|
37
|
-
// see if we can memoize them, potentially with reselect.
|
|
38
|
-
//
|
|
39
|
-
// TODO Memoize?
|
|
40
|
-
function selectDependenciesToFetch(state) {
|
|
41
|
-
return Object.entries(state.builds)
|
|
42
|
-
.filter(([, { status }]) => status === 'fetching')
|
|
43
|
-
.reduce((targets, [slug]) => [
|
|
44
|
-
...targets,
|
|
45
|
-
...state.pages[slug].dependencies
|
|
46
|
-
.filter((d) => { var _a; return !state.mdast[((_a = d.slug) !== null && _a !== void 0 ? _a : d.url)]; })
|
|
47
|
-
.map((d) => {
|
|
48
|
-
var _a;
|
|
49
|
-
return ({
|
|
50
|
-
slug: ((_a = d.slug) !== null && _a !== void 0 ? _a : d.url),
|
|
51
|
-
url: d.url,
|
|
52
|
-
});
|
|
53
|
-
}),
|
|
54
|
-
], []);
|
|
55
|
-
}
|
|
56
|
-
exports.selectDependenciesToFetch = selectDependenciesToFetch;
|
|
57
|
-
// // TODO Memoize?
|
|
58
|
-
function makeSelectScopeEventStatus(statusName) {
|
|
59
|
-
return (state) => {
|
|
60
|
-
return Object.entries(state.builds)
|
|
61
|
-
.filter(([, { status }]) => status === statusName)
|
|
62
|
-
.reduce((all, [slug]) => {
|
|
63
|
-
const targets = [];
|
|
64
|
-
if (state.pages[slug].kind === myst_spec_ext_1.SourceFileKind.Notebook)
|
|
65
|
-
targets.push({
|
|
66
|
-
pageSlug: slug,
|
|
67
|
-
notebookSlug: slug,
|
|
68
|
-
location: state.pages[slug].location,
|
|
69
|
-
});
|
|
70
|
-
targets.push(...state.pages[slug].dependencies.map((d) => {
|
|
71
|
-
var _a;
|
|
72
|
-
return ({
|
|
73
|
-
pageSlug: slug,
|
|
74
|
-
notebookSlug: ((_a = d.slug) !== null && _a !== void 0 ? _a : d.url),
|
|
75
|
-
location: d.location,
|
|
76
|
-
});
|
|
77
|
-
}));
|
|
78
|
-
return [...all, ...targets];
|
|
79
|
-
}, []);
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
exports.selectScopeNotebooksToBuild = makeSelectScopeEventStatus('build-notebooks');
|
|
83
|
-
exports.selectSessionsToStart = makeSelectScopeEventStatus('start-session');
|
|
84
|
-
function selectAreAllDependenciesReady(state, slug) {
|
|
85
|
-
var _a;
|
|
86
|
-
return (_a = state.pages[slug]) === null || _a === void 0 ? void 0 : _a.dependencies.every((dep) => { var _a; return !!state.mdast[((_a = dep.slug) !== null && _a !== void 0 ? _a : dep.url)]; });
|
|
87
|
-
}
|
|
88
|
-
exports.selectAreAllDependenciesReady = selectAreAllDependenciesReady;
|
|
89
|
-
function selectAreAllNotebookScopesBuilt(state, slug) {
|
|
90
|
-
const rendering = state.pages[slug];
|
|
91
|
-
return rendering === null || rendering === void 0 ? void 0 : rendering.dependencies.every((dep) => { var _a; return !!rendering.scopes[((_a = dep.slug) !== null && _a !== void 0 ? _a : dep.url)]; });
|
|
92
|
-
}
|
|
93
|
-
exports.selectAreAllNotebookScopesBuilt = selectAreAllNotebookScopesBuilt;
|
|
94
|
-
function selectAreAllSessionsStarted(state, slug) {
|
|
95
|
-
const rendering = state.pages[slug];
|
|
96
|
-
// TODO is this working??
|
|
97
|
-
return rendering === null || rendering === void 0 ? void 0 : rendering.dependencies.every((dep) => { var _a, _b; return !!((_b = rendering.scopes[((_a = dep.slug) !== null && _a !== void 0 ? _a : dep.url)]) === null || _b === void 0 ? void 0 : _b.session); });
|
|
98
|
-
}
|
|
99
|
-
exports.selectAreAllSessionsStarted = selectAreAllSessionsStarted;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/execute/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEnF,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,UAAU,GACV,iBAAiB,GACjB,iBAAiB,GACjB,eAAe,GACf,OAAO,CAAC;AAEZ,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAC7B,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAC5B,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AACxF,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AAEvD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE;QACL,CAAC,IAAI,EAAE,MAAM,GAAG;YACd,IAAI,EAAE,aAAa,CAAC;SACrB,CAAC;KACH,CAAC;IACF,KAAK,EAAE;QACL,CAAC,QAAQ,EAAE,MAAM,GAAG;YAClB,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,cAAc,CAAC;YACrB,UAAU,EAAE,OAAO,CAAC;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,YAAY,EAAE,UAAU,EAAE,CAAC;YAC3B,WAAW,EAAE,UAAU,EAAE,CAAC;YAC1B,KAAK,EAAE,OAAO,CAAC;YACf,MAAM,EAAE;gBACN,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,CAAC;aACxC,CAAC;SACH,CAAC;KACH,CAAC;IACF,MAAM,EAAE;QACN,CAAC,QAAQ,EAAE,MAAM,GAAG;YAClB,MAAM,EAAE,WAAW,CAAC;SACrB,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,mBAAmB,CAAC;IAChC,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;CACpB"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { GenericParent } from 'myst-common';
|
|
2
|
-
import type { Config, IRenderMimeRegistry, ThebeCore } from 'thebe-core';
|
|
3
|
-
import type { IdKeyMap } from './types';
|
|
4
|
-
/**
|
|
5
|
-
* Use the mdast to create a ThebeNotebook from the mdast tree of a notebook.
|
|
6
|
-
* This is intended to be used to create an independent ThebeNotebook instance
|
|
7
|
-
* for each notebook in a rendering context.
|
|
8
|
-
*
|
|
9
|
-
* NOTE: there is no need to scope the keys at this point, as the ThebeNotebook
|
|
10
|
-
* instance will be scoped to the render context. All underlying cells will be
|
|
11
|
-
* identified by keys from the mdast - so there may be duplicate ids between different
|
|
12
|
-
* notebook instances, but that is ok as they came from the same mdast which is readonly.
|
|
13
|
-
*
|
|
14
|
-
* @param core
|
|
15
|
-
* @param config
|
|
16
|
-
* @param pageSlug - slug identifying the render context used for key decoration
|
|
17
|
-
* @param mdast - the notebook mdast
|
|
18
|
-
* @param idkmap - map of scoped block keys to keys for code and output cells
|
|
19
|
-
* @param rendermime
|
|
20
|
-
* @returns
|
|
21
|
-
*/
|
|
22
|
-
export declare function notebookFromMdast(core: ThebeCore, config: Config, pageSlug: string, notebookSlug: string, mdast: GenericParent, idkmap: IdKeyMap, rendermime: IRenderMimeRegistry): import("thebe-core/dist/types/notebook").default;
|
|
23
|
-
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/execute/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,SAAS,CAAC;AAExD;;;;;;;;;;;;;;;;;GAiBG;AAEH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,EAChB,UAAU,EAAE,mBAAmB,oDAuDhC"}
|