jupyter-docprovider 1.0.0b5__py3-none-any.whl → 1.0.0b8__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (19) hide show
  1. jupyter_docprovider/_version.py +1 -1
  2. {jupyter_docprovider-1.0.0b5.data → jupyter_docprovider-1.0.0b8.data}/data/share/jupyter/labextensions/@jupyter/docprovider-extension/package.json +8 -3
  3. jupyter_docprovider-1.0.0b8.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/444.12adfae9a2b50e91531f.js +1 -0
  4. jupyter_docprovider-1.0.0b8.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/544.2ddaafa7187578bbc811.js +1 -0
  5. jupyter_docprovider-1.0.0b8.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/618.afd487be93204de05459.js +1 -0
  6. jupyter_docprovider-1.0.0b8.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/remoteEntry.664d5a8b85d89d4a46d6.js +1 -0
  7. {jupyter_docprovider-1.0.0b5.data → jupyter_docprovider-1.0.0b8.data}/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/third-party-licenses.json +8 -2
  8. {jupyter_docprovider-1.0.0b5.dist-info → jupyter_docprovider-1.0.0b8.dist-info}/METADATA +1 -1
  9. jupyter_docprovider-1.0.0b8.dist-info/RECORD +16 -0
  10. jupyter_docprovider-1.0.0b5.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/544.93c72014d00edb4807b7.js +0 -1
  11. jupyter_docprovider-1.0.0b5.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/562.7a1279cc90d15b8b4fa0.js +0 -1
  12. jupyter_docprovider-1.0.0b5.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/remoteEntry.01ca8b4214d9332cf35c.js +0 -1
  13. jupyter_docprovider-1.0.0b5.dist-info/RECORD +0 -15
  14. {jupyter_docprovider-1.0.0b5.data → jupyter_docprovider-1.0.0b8.data}/data/share/jupyter/labextensions/@jupyter/docprovider-extension/install.json +0 -0
  15. {jupyter_docprovider-1.0.0b5.data → jupyter_docprovider-1.0.0b8.data}/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/576.36471ca07f7437678515.js +0 -0
  16. {jupyter_docprovider-1.0.0b5.data → jupyter_docprovider-1.0.0b8.data}/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/944.b85c55dff0f14165f872.js +0 -0
  17. {jupyter_docprovider-1.0.0b5.data → jupyter_docprovider-1.0.0b8.data}/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/style.js +0 -0
  18. {jupyter_docprovider-1.0.0b5.dist-info → jupyter_docprovider-1.0.0b8.dist-info}/WHEEL +0 -0
  19. {jupyter_docprovider-1.0.0b5.dist-info → jupyter_docprovider-1.0.0b8.dist-info}/licenses/LICENSE +0 -0
@@ -1 +1 @@
1
- __version__ = "1.0.0b5"
1
+ __version__ = "1.0.0b8"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jupyter/docprovider-extension",
3
- "version": "3.0.0-beta.5",
3
+ "version": "3.0.0-beta.8",
4
4
  "description": "JupyterLab - Collaborative Shared Models",
5
5
  "keywords": [
6
6
  "jupyter",
@@ -53,7 +53,8 @@
53
53
  "watch:labextension": "jupyter labextension watch ."
54
54
  },
55
55
  "dependencies": {
56
- "@jupyter/docprovider": "^3.0.0-beta.5",
56
+ "@jupyter/collaborative-drive": "^3.0.0-beta.8",
57
+ "@jupyter/docprovider": "^3.0.0-beta.8",
57
58
  "@jupyter/ydoc": "^2.0.0 || ^3.0.0-a3",
58
59
  "@jupyterlab/application": "^4.2.0",
59
60
  "@jupyterlab/apputils": "^4.2.0",
@@ -105,6 +106,10 @@
105
106
  "bundled": false,
106
107
  "singleton": true
107
108
  },
109
+ "@jupyter/collaborative-drive": {
110
+ "bundled": true,
111
+ "singleton": true
112
+ },
108
113
  "@jupyter/docprovider": {
109
114
  "bundled": true,
110
115
  "singleton": true
@@ -123,7 +128,7 @@
123
128
  }
124
129
  },
