@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.
- package/LICENSE +21 -0
- package/README.md +1 -0
- package/es/basemanager.d.ts +94 -0
- package/es/basemanager.d.ts.map +1 -0
- package/es/basemanager.js +110 -0
- package/es/contents/contents-drive.d.ts +189 -0
- package/es/contents/contents-drive.d.ts.map +1 -0
- package/es/contents/contents-drive.js +792 -0
- package/es/contents/contents-manager.d.ts +229 -0
- package/es/contents/contents-manager.d.ts.map +1 -0
- package/es/contents/contents-manager.js +551 -0
- package/es/contents/contents-module.d.ts +3 -0
- package/es/contents/contents-module.d.ts.map +1 -0
- package/es/contents/contents-module.js +4 -0
- package/es/contents/contents-protocol.d.ts +487 -0
- package/es/contents/contents-protocol.d.ts.map +1 -0
- package/es/contents/contents-protocol.js +1 -0
- package/es/contents/index.d.ts +6 -0
- package/es/contents/index.d.ts.map +1 -0
- package/es/contents/index.js +5 -0
- package/es/contents/validate.d.ts +10 -0
- package/es/contents/validate.d.ts.map +1 -0
- package/es/contents/validate.js +22 -0
- package/es/index.d.ts +10 -0
- package/es/index.d.ts.map +1 -0
- package/es/index.js +9 -0
- package/es/index.less +0 -0
- package/es/kernel/comm.d.ts +92 -0
- package/es/kernel/comm.d.ts.map +1 -0
- package/es/kernel/comm.js +216 -0
- package/es/kernel/future.d.ts +178 -0
- package/es/kernel/future.d.ts.map +1 -0
- package/es/kernel/future.js +587 -0
- package/es/kernel/index.d.ts +8 -0
- package/es/kernel/index.d.ts.map +1 -0
- package/es/kernel/index.js +8 -0
- package/es/kernel/kernel-connection.d.ts +550 -0
- package/es/kernel/kernel-connection.d.ts.map +1 -0
- package/es/kernel/kernel-connection.js +1957 -0
- package/es/kernel/kernel-module.d.ts +3 -0
- package/es/kernel/kernel-module.d.ts.map +1 -0
- package/es/kernel/kernel-module.js +32 -0
- package/es/kernel/libro-kernel-manager.d.ts +69 -0
- package/es/kernel/libro-kernel-manager.d.ts.map +1 -0
- package/es/kernel/libro-kernel-manager.js +349 -0
- package/es/kernel/libro-kernel-protocol.d.ts +675 -0
- package/es/kernel/libro-kernel-protocol.d.ts.map +1 -0
- package/es/kernel/libro-kernel-protocol.js +60 -0
- package/es/kernel/libro-kernel-utils.d.ts +95 -0
- package/es/kernel/libro-kernel-utils.d.ts.map +1 -0
- package/es/kernel/libro-kernel-utils.js +130 -0
- package/es/kernel/libro-kernel.d.ts +14 -0
- package/es/kernel/libro-kernel.d.ts.map +1 -0
- package/es/kernel/libro-kernel.js +54 -0
- package/es/kernel/messages.d.ts +845 -0
- package/es/kernel/messages.d.ts.map +1 -0
- package/es/kernel/messages.js +457 -0
- package/es/kernel/restapi.d.ts +78 -0
- package/es/kernel/restapi.d.ts.map +1 -0
- package/es/kernel/restapi.js +367 -0
- package/es/kernel/serialize.d.ts +10 -0
- package/es/kernel/serialize.d.ts.map +1 -0
- package/es/kernel/serialize.js +214 -0
- package/es/kernel/validate.d.ts +15 -0
- package/es/kernel/validate.d.ts.map +1 -0
- package/es/kernel/validate.js +125 -0
- package/es/kernelspec/index.d.ts +5 -0
- package/es/kernelspec/index.d.ts.map +1 -0
- package/es/kernelspec/index.js +4 -0
- package/es/kernelspec/kernelspec-module.d.ts +3 -0
- package/es/kernelspec/kernelspec-module.d.ts.map +1 -0
- package/es/kernelspec/kernelspec-module.js +4 -0
- package/es/kernelspec/kernelspec.d.ts +33 -0
- package/es/kernelspec/kernelspec.d.ts.map +1 -0
- package/es/kernelspec/kernelspec.js +1 -0
- package/es/kernelspec/manager.d.ts +81 -0
- package/es/kernelspec/manager.d.ts.map +1 -0
- package/es/kernelspec/manager.js +248 -0
- package/es/kernelspec/restapi.d.ts +71 -0
- package/es/kernelspec/restapi.d.ts.map +1 -0
- package/es/kernelspec/restapi.js +107 -0
- package/es/kernelspec/validate.d.ts +10 -0
- package/es/kernelspec/validate.d.ts.map +1 -0
- package/es/kernelspec/validate.js +69 -0
- package/es/libro-kernel-connection-manager.d.ts +19 -0
- package/es/libro-kernel-connection-manager.d.ts.map +1 -0
- package/es/libro-kernel-connection-manager.js +142 -0
- package/es/module.d.ts +3 -0
- package/es/module.d.ts.map +1 -0
- package/es/module.js +9 -0
- package/es/page-config.d.ts +36 -0
- package/es/page-config.d.ts.map +1 -0
- package/es/page-config.js +129 -0
- package/es/protocol.d.ts +13 -0
- package/es/protocol.d.ts.map +1 -0
- package/es/protocol.js +8 -0
- package/es/server/connection-error.d.ts +36 -0
- package/es/server/connection-error.d.ts.map +1 -0
- package/es/server/connection-error.js +109 -0
- package/es/server/index.d.ts +6 -0
- package/es/server/index.d.ts.map +1 -0
- package/es/server/index.js +5 -0
- package/es/server/server-connection-protocol.d.ts +49 -0
- package/es/server/server-connection-protocol.d.ts.map +1 -0
- package/es/server/server-connection-protocol.js +0 -0
- package/es/server/server-connection.d.ts +25 -0
- package/es/server/server-connection.d.ts.map +1 -0
- package/es/server/server-connection.js +159 -0
- package/es/server/server-manager.d.ts +22 -0
- package/es/server/server-manager.d.ts.map +1 -0
- package/es/server/server-manager.js +163 -0
- package/es/server/server-module.d.ts +3 -0
- package/es/server/server-module.d.ts.map +1 -0
- package/es/server/server-module.js +4 -0
- package/es/session/index.d.ts +5 -0
- package/es/session/index.d.ts.map +1 -0
- package/es/session/index.js +4 -0
- package/es/session/libro-session-manager.d.ts +71 -0
- package/es/session/libro-session-manager.d.ts.map +1 -0
- package/es/session/libro-session-manager.js +539 -0
- package/es/session/libro-session-protocol.d.ts +50 -0
- package/es/session/libro-session-protocol.d.ts.map +1 -0
- package/es/session/libro-session-protocol.js +21 -0
- package/es/session/libro-session.d.ts +12 -0
- package/es/session/libro-session.d.ts.map +1 -0
- package/es/session/libro-session.js +19 -0
- package/es/session/restapi.d.ts +28 -0
- package/es/session/restapi.d.ts.map +1 -0
- package/es/session/restapi.js +214 -0
- package/es/session/session-module.d.ts +3 -0
- package/es/session/session-module.d.ts.map +1 -0
- package/es/session/session-module.js +18 -0
- package/es/session/validate.d.ts +14 -0
- package/es/session/validate.d.ts.map +1 -0
- package/es/session/validate.js +37 -0
- package/es/utils.d.ts +4 -0
- package/es/utils.d.ts.map +1 -0
- package/es/utils.js +29 -0
- package/es/validate-property.d.ts +2 -0
- package/es/validate-property.d.ts.map +1 -0
- package/es/validate-property.js +35 -0
- package/package.json +62 -0
- package/src/basemanager.ts +133 -0
- package/src/contents/contents-drive.ts +495 -0
- package/src/contents/contents-manager.ts +465 -0
- package/src/contents/contents-module.ts +6 -0
- package/src/contents/contents-protocol.ts +604 -0
- package/src/contents/index.ts +5 -0
- package/src/contents/validate.ts +29 -0
- package/src/index.tsx +9 -0
- package/src/kernel/comm.ts +220 -0
- package/src/kernel/future.ts +474 -0
- package/src/kernel/index.ts +7 -0
- package/src/kernel/kernel-connection.ts +1770 -0
- package/src/kernel/kernel-module.ts +50 -0
- package/src/kernel/libro-kernel-manager.ts +199 -0
- package/src/kernel/libro-kernel-protocol.ts +858 -0
- package/src/kernel/libro-kernel-utils.ts +152 -0
- package/src/kernel/libro-kernel.ts +39 -0
- package/src/kernel/messages.ts +1104 -0
- package/src/kernel/restapi.ts +183 -0
- package/src/kernel/serialize.ts +262 -0
- package/src/kernel/validate.ts +101 -0
- package/src/kernelspec/index.ts +5 -0
- package/src/kernelspec/kernelspec-module.ts +9 -0
- package/src/kernelspec/kernelspec.ts +37 -0
- package/src/kernelspec/manager.ts +173 -0
- package/src/kernelspec/restapi.ts +104 -0
- package/src/kernelspec/validate.ts +80 -0
- package/src/libro-kernel-connection-manager.ts +73 -0
- package/src/module.ts +19 -0
- package/src/page-config.ts +106 -0
- package/src/protocol.ts +24 -0
- package/src/server/connection-error.ts +60 -0
- package/src/server/index.ts +5 -0
- package/src/server/server-connection-protocol.ts +57 -0
- package/src/server/server-connection.ts +144 -0
- package/src/server/server-manager.ts +76 -0
- package/src/server/server-module.ts +9 -0
- package/src/session/index.ts +4 -0
- package/src/session/libro-session-manager.ts +377 -0
- package/src/session/libro-session-protocol.ts +61 -0
- package/src/session/libro-session.ts +33 -0
- package/src/session/restapi.ts +126 -0
- package/src/session/session-module.ts +26 -0
- package/src/session/validate.ts +39 -0
- package/src/utils.ts +28 -0
- package/src/validate-property.ts +38 -0
|
@@ -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,69 @@
|
|
|
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 } from './libro-kernel-protocol.js';
|
|
6
|
+
import { LibroKernelFactory, LibroKernelConnectionFactory } from './libro-kernel-protocol.js';
|
|
7
|
+
import type { LibroKernel } from './libro-kernel.js';
|
|
8
|
+
import { KernelRestAPI } from './restapi.js';
|
|
9
|
+
export declare class LibroKernelManager {
|
|
10
|
+
kernelfactory: LibroKernelFactory;
|
|
11
|
+
kernelConnectionFactory: LibroKernelConnectionFactory;
|
|
12
|
+
kernelRestAPI: KernelRestAPI;
|
|
13
|
+
kernelMap: Map<string, LibroKernel>;
|
|
14
|
+
protected _pollModels: Poll;
|
|
15
|
+
protected _isReady: boolean;
|
|
16
|
+
protected _ready: Promise<void>;
|
|
17
|
+
protected serverManager: ServerManager;
|
|
18
|
+
protected connectToKernelEmitter: Emitter<any>;
|
|
19
|
+
get onConnectToKernel(): ManaEvent<any>;
|
|
20
|
+
get kernelIds(): string[];
|
|
21
|
+
getLibroKernel(kernelId: KernelId): LibroKernel | undefined;
|
|
22
|
+
constructor(serverManager: ServerManager);
|
|
23
|
+
/**
|
|
24
|
+
* Test whether the manager is ready.
|
|
25
|
+
*/
|
|
26
|
+
get isReady(): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* A promise that fulfills when the manager is ready.
|
|
29
|
+
*/
|
|
30
|
+
get ready(): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* A signal emitted when the running kernels change.
|
|
33
|
+
*/
|
|
34
|
+
get runningChanged(): ManaEvent<IKernelModel[]>;
|
|
35
|
+
/**
|
|
36
|
+
* A signal emitted when there is a connection failure.
|
|
37
|
+
*/
|
|
38
|
+
get connectionFailure(): ManaEvent<Error>;
|
|
39
|
+
/**
|
|
40
|
+
* Shut down a kernel by id.
|
|
41
|
+
*
|
|
42
|
+
* @param id - The id of the target kernel.
|
|
43
|
+
*
|
|
44
|
+
* @returns A promise that resolves when the operation is complete.
|
|
45
|
+
*/
|
|
46
|
+
shutdown(id: string): Promise<void>;
|
|
47
|
+
connectToKernel(options: KernelConnectionOptions): Promise<IKernelConnection>;
|
|
48
|
+
isKernelAlive(id: string): Promise<boolean>;
|
|
49
|
+
startKernel(kernelConnection: IKernelConnection): Promise<void>;
|
|
50
|
+
protected _onDisposed(kernelConnection: IKernelConnection): void;
|
|
51
|
+
protected _onStatusChanged(status: KernelStatus): void;
|
|
52
|
+
/**
|
|
53
|
+
* Force a refresh of the running kernels.
|
|
54
|
+
*
|
|
55
|
+
* @returns A promise that resolves when the running list has been refreshed.
|
|
56
|
+
*
|
|
57
|
+
* #### Notes
|
|
58
|
+
* This is not typically meant to be called by the user, since the
|
|
59
|
+
* manager maintains its own internal state.
|
|
60
|
+
*/
|
|
61
|
+
refreshRunning(): Promise<void>;
|
|
62
|
+
protected connectionFailureEmmiter: Emitter<Error>;
|
|
63
|
+
protected runningChangedEmitter: Emitter<IKernelModel[]>;
|
|
64
|
+
/**
|
|
65
|
+
* Execute a request to the server to poll running kernels and update state.
|
|
66
|
+
*/
|
|
67
|
+
protected requestRunning(): Promise<void>;
|
|
68
|
+
}
|
|
69
|
+
//# 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,EACb,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC7B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,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;IAE7C,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;gBAIE,aAAa,EAAE,aAAa;IAyB/D;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAEzB;IAED;;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;IAKnC,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;CAiBhD"}
|
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
+
var _dec, _dec2, _dec3, _dec4, _dec5, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4;
|
|
3
|
+
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 exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, catch: function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
|
|
4
|
+
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); } }
|
|
5
|
+
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); }); }; }
|
|
6
|
+
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 }); }
|
|
7
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
8
|
+
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); } }
|
|
9
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
10
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
11
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
12
|
+
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; }
|
|
13
|
+
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.'); }
|
|
14
|
+
import { Poll } from '@difizen/libro-common';
|
|
15
|
+
import { inject, singleton } from '@difizen/mana-app';
|
|
16
|
+
import { prop, getOrigin } from '@difizen/mana-app';
|
|
17
|
+
import { Emitter } from '@difizen/mana-app';
|
|
18
|
+
import { NetworkError, ServerManager } from "../server/index.js";
|
|
19
|
+
import { LibroKernelFactory, LibroKernelConnectionFactory } from "./libro-kernel-protocol.js";
|
|
20
|
+
import { KernelRestAPI } from "./restapi.js";
|
|
21
|
+
export var LibroKernelManager = (_dec = singleton(), _dec2 = inject(LibroKernelFactory), _dec3 = inject(LibroKernelConnectionFactory), _dec4 = inject(KernelRestAPI), _dec5 = prop(), _dec(_class = (_class2 = /*#__PURE__*/function () {
|
|
22
|
+
function LibroKernelManager(serverManager) {
|
|
23
|
+
var _this = this;
|
|
24
|
+
_classCallCheck(this, LibroKernelManager);
|
|
25
|
+
_initializerDefineProperty(this, "kernelfactory", _descriptor, this);
|
|
26
|
+
_initializerDefineProperty(this, "kernelConnectionFactory", _descriptor2, this);
|
|
27
|
+
_initializerDefineProperty(this, "kernelRestAPI", _descriptor3, this);
|
|
28
|
+
_initializerDefineProperty(this, "kernelMap", _descriptor4, this);
|
|
29
|
+
this._isReady = false;
|
|
30
|
+
this.connectToKernelEmitter = new Emitter();
|
|
31
|
+
this.connectionFailureEmmiter = new Emitter();
|
|
32
|
+
this.runningChangedEmitter = new Emitter();
|
|
33
|
+
this.serverManager = serverManager;
|
|
34
|
+
|
|
35
|
+
// Start model and specs polling with exponential backoff.
|
|
36
|
+
this._pollModels = new Poll({
|
|
37
|
+
auto: false,
|
|
38
|
+
factory: function factory() {
|
|
39
|
+
return _this.requestRunning();
|
|
40
|
+
},
|
|
41
|
+
frequency: {
|
|
42
|
+
interval: 10 * 1000,
|
|
43
|
+
backoff: true,
|
|
44
|
+
max: 300 * 1000
|
|
45
|
+
},
|
|
46
|
+
name: "@jupyterlab/services:KernelManager#models",
|
|
47
|
+
// standby: options.standby ?? 'when-hidden',
|
|
48
|
+
standby: 'when-hidden'
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
// Initialize internal data.
|
|
52
|
+
this._ready = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
53
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
54
|
+
while (1) switch (_context.prev = _context.next) {
|
|
55
|
+
case 0:
|
|
56
|
+
_context.next = 2;
|
|
57
|
+
return getOrigin(_this._pollModels).start();
|
|
58
|
+
case 2:
|
|
59
|
+
_context.next = 4;
|
|
60
|
+
return getOrigin(_this._pollModels).tick;
|
|
61
|
+
case 4:
|
|
62
|
+
_this._isReady = true;
|
|
63
|
+
case 5:
|
|
64
|
+
case "end":
|
|
65
|
+
return _context.stop();
|
|
66
|
+
}
|
|
67
|
+
}, _callee);
|
|
68
|
+
}))();
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Test whether the manager is ready.
|
|
73
|
+
*/
|
|
74
|
+
LibroKernelManager = inject(ServerManager)(LibroKernelManager, undefined, 0) || LibroKernelManager;
|
|
75
|
+
_createClass(LibroKernelManager, [{
|
|
76
|
+
key: "onConnectToKernel",
|
|
77
|
+
get: function get() {
|
|
78
|
+
return this.connectToKernelEmitter.event;
|
|
79
|
+
}
|
|
80
|
+
}, {
|
|
81
|
+
key: "kernelIds",
|
|
82
|
+
get: function get() {
|
|
83
|
+
return Array.from(this.kernelMap.keys());
|
|
84
|
+
}
|
|
85
|
+
}, {
|
|
86
|
+
key: "getLibroKernel",
|
|
87
|
+
value: function getLibroKernel(kernelId) {
|
|
88
|
+
return this.kernelMap.get(kernelId);
|
|
89
|
+
}
|
|
90
|
+
}, {
|
|
91
|
+
key: "isReady",
|
|
92
|
+
get: function get() {
|
|
93
|
+
return this._isReady;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* A promise that fulfills when the manager is ready.
|
|
98
|
+
*/
|
|
99
|
+
}, {
|
|
100
|
+
key: "ready",
|
|
101
|
+
get: function get() {
|
|
102
|
+
return this._ready;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* A signal emitted when the running kernels change.
|
|
107
|
+
*/
|
|
108
|
+
}, {
|
|
109
|
+
key: "runningChanged",
|
|
110
|
+
get: function get() {
|
|
111
|
+
return this.runningChangedEmitter.event;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* A signal emitted when there is a connection failure.
|
|
116
|
+
*/
|
|
117
|
+
}, {
|
|
118
|
+
key: "connectionFailure",
|
|
119
|
+
get: function get() {
|
|
120
|
+
return this.connectionFailureEmmiter.event;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Shut down a kernel by id.
|
|
125
|
+
*
|
|
126
|
+
* @param id - The id of the target kernel.
|
|
127
|
+
*
|
|
128
|
+
* @returns A promise that resolves when the operation is complete.
|
|
129
|
+
*/
|
|
130
|
+
}, {
|
|
131
|
+
key: "shutdown",
|
|
132
|
+
value: function () {
|
|
133
|
+
var _shutdown = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(id) {
|
|
134
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
135
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
136
|
+
case 0:
|
|
137
|
+
_context2.next = 2;
|
|
138
|
+
return this.kernelRestAPI.shutdownKernel(id);
|
|
139
|
+
case 2:
|
|
140
|
+
_context2.next = 4;
|
|
141
|
+
return this.refreshRunning();
|
|
142
|
+
case 4:
|
|
143
|
+
case "end":
|
|
144
|
+
return _context2.stop();
|
|
145
|
+
}
|
|
146
|
+
}, _callee2, this);
|
|
147
|
+
}));
|
|
148
|
+
function shutdown(_x) {
|
|
149
|
+
return _shutdown.apply(this, arguments);
|
|
150
|
+
}
|
|
151
|
+
return shutdown;
|
|
152
|
+
}()
|
|
153
|
+
}, {
|
|
154
|
+
key: "connectToKernel",
|
|
155
|
+
value: function () {
|
|
156
|
+
var _connectToKernel = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(options) {
|
|
157
|
+
var kernelConnection;
|
|
158
|
+
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
159
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
160
|
+
case 0:
|
|
161
|
+
kernelConnection = this.kernelConnectionFactory(options);
|
|
162
|
+
this.startKernel(kernelConnection);
|
|
163
|
+
this.connectToKernelEmitter.fire(kernelConnection);
|
|
164
|
+
return _context3.abrupt("return", kernelConnection);
|
|
165
|
+
case 4:
|
|
166
|
+
case "end":
|
|
167
|
+
return _context3.stop();
|
|
168
|
+
}
|
|
169
|
+
}, _callee3, this);
|
|
170
|
+
}));
|
|
171
|
+
function connectToKernel(_x2) {
|
|
172
|
+
return _connectToKernel.apply(this, arguments);
|
|
173
|
+
}
|
|
174
|
+
return connectToKernel;
|
|
175
|
+
}() // 通过kernel id判断kernel是否仍然存在
|
|
176
|
+
}, {
|
|
177
|
+
key: "isKernelAlive",
|
|
178
|
+
value: function () {
|
|
179
|
+
var _isKernelAlive = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(id) {
|
|
180
|
+
var data;
|
|
181
|
+
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
182
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
183
|
+
case 0:
|
|
184
|
+
_context4.prev = 0;
|
|
185
|
+
_context4.next = 3;
|
|
186
|
+
return this.kernelRestAPI.getKernelModel(id);
|
|
187
|
+
case 3:
|
|
188
|
+
data = _context4.sent;
|
|
189
|
+
return _context4.abrupt("return", !!data);
|
|
190
|
+
case 7:
|
|
191
|
+
_context4.prev = 7;
|
|
192
|
+
_context4.t0 = _context4["catch"](0);
|
|
193
|
+
return _context4.abrupt("return", false);
|
|
194
|
+
case 10:
|
|
195
|
+
case "end":
|
|
196
|
+
return _context4.stop();
|
|
197
|
+
}
|
|
198
|
+
}, _callee4, this, [[0, 7]]);
|
|
199
|
+
}));
|
|
200
|
+
function isKernelAlive(_x3) {
|
|
201
|
+
return _isKernelAlive.apply(this, arguments);
|
|
202
|
+
}
|
|
203
|
+
return isKernelAlive;
|
|
204
|
+
}()
|
|
205
|
+
}, {
|
|
206
|
+
key: "startKernel",
|
|
207
|
+
value: function () {
|
|
208
|
+
var _startKernel = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(kernelConnection) {
|
|
209
|
+
var _this2 = this;
|
|
210
|
+
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
211
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
212
|
+
case 0:
|
|
213
|
+
kernelConnection.statusChanged(this._onStatusChanged.bind(this));
|
|
214
|
+
kernelConnection.onDisposed(function () {
|
|
215
|
+
return _this2._onDisposed.bind(_this2)(kernelConnection);
|
|
216
|
+
});
|
|
217
|
+
case 2:
|
|
218
|
+
case "end":
|
|
219
|
+
return _context5.stop();
|
|
220
|
+
}
|
|
221
|
+
}, _callee5, this);
|
|
222
|
+
}));
|
|
223
|
+
function startKernel(_x4) {
|
|
224
|
+
return _startKernel.apply(this, arguments);
|
|
225
|
+
}
|
|
226
|
+
return startKernel;
|
|
227
|
+
}()
|
|
228
|
+
}, {
|
|
229
|
+
key: "_onDisposed",
|
|
230
|
+
value: function _onDisposed(kernelConnection) {
|
|
231
|
+
this.kernelMap.delete(kernelConnection.id);
|
|
232
|
+
// A dispose emission could mean the server session is deleted, or that
|
|
233
|
+
// the kernel JS object is disposed and the kernel still exists on the
|
|
234
|
+
// server, so we refresh from the server to make sure we reflect the
|
|
235
|
+
// server state.
|
|
236
|
+
|
|
237
|
+
void this.refreshRunning().catch(function () {
|
|
238
|
+
/* no-op */
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
}, {
|
|
242
|
+
key: "_onStatusChanged",
|
|
243
|
+
value: function _onStatusChanged(status) {
|
|
244
|
+
if (status === 'dead') {
|
|
245
|
+
// We asynchronously update our list of kernels, which asynchronously
|
|
246
|
+
// will dispose them. We do not want to immediately dispose them because
|
|
247
|
+
// there may be other signal handlers that want to be called.
|
|
248
|
+
void this.refreshRunning().catch(function () {
|
|
249
|
+
/* no-op */
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* Force a refresh of the running kernels.
|
|
256
|
+
*
|
|
257
|
+
* @returns A promise that resolves when the running list has been refreshed.
|
|
258
|
+
*
|
|
259
|
+
* #### Notes
|
|
260
|
+
* This is not typically meant to be called by the user, since the
|
|
261
|
+
* manager maintains its own internal state.
|
|
262
|
+
*/
|
|
263
|
+
}, {
|
|
264
|
+
key: "refreshRunning",
|
|
265
|
+
value: function () {
|
|
266
|
+
var _refreshRunning = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {
|
|
267
|
+
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
268
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
269
|
+
case 0:
|
|
270
|
+
_context6.next = 2;
|
|
271
|
+
return getOrigin(this._pollModels).refresh();
|
|
272
|
+
case 2:
|
|
273
|
+
_context6.next = 4;
|
|
274
|
+
return getOrigin(this._pollModels).tick;
|
|
275
|
+
case 4:
|
|
276
|
+
case "end":
|
|
277
|
+
return _context6.stop();
|
|
278
|
+
}
|
|
279
|
+
}, _callee6, this);
|
|
280
|
+
}));
|
|
281
|
+
function refreshRunning() {
|
|
282
|
+
return _refreshRunning.apply(this, arguments);
|
|
283
|
+
}
|
|
284
|
+
return refreshRunning;
|
|
285
|
+
}()
|
|
286
|
+
}, {
|
|
287
|
+
key: "requestRunning",
|
|
288
|
+
value:
|
|
289
|
+
/**
|
|
290
|
+
* Execute a request to the server to poll running kernels and update state.
|
|
291
|
+
*/
|
|
292
|
+
function () {
|
|
293
|
+
var _requestRunning = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
|
|
294
|
+
var _err$response, _err$response2;
|
|
295
|
+
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
296
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
297
|
+
case 0:
|
|
298
|
+
_context7.prev = 0;
|
|
299
|
+
_context7.next = 3;
|
|
300
|
+
return this.kernelRestAPI.listRunning();
|
|
301
|
+
case 3:
|
|
302
|
+
_context7.next = 9;
|
|
303
|
+
break;
|
|
304
|
+
case 5:
|
|
305
|
+
_context7.prev = 5;
|
|
306
|
+
_context7.t0 = _context7["catch"](0);
|
|
307
|
+
// Handle network errors, as well as cases where we are on a
|
|
308
|
+
// JupyterHub and the server is not running. JupyterHub returns a
|
|
309
|
+
// 503 (<2.0) or 424 (>2.0) in that case.
|
|
310
|
+
if (_context7.t0 instanceof NetworkError || ((_err$response = _context7.t0.response) === null || _err$response === void 0 ? void 0 : _err$response.status) === 503 || ((_err$response2 = _context7.t0.response) === null || _err$response2 === void 0 ? void 0 : _err$response2.status) === 424) {
|
|
311
|
+
this.connectionFailureEmmiter.fire(_context7.t0);
|
|
312
|
+
}
|
|
313
|
+
throw _context7.t0;
|
|
314
|
+
case 9:
|
|
315
|
+
case "end":
|
|
316
|
+
return _context7.stop();
|
|
317
|
+
}
|
|
318
|
+
}, _callee7, this, [[0, 5]]);
|
|
319
|
+
}));
|
|
320
|
+
function requestRunning() {
|
|
321
|
+
return _requestRunning.apply(this, arguments);
|
|
322
|
+
}
|
|
323
|
+
return requestRunning;
|
|
324
|
+
}()
|
|
325
|
+
}]);
|
|
326
|
+
return LibroKernelManager;
|
|
327
|
+
}(), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "kernelfactory", [_dec2], {
|
|
328
|
+
configurable: true,
|
|
329
|
+
enumerable: true,
|
|
330
|
+
writable: true,
|
|
331
|
+
initializer: null
|
|
332
|
+
}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "kernelConnectionFactory", [_dec3], {
|
|
333
|
+
configurable: true,
|
|
334
|
+
enumerable: true,
|
|
335
|
+
writable: true,
|
|
336
|
+
initializer: null
|
|
337
|
+
}), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "kernelRestAPI", [_dec4], {
|
|
338
|
+
configurable: true,
|
|
339
|
+
enumerable: true,
|
|
340
|
+
writable: true,
|
|
341
|
+
initializer: null
|
|
342
|
+
}), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "kernelMap", [_dec5], {
|
|
343
|
+
configurable: true,
|
|
344
|
+
enumerable: true,
|
|
345
|
+
writable: true,
|
|
346
|
+
initializer: function initializer() {
|
|
347
|
+
return new Map();
|
|
348
|
+
}
|
|
349
|
+
})), _class2)) || _class);
|