Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-jupyter-docprovider for
openSUSE:Factory checked in at 2025-01-31 16:02:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jupyter-docprovider (Old)
and /work/SRC/openSUSE:Factory/.python-jupyter-docprovider.new.2316 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-jupyter-docprovider"
Fri Jan 31 16:02:21 2025 rev:2 rq:1241237 version:1.1.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-jupyter-docprovider/python-jupyter-docprovider.changes
2024-11-08 12:04:24.294041863 +0100
+++
/work/SRC/openSUSE:Factory/.python-jupyter-docprovider.new.2316/python-jupyter-docprovider.changes
2025-01-31 16:02:45.211899993 +0100
@@ -1,0 +2,6 @@
+Wed Jan 29 15:46:06 UTC 2025 - Ben Greiner <[email protected]>
+
+- Update to 1.1.0
+ * New subpackage version for jupyter-collaboration 3.1.0
+
+-------------------------------------------------------------------
Old:
----
jupyter_docprovider-1.0.0.tar.gz
New:
----
jupyter_docprovider-1.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-jupyter-docprovider.spec ++++++
--- /var/tmp/diff_new_pack.UeH0QQ/_old 2025-01-31 16:02:45.611916041 +0100
+++ /var/tmp/diff_new_pack.UeH0QQ/_new 2025-01-31 16:02:45.611916041 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-jupyter-docprovider
#
-# Copyright (c) 2024 SUSE LLC
+# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,9 +16,9 @@
#
-%define distversion 1
+%define distversion 1.1
Name: python-jupyter-docprovider
-Version: 1.0.0
+Version: 1.1.0
Release: 0
Summary: Jupyter extension integrating collaborative shared models
License: BSD-3-Clause
@@ -70,7 +70,6 @@
#%%check
# tests are in the python-jupyter-collaboration metapackage
-
%files %{python_files}
%{python_sitelib}/jupyter_docprovider
%{python_sitelib}/jupyter_docprovider-%{version}.dist-info
++++++ jupyter_docprovider-1.0.0.tar.gz -> jupyter_docprovider-1.1.0.tar.gz
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_docprovider-1.0.0/PKG-INFO
new/jupyter_docprovider-1.1.0/PKG-INFO
--- old/jupyter_docprovider-1.0.0/PKG-INFO 2020-02-02 01:00:00.000000000
+0100
+++ new/jupyter_docprovider-1.1.0/PKG-INFO 2020-02-02 01:00:00.000000000
+0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.3
Name: jupyter-docprovider
-Version: 1.0.0
+Version: 1.1.0
Summary: JupyterLab/Jupyter Notebook 7+ extension integrating collaborative
shared models.
Project-URL: Documentation,
https://jupyterlab-realtime-collaboration.readthedocs.io/
Project-URL: Repository, https://github.com/jupyterlab/jupyter-collaboration
@@ -64,7 +64,6 @@
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
-License-File: LICENSE
Classifier: Framework :: Jupyter
Classifier: Framework :: Jupyter :: JupyterLab
Classifier: Framework :: Jupyter :: JupyterLab :: 4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_docprovider-1.0.0/jupyter_docprovider/_version.py
new/jupyter_docprovider-1.1.0/jupyter_docprovider/_version.py
--- old/jupyter_docprovider-1.0.0/jupyter_docprovider/_version.py
2020-02-02 01:00:00.000000000 +0100
+++ new/jupyter_docprovider-1.1.0/jupyter_docprovider/_version.py
2020-02-02 01:00:00.000000000 +0100
@@ -1 +1 @@
-__version__ = "1.0.0"
+__version__ = "1.1.0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_docprovider-1.0.0/jupyter_docprovider/labextension/package.json
new/jupyter_docprovider-1.1.0/jupyter_docprovider/labextension/package.json
--- old/jupyter_docprovider-1.0.0/jupyter_docprovider/labextension/package.json
2020-02-02 01:00:00.000000000 +0100
+++ new/jupyter_docprovider-1.1.0/jupyter_docprovider/labextension/package.json
2020-02-02 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
{
"name": "@jupyter/docprovider-extension",
- "version": "3.0.0",
+ "version": "3.1.0",
"description": "JupyterLab - Collaborative Shared Models",
"keywords": [
"jupyter",
@@ -53,8 +53,8 @@
"watch:labextension": "jupyter labextension watch ."
},
"dependencies": {
- "@jupyter/collaborative-drive": "^3.0.0",
- "@jupyter/docprovider": "^3.0.0",
+ "@jupyter/collaborative-drive": "^3.1.0",
+ "@jupyter/docprovider": "^3.1.0",
"@jupyter/ydoc": "^2.0.0 || ^3.0.0",
"@jupyterlab/application": "^4.2.0",
"@jupyterlab/apputils": "^4.2.0",
@@ -128,7 +128,7 @@
}
},
"_build": {
- "load": "static/remoteEntry.df025193a26e76919ed8.js",
+ "load": "static/remoteEntry.2870ff42f76951af28a0.js",
"extension": "./extension",
"style": "./style"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_docprovider-1.0.0/jupyter_docprovider/labextension/static/240.dd1dbd559d6c95c85b3f.js
new/jupyter_docprovider-1.1.0/jupyter_docprovider/labextension/static/240.dd1dbd559d6c95c85b3f.js
---
old/jupyter_docprovider-1.0.0/jupyter_docprovider/labextension/static/240.dd1dbd559d6c95c85b3f.js
1970-01-01 01:00:00.000000000 +0100
+++
new/jupyter_docprovider-1.1.0/jupyter_docprovider/labextension/static/240.dd1dbd559d6c95c85b3f.js
2020-02-02 01:00:00.000000000 +0100
@@ -0,0 +1 @@
+"use
strict";(self.webpackChunk_jupyter_docprovider_extension=self.webpackChunk_jupyter_docprovider_extension||[]).push([[240],{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",""]);con
st 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;br
eak}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.HTMLI
FrameElement)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))}}},240:(e,t,n)=>{n.r(t),n.d(t,{ForkManager:()=>K,IForkManagerToken:()=>J,JUPYTER_COLLABORATION_FORK_EVENTS_URI:()=>q,NotebookCellServerExecutor:()=>l,ROOM_FORK_URL:()=>p,TimelineWidget:()=>B,WebSocketAwarenessProvider:()=>r,WebSocketProvider:()=>w,YDrive:()=>k,requestAPI:()=>m,requestDocSession:()=>f,requestDocumentTimeline:()=>v,requestUndoRedo:()=>g});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(123),i=n(672),a=n(943),c=n(624);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"),g={method:"POST",body:JSON.stringify({cell_id:h,document_id:v})};r({cell:e});let
y=!1;try{y=(await
a.ServerConnection.makeRequest(c,g,this._serverSettings)).ok}catch(t){if(o({cell:e,success:!1}),e.isDisposed)return!1;throw
t}return o({cell:e,success:y}),!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",p="api/collaboration/fork";async
function m(e="",t={}){const
n=a.ServerConnection.makeSettings(),o=i.URLExt.join(n.baseUrl,e);let
r;try{r=await a.ServerConnection.makeRequest(o,t,n)}catch(e){throw new
a.ServerConnection.NetworkError(e)}let s=await
r.text();if(s.length>0)try{s=JSON.parse(s)}catch(e){console.error("Not a JSON
response body.",r)}if(!r.ok)throw new
a.ServerConnection.ResponseError(r,s.message||s);return s}async function
f(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 bo
dy.",c)}if(!c.ok)throw new
a.ServerConnection.ResponseError(c,l.message||l);return l}async function
v(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 g(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
y=n(602),_=n(262);class
w{constructor(e){this._onConnectionClosed=e=>{1003===e.code&&(console.error("Document
provider closed:",e.rea
son),(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
_.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._isDispo
sed=!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(),y.Signal.clearData(this))}async
reconnect(){this._disconnect(),this._connect()}async _connect(){const e=await
f(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
S="true"===i.PageConfig.getOption("disableRTC");class k 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
w({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.pa
th}`;this._providers.set(a,r),t.changed.connect((async(n,o)=>{var
r;if(!o.stateChange)return;const
s=o.stateChange.filter((e=>"hash"===e.name));if(0===s.length)return;s.length>1&&console.error("Unexpected
multiple changes to hash value in a single transaction");const
i=s[0],a=null!==(r=t.state.path)&&void 0!==r?r:e.path,c=await
this.get(a,{content:!1});this._ydriveFileChanged.emit({type:"save",newValue:{...c,hash:i.newValue},oldValue:{hash:i.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
y.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,format:t.format}}}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=!S,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),T=n.n(C),E=n(591),x=n.n(E),R=n(740),U=n.n(R),D=n(128),$=n.n(D),N=n(855),P=n.n(N),j=n(51),I=n.n(j),L=n(656),M=n.n(L),F=n(68),W={};W.styleTagTransform=M(),W.setAttributes=P(),W.insert=$().bind(null,"head"),W.domAPI=U(),W.insertStyleElement=I(),x()(F.A,W),F.A&&F.A.locals&&F.A.locals;var
A=n(597);const
O=({apiURL:e,provider:t,contentType:n,format:o,documentTimelineUrl:r})=>{const[i,a]=(0,C.useState)({roomId:"",timestamps:[],forkRoom:"",sessionId:""}),[c,l]=(0,C.useState)(i.timestamps.length-1),[d,h]=(0,C.useState)(!1),[u,p]=(0,C.useState)(!1),m=(0,C.useRef)(!0),y=(0,C.useRef)(!0),_=(0,C.useRef)(null);function
w(e){try{const t=new URL(e).pathname,n=t.lastIndexOf(r);if(-1===n)throw new
Error(
`API segment "${r}" not found in URL.`);return
t.slice(n+r.length)}catch(e){return console.error("Invalid URL or unable to
extract filename:",e),""}}return
T().createElement("div",{className:"jp-sliderContainer"},T().createElement("div",{onClick:()=>{!async
function(r){try{if(m.current){const i=await v(o,n,r);if(!i.ok)throw
404===i.status?new Error("Not found"):503===i.status?new Error("WebSocket
closed"):new Error(`Failed to fetch data: ${i.statusText}`);const c=await
i.text();let d={roomId:"",timestamps:[],forkRoom:"",sessionId:""};return
c&&(s.Notification.warning("Document is now in read-only mode. Changes will not
be
saved.",{autoClose:2500}),d=JSON.parse(c),a(d),l(d.timestamps.length-1),t.connectToForkDoc(d.forkRoom,d.sessionId),_.current=await
f(o,n,w(e))),h(!0),m.current=!1,d}}catch(e){console.error("Error fetching
data:",e)}}(w(e))},className:"jp-mod-highlighted",title:"Document
Timeline"},T().createElement(A.historyIcon.react,{marginRight:"4px"})),d&&T().createElement("div
",{className:"jp-timestampDisplay"},T().createElement("input",{type:"range",min:0,max:i.timestamps.length-1,value:c,onChange:async
e=>{const t=parseInt(e.target.value),n=Math.abs(t-c);try{const
e=function(e){return
e<c?"undo":"redo"}(t);if(l(t),y.current&&(p(!0),y.current=!1),!_.current)return
void console.error("Session is not initialized");await
g(`${_.current.format}:${_.current.type}:${_.current.fileId}`,e,n,i.forkRoom)}catch(e){console.error("Error
fetching or applying
updates:",e)}},className:"jp-Slider"}),T().createElement("div",null,T().createElement("strong",null,w(e).split("/").pop(),"
"),"
"),u&&T().createElement("div",{className:"jp-restoreBtnContainer"},T().createElement("button",{onClick:async()=>{if(!_.current)return
void console.error("Session is not initialized");const e=await
g(`${_.current.format}:${_.current.type}:${_.current.fileId}`,"restore",0,i.forkRoom);200===e.code?(s.Notification.success(e.status,{autoClose:4e3}),t.reconnect(),h(!1),m.current=!0):s.Notific
ation.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")}`})(i.timestamps[c])))))};class
B extends
s.ReactWidget{constructor(e,t,n,o,r){super(),this.apiURL=e,this.provider=t,this.contentType=n,this.format=o,this.documentTimelineUrl=r,this.addClass("jp-timelineSliderWrapper")}render(){return
C.createElement(O,{key:this.apiURL,apiURL:this.apiURL,provider:this.provider,contentType:this.contentType,format:this.format,documentTimelineUrl:this.documentTimelineUrl})}updateContent(e,t){this.apiURL=e,this.provider=t,this.contentType=this.provider.contentType,this.format=this.provider.format,this.update()}}const
J=new _.Token("@jupyter/docprovider:IForkManagerToken"),q="https://sche
ma.jupyter.org/jupyter_collaboration/fork/v1";class
K{constructor(e){this._disposed=!1,this._forkAddedSignal=new
y.Signal(this),this._forkDeletedSignal=new
y.Signal(this);const{drive:t,eventManager:n}=e;this._drive=t,this._eventManager=n,this._eventManager.stream.connect(this._handleEvent,this)}get
isDisposed(){return this._disposed}get forkAdded(){return
this._forkAddedSignal}get forkDeleted(){return
this._forkDeletedSignal}dispose(){var
e;this._disposed||(null===(e=this._eventManager)||void
0===e||e.stream.disconnect(this._handleEvent),this._disposed=!0)}async
createFork(e){const{rootId:t,title:n,description:o,synchronize:r}=e,s={method:"PUT",body:JSON.stringify({title:n,description:o,synchronize:r})},a=i.URLExt.join(p,t);return
await m(a,s)}async getAllForks(e){const t=i.URLExt.join(p,e);return await
m(t,{method:"GET"})}async
deleteFork(e){const{forkId:t,merge:n}=e,o=i.URLExt.join(p,t),r=i.URLExt.objectToQueryString({merge:n});await
m(`${o}${r}`,{method:"DELETE"})}getProvider(e){
const{documentPath:t,format:n,type:o}=e,r=this._drive;if(r){const e=r.name;let
s=t;return
t.startsWith(e)&&(s=t.slice(e.length+1)),r.providers.get(`${n}:${o}:${s}`)}}_handleEvent(e,t){if(t.schema_id===q)switch(t.action){case"create":this._forkAddedSignal.emit(t);break;case"delete":this._forkDeletedSignal.emit(t)}}}}}]);
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_docprovider-1.0.0/jupyter_docprovider/labextension/static/544.20c789155db30fb50597.js
new/jupyter_docprovider-1.1.0/jupyter_docprovider/labextension/static/544.20c789155db30fb50597.js
---
old/jupyter_docprovider-1.0.0/jupyter_docprovider/labextension/static/544.20c789155db30fb50597.js
2020-02-02 01:00:00.000000000 +0100
+++
new/jupyter_docprovider-1.1.0/jupyter_docprovider/labextension/static/544.20c789155db30fb50597.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-"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:()=>S});var
r,a=o(909),n=o(200),i=o(256),s=o(313),l=o(922),d=o(710),c=o(154),u=o(480),p=o(614),v=o(678),g=o(697),h=o(975),b=o(907),w=o(473);!function(e){e.openPath="filebrowser:open-path"}(r||(r={}));const
m="The file %1 has been opened with two different views. This is not
supported. Please close this view; otherwise, some of your edits may not be
saved properly.",y={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"),a=new
b.YDrive(e.serviceManager.user,r,o);return
e.serviceManager.contents.addDrive(a),a}},f={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))}},x={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})))}},I={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,a=null;const n=async(t,r)=>{if(o){t=t.sli
ce(o.name.length+1),a&&(a.dispose(),a=null);const[n,s]=r.split(":"),l=o.providers.get(`${n}:${s}:${t}`),d=w.URLExt.join(e.serviceManager.serverSettings.baseUrl,"api/collaboration/timeline",t);a=new
b.TimelineWidget(d,l,l.contentType,l.format);const
c=document.getElementById("jp-slider-status-bar");c&&!a.isAttached&&i.Widget.attach(a,c)}};e.shell.currentChanged&&e.shell.currentChanged.connect((async(e,t)=>{const
o=t.newValue;a&&(a.dispose(),a=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
i.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)}}},_={id:"@jupyter/docprovider-extension:defaultFileBrowser",description:"The
defaul
t file browser factory
provider",provides:s.IDefaultFileBrowser,requires:[h.ICollaborativeDrive,s.IFileBrowserFactory],optional:[a.IRouter,a.JupyterFrontEnd.ITreeResolver,a.ILabShell,v.ITranslator],activate:async(e,t,o,r,a,n,i)=>{const{commands:s}=e,l=(null!=i?i:v.nullTranslator).load("jupyterlab");e.serviceManager.contents.addDrive(t);const
d=o.createFileBrowser("filebrowser",{auto:!1,restore:!1,driveName:t.name});return
d.node.setAttribute("role","region"),d.node.setAttribute("aria-label",l.__("File
Browser
Section")),k.restoreBrowser(d,s,r,a,n),d}},j={id:"@jupyter/docprovider-extension:logger",description:"A
logging plugin for debugging
purposes.",autoStart:!0,optional:[c.ILoggerRegistry,d.IEditorTracker,u.INotebookTracker,v.ITranslator],activate:(e,t,o,r,a)=>{const
i=(null!=a?a: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:i.__("Warning"),body:i.__(m,t.path),buttons:[n.Dialog.okButton()]}))}));const
l=new Map,d=(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(d),r&&r.widgetAdded.connect(d),(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:i.__("Warning"),body:i.__(m,e.path),buttons:[n.Dialog.warnButton({label:i.__("Ok")})]})}})()}};var
k;!function(e){e.restoreBrowser=async function(e,t,o,a,n){const
i="jp-mod-restoring";if(e.addClass(i),!o)return await e.model.restore(
e.id),await e.model.refresh(),void e.removeClass(i);const
s=async()=>{o.routed.disconnect(s);const l=await(null==a?void
0:a.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(i),(null==n?void
0:n.isEmpty("main"))&&t.execute("launcher:create")};o.routed.connect(s)}}(k||(k={}));const
S=[y,f,x,_,j,{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
b.NotebookCellServerExecutor({serverSettings:e.serviceManager.serverSettings}):Object.freeze({runCell:u.runCell})},I]}}]);
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_docprovider-1.0.0/jupyter_docprovider/labextension/static/576.21a3c1a9ebaebb58d346.js
new/jupyter_docprovider-1.1.0/jupyter_docprovider/labextension/static/576.21a3c1a9ebaebb58d346.js
---
old/jupyter_docprovider-1.0.0/jupyter_docprovider/labextension/static/576.21a3c1a9ebaebb58d346.js
1970-01-01 01:00:00.000000000 +0100
+++
new/jupyter_docprovider-1.1.0/jupyter_docprovider/labextension/static/576.21a3c1a9ebaebb58d346.js
2020-02-02 01:00:00.000000000 +0100
@@ -0,0 +1 @@
+(self.webpackChunk_jupyter_docprovider_extension=self.webpackChunk_jupyter_docprovider_extension||[]).push([[576],{907:e=>{var
t,s,n=e.exports={};function r(){throw new Error("setTimeout has not been
defined")}function o(){throw new Error("clearTimeout has not been
defined")}function c(e){if(t===setTimeout)return
setTimeout(e,0);if((t===r||!t)&&setTimeout)return
t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(s){try{return
t.call(null,e,0)}catch(s){return
t.call(this,e,0)}}}!function(){try{t="function"==typeof
setTimeout?setTimeout:r}catch(e){t=r}try{s="function"==typeof
clearTimeout?clearTimeout:o}catch(e){s=o}}();var a,i=[],l=!1,h=-1;function
u(){l&&a&&(l=!1,a.length?i=a.concat(i):h=-1,i.length&&d())}function
d(){if(!l){var e=c(u);l=!0;for(var
t=i.length;t;){for(a=i,i=[];++h<t;)a&&a[h].run();h=-1,t=i.length}a=null,l=!1,function(e){if(s===clearTimeout)return
clearTimeout(e);if((s===o||!s)&&clearTimeout)return
s=clearTimeout,clearTimeout(e);try{return s(e)}catch(t){try{return s
.call(null,e)}catch(t){return s.call(this,e)}}}(e)}}function
f(e,t){this.fun=e,this.array=t}function p(){}n.nextTick=function(e){var t=new
Array(arguments.length-1);if(arguments.length>1)for(var
s=1;s<arguments.length;s++)t[s-1]=arguments[s];i.push(new
f(e,t)),1!==i.length||l||c(d)},f.prototype.run=function(){this.fun.apply(null,this.array)},n.title="browser",n.browser=!0,n.env={},n.argv=[],n.version="",n.versions={},n.on=p,n.addListener=p,n.once=p,n.off=p,n.removeListener=p,n.removeAllListeners=p,n.emit=p,n.prependListener=p,n.prependOnceListener=p,n.listeners=function(e){return[]},n.binding=function(e){throw
new Error("process.binding is not
supported")},n.cwd=function(){return"/"},n.chdir=function(e){throw new
Error("process.chdir is not supported")},n.umask=function(){return
0}},576:(e,t,s)=>{"use
strict";s.r(t),s.d(t,{WebsocketProvider:()=>Ce,messageAuth:()=>_e,messageAwareness:()=>ve,messageQueryAwareness:()=>ye,messageSync:()=>me});var
n=s(206);const r=()=>new Map,o=(e,t,s)=>
{let n=e.get(t);return void 0===n&&e.set(t,n=s()),n},c=()=>new
Set,a=String.fromCharCode,i=(String.fromCodePoint,a(65535),/^\s*/g),l=/([A-Z])/g,h=(e,t)=>(e=>e.replace(i,""))(e.replace(l,(e=>`${t}${(e=>e.toLowerCase())(e)}`))),u="undefined"!=typeof
TextEncoder?new TextEncoder:null,d=u?e=>u.encode(e):e=>{const
t=unescape(encodeURIComponent(e)),s=t.length,n=new Uint8Array(s);for(let
e=0;e<s;e++)n[e]=t.codePointAt(e);return n};let f="undefined"==typeof
TextDecoder?null:new
TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});f&&1===f.decode(new
Uint8Array).length&&(f=null);let p=new class{constructor(){this.map=new
Map}setItem(e,t){this.map.set(e,t)}getItem(e){return
this.map.get(e)}},g=!0;try{"undefined"!=typeof
localStorage&&localStorage&&(p=localStorage,g=!1)}catch(e){}const
b=p,w=Array.from,m=(Array.isArray,Object.assign,Object.keys),y=e=>m(e).length,v=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),_=(Object.freeze,(e,t)=>{if(null==e||null==t)return((e,t)=>e===t)(e,t);if(e.constructor!==t
.constructor)return!1;if(e===t)return!0;switch(e.constructor){case
ArrayBuffer:e=new Uint8Array(e),t=new Uint8Array(t);case
Uint8Array:if(e.byteLength!==t.byteLength)return!1;for(let
s=0;s<e.length;s++)if(e[s]!==t[s])return!1;break;case
Set:if(e.size!==t.size)return!1;for(const s of
e)if(!t.has(s))return!1;break;case Map:if(e.size!==t.size)return!1;for(const s
of e.keys())if(!t.has(s)||!_(e.get(s),t.get(s)))return!1;break;case
Object:if(y(e)!==y(t))return!1;for(const s in
e)if(!v(e,s)||!_(e[s],t[s]))return!1;break;case
Array:if(e.length!==t.length)return!1;for(let
s=0;s<e.length;s++)if(!_(e[s],t[s]))return!1;break;default:return!1}return!0});var
I=s(907);const S=void
0!==I&&I.release&&/node|io\.js/.test(I.release.name)&&"[object
process]"===Object.prototype.toString.call(void
0!==I?I:0),U="undefined"!=typeof window&&"undefined"!=typeof document&&!S;let
A;"undefined"!=typeof navigator&&/Mac/.test(navigator.platform);const
k=[],C=e=>(()=>{if(void 0===A)if(S){A=r();const e=I.argv;let t
=null;for(let s=0;s<e.length;s++){const
n=e[s];"-"===n[0]?(null!==t&&A.set(t,""),t=n):null!==t?(A.set(t,n),t=null):k.push(n)}null!==t&&A.set(t,"")}else"object"==typeof
location?(A=r(),(location.search||"?").slice(1).split("&").forEach((e=>{if(0!==e.length){const[t,s]=e.split("=");A.set(`--${h(t,"-")}`,s),A.set(`-${h(t,"-")}`,s)}}))):A=r();return
A})().has(e),L=e=>{return void
0===(t=S?I.env[e.toUpperCase().replaceAll("-","_")]:b.getItem(e))?null:t;var
t},T=e=>C("--"+e)||null!==L(e);var
M;T("production"),S&&(M=I.env.FORCE_COLOR,["true","1","2"].includes(M))||!C("--no-colors")&&!T("no-color")&&(!S||I.stdout.isTTY)&&(!S||C("--color")||null!==L("COLORTERM")||(L("TERM")||"").includes("color"));const
E=U?e=>{let t="";for(let s=0;s<e.byteLength;s++)t+=a(e[s]);return
btoa(t)}:e=>Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"),O=U?e=>{const
t=atob(e),s=(n=t.length,new Uint8Array(n));var n;for(let
e=0;e<t.length;e++)s[e]=t.charCodeAt(e);return s}:e=>{const t=Buffer.from(e,"
base64");return s=t.buffer,n=t.byteOffset,r=t.byteLength,new
Uint8Array(s,n,r);var s,n,r},R=new Map,x="undefined"==typeof
BroadcastChannel?class{constructor(e){var
t;this.room=e,this.onmessage=null,this._onChange=t=>t.key===e&&null!==this.onmessage&&this.onmessage({data:O(t.newValue||"")}),t=this._onChange,g||addEventListener("storage",t)}postMessage(e){b.setItem(this.room,E(new
Uint8Array(e)))}close(){var
e;e=this._onChange,g||removeEventListener("storage",e)}}:BroadcastChannel,B=e=>o(R,e,(()=>{const
t=c(),s=new x(e);return
s.onmessage=e=>t.forEach((t=>t(e.data,"broadcastchannel"))),{bc:s,subs:t}})),D=(e,t,s=null)=>{const
n=B(e);n.bc.postMessage(t),n.subs.forEach((e=>e(t,s)))},N=Date.now,j=Math.floor,P=(Math.ceil,Math.abs,Math.imul,Math.round,Math.log10,Math.log2,Math.log,Math.sqrt,(e,t)=>e<t?e:t),H=(Number.isNaN,Math.pow),$=(Math.sign,128),z=127;class
W{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const
F=()=>new W,V=e=>{let t=e.cpos;for(let s=0;s<e.bufs.l
ength;s++)t+=e.bufs[s].length;return t},G=e=>{const t=new Uint8Array(V(e));let
s=0;for(let n=0;n<e.bufs.length;n++){const
r=e.bufs[n];t.set(r,s),s+=r.length}return t.set(new
Uint8Array(e.cbuf.buffer,0,e.cpos),s),t},J=(e,t)=>{const
s=e.cbuf.length;e.cpos===s&&(e.bufs.push(e.cbuf),e.cbuf=new
Uint8Array(2*s),e.cpos=0),e.cbuf[e.cpos++]=t},Y=(e,t)=>{for(;t>z;)J(e,$|z&t),t=j(t/128);J(e,z&t)},q=new
Uint8Array(3e4),Q=q.length/3,X=u&&u.encodeInto?(e,t)=>{if(t.length<Q){const
s=u.encodeInto(t,q).written||0;Y(e,s);for(let t=0;t<s;t++)J(e,q[t])}else
Z(e,d(t))}:(e,t)=>{const
s=unescape(encodeURIComponent(t)),n=s.length;Y(e,n);for(let
t=0;t<n;t++)J(e,s.codePointAt(t))},Z=(e,t)=>{Y(e,t.byteLength),((e,t)=>{const
s=e.cbuf.length,n=e.cpos,r=P(s-n,t.length),o=t.length-r;var
c,a;e.cbuf.set(t.subarray(0,r),n),e.cpos+=r,o>0&&(e.bufs.push(e.cbuf),e.cbuf=new
Uint8Array((c=2*s)>(a=o)?c:a),e.cbuf.set(t.subarray(r)),e.cpos=o)})(e,t)};new
DataView(new ArrayBuffer(4));const K=Number.MAX_SAFE_INTEGER,ee=(Number
.MIN_SAFE_INTEGER,Number.isInteger,Number.isNaN,Number.parseInt,e=>new
Error(e)),te=ee("Unexpected end of array"),se=ee("Integer out of Range");class
ne{constructor(e){this.arr=e,this.pos=0}}const re=e=>new
ne(e),oe=e=>((e,t)=>{const s=new
Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return
e.pos+=t,s})(e,ae(e)),ce=e=>e.arr[e.pos++],ae=e=>{let t=0,s=1;const
n=e.arr.length;for(;e.pos<n;){const
n=e.arr[e.pos++];if(t+=(n&z)*s,s*=128,n<$)return t;if(t>K)throw se}throw
te},ie=f?e=>f.decode(oe(e)):e=>{let t=ae(e);if(0===t)return"";{let
s=String.fromCodePoint(ce(e));if(--t<100)for(;t--;)s+=String.fromCodePoint(ce(e));else
for(;t>0;){const
n=t<1e4?t:1e4,r=e.arr.subarray(e.pos,e.pos+n);e.pos+=n,s+=String.fromCodePoint.apply(null,r),t-=n}return
decodeURIComponent(escape(s))}},le=(e,t)=>{Y(e,0);const
s=n.encodeStateVector(t);Z(e,s)},he=(e,t,s)=>{Y(e,1),Z(e,n.encodeStateAsUpdate(t,s))},ue=(e,t,s)=>{try{n.applyUpdate(t,oe(e),s)}catch(e){console.error("Caught
error while handling a Yjs updat
e",e)}},de=ue;class
fe{constructor(){this._observers=r()}on(e,t){o(this._observers,e,c).add(t)}once(e,t){const
s=(...n)=>{this.off(e,s),t(...n)};this.on(e,s)}off(e,t){const
s=this._observers.get(e);void
0!==s&&(s.delete(t),0===s.size&&this._observers.delete(e))}emit(e,t){return
w((this._observers.get(e)||r()).values()).forEach((e=>e(...t)))}destroy(){this._observers=r()}}class
pe extends
fe{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new
Map,this.meta=new Map,this._checkInterval=setInterval((()=>{const
e=N();null!==this.getLocalState()&&15e3<=e-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const
t=[];this.meta.forEach(((s,n)=>{n!==this.clientID&&3e4<=e-s.lastUpdated&&this.states.has(n)&&t.push(n)})),t.length>0&&ge(this,t,"timeout")}),j(3e3)),e.on("destroy",(()=>{this.destroy()})),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLo
calState(){return this.states.get(this.clientID)||null}setLocalState(e){const
t=this.clientID,s=this.meta.get(t),n=void
0===s?0:s.clock+1,r=this.states.get(t);null===e?this.states.delete(t):this.states.set(t,e),this.meta.set(t,{clock:n,lastUpdated:N()});const
o=[],c=[],a=[],i=[];null===e?i.push(t):null==r?null!=e&&o.push(t):(c.push(t),_(r,e)||a.push(t)),(o.length>0||a.length>0||i.length>0)&&this.emit("change",[{added:o,updated:a,removed:i},"local"]),this.emit("update",[{added:o,updated:c,removed:i},"local"])}setLocalStateField(e,t){const
s=this.getLocalState();null!==s&&this.setLocalState({...s,[e]:t})}getStates(){return
this.states}}const ge=(e,t,s)=>{const n=[];for(let s=0;s<t.length;s++){const
r=t[s];if(e.states.has(r)){if(e.states.delete(r),r===e.clientID){const
t=e.meta.get(r);e.meta.set(r,{clock:t.clock+1,lastUpdated:N()})}n.push(r)}}n.length>0&&(e.emit("change",[{added:[],updated:[],removed:n},s]),e.emit("update",[{added:[],updated:[],removed:n},s]))},be=(e,t,s=e.states)=>{co
nst n=t.length,r=F();Y(r,n);for(let o=0;o<n;o++){const
n=t[o],c=s.get(n)||null,a=e.meta.get(n).clock;Y(r,n),Y(r,a),X(r,JSON.stringify(c))}return
G(r)};var we=s(907);const
me=0,ye=3,ve=1,_e=2,Ie=[];Ie[me]=(e,t,s,n,r)=>{Y(e,me);const
o=((e,t,s,n)=>{const r=ae(e);switch(r){case
0:((e,t,s)=>{he(t,s,oe(e))})(e,t,s);break;case 1:ue(e,s,n);break;case
2:de(e,s,n);break;default:throw new Error("Unknown message type")}return
r})(t,e,s.doc,s);n&&1===o&&!s.synced&&(s.synced=!0)},Ie[ye]=(e,t,s,n,r)=>{Y(e,ve),Z(e,be(s.awareness,Array.from(s.awareness.getStates().keys())))},Ie[ve]=(e,t,s,n,r)=>{((e,t,s)=>{const
n=re(t),r=N(),o=[],c=[],a=[],i=[],l=ae(n);for(let t=0;t<l;t++){const
t=ae(n);let s=ae(n);const
l=JSON.parse(ie(n)),h=e.meta.get(t),u=e.states.get(t),d=void
0===h?0:h.clock;(d<s||d===s&&null===l&&e.states.has(t))&&(null===l?t===e.clientID&&null!=e.getLocalState()?s++:e.states.delete(t):e.states.set(t,l),e.meta.set(t,{clock:s,lastUpdated:r}),void
0===h&&null!==l?o.push(t):void 0!==h&&null===l
?i.push(t):null!==l&&(_(l,u)||a.push(t),c.push(t)))}(o.length>0||a.length>0||i.length>0)&&e.emit("change",[{added:o,updated:a,removed:i},s]),(o.length>0||c.length>0||i.length>0)&&e.emit("update",[{added:o,updated:c,removed:i},s])})(s.awareness,oe(t),s)},Ie[_e]=(e,t,s,n,r)=>{((e,t,s)=>{0===ae(e)&&s(0,ie(e))})(t,s.doc,((e,t)=>Se(s,t)))};const
Se=(e,t)=>console.warn(`Permission denied to access
${e.url}.\n${t}`),Ue=(e,t,s)=>{const
n=re(t),r=F(),o=ae(n),c=e.messageHandlers[o];return
c?c(r,n,e,s,o):console.error("Unable to compute
message"),r},Ae=e=>{if(e.shouldConnect&&null===e.ws){const t=new
e._WS(e.url);t.binaryType="arraybuffer",e.ws=t,e.wsconnecting=!0,e.wsconnected=!1,e.synced=!1,t.onmessage=s=>{e.wsLastMessageReceived=N();const
n=Ue(e,new
Uint8Array(s.data),!0);V(n)>1&&t.send(G(n))},t.onerror=t=>{e.emit("connection-error",[t,e])},t.onclose=t=>{e.emit("connection-close",[t,e]),e.ws=null,e.wsconnecting=!1,e.wsconnected?(e.wsconnected=!1,e.synced=!1,ge(e.awareness,Array.from(e.aware
ness.getStates().keys()).filter((t=>t!==e.doc.clientID)),e),e.emit("status",[{status:"disconnected"}])):e.wsUnsuccessfulReconnects++,setTimeout(Ae,P(100*H(2,e.wsUnsuccessfulReconnects),e.maxBackoffTime),e)},t.onopen=()=>{e.wsLastMessageReceived=N(),e.wsconnecting=!1,e.wsconnected=!0,e.wsUnsuccessfulReconnects=0,e.emit("status",[{status:"connected"}]);const
s=F();if(Y(s,me),le(s,e.doc),t.send(G(s)),null!==e.awareness.getLocalState()){const
s=F();Y(s,ve),Z(s,be(e.awareness,[e.doc.clientID])),t.send(G(s))}},e.emit("status",[{status:"connecting"}])}},ke=(e,t)=>{const
s=e.ws;e.wsconnected&&s&&s.readyState===s.OPEN&&s.send(t),e.bcconnected&&D(e.bcChannel,t,e)};class
Ce extends fe{constructor(e,t,s,{connect:n=!0,awareness:r=new
pe(s),params:o={},WebSocketPolyfill:c=WebSocket,resyncInterval:a=-1,maxBackoffTime:i=2500,disableBc:l=!1}={}){for(super();"/"===e[e.length-1];)e=e.slice(0,e.length-1);const
h=(e=>((e,t)=>{const s=[];for(const n in e)s.push(t(e[n],n));return
s})(e,((e,t)=>`${encodeUR
IComponent(t)}=${encodeURIComponent(e)}`)).join("&"))(o);this.maxBackoffTime=i,this.bcChannel=e+"/"+t,this.url=e+"/"+t+(0===h.length?"":"?"+h),this.roomname=t,this.doc=s,this._WS=c,this.awareness=r,this.wsconnected=!1,this.wsconnecting=!1,this.bcconnected=!1,this.disableBc=l,this.wsUnsuccessfulReconnects=0,this.messageHandlers=Ie.slice(),this._synced=!1,this.ws=null,this.wsLastMessageReceived=0,this.shouldConnect=n,this._resyncInterval=0,a>0&&(this._resyncInterval=setInterval((()=>{if(this.ws&&this.ws.readyState===WebSocket.OPEN){const
e=F();Y(e,me),le(e,s),this.ws.send(G(e))}}),a)),this._bcSubscriber=(e,t)=>{if(t!==this){const
t=Ue(this,new
Uint8Array(e),!1);V(t)>1&&D(this.bcChannel,G(t),this)}},this._updateHandler=(e,t)=>{if(t!==this){const
t=F();Y(t,me),((e,t)=>{Y(e,2),Z(e,t)})(t,e),ke(this,G(t))}},this.doc.on("update",this._updateHandler),this._awarenessUpdateHandler=({added:e,updated:t,removed:s},n)=>{const
o=e.concat(t).concat(s),c=F();Y(c,ve),Z(c,be(r,o)),ke(this,G(c))},this.
_exitHandler=()=>{ge(this.awareness,[s.clientID],"app closed")},S&&void
0!==we&&we.on("exit",this._exitHandler),r.on("update",this._awarenessUpdateHandler),this._checkInterval=setInterval((()=>{this.wsconnected&&3e4<N()-this.wsLastMessageReceived&&this.ws.close()}),3e3),n&&this.connect()}get
synced(){return this._synced}set
synced(e){this._synced!==e&&(this._synced=e,this.emit("synced",[e]),this.emit("sync",[e]))}destroy(){0!==this._resyncInterval&&clearInterval(this._resyncInterval),clearInterval(this._checkInterval),this.disconnect(),S&&void
0!==we&&we.off("exit",this._exitHandler),this.awareness.off("update",this._awarenessUpdateHandler),this.doc.off("update",this._updateHandler),super.destroy()}connectBc(){if(this.disableBc)return;var
e,t;this.bcconnected||(e=this.bcChannel,t=this._bcSubscriber,B(e).subs.add(t),this.bcconnected=!0);const
s=F();Y(s,me),le(s,this.doc),D(this.bcChannel,G(s),this);const
n=F();Y(n,me),he(n,this.doc),D(this.bcChannel,G(n),this);const r=F();Y(r,ye),D(t
his.bcChannel,G(r),this);const
o=F();Y(o,ve),Z(o,be(this.awareness,[this.doc.clientID])),D(this.bcChannel,G(o),this)}disconnectBc(){const
e=F();Y(e,ve),Z(e,be(this.awareness,[this.doc.clientID],new
Map)),ke(this,G(e)),this.bcconnected&&(((e,t)=>{const
s=B(e);s.subs.delete(t)&&0===s.subs.size&&(s.bc.close(),R.delete(e))})(this.bcChannel,this._bcSubscriber),this.bcconnected=!1)}disconnect(){this.shouldConnect=!1,this.disconnectBc(),null!==this.ws&&this.ws.close()}connect(){this.shouldConnect=!0,this.wsconnected||null!==this.ws||(Ae(this),this.connectBc())}}}}]);
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_docprovider-1.0.0/jupyter_docprovider/labextension/static/576.c6f9c48a57817d3bad8c.js
new/jupyter_docprovider-1.1.0/jupyter_docprovider/labextension/static/576.c6f9c48a57817d3bad8c.js
---
old/jupyter_docprovider-1.0.0/jupyter_docprovider/labextension/static/576.c6f9c48a57817d3bad8c.js
2020-02-02 01:00:00.000000000 +0100
+++
new/jupyter_docprovider-1.1.0/jupyter_docprovider/labextension/static/576.c6f9c48a57817d3bad8c.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-(self.webpackChunk_jupyter_docprovider_extension=self.webpackChunk_jupyter_docprovider_extension||[]).push([[576],{288:e=>{var
t,s,n=e.exports={};function r(){throw new Error("setTimeout has not been
defined")}function o(){throw new Error("clearTimeout has not been
defined")}function c(e){if(t===setTimeout)return
setTimeout(e,0);if((t===r||!t)&&setTimeout)return
t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(s){try{return
t.call(null,e,0)}catch(s){return
t.call(this,e,0)}}}!function(){try{t="function"==typeof
setTimeout?setTimeout:r}catch(e){t=r}try{s="function"==typeof
clearTimeout?clearTimeout:o}catch(e){s=o}}();var a,i=[],l=!1,h=-1;function
u(){l&&a&&(l=!1,a.length?i=a.concat(i):h=-1,i.length&&d())}function
d(){if(!l){var e=c(u);l=!0;for(var
t=i.length;t;){for(a=i,i=[];++h<t;)a&&a[h].run();h=-1,t=i.length}a=null,l=!1,function(e){if(s===clearTimeout)return
clearTimeout(e);if((s===o||!s)&&clearTimeout)return
s=clearTimeout,clearTimeout(e);try{return s(e)}catch(t){try{return s
.call(null,e)}catch(t){return s.call(this,e)}}}(e)}}function
f(e,t){this.fun=e,this.array=t}function p(){}n.nextTick=function(e){var t=new
Array(arguments.length-1);if(arguments.length>1)for(var
s=1;s<arguments.length;s++)t[s-1]=arguments[s];i.push(new
f(e,t)),1!==i.length||l||c(d)},f.prototype.run=function(){this.fun.apply(null,this.array)},n.title="browser",n.browser=!0,n.env={},n.argv=[],n.version="",n.versions={},n.on=p,n.addListener=p,n.once=p,n.off=p,n.removeListener=p,n.removeAllListeners=p,n.emit=p,n.prependListener=p,n.prependOnceListener=p,n.listeners=function(e){return[]},n.binding=function(e){throw
new Error("process.binding is not
supported")},n.cwd=function(){return"/"},n.chdir=function(e){throw new
Error("process.chdir is not supported")},n.umask=function(){return
0}},576:(e,t,s)=>{"use
strict";s.r(t),s.d(t,{WebsocketProvider:()=>Ce,messageAuth:()=>_e,messageAwareness:()=>ve,messageQueryAwareness:()=>ye,messageSync:()=>me});var
n=s(206);const r=()=>new Map,o=(e,t,s)=>
{let n=e.get(t);return void 0===n&&e.set(t,n=s()),n},c=()=>new
Set,a=String.fromCharCode,i=(String.fromCodePoint,a(65535),/^\s*/g),l=/([A-Z])/g,h=(e,t)=>(e=>e.replace(i,""))(e.replace(l,(e=>`${t}${(e=>e.toLowerCase())(e)}`))),u="undefined"!=typeof
TextEncoder?new TextEncoder:null,d=u?e=>u.encode(e):e=>{const
t=unescape(encodeURIComponent(e)),s=t.length,n=new Uint8Array(s);for(let
e=0;e<s;e++)n[e]=t.codePointAt(e);return n};let f="undefined"==typeof
TextDecoder?null:new
TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});f&&1===f.decode(new
Uint8Array).length&&(f=null);let p=new class{constructor(){this.map=new
Map}setItem(e,t){this.map.set(e,t)}getItem(e){return
this.map.get(e)}},g=!0;try{"undefined"!=typeof
localStorage&&localStorage&&(p=localStorage,g=!1)}catch(e){}const
b=p,w=Array.from,m=(Array.isArray,Object.assign,Object.keys),y=e=>m(e).length,v=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),_=(e,t)=>{if(null==e||null==t)return((e,t)=>e===t)(e,t);if(e.constructor!==t.constructor)re
turn!1;if(e===t)return!0;switch(e.constructor){case ArrayBuffer:e=new
Uint8Array(e),t=new Uint8Array(t);case
Uint8Array:if(e.byteLength!==t.byteLength)return!1;for(let
s=0;s<e.length;s++)if(e[s]!==t[s])return!1;break;case
Set:if(e.size!==t.size)return!1;for(const s of
e)if(!t.has(s))return!1;break;case Map:if(e.size!==t.size)return!1;for(const s
of e.keys())if(!t.has(s)||!_(e.get(s),t.get(s)))return!1;break;case
Object:if(y(e)!==y(t))return!1;for(const s in
e)if(!v(e,s)||!_(e[s],t[s]))return!1;break;case
Array:if(e.length!==t.length)return!1;for(let
s=0;s<e.length;s++)if(!_(e[s],t[s]))return!1;break;default:return!1}return!0};var
I=s(288);const S=void
0!==I&&I.release&&/node|io\.js/.test(I.release.name)&&"[object
process]"===Object.prototype.toString.call(void
0!==I?I:0),U="undefined"!=typeof window&&"undefined"!=typeof document&&!S;let
A;"undefined"!=typeof navigator&&/Mac/.test(navigator.platform);const
k=[],C=e=>(()=>{if(void 0===A)if(S){A=r();const e=I.argv;let t=null;for(let s=
0;s<e.length;s++){const
n=e[s];"-"===n[0]?(null!==t&&A.set(t,""),t=n):null!==t?(A.set(t,n),t=null):k.push(n)}null!==t&&A.set(t,"")}else"object"==typeof
location?(A=r(),(location.search||"?").slice(1).split("&").forEach((e=>{if(0!==e.length){const[t,s]=e.split("=");A.set(`--${h(t,"-")}`,s),A.set(`-${h(t,"-")}`,s)}}))):A=r();return
A})().has(e),L=e=>{return void
0===(t=S?I.env[e.toUpperCase().replaceAll("-","_")]:b.getItem(e))?null:t;var
t},T=e=>C("--"+e)||null!==L(e);var
M;T("production"),S&&(M=I.env.FORCE_COLOR,["true","1","2"].includes(M))||!C("--no-colors")&&!T("no-color")&&(!S||I.stdout.isTTY)&&(!S||C("--color")||null!==L("COLORTERM")||(L("TERM")||"").includes("color"));const
E=U?e=>{let t="";for(let s=0;s<e.byteLength;s++)t+=a(e[s]);return
btoa(t)}:e=>Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"),R=U?e=>{const
t=atob(e),s=(n=t.length,new Uint8Array(n));var n;for(let
e=0;e<t.length;e++)s[e]=t.charCodeAt(e);return s}:e=>{const
t=Buffer.from(e,"base64");return
s=t.buffer,n=t.byteOffset,r=t.byteLength,new Uint8Array(s,n,r);var
s,n,r},O=new Map,x="undefined"==typeof
BroadcastChannel?class{constructor(e){var
t;this.room=e,this.onmessage=null,this._onChange=t=>t.key===e&&null!==this.onmessage&&this.onmessage({data:R(t.newValue||"")}),t=this._onChange,g||addEventListener("storage",t)}postMessage(e){b.setItem(this.room,E(new
Uint8Array(e)))}close(){var
e;e=this._onChange,g||removeEventListener("storage",e)}}:BroadcastChannel,B=e=>o(O,e,(()=>{const
t=c(),s=new x(e);return
s.onmessage=e=>t.forEach((t=>t(e.data,"broadcastchannel"))),{bc:s,subs:t}})),D=(e,t,s=null)=>{const
n=B(e);n.bc.postMessage(t),n.subs.forEach((e=>e(t,s)))},N=Date.now,j=Math.floor,P=(Math.ceil,Math.abs,Math.imul,Math.round,Math.log10,Math.log2,Math.log,Math.sqrt,(e,t)=>e<t?e:t),H=(Number.isNaN,Math.pow),$=(Math.sign,128),z=127;class
W{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const
F=()=>new W,V=e=>{let t=e.cpos;for(let s=0;s<e.bufs.length;s++)t+=e.b
ufs[s].length;return t},G=e=>{const t=new Uint8Array(V(e));let s=0;for(let
n=0;n<e.bufs.length;n++){const r=e.bufs[n];t.set(r,s),s+=r.length}return
t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),s),t},J=(e,t)=>{const
s=e.cbuf.length;e.cpos===s&&(e.bufs.push(e.cbuf),e.cbuf=new
Uint8Array(2*s),e.cpos=0),e.cbuf[e.cpos++]=t},Y=(e,t)=>{for(;t>z;)J(e,$|z&t),t=j(t/128);J(e,z&t)},q=new
Uint8Array(3e4),Q=q.length/3,X=u&&u.encodeInto?(e,t)=>{if(t.length<Q){const
s=u.encodeInto(t,q).written||0;Y(e,s);for(let t=0;t<s;t++)J(e,q[t])}else
Z(e,d(t))}:(e,t)=>{const
s=unescape(encodeURIComponent(t)),n=s.length;Y(e,n);for(let
t=0;t<n;t++)J(e,s.codePointAt(t))},Z=(e,t)=>{Y(e,t.byteLength),((e,t)=>{const
s=e.cbuf.length,n=e.cpos,r=P(s-n,t.length),o=t.length-r;var
c,a;e.cbuf.set(t.subarray(0,r),n),e.cpos+=r,o>0&&(e.bufs.push(e.cbuf),e.cbuf=new
Uint8Array((c=2*s)>(a=o)?c:a),e.cbuf.set(t.subarray(r)),e.cpos=o)})(e,t)};new
DataView(new ArrayBuffer(4));const
K=Number.MAX_SAFE_INTEGER,ee=(Number.MIN_SAFE_INTEGE
R,Number.isInteger,Number.isNaN,Number.parseInt,e=>new
Error(e)),te=ee("Unexpected end of array"),se=ee("Integer out of Range");class
ne{constructor(e){this.arr=e,this.pos=0}}const re=e=>new
ne(e),oe=e=>((e,t)=>{const s=new
Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return
e.pos+=t,s})(e,ae(e)),ce=e=>e.arr[e.pos++],ae=e=>{let t=0,s=1;const
n=e.arr.length;for(;e.pos<n;){const
n=e.arr[e.pos++];if(t+=(n&z)*s,s*=128,n<$)return t;if(t>K)throw se}throw
te},ie=f?e=>f.decode(oe(e)):e=>{let t=ae(e);if(0===t)return"";{let
s=String.fromCodePoint(ce(e));if(--t<100)for(;t--;)s+=String.fromCodePoint(ce(e));else
for(;t>0;){const
n=t<1e4?t:1e4,r=e.arr.subarray(e.pos,e.pos+n);e.pos+=n,s+=String.fromCodePoint.apply(null,r),t-=n}return
decodeURIComponent(escape(s))}},le=(e,t)=>{Y(e,0);const
s=n.encodeStateVector(t);Z(e,s)},he=(e,t,s)=>{Y(e,1),Z(e,n.encodeStateAsUpdate(t,s))},ue=(e,t,s)=>{try{n.applyUpdate(t,oe(e),s)}catch(e){console.error("Caught
error while handling a Yjs update",e)}},de=ue;cl
ass
fe{constructor(){this._observers=r()}on(e,t){o(this._observers,e,c).add(t)}once(e,t){const
s=(...n)=>{this.off(e,s),t(...n)};this.on(e,s)}off(e,t){const
s=this._observers.get(e);void
0!==s&&(s.delete(t),0===s.size&&this._observers.delete(e))}emit(e,t){return
w((this._observers.get(e)||r()).values()).forEach((e=>e(...t)))}destroy(){this._observers=r()}}class
pe extends
fe{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new
Map,this.meta=new Map,this._checkInterval=setInterval((()=>{const
e=N();null!==this.getLocalState()&&15e3<=e-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const
t=[];this.meta.forEach(((s,n)=>{n!==this.clientID&&3e4<=e-s.lastUpdated&&this.states.has(n)&&t.push(n)})),t.length>0&&ge(this,t,"timeout")}),j(3e3)),e.on("destroy",(()=>{this.destroy()})),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){retur
n this.states.get(this.clientID)||null}setLocalState(e){const
t=this.clientID,s=this.meta.get(t),n=void
0===s?0:s.clock+1,r=this.states.get(t);null===e?this.states.delete(t):this.states.set(t,e),this.meta.set(t,{clock:n,lastUpdated:N()});const
o=[],c=[],a=[],i=[];null===e?i.push(t):null==r?null!=e&&o.push(t):(c.push(t),_(r,e)||a.push(t)),(o.length>0||a.length>0||i.length>0)&&this.emit("change",[{added:o,updated:a,removed:i},"local"]),this.emit("update",[{added:o,updated:c,removed:i},"local"])}setLocalStateField(e,t){const
s=this.getLocalState();null!==s&&this.setLocalState({...s,[e]:t})}getStates(){return
this.states}}const ge=(e,t,s)=>{const n=[];for(let s=0;s<t.length;s++){const
r=t[s];if(e.states.has(r)){if(e.states.delete(r),r===e.clientID){const
t=e.meta.get(r);e.meta.set(r,{clock:t.clock+1,lastUpdated:N()})}n.push(r)}}n.length>0&&(e.emit("change",[{added:[],updated:[],removed:n},s]),e.emit("update",[{added:[],updated:[],removed:n},s]))},be=(e,t,s=e.states)=>{const
n=t.length,r
=F();Y(r,n);for(let o=0;o<n;o++){const
n=t[o],c=s.get(n)||null,a=e.meta.get(n).clock;Y(r,n),Y(r,a),X(r,JSON.stringify(c))}return
G(r)};var we=s(288);const
me=0,ye=3,ve=1,_e=2,Ie=[];Ie[me]=(e,t,s,n,r)=>{Y(e,me);const
o=((e,t,s,n)=>{const r=ae(e);switch(r){case
0:((e,t,s)=>{he(t,s,oe(e))})(e,t,s);break;case 1:ue(e,s,n);break;case
2:de(e,s,n);break;default:throw new Error("Unknown message type")}return
r})(t,e,s.doc,s);n&&1===o&&!s.synced&&(s.synced=!0)},Ie[ye]=(e,t,s,n,r)=>{Y(e,ve),Z(e,be(s.awareness,Array.from(s.awareness.getStates().keys())))},Ie[ve]=(e,t,s,n,r)=>{((e,t,s)=>{const
n=re(t),r=N(),o=[],c=[],a=[],i=[],l=ae(n);for(let t=0;t<l;t++){const
t=ae(n);let s=ae(n);const
l=JSON.parse(ie(n)),h=e.meta.get(t),u=e.states.get(t),d=void
0===h?0:h.clock;(d<s||d===s&&null===l&&e.states.has(t))&&(null===l?t===e.clientID&&null!=e.getLocalState()?s++:e.states.delete(t):e.states.set(t,l),e.meta.set(t,{clock:s,lastUpdated:r}),void
0===h&&null!==l?o.push(t):void 0!==h&&null===l?i.push(t):null!
==l&&(_(l,u)||a.push(t),c.push(t)))}(o.length>0||a.length>0||i.length>0)&&e.emit("change",[{added:o,updated:a,removed:i},s]),(o.length>0||c.length>0||i.length>0)&&e.emit("update",[{added:o,updated:c,removed:i},s])})(s.awareness,oe(t),s)},Ie[_e]=(e,t,s,n,r)=>{((e,t,s)=>{0===ae(e)&&s(0,ie(e))})(t,s.doc,((e,t)=>Se(s,t)))};const
Se=(e,t)=>console.warn(`Permission denied to access
${e.url}.\n${t}`),Ue=(e,t,s)=>{const
n=re(t),r=F(),o=ae(n),c=e.messageHandlers[o];return
c?c(r,n,e,s,o):console.error("Unable to compute
message"),r},Ae=e=>{if(e.shouldConnect&&null===e.ws){const t=new
e._WS(e.url);t.binaryType="arraybuffer",e.ws=t,e.wsconnecting=!0,e.wsconnected=!1,e.synced=!1,t.onmessage=s=>{e.wsLastMessageReceived=N();const
n=Ue(e,new
Uint8Array(s.data),!0);V(n)>1&&t.send(G(n))},t.onerror=t=>{e.emit("connection-error",[t,e])},t.onclose=t=>{e.emit("connection-close",[t,e]),e.ws=null,e.wsconnecting=!1,e.wsconnected?(e.wsconnected=!1,e.synced=!1,ge(e.awareness,Array.from(e.awareness.getStates()
.keys()).filter((t=>t!==e.doc.clientID)),e),e.emit("status",[{status:"disconnected"}])):e.wsUnsuccessfulReconnects++,setTimeout(Ae,P(100*H(2,e.wsUnsuccessfulReconnects),e.maxBackoffTime),e)},t.onopen=()=>{e.wsLastMessageReceived=N(),e.wsconnecting=!1,e.wsconnected=!0,e.wsUnsuccessfulReconnects=0,e.emit("status",[{status:"connected"}]);const
s=F();if(Y(s,me),le(s,e.doc),t.send(G(s)),null!==e.awareness.getLocalState()){const
s=F();Y(s,ve),Z(s,be(e.awareness,[e.doc.clientID])),t.send(G(s))}},e.emit("status",[{status:"connecting"}])}},ke=(e,t)=>{const
s=e.ws;e.wsconnected&&s&&s.readyState===s.OPEN&&s.send(t),e.bcconnected&&D(e.bcChannel,t,e)};class
Ce extends fe{constructor(e,t,s,{connect:n=!0,awareness:r=new
pe(s),params:o={},WebSocketPolyfill:c=WebSocket,resyncInterval:a=-1,maxBackoffTime:i=2500,disableBc:l=!1}={}){for(super();"/"===e[e.length-1];)e=e.slice(0,e.length-1);const
h=(e=>((e,t)=>{const s=[];for(const n in e)s.push(t(e[n],n));return
s})(e,((e,t)=>`${encodeURIComponent(t)}=$
{encodeURIComponent(e)}`)).join("&"))(o);this.maxBackoffTime=i,this.bcChannel=e+"/"+t,this.url=e+"/"+t+(0===h.length?"":"?"+h),this.roomname=t,this.doc=s,this._WS=c,this.awareness=r,this.wsconnected=!1,this.wsconnecting=!1,this.bcconnected=!1,this.disableBc=l,this.wsUnsuccessfulReconnects=0,this.messageHandlers=Ie.slice(),this._synced=!1,this.ws=null,this.wsLastMessageReceived=0,this.shouldConnect=n,this._resyncInterval=0,a>0&&(this._resyncInterval=setInterval((()=>{if(this.ws&&this.ws.readyState===WebSocket.OPEN){const
e=F();Y(e,me),le(e,s),this.ws.send(G(e))}}),a)),this._bcSubscriber=(e,t)=>{if(t!==this){const
t=Ue(this,new
Uint8Array(e),!1);V(t)>1&&D(this.bcChannel,G(t),this)}},this._updateHandler=(e,t)=>{if(t!==this){const
t=F();Y(t,me),((e,t)=>{Y(e,2),Z(e,t)})(t,e),ke(this,G(t))}},this.doc.on("update",this._updateHandler),this._awarenessUpdateHandler=({added:e,updated:t,removed:s},n)=>{const
o=e.concat(t).concat(s),c=F();Y(c,ve),Z(c,be(r,o)),ke(this,G(c))},this._exitHandler=()=
>{ge(this.awareness,[s.clientID],"app closed")},S&&void
>0!==we&&we.on("exit",this._exitHandler),r.on("update",this._awarenessUpdateHandler),this._checkInterval=setInterval((()=>{this.wsconnected&&3e4<N()-this.wsLastMessageReceived&&this.ws.close()}),3e3),n&&this.connect()}get
> synced(){return this._synced}set
>synced(e){this._synced!==e&&(this._synced=e,this.emit("synced",[e]),this.emit("sync",[e]))}destroy(){0!==this._resyncInterval&&clearInterval(this._resyncInterval),clearInterval(this._checkInterval),this.disconnect(),S&&void
>
>0!==we&&we.off("exit",this._exitHandler),this.awareness.off("update",this._awarenessUpdateHandler),this.doc.off("update",this._updateHandler),super.destroy()}connectBc(){if(this.disableBc)return;var
>
>e,t;this.bcconnected||(e=this.bcChannel,t=this._bcSubscriber,B(e).subs.add(t),this.bcconnected=!0);const
> s=F();Y(s,me),le(s,this.doc),D(this.bcChannel,G(s),this);const
>n=F();Y(n,me),he(n,this.doc),D(this.bcChannel,G(n),this);const
>r=F();Y(r,ye),D(this.bcChannel,G(
r),this);const
o=F();Y(o,ve),Z(o,be(this.awareness,[this.doc.clientID])),D(this.bcChannel,G(o),this)}disconnectBc(){const
e=F();Y(e,ve),Z(e,be(this.awareness,[this.doc.clientID],new
Map)),ke(this,G(e)),this.bcconnected&&(((e,t)=>{const
s=B(e);s.subs.delete(t)&&0===s.subs.size&&(s.bc.close(),O.delete(e))})(this.bcChannel,this._bcSubscriber),this.bcconnected=!1)}disconnect(){this.shouldConnect=!1,this.disconnectBc(),null!==this.ws&&this.ws.close()}connect(){this.shouldConnect=!0,this.wsconnected||null!==this.ws||(Ae(this),this.connectBc())}}}}]);
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_docprovider-1.0.0/jupyter_docprovider/labextension/static/618.28407d2343b911e61b63.js
new/jupyter_docprovider-1.1.0/jupyter_docprovider/labextension/static/618.28407d2343b911e61b63.js
---
old/jupyter_docprovider-1.0.0/jupyter_docprovider/labextension/static/618.28407d2343b911e61b63.js
2020-02-02 01:00:00.000000000 +0100
+++
new/jupyter_docprovider-1.1.0/jupyter_docprovider/labextension/static/618.28407d2343b911e61b63.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-"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",""]);con
st 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;br
eak}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.HTMLI
FrameElement)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(){thi
s._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/se
ssion",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}`);co
nst 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.a
wareness,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,{di
sableBc:!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,format:t.format}}}return
super.get(e,t)}async save(e,t={}){if(t.format&&t.type){const
n=`${t.format}:${t.type}:${e}`;if(t
his._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(46
0);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.conne
ctToForkDoc(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",{onClic
k: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})}upd
ateContent(e,t){this.apiURL=e,this.provider=t,this.contentType=this.provider.contentType,this.format=this.provider.format,this.update()}}}}]);
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_docprovider-1.0.0/jupyter_docprovider/labextension/static/703.17b6b904d18a75a9f3c6.js
new/jupyter_docprovider-1.1.0/jupyter_docprovider/labextension/static/703.17b6b904d18a75a9f3c6.js
---
old/jupyter_docprovider-1.0.0/jupyter_docprovider/labextension/static/703.17b6b904d18a75a9f3c6.js
1970-01-01 01:00:00.000000000 +0100
+++
new/jupyter_docprovider-1.1.0/jupyter_docprovider/labextension/static/703.17b6b904d18a75a9f3c6.js
2020-02-02 01:00:00.000000000 +0100
@@ -0,0 +1 @@
+"use
strict";(self.webpackChunk_jupyter_docprovider_extension=self.webpackChunk_jupyter_docprovider_extension||[]).push([[703],{703:(e,t,o)=>{o.r(t),o.d(t,{default:()=>D});var
r,a=o(180),n=o(123),i=o(256),s=o(920),l=o(295),d=o(243),c=o(343),u=o(977),p=o(227),v=o(624),g=o(0),h=o(236),b=o(132),w=o(672);!function(e){e.openPath="filebrowser:open-path"}(r||(r={}));const
m="api/collaboration/timeline",y="The file %1 has been opened with two
different views. This is not supported. Please close this view; otherwise, some
of your edits may not be saved
properly.",f={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"),a=new
b.YDrive(e.serviceManager.user,r,o);return
e.serviceManager.contents.addDrive(a),a}},x={id:"@jupyter/docprovider-extension:yfile",description:"Plugin
to register the shared model factor
y for the content type
'file'",autoStart:!0,requires:[h.ICollaborativeDrive],optional:[],activate:(e,t)=>{t.sharedModelFactory.registerDocumentFactory("file",(()=>new
g.YFile))}},I={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})))}},k={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,a=null;const
n=async(t,r)=>{if(r&&"RTC"===t.split(":")[0]&&o){t=t.slice(o.name.length+1),a&&(a.dispose(),a=null);const[n,s]=r.split(":"),l=o.providers.get(`${n}:${s}:${t}`),d=w.URLExt.join(e.serviceManager.serverSettings.baseUrl,m,t);a=new
b.TimelineWidget(d,l,l.contentType,l.format,m);const
c=document.getElementById("jp-slider-status-bar");c&&!a.isAttached&&i.Widget.attach(a,c)}};e.shell.currentChanged&&e.shell.currentChanged.connect((async(e,t)=>{const
o=t.newValue;a&&(a.dispose(),a=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
i.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;if(t&&t.context&&"string"==typeof
t.context.path){const
e=t.context.path;return!!t.context.model.sharedModel.getState("document_id")&&"RTC"===e.split(":")[
0]}return!1}})))}catch(e){console.error("Failed to activate statusBarTimeline
plugin:",e)}}},_={id:"@jupyter/docprovider-extension:defaultFileBrowser",description:"The
default file browser factory
provider",provides:s.IDefaultFileBrowser,requires:[h.ICollaborativeDrive,s.IFileBrowserFactory],optional:[a.IRouter,a.JupyterFrontEnd.ITreeResolver,a.ILabShell,v.ITranslator],activate:async(e,t,o,r,a,n,i)=>{const{commands:s}=e,l=(null!=i?i:v.nullTranslator).load("jupyterlab");e.serviceManager.contents.addDrive(t);const
d=o.createFileBrowser("filebrowser",{auto:!1,restore:!1,driveName:t.name});return
d.node.setAttribute("role","region"),d.node.setAttribute("aria-label",l.__("File
Browser
Section")),C.restoreBrowser(d,s,r,a,n),d}},j={id:"@jupyter/docprovider-extension:logger",description:"A
logging plugin for debugging
purposes.",autoStart:!0,optional:[c.ILoggerRegistry,d.IEditorTracker,u.INotebookTracker,v.ITranslator],activate:(e,t,o,r,a)=>{const
i=(null!=a?a:v.nullTranslator).load("jupyte
r_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:i.__("Warning"),body:i.__(y,t.path),buttons:[n.Dialog.okButton()]}))}));const
l=new Map,d=(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(d),r&&r.widgetAdded.connect(d),(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:i.__("Warning"),body:i.__(y,e.path),buttons:[n.Dialog.warnB
utton({label:i.__("Ok")})]})}})()}};var C;!function(e){e.restoreBrowser=async
function(e,t,o,a,n){const i="jp-mod-restoring";if(e.addClass(i),!o)return await
e.model.restore(e.id),await e.model.refresh(),void e.removeClass(i);const
s=async()=>{o.routed.disconnect(s);const l=await(null==a?void
0:a.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(i),(null==n?void
0:n.isEmpty("main"))&&t.execute("launcher:create")};o.routed.connect(s)}}(C||(C={}));const
S={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
b.Not
ebookCellServerExecutor({serverSettings:e.serviceManager.serverSettings}):Object.freeze({runCell:u.runCell})},T={id:"@jupyter/docprovider-extension:forkManager",autoStart:!0,requires:[h.ICollaborativeDrive],provides:b.IForkManagerToken,activate:(e,t)=>{const
o=e.serviceManager.events;return new
b.ForkManager({drive:t,eventManager:o})}},D=[f,x,I,_,j,S,k,T]}}]);
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_docprovider-1.0.0/jupyter_docprovider/labextension/static/remoteEntry.2870ff42f76951af28a0.js
new/jupyter_docprovider-1.1.0/jupyter_docprovider/labextension/static/remoteEntry.2870ff42f76951af28a0.js
---
old/jupyter_docprovider-1.0.0/jupyter_docprovider/labextension/static/remoteEntry.2870ff42f76951af28a0.js
1970-01-01 01:00:00.000000000 +0100
+++
new/jupyter_docprovider-1.1.0/jupyter_docprovider/labextension/static/remoteEntry.2870ff42f76951af28a0.js
2020-02-02 01:00:00.000000000 +0100
@@ -0,0 +1 @@
+var _JUPYTERLAB;(()=>{"use strict";var
e,r,t,o,a,n,i,l,u,s,d,f,p,c,v,h,b,y,m,g,j,w,P,S={496:(e,r,t)=>{var
o={"./index":()=>Promise.all([t.e(260),t.e(401),t.e(703)]).then((()=>()=>t(703))),"./extension":()=>Promise.all([t.e(260),t.e(401),t.e(703)]).then((()=>()=>t(703))),"./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})}},k={};function x(e){var
r=k[e];if(void 0!==r)return r.exports;var t=k[e]={id:e,exports:{}};return
S[e](t,t.exports,x),t.exports}x.m=S,x.c=k,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+"."+{240:"dd1dbd559d6c95c85b3f",444:"12adfae9a2b50e91531f",576:"21a3c1a9ebaebb58d346",703:"17b6b904d18a75a9f3c6",944:"b85c55dff0f14165f872"}[e]+".js?v="+{240:"dd1dbd559d6c95c85b3f",444:"12adfae9a2b50e91531f",576:"21a3c1a9ebaebb58d346",703:"17b6b904d18a75a9f3c6",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"),s=0;s<u.length;s++){var
d=u[s];if(d.getAttribute("src")==t||d.getAttribute("data-webpack")==r+a){i=d;break}}i||(l=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,x.nc&&i.setAttribute("nonce",x.nc),i.setAttribute("d
ata-webpack",r+a),i.src=t),e[t]=[o];var
f=(r,o)=>{i.onerror=i.onload=null,clearTimeout(p);var a=e[t];if(delete
e[t],i.parentNode&&i.parentNode.removeChild(i),a&&a.forEach((e=>e(o))),r)return
r(o)},p=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),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.1.0",(()=>Promise.all([x.e(262),x.e(444)]).then((()=>()=>x(444))))),l("@jupyter/docprovid
er-extension","3.1.0",(()=>Promise.all([x.e(260),x.e(401),x.e(703)]).then((()=>()=>x(703))))),l("@jupyter/docprovider","3.1.0",(()=>Promise.all([x.e(260),x.e(262),x.e(240)]).then((()=>()=>x(240))))),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&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(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
s,d,f=l<e.length?(typeof
e[l])[0]:"";if(i>=r.length||"o"==(d=(typeof(s=r[i]))[0]))return!u||("u"==f?l>o&&!a:""==f!=a);if("u"==d){if(!u||"u"!=f)return!1}else
if(u)if(f==d)if(l<=o){if(s!=e[l])return!1}else{if(a?s>e[l]:s<e[l]
)return!1;s!=e[l]&&(u=!1)}else
if("s"!=f&&"n"!=f){if(a||l<=o)return!1;u=!1,l--}else{if(l<=o||d<f!=a)return!1;u=!1}else"s"!=f&&"n"!=f&&(u=!1,l--)}}var
p=[],c=p.pop.bind(p);for(i=1;i<e.length;i++){var
v=e[i];p.push(1==v?c()|c():2==v?c()&c():v?n(v,r):!c())}return!!c()},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)),{}),s=(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]},d=(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)},f=(e,r,t,o)=>"Unsatisfied
version "+t+" from "+(t&&e[r][t].from)+" of shared singleton module "+r+"
(required "+a(o)+")",p=(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(", ")},c=e=>{throw new Error(e)},v=e=>{"undefined"!=
typeof
console&&console.warn&&console.warn(e)},b=(e,r,t)=>t?t():((e,r)=>c("Shared
module "+r+" doesn't exist in shared scope
"+e))(e,r),y=(h=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 u=s(r,t,a,o);return u?l(u):n?n():void
c(p(r,e,t,a,o))})),m=h(((e,r,t,o,a,u)=>{if(!i(r,t))return b(e,t,u);var
s=d(r,t,o);return
n(a,s)||v(f(r,t,s,a)),l(r[t][s])})),g={},j={123:()=>m("default","@jupyterlab/apputils",!1,[1,4,4,3]),624:()=>m("default","@jupyterlab/translation",!1,[1,4,3,3]),672:()=>m("default","@jupyterlab/coreutils",!1,[1,6,3,3]),0:()=>m("default","@jupyter/ydoc",!1,[1,3,0,0,,"a3"]),132:()=>m("default","@jupyter/docprovider",!1,[1,3,1,0],(()=>Promise.all([x.e(262),x.e(240)]).then((()=>()=>x(240))))),180:()=>m("default","@jupyterlab/application",!1,[1,4,3,3]),227:()=>m("default","@jupyterlab/settingregistry",!1,[1,4,3,3]),236:()=>m("default","@jupyter/collaborative-drive"
,!1,[1,3,1,0],(()=>Promise.all([x.e(262),x.e(444)]).then((()=>()=>x(444))))),243:()=>m("default","@jupyterlab/fileeditor",!1,[1,4,3,3]),256:()=>m("default","@lumino/widgets",!1,[1,2,3,1,,"alpha",0]),295:()=>m("default","@jupyterlab/statusbar",!1,[1,4,3,3]),343:()=>m("default","@jupyterlab/logconsole",!1,[1,4,3,3]),920:()=>m("default","@jupyterlab/filebrowser",!1,[1,4,3,3]),977:()=>m("default","@jupyterlab/notebook",!1,[1,4,3,3]),262:()=>m("default","@lumino/coreutils",!1,[1,2,0,0]),345:()=>m("default","react",!1,[1,18,2,0]),560:()=>y("default","y-websocket",!1,[1,1,3,15],(()=>Promise.all([x.e(576),x.e(206)]).then((()=>()=>x(576))))),597:()=>m("default","@jupyterlab/ui-components",!1,[1,4,3,3]),602:()=>m("default","@lumino/signaling",!1,[1,2,0,0]),943:()=>m("default","@jupyterlab/services",!1,[1,7,3,3]),206:()=>m("default","yjs",!1,[1,13,5,40])},w={206:[206],240:[345,560,597,602,943],260:[123,624,672],262:[262],401:[0,132,180,227,236,243,256,295,343,920,977]},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(/^(2(06|60|62)|401)$/.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})();
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_docprovider-1.0.0/jupyter_docprovider/labextension/static/remoteEntry.df025193a26e76919ed8.js
new/jupyter_docprovider-1.1.0/jupyter_docprovider/labextension/static/remoteEntry.df025193a26e76919ed8.js
---
old/jupyter_docprovider-1.0.0/jupyter_docprovider/labextension/static/remoteEntry.df025193a26e76919ed8.js
2020-02-02 01:00:00.000000000 +0100
+++
new/jupyter_docprovider-1.1.0/jupyter_docprovider/labextension/static/remoteEntry.df025193a26e76919ed8.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-var _JUPYTERLAB;(()=>{"use strict";var
e,r,t,o,a,n,i,l,u,d,f,s,c,p,v,h,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",262:"0cc35b53ffb65372f245",444:"12adfae9a2b50e91531f",544:"20c789155db30fb50597",576:"c6f9c48a57817d3bad8c",618:"28407d2343b911e61b63",823:"7ffe7ee89772c5a0cfc8",944:"b85c55dff0f14165f872"}[e]+".js?v="+{206:"84c5901f15f0fa0bd745",262:"0cc35b53ffb65372f245",444:"12adfae9a2b50e91531f",544:"20c789155db30fb50597",576:"c6f9c48a57817d3bad8c",618:"28407d2343b911e61b63",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=[];ret
urn"default"===t&&(l("@jupyter/collaborative-drive","3.0.0",(()=>Promise.all([x.e(262),x.e(444)]).then((()=>()=>x(444))))),l("@jupyter/docprovider-extension","3.0.0",(()=>Promise.all([x.e(823),x.e(544)]).then((()=>()=>x(544))))),l("@jupyter/docprovider","3.0.0",(()=>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
v=e[i];c.push(1==v?p()|p():2==v?p()&p():v?n(v,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)},v=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=(h=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 u=d(r,t,a,o);return u?l(u):n?n():void
p(c(r,e,t,a,o))})),m=h(((e,r,t,o,a,u)=>{if(!i(r,t))return b(e,t,u);var
d=f(r,t,o);return
n(a,d)||v(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]),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","@j
upyterlab/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]),907:()=>m("default","@jupyter/docprovider",!1,[1,3,0,0],(()=>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]),975:()=>m("default","@jupyter/collaborative-drive",!1,[1,3,0,0],(()=>Promise.all([x.e(262),x.e(444)]).then((()=>()=>x(444))))),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,256,313,480,614,697,710,907
,909,922,975],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})();
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_docprovider-1.0.0/jupyter_docprovider/labextension/static/third-party-licenses.json
new/jupyter_docprovider-1.1.0/jupyter_docprovider/labextension/static/third-party-licenses.json
---
old/jupyter_docprovider-1.0.0/jupyter_docprovider/labextension/static/third-party-licenses.json
2020-02-02 01:00:00.000000000 +0100
+++
new/jupyter_docprovider-1.1.0/jupyter_docprovider/labextension/static/third-party-licenses.json
2020-02-02 01:00:00.000000000 +0100
@@ -2,19 +2,19 @@
"packages": [
{
"name": "@jupyter/collaboration",
- "versionInfo": "3.0.0",
+ "versionInfo": "3.1.0",
"licenseId": "BSD-3-Clause",
"extractedText": ""
},
{
"name": "@jupyter/collaborative-drive",
- "versionInfo": "3.0.0",
+ "versionInfo": "3.1.0",
"licenseId": "BSD-3-Clause",
"extractedText": ""
},
{
"name": "@jupyter/docprovider",
- "versionInfo": "3.0.0",
+ "versionInfo": "3.1.0",
"licenseId": "BSD-3-Clause",
"extractedText": ""
},
@@ -26,7 +26,7 @@
},
{
"name": "lib0",
- "versionInfo": "0.2.97",
+ "versionInfo": "0.2.98",
"licenseId": "MIT",
"extractedText": "The MIT License (MIT)\n\nCopyright (c) 2019 Kevin
Jahns <[email protected]>.\n\nPermission is hereby granted, free of
charge, to any person obtaining a copy\nof this software and associated
documentation files (the \"Software\"), to deal\nin the Software without
restriction, including without limitation the rights\nto use, copy, modify,
merge, publish, distribute, sublicense, and/or sell\ncopies of the Software,
and to permit persons to whom the Software is\nfurnished to do so, subject to
the following conditions:\n\nThe above copyright notice and this permission
notice shall be included in all\ncopies or substantial portions of the
Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES
OR OTHER\nLIABILITY
, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF
OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE\nSOFTWARE.\n"
},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_docprovider-1.0.0/packages/docprovider/package.json
new/jupyter_docprovider-1.1.0/packages/docprovider/package.json
--- old/jupyter_docprovider-1.0.0/packages/docprovider/package.json
2020-02-02 01:00:00.000000000 +0100
+++ new/jupyter_docprovider-1.1.0/packages/docprovider/package.json
2020-02-02 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
{
"name": "@jupyter/docprovider",
- "version": "3.0.0",
+ "version": "3.1.0",
"description": "JupyterLab - Document Provider",
"homepage": "https://github.com/jupyterlab/jupyter-collaboration",
"bugs": {
@@ -41,7 +41,7 @@
"watch": "tsc -b --watch"
},
"dependencies": {
- "@jupyter/collaborative-drive": "^3.0.0",
+ "@jupyter/collaborative-drive": "^3.1.0",
"@jupyter/ydoc": "^2.0.0 || ^3.0.0",
"@jupyterlab/apputils": "^4.2.0",
"@jupyterlab/cells": "^4.2.0",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_docprovider-1.0.0/packages/docprovider/src/TimelineSlider.tsx
new/jupyter_docprovider-1.1.0/packages/docprovider/src/TimelineSlider.tsx
--- old/jupyter_docprovider-1.0.0/packages/docprovider/src/TimelineSlider.tsx
2020-02-02 01:00:00.000000000 +0100
+++ new/jupyter_docprovider-1.1.0/packages/docprovider/src/TimelineSlider.tsx
2020-02-02 01:00:00.000000000 +0100
@@ -13,18 +13,21 @@
private provider: IForkProvider;
private contentType: string;
private format: string;
+ private documentTimelineUrl: string;
constructor(
apiURL: string,
provider: IForkProvider,
contentType: string,
- format: string
+ format: string,
+ documentTimelineUrl: string
) {
super();
this.apiURL = apiURL;
this.provider = provider;
this.contentType = contentType;
this.format = format;
+ this.documentTimelineUrl = documentTimelineUrl;
this.addClass('jp-timelineSliderWrapper');
}
@@ -36,6 +39,7 @@
provider={this.provider}
contentType={this.contentType}
format={this.format}
+ documentTimelineUrl={this.documentTimelineUrl}
/>
);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_docprovider-1.0.0/packages/docprovider/src/__tests__/forkManager.spec.ts
new/jupyter_docprovider-1.1.0/packages/docprovider/src/__tests__/forkManager.spec.ts
---
old/jupyter_docprovider-1.0.0/packages/docprovider/src/__tests__/forkManager.spec.ts
1970-01-01 01:00:00.000000000 +0100
+++
new/jupyter_docprovider-1.1.0/packages/docprovider/src/__tests__/forkManager.spec.ts
2020-02-02 01:00:00.000000000 +0100
@@ -0,0 +1,96 @@
+// Copyright (c) Jupyter Development Team.
+// Distributed under the terms of the Modified BSD License.
+
+import { ICollaborativeDrive } from '@jupyter/collaborative-drive';
+import {
+ ForkManager,
+ JUPYTER_COLLABORATION_FORK_EVENTS_URI
+} from '../forkManager';
+import { Event } from '@jupyterlab/services';
+import { Signal } from '@lumino/signaling';
+import { requestAPI } from '../requests';
+jest.mock('../requests');
+
+const driveMock = {
+ name: 'rtc',
+ providers: new Map()
+} as ICollaborativeDrive;
+const stream = new Signal({});
+const eventManagerMock = {
+ stream: stream as any
+} as Event.IManager;
+
+describe('@jupyter/docprovider', () => {
+ let manager: ForkManager;
+ beforeEach(() => {
+ manager = new ForkManager({
+ drive: driveMock,
+ eventManager: eventManagerMock
+ });
+ });
+ describe('forkManager', () => {
+ it('should have a type', () => {
+ expect(ForkManager).not.toBeUndefined();
+ });
+ it('should be able to create instance', () => {
+ expect(manager).toBeInstanceOf(ForkManager);
+ });
+ it('should be able to create new fork', async () => {
+ await manager.createFork({
+ rootId: 'root-uuid',
+ synchronize: true,
+ title: 'my fork label',
+ description: 'my fork description'
+ });
+ expect(requestAPI).toHaveBeenCalledWith(
+ 'api/collaboration/fork/root-uuid',
+ {
+ method: 'PUT',
+ body: JSON.stringify({
+ title: 'my fork label',
+ description: 'my fork description',
+ synchronize: true
+ })
+ }
+ );
+ });
+ it('should be able to get all forks', async () => {
+ await manager.getAllForks('root-uuid');
+ expect(requestAPI).toHaveBeenCalledWith(
+ 'api/collaboration/fork/root-uuid',
+ {
+ method: 'GET'
+ }
+ );
+ });
+ it('should be able to get delete forks', async () => {
+ await manager.deleteFork({ forkId: 'fork-uuid', merge: true });
+ expect(requestAPI).toHaveBeenCalledWith(
+ 'api/collaboration/fork/fork-uuid?merge=true',
+ {
+ method: 'DELETE'
+ }
+ );
+ });
+ it('should be able to emit fork added signal', async () => {
+ const listener = jest.fn();
+ manager.forkAdded.connect(listener);
+ const data = {
+ schema_id: JUPYTER_COLLABORATION_FORK_EVENTS_URI,
+ action: 'create'
+ };
+ stream.emit(data);
+ expect(listener).toHaveBeenCalledWith(manager, data);
+ });
+ it('should be able to emit fork deleted signal', async () => {
+ const listener = jest.fn();
+ manager.forkDeleted.connect(listener);
+ const data = {
+ schema_id: JUPYTER_COLLABORATION_FORK_EVENTS_URI,
+ action: 'delete'
+ };
+ stream.emit(data);
+ expect(listener).toHaveBeenCalledWith(manager, data);
+ });
+ });
+});
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_docprovider-1.0.0/packages/docprovider/src/component.tsx
new/jupyter_docprovider-1.1.0/packages/docprovider/src/component.tsx
--- old/jupyter_docprovider-1.0.0/packages/docprovider/src/component.tsx
2020-02-02 01:00:00.000000000 +0100
+++ new/jupyter_docprovider-1.1.0/packages/docprovider/src/component.tsx
2020-02-02 01:00:00.000000000 +0100
@@ -19,13 +19,15 @@
provider: IForkProvider;
contentType: string;
format: string;
+ documentTimelineUrl: string;
};
export const TimelineSliderComponent: React.FC<Props> = ({
apiURL,
provider,
contentType,
- format
+ format,
+ documentTimelineUrl
}) => {
const [data, setData] = useState({
roomId: '',
@@ -74,7 +76,6 @@
setData(data);
setCurrentTimestampIndex(data.timestamps.length - 1);
provider.connectToForkDoc(data.forkRoom, data.sessionId);
-
sessionRef.current = await requestDocSession(
format,
contentType,
@@ -147,16 +148,21 @@
function determineAction(currentTimestamp: number): 'undo' | 'redo' {
return currentTimestamp < currentTimestampIndex ? 'undo' : 'redo';
}
-
function extractFilenameFromURL(url: string): string {
try {
const parsedURL = new URL(url);
const pathname = parsedURL.pathname;
- const segments = pathname.split('/');
- return segments.slice(4 - segments.length).join('/');
+ const apiIndex = pathname.lastIndexOf(documentTimelineUrl);
+ if (apiIndex === -1) {
+ throw new Error(
+ `API segment "${documentTimelineUrl}" not found in URL.`
+ );
+ }
+
+ return pathname.slice(apiIndex + documentTimelineUrl.length);
} catch (error) {
- console.error('Invalid URL:', error);
+ console.error('Invalid URL or unable to extract filename:', error);
return '';
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_docprovider-1.0.0/packages/docprovider/src/forkManager.ts
new/jupyter_docprovider-1.1.0/packages/docprovider/src/forkManager.ts
--- old/jupyter_docprovider-1.0.0/packages/docprovider/src/forkManager.ts
1970-01-01 01:00:00.000000000 +0100
+++ new/jupyter_docprovider-1.1.0/packages/docprovider/src/forkManager.ts
2020-02-02 01:00:00.000000000 +0100
@@ -0,0 +1,126 @@
+/*
+ * Copyright (c) Jupyter Development Team.
+ * Distributed under the terms of the Modified BSD License.
+ */
+
+import { ICollaborativeDrive } from '@jupyter/collaborative-drive';
+import { URLExt } from '@jupyterlab/coreutils';
+import { Event } from '@jupyterlab/services';
+import { ISignal, Signal } from '@lumino/signaling';
+
+import { requestAPI, ROOM_FORK_URL } from './requests';
+import {
+ IAllForksResponse,
+ IForkChangedEvent,
+ IForkCreationResponse,
+ IForkManager
+} from './tokens';
+import { IForkProvider } from './ydrive';
+
+export const JUPYTER_COLLABORATION_FORK_EVENTS_URI =
+ 'https://schema.jupyter.org/jupyter_collaboration/fork/v1';
+
+export class ForkManager implements IForkManager {
+ constructor(options: ForkManager.IOptions) {
+ const { drive, eventManager } = options;
+ this._drive = drive;
+ this._eventManager = eventManager;
+ this._eventManager.stream.connect(this._handleEvent, this);
+ }
+
+ get isDisposed(): boolean {
+ return this._disposed;
+ }
+ get forkAdded(): ISignal<ForkManager, IForkChangedEvent> {
+ return this._forkAddedSignal;
+ }
+ get forkDeleted(): ISignal<ForkManager, IForkChangedEvent> {
+ return this._forkDeletedSignal;
+ }
+
+ dispose(): void {
+ if (this._disposed) {
+ return;
+ }
+ this._eventManager?.stream.disconnect(this._handleEvent);
+ this._disposed = true;
+ }
+ async createFork(options: {
+ rootId: string;
+ synchronize: boolean;
+ title?: string;
+ description?: string;
+ }): Promise<IForkCreationResponse | undefined> {
+ const { rootId, title, description, synchronize } = options;
+ const init: RequestInit = {
+ method: 'PUT',
+ body: JSON.stringify({ title, description, synchronize })
+ };
+ const url = URLExt.join(ROOM_FORK_URL, rootId);
+ const response = await requestAPI<IForkCreationResponse>(url, init);
+ return response;
+ }
+
+ async getAllForks(rootId: string) {
+ const url = URLExt.join(ROOM_FORK_URL, rootId);
+ const init = { method: 'GET' };
+ const response = await requestAPI<IAllForksResponse>(url, init);
+ return response;
+ }
+
+ async deleteFork(options: { forkId: string; merge: boolean }): Promise<void>
{
+ const { forkId, merge } = options;
+ const url = URLExt.join(ROOM_FORK_URL, forkId);
+ const query = URLExt.objectToQueryString({ merge });
+ const init = { method: 'DELETE' };
+ await requestAPI(`${url}${query}`, init);
+ }
+ getProvider(options: {
+ documentPath: string;
+ format: string;
+ type: string;
+ }): IForkProvider | undefined {
+ const { documentPath, format, type } = options;
+ const drive = this._drive;
+ if (drive) {
+ const driveName = drive.name;
+ let docPath = documentPath;
+ if (documentPath.startsWith(driveName)) {
+ docPath = documentPath.slice(driveName.length + 1);
+ }
+ const provider = drive.providers.get(`${format}:${type}:${docPath}`);
+ return provider as IForkProvider | undefined;
+ }
+ return;
+ }
+
+ private _handleEvent(_: Event.IManager, emission: Event.Emission) {
+ if (emission.schema_id === JUPYTER_COLLABORATION_FORK_EVENTS_URI) {
+ switch (emission.action) {
+ case 'create': {
+ this._forkAddedSignal.emit(emission as any);
+ break;
+ }
+ case 'delete': {
+ this._forkDeletedSignal.emit(emission as any);
+ break;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+ private _disposed = false;
+ private _drive: ICollaborativeDrive | undefined;
+ private _eventManager: Event.IManager | undefined;
+ private _forkAddedSignal = new Signal<ForkManager, IForkChangedEvent>(this);
+ private _forkDeletedSignal = new Signal<ForkManager,
IForkChangedEvent>(this);
+}
+
+export namespace ForkManager {
+ export interface IOptions {
+ drive: ICollaborativeDrive;
+ eventManager: Event.IManager;
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_docprovider-1.0.0/packages/docprovider/src/index.ts
new/jupyter_docprovider-1.1.0/packages/docprovider/src/index.ts
--- old/jupyter_docprovider-1.0.0/packages/docprovider/src/index.ts
2020-02-02 01:00:00.000000000 +0100
+++ new/jupyter_docprovider-1.1.0/packages/docprovider/src/index.ts
2020-02-02 01:00:00.000000000 +0100
@@ -13,3 +13,5 @@
export * from './ydrive';
export * from './yprovider';
export * from './TimelineSlider';
+export * from './tokens';
+export * from './forkManager';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_docprovider-1.0.0/packages/docprovider/src/requests.ts
new/jupyter_docprovider-1.1.0/packages/docprovider/src/requests.ts
--- old/jupyter_docprovider-1.0.0/packages/docprovider/src/requests.ts
2020-02-02 01:00:00.000000000 +0100
+++ new/jupyter_docprovider-1.1.0/packages/docprovider/src/requests.ts
2020-02-02 01:00:00.000000000 +0100
@@ -14,6 +14,8 @@
const DOC_FORK_URL = 'api/collaboration/undo_redo';
const TIMELINE_URL = 'api/collaboration/timeline';
+export const ROOM_FORK_URL = 'api/collaboration/fork';
+
/**
* Document session model
*/
@@ -36,6 +38,45 @@
sessionId: string;
}
+/**
+ * Call the API extension
+ *
+ * @param endPoint API REST end point for the extension
+ * @param init Initial values for the request
+ * @returns The response body interpreted as JSON
+ */
+export async function requestAPI<T = any>(
+ endPoint = '',
+ init: RequestInit = {}
+): Promise<T> {
+ // Make request to Jupyter API
+ const settings = ServerConnection.makeSettings();
+ const requestUrl = URLExt.join(settings.baseUrl, endPoint);
+
+ let response: Response;
+ try {
+ response = await ServerConnection.makeRequest(requestUrl, init, settings);
+ } catch (error) {
+ throw new ServerConnection.NetworkError(error as any);
+ }
+
+ let data: any = await response.text();
+
+ if (data.length > 0) {
+ try {
+ data = JSON.parse(data);
+ } catch (error) {
+ console.error('Not a JSON response body.', response);
+ }
+ }
+
+ if (!response.ok) {
+ throw new ServerConnection.ResponseError(response, data.message || data);
+ }
+
+ return data;
+}
+
export async function requestDocSession(
format: string,
type: string,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_docprovider-1.0.0/packages/docprovider/src/tokens.ts
new/jupyter_docprovider-1.1.0/packages/docprovider/src/tokens.ts
--- old/jupyter_docprovider-1.0.0/packages/docprovider/src/tokens.ts
1970-01-01 01:00:00.000000000 +0100
+++ new/jupyter_docprovider-1.1.0/packages/docprovider/src/tokens.ts
2020-02-02 01:00:00.000000000 +0100
@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) Jupyter Development Team.
+ * Distributed under the terms of the Modified BSD License.
+ */
+
+import { Token } from '@lumino/coreutils';
+import { IDisposable } from '@lumino/disposable';
+import { ISignal } from '@lumino/signaling';
+import { IForkProvider } from './ydrive';
+export interface IForkInfo {
+ description?: string;
+ root_roomid: string;
+ synchronize: boolean;
+ title?: string;
+}
+
+export interface IForkCreationResponse {
+ fork_info: IForkInfo;
+ fork_roomid: string;
+ sessionId: string;
+}
+
+export interface IAllForksResponse {
+ [forkId: string]: IForkInfo;
+}
+
+export interface IForkChangedEvent {
+ fork_info: IForkInfo;
+ fork_roomid: string;
+ username?: string;
+}
+
+/**
+ * Interface representing a Fork Manager that manages forked documents and
+ * provides signals for fork-related events.
+ *
+ * @interface IForkManager
+ * @extends IDisposable
+ */
+export interface IForkManager extends IDisposable {
+ /**
+ * Get the fork provider of a given document.
+ *
+ * @param options.documentPath - The document path including the
+ * drive prefix.
+ * @param options.format - Format of the document.
+ * @param options.type - Content type of the document.
+ * @returns The fork provider of the document.
+ */
+ getProvider(options: {
+ documentPath: string;
+ format: string;
+ type: string;
+ }): IForkProvider | undefined;
+
+ /**
+ * Creates a new fork for a given document.
+ *
+ * @param options.rootId - The ID of the root document to fork.
+ * @param options.synchronize - A flag indicating whether the fork should be
kept
+ * synchronized with the root document.
+ * @param options.title - An optional label for the fork.
+ * @param options.description - An optional description for the fork.
+ *
+ * @returns A promise that resolves to an `IForkCreationResponse` if the fork
+ * is created successfully, or `undefined` if the creation fails.
+ */
+ createFork(options: {
+ rootId: string;
+ synchronize: boolean;
+ title?: string;
+ description?: string;
+ }): Promise<IForkCreationResponse | undefined>;
+
+ /**
+ * Retrieves all forks associated with a specific document.
+ *
+ * @param documentId - The ID of the document for which forks are to be
retrieved.
+ *
+ * @returns A promise that resolves to an `IAllForksResponse` containing
information about all forks.
+ */
+ getAllForks(documentId: string): Promise<IAllForksResponse>;
+
+ /**
+ * Deletes a specified fork and optionally merges its changes.
+ *
+ * @param options - Options for deleting the fork.
+ * @param options.forkId - The ID of the fork to be deleted.
+ * @param options.merge - A flag indicating whether changes from the fork
should be merged back into the root document.
+ *
+ * @returns A promise that resolves when the fork is successfully deleted.
+ */
+ deleteFork(options: { forkId: string; merge: boolean }): Promise<void>;
+
+ /**
+ * Signal emitted when a new fork is added.
+ *
+ * @event forkAdded
+ * @type ISignal<IForkManager, IForkChangedEvent>
+ */
+ forkAdded: ISignal<IForkManager, IForkChangedEvent>;
+
+ /**
+ * Signal emitted when a fork is deleted.
+ *
+ * @event forkDeleted
+ * @type ISignal<IForkManager, IForkChangedEvent>
+ */
+ forkDeleted: ISignal<IForkManager, IForkChangedEvent>;
+}
+
+/**
+ * Token providing a fork manager instance.
+ */
+export const IForkManagerToken = new Token<IForkManager>(
+ '@jupyter/docprovider:IForkManagerToken'
+);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_docprovider-1.0.0/packages/docprovider/src/ydrive.ts
new/jupyter_docprovider-1.1.0/packages/docprovider/src/ydrive.ts
--- old/jupyter_docprovider-1.0.0/packages/docprovider/src/ydrive.ts
2020-02-02 01:00:00.000000000 +0100
+++ new/jupyter_docprovider-1.1.0/packages/docprovider/src/ydrive.ts
2020-02-02 01:00:00.000000000 +0100
@@ -206,7 +206,8 @@
// A change in hash signifies that a save occurred on the server-side
// (e.g. a collaborator performed the save) - we want to notify the
// observers about this change so that they can store the new hash
value.
- const model = await this.get(options.path, { content: false });
+ const newPath = sharedModel.state.path ?? options.path;
+ const model = await this.get(newPath as string, { content: false });
this._ydriveFileChanged.emit({
type: 'save',
@@ -308,7 +309,6 @@
// the `sharedModel` will be the default one.
return;
}
-
if (this.documentFactories.has(options.contentType)) {
const factory = this.documentFactories.get(options.contentType)!;
const sharedModel = factory(options);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_docprovider-1.0.0/packages/docprovider-extension/package.json
new/jupyter_docprovider-1.1.0/packages/docprovider-extension/package.json
--- old/jupyter_docprovider-1.0.0/packages/docprovider-extension/package.json
2020-02-02 01:00:00.000000000 +0100
+++ new/jupyter_docprovider-1.1.0/packages/docprovider-extension/package.json
2020-02-02 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
{
"name": "@jupyter/docprovider-extension",
- "version": "3.0.0",
+ "version": "3.1.0",
"description": "JupyterLab - Collaborative Shared Models",
"keywords": [
"jupyter",
@@ -53,8 +53,8 @@
"watch:labextension": "jupyter labextension watch ."
},
"dependencies": {
- "@jupyter/collaborative-drive": "^3.0.0",
- "@jupyter/docprovider": "^3.0.0",
+ "@jupyter/collaborative-drive": "^3.1.0",
+ "@jupyter/docprovider": "^3.1.0",
"@jupyter/ydoc": "^2.0.0 || ^3.0.0",
"@jupyterlab/application": "^4.2.0",
"@jupyterlab/apputils": "^4.2.0",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_docprovider-1.0.0/packages/docprovider-extension/src/filebrowser.ts
new/jupyter_docprovider-1.1.0/packages/docprovider-extension/src/filebrowser.ts
---
old/jupyter_docprovider-1.0.0/packages/docprovider-extension/src/filebrowser.ts
2020-02-02 01:00:00.000000000 +0100
+++
new/jupyter_docprovider-1.1.0/packages/docprovider-extension/src/filebrowser.ts
2020-02-02 01:00:00.000000000 +0100
@@ -158,35 +158,38 @@
documentPath: string,
documentId: string
) => {
- if (drive) {
- // Remove 'RTC:' from document path
- documentPath = documentPath.slice(drive.name.length + 1);
- // Dispose of the previous timelineWidget if it exists
- if (timelineWidget) {
- timelineWidget.dispose();
- timelineWidget = null;
- }
+ if (documentId && documentPath.split(':')[0] === 'RTC') {
+ if (drive) {
+ // Remove 'RTC:' from document path
+ documentPath = documentPath.slice(drive.name.length + 1);
+ // Dispose of the previous timelineWidget if it exists
+ if (timelineWidget) {
+ timelineWidget.dispose();
+ timelineWidget = null;
+ }
- const [format, type] = documentId.split(':');
- const provider = drive.providers.get(
- `${format}:${type}:${documentPath}`
- ) as unknown as IForkProvider;
- const fullPath = URLExt.join(
- app.serviceManager.serverSettings.baseUrl,
- DOCUMENT_TIMELINE_URL,
- documentPath
- );
-
- timelineWidget = new TimelineWidget(
- fullPath,
- provider,
- provider.contentType,
- provider.format
- );
-
- const elt = document.getElementById('jp-slider-status-bar');
- if (elt && !timelineWidget.isAttached) {
- Widget.attach(timelineWidget, elt);
+ const [format, type] = documentId.split(':');
+ const provider = drive.providers.get(
+ `${format}:${type}:${documentPath}`
+ ) as unknown as IForkProvider;
+ const fullPath = URLExt.join(
+ app.serviceManager.serverSettings.baseUrl,
+ DOCUMENT_TIMELINE_URL,
+ documentPath
+ );
+
+ timelineWidget = new TimelineWidget(
+ fullPath,
+ provider,
+ provider.contentType,
+ provider.format,
+ DOCUMENT_TIMELINE_URL
+ );
+
+ const elt = document.getElementById('jp-slider-status-bar');
+ if (elt && !timelineWidget.isAttached) {
+ Widget.attach(timelineWidget, elt);
+ }
}
}
};
@@ -222,8 +225,22 @@
align: 'left',
rank: 4,
isActive: () => {
- const currentWidget = app.shell.currentWidget;
- return !!currentWidget && 'context' in currentWidget;
+ const currentWidget = app.shell
+ .currentWidget as DocumentWidget | null;
+
+ if (
+ currentWidget &&
+ currentWidget.context &&
+ typeof currentWidget.context.path === 'string'
+ ) {
+ const documentPath = currentWidget.context.path;
+ const documentId =
+ currentWidget.context.model.sharedModel.getState(
+ 'document_id'
+ ) as string;
+ return !!documentId && documentPath.split(':')[0] === 'RTC';
+ }
+ return false;
}
});
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_docprovider-1.0.0/packages/docprovider-extension/src/forkManager.ts
new/jupyter_docprovider-1.1.0/packages/docprovider-extension/src/forkManager.ts
---
old/jupyter_docprovider-1.0.0/packages/docprovider-extension/src/forkManager.ts
1970-01-01 01:00:00.000000000 +0100
+++
new/jupyter_docprovider-1.1.0/packages/docprovider-extension/src/forkManager.ts
2020-02-02 01:00:00.000000000 +0100
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) Jupyter Development Team.
+ * Distributed under the terms of the Modified BSD License.
+ */
+
+import { ICollaborativeDrive } from '@jupyter/collaborative-drive';
+import {
+ ForkManager,
+ IForkManager,
+ IForkManagerToken
+} from '@jupyter/docprovider';
+
+import {
+ JupyterFrontEnd,
+ JupyterFrontEndPlugin
+} from '@jupyterlab/application';
+
+export const forkManagerPlugin: JupyterFrontEndPlugin<IForkManager> = {
+ id: '@jupyter/docprovider-extension:forkManager',
+ autoStart: true,
+ requires: [ICollaborativeDrive],
+ provides: IForkManagerToken,
+ activate: (app: JupyterFrontEnd, drive: ICollaborativeDrive) => {
+ const eventManager = app.serviceManager.events;
+ const manager = new ForkManager({ drive, eventManager });
+ return manager;
+ }
+};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_docprovider-1.0.0/packages/docprovider-extension/src/index.ts
new/jupyter_docprovider-1.1.0/packages/docprovider-extension/src/index.ts
--- old/jupyter_docprovider-1.0.0/packages/docprovider-extension/src/index.ts
2020-02-02 01:00:00.000000000 +0100
+++ new/jupyter_docprovider-1.1.0/packages/docprovider-extension/src/index.ts
2020-02-02 01:00:00.000000000 +0100
@@ -16,6 +16,7 @@
statusBarTimeline
} from './filebrowser';
import { notebookCellExecutor } from './executor';
+import { forkManagerPlugin } from './forkManager';
/**
* Export the plugins as default.
@@ -27,7 +28,8 @@
defaultFileBrowser,
logger,
notebookCellExecutor,
- statusBarTimeline
+ statusBarTimeline,
+ forkManagerPlugin
];
export default plugins;