@difizen/libro-kernel 0.0.2-alpha.0

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 (188) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -0
  3. package/es/basemanager.d.ts +94 -0
  4. package/es/basemanager.d.ts.map +1 -0
  5. package/es/basemanager.js +110 -0
  6. package/es/contents/contents-drive.d.ts +189 -0
  7. package/es/contents/contents-drive.d.ts.map +1 -0
  8. package/es/contents/contents-drive.js +792 -0
  9. package/es/contents/contents-manager.d.ts +229 -0
  10. package/es/contents/contents-manager.d.ts.map +1 -0
  11. package/es/contents/contents-manager.js +551 -0
  12. package/es/contents/contents-module.d.ts +3 -0
  13. package/es/contents/contents-module.d.ts.map +1 -0
  14. package/es/contents/contents-module.js +4 -0
  15. package/es/contents/contents-protocol.d.ts +487 -0
  16. package/es/contents/contents-protocol.d.ts.map +1 -0
  17. package/es/contents/contents-protocol.js +1 -0
  18. package/es/contents/index.d.ts +6 -0
  19. package/es/contents/index.d.ts.map +1 -0
  20. package/es/contents/index.js +5 -0
  21. package/es/contents/validate.d.ts +10 -0
  22. package/es/contents/validate.d.ts.map +1 -0
  23. package/es/contents/validate.js +22 -0
  24. package/es/index.d.ts +10 -0
  25. package/es/index.d.ts.map +1 -0
  26. package/es/index.js +9 -0
  27. package/es/index.less +0 -0
  28. package/es/kernel/comm.d.ts +92 -0
  29. package/es/kernel/comm.d.ts.map +1 -0
  30. package/es/kernel/comm.js +216 -0
  31. package/es/kernel/future.d.ts +178 -0
  32. package/es/kernel/future.d.ts.map +1 -0
  33. package/es/kernel/future.js +587 -0
  34. package/es/kernel/index.d.ts +8 -0
  35. package/es/kernel/index.d.ts.map +1 -0
  36. package/es/kernel/index.js +8 -0
  37. package/es/kernel/kernel-connection.d.ts +550 -0
  38. package/es/kernel/kernel-connection.d.ts.map +1 -0
  39. package/es/kernel/kernel-connection.js +1957 -0
  40. package/es/kernel/kernel-module.d.ts +3 -0
  41. package/es/kernel/kernel-module.d.ts.map +1 -0
  42. package/es/kernel/kernel-module.js +32 -0
  43. package/es/kernel/libro-kernel-manager.d.ts +69 -0
  44. package/es/kernel/libro-kernel-manager.d.ts.map +1 -0
  45. package/es/kernel/libro-kernel-manager.js +349 -0
  46. package/es/kernel/libro-kernel-protocol.d.ts +675 -0
  47. package/es/kernel/libro-kernel-protocol.d.ts.map +1 -0
  48. package/es/kernel/libro-kernel-protocol.js +60 -0
  49. package/es/kernel/libro-kernel-utils.d.ts +95 -0
  50. package/es/kernel/libro-kernel-utils.d.ts.map +1 -0
  51. package/es/kernel/libro-kernel-utils.js +130 -0
  52. package/es/kernel/libro-kernel.d.ts +14 -0
  53. package/es/kernel/libro-kernel.d.ts.map +1 -0
  54. package/es/kernel/libro-kernel.js +54 -0
  55. package/es/kernel/messages.d.ts +845 -0
  56. package/es/kernel/messages.d.ts.map +1 -0
  57. package/es/kernel/messages.js +457 -0
  58. package/es/kernel/restapi.d.ts +78 -0
  59. package/es/kernel/restapi.d.ts.map +1 -0
  60. package/es/kernel/restapi.js +367 -0
  61. package/es/kernel/serialize.d.ts +10 -0
  62. package/es/kernel/serialize.d.ts.map +1 -0
  63. package/es/kernel/serialize.js +214 -0
  64. package/es/kernel/validate.d.ts +15 -0
  65. package/es/kernel/validate.d.ts.map +1 -0
  66. package/es/kernel/validate.js +125 -0
  67. package/es/kernelspec/index.d.ts +5 -0
  68. package/es/kernelspec/index.d.ts.map +1 -0
  69. package/es/kernelspec/index.js +4 -0
  70. package/es/kernelspec/kernelspec-module.d.ts +3 -0
  71. package/es/kernelspec/kernelspec-module.d.ts.map +1 -0
  72. package/es/kernelspec/kernelspec-module.js +4 -0
  73. package/es/kernelspec/kernelspec.d.ts +33 -0
  74. package/es/kernelspec/kernelspec.d.ts.map +1 -0
  75. package/es/kernelspec/kernelspec.js +1 -0
  76. package/es/kernelspec/manager.d.ts +81 -0
  77. package/es/kernelspec/manager.d.ts.map +1 -0
  78. package/es/kernelspec/manager.js +248 -0
  79. package/es/kernelspec/restapi.d.ts +71 -0
  80. package/es/kernelspec/restapi.d.ts.map +1 -0
  81. package/es/kernelspec/restapi.js +107 -0
  82. package/es/kernelspec/validate.d.ts +10 -0
  83. package/es/kernelspec/validate.d.ts.map +1 -0
  84. package/es/kernelspec/validate.js +69 -0
  85. package/es/libro-kernel-connection-manager.d.ts +19 -0
  86. package/es/libro-kernel-connection-manager.d.ts.map +1 -0
  87. package/es/libro-kernel-connection-manager.js +142 -0
  88. package/es/module.d.ts +3 -0
  89. package/es/module.d.ts.map +1 -0
  90. package/es/module.js +9 -0
  91. package/es/page-config.d.ts +36 -0
  92. package/es/page-config.d.ts.map +1 -0
  93. package/es/page-config.js +129 -0
  94. package/es/protocol.d.ts +13 -0
  95. package/es/protocol.d.ts.map +1 -0
  96. package/es/protocol.js +8 -0
  97. package/es/server/connection-error.d.ts +36 -0
  98. package/es/server/connection-error.d.ts.map +1 -0
  99. package/es/server/connection-error.js +109 -0
  100. package/es/server/index.d.ts +6 -0
  101. package/es/server/index.d.ts.map +1 -0
  102. package/es/server/index.js +5 -0
  103. package/es/server/server-connection-protocol.d.ts +49 -0
  104. package/es/server/server-connection-protocol.d.ts.map +1 -0
  105. package/es/server/server-connection-protocol.js +0 -0
  106. package/es/server/server-connection.d.ts +25 -0
  107. package/es/server/server-connection.d.ts.map +1 -0
  108. package/es/server/server-connection.js +159 -0
  109. package/es/server/server-manager.d.ts +22 -0
  110. package/es/server/server-manager.d.ts.map +1 -0
  111. package/es/server/server-manager.js +163 -0
  112. package/es/server/server-module.d.ts +3 -0
  113. package/es/server/server-module.d.ts.map +1 -0
  114. package/es/server/server-module.js +4 -0
  115. package/es/session/index.d.ts +5 -0
  116. package/es/session/index.d.ts.map +1 -0
  117. package/es/session/index.js +4 -0
  118. package/es/session/libro-session-manager.d.ts +71 -0
  119. package/es/session/libro-session-manager.d.ts.map +1 -0
  120. package/es/session/libro-session-manager.js +539 -0
  121. package/es/session/libro-session-protocol.d.ts +50 -0
  122. package/es/session/libro-session-protocol.d.ts.map +1 -0
  123. package/es/session/libro-session-protocol.js +21 -0
  124. package/es/session/libro-session.d.ts +12 -0
  125. package/es/session/libro-session.d.ts.map +1 -0
  126. package/es/session/libro-session.js +19 -0
  127. package/es/session/restapi.d.ts +28 -0
  128. package/es/session/restapi.d.ts.map +1 -0
  129. package/es/session/restapi.js +214 -0
  130. package/es/session/session-module.d.ts +3 -0
  131. package/es/session/session-module.d.ts.map +1 -0
  132. package/es/session/session-module.js +18 -0
  133. package/es/session/validate.d.ts +14 -0
  134. package/es/session/validate.d.ts.map +1 -0
  135. package/es/session/validate.js +37 -0
  136. package/es/utils.d.ts +4 -0
  137. package/es/utils.d.ts.map +1 -0
  138. package/es/utils.js +29 -0
  139. package/es/validate-property.d.ts +2 -0
  140. package/es/validate-property.d.ts.map +1 -0
  141. package/es/validate-property.js +35 -0
  142. package/package.json +62 -0
  143. package/src/basemanager.ts +133 -0
  144. package/src/contents/contents-drive.ts +495 -0
  145. package/src/contents/contents-manager.ts +465 -0
  146. package/src/contents/contents-module.ts +6 -0
  147. package/src/contents/contents-protocol.ts +604 -0
  148. package/src/contents/index.ts +5 -0
  149. package/src/contents/validate.ts +29 -0
  150. package/src/index.tsx +9 -0
  151. package/src/kernel/comm.ts +220 -0
  152. package/src/kernel/future.ts +474 -0
  153. package/src/kernel/index.ts +7 -0
  154. package/src/kernel/kernel-connection.ts +1770 -0
  155. package/src/kernel/kernel-module.ts +50 -0
  156. package/src/kernel/libro-kernel-manager.ts +199 -0
  157. package/src/kernel/libro-kernel-protocol.ts +858 -0
  158. package/src/kernel/libro-kernel-utils.ts +152 -0
  159. package/src/kernel/libro-kernel.ts +39 -0
  160. package/src/kernel/messages.ts +1104 -0
  161. package/src/kernel/restapi.ts +183 -0
  162. package/src/kernel/serialize.ts +262 -0
  163. package/src/kernel/validate.ts +101 -0
  164. package/src/kernelspec/index.ts +5 -0
  165. package/src/kernelspec/kernelspec-module.ts +9 -0
  166. package/src/kernelspec/kernelspec.ts +37 -0
  167. package/src/kernelspec/manager.ts +173 -0
  168. package/src/kernelspec/restapi.ts +104 -0
  169. package/src/kernelspec/validate.ts +80 -0
  170. package/src/libro-kernel-connection-manager.ts +73 -0
  171. package/src/module.ts +19 -0
  172. package/src/page-config.ts +106 -0
  173. package/src/protocol.ts +24 -0
  174. package/src/server/connection-error.ts +60 -0
  175. package/src/server/index.ts +5 -0
  176. package/src/server/server-connection-protocol.ts +57 -0
  177. package/src/server/server-connection.ts +144 -0
  178. package/src/server/server-manager.ts +76 -0
  179. package/src/server/server-module.ts +9 -0
  180. package/src/session/index.ts +4 -0
  181. package/src/session/libro-session-manager.ts +377 -0
  182. package/src/session/libro-session-protocol.ts +61 -0
  183. package/src/session/libro-session.ts +33 -0
  184. package/src/session/restapi.ts +126 -0
  185. package/src/session/session-module.ts +26 -0
  186. package/src/session/validate.ts +39 -0
  187. package/src/utils.ts +28 -0
  188. package/src/validate-property.ts +38 -0
