diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 00000000..d370b2fb --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es2016", + "jsx": "preserve" + }, + "exclude": ["node_modules", "**/node_modules/*"], + "js-import.excludeFilesToScan": "packages/*/{es,lib,build}/**" +} diff --git a/packages/iiif-graphql/.gitignore b/packages/iiif-graphql/.gitignore new file mode 100644 index 00000000..76710371 --- /dev/null +++ b/packages/iiif-graphql/.gitignore @@ -0,0 +1,5 @@ +/coverage +/dist +/node_modules +npm-debug.log* +/build diff --git a/packages/iiif-graphql/CONTRIBUTING.md b/packages/iiif-graphql/CONTRIBUTING.md new file mode 100644 index 00000000..5d624e51 --- /dev/null +++ b/packages/iiif-graphql/CONTRIBUTING.md @@ -0,0 +1,27 @@ +## Prerequisites + +[Node.js](http://nodejs.org/) >= v4 must be installed. + +## Installation + +- Running `npm install` in the app's root directory will install everything you need for development. + +## Development Server + +- `npm start` will run the app's development server at [http://localhost:3000](http://localhost:3000) with hot module reloading. + +## Running Tests + +- `npm test` will run the tests once. + +- `npm run test:coverage` will run the tests and produce a coverage report in `coverage/`. + +- `npm run test:watch` will run the tests on every change. + +## Building + +- `npm run build` creates a production build by default. + + To create a development build, set the `NODE_ENV` environment variable to `development` while running this command. + +- `npm run clean` will delete built resources. diff --git a/packages/iiif-graphql/README.md b/packages/iiif-graphql/README.md new file mode 100644 index 00000000..7af287b3 --- /dev/null +++ b/packages/iiif-graphql/README.md @@ -0,0 +1,103 @@ +# IIIF Graphql + +IIIF specification through GraphQL over rest. Thats the goal, this is the start. It is a heavy client-side implementation built on top of IIIF Redux, which acts as safe-access and a unified API to both IIIF Presentation 2 and Presentation 3 resources. + +The goal of this library will be to offer both a server implementation and client side implementation. The server implementation will have the option to be hooked up to a non-IIIF data source through a layer over the resolver API for institutions collections. It will also feature an out of the box proxy to content hosted in the IIIF space so you can host your own IIIF GraphQL instance that can query any IIIF content, composed together for building your own applications and tools. + +The client implementation will get better with time, but the main focus is building a single implementation that can work both on the server and on the client. + +## The why + +At the moment the IIIF space is full of duplicate code, multiple solutions to the same problem and lots of already solved problems that are hard to discover. This implementation of GraphQL is intended to become a place to colabourate on solving common problems parsing IIIF data and building a library of GraphQL resolvers and custom queries that can be used quickly in small to large projects. + +## The what + +Heres the dream query: + +```graphql +query getManifest($id: String, $q: String!) { + manifest(id: $id) { + id + label + metadata { + label + value + } + search(query: $q) { + results { + canvasId + contentAsText + selector { + x + y + width + height + } + } + } + canvases { + id + label + thumbnail: thumbnailAtSize(size: 200) { + src + height + width + } + tiledImages { + height + width + tiles + scaleFactor + } + } + } +} +``` + +If you are unfamiliar with GraphQL, the key concept is that they query language descibes a JSON format that you want returned. You can read this query and know what the fields will be and so can predicably start using these fields. + +Reading through this query, you can see we are grabbing some basic properties like `id` and `label` from the manifest. We are also requesting the metadata pairs. This is always an array, so each item in the array will match the format `{label: "str", value: "str"}`. Translation is done automatically using a global context (to be documented). + +The next section is where the power of GraphQL starts coming through, theres a search block that accepts `query` just like the IIIF specification. Behind the scenes this will be doing many things: + +- Checking if the resource has a search service +- Fetching the service +- Constructing and executing the search +- Formatting and parsing that back in your desired format + +In addition, because this is using IIIF Redux under the hood, any references (such as targets) in the search results or any request are maintained as logical links. IIIF Redux maintains that graph and makes it query-able here. + +The next section `canvases` is dropping deeper into the graph of the manifest. You can go as deep as you want or need to here. You can see another non-IIIF property in the query `thumbnailAtSize` being assigned to the `thumbnail` property. This is another theoretical extension where some derived data is being reduced into a handful of fields. Under the hood this could be: + +- Finding a thumbnail service +- Finding a thumbnail static image, checking its height/width against your requested height +- Looking for an image service in the annotations + +In the end its goal is to find the best thumbnail given the criteria. This is immediately available in the query language to be reused once created. It can be improved. + +## The how + +Slowly. This is the start of this project that I am working on in my down-time. Currently with IIIF Redux you can use functional composition to create a bunch of queries for IIIF content, but the interface to that is low-level but fail-safe. The goal of IIIF-GraphQL is to be both fail-safe and nice to work with. + +GraphQL and apollo, the library that this is using, has integrations with every Frontend framework under the sun. There is no lock-in with this library, this broadens the developer interest and collabouration. + +## Roadmap + +The road map is not in any particular order. The first goal is a base for collabouration. The second goal is exploring some of the challenges in IIIF-space using GraphQL. + +### v1.0 + +- Fully IIIF compliant GraphQL type definition +- Full compatibility with Presentation 2 over a presentation 3 query interface +- Extension model to start adding derived fields to queries +- v1.0 IIIF explorer using GraphQL +- Cookbook of GraphQL queries for common UI interfaces + +### v1.x + +- W3C Annotation compliant GraphQL type definition +- IIIF Image 2.x compliant GraphQL type definition +- IIIF Activity stream compliant GraphQL type definition +- IIIF Discovery integration in GraphQL server (invalidating caches) +- IIIF Authentication compliant GraphQL type defintion +- Authentication extensions diff --git a/packages/iiif-graphql/nwb.config.js b/packages/iiif-graphql/nwb.config.js new file mode 100644 index 00000000..ed71963a --- /dev/null +++ b/packages/iiif-graphql/nwb.config.js @@ -0,0 +1,6 @@ +module.exports = { + type: 'react-app', + babel: { + plugins: ['graphql-tag', require.resolve('babel-plugin-import-graphql')], + }, +}; diff --git a/packages/iiif-graphql/package.json b/packages/iiif-graphql/package.json new file mode 100644 index 00000000..9ca71612 --- /dev/null +++ b/packages/iiif-graphql/package.json @@ -0,0 +1,38 @@ +{ + "name": "iiif-graphql", + "version": "1.0.0", + "description": "Describe iiif-graphql here", + "private": true, + "scripts": { + "build": "nwb build-react-app", + "clean": "nwb clean-app", + "start": "nwb serve-react-app", + "server:dev": "graphpack", + "server:build": "graphpack build", + "test": "echo \"No tests yet\"" + }, + "dependencies": { + "apollo-cache-inmemory": "^1.3.7", + "apollo-client": "^2.4.4", + "apollo-link": "^1.2.3", + "apollo-link-schema": "^1.1.1", + "apollo-link-set-context": "^0.5.4", + "dataloader": "^1.4.0", + "graphql": "^14.0.2", + "graphql-tag": "^2.10.0", + "graphql-tools": "^4.0.2", + "iiif-redux": "1.0.0", + "react": "^16.6.0", + "react-apollo": "^2.2.4", + "react-dom": "^16.6.0" + }, + "devDependencies": { + "babel-plugin-graphql-tag": "^1.6.0", + "babel-plugin-import-graphql": "^2.6.2", + "graphpack": "^1.0.0-alpha.3", + "nwb": "0.19.x" + }, + "author": "", + "license": "MIT", + "repository": "" +} diff --git a/packages/iiif-graphql/public/.gitkeep b/packages/iiif-graphql/public/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/packages/iiif-graphql/src/components/App.js b/packages/iiif-graphql/src/components/App.js new file mode 100644 index 00000000..ff8d711c --- /dev/null +++ b/packages/iiif-graphql/src/components/App.js @@ -0,0 +1,28 @@ +import React, { Component } from 'react'; +import { ApolloProvider } from 'react-apollo'; +import HelloWorld from './HelloWorld'; + +import client from '../graphql/client'; + +class App extends Component { + state = { + client: null, + }; + + async componentWillMount() { + this.setState({ client: await client }); + } + + render() { + if (!this.state.client) { + return 'Loading ...'; + } + return ( + + + + ); + } +} + +export default App; diff --git a/packages/iiif-graphql/src/components/HelloWorld.js b/packages/iiif-graphql/src/components/HelloWorld.js new file mode 100644 index 00000000..43c310b3 --- /dev/null +++ b/packages/iiif-graphql/src/components/HelloWorld.js @@ -0,0 +1,47 @@ +import React, { Component } from 'react'; +import { Query } from 'react-apollo'; +import gql from 'graphql-tag'; + +const queryText = gql` + query { + collection(id: "https://view.nls.uk/collections/7446/74466699.json") { + id + type + label + metadata { + label + value + } + } + manifest(id: "https://wellcomelibrary.org/iiif/b20432033/manifest") { + id + type + label + metadata { + label + value + } + } + } +`; + +class HelloWorld extends Component { + render() { + return ( + + {({ data, loading, error }) => { + if (loading) { + return

Loading

; + } + if (error) { + return

{JSON.stringify(error)}

; + } + + return
{JSON.stringify(data, null, 2)}
; + }} +
+ ); + } +} + +export default HelloWorld; diff --git a/packages/iiif-graphql/src/config.js b/packages/iiif-graphql/src/config.js new file mode 100644 index 00000000..47e7aaa8 --- /dev/null +++ b/packages/iiif-graphql/src/config.js @@ -0,0 +1,7 @@ +import schemaDirectives from './graphql/directives'; + +const config = { + schemaDirectives, +}; + +export default config; diff --git a/packages/iiif-graphql/src/context.js b/packages/iiif-graphql/src/context.js new file mode 100644 index 00000000..d85b0650 --- /dev/null +++ b/packages/iiif-graphql/src/context.js @@ -0,0 +1,77 @@ +import { createStore } from 'iiif-redux'; +import { doesResourceExist } from 'iiif-redux/es/api/dereferenced'; +import { iiifResourceRequestUnknownAsync } from 'iiif-redux/es/spaces/iiif-resource'; +import { mappings as presentation2Mapping } from 'iiif-redux/es/api/2.x'; +import { mappings as presentation3Mapping } from 'iiif-redux/es/api/3.x'; +import DataLoader from 'dataloader'; + +const store = createStore(); + +const iiifLoader = new DataLoader(keys => + Promise.all( + keys.map(id => store.dispatch(iiifResourceRequestUnknownAsync(id))) + ) +); + +function mapping(version) { + if (version === 3) { + return presentation3Mapping; + } + return presentation2Mapping; +} + +function select(selector) { + return selector(store.getState()); +} + +async function loadResource(id, type) { + return await iiifLoader.load(id); +} + +const selectById = (id, type) => { + return state => state.resources[type][id]; +}; + +function resourceExists(id, type) { + return select(doesResourceExist(selectById(id, type), type)); +} + +function fieldExists(id, type, field) { + const value = getFieldValue(id, type, field); + + return typeof value !== 'undefined' && value !== null; +} + +function resourceDereferenced(id, type) {} + +function getFieldValue(id, type, field) { + const version = getPresentationVersionFromResource( + select(selectById(id, type)) + ); + const api = mapping(version)(selectById(id, type)); + const singleField = api[field]; + return select(singleField); +} + +const combinedResolver = (id, type, field) => { + if (!resourceExists(id, type)) { + return loadResource(id, type).then(() => combinedResolver(id, type, field)); + } + if (!fieldExists(id, type, field)) { + if (resourceDereferenced(id, type)) { + return null; + } + return loadResource(id, type).then(() => combinedResolver(id, type, field)); + } + return getFieldValue(id, type, field); +}; + +const context = req => ({ + store, + query: selector => { + return selector(store.getState()); + }, + combinedResolver, +}); + +export default context; diff --git a/packages/iiif-graphql/src/dataloaders/collections.js b/packages/iiif-graphql/src/dataloaders/collections.js new file mode 100644 index 00000000..58282f04 --- /dev/null +++ b/packages/iiif-graphql/src/dataloaders/collections.js @@ -0,0 +1,3 @@ +import DataLoader from 'dataloader'; + +const collectionLoader = new DataLoader({}); diff --git a/packages/iiif-graphql/src/graphql/client.js b/packages/iiif-graphql/src/graphql/client.js new file mode 100644 index 00000000..b3495dbe --- /dev/null +++ b/packages/iiif-graphql/src/graphql/client.js @@ -0,0 +1,30 @@ +import { SchemaLink } from 'apollo-link-schema'; +import { InMemoryCache } from 'apollo-cache-inmemory'; +import SetContextLink from 'apollo-link-set-context'; +import { ApolloLink } from 'apollo-link'; +import { createStore } from 'iiif-redux'; +import ApolloClient from 'apollo-client'; +import schema from './schema'; + +const store = createStore(); + +// const link = ApolloLink.from([ +// consoleLink, +// TestLink, +// new SchemaLink({ schema, context: { store } }), +// ]); + +const client = new ApolloClient({ + link: new SchemaLink({ + schema, + context: { + store, + query: selector => { + return selector(store.getState()); + }, + }, + }), + cache: new InMemoryCache(), +}); + +export default client; diff --git a/packages/iiif-graphql/src/graphql/directives.js b/packages/iiif-graphql/src/graphql/directives.js new file mode 100644 index 00000000..a1e59802 --- /dev/null +++ b/packages/iiif-graphql/src/graphql/directives.js @@ -0,0 +1,35 @@ +import { SchemaDirectiveVisitor } from 'graphql-tools'; +import { defaultFieldResolver } from 'graphql'; + +/** + * This is non functional. + */ +function translate(str, path, locale) { + if (!str) { + return ''; + } + if (typeof str === 'string') { + return str; + } + if (Array.isArray(str)) { + return str && str[0] ? str[0]['@value'] || '' : ''; + } + return str[Object.keys(str)[0]][0] || ''; +} + +class IntlDirective extends SchemaDirectiveVisitor { + visitFieldDefinition(field, details) { + const { resolve = defaultFieldResolver } = field; + field.resolve = async function(...args) { + const context = args[2]; + const defaultText = await resolve.apply(this, args); + // In this example, path would be ["Query", "greeting"]: + const path = [details.objectType.name, field.name]; + return translate(defaultText, path, context.locale); + }; + } +} + +export default { + intl: IntlDirective, +}; diff --git a/packages/iiif-graphql/src/graphql/schema.js b/packages/iiif-graphql/src/graphql/schema.js new file mode 100644 index 00000000..06eea4f0 --- /dev/null +++ b/packages/iiif-graphql/src/graphql/schema.js @@ -0,0 +1,13 @@ +import { makeExecutableSchema } from 'graphql-tools'; + +import typeDefs from '../schema.graphql'; +import resolvers from '../resolvers'; +import schemaDirectives from './directives'; + +const schema = makeExecutableSchema({ + typeDefs, + resolvers, + schemaDirectives, +}); + +export default schema; diff --git a/packages/iiif-graphql/src/index.css b/packages/iiif-graphql/src/index.css new file mode 100644 index 00000000..8f8b7852 --- /dev/null +++ b/packages/iiif-graphql/src/index.css @@ -0,0 +1,8 @@ +html, body, #app { + height: 100%; +} +body { + font-family: sans-serif; + margin: 0; + padding: 0; +} diff --git a/packages/iiif-graphql/src/index.html b/packages/iiif-graphql/src/index.html new file mode 100644 index 00000000..9659423a --- /dev/null +++ b/packages/iiif-graphql/src/index.html @@ -0,0 +1,13 @@ + + + + + + + iiif-graphql + + + +
+ + diff --git a/packages/iiif-graphql/src/index.js b/packages/iiif-graphql/src/index.js new file mode 100644 index 00000000..036d7a64 --- /dev/null +++ b/packages/iiif-graphql/src/index.js @@ -0,0 +1,8 @@ +import './index.css'; + +import React from 'react'; +import { render } from 'react-dom'; + +import App from './components/App'; + +render(, document.querySelector('#app')); diff --git a/packages/iiif-graphql/src/resolvers/index.js b/packages/iiif-graphql/src/resolvers/index.js new file mode 100644 index 00000000..61282f7f --- /dev/null +++ b/packages/iiif-graphql/src/resolvers/index.js @@ -0,0 +1,179 @@ +import { iiifResourceRequestUnknownAsync } from 'iiif-redux/es/spaces/iiif-resource'; +import collection from 'iiif-redux/es/api/collection'; +import manifest from 'iiif-redux/es/api/manifest'; +import { doesResourceExist } from 'iiif-redux/es/api/dereferenced'; +import presentation2Collection from 'iiif-redux/es/api/2.x/collection'; +import presentation3Collection from 'iiif-redux/es/api/3.x/collection'; +import { getSchemaVersionForResource } from 'iiif-redux/es/api/schema-version'; + +// To get this working. +// 1) Single function that goes from ID + FIELD to value +// 2) Data loader that will load a resource if not already loaded (single promise) +// 3) Wrapper function that load a resource if a value doesn't exist (lazy) +// 4) Function that will sort out entities of different types +// 5) Figure out what nested entities will look like in code. +// +// Bugs: +// - Presentation 2 getMemberIds needs to return the schema +// +// Things to note: +// - Only Manifests, Collections and annotation collections may be dereferenced +// - Data loading may result in more than +// +// Single field example +// - Check if resource exists +// - If not, send request and await promise +// - Check if field exists on resource +// - If not, check if dereferenced +// - If not, send request and await promise +// - Return field +// +// Multiple field example +// - All of the above for parent resource +// - Return resources as simple objects with ID field (and schema/type). Maybe? + +const reduxResolver = (typeFunc, stateType) => apiFunc => ( + data, + opt, + context +) => { + return typeFunc(s => s.resources[stateType][data.id], api => api[apiFunc])( + context.store.getState() + ); +}; + +const collectionSelector = api => ({ + id: api.getId, + type: api.getType, + viewingDirection: api.getViewingDirection, + behavior: api.getBehavior, + label: api.getLabel, + metadata: api.getMetadata, + summary: api.getSummary, + thumbnailId: api.getThumbnailId, + thumbnail: api.getThumbnail, + posterCanvasId: api.getPosterCanvasId, + posterCanvas: api.getPosterCanvas, + requiredStatement: api.getRequiredStatement, + rights: api.getRights, + navDate: api.getNavDate, + seeAlsoIds: api.getSeeAlsoIds, + seeAlso: api.getSeeAlso, + serviceIds: api.getServiceIds, + service: api.getService, + logoIds: api.getLogoIds, + logo: api.getLogo, + homepageId: api.getHomepageId, + homepage: api.getHomepage, + renderingIds: api.getRenderingIds, + rendering: api.getRendering, + partOfId: api.getPartOfId, + partOf: api.getPartOf, + itemIds: api.getMemberIds, + items: api.getMembers, + manifestIds: api.getManifestIds, + manifests: api.getManifests, + collectionIds: api.getCollectionIds, + collections: api.getCollections, + annotationIds: api.getAnnotationIds, + annotations: api.getAnnotations, +}); + +const manifestSelector = api => ({ + id: api.getId, + type: api.getType, + viewingDirection: api.getViewingDirection, + behavior: api.getBehavior, + label: api.getLabel, + metadata: api.getMetadata, + summary: api.getSummary, + thumbnailId: api.getThumbnailId, + thumbnail: api.getThumbnail, + posterCanvasId: api.getPosterCanvasId, + posterCanvas: api.getPosterCanvas, + requiredStatement: api.getRequiredStatement, + rights: api.getRights, + navDate: api.getNavDate, + seeAlsoIds: api.getSeeAlsoIds, + seeAlso: api.getSeeAlso, + serviceIds: api.getServiceIds, + service: api.getService, + logoIds: api.getLogoIds, + logo: api.getLogo, + homepageId: api.getHomepageId, + homepage: api.getHomepage, + renderingIds: api.getRenderingIds, + rendering: api.getRendering, + partOfId: api.getPartOfId, + partOf: api.getPartOf, + startId: api.getStartId, + start: api.getStart, + itemIds: api.getItemIds, + items: api.getItems, + canvasIds: api.getCanvasIds, + canvases: api.getCanvases, + structureIds: api.getStructureIds, + structures: api.getStructures, + annotationIds: api.getAnnotationIds, + annotations: api.getAnnotations, +}); + +const collectionResolver = reduxResolver(collection, 'collections'); +const manifestResolver = reduxResolver(manifest, 'manifests'); + +const resolvers = { + Query: { + collection: async (root, args, context, info) => { + const { id } = await context.store.dispatch( + iiifResourceRequestUnknownAsync(args.id) + ); + + return context.query( + collection(s => s.resources.collections[id], collectionSelector) + ); + }, + manifest: async (root, args, context, info) => { + const { id } = await context.store.dispatch( + iiifResourceRequestUnknownAsync(args.id) + ); + return context.query( + manifest(s => s.resources.manifests[id], manifestSelector) + ); + }, + }, + RangeItem: { + __resolveType(obj) { + return obj.schema || obj.type; + }, + }, + CollectionItem: { + __resolveType(obj, context, info) { + const types = { + 'sc:Collection': 'Collection', + 'sc:Manifest': 'Manifest', + }; + return obj.type || types[obj['@type']]; + }, + // label: (obj, context) => context.collectionApi.getLabel(context.store.getState()), + // label: withApi(api => api.getLabel), + }, + + Manifest: { + type: () => 'Manifest', + summary: manifestResolver('getSummary'), + // label: (obj, _, context) => + // context.combinedResolver(obj.id, 'manifest', 'label'), + }, + Collection: { + type: () => 'Collection', + viewingDirection: collectionResolver('getViewingDirection'), + behaviour: collectionResolver('getBehaviour'), + items(obj, _, context) { + console.log(obj); + + return obj.items; + }, + }, +}; + +export default resolvers; diff --git a/packages/iiif-graphql/src/schema.graphql b/packages/iiif-graphql/src/schema.graphql new file mode 100644 index 00000000..60e7c021 --- /dev/null +++ b/packages/iiif-graphql/src/schema.graphql @@ -0,0 +1,286 @@ +directive @intl on FIELD_DEFINITION + +interface CollectionItem { + # Technical + id: String + type: String + viewingDirection: String + behaviour: String + + # Descriptive + label: String @intl + metadata: [Metadata] + summary: String @intl + thumbnail: [ContentResource] + posterCanvas: Canvas + requiredStatement: String @intl + rights: String + navDate: String + + # Linking + seeAlso: [ContentResource] + service: [Service] + logo: [ContentResource] + homepage: ContentResource + rendering: [ContentResource] + partOf: PartOf +} + +type Collection implements CollectionItem { + # Technical + id: String + type: String + viewingDirection: String + behaviour: String + + # Descriptive + label: String @intl + metadata: [Metadata] + summary: String @intl + thumbnail: [ContentResource] + posterCanvas: Canvas + requiredStatement: String @intl + rights: String + navDate: String + + # Linking + seeAlso: [ContentResource] + service: [Service] + logo: [ContentResource] + homepage: ContentResource + rendering: [ContentResource] + partOf: PartOf + + # Structural + items: [CollectionItem] + annotations: [AnnotationPage] +} + +type Manifest implements CollectionItem { + # Technical + id: String + type: String + viewingDirection: String + behaviour: String + + # Descriptive + label: String @intl + metadata: [Metadata] + summary: String @intl + thumbnail: [ContentResource] + posterCanvas: Canvas + requiredStatement: String @intl + rights: String + navDate: String + + # Linking + seeAlso: [ContentResource] + service: [Service] + logo: [ContentResource] + homepage: ContentResource + rendering: [ContentResource] + partOf: PartOf + + # Structural + items: [Canvas] + canvases: [Canvas] + annotations: [AnnotationPage] + structures: [Range] +} + +type Canvas { + # Technical + id: String + type: String + viewingDirection: String + behaviour: String + height: Int + width: Int + duration: Int + + # Descriptive + label: String @intl + metadata: [Metadata] + summary: String @intl + thumbnail: [ContentResource] + posterCanvas: Canvas + requiredStatement: String @intl + rights: String + navDate: String + + # Linking + seeAlso: [ContentResource] + service: [Service] + logo: [ContentResource] + homepage: ContentResource + rendering: [ContentResource] + partOf: PartOf + + # Structural + items: [AnnotationPage] + paintingAnnotations: [AnnotationPage] + annotations: [AnnotationPage] +} + +type Annotation { + # Technical + id: String + type: String + viewingDirection: String + behaviour: String + timeMode: String + + # Descriptive + label: String @intl + metadata: [Metadata] + summary: String @intl + thumbnail: [ContentResource] + requiredStatement: String @intl + rights: String + + # Linking + seeAlso: [ContentResource] + service: [Service] + logo: [ContentResource] + homepage: ContentResource + rendering: [ContentResource] + partOf: PartOf + + # Structural + body: [AnnotationBody] + target: [Selector] +} + +type AnnotationCollection { + # Technical + id: String + type: String + viewingDirection: String + behaviour: String + timeMode: String + + # Descriptive + label: String @intl + metadata: [Metadata] + summary: String @intl + thumbnail: [ContentResource] + requiredStatement: String @intl + rights: String + + # Linking + seeAlso: [ContentResource] + service: [Service] + logo: [ContentResource] + homepage: ContentResource + rendering: [ContentResource] + partOf: PartOf + + # Structural + items: [AnnotationPage] + first: AnnotationPage + last: AnnotationPage +} + +type AnnotationPage { + # Technical + id: String + type: String + viewingDirection: String + behaviour: String + timeMode: String + + # Descriptive + label: String @intl + metadata: [Metadata] + summary: String @intl + thumbnail: [ContentResource] + requiredStatement: String @intl + rights: String + + # Linking + seeAlso: [ContentResource] + service: [Service] + logo: [ContentResource] + homepage: ContentResource + rendering: [ContentResource] + partOf: PartOf + + # Structural + next: AnnotationPage + previous: AnnotationPage + items: [Annotation] + annotations: [Annotation] +} + +type Range { + # Technical + id: String + type: String + viewingDirection: String + behaviour: String + + # Descriptive + label: String @intl + metadata: [Metadata] + summary: String @intl + thumbnail: [ContentResource] + posterCanvas: Canvas + requiredStatement: String @intl + rights: String + navDate: String + + # Linking + seeAlso: [ContentResource] + service: [Service] + logo: [ContentResource] + homepage: ContentResource + rendering: [ContentResource] + partOf: PartOf + start: Canvas + supplementary: AnnotationCollection + + # Structural + items: [RangeItem] + annotations: [AnnotationPage] +} + +type ContentResource { + id: String +} + +union RangeItem = Range | Canvas + +# Maybe union? +type CanvasOrReference { + id: String +} + +type Selector { + id: String +} + +type Metadata { + label: String @intl + value: String @intl +} + +type AnnotationBody { + value: String +} + +type PartOf { + id: String +} + +type Service { + id: String +} + +type Choice { + id: String +} + +type Query { + collection(id: String): Collection + manifest(id: String): Manifest +} diff --git a/packages/iiif-redux/__tests__/api/2.x/annotation-list/descriptive-test.js b/packages/iiif-redux/__tests__/api/2.x/annotation-list/descriptive-test.js index 2b16e95e..28df0f63 100644 --- a/packages/iiif-redux/__tests__/api/2.x/annotation-list/descriptive-test.js +++ b/packages/iiif-redux/__tests__/api/2.x/annotation-list/descriptive-test.js @@ -156,9 +156,9 @@ describe('api/2.x/annotationList/descriptive', () => { describe('getLogo', () => { it('should load logo from annotationList', () => { - expect(getLogo(state)).toEqual( - 'http://example.org/logos/institution1.jpg' - ); + expect(getLogo(state)).toEqual([ + 'http://example.org/logos/institution1.jpg', + ]); }); }); }); diff --git a/packages/iiif-redux/__tests__/api/2.x/annotation/descriptive-test.js b/packages/iiif-redux/__tests__/api/2.x/annotation/descriptive-test.js index 4f846149..a32235a4 100644 --- a/packages/iiif-redux/__tests__/api/2.x/annotation/descriptive-test.js +++ b/packages/iiif-redux/__tests__/api/2.x/annotation/descriptive-test.js @@ -156,9 +156,9 @@ describe('api/2.x/annotation/descriptive', () => { describe('getLogo', () => { it('should load logo from annotation', () => { - expect(getLogo(state)).toEqual( - 'http://example.org/logos/institution1.jpg' - ); + expect(getLogo(state)).toEqual([ + 'http://example.org/logos/institution1.jpg', + ]); }); }); }); diff --git a/packages/iiif-redux/__tests__/api/2.x/canvas/descriptive-test.js b/packages/iiif-redux/__tests__/api/2.x/canvas/descriptive-test.js index d698ab45..cc43a17e 100644 --- a/packages/iiif-redux/__tests__/api/2.x/canvas/descriptive-test.js +++ b/packages/iiif-redux/__tests__/api/2.x/canvas/descriptive-test.js @@ -93,9 +93,9 @@ describe('api/2.x/canvas/descriptive', () => { describe('getLogo', () => { it('should load logo from canvas', () => { - expect(getLogo(state)).toEqual( - 'http://example.org/logos/institution1.jpg' - ); + expect(getLogo(state)).toEqual([ + 'http://example.org/logos/institution1.jpg', + ]); }); }); diff --git a/packages/iiif-redux/__tests__/api/2.x/collection/descriptive-test.js b/packages/iiif-redux/__tests__/api/2.x/collection/descriptive-test.js index 5cfba895..d4a1d82e 100644 --- a/packages/iiif-redux/__tests__/api/2.x/collection/descriptive-test.js +++ b/packages/iiif-redux/__tests__/api/2.x/collection/descriptive-test.js @@ -98,9 +98,9 @@ describe('api/2.x/collection/descriptive', () => { describe('getLogo', () => { it('should load logo from collection', () => { - expect(getLogo(state)).toEqual( - 'http://example.org/logos/institution1.jpg' - ); + expect(getLogo(state)).toEqual([ + 'http://example.org/logos/institution1.jpg', + ]); }); }); diff --git a/packages/iiif-redux/__tests__/api/2.x/external-resource/descriptive-test.js b/packages/iiif-redux/__tests__/api/2.x/external-resource/descriptive-test.js index 9d597a02..9d664511 100644 --- a/packages/iiif-redux/__tests__/api/2.x/external-resource/descriptive-test.js +++ b/packages/iiif-redux/__tests__/api/2.x/external-resource/descriptive-test.js @@ -157,9 +157,9 @@ describe('api/2.x/external-resource/descriptive', () => { describe('getLogo', () => { it('should load logo from externalResource', () => { - expect(getLogo(state)).toEqual( - 'http://example.org/logos/institution1.jpg' - ); + expect(getLogo(state)).toEqual([ + 'http://example.org/logos/institution1.jpg', + ]); }); }); }); diff --git a/packages/iiif-redux/__tests__/api/2.x/iiif/descriptive-test.js b/packages/iiif-redux/__tests__/api/2.x/iiif/descriptive-test.js index 2eb1ff7b..3bdbf274 100644 --- a/packages/iiif-redux/__tests__/api/2.x/iiif/descriptive-test.js +++ b/packages/iiif-redux/__tests__/api/2.x/iiif/descriptive-test.js @@ -104,7 +104,7 @@ describe('api/iiif/descriptive', () => { describe('getLogo', () => { it('should ignore missing logos', () => { - expect(getLogo({})).toEqual(null); + expect(getLogo({})).toEqual([]); }); it('should unwrap service to ID', () => { expect( @@ -118,14 +118,23 @@ describe('api/iiif/descriptive', () => { }, }, }) - ).toEqual('http://example.org/logos/institution1.jpg'); + ).toEqual([ + { + '@id': 'http://example.org/logos/institution1.jpg', + service: { + '@context': 'http://iiif.io/api/image/2/context.json', + '@id': 'http://example.org/service/inst1', + profile: 'http://iiif.io/api/image/2/level2.json', + }, + }, + ]); expect( getLogo({ logo: 'http://example.org/logos/institution1.jpg', }) - ).toEqual('http://example.org/logos/institution1.jpg'); + ).toEqual(['http://example.org/logos/institution1.jpg']); }); - it('should return the first service', () => { + it('should return all images', () => { expect( getLogo({ logo: [ @@ -133,7 +142,10 @@ describe('api/iiif/descriptive', () => { 'http://example.org/logos/institution2.jpg', ], }) - ).toEqual('http://example.org/logos/institution1.jpg'); + ).toEqual([ + 'http://example.org/logos/institution1.jpg', + 'http://example.org/logos/institution2.jpg', + ]); expect( getLogo({ logo: [ @@ -155,7 +167,24 @@ describe('api/iiif/descriptive', () => { }, ], }) - ).toEqual('http://example.org/logos/institution1.jpg'); + ).toEqual([ + { + '@id': 'http://example.org/logos/institution1.jpg', + service: { + '@context': 'http://iiif.io/api/image/2/context.json', + '@id': 'http://example.org/service/inst1', + profile: 'http://iiif.io/api/image/2/level2.json', + }, + }, + { + '@id': 'http://example.org/logos/institution2.jpg', + service: { + '@context': 'http://iiif.io/api/image/2/context.json', + '@id': 'http://example.org/service/inst1', + profile: 'http://iiif.io/api/image/2/level2.json', + }, + }, + ]); }); }); }); diff --git a/packages/iiif-redux/__tests__/api/2.x/image-resource/descriptive-test.js b/packages/iiif-redux/__tests__/api/2.x/image-resource/descriptive-test.js index f1664913..bd946e3d 100644 --- a/packages/iiif-redux/__tests__/api/2.x/image-resource/descriptive-test.js +++ b/packages/iiif-redux/__tests__/api/2.x/image-resource/descriptive-test.js @@ -156,9 +156,9 @@ describe('api/2.x/imageResource/descriptive', () => { describe('getLogo', () => { it('should load logo from imageResource', () => { - expect(getLogo(state)).toEqual( - 'http://example.org/logos/institution1.jpg' - ); + expect(getLogo(state)).toEqual([ + 'http://example.org/logos/institution1.jpg', + ]); }); }); }); diff --git a/packages/iiif-redux/__tests__/api/2.x/manifest/descriptive-test.js b/packages/iiif-redux/__tests__/api/2.x/manifest/descriptive-test.js index a22d2da9..68f407e8 100644 --- a/packages/iiif-redux/__tests__/api/2.x/manifest/descriptive-test.js +++ b/packages/iiif-redux/__tests__/api/2.x/manifest/descriptive-test.js @@ -152,9 +152,9 @@ describe('api/2.x/manifest/descriptive', () => { describe('getLogo', () => { it('should load logo from manifest', () => { - expect(getLogo(state)).toEqual( - 'http://example.org/logos/institution1.jpg' - ); + expect(getLogo(state)).toEqual([ + 'http://example.org/logos/institution1.jpg', + ]); }); }); }); diff --git a/packages/iiif-redux/__tests__/api/2.x/range/descriptive-test.js b/packages/iiif-redux/__tests__/api/2.x/range/descriptive-test.js index 57cd2c64..fa49875b 100644 --- a/packages/iiif-redux/__tests__/api/2.x/range/descriptive-test.js +++ b/packages/iiif-redux/__tests__/api/2.x/range/descriptive-test.js @@ -151,9 +151,9 @@ describe('api/2.x/range/descriptive', () => { describe('getLogo', () => { it('should load logo from range', () => { - expect(getLogo(state)).toEqual( - 'http://example.org/logos/institution1.jpg' - ); + expect(getLogo(state)).toEqual([ + 'http://example.org/logos/institution1.jpg', + ]); }); }); }); diff --git a/packages/iiif-redux/__tests__/api/2.x/sequence/descriptive-test.js b/packages/iiif-redux/__tests__/api/2.x/sequence/descriptive-test.js index fb9e8550..047e8896 100644 --- a/packages/iiif-redux/__tests__/api/2.x/sequence/descriptive-test.js +++ b/packages/iiif-redux/__tests__/api/2.x/sequence/descriptive-test.js @@ -153,9 +153,9 @@ describe('api/2.x/sequence/descriptive', () => { describe('getLogo', () => { it('should load logo from sequence', () => { - expect(getLogo(state)).toEqual( - 'http://example.org/logos/institution1.jpg' - ); + expect(getLogo(state)).toEqual([ + 'http://example.org/logos/institution1.jpg', + ]); }); }); }); diff --git a/packages/iiif-redux/package.json b/packages/iiif-redux/package.json index 11c51c12..b1452735 100644 --- a/packages/iiif-redux/package.json +++ b/packages/iiif-redux/package.json @@ -32,6 +32,7 @@ "redux": "^4.0.0", "redux-actions": "^2.3.0", "redux-saga": "^0.16.0", + "redux-thunk": "^2.3.0", "reselect": "^4.0.0", "striptags": "^3.1.1", "traverse": "^0.6.6", diff --git a/packages/iiif-redux/src/api/2.x/annotation-list.js b/packages/iiif-redux/src/api/2.x/annotation-list.js index 938b1de2..e8b80285 100644 --- a/packages/iiif-redux/src/api/2.x/annotation-list.js +++ b/packages/iiif-redux/src/api/2.x/annotation-list.js @@ -13,6 +13,7 @@ import { import * as linking from './iiif/linking'; import * as paging from './iiif/paging'; import * as structural from './iiif/structural'; +import { standardFieldMappingFactory } from '../../utility/new/standardFieldMappingFactory'; const annotationList = memoize(selector => { /************************************************** @@ -50,7 +51,14 @@ const annotationList = memoize(selector => { const getAttribution = createSelector(selector, descriptive.getAttribution); - const getLogo = createSelector(selector, descriptive.getLogo); + const getLogoIds = createSelector(selector, descriptive.getLogo); + const getLogo = createSelector( + getLogoIds, + getAllImages, + (logoIds, allImages) => { + return logoIds.map(logoId => allImages[logoId] || logoId); + } + ); const getLicense = createSelector(selector, descriptive.getLicense); @@ -166,6 +174,7 @@ const annotationList = memoize(selector => { getDescription, getMetadata, getAttribution, + getLogoIds, getLogo, getLicense, getThumbnail, @@ -198,4 +207,6 @@ const annotationList = memoize(selector => { }; }); +export const mappings = standardFieldMappingFactory(annotationList); + export default annotationList; diff --git a/packages/iiif-redux/src/api/2.x/annotation.js b/packages/iiif-redux/src/api/2.x/annotation.js index cb14af0b..797c53ee 100644 --- a/packages/iiif-redux/src/api/2.x/annotation.js +++ b/packages/iiif-redux/src/api/2.x/annotation.js @@ -12,6 +12,7 @@ import { } from '../all'; import * as linking from './iiif/linking'; import { isImageService } from '../../constants/services'; +import { standardFieldMappingFactory } from '../../utility/new/standardFieldMappingFactory'; const annotation = memoize(selector => { /************************************************** * Technical properties @@ -51,7 +52,14 @@ const annotation = memoize(selector => { const getAttribution = createSelector(selector, descriptive.getAttribution); - const getLogo = createSelector(selector, descriptive.getLogo); + const getLogoIds = createSelector(selector, descriptive.getLogo); + const getLogo = createSelector( + getLogoIds, + getAllImages, + (logoIds, allImages) => { + return logoIds.map(logoId => allImages[logoId] || logoId); + } + ); const getLicense = createSelector(selector, descriptive.getLicense); @@ -169,6 +177,7 @@ const annotation = memoize(selector => { getThumbnail, getAttribution, getLicense, + getLogoIds, getLogo, // Linking getSeeAlso, @@ -192,4 +201,6 @@ const annotation = memoize(selector => { }; }); +export const mappings = standardFieldMappingFactory(annotation); + export default annotation; diff --git a/packages/iiif-redux/src/api/2.x/canvas.js b/packages/iiif-redux/src/api/2.x/canvas.js index de42f6eb..2cc37d4b 100644 --- a/packages/iiif-redux/src/api/2.x/canvas.js +++ b/packages/iiif-redux/src/api/2.x/canvas.js @@ -13,6 +13,7 @@ import { getAllServices, } from '../all'; import { isImageService } from '../../constants/services'; +import { standardFieldMappingFactory } from '../../utility/new/standardFieldMappingFactory'; const canvas = memoize(selector => { /************************************************** @@ -56,7 +57,14 @@ const canvas = memoize(selector => { const getAttribution = createSelector(selector, descriptive.getAttribution); - const getLogo = createSelector(selector, descriptive.getLogo); + const getLogoIds = createSelector(selector, descriptive.getLogo); + const getLogo = createSelector( + getLogoIds, + getAllImages, + (logoIds, allImages) => { + return logoIds.map(logoId => allImages[logoId] || logoId); + } + ); const getLicense = createSelector(selector, descriptive.getLicense); @@ -200,6 +208,7 @@ const canvas = memoize(selector => { getThumbnail, getAttribution, getLicense, + getLogoIds, getLogo, // Linking getWithinIds, @@ -222,4 +231,6 @@ const canvas = memoize(selector => { }; }); +export const mappings = standardFieldMappingFactory(canvas); + export default canvas; diff --git a/packages/iiif-redux/src/api/2.x/collection.js b/packages/iiif-redux/src/api/2.x/collection.js index 067265cc..117ffe7d 100644 --- a/packages/iiif-redux/src/api/2.x/collection.js +++ b/packages/iiif-redux/src/api/2.x/collection.js @@ -16,6 +16,7 @@ import { } from '../all'; import mapById from '../../utility/mapById'; import mapAllById from '../../utility/mapAllById'; +import { standardFieldMappingFactory } from '../../utility/new/standardFieldMappingFactory'; const collection = memoize(selector => { /************************************************** @@ -53,7 +54,14 @@ const collection = memoize(selector => { const getAttribution = createSelector(selector, descriptive.getAttribution); - const getLogo = createSelector(selector, descriptive.getLogo); + const getLogoIds = createSelector(selector, descriptive.getLogo); + const getLogo = createSelector( + getLogoIds, + getAllImages, + (logoIds, allImages) => { + return logoIds.map(logoId => allImages[logoId] || logoId); + } + ); const getLicense = createSelector(selector, descriptive.getLicense); @@ -186,6 +194,8 @@ const collection = memoize(selector => { } ) ); + const getItemIds = getMemberIds; + const getItems = getMembers; return { // Technical @@ -198,6 +208,7 @@ const collection = memoize(selector => { getDescription, getMetadata, getAttribution, + getLogoIds, getLogo, getLicense, getThumbnailId, @@ -234,7 +245,11 @@ const collection = memoize(selector => { getOtherContentIds, getOtherContent, // Other + getItemIds, + getItems, }; }); +export const mappings = standardFieldMappingFactory(collection); + export default collection; diff --git a/packages/iiif-redux/src/api/2.x/external-resource.js b/packages/iiif-redux/src/api/2.x/external-resource.js index d3c51ee5..b12218c8 100644 --- a/packages/iiif-redux/src/api/2.x/external-resource.js +++ b/packages/iiif-redux/src/api/2.x/external-resource.js @@ -9,6 +9,7 @@ import { getAllLayers, getAllServices, } from '../all'; +import { standardFieldMappingFactory } from '../../../es/utility/new/standardFieldMappingFactory'; const externalResource = memoize(selector => { /************************************************** @@ -55,7 +56,14 @@ const externalResource = memoize(selector => { const getAttribution = createSelector(selector, descriptive.getAttribution); - const getLogo = createSelector(selector, descriptive.getLogo); + const getLogoIds = createSelector(selector, descriptive.getLogo); + const getLogo = createSelector( + getLogoIds, + getAllImages, + (logoIds, allImages) => { + return logoIds.map(logoId => allImages[logoId] || logoId); + } + ); const getLicense = createSelector(selector, descriptive.getLicense); @@ -138,6 +146,7 @@ const externalResource = memoize(selector => { getDescription, getMetadata, getAttribution, + getLogoIds, getLogo, getLicense, getThumbnail, @@ -156,4 +165,6 @@ const externalResource = memoize(selector => { }; }); +export const mappings = standardFieldMappingFactory(externalResource); + export default externalResource; diff --git a/packages/iiif-redux/src/api/2.x/iiif/descriptive.js b/packages/iiif-redux/src/api/2.x/iiif/descriptive.js index 48abe4de..16c99b31 100644 --- a/packages/iiif-redux/src/api/2.x/iiif/descriptive.js +++ b/packages/iiif-redux/src/api/2.x/iiif/descriptive.js @@ -26,12 +26,12 @@ const getLicense = resource => { const getLogo = resource => { if (!resource.logo) { - return null; + return []; } if (Array.isArray(resource.logo)) { - return resource.logo[0]['@id'] || resource.logo[0]; + return resource.logo; } - return resource.logo['@id'] || resource.logo; + return [resource.logo]; }; export { diff --git a/packages/iiif-redux/src/api/2.x/image-resource.js b/packages/iiif-redux/src/api/2.x/image-resource.js index 8b0dbe19..ea4974f0 100644 --- a/packages/iiif-redux/src/api/2.x/image-resource.js +++ b/packages/iiif-redux/src/api/2.x/image-resource.js @@ -9,6 +9,7 @@ import { getAllLayers, getAllServices, } from '../all'; +import { standardFieldMappingFactory } from '../../../es/utility/new/standardFieldMappingFactory'; const imageResource = memoize(selector => { /************************************************** @@ -55,7 +56,14 @@ const imageResource = memoize(selector => { const getAttribution = createSelector(selector, descriptive.getAttribution); - const getLogo = createSelector(selector, descriptive.getLogo); + const getLogoIds = createSelector(selector, descriptive.getLogo); + const getLogo = createSelector( + getLogoIds, + getAllImages, + (logoIds, allImages) => { + return logoIds.map(logoId => allImages[logoId] || logoId); + } + ); const getLicense = createSelector(selector, descriptive.getLicense); @@ -138,6 +146,7 @@ const imageResource = memoize(selector => { getDescription, getMetadata, getAttribution, + getLogoIds, getLogo, getLicense, getThumbnail, @@ -156,4 +165,6 @@ const imageResource = memoize(selector => { }; }); +export const mappings = standardFieldMappingFactory(imageResource); + export default imageResource; diff --git a/packages/iiif-redux/src/api/2.x/index.js b/packages/iiif-redux/src/api/2.x/index.js new file mode 100644 index 00000000..d5021a2b --- /dev/null +++ b/packages/iiif-redux/src/api/2.x/index.js @@ -0,0 +1,44 @@ +import annotationList, { + mappings as annotationListMapping, +} from './annotation-list'; +import annotation, { mappings as annotationMapping } from './annotation'; +import canvas, { mappings as canvasMapping } from './canvas'; +import collection, { mappings as collectionMapping } from './collection'; +import externalResource, { + mappings as externalResourceMapping, +} from './external-resource'; +import imageResource, { + mappings as imageResourceMapping, +} from './image-resource'; +import manifest, { mappings as manifestMapping } from './manifest'; +import range, { mappings as rangeMapping } from './range'; +import sequence, { mappings as sequenceMapping } from './sequence'; + +export const mappings = { + annotationList: annotationListMapping, + annotation: annotationMapping, + canvas: canvasMapping, + collection: collectionMapping, + externalResource: externalResourceMapping, + imageResource: imageResourceMapping, + manifest: manifestMapping, + range: rangeMapping, + sequence: sequenceMapping, + + // Aliases. + annotationPage: annotationListMapping, + contentResources: imageResourceMapping, // @todo change when image/external get merged. +}; + +export { + annotationCollection, + annotationList, + annotation, + canvas, + collection, + externalResource, + imageResource, + manifest, + range, + sequence, +}; diff --git a/packages/iiif-redux/src/api/2.x/manifest.js b/packages/iiif-redux/src/api/2.x/manifest.js index 2829cd12..6cc00f1a 100644 --- a/packages/iiif-redux/src/api/2.x/manifest.js +++ b/packages/iiif-redux/src/api/2.x/manifest.js @@ -14,6 +14,7 @@ import { } from '../all'; import * as linking from './iiif/linking'; import * as structural from './iiif/structural'; +import { standardFieldMappingFactory } from '../../utility/new/standardFieldMappingFactory'; const manifest = memoize(selector => { /************************************************** @@ -59,7 +60,15 @@ const manifest = memoize(selector => { const getMetadata = createSelector(selector, descriptive.getMetadata); const getAttribution = createSelector(selector, descriptive.getAttribution); - const getLogo = createSelector(selector, descriptive.getLogo); + + const getLogoIds = createSelector(selector, descriptive.getLogo); + const getLogo = createSelector( + getLogoIds, + getAllImages, + (logoIds, allImages) => { + return logoIds.map(logoId => allImages[logoId] || logoId); + } + ); const getLicense = createSelector(selector, descriptive.getLicense); @@ -196,6 +205,7 @@ const manifest = memoize(selector => { getDescription, getMetadata, getAttribution, + getLogoIds, getLogo, getLicense, getThumbnailId, @@ -225,4 +235,6 @@ const manifest = memoize(selector => { }; }); +export const mappings = standardFieldMappingFactory(manifest); + export default manifest; diff --git a/packages/iiif-redux/src/api/2.x/range.js b/packages/iiif-redux/src/api/2.x/range.js index 27f24b9d..c4d428f4 100644 --- a/packages/iiif-redux/src/api/2.x/range.js +++ b/packages/iiif-redux/src/api/2.x/range.js @@ -12,6 +12,7 @@ import { createSelector } from 'reselect'; import * as descriptive from './iiif/descriptive'; import * as linking from './iiif/linking'; import * as structural from './iiif/structural'; +import { standardFieldMappingFactory } from '../../../es/utility/new/standardFieldMappingFactory'; const range = memoize(selector => { /************************************************** @@ -60,7 +61,14 @@ const range = memoize(selector => { const getAttribution = createSelector(selector, descriptive.getAttribution); - const getLogo = createSelector(selector, descriptive.getLogo); + const getLogoIds = createSelector(selector, descriptive.getLogo); + const getLogo = createSelector( + getLogoIds, + getAllImages, + (logoIds, allImages) => { + return logoIds.map(logoId => allImages[logoId] || logoId); + } + ); const getLicense = createSelector(selector, descriptive.getLicense); @@ -195,6 +203,7 @@ const range = memoize(selector => { getThumbnailId, getAttribution, getLicense, + getLogoIds, getLogo, // linking. @@ -221,4 +230,6 @@ const range = memoize(selector => { }; }); +export const mappings = standardFieldMappingFactory(range); + export default range; diff --git a/packages/iiif-redux/src/api/2.x/sequence.js b/packages/iiif-redux/src/api/2.x/sequence.js index c45d1a72..48585369 100644 --- a/packages/iiif-redux/src/api/2.x/sequence.js +++ b/packages/iiif-redux/src/api/2.x/sequence.js @@ -12,6 +12,7 @@ import { getAllCanvases, getAllImages, } from '../all'; +import { standardFieldMappingFactory } from '../../../es/utility/new/standardFieldMappingFactory'; const sequence = memoize(selector => { /************************************************** @@ -59,7 +60,14 @@ const sequence = memoize(selector => { const getAttribution = createSelector(selector, descriptive.getAttribution); - const getLogo = createSelector(selector, descriptive.getLogo); + const getLogoIds = createSelector(selector, descriptive.getLogo); + const getLogo = createSelector( + getLogoIds, + getAllImages, + (logoIds, allImages) => { + return logoIds.map(logoId => allImages[logoId] || logoId); + } + ); const getLicense = createSelector(selector, descriptive.getLicense); @@ -154,6 +162,7 @@ const sequence = memoize(selector => { getDescription, getMetadata, getAttribution, + getLogoIds, getLogo, getLicense, getThumbnailId, @@ -177,4 +186,6 @@ const sequence = memoize(selector => { }; }); +export const mappings = standardFieldMappingFactory(sequence); + export default sequence; diff --git a/packages/iiif-redux/src/api/3.x/annotation-collection.js b/packages/iiif-redux/src/api/3.x/annotation-collection.js index cbf90044..9f3a8356 100644 --- a/packages/iiif-redux/src/api/3.x/annotation-collection.js +++ b/packages/iiif-redux/src/api/3.x/annotation-collection.js @@ -12,6 +12,7 @@ import { import mapByIdOrId from '../../utility/mapByIdOrId'; import mapAllResources from '../../utility/mapAllResources'; import mapAllById from '../../utility/mapAllById'; +import { standardFieldMappingFactory } from '../../utility/new/standardFieldMappingFactory'; const annotationCollection = memoize(selector => { /** @@ -138,4 +139,6 @@ const annotationCollection = memoize(selector => { }; }); +export const mappings = standardFieldMappingFactory(annotationCollection); + export default annotationCollection; diff --git a/packages/iiif-redux/src/api/3.x/annotation-page.js b/packages/iiif-redux/src/api/3.x/annotation-page.js index fcdb1178..463ce494 100644 --- a/packages/iiif-redux/src/api/3.x/annotation-page.js +++ b/packages/iiif-redux/src/api/3.x/annotation-page.js @@ -14,6 +14,7 @@ import { import mapByIdOrId from '../../utility/mapByIdOrId'; import mapAllResources from '../../utility/mapAllResources'; import mapAllById from '../../utility/mapAllById'; +import { standardFieldMappingFactory } from '../../../es/utility/new/standardFieldMappingFactory'; const annotationPage = memoize(selector => { /** @@ -154,4 +155,6 @@ const annotationPage = memoize(selector => { }; }); +export const mappings = standardFieldMappingFactory(annotationPage); + export default annotationPage; diff --git a/packages/iiif-redux/src/api/3.x/annotation.js b/packages/iiif-redux/src/api/3.x/annotation.js index 2fe93702..9b6fc161 100644 --- a/packages/iiif-redux/src/api/3.x/annotation.js +++ b/packages/iiif-redux/src/api/3.x/annotation.js @@ -15,6 +15,7 @@ import mapByIdOrId from '../../utility/mapByIdOrId'; import mapAllResources from '../../utility/mapAllResources'; import mapAllById from '../../utility/mapAllById'; import mapAllByIdOrId from '../../utility/mapAllByIdOrId'; +import { standardFieldMappingFactory } from '../../../es/utility/new/standardFieldMappingFactory'; const annotation = memoize(selector => { /** @@ -167,4 +168,6 @@ const annotation = memoize(selector => { }; }); +export const mappings = standardFieldMappingFactory(annotation); + export default annotation; diff --git a/packages/iiif-redux/src/api/3.x/canvas.js b/packages/iiif-redux/src/api/3.x/canvas.js index 337db57d..68a1d48d 100644 --- a/packages/iiif-redux/src/api/3.x/canvas.js +++ b/packages/iiif-redux/src/api/3.x/canvas.js @@ -15,6 +15,7 @@ import { import mapByIdOrId from '../../utility/mapByIdOrId'; import mapAllResources from '../../utility/mapAllResources'; import mapAllById from '../../utility/mapAllById'; +import { standardFieldMappingFactory } from '../../utility/new/standardFieldMappingFactory'; const canvas = memoize(selector => { /** @@ -195,4 +196,6 @@ const canvas = memoize(selector => { }; }); +export const mappings = standardFieldMappingFactory(canvas); + export default canvas; diff --git a/packages/iiif-redux/src/api/3.x/collection.js b/packages/iiif-redux/src/api/3.x/collection.js index 74118a22..2fefa405 100644 --- a/packages/iiif-redux/src/api/3.x/collection.js +++ b/packages/iiif-redux/src/api/3.x/collection.js @@ -17,6 +17,7 @@ import mapById from '../../utility/mapById'; import mapAllById from '../../utility/mapAllById'; import mapAllResources from '../../utility/mapAllResources'; import mapByIdOrId from '../../utility/mapByIdOrId'; +import { standardFieldMappingFactory } from '../../../es/utility/new/standardFieldMappingFactory'; const collection = memoize(selector => { /** @@ -219,4 +220,6 @@ const collection = memoize(selector => { }; }); +export const mappings = standardFieldMappingFactory(collection); + export default collection; diff --git a/packages/iiif-redux/src/api/3.x/content-resource.js b/packages/iiif-redux/src/api/3.x/content-resource.js index ecf79658..084648d6 100644 --- a/packages/iiif-redux/src/api/3.x/content-resource.js +++ b/packages/iiif-redux/src/api/3.x/content-resource.js @@ -14,8 +14,9 @@ import { import mapByIdOrId from '../../utility/mapByIdOrId'; import mapAllResources from '../../utility/mapAllResources'; import mapAllById from '../../utility/mapAllById'; +import { standardFieldMappingFactory } from '../../../es/utility/new/standardFieldMappingFactory'; -const canvas = memoize(selector => { +const contentResource = memoize(selector => { /** * Technical properties * @@ -176,4 +177,6 @@ const canvas = memoize(selector => { }; }); -export default canvas; +export const mappings = standardFieldMappingFactory(contentResource); + +export default contentResource; diff --git a/packages/iiif-redux/src/api/3.x/index.js b/packages/iiif-redux/src/api/3.x/index.js new file mode 100644 index 00000000..7aa9326b --- /dev/null +++ b/packages/iiif-redux/src/api/3.x/index.js @@ -0,0 +1,36 @@ +import annotationCollection, { + mappings as annotationCollectionMapping, +} from './annotation-collection'; +import annotationPage, { + mappings as annotationPageMapping, +} from './annotation-page'; +import annotation, { mappings as annotationMapping } from './annotation'; +import canvas, { mappings as canvasMapping } from './canvas'; +import collection, { mappings as collectionMapping } from './collection'; +import contentResource, { + mappings as contentResourceMapping, +} from './content-resource'; +import manifest, { mappings as manifestMapping } from './manifest'; +import range, { mappings as rangeMapping } from './range'; + +export const mappings = { + annotationCollection: annotationCollectionMapping, + annotationPage: annotationPageMapping, + annotation: annotationMapping, + canvas: canvasMapping, + collection: collectionMapping, + contentResource: contentResourceMapping, + manifest: manifestMapping, + range: rangeMapping, +}; + +export { + annotationCollection, + annotationPage, + annotation, + canvas, + collection, + contentResource, + manifest, + range, +}; diff --git a/packages/iiif-redux/src/api/3.x/manifest.js b/packages/iiif-redux/src/api/3.x/manifest.js index 8541553f..878728c8 100644 --- a/packages/iiif-redux/src/api/3.x/manifest.js +++ b/packages/iiif-redux/src/api/3.x/manifest.js @@ -17,6 +17,7 @@ import { import mapByIdOrId from '../../utility/mapByIdOrId'; import mapAllResources from '../../utility/mapAllResources'; import mapAllById from '../../utility/mapAllById'; +import { standardFieldMappingFactory } from '../../../es/utility/new/standardFieldMappingFactory'; const manifest = memoize(selector => { /** @@ -216,4 +217,6 @@ const manifest = memoize(selector => { }; }); +export const mappings = standardFieldMappingFactory(manifest); + export default manifest; diff --git a/packages/iiif-redux/src/api/3.x/range.js b/packages/iiif-redux/src/api/3.x/range.js index 13d225d0..948dd029 100644 --- a/packages/iiif-redux/src/api/3.x/range.js +++ b/packages/iiif-redux/src/api/3.x/range.js @@ -20,6 +20,7 @@ import { import mapByIdOrId from '../../utility/mapByIdOrId'; import mapAllResources from '../../utility/mapAllResources'; import mapAllById from '../../utility/mapAllById'; +import { standardFieldMappingFactory } from '../../../es/utility/new/standardFieldMappingFactory'; const range = memoize(selector => { /** @@ -255,4 +256,6 @@ const range = memoize(selector => { }; }); +export const mappings = standardFieldMappingFactory(range); + export default range; diff --git a/packages/iiif-redux/src/createStore.js b/packages/iiif-redux/src/createStore.js index 6752b58e..de15b995 100644 --- a/packages/iiif-redux/src/createStore.js +++ b/packages/iiif-redux/src/createStore.js @@ -1,9 +1,20 @@ import { createStore, applyMiddleware, combineReducers, compose } from 'redux'; import createSagaMiddleware from 'redux-saga'; +import thunk from 'redux-thunk'; import * as reducers from './reducers'; import sagas from './sagas'; -const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; +function getWindow() { + try { + return window; + } catch (err) { + return null; + } +} + +const composeEnhancers = getWindow() + ? getWindow().__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose + : compose; export default function createCustomStore( customReducers = {}, @@ -16,7 +27,7 @@ export default function createCustomStore( const store = createStore( combineReducers(reducers), defaultState, - composeEnhancers(applyMiddleware(sagaMiddleware, ...extraMiddleware)) + composeEnhancers(applyMiddleware(sagaMiddleware, thunk, ...extraMiddleware)) ); sagas.map(saga => sagaMiddleware.run(saga)); diff --git a/packages/iiif-redux/src/spaces/iiif-resource.js b/packages/iiif-redux/src/spaces/iiif-resource.js index f92c9d3c..882003ba 100644 --- a/packages/iiif-redux/src/spaces/iiif-resource.js +++ b/packages/iiif-redux/src/spaces/iiif-resource.js @@ -87,6 +87,42 @@ const DEFAULT_STATE = { }, }; +const asyncAction = action => (...args) => dispatch => { + return new Promise((resolve, reject) => { + const actionData = action(...args); + const newActionPayload = { + ...actionData, + meta: { + ...(actionData.meta || {}), + resolve: a => { + console.log(a); + resolve(a); + }, + reject, + }, + }; + dispatch(newActionPayload); + }); +}; + +const chainAsyncAction = (action, { resolve, reject }) => ( + ...args +) => dispatch => { + const actionData = action(...args); + const newActionPayload = { + ...actionData, + meta: { + ...(actionData.meta || {}), + resolve: a => { + console.log(a); + resolve(a); + }, + reject, + }, + }; + dispatch(newActionPayload); +}; + const resourceReducer = handleActions( { [iiifResourceSuccess]: (state, { payload: { normalizedResponse } }) => @@ -148,11 +184,14 @@ async function requestResource(resourceId, options) { return fetch(resourceId).then(resp => resp.json()); } -function* errorAction(type, resourceId, error) { +function* errorAction(type, resourceId, error, meta) { yield put(iiifResourceError(resourceId, error)); if (type) { yield put({ type, payload: { resourceId, error } }); } + if (meta && meta.reject) { + meta.reject({ resourceId, error }); + } } function* successAction(type, resourceId, normalizedResponse) { @@ -160,15 +199,17 @@ function* successAction(type, resourceId, normalizedResponse) { yield put({ type, payload: { resourceId, normalizedResponse } }); } -function* requestIiifResource({ payload }) { +function* requestIiifResource({ payload, meta = {} }) { const { resourceId, types, ...options } = payload; if (types.length !== 3 && process.env.NODE_ENV !== 'production') { yield call( errorAction, null, resourceId, - 'DEV ERROR: You must pass in exactly 3 action types' + 'DEV ERROR: You must pass in exactly 3 action types', + meta ); + return; } const [REQUEST, SUCCESS, ERROR] = types; @@ -178,7 +219,8 @@ function* requestIiifResource({ payload }) { errorAction, ERROR, resourceId, - 'Resource is not a valid Web URI.' + 'Resource is not a valid Web URI.', + meta ); return; } @@ -192,7 +234,9 @@ function* requestIiifResource({ payload }) { false /*&& options.forceFresh === false*/ ) { debug('Skipping fetch for resource %s using cache.', resourceId); - + if (meta.resolve) { + meta.resolve({ id: resourceId }); + } return; } @@ -210,9 +254,12 @@ function* requestIiifResource({ payload }) { debug('Finished normalize resource %s', result.id); yield call(successAction, SUCCESS, result.id, entities); + if (meta.resolve) { + meta.resolve(result); + } } catch (err) { debug('Error: %O', err); - yield call(errorAction, ERROR, resourceId, err); + yield call(errorAction, ERROR, resourceId, err, meta); } } @@ -288,6 +335,7 @@ function* getPresentation3ResourceType(resourceId, response) { function* requestUnknownResource({ payload: { resourceId, mappings, ...options }, + meta = {}, }) { if (!validUrl.isWebUri(resourceId)) { yield put(iiifResourceError(resourceId, 'Resource is not a valid URL.')); @@ -299,26 +347,24 @@ function* requestUnknownResource({ debug('Fetching unknown resource %s', resourceId); const response = yield call(requestResource, resourceId, options); if (!response) { - yield put( - iiifResourceError( - resourceId, - new Error('Resource cannot be null or undefined') - ) - ); + const errorMessage = 'Resource cannot be null or undefined'; + yield put(iiifResourceError(resourceId, new Error(errorMessage))); + if (meta.reject) { + meta.reject({ error: errorMessage }); + } return; } const type = yield call(getResourceType, resourceId, response); if (!mappings[type]) { - yield put( - iiifResourceError( - resourceId, - `Resource type is not in configured mappings (${Object.keys( - mappings - ).join(', ')})` - ) - ); + const errorMessage = `Resource type is not in configured mappings (${Object.keys( + mappings + ).join(', ')})`; + yield put(iiifResourceError(resourceId, errorMessage)); + if (meta.reject) { + meta.reject({ resourceId, error: errorMessage }); + } return; } @@ -326,9 +372,17 @@ function* requestUnknownResource({ const [REQUEST, SUCCESS, ERROR] = mappings[type]; // 4) Send to regular import (will be cached). - yield put(iiifResourceRequest(resourceId, [REQUEST, SUCCESS, ERROR])); + if (meta.resolve) { + const action = chainAsyncAction(iiifResourceRequest, meta); + yield put(action(resourceId, [REQUEST, SUCCESS, ERROR])); + } else { + yield put(iiifResourceRequest(resourceId, [REQUEST, SUCCESS, ERROR])); + } } catch (err) { yield put(iiifResourceError(resourceId, err.message)); + if (meta.reject) { + meta.reject({ resourceId, error: err.message }); + } } } @@ -339,12 +393,17 @@ function* saga() { ]); } +const iiifResourceRequestAsync = asyncAction(iiifResourceRequest); +const iiifResourceRequestUnknownAsync = asyncAction(iiifResourceRequestUnknown); + export { saga, resourceReducer, dereferencedReducer, iiifResourceRequest, iiifResourceRequestUnknown, + iiifResourceRequestAsync, + iiifResourceRequestUnknownAsync, DEFAULT_STATE, IIIF_RESOURCE_REQUEST, IIIF_RESOURCE_SUCCESS, diff --git a/packages/iiif-redux/src/utility/new/standardFieldMappingFactory.js b/packages/iiif-redux/src/utility/new/standardFieldMappingFactory.js new file mode 100644 index 00000000..eb78ab61 --- /dev/null +++ b/packages/iiif-redux/src/utility/new/standardFieldMappingFactory.js @@ -0,0 +1,122 @@ +import memoize from 'lodash.memoize'; + +function optional(func, msg) { + if (func) return func; + return () => { + throw new Error(msg); + }; +} + +function nullable(func) { + if (func) return func; + return () => null; +} + +function fallbacks(options) { + // Find first non-null option. + return options.find(Boolean); +} + +function alias(from, to, obj) { + obj[to] = obj[from]; +} + +export function standardFieldMappingFactory(apiFactory, aliases = true) { + return memoize(selector => { + const api = apiFactory(selector); + + const fieldMapping = { + // Technical properties. + id: api.getId, + type: api.getType, + format: optional(api.getFormat), + profile: optional(api.getProfile), + height: optional(api.getHeight), + width: optional(api.getWidth), + height: optional(api.getHeight), + duration: optional(api.getDuration), + viewingDirection: optional(api.getViewingDirection), + behaviour: optional(api.getBehaviour), + timeMode: optional(api.getTimeMode), + // Descriptive properties. + label: api.getLabel, + metadata: api.getMetadata, + summary: fallbacks([api.getSummary, api.getDescription]), + thumbnailId: api.getThumbnailId, + thumbnail: api.getThumbnail, + posterCanvas: optional(api.getPosterCanvas), + requiredStatement: fallbacks([ + api.getRequiredStatement, + api.getAttribution, + ]), + rights: fallbacks([api.getRights, api.getLicense]), + navDate: optional(api.getNavDate), + language: optional(api.getLanguage), + // Linking properties + seeAlsoIds: api.getSeeAlsoIds, + seeAlso: api.getSeeAlso, + serviceIds: api.getServiceIds, + service: api.getService, + logoId: api.getLogoIds, + logo: api.getLogo, + homepageIds: fallbacks([api.getHomepageId, api.getRelatedIds]), + homepage: fallbacks([api.getHomepage, api.getRelated]), + renderingIds: api.getRenderingIds, + rendering: api.getRendering, + partOfId: fallbacks([api.getPartOfId, api.getWithinIds]), + partOf: fallbacks([api.getPartOf, api.getWithin]), + startId: optional(fallbacks([api.getStartId, api.getStartCanvasId])), + start: optional(fallbacks([api.getStart, api.getStartCanvas])), + supplementary: nullable(api.getSupplementary), // No equivelent in Presentation 2. + // Structural. + itemIds: optional( + fallbacks([ + api.getItems, + api.getMembers, + api.getSequences, + api.getCanvases, + api.getResources, + api.getImages, + api.getRanges, + ]) + ), + items: optional( + fallbacks([ + api.getItems, + api.getMembers, + api.getSequences, + api.getCanvases, + api.getResources, + api.getImages, + api.getRanges, + ]) + ), + // Part of the core API, as items isn't as descriptive. + collectionIds: optional(api.getCollectionIds), + collections: optional(api.getCollections), + manifestIds: optional(api.getManifestIds), + manifests: optional(api.getManifests), + canvasIds: optional(api.getCanvasIds), + canvases: optional(api.getCanvases), + + structreIds: optional(fallbacks([api.getStructureIds, api.getRangeIds])), + structures: optional(fallbacks([api.getStructures, api.getRanges])), + // This may conflict (painting vs non-painting between 2.x to 3.x) + annotationIds: optional(api.getAnnotationIds), + annotations: optional(api.getAnnotations), + }; + + if (aliases) { + // QoL aliases. + alias('service', 'services', fieldMapping); + alias('rights', 'license', fieldMapping); + alias('rights', 'licence', fieldMapping); + alias('homepage', 'homepages', fieldMapping); + alias('rendering', 'renderings', fieldMapping); + alias('structures', 'ranges', fieldMapping); + alias('structureIds', 'rangeIds', fieldMapping); + } + + return fieldMapping; + }); +} diff --git a/yarn.lock b/yarn.lock index 288a462b..88d8860a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13,6 +13,18 @@ version "1.1.15" resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-1.1.15.tgz#2ff689b87bb160c246a07adaa99cdb1c8dfd4412" +"@apollographql/apollo-upload-server@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@apollographql/apollo-upload-server/-/apollo-upload-server-5.0.3.tgz#8558c378ff6457de82147e5072c96a6b242773b7" + dependencies: + "@babel/runtime-corejs2" "^7.0.0-rc.1" + busboy "^0.2.14" + object-path "^0.11.4" + +"@apollographql/graphql-playground-html@^1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.0.tgz#15e1a042b97d6834e6d70b17cc73e1514fde9027" + "@babel/code-frame@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" @@ -25,6 +37,25 @@ dependencies: "@babel/highlight" "7.0.0-beta.44" +"@babel/core@^7.1.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.2.tgz#f8d2a9ceb6832887329a7b60f9d035791400ba4e" + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.1.2" + "@babel/helpers" "^7.1.2" + "@babel/parser" "^7.1.2" + "@babel/template" "^7.1.2" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.1.2" + convert-source-map "^1.1.0" + debug "^3.1.0" + json5 "^0.5.0" + lodash "^4.17.10" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + "@babel/generator@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0.tgz#1efd58bffa951dc846449e58ce3a1d7f02d393aa" @@ -35,6 +66,52 @@ source-map "^0.5.0" trim-right "^1.0.1" +"@babel/generator@^7.1.2", "@babel/generator@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.1.3.tgz#2103ec9c42d9bdad9190a6ad5ff2d456fd7b8673" + dependencies: + "@babel/types" "^7.1.3" + jsesc "^2.5.1" + lodash "^4.17.10" + source-map "^0.5.0" + trim-right "^1.0.1" + +"@babel/helper-annotate-as-pure@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" + dependencies: + "@babel/helper-explode-assignable-expression" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-call-delegate@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz#6a957f105f37755e8645343d3038a22e1449cc4a" + dependencies: + "@babel/helper-hoist-variables" "^7.0.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-define-map@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz#3b74caec329b3c80c116290887c0dd9ae468c20c" + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/types" "^7.0.0" + lodash "^4.17.10" + +"@babel/helper-explode-assignable-expression@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" + dependencies: + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + "@babel/helper-function-name@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0.tgz#a68cc8d04420ccc663dd258f9cc41b8261efa2d4" @@ -43,24 +120,114 @@ "@babel/template" "^7.0.0" "@babel/types" "^7.0.0" +"@babel/helper-function-name@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" + dependencies: + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + "@babel/helper-get-function-arity@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" dependencies: "@babel/types" "^7.0.0" +"@babel/helper-hoist-variables@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz#46adc4c5e758645ae7a45deb92bab0918c23bb88" + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-member-expression-to-functions@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f" + dependencies: + "@babel/types" "^7.0.0" + "@babel/helper-module-imports@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" dependencies: "@babel/types" "^7.0.0" +"@babel/helper-module-transforms@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.1.0.tgz#470d4f9676d9fad50b324cdcce5fbabbc3da5787" + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + lodash "^4.17.10" + +"@babel/helper-optimise-call-expression@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-plugin-utils@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" + +"@babel/helper-regex@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0.tgz#2c1718923b57f9bbe64705ffe5640ac64d9bdb27" + dependencies: + lodash "^4.17.10" + +"@babel/helper-remap-async-to-generator@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-wrap-function" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-replace-supers@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.1.0.tgz#5fc31de522ec0ef0899dc9b3e7cf6a5dd655f362" + dependencies: + "@babel/helper-member-expression-to-functions" "^7.0.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-simple-access@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" + dependencies: + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + "@babel/helper-split-export-declaration@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813" dependencies: "@babel/types" "^7.0.0" +"@babel/helper-wrap-function@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.1.0.tgz#8cf54e9190706067f016af8f75cb3df829cc8c66" + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helpers@^7.1.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.1.2.tgz#ab752e8c35ef7d39987df4e8586c63b8846234b5" + dependencies: + "@babel/template" "^7.1.2" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.1.2" + "@babel/highlight@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.44.tgz#18c94ce543916a80553edcdcf681890b200747d5" @@ -81,6 +248,318 @@ version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.0.0.tgz#697655183394facffb063437ddf52c0277698775" +"@babel/parser@^7.1.2", "@babel/parser@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.3.tgz#2c92469bac2b7fbff810b67fca07bd138b48af77" + +"@babel/plugin-proposal-async-generator-functions@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.1.0.tgz#41c1a702e10081456e23a7b74d891922dd1bb6ce" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + "@babel/plugin-syntax-async-generators" "^7.0.0" + +"@babel/plugin-proposal-json-strings@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.0.0.tgz#3b4d7b5cf51e1f2e70f52351d28d44fc2970d01e" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-json-strings" "^7.0.0" + +"@babel/plugin-proposal-object-rest-spread@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0.tgz#9a17b547f64d0676b6c9cecd4edf74a82ab85e7e" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + +"@babel/plugin-proposal-optional-catch-binding@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0.tgz#b610d928fe551ff7117d42c8bb410eec312a6425" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.0.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0.tgz#498b39cd72536cd7c4b26177d030226eba08cd33" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + regexpu-core "^4.2.0" + +"@babel/plugin-syntax-async-generators@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0.tgz#bf0891dcdbf59558359d0c626fdc9490e20bc13c" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-dynamic-import@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.0.0.tgz#6dfb7d8b6c3be14ce952962f658f3b7eb54c33ee" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-json-strings@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.0.0.tgz#0d259a68090e15b383ce3710e01d5b23f3770cbd" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-object-rest-spread@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0.tgz#37d8fbcaf216bd658ea1aebbeb8b75e88ebc549b" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0.tgz#886f72008b3a8b185977f7cb70713b45e51ee475" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-arrow-functions@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0.tgz#a6c14875848c68a3b4b3163a486535ef25c7e749" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-async-to-generator@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.1.0.tgz#109e036496c51dd65857e16acab3bafdf3c57811" + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + +"@babel/plugin-transform-block-scoped-functions@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0.tgz#482b3f75103927e37288b3b67b65f848e2aa0d07" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-block-scoping@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0.tgz#1745075edffd7cdaf69fab2fb6f9694424b7e9bc" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + lodash "^4.17.10" + +"@babel/plugin-transform-classes@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.1.0.tgz#ab3f8a564361800cbc8ab1ca6f21108038432249" + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-define-map" "^7.1.0" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0.tgz#2fbb8900cd3e8258f2a2ede909b90e7556185e31" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-destructuring@^7.0.0": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.1.3.tgz#e69ff50ca01fac6cb72863c544e516c2b193012f" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-dotall-regex@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0.tgz#73a24da69bc3c370251f43a3d048198546115e58" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + regexpu-core "^4.1.3" + +"@babel/plugin-transform-duplicate-keys@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0.tgz#a0601e580991e7cace080e4cf919cfd58da74e86" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-exponentiation-operator@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.1.0.tgz#9c34c2ee7fd77e02779cfa37e403a2e1003ccc73" + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-for-of@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0.tgz#f2ba4eadb83bd17dc3c7e9b30f4707365e1c3e39" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-function-name@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.1.0.tgz#29c5550d5c46208e7f730516d41eeddd4affadbb" + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-literals@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0.tgz#2aec1d29cdd24c407359c930cdd89e914ee8ff86" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-amd@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.1.0.tgz#f9e0a7072c12e296079b5a59f408ff5b97bf86a8" + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-commonjs@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.1.0.tgz#0a9d86451cbbfb29bd15186306897c67f6f9a05c" + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" + +"@babel/plugin-transform-modules-systemjs@^7.0.0": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.1.3.tgz#2119a3e3db612fd74a19d88652efbfe9613a5db0" + dependencies: + "@babel/helper-hoist-variables" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-umd@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.1.0.tgz#a29a7d85d6f28c3561c33964442257cc6a21f2a8" + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-new-target@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz#ae8fbd89517fa7892d20e6564e641e8770c3aa4a" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-object-super@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.1.0.tgz#b1ae194a054b826d8d4ba7ca91486d4ada0f91bb" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.1.0" + +"@babel/plugin-transform-parameters@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.1.0.tgz#44f492f9d618c9124026e62301c296bf606a7aed" + dependencies: + "@babel/helper-call-delegate" "^7.1.0" + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-regenerator@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz#5b41686b4ed40bef874d7ed6a84bdd849c13e0c1" + dependencies: + regenerator-transform "^0.13.3" + +"@babel/plugin-transform-shorthand-properties@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0.tgz#85f8af592dcc07647541a0350e8c95c7bf419d15" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-spread@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0.tgz#93583ce48dd8c85e53f3a46056c856e4af30b49b" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-sticky-regex@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0.tgz#30a9d64ac2ab46eec087b8530535becd90e73366" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + +"@babel/plugin-transform-template-literals@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0.tgz#084f1952efe5b153ddae69eb8945f882c7a97c65" + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-typeof-symbol@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0.tgz#4dcf1e52e943e5267b7313bff347fdbe0f81cec9" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-unicode-regex@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0.tgz#c6780e5b1863a76fe792d90eded9fcd5b51d68fc" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + regexpu-core "^4.1.3" + +"@babel/preset-env@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.1.0.tgz#e67ea5b0441cfeab1d6f41e9b5c79798800e8d11" + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-async-generator-functions" "^7.1.0" + "@babel/plugin-proposal-json-strings" "^7.0.0" + "@babel/plugin-proposal-object-rest-spread" "^7.0.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.0.0" + "@babel/plugin-syntax-async-generators" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.0.0" + "@babel/plugin-transform-arrow-functions" "^7.0.0" + "@babel/plugin-transform-async-to-generator" "^7.1.0" + "@babel/plugin-transform-block-scoped-functions" "^7.0.0" + "@babel/plugin-transform-block-scoping" "^7.0.0" + "@babel/plugin-transform-classes" "^7.1.0" + "@babel/plugin-transform-computed-properties" "^7.0.0" + "@babel/plugin-transform-destructuring" "^7.0.0" + "@babel/plugin-transform-dotall-regex" "^7.0.0" + "@babel/plugin-transform-duplicate-keys" "^7.0.0" + "@babel/plugin-transform-exponentiation-operator" "^7.1.0" + "@babel/plugin-transform-for-of" "^7.0.0" + "@babel/plugin-transform-function-name" "^7.1.0" + "@babel/plugin-transform-literals" "^7.0.0" + "@babel/plugin-transform-modules-amd" "^7.1.0" + "@babel/plugin-transform-modules-commonjs" "^7.1.0" + "@babel/plugin-transform-modules-systemjs" "^7.0.0" + "@babel/plugin-transform-modules-umd" "^7.1.0" + "@babel/plugin-transform-new-target" "^7.0.0" + "@babel/plugin-transform-object-super" "^7.1.0" + "@babel/plugin-transform-parameters" "^7.1.0" + "@babel/plugin-transform-regenerator" "^7.0.0" + "@babel/plugin-transform-shorthand-properties" "^7.0.0" + "@babel/plugin-transform-spread" "^7.0.0" + "@babel/plugin-transform-sticky-regex" "^7.0.0" + "@babel/plugin-transform-template-literals" "^7.0.0" + "@babel/plugin-transform-typeof-symbol" "^7.0.0" + "@babel/plugin-transform-unicode-regex" "^7.0.0" + browserslist "^4.1.0" + invariant "^2.2.2" + js-levenshtein "^1.1.3" + semver "^5.3.0" + +"@babel/runtime-corejs2@^7.0.0-rc.1": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.1.2.tgz#8695811a3fd8091f54f274b9320334e5e8c62200" + dependencies: + core-js "^2.5.7" + regenerator-runtime "^0.12.0" + "@babel/runtime@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0.tgz#adeb78fedfc855aa05bc041640f3f6f98e85424c" @@ -101,6 +580,14 @@ "@babel/parser" "^7.0.0" "@babel/types" "^7.0.0" +"@babel/template@^7.1.0", "@babel/template@^7.1.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.2.tgz#090484a574fef5a2d2d7726a674eceda5c5b5644" + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.1.2" + "@babel/types" "^7.1.2" + "@babel/traverse@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0.tgz#b1fe9b6567fdf3ab542cfad6f3b31f854d799a61" @@ -115,6 +602,20 @@ globals "^11.1.0" lodash "^4.17.10" +"@babel/traverse@^7.1.0": + version "7.1.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.4.tgz#f4f83b93d649b4b2c91121a9087fa2fa949ec2b4" + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.1.3" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" + "@babel/parser" "^7.1.3" + "@babel/types" "^7.1.3" + debug "^3.1.0" + globals "^11.1.0" + lodash "^4.17.10" + "@babel/types@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0.tgz#6e191793d3c854d19c6749989e3bc55f0e962118" @@ -123,6 +624,14 @@ lodash "^4.17.10" to-fast-properties "^2.0.0" +"@babel/types@^7.1.2", "@babel/types@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.1.3.tgz#3a767004567060c2f40fca49a304712c525ee37d" + dependencies: + esutils "^2.0.2" + lodash "^4.17.10" + to-fast-properties "^2.0.0" + "@canvas-panel/core@^0.0.9": version "0.0.9" resolved "https://registry.yarnpkg.com/@canvas-panel/core/-/core-0.0.9.tgz#9efd394c7c716e7c3179197e57a5e05ad7b0e8c5" @@ -697,6 +1206,49 @@ version "1.1.0" resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.0.tgz#50c1e2260ac0ed9439a181de3725a0168d59c48a" +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + "@reach/router@1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@reach/router/-/router-1.2.1.tgz#34ae3541a5ac44fa7796e5506a5d7274a162be4e" @@ -720,9 +1272,92 @@ exjs BSick7/exjs#0.5.0 http-status-codes edsilv/http-status-codes#v0.0.7 -"@types/jquery@^2.0.40": - version "2.0.49" - resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-2.0.49.tgz#95bd7064caebf65bde10429dff491a1aea05b67d" +"@types/accepts@^1.3.5": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" + dependencies: + "@types/node" "*" + +"@types/async@2.0.50": + version "2.0.50" + resolved "https://registry.yarnpkg.com/@types/async/-/async-2.0.50.tgz#117540e026d64e1846093abbd5adc7e27fda7bcb" + +"@types/body-parser@*", "@types/body-parser@1.17.0": + version "1.17.0" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.17.0.tgz#9f5c9d9bd04bb54be32d5eb9fc0d8c974e6cf58c" + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.32" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.32.tgz#aa0e9616b9435ccad02bc52b5b454ffc2c70ba28" + dependencies: + "@types/node" "*" + +"@types/cors@^2.8.4": + version "2.8.4" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.4.tgz#50991a759a29c0b89492751008c6af7a7c8267b0" + dependencies: + "@types/express" "*" + +"@types/events@*": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz#81a6731ce4df43619e5c8c945383b3e62a89ea86" + +"@types/express-serve-static-core@*": + version "4.16.0" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.16.0.tgz#fdfe777594ddc1fe8eb8eccce52e261b496e43e7" + dependencies: + "@types/events" "*" + "@types/node" "*" + "@types/range-parser" "*" + +"@types/express@*", "@types/express@4.16.0": + version "4.16.0" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.16.0.tgz#6d8bc42ccaa6f35cf29a2b7c3333cb47b5a32a19" + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "*" + "@types/serve-static" "*" + +"@types/jquery@^2.0.40": + version "2.0.49" + resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-2.0.49.tgz#95bd7064caebf65bde10429dff491a1aea05b67d" + +"@types/long@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.0.tgz#719551d2352d301ac8b81db732acb6bdc28dbdef" + +"@types/mime@*": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.0.tgz#5a7306e367c539b9f6543499de8dd519fac37a8b" + +"@types/node@*", "@types/node@^10.1.0": + version "10.12.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.0.tgz#ea6dcbddbc5b584c83f06c60e82736d8fbb0c235" + +"@types/range-parser@*": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.2.tgz#fa8e1ad1d474688a757140c91de6dace6f4abc8d" + +"@types/serve-static@*": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.2.tgz#f5ac4d7a6420a99a6a45af4719f4dcd8cd907a48" + dependencies: + "@types/express-serve-static-core" "*" + "@types/mime" "*" + +"@types/ws@^5.1.2": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-5.1.2.tgz#f02d3b1cd46db7686734f3ce83bdf46c49decd64" + dependencies: + "@types/events" "*" + "@types/node" "*" + +"@types/zen-observable@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.0.tgz#8b63ab7f1aa5321248aad5ac890a485656dcea4d" "@webassemblyjs/ast@1.5.13": version "1.5.13" @@ -734,30 +1369,60 @@ debug "^3.1.0" mamacro "^0.0.3" +"@webassemblyjs/ast@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.8.tgz#f31f480debeef957f01b623f27eabc695fa4fe8f" + dependencies: + "@webassemblyjs/helper-module-context" "1.7.8" + "@webassemblyjs/helper-wasm-bytecode" "1.7.8" + "@webassemblyjs/wast-parser" "1.7.8" + "@webassemblyjs/floating-point-hex-parser@1.5.13": version "1.5.13" resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.5.13.tgz#29ce0baa97411f70e8cce68ce9c0f9d819a4e298" +"@webassemblyjs/floating-point-hex-parser@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.8.tgz#1b3ed0e27e384032254e9322fc646dd3e70ef1b9" + "@webassemblyjs/helper-api-error@1.5.13": version "1.5.13" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.5.13.tgz#e49b051d67ee19a56e29b9aa8bd949b5b4442a59" +"@webassemblyjs/helper-api-error@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.8.tgz#a2b49c11f615e736f815ec927f035dcfa690d572" + "@webassemblyjs/helper-buffer@1.5.13": version "1.5.13" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.5.13.tgz#873bb0a1b46449231137c1262ddfd05695195a1e" dependencies: debug "^3.1.0" +"@webassemblyjs/helper-buffer@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.8.tgz#3fc66bfa09c1c60e824cf3d5887826fac062877d" + "@webassemblyjs/helper-code-frame@1.5.13": version "1.5.13" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.5.13.tgz#1bd2181b6a0be14e004f0fe9f5a660d265362b58" dependencies: "@webassemblyjs/wast-printer" "1.5.13" +"@webassemblyjs/helper-code-frame@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.8.tgz#cc5a7e9522b70e7580df056dfd34020cf29645b0" + dependencies: + "@webassemblyjs/wast-printer" "1.7.8" + "@webassemblyjs/helper-fsm@1.5.13": version "1.5.13" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.5.13.tgz#cdf3d9d33005d543a5c5e5adaabf679ffa8db924" +"@webassemblyjs/helper-fsm@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.8.tgz#fe4607430af466912797c21acafd3046080182ea" + "@webassemblyjs/helper-module-context@1.5.13": version "1.5.13" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.5.13.tgz#dc29ddfb51ed657655286f94a5d72d8a489147c5" @@ -765,10 +1430,18 @@ debug "^3.1.0" mamacro "^0.0.3" +"@webassemblyjs/helper-module-context@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.8.tgz#3c2e7ee93d14ff4768ba66fb1be42fdc9dc7160a" + "@webassemblyjs/helper-wasm-bytecode@1.5.13": version "1.5.13" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.5.13.tgz#03245817f0a762382e61733146f5773def15a747" +"@webassemblyjs/helper-wasm-bytecode@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.8.tgz#89bdb78cd6dd5209ae2ed2925de78d0f0e00b6f0" + "@webassemblyjs/helper-wasm-section@1.5.13": version "1.5.13" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.5.13.tgz#efc76f44a10d3073b584b43c38a179df173d5c7d" @@ -779,22 +1452,47 @@ "@webassemblyjs/wasm-gen" "1.5.13" debug "^3.1.0" +"@webassemblyjs/helper-wasm-section@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.8.tgz#c68ef7d26a6fc12421b2e6e56f9bc810dfb33e87" + dependencies: + "@webassemblyjs/ast" "1.7.8" + "@webassemblyjs/helper-buffer" "1.7.8" + "@webassemblyjs/helper-wasm-bytecode" "1.7.8" + "@webassemblyjs/wasm-gen" "1.7.8" + "@webassemblyjs/ieee754@1.5.13": version "1.5.13" resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.5.13.tgz#573e97c8c12e4eebb316ca5fde0203ddd90b0364" dependencies: ieee754 "^1.1.11" +"@webassemblyjs/ieee754@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.8.tgz#1f37974b13cb486a9237e73ce04cac7a2f1265ed" + dependencies: + "@xtuc/ieee754" "^1.2.0" + "@webassemblyjs/leb128@1.5.13": version "1.5.13" resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.5.13.tgz#ab52ebab9cec283c1c1897ac1da833a04a3f4cee" dependencies: long "4.0.0" +"@webassemblyjs/leb128@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.8.tgz#1bee83426819192db2ea1a234b84c7ebc6d34c1f" + dependencies: + "@xtuc/long" "4.2.1" + "@webassemblyjs/utf8@1.5.13": version "1.5.13" resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.5.13.tgz#6b53d2cd861cf94fa99c1f12779dde692fbc2469" +"@webassemblyjs/utf8@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.8.tgz#2b489d5cf43e0aebb93d8e2d792aff9879c61f05" + "@webassemblyjs/wasm-edit@1.5.13": version "1.5.13" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.5.13.tgz#c9cef5664c245cf11b3b3a73110c9155831724a8" @@ -809,6 +1507,19 @@ "@webassemblyjs/wast-printer" "1.5.13" debug "^3.1.0" +"@webassemblyjs/wasm-edit@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.8.tgz#f8bdbe7088718eca27b1c349bb7c06b8a457950c" + dependencies: + "@webassemblyjs/ast" "1.7.8" + "@webassemblyjs/helper-buffer" "1.7.8" + "@webassemblyjs/helper-wasm-bytecode" "1.7.8" + "@webassemblyjs/helper-wasm-section" "1.7.8" + "@webassemblyjs/wasm-gen" "1.7.8" + "@webassemblyjs/wasm-opt" "1.7.8" + "@webassemblyjs/wasm-parser" "1.7.8" + "@webassemblyjs/wast-printer" "1.7.8" + "@webassemblyjs/wasm-gen@1.5.13": version "1.5.13" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.5.13.tgz#8e6ea113c4b432fa66540189e79b16d7a140700e" @@ -819,6 +1530,16 @@ "@webassemblyjs/leb128" "1.5.13" "@webassemblyjs/utf8" "1.5.13" +"@webassemblyjs/wasm-gen@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.8.tgz#7e8abf1545eae74ac6781d545c034af3cfd0c7d5" + dependencies: + "@webassemblyjs/ast" "1.7.8" + "@webassemblyjs/helper-wasm-bytecode" "1.7.8" + "@webassemblyjs/ieee754" "1.7.8" + "@webassemblyjs/leb128" "1.7.8" + "@webassemblyjs/utf8" "1.7.8" + "@webassemblyjs/wasm-opt@1.5.13": version "1.5.13" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.5.13.tgz#147aad7717a7ee4211c36b21a5f4c30dddf33138" @@ -829,6 +1550,15 @@ "@webassemblyjs/wasm-parser" "1.5.13" debug "^3.1.0" +"@webassemblyjs/wasm-opt@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.8.tgz#7ada6e211914728fce02ff0ff9c344edc6d41f26" + dependencies: + "@webassemblyjs/ast" "1.7.8" + "@webassemblyjs/helper-buffer" "1.7.8" + "@webassemblyjs/wasm-gen" "1.7.8" + "@webassemblyjs/wasm-parser" "1.7.8" + "@webassemblyjs/wasm-parser@1.5.13": version "1.5.13" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.5.13.tgz#6f46516c5bb23904fbdf58009233c2dd8a54c72f" @@ -840,6 +1570,17 @@ "@webassemblyjs/leb128" "1.5.13" "@webassemblyjs/utf8" "1.5.13" +"@webassemblyjs/wasm-parser@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.8.tgz#dac47c291fb6a3e63529aecd647592cd34afbf94" + dependencies: + "@webassemblyjs/ast" "1.7.8" + "@webassemblyjs/helper-api-error" "1.7.8" + "@webassemblyjs/helper-wasm-bytecode" "1.7.8" + "@webassemblyjs/ieee754" "1.7.8" + "@webassemblyjs/leb128" "1.7.8" + "@webassemblyjs/utf8" "1.7.8" + "@webassemblyjs/wast-parser@1.5.13": version "1.5.13" resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.5.13.tgz#5727a705d397ae6a3ae99d7f5460acf2ec646eea" @@ -852,6 +1593,17 @@ long "^3.2.0" mamacro "^0.0.3" +"@webassemblyjs/wast-parser@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.8.tgz#f8aab9a450c048c1f9537695c89faeb92fabfba5" + dependencies: + "@webassemblyjs/ast" "1.7.8" + "@webassemblyjs/floating-point-hex-parser" "1.7.8" + "@webassemblyjs/helper-api-error" "1.7.8" + "@webassemblyjs/helper-code-frame" "1.7.8" + "@webassemblyjs/helper-fsm" "1.7.8" + "@xtuc/long" "4.2.1" + "@webassemblyjs/wast-printer@1.5.13": version "1.5.13" resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.5.13.tgz#bb34d528c14b4f579e7ec11e793ec50ad7cd7c95" @@ -860,6 +1612,14 @@ "@webassemblyjs/wast-parser" "1.5.13" long "^3.2.0" +"@webassemblyjs/wast-printer@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.8.tgz#e7e965782c1912f6a965f14a53ff43d8ad0403a5" + dependencies: + "@webassemblyjs/ast" "1.7.8" + "@webassemblyjs/wast-parser" "1.7.8" + "@xtuc/long" "4.2.1" + "@webpack-contrib/schema-utils@^1.0.0-beta.0": version "1.0.0-beta.0" resolved "https://registry.yarnpkg.com/@webpack-contrib/schema-utils/-/schema-utils-1.0.0-beta.0.tgz#bf9638c9464d177b48209e84209e23bee2eb4f65" @@ -871,6 +1631,14 @@ text-table "^0.2.0" webpack-log "^1.1.2" +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + +"@xtuc/long@4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8" + JSONStream@^1.0.3: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" @@ -904,7 +1672,14 @@ abbrev@1.0.x: version "1.0.9" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" -accepts@~1.3.4, accepts@~1.3.5: +accepts@1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" + dependencies: + mime-types "~2.1.11" + negotiator "0.6.1" + +accepts@^1.3.5, accepts@~1.3.4, accepts@~1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" dependencies: @@ -1176,6 +1951,184 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" +apollo-cache-control@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/apollo-cache-control/-/apollo-cache-control-0.2.5.tgz#0831ad796754a7beec858668f99e7517fe744a1e" + dependencies: + apollo-server-env "^2.0.3" + graphql-extensions "^0.2.1" + +apollo-cache-inmemory@^1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/apollo-cache-inmemory/-/apollo-cache-inmemory-1.3.7.tgz#a9dabead5939e19068040c97c7c1009619a9df37" + dependencies: + apollo-cache "^1.1.19" + apollo-utilities "^1.0.24" + optimism "^0.6.6" + +apollo-cache@1.1.19, apollo-cache@^1.1.19: + version "1.1.19" + resolved "https://registry.yarnpkg.com/apollo-cache/-/apollo-cache-1.1.19.tgz#a9ff2b6c70ab888c29ea038d8642b5698f115a3a" + dependencies: + apollo-utilities "^1.0.24" + +apollo-client@^2.4.4: + version "2.4.4" + resolved "https://registry.yarnpkg.com/apollo-client/-/apollo-client-2.4.4.tgz#b96d4fc2dd856b24552bb2e2da466219b0d4eb1f" + dependencies: + "@types/zen-observable" "^0.8.0" + apollo-cache "1.1.19" + apollo-link "^1.0.0" + apollo-link-dedup "^1.0.0" + apollo-utilities "1.0.24" + symbol-observable "^1.0.2" + zen-observable "^0.8.0" + optionalDependencies: + "@types/async" "2.0.50" + +apollo-datasource@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-0.1.3.tgz#e7ae9d20f29a8a35f239b02f0c47169cfd78d70b" + dependencies: + apollo-server-caching "0.1.2" + apollo-server-env "2.0.3" + +apollo-engine-reporting-protobuf@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.0.1.tgz#cd394f0f769c6f97d8621c4a7839095c84efcdb0" + dependencies: + protobufjs "^6.8.6" + +apollo-engine-reporting@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/apollo-engine-reporting/-/apollo-engine-reporting-0.0.6.tgz#c1a74dffce782525f8a3230e4e5228fbd05bbd59" + dependencies: + apollo-engine-reporting-protobuf "^0.0.1" + apollo-server-env "^2.0.3" + async-retry "^1.2.1" + graphql-extensions "^0.2.1" + lodash "^4.17.10" + +apollo-link-core@^0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/apollo-link-core/-/apollo-link-core-0.5.4.tgz#8efd4cd747959872a32f313f0ccfc2a76b396668" + dependencies: + graphql "^0.10.3" + graphql-tag "^2.4.2" + zen-observable-ts "^0.4.4" + +apollo-link-dedup@^1.0.0: + version "1.0.10" + resolved "https://registry.yarnpkg.com/apollo-link-dedup/-/apollo-link-dedup-1.0.10.tgz#7b94589fe7f969777efd18a129043c78430800ae" + dependencies: + apollo-link "^1.2.3" + +apollo-link-schema@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/apollo-link-schema/-/apollo-link-schema-1.1.1.tgz#b36b513d1a008184ae8cfc2aad4fce445df5f149" + dependencies: + apollo-link "^1.2.3" + +apollo-link-set-context@^0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/apollo-link-set-context/-/apollo-link-set-context-0.5.4.tgz#275002474c6e39465bb46a9ffe51f1830c1cb40c" + dependencies: + apollo-link-core "^0.5.4" + +apollo-link@^1.0.0, apollo-link@^1.2.2, apollo-link@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.3.tgz#9bd8d5fe1d88d31dc91dae9ecc22474d451fb70d" + dependencies: + apollo-utilities "^1.0.0" + zen-observable-ts "^0.8.10" + +apollo-server-caching@0.1.2, apollo-server-caching@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/apollo-server-caching/-/apollo-server-caching-0.1.2.tgz#f5b85701945110a5fca1956450e8553576635936" + dependencies: + lru-cache "^4.1.3" + +apollo-server-core@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-2.1.0.tgz#b56f9f1ddb948b257e738eb25c5fdfd2f2fb2e07" + dependencies: + "@apollographql/apollo-upload-server" "^5.0.3" + "@types/ws" "^5.1.2" + apollo-cache-control "^0.2.5" + apollo-datasource "^0.1.3" + apollo-engine-reporting "^0.0.6" + apollo-server-caching "^0.1.2" + apollo-server-env "^2.0.3" + apollo-server-errors "^2.0.2" + apollo-tracing "^0.2.5" + graphql-extensions "^0.2.1" + graphql-subscriptions "^0.5.8" + graphql-tag "^2.9.2" + graphql-tools "^3.0.4" + hash.js "^1.1.3" + lodash "^4.17.10" + subscriptions-transport-ws "^0.9.11" + ws "^5.2.0" + +apollo-server-env@2.0.3, apollo-server-env@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-2.0.3.tgz#3c13552cd33f400160076cf8e1c9b24be4d27e13" + dependencies: + node-fetch "^2.1.2" + util.promisify "^1.0.0" + +apollo-server-errors@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-2.0.2.tgz#e9cbb1b74d2cd78aed23cd886ca2d0c186323b2b" + +apollo-server-express@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-2.1.0.tgz#b2d423c2c934df5c4e0a1b0d5f0088a9461f3c86" + dependencies: + "@apollographql/apollo-upload-server" "^5.0.3" + "@apollographql/graphql-playground-html" "^1.6.0" + "@types/accepts" "^1.3.5" + "@types/body-parser" "1.17.0" + "@types/cors" "^2.8.4" + "@types/express" "4.16.0" + accepts "^1.3.5" + apollo-server-core "^2.1.0" + body-parser "^1.18.3" + cors "^2.8.4" + graphql-subscriptions "^0.5.8" + graphql-tools "^3.0.4" + type-is "^1.6.16" + +apollo-server@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/apollo-server/-/apollo-server-2.1.0.tgz#abec7853647c59f386087352cc7f06a4f1f8afe2" + dependencies: + apollo-server-core "^2.1.0" + apollo-server-express "^2.1.0" + express "^4.0.0" + graphql-subscriptions "^0.5.8" + graphql-tools "^3.0.4" + +apollo-tracing@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/apollo-tracing/-/apollo-tracing-0.2.5.tgz#15bb8d6f37efe8c1bb6351e8e21521dd4f14c5f2" + dependencies: + apollo-server-env "^2.0.3" + graphql-extensions "^0.2.1" + +apollo-utilities@1.0.24, apollo-utilities@^1.0.24: + version "1.0.24" + resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.0.24.tgz#77d2d3008bb9ee52aa76b799ce7a8d6cb6cf8a1c" + dependencies: + fast-json-stable-stringify "^2.0.0" + +apollo-utilities@^1.0.0, apollo-utilities@^1.0.1: + version "1.0.21" + resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.0.21.tgz#cb8b5779fe275850b16046ff8373f4af2de90765" + dependencies: + fast-json-stable-stringify "^2.0.0" + fclone "^1.0.11" + append-transform@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" @@ -1294,6 +2247,10 @@ array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" +arraybuffer.slice@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" + arraybuffer.slice@~0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" @@ -1356,6 +2313,12 @@ async-limiter@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" +async-retry@^1.2.1: + version "1.2.3" + resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.2.3.tgz#a6521f338358d322b1a0012b79030c6f411d1ce0" + dependencies: + retry "0.12.0" + async-validator@1.x: version "1.8.2" resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-1.8.2.tgz#b77597226e96242f8d531c0d46ae295f62422ba4" @@ -1390,6 +2353,17 @@ atob@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.0.tgz#ab2b150e51d7b122b9efc8d7340c06b6c41076bc" +autoprefixer@7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.1.6.tgz#fb933039f74af74a83e71225ce78d9fd58ba84d7" + dependencies: + browserslist "^2.5.1" + caniuse-lite "^1.0.30000748" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^6.0.13" + postcss-value-parser "^3.2.3" + autoprefixer@7.2.5: version "7.2.5" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.2.5.tgz#04ccbd0c6a61131b6d13f53d371926092952d192" @@ -1462,7 +2436,7 @@ babel-cli@6.26.0: optionalDependencies: chokidar "^1.6.1" -babel-code-frame@^6.26.0: +babel-code-frame@^6.11.0, babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" dependencies: @@ -1675,6 +2649,14 @@ babel-jest@23.6.0, babel-jest@^23.6.0: babel-plugin-istanbul "^4.1.6" babel-preset-jest "^23.2.0" +babel-literal-to-ast@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/babel-literal-to-ast/-/babel-literal-to-ast-0.1.2.tgz#f50aa963711935adf19da0d5a4defc827ad5f403" + dependencies: + babel-traverse "^6.0.20" + babel-types "^6.0.19" + babylon "^6.0.18" + babel-loader@7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.2.tgz#f6cbe122710f1aa2af4d881c6d5b54358ca24126" @@ -1691,6 +2673,15 @@ babel-loader@7.1.5: loader-utils "^1.0.2" mkdirp "^0.5.1" +babel-loader@^8.0.4: + version "8.0.4" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.4.tgz#7bbf20cbe4560629e2e41534147692d3fecbdce6" + dependencies: + find-cache-dir "^1.0.0" + loader-utils "^1.0.2" + mkdirp "^0.5.1" + util.promisify "^1.0.0" + babel-messages@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" @@ -1707,6 +2698,21 @@ babel-plugin-check-es2015-constants@^6.22.0: dependencies: babel-runtime "^6.22.0" +babel-plugin-graphql-tag@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/babel-plugin-graphql-tag/-/babel-plugin-graphql-tag-1.6.0.tgz#bfdc83e9a8d0eeea6d93508d6b5261368aa6064f" + dependencies: + babel-literal-to-ast "^0.1.2" + babel-types "^6.24.1" + babylon "^6.18.0" + debug "^2.6.8" + +babel-plugin-import-graphql@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-import-graphql/-/babel-plugin-import-graphql-2.6.2.tgz#0f88a3b32133765854253b8ba7f9383367cd360e" + dependencies: + graphql-tag "^2.9.2" + babel-plugin-import@1.11.0: version "1.11.0" resolved "https://registry.yarnpkg.com/babel-plugin-import/-/babel-plugin-import-1.11.0.tgz#78ac908e6b225206babb734e19eae5f78d6d1035" @@ -1714,6 +2720,13 @@ babel-plugin-import@1.11.0: "@babel/helper-module-imports" "^7.0.0" "@babel/runtime" "^7.0.0" +babel-plugin-inferno@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-inferno/-/babel-plugin-inferno-3.3.0.tgz#4815e563fe5e4658837da9974851d5cfbb9be623" + dependencies: + babel-plugin-syntax-jsx "^6.18.0" + inferno-vnode-flags "3.10.1" + babel-plugin-inferno@3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/babel-plugin-inferno/-/babel-plugin-inferno-3.3.1.tgz#7ca11124b8bfef4658ef6041b835cb1fbccb00bc" @@ -2228,6 +3241,10 @@ babel-preset-flow@^6.23.0: dependencies: babel-plugin-transform-flow-strip-types "^6.22.0" +babel-preset-graphpack@^1.0.0-alpha.3: + version "1.0.0-alpha.3" + resolved "https://registry.yarnpkg.com/babel-preset-graphpack/-/babel-preset-graphpack-1.0.0-alpha.3.tgz#c8ff9a9cb9a4a6ecf7363a78d3cb9b78853070eb" + babel-preset-jest@^23.2.0: version "23.2.0" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz#8ec7a03a138f001a1a8fb1e8113652bf1a55da46" @@ -2310,7 +3327,7 @@ babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0, babel-te babylon "^6.18.0" lodash "^4.17.4" -babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.24.1, babel-traverse@^6.26.0: +babel-traverse@^6.0.0, babel-traverse@^6.0.20, babel-traverse@^6.18.0, babel-traverse@^6.24.1, babel-traverse@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" dependencies: @@ -2324,7 +3341,7 @@ babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.24.1, babel-tra invariant "^2.2.2" lodash "^4.17.4" -babel-types@^6.0.0, babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: +babel-types@^6.0.0, babel-types@^6.0.19, babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" dependencies: @@ -2333,11 +3350,11 @@ babel-types@^6.0.0, babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24. lodash "^4.17.4" to-fast-properties "^1.0.3" -babylon@^6.18.0: +babylon@^6.0.18, babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" -backo2@1.0.2: +backo2@1.0.2, backo2@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" @@ -2446,6 +3463,21 @@ body-parser@1.18.2, body-parser@^1.16.1: raw-body "2.3.2" type-is "~1.6.15" +body-parser@1.18.3, body-parser@^1.18.3: + version "1.18.3" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" + dependencies: + bytes "3.0.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "~1.6.3" + iconv-lite "0.4.23" + on-finished "~2.3.0" + qs "6.5.2" + raw-body "2.3.3" + type-is "~1.6.16" + bonjour@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" @@ -2673,7 +3705,7 @@ browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: caniuse-db "^1.0.30000639" electron-to-chromium "^1.2.7" -browserslist@^2.1.2, browserslist@^2.11.1: +browserslist@^2.1.2, browserslist@^2.11.1, browserslist@^2.5.1: version "2.11.3" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2" dependencies: @@ -2695,6 +3727,14 @@ browserslist@^4.0.1: electron-to-chromium "^1.3.52" node-releases "^1.0.0-alpha.10" +browserslist@^4.1.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.3.2.tgz#a5479f20fd387357be2d01aefcbbdcaadffb4d75" + dependencies: + caniuse-lite "^1.0.30000898" + electron-to-chromium "^1.3.80" + node-releases "^1.0.0-alpha.14" + bser@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" @@ -2756,6 +3796,13 @@ builtins@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" +busboy@^0.2.14: + version "0.2.14" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" + dependencies: + dicer "0.2.5" + readable-stream "1.1.x" + byline@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" @@ -2896,6 +3943,10 @@ caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: version "1.0.30000890" resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000890.tgz#b406595db8b631975b8dc5fa174f32925c23778b" +caniuse-lite@^1.0.30000748: + version "1.0.30000892" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000892.tgz#344d2b51ee3ff5977537da4aa449c90eec40b759" + caniuse-lite@^1.0.30000791, caniuse-lite@^1.0.30000792: version "1.0.30000890" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000890.tgz#86a18ffcc65d79ec6a437e985761b8bf1c4efeaf" @@ -2904,6 +3955,10 @@ caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000865: version "1.0.30000874" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000874.tgz#a641b1f1c420d58d9b132920ef6ba87bbdcd2223" +caniuse-lite@^1.0.30000898: + version "1.0.30000898" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000898.tgz#651306e690ca83caca5814da5afa3eb4de0f86c2" + capture-stack-trace@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" @@ -3283,6 +4338,12 @@ commander@2.15.1, commander@2.15.x, commander@^2.11.0, commander@^2.14.1, comman version "2.15.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" +commander@2.9.0: + version "2.9.0" + resolved "http://registry.npmjs.org/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + commander@~2.13.0: version "2.13.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" @@ -3312,6 +4373,10 @@ component-classes@1.x, component-classes@^1.2.5, component-classes@^1.2.6: dependencies: component-indexof "0.0.3" +component-emitter@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" + component-emitter@1.2.1, component-emitter@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" @@ -3500,6 +4565,12 @@ conventional-recommended-bump@^4.0.1: meow "^4.0.0" q "^1.5.1" +convert-source-map@^1.1.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" + dependencies: + safe-buffer "~5.1.1" + convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" @@ -3559,6 +4630,19 @@ copy-template-dir@1.4.0: readdirp "^2.0.0" run-parallel "^1.1.4" +copy-webpack-plugin@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-4.2.0.tgz#252bb94597f96399d23d7fad355f8d3a661ac096" + dependencies: + bluebird "^3.5.1" + fs-extra "^4.0.2" + glob "^7.1.2" + is-glob "^4.0.0" + loader-utils "^0.2.15" + lodash "^4.3.0" + minimatch "^3.0.4" + node-dir "^0.1.10" + copy-webpack-plugin@4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-4.3.1.tgz#19ba6370bf6f8e263cbd66185a2b79f2321a9302" @@ -3595,7 +4679,7 @@ core-js@^2.2.0, core-js@^2.4.0, core-js@^2.5.0: version "2.5.4" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.4.tgz#f2c8bf181f2a80b92f360121429ce63a2f0aeae0" -core-js@^2.5.3: +core-js@^2.4.1, core-js@^2.5.3, core-js@^2.5.7: version "2.5.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" @@ -3603,6 +4687,13 @@ core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" +cors@^2.8.4: + version "2.8.4" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.4.tgz#2bd381f2eb201020105cd50ea59da63090694686" + dependencies: + object-assign "^4" + vary "^1" + cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: version "2.2.2" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.2.2.tgz#6173cebd56fac042c1f4390edf7af6c07c7cb892" @@ -3706,6 +4797,14 @@ create-react-context@^0.2.0: fbjs "^0.8.0" gud "^1.0.0" +cross-spawn@5.1.0, cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + cross-spawn@6.0.4: version "6.0.4" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.4.tgz#bbf44ccb30fb8314a08f178b62290c669c36d808" @@ -3733,14 +4832,6 @@ cross-spawn@^3.0.0: lru-cache "^4.0.1" which "^1.2.9" -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - cryptiles@2.x.x: version "2.0.5" resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" @@ -3784,6 +4875,25 @@ css-color-names@0.0.4: version "0.0.4" resolved "http://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" +css-loader@0.28.7: + version "0.28.7" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.7.tgz#5f2ee989dd32edd907717f953317656160999c1b" + dependencies: + babel-code-frame "^6.11.0" + css-selector-tokenizer "^0.7.0" + cssnano ">=2.6.1 <4" + icss-utils "^2.1.0" + loader-utils "^1.0.2" + lodash.camelcase "^4.3.0" + object-assign "^4.0.1" + postcss "^5.0.6" + postcss-modules-extract-imports "^1.0.0" + postcss-modules-local-by-default "^1.0.1" + postcss-modules-scope "^1.0.0" + postcss-modules-values "^1.1.0" + postcss-value-parser "^3.3.0" + source-list-map "^2.0.0" + css-loader@0.28.9: version "0.28.9" resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.9.tgz#68064b85f4e271d7ce4c48a58300928e535d1c95" @@ -3845,7 +4955,7 @@ cssesc@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" -cssnano@^3.10.0: +"cssnano@>=2.6.1 <4", cssnano@^3.10.0: version "3.10.0" resolved "http://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" dependencies: @@ -3943,6 +5053,10 @@ data-urls@^1.0.0: whatwg-mimetype "^2.0.0" whatwg-url "^6.4.0" +dataloader@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-1.4.0.tgz#bca11d867f5d3f1b9ed9f737bd15970c65dff5c8" + date-fns@^1.27.2: version "1.29.0" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6" @@ -3972,6 +5086,24 @@ debug@2, debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, de dependencies: ms "2.0.0" +debug@2.2.0: + version "2.2.0" + resolved "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" + dependencies: + ms "0.7.1" + +debug@2.3.3: + version "2.3.3" + resolved "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" + dependencies: + ms "0.7.2" + +debug@2.6.8: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + debug@3.1.0, debug@^3.1.0, debug@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" @@ -4128,6 +5260,10 @@ depd@~1.1.1, depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" +deprecated-decorator@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz#00966317b7a12fe92f3cc831f7583af329b86c37" + deps-sort@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.0.tgz#091724902e84658260eb910748cccd1af6e21fb5" @@ -4170,6 +5306,13 @@ detect-node@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" +detect-port@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.2.1.tgz#a2c0a048aa9df2b703fc54bb4436ce2118f09b5a" + dependencies: + address "^1.0.1" + debug "^2.6.0" + detect-port@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.2.2.tgz#57a44533632d8bc74ad255676866ca43f96c7469" @@ -4202,6 +5345,17 @@ di@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" +dicer@0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" + dependencies: + readable-stream "1.1.x" + streamsearch "0.1.2" + +diff@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" + diff@3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75" @@ -4413,6 +5567,10 @@ electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.52: version "1.3.55" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.55.tgz#f150e10b20b77d9d41afcca312efe0c3b1a7fdce" +electron-to-chromium@^1.3.80: + version "1.3.80" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.80.tgz#e99ec7efe64c2c6a269d3885ff411ea88852fa53" + elegant-spinner@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" @@ -4449,6 +5607,23 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" +engine.io-client@1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.3.tgz#1798ed93451246453d4c6f635d7a201fe940d5ab" + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "2.3.3" + engine.io-parser "1.3.2" + has-cors "1.1.0" + indexof "0.0.1" + parsejson "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + ws "1.1.2" + xmlhttprequest-ssl "1.5.3" + yeast "0.1.2" + engine.io-client@~3.1.0: version "3.1.6" resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.1.6.tgz#5bdeb130f8b94a50ac5cbeb72583e7a4a063ddfd" @@ -4465,6 +5640,17 @@ engine.io-client@~3.1.0: xmlhttprequest-ssl "~1.5.4" yeast "0.1.2" +engine.io-parser@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.2.tgz#937b079f0007d0893ec56d46cb220b8cb435220a" + dependencies: + after "0.8.2" + arraybuffer.slice "0.0.6" + base64-arraybuffer "0.1.5" + blob "0.0.4" + has-binary "0.1.7" + wtf-8 "1.0.0" + engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.2.tgz#4c0f4cff79aaeecbbdcfdea66a823c6085409196" @@ -4475,6 +5661,17 @@ engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: blob "0.0.4" has-binary2 "~1.0.2" +engine.io@1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.3.tgz#8de7f97895d20d39b85f88eeee777b2bd42b13d4" + dependencies: + accepts "1.3.3" + base64id "1.0.0" + cookie "0.3.1" + debug "2.3.3" + engine.io-parser "1.3.2" + ws "1.1.2" + engine.io@~3.1.0: version "3.1.5" resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.1.5.tgz#0e7ef9d690eb0b35597f1d4ad02a26ca2dba3845" @@ -4539,6 +5736,12 @@ error-stack-parser@1.3.6: dependencies: stackframe "^0.3.1" +error-stack-parser@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.2.tgz#4ae8dbaa2bf90a8b450707b9149dcabca135520d" + dependencies: + stackframe "^1.0.4" + es-abstract@^1.4.3, es-abstract@^1.5.1, es-abstract@^1.6.1, es-abstract@^1.7.0: version "1.11.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.11.0.tgz#cce87d518f0496893b1a30cd8461835535480681" @@ -4834,6 +6037,10 @@ eventemitter3@1.x.x: version "1.2.0" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" +eventemitter3@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" + eventlistener@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/eventlistener/-/eventlistener-0.0.1.tgz#ed2baabb852227af2bcf889152c72c63ca532eb8" @@ -4865,6 +6072,18 @@ exec-sh@^0.2.0: dependencies: merge "^1.1.3" +execa@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" + dependencies: + cross-spawn "^6.0.0" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + execa@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" @@ -4975,6 +6194,41 @@ expect@^23.6.0: jest-message-util "^23.4.0" jest-regex-util "^23.3.0" +express@^4.0.0, express@^4.13.3: + version "4.16.4" + resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e" + dependencies: + accepts "~1.3.5" + array-flatten "1.1.1" + body-parser "1.18.3" + content-disposition "0.5.2" + content-type "~1.0.4" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.1.1" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.2" + path-to-regexp "0.1.7" + proxy-addr "~2.0.4" + qs "6.5.2" + range-parser "~1.2.0" + safe-buffer "5.1.2" + send "0.16.2" + serve-static "1.13.2" + setprototypeof "1.1.0" + statuses "~1.4.0" + type-is "~1.6.16" + utils-merge "1.0.1" + vary "~1.1.2" + express@^4.16.2: version "4.16.3" resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" @@ -5141,6 +6395,10 @@ fb-watchman@^2.0.0: dependencies: bser "^2.0.0" +fbjs-css-vars@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.1.tgz#836d876e887d702f45610f5ebd2fbeef649527fc" + fbjs@^0.8.0, fbjs@^0.8.15, fbjs@^0.8.16, fbjs@^0.8.9: version "0.8.16" resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db" @@ -5153,6 +6411,23 @@ fbjs@^0.8.0, fbjs@^0.8.15, fbjs@^0.8.16, fbjs@^0.8.9: setimmediate "^1.0.5" ua-parser-js "^0.7.9" +fbjs@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-1.0.0.tgz#52c215e0883a3c86af2a7a776ed51525ae8e0a5a" + dependencies: + core-js "^2.4.1" + fbjs-css-vars "^1.0.0" + isomorphic-fetch "^2.1.1" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^0.7.18" + +fclone@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fclone/-/fclone-1.0.11.tgz#10e85da38bfea7fc599341c296ee1d77266ee640" + fd-slicer@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" @@ -5203,6 +6478,13 @@ file-loader@1.1.11: loader-utils "^1.0.2" schema-utils "^0.4.5" +file-loader@1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.5.tgz#91c25b6b6fbe56dae99f10a425fd64933b5c9daa" + dependencies: + loader-utils "^1.0.2" + schema-utils "^0.3.0" + file-loader@1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.6.tgz#7b9a8f2c58f00a77fddf49e940f7ac978a3ea0e8" @@ -5403,6 +6685,14 @@ fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" +friendly-errors-webpack-plugin@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0.tgz#efc86cbb816224565861a1be7a9d84d0aafea136" + dependencies: + chalk "^1.1.3" + error-stack-parser "^2.0.0" + string-width "^2.0.0" + from2@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" @@ -5420,6 +6710,14 @@ fs-access@^1.0.0: dependencies: null-check "^1.0.0" +fs-extra@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.2.tgz#f91704c53d1b461f893452b0c307d9997647ab6b" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-extra@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" @@ -5444,6 +6742,14 @@ fs-extra@^1.0.0: jsonfile "^2.1.0" klaw "^1.0.0" +fs-extra@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-minipass@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" @@ -5681,6 +6987,17 @@ glob-to-regexp@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" +glob@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@7.1.2, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" @@ -5820,6 +7137,84 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.4, version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + +graphpack@^1.0.0-alpha.3: + version "1.0.0-alpha.3" + resolved "https://registry.yarnpkg.com/graphpack/-/graphpack-1.0.0-alpha.3.tgz#53b7b2b2ec31a523cd7dfdb27bef2ebebe07565e" + dependencies: + "@babel/core" "^7.1.2" + "@babel/plugin-syntax-dynamic-import" "^7.0.0" + "@babel/preset-env" "^7.1.0" + apollo-server "2.1.0" + babel-loader "^8.0.4" + babel-preset-graphpack "^1.0.0-alpha.3" + cosmiconfig "^5.0.6" + friendly-errors-webpack-plugin "^1.7.0" + graphql "^0.13.2" + graphql-tag "^2.9.2" + nodemon "^1.18.4" + ramda "^0.25.0" + webpack "^4.20.2" + webpack-node-externals "^1.7.2" + yargs "^12.0.2" + +graphql-extensions@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.2.1.tgz#7697e0fcea2e622afe9e24dd31fc84f533e84c70" + dependencies: + apollo-server-env "^2.0.3" + +graphql-subscriptions@^0.5.8: + version "0.5.8" + resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-0.5.8.tgz#13a6143c546bce390404657dc73ca501def30aa7" + dependencies: + iterall "^1.2.1" + +graphql-tag@^2.10.0, graphql-tag@^2.4.2, graphql-tag@^2.9.2: + version "2.10.0" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.10.0.tgz#87da024be863e357551b2b8700e496ee2d4353ae" + +graphql-tools@^3.0.4: + version "3.1.1" + resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-3.1.1.tgz#d593358f01e7c8b1671a17b70ddb034dea9dbc50" + dependencies: + apollo-link "^1.2.2" + apollo-utilities "^1.0.1" + deprecated-decorator "^0.1.6" + iterall "^1.1.3" + uuid "^3.1.0" + +graphql-tools@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-4.0.2.tgz#9da22974cc6bf6524ed4f4af35556fd15aa6516d" + dependencies: + apollo-link "^1.2.3" + apollo-utilities "^1.0.1" + deprecated-decorator "^0.1.6" + iterall "^1.1.3" + uuid "^3.1.0" + +graphql@^0.10.3: + version "0.10.5" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.10.5.tgz#c9be17ca2bdfdbd134077ffd9bbaa48b8becd298" + dependencies: + iterall "^1.1.0" + +graphql@^0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.13.2.tgz#4c740ae3c222823e7004096f832e7b93b2108270" + dependencies: + iterall "^1.2.1" + +graphql@^14.0.2: + version "14.0.2" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.0.2.tgz#7dded337a4c3fd2d075692323384034b357f5650" + dependencies: + iterall "^1.2.2" + growl@1.10.3: version "1.10.3" resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f" @@ -5828,6 +7223,10 @@ growl@1.10.5, "growl@~> 1.10.0": version "1.10.5" resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" +growl@1.9.2: + version "1.9.2" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" + growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -5836,6 +7235,13 @@ gud@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" +gzip-size@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-4.0.0.tgz#a80e13e18938bcb2e6702fec606f5cf8b666db3a" + dependencies: + duplexer "^0.1.1" + pify "^3.0.0" + gzip-size@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-4.1.0.tgz#8ae096257eabe7d69c45be2b67c448124ffb517c" @@ -5911,6 +7317,12 @@ has-binary2@~1.0.2: dependencies: isarray "2.0.1" +has-binary@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c" + dependencies: + isarray "0.0.1" + has-cors@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" @@ -5994,6 +7406,13 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.0" +hash.js@^1.1.3: + version "1.1.5" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.5.tgz#e38ab4b85dfb1e0c40fe9265c0e9b54854c23812" + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + hasha@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1" @@ -6169,7 +7588,7 @@ http-errors@1.6.2: setprototypeof "1.0.3" statuses ">= 1.3.1 < 2" -http-errors@1.6.3, http-errors@~1.6.2: +http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: version "1.6.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" dependencies: @@ -6347,6 +7766,10 @@ immutability-helper@^2.6.6: dependencies: invariant "^2.2.0" +immutable-tuple@^0.4.4: + version "0.4.8" + resolved "https://registry.yarnpkg.com/immutable-tuple/-/immutable-tuple-0.4.8.tgz#f60b65b863d34be39d307d1bbf4a450e1ac3048a" + immutable@^3.7.4: version "3.8.2" resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" @@ -6573,6 +7996,10 @@ invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + ip@^1.1.0, ip@^1.1.2, ip@^1.1.4, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" @@ -6581,6 +8008,10 @@ ipaddr.js@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" +ipaddr.js@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" + is-absolute-url@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" @@ -7086,6 +8517,10 @@ istanbul@0.4.5, istanbul@^0.4.0: which "^1.1.1" wordwrap "^1.0.0" +iterall@^1.1.0, iterall@^1.1.3, iterall@^1.2.1, iterall@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.2.2.tgz#92d70deb8028e0c39ff3164fdbf4d8b088130cd7" + jest-changed-files@^23.4.2: version "23.4.2" resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-23.4.2.tgz#1eed688370cd5eebafe4ae93d34bb3b64968fe83" @@ -7399,6 +8834,10 @@ js-base64@^2.1.9: version "2.4.9" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.9.tgz#748911fb04f48a60c4771b375cac45a80df11c03" +js-levenshtein@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.4.tgz#3a56e3cbf589ca0081eb22cd9ba0b1290a16d26e" + js-tokens@^3.0.0, js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" @@ -7521,7 +8960,7 @@ json2mq@^0.2.0: dependencies: string-convert "^0.2.0" -json3@^3.3.2: +json3@3.3.2, json3@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" @@ -7616,6 +9055,16 @@ karma-sourcemap-loader@0.3.7: dependencies: graceful-fs "^4.1.2" +karma-webpack@2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-2.0.5.tgz#4f56887e32cf4f9583391c2388415de06af06efd" + dependencies: + async "~0.9.0" + loader-utils "^0.2.5" + lodash "^3.8.0" + source-map "^0.1.41" + webpack-dev-middleware "^1.0.11" + karma-webpack@2.0.9: version "2.0.9" resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-2.0.9.tgz#61c88091f7dd910635134c032b266a465affb57f" @@ -7637,6 +9086,38 @@ karma-webpack@3.0.0: source-map "^0.5.6" webpack-dev-middleware "^2.0.6" +karma@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/karma/-/karma-1.7.1.tgz#85cc08e9e0a22d7ce9cca37c4a1be824f6a2b1ae" + dependencies: + bluebird "^3.3.0" + body-parser "^1.16.1" + chokidar "^1.4.1" + colors "^1.1.0" + combine-lists "^1.0.0" + connect "^3.6.0" + core-js "^2.2.0" + di "^0.0.1" + dom-serialize "^2.2.0" + expand-braces "^0.1.1" + glob "^7.1.1" + graceful-fs "^4.1.2" + http-proxy "^1.13.0" + isbinaryfile "^3.0.0" + lodash "^3.8.0" + log4js "^0.6.31" + mime "^1.3.4" + minimatch "^3.0.2" + optimist "^0.6.1" + qjobs "^1.1.4" + range-parser "^1.2.0" + rimraf "^2.6.0" + safe-buffer "^5.0.1" + socket.io "1.7.3" + source-map "^0.5.3" + tmp "0.0.31" + useragent "^2.1.12" + karma@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/karma/-/karma-2.0.0.tgz#a02698dd7f0f05ff5eb66ab8f65582490b512e58" @@ -7760,6 +9241,12 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + dependencies: + invert-kv "^2.0.0" + lcov-parse@^0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3" @@ -7883,7 +9370,6 @@ listr-silent-renderer@^1.1.1: listr-update-renderer@^0.4.0, "listr-update-renderer@https://github.com/okonet/listr-update-renderer/tarball/upgrade-log-update": version "0.4.0" - uid "06073fa93166277607a7814f4e1f83960081414c" resolved "https://github.com/okonet/listr-update-renderer/tarball/upgrade-log-update#06073fa93166277607a7814f4e1f83960081414c" dependencies: chalk "^1.1.3" @@ -7985,10 +9471,29 @@ lodash-es@^4.17.4: version "4.17.8" resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.8.tgz#6fa8c8c5d337481df0bdf1c0d899d42473121e45" +lodash._baseassign@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" + dependencies: + lodash._basecopy "^3.0.0" + lodash.keys "^3.0.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + +lodash._basecreate@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" + lodash._getnative@^3.0.0: version "3.9.1" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + lodash._reinterpolate@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" @@ -8005,10 +9510,22 @@ lodash.clonedeep@^4.3.2: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" +lodash.create@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" + dependencies: + lodash._baseassign "^3.0.0" + lodash._basecreate "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash.debounce@^4.0.0, lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" +lodash.flowright@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/lodash.flowright/-/lodash.flowright-3.5.0.tgz#2b5fff399716d7e7dc5724fe9349f67065184d67" + lodash.isarguments@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" @@ -8017,7 +9534,11 @@ lodash.isarray@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" -lodash.keys@^3.1.2: +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + +lodash.keys@^3.0.0, lodash.keys@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" dependencies: @@ -8106,6 +9627,13 @@ log-update@^2.3.0: cli-cursor "^2.0.0" wrap-ansi "^3.0.1" +log4js@^0.6.31: + version "0.6.38" + resolved "http://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz#2c494116695d6fb25480943d3fc872e662a522fd" + dependencies: + readable-stream "~1.0.2" + semver "~4.3.3" + log4js@^2.3.9, log4js@^2.5.3: version "2.11.0" resolved "https://registry.yarnpkg.com/log4js/-/log4js-2.11.0.tgz#bf3902eff65c6923d9ce9cfbd2db54160e34005a" @@ -8144,7 +9672,7 @@ loglevelnext@^1.0.1: es6-symbol "^3.1.1" object.assign "^4.1.0" -long@4.0.0: +long@4.0.0, long@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" @@ -8258,6 +9786,12 @@ mamacro@^0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" +map-age-cleaner@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz#098fb15538fd3dbe461f12745b0ca8568d4e3f74" + dependencies: + p-defer "^1.0.0" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -8320,6 +9854,14 @@ mem@^1.1.0: dependencies: mimic-fn "^1.0.0" +mem@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.0.0.tgz#6437690d9471678f6cc83659c00cbafcd6b0cdaf" + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^1.0.0" + p-is-promise "^1.1.0" + memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" @@ -8429,12 +9971,22 @@ miller-rabin@^4.0.0: version "1.33.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" +mime-db@~1.36.0: + version "1.36.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.36.0.tgz#5020478db3c7fe93aad7bbcc4dcf869c43363397" + mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.7: version "2.1.18" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" dependencies: mime-db "~1.33.0" +mime-types@~2.1.11: + version "2.1.20" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.20.tgz#930cb719d571e903738520f8470911548ca2cc19" + dependencies: + mime-db "~1.36.0" + mime@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" @@ -8486,6 +10038,10 @@ minimalistic-assert@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" +minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" @@ -8584,6 +10140,23 @@ mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdi dependencies: minimist "0.0.8" +mocha@3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d" + dependencies: + browser-stdout "1.3.0" + commander "2.9.0" + debug "2.6.8" + diff "3.2.0" + escape-string-regexp "1.0.5" + glob "7.1.1" + growl "1.9.2" + he "1.1.1" + json3 "3.3.2" + lodash.create "3.1.1" + mkdirp "0.5.1" + supports-color "3.1.2" + mocha@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/mocha/-/mocha-4.1.0.tgz#7d86cfbcf35cb829e2754c32e17355ec05338794" @@ -8658,6 +10231,14 @@ move-concurrently@^1.0.1: rimraf "^2.5.4" run-queue "^1.0.3" +ms@0.7.1: + version "0.7.1" + resolved "http://registry.npmjs.org/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" + +ms@0.7.2: + version "0.7.2" + resolved "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -8753,6 +10334,12 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" +node-dir@^0.1.10: + version "0.1.17" + resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" + dependencies: + minimatch "^3.0.2" + node-fetch-npm@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7" @@ -8768,6 +10355,10 @@ node-fetch@^1.0.1: encoding "^0.1.11" is-stream "^1.0.1" +node-fetch@^2.1.2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.2.0.tgz#4ee79bde909262f9775f731e3656d0db55ced5b5" + node-forge@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.1.tgz#9da611ea08982f4b94206b3beb4cc9665f20c300" @@ -8884,6 +10475,12 @@ node-releases@^1.0.0-alpha.10: dependencies: semver "^5.3.0" +node-releases@^1.0.0-alpha.14: + version "1.0.0-alpha.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.0-alpha.14.tgz#da9e2780add4bbb59ad890af9e2018a1d9c0034b" + dependencies: + semver "^5.3.0" + node-sass@4.9.2: version "4.9.2" resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.9.2.tgz#5e63fe6bd0f2ae3ac9d6c14ede8620e2b8bdb437" @@ -8976,6 +10573,21 @@ nodemon@^1.12.1: undefsafe "^2.0.2" update-notifier "^2.3.0" +nodemon@^1.18.4: + version "1.18.4" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.18.4.tgz#873f65fdb53220eb166180cf106b1354ac5d714d" + dependencies: + chokidar "^2.0.2" + debug "^3.1.0" + ignore-by-default "^1.0.1" + minimatch "^3.0.4" + pstree.remy "^1.1.0" + semver "^5.5.0" + supports-color "^5.2.0" + touch "^3.1.0" + undefsafe "^2.0.2" + update-notifier "^2.3.0" + noop2@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/noop2/-/noop2-2.0.0.tgz#4b636015e9882b54783c02b412f699d8c5cd0a5b" @@ -9188,6 +10800,86 @@ nwb-watch@1.0.0: dependencies: cross-spawn "^6.0.5" +nwb@0.19.x: + version "0.19.2" + resolved "https://registry.yarnpkg.com/nwb/-/nwb-0.19.2.tgz#a2c7eb57fe151961eacd660b8e7810f01ae33366" + dependencies: + autoprefixer "7.1.6" + babel-cli "6.26.0" + babel-core "6.26.0" + babel-loader "7.1.2" + babel-plugin-add-module-exports "0.2.1" + babel-plugin-inferno "3.3.0" + babel-plugin-istanbul "4.1.5" + babel-plugin-lodash "3.2.11" + babel-plugin-react-transform "3.0.0" + babel-plugin-syntax-dynamic-import "6.18.0" + babel-plugin-syntax-jsx "6.18.0" + babel-plugin-transform-decorators-legacy "1.3.4" + babel-plugin-transform-react-constant-elements "6.23.0" + babel-plugin-transform-react-jsx "6.24.1" + babel-plugin-transform-react-jsx-self "6.22.0" + babel-plugin-transform-react-jsx-source "6.22.0" + babel-plugin-transform-react-remove-prop-types "0.4.10" + babel-plugin-transform-runtime "6.23.0" + babel-polyfill "6.26.0" + babel-preset-env "1.6.1" + babel-preset-react "6.24.1" + babel-preset-stage-0 "6.24.1" + babel-preset-stage-1 "6.24.1" + babel-preset-stage-2 "6.24.1" + babel-preset-stage-3 "6.24.1" + babel-runtime "6.26.0" + case-sensitive-paths-webpack-plugin "2.1.1" + chalk "2.3.0" + copy-template-dir "1.3.0" + copy-webpack-plugin "4.2.0" + cross-spawn "5.1.0" + css-loader "0.28.7" + debug "3.1.0" + detect-port "1.2.1" + diff "3.4.0" + eventsource-polyfill "0.9.6" + expect "1.20.2" + extract-text-webpack-plugin "3.0.2" + figures "2.0.0" + file-loader "1.1.5" + filesize "3.5.11" + fs-extra "4.0.2" + gzip-size "4.0.0" + html-webpack-plugin "2.30.1" + inquirer "3.3.0" + karma "1.7.1" + karma-chrome-launcher "2.2.0" + karma-coverage "1.1.1" + karma-mocha "1.3.0" + karma-mocha-reporter "2.2.5" + karma-phantomjs-launcher "1.0.4" + karma-sourcemap-loader "0.3.7" + karma-webpack "2.0.5" + minimist "1.2.0" + mocha "3.5.3" + npm-install-webpack2-plugin "5.0.1" + object-assign "4.1.1" + ora "1.3.0" + phantomjs-prebuilt "2.1.16" + postcss-loader "2.0.8" + promise "8.0.1" + react-transform-catch-errors "1.0.2" + react-transform-hmr "1.0.4" + redbox-noreact "1.1.0" + resolve "1.5.0" + run-series "1.1.4" + semver "5.4.1" + style-loader "0.19.0" + url-loader "0.6.2" + webpack "3.8.1" + webpack-dev-middleware "1.12.0" + webpack-dev-server "2.9.4" + webpack-hot-middleware "2.20.0" + webpack-merge "4.1.1" + whatwg-fetch "2.0.3" + nwb@0.21.5: version "0.21.5" resolved "https://registry.yarnpkg.com/nwb/-/nwb-0.21.5.tgz#8fc50eda7e3d5137801f6747bb9776d00d69cd88" @@ -9359,7 +11051,11 @@ oauth-sign@~0.8.1, oauth-sign@~0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" -object-assign@4.1.1, object-assign@4.x, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" + +object-assign@4.1.1, object-assign@4.x, object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -9395,6 +11091,10 @@ object-keys@^1.0.8, object-keys@^1.0.9: version "1.0.11" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" +object-path@^0.11.4: + version "0.11.4" + resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.4.tgz#370ae752fbf37de3ea70a861c23bba8915691949" + object-visit@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" @@ -9491,6 +11191,12 @@ opn@5.3.0, opn@^5.1.0: dependencies: is-wsl "^1.1.0" +optimism@^0.6.6: + version "0.6.6" + resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.6.6.tgz#5415b2d6a2f8b3745aedb9f97fdf4e52467ecd84" + dependencies: + immutable-tuple "^0.4.4" + optimist@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" @@ -9509,6 +11215,10 @@ optionator@^0.8.1, optionator@^0.8.2: type-check "~0.3.2" wordwrap "~1.0.0" +options@>=0.0.5: + version "0.0.6" + resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" + ora@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/ora/-/ora-1.3.0.tgz#80078dd2b92a934af66a3ad72a5b910694ede51a" @@ -9557,7 +11267,15 @@ os-locale@^2.0.0: lcid "^1.0.0" mem "^1.1.0" -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: +os-locale@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.0.1.tgz#3b014fbf01d87f60a1e5348d80fe870dc82c4620" + dependencies: + execa "^0.10.0" + lcid "^2.0.0" + mem "^4.0.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -9576,10 +11294,18 @@ output-file-sync@^1.1.2: mkdirp "^0.5.1" object-assign "^4.1.0" +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" +p-is-promise@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" + p-limit@^1.0.0, p-limit@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" @@ -9764,6 +11490,12 @@ parse5@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" +parsejson@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab" + dependencies: + better-assert "~1.0.0" + parseqs@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" @@ -10065,6 +11797,15 @@ postcss-loader@2.0.10: postcss-load-config "^1.2.0" schema-utils "^0.3.0" +postcss-loader@2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.0.8.tgz#8c67ddb029407dfafe684a406cfc16bad2ce0814" + dependencies: + loader-utils "^1.1.0" + postcss "^6.0.0" + postcss-load-config "^1.2.0" + schema-utils "^0.3.0" + postcss-loader@2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.1.6.tgz#1d7dd7b17c6ba234b9bed5af13e0bea40a42d740" @@ -10135,27 +11876,33 @@ postcss-minify-selectors@^2.0.4: postcss "^5.0.14" postcss-selector-parser "^2.0.0" +postcss-modules-extract-imports@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz#b614c9720be6816eaee35fb3a5faa1dba6a05ddb" + dependencies: + postcss "^6.0.1" + postcss-modules-extract-imports@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85" dependencies: postcss "^6.0.1" -postcss-modules-local-by-default@^1.2.0: +postcss-modules-local-by-default@^1.0.1, postcss-modules-local-by-default@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" dependencies: css-selector-tokenizer "^0.7.0" postcss "^6.0.1" -postcss-modules-scope@^1.1.0: +postcss-modules-scope@^1.0.0, postcss-modules-scope@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" dependencies: css-selector-tokenizer "^0.7.0" postcss "^6.0.1" -postcss-modules-values@^1.3.0: +postcss-modules-values@^1.1.0, postcss-modules-values@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" dependencies: @@ -10263,7 +12010,7 @@ postcss@^6.0.0, postcss@^6.0.1: source-map "^0.6.1" supports-color "^5.3.0" -postcss@^6.0.16, postcss@^6.0.23: +postcss@^6.0.13, postcss@^6.0.16, postcss@^6.0.23: version "6.0.23" resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" dependencies: @@ -10411,6 +12158,24 @@ proto-list@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" +protobufjs@^6.8.6: + version "6.8.8" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.8.8.tgz#c8b4f1282fd7a90e6f5b109ed11c84af82908e7c" + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.0" + "@types/node" "^10.1.0" + long "^4.0.0" + protoduck@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.0.tgz#752145e6be0ad834cb25716f670a713c860dce70" @@ -10424,6 +12189,13 @@ proxy-addr@~2.0.3: forwarded "~0.1.2" ipaddr.js "1.6.0" +proxy-addr@~2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93" + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.8.0" + proxy-agent@~3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-3.0.1.tgz#4fb7b61b1476d0fe8e3a3384d90e2460bbded3f9" @@ -10524,6 +12296,10 @@ qs@6.5.1, qs@~6.5.1: version "6.5.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" +qs@6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + qs@~6.2.0: version "6.2.3" resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.3.tgz#1cfcb25c10a9b2b483053ff39f5dfc9233908cfe" @@ -10572,6 +12348,10 @@ raf@^3.4.0: dependencies: performance-now "^2.1.0" +ramda@^0.25.0: + version "0.25.0" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.25.0.tgz#8fdf68231cffa90bc2f9460390a0cb74a29b29a9" + randomatic@^1.1.3: version "1.1.7" resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" @@ -10605,7 +12385,7 @@ raw-body@2.3.2: iconv-lite "0.4.19" unpipe "1.0.0" -raw-body@^2.2.0: +raw-body@2.3.3, raw-body@^2.2.0: version "2.3.3" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" dependencies: @@ -11091,11 +12871,22 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" +react-apollo@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/react-apollo/-/react-apollo-2.2.4.tgz#05b2a91deb4d5f30d2511fc663abc465b219435e" + dependencies: + fbjs "^1.0.0" + hoist-non-react-statics "^3.0.0" + invariant "^2.2.2" + lodash.flowright "^3.5.0" + lodash.isequal "^4.5.0" + prop-types "^15.6.0" + react-deep-force-update@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/react-deep-force-update/-/react-deep-force-update-1.1.1.tgz#bcd31478027b64b3339f108921ab520b4313dc2c" -react-dom@16.6.0: +react-dom@16.6.0, react-dom@^16.6.0: version "16.6.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.6.0.tgz#6375b8391e019a632a89a0988bce85f0cc87a92f" dependencies: @@ -11120,7 +12911,11 @@ react-draggable@^3.0.5: classnames "^2.2.5" prop-types "^15.6.0" -react-is@^16.3.2, react-is@^16.6.0: +react-is@^16.3.2: + version "16.5.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.5.2.tgz#e2a7b7c3f5d48062eb769fcb123505eb928722e3" + +react-is@^16.6.0: version "16.6.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.6.0.tgz#456645144581a6e99f6816ae2bd24ee94bdd0c01" @@ -11230,7 +13025,7 @@ react-transform-hmr@1.0.4: global "^4.3.0" react-proxy "^1.1.7" -react@16.6.0: +react@16.6.0, react@^16.6.0: version "16.6.0" resolved "https://registry.yarnpkg.com/react/-/react-16.6.0.tgz#b34761cfaf3e30f5508bc732fb4736730b7da246" dependencies: @@ -11352,7 +13147,7 @@ read@1, read@~1.0.1: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@1.0: +readable-stream@1.0, readable-stream@~1.0.2: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" dependencies: @@ -11476,6 +13271,10 @@ redux-saga@^0.16.0: version "0.16.0" resolved "https://registry.yarnpkg.com/redux-saga/-/redux-saga-0.16.0.tgz#0a231db0a1489301dd980f6f2f88d8ced418f724" +redux-thunk@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622" + redux@4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.1.tgz#436cae6cc40fbe4727689d7c8fae44808f1bfef5" @@ -11490,10 +13289,20 @@ redux@^4.0.0: loose-envify "^1.1.0" symbol-observable "^1.2.0" +regenerate-unicode-properties@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz#107405afcc4a190ec5ed450ecaa00ed0cafa7a4c" + dependencies: + regenerate "^1.4.0" + regenerate@^1.2.1: version "1.3.3" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" +regenerate@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + regenerator-runtime@^0.10.5: version "0.10.5" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" @@ -11514,6 +13323,12 @@ regenerator-transform@^0.10.0: babel-types "^6.19.0" private "^0.1.6" +regenerator-transform@^0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.3.tgz#264bd9ff38a8ce24b06e0636496b2c856b57bcbb" + dependencies: + private "^0.1.6" + regex-cache@^0.4.2: version "0.4.4" resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" @@ -11547,6 +13362,17 @@ regexpu-core@^2.0.0: regjsgen "^0.2.0" regjsparser "^0.1.4" +regexpu-core@^4.1.3, regexpu-core@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.2.0.tgz#a3744fa03806cffe146dea4421a3e73bdcc47b1d" + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^7.0.0" + regjsgen "^0.4.0" + regjsparser "^0.3.0" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.0.2" + registry-auth-token@^3.0.1: version "3.3.2" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" @@ -11564,12 +13390,22 @@ regjsgen@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" +regjsgen@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.4.0.tgz#c1eb4c89a209263f8717c782591523913ede2561" + regjsparser@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" dependencies: jsesc "~0.5.0" +regjsparser@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.3.0.tgz#3c326da7fcfd69fa0d332575a41c8c0cdf588c96" + dependencies: + jsesc "~0.5.0" + relateurl@0.2.x: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" @@ -11815,7 +13651,7 @@ resolve@1.5.0: dependencies: path-parse "^1.0.5" -resolve@1.8.1, resolve@^1.1.3, resolve@^1.1.4: +resolve@1.8.1, resolve@^1.1.3, resolve@^1.1.4, resolve@^1.3.2: version "1.8.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" dependencies: @@ -11845,6 +13681,10 @@ ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" +retry@0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + retry@^0.10.0: version "0.10.1" resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" @@ -11929,7 +13769,7 @@ safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, s version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" -safe-buffer@^5.1.2: +safe-buffer@5.1.2, safe-buffer@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -12043,10 +13883,18 @@ semver-diff@^2.0.0: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" +semver@5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" + semver@^5.5.1: version "5.5.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477" +semver@~4.3.3: + version "4.3.6" + resolved "http://registry.npmjs.org/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" + semver@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" @@ -12295,10 +14143,33 @@ sntp@2.x.x: dependencies: hoek "4.x.x" +socket.io-adapter@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b" + dependencies: + debug "2.3.3" + socket.io-parser "2.3.1" + socket.io-adapter@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b" +socket.io-client@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.3.tgz#b30e86aa10d5ef3546601c09cde4765e381da377" + dependencies: + backo2 "1.0.2" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "2.3.3" + engine.io-client "1.8.3" + has-binary "0.1.7" + indexof "0.0.1" + object-component "0.0.3" + parseuri "0.0.5" + socket.io-parser "2.3.1" + to-array "0.1.4" + socket.io-client@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.0.4.tgz#0918a552406dc5e540b380dcd97afc4a64332f8e" @@ -12317,6 +14188,15 @@ socket.io-client@2.0.4: socket.io-parser "~3.1.1" to-array "0.1.4" +socket.io-parser@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0" + dependencies: + component-emitter "1.1.2" + debug "2.2.0" + isarray "0.0.1" + json3 "3.3.2" + socket.io-parser@~3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.1.3.tgz#ed2da5ee79f10955036e3da413bfd7f1e4d86c8e" @@ -12326,6 +14206,18 @@ socket.io-parser@~3.1.1: has-binary2 "~1.0.2" isarray "2.0.1" +socket.io@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.3.tgz#b8af9caba00949e568e369f1327ea9be9ea2461b" + dependencies: + debug "2.3.3" + engine.io "1.8.3" + has-binary "0.1.7" + object-assign "4.1.0" + socket.io-adapter "0.5.0" + socket.io-client "1.7.3" + socket.io-parser "2.3.1" + socket.io@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.0.4.tgz#c1a4590ceff87ecf13c72652f046f716b29e6014" @@ -12454,6 +14346,12 @@ source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.3, sourc version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" +source-map@^0.1.41: + version "0.1.43" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + dependencies: + amdefine ">=0.0.4" + source-map@^0.4.2, source-map@^0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" @@ -12581,6 +14479,10 @@ stackframe@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-0.3.1.tgz#33aa84f1177a5548c8935533cbfeb3420975f5a4" +stackframe@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.0.4.tgz#357b24a992f9427cba6b545d96a14ed2cbca187b" + staged-git-files@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-1.1.2.tgz#4326d33886dc9ecfa29a6193bf511ba90a46454b" @@ -12681,6 +14583,10 @@ streamroller@0.7.0: mkdirp "^0.5.1" readable-stream "^2.3.0" +streamsearch@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" + strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" @@ -12808,6 +14714,13 @@ strong-log-transformer@^2.0.0: minimist "^1.2.0" through "^2.3.4" +style-loader@0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.19.0.tgz#7258e788f0fee6a42d710eaf7d6c2412a4c50759" + dependencies: + loader-utils "^1.0.2" + schema-utils "^0.3.0" + style-loader@0.20.1: version "0.20.1" resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.20.1.tgz#33ac2bf4d5c65a8906bc586ad253334c246998d0" @@ -12828,6 +14741,22 @@ subarg@^1.0.0: dependencies: minimist "^1.1.0" +subscriptions-transport-ws@^0.9.11: + version "0.9.15" + resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.15.tgz#68a8b7ba0037d8c489fb2f5a102d1494db297d0d" + dependencies: + backo2 "^1.0.2" + eventemitter3 "^3.1.0" + iterall "^1.2.1" + symbol-observable "^1.0.4" + ws "^5.2.0" + +supports-color@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" + dependencies: + has-flag "^1.0.0" + supports-color@4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" @@ -12878,7 +14807,7 @@ symbol-observable@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" -symbol-observable@^1.1.0, symbol-observable@^1.2.0: +symbol-observable@^1.0.2, symbol-observable@^1.0.4, symbol-observable@^1.1.0, symbol-observable@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" @@ -12909,6 +14838,10 @@ tapable@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.0.0.tgz#cbb639d9002eed9c6b5975eb20598d7936f1f9f2" +tapable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.0.tgz#0d076a172e3d9ba088fd2272b2668fb8d194b78c" + tar-pack@^3.4.0: version "3.4.1" resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" @@ -13050,6 +14983,12 @@ tmatch@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/tmatch/-/tmatch-2.0.1.tgz#0c56246f33f30da1b8d3d72895abaf16660f38cf" +tmp@0.0.31: + version "0.0.31" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" + dependencies: + os-tmpdir "~1.0.1" + tmp@0.0.33, tmp@0.0.x, tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -13182,7 +15121,7 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-is@~1.6.15, type-is@~1.6.16: +type-is@^1.6.16, type-is@~1.6.15, type-is@~1.6.16: version "1.6.16" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" dependencies: @@ -13193,6 +15132,10 @@ typedarray@^0.0.6, typedarray@~0.0.5: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" +ua-parser-js@^0.7.18: + version "0.7.18" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.18.tgz#a7bfd92f56edfb117083b69e31d2aa8882d4b1ed" + ua-parser-js@^0.7.9: version "0.7.17" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac" @@ -13262,6 +15205,10 @@ uid-number@0.0.6, uid-number@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" +ultron@1.0.x: + version "1.0.2" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" + ultron@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" @@ -13293,6 +15240,25 @@ underscore@~1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209" +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz#9f1dc76926d6ccf452310564fd834ace059663d4" + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz#5a533f31b4317ea76f17d807fa0d116546111dd0" + unidragger@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/unidragger/-/unidragger-2.1.0.tgz#e4c23f5fab8188c637e776d0b3810c7d989e5561" @@ -13558,7 +15524,7 @@ value-equal@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-0.4.0.tgz#c5bdd2f54ee093c04839d71ce2e4758a6890abc7" -vary@~1.1.2: +vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -13651,7 +15617,17 @@ webidl-conversions@^4.0.1, webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" -webpack-dev-middleware@1.12.2, webpack-dev-middleware@^1.11.0, webpack-dev-middleware@^1.12.0: +webpack-dev-middleware@1.12.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.0.tgz#d34efefb2edda7e1d3b5dbe07289513219651709" + dependencies: + memory-fs "~0.4.1" + mime "^1.3.4" + path-is-absolute "^1.0.0" + range-parser "^1.0.3" + time-stamp "^2.0.0" + +webpack-dev-middleware@1.12.2, webpack-dev-middleware@^1.0.11, webpack-dev-middleware@^1.11.0, webpack-dev-middleware@^1.12.0: version "1.12.2" resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e" dependencies: @@ -13685,6 +15661,38 @@ webpack-dev-middleware@^2.0.6: url-join "^2.0.2" webpack-log "^1.0.1" +webpack-dev-server@2.9.4: + version "2.9.4" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.9.4.tgz#7883e61759c6a4b33e9b19ec4037bd4ab61428d1" + dependencies: + ansi-html "0.0.7" + array-includes "^3.0.3" + bonjour "^3.5.0" + chokidar "^1.6.0" + compression "^1.5.2" + connect-history-api-fallback "^1.3.0" + debug "^3.1.0" + del "^3.0.0" + express "^4.13.3" + html-entities "^1.2.0" + http-proxy-middleware "~0.17.4" + import-local "^0.1.1" + internal-ip "1.2.0" + ip "^1.1.5" + killable "^1.0.0" + loglevel "^1.4.1" + opn "^5.1.0" + portfinder "^1.0.9" + selfsigned "^1.9.1" + serve-index "^1.7.2" + sockjs "0.3.18" + sockjs-client "1.1.4" + spdy "^3.4.1" + strip-ansi "^3.0.1" + supports-color "^4.2.1" + webpack-dev-middleware "^1.11.0" + yargs "^6.6.0" + webpack-dev-server@2.9.7: version "2.9.7" resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.9.7.tgz#100ad6a14775478924d417ca6dcfb9d52a98faed" @@ -13750,6 +15758,15 @@ webpack-dev-server@3.1.5: webpack-log "^1.1.2" yargs "11.0.0" +webpack-hot-middleware@2.20.0: + version "2.20.0" + resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.20.0.tgz#cb896d837758b6408fe0afeeafdc0e5316b15319" + dependencies: + ansi-html "0.0.7" + html-entities "^1.2.0" + querystring "^0.2.0" + strip-ansi "^3.0.0" + webpack-hot-middleware@2.21.0: version "2.21.0" resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.21.0.tgz#7b3c113a7a4b301c91e0749573c7aab28b414b52" @@ -13789,6 +15806,10 @@ webpack-merge@4.1.4: dependencies: lodash "^4.17.5" +webpack-node-externals@^1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-1.7.2.tgz#6e1ee79ac67c070402ba700ef033a9b8d52ac4e3" + webpack-sources@^1.0.1, webpack-sources@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" @@ -13796,6 +15817,13 @@ webpack-sources@^1.0.1, webpack-sources@^1.1.0: source-list-map "^2.0.0" source-map "~0.6.1" +webpack-sources@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + webpack@3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.10.0.tgz#5291b875078cf2abf42bdd23afe3f8f96c17d725" @@ -13823,6 +15851,33 @@ webpack@3.10.0: webpack-sources "^1.0.1" yargs "^8.0.2" +webpack@3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.8.1.tgz#b16968a81100abe61608b0153c9159ef8bb2bd83" + dependencies: + acorn "^5.0.0" + acorn-dynamic-import "^2.0.0" + ajv "^5.1.5" + ajv-keywords "^2.0.0" + async "^2.1.2" + enhanced-resolve "^3.4.0" + escope "^3.6.0" + interpret "^1.0.0" + json-loader "^0.5.4" + json5 "^0.5.1" + loader-runner "^2.3.0" + loader-utils "^1.1.0" + memory-fs "~0.4.1" + mkdirp "~0.5.0" + node-libs-browser "^2.0.0" + source-map "^0.5.3" + supports-color "^4.2.1" + tapable "^0.2.7" + uglifyjs-webpack-plugin "^0.4.6" + watchpack "^1.4.0" + webpack-sources "^1.0.1" + yargs "^8.0.2" + webpack@4.16.4: version "4.16.4" resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.16.4.tgz#6b020f76483bc66339164c296d89978aa100d37a" @@ -13853,6 +15908,35 @@ webpack@4.16.4: watchpack "^1.5.0" webpack-sources "^1.0.1" +webpack@^4.20.2: + version "4.22.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.22.0.tgz#b168111e2e7b05f5169ac484e79e62093ec39e0d" + dependencies: + "@webassemblyjs/ast" "1.7.8" + "@webassemblyjs/helper-module-context" "1.7.8" + "@webassemblyjs/wasm-edit" "1.7.8" + "@webassemblyjs/wasm-parser" "1.7.8" + acorn "^5.6.2" + acorn-dynamic-import "^3.0.0" + ajv "^6.1.0" + ajv-keywords "^3.1.0" + chrome-trace-event "^1.0.0" + enhanced-resolve "^4.1.0" + eslint-scope "^4.0.0" + json-parse-better-errors "^1.0.2" + loader-runner "^2.3.0" + loader-utils "^1.1.0" + memory-fs "~0.4.1" + micromatch "^3.1.8" + mkdirp "~0.5.0" + neo-async "^2.5.0" + node-libs-browser "^2.0.0" + schema-utils "^0.4.4" + tapable "^1.1.0" + uglifyjs-webpack-plugin "^1.2.4" + watchpack "^1.5.0" + webpack-sources "^1.3.0" + websocket-driver@>=0.5.1: version "0.7.0" resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" @@ -14014,6 +16098,13 @@ write@^0.2.1: dependencies: mkdirp "^0.5.1" +ws@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.2.tgz#8a244fa052401e08c9886cf44a85189e1fd4067f" + dependencies: + options ">=0.0.5" + ultron "1.0.x" + ws@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/ws/-/ws-4.1.0.tgz#a979b5d7d4da68bf54efe0408967c324869a7289" @@ -14021,6 +16112,12 @@ ws@^4.0.0: async-limiter "~1.0.0" safe-buffer "~5.1.0" +ws@^5.2.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" + dependencies: + async-limiter "~1.0.0" + ws@~3.3.1: version "3.3.3" resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" @@ -14029,6 +16126,10 @@ ws@~3.3.1: safe-buffer "~5.1.0" ultron "~1.1.0" +wtf-8@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a" + xdg-basedir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" @@ -14037,6 +16138,10 @@ xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" +xmlhttprequest-ssl@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d" + xmlhttprequest-ssl@~1.5.4: version "1.5.5" resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" @@ -14133,6 +16238,23 @@ yargs@^12.0.1: y18n "^3.2.1 || ^4.0.0" yargs-parser "^10.1.0" +yargs@^12.0.2: + version "12.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.2.tgz#fe58234369392af33ecbef53819171eff0f5aadc" + dependencies: + cliui "^4.0.0" + decamelize "^2.0.0" + find-up "^3.0.0" + get-caller-file "^1.0.1" + os-locale "^3.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^10.1.0" + yargs@^6.6.0: version "6.6.0" resolved "http://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" @@ -14205,3 +16327,17 @@ yauzl@2.4.1: yeast@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + +zen-observable-ts@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.4.4.tgz#c244c71eaebef79a985ccf9895bc90307a6e9712" + +zen-observable-ts@^0.8.10: + version "0.8.10" + resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.10.tgz#18e2ce1c89fe026e9621fd83cc05168228fce829" + dependencies: + zen-observable "^0.8.0" + +zen-observable@^0.8.0: + version "0.8.9" + resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.9.tgz#0475c760ff0eda046bbdfa4dc3f95d392807ac53"