From a232b7736c7e7db47adab3a65a90c1cfc052c3e8 Mon Sep 17 00:00:00 2001
From: Jack Reed <phillipjreed@gmail.com>
Date: Tue, 8 Oct 2019 18:00:48 -0600
Subject: [PATCH] Update to new manifesto api

---
 .../src/components/CaptionedCanvasThumbnail.test.js  |  2 +-
 __tests__/src/components/GalleryView.test.js         |  2 +-
 .../src/components/GalleryViewThumbnail.test.js      |  2 +-
 __tests__/src/components/OpenSeadragonViewer.test.js |  2 +-
 .../src/components/ThumbnailCanvasGrouping.test.js   |  2 +-
 __tests__/src/components/ThumbnailNavigation.test.js |  2 +-
 .../src/components/WindowSideBarCanvasPanel.test.js  |  2 +-
 __tests__/src/components/WindowViewer.test.js        |  2 +-
 __tests__/src/lib/CanvasWorld.test.js                |  2 +-
 __tests__/src/lib/ManifestoCanvas.test.js            |  2 +-
 __tests__/src/selectors/manifests.test.js            |  2 +-
 package.json                                         |  5 +++--
 src/lib/ManifestoCanvas.js                           |  2 +-
 src/state/actions/annotation.js                      |  2 +-
 src/state/actions/auth.js                            |  2 +-
 src/state/actions/infoResponse.js                    |  4 ++--
 src/state/actions/manifest.js                        |  2 +-
 src/state/actions/search.js                          |  2 +-
 src/state/reducers/accessTokens.js                   |  2 +-
 src/state/selectors/canvases.js                      |  2 +-
 src/state/selectors/manifests.js                     |  5 +++--
 src/state/selectors/searches.js                      |  2 +-
 webpack.config.js                                    | 12 ++++++++++++
 23 files changed, 39 insertions(+), 25 deletions(-)

diff --git a/__tests__/src/components/CaptionedCanvasThumbnail.test.js b/__tests__/src/components/CaptionedCanvasThumbnail.test.js
index fc97e2d16..7cf01ab2d 100644
--- a/__tests__/src/components/CaptionedCanvasThumbnail.test.js
+++ b/__tests__/src/components/CaptionedCanvasThumbnail.test.js
@@ -1,6 +1,6 @@
 import React from 'react';
 import { shallow } from 'enzyme';
-import manifesto from 'manifesto.js';
+import manifesto from 'manifesto.js/dist-esmodule';
 import Typography from '@material-ui/core/Typography';
 import { CaptionedCanvasThumbnail } from '../../../src/components/CaptionedCanvasThumbnail';
 import manifestJson from '../../fixtures/version-2/019.json';
diff --git a/__tests__/src/components/GalleryView.test.js b/__tests__/src/components/GalleryView.test.js
index dfee35e03..4fde53a3c 100644
--- a/__tests__/src/components/GalleryView.test.js
+++ b/__tests__/src/components/GalleryView.test.js
@@ -1,6 +1,6 @@
 import React from 'react';
 import { shallow } from 'enzyme';
-import manifesto from 'manifesto.js';
+import manifesto from 'manifesto.js/dist-esmodule';
 import Paper from '@material-ui/core/Paper';
 import manifestJson from '../../fixtures/version-2/019.json';
 import { GalleryView } from '../../../src/components/GalleryView';
diff --git a/__tests__/src/components/GalleryViewThumbnail.test.js b/__tests__/src/components/GalleryViewThumbnail.test.js
index 9c895fdbf..2e6c0d201 100644
--- a/__tests__/src/components/GalleryViewThumbnail.test.js
+++ b/__tests__/src/components/GalleryViewThumbnail.test.js
@@ -1,6 +1,6 @@
 import React from 'react';
 import { shallow } from 'enzyme';
-import manifesto from 'manifesto.js';
+import manifesto from 'manifesto.js/dist-esmodule';
 import Chip from '@material-ui/core/Chip';
 import Typography from '@material-ui/core/Typography';
 import manifestJson from '../../fixtures/version-2/019.json';
diff --git a/__tests__/src/components/OpenSeadragonViewer.test.js b/__tests__/src/components/OpenSeadragonViewer.test.js
index 41dcf0f0c..97069a356 100644
--- a/__tests__/src/components/OpenSeadragonViewer.test.js
+++ b/__tests__/src/components/OpenSeadragonViewer.test.js
@@ -1,7 +1,7 @@
 import React from 'react';
 import { shallow } from 'enzyme';
 import OpenSeadragon from 'openseadragon';
