Browse Source

JupyterLabPlugin => JupyterClientPlugin

Afshin Darian 6 years ago
parent
commit
199fc9be26
38 changed files with 162 additions and 152 deletions
  1. 2 2
      buildutils/src/create-theme.ts
  2. 5 5
      dev_mode/webpack.config.js
  3. 1 1
      docs/source/developer/extension_dev.rst
  4. 2 2
      docs/source/developer/notebook.rst
  5. 7 7
      docs/source/developer/xkcd_extension_tutorial.rst
  6. 5 5
      jupyterlab/staging/webpack.config.js
  7. 12 12
      packages/application-extension/src/index.tsx
  8. 6 1
      packages/application/src/client.ts
  9. 2 2
      packages/application/src/index.ts
  10. 2 9
      packages/application/src/lab.ts
  11. 4 4
      packages/application/src/mimerenderers.ts
  12. 9 9
      packages/apputils-extension/src/index.ts
  13. 5 5
      packages/codemirror-extension/src/index.ts
  14. 11 6
      packages/completer-extension/src/index.ts
  15. 2 2
      packages/console-extension/src/foreign.ts
  16. 4 4
      packages/console-extension/src/index.ts
  17. 4 4
      packages/csvviewer-extension/src/index.ts
  18. 2 2
      packages/extensionmanager-extension/src/index.ts
  19. 2 2
      packages/faq-extension/src/index.ts
  20. 6 6
      packages/filebrowser-extension/src/index.ts
  21. 4 4
      packages/fileeditor-extension/src/index.ts
  22. 2 2
      packages/help-extension/src/index.tsx
  23. 2 2
      packages/imageviewer-extension/src/index.ts
  24. 5 5
      packages/inspector-extension/src/index.ts
  25. 2 2
      packages/launcher-extension/src/index.ts
  26. 2 2
      packages/mainmenu-extension/src/index.ts
  27. 2 2
      packages/mathjax2-extension/src/index.ts
  28. 7 7
      packages/notebook-extension/src/index.ts
  29. 2 2
      packages/rendermime-extension/src/index.ts
  30. 2 2
      packages/running-extension/src/index.ts
  31. 2 2
      packages/settingeditor-extension/src/index.ts
  32. 4 4
      packages/shortcuts-extension/src/index.ts
  33. 7 7
      packages/statusbar-extension/src/index.ts
  34. 9 7
      packages/tabmanager-extension/src/index.ts
  35. 2 2
      packages/terminal-extension/src/index.ts
  36. 2 2
      packages/theme-dark-extension/src/index.ts
  37. 2 2
      packages/theme-light-extension/src/index.ts
  38. 11 6
      packages/tooltip-extension/src/index.ts

+ 2 - 2
buildutils/src/create-theme.ts

