jupyterlab / jupyterlab_xkcd

Random xkcd comic in a JupyterLab panel
31 stars 21 forks source link

Tag 05 (Restore Panel State) Outdated/No longer works #6

Closed krinsman closed 1 year ago

krinsman commented 6 years ago

All of the previous four commits work exactly as described in the tutorial.

However, as of Friday, July 13th, 2018 (bad luck I guess), the fifth commit (to restore panel state) no longer works as described in the tutorial.

At first I thought it was a result of me not following the tutorial correctly. But the same problem (open a new comic, refresh JupyterLab -- comic tab is no longer there) persisting even upon copy-pasting the code in this repository.

I am not sure what else to add; this seemed self-explanatory from the title. Please let me know how I can elaborate in any way.

EDIT: Here is the version information for the packages being used from conda list

# packages in environment at /opt/miniconda/envs/jupyterlab:
#
# Name                    Version                   Build  Channel
anaconda-client           1.6.14                   py36_0  
appnope                   0.1.0            py36hf537a9a_0  
arrow                     0.12.1                   py36_2    conda-forge
asn1crypto                0.24.0                   py36_0  
backcall                  0.1.0                    py36_0  
beautifulsoup4            4.6.0            py36h72d3c9f_1  
binaryornot               0.4.4                    py36_0    local
bleach                    2.1.3                    py36_0  
ca-certificates           2018.03.07                    0  
certifi                   2018.4.16                py36_0  
cffi                      1.11.5           py36h342bebf_0  
chardet                   3.0.4            py36h96c241c_1  
click                     6.7              py36hec950be_0  
clyent                    1.2.2            py36hae3ad88_0  
conda                     4.5.5                    py36_0  
conda-build               3.10.9                   py36_0  
conda-env                 2.6.0                h36134e3_0  
conda-verify              2.0.0            py36he837df3_0  
cookiecutter              1.6.0                    py36_0    conda-forge
cryptography              2.2.2            py36h1de35cc_0  
decorator                 4.3.0                    py36_0  
entrypoints               0.2.3            py36hd81d71f_2  
expat                     2.2.5                hb8e80ba_0  
filelock                  3.0.4                    py36_0  
future                    0.16.0                   py36_1  
git                       2.17.1          pl526h028e6c8_0  
glob2                     0.6              py36h94c9186_0  
html5lib                  1.0.1            py36h2f9c1c0_0  
idna                      2.7                      py36_0  
ipykernel                 4.8.2                    py36_0  
ipython                   6.4.0                    py36_0  
ipython_genutils          0.2.0            py36h241746c_0  
jedi                      0.12.0                   py36_1  
jinja2                    2.10             py36hd36f9c5_0  
jinja2-time               0.2.0                      py_2    conda-forge
jsonschema                2.6.0            py36hb385e00_0  
jupyter_client            5.2.3                    py36_0  
jupyter_core              4.4.0            py36h79cf704_0  
jupyterlab                0.32.1                   py36_0  
jupyterlab_launcher       0.10.5                   py36_0  
libcurl                   7.60.0               hf30b1f0_0  
libcxx                    4.0.1                h579ed51_0  
libcxxabi                 4.0.1                hebd6815_0  
libedit                   3.1.20170329         hb402a30_2  
libffi                    3.2.1                h475c297_4  
libiconv                  1.15                 hdd342a3_7  
libsodium                 1.0.16               h3efe00b_0  
libssh2                   1.8.0                h322a93b_4  
markupsafe                1.0              py36h3a1e703_1  
mistune                   0.8.3            py36h1de35cc_1  
nbconvert                 5.3.1            py36h810822e_0  
nbformat                  4.4.0            py36h827af21_0  
ncurses                   6.1                  h0a44026_0  
nodejs                    8.11.1               h0a44026_0  
notebook                  5.5.0                    py36_0  
openssl                   1.0.2o               h26aff7b_0  
pandoc                    2.2.1                h1a437c5_0  
pandocfilters             1.4.2            py36h3b0b094_1  
parso                     0.2.1                    py36_0  
perl                      5.26.2               h4e221da_0  
pexpect                   4.6.0                    py36_0  
pickleshare               0.7.4            py36hf512f8e_0  
pip                       10.0.1                   py36_0  
pkginfo                   1.4.2                    py36_1  
poyo                      0.4.1                    py36_0    local
prompt_toolkit            1.0.15           py36haeda067_0  
psutil                    5.4.6            py36h1de35cc_0  
ptyprocess                0.6.0                    py36_0  
pycosat                   0.6.3            py36hee92d8f_0  
pycparser                 2.18             py36h724b2fc_1  
pygments                  2.2.0            py36h240cd3f_0  
pyopenssl                 18.0.0                   py36_0  
pysocks                   1.6.8                    py36_0  
python                    3.6.6                hc167b69_0  
python-dateutil           2.7.3                    py36_0  
python.app                2                        py36_8  
pytz                      2018.5                   py36_0  
pyyaml                    3.12             py36h2ba1e63_1  
pyzmq                     17.0.0           py36h1de35cc_1  
readline                  7.0                  hc1231fa_4  
requests                  2.19.1                   py36_0  
ruamel_yaml               0.15.42          py36h1de35cc_0  
send2trash                1.5.0                    py36_0  
setuptools                39.2.0                   py36_0  
simplegeneric             0.8.1                    py36_2  
six                       1.11.0           py36h0e22d5e_1  
sqlite                    3.24.0               ha441bb4_0  
terminado                 0.8.1                    py36_1  
testpath                  0.3.1            py36h625a49b_0  
tk                        8.6.7                h35a86e2_3  
tornado                   5.0.2                    py36_0  
traitlets                 4.3.2            py36h65bd3ce_0  
urllib3                   1.23                     py36_0  
wcwidth                   0.1.7            py36h8c6ec74_0  
webencodings              0.5.1            py36h3b9701d_1  
wheel                     0.31.1                   py36_0  
whichcraft                0.4.1                    py36_0    local
xz                        5.2.4                h1de35cc_4  
yaml                      0.1.7                hc338f04_2  
zeromq                    4.2.5                h378b8a2_0  
zlib                      1.2.11               hf3cbc9b_2  
krinsman commented 6 years ago

