@myst-theme/jupyter 0.5.7 → 0.5.8

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 (317) hide show
  1. package/dist/BinderBadge.d.ts.map +1 -0
  2. package/dist/ClientOnly.d.ts.map +1 -0
  3. package/dist/ConnectionStatusTray.d.ts +4 -0
  4. package/dist/ConnectionStatusTray.d.ts.map +1 -0
  5. package/dist/ConnectionStatusTray.js +54 -0
  6. package/dist/ErrorTray.d.ts.map +1 -0
  7. package/dist/{esm/ErrorTray.js → ErrorTray.js} +1 -1
  8. package/dist/components.d.ts.map +1 -0
  9. package/dist/{esm/components.js → components.js} +1 -1
  10. package/dist/controls/ArticleCellControls.d.ts.map +1 -0
  11. package/dist/{esm/controls → controls}/ArticleCellControls.js +7 -3
  12. package/dist/{cjs/controls → controls}/Buttons.d.ts +4 -0
  13. package/dist/{cjs/controls → controls}/Buttons.d.ts.map +1 -1
  14. package/dist/{esm/controls → controls}/Buttons.js +67 -11
  15. package/dist/controls/NotebookCellControls.d.ts.map +1 -0
  16. package/dist/{esm/controls → controls}/NotebookCellControls.js +2 -2
  17. package/dist/controls/NotebookToolbar.d.ts.map +1 -0
  18. package/dist/{esm/controls → controls}/NotebookToolbar.js +9 -5
  19. package/dist/controls/Spinner.d.ts.map +1 -0
  20. package/dist/controls/index.d.ts +5 -0
  21. package/dist/controls/index.d.ts.map +1 -0
  22. package/dist/controls/index.js +4 -0
  23. package/dist/convertImages.d.ts.map +1 -0
  24. package/dist/decoration.d.ts.map +1 -0
  25. package/dist/{esm/decoration.js → decoration.js} +2 -2
  26. package/dist/embed.d.ts.map +1 -0
  27. package/dist/{esm/embed.js → embed.js} +1 -1
  28. package/dist/error.d.ts.map +1 -0
  29. package/dist/{esm/error.js → error.js} +2 -2
  30. package/dist/{types/execute → execute}/actions.d.ts +1 -1
  31. package/dist/execute/actions.d.ts.map +1 -0
  32. package/dist/execute/busy.d.ts.map +1 -0
  33. package/dist/{cjs/execute → execute}/hooks.d.ts +7 -7
  34. package/dist/execute/hooks.d.ts.map +1 -0
  35. package/dist/{esm/execute → execute}/hooks.js +3 -3
  36. package/dist/execute/index.d.ts +7 -0
  37. package/dist/execute/index.d.ts.map +1 -0
  38. package/dist/execute/index.js +6 -0
  39. package/dist/{types/execute → execute}/leaf.d.ts +3 -3
  40. package/dist/execute/leaf.d.ts.map +1 -0
  41. package/dist/{esm/execute → execute}/leaf.js +2 -2
  42. package/dist/{types/execute → execute}/provider.d.ts +2 -2
  43. package/dist/execute/provider.d.ts.map +1 -0
  44. package/dist/{esm/execute → execute}/provider.js +4 -4
  45. package/dist/execute/reducer.d.ts +4 -0
  46. package/dist/execute/reducer.d.ts.map +1 -0
  47. package/dist/{esm/execute → execute}/reducer.js +1 -1
  48. package/dist/{cjs/execute → execute}/selectors.d.ts +3 -3
  49. package/dist/execute/selectors.d.ts.map +1 -0
  50. package/dist/execute/types.d.ts.map +1 -0
  51. package/dist/{esm/execute → execute}/utils.d.ts +2 -2
  52. package/dist/execute/utils.d.ts.map +1 -0
  53. package/dist/figure.d.ts.map +1 -0
  54. package/dist/{esm/figure.js → figure.js} +1 -1
  55. package/dist/hooks.d.ts.map +1 -0
  56. package/dist/{esm/hooks.js → hooks.js} +1 -1
  57. package/dist/index.d.ts +16 -0
  58. package/dist/index.d.ts.map +1 -0
  59. package/dist/index.js +15 -0
  60. package/dist/jupyter.d.ts.map +1 -0
  61. package/dist/{esm/jupyter.js → jupyter.js} +4 -4
  62. package/dist/output.d.ts.map +1 -0
  63. package/dist/{esm/output.js → output.js} +4 -4
  64. package/dist/providers.d.ts +32 -0
  65. package/dist/providers.d.ts.map +1 -0
  66. package/dist/providers.js +38 -0
  67. package/dist/safe.d.ts.map +1 -0
  68. package/dist/{esm/safe.js → safe.js} +3 -3
  69. package/dist/stream.d.ts.map +1 -0
  70. package/dist/{esm/stream.js → stream.js} +2 -2
  71. package/dist/utils.d.ts.map +1 -0
  72. package/dist/{esm/utils.js → utils.js} +1 -1
  73. package/package.json +18 -17
  74. package/dist/cjs/BinderBadge.d.ts.map +0 -1
  75. package/dist/cjs/BinderBadge.js +0 -13
  76. package/dist/cjs/ClientOnly.d.ts.map +0 -1
  77. package/dist/cjs/ClientOnly.js +0 -13
  78. package/dist/cjs/ConnectionStatusTray.d.ts +0 -2
  79. package/dist/cjs/ConnectionStatusTray.d.ts.map +0 -1
  80. package/dist/cjs/ConnectionStatusTray.js +0 -56
  81. package/dist/cjs/ErrorTray.d.ts.map +0 -1
  82. package/dist/cjs/ErrorTray.js +0 -42
  83. package/dist/cjs/components.d.ts.map +0 -1
  84. package/dist/cjs/components.js +0 -41
  85. package/dist/cjs/controls/ArticleCellControls.d.ts.map +0 -1
  86. package/dist/cjs/controls/ArticleCellControls.js +0 -33
  87. package/dist/cjs/controls/Buttons.js +0 -70
  88. package/dist/cjs/controls/NotebookCellControls.d.ts.map +0 -1
  89. package/dist/cjs/controls/NotebookCellControls.js +0 -27
  90. package/dist/cjs/controls/NotebookToolbar.d.ts.map +0 -1
  91. package/dist/cjs/controls/NotebookToolbar.js +0 -47
  92. package/dist/cjs/controls/Spinner.d.ts.map +0 -1
  93. package/dist/cjs/controls/Spinner.js +0 -8
  94. package/dist/cjs/controls/index.d.ts +0 -5
  95. package/dist/cjs/controls/index.d.ts.map +0 -1
  96. package/dist/cjs/controls/index.js +0 -20
  97. package/dist/cjs/convertImages.d.ts.map +0 -1
  98. package/dist/cjs/convertImages.js +0 -70
  99. package/dist/cjs/decoration.d.ts.map +0 -1
  100. package/dist/cjs/decoration.js +0 -40
  101. package/dist/cjs/embed.d.ts.map +0 -1
  102. package/dist/cjs/embed.js +0 -14
  103. package/dist/cjs/error.d.ts.map +0 -1
  104. package/dist/cjs/error.js +0 -15
  105. package/dist/cjs/execute/actions.d.ts +0 -56
  106. package/dist/cjs/execute/actions.d.ts.map +0 -1
  107. package/dist/cjs/execute/actions.js +0 -50
  108. package/dist/cjs/execute/busy.d.ts.map +0 -1
  109. package/dist/cjs/execute/busy.js +0 -259
  110. package/dist/cjs/execute/hooks.d.ts.map +0 -1
  111. package/dist/cjs/execute/hooks.js +0 -311
  112. package/dist/cjs/execute/index.d.ts +0 -7
  113. package/dist/cjs/execute/index.d.ts.map +0 -1
  114. package/dist/cjs/execute/index.js +0 -22
  115. package/dist/cjs/execute/leaf.d.ts +0 -27
  116. package/dist/cjs/execute/leaf.d.ts.map +0 -1
  117. package/dist/cjs/execute/leaf.js +0 -160
  118. package/dist/cjs/execute/provider.d.ts +0 -35
  119. package/dist/cjs/execute/provider.d.ts.map +0 -1
  120. package/dist/cjs/execute/provider.js +0 -129
  121. package/dist/cjs/execute/reducer.d.ts +0 -4
  122. package/dist/cjs/execute/reducer.d.ts.map +0 -1
  123. package/dist/cjs/execute/reducer.js +0 -138
  124. package/dist/cjs/execute/selectors.d.ts.map +0 -1
  125. package/dist/cjs/execute/selectors.js +0 -99
  126. package/dist/cjs/execute/types.d.ts.map +0 -1
  127. package/dist/cjs/execute/types.js +0 -2
  128. package/dist/cjs/execute/utils.d.ts +0 -23
  129. package/dist/cjs/execute/utils.d.ts.map +0 -1
  130. package/dist/cjs/execute/utils.js +0 -63
  131. package/dist/cjs/figure.d.ts.map +0 -1
  132. package/dist/cjs/figure.js +0 -20
  133. package/dist/cjs/hooks.d.ts.map +0 -1
  134. package/dist/cjs/hooks.js +0 -122
  135. package/dist/cjs/index.d.ts +0 -16
  136. package/dist/cjs/index.d.ts.map +0 -1
  137. package/dist/cjs/index.js +0 -31
  138. package/dist/cjs/jupyter.d.ts.map +0 -1
  139. package/dist/cjs/jupyter.js +0 -111
  140. package/dist/cjs/output.d.ts.map +0 -1
  141. package/dist/cjs/output.js +0 -67
  142. package/dist/cjs/providers.d.ts +0 -28
  143. package/dist/cjs/providers.d.ts.map +0 -1
  144. package/dist/cjs/providers.js +0 -44
  145. package/dist/cjs/safe.d.ts.map +0 -1
  146. package/dist/cjs/safe.js +0 -79
  147. package/dist/cjs/stream.d.ts.map +0 -1
  148. package/dist/cjs/stream.js +0 -13
  149. package/dist/cjs/utils.d.ts.map +0 -1
  150. package/dist/cjs/utils.js +0 -179
  151. package/dist/esm/BinderBadge.d.ts +0 -4
  152. package/dist/esm/BinderBadge.d.ts.map +0 -1
  153. package/dist/esm/ClientOnly.d.ts +0 -5
  154. package/dist/esm/ClientOnly.d.ts.map +0 -1
  155. package/dist/esm/ConnectionStatusTray.d.ts +0 -2
  156. package/dist/esm/ConnectionStatusTray.d.ts.map +0 -1
  157. package/dist/esm/ConnectionStatusTray.js +0 -52
  158. package/dist/esm/ErrorTray.d.ts +0 -5
  159. package/dist/esm/ErrorTray.d.ts.map +0 -1
  160. package/dist/esm/components.d.ts +0 -9
  161. package/dist/esm/components.d.ts.map +0 -1
  162. package/dist/esm/controls/ArticleCellControls.d.ts +0 -10
  163. package/dist/esm/controls/ArticleCellControls.d.ts.map +0 -1
  164. package/dist/esm/controls/Buttons.d.ts +0 -47
  165. package/dist/esm/controls/Buttons.d.ts.map +0 -1
  166. package/dist/esm/controls/NotebookCellControls.d.ts +0 -10
  167. package/dist/esm/controls/NotebookCellControls.d.ts.map +0 -1
  168. package/dist/esm/controls/NotebookToolbar.d.ts +0 -4
  169. package/dist/esm/controls/NotebookToolbar.d.ts.map +0 -1
  170. package/dist/esm/controls/Spinner.d.ts +0 -4
  171. package/dist/esm/controls/Spinner.d.ts.map +0 -1
  172. package/dist/esm/controls/index.d.ts +0 -5
  173. package/dist/esm/controls/index.d.ts.map +0 -1
  174. package/dist/esm/controls/index.js +0 -4
  175. package/dist/esm/convertImages.d.ts +0 -3
  176. package/dist/esm/convertImages.d.ts.map +0 -1
  177. package/dist/esm/decoration.d.ts +0 -11
  178. package/dist/esm/decoration.d.ts.map +0 -1
  179. package/dist/esm/embed.d.ts +0 -5
  180. package/dist/esm/embed.d.ts.map +0 -1
  181. package/dist/esm/error.d.ts +0 -5
  182. package/dist/esm/error.d.ts.map +0 -1
  183. package/dist/esm/execute/actions.d.ts +0 -56
  184. package/dist/esm/execute/actions.d.ts.map +0 -1
  185. package/dist/esm/execute/busy.d.ts +0 -96
  186. package/dist/esm/execute/busy.d.ts.map +0 -1
  187. package/dist/esm/execute/hooks.d.ts +0 -65
  188. package/dist/esm/execute/hooks.d.ts.map +0 -1
  189. package/dist/esm/execute/index.d.ts +0 -7
  190. package/dist/esm/execute/index.d.ts.map +0 -1
  191. package/dist/esm/execute/index.js +0 -6
  192. package/dist/esm/execute/leaf.d.ts +0 -27
  193. package/dist/esm/execute/leaf.d.ts.map +0 -1
  194. package/dist/esm/execute/provider.d.ts +0 -35
  195. package/dist/esm/execute/provider.d.ts.map +0 -1
  196. package/dist/esm/execute/reducer.d.ts +0 -4
  197. package/dist/esm/execute/reducer.d.ts.map +0 -1
  198. package/dist/esm/execute/selectors.d.ts +0 -27
  199. package/dist/esm/execute/selectors.d.ts.map +0 -1
  200. package/dist/esm/execute/types.d.ts +0 -50
  201. package/dist/esm/execute/types.d.ts.map +0 -1
  202. package/dist/esm/execute/utils.d.ts.map +0 -1
  203. package/dist/esm/figure.d.ts +0 -5
  204. package/dist/esm/figure.d.ts.map +0 -1
  205. package/dist/esm/hooks.d.ts +0 -19
  206. package/dist/esm/hooks.d.ts.map +0 -1
  207. package/dist/esm/index.d.ts +0 -16
  208. package/dist/esm/index.d.ts.map +0 -1
  209. package/dist/esm/index.js +0 -15
  210. package/dist/esm/jupyter.d.ts +0 -7
  211. package/dist/esm/jupyter.d.ts.map +0 -1
  212. package/dist/esm/output.d.ts +0 -15
  213. package/dist/esm/output.d.ts.map +0 -1
  214. package/dist/esm/providers.d.ts +0 -28
  215. package/dist/esm/providers.d.ts.map +0 -1
  216. package/dist/esm/providers.js +0 -35
  217. package/dist/esm/safe.d.ts +0 -6
  218. package/dist/esm/safe.d.ts.map +0 -1
  219. package/dist/esm/stream.d.ts +0 -5
  220. package/dist/esm/stream.d.ts.map +0 -1
  221. package/dist/esm/utils.d.ts +0 -8
  222. package/dist/esm/utils.d.ts.map +0 -1
  223. package/dist/types/BinderBadge.d.ts +0 -4
  224. package/dist/types/BinderBadge.d.ts.map +0 -1
  225. package/dist/types/ClientOnly.d.ts +0 -5
  226. package/dist/types/ClientOnly.d.ts.map +0 -1
  227. package/dist/types/ConnectionStatusTray.d.ts +0 -2
  228. package/dist/types/ConnectionStatusTray.d.ts.map +0 -1
  229. package/dist/types/ErrorTray.d.ts +0 -5
  230. package/dist/types/ErrorTray.d.ts.map +0 -1
  231. package/dist/types/components.d.ts +0 -9
  232. package/dist/types/components.d.ts.map +0 -1
  233. package/dist/types/controls/ArticleCellControls.d.ts +0 -10
  234. package/dist/types/controls/ArticleCellControls.d.ts.map +0 -1
  235. package/dist/types/controls/Buttons.d.ts +0 -47
  236. package/dist/types/controls/Buttons.d.ts.map +0 -1
  237. package/dist/types/controls/NotebookCellControls.d.ts +0 -10
  238. package/dist/types/controls/NotebookCellControls.d.ts.map +0 -1
  239. package/dist/types/controls/NotebookToolbar.d.ts +0 -4
  240. package/dist/types/controls/NotebookToolbar.d.ts.map +0 -1
  241. package/dist/types/controls/Spinner.d.ts +0 -4
  242. package/dist/types/controls/Spinner.d.ts.map +0 -1
  243. package/dist/types/controls/index.d.ts +0 -5
  244. package/dist/types/controls/index.d.ts.map +0 -1
  245. package/dist/types/convertImages.d.ts +0 -3
  246. package/dist/types/convertImages.d.ts.map +0 -1
  247. package/dist/types/decoration.d.ts +0 -11
  248. package/dist/types/decoration.d.ts.map +0 -1
  249. package/dist/types/embed.d.ts +0 -5
  250. package/dist/types/embed.d.ts.map +0 -1
  251. package/dist/types/error.d.ts +0 -5
  252. package/dist/types/error.d.ts.map +0 -1
  253. package/dist/types/execute/actions.d.ts.map +0 -1
  254. package/dist/types/execute/busy.d.ts +0 -96
  255. package/dist/types/execute/busy.d.ts.map +0 -1
  256. package/dist/types/execute/hooks.d.ts +0 -65
  257. package/dist/types/execute/hooks.d.ts.map +0 -1
  258. package/dist/types/execute/index.d.ts +0 -7
  259. package/dist/types/execute/index.d.ts.map +0 -1
  260. package/dist/types/execute/leaf.d.ts.map +0 -1
  261. package/dist/types/execute/provider.d.ts.map +0 -1
  262. package/dist/types/execute/reducer.d.ts +0 -4
  263. package/dist/types/execute/reducer.d.ts.map +0 -1
  264. package/dist/types/execute/selectors.d.ts +0 -27
  265. package/dist/types/execute/selectors.d.ts.map +0 -1
  266. package/dist/types/execute/types.d.ts +0 -50
  267. package/dist/types/execute/types.d.ts.map +0 -1
  268. package/dist/types/execute/utils.d.ts +0 -23
  269. package/dist/types/execute/utils.d.ts.map +0 -1
  270. package/dist/types/figure.d.ts +0 -5
  271. package/dist/types/figure.d.ts.map +0 -1
  272. package/dist/types/hooks.d.ts +0 -19
  273. package/dist/types/hooks.d.ts.map +0 -1
  274. package/dist/types/index.d.ts +0 -16
  275. package/dist/types/index.d.ts.map +0 -1
  276. package/dist/types/jupyter.d.ts +0 -7
  277. package/dist/types/jupyter.d.ts.map +0 -1
  278. package/dist/types/output.d.ts +0 -15
  279. package/dist/types/output.d.ts.map +0 -1
  280. package/dist/types/providers.d.ts +0 -28
  281. package/dist/types/providers.d.ts.map +0 -1
  282. package/dist/types/safe.d.ts +0 -6
  283. package/dist/types/safe.d.ts.map +0 -1
  284. package/dist/types/stream.d.ts +0 -5
  285. package/dist/types/stream.d.ts.map +0 -1
  286. package/dist/types/utils.d.ts +0 -8
  287. package/dist/types/utils.d.ts.map +0 -1
  288. /package/dist/{cjs/BinderBadge.d.ts → BinderBadge.d.ts} +0 -0
  289. /package/dist/{esm/BinderBadge.js → BinderBadge.js} +0 -0
  290. /package/dist/{cjs/ClientOnly.d.ts → ClientOnly.d.ts} +0 -0
  291. /package/dist/{esm/ClientOnly.js → ClientOnly.js} +0 -0
  292. /package/dist/{cjs/ErrorTray.d.ts → ErrorTray.d.ts} +0 -0
  293. /package/dist/{cjs/components.d.ts → components.d.ts} +0 -0
  294. /package/dist/{cjs/controls → controls}/ArticleCellControls.d.ts +0 -0
  295. /package/dist/{cjs/controls → controls}/NotebookCellControls.d.ts +0 -0
  296. /package/dist/{cjs/controls → controls}/NotebookToolbar.d.ts +0 -0
  297. /package/dist/{cjs/controls → controls}/Spinner.d.ts +0 -0
  298. /package/dist/{esm/controls → controls}/Spinner.js +0 -0
  299. /package/dist/{cjs/convertImages.d.ts → convertImages.d.ts} +0 -0
  300. /package/dist/{esm/convertImages.js → convertImages.js} +0 -0
  301. /package/dist/{cjs/decoration.d.ts → decoration.d.ts} +0 -0
  302. /package/dist/{cjs/embed.d.ts → embed.d.ts} +0 -0
  303. /package/dist/{cjs/error.d.ts → error.d.ts} +0 -0
  304. /package/dist/{esm/execute → execute}/actions.js +0 -0
  305. /package/dist/{cjs/execute → execute}/busy.d.ts +0 -0
  306. /package/dist/{esm/execute → execute}/busy.js +0 -0
  307. /package/dist/{esm/execute → execute}/selectors.js +0 -0
  308. /package/dist/{cjs/execute → execute}/types.d.ts +0 -0
  309. /package/dist/{esm/execute → execute}/types.js +0 -0
  310. /package/dist/{esm/execute → execute}/utils.js +0 -0
  311. /package/dist/{cjs/figure.d.ts → figure.d.ts} +0 -0
  312. /package/dist/{cjs/hooks.d.ts → hooks.d.ts} +0 -0
  313. /package/dist/{cjs/jupyter.d.ts → jupyter.d.ts} +0 -0
  314. /package/dist/{cjs/output.d.ts → output.d.ts} +0 -0
  315. /package/dist/{cjs/safe.d.ts → safe.d.ts} +0 -0
  316. /package/dist/{cjs/stream.d.ts → stream.d.ts} +0 -0
  317. /package/dist/{cjs/utils.d.ts → utils.d.ts} +0 -0
@@ -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,4 +0,0 @@
1
- import type { ExecuteScopeAction } from './actions';
2
- import type { ExecuteScopeState } from './types';
3
- export declare function reducer(state: ExecuteScopeState, action: ExecuteScopeAction): ExecuteScopeState;
4
- //# sourceMappingURL=reducer.d.ts.map
@@ -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,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -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"}