125
130
  "_build": {
126
- "load": "static/remoteEntry.01ca8b4214d9332cf35c.js",
131
+ "load": "static/remoteEntry.664d5a8b85d89d4a46d6.js",
127
132
  "extension": "./extension",
128
133
  "style": "./style"
129
134
  }
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_jupyter_docprovider_extension=self.webpackChunk_jupyter_docprovider_extension||[]).push([[444],{444:(e,o,r)=>{r.r(o),r.d(o,{ICollaborativeDrive:()=>a,IGlobalAwareness:()=>l});var n=r(262);const a=new n.Token("@jupyter/collaboration-extension:ICollaborativeDrive"),l=new n.Token("@jupyter/collaboration:IGlobalAwareness")}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_jupyter_docprovider_extension=self.webpackChunk_jupyter_docprovider_extension||[]).push([[544],{544:(e,t,o)=>{o.r(t),o.d(t,{default:()=>k});var r,n=o(909),i=o(200),a=o(256),s=o(313),l=o(922),c=o(710),d=o(154),u=o(480),p=o(614),v=o(678),g=o(697),h=o(192),m=o(766),w=o(473);!function(e){e.openPath="filebrowser:open-path"}(r||(r={}));const b={id:"@jupyter/docprovider-extension:drive",description:"The default collaborative drive provider",provides:h.ICollaborativeDrive,requires:[v.ITranslator],optional:[h.IGlobalAwareness],activate:(e,t,o)=>{const r=t.load("jupyter_collaboration"),n=new m.YDrive(e.serviceManager.user,r,o);return e.serviceManager.contents.addDrive(n),n}},y={id:"@jupyter/docprovider-extension:yfile",description:"Plugin to register the shared model factory for the content type 'file'",autoStart:!0,requires:[h.ICollaborativeDrive],optional:[],activate:(e,t)=>{t.sharedModelFactory.registerDocumentFactory("file",(()=>new g.YFile))}},f={id:"@jupyter/docprovider-extension:ynotebook",description:"Plugin to register the shared model factory for the content type 'notebook'",autoStart:!0,requires:[h.ICollaborativeDrive],optional:[p.ISettingRegistry],activate:(e,t,o)=>{let r=!0;o&&o.load("@jupyterlab/notebook-extension:tracker").then((e=>{const t=e=>{var t;const o=null==e?void 0:e.get("experimentalEnableDocumentWideUndoRedo").composite;r=null===(t=!o)||void 0===t||t};t(e),e.changed.connect((e=>t(e)))})),t.sharedModelFactory.registerDocumentFactory("notebook",(()=>new g.YNotebook({disableDocumentWideUndoRedo:r})))}},x={id:"@jupyter/docprovider-extension:statusBarTimeline",description:"Plugin to add a timeline slider to the status bar",autoStart:!0,requires:[l.IStatusBar,h.ICollaborativeDrive],activate:async(e,t,o)=>{try{let r=null,n=null;const i=async(t,r)=>{if(o){t=t.slice(o.name.length+1),n&&(n.dispose(),n=null);const[i,s]=r.split(":"),l=o.providers.get(`${i}:${s}:${t}`),c=w.URLExt.join(e.serviceManager.serverSettings.baseUrl,"api/collaboration/timeline",t);n=new m.TimelineWidget(c,l,l.contentType,l.format);const d=document.getElementById("jp-slider-status-bar");d&&!n.isAttached&&a.Widget.attach(n,d)}};e.shell.currentChanged&&e.shell.currentChanged.connect((async(e,t)=>{const o=t.newValue;n&&(n.dispose(),n=null),o&&"context"in o&&(await o.context.ready,await i(o.context.path,o.context.model.sharedModel.getState("document_id")))})),t&&(r||(r=new a.Widget,r.addClass("jp-StatusBar-GroupItem"),r.addClass("jp-mod-highlighted"),r.id="jp-slider-status-bar",t.registerStatusItem("jp-slider-status-bar",{item:r,align:"left",rank:4,isActive:()=>{const t=e.shell.currentWidget;return!!t&&"context"in t}})))}catch(e){console.error("Failed to activate statusBarTimeline plugin:",e)}}},I={id:"@jupyter/docprovider-extension:defaultFileBrowser",description:"The default file browser factory provider",provides:s.IDefaultFileBrowser,requires:[h.ICollaborativeDrive,s.IFileBrowserFactory],optional:[n.IRouter,n.JupyterFrontEnd.ITreeResolver,n.ILabShell,v.ITranslator],activate:async(e,t,o,r,n,i,a)=>{const{commands:s}=e,l=(null!=a?a:v.nullTranslator).load("jupyterlab");e.serviceManager.contents.addDrive(t);const c=o.createFileBrowser("filebrowser",{auto:!1,restore:!1,driveName:t.name});return c.node.setAttribute("role","region"),c.node.setAttribute("aria-label",l.__("File Browser Section")),j.restoreBrowser(c,s,r,n,i),c}},_={id:"@jupyter/docprovider-extension:logger",description:"A logging plugin for debugging purposes.",autoStart:!0,optional:[d.ILoggerRegistry,c.IEditorTracker,u.INotebookTracker,v.ITranslator],activate:(e,t,o,r,n)=>{const a=(null!=n?n:v.nullTranslator).load("jupyter_collaboration"),s="https://schema.jupyter.org/jupyter_collaboration/session/v1";if(!t)return void e.serviceManager.events.stream.connect(((e,t)=>{var o,r;t.schema_id===s&&(console.debug(`[${t.room}(${t.path})] ${null!==(o=t.action)&&void 0!==o?o:""}: ${null!==(r=t.msg)&&void 0!==r?r:""}`),"WARNING"===t.level&&(0,i.showDialog)({title:a.__("Warning"),body:a.__(`Two collaborative sessions are accessing the file ${t.path} simultaneously.\n \nOpening the same file using different views simultaneously is not supported. Please, close one view; otherwise, you might lose some of your progress.`),buttons:[i.Dialog.okButton()]}))}));const l=new Map,c=(e,o)=>{const r=t.getLogger(o.context.path);l.set(o.context.localPath,r),o.disposed.connect((e=>{l.delete(e.context.localPath)}))};o&&o.widgetAdded.connect(c),r&&r.widgetAdded.connect(c),(async()=>{var t,o;const{events:r}=e.serviceManager;for await(const e of r.stream)if(e.schema_id===s){const r=l.get(e.path);null==r||r.log({type:"text",level:e.level.toLowerCase(),data:`[${e.room}] ${null!==(t=e.action)&&void 0!==t?t:""}: ${null!==(o=e.msg)&&void 0!==o?o:""}`}),"WARNING"===e.level&&(0,i.showDialog)({title:a.__("Warning"),body:a.__("Two collaborative sessions are accessing the file %1 simultaneously.\n \nOpening a document with multiple views simultaneously is not supported. Please close one view; otherwise, you might lose some of your progress.",e.path),buttons:[i.Dialog.warnButton({label:a.__("Ok")})]})}})()}};var j;!function(e){e.restoreBrowser=async function(e,t,o,n,i){const a="jp-mod-restoring";if(e.addClass(a),!o)return await e.model.restore(e.id),await e.model.refresh(),void e.removeClass(a);const s=async()=>{o.routed.disconnect(s);const l=await(null==n?void 0:n.paths);(null==l?void 0:l.file)||(null==l?void 0:l.browser)?(await e.model.restore(e.id,!1),l.file&&await t.execute(r.openPath,{path:l.file,dontShowBrowser:!0}),l.browser&&await t.execute(r.openPath,{path:l.browser,dontShowBrowser:!0})):(await e.model.restore(e.id),await e.model.refresh()),e.removeClass(a),(null==i?void 0:i.isEmpty("main"))&&t.execute("launcher:create")};o.routed.connect(s)}}(j||(j={}));const k=[b,y,f,I,_,{id:"@jupyter/docprovider-extension:notebook-cell-executor",description:"Add notebook cell executor that uses REST API instead of kernel protocol over WebSocket.",autoStart:!0,provides:u.INotebookCellExecutor,activate:e=>"true"===w.PageConfig.getOption("serverSideExecution")?new m.NotebookCellServerExecutor({serverSettings:e.serviceManager.serverSettings}):Object.freeze({runCell:u.runCell})},x]}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_jupyter_docprovider_extension=self.webpackChunk_jupyter_docprovider_extension||[]).push([[618],{68:(e,t,n)=>{n.d(t,{A:()=>a});var o=n(758),r=n.n(o),s=n(935),i=n.n(s)()(r());i.push([e.id,"/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|---------------------------------------------------------------------------- */\n\n.jp-timelineSliderWrapper .jp-sliderContainer{\n display: flex;\n align-items: center;\n}\n\n.jp-Slider {\n height: 4.5px\n}\n\n#jp-slider-status-bar {\n display: flex;\n}\n\n.jp-timestampDisplay {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 6px;\n}\n\n.jp-restoreBtnContainer {\n width: 192px;\n}\n\n.jp-ToolbarButtonComponent.jp-restoreBtn {\n cursor: pointer;\n color: var(--jp-layout-color2);\n width: 100%;\n background: var(--jp-accept-color-normal)\n}\n",""]);const a=i},935:e=>{e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",o=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),o&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),o&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,o,r,s){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(o)for(var a=0;a<this.length;a++){var c=this[a][0];null!=c&&(i[c]=!0)}for(var l=0;l<e.length;l++){var d=[].concat(e[l]);o&&i[d[0]]||(void 0!==s&&(void 0===d[5]||(d[1]="@layer".concat(d[5].length>0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=s),n&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=n):d[2]=n),r&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=r):d[4]="".concat(r)),t.push(d))}},t}},758:e=>{e.exports=function(e){return e[1]}},591:e=>{var t=[];function n(e){for(var n=-1,o=0;o<t.length;o++)if(t[o].identifier===e){n=o;break}return n}function o(e,o){for(var s={},i=[],a=0;a<e.length;a++){var c=e[a],l=o.base?c[0]+o.base:c[0],d=s[l]||0,h="".concat(l," ").concat(d);s[l]=d+1;var u=n(h),p={css:c[1],media:c[2],sourceMap:c[3],supports:c[4],layer:c[5]};if(-1!==u)t[u].references++,t[u].updater(p);else{var m=r(p,o);o.byIndex=a,t.splice(a,0,{identifier:h,updater:m,references:1})}i.push(h)}return i}function r(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,r){var s=o(e=e||[],r=r||{});return function(e){e=e||[];for(var i=0;i<s.length;i++){var a=n(s[i]);t[a].references--}for(var c=o(e,r),l=0;l<s.length;l++){var d=n(s[l]);0===t[d].references&&(t[d].updater(),t.splice(d,1))}s=c}}},128:e=>{var t={};e.exports=function(e,n){var o=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(n)}},51:e=>{e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},855:(e,t,n)=>{e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},740:e=>{e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var o="";n.supports&&(o+="@supports (".concat(n.supports,") {")),n.media&&(o+="@media ".concat(n.media," {"));var r=void 0!==n.layer;r&&(o+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),o+=n.css,r&&(o+="}"),n.media&&(o+="}"),n.supports&&(o+="}");var s=n.sourceMap;s&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(s))))," */")),t.styleTagTransform(o,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},656:e=>{e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},618:(e,t,n)=>{n.r(t),n.d(t,{NotebookCellServerExecutor:()=>l,TimelineWidget:()=>A,WebSocketAwarenessProvider:()=>r,WebSocketProvider:()=>g,YDrive:()=>w,requestDocSession:()=>p,requestDocumentTimeline:()=>m,requestUndoRedo:()=>f});var o=n(560);class r extends o.WebsocketProvider{constructor(e){super(e.url,e.roomID,e.awareness.doc,{awareness:e.awareness}),this._isDisposed=!1,this._awareness=e.awareness,this._user=e.user,this._user.ready.then((()=>this._onUserChanged(this._user))).catch((e=>console.error(e))),this._user.userChanged.connect(this._onUserChanged,this)}get isDisposed(){return this._isDisposed}dispose(){this._isDisposed||(this._user.userChanged.disconnect(this._onUserChanged,this),this._isDisposed=!0,this.destroy())}_onUserChanged(e){this._awareness.setLocalStateField("user",e.identity)}}var s=n(200),i=n(473),a=n(354),c=n(678);class l{constructor(e){var t;this._serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:a.ServerConnection.makeSettings()}async runCell({cell:e,notebook:t,notebookConfig:n,onCellExecuted:o,onCellExecutionScheduled:r,sessionContext:l,sessionDialogs:d,translator:h}){var u,p,m;const f=(h=null!=h?h:c.nullTranslator).load("jupyterlab");switch(e.model.type){case"markdown":e.rendered=!0,e.inputHidden=!1,o({cell:e,success:!0});break;case"code":if(l){if(l.isTerminating){await(0,s.showDialog)({title:f.__("Kernel Terminating"),body:f.__("The kernel for %1 appears to be terminating. You can not run any cell for now.",null===(u=l.session)||void 0===u?void 0:u.path),buttons:[s.Dialog.okButton()]});break}if(l.pendingInput)return await(0,s.showDialog)({title:f.__("Cell not executed due to pending input"),body:f.__("The cell has not been executed to avoid kernel deadlock as there is another pending input! Submit your pending input and try again."),buttons:[s.Dialog.okButton()]}),!1;if(l.hasNoKernel&&await l.startKernel()&&d&&await d.selectKernel(l),l.hasNoKernel)return e.model.sharedModel.transact((()=>{e.model.clearExecution()})),!0;const n=null===(m=null===(p=null==l?void 0:l.session)||void 0===p?void 0:p.kernel)||void 0===m?void 0:m.id,c=i.URLExt.join(this._serverSettings.baseUrl,`api/kernels/${n}/execute`),h=e.model.sharedModel.getId(),v=t.sharedModel.getState("document_id"),y={method:"POST",body:JSON.stringify({cell_id:h,document_id:v})};r({cell:e});let g=!1;try{g=(await a.ServerConnection.makeRequest(c,y,this._serverSettings)).ok}catch(t){if(o({cell:e,success:!1}),e.isDisposed)return!1;throw t}return o({cell:e,success:g}),!0}e.model.sharedModel.transact((()=>{e.model.clearExecution()}),!1)}return Promise.resolve(!0)}}const d="api/collaboration/session",h="api/collaboration/undo_redo",u="api/collaboration/timeline";async function p(e,t,n){const o=a.ServerConnection.makeSettings(),r=i.URLExt.join(o.baseUrl,d,encodeURIComponent(n)),s={method:"PUT",body:JSON.stringify({format:e,type:t})};let c;try{c=await a.ServerConnection.makeRequest(r,s,o)}catch(e){throw new a.ServerConnection.NetworkError(e)}let l=await c.text();if(l.length>0)try{l=JSON.parse(l)}catch(e){console.log("Not a JSON response body.",c)}if(!c.ok)throw new a.ServerConnection.ResponseError(c,l.message||l);return l}async function m(e,t,n){const o=a.ServerConnection.makeSettings();let r=i.URLExt.join(o.baseUrl,u,n);r=r.concat(`?format=${e}&&type=${t}`);const s={method:"GET"};let c;try{c=await a.ServerConnection.makeRequest(r,s,o)}catch(e){throw new a.ServerConnection.NetworkError(e)}return c}async function f(e,t,n,o){const r=a.ServerConnection.makeSettings();let s=i.URLExt.join(r.baseUrl,h,encodeURIComponent(e));s=s.concat(`?action=${t}&&steps=${n}&&forkRoom=${o}`);const c={method:"PUT"};let l;try{l=await a.ServerConnection.makeRequest(s,c,r)}catch(e){throw new a.ServerConnection.NetworkError(e)}let d=await l.text();if(d.length>0)try{d=JSON.parse(d)}catch(e){console.log("Not a JSON response body.",l)}if(!l.ok)throw new a.ServerConnection.ResponseError(l,d.message||d);return d}var v=n(602),y=n(262);class g{constructor(e){this._onConnectionClosed=e=>{1003===e.code&&(console.error("Document provider closed:",e.reason),(0,s.showErrorMessage)(this._trans.__("Document session error"),e.reason,[s.Dialog.okButton()]),this._sharedModel.dispose())},this._onSync=e=>{e&&(this._yWebsocketProvider&&(this._yWebsocketProvider.off("sync",this._onSync),this._sharedModel.ydoc.getMap("state").set("document_id",this._yWebsocketProvider.roomname)),this._ready.resolve())},this._ready=new y.PromiseDelegate,this._isDisposed=!1,this._path=e.path,this._contentType=e.contentType,this._format=e.format,this._serverUrl=e.url,this._sharedModel=e.model,this._awareness=e.model.awareness,this._yWebsocketProvider=null,this._trans=e.translator;const t=e.user;t.ready.then((()=>{this._onUserChanged(t)})).catch((e=>console.error(e))),t.userChanged.connect(this._onUserChanged,this),this._connect().catch((e=>console.warn(e)))}get isDisposed(){return this._isDisposed}get ready(){return this._ready.promise}get contentType(){return this._contentType}get format(){return this._format}dispose(){var e,t,n;this.isDisposed||(this._isDisposed=!0,null===(e=this._yWebsocketProvider)||void 0===e||e.off("connection-close",this._onConnectionClosed),null===(t=this._yWebsocketProvider)||void 0===t||t.off("sync",this._onSync),null===(n=this._yWebsocketProvider)||void 0===n||n.destroy(),this._disconnect(),v.Signal.clearData(this))}async reconnect(){this._disconnect(),this._connect()}async _connect(){const e=await p(this._format,this._contentType,this._path);this._yWebsocketProvider=new o.WebsocketProvider(this._serverUrl,`${e.format}:${e.type}:${e.fileId}`,this._sharedModel.ydoc,{disableBc:!0,params:{sessionId:e.sessionId},awareness:this._awareness}),this._yWebsocketProvider.on("sync",this._onSync),this._yWebsocketProvider.on("connection-close",this._onConnectionClosed)}async connectToForkDoc(e,t){this._disconnect(),this._yWebsocketProvider=new o.WebsocketProvider(this._serverUrl,e,this._sharedModel.ydoc,{disableBc:!0,params:{sessionId:t},awareness:this._awareness})}get wsProvider(){return this._yWebsocketProvider}_disconnect(){var e,t,n;null===(e=this._yWebsocketProvider)||void 0===e||e.off("connection-close",this._onConnectionClosed),null===(t=this._yWebsocketProvider)||void 0===t||t.off("sync",this._onSync),null===(n=this._yWebsocketProvider)||void 0===n||n.destroy(),this._yWebsocketProvider=null}_onUserChanged(e){this._awareness.setLocalStateField("user",e.identity)}}const _="true"===i.PageConfig.getOption("disableRTC");class w extends a.Drive{constructor(e,t,n){super({name:"RTC"}),this._onCreate=(e,t)=>{var n,o;if("string"==typeof e.format)try{const r=new g({url:i.URLExt.join(this.serverSettings.wsUrl,"api/collaboration/room"),path:e.path,format:e.format,contentType:e.contentType,model:t,user:this._user,translator:this._trans}),s=((null===(n=this._globalAwareness)||void 0===n?void 0:n.getLocalState())||{}).documents||[];s.includes(e.path)||(s.push(`${this.name}:${e.path}`),null===(o=this._globalAwareness)||void 0===o||o.setLocalStateField("documents",s));const a=`${e.format}:${e.contentType}:${e.path}`;this._providers.set(a,r),t.changed.connect((async(t,n)=>{if(!n.stateChange)return;const o=n.stateChange.filter((e=>"hash"===e.name));if(0===o.length)return;o.length>1&&console.error("Unexpected multiple changes to hash value in a single transaction");const r=o[0],s=await this.get(e.path,{content:!1});this._ydriveFileChanged.emit({type:"save",newValue:{...s,hash:r.newValue},oldValue:{hash:r.oldValue}})})),t.disposed.connect((()=>{var t,n;const o=this._providers.get(a);o&&(o.dispose(),this._providers.delete(a));const r=((null===(t=this._globalAwareness)||void 0===t?void 0:t.getLocalState())||{}).documents||[],s=r.indexOf(`${this.name}:${e.path}`);s>-1&&r.splice(s,1),null===(n=this._globalAwareness)||void 0===n||n.setLocalStateField("documents",r)}))}catch(t){console.error(`Failed to open websocket connection for ${e.path}.\n:${t}`)}},this._ydriveFileChanged=new v.Signal(this),this._user=e,this._trans=t,this._globalAwareness=n,this._providers=new Map,this.sharedModelFactory=new b(this._onCreate),super.fileChanged.connect(((e,t)=>{this._ydriveFileChanged.emit(t)}))}get providers(){return this._providers}dispose(){this.isDisposed||(this._providers.forEach((e=>e.dispose())),this._providers.clear(),super.dispose())}async get(e,t){if(t&&t.format&&t.type){const n=`${t.format}:${t.type}:${e}`,o=this._providers.get(n);if(o){const[n]=await Promise.all([super.get(e,{...t,content:!1}),o.ready]);return n}}return super.get(e,t)}async save(e,t={}){if(t.format&&t.type){const n=`${t.format}:${t.type}:${e}`;if(this._providers.get(n)){const n={type:t.type,format:t.format,content:!1};return this.get(e,n)}}return super.save(e,t)}get fileChanged(){return this._ydriveFileChanged}}class b{constructor(e){this._onCreate=e,this.collaborative=!_,this.documentFactories=new Map}registerDocumentFactory(e,t){if(this.documentFactories.has(e))throw new Error(`The content type ${e} already exists`);this.documentFactories.set(e,t)}createNew(e){if("string"==typeof e.format){if(this.collaborative&&e.collaborative&&this.documentFactories.has(e.contentType)){const t=this.documentFactories.get(e.contentType)(e);return this._onCreate(e,t),t}}else console.warn(`Only defined format are supported; got ${e.format}.`)}}var C=n(345),S=n.n(C),k=n(591),x=n.n(k),T=n(740),D=n.n(T),E=n(128),$=n.n(E),R=n(855),U=n.n(R),P=n(51),N=n.n(P),j=n(656),W=n.n(j),I=n(68),M={};M.styleTagTransform=W(),M.setAttributes=U(),M.insert=$().bind(null,"head"),M.domAPI=D(),M.insertStyleElement=N(),x()(I.A,M),I.A&&I.A.locals&&I.A.locals;var L=n(460);const F=({apiURL:e,provider:t,contentType:n,format:o})=>{const[r,i]=(0,C.useState)({roomId:"",timestamps:[],forkRoom:"",sessionId:""}),[a,c]=(0,C.useState)(r.timestamps.length-1),[l,d]=(0,C.useState)(!1),[h,u]=(0,C.useState)(!1),v=(0,C.useRef)(!0),y=(0,C.useRef)(!0),g=(0,C.useRef)(null);function _(e){try{const t=new URL(e).pathname.split("/");return t.slice(4-t.length).join("/")}catch(e){return console.error("Invalid URL:",e),""}}return S().createElement("div",{className:"jp-sliderContainer"},S().createElement("div",{onClick:()=>{!async function(r){try{if(v.current){const a=await m(o,n,r);if(!a.ok)throw 404===a.status?new Error("Not found"):503===a.status?new Error("WebSocket closed"):new Error(`Failed to fetch data: ${a.statusText}`);const l=await a.text();let h={roomId:"",timestamps:[],forkRoom:"",sessionId:""};return l&&(s.Notification.warning("Document is now in read-only mode. Changes will not be saved.",{autoClose:2500}),h=JSON.parse(l),i(h),c(h.timestamps.length-1),t.connectToForkDoc(h.forkRoom,h.sessionId),g.current=await p(o,n,_(e))),d(!0),v.current=!1,h}}catch(e){console.error("Error fetching data:",e)}}(_(e))},className:"jp-mod-highlighted",title:"Document Timeline"},S().createElement(L.historyIcon.react,{marginRight:"4px"})),l&&S().createElement("div",{className:"jp-timestampDisplay"},S().createElement("input",{type:"range",min:0,max:r.timestamps.length-1,value:a,onChange:async e=>{const t=parseInt(e.target.value),n=Math.abs(t-a);try{const e=function(e){return e<a?"undo":"redo"}(t);if(c(t),y.current&&(u(!0),y.current=!1),!g.current)return void console.error("Session is not initialized");await f(`${g.current.format}:${g.current.type}:${g.current.fileId}`,e,n,r.forkRoom)}catch(e){console.error("Error fetching or applying updates:",e)}},className:"jp-Slider"}),S().createElement("div",null,S().createElement("strong",null,_(e).split("/").pop()," ")," "),h&&S().createElement("div",{className:"jp-restoreBtnContainer"},S().createElement("button",{onClick:async()=>{if(!g.current)return void console.error("Session is not initialized");const e=await f(`${g.current.format}:${g.current.type}:${g.current.fileId}`,"restore",0,r.forkRoom);200===e.code?(s.Notification.success(e.status,{autoClose:4e3}),t.reconnect(),d(!1),v.current=!0):s.Notification.error(e.status,{autoClose:4e3})},className:"jp-ToolbarButtonComponent jp-restoreBtn"},"Restore version"," ",(e=>{const t=new Date(1e3*e);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")} ${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}:${String(t.getSeconds()).padStart(2,"0")}`})(r.timestamps[a])))))};class A extends s.ReactWidget{constructor(e,t,n,o){super(),this.apiURL=e,this.provider=t,this.contentType=n,this.format=o,this.addClass("jp-timelineSliderWrapper")}render(){return C.createElement(F,{key:this.apiURL,apiURL:this.apiURL,provider:this.provider,contentType:this.contentType,format:this.format})}updateContent(e,t){this.apiURL=e,this.provider=t,this.contentType=this.provider.contentType,this.format=this.provider.format,this.update()}}}}]);
@@ -0,0 +1 @@
1
+ var _JUPYTERLAB;(()=>{"use strict";var e,r,t,o,a,n,i,l,u,d,f,s,c,p,b,v,h,y,m,g,j,w,P,k={496:(e,r,t)=>{var o={"./index":()=>Promise.all([t.e(823),t.e(544)]).then((()=>()=>t(544))),"./extension":()=>Promise.all([t.e(823),t.e(544)]).then((()=>()=>t(544))),"./style":()=>t.e(944).then((()=>()=>t(944)))},a=(e,r)=>(t.R=r,r=t.o(o,e)?o[e]():Promise.resolve().then((()=>{throw new Error('Module "'+e+'" does not exist in container.')})),t.R=void 0,r),n=(e,r)=>{if(t.S){var o="default",a=t.S[o];if(a&&a!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return t.S[o]=e,t.I(o,r)}};t.d(r,{get:()=>a,init:()=>n})}},S={};function x(e){var r=S[e];if(void 0!==r)return r.exports;var t=S[e]={id:e,exports:{}};return k[e](t,t.exports,x),t.exports}x.m=k,x.c=S,x.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return x.d(r,{a:r}),r},x.d=(e,r)=>{for(var t in r)x.o(r,t)&&!x.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},x.f={},x.e=e=>Promise.all(Object.keys(x.f).reduce(((r,t)=>(x.f[t](e,r),r)),[])),x.u=e=>e+"."+{206:"84c5901f15f0fa0bd745",262:"0cc35b53ffb65372f245",444:"12adfae9a2b50e91531f",544:"2ddaafa7187578bbc811",576:"36471ca07f7437678515",618:"afd487be93204de05459",823:"7ffe7ee89772c5a0cfc8",944:"b85c55dff0f14165f872"}[e]+".js?v="+{206:"84c5901f15f0fa0bd745",262:"0cc35b53ffb65372f245",444:"12adfae9a2b50e91531f",544:"2ddaafa7187578bbc811",576:"36471ca07f7437678515",618:"afd487be93204de05459",823:"7ffe7ee89772c5a0cfc8",944:"b85c55dff0f14165f872"}[e],x.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),x.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),e={},r="@jupyter/docprovider-extension:",x.l=(t,o,a,n)=>{if(e[t])e[t].push(o);else{var i,l;if(void 0!==a)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var f=u[d];if(f.getAttribute("src")==t||f.getAttribute("data-webpack")==r+a){i=f;break}}i||(l=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,x.nc&&i.setAttribute("nonce",x.nc),i.setAttribute("data-webpack",r+a),i.src=t),e[t]=[o];var s=(r,o)=>{i.onerror=i.onload=null,clearTimeout(c);var a=e[t];if(delete e[t],i.parentNode&&i.parentNode.removeChild(i),a&&a.forEach((e=>e(o))),r)return r(o)},c=setTimeout(s.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=s.bind(null,i.onerror),i.onload=s.bind(null,i.onload),l&&document.head.appendChild(i)}},x.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{x.S={};var e={},r={};x.I=(t,o)=>{o||(o=[]);var a=r[t];if(a||(a=r[t]={}),!(o.indexOf(a)>=0)){if(o.push(a),e[t])return e[t];x.o(x.S,t)||(x.S[t]={});var n=x.S[t],i="@jupyter/docprovider-extension",l=(e,r,t,o)=>{var a=n[e]=n[e]||{},l=a[r];(!l||!l.loaded&&(!o!=!l.eager?o:i>l.from))&&(a[r]={get:t,from:i,eager:!!o})},u=[];return"default"===t&&(l("@jupyter/collaborative-drive","3.0.0-beta.8",(()=>Promise.all([x.e(262),x.e(444)]).then((()=>()=>x(444))))),l("@jupyter/docprovider-extension","3.0.0-beta.8",(()=>Promise.all([x.e(823),x.e(544)]).then((()=>()=>x(544))))),l("@jupyter/docprovider","3.0.0-beta.8",(()=>Promise.all([x.e(262),x.e(618),x.e(823)]).then((()=>()=>x(618))))),l("y-websocket","1.5.4",(()=>Promise.all([x.e(576),x.e(206)]).then((()=>()=>x(576)))))),e[t]=u.length?Promise.all(u).then((()=>e[t]=1)):1}}})(),(()=>{var e;x.g.importScripts&&(e=x.g.location+"");var r=x.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var o=t.length-1;o>-1&&(!e||!/^http(s?):/.test(e));)e=t[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),x.p=e})(),t=e=>{var r=e=>e.split(".").map((e=>+e==e?+e:e)),t=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),o=t[1]?r(t[1]):[];return t[2]&&(o.length++,o.push.apply(o,r(t[2]))),t[3]&&(o.push([]),o.push.apply(o,r(t[3]))),o},o=(e,r)=>{e=t(e),r=t(r);for(var o=0;;){if(o>=e.length)return o<r.length&&"u"!=(typeof r[o])[0];var a=e[o],n=(typeof a)[0];if(o>=r.length)return"u"==n;var i=r[o],l=(typeof i)[0];if(n!=l)return"o"==n&&"n"==l||"s"==l||"u"==n;if("o"!=n&&"u"!=n&&a!=i)return a<i;o++}},a=e=>{var r=e[0],t="";if(1===e.length)return"*";if(r+.5){t+=0==r?">=":-1==r?"<":1==r?"^":2==r?"~":r>0?"=":"!=";for(var o=1,n=1;n<e.length;n++)o--,t+="u"==(typeof(l=e[n]))[0]?"-":(o>0?".":"")+(o=2,l);return t}var i=[];for(n=1;n<e.length;n++){var l=e[n];i.push(0===l?"not("+u()+")":1===l?"("+u()+" || "+u()+")":2===l?i.pop()+" "+i.pop():a(l))}return u();function u(){return i.pop().replace(/^\((.+)\)$/,"$1")}},n=(e,r)=>{if(0 in e){r=t(r);var o=e[0],a=o<0;a&&(o=-o-1);for(var i=0,l=1,u=!0;;l++,i++){var d,f,s=l<e.length?(typeof e[l])[0]:"";if(i>=r.length||"o"==(f=(typeof(d=r[i]))[0]))return!u||("u"==s?l>o&&!a:""==s!=a);if("u"==f){if(!u||"u"!=s)return!1}else if(u)if(s==f)if(l<=o){if(d!=e[l])return!1}else{if(a?d>e[l]:d<e[l])return!1;d!=e[l]&&(u=!1)}else if("s"!=s&&"n"!=s){if(a||l<=o)return!1;u=!1,l--}else{if(l<=o||f<s!=a)return!1;u=!1}else"s"!=s&&"n"!=s&&(u=!1,l--)}}var c=[],p=c.pop.bind(c);for(i=1;i<e.length;i++){var b=e[i];c.push(1==b?p()|p():2==b?p()&p():b?n(b,r):!p())}return!!p()},i=(e,r)=>e&&x.o(e,r),l=e=>(e.loaded=1,e.get()),u=e=>Object.keys(e).reduce(((r,t)=>(e[t].eager&&(r[t]=e[t]),r)),{}),d=(e,r,t,a)=>{var i=a?u(e[r]):e[r];return(r=Object.keys(i).reduce(((e,r)=>!n(t,r)||e&&!o(e,r)?e:r),0))&&i[r]},f=(e,r,t)=>{var a=t?u(e[r]):e[r];return Object.keys(a).reduce(((e,r)=>!e||!a[e].loaded&&o(e,r)?r:e),0)},s=(e,r,t,o)=>"Unsatisfied version "+t+" from "+(t&&e[r][t].from)+" of shared singleton module "+r+" (required "+a(o)+")",c=(e,r,t,o,n)=>{var i=e[t];return"No satisfying version ("+a(o)+")"+(n?" for eager consumption":"")+" of shared module "+t+" found in shared scope "+r+".\nAvailable versions: "+Object.keys(i).map((e=>e+" from "+i[e].from)).join(", ")},p=e=>{throw new Error(e)},b=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},h=(e,r,t)=>t?t():((e,r)=>p("Shared module "+r+" doesn't exist in shared scope "+e))(e,r),y=(v=e=>function(r,t,o,a,n){var i=x.I(r);return i&&i.then&&!o?i.then(e.bind(e,r,x.S[r],t,!1,a,n)):e(r,x.S[r],t,o,a,n)})(((e,r,t,o,a,n)=>{if(!i(r,t))return h(e,t,n);var u=d(r,t,a,o);return u?l(u):n?n():void p(c(r,e,t,a,o))})),m=v(((e,r,t,o,a,u)=>{if(!i(r,t))return h(e,t,u);var d=f(r,t,o);return n(a,d)||b(s(r,t,d,a)),l(r[t][d])})),g={},j={200:()=>m("default","@jupyterlab/apputils",!1,[1,4,3,5]),473:()=>m("default","@jupyterlab/coreutils",!1,[1,6,2,5]),678:()=>m("default","@jupyterlab/translation",!1,[1,4,2,5]),154:()=>m("default","@jupyterlab/logconsole",!1,[1,4,2,5]),192:()=>m("default","@jupyter/collaborative-drive",!1,[1,3,0,0,,"beta",8],(()=>Promise.all([x.e(262),x.e(444)]).then((()=>()=>x(444))))),256:()=>m("default","@lumino/widgets",!1,[1,2,3,1,,"alpha",0]),313:()=>m("default","@jupyterlab/filebrowser",!1,[1,4,2,5]),480:()=>m("default","@jupyterlab/notebook",!1,[1,4,2,5]),614:()=>m("default","@jupyterlab/settingregistry",!1,[1,4,2,5]),697:()=>m("default","@jupyter/ydoc",!1,[1,2,0,1]),710:()=>m("default","@jupyterlab/fileeditor",!1,[1,4,2,5]),766:()=>m("default","@jupyter/docprovider",!1,[1,3,0,0,,"beta",8],(()=>Promise.all([x.e(262),x.e(618)]).then((()=>()=>x(618))))),909:()=>m("default","@jupyterlab/application",!1,[1,4,2,5]),922:()=>m("default","@jupyterlab/statusbar",!1,[1,4,2,5]),262:()=>m("default","@lumino/coreutils",!1,[1,2,0,0]),345:()=>m("default","react",!1,[1,18,2,0]),354:()=>m("default","@jupyterlab/services",!1,[1,7,2,5]),460:()=>m("default","@jupyterlab/ui-components",!1,[1,4,2,5]),560:()=>y("default","y-websocket",!1,[1,1,3,15],(()=>Promise.all([x.e(576),x.e(206)]).then((()=>()=>x(576))))),602:()=>m("default","@lumino/signaling",!1,[1,2,0,0]),206:()=>m("default","yjs",!1,[1,13,5,40])},w={206:[206],262:[262],544:[154,192,256,313,480,614,697,710,766,909,922],618:[345,354,460,560,602],823:[200,473,678]},P={},x.f.consumes=(e,r)=>{x.o(w,e)&&w[e].forEach((e=>{if(x.o(g,e))return r.push(g[e]);if(!P[e]){var t=r=>{g[e]=0,x.m[e]=t=>{delete x.c[e],t.exports=r()}};P[e]=!0;var o=r=>{delete g[e],x.m[e]=t=>{throw delete x.c[e],r}};try{var a=j[e]();a.then?r.push(g[e]=a.then(t).catch(o)):t(a)}catch(e){o(e)}}}))},(()=>{var e={552:0};x.f.j=(r,t)=>{var o=x.o(e,r)?e[r]:void 0;if(0!==o)if(o)t.push(o[2]);else if(/^(206|262|823)$/.test(r))e[r]=0;else{var a=new Promise(((t,a)=>o=e[r]=[t,a]));t.push(o[2]=a);var n=x.p+x.u(r),i=new Error;x.l(n,(t=>{if(x.o(e,r)&&(0!==(o=e[r])&&(e[r]=void 0),o)){var a=t&&("load"===t.type?"missing":t.type),n=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+a+": "+n+")",i.name="ChunkLoadError",i.type=a,i.request=n,o[1](i)}}),"chunk-"+r,r)}};var r=(r,t)=>{var o,a,[n,i,l]=t,u=0;if(n.some((r=>0!==e[r]))){for(o in i)x.o(i,o)&&(x.m[o]=i[o]);l&&l(x)}for(r&&r(t);u<n.length;u++)a=n[u],x.o(e,a)&&e[a]&&e[a][0](),e[a]=0},t=self.webpackChunk_jupyter_docprovider_extension=self.webpackChunk_jupyter_docprovider_extension||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),x.nc=void 0;var E=x(496);(_JUPYTERLAB=void 0===_JUPYTERLAB?{}:_JUPYTERLAB)["@jupyter/docprovider-extension"]=E})();
@@ -2,13 +2,19 @@
2
2
  "packages": [
3
3
  {
4
4
  "name": "@jupyter/collaboration",
5
- "versionInfo": "3.0.0-beta.5",
5
+ "versionInfo": "3.0.0-beta.8",
6
+ "licenseId": "BSD-3-Clause",
7
+ "extractedText": ""
8
+ },
9
+ {
10
+ "name": "@jupyter/collaborative-drive",
11
+ "versionInfo": "3.0.0-beta.8",
6
12
  "licenseId": "BSD-3-Clause",
7
13
  "extractedText": ""
8
14
  },
9
15
  {
10
16
  "name": "@jupyter/docprovider",
11
- "versionInfo": "3.0.0-beta.5",
17
+ "versionInfo": "3.0.0-beta.8",
12
18
  "licenseId": "BSD-3-Clause",
13
19
  "extractedText": ""
14
20
  },
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: jupyter-docprovider
3
- Version: 1.0.0b5
3
+ Version: 1.0.0b8
4
4
  Summary: JupyterLab/Jupyter Notebook 7+ extension integrating collaborative shared models.
5
5
  Project-URL: Documentation, https://jupyterlab-realtime-collaboration.readthedocs.io/
6
6
  Project-URL: Repository, https://github.com/jupyterlab/jupyter-collaboration
@@ -0,0 +1,16 @@
1
+ jupyter_docprovider/__init__.py,sha256=pvzIgrnwXG3rAiMW5TvmGOCW0CPWIlk54yXEw_O_jrc,260
2
+ jupyter_docprovider/_version.py,sha256=FINJxficj37iURkarZ-YupPPH4azy-E4XBpiEqZ9uDU,24
3
+ jupyter_docprovider-1.0.0b8.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/package.json,sha256=nbI6E6JiVUe4nNBNFEwddqTvnktVAdUb-lSZQurABzE,3961
4
+ jupyter_docprovider-1.0.0b8.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/444.12adfae9a2b50e91531f.js,sha256=Eq366aK1DpFTH78Fhqi_rJ87oh6u7RB_4lde2IxgZkU,357
5
+ jupyter_docprovider-1.0.0b8.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/544.2ddaafa7187578bbc811.js,sha256=Ldqvpxh1eLvIEbMGVdbzvSRCU2dd74WfgwciJvGZnT0,6244
6
+ jupyter_docprovider-1.0.0b8.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/576.36471ca07f7437678515.js,sha256=NkccoH90N2eFFQb3MDhtydXI79zWHCGcIjAbJaiNjb0,15505
7
+ jupyter_docprovider-1.0.0b8.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/618.afd487be93204de05459.js,sha256=r9SHvpMgTeBUWfjBJdyXarBjsqaa7YxQZ6M9Ai2lb5A,17071
8
+ jupyter_docprovider-1.0.0b8.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/944.b85c55dff0f14165f872.js,sha256=uFxV3_DxQWX4cpOx_X-aOdXlZjVqv_GHQuNECOVZLQ8,8557
9
+ jupyter_docprovider-1.0.0b8.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/remoteEntry.664d5a8b85d89d4a46d6.js,sha256=Zk1ai4XYnUpG1qb8GCfKbb9QEaE6DnAxgl40WbIDdk4,9307
10
+ jupyter_docprovider-1.0.0b8.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/style.js,sha256=IIvKvBMPlm9SdCt0l2x7pOx2ZMG7tbWWhxCH8l4ylSU,173
11
+ jupyter_docprovider-1.0.0b8.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/third-party-licenses.json,sha256=IXY_oka447TR2mg6tUVcjhAuSaSelFbNKgg1UyEsy7I,7917
12
+ jupyter_docprovider-1.0.0b8.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/install.json,sha256=NO9HH1zbt0jedIG_-lqpMiOhO1OAvrUmoUfIjgyzvpE,199
13
+ jupyter_docprovider-1.0.0b8.dist-info/METADATA,sha256=ei76_0o1LSbTWqAHMiG1BIT7dZcew0GASPWVbg8d4AQ,4764
14
+ jupyter_docprovider-1.0.0b8.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
15
+ jupyter_docprovider-1.0.0b8.dist-info/licenses/LICENSE,sha256=mhO0ZW9EiWOPg0dUgB-lNbJ0CGwRmTdbeAg_se1SOnY,2833
16
+ jupyter_docprovider-1.0.0b8.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_jupyter_docprovider_extension=self.webpackChunk_jupyter_docprovider_extension||[]).push([[544],{544:(e,t,o)=>{o.r(t),o.d(t,{default:()=>j});var r,i=o(909),n=o(200),a=o(256),s=o(313),l=o(922),c=o(710),d=o(154),u=o(480),p=o(614),v=o(678),g=o(697),h=o(933),m=o(473);!function(e){e.openPath="filebrowser:open-path"}(r||(r={}));const w={id:"@jupyter/docprovider-extension:drive",description:"The default collaborative drive provider",provides:h.ICollaborativeDrive,requires:[v.ITranslator],optional:[h.IGlobalAwareness],activate:(e,t,o)=>{const r=t.load("jupyter_collaboration"),i=new h.YDrive(e.serviceManager.user,r,o);return e.serviceManager.contents.addDrive(i),i}},y={id:"@jupyter/docprovider-extension:yfile",description:"Plugin to register the shared model factory for the content type 'file'",autoStart:!0,requires:[h.ICollaborativeDrive],optional:[],activate:(e,t)=>{t.sharedModelFactory.registerDocumentFactory("file",(()=>new g.YFile))}},b={id:"@jupyter/docprovider-extension:ynotebook",description:"Plugin to register the shared model factory for the content type 'notebook'",autoStart:!0,requires:[h.ICollaborativeDrive],optional:[p.ISettingRegistry],activate:(e,t,o)=>{let r=!0;o&&o.load("@jupyterlab/notebook-extension:tracker").then((e=>{const t=e=>{var t;const o=null==e?void 0:e.get("experimentalEnableDocumentWideUndoRedo").composite;r=null===(t=!o)||void 0===t||t};t(e),e.changed.connect((e=>t(e)))})),t.sharedModelFactory.registerDocumentFactory("notebook",(()=>new g.YNotebook({disableDocumentWideUndoRedo:r})))}},f={id:"@jupyter/docprovider-extension:statusBarTimeline",description:"Plugin to add a timeline slider to the status bar",autoStart:!0,requires:[l.IStatusBar,h.ICollaborativeDrive],activate:async(e,t,o)=>{try{let r=null,i=null;const n=async(t,r)=>{if(o){t=t.slice(o.name.length+1),i&&(i.dispose(),i=null);const[n,s]=r.split(":"),l=o.providers.get(`${n}:${s}:${t}`),c=m.URLExt.join(e.serviceManager.serverSettings.baseUrl,"api/collaboration/timeline",t);i=new h.TimelineWidget(c,l,l.contentType,l.format);const d=document.getElementById("jp-slider-status-bar");d&&!i.isAttached&&a.Widget.attach(i,d)}};e.shell.currentChanged&&e.shell.currentChanged.connect((async(e,t)=>{const o=t.newValue;i&&(i.dispose(),i=null),o&&"context"in o&&(await o.context.ready,await n(o.context.path,o.context.model.sharedModel.getState("document_id")))})),t&&(r||(r=new a.Widget,r.addClass("jp-StatusBar-GroupItem"),r.addClass("jp-mod-highlighted"),r.id="jp-slider-status-bar",t.registerStatusItem("jp-slider-status-bar",{item:r,align:"left",rank:4,isActive:()=>{const t=e.shell.currentWidget;return!!t&&"context"in t}})))}catch(e){console.error("Failed to activate statusBarTimeline plugin:",e)}}},x={id:"@jupyter/docprovider-extension:defaultFileBrowser",description:"The default file browser factory provider",provides:s.IDefaultFileBrowser,requires:[h.ICollaborativeDrive,s.IFileBrowserFactory],optional:[i.IRouter,i.JupyterFrontEnd.ITreeResolver,i.ILabShell,p.ISettingRegistry,v.ITranslator],activate:async(e,t,o,r,i,n,a)=>{const{commands:s}=e,l=(null!=a?a:v.nullTranslator).load("jupyterlab");e.serviceManager.contents.addDrive(t);const c=o.createFileBrowser("filebrowser",{auto:!1,restore:!1,driveName:t.name});return c.node.setAttribute("role","region"),c.node.setAttribute("aria-label",l.__("File Browser Section")),_.restoreBrowser(c,s,r,i,n),c}},I={id:"@jupyter/docprovider-extension:logger",description:"A logging plugin for debugging purposes.",autoStart:!0,optional:[d.ILoggerRegistry,c.IEditorTracker,u.INotebookTracker,v.ITranslator],activate:(e,t,o,r,i)=>{const a=(null!=i?i:v.nullTranslator).load("jupyter_collaboration"),s="https://schema.jupyter.org/jupyter_collaboration/session/v1";if(!t)return void e.serviceManager.events.stream.connect(((e,t)=>{var o,r;t.schema_id===s&&(console.debug(`[${t.room}(${t.path})] ${null!==(o=t.action)&&void 0!==o?o:""}: ${null!==(r=t.msg)&&void 0!==r?r:""}`),"WARNING"===t.level&&(0,n.showDialog)({title:a.__("Warning"),body:a.__(`Two collaborative sessions are accessing the file ${t.path} simultaneously.\n \nOpening the same file using different views simultaneously is not supported. Please, close one view; otherwise, you might lose some of your progress.`),buttons:[n.Dialog.okButton()]}))}));const l=new Map,c=(e,o)=>{const r=t.getLogger(o.context.path);l.set(o.context.localPath,r),o.disposed.connect((e=>{l.delete(e.context.localPath)}))};o&&o.widgetAdded.connect(c),r&&r.widgetAdded.connect(c),(async()=>{var t,o;const{events:r}=e.serviceManager;for await(const e of r.stream)if(e.schema_id===s){const r=l.get(e.path);null==r||r.log({type:"text",level:e.level.toLowerCase(),data:`[${e.room}] ${null!==(t=e.action)&&void 0!==t?t:""}: ${null!==(o=e.msg)&&void 0!==o?o:""}`}),"WARNING"===e.level&&(0,n.showDialog)({title:a.__("Warning"),body:a.__("Two collaborative sessions are accessing the file %1 simultaneously.\n \nOpening a document with multiple views simultaneously is not supported. Please close one view; otherwise, you might lose some of your progress.",e.path),buttons:[n.Dialog.warnButton({label:a.__("Ok")})]})}})()}};var _;!function(e){e.restoreBrowser=async function(e,t,o,i,n){const a="jp-mod-restoring";if(e.addClass(a),!o)return await e.model.restore(e.id),await e.model.refresh(),void e.removeClass(a);const s=async()=>{o.routed.disconnect(s);const l=await(null==i?void 0:i.paths);(null==l?void 0:l.file)||(null==l?void 0:l.browser)?(await e.model.restore(e.id,!1),l.file&&await t.execute(r.openPath,{path:l.file,dontShowBrowser:!0}),l.browser&&await t.execute(r.openPath,{path:l.browser,dontShowBrowser:!0})):(await e.model.restore(e.id),await e.model.refresh()),e.removeClass(a),(null==n?void 0:n.isEmpty("main"))&&t.execute("launcher:create")};o.routed.connect(s)}}(_||(_={}));const j=[w,y,b,x,I,{id:"@jupyter/docprovider-extension:notebook-cell-executor",description:"Add notebook cell executor that uses REST API instead of kernel protocol over WebSocket.",autoStart:!0,provides:u.INotebookCellExecutor,activate:e=>"true"===m.PageConfig.getOption("serverSideExecution")?new h.NotebookCellServerExecutor({serverSettings:e.serviceManager.serverSettings}):Object.freeze({runCell:u.runCell})},f]}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_jupyter_docprovider_extension=self.webpackChunk_jupyter_docprovider_extension||[]).push([[562],{68:(e,t,n)=>{n.d(t,{A:()=>a});var o=n(758),r=n.n(o),s=n(935),i=n.n(s)()(r());i.push([e.id,"/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|---------------------------------------------------------------------------- */\n\n.jp-timelineSliderWrapper .jp-sliderContainer{\n display: flex;\n align-items: center;\n}\n\n.jp-Slider {\n height: 4.5px\n}\n\n#jp-slider-status-bar {\n display: flex;\n}\n\n.jp-timestampDisplay {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 6px;\n}\n\n.jp-restoreBtnContainer {\n width: 192px;\n}\n\n.jp-ToolbarButtonComponent.jp-restoreBtn {\n cursor: pointer;\n color: var(--jp-layout-color2);\n width: 100%;\n background: var(--jp-accept-color-normal)\n}\n",""]);const a=i},935:e=>{e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",o=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),o&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),o&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,o,r,s){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(o)for(var a=0;a<this.length;a++){var c=this[a][0];null!=c&&(i[c]=!0)}for(var l=0;l<e.length;l++){var d=[].concat(e[l]);o&&i[d[0]]||(void 0!==s&&(void 0===d[5]||(d[1]="@layer".concat(d[5].length>0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=s),n&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=n):d[2]=n),r&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=r):d[4]="".concat(r)),t.push(d))}},t}},758:e=>{e.exports=function(e){return e[1]}},591:e=>{var t=[];function n(e){for(var n=-1,o=0;o<t.length;o++)if(t[o].identifier===e){n=o;break}return n}function o(e,o){for(var s={},i=[],a=0;a<e.length;a++){var c=e[a],l=o.base?c[0]+o.base:c[0],d=s[l]||0,h="".concat(l," ").concat(d);s[l]=d+1;var u=n(h),p={css:c[1],media:c[2],sourceMap:c[3],supports:c[4],layer:c[5]};if(-1!==u)t[u].references++,t[u].updater(p);else{var m=r(p,o);o.byIndex=a,t.splice(a,0,{identifier:h,updater:m,references:1})}i.push(h)}return i}function r(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,r){var s=o(e=e||[],r=r||{});return function(e){e=e||[];for(var i=0;i<s.length;i++){var a=n(s[i]);t[a].references--}for(var c=o(e,r),l=0;l<s.length;l++){var d=n(s[l]);0===t[d].references&&(t[d].updater(),t.splice(d,1))}s=c}}},128:e=>{var t={};e.exports=function(e,n){var o=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(n)}},51:e=>{e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},855:(e,t,n)=>{e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},740:e=>{e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var o="";n.supports&&(o+="@supports (".concat(n.supports,") {")),n.media&&(o+="@media ".concat(n.media," {"));var r=void 0!==n.layer;r&&(o+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),o+=n.css,r&&(o+="}"),n.media&&(o+="}"),n.supports&&(o+="}");var s=n.sourceMap;s&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(s))))," */")),t.styleTagTransform(o,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},656:e=>{e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},562:(e,t,n)=>{n.r(t),n.d(t,{ICollaborativeDrive:()=>C,IGlobalAwareness:()=>S,NotebookCellServerExecutor:()=>l,TimelineWidget:()=>O,WebSocketAwarenessProvider:()=>r,WebSocketProvider:()=>g,YDrive:()=>w,requestDocSession:()=>p,requestDocumentTimeline:()=>m,requestUndoRedo:()=>v});var o=n(560);class r extends o.WebsocketProvider{constructor(e){super(e.url,e.roomID,e.awareness.doc,{awareness:e.awareness}),this._isDisposed=!1,this._awareness=e.awareness,this._user=e.user,this._user.ready.then((()=>this._onUserChanged(this._user))).catch((e=>console.error(e))),this._user.userChanged.connect(this._onUserChanged,this)}get isDisposed(){return this._isDisposed}dispose(){this._isDisposed||(this._user.userChanged.disconnect(this._onUserChanged,this),this._isDisposed=!0,this.destroy())}_onUserChanged(e){this._awareness.setLocalStateField("user",e.identity)}}var s=n(200),i=n(473),a=n(354),c=n(678);class l{constructor(e){var t;this._serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:a.ServerConnection.makeSettings()}async runCell({cell:e,notebook:t,notebookConfig:n,onCellExecuted:o,onCellExecutionScheduled:r,sessionContext:l,sessionDialogs:d,translator:h}){var u,p,m;const v=(h=null!=h?h:c.nullTranslator).load("jupyterlab");switch(e.model.type){case"markdown":e.rendered=!0,e.inputHidden=!1,o({cell:e,success:!0});break;case"code":if(l){if(l.isTerminating){await(0,s.showDialog)({title:v.__("Kernel Terminating"),body:v.__("The kernel for %1 appears to be terminating. You can not run any cell for now.",null===(u=l.session)||void 0===u?void 0:u.path),buttons:[s.Dialog.okButton()]});break}if(l.pendingInput)return await(0,s.showDialog)({title:v.__("Cell not executed due to pending input"),body:v.__("The cell has not been executed to avoid kernel deadlock as there is another pending input! Submit your pending input and try again."),buttons:[s.Dialog.okButton()]}),!1;if(l.hasNoKernel&&await l.startKernel()&&d&&await d.selectKernel(l),l.hasNoKernel)return e.model.sharedModel.transact((()=>{e.model.clearExecution()})),!0;const n=null===(m=null===(p=null==l?void 0:l.session)||void 0===p?void 0:p.kernel)||void 0===m?void 0:m.id,c=i.URLExt.join(this._serverSettings.baseUrl,`api/kernels/${n}/execute`),h=e.model.sharedModel.getId(),f=t.sharedModel.getState("document_id"),y={method:"POST",body:JSON.stringify({cell_id:h,document_id:f})};r({cell:e});let g=!1;try{g=(await a.ServerConnection.makeRequest(c,y,this._serverSettings)).ok}catch(t){if(o({cell:e,success:!1}),e.isDisposed)return!1;throw t}return o({cell:e,success:g}),!0}e.model.sharedModel.transact((()=>{e.model.clearExecution()}),!1)}return Promise.resolve(!0)}}const d="api/collaboration/session",h="api/collaboration/undo_redo",u="api/collaboration/timeline";async function p(e,t,n){const o=a.ServerConnection.makeSettings(),r=i.URLExt.join(o.baseUrl,d,encodeURIComponent(n)),s={method:"PUT",body:JSON.stringify({format:e,type:t})};let c;try{c=await a.ServerConnection.makeRequest(r,s,o)}catch(e){throw new a.ServerConnection.NetworkError(e)}let l=await c.text();if(l.length>0)try{l=JSON.parse(l)}catch(e){console.log("Not a JSON response body.",c)}if(!c.ok)throw new a.ServerConnection.ResponseError(c,l.message||l);return l}async function m(e,t,n){const o=a.ServerConnection.makeSettings();let r=i.URLExt.join(o.baseUrl,u,n);r=r.concat(`?format=${e}&&type=${t}`);const s={method:"GET"};let c;try{c=await a.ServerConnection.makeRequest(r,s,o)}catch(e){throw new a.ServerConnection.NetworkError(e)}return c}async function v(e,t,n,o){const r=a.ServerConnection.makeSettings();let s=i.URLExt.join(r.baseUrl,h,encodeURIComponent(e));s=s.concat(`?action=${t}&&steps=${n}&&forkRoom=${o}`);const c={method:"PUT"};let l;try{l=await a.ServerConnection.makeRequest(s,c,r)}catch(e){throw new a.ServerConnection.NetworkError(e)}let d=await l.text();if(d.length>0)try{d=JSON.parse(d)}catch(e){console.log("Not a JSON response body.",l)}if(!l.ok)throw new a.ServerConnection.ResponseError(l,d.message||d);return d}var f=n(602),y=n(262);class g{constructor(e){this._onConnectionClosed=e=>{1003===e.code&&(console.error("Document provider closed:",e.reason),(0,s.showErrorMessage)(this._trans.__("Document session error"),e.reason,[s.Dialog.okButton()]),this._sharedModel.dispose())},this._onSync=e=>{e&&(this._yWebsocketProvider&&(this._yWebsocketProvider.off("sync",this._onSync),this._sharedModel.ydoc.getMap("state").set("document_id",this._yWebsocketProvider.roomname)),this._ready.resolve())},this._ready=new y.PromiseDelegate,this._isDisposed=!1,this._path=e.path,this._contentType=e.contentType,this._format=e.format,this._serverUrl=e.url,this._sharedModel=e.model,this._awareness=e.model.awareness,this._yWebsocketProvider=null,this._trans=e.translator;const t=e.user;t.ready.then((()=>{this._onUserChanged(t)})).catch((e=>console.error(e))),t.userChanged.connect(this._onUserChanged,this),this._connect().catch((e=>console.warn(e)))}get isDisposed(){return this._isDisposed}get ready(){return this._ready.promise}get contentType(){return this._contentType}get format(){return this._format}dispose(){var e,t,n;this.isDisposed||(this._isDisposed=!0,null===(e=this._yWebsocketProvider)||void 0===e||e.off("connection-close",this._onConnectionClosed),null===(t=this._yWebsocketProvider)||void 0===t||t.off("sync",this._onSync),null===(n=this._yWebsocketProvider)||void 0===n||n.destroy(),this._disconnect(),f.Signal.clearData(this))}async reconnect(){this._disconnect(),this._connect()}async _connect(){const e=await p(this._format,this._contentType,this._path);this._yWebsocketProvider=new o.WebsocketProvider(this._serverUrl,`${e.format}:${e.type}:${e.fileId}`,this._sharedModel.ydoc,{disableBc:!0,params:{sessionId:e.sessionId},awareness:this._awareness}),this._yWebsocketProvider.on("sync",this._onSync),this._yWebsocketProvider.on("connection-close",this._onConnectionClosed)}async connectToForkDoc(e,t){this._disconnect(),this._yWebsocketProvider=new o.WebsocketProvider(this._serverUrl,e,this._sharedModel.ydoc,{disableBc:!0,params:{sessionId:t},awareness:this._awareness})}get wsProvider(){return this._yWebsocketProvider}_disconnect(){var e,t,n;null===(e=this._yWebsocketProvider)||void 0===e||e.off("connection-close",this._onConnectionClosed),null===(t=this._yWebsocketProvider)||void 0===t||t.off("sync",this._onSync),null===(n=this._yWebsocketProvider)||void 0===n||n.destroy(),this._yWebsocketProvider=null}_onUserChanged(e){this._awareness.setLocalStateField("user",e.identity)}}const _="true"===i.PageConfig.getOption("disableRTC");class w extends a.Drive{constructor(e,t,n){super({name:"RTC"}),this._onCreate=(e,t)=>{var n,o;if("string"==typeof e.format)try{const r=new g({url:i.URLExt.join(this.serverSettings.wsUrl,"api/collaboration/room"),path:e.path,format:e.format,contentType:e.contentType,model:t,user:this._user,translator:this._trans}),s=((null===(n=this._globalAwareness)||void 0===n?void 0:n.getLocalState())||{}).documents||[];s.includes(e.path)||(s.push(`${this.name}:${e.path}`),null===(o=this._globalAwareness)||void 0===o||o.setLocalStateField("documents",s));const a=`${e.format}:${e.contentType}:${e.path}`;this._providers.set(a,r),t.changed.connect((async(t,n)=>{if(!n.stateChange)return;const o=n.stateChange.filter((e=>"hash"===e.name));if(0===o.length)return;o.length>1&&console.error("Unexpected multiple changes to hash value in a single transaction");const r=o[0],s=await this.get(e.path,{content:!1});this._ydriveFileChanged.emit({type:"save",newValue:{...s,hash:r.newValue},oldValue:{hash:r.oldValue}})})),t.disposed.connect((()=>{var t,n;const o=this._providers.get(a);o&&(o.dispose(),this._providers.delete(a));const r=((null===(t=this._globalAwareness)||void 0===t?void 0:t.getLocalState())||{}).documents||[],s=r.indexOf(`${this.name}:${e.path}`);s>-1&&r.splice(s,1),null===(n=this._globalAwareness)||void 0===n||n.setLocalStateField("documents",r)}))}catch(t){console.error(`Failed to open websocket connection for ${e.path}.\n:${t}`)}},this._ydriveFileChanged=new f.Signal(this),this._user=e,this._trans=t,this._globalAwareness=n,this._providers=new Map,this.sharedModelFactory=new b(this._onCreate),super.fileChanged.connect(((e,t)=>{this._ydriveFileChanged.emit(t)}))}get providers(){return this._providers}dispose(){this.isDisposed||(this._providers.forEach((e=>e.dispose())),this._providers.clear(),super.dispose())}async get(e,t){if(t&&t.format&&t.type){const n=`${t.format}:${t.type}:${e}`,o=this._providers.get(n);if(o){const[n]=await Promise.all([super.get(e,{...t,content:!1}),o.ready]);return n}}return super.get(e,t)}async save(e,t={}){if(t.format&&t.type){const n=`${t.format}:${t.type}:${e}`;if(this._providers.get(n)){const n={type:t.type,format:t.format,content:!1};return this.get(e,n)}}return super.save(e,t)}get fileChanged(){return this._ydriveFileChanged}}class b{constructor(e){this._onCreate=e,this.collaborative=!_,this._documentFactories=new Map}registerDocumentFactory(e,t){if(this._documentFactories.has(e))throw new Error(`The content type ${e} already exists`);this._documentFactories.set(e,t)}createNew(e){if("string"==typeof e.format){if(this.collaborative&&e.collaborative&&this._documentFactories.has(e.contentType)){const t=this._documentFactories.get(e.contentType)(e);return this._onCreate(e,t),t}}else console.warn(`Only defined format are supported; got ${e.format}.`)}}const C=new y.Token("@jupyter/collaboration-extension:ICollaborativeDrive"),S=new y.Token("@jupyter/collaboration:IGlobalAwareness");var k=n(345),T=n.n(k),x=n(591),D=n.n(x),E=n(740),$=n.n(E),R=n(128),U=n.n(R),j=n(855),P=n.n(j),N=n(51),I=n.n(N),W=n(656),M=n.n(W),L=n(68),F={};F.styleTagTransform=M(),F.setAttributes=P(),F.insert=U().bind(null,"head"),F.domAPI=$(),F.insertStyleElement=I(),D()(L.A,F),L.A&&L.A.locals&&L.A.locals;var A=n(460);const B=({apiURL:e,provider:t,contentType:n,format:o})=>{const[r,i]=(0,k.useState)({roomId:"",timestamps:[],forkRoom:"",sessionId:""}),[a,c]=(0,k.useState)(r.timestamps.length-1),[l,d]=(0,k.useState)(!1),[h,u]=(0,k.useState)(!1),f=(0,k.useRef)(!0),y=(0,k.useRef)(!0),g=(0,k.useRef)(null);function _(e){try{const t=new URL(e).pathname.split("/");return t.slice(4-t.length).join("/")}catch(e){return console.error("Invalid URL:",e),""}}return T().createElement("div",{className:"jp-sliderContainer"},T().createElement("div",{onClick:()=>{!async function(r){try{if(f.current){const a=await m(o,n,r);if(!a.ok)throw 404===a.status?new Error("Not found"):503===a.status?new Error("WebSocket closed"):new Error(`Failed to fetch data: ${a.statusText}`);const l=await a.text();let h={roomId:"",timestamps:[],forkRoom:"",sessionId:""};return l&&(s.Notification.warning("Document is now in read-only mode. Changes will not be saved.",{autoClose:2500}),h=JSON.parse(l),i(h),c(h.timestamps.length-1),t.connectToForkDoc(h.forkRoom,h.sessionId),g.current=await p(o,n,_(e))),d(!0),f.current=!1,h}}catch(e){console.error("Error fetching data:",e)}}(_(e))},className:"jp-mod-highlighted",title:"Document Timeline"},T().createElement(A.historyIcon.react,{marginRight:"4px"})),l&&T().createElement("div",{className:"jp-timestampDisplay"},T().createElement("input",{type:"range",min:0,max:r.timestamps.length-1,value:a,onChange:async e=>{const t=parseInt(e.target.value),n=Math.abs(t-a);try{const e=function(e){return e<a?"undo":"redo"}(t);if(c(t),y.current&&(u(!0),y.current=!1),!g.current)return void console.error("Session is not initialized");await v(`${g.current.format}:${g.current.type}:${g.current.fileId}`,e,n,r.forkRoom)}catch(e){console.error("Error fetching or applying updates:",e)}},className:"jp-Slider"}),T().createElement("div",null,T().createElement("strong",null,_(e).split("/").pop()," ")," "),h&&T().createElement("div",{className:"jp-restoreBtnContainer"},T().createElement("button",{onClick:async()=>{if(!g.current)return void console.error("Session is not initialized");const e=await v(`${g.current.format}:${g.current.type}:${g.current.fileId}`,"restore",0,r.forkRoom);200===e.code?(s.Notification.success(e.status,{autoClose:4e3}),t.reconnect(),d(!1),f.current=!0):s.Notification.error(e.status,{autoClose:4e3})},className:"jp-ToolbarButtonComponent jp-restoreBtn"},"Restore version"," ",(e=>{const t=new Date(1e3*e);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")} ${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}:${String(t.getSeconds()).padStart(2,"0")}`})(r.timestamps[a])))))};class O extends s.ReactWidget{constructor(e,t,n,o){super(),this.apiURL=e,this.provider=t,this.contentType=n,this.format=o,this.addClass("jp-timelineSliderWrapper")}render(){return k.createElement(B,{key:this.apiURL,apiURL:this.apiURL,provider:this.provider,contentType:this.contentType,format:this.format})}updateContent(e,t){this.apiURL=e,this.provider=t,this.contentType=this.provider.contentType,this.format=this.provider.format,this.update()}}}}]);
@@ -1 +0,0 @@
1
- var _JUPYTERLAB;(()=>{"use strict";var e,r,t,o,a,n,i,u,l,d,s,f,c,p,h,v,b,y,m,g,j,w,P,k={496:(e,r,t)=>{var o={"./index":()=>Promise.all([t.e(823),t.e(544)]).then((()=>()=>t(544))),"./extension":()=>Promise.all([t.e(823),t.e(544)]).then((()=>()=>t(544))),"./style":()=>t.e(944).then((()=>()=>t(944)))},a=(e,r)=>(t.R=r,r=t.o(o,e)?o[e]():Promise.resolve().then((()=>{throw new Error('Module "'+e+'" does not exist in container.')})),t.R=void 0,r),n=(e,r)=>{if(t.S){var o="default",a=t.S[o];if(a&&a!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return t.S[o]=e,t.I(o,r)}};t.d(r,{get:()=>a,init:()=>n})}},S={};function x(e){var r=S[e];if(void 0!==r)return r.exports;var t=S[e]={id:e,exports:{}};return k[e](t,t.exports,x),t.exports}x.m=k,x.c=S,x.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return x.d(r,{a:r}),r},x.d=(e,r)=>{for(var t in r)x.o(r,t)&&!x.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},x.f={},x.e=e=>Promise.all(Object.keys(x.f).reduce(((r,t)=>(x.f[t](e,r),r)),[])),x.u=e=>e+"."+{206:"84c5901f15f0fa0bd745",544:"93c72014d00edb4807b7",562:"7a1279cc90d15b8b4fa0",576:"36471ca07f7437678515",823:"7ffe7ee89772c5a0cfc8",944:"b85c55dff0f14165f872"}[e]+".js?v="+{206:"84c5901f15f0fa0bd745",544:"93c72014d00edb4807b7",562:"7a1279cc90d15b8b4fa0",576:"36471ca07f7437678515",823:"7ffe7ee89772c5a0cfc8",944:"b85c55dff0f14165f872"}[e],x.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),x.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),e={},r="@jupyter/docprovider-extension:",x.l=(t,o,a,n)=>{if(e[t])e[t].push(o);else{var i,u;if(void 0!==a)for(var l=document.getElementsByTagName("script"),d=0;d<l.length;d++){var s=l[d];if(s.getAttribute("src")==t||s.getAttribute("data-webpack")==r+a){i=s;break}}i||(u=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,x.nc&&i.setAttribute("nonce",x.nc),i.setAttribute("data-webpack",r+a),i.src=t),e[t]=[o];var f=(r,o)=>{i.onerror=i.onload=null,clearTimeout(c);var a=e[t];if(delete e[t],i.parentNode&&i.parentNode.removeChild(i),a&&a.forEach((e=>e(o))),r)return r(o)},c=setTimeout(f.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=f.bind(null,i.onerror),i.onload=f.bind(null,i.onload),u&&document.head.appendChild(i)}},x.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{x.S={};var e={},r={};x.I=(t,o)=>{o||(o=[]);var a=r[t];if(a||(a=r[t]={}),!(o.indexOf(a)>=0)){if(o.push(a),e[t])return e[t];x.o(x.S,t)||(x.S[t]={});var n=x.S[t],i="@jupyter/docprovider-extension",u=(e,r,t,o)=>{var a=n[e]=n[e]||{},u=a[r];(!u||!u.loaded&&(!o!=!u.eager?o:i>u.from))&&(a[r]={get:t,from:i,eager:!!o})},l=[];return"default"===t&&(u("@jupyter/docprovider-extension","3.0.0-beta.5",(()=>Promise.all([x.e(823),x.e(544)]).then((()=>()=>x(544))))),u("@jupyter/docprovider","3.0.0-beta.5",(()=>Promise.all([x.e(562),x.e(823)]).then((()=>()=>x(562))))),u("y-websocket","1.5.4",(()=>Promise.all([x.e(576),x.e(206)]).then((()=>()=>x(576)))))),e[t]=l.length?Promise.all(l).then((()=>e[t]=1)):1}}})(),(()=>{var e;x.g.importScripts&&(e=x.g.location+"");var r=x.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var o=t.length-1;o>-1&&(!e||!/^http(s?):/.test(e));)e=t[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),x.p=e})(),t=e=>{var r=e=>e.split(".").map((e=>+e==e?+e:e)),t=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),o=t[1]?r(t[1]):[];return t[2]&&(o.length++,o.push.apply(o,r(t[2]))),t[3]&&(o.push([]),o.push.apply(o,r(t[3]))),o},o=(e,r)=>{e=t(e),r=t(r);for(var o=0;;){if(o>=e.length)return o<r.length&&"u"!=(typeof r[o])[0];var a=e[o],n=(typeof a)[0];if(o>=r.length)return"u"==n;var i=r[o],u=(typeof i)[0];if(n!=u)return"o"==n&&"n"==u||"s"==u||"u"==n;if("o"!=n&&"u"!=n&&a!=i)return a<i;o++}},a=e=>{var r=e[0],t="";if(1===e.length)return"*";if(r+.5){t+=0==r?">=":-1==r?"<":1==r?"^":2==r?"~":r>0?"=":"!=";for(var o=1,n=1;n<e.length;n++)o--,t+="u"==(typeof(u=e[n]))[0]?"-":(o>0?".":"")+(o=2,u);return t}var i=[];for(n=1;n<e.length;n++){var u=e[n];i.push(0===u?"not("+l()+")":1===u?"("+l()+" || "+l()+")":2===u?i.pop()+" "+i.pop():a(u))}return l();function l(){return i.pop().replace(/^\((.+)\)$/,"$1")}},n=(e,r)=>{if(0 in e){r=t(r);var o=e[0],a=o<0;a&&(o=-o-1);for(var i=0,u=1,l=!0;;u++,i++){var d,s,f=u<e.length?(typeof e[u])[0]:"";if(i>=r.length||"o"==(s=(typeof(d=r[i]))[0]))return!l||("u"==f?u>o&&!a:""==f!=a);if("u"==s){if(!l||"u"!=f)return!1}else if(l)if(f==s)if(u<=o){if(d!=e[u])return!1}else{if(a?d>e[u]:d<e[u])return!1;d!=e[u]&&(l=!1)}else if("s"!=f&&"n"!=f){if(a||u<=o)return!1;l=!1,u--}else{if(u<=o||s<f!=a)return!1;l=!1}else"s"!=f&&"n"!=f&&(l=!1,u--)}}var c=[],p=c.pop.bind(c);for(i=1;i<e.length;i++){var h=e[i];c.push(1==h?p()|p():2==h?p()&p():h?n(h,r):!p())}return!!p()},i=(e,r)=>e&&x.o(e,r),u=e=>(e.loaded=1,e.get()),l=e=>Object.keys(e).reduce(((r,t)=>(e[t].eager&&(r[t]=e[t]),r)),{}),d=(e,r,t,a)=>{var i=a?l(e[r]):e[r];return(r=Object.keys(i).reduce(((e,r)=>!n(t,r)||e&&!o(e,r)?e:r),0))&&i[r]},s=(e,r,t)=>{var a=t?l(e[r]):e[r];return Object.keys(a).reduce(((e,r)=>!e||!a[e].loaded&&o(e,r)?r:e),0)},f=(e,r,t,o)=>"Unsatisfied version "+t+" from "+(t&&e[r][t].from)+" of shared singleton module "+r+" (required "+a(o)+")",c=(e,r,t,o,n)=>{var i=e[t];return"No satisfying version ("+a(o)+")"+(n?" for eager consumption":"")+" of shared module "+t+" found in shared scope "+r+".\nAvailable versions: "+Object.keys(i).map((e=>e+" from "+i[e].from)).join(", ")},p=e=>{throw new Error(e)},h=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},b=(e,r,t)=>t?t():((e,r)=>p("Shared module "+r+" doesn't exist in shared scope "+e))(e,r),y=(v=e=>function(r,t,o,a,n){var i=x.I(r);return i&&i.then&&!o?i.then(e.bind(e,r,x.S[r],t,!1,a,n)):e(r,x.S[r],t,o,a,n)})(((e,r,t,o,a,n)=>{if(!i(r,t))return b(e,t,n);var l=d(r,t,a,o);return l?u(l):n?n():void p(c(r,e,t,a,o))})),m=v(((e,r,t,o,a,l)=>{if(!i(r,t))return b(e,t,l);var d=s(r,t,o);return n(a,d)||h(f(r,t,d,a)),u(r[t][d])})),g={},j={200:()=>m("default","@jupyterlab/apputils",!1,[1,4,3,5]),473:()=>m("default","@jupyterlab/coreutils",!1,[1,6,2,5]),678:()=>m("default","@jupyterlab/translation",!1,[1,4,2,5]),154:()=>m("default","@jupyterlab/logconsole",!1,[1,4,2,5]),256:()=>m("default","@lumino/widgets",!1,[1,2,3,1,,"alpha",0]),313:()=>m("default","@jupyterlab/filebrowser",!1,[1,4,2,5]),480:()=>m("default","@jupyterlab/notebook",!1,[1,4,2,5]),614:()=>m("default","@jupyterlab/settingregistry",!1,[1,4,2,5]),697:()=>m("default","@jupyter/ydoc",!1,[1,2,0,1]),710:()=>m("default","@jupyterlab/fileeditor",!1,[1,4,2,5]),909:()=>m("default","@jupyterlab/application",!1,[1,4,2,5]),922:()=>m("default","@jupyterlab/statusbar",!1,[1,4,2,5]),933:()=>m("default","@jupyter/docprovider",!1,[1,3,0,0,,"beta",5],(()=>x.e(562).then((()=>()=>x(562))))),262:()=>m("default","@lumino/coreutils",!1,[1,2,0,0]),345:()=>m("default","react",!1,[1,18,2,0]),354:()=>m("default","@jupyterlab/services",!1,[1,7,2,5]),460:()=>m("default","@jupyterlab/ui-components",!1,[1,4,2,5]),560:()=>y("default","y-websocket",!1,[1,1,3,15],(()=>Promise.all([x.e(576),x.e(206)]).then((()=>()=>x(576))))),602:()=>m("default","@lumino/signaling",!1,[1,2,0,0]),206:()=>m("default","yjs",!1,[1,13,5,40])},w={206:[206],544:[154,256,313,480,614,697,710,909,922,933],562:[262,345,354,460,560,602],823:[200,473,678]},P={},x.f.consumes=(e,r)=>{x.o(w,e)&&w[e].forEach((e=>{if(x.o(g,e))return r.push(g[e]);if(!P[e]){var t=r=>{g[e]=0,x.m[e]=t=>{delete x.c[e],t.exports=r()}};P[e]=!0;var o=r=>{delete g[e],x.m[e]=t=>{throw delete x.c[e],r}};try{var a=j[e]();a.then?r.push(g[e]=a.then(t).catch(o)):t(a)}catch(e){o(e)}}}))},(()=>{var e={552:0};x.f.j=(r,t)=>{var o=x.o(e,r)?e[r]:void 0;if(0!==o)if(o)t.push(o[2]);else if(/^(206|823)$/.test(r))e[r]=0;else{var a=new Promise(((t,a)=>o=e[r]=[t,a]));t.push(o[2]=a);var n=x.p+x.u(r),i=new Error;x.l(n,(t=>{if(x.o(e,r)&&(0!==(o=e[r])&&(e[r]=void 0),o)){var a=t&&("load"===t.type?"missing":t.type),n=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+a+": "+n+")",i.name="ChunkLoadError",i.type=a,i.request=n,o[1](i)}}),"chunk-"+r,r)}};var r=(r,t)=>{var o,a,[n,i,u]=t,l=0;if(n.some((r=>0!==e[r]))){for(o in i)x.o(i,o)&&(x.m[o]=i[o]);u&&u(x)}for(r&&r(t);l<n.length;l++)a=n[l],x.o(e,a)&&e[a]&&e[a][0](),e[a]=0},t=self.webpackChunk_jupyter_docprovider_extension=self.webpackChunk_jupyter_docprovider_extension||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),x.nc=void 0;var E=x(496);(_JUPYTERLAB=void 0===_JUPYTERLAB?{}:_JUPYTERLAB)["@jupyter/docprovider-extension"]=E})();
@@ -1,15 +0,0 @@
1
- jupyter_docprovider/__init__.py,sha256=pvzIgrnwXG3rAiMW5TvmGOCW0CPWIlk54yXEw_O_jrc,260
2
- jupyter_docprovider/_version.py,sha256=pfZsU2xvwzQMpF6AhdbQMF-_x8iXpJNYSJXPV2hW1JM,24
3
- jupyter_docprovider-1.0.0b5.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/package.json,sha256=vzG4Yuc_It1NK3QTPf6mashYi7THlD6Ca5O_gt5ntyQ,3808
4
- jupyter_docprovider-1.0.0b5.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/544.93c72014d00edb4807b7.js,sha256=k8cgFNAO20gHtyVfEONT6E8szL_mh8uIucmncS-1T5k,6254
5
- jupyter_docprovider-1.0.0b5.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/562.7a1279cc90d15b8b4fa0.js,sha256=ehJ5zJDRW4tPoGcajPdq_aBErZ3XRXceKt8cUCa9lWE,17258
6
- jupyter_docprovider-1.0.0b5.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/576.36471ca07f7437678515.js,sha256=NkccoH90N2eFFQb3MDhtydXI79zWHCGcIjAbJaiNjb0,15505
7
- jupyter_docprovider-1.0.0b5.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/944.b85c55dff0f14165f872.js,sha256=uFxV3_DxQWX4cpOx_X-aOdXlZjVqv_GHQuNECOVZLQ8,8557
8
- jupyter_docprovider-1.0.0b5.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/remoteEntry.01ca8b4214d9332cf35c.js,sha256=AcqLQhTZMyzzXGGYW_ylWRkla4wC44aUg2dUAhsaiUg,8904
9
- jupyter_docprovider-1.0.0b5.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/style.js,sha256=IIvKvBMPlm9SdCt0l2x7pOx2ZMG7tbWWhxCH8l4ylSU,173
10
- jupyter_docprovider-1.0.0b5.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/static/third-party-licenses.json,sha256=OZzA2eD0CAjff_cgNjfiayGxZ8YKJwoaNIkzezgQqSg,7760
11
- jupyter_docprovider-1.0.0b5.data/data/share/jupyter/labextensions/@jupyter/docprovider-extension/install.json,sha256=NO9HH1zbt0jedIG_-lqpMiOhO1OAvrUmoUfIjgyzvpE,199
12
- jupyter_docprovider-1.0.0b5.dist-info/METADATA,sha256=Am1QcrJg9dr6_pO-i_5HjpTP_lo9763293gLIFcJJtM,4764
13
- jupyter_docprovider-1.0.0b5.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
14
- jupyter_docprovider-1.0.0b5.dist-info/licenses/LICENSE,sha256=mhO0ZW9EiWOPg0dUgB-lNbJ0CGwRmTdbeAg_se1SOnY,2833
15
- jupyter_docprovider-1.0.0b5.dist-info/RECORD,,