@jupyterlite/services 0.7.2 → 0.8.0-alpha.1
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.
|
@@ -39,31 +39,8 @@ export class NotebookExporter extends BaseExporter {
|
|
|
39
39
|
*/
|
|
40
40
|
async export(model, path) {
|
|
41
41
|
var _a;
|
|
42
|
-
let content = '';
|
|
43
|
-
switch (model.format) {
|
|
44
|
-
case 'base64': {
|
|
45
|
-
const decoded = atob(model.content);
|
|
46
|
-
try {
|
|
47
|
-
// If it contains JSON, format it nicely
|
|
48
|
-
const parsed = JSON.parse(decoded);
|
|
49
|
-
content = JSON.stringify(parsed, null, 2);
|
|
50
|
-
}
|
|
51
|
-
catch {
|
|
52
|
-
// If it's not JSON, just use decoded text
|
|
53
|
-
content = decoded;
|
|
54
|
-
}
|
|
55
|
-
break;
|
|
56
|
-
}
|
|
57
|
-
case 'json': {
|
|
58
|
-
content = JSON.stringify(model.content, null, 2);
|
|
59
|
-
break;
|
|
60
|
-
}
|
|
61
|
-
case 'text': {
|
|
62
|
-
content = model.content;
|
|
63
|
-
break;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
42
|
const mime = (_a = model.mimetype) !== null && _a !== void 0 ? _a : 'application/json';
|
|
43
|
+
const content = JSON.stringify(model.content, null, 2);
|
|
67
44
|
this.triggerDownload(content, mime, path);
|
|
68
45
|
}
|
|
69
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exporters.js","sourceRoot":"","sources":["../../src/nbconvert/exporters.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAM3D;;GAEG;AACH,MAAM,OAAgB,YAAY;IAchC;;;;;;OAMG;IACO,eAAe,CAAC,OAAe,EAAE,QAAgB,EAAE,QAAgB;QAC3E,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,GAAG,QAAQ,QAAQ,kBAAkB,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/E,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC5B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAAlD;;QACE;;WAEG;QACM,aAAQ,GAAG,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"exporters.js","sourceRoot":"","sources":["../../src/nbconvert/exporters.ts"],"names":[],"mappings":"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"}
|
package/lib/session/client.js
CHANGED
|
@@ -133,15 +133,35 @@ export class LiteSessionClient {
|
|
|
133
133
|
* @param options The options to start a new session.
|
|
134
134
|
*/
|
|
135
135
|
async startNew(options) {
|
|
136
|
-
var _a, _b, _c;
|
|
136
|
+
var _a, _b, _c, _d;
|
|
137
137
|
const { path, name } = options;
|
|
138
138
|
const running = this._sessions.find((s) => s.name === name);
|
|
139
139
|
if (running) {
|
|
140
140
|
return running;
|
|
141
141
|
}
|
|
142
|
-
|
|
142
|
+
// Check if we should reuse an existing kernel (kernel.id takes precedence over name).
|
|
143
|
+
// Note: The Session.ISessionOptions type doesn't include kernel.id, but at runtime
|
|
144
|
+
// it may be passed (e.g., from SessionContext._changeKernel when sharing a kernel).
|
|
145
|
+
const requestedKernelId = (_a = options.kernel) === null || _a === void 0 ? void 0 : _a.id;
|
|
146
|
+
if (requestedKernelId) {
|
|
147
|
+
const existingSession = this._sessions.find((session) => { var _a; return ((_a = session.kernel) === null || _a === void 0 ? void 0 : _a.id) === requestedKernelId; });
|
|
148
|
+
if (existingSession) {
|
|
149
|
+
// Create a new session that shares the existing kernel
|
|
150
|
+
const id = UUID.uuid4();
|
|
151
|
+
const session = {
|
|
152
|
+
id,
|
|
153
|
+
path,
|
|
154
|
+
name: name !== null && name !== void 0 ? name : path,
|
|
155
|
+
type: 'notebook',
|
|
156
|
+
kernel: existingSession.kernel,
|
|
157
|
+
};
|
|
158
|
+
this._sessions.push(session);
|
|
159
|
+
return session;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
const kernelName = (_c = (_b = options.kernel) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : '';
|
|
143
163
|
const id = UUID.uuid4();
|
|
144
|
-
const nameOrPath = (
|
|
164
|
+
const nameOrPath = (_d = options.name) !== null && _d !== void 0 ? _d : options.path;
|
|
145
165
|
const dirname = PathExt.dirname(options.name) || PathExt.dirname(options.path);
|
|
146
166
|
const hasDrive = nameOrPath.includes(':');
|
|
147
167
|
const driveName = hasDrive ? nameOrPath.split(':')[0] : '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/session/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAIhD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAQzC;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAC5B;;;;OAIG;IACH,YAAY,OAAmC;;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/session/client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jupyterlite/services",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0-alpha.1",
|
|
4
4
|
"description": "JupyterLite - Services",
|
|
5
5
|
"homepage": "https://github.com/jupyterlite/jupyterlite",
|
|
6
6
|
"bugs": {
|
|
@@ -35,23 +35,18 @@
|
|
|
35
35
|
],
|
|
36
36
|
"scripts": {
|
|
37
37
|
"build": "tsc -b",
|
|
38
|
-
"build:test": "tsc --build tsconfig.test.json",
|
|
39
38
|
"clean": "rimraf lib && rimraf tsconfig.tsbuildinfo",
|
|
40
39
|
"docs": "typedoc src",
|
|
41
40
|
"prepublishOnly": "npm run build",
|
|
42
|
-
"test": "jest",
|
|
43
|
-
"test:cov": "jest --collect-coverage",
|
|
44
|
-
"test:debug": "node --inspect-brk node_modules/.bin/jest --runInBand",
|
|
45
|
-
"test:debug:watch": "node --inspect-brk node_modules/.bin/jest --runInBand --watch",
|
|
46
41
|
"watch": "tsc -b --watch"
|
|
47
42
|
},
|
|
48
43
|
"dependencies": {
|
|
49
|
-
"@jupyterlab/coreutils": "~6.
|
|
50
|
-
"@jupyterlab/nbformat": "~4.
|
|
51
|
-
"@jupyterlab/observables": "~5.
|
|
52
|
-
"@jupyterlab/services": "~7.
|
|
53
|
-
"@jupyterlab/settingregistry": "~4.
|
|
54
|
-
"@jupyterlite/localforage": "^0.
|
|
44
|
+
"@jupyterlab/coreutils": "~6.6.0-alpha.2",
|
|
45
|
+
"@jupyterlab/nbformat": "~4.6.0-alpha.2",
|
|
46
|
+
"@jupyterlab/observables": "~5.6.0-alpha.2",
|
|
47
|
+
"@jupyterlab/services": "~7.6.0-alpha.2",
|
|
48
|
+
"@jupyterlab/settingregistry": "~4.6.0-alpha.2",
|
|
49
|
+
"@jupyterlite/localforage": "^0.8.0-alpha.1",
|
|
55
50
|
"@lumino/algorithm": "^2.0.4",
|
|
56
51
|
"@lumino/coreutils": "^2.2.2",
|
|
57
52
|
"@lumino/disposable": "^2.1.5",
|
|
@@ -65,14 +60,8 @@
|
|
|
65
60
|
"mock-socket": "^9.3.1"
|
|
66
61
|
},
|
|
67
62
|
"devDependencies": {
|
|
68
|
-
"@babel/core": "^7.11.6",
|
|
69
|
-
"@babel/preset-env": "^7.12.1",
|
|
70
|
-
"@jupyterlab/testutils": "~4.5.1",
|
|
71
|
-
"@types/jest": "^29.5.3",
|
|
72
63
|
"@types/mime": "^2.0.3",
|
|
73
|
-
"jest": "^29.6.2",
|
|
74
64
|
"rimraf": "~5.0.1",
|
|
75
|
-
"ts-jest": "^29.1.1",
|
|
76
65
|
"typescript": "~5.5.4"
|
|
77
66
|
},
|
|
78
67
|
"publishConfig": {
|
|
@@ -55,31 +55,8 @@ export class NotebookExporter extends BaseExporter {
|
|
|
55
55
|
* @param path The path to the notebook
|
|
56
56
|
*/
|
|
57
57
|
async export(model: Contents.IModel, path: string): Promise<void> {
|
|
58
|
-
let content = '';
|
|
59
|
-
switch (model.format) {
|
|
60
|
-
case 'base64': {
|
|
61
|
-
const decoded = atob(model.content);
|
|
62
|
-
try {
|
|
63
|
-
// If it contains JSON, format it nicely
|
|
64
|
-
const parsed = JSON.parse(decoded);
|
|
65
|
-
content = JSON.stringify(parsed, null, 2);
|
|
66
|
-
} catch {
|
|
67
|
-
// If it's not JSON, just use decoded text
|
|
68
|
-
content = decoded;
|
|
69
|
-
}
|
|
70
|
-
break;
|
|
71
|
-
}
|
|
72
|
-
case 'json': {
|
|
73
|
-
content = JSON.stringify(model.content, null, 2);
|
|
74
|
-
break;
|
|
75
|
-
}
|
|
76
|
-
case 'text': {
|
|
77
|
-
content = model.content;
|
|
78
|
-
break;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
58
|
const mime = model.mimetype ?? 'application/json';
|
|
59
|
+
const content = JSON.stringify(model.content, null, 2);
|
|
83
60
|
this.triggerDownload(content, mime, path);
|
|
84
61
|
}
|
|
85
62
|
}
|
package/src/session/client.ts
CHANGED
|
@@ -157,6 +157,30 @@ export class LiteSessionClient implements ISessionAPIClient {
|
|
|
157
157
|
if (running) {
|
|
158
158
|
return running;
|
|
159
159
|
}
|
|
160
|
+
|
|
161
|
+
// Check if we should reuse an existing kernel (kernel.id takes precedence over name).
|
|
162
|
+
// Note: The Session.ISessionOptions type doesn't include kernel.id, but at runtime
|
|
163
|
+
// it may be passed (e.g., from SessionContext._changeKernel when sharing a kernel).
|
|
164
|
+
const requestedKernelId = (options.kernel as { id?: string } | undefined)?.id;
|
|
165
|
+
if (requestedKernelId) {
|
|
166
|
+
const existingSession = this._sessions.find(
|
|
167
|
+
(session) => session.kernel?.id === requestedKernelId,
|
|
168
|
+
);
|
|
169
|
+
if (existingSession) {
|
|
170
|
+
// Create a new session that shares the existing kernel
|
|
171
|
+
const id = UUID.uuid4();
|
|
172
|
+
const session: Session.IModel = {
|
|
173
|
+
id,
|
|
174
|
+
path,
|
|
175
|
+
name: name ?? path,
|
|
176
|
+
type: 'notebook',
|
|
177
|
+
kernel: existingSession.kernel,
|
|
178
|
+
};
|
|
179
|
+
this._sessions.push(session);
|
|
180
|
+
return session;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
160
184
|
const kernelName = options.kernel?.name ?? '';
|
|
161
185
|
const id = UUID.uuid4();
|
|
162
186
|
const nameOrPath = options.name ?? options.path;
|