@@ -0,0 +1,550 @@
1
+ import type { JSONObject } from '@difizen/libro-common';
2
+ import type { Event as ManaEvent } from '@difizen/mana-app';
3
+ import { Deferred, Emitter } from '@difizen/mana-app';
4
+ import type { ISpecModel } from '../kernelspec/index.js';
5
+ import { KernelSpecRestAPI } from '../kernelspec/index.js';
6
+ import { ServerConnection } from '../server/index.js';
7
+ import type { ISettings } from '../server/index.js';
8
+ import type { KernelFutureHandler } from './future.js';
9
+ import type { ConnectionStatus, IAnyMessageArgs, IComm, IControlFuture, IFuture, IKernelConnection, IKernelModel, IShellFuture } from './libro-kernel-protocol.js';
10
+ import { KernelConnectionOptions, LibroKernelConnectionFactory } from './libro-kernel-protocol.js';
11
+ import * as KernelMessage from './messages.js';
12
+ import { KernelRestAPI } from './restapi.js';
13
+ /**
14
+ * Implementation of the Kernel object.
15
+ *
16
+ * #### Notes
17
+ * Messages from the server are handled in the order they were received and
18
+ * asynchronously. Any message handler can return a promise, and message
19
+ * handling will pause until the promise is fulfilled.
20
+ */
21
+ export declare class KernelConnection implements IKernelConnection {
22
+ kernelSpecRestAPI: KernelSpecRestAPI;
23
+ kernelRestAPI: KernelRestAPI;
24
+ libroKernelConnectionFactory: LibroKernelConnectionFactory;
25
+ /**
26
+ * Construct a kernel object.
27
+ */
28
+ constructor(options: KernelConnectionOptions, serverConnection: ServerConnection);
29
+ send(msg: string | ArrayBuffer): void;
30
+ get onDisposed(): ManaEvent<void>;
31
+ /**
32
+ * The server settings for the kernel.
33
+ */
34
+ readonly serverSettings: ISettings;
35
+ /**
36
+ * Handle comm messages
37
+ *
38
+ * #### Notes
39
+ * The comm message protocol currently has implicit assumptions that only
40
+ * one kernel connection is handling comm messages. This option allows a
41
+ * kernel connection to opt out of handling comms.
42
+ *
43
+ * See https://github.com/jupyter/jupyter_client/issues/263
44
+ */
45
+ readonly handleComms: boolean;
46
+ /**
47
+ * A signal emitted when the kernel status changes.
48
+ */
49
+ get statusChanged(): ManaEvent<KernelMessage.Status>;
50
+ /**
51
+ * A signal emitted when the kernel status changes.
52
+ */
53
+ get connectionStatusChanged(): ManaEvent<ConnectionStatus>;
54
+ /**
55
+ * A signal emitted for iopub kernel messages.
56
+ *
57
+ * #### Notes
58
+ * This signal is emitted after the iopub message is handled asynchronously.
59
+ */
60
+ get iopubMessage(): ManaEvent<KernelMessage.IIOPubMessage>;
61
+ /**
62
+ * A signal emitted for unhandled kernel message.
63
+ *
64
+ * #### Notes
65
+ * This signal is emitted for a message that was not handled. It is emitted
66
+ * during the asynchronous message handling code.
67
+ */
68
+ get unhandledMessage(): ManaEvent<KernelMessage.IMessage>;
69
+ /**
70
+ * The kernel model
71
+ */
72
+ get model(): IKernelModel;
73
+ /**
74
+ * A signal emitted for any kernel message.
75
+ *
76
+ * #### Notes
77
+ * This signal is emitted when a message is received, before it is handled
78
+ * asynchronously.
79
+ *
80
+ * This message is emitted when a message is queued for sending (either in
81
+ * the websocket buffer, or our own pending message buffer). The message may
82
+ * actually be sent across the wire at a later time.
83
+ *
84
+ * The message emitted in this signal should not be modified in any way.
85
+ */
86
+ get anyMessage(): ManaEvent<IAnyMessageArgs>;
87
+ /**
88
+ * A signal emitted when a kernel has pending inputs from the user.
89
+ */
90
+ get pendingInput(): ManaEvent<boolean>;
91
+ /**
92
+ * The id of the server-side kernel.
93
+ */
94
+ get id(): string;
95
+ /**
96
+ * The name of the server-side kernel.
97
+ */
98
+ get name(): string;
99
+ /**
100
+ * The client username.
101
+ */
102
+ get username(): string;
103
+ /**
104
+ * The client unique id.
105
+ */
106
+ get clientId(): string;
107
+ /**
108
+ * The current status of the kernel.
109
+ */
110
+ get status(): KernelMessage.Status;
111
+ /**
112
+ * The current connection status of the kernel connection.
113
+ */
114
+ get connectionStatus(): ConnectionStatus;
115
+ /**
116
+ * Test whether the kernel has been disposed.
117
+ */
118
+ get isDisposed(): boolean;
119
+ /**
120
+ * The cached kernel info.
121
+ *
122
+ * @returns A promise that resolves to the kernel info.
123
+ */
124
+ get info(): Promise<KernelMessage.IInfoReply>;
125
+ /**
126
+ * The kernel spec.
127
+ *
128
+ * @returns A promise that resolves to the kernel spec.
129
+ */
130
+ get spec(): Promise<ISpecModel | undefined>;
131
+ /**
132
+ * Clone the current kernel with a new clientId.
133
+ */
134
+ clone(options?: Pick<KernelConnectionOptions, 'clientId' | 'username' | 'handleComms'>): IKernelConnection;
135
+ /**
136
+ * Dispose of the resources held by the kernel.
137
+ */
138
+ dispose(): void;
139
+ /**
140
+ * Send a shell message to the kernel.
141
+ *
142
+ * #### Notes
143
+ * Send a message to the kernel's shell channel, yielding a future object
144
+ * for accepting replies.
145
+ *
146
+ * If `expectReply` is given and `true`, the future is disposed when both a
147
+ * shell reply and an idle status message are received. If `expectReply`
148
+ * is not given or is `false`, the future is resolved when an idle status
149
+ * message is received.
150
+ * If `disposeOnDone` is not given or is `true`, the Future is disposed at this point.
151
+ * If `disposeOnDone` is given and `false`, it is up to the caller to dispose of the Future.
152
+ *
153
+ * All replies are validated as valid kernel messages.
154
+ *
155
+ * If the kernel status is `dead`, this will throw an error.
156
+ */
157
+ sendShellMessage<T extends KernelMessage.ShellMessageType>(msg: KernelMessage.IShellMessage<T>, expectReply?: boolean, disposeOnDone?: boolean): IShellFuture<KernelMessage.IShellMessage<T>>;
158
+ /**
159
+ * Send a control message to the kernel.
160
+ *
161
+ * #### Notes
162
+ * Send a message to the kernel's control channel, yielding a future object
163
+ * for accepting replies.
164
+ *
165
+ * If `expectReply` is given and `true`, the future is disposed when both a
166
+ * control reply and an idle status message are received. If `expectReply`
167
+ * is not given or is `false`, the future is resolved when an idle status
168
+ * message is received.
169
+ * If `disposeOnDone` is not given or is `true`, the Future is disposed at this point.
170
+ * If `disposeOnDone` is given and `false`, it is up to the caller to dispose of the Future.
171
+ *
172
+ * All replies are validated as valid kernel messages.
173
+ *
174
+ * If the kernel status is `dead`, this will throw an error.
175
+ */
176
+ sendControlMessage<T extends KernelMessage.ControlMessageType>(msg: KernelMessage.IControlMessage<T>, expectReply?: boolean, disposeOnDone?: boolean): IControlFuture<KernelMessage.IControlMessage<T>>;
177
+ protected _sendKernelShellControl<REQUEST extends KernelMessage.IShellControlMessage, REPLY extends KernelMessage.IShellControlMessage, KFH extends new (...params: any[]) => KernelFutureHandler<REQUEST, REPLY>, T extends KernelMessage.IMessage>(ctor: KFH, msg: T, expectReply?: boolean, disposeOnDone?: boolean): IFuture<KernelMessage.IShellControlMessage, KernelMessage.IShellControlMessage>;
178
+ /**
179
+ * Send a message on the websocket.
180
+ *
181
+ * If queue is true, queue the message for later sending if we cannot send
182
+ * now. Otherwise throw an error.
183
+ *
184
+ * #### Notes
185
+ * As an exception to the queueing, if we are sending a kernel_info_request
186
+ * message while we think the kernel is restarting, we send the message
187
+ * immediately without queueing. This is so that we can trigger a message
188
+ * back, which will then clear the kernel restarting state.
189
+ */
190
+ protected _sendMessage(msg: KernelMessage.IMessage, queue?: boolean): void;
191
+ /**
192
+ * Interrupt a kernel.
193
+ *
194
+ * #### Notes
195
+ * Uses the [Jupyter Notebook API](http://petstore.swagger.io/?url=https://raw.githubusercontent.com/jupyter/notebook/master/notebook/services/api/api.yaml#!/kernels).
196
+ *
197
+ * The promise is fulfilled on a valid response and rejected otherwise.
198
+ *
199
+ * It is assumed that the API call does not mutate the kernel id or name.
200
+ *
201
+ * The promise will be rejected if the kernel status is `Dead` or if the
202
+ * request fails or the response is invalid.
203
+ */
204
+ interrupt(): Promise<void>;
205
+ /**
206
+ * Request a kernel restart.
207
+ *
208
+ * #### Notes
209
+ * Uses the [Jupyter Notebook API](http://petstore.swagger.io/?url=https://raw.githubusercontent.com/jupyter/notebook/master/notebook/services/api/api.yaml#!/kernels)
210
+ * and validates the response model.
211
+ *
212
+ * Any existing Future or Comm objects are cleared once the kernel has
213
+ * actually be restarted.
214
+ *
215
+ * The promise is fulfilled on a valid server response (after the kernel restarts)
216
+ * and rejected otherwise.
217
+ *
218
+ * It is assumed that the API call does not mutate the kernel id or name.
219
+ *
220
+ * The promise will be rejected if the request fails or the response is
221
+ * invalid.
222
+ */
223
+ restart(): Promise<void>;
224
+ /**
225
+ * Reconnect to a kernel.
226
+ *
227
+ * #### Notes
228
+ * This may try multiple times to reconnect to a kernel, and will sever any
229
+ * existing connection.
230
+ */
231
+ reconnect(): Promise<void>;
232
+ /**
233
+ * Shutdown a kernel.
234
+ *
235
+ * #### Notes
236
+ * Uses the [Jupyter Notebook API](http://petstore.swagger.io/?url=https://raw.githubusercontent.com/jupyter/notebook/master/notebook/services/api/api.yaml#!/kernels).
237
+ *
238
+ * The promise is fulfilled on a valid response and rejected otherwise.
239
+ *
240
+ * On a valid response, disposes this kernel connection.
241
+ *
242
+ * If the kernel is already `dead`, disposes this kernel connection without
243
+ * a server request.
244
+ */
245
+ shutdown(): Promise<void>;
246
+ /**
247
+ * Handles a kernel shutdown.
248
+ *
249
+ * #### Notes
250
+ * This method should be called if we know from outside information that a
251
+ * kernel is dead (for example, we cannot find the kernel model on the
252
+ * server).
253
+ */
254
+ handleShutdown(): void;
255
+ /**
256
+ * Send a `kernel_info_request` message.
257
+ *
258
+ * #### Notes
259
+ * See [Messaging in Jupyter](https://jupyter-client.readthedocs.io/en/latest/messaging.html#kernel-info).
260
+ *
261
+ * Fulfills with the `kernel_info_response` content when the shell reply is
262
+ * received and validated.
263
+ */
264
+ requestKernelInfo(): Promise<KernelMessage.IInfoReplyMsg | undefined>;
265
+ /**
266
+ * Send a `complete_request` message.
267
+ *
268
+ * #### Notes
269
+ * See [Messaging in Jupyter](https://jupyter-client.readthedocs.io/en/latest/messaging.html#completion).
270
+ *
271
+ * Fulfills with the `complete_reply` content when the shell reply is
272
+ * received and validated.
273
+ */
274
+ requestComplete(content: KernelMessage.ICompleteRequestMsg['content']): Promise<KernelMessage.ICompleteReplyMsg>;
275
+ /**
276
+ * Send an `inspect_request` message.
277
+ *
278
+ * #### Notes
279
+ * See [Messaging in Jupyter](https://jupyter-client.readthedocs.io/en/latest/messaging.html#introspection).
280
+ *
281
+ * Fulfills with the `inspect_reply` content when the shell reply is
282
+ * received and validated.
283
+ */
284
+ requestInspect(content: KernelMessage.IInspectRequestMsg['content']): Promise<KernelMessage.IInspectReplyMsg>;
285
+ /**
286
+ * Send a `history_request` message.
287
+ *
288
+ * #### Notes
289
+ * See [Messaging in Jupyter](https://jupyter-client.readthedocs.io/en/latest/messaging.html#history).
290
+ *
291
+ * Fulfills with the `history_reply` content when the shell reply is
292
+ * received and validated.
293
+ */
294
+ requestHistory(content: KernelMessage.IHistoryRequestMsg['content']): Promise<KernelMessage.IHistoryReplyMsg>;
295
+ /**
296
+ * Send an `execute_request` message.
297
+ *
298
+ * #### Notes
299
+ * See [Messaging in Jupyter](https://jupyter-client.readthedocs.io/en/latest/messaging.html#execute).
300
+ *
301
+ * Future `onReply` is called with the `execute_reply` content when the
302
+ * shell reply is received and validated. The future will resolve when
303
+ * this message is received and the `idle` iopub status is received.
304
+ * The future will also be disposed at this point unless `disposeOnDone`
305
+ * is specified and `false`, in which case it is up to the caller to dispose
306
+ * of the future.
307
+ *
308
+ * **See also:** [[IExecuteReply]]
309
+ */
310
+ requestExecute(content: KernelMessage.IExecuteRequestMsg['content'], disposeOnDone?: boolean, metadata?: JSONObject): IShellFuture<KernelMessage.IExecuteRequestMsg, KernelMessage.IExecuteReplyMsg>;
311
+ /**
312
+ * Send an experimental `debug_request` message.
313
+ *
314
+ * @hidden
315
+ *
316
+ * #### Notes
317
+ * Debug messages are experimental messages that are not in the official
318
+ * kernel message specification. As such, this function is *NOT* considered
319
+ * part of the public API, and may change without notice.
320
+ */
321
+ requestDebug(content: KernelMessage.IDebugRequestMsg['content'], disposeOnDone?: boolean): IControlFuture<KernelMessage.IDebugRequestMsg, KernelMessage.IDebugReplyMsg>;
322
+ /**
323
+ * Send an `is_complete_request` message.
324
+ *
325
+ * #### Notes
326
+ * See [Messaging in Jupyter](https://jupyter-client.readthedocs.io/en/latest/messaging.html#code-completeness).
327
+ *
328
+ * Fulfills with the `is_complete_response` content when the shell reply is
329
+ * received and validated.
330
+ */
331
+ requestIsComplete(content: KernelMessage.IIsCompleteRequestMsg['content']): Promise<KernelMessage.IIsCompleteReplyMsg>;
332
+ /**
333
+ * Send a `comm_info_request` message.
334
+ *
335
+ * #### Notes
336
+ * Fulfills with the `comm_info_reply` content when the shell reply is
337
+ * received and validated.
338
+ */
339
+ requestCommInfo(content: KernelMessage.ICommInfoRequestMsg['content']): Promise<KernelMessage.ICommInfoReplyMsg>;
340
+ /**
341
+ * Send an `input_reply` message.
342
+ *
343
+ * #### Notes
344
+ * See [Messaging in Jupyter](https://jupyter-client.readthedocs.io/en/latest/messaging.html#messages-on-the-stdin-router-dealer-sockets).
345
+ */
346
+ sendInputReply(content: KernelMessage.IInputReplyMsg['content'], parent_header: KernelMessage.IInputReplyMsg['parent_header']): void;
347
+ /**
348
+ * Create a new comm.
349
+ *
350
+ * #### Notes
351
+ * If a client-side comm already exists with the given commId, an error is thrown.
352
+ * If the kernel does not handle comms, an error is thrown.
353
+ */
354
+ createComm(targetName: string, commId?: string): IComm;
355
+ /**
356
+ * Check if a comm exists.
357
+ */
358
+ hasComm(commId: string): boolean;
359
+ /**
360
+ * Register a comm target handler.
361
+ *
362
+ * @param targetName - The name of the comm target.
363
+ *
364
+ * @param callback - The callback invoked for a comm open message.
365
+ *
366
+ * @returns A disposable used to unregister the comm target.
367
+ *
368
+ * #### Notes
369
+ * Only one comm target can be registered to a target name at a time, an
370
+ * existing callback for the same target name will be overridden. A registered
371
+ * comm target handler will take precedence over a comm which specifies a
372
+ * `target_module`.
373
+ *
374
+ * If the callback returns a promise, kernel message processing will pause
375
+ * until the returned promise is fulfilled.
376
+ */
377
+ registerCommTarget(targetName: string, callback: (comm: IComm, msg: KernelMessage.ICommOpenMsg) => void | PromiseLike<void>): void;
378
+ /**
379
+ * Remove a comm target handler.
380
+ *
381
+ * @param targetName - The name of the comm target to remove.
382
+ *
383
+ * @param callback - The callback to remove.
384
+ *
385
+ * #### Notes
386
+ * The comm target is only removed if the callback argument matches.
387
+ */
388
+ removeCommTarget(targetName: string, callback: (comm: IComm, msg: KernelMessage.ICommOpenMsg) => void | PromiseLike<void>): void;
389
+ /**
390
+ * Register an IOPub message hook.
391
+ *
392
+ * @param msg_id - The parent_header message id the hook will intercept.
393
+ *
394
+ * @param hook - The callback invoked for the message.
395
+ *
396
+ * #### Notes
397
+ * The IOPub hook system allows you to preempt the handlers for IOPub
398
+ * messages that are responses to a given message id.
399
+ *
400
+ * The most recently registered hook is run first. A hook can return a
401
+ * boolean or a promise to a boolean, in which case all kernel message
402
+ * processing pauses until the promise is fulfilled. If a hook return value
403
+ * resolves to false, any later hooks will not run and the function will
404
+ * return a promise resolving to false. If a hook throws an error, the error
405
+ * is logged to the console and the next hook is run. If a hook is
406
+ * registered during the hook processing, it will not run until the next
407
+ * message. If a hook is removed during the hook processing, it will be
408
+ * deactivated immediately.
409
+ *
410
+ * See also [[IFuture.registerMessageHook]].
411
+ */
412
+ registerMessageHook(msgId: string, hook: (msg: KernelMessage.IIOPubMessage) => boolean | PromiseLike<boolean>): void;
413
+ /**
414
+ * Remove an IOPub message hook.
415
+ *
416
+ * @param msg_id - The parent_header message id the hook intercepted.
417
+ *
418
+ * @param hook - The callback invoked for the message.
419
+ *
420
+ */
421
+ removeMessageHook(msgId: string, hook: (msg: KernelMessage.IIOPubMessage) => boolean | PromiseLike<boolean>): void;
422
+ /**
423
+ * Remove the input guard, if any.
424
+ */
425
+ removeInputGuard(): void;
426
+ /**
427
+ * Handle a message with a display id.
428
+ *
429
+ * @returns Whether the message was handled.
430
+ */
431
+ protected _handleDisplayId(displayId: string, msg: KernelMessage.IMessage): Promise<boolean>;
432
+ /**
433
+ * Forcefully clear the socket state.
434
+ *
435
+ * #### Notes
436
+ * This will clear all socket state without calling any handlers and will
437
+ * not update the connection status. If you call this method, you are
438
+ * responsible for updating the connection status as needed and recreating
439
+ * the socket if you plan to reconnect.
440
+ */
441
+ protected _clearSocket: () => void;
442
+ /**
443
+ * Handle status iopub messages from the kernel.
444
+ */
445
+ protected _updateStatus(status: KernelMessage.Status): void;
446
+ /**
447
+ * Send pending messages to the kernel.
448
+ */
449
+ protected _sendPending(): void;
450
+ /**
451
+ * Clear the internal state.
452
+ */
453
+ protected _clearKernelState(): void;
454
+ /**
455
+ * Check to make sure it is okay to proceed to handle a message.
456
+ *
457
+ * #### Notes
458
+ * Because we handle messages asynchronously, before a message is handled the
459
+ * kernel might be disposed or restarted (and have a different session id).
460
+ * This function throws an error in each of these cases. This is meant to be
461
+ * called at the start of an asynchronous message handler to cancel message
462
+ * processing if the message no longer is valid.
463
+ */
464
+ protected _assertCurrentMessage(msg: KernelMessage.IMessage): void;
465
+ /**
466
+ * Handle a `comm_open` kernel message.
467
+ */
468
+ protected _handleCommOpen(msg: KernelMessage.ICommOpenMsg): Promise<void>;
469
+ /**
470
+ * Handle 'comm_close' kernel message.
471
+ */
472
+ protected _handleCommClose(msg: KernelMessage.ICommCloseMsg): Promise<void>;
473
+ /**
474
+ * Handle a 'comm_msg' kernel message.
475
+ */
476
+ protected _handleCommMsg(msg: KernelMessage.ICommMsgMsg): Promise<void>;
477
+ /**
478
+ * Unregister a comm instance.
479
+ */
480
+ protected _unregisterComm(commId: string): void;
481
+ /**
482
+ * Create the kernel websocket connection and add socket status handlers.
483
+ */
484
+ protected _createSocket: (useProtocols?: boolean) => void;
485
+ /**
486
+ * Handle connection status changes.
487
+ */
488
+ protected _updateConnectionStatus(connectionStatus: ConnectionStatus): void;
489
+ protected _handleMessage(msg: KernelMessage.IMessage): Promise<void>;
490
+ /**
491
+ * Attempt a connection if we have not exhausted connection attempts.
492
+ */
493
+ protected _reconnect(): void;
494
+ /**
495
+ * Utility function to throw an error if this instance is disposed.
496
+ */
497
+ protected _errorIfDisposed(): void;
498
+ /**
499
+ * Handle a websocket open event.
500
+ */
501
+ protected _onWSOpen: () => void;
502
+ /**
503
+ * Handle a websocket message, validating and routing appropriately.
504
+ */
505
+ protected _onWSMessage: (evt: MessageEvent) => void;
506
+ /**
507
+ * Handle a websocket close event.
508
+ */
509
+ protected _onWSClose: (_evt: Event) => void;
510
+ get hasPendingInput(): boolean;
511
+ set hasPendingInput(value: boolean);
512
+ protected _id: string;
513
+ protected _name: string;
514
+ protected _model: IKernelModel | undefined;
515
+ protected _status: KernelMessage.Status;
516
+ protected _connectionStatus: ConnectionStatus;
517
+ protected _kernelSession: string;
518
+ protected _clientId: string;
519
+ protected _isDisposed: boolean;
520
+ /**
521
+ * Websocket to communicate with kernel.
522
+ */
523
+ protected _ws: WebSocket | null;
524
+ protected _username: string;
525
+ protected _reconnectLimit: number;
526
+ protected _reconnectAttempt: number;
527
+ protected _reconnectTimeout: any;
528
+ protected _supportedProtocols: string[];
529
+ protected _selectedProtocol: string;
530
+ protected _futures: Map<string, KernelFutureHandler<KernelMessage.IShellControlMessage, KernelMessage.IShellControlMessage>>;
531
+ protected _comms: Map<string, IComm>;
532
+ protected _targetRegistry: Record<string, (comm: IComm, msg: KernelMessage.ICommOpenMsg) => void>;
533
+ protected _info: Deferred<KernelMessage.IInfoReply>;
534
+ protected _pendingMessages: KernelMessage.IMessage[];
535
+ protected _specPromise: Promise<ISpecModel | undefined>;
536
+ protected statusChangedEmitter: Emitter<KernelMessage.Status>;
537
+ protected connectionStatusChangedEmitter: Emitter<ConnectionStatus>;
538
+ protected onDisposedEmitter: Emitter<void>;
539
+ protected iopubMessageEmitter: Emitter<KernelMessage.IIOPubMessage<KernelMessage.IOPubMessageType>>;
540
+ protected anyMessageEmitter: Emitter<IAnyMessageArgs>;
541
+ protected pendingInputEmitter: Emitter<boolean>;
542
+ protected unhandledMessageEmitter: Emitter<KernelMessage.IMessage<KernelMessage.MessageType>>;
543
+ protected _displayIdToParentIds: Map<string, string[]>;
544
+ protected _msgIdToDisplayIds: Map<string, string[]>;
545
+ protected _msgChain: Promise<void>;
546
+ protected _hasPendingInput: boolean;
547
+ protected _reason: string;
548
+ protected _noOp: () => void;
549
+ }
550
+ //# sourceMappingURL=kernel-connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel-connection.d.ts","sourceRoot":"","sources":["../../src/kernel/kernel-connection.ts"],"names":[],"mappings":"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"}