Here is also the output of npm list:

├─┬ @jupyterlab/application@0.16.3
│ ├─┬ @jupyterlab/apputils@0.16.4
│ │ ├── @jupyterlab/coreutils@1.1.3 deduped
│ │ ├── @jupyterlab/services@2.0.3 deduped
│ │ ├── @phosphor/algorithm@1.1.2 deduped
│ │ ├── @phosphor/commands@1.5.0 deduped
│ │ ├── @phosphor/coreutils@1.3.0 deduped
│ │ ├── @phosphor/disposable@1.1.2 deduped
│ │ ├── @phosphor/domutils@1.1.2 deduped
│ │ ├── @phosphor/messaging@1.2.2 deduped
│ │ ├── @phosphor/properties@1.1.2 deduped
│ │ ├── @phosphor/signaling@1.2.2 deduped
│ │ ├── @phosphor/virtualdom@1.1.2 deduped
│ │ ├── @phosphor/widgets@1.6.0 deduped
│ │ ├── @types/react@16.0.41 deduped
│ │ ├─┬ react@16.2.0
│ │ │ ├── fbjs@0.8.17 deduped
│ │ │ ├── loose-envify@1.4.0 deduped
│ │ │ ├── object-assign@4.1.1 deduped
│ │ │ └── prop-types@15.6.2 deduped
│ │ ├─┬ react-dom@16.2.0
│ │ │ ├── fbjs@0.8.17 deduped
│ │ │ ├── loose-envify@1.4.0 deduped
│ │ │ ├── object-assign@4.1.1 deduped
│ │ │ └── prop-types@15.6.2 deduped
│ │ └── sanitize-html@1.14.3 deduped
│ ├─┬ @jupyterlab/coreutils@1.1.3
│ │ ├── @phosphor/algorithm@1.1.2 deduped
│ │ ├── @phosphor/coreutils@1.3.0 deduped
│ │ ├── @phosphor/disposable@1.1.2 deduped
│ │ ├── @phosphor/signaling@1.2.2 deduped
│ │ ├─┬ ajv@5.1.6
│ │ │ ├── co@4.6.0
│ │ │ ├── json-schema-traverse@0.3.1
│ │ │ └─┬ json-stable-stringify@1.0.1
│ │ │   └── jsonify@0.0.0
│ │ ├─┬ comment-json@1.1.3
│ │ │ └─┬ json-parser@1.1.5
│ │ │   └── esprima@2.7.3
│ │ ├── minimist@1.2.0
│ │ ├── moment@2.21.0
│ │ ├── path-posix@1.0.0
│ │ └─┬ url-parse@1.1.9
│ │   ├── querystringify@1.0.0
│ │   └── requires-port@1.0.0
│ ├─┬ @jupyterlab/docregistry@0.16.3
│ │ ├─┬ @jupyterlab/apputils@0.16.4
│ │ │ ├── @jupyterlab/coreutils@1.1.3 deduped
│ │ │ ├── @jupyterlab/services@2.0.3 deduped
│ │ │ ├── @phosphor/algorithm@1.1.2 deduped
│ │ │ ├── @phosphor/commands@1.5.0 deduped
│ │ │ ├── @phosphor/coreutils@1.3.0 deduped
│ │ │ ├── @phosphor/disposable@1.1.2 deduped
│ │ │ ├── @phosphor/domutils@1.1.2 deduped
│ │ │ ├── @phosphor/messaging@1.2.2 deduped
│ │ │ ├── @phosphor/properties@1.1.2 deduped
│ │ │ ├── @phosphor/signaling@1.2.2 deduped
│ │ │ ├── @phosphor/virtualdom@1.1.2 deduped
│ │ │ ├── @phosphor/widgets@1.6.0 deduped
│ │ │ ├── @types/react@16.0.41 deduped
│ │ │ ├── react@16.2.0 deduped
│ │ │ ├── react-dom@16.2.0 deduped
│ │ │ └── sanitize-html@1.14.3 deduped
│ │ ├─┬ @jupyterlab/codeeditor@0.16.2
│ │ │ ├── @jupyterlab/coreutils@1.1.3 deduped
│ │ │ ├── @jupyterlab/observables@1.0.10 deduped
│ │ │ ├── @phosphor/coreutils@1.3.0 deduped
│ │ │ ├── @phosphor/disposable@1.1.2 deduped
│ │ │ ├── @phosphor/messaging@1.2.2 deduped
│ │ │ ├── @phosphor/signaling@1.2.2 deduped
│ │ │ ├── @phosphor/widgets@1.6.0 deduped
│ │ │ ├── react@16.2.0 deduped
│ │ │ └── react-dom@16.2.0 deduped
│ │ ├─┬ @jupyterlab/codemirror@0.16.3
│ │ │ ├─┬ @jupyterlab/apputils@0.16.4
│ │ │ │ ├── @jupyterlab/coreutils@1.1.3 deduped
│ │ │ │ ├── @jupyterlab/services@2.0.3 deduped
│ │ │ │ ├── @phosphor/algorithm@1.1.2 deduped
│ │ │ │ ├── @phosphor/commands@1.5.0 deduped
│ │ │ │ ├── @phosphor/coreutils@1.3.0 deduped
│ │ │ │ ├── @phosphor/disposable@1.1.2 deduped
│ │ │ │ ├── @phosphor/domutils@1.1.2 deduped
│ │ │ │ ├── @phosphor/messaging@1.2.2 deduped
│ │ │ │ ├── @phosphor/properties@1.1.2 deduped
│ │ │ │ ├── @phosphor/signaling@1.2.2 deduped
│ │ │ │ ├── @phosphor/virtualdom@1.1.2 deduped
│ │ │ │ ├── @phosphor/widgets@1.6.0 deduped
│ │ │ │ ├── @types/react@16.0.41 deduped
│ │ │ │ ├── react@16.2.0 deduped
│ │ │ │ ├── react-dom@16.2.0 deduped
│ │ │ │ └── sanitize-html@1.14.3 deduped
│ │ │ ├── @jupyterlab/codeeditor@0.16.2 deduped
│ │ │ ├── @jupyterlab/coreutils@1.1.3 deduped
│ │ │ ├── @jupyterlab/observables@1.0.10 deduped
│ │ │ ├── @phosphor/algorithm@1.1.2 deduped
│ │ │ ├── @phosphor/coreutils@1.3.0 deduped
│ │ │ ├── @phosphor/disposable@1.1.2 deduped
│ │ │ ├── @phosphor/signaling@1.2.2 deduped
│ │ │ └── codemirror@5.35.0
│ │ ├── @jupyterlab/coreutils@1.1.3 deduped
│ │ ├─┬ @jupyterlab/observables@1.0.10
│ │ │ ├── @phosphor/algorithm@1.1.2 deduped
│ │ │ ├── @phosphor/coreutils@1.3.0 deduped
│ │ │ ├── @phosphor/disposable@1.1.2 deduped
│ │ │ ├── @phosphor/messaging@1.2.2 deduped
│ │ │ └── @phosphor/signaling@1.2.2 deduped
│ │ ├── @jupyterlab/rendermime@0.16.3 deduped
│ │ ├── @jupyterlab/rendermime-interfaces@1.0.10 deduped
│ │ ├── @jupyterlab/services@2.0.3 deduped
│ │ ├── @phosphor/algorithm@1.1.2 deduped
│ │ ├── @phosphor/coreutils@1.3.0 deduped
│ │ ├── @phosphor/disposable@1.1.2 deduped
│ │ ├── @phosphor/messaging@1.2.2 deduped
│ │ ├── @phosphor/signaling@1.2.2 deduped
│ │ └── @phosphor/widgets@1.6.0 deduped
│ ├─┬ @jupyterlab/rendermime@0.16.3
│ │ ├─┬ @jupyterlab/apputils@0.16.4
│ │ │ ├── @jupyterlab/coreutils@1.1.3 deduped
│ │ │ ├── @jupyterlab/services@2.0.3 deduped
│ │ │ ├── @phosphor/algorithm@1.1.2 deduped
│ │ │ ├── @phosphor/commands@1.5.0 deduped
│ │ │ ├── @phosphor/coreutils@1.3.0 deduped
│ │ │ ├── @phosphor/disposable@1.1.2 deduped
│ │ │ ├── @phosphor/domutils@1.1.2 deduped
│ │ │ ├── @phosphor/messaging@1.2.2 deduped
│ │ │ ├── @phosphor/properties@1.1.2 deduped
│ │ │ ├── @phosphor/signaling@1.2.2 deduped
│ │ │ ├── @phosphor/virtualdom@1.1.2 deduped
│ │ │ ├── @phosphor/widgets@1.6.0 deduped
│ │ │ ├── @types/react@16.0.41 deduped
│ │ │ ├── react@16.2.0 deduped
│ │ │ ├── react-dom@16.2.0 deduped
│ │ │ └── sanitize-html@1.14.3 deduped
│ │ ├── @jupyterlab/codemirror@0.16.3 deduped
│ │ ├── @jupyterlab/coreutils@1.1.3 deduped
│ │ ├── @jupyterlab/observables@1.0.10 deduped
│ │ ├── @jupyterlab/rendermime-interfaces@1.0.10 deduped
│ │ ├── @jupyterlab/services@2.0.3 deduped
│ │ ├── @phosphor/coreutils@1.3.0 deduped
│ │ ├── @phosphor/messaging@1.2.2 deduped
│ │ ├── @phosphor/signaling@1.2.2 deduped
│ │ ├── @phosphor/widgets@1.6.0 deduped
│ │ ├── ansi_up@3.0.0
│ │ └── marked@0.3.19
│ ├─┬ @jupyterlab/rendermime-interfaces@1.0.10
│ │ ├── @phosphor/coreutils@1.3.0 deduped
│ │ └── @phosphor/widgets@1.6.0 deduped
│ ├─┬ @jupyterlab/services@2.0.3
│ │ ├── @jupyterlab/coreutils@1.1.3 deduped
│ │ ├── @jupyterlab/observables@1.0.10 deduped
│ │ ├── @phosphor/algorithm@1.1.2 deduped
│ │ ├── @phosphor/coreutils@1.3.0 deduped
│ │ ├── @phosphor/disposable@1.1.2 deduped
│ │ ├── @phosphor/signaling@1.2.2 deduped
│ │ ├─┬ node-fetch@1.7.3
│ │ │ ├─┬ encoding@0.1.12
│ │ │ │ └─┬ iconv-lite@0.4.23
│ │ │ │   └── safer-buffer@2.1.2
│ │ │ └── is-stream@1.1.0
│ │ └─┬ ws@1.1.5
│ │   ├── options@0.0.6
│ │   └── ultron@1.0.2
│ ├── @phosphor/algorithm@1.1.2
│ ├─┬ @phosphor/application@1.6.0
│ │ ├── @phosphor/commands@1.5.0 deduped
│ │ ├── @phosphor/coreutils@1.3.0 deduped
│ │ └── @phosphor/widgets@1.6.0 deduped
│ ├─┬ @phosphor/commands@1.5.0
│ │ ├── @phosphor/algorithm@1.1.2 deduped
│ │ ├── @phosphor/coreutils@1.3.0 deduped
│ │ ├── @phosphor/disposable@1.1.2 deduped
│ │ ├── @phosphor/domutils@1.1.2 deduped
│ │ ├── @phosphor/keyboard@1.1.2 deduped
│ │ └── @phosphor/signaling@1.2.2 deduped
│ ├── @phosphor/coreutils@1.3.0 deduped
│ ├─┬ @phosphor/disposable@1.1.2
│ │ └── @phosphor/algorithm@1.1.2 deduped
│ ├── @phosphor/messaging@1.2.2 deduped
│ ├── @phosphor/properties@1.1.2
│ ├─┬ @phosphor/signaling@1.2.2
│ │ └── @phosphor/algorithm@1.1.2 deduped
│ └── @phosphor/widgets@1.6.0 deduped
├─┬ @jupyterlab/apputils@0.17.0-1
│ ├─┬ @jupyterlab/coreutils@2.0.0-1
│ │ ├── @phosphor/algorithm@1.1.2 deduped
│ │ ├── @phosphor/coreutils@1.3.0 deduped
│ │ ├── @phosphor/disposable@1.1.2 deduped
│ │ ├── @phosphor/signaling@1.2.2 deduped
│ │ ├── ajv@5.1.6 deduped
│ │ ├── comment-json@1.1.3 deduped
│ │ ├── minimist@1.2.0 deduped
│ │ ├── moment@2.21.0 deduped
│ │ ├── path-posix@1.0.0 deduped
│ │ └── url-parse@1.1.9 deduped
│ ├─┬ @jupyterlab/services@3.0.0-1
│ │ ├── @jupyterlab/coreutils@2.0.0-1 deduped
│ │ ├─┬ @jupyterlab/observables@2.0.0-1
│ │ │ ├── @phosphor/algorithm@1.1.2 deduped
│ │ │ ├── @phosphor/coreutils@1.3.0 deduped
│ │ │ ├── @phosphor/disposable@1.1.2 deduped
│ │ │ ├── @phosphor/messaging@1.2.2 deduped
│ │ │ └── @phosphor/signaling@1.2.2 deduped
│ │ ├── @phosphor/algorithm@1.1.2 deduped
│ │ ├── @phosphor/coreutils@1.3.0 deduped
│ │ ├── @phosphor/disposable@1.1.2 deduped
│ │ ├── @phosphor/signaling@1.2.2 deduped
│ │ ├── node-fetch@1.7.3 deduped
│ │ └── ws@1.1.5 deduped
│ ├── @phosphor/algorithm@1.1.2 deduped
│ ├── @phosphor/commands@1.5.0 deduped
│ ├── @phosphor/coreutils@1.3.0 deduped
│ ├── @phosphor/disposable@1.1.2 deduped
│ ├── @phosphor/domutils@1.1.2
│ ├── @phosphor/messaging@1.2.2 deduped
│ ├── @phosphor/properties@1.1.2 deduped
│ ├── @phosphor/signaling@1.2.2 deduped
│ ├─┬ @phosphor/virtualdom@1.1.2
│ │ └── @phosphor/algorithm@1.1.2 deduped
│ ├── @phosphor/widgets@1.6.0 deduped
│ ├── @types/react@16.0.41
│ ├─┬ react@16.4.1
│ │ ├─┬ fbjs@0.8.17
│ │ │ ├── core-js@1.2.7
│ │ │ ├─┬ isomorphic-fetch@2.2.1
│ │ │ │ ├── node-fetch@1.7.3 deduped
│ │ │ │ └── whatwg-fetch@2.0.4
│ │ │ ├── loose-envify@1.4.0 deduped
│ │ │ ├── object-assign@4.1.1 deduped
│ │ │ ├─┬ promise@7.3.1
│ │ │ │ └── asap@2.0.6
│ │ │ ├── setimmediate@1.0.5
│ │ │ └── ua-parser-js@0.7.18
│ │ ├─┬ loose-envify@1.4.0
│ │ │ └── js-tokens@4.0.0
│ │ ├── object-assign@4.1.1
│ │ └─┬ prop-types@15.6.2
│ │   ├── loose-envify@1.4.0 deduped
│ │   └── object-assign@4.1.1 deduped
│ ├─┬ react-dom@16.4.1
│ │ ├── fbjs@0.8.17 deduped
│ │ ├── loose-envify@1.4.0 deduped
│ │ ├── object-assign@4.1.1 deduped
│ │ └── prop-types@15.6.2 deduped
│ └─┬ sanitize-html@1.14.3
│   ├─┬ htmlparser2@3.9.2
│   │ ├── domelementtype@1.3.0
│   │ ├─┬ domhandler@2.4.2
│   │ │ └── domelementtype@1.3.0 deduped
│   │ ├─┬ domutils@1.7.0
│   │ │ ├─┬ dom-serializer@0.1.0
│   │ │ │ ├── domelementtype@1.1.3
│   │ │ │ └── entities@1.1.1 deduped
│   │ │ └── domelementtype@1.3.0 deduped
│   │ ├── entities@1.1.1
│   │ ├── inherits@2.0.3 deduped
│   │ └─┬ readable-stream@2.3.6
│   │   ├── core-util-is@1.0.2
│   │   ├── inherits@2.0.3 deduped
│   │   ├── isarray@1.0.0
│   │   ├── process-nextick-args@2.0.0
│   │   ├── safe-buffer@5.1.2
│   │   ├─┬ string_decoder@1.1.1
│   │   │ └── safe-buffer@5.1.2 deduped
│   │   └── util-deprecate@1.0.2
│   ├── lodash.escaperegexp@4.1.2
│   └── xtend@4.0.1
├── @phosphor/coreutils@1.3.0
├─┬ @phosphor/messaging@1.2.2
│ ├── @phosphor/algorithm@1.1.2 deduped
│ └─┬ @phosphor/collections@1.1.2
│   └── @phosphor/algorithm@1.1.2 deduped
├─┬ @phosphor/widgets@1.6.0
│ ├── @phosphor/algorithm@1.1.2 deduped
│ ├── @phosphor/commands@1.5.0 deduped
│ ├── @phosphor/coreutils@1.3.0 deduped
│ ├── @phosphor/disposable@1.1.2 deduped
│ ├── @phosphor/domutils@1.1.2 deduped
│ ├─┬ @phosphor/dragdrop@1.3.0
│ │ ├── @phosphor/coreutils@1.3.0 deduped
│ │ └── @phosphor/disposable@1.1.2 deduped
│ ├── @phosphor/keyboard@1.1.2
│ ├── @phosphor/messaging@1.2.2 deduped
│ ├── @phosphor/properties@1.1.2 deduped
│ ├── @phosphor/signaling@1.2.2 deduped
│ └── @phosphor/virtualdom@1.1.2 deduped
├─┬ rimraf@2.6.2
│ └─┬ glob@7.1.2
│   ├── fs.realpath@1.0.0
│   ├─┬ inflight@1.0.6
│   │ ├── once@1.4.0 deduped
│   │ └── wrappy@1.0.2
│   ├── inherits@2.0.3
│   ├─┬ minimatch@3.0.4
│   │ └─┬ brace-expansion@1.1.11
│   │   ├── balanced-match@1.0.0
│   │   └── concat-map@0.0.1
│   ├─┬ once@1.4.0
│   │ └── wrappy@1.0.2 deduped
│   └── path-is-absolute@1.0.1
└── typescript@2.9.2

   ╭─────────────────────────────────────╮
   │                                     │
   │   Update available 5.6.0 → 6.1.0    │
   │     Run npm i -g npm to update      │
   │                                     │
   ╰─────────────────────────────────────╯
