@difizen/libro-kernel 0.0.0-snapshot-20241017072317

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 +802 -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/kernel/comm.d.ts +92 -0
  28. package/es/kernel/comm.d.ts.map +1 -0
  29. package/es/kernel/comm.js +216 -0
  30. package/es/kernel/future.d.ts +178 -0
  31. package/es/kernel/future.d.ts.map +1 -0
  32. package/es/kernel/future.js +593 -0
  33. package/es/kernel/index.d.ts +8 -0
  34. package/es/kernel/index.d.ts.map +1 -0
  35. package/es/kernel/index.js +8 -0
  36. package/es/kernel/kernel-connection.d.ts +553 -0
  37. package/es/kernel/kernel-connection.d.ts.map +1 -0
  38. package/es/kernel/kernel-connection.js +1974 -0
  39. package/es/kernel/kernel-module.d.ts +3 -0
  40. package/es/kernel/kernel-module.d.ts.map +1 -0
  41. package/es/kernel/kernel-module.js +32 -0
  42. package/es/kernel/libro-kernel-manager.d.ts +89 -0
  43. package/es/kernel/libro-kernel-manager.d.ts.map +1 -0
  44. package/es/kernel/libro-kernel-manager.js +469 -0
  45. package/es/kernel/libro-kernel-protocol.d.ts +678 -0
  46. package/es/kernel/libro-kernel-protocol.d.ts.map +1 -0
  47. package/es/kernel/libro-kernel-protocol.js +60 -0
  48. package/es/kernel/libro-kernel-utils.d.ts +95 -0
  49. package/es/kernel/libro-kernel-utils.d.ts.map +1 -0
  50. package/es/kernel/libro-kernel-utils.js +130 -0
  51. package/es/kernel/libro-kernel.d.ts +14 -0
  52. package/es/kernel/libro-kernel.d.ts.map +1 -0
  53. package/es/kernel/libro-kernel.js +54 -0
  54. package/es/kernel/messages.d.ts +845 -0
  55. package/es/kernel/messages.d.ts.map +1 -0
  56. package/es/kernel/messages.js +513 -0
  57. package/es/kernel/restapi.d.ts +78 -0
  58. package/es/kernel/restapi.d.ts.map +1 -0
  59. package/es/kernel/restapi.js +372 -0
  60. package/es/kernel/serialize.d.ts +10 -0
  61. package/es/kernel/serialize.d.ts.map +1 -0
  62. package/es/kernel/serialize.js +213 -0
  63. package/es/kernel/validate.d.ts +15 -0
  64. package/es/kernel/validate.d.ts.map +1 -0
  65. package/es/kernel/validate.js +125 -0
  66. package/es/kernelspec/index.d.ts +5 -0
  67. package/es/kernelspec/index.d.ts.map +1 -0
  68. package/es/kernelspec/index.js +4 -0
  69. package/es/kernelspec/kernelspec-module.d.ts +3 -0
  70. package/es/kernelspec/kernelspec-module.d.ts.map +1 -0
  71. package/es/kernelspec/kernelspec-module.js +4 -0
  72. package/es/kernelspec/kernelspec.d.ts +33 -0
  73. package/es/kernelspec/kernelspec.d.ts.map +1 -0
  74. package/es/kernelspec/kernelspec.js +1 -0
  75. package/es/kernelspec/manager.d.ts +81 -0
  76. package/es/kernelspec/manager.d.ts.map +1 -0
  77. package/es/kernelspec/manager.js +245 -0
  78. package/es/kernelspec/restapi.d.ts +71 -0
  79. package/es/kernelspec/restapi.d.ts.map +1 -0
  80. package/es/kernelspec/restapi.js +107 -0
  81. package/es/kernelspec/validate.d.ts +10 -0
  82. package/es/kernelspec/validate.d.ts.map +1 -0
  83. package/es/kernelspec/validate.js +70 -0
  84. package/es/libro-kernel-connection-manager.d.ts +20 -0
  85. package/es/libro-kernel-connection-manager.d.ts.map +1 -0
  86. package/es/libro-kernel-connection-manager.js +146 -0
  87. package/es/module.d.ts +3 -0
  88. package/es/module.d.ts.map +1 -0
  89. package/es/module.js +9 -0
  90. package/es/page-config.d.ts +36 -0
  91. package/es/page-config.d.ts.map +1 -0
  92. package/es/page-config.js +129 -0
  93. package/es/protocol.d.ts +13 -0
  94. package/es/protocol.d.ts.map +1 -0
  95. package/es/protocol.js +8 -0
  96. package/es/server/connection-error.d.ts +36 -0
  97. package/es/server/connection-error.d.ts.map +1 -0
  98. package/es/server/connection-error.js +109 -0
  99. package/es/server/index.d.ts +6 -0
  100. package/es/server/index.d.ts.map +1 -0
  101. package/es/server/index.js +5 -0
  102. package/es/server/server-connection-protocol.d.ts +49 -0
  103. package/es/server/server-connection-protocol.d.ts.map +1 -0
  104. package/es/server/server-connection-protocol.js +0 -0
  105. package/es/server/server-connection.d.ts +25 -0
  106. package/es/server/server-connection.d.ts.map +1 -0
  107. package/es/server/server-connection.js +159 -0
  108. package/es/server/server-manager.d.ts +23 -0
  109. package/es/server/server-manager.d.ts.map +1 -0
  110. package/es/server/server-manager.js +178 -0
  111. package/es/server/server-module.d.ts +3 -0
  112. package/es/server/server-module.d.ts.map +1 -0
  113. package/es/server/server-module.js +4 -0
  114. package/es/session/index.d.ts +5 -0
  115. package/es/session/index.d.ts.map +1 -0
  116. package/es/session/index.js +4 -0
  117. package/es/session/libro-session-manager.d.ts +73 -0
  118. package/es/session/libro-session-manager.d.ts.map +1 -0
  119. package/es/session/libro-session-manager.js +568 -0
  120. package/es/session/libro-session-protocol.d.ts +50 -0
  121. package/es/session/libro-session-protocol.d.ts.map +1 -0
  122. package/es/session/libro-session-protocol.js +21 -0
  123. package/es/session/libro-session.d.ts +12 -0
  124. package/es/session/libro-session.d.ts.map +1 -0
  125. package/es/session/libro-session.js +19 -0
  126. package/es/session/restapi.d.ts +28 -0
  127. package/es/session/restapi.d.ts.map +1 -0
  128. package/es/session/restapi.js +215 -0
  129. package/es/session/session-module.d.ts +3 -0
  130. package/es/session/session-module.d.ts.map +1 -0
  131. package/es/session/session-module.js +18 -0
  132. package/es/session/validate.d.ts +14 -0
  133. package/es/session/validate.d.ts.map +1 -0
  134. package/es/session/validate.js +38 -0
  135. package/es/utils.d.ts +4 -0
  136. package/es/utils.d.ts.map +1 -0
  137. package/es/utils.js +29 -0
  138. package/es/validate-property.d.ts +2 -0
  139. package/es/validate-property.d.ts.map +1 -0
  140. package/es/validate-property.js +35 -0
  141. package/package.json +62 -0
  142. package/src/basemanager.ts +133 -0
  143. package/src/contents/contents-drive.ts +496 -0
  144. package/src/contents/contents-manager.ts +465 -0
  145. package/src/contents/contents-module.ts +6 -0
  146. package/src/contents/contents-protocol.ts +604 -0
  147. package/src/contents/index.ts +5 -0
  148. package/src/contents/validate.ts +29 -0
  149. package/src/index.spec.ts +16 -0
  150. package/src/index.tsx +9 -0
  151. package/src/kernel/comm.ts +220 -0
  152. package/src/kernel/future.ts +477 -0
  153. package/src/kernel/index.ts +7 -0
  154. package/src/kernel/kernel-connection.ts +1780 -0
  155. package/src/kernel/kernel-module.ts +50 -0
  156. package/src/kernel/libro-kernel-manager.ts +274 -0
  157. package/src/kernel/libro-kernel-protocol.ts +861 -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 +162 -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 +76 -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 +90 -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 +406 -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,3 @@