-import manifesto from 'manifesto.js';
+import manifesto from 'manifesto.js/dist-esmodule';
 import { OpenSeadragonViewer } from '../../../src/components/OpenSeadragonViewer';
 import OpenSeadragonCanvasOverlay from '../../../src/lib/OpenSeadragonCanvasOverlay';
 import Annotation from '../../../src/lib/Annotation';
diff --git a/__tests__/src/components/ThumbnailCanvasGrouping.test.js b/__tests__/src/components/ThumbnailCanvasGrouping.test.js
index fbb4f0b03..402aab350 100644
--- a/__tests__/src/components/ThumbnailCanvasGrouping.test.js
+++ b/__tests__/src/components/ThumbnailCanvasGrouping.test.js
@@ -1,6 +1,6 @@
 import React from 'react';
 import { shallow } from 'enzyme';
-import manifesto from 'manifesto.js';
+import manifesto from 'manifesto.js/dist-esmodule';
 import { ThumbnailCanvasGrouping } from '../../../src/components/ThumbnailCanvasGrouping';
 import CaptionedCanvasThumbnail from '../../../src/containers/CaptionedCanvasThumbnail';
 import CanvasGroupings from '../../../src/lib/CanvasGroupings';
diff --git a/__tests__/src/components/ThumbnailNavigation.test.js b/__tests__/src/components/ThumbnailNavigation.test.js
index e0fa0b41e..f56a0a188 100644
--- a/__tests__/src/components/ThumbnailNavigation.test.js
+++ b/__tests__/src/components/ThumbnailNavigation.test.js
@@ -1,6 +1,6 @@
 import React from 'react';
 import { shallow } from 'enzyme';
-import manifesto from 'manifesto.js';
+import manifesto from 'manifesto.js/dist-esmodule';
 import { ThumbnailNavigation } from '../../../src/components/ThumbnailNavigation';
 import ThumbnailCanvasGrouping from '../../../src/containers/ThumbnailCanvasGrouping';
 import CanvasGroupings from '../../../src/lib/CanvasGroupings';
diff --git a/__tests__/src/components/WindowSideBarCanvasPanel.test.js b/__tests__/src/components/WindowSideBarCanvasPanel.test.js
index 80cdf4b0e..352351e17 100644
--- a/__tests__/src/components/WindowSideBarCanvasPanel.test.js
+++ b/__tests__/src/components/WindowSideBarCanvasPanel.test.js
@@ -3,7 +3,7 @@ import { shallow } from 'enzyme';
 import List from '@material-ui/core/List';
 import ListItem from '@material-ui/core/ListItem';
 import Typography from '@material-ui/core/Typography';
-import manifesto from 'manifesto.js';
+import manifesto from 'manifesto.js/dist-esmodule';
 import { WindowSideBarCanvasPanel } from '../../../src/components/WindowSideBarCanvasPanel';
 import { CanvasThumbnail } from '../../../src/components/CanvasThumbnail';
 import CompanionWindow from '../../../src/containers/CompanionWindow';
diff --git a/__tests__/src/components/WindowViewer.test.js b/__tests__/src/components/WindowViewer.test.js
index df2cd1165..e66d6814e 100644
--- a/__tests__/src/components/WindowViewer.test.js
+++ b/__tests__/src/components/WindowViewer.test.js
@@ -1,6 +1,6 @@
 import React from 'react';
 import { shallow } from 'enzyme';
-import manifesto from 'manifesto.js';
+import manifesto from 'manifesto.js/dist-esmodule';
 import { WindowViewer } from '../../../src/components/WindowViewer';
 import OSDViewer from '../../../src/containers/OpenSeadragonViewer';
 import WindowCanvasNavigationControls from '../../../src/containers/WindowCanvasNavigationControls';
diff --git a/__tests__/src/lib/CanvasWorld.test.js b/__tests__/src/lib/CanvasWorld.test.js
index 642ec590e..2ee550416 100644
--- a/__tests__/src/lib/CanvasWorld.test.js
+++ b/__tests__/src/lib/CanvasWorld.test.js
@@ -1,4 +1,4 @@
-import manifesto from 'manifesto.js';
+import manifesto from 'manifesto.js/dist-esmodule';
 import fixture from '../../fixtures/version-2/019.json';
 import CanvasWorld from '../../../src/lib/CanvasWorld';
 