@@ -28,7 +28,7 @@ let questions = [
 
 const template = `
 import {
-  JupyterLab, JupyterLabPlugin
+  JupyterLab, JupyterClientPlugin
 } from '@jupyterlab/application';
 
 import {
@@ -39,7 +39,7 @@ import {
 /**
  * A plugin for the {{title}}
  */
-const plugin: JupyterLabPlugin<void> = {
+const plugin: JupyterClientPlugin<void> = {
   id: '{{name}}:plugin',
   requires: [IThemeManager],
   activate: function(app: JupyterClient, manager: IThemeManager) {

+ 5 - 5
dev_mode/webpack.config.js

@@ -80,11 +80,11 @@ function maybeSync(localPath, name, rest) {
  * A WebPack Plugin that copies the assets to the static directory and
  * fixes the output of the HTMLWebpackPlugin
  */
-function JupyterLabPlugin() {}
+function JupyterClientPlugin() {}
 
-JupyterLabPlugin.prototype.apply = function(compiler) {
+JupyterClientPlugin.prototype.apply = function(compiler) {
   compiler.hooks.afterEmit.tap(
-    'JupyterLabPlugin',
+    'JupyterClientPlugin',
     function() {
       // Fix the template output.
       var indexPath = path.join(buildDir, 'index.html');
@@ -109,7 +109,7 @@ JupyterLabPlugin.prototype.apply = function(compiler) {
   );
 };
 
-JupyterLabPlugin.prototype._first = true;
+JupyterClientPlugin.prototype._first = true;
 
 const plugins = [
   new DuplicatePackageCheckerPlugin({
@@ -126,7 +126,7 @@ const plugins = [
     title: jlab.name || 'JupyterLab'
   }),
   new webpack.HashedModuleIdsPlugin(),
-  new JupyterLabPlugin({})
+  new JupyterClientPlugin({})
 ];
 
 if (process.argv.includes('--analyze')) {

+ 1 - 1
docs/source/developer/extension_dev.rst

@@ -469,7 +469,7 @@ a plugin:
 
     class Foo implements IFoo {}
 
-    const plugin: JupyterLabPlugin<IFoo> = {
+    const plugin: JupyterClientPlugin<IFoo> = {
       id,
       requires: [IStateDB],
       provides: IFoo,

+ 2 - 2
docs/source/developer/notebook.rst

@@ -176,7 +176,7 @@ Copy the following to ``src/index.ts``:
     } from '@phosphor/disposable';
 
     import {
-      JupyterLab, JupyterLabPlugin
+      JupyterLab, JupyterClientPlugin
     } from '@jupyterlab/application';
 
     import {
@@ -195,7 +195,7 @@ Copy the following to ``src/index.ts``:
     /**
      * The plugin registration information.
      */
-    const plugin: JupyterLabPlugin<void> = {
+    const plugin: JupyterClientPlugin<void> = {
       activate,
       id: 'my-extension-name:buttonPlugin',
       autoStart: true

+ 7 - 7
docs/source/developer/xkcd_extension_tutorial.rst

@@ -227,7 +227,7 @@ repository root folder install the dependency and save it to your
 
     jlpm add @jupyterlab/apputils
 
-Locate the ``extension`` object of type ``JupyterLabPlugin``. Change the
+Locate the ``extension`` object of type ``JupyterClientPlugin``. Change the
 definition so that it reads like so:
 
 .. code:: typescript
@@ -235,7 +235,7 @@ definition so that it reads like so:
     /**
      * Initialization data for the jupyterlab_xkcd extension.
      */
-    const extension: JupyterLabPlugin<void> = {
+    const extension: JupyterClientPlugin<void> = {
       id: 'jupyterlab_xkcd',
       autoStart: true,
       requires: [ICommandPalette],
@@ -617,12 +617,12 @@ these changes:
     };
 
 Remove the ``activate`` function definition from the
-``JupyterLabPlugin`` object and refer instead to the top-level function
+``JupyterClientPlugin`` object and refer instead to the top-level function
 like so:
 
 .. code-block:: typescript
 
-    const extension: JupyterLabPlugin<void> = {
+    const extension: JupyterClientPlugin<void> = {
       id: 'jupyterlab_xkcd',
       autoStart: true,
       requires: [ICommandPalette],
@@ -662,7 +662,7 @@ entire list of import statements looks like the following:
     :emphasize-lines: 2,6,9-11
 
     import {
-      JupyterLab, JupyterLabPlugin, ILayoutRestorer // new
+      JupyterLab, JupyterClientPlugin, ILayoutRestorer // new
     } from '@jupyterlab/application';
 
     import {
@@ -690,13 +690,13 @@ Install this dependency:
 
     jlpm add @phosphor/coreutils
 
-Then, add the ``ILayoutRestorer`` interface to the ``JupyterLabPlugin``
+Then, add the ``ILayoutRestorer`` interface to the ``JupyterClientPlugin``
 definition. This addition passes the global ``LayoutRestorer`` to the
 third parameter of the ``activate``.
 
 .. code:: typescript
 
-    const extension: JupyterLabPlugin<void> = {
+    const extension: JupyterClientPlugin<void> = {
       id: 'jupyterlab_xkcd',
       autoStart: true,
       requires: [ICommandPalette, ILayoutRestorer],

+ 5 - 5
jupyterlab/staging/webpack.config.js

@@ -76,11 +76,11 @@ function maybeSync(localPath, name, rest) {
 /**
  * A WebPack Plugin that copies the assets to the static directory.
  */
-function JupyterLabPlugin() {}
+function JupyterClientPlugin() {}
 
-JupyterLabPlugin.prototype.apply = function(compiler) {
+JupyterClientPlugin.prototype.apply = function(compiler) {
   compiler.hooks.afterEmit.tap(
-    'JupyterLabPlugin',
+    'JupyterClientPlugin',
     function() {
       var staticDir = jlab.staticDir;
       if (!staticDir) {
@@ -96,7 +96,7 @@ JupyterLabPlugin.prototype.apply = function(compiler) {
   );
 };
 
-JupyterLabPlugin.prototype._first = true;
+JupyterClientPlugin.prototype._first = true;
 
 module.exports = {
   mode: 'development',
@@ -199,6 +199,6 @@ module.exports = {
       title: jlab.name || 'JupyterLab'
     }),
     new webpack.HashedModuleIdsPlugin(),
-    new JupyterLabPlugin({})
+    new JupyterClientPlugin({})
   ]
 };

+ 12 - 12
packages/application-extension/src/index.tsx

@@ -8,7 +8,7 @@ import {
   IRouter,
   JupyterClient,
   JupyterLab,
-  JupyterLabPlugin,
+  JupyterClientPlugin,
   LabShell,
   LayoutRestorer,
   Router
@@ -75,7 +75,7 @@ namespace Patterns {
 /**
  * The main extension.
  */
-const main: JupyterLabPlugin<void> = {
+const main: JupyterClientPlugin<void> = {
   id: '@jupyterlab/application-extension:main',
   requires: [ICommandPalette, IRouter, IWindowResolver],
   activate: (
@@ -185,7 +185,7 @@ const main: JupyterLabPlugin<void> = {
 /**
  * The default layout restorer provider.
  */
-const layout: JupyterLabPlugin<ILayoutRestorer> = {
+const layout: JupyterClientPlugin<ILayoutRestorer> = {
   id: '@jupyterlab/application-extension:layout',
   requires: [IStateDB, ILabShell],
   activate: (app: JupyterClient, state: IStateDB, shell: ILabShell) => {
@@ -209,7 +209,7 @@ const layout: JupyterLabPlugin<ILayoutRestorer> = {
 /**
  * The default URL router provider.
  */
-const router: JupyterLabPlugin<IRouter> = {
+const router: JupyterClientPlugin<IRouter> = {
   id: '@jupyterlab/application-extension:router',
   activate: (app: JupyterClient) => {
     const { commands } = app;
@@ -235,7 +235,7 @@ const router: JupyterLabPlugin<IRouter> = {
 /**
  * The tree route handler provider.
  */
-const tree: JupyterLabPlugin<void> = {
+const tree: JupyterClientPlugin<void> = {
   id: '@jupyterlab/application-extension:tree',
   autoStart: true,
   requires: [JupyterLab.IInfo, IRouter],
@@ -277,7 +277,7 @@ const tree: JupyterLabPlugin<void> = {
 /**
  * The default URL not found extension.
  */
-const notfound: JupyterLabPlugin<void> = {
+const notfound: JupyterClientPlugin<void> = {
   id: '@jupyterlab/application-extension:notfound',
   activate: (app: JupyterClient, router: IRouter) => {
     const bad = PageConfig.getOption('notFoundUrl');
@@ -303,7 +303,7 @@ const notfound: JupyterLabPlugin<void> = {
 /**
  * Change the favicon changing based on the busy status;
  */
-const busy: JupyterLabPlugin<void> = {
+const busy: JupyterClientPlugin<void> = {
   id: '@jupyterlab/application-extension:faviconbusy',
   activate: async (app: JupyterClient, status: ILabStatus) => {
     status.busySignal.connect((_, isBusy) => {
@@ -339,7 +339,7 @@ const SIDEBAR_ID = '@jupyterlab/application-extension:sidebar';
 /**
  * Keep user settings for where to show the side panels.
  */
-const sidebar: JupyterLabPlugin<void> = {
+const sidebar: JupyterClientPlugin<void> = {
   id: SIDEBAR_ID,
   activate: (
     app: JupyterClient,
@@ -535,7 +535,7 @@ function addCommands(app: JupyterLab, palette: ICommandPalette): void {
 /**
  * The default JupyterLab application shell.
  */
-const shell: JupyterLabPlugin<ILabShell> = {
+const shell: JupyterClientPlugin<ILabShell> = {
   id: '@jupyterlab/application-extension:shell',
   activate: (app: JupyterClient) => {
     if (!(app.shell instanceof LabShell)) {
@@ -550,7 +550,7 @@ const shell: JupyterLabPlugin<ILabShell> = {
 /**
  * The default JupyterLab application status provider.
  */
-const status: JupyterLabPlugin<ILabStatus> = {
+const status: JupyterClientPlugin<ILabStatus> = {
   id: '@jupyterlab/application-extension:status',
   activate: (app: JupyterClient) => {
     if (!(app instanceof JupyterLab)) {
@@ -565,7 +565,7 @@ const status: JupyterLabPlugin<ILabStatus> = {
 /**
  * The default JupyterLab application information provider.
  */
-const info: JupyterLabPlugin<JupyterLab.IInfo> = {
+const info: JupyterClientPlugin<JupyterLab.IInfo> = {
   id: '@jupyterlab/application-extension:info',
   activate: (app: JupyterClient) => {
     if (!(app instanceof JupyterLab)) {
@@ -580,7 +580,7 @@ const info: JupyterLabPlugin<JupyterLab.IInfo> = {
 /**
  * Export the plugins as default.
  */
-const plugins: JupyterLabPlugin<any>[] = [
+const plugins: JupyterClientPlugin<any>[] = [
   main,
   layout,
   router,

+ 6 - 1
packages/application/src/client.ts

@@ -12,10 +12,15 @@ import { ServiceManager } from '@jupyterlab/services';
 
 import { IIterator } from '@phosphor/algorithm';
 
-import { Application } from '@phosphor/application';
+import { Application, IPlugin } from '@phosphor/application';
 
 import { Widget } from '@phosphor/widgets';
 
+/**
+ * The type for all JupyterClient application plugins.
+ */
+export type JupyterClientPlugin<T> = IPlugin<JupyterClient, T>;
+
 /**
  * The base Jupyter client application class.
  *

+ 2 - 2
packages/application/src/index.ts

@@ -4,9 +4,9 @@
 // Local CSS must be loaded prior to loading other libs.
 import '../style/index.css';
 
-export { JupyterClient } from './client';
+export { JupyterClient, JupyterClientPlugin } from './client';
 
-export { ILabStatus, JupyterLab, JupyterLabPlugin } from './lab';
+export { ILabStatus, JupyterLab } from './lab';
 
 export { ILayoutRestorer, LayoutRestorer } from './layoutrestorer';
 

+ 2 - 9
packages/application/src/lab.ts

@@ -10,15 +10,13 @@ import { Base64ModelFactory } from '@jupyterlab/docregistry';
 
 import { IRenderMime } from '@jupyterlab/rendermime-interfaces';
 
-import { IPlugin } from '@phosphor/application';
-
 import { Token } from '@phosphor/coreutils';
 
 import { DisposableDelegate, IDisposable } from '@phosphor/disposable';
 
 import { ISignal, Signal } from '@phosphor/signaling';
 
-import { JupyterClient } from './client';
+import { JupyterClient, JupyterClientPlugin } from './client';
 
 import { createRendermimePlugins } from './mimerenderers';
 
@@ -72,11 +70,6 @@ export interface ILabStatus {
   setDirty(): IDisposable;
 }
 
-/**
- * The type for all JupyterLab plugins.
- */
-export type JupyterLabPlugin<T> = IPlugin<JupyterClient, T>;
-
 /**
  * JupyterLab is the main application class. It is instantiated once and shared.
  */
@@ -407,6 +400,6 @@ export namespace JupyterLab {
     /**
      * The default export.
      */
-    default: JupyterLabPlugin<any> | JupyterLabPlugin<any>[];
+    default: JupyterClientPlugin<any> | JupyterClientPlugin<any>[];
   }
 }

+ 4 - 4
packages/application/src/mimerenderers.ts

@@ -17,7 +17,7 @@ import { Token } from '@phosphor/coreutils';
 
 import { AttachedProperty } from '@phosphor/properties';
 
-import { JupyterClient, JupyterLabPlugin } from './index';
+import { JupyterClient, JupyterClientPlugin } from './index';
 
 import { ILayoutRestorer } from './layoutrestorer';
 
@@ -40,8 +40,8 @@ export const IMimeDocumentTracker = new Token<IMimeDocumentTracker>(
  */
 export function createRendermimePlugins(
   extensions: IRenderMime.IExtensionModule[]
-): JupyterLabPlugin<void | IMimeDocumentTracker>[] {
-  const plugins: JupyterLabPlugin<void | IMimeDocumentTracker>[] = [];
+): JupyterClientPlugin<void | IMimeDocumentTracker>[] {
+  const plugins: JupyterClientPlugin<void | IMimeDocumentTracker>[] = [];
 
   const namespace = 'application-mimedocuments';
   const tracker = new InstanceTracker<MimeDocument>({ namespace });
@@ -93,7 +93,7 @@ export function createRendermimePlugins(
 export function createRendermimePlugin(
   tracker: InstanceTracker<MimeDocument>,
   item: IRenderMime.IExtension
-): JupyterLabPlugin<void> {
+): JupyterClientPlugin<void> {
   return {
     id: item.id,
     requires: [IRenderMimeRegistry],

+ 9 - 9
packages/apputils-extension/src/index.ts

@@ -8,7 +8,7 @@ import {
   IRouter,
   JupyterClient,
   JupyterLab,
-  JupyterLabPlugin
+  JupyterClientPlugin
 } from '@jupyterlab/application';
 
 import {
@@ -89,7 +89,7 @@ namespace Patterns {
 /**
  * The default command palette extension.
  */
-const palette: JupyterLabPlugin<ICommandPalette> = {
+const palette: JupyterClientPlugin<ICommandPalette> = {
   activate: activatePalette,
   id: '@jupyterlab/apputils-extension:palette',
   provides: ICommandPalette,
@@ -105,7 +105,7 @@ const palette: JupyterLabPlugin<ICommandPalette> = {
  * causes the command palette to be unavailable to other extensions earlier
  * in the application load cycle.
  */
-const paletteRestorer: JupyterLabPlugin<void> = {
+const paletteRestorer: JupyterClientPlugin<void> = {
   activate: restorePalette,
   id: '@jupyterlab/apputils-extension:palette-restorer',
   requires: [ILayoutRestorer],
@@ -115,7 +115,7 @@ const paletteRestorer: JupyterLabPlugin<void> = {
 /**
  * The default setting registry provider.
  */
-const settings: JupyterLabPlugin<ISettingRegistry> = {
+const settings: JupyterClientPlugin<ISettingRegistry> = {
   id: '@jupyterlab/apputils-extension:settings',
   activate: async (app: JupyterClient): Promise<ISettingRegistry> => {
     const connector = app.serviceManager.settings;
@@ -130,7 +130,7 @@ const settings: JupyterLabPlugin<ISettingRegistry> = {
 /**
  * The default theme manager provider.
  */
-const themes: JupyterLabPlugin<IThemeManager> = {
+const themes: JupyterClientPlugin<IThemeManager> = {
   id: '@jupyterlab/apputils-extension:themes',
   requires: [ISettingRegistry, JupyterLab.IInfo, ISplashScreen],
   optional: [ICommandPalette, IMainMenu],
@@ -222,7 +222,7 @@ const themes: JupyterLabPlugin<IThemeManager> = {
 /**
  * The default window name resolver provider.
  */
-const resolver: JupyterLabPlugin<IWindowResolver> = {
+const resolver: JupyterClientPlugin<IWindowResolver> = {
   id: '@jupyterlab/apputils-extension:resolver',
   autoStart: true,
   provides: IWindowResolver,
@@ -263,7 +263,7 @@ const resolver: JupyterLabPlugin<IWindowResolver> = {
 /**
  * The default splash screen provider.
  */
-const splash: JupyterLabPlugin<ISplashScreen> = {
+const splash: JupyterClientPlugin<ISplashScreen> = {
   id: '@jupyterlab/apputils-extension:splash',
   autoStart: true,
   provides: ISplashScreen,
@@ -281,7 +281,7 @@ const splash: JupyterLabPlugin<ISplashScreen> = {
 /**
  * The default state database for storing application state.
  */
-const state: JupyterLabPlugin<IStateDB> = {
+const state: JupyterClientPlugin<IStateDB> = {
   id: '@jupyterlab/apputils-extension:state',
   autoStart: true,
   provides: IStateDB,
@@ -549,7 +549,7 @@ const state: JupyterLabPlugin<IStateDB> = {
 /**
  * Export the plugins as default.
  */
-const plugins: JupyterLabPlugin<any>[] = [
+const plugins: JupyterClientPlugin<any>[] = [
   palette,
   paletteRestorer,
   resolver,

+ 5 - 5
packages/codemirror-extension/src/index.ts

@@ -8,7 +8,7 @@ import { Menu } from '@phosphor/widgets';
 import {
   ILabShell,
   JupyterClient,
-  JupyterLabPlugin
+  JupyterClientPlugin
 } from '@jupyterlab/application';
 
 import { IMainMenu, IEditMenu } from '@jupyterlab/mainmenu';
@@ -50,7 +50,7 @@ namespace CommandIDs {
 /**
  * The editor services.
  */
-const services: JupyterLabPlugin<IEditorServices> = {
+const services: JupyterClientPlugin<IEditorServices> = {
   id: '@jupyterlab/codemirror-extension:services',
   provides: IEditorServices,
   activate: activateEditorServices
@@ -59,7 +59,7 @@ const services: JupyterLabPlugin<IEditorServices> = {
 /**
  * The editor commands.
  */
-const commands: JupyterLabPlugin<void> = {
+const commands: JupyterClientPlugin<void> = {
   id: '@jupyterlab/codemirror-extension:commands',
   requires: [IEditorTracker, IMainMenu, ISettingRegistry, ILabShell],
   activate: activateEditorCommands,
@@ -69,7 +69,7 @@ const commands: JupyterLabPlugin<void> = {
 /**
  * The JupyterLab plugin for the EditorSyntax status item.
  */
-export const editorSyntaxStatus: JupyterLabPlugin<void> = {
+export const editorSyntaxStatus: JupyterClientPlugin<void> = {
   id: '@jupyterlab/codemirror-extension:editor-syntax-status',
   autoStart: true,
   requires: [IStatusBar, IEditorTracker, ILabShell],
@@ -106,7 +106,7 @@ export const editorSyntaxStatus: JupyterLabPlugin<void> = {
 /**
  * Export the plugins as default.
  */
-const plugins: JupyterLabPlugin<any>[] = [
+const plugins: JupyterClientPlugin<any>[] = [
   commands,
   services,
   editorSyntaxStatus

+ 11 - 6
packages/completer-extension/src/index.ts

@@ -1,7 +1,7 @@
 // Copyright (c) Jupyter Development Team.
 // Distributed under the terms of the Modified BSD License.
 
-import { JupyterClient, JupyterLabPlugin } from '@jupyterlab/application';
+import { JupyterClient, JupyterClientPlugin } from '@jupyterlab/application';
 
 import {
   CompleterModel,
@@ -48,7 +48,7 @@ namespace CommandIDs {
 /**
  * A plugin providing code completion for editors.
  */
-const manager: JupyterLabPlugin<ICompletionManager> = {
+const manager: JupyterClientPlugin<ICompletionManager> = {
   id: '@jupyterlab/completer-extension:manager',
   autoStart: true,
   provides: ICompletionManager,
@@ -122,7 +122,7 @@ const manager: JupyterLabPlugin<ICompletionManager> = {
 /**
  * An extension that registers consoles for code completion.
  */
-const consoles: JupyterLabPlugin<void> = {
+const consoles: JupyterClientPlugin<void> = {
   id: '@jupyterlab/completer-extension:consoles',
   requires: [ICompletionManager, IConsoleTracker],
   autoStart: true,
@@ -183,7 +183,7 @@ const consoles: JupyterLabPlugin<void> = {
 /**
  * An extension that registers notebooks for code completion.
  */
-const notebooks: JupyterLabPlugin<void> = {
+const notebooks: JupyterClientPlugin<void> = {
   id: '@jupyterlab/completer-extension:notebooks',
   requires: [ICompletionManager, INotebookTracker],
   autoStart: true,
@@ -242,7 +242,7 @@ const notebooks: JupyterLabPlugin<void> = {
 /**
  * An extension that registers file editors for completion.
  */
-const files: JupyterLabPlugin<void> = {
+const files: JupyterClientPlugin<void> = {
   id: '@jupyterlab/completer-extension:files',
   requires: [ICompletionManager, IEditorTracker],
   autoStart: true,
@@ -360,5 +360,10 @@ const files: JupyterLabPlugin<void> = {
 /**
  * Export the plugins as default.
  */
-const plugins: JupyterLabPlugin<any>[] = [manager, consoles, notebooks, files];
+const plugins: JupyterClientPlugin<any>[] = [
+  manager,
+  consoles,
+  notebooks,
+  files
+];
 export default plugins;

+ 2 - 2
packages/console-extension/src/foreign.ts

@@ -1,7 +1,7 @@
 // Copyright (c) Jupyter Development Team.
 // Distributed under the terms of the Modified BSD License.
 
-import { JupyterClient, JupyterLabPlugin } from '@jupyterlab/application';
+import { JupyterClient, JupyterClientPlugin } from '@jupyterlab/application';
 
 import { ICommandPalette } from '@jupyterlab/apputils';
 
@@ -19,7 +19,7 @@ import { ReadonlyJSONObject } from '@phosphor/coreutils';
 /**
  * The console widget tracker provider.
  */
-export const foreign: JupyterLabPlugin<void> = {
+export const foreign: JupyterClientPlugin<void> = {
   id: '@jupyterlab/console-extension:foreign',
   requires: [IConsoleTracker],
   optional: [ICommandPalette],

+ 4 - 4
packages/console-extension/src/index.ts

@@ -5,7 +5,7 @@ import {
   ILabStatus,
   ILayoutRestorer,
   JupyterClient,
-  JupyterLabPlugin,
+  JupyterClientPlugin,
   ILabShell
 } from '@jupyterlab/application';
 
@@ -84,7 +84,7 @@ namespace CommandIDs {
 /**
  * The console widget tracker provider.
  */
-const tracker: JupyterLabPlugin<IConsoleTracker> = {
+const tracker: JupyterClientPlugin<IConsoleTracker> = {
   id: '@jupyterlab/console-extension:tracker',
   provides: IConsoleTracker,
   requires: [
@@ -106,7 +106,7 @@ const tracker: JupyterLabPlugin<IConsoleTracker> = {
 /**
  * The console widget content factory.
  */
-const factory: JupyterLabPlugin<ConsolePanel.IContentFactory> = {
+const factory: JupyterClientPlugin<ConsolePanel.IContentFactory> = {
   id: '@jupyterlab/console-extension:factory',
   provides: ConsolePanel.IContentFactory,
   requires: [IEditorServices],
@@ -120,7 +120,7 @@ const factory: JupyterLabPlugin<ConsolePanel.IContentFactory> = {
 /**
  * Export the plugins as the default.
  */
-const plugins: JupyterLabPlugin<any>[] = [factory, tracker, foreign];
+const plugins: JupyterClientPlugin<any>[] = [factory, tracker, foreign];
 export default plugins;
 
 /**

+ 4 - 4
packages/csvviewer-extension/src/index.ts

@@ -4,7 +4,7 @@
 import {
   ILayoutRestorer,
   JupyterClient,
-  JupyterLabPlugin
+  JupyterClientPlugin
 } from '@jupyterlab/application';
 
 import { InstanceTracker, IThemeManager, Dialog } from '@jupyterlab/apputils';
@@ -31,7 +31,7 @@ const FACTORY_TSV = 'TSVTable';
 /**
  * The CSV file handler extension.
  */
-const csv: JupyterLabPlugin<void> = {
+const csv: JupyterClientPlugin<void> = {
   activate: activateCsv,
   id: '@jupyterlab/csvviewer-extension:csv',
   requires: [ILayoutRestorer, IThemeManager, IMainMenu],
@@ -41,7 +41,7 @@ const csv: JupyterLabPlugin<void> = {
 /**
  * The TSV file handler extension.
  */
-const tsv: JupyterLabPlugin<void> = {
+const tsv: JupyterClientPlugin<void> = {
   activate: activateTsv,
   id: '@jupyterlab/csvviewer-extension:tsv',
   requires: [ILayoutRestorer, IThemeManager, IMainMenu],
@@ -218,7 +218,7 @@ function activateTsv(
 /**
  * Export the plugins as default.
  */
-const plugins: JupyterLabPlugin<any>[] = [csv, tsv];
+const plugins: JupyterClientPlugin<any>[] = [csv, tsv];
 export default plugins;
 
 /**

+ 2 - 2
packages/extensionmanager-extension/src/index.ts

@@ -4,7 +4,7 @@
 import {
   ILayoutRestorer,
   JupyterClient,
-  JupyterLabPlugin,
+  JupyterClientPlugin,
   ILabShell
 } from '@jupyterlab/application';
 
@@ -30,7 +30,7 @@ namespace CommandIDs {
 /**
  * The extension manager plugin.
  */
-const plugin: JupyterLabPlugin<void> = {
+const plugin: JupyterClientPlugin<void> = {
   id: '@jupyterlab/extensionmanager-extension:plugin',
   autoStart: true,
   requires: [ISettingRegistry, ILayoutRestorer, ILabShell],

+ 2 - 2
packages/faq-extension/src/index.ts

@@ -5,7 +5,7 @@ import {
   ILabShell,
   ILayoutRestorer,
   JupyterClient,
-  JupyterLabPlugin
+  JupyterClientPlugin
 } from '@jupyterlab/application';
 
 import {
@@ -30,7 +30,7 @@ namespace CommandIDs {
 /**
  * The FAQ page extension.
  */
-const plugin: JupyterLabPlugin<void> = {
+const plugin: JupyterClientPlugin<void> = {
   activate,
   id: '@jupyterlab/faq-extension:plugin',
   requires: [ICommandPalette, ILayoutRestorer, IRenderMimeRegistry],

+ 6 - 6
packages/filebrowser-extension/src/index.ts

@@ -5,7 +5,7 @@ import {
   ILabShell,
   ILayoutRestorer,
   JupyterClient,
-  JupyterLabPlugin
+  JupyterClientPlugin
 } from '@jupyterlab/application';
 
 import {
@@ -97,7 +97,7 @@ namespace CommandIDs {
 /**
  * The default file browser extension.
  */
-const browser: JupyterLabPlugin<void> = {
+const browser: JupyterClientPlugin<void> = {
   activate: activateBrowser,
   id: '@jupyterlab/filebrowser-extension:browser',
   requires: [
@@ -113,7 +113,7 @@ const browser: JupyterLabPlugin<void> = {
 /**
  * The default file browser factory provider.
  */
-const factory: JupyterLabPlugin<IFileBrowserFactory> = {
+const factory: JupyterClientPlugin<IFileBrowserFactory> = {
   activate: activateFactory,
   id: '@jupyterlab/filebrowser-extension:factory',
   provides: IFileBrowserFactory,
@@ -131,7 +131,7 @@ const factory: JupyterLabPlugin<IFileBrowserFactory> = {
  * /user-redirect URL for JupyterHub), disable this plugin and replace it
  * with another implementation.
  */
-const shareFile: JupyterLabPlugin<void> = {
+const shareFile: JupyterClientPlugin<void> = {
   activate: activateShareFile,
   id: '@jupyterlab/filebrowser-extension:share-file',
   requires: [IFileBrowserFactory],
@@ -141,7 +141,7 @@ const shareFile: JupyterLabPlugin<void> = {
 /**
  * A plugin providing file upload status.
  */
-export const fileUploadStatus: JupyterLabPlugin<void> = {
+export const fileUploadStatus: JupyterClientPlugin<void> = {
   id: '@jupyterlab/filebrowser-extension:file-upload-status',
   autoStart: true,
   requires: [IStatusBar, IFileBrowserFactory],
@@ -176,7 +176,7 @@ const namespace = 'filebrowser';
 /**
  * Export the plugins as default.
  */
-const plugins: JupyterLabPlugin<any>[] = [
+const plugins: JupyterClientPlugin<any>[] = [
   factory,
   browser,
   shareFile,

+ 4 - 4
packages/fileeditor-extension/src/index.ts

@@ -5,7 +5,7 @@ import {
   ILabShell,
   ILayoutRestorer,
   JupyterClient,
-  JupyterLabPlugin
+  JupyterClientPlugin
 } from '@jupyterlab/application';
 
 import { ICommandPalette, InstanceTracker } from '@jupyterlab/apputils';
@@ -94,7 +94,7 @@ namespace CommandIDs {
 /**
  * The editor tracker extension.
  */
-const plugin: JupyterLabPlugin<IEditorTracker> = {
+const plugin: JupyterClientPlugin<IEditorTracker> = {
   activate,
   id: '@jupyterlab/fileeditor-extension:plugin',
   requires: [
@@ -114,7 +114,7 @@ const plugin: JupyterLabPlugin<IEditorTracker> = {
  * A plugin that provides a status item allowing the user to
  * switch tabs vs spaces and tab widths for text editors.
  */
-export const tabSpaceStatus: JupyterLabPlugin<void> = {
+export const tabSpaceStatus: JupyterClientPlugin<void> = {
   id: '@jupyterlab/fileeditor-extension:tab-space-status',
   autoStart: true,
   requires: [IStatusBar, IEditorTracker, ISettingRegistry, ILabShell],
@@ -183,7 +183,7 @@ export const tabSpaceStatus: JupyterLabPlugin<void> = {
 /**
  * Export the plugins as default.
  */
-const plugins: JupyterLabPlugin<any>[] = [plugin, tabSpaceStatus];
+const plugins: JupyterClientPlugin<any>[] = [plugin, tabSpaceStatus];
 export default plugins;
 
 /**

+ 2 - 2
packages/help-extension/src/index.tsx

@@ -5,7 +5,7 @@ import {
   ILayoutRestorer,
   JupyterClient,
   JupyterLab,
-  JupyterLabPlugin
+  JupyterClientPlugin
 } from '@jupyterlab/application';
 
 import {
@@ -88,7 +88,7 @@ RESOURCES.sort((a: any, b: any) => {
 /**
  * The help handler extension.
  */
-const plugin: JupyterLabPlugin<void> = {
+const plugin: JupyterClientPlugin<void> = {
   activate,
   id: '@jupyterlab/help-extension:plugin',
   requires: [JupyterLab.IInfo, IMainMenu],

+ 2 - 2
packages/imageviewer-extension/src/index.ts

@@ -5,7 +5,7 @@ import {
   ILabShell,
   ILayoutRestorer,
   JupyterClient,
-  JupyterLabPlugin
+  JupyterClientPlugin
 } from '@jupyterlab/application';
 
 import { ICommandPalette, InstanceTracker } from '@jupyterlab/apputils';
@@ -52,7 +52,7 @@ const FACTORY = 'Image';
 /**
  * The image file handler extension.
  */
-const plugin: JupyterLabPlugin<IImageTracker> = {
+const plugin: JupyterClientPlugin<IImageTracker> = {
   activate,
   id: '@jupyterlab/imageviewer-extension:plugin',
   provides: IImageTracker,

+ 5 - 5
packages/inspector-extension/src/index.ts

@@ -5,7 +5,7 @@ import {
   ILabShell,
   ILayoutRestorer,
   JupyterClient,
-  JupyterLabPlugin
+  JupyterClientPlugin
 } from '@jupyterlab/application';
 
 import {
@@ -37,7 +37,7 @@ namespace CommandIDs {
 /**
  * A service providing code introspection.
  */
-const inspector: JupyterLabPlugin<IInspector> = {
+const inspector: JupyterClientPlugin<IInspector> = {
   id: '@jupyterlab/inspector-extension:inspector',
   optional: [ICommandPalette, ILauncher, ILayoutRestorer],
   provides: IInspector,
@@ -129,7 +129,7 @@ const inspector: JupyterLabPlugin<IInspector> = {
 /**
  * An extension that registers consoles for inspection.
  */
-const consoles: JupyterLabPlugin<void> = {
+const consoles: JupyterClientPlugin<void> = {
   id: '@jupyterlab/inspector-extension:consoles',
   requires: [IInspector, IConsoleTracker, ILabShell],
   autoStart: true,
@@ -190,7 +190,7 @@ const consoles: JupyterLabPlugin<void> = {
 /**
  * An extension that registers notebooks for inspection.
  */
-const notebooks: JupyterLabPlugin<void> = {
+const notebooks: JupyterClientPlugin<void> = {
   id: '@jupyterlab/inspector-extension:notebooks',
   requires: [IInspector, INotebookTracker, ILabShell],
   autoStart: true,
@@ -251,5 +251,5 @@ const notebooks: JupyterLabPlugin<void> = {
 /**
  * Export the plugins as default.
  */
-const plugins: JupyterLabPlugin<any>[] = [inspector, consoles, notebooks];
+const plugins: JupyterClientPlugin<any>[] = [inspector, consoles, notebooks];
 export default plugins;

+ 2 - 2
packages/launcher-extension/src/index.ts

@@ -4,7 +4,7 @@
 import {
   ILabShell,
   JupyterClient,
-  JupyterLabPlugin
+  JupyterClientPlugin
 } from '@jupyterlab/application';
 
 import { ICommandPalette, MainAreaWidget } from '@jupyterlab/apputils';
@@ -29,7 +29,7 @@ namespace CommandIDs {
 /**
  * A service providing an interface to the the launcher.
  */
-const plugin: JupyterLabPlugin<ILauncher> = {
+const plugin: JupyterClientPlugin<ILauncher> = {
   activate,
   id: '@jupyterlab/launcher-extension:plugin',
   requires: [ICommandPalette, ILabShell],

+ 2 - 2
packages/mainmenu-extension/src/index.ts

@@ -10,7 +10,7 @@ import { Menu, Widget } from '@phosphor/widgets';
 import {
   ILabShell,
   JupyterClient,
-  JupyterLabPlugin
+  JupyterClientPlugin
 } from '@jupyterlab/application';
 
 import { ICommandPalette, showDialog, Dialog } from '@jupyterlab/apputils';
@@ -115,7 +115,7 @@ export namespace CommandIDs {
 /**
  * A service providing an interface to the main menu.
  */
-const plugin: JupyterLabPlugin<IMainMenu> = {
+const plugin: JupyterClientPlugin<IMainMenu> = {
   id: '@jupyterlab/mainmenu-extension:plugin',
   requires: [ICommandPalette],
   optional: [IInspector, ILabShell],

+ 2 - 2
packages/mathjax2-extension/src/index.ts

@@ -3,7 +3,7 @@
 | Distributed under the terms of the Modified BSD License.
 |----------------------------------------------------------------------------*/
 
-import { JupyterLabPlugin } from '@jupyterlab/application';
+import { JupyterClientPlugin } from '@jupyterlab/application';
 
 import { PageConfig } from '@jupyterlab/coreutils';
 
@@ -14,7 +14,7 @@ import { MathJaxTypesetter } from '@jupyterlab/mathjax2';
 /**
  * The MathJax latexTypesetter plugin.
  */
-const plugin: JupyterLabPlugin<ILatexTypesetter> = {
+const plugin: JupyterClientPlugin<ILatexTypesetter> = {
   id: '@jupyterlab/mathjax2-extension:plugin',
   autoStart: true,
   provides: ILatexTypesetter,

+ 7 - 7
packages/notebook-extension/src/index.ts

@@ -5,7 +5,7 @@ import {
   ILabShell,
   ILayoutRestorer,
   JupyterClient,
-  JupyterLabPlugin
+  JupyterClientPlugin
 } from '@jupyterlab/application';
 
 import {
@@ -246,7 +246,7 @@ const FORMAT_LABEL: { [k: string]: string } = {
 /**
  * The notebook widget tracker provider.
  */
-const trackerPlugin: JupyterLabPlugin<INotebookTracker> = {
+const trackerPlugin: JupyterClientPlugin<INotebookTracker> = {
   id: '@jupyterlab/notebook-extension:tracker',
   provides: INotebookTracker,
   requires: [
@@ -267,7 +267,7 @@ const trackerPlugin: JupyterLabPlugin<INotebookTracker> = {
 /**
  * The notebook cell factory provider.
  */
-const factory: JupyterLabPlugin<NotebookPanel.IContentFactory> = {
+const factory: JupyterClientPlugin<NotebookPanel.IContentFactory> = {
   id: '@jupyterlab/notebook-extension:factory',
   provides: NotebookPanel.IContentFactory,
   requires: [IEditorServices],
@@ -281,7 +281,7 @@ const factory: JupyterLabPlugin<NotebookPanel.IContentFactory> = {
 /**
  * The cell tools extension.
  */
-const tools: JupyterLabPlugin<ICellTools> = {
+const tools: JupyterClientPlugin<ICellTools> = {
   activate: activateCellTools,
   provides: ICellTools,
   id: '@jupyterlab/notebook-extension:tools',
@@ -292,7 +292,7 @@ const tools: JupyterLabPlugin<ICellTools> = {
 /**
  * A plugin providing a CommandEdit status item.
  */
-export const commandEditItem: JupyterLabPlugin<void> = {
+export const commandEditItem: JupyterClientPlugin<void> = {
   id: '@jupyterlab/notebook-extension:mode-status',
   autoStart: true,
   requires: [IStatusBar, INotebookTracker, ILabShell],
@@ -325,7 +325,7 @@ export const commandEditItem: JupyterLabPlugin<void> = {
 /**
  * A plugin that adds a notebook trust status item to the status bar.
  */
-export const notebookTrustItem: JupyterLabPlugin<void> = {
+export const notebookTrustItem: JupyterClientPlugin<void> = {
   id: '@jupyterlab/notebook-extension:trust-status',
   autoStart: true,
   requires: [IStatusBar, INotebookTracker, ILabShell],
@@ -361,7 +361,7 @@ export const notebookTrustItem: JupyterLabPlugin<void> = {
 /**
  * Export the plugins as default.
  */
-const plugins: JupyterLabPlugin<any>[] = [
+const plugins: JupyterClientPlugin<any>[] = [
   factory,
   trackerPlugin,
   tools,

+ 2 - 2
packages/rendermime-extension/src/index.ts

@@ -3,7 +3,7 @@
 | Distributed under the terms of the Modified BSD License.
 |----------------------------------------------------------------------------*/
 
-import { JupyterClient, JupyterLabPlugin } from '@jupyterlab/application';
+import { JupyterClient, JupyterClientPlugin } from '@jupyterlab/application';
 
 import { IDocumentManager } from '@jupyterlab/docmanager';
 
@@ -21,7 +21,7 @@ namespace CommandIDs {
 /**
  * A plugin providing a rendermime registry.
  */
-const plugin: JupyterLabPlugin<RenderMimeRegistry> = {
+const plugin: JupyterClientPlugin<RenderMimeRegistry> = {
   id: '@jupyterlab/rendermime-extension:plugin',
   requires: [IDocumentManager],
   optional: [ILatexTypesetter],

+ 2 - 2
packages/running-extension/src/index.ts

@@ -5,7 +5,7 @@ import {
   ILabShell,
   ILayoutRestorer,
   JupyterClient,
-  JupyterLabPlugin
+  JupyterClientPlugin
 } from '@jupyterlab/application';
 
 import { RunningSessions } from '@jupyterlab/running';
@@ -13,7 +13,7 @@ import { RunningSessions } from '@jupyterlab/running';
 /**
  * The default running sessions extension.
  */
-const plugin: JupyterLabPlugin<void> = {
+const plugin: JupyterClientPlugin<void> = {
   activate,
   id: '@jupyterlab/running-extension:plugin',
   requires: [ILayoutRestorer, ILabShell],

+ 2 - 2
packages/settingeditor-extension/src/index.ts

@@ -7,7 +7,7 @@ import {
   ILabShell,
   ILayoutRestorer,
   JupyterClient,
-  JupyterLabPlugin
+  JupyterClientPlugin
 } from '@jupyterlab/application';
 
 import {
@@ -43,7 +43,7 @@ namespace CommandIDs {
 /**
  * The default setting editor extension.
  */
-const plugin: JupyterLabPlugin<ISettingEditorTracker> = {
+const plugin: JupyterClientPlugin<ISettingEditorTracker> = {
   id: '@jupyterlab/settingeditor-extension:plugin',
   requires: [
     ILayoutRestorer,

+ 4 - 4
packages/shortcuts-extension/src/index.ts

@@ -1,7 +1,7 @@
 // Copyright (c) Jupyter Development Team.
 // Distributed under the terms of the Modified BSD License.
 
-import { JupyterClient, JupyterLabPlugin } from '@jupyterlab/application';
+import { JupyterClient, JupyterClientPlugin } from '@jupyterlab/application';
 
 import { ISettingRegistry, SettingRegistry } from '@jupyterlab/coreutils';
 
@@ -26,7 +26,7 @@ const RECORD_SEPARATOR = String.fromCharCode(30);
  * them to the new keyboard shortcuts plugin below before removing the old
  * shortcuts.
  */
-const plugin: JupyterLabPlugin<void> = {
+const plugin: JupyterClientPlugin<void> = {
   id: '@jupyterlab/shortcuts-extension:plugin',
   requires: [ISettingRegistry],
   activate: async (app: JupyterClient, registry: ISettingRegistry) => {
@@ -135,7 +135,7 @@ const plugin: JupyterLabPlugin<void> = {
  * (`'*'`) selector. For almost any use case where a global keyboard shortcut is
  * required, using the `'body'` selector is more appropriate.
  */
-const shortcuts: JupyterLabPlugin<void> = {
+const shortcuts: JupyterClientPlugin<void> = {
   id: '@jupyterlab/shortcuts-extension:shortcuts',
   requires: [ISettingRegistry],
   activate: async (app: JupyterClient, registry: ISettingRegistry) => {
@@ -244,7 +244,7 @@ List of Keyboard Shortcuts`;
 /**
  * Export the plugins as default.
  */
-const plugins: JupyterLabPlugin<any>[] = [plugin, shortcuts];
+const plugins: JupyterClientPlugin<any>[] = [plugin, shortcuts];
 
 export default plugins;
 

+ 7 - 7
packages/statusbar-extension/src/index.ts

@@ -7,7 +7,7 @@ import '../style/index.css';
 import {
   ILabShell,
   JupyterClient,
-  JupyterLabPlugin
+  JupyterClientPlugin
 } from '@jupyterlab/application';
 
 import { IClientSession } from '@jupyterlab/apputils';
@@ -46,7 +46,7 @@ export const STATUSBAR_PLUGIN_ID = '@jupyterlab/statusbar-extension:plugin';
 /**
  * Initialization data for the statusbar extension.
  */
-const statusBar: JupyterLabPlugin<IStatusBar> = {
+const statusBar: JupyterClientPlugin<IStatusBar> = {
   id: STATUSBAR_PLUGIN_ID,
   provides: IStatusBar,
   autoStart: true,
@@ -70,7 +70,7 @@ const statusBar: JupyterLabPlugin<IStatusBar> = {
 /**
  * A plugin that provides a kernel status item to the status bar.
  */
-export const kernelStatus: JupyterLabPlugin<void> = {
+export const kernelStatus: JupyterClientPlugin<void> = {
   id: '@jupyterlab/statusbar-extension:kernel-status',
   autoStart: true,
   requires: [IStatusBar, INotebookTracker, IConsoleTracker, ILabShell],
@@ -147,7 +147,7 @@ export const kernelStatus: JupyterLabPlugin<void> = {
 /**
  * A plugin providing a line/column status item to the application.
  */
-export const lineColItem: JupyterLabPlugin<void> = {
+export const lineColItem: JupyterClientPlugin<void> = {
   id: '@jupyterlab/statusbar-extension:line-col-status',
   autoStart: true,
   requires: [
@@ -240,7 +240,7 @@ export const lineColItem: JupyterLabPlugin<void> = {
  * This plugin will not work unless the memory usage server extension
  * is installed.
  */
-export const memoryUsageItem: JupyterLabPlugin<void> = {
+export const memoryUsageItem: JupyterClientPlugin<void> = {
   id: '@jupyterlab/statusbar-extension:memory-usage-status',
   autoStart: true,
   requires: [IStatusBar],
@@ -264,7 +264,7 @@ export const memoryUsageItem: JupyterLabPlugin<void> = {
  * A plugin providing running terminals and sessions information
  * to the status bar.
  */
-export const runningSessionsItem: JupyterLabPlugin<void> = {
+export const runningSessionsItem: JupyterClientPlugin<void> = {
   id: '@jupyterlab/statusbar-extension:running-sessions-status',
   autoStart: true,
   requires: [IStatusBar, ILabShell],
@@ -285,7 +285,7 @@ export const runningSessionsItem: JupyterLabPlugin<void> = {
   }
 };
 
-const plugins: JupyterLabPlugin<any>[] = [
+const plugins: JupyterClientPlugin<any>[] = [
   statusBar,
   lineColItem,
   kernelStatus,

+ 9 - 7
packages/tabmanager-extension/src/index.ts

@@ -5,7 +5,7 @@ import {
   ILabShell,
   ILayoutRestorer,
   JupyterClient,
-  JupyterLabPlugin
+  JupyterClientPlugin
 } from '@jupyterlab/application';
 
 import { each } from '@phosphor/algorithm';
@@ -17,18 +17,21 @@ import '../style/index.css';
 /**
  * The default tab manager extension.
  */
-const plugin: JupyterLabPlugin<void> = {
+const plugin: JupyterClientPlugin<void> = {
   id: '@jupyterlab/tabmanager-extension:plugin',
   activate: (
     app: JupyterClient,
-    restorer: ILayoutRestorer,
-    labShell: ILabShell | null
+    labShell: ILabShell | null,
+    restorer: ILayoutRestorer | null
   ): void => {
     const { shell } = app;
     const tabs = new TabBar<Widget>({ orientation: 'vertical' });
     const header = document.createElement('header');
 
-    restorer.add(tabs, 'tab-manager');
+    if (restorer) {
+      restorer.add(tabs, 'tab-manager');
+    }
+
     tabs.id = 'tab-manager';
     tabs.title.iconClass = 'jp-TabIcon jp-SideBar-tabIcon';
     tabs.title.caption = 'Open Tabs';
@@ -65,8 +68,7 @@ const plugin: JupyterLabPlugin<void> = {
     });
   },
   autoStart: true,
-  requires: [ILayoutRestorer],
-  optional: [ILabShell]
+  optional: [ILabShell, ILayoutRestorer]
 };
 
 /**

+ 2 - 2
packages/terminal-extension/src/index.ts

@@ -4,7 +4,7 @@
 import {
   ILayoutRestorer,
   JupyterClient,
-  JupyterLabPlugin
+  JupyterClientPlugin
 } from '@jupyterlab/application';
 
 import {
@@ -46,7 +46,7 @@ const TERMINAL_ICON_CLASS = 'jp-TerminalIcon';
 /**
  * The default terminal extension.
  */
-const plugin: JupyterLabPlugin<ITerminalTracker> = {
+const plugin: JupyterClientPlugin<ITerminalTracker> = {
   activate,
   id: '@jupyterlab/terminal-extension:plugin',
   provides: ITerminalTracker,

+ 2 - 2
packages/theme-dark-extension/src/index.ts

@@ -1,14 +1,14 @@
 // Copyright (c) Jupyter Development Team.
 // Distributed under the terms of the Modified BSD License.
 
-import { JupyterClient, JupyterLabPlugin } from '@jupyterlab/application';
+import { JupyterClient, JupyterClientPlugin } from '@jupyterlab/application';
 
 import { IThemeManager } from '@jupyterlab/apputils';
 
 /**
  * A plugin for the Jupyter Dark Theme.
  */
-const plugin: JupyterLabPlugin<void> = {
+const plugin: JupyterClientPlugin<void> = {
   id: '@jupyterlab/theme-dark-extension:plugin',
   requires: [IThemeManager],
   activate: (app: JupyterClient, manager: IThemeManager) => {

+ 2 - 2
packages/theme-light-extension/src/index.ts

@@ -1,14 +1,14 @@
 // Copyright (c) Jupyter Development Team.
 // Distributed under the terms of the Modified BSD License.
 
-import { JupyterClient, JupyterLabPlugin } from '@jupyterlab/application';
+import { JupyterClient, JupyterClientPlugin } from '@jupyterlab/application';
 
 import { IThemeManager } from '@jupyterlab/apputils';
 
 /**
  * A plugin for the Jupyter Light Theme.
  */
-const plugin: JupyterLabPlugin<void> = {
+const plugin: JupyterClientPlugin<void> = {
   id: '@jupyterlab/theme-light-extension:plugin',
   requires: [IThemeManager],
   activate: function(app: JupyterClient, manager: IThemeManager) {

+ 11 - 6
packages/tooltip-extension/src/index.ts

@@ -11,7 +11,7 @@ import { Widget } from '@phosphor/widgets';
 
 import { Text } from '@jupyterlab/coreutils';
 
-import { JupyterClient, JupyterLabPlugin } from '@jupyterlab/application';
+import { JupyterClient, JupyterClientPlugin } from '@jupyterlab/application';
 
 import { CodeEditor } from '@jupyterlab/codeeditor';
 
@@ -41,7 +41,7 @@ namespace CommandIDs {
 /**
  * The main tooltip manager plugin.
  */
-const manager: JupyterLabPlugin<ITooltipManager> = {
+const manager: JupyterClientPlugin<ITooltipManager> = {
   id: '@jupyterlab/tooltip-extension:manager',
   autoStart: true,
   provides: ITooltipManager,
@@ -84,7 +84,7 @@ const manager: JupyterLabPlugin<ITooltipManager> = {
 /**
  * The console tooltip plugin.
  */
-const consoles: JupyterLabPlugin<void> = {
+const consoles: JupyterClientPlugin<void> = {
   id: '@jupyterlab/tooltip-extension:consoles',
   autoStart: true,
   requires: [ITooltipManager, IConsoleTracker],
@@ -119,7 +119,7 @@ const consoles: JupyterLabPlugin<void> = {
 /**
  * The notebook tooltip plugin.
  */
-const notebooks: JupyterLabPlugin<void> = {
+const notebooks: JupyterClientPlugin<void> = {
   id: '@jupyterlab/tooltip-extension:notebooks',
   autoStart: true,
   requires: [ITooltipManager, INotebookTracker],
@@ -154,7 +154,7 @@ const notebooks: JupyterLabPlugin<void> = {
 /**
  * The file editor tooltip plugin.
  */
-const files: JupyterLabPlugin<void> = {
+const files: JupyterClientPlugin<void> = {
   id: '@jupyterlab/tooltip-extension:files',
   autoStart: true,
   requires: [ITooltipManager, IEditorTracker, IRenderMimeRegistry],
@@ -246,7 +246,12 @@ const files: JupyterLabPlugin<void> = {
 /**
  * Export the plugins as default.
  */
-const plugins: JupyterLabPlugin<any>[] = [manager, consoles, notebooks, files];
+const plugins: JupyterClientPlugin<any>[] = [
+  manager,
+  consoles,
+  notebooks,
+  files
+];
 export default plugins;
 
 /**