1
+ import { ManaModule } from '@difizen/mana-app';
2
+ export declare const LibroKernelModule: ManaModule;
3
+ //# sourceMappingURL=kernel-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel-module.d.ts","sourceRoot":"","sources":["../../src/kernel/kernel-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAgB/C,eAAO,MAAM,iBAAiB,YAiCA,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { ManaModule } from '@difizen/mana-app';
2
+ import { LibroServerModule } from "../server/index.js";
3
+ import { KernelConnection } from "./kernel-connection.js";
4
+ import { LibroKernelManager } from "./libro-kernel-manager.js";
5
+ import { KernelConnectionOptions, LibroKernelConnectionFactory, LibroKernelFactory, KernelMetaOption } from "./libro-kernel-protocol.js";
6
+ import { LibroKernel } from "./libro-kernel.js";
7
+ import { KernelRestAPI } from "./restapi.js";
8
+ export var LibroKernelModule = ManaModule.create().register(KernelRestAPI, KernelConnection, LibroKernelManager, LibroKernel, {
9
+ token: LibroKernelFactory,
10
+ useFactory: function useFactory(ctx) {
11
+ return function (kernelMeta) {
12
+ var child = ctx.container.createChild();
13
+ child.register({
14
+ token: KernelMetaOption,
15
+ useValue: kernelMeta
16
+ });
17
+ return child.get(LibroKernel);
18
+ };
19
+ }
20
+ }, {
21
+ token: LibroKernelConnectionFactory,
22
+ useFactory: function useFactory(ctx) {
23
+ return function (options) {
24
+ var child = ctx.container.createChild();
25
+ child.register({
26
+ token: KernelConnectionOptions,
27
+ useValue: options
28
+ });
29
+ return child.get(KernelConnection);
30
+ };
31
+ }
32
+ }).dependOn(LibroServerModule);
@@ -0,0 +1,89 @@
1
+ import { Poll } from '@difizen/libro-common';
2
+ import type { Event as ManaEvent } from '@difizen/mana-app';
3
+ import { Emitter } from '@difizen/mana-app';
4
+ import { ServerManager } from '../server/index.js';
5
+ import type { KernelId, IKernelConnection, KernelStatus, KernelConnectionOptions, IKernelModel, KernelMeta } from './libro-kernel-protocol.js';
6
+ import { LibroKernelFactory, LibroKernelConnectionFactory } from './libro-kernel-protocol.js';
7
+ import type { LibroKernel } from './libro-kernel.js';
8
+ import type { IKernelOptions } from './restapi.js';
9
+ import { KernelRestAPI } from './restapi.js';
10
+ export declare class LibroKernelManager {
11
+ kernelfactory: LibroKernelFactory;
12
+ kernelConnectionFactory: LibroKernelConnectionFactory;
13
+ kernelRestAPI: KernelRestAPI;
14
+ kernelMap: Map<string, LibroKernel>;
15
+ private _models;
16
+ protected _pollModels: Poll;
17
+ protected _isReady: boolean;
18
+ protected _ready: Promise<void>;
19
+ protected serverManager: ServerManager;
20
+ protected connectToKernelEmitter: Emitter<any>;
21
+ get onConnectToKernel(): ManaEvent<any>;
22
+ get kernelIds(): string[];
23
+ getLibroKernel(kernelId: KernelId): LibroKernel | undefined;
24
+ get runningKernels(): Map<string, KernelMeta>;
25
+ constructor(serverManager: ServerManager);
26
+ /**
27
+ * Test whether the manager is ready.
28
+ */
29
+ get isReady(): boolean;
30
+ /**
31
+ * A promise that fulfills when the manager is ready.
32
+ */
33
+ get ready(): Promise<void>;
34
+ /**
35
+ * Start a new kernel.
36
+ *
37
+ * @param createOptions - The kernel creation options
38
+ *
39
+ * @param connectOptions - The kernel connection options
40
+ *
41
+ * @returns A promise that resolves with the kernel connection.
42
+ *
43
+ * #### Notes
44
+ * The manager `serverSettings` will be always be used.
45
+ */
46
+ startNew(createOptions?: IKernelOptions, connectOptions?: Omit<KernelConnectionOptions, 'model' | 'serverSettings'>): Promise<IKernelConnection>;
47
+ /**
48
+ * A signal emitted when the running kernels change.
49
+ */
50
+ get runningChanged(): ManaEvent<IKernelModel[]>;
51
+ /**
52
+ * A signal emitted when there is a connection failure.
53
+ */
54
+ get connectionFailure(): ManaEvent<Error>;
55
+ /**
56
+ * Shut down a kernel by id.
57
+ *
58
+ * @param id - The id of the target kernel.
59
+ *
60
+ * @returns A promise that resolves when the operation is complete.
61
+ */
62
+ shutdown(id: string): Promise<void>;
63
+ /**
64
+ * Shut down all kernels.
65
+ */
66
+ shutdownAll(): Promise<void>;
67
+ connectToKernel(options: KernelConnectionOptions): Promise<IKernelConnection>;
68
+ isKernelAlive(id: string): Promise<boolean>;
69
+ startKernel(kernelConnection: IKernelConnection): Promise<void>;
70
+ protected _onDisposed(kernelConnection: IKernelConnection): void;
71
+ protected _onStatusChanged(status: KernelStatus): void;
72
+ /**
73
+ * Force a refresh of the running kernels.
74
+ *
75
+ * @returns A promise that resolves when the running list has been refreshed.
76
+ *
77
+ * #### Notes
78
+ * This is not typically meant to be called by the user, since the
79
+ * manager maintains its own internal state.
80
+ */
81
+ refreshRunning(): Promise<void>;
82
+ protected connectionFailureEmmiter: Emitter<Error>;
83
+ protected runningChangedEmitter: Emitter<IKernelModel[]>;
84
+ /**
85
+ * Execute a request to the server to poll running kernels and update state.
86
+ */
87
+ protected requestRunning(): Promise<void>;
88
+ }
89
+ //# sourceMappingURL=libro-kernel-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libro-kernel-manager.d.ts","sourceRoot":"","sources":["../../src/kernel/libro-kernel-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG5D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAgB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,KAAK,EACV,QAAQ,EACR,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,EACvB,YAAY,EACZ,UAAU,EACX,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC7B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,qBACa,kBAAkB;IACD,aAAa,EAAE,kBAAkB,CAAC;IAE9D,uBAAuB,EAAE,4BAA4B,CAAC;IAE/B,aAAa,EAAE,aAAa,CAAC;IAGpD,SAAS,2BAAoC;IAG7C,OAAO,CAAC,OAAO,CAAiC;IAEhD,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC;IAC5B,SAAS,CAAC,QAAQ,UAAS;IAC3B,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IACvC,SAAS,CAAC,sBAAsB,eAAiB;IACjD,IAAI,iBAAiB,mBAEpB;IAED,IAAI,SAAS,aAEZ;IAED,cAAc,CAAC,QAAQ,EAAE,QAAQ;IAIjC,IAAI,cAAc,IAAI,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAE5C;gBAEkC,aAAa,EAAE,aAAa;IA0B/D;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAEzB;IAED;;;;;;;;;;;OAWG;IACG,QAAQ,CACZ,aAAa,GAAE,cAAmB,EAClC,cAAc,GAAE,IAAI,CAAC,uBAAuB,EAAE,OAAO,GAAG,gBAAgB,CAAM,GAC7E,OAAO,CAAC,iBAAiB,CAAC;IAQ7B;;OAEG;IACH,IAAI,cAAc,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC,CAE9C;IAED;;OAEG;IACH,IAAI,iBAAiB,IAAI,SAAS,CAAC,KAAK,CAAC,CAExC;IAED;;;;;;OAMG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B,eAAe,CAAC,OAAO,EAAE,uBAAuB;IAQhD,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS3C,WAAW,CAAC,gBAAgB,EAAE,iBAAiB;IAKrD,SAAS,CAAC,WAAW,CAAC,gBAAgB,EAAE,iBAAiB;IAYzD,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,YAAY;IAW/C;;;;;;;;OAQG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrC,SAAS,CAAC,wBAAwB,iBAAwB;IAC1D,SAAS,CAAC,qBAAqB,0BAAiC;IAEhE;;OAEG;cACa,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CA2ChD"}
@@ -0,0 +1,469 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5;
3
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
4
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
5
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
7
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
8
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
9
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
13
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
14
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
15
+ function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }
16
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
17
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
18
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
19
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
20
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
21
+ function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
22
+ function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }
23
+ import { Poll } from '@difizen/libro-common';
24
+ import { inject, singleton } from '@difizen/mana-app';
25
+ import { prop, getOrigin } from '@difizen/mana-app';
26
+ import { Emitter } from '@difizen/mana-app';
27
+ import { NetworkError, ServerManager } from "../server/index.js";
28
+ import { LibroKernelFactory, LibroKernelConnectionFactory } from "./libro-kernel-protocol.js";
29
+ import { KernelRestAPI } from "./restapi.js";
30
+ export var LibroKernelManager = (_dec = singleton(), _dec2 = inject(LibroKernelFactory), _dec3 = inject(LibroKernelConnectionFactory), _dec4 = inject(KernelRestAPI), _dec5 = prop(), _dec6 = prop(), _dec(_class = (_class2 = /*#__PURE__*/function () {
31
+ function LibroKernelManager(serverManager) {
32
+ var _this = this;
33
+ _classCallCheck(this, LibroKernelManager);
34
+ _initializerDefineProperty(this, "kernelfactory", _descriptor, this);
35
+ _initializerDefineProperty(this, "kernelConnectionFactory", _descriptor2, this);
36
+ _initializerDefineProperty(this, "kernelRestAPI", _descriptor3, this);
37
+ _initializerDefineProperty(this, "kernelMap", _descriptor4, this);
38
+ _initializerDefineProperty(this, "_models", _descriptor5, this);
39
+ this._isReady = false;
40
+ this.connectToKernelEmitter = new Emitter();
41
+ this.connectionFailureEmmiter = new Emitter();
42
+ this.runningChangedEmitter = new Emitter();
43
+ this.serverManager = serverManager;
44
+
45
+ // Start model and specs polling with exponential backoff.
46
+ this._pollModels = new Poll({
47
+ auto: false,
48
+ factory: function factory() {
49
+ return _this.requestRunning();
50
+ },
51
+ frequency: {
52
+ interval: 10 * 1000,
53
+ backoff: true,
54
+ max: 300 * 1000
55
+ },
56
+ name: "@jupyterlab/services:KernelManager#models",
57
+ // standby: options.standby ?? 'when-hidden',
58
+ standby: 'when-hidden'
59
+ });
60
+
61
+ // Initialize internal data.
62
+ this._ready = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
63
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
64
+ while (1) switch (_context.prev = _context.next) {
65
+ case 0:
66
+ _context.next = 2;
67
+ return _this.serverManager.ready;
68
+ case 2:
69
+ _context.next = 4;
70
+ return getOrigin(_this._pollModels).start();
71
+ case 4:
72
+ _context.next = 6;
73
+ return getOrigin(_this._pollModels).tick;
74
+ case 6:
75
+ _this._isReady = true;
76
+ case 7:
77
+ case "end":
78
+ return _context.stop();
79
+ }
80
+ }, _callee);
81
+ }))();
82
+ }
83
+
84
+ /**
85
+ * Test whether the manager is ready.
86
+ */
87
+ LibroKernelManager = inject(ServerManager)(LibroKernelManager, undefined, 0) || LibroKernelManager;
88
+ _createClass(LibroKernelManager, [{
89
+ key: "onConnectToKernel",
90
+ get: function get() {
91
+ return this.connectToKernelEmitter.event;
92
+ }
93
+ }, {
94
+ key: "kernelIds",
95
+ get: function get() {
96
+ return Array.from(this.kernelMap.keys());
97
+ }
98
+ }, {
99
+ key: "getLibroKernel",
100
+ value: function getLibroKernel(kernelId) {
101
+ return this.kernelMap.get(kernelId);
102
+ }
103
+ }, {
104
+ key: "runningKernels",
105
+ get: function get() {
106
+ return this._models;
107
+ }
108
+ }, {
109
+ key: "isReady",
110
+ get: function get() {
111
+ return this._isReady;
112
+ }
113
+
114
+ /**
115
+ * A promise that fulfills when the manager is ready.
116
+ */
117
+ }, {
118
+ key: "ready",
119
+ get: function get() {
120
+ return this._ready;
121
+ }
122
+
123
+ /**
124
+ * Start a new kernel.
125
+ *
126
+ * @param createOptions - The kernel creation options
127
+ *
128
+ * @param connectOptions - The kernel connection options
129
+ *
130
+ * @returns A promise that resolves with the kernel connection.
131
+ *
132
+ * #### Notes
133
+ * The manager `serverSettings` will be always be used.
134
+ */
135
+ }, {
136
+ key: "startNew",
137
+ value: (function () {
138
+ var _startNew = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
139
+ var createOptions,
140
+ connectOptions,
141
+ model,
142
+ _args2 = arguments;
143
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
144
+ while (1) switch (_context2.prev = _context2.next) {
145
+ case 0:
146
+ createOptions = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : {};
147
+ connectOptions = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : {};
148
+ _context2.next = 4;
149
+ return this.kernelRestAPI.startNew(createOptions);
150
+ case 4:
151
+ model = _context2.sent;
152
+ return _context2.abrupt("return", this.connectToKernel(_objectSpread(_objectSpread({}, connectOptions), {}, {
153
+ model: model
154
+ })));
155
+ case 6:
156
+ case "end":
157
+ return _context2.stop();
158
+ }
159
+ }, _callee2, this);
160
+ }));
161
+ function startNew() {
162
+ return _startNew.apply(this, arguments);
163
+ }
164
+ return startNew;
165
+ }()
166
+ /**
167
+ * A signal emitted when the running kernels change.
168
+ */
169
+ )
170
+ }, {
171
+ key: "runningChanged",
172
+ get: function get() {
173
+ return this.runningChangedEmitter.event;
174
+ }
175
+
176
+ /**
177
+ * A signal emitted when there is a connection failure.
178
+ */
179
+ }, {
180
+ key: "connectionFailure",
181
+ get: function get() {
182
+ return this.connectionFailureEmmiter.event;
183
+ }
184
+
185
+ /**
186
+ * Shut down a kernel by id.
187
+ *
188
+ * @param id - The id of the target kernel.
189
+ *
190
+ * @returns A promise that resolves when the operation is complete.
191
+ */
192
+ }, {
193
+ key: "shutdown",
194
+ value: (function () {
195
+ var _shutdown = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(id) {
196
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
197
+ while (1) switch (_context3.prev = _context3.next) {
198
+ case 0:
199
+ _context3.next = 2;
200
+ return this.kernelRestAPI.shutdownKernel(id);
201
+ case 2:
202
+ _context3.next = 4;
203
+ return this.refreshRunning();
204
+ case 4:
205
+ case "end":
206
+ return _context3.stop();
207
+ }
208
+ }, _callee3, this);
209
+ }));
210
+ function shutdown(_x) {
211
+ return _shutdown.apply(this, arguments);
212
+ }
213
+ return shutdown;
214
+ }()
215
+ /**
216
+ * Shut down all kernels.
217
+ */
218
+ )
219
+ }, {
220
+ key: "shutdownAll",
221
+ value: (function () {
222
+ var _shutdownAll = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
223
+ var _this2 = this;
224
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
225
+ while (1) switch (_context4.prev = _context4.next) {
226
+ case 0:
227
+ _context4.next = 2;
228
+ return this.refreshRunning();
229
+ case 2:
230
+ _context4.next = 4;
231
+ return Promise.all(_toConsumableArray(this._models.keys()).map(function (id) {
232
+ return _this2.kernelRestAPI.shutdownKernel(id);
233
+ }));
234
+ case 4:
235
+ _context4.next = 6;
236
+ return this.refreshRunning();
237
+ case 6:
238
+ case "end":
239
+ return _context4.stop();
240
+ }
241
+ }, _callee4, this);
242
+ }));
243
+ function shutdownAll() {
244
+ return _shutdownAll.apply(this, arguments);
245
+ }
246
+ return shutdownAll;
247
+ }())
248
+ }, {
249
+ key: "connectToKernel",
250
+ value: function () {
251
+ var _connectToKernel = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(options) {
252
+ var kernelConnection;
253
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
254
+ while (1) switch (_context5.prev = _context5.next) {
255
+ case 0:
256
+ kernelConnection = this.kernelConnectionFactory(options);
257
+ this.startKernel(kernelConnection);
258
+ this.connectToKernelEmitter.fire(kernelConnection);
259
+ return _context5.abrupt("return", kernelConnection);
260
+ case 4:
261
+ case "end":
262
+ return _context5.stop();
263
+ }
264
+ }, _callee5, this);
265
+ }));
266
+ function connectToKernel(_x2) {
267
+ return _connectToKernel.apply(this, arguments);
268
+ }
269
+ return connectToKernel;
270
+ }() // 通过kernel id判断kernel是否仍然存在
271
+ }, {
272
+ key: "isKernelAlive",
273
+ value: function () {
274
+ var _isKernelAlive = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(id) {
275
+ var data;
276
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
277
+ while (1) switch (_context6.prev = _context6.next) {
278
+ case 0:
279
+ _context6.prev = 0;
280
+ _context6.next = 3;
281
+ return this.kernelRestAPI.getKernelModel(id);
282
+ case 3:
283
+ data = _context6.sent;
284
+ return _context6.abrupt("return", !!data);
285
+ case 7:
286
+ _context6.prev = 7;
287
+ _context6.t0 = _context6["catch"](0);
288
+ return _context6.abrupt("return", false);
289
+ case 10:
290
+ case "end":
291
+ return _context6.stop();
292
+ }
293
+ }, _callee6, this, [[0, 7]]);
294
+ }));
295
+ function isKernelAlive(_x3) {
296
+ return _isKernelAlive.apply(this, arguments);
297
+ }
298
+ return isKernelAlive;
299
+ }()
300
+ }, {
301
+ key: "startKernel",
302
+ value: function () {
303
+ var _startKernel = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(kernelConnection) {
304
+ var _this3 = this;
305
+ return _regeneratorRuntime().wrap(function _callee7$(_context7) {
306
+ while (1) switch (_context7.prev = _context7.next) {
307
+ case 0:
308
+ kernelConnection.statusChanged(this._onStatusChanged.bind(this));
309
+ kernelConnection.onDisposed(function () {
310
+ return _this3._onDisposed.bind(_this3)(kernelConnection);
311
+ });
312
+ case 2:
313
+ case "end":
314
+ return _context7.stop();
315
+ }
316
+ }, _callee7, this);
317
+ }));
318
+ function startKernel(_x4) {
319
+ return _startKernel.apply(this, arguments);
320
+ }
321
+ return startKernel;
322
+ }()
323
+ }, {
324
+ key: "_onDisposed",
325
+ value: function _onDisposed(kernelConnection) {
326
+ this.kernelMap.delete(kernelConnection.id);
327
+ // A dispose emission could mean the server session is deleted, or that
328
+ // the kernel JS object is disposed and the kernel still exists on the
329
+ // server, so we refresh from the server to make sure we reflect the
330
+ // server state.
331
+
332
+ void this.refreshRunning().catch(function () {
333
+ /* no-op */
334
+ });
335
+ }
336
+ }, {
337
+ key: "_onStatusChanged",
338
+ value: function _onStatusChanged(status) {
339
+ if (status === 'dead') {
340
+ // We asynchronously update our list of kernels, which asynchronously
341
+ // will dispose them. We do not want to immediately dispose them because
342
+ // there may be other signal handlers that want to be called.
343
+ void this.refreshRunning().catch(function () {
344
+ /* no-op */
345
+ });
346
+ }
347
+ }
348
+
349
+ /**
350
+ * Force a refresh of the running kernels.
351
+ *
352
+ * @returns A promise that resolves when the running list has been refreshed.
353
+ *
354
+ * #### Notes
355
+ * This is not typically meant to be called by the user, since the
356
+ * manager maintains its own internal state.
357
+ */
358
+ }, {
359
+ key: "refreshRunning",
360
+ value: (function () {
361
+ var _refreshRunning = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {
362
+ return _regeneratorRuntime().wrap(function _callee8$(_context8) {
363
+ while (1) switch (_context8.prev = _context8.next) {
364
+ case 0:
365
+ _context8.next = 2;
366
+ return getOrigin(this._pollModels).refresh();
367
+ case 2:
368
+ _context8.next = 4;
369
+ return getOrigin(this._pollModels).tick;
370
+ case 4:
371
+ case "end":
372
+ return _context8.stop();
373
+ }
374
+ }, _callee8, this);
375
+ }));
376
+ function refreshRunning() {
377
+ return _refreshRunning.apply(this, arguments);
378
+ }
379
+ return refreshRunning;
380
+ }())
381
+ }, {
382
+ key: "requestRunning",
383
+ value: (
384
+ /**
385
+ * Execute a request to the server to poll running kernels and update state.
386
+ */
387
+ function () {
388
+ var _requestRunning = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {
389
+ var _this4 = this;
390
+ var models, _err$response, _err$response2;
391
+ return _regeneratorRuntime().wrap(function _callee9$(_context9) {
392
+ while (1) switch (_context9.prev = _context9.next) {
393
+ case 0:
394
+ _context9.prev = 0;
395
+ _context9.next = 3;
396
+ return this.kernelRestAPI.listRunning();
397
+ case 3:
398
+ models = _context9.sent;
399
+ _context9.next = 10;
400
+ break;
401
+ case 6:
402
+ _context9.prev = 6;
403
+ _context9.t0 = _context9["catch"](0);
404
+ // Handle network errors, as well as cases where we are on a
405
+ // JupyterHub and the server is not running. JupyterHub returns a
406
+ // 503 (<2.0) or 424 (>2.0) in that case.
407
+ if (_context9.t0 instanceof NetworkError || ((_err$response = _context9.t0.response) === null || _err$response === void 0 ? void 0 : _err$response.status) === 503 || ((_err$response2 = _context9.t0.response) === null || _err$response2 === void 0 ? void 0 : _err$response2.status) === 424) {
408
+ this.connectionFailureEmmiter.fire(_context9.t0);
409
+ }
410
+ throw _context9.t0;
411
+ case 10:
412
+ if (!(this._models.size === models.length && models.every(function (model) {
413
+ var existing = _this4._models.get(model.id);
414
+ if (!existing) {
415
+ return false;
416
+ }
417
+ return existing.connections === model.connections && existing.execution_state === model.execution_state && existing.last_activity === model.last_activity && existing.name === model.name && existing.reason === model.reason && existing.traceback === model.traceback;
418
+ }))) {
419
+ _context9.next = 12;
420
+ break;
421
+ }
422
+ return _context9.abrupt("return");
423
+ case 12:
424
+ this._models = new Map(models.map(function (x) {
425
+ return [x.id, x];
426
+ }));
427
+ case 13:
428
+ case "end":
429
+ return _context9.stop();
430
+ }
431
+ }, _callee9, this, [[0, 6]]);
432
+ }));
433
+ function requestRunning() {
434
+ return _requestRunning.apply(this, arguments);
435
+ }
436
+ return requestRunning;
437
+ }())
438
+ }]);
439
+ return LibroKernelManager;
440
+ }(), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "kernelfactory", [_dec2], {
441
+ configurable: true,
442
+ enumerable: true,
443
+ writable: true,
444
+ initializer: null
445
+ }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "kernelConnectionFactory", [_dec3], {
446
+ configurable: true,
447
+ enumerable: true,
448
+ writable: true,
449
+ initializer: null
450
+ }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "kernelRestAPI", [_dec4], {
451
+ configurable: true,
452
+ enumerable: true,
453
+ writable: true,
454
+ initializer: null
455
+ }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "kernelMap", [_dec5], {
456
+ configurable: true,
457
+ enumerable: true,
458
+ writable: true,
459
+ initializer: function initializer() {
460
+ return new Map();
461
+ }
462
+ }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "_models", [_dec6], {
463
+ configurable: true,
464
+ enumerable: true,
465
+ writable: true,
466
+ initializer: function initializer() {
467
+ return new Map();
468
+ }
469
+ })), _class2)) || _class);