diff --git a/__tests__/src/lib/ManifestoCanvas.test.js b/__tests__/src/lib/ManifestoCanvas.test.js
index c0811417c..06a5e058d 100644
--- a/__tests__/src/lib/ManifestoCanvas.test.js
+++ b/__tests__/src/lib/ManifestoCanvas.test.js
@@ -1,4 +1,4 @@
-import manifesto from 'manifesto.js';
+import manifesto from 'manifesto.js/dist-esmodule';
 import ManifestoCanvas from '../../../src/lib/ManifestoCanvas';
 import fixture from '../../fixtures/version-2/019.json';
 import v3fixture from '../../fixtures/version-3/001.json';
diff --git a/__tests__/src/selectors/manifests.test.js b/__tests__/src/selectors/manifests.test.js
index 3e4b4d941..fe444de3a 100644
--- a/__tests__/src/selectors/manifests.test.js
+++ b/__tests__/src/selectors/manifests.test.js
@@ -1,4 +1,4 @@
-import manifesto from 'manifesto.js';
+import manifesto from 'manifesto.js/dist-esmodule';
 import manifestFixture001 from '../../fixtures/version-2/001.json';
 import manifestFixture002 from '../../fixtures/version-2/002.json';
 import manifestFixture015 from '../../fixtures/version-2/015.json';
diff --git a/package.json b/package.json
index 6b7690da9..51f1ed68c 100644
--- a/package.json
+++ b/package.json
@@ -43,7 +43,7 @@
     "immutable": "^4.0.0-rc.12",
     "intersection-observer": "^0.7.0",
     "lodash": "^4.17.11",
-    "manifesto.js": "^3.0.11",
+    "manifesto.js": "./manifesto",
     "node-fetch": "^2.6.0",
     "node-sass": "^4.12.0",
     "normalize-url": "^4.2.0",
@@ -67,7 +67,8 @@
     "redux-thunk": "^2.3.0",
     "reselect": "^4.0.0",
     "sass-loader": "^7.1.0",