krinsman commented 6 years ago

Here is the output of node when running the extension (Jupyter Lab runs, and so does the extension with all of the functionality of tags 01-04, just not of 05):

src/index.ts:112:20 - error TS2345: Argument of type 'InstanceTracker<Widget>' is not assignable to parameter of type 'InstanceTracker<any>'.
  Types of property 'currentChanged' are incompatible.
    Type 'ISignal<InstanceTracker<Widget>, Widget>' is not assignable to type 'ISignal<InstanceTracker<any>, any>'.
      Type 'InstanceTracker<Widget>' is not assignable to type 'InstanceTracker<any>'.

112   restorer.restore(tracker, {
                       ~~~~~~~

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! jupyterlab_xkcd@0.1.0 build: `tsc`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the jupyterlab_xkcd@0.1.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/krinsman/.npm/_logs/2018-07-13T20_45_12_882Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! jupyterlab_xkcd@0.1.0 prepare: `npm run clean && npm run build`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the jupyterlab_xkcd@0.1.0 prepare script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/krinsman/.npm/_logs/2018-07-13T20_45_12_913Z-debug.log

This suggests that the problem is on line 112, but the error doesn't make much sense to me -- why wouldn't it be possible to assign InstanceTracker<Widget> to InstanceTracker<any>? I clearly don't understand well what <any> in TypeScript means.

Anyway, the content of the log file mentioned by node is here:

0 info it worked if it ends with ok
1 verbose cli [ '/opt/miniconda/envs/jupyterlab/bin/node',
1 verbose cli   '/opt/miniconda/envs/jupyterlab/bin/npm',
1 verbose cli   'pack',
1 verbose cli   '/Users/krinsman/Documents/xkcdextension/jupyterlab_xkcd' ]
2 info using npm@5.6.0
3 info using node@v8.11.1
4 verbose npm-session eb2a06b5b6333fe2
5 silly pacote directory manifest for undefined@file:/Users/krinsman/Documents/xkcdextension/jupyterlab_xkcd fetched in 13ms
6 info lifecycle jupyterlab_xkcd@0.1.0~prepublish: jupyterlab_xkcd@0.1.0
7 info lifecycle jupyterlab_xkcd@0.1.0~prepare: jupyterlab_xkcd@0.1.0
8 verbose lifecycle jupyterlab_xkcd@0.1.0~prepare: unsafe-perm in lifecycle true
9 verbose lifecycle jupyterlab_xkcd@0.1.0~prepare: PATH: /opt/miniconda/envs/jupyterlab/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/Users/krinsman/Documents/xkcdextension/jupyterlab_xkcd/node_modules/.bin:/opt/miniconda/envs/jupyterlab/bin:/opt/miniconda/envs/jupyterlab/bin:/opt/miniconda/bin:/opt/miniconda/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin
10 verbose lifecycle jupyterlab_xkcd@0.1.0~prepare: CWD: /Users/krinsman/Documents/xkcdextension/jupyterlab_xkcd
11 silly lifecycle jupyterlab_xkcd@0.1.0~prepare: Args: [ '-c', 'npm run clean && npm run build' ]
12 silly lifecycle jupyterlab_xkcd@0.1.0~prepare: Returned: code: 1  signal: null
13 info lifecycle jupyterlab_xkcd@0.1.0~prepare: Failed to exec prepare script
14 verbose stack Error: jupyterlab_xkcd@0.1.0 prepare: `npm run clean && npm run build`
14 verbose stack Exit status 1
14 verbose stack     at EventEmitter.<anonymous> (/opt/miniconda/envs/jupyterlab/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:285:16)
14 verbose stack     at emitTwo (events.js:126:13)
14 verbose stack     at EventEmitter.emit (events.js:214:7)
14 verbose stack     at ChildProcess.<anonymous> (/opt/miniconda/envs/jupyterlab/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
14 verbose stack     at emitTwo (events.js:126:13)
14 verbose stack     at ChildProcess.emit (events.js:214:7)
14 verbose stack     at maybeClose (internal/child_process.js:925:16)
14 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
15 verbose pkgid jupyterlab_xkcd@0.1.0
16 verbose cwd /private/var/folders/kl/qkd6c89n0gxch4c7xvm_gj_h002b8l/T/tmp225vdcca
17 verbose Darwin 17.6.0
18 verbose argv "/opt/miniconda/envs/jupyterlab/bin/node" "/opt/miniconda/envs/jupyterlab/bin/npm" "pack" "/Users/krinsman/Documents/xkcdextension/jupyterlab_xkcd"
19 verbose node v8.11.1
20 verbose npm  v5.6.0
21 error code ELIFECYCLE
22 error errno 1
23 error jupyterlab_xkcd@0.1.0 prepare: `npm run clean && npm run build`
23 error Exit status 1
24 error Failed at the jupyterlab_xkcd@0.1.0 prepare script.
24 error This is probably not a problem with npm. There is likely additional logging output above.
25 verbose exit [ 1, true ]