kernel-checkpoint 0.1.5__tar.gz → 0.1.6__tar.gz
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.
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/PKG-INFO +1 -1
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/kernel_checkpoint/_version.py +1 -1
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/kernel_checkpoint/labextension/build_log.json +1 -1
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/kernel_checkpoint/labextension/package.json +2 -2
- kernel_checkpoint-0.1.5/kernel_checkpoint/labextension/static/lib_index_js.bcb2d92b281a36765a67.js → kernel_checkpoint-0.1.6/kernel_checkpoint/labextension/static/lib_index_js.3a33b915212dd7a87b4f.js +9 -8
- kernel_checkpoint-0.1.6/kernel_checkpoint/labextension/static/lib_index_js.3a33b915212dd7a87b4f.js.map +1 -0
- kernel_checkpoint-0.1.5/kernel_checkpoint/labextension/static/remoteEntry.ff55aa1cac6b05f762e9.js → kernel_checkpoint-0.1.6/kernel_checkpoint/labextension/static/remoteEntry.2bcd73c22427069814a9.js +3 -3
- kernel_checkpoint-0.1.5/kernel_checkpoint/labextension/static/remoteEntry.ff55aa1cac6b05f762e9.js.map → kernel_checkpoint-0.1.6/kernel_checkpoint/labextension/static/remoteEntry.2bcd73c22427069814a9.js.map +1 -1
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/package.json +1 -1
- kernel_checkpoint-0.1.5/kernel_checkpoint/labextension/static/lib_index_js.bcb2d92b281a36765a67.js.map +0 -1
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/.copier-answers.yml +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/.gitignore +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/.prettierignore +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/.yarnrc.yml +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/4 +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/=4 +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/CHANGELOG.md +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/LICENSE +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/README.md +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/RELEASE.md +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/babel.config.js +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/cursor_jupyterlab_extension_for_checkpo.md +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/install.json +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/jest.config.js +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/jupyter-config/jupyter_server_config.d/kernel_checkpoint.json +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/jupyter-notebook-image/Dockerfile +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/kernel_checkpoint/Untitled.ipynb +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/kernel_checkpoint/__init__.py +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/kernel_checkpoint/handlers.py +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/kernel_checkpoint/labextension/static/style.js +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/kernel_checkpoint/labextension/static/style_index_js.c3e72438ed03e9dee0fc.js +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/kernel_checkpoint/labextension/static/style_index_js.c3e72438ed03e9dee0fc.js.map +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/pyproject.toml +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/setup.py +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/src/__tests__/kernel_checkpoint.spec.ts +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/src/api.ts +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/src/checkpoint-panel.tsx +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/src/index.ts +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/src/types.ts +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/style/base.css +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/style/index.css +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/style/index.js +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/tsconfig.json +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/tsconfig.test.json +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/ui-tests/README.md +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/ui-tests/jupyter_server_test_config.py +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/ui-tests/package.json +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/ui-tests/playwright.config.js +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/ui-tests/tests/kernel_checkpoint.spec.ts +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/ui-tests/yarn.lock +0 -0
- {kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/yarn.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kernel_checkpoint
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.6
|
|
4
4
|
Summary: An extension for saving and restoring kernel pod state with jupyter enterprise gateway
|
|
5
5
|
Project-URL: Homepage, https://github.com/lehuannhatrang/kernel-checkpoint-extension.git
|
|
6
6
|
Project-URL: Bug Tracker, https://github.com/lehuannhatrang/kernel-checkpoint-extension.git/issues
|
{kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/kernel_checkpoint/labextension/package.json
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kernel-checkpoint",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "An extension for saving and restoring kernel pod state with jupyter enterprise gateway",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jupyter",
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
},
|
|
115
115
|
"outputDir": "kernel_checkpoint/labextension",
|
|
116
116
|
"_build": {
|
|
117
|
-
"load": "static/remoteEntry.
|
|
117
|
+
"load": "static/remoteEntry.2bcd73c22427069814a9.js",
|
|
118
118
|
"extension": "./extension",
|
|
119
119
|
"style": "./style"
|
|
120
120
|
}
|
|
@@ -231,17 +231,17 @@ function CheckpointPanel(props) {
|
|
|
231
231
|
}
|
|
232
232
|
};
|
|
233
233
|
const handleRestore = async (checkpointName) => {
|
|
234
|
-
var _a, _b
|
|
234
|
+
var _a, _b;
|
|
235
235
|
setConfirmRestore(null);
|
|
236
236
|
setRestoring(checkpointName);
|
|
237
237
|
setFlash(null);
|
|
238
238
|
try {
|
|
239
239
|
const detail = await _api__WEBPACK_IMPORTED_MODULE_1__.CheckpointAPI.getCheckpoint(namespace, checkpointName);
|
|
240
|
-
const
|
|
241
|
-
if (!
|
|
240
|
+
const checkpointFile = (_a = detail.checkpointFiles) === null || _a === void 0 ? void 0 : _a[0];
|
|
241
|
+
if (!(checkpointFile === null || checkpointFile === void 0 ? void 0 : checkpointFile.storagePath)) {
|
|
242
242
|
throw new Error('No checkpoint file path available for this checkpoint');
|
|
243
243
|
}
|
|
244
|
-
await onRestore(checkpointName,
|
|
244
|
+
await onRestore(checkpointName, checkpointFile.storagePath, checkpointFile.containerName);
|
|
245
245
|
setFlash({
|
|
246
246
|
type: 'success',
|
|
247
247
|
text: `Kernel restored from "${checkpointName}". The kernel is restarting.`
|
|
@@ -250,7 +250,7 @@ function CheckpointPanel(props) {
|
|
|
250
250
|
catch (err) {
|
|
251
251
|
setFlash({
|
|
252
252
|
type: 'error',
|
|
253
|
-
text: (
|
|
253
|
+
text: (_b = err.message) !== null && _b !== void 0 ? _b : 'Failed to restore checkpoint'
|
|
254
254
|
});
|
|
255
255
|
}
|
|
256
256
|
finally {
|
|
@@ -451,7 +451,7 @@ const plugin = {
|
|
|
451
451
|
}
|
|
452
452
|
const kernelId = kernel.id;
|
|
453
453
|
const kernelSpecName = kernel.name || 'python_kubernetes';
|
|
454
|
-
const onRestore = async (checkpointName, checkpointFilePath) => {
|
|
454
|
+
const onRestore = async (checkpointName, checkpointFilePath, containerName) => {
|
|
455
455
|
const settings = _jupyterlab_services__WEBPACK_IMPORTED_MODULE_3__.ServerConnection.makeSettings();
|
|
456
456
|
const kernelUrl = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__.URLExt.join(settings.baseUrl, 'api', 'kernels');
|
|
457
457
|
const response = await _jupyterlab_services__WEBPACK_IMPORTED_MODULE_3__.ServerConnection.makeRequest(kernelUrl, {
|
|
@@ -461,7 +461,8 @@ const plugin = {
|
|
|
461
461
|
name: kernelSpecName,
|
|
462
462
|
env: {
|
|
463
463
|
KERNEL_CHECKPOINT_NAME: checkpointName,
|
|
464
|
-
KERNEL_CHECKPOINT_FILE_PATH: checkpointFilePath
|
|
464
|
+
KERNEL_CHECKPOINT_FILE_PATH: checkpointFilePath,
|
|
465
|
+
KERNEL_CHECKPOINT_CONTAINER_NAME: containerName
|
|
465
466
|
}
|
|
466
467
|
})
|
|
467
468
|
}, settings);
|
|
@@ -505,4 +506,4 @@ const plugin = {
|
|
|
505
506
|
/***/ }
|
|
506
507
|
|
|
507
508
|
}]);
|
|
508
|
-
//# sourceMappingURL=lib_index_js.
|
|
509
|
+
//# sourceMappingURL=lib_index_js.3a33b915212dd7a87b4f.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lib_index_js.3a33b915212dd7a87b4f.js","mappings":";;;;;;;;;;;;;;;;;AAA+C;AACS;AAQxD,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAE1C,SAAS,WAAW,CAClB,QAAgB,EAChB,OAAoB,EAAE;IAEtB,MAAM,QAAQ,GAAG,kEAAgB,CAAC,YAAY,EAAE,CAAC;IACjD,MAAM,GAAG,GAAG,yDAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;IACnE,OAAO,kEAAgB,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,QAAQ,CAAC,MAAc,EAAE,IAAS;IACzC,OAAO;QACL,MAAM;QACN,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,cAAc,CAAI,QAAkB;IACjD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC;QAAC,WAAM,CAAC;YACP,iBAAiB;QACnB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC;AAEM,IAAU,aAAa,CAkE7B;AAlED,WAAiB,aAAa;IACrB,KAAK,UAAU,SAAS;QAC7B,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;QACzC,OAAO,cAAc,CAAoB,IAAI,CAAC,CAAC;IACjD,CAAC;IAHqB,uBAAS,YAG9B;IAEM,KAAK,UAAU,eAAe,CACnC,SAAiB;QAEjB,MAAM,IAAI,GAAG,MAAM,WAAW,CAC5B,yBAAyB,kBAAkB,CAAC,SAAS,CAAC,EAAE,CACzD,CAAC;QACF,OAAO,cAAc,CAA0B,IAAI,CAAC,CAAC;IACvD,CAAC;IAPqB,6BAAe,kBAOpC;IAEM,KAAK,UAAU,aAAa,CACjC,SAAiB,EACjB,IAAY;QAEZ,MAAM,IAAI,GAAG,MAAM,WAAW,CAC5B,eAAe,kBAAkB,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAC3E,CAAC;QACF,OAAO,cAAc,CAAc,IAAI,CAAC,CAAC;IAC3C,CAAC;IARqB,2BAAa,gBAQlC;IAEM,KAAK,UAAU,gBAAgB,CACpC,OAAiC;QAEjC,MAAM,IAAI,GAAG,MAAM,WAAW,CAC5B,aAAa,EACb,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAC1B,CAAC;QACF,OAAO,cAAc,CAAc,IAAI,CAAC,CAAC;IAC3C,CAAC;IARqB,8BAAgB,mBAQrC;IAEM,KAAK,UAAU,gBAAgB,CACpC,SAAiB,EACjB,IAAY;QAEZ,MAAM,IAAI,GAAG,MAAM,WAAW,CAC5B,eAAe,kBAAkB,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAC1E,EAAE,MAAM,EAAE,QAAQ,EAAE,CACrB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC/B,MAAM,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC9D,CAAC;YAAC,WAAM,CAAC;gBACP,iBAAiB;YACnB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAlBqB,8BAAgB,mBAkBrC;IAEM,KAAK,UAAU,gBAAgB,CACpC,SAAiB,EACjB,IAAY,EACZ,IAAyB;QAEzB,MAAM,IAAI,GAAG,MAAM,WAAW,CAC5B,eAAe,kBAAkB,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAC1E,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CACtB,CAAC;QACF,OAAO,cAAc,CAAc,IAAI,CAAC,CAAC;IAC3C,CAAC;IAVqB,8BAAgB,mBAUrC;AACH,CAAC,EAlEgB,aAAa,KAAb,aAAa,QAkE7B;;;;;;;;;;;;;;;;;;AC5G+D;AAE1B;AAEtC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAEtC,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACrD,CAAC;AAED,SAAS,cAAc,CAAC,EAAE,KAAK,EAAqB;IAClD,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvD,OAAO,qEAAM,SAAS,EAAE,qBAAqB,GAAG,EAAE,IAAG,OAAO,CAAQ,CAAC;AACvE,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC;AACxC,CAAC;AAEM,SAAS,eAAe,CAAC,KAA4B;IAC1D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAEjD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,+CAAQ,CAAgB,EAAE,CAAC,CAAC;IAClE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,+CAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,+CAAQ,CAAgB,IAAI,CAAC,CAAC;IAExD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,+CAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,+CAAQ,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,+CAAQ,CAAC,KAAK,CAAC,CAAC;IAEhD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,+CAAQ,CAAgB,IAAI,CAAC,CAAC;IAChE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,+CAAQ,CAAgB,IAAI,CAAC,CAAC;IAC1E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,+CAAQ,CAAqB,IAAI,CAAC,CAAC;IAEvE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,+CAAQ,CAAgB,IAAI,CAAC,CAAC;IACtE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,+CAAQ,CAAC,EAAE,CAAC,CAAC;IAEnD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,+CAAQ,CAGxB,IAAI,CAAC,CAAC;IAEhB,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,+CAAQ,CAAgB,IAAI,CAAC,CAAC;IACxE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,+CAAQ,CAAgB,IAAI,CAAC,CAAC;IAE1E,wEAAwE;IACxE,yEAAyE;IACzE,wEAAwE;IAExE,MAAM,gBAAgB,GAAG,kDAAW,CAAC,KAAK,IAAI,EAAE;;QAC9C,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,+CAAa,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YAC9D,cAAc,CAAC,YAAM,CAAC,KAAK,mCAAI,EAAE,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,QAAQ,CAAC,SAAG,CAAC,OAAO,mCAAI,4BAA4B,CAAC,CAAC;QACxD,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,gDAAS,CAAC,GAAG,EAAE;QACb,gBAAgB,EAAE,CAAC;IACrB,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,gDAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,GAAG,WAAW,CAAC,gBAAgB,EAAE,2BAA2B,GAAG,IAAI,CAAC,CAAC;QAC7E,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,wEAAwE;IACxE,yEAAyE;IACzE,wEAAwE;IAExE,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE;;QAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,+CAAa,CAAC,gBAAgB,CAAC;gBACnC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;gBACpB,SAAS;gBACT,QAAQ;gBACR,UAAU,EAAE,KAAK;aAClB,CAAC,CAAC;YACH,UAAU,CAAC,EAAE,CAAC,CAAC;YACf,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACzB,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,kCAAkC,EAAE,CAAC,CAAC;YACxE,MAAM,gBAAgB,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,QAAQ,CAAC;gBACP,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAG,CAAC,OAAO,mCAAI,6BAA6B;aACnD,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,WAAW,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;;QAC1C,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,+CAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACtD,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,IAAI,YAAY,EAAE,CAAC,CAAC;YACrE,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;gBAC5B,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACxB,aAAa,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;YACD,MAAM,gBAAgB,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,QAAQ,CAAC;gBACP,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAG,CAAC,OAAO,mCAAI,6BAA6B;aACnD,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;;QAC9C,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACxB,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,+CAAa,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAClE,aAAa,CAAC,MAAM,CAAC,CAAC;YACtB,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,QAAQ,CAAC;gBACP,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAG,CAAC,OAAO,mCAAI,kCAAkC;aACxD,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,EAAE,cAAsB,EAAE,EAAE;;QACrD,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACxB,YAAY,CAAC,cAAc,CAAC,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,+CAAa,CAAC,aAAa,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;YAC5E,MAAM,cAAc,GAAG,YAAM,CAAC,eAAe,0CAAG,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,eAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,WAAW,GAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;YAC3E,CAAC;YACD,MAAM,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;YAC1F,QAAQ,CAAC;gBACP,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,yBAAyB,cAAc,8BAA8B;aAC5E,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,QAAQ,CAAC;gBACP,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAG,CAAC,OAAO,mCAAI,8BAA8B;aACpD,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;;QAC7C,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACpC,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,+CAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE;gBACvD,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;YACH,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,0BAA0B,OAAO,IAAI,EAAE,CAAC,CAAC;YAC3E,MAAM,gBAAgB,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,QAAQ,CAAC;gBACP,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAG,CAAC,OAAO,mCAAI,6BAA6B;aACnD,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,wEAAwE;IACxE,yEAAyE;IACzE,wEAAwE;IAExE,OAAO,CACL,oEAAK,SAAS,EAAC,UAAU;QAEtB,KAAK,IAAI,CACR,oEAAK,SAAS,EAAE,qBAAqB,KAAK,CAAC,IAAI,EAAE;YAC/C,yEAAO,KAAK,CAAC,IAAI,CAAQ;YACzB,uEACE,SAAS,EAAC,gBAAgB,EAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,aAGtB,CACL,CACP;QAGD,oEAAK,SAAS,EAAC,mBAAmB,IAC/B,CAAC,cAAc,CAAC,CAAC,CAAC,CACjB,uEACE,SAAS,EAAC,uBAAuB,EACjC,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,wBAG/B,CACV,CAAC,CAAC,CAAC,CACF,oEAAK,SAAS,EAAC,gBAAgB;YAC7B,sEACE,SAAS,EAAC,UAAU,EACpB,IAAI,EAAC,MAAM,EACX,WAAW,EAAC,6BAAwB,EACpC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,SAAS,EAAE,CAAC,CAAC,EAAE;oBACb,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;wBACtB,YAAY,EAAE,CAAC;oBACjB,CAAC;gBACH,CAAC,EACD,SAAS,QACT,QAAQ,EAAE,QAAQ,GAClB;YACF,uEACE,SAAS,EAAC,uBAAuB,EACjC,QAAQ,EAAE,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EACrC,OAAO,EAAE,YAAY,IAEpB,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CACvB;YACT,uEACE,SAAS,EAAC,QAAQ,EAClB,OAAO,EAAE,GAAG,EAAE;oBACZ,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBACzB,UAAU,CAAC,EAAE,CAAC,CAAC;gBACjB,CAAC,aAGM,CACL,CACP,CACG;QAGN,oEAAK,SAAS,EAAC,SAAS,IACrB,OAAO,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACrC,oEAAK,SAAS,EAAC,gBAAgB,gCAA2B,CAC3D,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CACV,oEAAK,SAAS,EAAC,qCAAqC,IAAE,KAAK,CAAO,CACnE,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC7B,oEAAK,SAAS,EAAC,gBAAgB,+EAGzB,CACP,CAAC,CAAC,CAAC,CACF,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CACpB,oEAAK,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,EAAC,SAAS;YAEpC,oEAAK,SAAS,EAAC,gBAAgB;gBAC7B,oEAAK,SAAS,EAAC,cAAc;oBAC1B,YAAY,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAC1B,oEAAK,SAAS,EAAC,gBAAgB;wBAC7B,sEACE,SAAS,EAAC,sBAAsB,EAChC,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC7C,SAAS,EAAE,CAAC,CAAC,EAAE;gCACb,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;oCACtB,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gCACxB,CAAC;gCACD,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;oCACvB,eAAe,CAAC,IAAI,CAAC,CAAC;gCACxB,CAAC;4BACH,CAAC,EACD,SAAS,SACT;wBACF,uEACE,SAAS,EAAC,kBAAkB,EAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,SAG7B;wBACT,uEACE,SAAS,EAAC,kBAAkB,EAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,aAG7B,CACL,CACP,CAAC,CAAC,CAAC,CACF,qEAAM,SAAS,EAAC,cAAc,EAAC,KAAK,EAAE,EAAE,CAAC,IAAI,IAC1C,EAAE,CAAC,IAAI,CACH,CACR;oBACD,oEAAK,SAAS,EAAC,cAAc;wBAC3B,2DAAC,cAAc,IAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAI;wBACnC,qEAAM,SAAS,EAAC,cAAc,IAC3B,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,CACpB,CACH,CACF;gBAEN,oEAAK,SAAS,EAAC,iBAAiB;oBAC9B,uEACE,SAAS,EAAC,kBAAkB,EAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,IAEvC,cAAc,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CACzC;oBACT,uEACE,SAAS,EAAC,kBAAkB,EAC5B,OAAO,EAAE,GAAG,EAAE;4BACZ,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;4BACzB,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;wBAC1B,CAAC,aAGM;oBACR,aAAa,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3B;wBACE,qEAAM,SAAS,EAAC,kBAAkB,cAAe;wBACjD,uEACE,SAAS,EAAC,gCAAgC,EAC1C,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,UAG7B;wBACT,uEACE,SAAS,EAAC,kBAAkB,EAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAG9B,CACR,CACJ,CAAC,CAAC,CAAC,CACF,uEACE,SAAS,EAAC,gCAAgC,EAC1C,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,aAGjC,CACV;oBACA,cAAc,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAC5B;wBACE,qEAAM,SAAS,EAAC,kBAAkB,eAAgB;wBAClD,uEACE,SAAS,EAAC,iCAAiC,EAC3C,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,UAG9B;wBACT,uEACE,SAAS,EAAC,kBAAkB,EAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAG/B,CACR,CACJ,CAAC,CAAC,CAAC,CACF,uEACE,SAAS,EAAC,iCAAiC,EAC3C,QAAQ,EACN,SAAS,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,KAAK,WAAW,EAEhD,KAAK,EACH,EAAE,CAAC,KAAK,KAAK,WAAW;4BACtB,CAAC,CAAC,yCAAyC;4BAC3C,CAAC,CAAC,8BAA8B,EAEpC,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,IAExC,SAAS,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAC1C,CACV,CACG,CACF;YAGL,cAAc,KAAK,EAAE,CAAC,IAAI,IAAI,UAAU,IAAI,CAC3C,oEAAK,SAAS,EAAC,WAAW;gBACxB,oEAAK,SAAS,EAAC,eAAe;oBAC5B,qEAAM,SAAS,EAAC,iBAAiB,aAAc;oBAC/C,yEAAO,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAQ,CAC5C;gBACN,oEAAK,SAAS,EAAC,eAAe;oBAC5B,qEAAM,SAAS,EAAC,iBAAiB,cAAe;oBAChD,yEAAO,UAAU,CAAC,OAAO,CAAQ,CAC7B;gBACL,UAAU,CAAC,MAAM,IAAI,CACpB,oEAAK,SAAS,EAAC,eAAe;oBAC5B,qEAAM,SAAS,EAAC,iBAAiB,UAAW;oBAC5C,yEAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAQ,CACjC,CACP;gBACA,UAAU,CAAC,eAAe;oBACzB,UAAU,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,CACvC,oEAAK,SAAS,EAAC,mBAAmB;oBAChC,qEAAM,SAAS,EAAC,iBAAiB,uBAE1B;oBACN,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACxC,oEAAK,GAAG,EAAE,CAAC,EAAE,SAAS,EAAC,gBAAgB;wBACrC,yEAAO,CAAC,CAAC,aAAa,CAAQ;wBAC9B,qEAAM,SAAS,EAAC,gBAAgB,IAC7B,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CACxB,CACH,CACP,CAAC,CACE,CACP;gBACF,UAAU,CAAC,WAAW;oBACrB,UAAU,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CACnC,oEAAK,SAAS,EAAC,mBAAmB;oBAChC,qEAAM,SAAS,EAAC,iBAAiB,mBAAoB;oBACpD,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CACtC,oEAAK,GAAG,EAAE,CAAC,EAAE,SAAS,EAAC,gBAAgB;wBACrC,qEAAM,SAAS,EAAC,sBAAsB,IACnC,GAAG,CAAC,SAAS,CACT;wBACP,qEAAM,SAAS,EAAC,gBAAgB,IAC7B,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CACrB,CACH,CACP,CAAC,CACE,CACP,CACC,CACP,CACG,CACP,CAAC,CACH,CACG,CAEF,CACP,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxbsE;AAMzC;AACiB;AACS;AAC9B;AAE2B;AACf;AAGtC;;;GAGG;AACH,MAAM,oBAAqB,SAAQ,6DAAW;IAG5C,YAAY,KAA4B;QACtC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAClC,CAAC;IAES,MAAM;QACd,OAAO,0DAAmB,CAAC,8DAAe,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;CACF;AAED,MAAM,UAAU,GAAG,wBAAwB,CAAC;AAE5C,MAAM,MAAM,GAAgC;IAC1C,EAAE,EAAE,0BAA0B;IAC9B,WAAW,EACT,wFAAwF;IAC1F,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,CAAC,kEAAgB,CAAC;IAC5B,QAAQ,EAAE,CAAC,GAAoB,EAAE,eAAiC,EAAE,EAAE;QACpE,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;QAEpE,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE;YAClC,KAAK,EAAE,eAAe;YACtB,OAAO,EAAE,2BAA2B;YACpC,OAAO,EAAE,KAAK,IAAI,EAAE;;gBAClB,MAAM,KAAK,GAAG,eAAe,CAAC,aAAa,CAAC;gBAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO;gBACT,CAAC;gBAED,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;gBAC5C,MAAM,cAAc,CAAC,KAAK,CAAC;gBAE3B,IAAI,MAAM,CAAC;gBACX,IAAI,CAAC;oBACH,MAAM,GAAG,MAAM,+CAAa,CAAC,SAAS,EAAE,CAAC;gBAC3C,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,gEAAU,CAAC;wBACf,KAAK,EAAE,qBAAqB;wBAC5B,IAAI,EAAE,4EAA4E;wBAClF,OAAO,EAAE,CAAC,wDAAM,CAAC,QAAQ,EAAE,CAAC;qBAC7B,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;oBACtB,MAAM,gEAAU,CAAC;wBACf,KAAK,EAAE,qBAAqB;wBAC5B,IAAI,EAAE,kGAAkG;wBACxG,OAAO,EAAE,CAAC,wDAAM,CAAC,QAAQ,EAAE,CAAC;qBAC7B,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,MAAM,MAAM,GAAG,oBAAc,CAAC,OAAO,0CAAE,MAAM,CAAC;gBAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,gEAAU,CAAC;wBACf,KAAK,EAAE,WAAW;wBAClB,IAAI,EAAE,sDAAsD;wBAC5D,OAAO,EAAE,CAAC,wDAAM,CAAC,QAAQ,EAAE,CAAC;qBAC7B,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;gBAC3B,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,IAAI,mBAAmB,CAAC;gBAE1D,MAAM,SAAS,GAAG,KAAK,EAAE,cAAsB,EAAE,kBAA0B,EAAE,aAAqB,EAAiB,EAAE;oBACnH,MAAM,QAAQ,GAAG,kEAAgB,CAAC,YAAY,EAAE,CAAC;oBACjD,MAAM,SAAS,GAAG,yDAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;oBAElE,MAAM,QAAQ,GAAG,MAAM,kEAAgB,CAAC,WAAW,CACjD,SAAS,EACT;wBACE,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;wBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,IAAI,EAAE,cAAc;4BACpB,GAAG,EAAE;gCACH,sBAAsB,EAAE,cAAc;gCACtC,2BAA2B,EAAE,kBAAkB;gCAC/C,gCAAgC,EAAE,aAAa;6BAChD;yBACF,CAAC;qBACH,EACD,QAAQ,CACT,CAAC;oBAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;wBACjB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;wBACtC,MAAM,IAAI,KAAK,CAAC,qCAAqC,OAAO,EAAE,CAAC,CAAC;oBAClE,CAAC;oBAED,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACzC,MAAM,cAAc,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3D,CAAC,CAAC;gBAEF,MAAM,IAAI,GAAG,IAAI,oBAAoB,CAAC;oBACpC,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,QAAQ;oBACR,cAAc;oBACd,SAAS;iBACV,CAAC,CAAC;gBAEH,MAAM,gEAAU,CAAC;oBACf,KAAK,EAAE,oBAAoB;oBAC3B,IAAI;oBACJ,OAAO,EAAE,CAAC,wDAAM,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;iBACnD,CAAC,CAAC;gBAEH,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,CAAC;SACF,CAAC,CAAC;QAEH,oDAAoD;QACpD,eAAe,CAAC,WAAW,CAAC,OAAO,CACjC,CAAC,OAAyB,EAAE,KAAoB,EAAE,EAAE;YAClD,MAAM,MAAM,GAAG,IAAI,+DAAa,CAAC;gBAC/B,KAAK,EAAE,eAAe;gBACtB,OAAO,EAAE,gCAAgC;gBACzC,OAAO,EAAE,GAAG,EAAE;oBACZ,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACnC,CAAC;aACF,CAAC,CAAC;YACH,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;QAC5D,CAAC,CACF,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,iEAAe,MAAM,EAAC","sources":["webpack://kernel-checkpoint/./src/api.ts","webpack://kernel-checkpoint/./src/checkpoint-panel.tsx","webpack://kernel-checkpoint/./src/index.ts"],"sourcesContent":["import { URLExt } from '@jupyterlab/coreutils';\nimport { ServerConnection } from '@jupyterlab/services';\nimport {\n ICheckpointConfig,\n ICheckpointListResponse,\n ICheckpoint,\n ICreateCheckpointRequest\n} from './types';\n\nconst API_NAMESPACE = 'kernel-checkpoint';\n\nfunction makeRequest(\n endpoint: string,\n init: RequestInit = {}\n): Promise<Response> {\n const settings = ServerConnection.makeSettings();\n const url = URLExt.join(settings.baseUrl, API_NAMESPACE, endpoint);\n return ServerConnection.makeRequest(url, init, settings);\n}\n\nfunction jsonInit(method: string, data: any): RequestInit {\n return {\n method,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(data)\n };\n}\n\nasync function handleResponse<T>(response: Response): Promise<T> {\n if (!response.ok) {\n let detail = response.statusText;\n try {\n const body = await response.json();\n detail = body.message || body.error || JSON.stringify(body);\n } catch {\n // use statusText\n }\n throw new Error(detail);\n }\n return response.json();\n}\n\nexport namespace CheckpointAPI {\n export async function getConfig(): Promise<ICheckpointConfig> {\n const resp = await makeRequest('config');\n return handleResponse<ICheckpointConfig>(resp);\n }\n\n export async function listCheckpoints(\n namespace: string\n ): Promise<ICheckpointListResponse> {\n const resp = await makeRequest(\n `checkpoints?namespace=${encodeURIComponent(namespace)}`\n );\n return handleResponse<ICheckpointListResponse>(resp);\n }\n\n export async function getCheckpoint(\n namespace: string,\n name: string\n ): Promise<ICheckpoint> {\n const resp = await makeRequest(\n `checkpoints/${encodeURIComponent(namespace)}/${encodeURIComponent(name)}`\n );\n return handleResponse<ICheckpoint>(resp);\n }\n\n export async function createCheckpoint(\n request: ICreateCheckpointRequest\n ): Promise<ICheckpoint> {\n const resp = await makeRequest(\n 'checkpoints',\n jsonInit('POST', request)\n );\n return handleResponse<ICheckpoint>(resp);\n }\n\n export async function deleteCheckpoint(\n namespace: string,\n name: string\n ): Promise<void> {\n const resp = await makeRequest(\n `checkpoints/${encodeURIComponent(namespace)}/${encodeURIComponent(name)}`,\n { method: 'DELETE' }\n );\n if (!resp.ok) {\n let detail = resp.statusText;\n try {\n const body = await resp.json();\n detail = body.message || body.error || JSON.stringify(body);\n } catch {\n // use statusText\n }\n throw new Error(detail);\n }\n }\n\n export async function updateCheckpoint(\n namespace: string,\n name: string,\n data: Record<string, any>\n ): Promise<ICheckpoint> {\n const resp = await makeRequest(\n `checkpoints/${encodeURIComponent(namespace)}/${encodeURIComponent(name)}`,\n jsonInit('PUT', data)\n );\n return handleResponse<ICheckpoint>(resp);\n }\n}\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { ICheckpoint, ICheckpointPanelProps } from './types';\nimport { CheckpointAPI } from './api';\n\nconst CHECKPOINT_REFRESH_INTERVAL = 3;\n\nfunction mapPhaseDisplay(phase: string): string {\n return phase === 'Completed' ? 'Ready' : 'Pending';\n}\n\nfunction PhaseIndicator({ phase }: { phase: string }): JSX.Element {\n const display = mapPhaseDisplay(phase);\n const cls = display.toLowerCase().replace(/\\s+/g, '-');\n return <span className={`kc-phase kc-phase-${cls}`}>{display}</span>;\n}\n\nfunction formatDate(iso: string): string {\n return new Date(iso).toLocaleString();\n}\n\nexport function CheckpointPanel(props: ICheckpointPanelProps): JSX.Element {\n const { namespace, kernelId, onRestore } = props;\n\n const [checkpoints, setCheckpoints] = useState<ICheckpoint[]>([]);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<string | null>(null);\n\n const [showCreateForm, setShowCreateForm] = useState(false);\n const [newName, setNewName] = useState('');\n const [creating, setCreating] = useState(false);\n\n const [restoring, setRestoring] = useState<string | null>(null);\n const [expandedDetail, setExpandedDetail] = useState<string | null>(null);\n const [detailData, setDetailData] = useState<ICheckpoint | null>(null);\n\n const [renamingName, setRenamingName] = useState<string | null>(null);\n const [renameValue, setRenameValue] = useState('');\n\n const [flash, setFlash] = useState<{\n type: 'success' | 'error';\n text: string;\n } | null>(null);\n\n const [confirmDelete, setConfirmDelete] = useState<string | null>(null);\n const [confirmRestore, setConfirmRestore] = useState<string | null>(null);\n\n /* ------------------------------------------------------------------ */\n /* Data fetching */\n /* ------------------------------------------------------------------ */\n\n const fetchCheckpoints = useCallback(async () => {\n setLoading(true);\n setError(null);\n try {\n const result = await CheckpointAPI.listCheckpoints(namespace);\n setCheckpoints(result.items ?? []);\n } catch (err: any) {\n setError(err.message ?? 'Failed to load checkpoints');\n } finally {\n setLoading(false);\n }\n }, [namespace]);\n\n useEffect(() => {\n fetchCheckpoints();\n }, [fetchCheckpoints]);\n\n useEffect(() => {\n const id = setInterval(fetchCheckpoints, CHECKPOINT_REFRESH_INTERVAL * 1000);\n return () => clearInterval(id);\n }, [fetchCheckpoints]);\n\n /* ------------------------------------------------------------------ */\n /* Actions */\n /* ------------------------------------------------------------------ */\n\n const handleCreate = async () => {\n if (!newName.trim()) {\n return;\n }\n setCreating(true);\n setFlash(null);\n try {\n await CheckpointAPI.createCheckpoint({\n name: newName.trim(),\n namespace,\n kernelId,\n buildImage: false\n });\n setNewName('');\n setShowCreateForm(false);\n setFlash({ type: 'success', text: 'Checkpoint created successfully.' });\n await fetchCheckpoints();\n } catch (err: any) {\n setFlash({\n type: 'error',\n text: err.message ?? 'Failed to create checkpoint'\n });\n } finally {\n setCreating(false);\n }\n };\n\n const handleDelete = async (name: string) => {\n setFlash(null);\n setConfirmDelete(null);\n try {\n await CheckpointAPI.deleteCheckpoint(namespace, name);\n setFlash({ type: 'success', text: `Checkpoint \"${name}\" deleted.` });\n if (expandedDetail === name) {\n setExpandedDetail(null);\n setDetailData(null);\n }\n await fetchCheckpoints();\n } catch (err: any) {\n setFlash({\n type: 'error',\n text: err.message ?? 'Failed to delete checkpoint'\n });\n }\n };\n\n const handleViewStatus = async (name: string) => {\n if (expandedDetail === name) {\n setExpandedDetail(null);\n setDetailData(null);\n return;\n }\n try {\n const detail = await CheckpointAPI.getCheckpoint(namespace, name);\n setDetailData(detail);\n setExpandedDetail(name);\n } catch (err: any) {\n setFlash({\n type: 'error',\n text: err.message ?? 'Failed to get checkpoint details'\n });\n }\n };\n\n const handleRestore = async (checkpointName: string) => {\n setConfirmRestore(null);\n setRestoring(checkpointName);\n setFlash(null);\n try {\n const detail = await CheckpointAPI.getCheckpoint(namespace, checkpointName);\n const checkpointFile = detail.checkpointFiles?.[0];\n if (!checkpointFile?.storagePath) {\n throw new Error('No checkpoint file path available for this checkpoint');\n }\n await onRestore(checkpointName, checkpointFile.storagePath, checkpointFile.containerName);\n setFlash({\n type: 'success',\n text: `Kernel restored from \"${checkpointName}\". The kernel is restarting.`\n });\n } catch (err: any) {\n setFlash({\n type: 'error',\n text: err.message ?? 'Failed to restore checkpoint'\n });\n } finally {\n setRestoring(null);\n }\n };\n\n const handleRename = async (oldName: string) => {\n const trimmed = renameValue.trim();\n if (!trimmed || trimmed === oldName) {\n setRenamingName(null);\n return;\n }\n setFlash(null);\n try {\n await CheckpointAPI.updateCheckpoint(namespace, oldName, {\n name: trimmed\n });\n setRenamingName(null);\n setFlash({ type: 'success', text: `Checkpoint renamed to \"${trimmed}\".` });\n await fetchCheckpoints();\n } catch (err: any) {\n setFlash({\n type: 'error',\n text: err.message ?? 'Failed to rename checkpoint'\n });\n }\n };\n\n /* ------------------------------------------------------------------ */\n /* Render */\n /* ------------------------------------------------------------------ */\n\n return (\n <div className=\"kc-panel\">\n {/* Flash message */}\n {flash && (\n <div className={`kc-flash kc-flash-${flash.type}`}>\n <span>{flash.text}</span>\n <button\n className=\"kc-flash-close\"\n onClick={() => setFlash(null)}\n >\n ×\n </button>\n </div>\n )}\n\n {/* Create checkpoint */}\n <div className=\"kc-create-section\">\n {!showCreateForm ? (\n <button\n className=\"kc-btn kc-btn-primary\"\n onClick={() => setShowCreateForm(true)}\n >\n Save Kernel State\n </button>\n ) : (\n <div className=\"kc-create-form\">\n <input\n className=\"kc-input\"\n type=\"text\"\n placeholder=\"Enter checkpoint name…\"\n value={newName}\n onChange={e => setNewName(e.target.value)}\n onKeyDown={e => {\n if (e.key === 'Enter') {\n handleCreate();\n }\n }}\n autoFocus\n disabled={creating}\n />\n <button\n className=\"kc-btn kc-btn-primary\"\n disabled={creating || !newName.trim()}\n onClick={handleCreate}\n >\n {creating ? 'Saving…' : 'Save'}\n </button>\n <button\n className=\"kc-btn\"\n onClick={() => {\n setShowCreateForm(false);\n setNewName('');\n }}\n >\n Cancel\n </button>\n </div>\n )}\n </div>\n\n {/* Checkpoint list */}\n <div className=\"kc-list\">\n {loading && checkpoints.length === 0 ? (\n <div className=\"kc-placeholder\">Loading checkpoints…</div>\n ) : error ? (\n <div className=\"kc-placeholder kc-placeholder-error\">{error}</div>\n ) : checkpoints.length === 0 ? (\n <div className=\"kc-placeholder\">\n No checkpoints found. Click “Save Kernel State” to\n create one.\n </div>\n ) : (\n checkpoints.map(cp => (\n <div key={cp.name} className=\"kc-item\">\n {/* Header row */}\n <div className=\"kc-item-header\">\n <div className=\"kc-item-info\">\n {renamingName === cp.name ? (\n <div className=\"kc-rename-form\">\n <input\n className=\"kc-input kc-input-sm\"\n type=\"text\"\n value={renameValue}\n onChange={e => setRenameValue(e.target.value)}\n onKeyDown={e => {\n if (e.key === 'Enter') {\n handleRename(cp.name);\n }\n if (e.key === 'Escape') {\n setRenamingName(null);\n }\n }}\n autoFocus\n />\n <button\n className=\"kc-btn kc-btn-xs\"\n onClick={() => handleRename(cp.name)}\n >\n OK\n </button>\n <button\n className=\"kc-btn kc-btn-xs\"\n onClick={() => setRenamingName(null)}\n >\n Cancel\n </button>\n </div>\n ) : (\n <span className=\"kc-item-name\" title={cp.name}>\n {cp.name}\n </span>\n )}\n <div className=\"kc-item-meta\">\n <PhaseIndicator phase={cp.phase} />\n <span className=\"kc-item-date\">\n {formatDate(cp.createdAt)}\n </span>\n </div>\n </div>\n\n <div className=\"kc-item-actions\">\n <button\n className=\"kc-btn kc-btn-xs\"\n onClick={() => handleViewStatus(cp.name)}\n >\n {expandedDetail === cp.name ? 'Hide' : 'Details'}\n </button>\n <button\n className=\"kc-btn kc-btn-xs\"\n onClick={() => {\n setRenamingName(cp.name);\n setRenameValue(cp.name);\n }}\n >\n Rename\n </button>\n {confirmDelete === cp.name ? (\n <>\n <span className=\"kc-confirm-label\">Delete?</span>\n <button\n className=\"kc-btn kc-btn-xs kc-btn-danger\"\n onClick={() => handleDelete(cp.name)}\n >\n Yes\n </button>\n <button\n className=\"kc-btn kc-btn-xs\"\n onClick={() => setConfirmDelete(null)}\n >\n No\n </button>\n </>\n ) : (\n <button\n className=\"kc-btn kc-btn-xs kc-btn-danger\"\n onClick={() => setConfirmDelete(cp.name)}\n >\n Delete\n </button>\n )}\n {confirmRestore === cp.name ? (\n <>\n <span className=\"kc-confirm-label\">Restore?</span>\n <button\n className=\"kc-btn kc-btn-xs kc-btn-restore\"\n onClick={() => handleRestore(cp.name)}\n >\n Yes\n </button>\n <button\n className=\"kc-btn kc-btn-xs\"\n onClick={() => setConfirmRestore(null)}\n >\n No\n </button>\n </>\n ) : (\n <button\n className=\"kc-btn kc-btn-xs kc-btn-restore\"\n disabled={\n restoring !== null || cp.phase !== 'Completed'\n }\n title={\n cp.phase !== 'Completed'\n ? 'Checkpoint must be completed to restore'\n : 'Restore from this checkpoint'\n }\n onClick={() => setConfirmRestore(cp.name)}\n >\n {restoring === cp.name ? 'Restoring…' : 'Restore'}\n </button>\n )}\n </div>\n </div>\n\n {/* Expanded detail */}\n {expandedDetail === cp.name && detailData && (\n <div className=\"kc-detail\">\n <div className=\"kc-detail-row\">\n <span className=\"kc-detail-label\">Status</span>\n <span>{mapPhaseDisplay(detailData.phase)}</span>\n </div>\n <div className=\"kc-detail-row\">\n <span className=\"kc-detail-label\">Message</span>\n <span>{detailData.message}</span>\n </div>\n {detailData.podRef && (\n <div className=\"kc-detail-row\">\n <span className=\"kc-detail-label\">Pod</span>\n <span>{detailData.podRef.name}</span>\n </div>\n )}\n {detailData.checkpointFiles &&\n detailData.checkpointFiles.length > 0 && (\n <div className=\"kc-detail-section\">\n <span className=\"kc-detail-label\">\n Checkpoint Files\n </span>\n {detailData.checkpointFiles.map((f, i) => (\n <div key={i} className=\"kc-detail-file\">\n <span>{f.containerName}</span>\n <span className=\"kc-detail-time\">\n {formatDate(f.checkpointTime)}\n </span>\n </div>\n ))}\n </div>\n )}\n {detailData.builtImages &&\n detailData.builtImages.length > 0 && (\n <div className=\"kc-detail-section\">\n <span className=\"kc-detail-label\">Built Images</span>\n {detailData.builtImages.map((img, i) => (\n <div key={i} className=\"kc-detail-file\">\n <span className=\"kc-detail-image-name\">\n {img.imageName}\n </span>\n <span className=\"kc-detail-time\">\n {formatDate(img.buildTime)}\n </span>\n </div>\n ))}\n </div>\n )}\n </div>\n )}\n </div>\n ))\n )}\n </div>\n\n </div>\n );\n}\n","import {\n JupyterFrontEnd,\n JupyterFrontEndPlugin\n} from '@jupyterlab/application';\nimport { INotebookTracker, NotebookPanel } from '@jupyterlab/notebook';\nimport {\n Dialog,\n ReactWidget,\n showDialog,\n ToolbarButton\n} from '@jupyterlab/apputils';\nimport { URLExt } from '@jupyterlab/coreutils';\nimport { ServerConnection } from '@jupyterlab/services';\nimport React from 'react';\n\nimport { CheckpointPanel } from './checkpoint-panel';\nimport { CheckpointAPI } from './api';\nimport { ICheckpointPanelProps } from './types';\n\n/**\n * ReactWidget wrapper that hosts the CheckpointPanel React tree inside a\n * JupyterLab Dialog body.\n */\nclass CheckpointDialogBody extends ReactWidget {\n private _props: ICheckpointPanelProps;\n\n constructor(props: ICheckpointPanelProps) {\n super();\n this._props = props;\n this.addClass('kc-dialog-body');\n }\n\n protected render(): React.ReactElement {\n return React.createElement(CheckpointPanel, this._props);\n }\n}\n\nconst COMMAND_ID = 'kernel-checkpoint:open';\n\nconst plugin: JupyterFrontEndPlugin<void> = {\n id: 'kernel-checkpoint:plugin',\n description:\n 'An extension for saving and restoring kernel pod state with jupyter enterprise gateway',\n autoStart: true,\n requires: [INotebookTracker],\n activate: (app: JupyterFrontEnd, notebookTracker: INotebookTracker) => {\n console.log('JupyterLab extension kernel-checkpoint is activated!');\n\n app.commands.addCommand(COMMAND_ID, {\n label: 'Saving Points',\n caption: 'Manage kernel checkpoints',\n execute: async () => {\n const panel = notebookTracker.currentWidget;\n if (!panel) {\n return;\n }\n\n const sessionContext = panel.sessionContext;\n await sessionContext.ready;\n\n let config;\n try {\n config = await CheckpointAPI.getConfig();\n } catch (err) {\n await showDialog({\n title: 'Configuration Error',\n body: 'Failed to load checkpoint configuration. Ensure CHECKPOINT_API_URL is set.',\n buttons: [Dialog.okButton()]\n });\n return;\n }\n\n if (!config.namespace) {\n await showDialog({\n title: 'Configuration Error',\n body: 'Namespace not configured. Set CHECKPOINT_NAMESPACE environment variable or deploy in Kubernetes.',\n buttons: [Dialog.okButton()]\n });\n return;\n }\n\n const kernel = sessionContext.session?.kernel;\n if (!kernel) {\n await showDialog({\n title: 'No Kernel',\n body: 'No kernel is connected. Please start a kernel first.',\n buttons: [Dialog.okButton()]\n });\n return;\n }\n\n const kernelId = kernel.id;\n const kernelSpecName = kernel.name || 'python_kubernetes';\n\n const onRestore = async (checkpointName: string, checkpointFilePath: string, containerName: string): Promise<void> => {\n const settings = ServerConnection.makeSettings();\n const kernelUrl = URLExt.join(settings.baseUrl, 'api', 'kernels');\n\n const response = await ServerConnection.makeRequest(\n kernelUrl,\n {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n name: kernelSpecName,\n env: {\n KERNEL_CHECKPOINT_NAME: checkpointName,\n KERNEL_CHECKPOINT_FILE_PATH: checkpointFilePath,\n KERNEL_CHECKPOINT_CONTAINER_NAME: containerName\n }\n })\n },\n settings\n );\n\n if (!response.ok) {\n const errText = await response.text();\n throw new Error(`Failed to create restored kernel: ${errText}`);\n }\n\n const kernelData = await response.json();\n await sessionContext.changeKernel({ id: kernelData.id });\n };\n\n const body = new CheckpointDialogBody({\n namespace: config.namespace,\n kernelId,\n kernelSpecName,\n onRestore\n });\n\n await showDialog({\n title: 'Kernel Checkpoints',\n body,\n buttons: [Dialog.cancelButton({ label: 'Close' })]\n });\n\n body.dispose();\n }\n });\n\n // Inject a toolbar button into every notebook panel\n notebookTracker.widgetAdded.connect(\n (_sender: INotebookTracker, panel: NotebookPanel) => {\n const button = new ToolbarButton({\n label: 'Saving Points',\n tooltip: 'Open kernel checkpoint manager',\n onClick: () => {\n app.commands.execute(COMMAND_ID);\n }\n });\n panel.toolbar.insertItem(10, 'kernel-checkpoint', button);\n }\n );\n }\n};\n\nexport default plugin;\n"],"names":[],"sourceRoot":""}
|
|
@@ -130,7 +130,7 @@ __webpack_require__.d(exports, {
|
|
|
130
130
|
/******/ // This function allow to reference async chunks
|
|
131
131
|
/******/ __webpack_require__.u = (chunkId) => {
|
|
132
132
|
/******/ // return url for filenames based on template
|
|
133
|
-
/******/ return "" + chunkId + "." + {"lib_index_js":"
|
|
133
|
+
/******/ return "" + chunkId + "." + {"lib_index_js":"3a33b915212dd7a87b4f","style_index_js":"c3e72438ed03e9dee0fc"}[chunkId] + ".js";
|
|
134
134
|
/******/ };
|
|
135
135
|
/******/ })();
|
|
136
136
|
/******/
|
|
@@ -248,7 +248,7 @@ __webpack_require__.d(exports, {
|
|
|
248
248
|
/******/ var promises = [];
|
|
249
249
|
/******/ switch(name) {
|
|
250
250
|
/******/ case "default": {
|
|
251
|
-
/******/ register("kernel-checkpoint", "0.1.
|
|
251
|
+
/******/ register("kernel-checkpoint", "0.1.5", () => (__webpack_require__.e("lib_index_js").then(() => (() => (__webpack_require__(/*! ./lib/index.js */ "./lib/index.js"))))));
|
|
252
252
|
/******/ }
|
|
253
253
|
/******/ break;
|
|
254
254
|
/******/ }
|
|
@@ -559,4 +559,4 @@ __webpack_require__.d(exports, {
|
|
|
559
559
|
/******/
|
|
560
560
|
/******/ })()
|
|
561
561
|
;
|
|
562
|
-
//# sourceMappingURL=remoteEntry.
|
|
562
|
+
//# sourceMappingURL=remoteEntry.2bcd73c22427069814a9.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remoteEntry.ff55aa1cac6b05f762e9.js","mappings":";;;;;;;;;;;AAAA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC,E;;;;;;UCpCD;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;;;;WClCA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA,E;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA,E;;;;;WCPA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF,E;;;;;WCRA;WACA;WACA;WACA,8BAA8B,8EAA8E;WAC5G,E;;;;;WCJA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC,I;;;;;WCPD,wF;;;;;WCAA;WACA;WACA;WACA;WACA,uBAAuB,4BAA4B;WACnD;WACA;WACA;WACA,iBAAiB,oBAAoB;WACrC;WACA,mGAAmG,YAAY;WAC/G;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,mEAAmE,iCAAiC;WACpG;WACA;WACA;WACA,E;;;;;WCxCA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D,E;;;;;WCNA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,oJAAoJ;WACpJ;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,IAAI,aAAa;WACjB;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,E;;;;;WC7CA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,kC;;;;;WClBA;WACA;WACA,WAAW,4BAA4B,iBAAiB,EAAE,qEAAqE;WAC/H;WACA;WACA;WACA,qCAAqC,aAAa,EAAE,wDAAwD,2BAA2B,4BAA4B,2BAA2B,+CAA+C,mCAAmC;WAChR;WACA;WACA;WACA,qBAAqB,8BAA8B,SAAS,sDAAsD,gBAAgB,eAAe,KAAK,6DAA6D,SAAS,SAAS,QAAQ,eAAe,KAAK,eAAe,qGAAqG,WAAW,aAAa;WAC7Y;WACA;WACA;WACA,gBAAgB,8BAA8B,qBAAqB,YAAY,sBAAsB,SAAS,iDAAiD,6FAA6F,WAAW,uBAAuB,2BAA2B,wBAAwB,KAAK,oCAAoC,oBAAoB,wBAAwB,oBAAoB,SAAS,KAAK,yBAAyB,KAAK,gCAAgC,yBAAyB,QAAQ,eAAe,KAAK,eAAe,4DAA4D;WACtoB;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE,IAAI;WACN;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;;WAED;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM;WACN,KAAK,WAAW;WAChB;WACA,GAAG;WACH;WACA,C;;;;;WCzKA;;WAEA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA,iCAAiC;;WAEjC;WACA;WACA;WACA,KAAK;WACL,eAAe;WACf;WACA;WACA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;WACA;WACA,4G;;;;;WCrFA,mC;;;;;UEAA;UACA;UACA;UACA","sources":["webpack://kernel-checkpoint/webpack/container-entry","webpack://kernel-checkpoint/webpack/bootstrap","webpack://kernel-checkpoint/webpack/runtime/compat get default export","webpack://kernel-checkpoint/webpack/runtime/define property getters","webpack://kernel-checkpoint/webpack/runtime/ensure chunk","webpack://kernel-checkpoint/webpack/runtime/get javascript chunk filename","webpack://kernel-checkpoint/webpack/runtime/global","webpack://kernel-checkpoint/webpack/runtime/hasOwnProperty shorthand","webpack://kernel-checkpoint/webpack/runtime/load script","webpack://kernel-checkpoint/webpack/runtime/make namespace object","webpack://kernel-checkpoint/webpack/runtime/sharing","webpack://kernel-checkpoint/webpack/runtime/publicPath","webpack://kernel-checkpoint/webpack/runtime/consumes","webpack://kernel-checkpoint/webpack/runtime/jsonp chunk loading","webpack://kernel-checkpoint/webpack/runtime/nonce","webpack://kernel-checkpoint/webpack/before-startup","webpack://kernel-checkpoint/webpack/startup","webpack://kernel-checkpoint/webpack/after-startup"],"sourcesContent":["var moduleMap = {\n\t\"./index\": () => {\n\t\treturn __webpack_require__.e(\"lib_index_js\").then(() => (() => ((__webpack_require__(/*! ./lib/index.js */ \"./lib/index.js\")))));\n\t},\n\t\"./extension\": () => {\n\t\treturn __webpack_require__.e(\"lib_index_js\").then(() => (() => ((__webpack_require__(/*! ./lib/index.js */ \"./lib/index.js\")))));\n\t},\n\t\"./style\": () => {\n\t\treturn __webpack_require__.e(\"style_index_js\").then(() => (() => ((__webpack_require__(/*! ./style/index.js */ \"./style/index.js\")))));\n\t}\n};\nvar get = (module, getScope) => {\n\t__webpack_require__.R = getScope;\n\tgetScope = (\n\t\t__webpack_require__.o(moduleMap, module)\n\t\t\t? moduleMap[module]()\n\t\t\t: Promise.resolve().then(() => {\n\t\t\t\tthrow new Error('Module \"' + module + '\" does not exist in container.');\n\t\t\t})\n\t);\n\t__webpack_require__.R = undefined;\n\treturn getScope;\n};\nvar init = (shareScope, initScope) => {\n\tif (!__webpack_require__.S) return;\n\tvar name = \"default\"\n\tvar oldScope = __webpack_require__.S[name];\n\tif(oldScope && oldScope !== shareScope) throw new Error(\"Container initialization failed as it has already been initialized with a different share scope\");\n\t__webpack_require__.S[name] = shareScope;\n\treturn __webpack_require__.I(name, initScope);\n};\n\n// This exports getters to disallow modifications\n__webpack_require__.d(exports, {\n\tget: () => (get),\n\tinit: () => (init)\n});","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tif (!(moduleId in __webpack_modules__)) {\n\t\tdelete __webpack_module_cache__[moduleId];\n\t\tvar e = new Error(\"Cannot find module '\" + moduleId + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// expose the module cache\n__webpack_require__.c = __webpack_module_cache__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".\" + {\"lib_index_js\":\"bcb2d92b281a36765a67\",\"style_index_js\":\"c3e72438ed03e9dee0fc\"}[chunkId] + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"kernel-checkpoint:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.S = {};\nvar initPromises = {};\nvar initTokens = {};\n__webpack_require__.I = (name, initScope) => {\n\tif(!initScope) initScope = [];\n\t// handling circular init calls\n\tvar initToken = initTokens[name];\n\tif(!initToken) initToken = initTokens[name] = {};\n\tif(initScope.indexOf(initToken) >= 0) return;\n\tinitScope.push(initToken);\n\t// only runs once\n\tif(initPromises[name]) return initPromises[name];\n\t// creates a new share scope if needed\n\tif(!__webpack_require__.o(__webpack_require__.S, name)) __webpack_require__.S[name] = {};\n\t// runs all init snippets from all modules reachable\n\tvar scope = __webpack_require__.S[name];\n\tvar warn = (msg) => {\n\t\tif (typeof console !== \"undefined\" && console.warn) console.warn(msg);\n\t};\n\tvar uniqueName = \"kernel-checkpoint\";\n\tvar register = (name, version, factory, eager) => {\n\t\tvar versions = scope[name] = scope[name] || {};\n\t\tvar activeVersion = versions[version];\n\t\tif(!activeVersion || (!activeVersion.loaded && (!eager != !activeVersion.eager ? eager : uniqueName > activeVersion.from))) versions[version] = { get: factory, from: uniqueName, eager: !!eager };\n\t};\n\tvar initExternal = (id) => {\n\t\tvar handleError = (err) => (warn(\"Initialization of sharing external failed: \" + err));\n\t\ttry {\n\t\t\tvar module = __webpack_require__(id);\n\t\t\tif(!module) return;\n\t\t\tvar initFn = (module) => (module && module.init && module.init(__webpack_require__.S[name], initScope))\n\t\t\tif(module.then) return promises.push(module.then(initFn, handleError));\n\t\t\tvar initResult = initFn(module);\n\t\t\tif(initResult && initResult.then) return promises.push(initResult['catch'](handleError));\n\t\t} catch(err) { handleError(err); }\n\t}\n\tvar promises = [];\n\tswitch(name) {\n\t\tcase \"default\": {\n\t\t\tregister(\"kernel-checkpoint\", \"0.1.2\", () => (__webpack_require__.e(\"lib_index_js\").then(() => (() => (__webpack_require__(/*! ./lib/index.js */ \"./lib/index.js\"))))));\n\t\t}\n\t\tbreak;\n\t}\n\tif(!promises.length) return initPromises[name] = 1;\n\treturn initPromises[name] = Promise.all(promises).then(() => (initPromises[name] = 1));\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","var parseVersion = (str) => {\n\t// see webpack/lib/util/semver.js for original code\n\tvar p=p=>{return p.split(\".\").map(p=>{return+p==p?+p:p})},n=/^([^-+]+)?(?:-([^+]+))?(?:\\+(.+))?$/.exec(str),r=n[1]?p(n[1]):[];return n[2]&&(r.length++,r.push.apply(r,p(n[2]))),n[3]&&(r.push([]),r.push.apply(r,p(n[3]))),r;\n}\nvar versionLt = (a, b) => {\n\t// see webpack/lib/util/semver.js for original code\n\ta=parseVersion(a),b=parseVersion(b);for(var r=0;;){if(r>=a.length)return r<b.length&&\"u\"!=(typeof b[r])[0];var e=a[r],n=(typeof e)[0];if(r>=b.length)return\"u\"==n;var t=b[r],f=(typeof t)[0];if(n!=f)return\"o\"==n&&\"n\"==f||(\"s\"==f||\"u\"==n);if(\"o\"!=n&&\"u\"!=n&&e!=t)return e<t;r++}\n}\nvar rangeToString = (range) => {\n\t// see webpack/lib/util/semver.js for original code\n\tvar r=range[0],n=\"\";if(1===range.length)return\"*\";if(r+.5){n+=0==r?\">=\":-1==r?\"<\":1==r?\"^\":2==r?\"~\":r>0?\"=\":\"!=\";for(var e=1,a=1;a<range.length;a++){e--,n+=\"u\"==(typeof(t=range[a]))[0]?\"-\":(e>0?\".\":\"\")+(e=2,t)}return n}var g=[];for(a=1;a<range.length;a++){var t=range[a];g.push(0===t?\"not(\"+o()+\")\":1===t?\"(\"+o()+\" || \"+o()+\")\":2===t?g.pop()+\" \"+g.pop():rangeToString(t))}return o();function o(){return g.pop().replace(/^\\((.+)\\)$/,\"$1\")}\n}\nvar satisfy = (range, version) => {\n\t// see webpack/lib/util/semver.js for original code\n\tif(0 in range){version=parseVersion(version);var e=range[0],r=e<0;r&&(e=-e-1);for(var n=0,i=1,a=!0;;i++,n++){var f,s,g=i<range.length?(typeof range[i])[0]:\"\";if(n>=version.length||\"o\"==(s=(typeof(f=version[n]))[0]))return!a||(\"u\"==g?i>e&&!r:\"\"==g!=r);if(\"u\"==s){if(!a||\"u\"!=g)return!1}else if(a)if(g==s)if(i<=e){if(f!=range[i])return!1}else{if(r?f>range[i]:f<range[i])return!1;f!=range[i]&&(a=!1)}else if(\"s\"!=g&&\"n\"!=g){if(r||i<=e)return!1;a=!1,i--}else{if(i<=e||s<g!=r)return!1;a=!1}else\"s\"!=g&&\"n\"!=g&&(a=!1,i--)}}var t=[],o=t.pop.bind(t);for(n=1;n<range.length;n++){var u=range[n];t.push(1==u?o()|o():2==u?o()&o():u?satisfy(u,version):!o())}return!!o();\n}\nvar exists = (scope, key) => {\n\treturn scope && __webpack_require__.o(scope, key);\n}\nvar get = (entry) => {\n\tentry.loaded = 1;\n\treturn entry.get()\n};\nvar eagerOnly = (versions) => {\n\treturn Object.keys(versions).reduce((filtered, version) => {\n\t\t\tif (versions[version].eager) {\n\t\t\t\tfiltered[version] = versions[version];\n\t\t\t}\n\t\t\treturn filtered;\n\t}, {});\n};\nvar findLatestVersion = (scope, key, eager) => {\n\tvar versions = eager ? eagerOnly(scope[key]) : scope[key];\n\tvar key = Object.keys(versions).reduce((a, b) => {\n\t\treturn !a || versionLt(a, b) ? b : a;\n\t}, 0);\n\treturn key && versions[key];\n};\nvar findSatisfyingVersion = (scope, key, requiredVersion, eager) => {\n\tvar versions = eager ? eagerOnly(scope[key]) : scope[key];\n\tvar key = Object.keys(versions).reduce((a, b) => {\n\t\tif (!satisfy(requiredVersion, b)) return a;\n\t\treturn !a || versionLt(a, b) ? b : a;\n\t}, 0);\n\treturn key && versions[key]\n};\nvar findSingletonVersionKey = (scope, key, eager) => {\n\tvar versions = eager ? eagerOnly(scope[key]) : scope[key];\n\treturn Object.keys(versions).reduce((a, b) => {\n\t\treturn !a || (!versions[a].loaded && versionLt(a, b)) ? b : a;\n\t}, 0);\n};\nvar getInvalidSingletonVersionMessage = (scope, key, version, requiredVersion) => {\n\treturn \"Unsatisfied version \" + version + \" from \" + (version && scope[key][version].from) + \" of shared singleton module \" + key + \" (required \" + rangeToString(requiredVersion) + \")\"\n};\nvar getInvalidVersionMessage = (scope, scopeName, key, requiredVersion, eager) => {\n\tvar versions = scope[key];\n\treturn \"No satisfying version (\" + rangeToString(requiredVersion) + \")\" + (eager ? \" for eager consumption\" : \"\") + \" of shared module \" + key + \" found in shared scope \" + scopeName + \".\\n\" +\n\t\t\"Available versions: \" + Object.keys(versions).map((key) => {\n\t\treturn key + \" from \" + versions[key].from;\n\t}).join(\", \");\n};\nvar fail = (msg) => {\n\tthrow new Error(msg);\n}\nvar failAsNotExist = (scopeName, key) => {\n\treturn fail(\"Shared module \" + key + \" doesn't exist in shared scope \" + scopeName);\n}\nvar warn = /*#__PURE__*/ (msg) => {\n\tif (typeof console !== \"undefined\" && console.warn) console.warn(msg);\n};\nvar init = (fn) => (function(scopeName, key, eager, c, d) {\n\tvar promise = __webpack_require__.I(scopeName);\n\tif (promise && promise.then && !eager) {\n\t\treturn promise.then(fn.bind(fn, scopeName, __webpack_require__.S[scopeName], key, false, c, d));\n\t}\n\treturn fn(scopeName, __webpack_require__.S[scopeName], key, eager, c, d);\n});\n\nvar useFallback = (scopeName, key, fallback) => {\n\treturn fallback ? fallback() : failAsNotExist(scopeName, key);\n}\nvar load = /*#__PURE__*/ init((scopeName, scope, key, eager, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\treturn get(findLatestVersion(scope, key, eager));\n});\nvar loadVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar satisfyingVersion = findSatisfyingVersion(scope, key, requiredVersion, eager);\n\tif (satisfyingVersion) return get(satisfyingVersion);\n\twarn(getInvalidVersionMessage(scope, scopeName, key, requiredVersion, eager))\n\treturn get(findLatestVersion(scope, key, eager));\n});\nvar loadStrictVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar satisfyingVersion = findSatisfyingVersion(scope, key, requiredVersion, eager);\n\tif (satisfyingVersion) return get(satisfyingVersion);\n\tif (fallback) return fallback();\n\tfail(getInvalidVersionMessage(scope, scopeName, key, requiredVersion, eager));\n});\nvar loadSingleton = /*#__PURE__*/ init((scopeName, scope, key, eager, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar version = findSingletonVersionKey(scope, key, eager);\n\treturn get(scope[key][version]);\n});\nvar loadSingletonVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar version = findSingletonVersionKey(scope, key, eager);\n\tif (!satisfy(requiredVersion, version)) {\n\t\twarn(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));\n\t}\n\treturn get(scope[key][version]);\n});\nvar loadStrictSingletonVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar version = findSingletonVersionKey(scope, key, eager);\n\tif (!satisfy(requiredVersion, version)) {\n\t\tfail(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));\n\t}\n\treturn get(scope[key][version]);\n});\nvar installedModules = {};\nvar moduleToHandlerMapping = {\n\t\"webpack/sharing/consume/default/@jupyterlab/notebook\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/notebook\", false, [1,4,3,6])),\n\t\"webpack/sharing/consume/default/@jupyterlab/apputils\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/apputils\", false, [1,4,4,6])),\n\t\"webpack/sharing/consume/default/@jupyterlab/coreutils\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/coreutils\", false, [1,6,3,6])),\n\t\"webpack/sharing/consume/default/@jupyterlab/services\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/services\", false, [1,7,3,6])),\n\t\"webpack/sharing/consume/default/react\": () => (loadSingletonVersion(\"default\", \"react\", false, [1,18,2,0]))\n};\n// no consumes in initial chunks\nvar chunkMapping = {\n\t\"lib_index_js\": [\n\t\t\"webpack/sharing/consume/default/@jupyterlab/notebook\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/apputils\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/coreutils\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/services\",\n\t\t\"webpack/sharing/consume/default/react\"\n\t]\n};\nvar startedInstallModules = {};\n__webpack_require__.f.consumes = (chunkId, promises) => {\n\tif(__webpack_require__.o(chunkMapping, chunkId)) {\n\t\tchunkMapping[chunkId].forEach((id) => {\n\t\t\tif(__webpack_require__.o(installedModules, id)) return promises.push(installedModules[id]);\n\t\t\tif(!startedInstallModules[id]) {\n\t\t\tvar onFactory = (factory) => {\n\t\t\t\tinstalledModules[id] = 0;\n\t\t\t\t__webpack_require__.m[id] = (module) => {\n\t\t\t\t\tdelete __webpack_require__.c[id];\n\t\t\t\t\tmodule.exports = factory();\n\t\t\t\t}\n\t\t\t};\n\t\t\tstartedInstallModules[id] = true;\n\t\t\tvar onError = (error) => {\n\t\t\t\tdelete installedModules[id];\n\t\t\t\t__webpack_require__.m[id] = (module) => {\n\t\t\t\t\tdelete __webpack_require__.c[id];\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tvar promise = moduleToHandlerMapping[id]();\n\t\t\t\tif(promise.then) {\n\t\t\t\t\tpromises.push(installedModules[id] = promise.then(onFactory)['catch'](onError));\n\t\t\t\t} else onFactory(promise);\n\t\t\t} catch(e) { onError(e); }\n\t\t\t}\n\t\t});\n\t}\n}","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"kernel-checkpoint\": 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkkernel_checkpoint\"] = self[\"webpackChunkkernel_checkpoint\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","","// module cache are used so entry inlining is disabled\n// startup\n// Load entry module and return exports\nvar __webpack_exports__ = __webpack_require__(\"webpack/container/entry/kernel-checkpoint\");\n",""],"names":[],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"remoteEntry.2bcd73c22427069814a9.js","mappings":";;;;;;;;;;;AAAA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC,E;;;;;;UCpCD;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;;;;WClCA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA,E;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA,E;;;;;WCPA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF,E;;;;;WCRA;WACA;WACA;WACA,8BAA8B,8EAA8E;WAC5G,E;;;;;WCJA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC,I;;;;;WCPD,wF;;;;;WCAA;WACA;WACA;WACA;WACA,uBAAuB,4BAA4B;WACnD;WACA;WACA;WACA,iBAAiB,oBAAoB;WACrC;WACA,mGAAmG,YAAY;WAC/G;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,mEAAmE,iCAAiC;WACpG;WACA;WACA;WACA,E;;;;;WCxCA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D,E;;;;;WCNA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,oJAAoJ;WACpJ;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,IAAI,aAAa;WACjB;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,E;;;;;WC7CA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,kC;;;;;WClBA;WACA;WACA,WAAW,4BAA4B,iBAAiB,EAAE,qEAAqE;WAC/H;WACA;WACA;WACA,qCAAqC,aAAa,EAAE,wDAAwD,2BAA2B,4BAA4B,2BAA2B,+CAA+C,mCAAmC;WAChR;WACA;WACA;WACA,qBAAqB,8BAA8B,SAAS,sDAAsD,gBAAgB,eAAe,KAAK,6DAA6D,SAAS,SAAS,QAAQ,eAAe,KAAK,eAAe,qGAAqG,WAAW,aAAa;WAC7Y;WACA;WACA;WACA,gBAAgB,8BAA8B,qBAAqB,YAAY,sBAAsB,SAAS,iDAAiD,6FAA6F,WAAW,uBAAuB,2BAA2B,wBAAwB,KAAK,oCAAoC,oBAAoB,wBAAwB,oBAAoB,SAAS,KAAK,yBAAyB,KAAK,gCAAgC,yBAAyB,QAAQ,eAAe,KAAK,eAAe,4DAA4D;WACtoB;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE,IAAI;WACN;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;;WAED;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM;WACN,KAAK,WAAW;WAChB;WACA,GAAG;WACH;WACA,C;;;;;WCzKA;;WAEA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA,iCAAiC;;WAEjC;WACA;WACA;WACA,KAAK;WACL,eAAe;WACf;WACA;WACA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;WACA;WACA,4G;;;;;WCrFA,mC;;;;;UEAA;UACA;UACA;UACA","sources":["webpack://kernel-checkpoint/webpack/container-entry","webpack://kernel-checkpoint/webpack/bootstrap","webpack://kernel-checkpoint/webpack/runtime/compat get default export","webpack://kernel-checkpoint/webpack/runtime/define property getters","webpack://kernel-checkpoint/webpack/runtime/ensure chunk","webpack://kernel-checkpoint/webpack/runtime/get javascript chunk filename","webpack://kernel-checkpoint/webpack/runtime/global","webpack://kernel-checkpoint/webpack/runtime/hasOwnProperty shorthand","webpack://kernel-checkpoint/webpack/runtime/load script","webpack://kernel-checkpoint/webpack/runtime/make namespace object","webpack://kernel-checkpoint/webpack/runtime/sharing","webpack://kernel-checkpoint/webpack/runtime/publicPath","webpack://kernel-checkpoint/webpack/runtime/consumes","webpack://kernel-checkpoint/webpack/runtime/jsonp chunk loading","webpack://kernel-checkpoint/webpack/runtime/nonce","webpack://kernel-checkpoint/webpack/before-startup","webpack://kernel-checkpoint/webpack/startup","webpack://kernel-checkpoint/webpack/after-startup"],"sourcesContent":["var moduleMap = {\n\t\"./index\": () => {\n\t\treturn __webpack_require__.e(\"lib_index_js\").then(() => (() => ((__webpack_require__(/*! ./lib/index.js */ \"./lib/index.js\")))));\n\t},\n\t\"./extension\": () => {\n\t\treturn __webpack_require__.e(\"lib_index_js\").then(() => (() => ((__webpack_require__(/*! ./lib/index.js */ \"./lib/index.js\")))));\n\t},\n\t\"./style\": () => {\n\t\treturn __webpack_require__.e(\"style_index_js\").then(() => (() => ((__webpack_require__(/*! ./style/index.js */ \"./style/index.js\")))));\n\t}\n};\nvar get = (module, getScope) => {\n\t__webpack_require__.R = getScope;\n\tgetScope = (\n\t\t__webpack_require__.o(moduleMap, module)\n\t\t\t? moduleMap[module]()\n\t\t\t: Promise.resolve().then(() => {\n\t\t\t\tthrow new Error('Module \"' + module + '\" does not exist in container.');\n\t\t\t})\n\t);\n\t__webpack_require__.R = undefined;\n\treturn getScope;\n};\nvar init = (shareScope, initScope) => {\n\tif (!__webpack_require__.S) return;\n\tvar name = \"default\"\n\tvar oldScope = __webpack_require__.S[name];\n\tif(oldScope && oldScope !== shareScope) throw new Error(\"Container initialization failed as it has already been initialized with a different share scope\");\n\t__webpack_require__.S[name] = shareScope;\n\treturn __webpack_require__.I(name, initScope);\n};\n\n// This exports getters to disallow modifications\n__webpack_require__.d(exports, {\n\tget: () => (get),\n\tinit: () => (init)\n});","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tif (!(moduleId in __webpack_modules__)) {\n\t\tdelete __webpack_module_cache__[moduleId];\n\t\tvar e = new Error(\"Cannot find module '\" + moduleId + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// expose the module cache\n__webpack_require__.c = __webpack_module_cache__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".\" + {\"lib_index_js\":\"3a33b915212dd7a87b4f\",\"style_index_js\":\"c3e72438ed03e9dee0fc\"}[chunkId] + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"kernel-checkpoint:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.S = {};\nvar initPromises = {};\nvar initTokens = {};\n__webpack_require__.I = (name, initScope) => {\n\tif(!initScope) initScope = [];\n\t// handling circular init calls\n\tvar initToken = initTokens[name];\n\tif(!initToken) initToken = initTokens[name] = {};\n\tif(initScope.indexOf(initToken) >= 0) return;\n\tinitScope.push(initToken);\n\t// only runs once\n\tif(initPromises[name]) return initPromises[name];\n\t// creates a new share scope if needed\n\tif(!__webpack_require__.o(__webpack_require__.S, name)) __webpack_require__.S[name] = {};\n\t// runs all init snippets from all modules reachable\n\tvar scope = __webpack_require__.S[name];\n\tvar warn = (msg) => {\n\t\tif (typeof console !== \"undefined\" && console.warn) console.warn(msg);\n\t};\n\tvar uniqueName = \"kernel-checkpoint\";\n\tvar register = (name, version, factory, eager) => {\n\t\tvar versions = scope[name] = scope[name] || {};\n\t\tvar activeVersion = versions[version];\n\t\tif(!activeVersion || (!activeVersion.loaded && (!eager != !activeVersion.eager ? eager : uniqueName > activeVersion.from))) versions[version] = { get: factory, from: uniqueName, eager: !!eager };\n\t};\n\tvar initExternal = (id) => {\n\t\tvar handleError = (err) => (warn(\"Initialization of sharing external failed: \" + err));\n\t\ttry {\n\t\t\tvar module = __webpack_require__(id);\n\t\t\tif(!module) return;\n\t\t\tvar initFn = (module) => (module && module.init && module.init(__webpack_require__.S[name], initScope))\n\t\t\tif(module.then) return promises.push(module.then(initFn, handleError));\n\t\t\tvar initResult = initFn(module);\n\t\t\tif(initResult && initResult.then) return promises.push(initResult['catch'](handleError));\n\t\t} catch(err) { handleError(err); }\n\t}\n\tvar promises = [];\n\tswitch(name) {\n\t\tcase \"default\": {\n\t\t\tregister(\"kernel-checkpoint\", \"0.1.5\", () => (__webpack_require__.e(\"lib_index_js\").then(() => (() => (__webpack_require__(/*! ./lib/index.js */ \"./lib/index.js\"))))));\n\t\t}\n\t\tbreak;\n\t}\n\tif(!promises.length) return initPromises[name] = 1;\n\treturn initPromises[name] = Promise.all(promises).then(() => (initPromises[name] = 1));\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","var parseVersion = (str) => {\n\t// see webpack/lib/util/semver.js for original code\n\tvar p=p=>{return p.split(\".\").map(p=>{return+p==p?+p:p})},n=/^([^-+]+)?(?:-([^+]+))?(?:\\+(.+))?$/.exec(str),r=n[1]?p(n[1]):[];return n[2]&&(r.length++,r.push.apply(r,p(n[2]))),n[3]&&(r.push([]),r.push.apply(r,p(n[3]))),r;\n}\nvar versionLt = (a, b) => {\n\t// see webpack/lib/util/semver.js for original code\n\ta=parseVersion(a),b=parseVersion(b);for(var r=0;;){if(r>=a.length)return r<b.length&&\"u\"!=(typeof b[r])[0];var e=a[r],n=(typeof e)[0];if(r>=b.length)return\"u\"==n;var t=b[r],f=(typeof t)[0];if(n!=f)return\"o\"==n&&\"n\"==f||(\"s\"==f||\"u\"==n);if(\"o\"!=n&&\"u\"!=n&&e!=t)return e<t;r++}\n}\nvar rangeToString = (range) => {\n\t// see webpack/lib/util/semver.js for original code\n\tvar r=range[0],n=\"\";if(1===range.length)return\"*\";if(r+.5){n+=0==r?\">=\":-1==r?\"<\":1==r?\"^\":2==r?\"~\":r>0?\"=\":\"!=\";for(var e=1,a=1;a<range.length;a++){e--,n+=\"u\"==(typeof(t=range[a]))[0]?\"-\":(e>0?\".\":\"\")+(e=2,t)}return n}var g=[];for(a=1;a<range.length;a++){var t=range[a];g.push(0===t?\"not(\"+o()+\")\":1===t?\"(\"+o()+\" || \"+o()+\")\":2===t?g.pop()+\" \"+g.pop():rangeToString(t))}return o();function o(){return g.pop().replace(/^\\((.+)\\)$/,\"$1\")}\n}\nvar satisfy = (range, version) => {\n\t// see webpack/lib/util/semver.js for original code\n\tif(0 in range){version=parseVersion(version);var e=range[0],r=e<0;r&&(e=-e-1);for(var n=0,i=1,a=!0;;i++,n++){var f,s,g=i<range.length?(typeof range[i])[0]:\"\";if(n>=version.length||\"o\"==(s=(typeof(f=version[n]))[0]))return!a||(\"u\"==g?i>e&&!r:\"\"==g!=r);if(\"u\"==s){if(!a||\"u\"!=g)return!1}else if(a)if(g==s)if(i<=e){if(f!=range[i])return!1}else{if(r?f>range[i]:f<range[i])return!1;f!=range[i]&&(a=!1)}else if(\"s\"!=g&&\"n\"!=g){if(r||i<=e)return!1;a=!1,i--}else{if(i<=e||s<g!=r)return!1;a=!1}else\"s\"!=g&&\"n\"!=g&&(a=!1,i--)}}var t=[],o=t.pop.bind(t);for(n=1;n<range.length;n++){var u=range[n];t.push(1==u?o()|o():2==u?o()&o():u?satisfy(u,version):!o())}return!!o();\n}\nvar exists = (scope, key) => {\n\treturn scope && __webpack_require__.o(scope, key);\n}\nvar get = (entry) => {\n\tentry.loaded = 1;\n\treturn entry.get()\n};\nvar eagerOnly = (versions) => {\n\treturn Object.keys(versions).reduce((filtered, version) => {\n\t\t\tif (versions[version].eager) {\n\t\t\t\tfiltered[version] = versions[version];\n\t\t\t}\n\t\t\treturn filtered;\n\t}, {});\n};\nvar findLatestVersion = (scope, key, eager) => {\n\tvar versions = eager ? eagerOnly(scope[key]) : scope[key];\n\tvar key = Object.keys(versions).reduce((a, b) => {\n\t\treturn !a || versionLt(a, b) ? b : a;\n\t}, 0);\n\treturn key && versions[key];\n};\nvar findSatisfyingVersion = (scope, key, requiredVersion, eager) => {\n\tvar versions = eager ? eagerOnly(scope[key]) : scope[key];\n\tvar key = Object.keys(versions).reduce((a, b) => {\n\t\tif (!satisfy(requiredVersion, b)) return a;\n\t\treturn !a || versionLt(a, b) ? b : a;\n\t}, 0);\n\treturn key && versions[key]\n};\nvar findSingletonVersionKey = (scope, key, eager) => {\n\tvar versions = eager ? eagerOnly(scope[key]) : scope[key];\n\treturn Object.keys(versions).reduce((a, b) => {\n\t\treturn !a || (!versions[a].loaded && versionLt(a, b)) ? b : a;\n\t}, 0);\n};\nvar getInvalidSingletonVersionMessage = (scope, key, version, requiredVersion) => {\n\treturn \"Unsatisfied version \" + version + \" from \" + (version && scope[key][version].from) + \" of shared singleton module \" + key + \" (required \" + rangeToString(requiredVersion) + \")\"\n};\nvar getInvalidVersionMessage = (scope, scopeName, key, requiredVersion, eager) => {\n\tvar versions = scope[key];\n\treturn \"No satisfying version (\" + rangeToString(requiredVersion) + \")\" + (eager ? \" for eager consumption\" : \"\") + \" of shared module \" + key + \" found in shared scope \" + scopeName + \".\\n\" +\n\t\t\"Available versions: \" + Object.keys(versions).map((key) => {\n\t\treturn key + \" from \" + versions[key].from;\n\t}).join(\", \");\n};\nvar fail = (msg) => {\n\tthrow new Error(msg);\n}\nvar failAsNotExist = (scopeName, key) => {\n\treturn fail(\"Shared module \" + key + \" doesn't exist in shared scope \" + scopeName);\n}\nvar warn = /*#__PURE__*/ (msg) => {\n\tif (typeof console !== \"undefined\" && console.warn) console.warn(msg);\n};\nvar init = (fn) => (function(scopeName, key, eager, c, d) {\n\tvar promise = __webpack_require__.I(scopeName);\n\tif (promise && promise.then && !eager) {\n\t\treturn promise.then(fn.bind(fn, scopeName, __webpack_require__.S[scopeName], key, false, c, d));\n\t}\n\treturn fn(scopeName, __webpack_require__.S[scopeName], key, eager, c, d);\n});\n\nvar useFallback = (scopeName, key, fallback) => {\n\treturn fallback ? fallback() : failAsNotExist(scopeName, key);\n}\nvar load = /*#__PURE__*/ init((scopeName, scope, key, eager, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\treturn get(findLatestVersion(scope, key, eager));\n});\nvar loadVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar satisfyingVersion = findSatisfyingVersion(scope, key, requiredVersion, eager);\n\tif (satisfyingVersion) return get(satisfyingVersion);\n\twarn(getInvalidVersionMessage(scope, scopeName, key, requiredVersion, eager))\n\treturn get(findLatestVersion(scope, key, eager));\n});\nvar loadStrictVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar satisfyingVersion = findSatisfyingVersion(scope, key, requiredVersion, eager);\n\tif (satisfyingVersion) return get(satisfyingVersion);\n\tif (fallback) return fallback();\n\tfail(getInvalidVersionMessage(scope, scopeName, key, requiredVersion, eager));\n});\nvar loadSingleton = /*#__PURE__*/ init((scopeName, scope, key, eager, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar version = findSingletonVersionKey(scope, key, eager);\n\treturn get(scope[key][version]);\n});\nvar loadSingletonVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar version = findSingletonVersionKey(scope, key, eager);\n\tif (!satisfy(requiredVersion, version)) {\n\t\twarn(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));\n\t}\n\treturn get(scope[key][version]);\n});\nvar loadStrictSingletonVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar version = findSingletonVersionKey(scope, key, eager);\n\tif (!satisfy(requiredVersion, version)) {\n\t\tfail(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));\n\t}\n\treturn get(scope[key][version]);\n});\nvar installedModules = {};\nvar moduleToHandlerMapping = {\n\t\"webpack/sharing/consume/default/@jupyterlab/notebook\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/notebook\", false, [1,4,3,6])),\n\t\"webpack/sharing/consume/default/@jupyterlab/apputils\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/apputils\", false, [1,4,4,6])),\n\t\"webpack/sharing/consume/default/@jupyterlab/coreutils\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/coreutils\", false, [1,6,3,6])),\n\t\"webpack/sharing/consume/default/@jupyterlab/services\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/services\", false, [1,7,3,6])),\n\t\"webpack/sharing/consume/default/react\": () => (loadSingletonVersion(\"default\", \"react\", false, [1,18,2,0]))\n};\n// no consumes in initial chunks\nvar chunkMapping = {\n\t\"lib_index_js\": [\n\t\t\"webpack/sharing/consume/default/@jupyterlab/notebook\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/apputils\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/coreutils\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/services\",\n\t\t\"webpack/sharing/consume/default/react\"\n\t]\n};\nvar startedInstallModules = {};\n__webpack_require__.f.consumes = (chunkId, promises) => {\n\tif(__webpack_require__.o(chunkMapping, chunkId)) {\n\t\tchunkMapping[chunkId].forEach((id) => {\n\t\t\tif(__webpack_require__.o(installedModules, id)) return promises.push(installedModules[id]);\n\t\t\tif(!startedInstallModules[id]) {\n\t\t\tvar onFactory = (factory) => {\n\t\t\t\tinstalledModules[id] = 0;\n\t\t\t\t__webpack_require__.m[id] = (module) => {\n\t\t\t\t\tdelete __webpack_require__.c[id];\n\t\t\t\t\tmodule.exports = factory();\n\t\t\t\t}\n\t\t\t};\n\t\t\tstartedInstallModules[id] = true;\n\t\t\tvar onError = (error) => {\n\t\t\t\tdelete installedModules[id];\n\t\t\t\t__webpack_require__.m[id] = (module) => {\n\t\t\t\t\tdelete __webpack_require__.c[id];\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tvar promise = moduleToHandlerMapping[id]();\n\t\t\t\tif(promise.then) {\n\t\t\t\t\tpromises.push(installedModules[id] = promise.then(onFactory)['catch'](onError));\n\t\t\t\t} else onFactory(promise);\n\t\t\t} catch(e) { onError(e); }\n\t\t\t}\n\t\t});\n\t}\n}","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"kernel-checkpoint\": 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkkernel_checkpoint\"] = self[\"webpackChunkkernel_checkpoint\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","","// module cache are used so entry inlining is disabled\n// startup\n// Load entry module and return exports\nvar __webpack_exports__ = __webpack_require__(\"webpack/container/entry/kernel-checkpoint\");\n",""],"names":[],"sourceRoot":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lib_index_js.bcb2d92b281a36765a67.js","mappings":"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","sources":["webpack://kernel-checkpoint/./src/api.ts","webpack://kernel-checkpoint/./src/checkpoint-panel.tsx","webpack://kernel-checkpoint/./src/index.ts"],"sourcesContent":["import { URLExt } from '@jupyterlab/coreutils';\nimport { ServerConnection } from '@jupyterlab/services';\nimport {\n ICheckpointConfig,\n ICheckpointListResponse,\n ICheckpoint,\n ICreateCheckpointRequest\n} from './types';\n\nconst API_NAMESPACE = 'kernel-checkpoint';\n\nfunction makeRequest(\n endpoint: string,\n init: RequestInit = {}\n): Promise<Response> {\n const settings = ServerConnection.makeSettings();\n const url = URLExt.join(settings.baseUrl, API_NAMESPACE, endpoint);\n return ServerConnection.makeRequest(url, init, settings);\n}\n\nfunction jsonInit(method: string, data: any): RequestInit {\n return {\n method,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(data)\n };\n}\n\nasync function handleResponse<T>(response: Response): Promise<T> {\n if (!response.ok) {\n let detail = response.statusText;\n try {\n const body = await response.json();\n detail = body.message || body.error || JSON.stringify(body);\n } catch {\n // use statusText\n }\n throw new Error(detail);\n }\n return response.json();\n}\n\nexport namespace CheckpointAPI {\n export async function getConfig(): Promise<ICheckpointConfig> {\n const resp = await makeRequest('config');\n return handleResponse<ICheckpointConfig>(resp);\n }\n\n export async function listCheckpoints(\n namespace: string\n ): Promise<ICheckpointListResponse> {\n const resp = await makeRequest(\n `checkpoints?namespace=${encodeURIComponent(namespace)}`\n );\n return handleResponse<ICheckpointListResponse>(resp);\n }\n\n export async function getCheckpoint(\n namespace: string,\n name: string\n ): Promise<ICheckpoint> {\n const resp = await makeRequest(\n `checkpoints/${encodeURIComponent(namespace)}/${encodeURIComponent(name)}`\n );\n return handleResponse<ICheckpoint>(resp);\n }\n\n export async function createCheckpoint(\n request: ICreateCheckpointRequest\n ): Promise<ICheckpoint> {\n const resp = await makeRequest(\n 'checkpoints',\n jsonInit('POST', request)\n );\n return handleResponse<ICheckpoint>(resp);\n }\n\n export async function deleteCheckpoint(\n namespace: string,\n name: string\n ): Promise<void> {\n const resp = await makeRequest(\n `checkpoints/${encodeURIComponent(namespace)}/${encodeURIComponent(name)}`,\n { method: 'DELETE' }\n );\n if (!resp.ok) {\n let detail = resp.statusText;\n try {\n const body = await resp.json();\n detail = body.message || body.error || JSON.stringify(body);\n } catch {\n // use statusText\n }\n throw new Error(detail);\n }\n }\n\n export async function updateCheckpoint(\n namespace: string,\n name: string,\n data: Record<string, any>\n ): Promise<ICheckpoint> {\n const resp = await makeRequest(\n `checkpoints/${encodeURIComponent(namespace)}/${encodeURIComponent(name)}`,\n jsonInit('PUT', data)\n );\n return handleResponse<ICheckpoint>(resp);\n }\n}\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { ICheckpoint, ICheckpointPanelProps } from './types';\nimport { CheckpointAPI } from './api';\n\nconst CHECKPOINT_REFRESH_INTERVAL = 3;\n\nfunction mapPhaseDisplay(phase: string): string {\n return phase === 'Completed' ? 'Ready' : 'Pending';\n}\n\nfunction PhaseIndicator({ phase }: { phase: string }): JSX.Element {\n const display = mapPhaseDisplay(phase);\n const cls = display.toLowerCase().replace(/\\s+/g, '-');\n return <span className={`kc-phase kc-phase-${cls}`}>{display}</span>;\n}\n\nfunction formatDate(iso: string): string {\n return new Date(iso).toLocaleString();\n}\n\nexport function CheckpointPanel(props: ICheckpointPanelProps): JSX.Element {\n const { namespace, kernelId, onRestore } = props;\n\n const [checkpoints, setCheckpoints] = useState<ICheckpoint[]>([]);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<string | null>(null);\n\n const [showCreateForm, setShowCreateForm] = useState(false);\n const [newName, setNewName] = useState('');\n const [creating, setCreating] = useState(false);\n\n const [restoring, setRestoring] = useState<string | null>(null);\n const [expandedDetail, setExpandedDetail] = useState<string | null>(null);\n const [detailData, setDetailData] = useState<ICheckpoint | null>(null);\n\n const [renamingName, setRenamingName] = useState<string | null>(null);\n const [renameValue, setRenameValue] = useState('');\n\n const [flash, setFlash] = useState<{\n type: 'success' | 'error';\n text: string;\n } | null>(null);\n\n const [confirmDelete, setConfirmDelete] = useState<string | null>(null);\n const [confirmRestore, setConfirmRestore] = useState<string | null>(null);\n\n /* ------------------------------------------------------------------ */\n /* Data fetching */\n /* ------------------------------------------------------------------ */\n\n const fetchCheckpoints = useCallback(async () => {\n setLoading(true);\n setError(null);\n try {\n const result = await CheckpointAPI.listCheckpoints(namespace);\n setCheckpoints(result.items ?? []);\n } catch (err: any) {\n setError(err.message ?? 'Failed to load checkpoints');\n } finally {\n setLoading(false);\n }\n }, [namespace]);\n\n useEffect(() => {\n fetchCheckpoints();\n }, [fetchCheckpoints]);\n\n useEffect(() => {\n const id = setInterval(fetchCheckpoints, CHECKPOINT_REFRESH_INTERVAL * 1000);\n return () => clearInterval(id);\n }, [fetchCheckpoints]);\n\n /* ------------------------------------------------------------------ */\n /* Actions */\n /* ------------------------------------------------------------------ */\n\n const handleCreate = async () => {\n if (!newName.trim()) {\n return;\n }\n setCreating(true);\n setFlash(null);\n try {\n await CheckpointAPI.createCheckpoint({\n name: newName.trim(),\n namespace,\n kernelId,\n buildImage: false\n });\n setNewName('');\n setShowCreateForm(false);\n setFlash({ type: 'success', text: 'Checkpoint created successfully.' });\n await fetchCheckpoints();\n } catch (err: any) {\n setFlash({\n type: 'error',\n text: err.message ?? 'Failed to create checkpoint'\n });\n } finally {\n setCreating(false);\n }\n };\n\n const handleDelete = async (name: string) => {\n setFlash(null);\n setConfirmDelete(null);\n try {\n await CheckpointAPI.deleteCheckpoint(namespace, name);\n setFlash({ type: 'success', text: `Checkpoint \"${name}\" deleted.` });\n if (expandedDetail === name) {\n setExpandedDetail(null);\n setDetailData(null);\n }\n await fetchCheckpoints();\n } catch (err: any) {\n setFlash({\n type: 'error',\n text: err.message ?? 'Failed to delete checkpoint'\n });\n }\n };\n\n const handleViewStatus = async (name: string) => {\n if (expandedDetail === name) {\n setExpandedDetail(null);\n setDetailData(null);\n return;\n }\n try {\n const detail = await CheckpointAPI.getCheckpoint(namespace, name);\n setDetailData(detail);\n setExpandedDetail(name);\n } catch (err: any) {\n setFlash({\n type: 'error',\n text: err.message ?? 'Failed to get checkpoint details'\n });\n }\n };\n\n const handleRestore = async (checkpointName: string) => {\n setConfirmRestore(null);\n setRestoring(checkpointName);\n setFlash(null);\n try {\n const detail = await CheckpointAPI.getCheckpoint(namespace, checkpointName);\n const filePath = detail.checkpointFiles?.[0]?.filePath ?? '';\n if (!filePath) {\n throw new Error('No checkpoint file path available for this checkpoint');\n }\n await onRestore(checkpointName, filePath);\n setFlash({\n type: 'success',\n text: `Kernel restored from \"${checkpointName}\". The kernel is restarting.`\n });\n } catch (err: any) {\n setFlash({\n type: 'error',\n text: err.message ?? 'Failed to restore checkpoint'\n });\n } finally {\n setRestoring(null);\n }\n };\n\n const handleRename = async (oldName: string) => {\n const trimmed = renameValue.trim();\n if (!trimmed || trimmed === oldName) {\n setRenamingName(null);\n return;\n }\n setFlash(null);\n try {\n await CheckpointAPI.updateCheckpoint(namespace, oldName, {\n name: trimmed\n });\n setRenamingName(null);\n setFlash({ type: 'success', text: `Checkpoint renamed to \"${trimmed}\".` });\n await fetchCheckpoints();\n } catch (err: any) {\n setFlash({\n type: 'error',\n text: err.message ?? 'Failed to rename checkpoint'\n });\n }\n };\n\n /* ------------------------------------------------------------------ */\n /* Render */\n /* ------------------------------------------------------------------ */\n\n return (\n <div className=\"kc-panel\">\n {/* Flash message */}\n {flash && (\n <div className={`kc-flash kc-flash-${flash.type}`}>\n <span>{flash.text}</span>\n <button\n className=\"kc-flash-close\"\n onClick={() => setFlash(null)}\n >\n ×\n </button>\n </div>\n )}\n\n {/* Create checkpoint */}\n <div className=\"kc-create-section\">\n {!showCreateForm ? (\n <button\n className=\"kc-btn kc-btn-primary\"\n onClick={() => setShowCreateForm(true)}\n >\n Save Kernel State\n </button>\n ) : (\n <div className=\"kc-create-form\">\n <input\n className=\"kc-input\"\n type=\"text\"\n placeholder=\"Enter checkpoint name…\"\n value={newName}\n onChange={e => setNewName(e.target.value)}\n onKeyDown={e => {\n if (e.key === 'Enter') {\n handleCreate();\n }\n }}\n autoFocus\n disabled={creating}\n />\n <button\n className=\"kc-btn kc-btn-primary\"\n disabled={creating || !newName.trim()}\n onClick={handleCreate}\n >\n {creating ? 'Saving…' : 'Save'}\n </button>\n <button\n className=\"kc-btn\"\n onClick={() => {\n setShowCreateForm(false);\n setNewName('');\n }}\n >\n Cancel\n </button>\n </div>\n )}\n </div>\n\n {/* Checkpoint list */}\n <div className=\"kc-list\">\n {loading && checkpoints.length === 0 ? (\n <div className=\"kc-placeholder\">Loading checkpoints…</div>\n ) : error ? (\n <div className=\"kc-placeholder kc-placeholder-error\">{error}</div>\n ) : checkpoints.length === 0 ? (\n <div className=\"kc-placeholder\">\n No checkpoints found. Click “Save Kernel State” to\n create one.\n </div>\n ) : (\n checkpoints.map(cp => (\n <div key={cp.name} className=\"kc-item\">\n {/* Header row */}\n <div className=\"kc-item-header\">\n <div className=\"kc-item-info\">\n {renamingName === cp.name ? (\n <div className=\"kc-rename-form\">\n <input\n className=\"kc-input kc-input-sm\"\n type=\"text\"\n value={renameValue}\n onChange={e => setRenameValue(e.target.value)}\n onKeyDown={e => {\n if (e.key === 'Enter') {\n handleRename(cp.name);\n }\n if (e.key === 'Escape') {\n setRenamingName(null);\n }\n }}\n autoFocus\n />\n <button\n className=\"kc-btn kc-btn-xs\"\n onClick={() => handleRename(cp.name)}\n >\n OK\n </button>\n <button\n className=\"kc-btn kc-btn-xs\"\n onClick={() => setRenamingName(null)}\n >\n Cancel\n </button>\n </div>\n ) : (\n <span className=\"kc-item-name\" title={cp.name}>\n {cp.name}\n </span>\n )}\n <div className=\"kc-item-meta\">\n <PhaseIndicator phase={cp.phase} />\n <span className=\"kc-item-date\">\n {formatDate(cp.createdAt)}\n </span>\n </div>\n </div>\n\n <div className=\"kc-item-actions\">\n <button\n className=\"kc-btn kc-btn-xs\"\n onClick={() => handleViewStatus(cp.name)}\n >\n {expandedDetail === cp.name ? 'Hide' : 'Details'}\n </button>\n <button\n className=\"kc-btn kc-btn-xs\"\n onClick={() => {\n setRenamingName(cp.name);\n setRenameValue(cp.name);\n }}\n >\n Rename\n </button>\n {confirmDelete === cp.name ? (\n <>\n <span className=\"kc-confirm-label\">Delete?</span>\n <button\n className=\"kc-btn kc-btn-xs kc-btn-danger\"\n onClick={() => handleDelete(cp.name)}\n >\n Yes\n </button>\n <button\n className=\"kc-btn kc-btn-xs\"\n onClick={() => setConfirmDelete(null)}\n >\n No\n </button>\n </>\n ) : (\n <button\n className=\"kc-btn kc-btn-xs kc-btn-danger\"\n onClick={() => setConfirmDelete(cp.name)}\n >\n Delete\n </button>\n )}\n {confirmRestore === cp.name ? (\n <>\n <span className=\"kc-confirm-label\">Restore?</span>\n <button\n className=\"kc-btn kc-btn-xs kc-btn-restore\"\n onClick={() => handleRestore(cp.name)}\n >\n Yes\n </button>\n <button\n className=\"kc-btn kc-btn-xs\"\n onClick={() => setConfirmRestore(null)}\n >\n No\n </button>\n </>\n ) : (\n <button\n className=\"kc-btn kc-btn-xs kc-btn-restore\"\n disabled={\n restoring !== null || cp.phase !== 'Completed'\n }\n title={\n cp.phase !== 'Completed'\n ? 'Checkpoint must be completed to restore'\n : 'Restore from this checkpoint'\n }\n onClick={() => setConfirmRestore(cp.name)}\n >\n {restoring === cp.name ? 'Restoring…' : 'Restore'}\n </button>\n )}\n </div>\n </div>\n\n {/* Expanded detail */}\n {expandedDetail === cp.name && detailData && (\n <div className=\"kc-detail\">\n <div className=\"kc-detail-row\">\n <span className=\"kc-detail-label\">Status</span>\n <span>{mapPhaseDisplay(detailData.phase)}</span>\n </div>\n <div className=\"kc-detail-row\">\n <span className=\"kc-detail-label\">Message</span>\n <span>{detailData.message}</span>\n </div>\n {detailData.podRef && (\n <div className=\"kc-detail-row\">\n <span className=\"kc-detail-label\">Pod</span>\n <span>{detailData.podRef.name}</span>\n </div>\n )}\n {detailData.checkpointFiles &&\n detailData.checkpointFiles.length > 0 && (\n <div className=\"kc-detail-section\">\n <span className=\"kc-detail-label\">\n Checkpoint Files\n </span>\n {detailData.checkpointFiles.map((f, i) => (\n <div key={i} className=\"kc-detail-file\">\n <span>{f.containerName}</span>\n <span className=\"kc-detail-time\">\n {formatDate(f.checkpointTime)}\n </span>\n </div>\n ))}\n </div>\n )}\n {detailData.builtImages &&\n detailData.builtImages.length > 0 && (\n <div className=\"kc-detail-section\">\n <span className=\"kc-detail-label\">Built Images</span>\n {detailData.builtImages.map((img, i) => (\n <div key={i} className=\"kc-detail-file\">\n <span className=\"kc-detail-image-name\">\n {img.imageName}\n </span>\n <span className=\"kc-detail-time\">\n {formatDate(img.buildTime)}\n </span>\n </div>\n ))}\n </div>\n )}\n </div>\n )}\n </div>\n ))\n )}\n </div>\n\n </div>\n );\n}\n","import {\n JupyterFrontEnd,\n JupyterFrontEndPlugin\n} from '@jupyterlab/application';\nimport { INotebookTracker, NotebookPanel } from '@jupyterlab/notebook';\nimport {\n Dialog,\n ReactWidget,\n showDialog,\n ToolbarButton\n} from '@jupyterlab/apputils';\nimport { URLExt } from '@jupyterlab/coreutils';\nimport { ServerConnection } from '@jupyterlab/services';\nimport React from 'react';\n\nimport { CheckpointPanel } from './checkpoint-panel';\nimport { CheckpointAPI } from './api';\nimport { ICheckpointPanelProps } from './types';\n\n/**\n * ReactWidget wrapper that hosts the CheckpointPanel React tree inside a\n * JupyterLab Dialog body.\n */\nclass CheckpointDialogBody extends ReactWidget {\n private _props: ICheckpointPanelProps;\n\n constructor(props: ICheckpointPanelProps) {\n super();\n this._props = props;\n this.addClass('kc-dialog-body');\n }\n\n protected render(): React.ReactElement {\n return React.createElement(CheckpointPanel, this._props);\n }\n}\n\nconst COMMAND_ID = 'kernel-checkpoint:open';\n\nconst plugin: JupyterFrontEndPlugin<void> = {\n id: 'kernel-checkpoint:plugin',\n description:\n 'An extension for saving and restoring kernel pod state with jupyter enterprise gateway',\n autoStart: true,\n requires: [INotebookTracker],\n activate: (app: JupyterFrontEnd, notebookTracker: INotebookTracker) => {\n console.log('JupyterLab extension kernel-checkpoint is activated!');\n\n app.commands.addCommand(COMMAND_ID, {\n label: 'Saving Points',\n caption: 'Manage kernel checkpoints',\n execute: async () => {\n const panel = notebookTracker.currentWidget;\n if (!panel) {\n return;\n }\n\n const sessionContext = panel.sessionContext;\n await sessionContext.ready;\n\n let config;\n try {\n config = await CheckpointAPI.getConfig();\n } catch (err) {\n await showDialog({\n title: 'Configuration Error',\n body: 'Failed to load checkpoint configuration. Ensure CHECKPOINT_API_URL is set.',\n buttons: [Dialog.okButton()]\n });\n return;\n }\n\n if (!config.namespace) {\n await showDialog({\n title: 'Configuration Error',\n body: 'Namespace not configured. Set CHECKPOINT_NAMESPACE environment variable or deploy in Kubernetes.',\n buttons: [Dialog.okButton()]\n });\n return;\n }\n\n const kernel = sessionContext.session?.kernel;\n if (!kernel) {\n await showDialog({\n title: 'No Kernel',\n body: 'No kernel is connected. Please start a kernel first.',\n buttons: [Dialog.okButton()]\n });\n return;\n }\n\n const kernelId = kernel.id;\n const kernelSpecName = kernel.name || 'python_kubernetes';\n\n const onRestore = async (checkpointName: string, checkpointFilePath: string): Promise<void> => {\n const settings = ServerConnection.makeSettings();\n const kernelUrl = URLExt.join(settings.baseUrl, 'api', 'kernels');\n\n const response = await ServerConnection.makeRequest(\n kernelUrl,\n {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n name: kernelSpecName,\n env: {\n KERNEL_CHECKPOINT_NAME: checkpointName,\n KERNEL_CHECKPOINT_FILE_PATH: checkpointFilePath\n }\n })\n },\n settings\n );\n\n if (!response.ok) {\n const errText = await response.text();\n throw new Error(`Failed to create restored kernel: ${errText}`);\n }\n\n const kernelData = await response.json();\n await sessionContext.changeKernel({ id: kernelData.id });\n };\n\n const body = new CheckpointDialogBody({\n namespace: config.namespace,\n kernelId,\n kernelSpecName,\n onRestore\n });\n\n await showDialog({\n title: 'Kernel Checkpoints',\n body,\n buttons: [Dialog.cancelButton({ label: 'Close' })]\n });\n\n body.dispose();\n }\n });\n\n // Inject a toolbar button into every notebook panel\n notebookTracker.widgetAdded.connect(\n (_sender: INotebookTracker, panel: NotebookPanel) => {\n const button = new ToolbarButton({\n label: 'Saving Points',\n tooltip: 'Open kernel checkpoint manager',\n onClick: () => {\n app.commands.execute(COMMAND_ID);\n }\n });\n panel.toolbar.insertItem(10, 'kernel-checkpoint', button);\n }\n );\n }\n};\n\nexport default plugin;\n"],"names":[],"sourceRoot":""}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/cursor_jupyterlab_extension_for_checkpo.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/kernel_checkpoint/labextension/static/style.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kernel_checkpoint-0.1.5 → kernel_checkpoint-0.1.6}/ui-tests/tests/kernel_checkpoint.spec.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|