-    "uuid": "^3.3.2"
+    "uuid": "^3.3.2",
+    "vedavaapi-web": "0.0.7"
   },
   "devDependencies": {
     "@babel/cli": "^7.5.0",
diff --git a/src/lib/ManifestoCanvas.js b/src/lib/ManifestoCanvas.js
index 74a5e324f..633406e59 100644
--- a/src/lib/ManifestoCanvas.js
+++ b/src/lib/ManifestoCanvas.js
@@ -1,5 +1,5 @@
 import flatten from 'lodash/flatten';
-import { Utils } from 'manifesto.js';
+import { Utils } from 'manifesto.js/dist-esmodule/Utils';
 /**
  * ManifestoCanvas - adds additional, testable logic around Manifesto's Canvas
  * https://iiif-commons.github.io/manifesto/classes/_canvas_.manifesto.canvas.html
diff --git a/src/state/actions/annotation.js b/src/state/actions/annotation.js
index ec03963ce..cfc47abbc 100644
--- a/src/state/actions/annotation.js
+++ b/src/state/actions/annotation.js
@@ -1,4 +1,4 @@
-import fetch from 'node-fetch';
+import { fetch } from 'vedavaapi-web';
 import ActionTypes from './action-types';
 
 /**
diff --git a/src/state/actions/auth.js b/src/state/actions/auth.js
index 72b1e2316..7421e173d 100644
--- a/src/state/actions/auth.js
+++ b/src/state/actions/auth.js
@@ -1,4 +1,4 @@
-import { Utils } from 'manifesto.js';
+import { Utils } from 'manifesto.js/dist-esmodule/Utils';
 import ActionTypes from './action-types';
 import { fetchInfoResponse } from './infoResponse';
 
diff --git a/src/state/actions/infoResponse.js b/src/state/actions/infoResponse.js
index 8bbb0977c..22cd9c0f8 100644
--- a/src/state/actions/infoResponse.js
+++ b/src/state/actions/infoResponse.js
@@ -1,5 +1,5 @@
-import fetch from 'node-fetch';
-import { Utils } from 'manifesto.js';
+import { fetch } from 'vedavaapi-web';
+import { Utils } from 'manifesto.js/dist-esmodule/Utils';
 import ActionTypes from './action-types';
 
 /**
diff --git a/src/state/actions/manifest.js b/src/state/actions/manifest.js
index 577a8e4e6..bbfd665ec 100644
--- a/src/state/actions/manifest.js
+++ b/src/state/actions/manifest.js
@@ -1,4 +1,4 @@
-import fetch from 'node-fetch';
+import { fetch } from 'vedavaapi-web';
 import ActionTypes from './action-types';
 
 /**
diff --git a/src/state/actions/search.js b/src/state/actions/search.js
index 358e981fb..403c5b474 100644
--- a/src/state/actions/search.js
+++ b/src/state/actions/search.js
@@ -1,4 +1,4 @@
-import fetch from 'node-fetch';
+import { fetch } from 'vedavaapi-web';
 import {
   getCanvasForAnnotation,
   getCanvas,
diff --git a/src/state/reducers/accessTokens.js b/src/state/reducers/accessTokens.js
index 03ee2bed7..18199d404 100644
--- a/src/state/reducers/accessTokens.js
+++ b/src/state/reducers/accessTokens.js
@@ -1,6 +1,6 @@
 import normalizeUrl from 'normalize-url';
 
-import { Utils } from 'manifesto.js';
+import { Utils } from 'manifesto.js/dist-esmodule/Utils';
 import ActionTypes from '../actions/action-types';
 
 /** */
diff --git a/src/state/selectors/canvases.js b/src/state/selectors/canvases.js
index 62536af90..60c01bc93 100644
--- a/src/state/selectors/canvases.js
+++ b/src/state/selectors/canvases.js
@@ -1,5 +1,5 @@
 import { createSelector } from 'reselect';
-import { Utils } from 'manifesto.js';
+import { Utils } from 'manifesto.js/dist-esmodule/Utils';
 import CanvasGroupings from '../../lib/CanvasGroupings';
 import { getManifestoInstance } from './manifests';
 import { getWindow, getWindowViewType } from './windows';
diff --git a/src/state/selectors/manifests.js b/src/state/selectors/manifests.js
index e6fe70f08..1e233d68a 100644
--- a/src/state/selectors/manifests.js
+++ b/src/state/selectors/manifests.js
@@ -1,11 +1,12 @@
 import { createSelector } from 'reselect';
-import manifesto, { LanguageMap } from 'manifesto.js';
+import { Utils } from 'manifesto.js/dist-esmodule/Utils';
+import { LanguageMap } from 'manifesto.js/dist-esmodule/LanguageMap';
 import ManifestoCanvas from '../../lib/ManifestoCanvas';
 
 /** */
 function createManifestoInstance(json, locale) {
   if (!json) return undefined;
-  return manifesto.create(json, locale ? { locale } : undefined);
+  return Utils.parseManifest(json, locale ? { locale } : undefined);
 }
 
 
diff --git a/src/state/selectors/searches.js b/src/state/selectors/searches.js
index b7db4da53..288f0e563 100644
--- a/src/state/selectors/searches.js
+++ b/src/state/selectors/searches.js
@@ -1,5 +1,5 @@
 import { createSelector } from 'reselect';
-import { LanguageMap } from 'manifesto.js';
+import { LanguageMap } from 'manifesto.js/dist-esmodule/LanguageMap';
 import flatten from 'lodash/flatten';
 import Annotation from '../../lib/Annotation';
 import { getCanvas, getCanvases } from './canvases';
diff --git a/webpack.config.js b/webpack.config.js
index 8e008757c..4d8ced7b8 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -18,6 +18,12 @@ const babelLoaderConfig = {
 const baseConfig = [
   {
     entry: './src/index-core.js',
+    externals: {
+      'fetch-cookie/node-fetch': 'fetchCookieWrapper',
+      'form-data': 'formData',
+      'node-fetch': 'nodeFetch',
+      url: 'nodeUrl',
+    },
     module: {
       rules: [
         babelLoaderConfig,
@@ -32,6 +38,12 @@ const baseConfig = [
   },
   {
     entry: './src/index.js',
+    externals: {
+      'fetch-cookie/node-fetch': 'fetchCookieWrapper',
+      'form-data': 'formData',
+      'node-fetch': 'nodeFetch',
+      url: 'nodeUrl',
+    },
     module: {
       rules: [
         babelLoaderConfig,
-- 
GitLab