diff --git a/CHANGELOG.md b/CHANGELOG.md
index 47338570..a1d9fbd7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,22 @@
# Solid React Application Generator
+## 0.6.0 (August 14, 2019)
+
+#### Solid React Application Base
+
+##### Added
+* New Tic-Tac-Toe Game
+ * Demonstrates key Solid functionality such as:
+ * Discovering where a user wants their application data to be stored
+ * Creating application-specific files and folders
+ * Managing permissions of files and folders
+ * Discovering a global inbox
+ * Sending game invite notifications to a global inbox
+ * Creating and/or discovering an application-specific inbox
+ * Sending application-specific notifications to the application inbox
+ * Granting access to different Pods, to allow opponents to read data from and write data to your Pod
+ * Interoperable notification data structure, so notifications in the global inbox can be read by any compatible application
+
## 0.5.2 (June 19, 2019)
#### Solid React Application Base
@@ -11,7 +28,7 @@
##### Fixed
* Fixed some missing error translations
-## 0.5.1 (June 5, 2019)
+## 0.5.1 (June 5, 2019)
#### Solid React Application Base
diff --git a/README.md b/README.md
index 33ab277e..e4e341c7 100644
--- a/README.md
+++ b/README.md
@@ -126,7 +126,7 @@ In the event you want more specific errors in a given component, you can call Er
.
// This should only be used as an escape hatch. Normally you would put
// images into the `src` and `import` them in code to get their paths.
- PUBLIC_URL: publicUrl,
+ PUBLIC_URL: publicUrl
}
);
// Stringify all values so we can feed into Webpack DefinePlugin
@@ -82,7 +81,7 @@ function getClientEnvironment(publicUrl) {
'process.env': Object.keys(raw).reduce((env, key) => {
env[key] = JSON.stringify(raw[key]);
return env;
- }, {}),
+ }, {})
};
return { raw, stringified };
diff --git a/generators/app/templates/config/jest/cssTransform.js b/generators/app/templates/config/jest/cssTransform.js
index d3612352..e9c68de2 100644
--- a/generators/app/templates/config/jest/cssTransform.js
+++ b/generators/app/templates/config/jest/cssTransform.js
@@ -8,5 +8,5 @@ module.exports = {
getCacheKey() {
// The output is always the same.
return 'cssTransform';
- },
+ }
};
diff --git a/generators/app/templates/config/jest/fileTransform.js b/generators/app/templates/config/jest/fileTransform.js
index 166b8672..18818044 100644
--- a/generators/app/templates/config/jest/fileTransform.js
+++ b/generators/app/templates/config/jest/fileTransform.js
@@ -24,5 +24,5 @@ module.exports = {
}
return `module.exports = ${assetFilename};`;
- },
+ }
};
diff --git a/generators/app/templates/config/paths.js b/generators/app/templates/config/paths.js
index cc188e45..fce21123 100644
--- a/generators/app/templates/config/paths.js
+++ b/generators/app/templates/config/paths.js
@@ -1,3 +1,4 @@
+/* eslint-disable */
const path = require('path');
const fs = require('fs');
const url = require('url');
@@ -20,8 +21,7 @@ function ensureSlash(inputPath, needsSlash) {
}
}
-const getPublicUrl = appPackageJson =>
- envPublicUrl || require(appPackageJson).homepage;
+const getPublicUrl = appPackageJson => envPublicUrl || require(appPackageJson).homepage;
// We use `PUBLIC_URL` environment variable or "homepage" field to infer
// "public path" at which the app is served.
@@ -31,8 +31,7 @@ const getPublicUrl = appPackageJson =>
// like /todos/42/static/js/bundle.7289d.js. We have to know the root.
function getServedPath(appPackageJson) {
const publicUrl = getPublicUrl(appPackageJson);
- const servedUrl =
- envPublicUrl || (publicUrl ? url.parse(publicUrl).pathname : '/');
+ const servedUrl = envPublicUrl || (publicUrl ? url.parse(publicUrl).pathname : '/');
return ensureSlash(servedUrl, true);
}
@@ -47,7 +46,7 @@ const moduleFileExtensions = [
'tsx',
'json',
'web.jsx',
- 'jsx',
+ 'jsx'
];
// Resolve file paths in the same order as webpack
@@ -79,9 +78,7 @@ module.exports = {
proxySetup: resolveApp('src/setupProxy.js'),
appNodeModules: resolveApp('node_modules'),
publicUrl: getPublicUrl(resolveApp('package.json')),
- servedPath: getServedPath(resolveApp('package.json')),
+ servedPath: getServedPath(resolveApp('package.json'))
};
-
-
module.exports.moduleFileExtensions = moduleFileExtensions;
diff --git a/generators/app/templates/config/webpack.config.js b/generators/app/templates/config/webpack.config.js
index 72e27210..703115ae 100644
--- a/generators/app/templates/config/webpack.config.js
+++ b/generators/app/templates/config/webpack.config.js
@@ -1,37 +1,36 @@
-"";
+/* eslint-disable */
+const fs = require('fs');
+const path = require('path');
+const webpack = require('webpack');
+const resolve = require('resolve');
+const PnpWebpackPlugin = require('pnp-webpack-plugin');
+const HtmlWebpackPlugin = require('html-webpack-plugin');
+const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin');
+const InlineChunkHtmlPlugin = require('react-dev-utils/InlineChunkHtmlPlugin');
+const TerserPlugin = require('terser-webpack-plugin');
+const MiniCssExtractPlugin = require('mini-css-extract-plugin');
+const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
+const safePostCssParser = require('postcss-safe-parser');
+const ManifestPlugin = require('webpack-manifest-plugin');
+const InterpolateHtmlPlugin = require('react-dev-utils/InterpolateHtmlPlugin');
+const WorkboxWebpackPlugin = require('workbox-webpack-plugin');
+const WatchMissingNodeModulesPlugin = require('react-dev-utils/WatchMissingNodeModulesPlugin');
+const ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin');
+const getCSSModuleLocalIdent = require('react-dev-utils/getCSSModuleLocalIdent');
+const paths = require('./paths');
+const getClientEnvironment = require('./env');
+const ModuleNotFoundPlugin = require('react-dev-utils/ModuleNotFoundPlugin');
+const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin-alt');
+const typescriptFormatter = require('react-dev-utils/typescriptFormatter');
-const fs = require("fs");
-const path = require("path");
-const webpack = require("webpack");
-const resolve = require("resolve");
-const PnpWebpackPlugin = require("pnp-webpack-plugin");
-const HtmlWebpackPlugin = require("html-webpack-plugin");
-const CaseSensitivePathsPlugin = require("case-sensitive-paths-webpack-plugin");
-const InlineChunkHtmlPlugin = require("react-dev-utils/InlineChunkHtmlPlugin");
-const TerserPlugin = require("terser-webpack-plugin");
-const MiniCssExtractPlugin = require("mini-css-extract-plugin");
-const OptimizeCSSAssetsPlugin = require("optimize-css-assets-webpack-plugin");
-const safePostCssParser = require("postcss-safe-parser");
-const ManifestPlugin = require("webpack-manifest-plugin");
-const InterpolateHtmlPlugin = require("react-dev-utils/InterpolateHtmlPlugin");
-const WorkboxWebpackPlugin = require("workbox-webpack-plugin");
-const WatchMissingNodeModulesPlugin = require("react-dev-utils/WatchMissingNodeModulesPlugin");
-const ModuleScopePlugin = require("react-dev-utils/ModuleScopePlugin");
-const getCSSModuleLocalIdent = require("react-dev-utils/getCSSModuleLocalIdent");
-const paths = require("./paths");
-const getClientEnvironment = require("./env");
-const ModuleNotFoundPlugin = require("react-dev-utils/ModuleNotFoundPlugin");
-const ForkTsCheckerWebpackPlugin = require("fork-ts-checker-webpack-plugin-alt");
-const typescriptFormatter = require("react-dev-utils/typescriptFormatter");
-
-const CopyWebpackPlugin = require("copy-webpack-plugin");
-const HtmlWebpackIncludeAssetsPlugin = require("html-webpack-include-assets-plugin");
+const CopyWebpackPlugin = require('copy-webpack-plugin');
+const HtmlWebpackIncludeAssetsPlugin = require('html-webpack-include-assets-plugin');
// Source maps are resource heavy and can cause out of memory issue for large source files.
-const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== "false";
+const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== 'false';
// Some apps do not need the benefits of saving a web request, so not inlining the chunk
// makes for a smoother build process.
-const shouldInlineRuntimeChunk = process.env.INLINE_RUNTIME_CHUNK !== "false";
+const shouldInlineRuntimeChunk = process.env.INLINE_RUNTIME_CHUNK !== 'false';
// Check if TypeScript is setup
const useTypeScript = fs.existsSync(paths.appTsConfig);
@@ -43,67 +42,63 @@ const sassRegex = /\.(scss|sass)$/;
const sassModuleRegex = /\.module\.(scss|sass)$/;
const externalAssets = [
- "solid-auth-client/dist-popup/popup.html",
- "solid-auth-client/dist-lib/solid-auth-client.bundle.js",
- "solid-auth-client/dist-lib/solid-auth-client.bundle.js.map",
- "@solid/query-ldflex/dist/solid-query-ldflex.bundle.js",
- "@solid/query-ldflex/dist/solid-query-ldflex.bundle.js.map"
+ 'solid-auth-client/dist-popup/popup.html',
+ 'solid-auth-client/dist-lib/solid-auth-client.bundle.js',
+ 'solid-auth-client/dist-lib/solid-auth-client.bundle.js.map',
+ '@solid/query-ldflex/dist/solid-query-ldflex.bundle.js',
+ '@solid/query-ldflex/dist/solid-query-ldflex.bundle.js.map'
];
// This is the production and development configuration.
// It is focused on developer experience, fast rebuilds, and a minimal bundle.
module.exports = function(webpackEnv) {
- const isEnvDevelopment = webpackEnv === "development";
- const isEnvProduction = webpackEnv === "production";
+ const isEnvDevelopment = webpackEnv === 'development';
+ const isEnvProduction = webpackEnv === 'production';
// Webpack uses `publicPath` to determine where the app is being served from.
// It requires a trailing slash, or the file assets will get an incorrect path.
// In development, we always serve from the root. This makes config easier.
- const publicPath = isEnvProduction
- ? paths.servedPath
- : isEnvDevelopment && "/";
+ const publicPath = isEnvProduction ? paths.servedPath : isEnvDevelopment && '/';
// Some apps do not use client-side routing with pushState.
// For these, "homepage" can be set to "." to enable relative asset paths.
- const shouldUseRelativeAssetPaths = publicPath === "./";
+ const shouldUseRelativeAssetPaths = publicPath === './';
// `publicUrl` is just like `publicPath`, but we will provide it to our app
// as %PUBLIC_URL% in `index.html` and `process.env.PUBLIC_URL` in JavaScript.
// Omit trailing slash as %PUBLIC_URL%/xyz looks better than %PUBLIC_URL%xyz.
- const publicUrl = isEnvProduction
- ? publicPath.slice(0, -1)
- : isEnvDevelopment && "";
+ const publicUrl = isEnvProduction ? publicPath.slice(0, -1) : isEnvDevelopment && '';
// Get environment variables to inject into our app.
const env = getClientEnvironment(publicUrl);
// common function to get style loaders
const getStyleLoaders = (cssOptions, preProcessor) => {
const loaders = [
- isEnvDevelopment && require.resolve("style-loader"),
+ isEnvDevelopment && require.resolve('style-loader'),
isEnvProduction && {
loader: MiniCssExtractPlugin.loader,
options: Object.assign(
{},
- shouldUseRelativeAssetPaths ? { publicPath: "../../" } : undefined
+ shouldUseRelativeAssetPaths ? { publicPath: '../../' } : undefined
)
},
{
- loader: require.resolve("css-loader"),
+ loader: require.resolve('css-loader'),
options: cssOptions
},
{
// Options for PostCSS as we reference these options twice
// Adds vendor prefixing based on your specified browser support in
// package.json
- loader: require.resolve("postcss-loader"),
+ loader: require.resolve('postcss-loader'),
options: {
// Necessary for external CSS imports to work
// https://github.com/facebook/create-react-app/issues/2677
- ident: "postcss",
+ ident: 'postcss',
plugins: () => [
- require("postcss-flexbugs-fixes"),
- require("postcss-preset-env")({
+ require('postcss-flexbugs-fixes'),
+ require('postcss-preset-env')({
autoprefixer: {
- flexbox: "no-2009"
+ flexbox: 'no-2009'
},
stage: 3
})
@@ -124,14 +119,14 @@ module.exports = function(webpackEnv) {
};
return {
- mode: isEnvProduction ? "production" : isEnvDevelopment && "development",
+ mode: isEnvProduction ? 'production' : isEnvDevelopment && 'development',
// Stop compilation early in production
bail: isEnvProduction,
devtool: isEnvProduction
? shouldUseSourceMap
- ? "source-map"
+ ? 'source-map'
: false
- : isEnvDevelopment && "cheap-module-source-map",
+ : isEnvDevelopment && 'cheap-module-source-map',
// These are the "entry points" to our application.
// This means they will be the "root" imports that are included in JS bundle.
entry: [
@@ -145,8 +140,7 @@ module.exports = function(webpackEnv) {
// the line below with these two lines if you prefer the stock client:
// require.resolve('webpack-dev-server/client') + '?/',
// require.resolve('webpack/hot/dev-server'),
- isEnvDevelopment &&
- require.resolve("react-dev-utils/webpackHotDevClient"),
+ isEnvDevelopment && require.resolve('react-dev-utils/webpackHotDevClient'),
// Finally, this is your app's code:
paths.appIndexJs
// We include the app code last so that if there is a runtime error during
@@ -161,23 +155,19 @@ module.exports = function(webpackEnv) {
// There will be one main bundle, and one file per asynchronous chunk.
// In development, it does not produce real files.
filename: isEnvProduction
- ? "static/js/[name].[chunkhash:8].js"
- : isEnvDevelopment && "static/js/bundle.js",
+ ? 'static/js/[name].[chunkhash:8].js'
+ : isEnvDevelopment && 'static/js/bundle.js',
// There are also additional JS chunk files if you use code splitting.
chunkFilename: isEnvProduction
- ? "static/js/[name].[chunkhash:8].chunk.js"
- : isEnvDevelopment && "static/js/[name].chunk.js",
+ ? 'static/js/[name].[chunkhash:8].chunk.js'
+ : isEnvDevelopment && 'static/js/[name].chunk.js',
// We inferred the "public path" (such as / or /my-project) from homepage.
// We use "/" in development.
publicPath: publicPath,
// Point sourcemap entries to original disk location (format as URL on Windows)
devtoolModuleFilenameTemplate: isEnvProduction
- ? info =>
- path
- .relative(paths.appSrc, info.absoluteResourcePath)
- .replace(/\\/g, "/")
- : isEnvDevelopment &&
- (info => path.resolve(info.absoluteResourcePath).replace(/\\/g, "/"))
+ ? info => path.relative(paths.appSrc, info.absoluteResourcePath).replace(/\\/g, '/')
+ : isEnvDevelopment && (info => path.resolve(info.absoluteResourcePath).replace(/\\/g, '/'))
},
optimization: {
minimize: isEnvProduction,
@@ -246,7 +236,7 @@ module.exports = function(webpackEnv) {
// https://twitter.com/wSokra/status/969633336732905474
// https://medium.com/webpack/webpack-4-code-splitting-chunk-graph-and-the-splitchunks-optimization-be739a861366
splitChunks: {
- chunks: "all",
+ chunks: 'all',
name: false
},
// Keep the runtime chunk separated to enable long term caching
@@ -258,7 +248,7 @@ module.exports = function(webpackEnv) {
// We placed these paths second because we want `node_modules` to "win"
// if there are any conflicts. This matches Node resolution mechanism.
// https://github.com/facebook/create-react-app/issues/253
- modules: ["node_modules"].concat(
+ modules: ['node_modules'].concat(
// It is guaranteed to exist because we tweak it in `env.js`
process.env.NODE_PATH.split(path.delimiter).filter(Boolean)
),
@@ -270,12 +260,12 @@ module.exports = function(webpackEnv) {
// for React Native Web.
extensions: paths.moduleFileExtensions
.map(ext => `.${ext}`)
- .filter(ext => useTypeScript || !ext.includes("ts")),
+ .filter(ext => useTypeScript || !ext.includes('ts')),
alias: {
- react: require.resolve("react"),
+ react: require.resolve('react'),
// Support React Native Web
// https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/
- "react-native": "react-native-web"
+ 'react-native': 'react-native-web'
},
plugins: [
// Adds support for installing with Plug'n'Play, leading to faster installs and adding
@@ -306,14 +296,14 @@ module.exports = function(webpackEnv) {
// It's important to do this before Babel processes the JS.
{
test: /\.(js|mjs|jsx)$/,
- enforce: "pre",
+ enforce: 'pre',
use: [
{
options: {
- formatter: require.resolve("react-dev-utils/eslintFormatter"),
- eslintPath: require.resolve("eslint")
+ formatter: require.resolve('react-dev-utils/eslintFormatter'),
+ eslintPath: require.resolve('eslint')
},
- loader: require.resolve("eslint-loader")
+ loader: require.resolve('eslint-loader')
}
],
include: paths.appSrc
@@ -328,10 +318,10 @@ module.exports = function(webpackEnv) {
// A missing `test` is equivalent to a match.
{
test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/],
- loader: require.resolve("url-loader"),
+ loader: require.resolve('url-loader'),
options: {
limit: 10000,
- name: "static/media/[name].[hash:8].[ext]"
+ name: 'static/media/[name].[hash:8].[ext]'
}
},
// Process application JS with Babel.
@@ -339,19 +329,17 @@ module.exports = function(webpackEnv) {
{
test: /\.(js|mjs|jsx|ts|tsx)$/,
include: paths.appSrc,
- loader: require.resolve("babel-loader"),
+ loader: require.resolve('babel-loader'),
options: {
- customize: require.resolve(
- "babel-preset-react-app/webpack-overrides"
- ),
+ customize: require.resolve('babel-preset-react-app/webpack-overrides'),
plugins: [
[
- require.resolve("babel-plugin-named-asset-import"),
+ require.resolve('babel-plugin-named-asset-import'),
{
loaderMap: {
svg: {
- ReactComponent: "@svgr/webpack?-prettier,-svgo![path]"
+ ReactComponent: '@svgr/webpack?-prettier,-svgo![path]'
}
}
}
@@ -370,16 +358,13 @@ module.exports = function(webpackEnv) {
{
test: /\.(js|mjs)$/,
exclude: /@babel(?:\/|\\{1,2})runtime/,
- loader: require.resolve("babel-loader"),
+ loader: require.resolve('babel-loader'),
options: {
babelrc: false,
configFile: false,
compact: false,
presets: [
- [
- require.resolve("babel-preset-react-app/dependencies"),
- { helpers: true }
- ]
+ [require.resolve('babel-preset-react-app/dependencies'), { helpers: true }]
],
cacheDirectory: true,
cacheCompression: isEnvProduction,
@@ -433,7 +418,7 @@ module.exports = function(webpackEnv) {
importLoaders: 2,
sourceMap: isEnvProduction && shouldUseSourceMap
},
- "sass-loader"
+ 'sass-loader'
),
// Don't consider CSS imports dead code even if the
// containing package claims to have no side effects.
@@ -452,7 +437,7 @@ module.exports = function(webpackEnv) {
modules: true,
getLocalIdent: getCSSModuleLocalIdent
},
- "sass-loader"
+ 'sass-loader'
)
},
// "file" loader makes sure those assets get served by WebpackDevServer.
@@ -461,14 +446,14 @@ module.exports = function(webpackEnv) {
// This loader doesn't use a "test" so it will catch all modules
// that fall through the other loaders.
{
- loader: require.resolve("file-loader"),
+ loader: require.resolve('file-loader'),
// Exclude `js` files to keep "css" loader working as it injects
// its runtime that would otherwise be processed through "file" loader.
// Also exclude `html` and `json` extensions so they get processed
// by webpacks internal loaders.
exclude: [/\.(js|mjs|jsx|ts|tsx)$/, /\.html$/, /\.json$/],
options: {
- name: "static/media/[name].[hash:8].[ext]"
+ name: 'static/media/[name].[hash:8].[ext]'
}
}
// ** STOP ** Are you adding a new loader?
@@ -481,7 +466,7 @@ module.exports = function(webpackEnv) {
new CopyWebpackPlugin(externalAssets.map(a => require.resolve(a))),
new HtmlWebpackIncludeAssetsPlugin({
- assets: [...externalAssets.map(f => f.replace(/.*\//, ""))].filter(f =>
+ assets: [...externalAssets.map(f => f.replace(/.*\//, ''))].filter(f =>
/\.(js|css)$/.test(f)
),
append: false
@@ -543,20 +528,19 @@ module.exports = function(webpackEnv) {
// to restart the development server for Webpack to discover it. This plugin
// makes the discovery automatic so you don't have to restart.
// See https://github.com/facebook/create-react-app/issues/186
- isEnvDevelopment &&
- new WatchMissingNodeModulesPlugin(paths.appNodeModules),
+ isEnvDevelopment && new WatchMissingNodeModulesPlugin(paths.appNodeModules),
isEnvProduction &&
new MiniCssExtractPlugin({
// Options similar to the same options in webpackOptions.output
// both options are optional
- filename: "static/css/[name].[contenthash:8].css",
- chunkFilename: "static/css/[name].[contenthash:8].chunk.css"
+ filename: 'static/css/[name].[contenthash:8].css',
+ chunkFilename: 'static/css/[name].[contenthash:8].chunk.css'
}),
// Generate a manifest file which contains a mapping of all asset filenames
// to their corresponding output file so that tools can pick it up without
// having to parse `index.html`.
new ManifestPlugin({
- fileName: "asset-manifest.json",
+ fileName: 'asset-manifest.json',
publicPath: publicPath
}),
// Moment.js is an extremely popular library that bundles large locale files
@@ -571,40 +555,40 @@ module.exports = function(webpackEnv) {
new WorkboxWebpackPlugin.GenerateSW({
clientsClaim: true,
exclude: [/\.map$/, /asset-manifest\.json$/],
- importWorkboxFrom: "cdn",
- navigateFallback: publicUrl + "/index.html",
+ importWorkboxFrom: 'cdn',
+ navigateFallback: publicUrl + '/index.html',
navigateFallbackBlacklist: [
// Exclude URLs starting with /_, as they're likely an API call
- new RegExp("^/_"),
+ new RegExp('^/_'),
// Exclude URLs containing a dot, as they're likely a resource in
// public/ and not a SPA route
- new RegExp("/[^/]+\\.[^/]+$")
+ new RegExp('/[^/]+\\.[^/]+$')
]
}),
// TypeScript type checking
useTypeScript &&
new ForkTsCheckerWebpackPlugin({
- typescript: resolve.sync("typescript", {
+ typescript: resolve.sync('typescript', {
basedir: paths.appNodeModules
}),
async: false,
checkSyntacticErrors: true,
tsconfig: paths.appTsConfig,
compilerOptions: {
- module: "esnext",
- moduleResolution: "node",
+ module: 'esnext',
+ moduleResolution: 'node',
resolveJsonModule: true,
isolatedModules: true,
noEmit: true,
- jsx: "preserve"
+ jsx: 'preserve'
},
reportFiles: [
- "**",
- "!**/*.json",
- "!**/__tests__/**",
- "!**/?(*.)(spec|test).*",
- "!**/src/setupProxy.*",
- "!**/src/setupTests.*"
+ '**',
+ '!**/*.json',
+ '!**/__tests__/**',
+ '!**/?(*.)(spec|test).*',
+ '!**/src/setupProxy.*',
+ '!**/src/setupTests.*'
],
watch: paths.appSrc,
silent: true,
@@ -614,17 +598,17 @@ module.exports = function(webpackEnv) {
// CRL: add externals block since it's a library
// no need to ship React since it's shipped with the main app
externals: {
- "solid-auth-client": ["solid", "auth"],
- "@solid/query-ldflex": ["solid", "data"]
+ 'solid-auth-client': ['solid', 'auth'],
+ '@solid/query-ldflex': ['solid', 'data']
},
// Some libraries import Node modules but don't use them in the browser.
// Tell Webpack to provide empty mocks for them so importing them works.
node: {
- dgram: "empty",
- fs: "empty",
- net: "empty",
- tls: "empty",
- child_process: "empty"
+ dgram: 'empty',
+ fs: 'empty',
+ net: 'empty',
+ tls: 'empty',
+ child_process: 'empty'
},
// Turn off performance processing because we utilize
// our own hints via the FileSizeReporter
diff --git a/generators/app/templates/config/webpackDevServer.config.js b/generators/app/templates/config/webpackDevServer.config.js
index 285ced4f..65c81c36 100644
--- a/generators/app/templates/config/webpackDevServer.config.js
+++ b/generators/app/templates/config/webpackDevServer.config.js
@@ -1,3 +1,4 @@
+/* eslint-disable */
const errorOverlayMiddleware = require('react-dev-utils/errorOverlayMiddleware');
const evalSourceMapMiddleware = require('react-dev-utils/evalSourceMapMiddleware');
const noopServiceWorkerMiddleware = require('react-dev-utils/noopServiceWorkerMiddleware');
@@ -26,8 +27,7 @@ module.exports = function(proxy, allowedHost) {
// So we will disable the host check normally, but enable it if you have
// specified the `proxy` setting. Finally, we let you override it if you
// really know what you're doing with a special environment variable.
- disableHostCheck:
- !proxy || process.env.DANGEROUSLY_DISABLE_HOST_CHECK === 'true',
+ disableHostCheck: !proxy || process.env.DANGEROUSLY_DISABLE_HOST_CHECK === 'true',
// Enable gzip compression of generated files.
compress: true,
// Silence WebpackDevServer's own logs since they're generally not useful.
@@ -67,7 +67,7 @@ module.exports = function(proxy, allowedHost) {
// src/node_modules is not ignored to support absolute imports
// https://github.com/facebook/create-react-app/issues/1065
watchOptions: {
- ignored: ignoredFiles(paths.appSrc),
+ ignored: ignoredFiles(paths.appSrc)
},
// Enable HTTPS if the HTTPS environment variable is set to 'true'
https: protocol === 'https',
@@ -76,7 +76,7 @@ module.exports = function(proxy, allowedHost) {
historyApiFallback: {
// Paths with dots should still use the history fallback.
// See https://github.com/facebook/create-react-app/issues/387.
- disableDotRule: true,
+ disableDotRule: true
},
public: allowedHost,
proxy,
@@ -97,6 +97,6 @@ module.exports = function(proxy, allowedHost) {
// it used the same host and port.
// https://github.com/facebook/create-react-app/issues/2272#issuecomment-302832432
app.use(noopServiceWorkerMiddleware());
- },
+ }
};
};
diff --git a/generators/app/templates/package-lock.json b/generators/app/templates/package-lock.json
index e73c2858..2c25b99d 100644
--- a/generators/app/templates/package-lock.json
+++ b/generators/app/templates/package-lock.json
@@ -1855,14 +1855,6 @@
"resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.6.6.tgz",
"integrity": "sha512-ojhgxzUHZ7am3D2jHkMzPpsBAiB005GF5YU4ea+8DNPybMk01JJUM9V9YRlF/GE95tcOm8DxQvWA2jq19bGalQ=="
},
- "@emotion/is-prop-valid": {
- "version": "0.6.8",
- "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.6.8.tgz",
- "integrity": "sha512-IMSL7ekYhmFlILXcouA6ket3vV7u9BqStlXzbKOF9HBtpUPMMlHU+bBxrLOa2NvleVwNIxeq/zL8LafLbeUXcA==",
- "requires": {
- "@emotion/memoize": "^0.6.6"
- }
- },
"@emotion/memoize": {
"version": "0.6.6",
"resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.6.6.tgz",
@@ -1961,28 +1953,57 @@
}
},
"@inrupt/solid-react-components": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/@inrupt/solid-react-components/-/solid-react-components-0.4.3.tgz",
- "integrity": "sha512-E+YhTdrnQsGmrCdCgCaAPy2vG+40qo22ihHv+570+cODoGNMX3BvG+dVfMPOqRvXAwYg9Ybj1WFs3mkiQuencg==",
+ "version": "0.4.4-rc.0",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/@inrupt/solid-react-components/-/solid-react-components-0.4.4-rc.0.tgz",
+ "integrity": "sha512-l7Xfc2Uzmxhw2zYryenyNDz3wef+zjT/F7ZVboCi7iaXnS8aOE+mXPOZNNyDuiNoWAq/b46oFJTPw/QhWhL7kQ==",
"requires": {
"@babel/runtime": "^7.1.2",
"@rdfjs/data-model": "^1.1.1",
"@shexjs/core": "^1.0.0-alpha.4",
"@shexjs/parser": "^1.0.0-alpha.4",
- "@solid/query-ldflex": "^2.5.1",
"@solid/react": "^1.6.0",
"file-type": "^10.7.1",
"html-webpack-include-assets-plugin": "^1.0.6",
+ "jsonld": "^1.6.2",
+ "ldflex": "^2.4.0",
+ "lodash": "^4.17.15",
"mime-types": "^2.1.24",
+ "moment": "^2.24.0",
+ "n3": "^1.1.1",
+ "rdflib": "^0.20.1",
"react-router-dom": "^4.3.1",
"react-select": "^2.2.0",
"solid-auth-client": "^2.3.0",
+ "unique": "0.0.1",
"unique-string": "^1.0.0"
+ },
+ "dependencies": {
+ "jsonld": {
+ "version": "1.6.2",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/jsonld/-/jsonld-1.6.2.tgz",
+ "integrity": "sha512-eMzFHqhF2kPMrMUjw8+Lz9IF1QkrxTOIfVndkP/OpuoZs31VdDtfDs8mLa5EOC/ROdemFTQGLdYPZbRtmMe2Yw==",
+ "requires": {
+ "rdf-canonize": "^1.0.2",
+ "request": "^2.88.0",
+ "semver": "^5.6.0",
+ "xmldom": "0.1.19"
+ }
+ },
+ "ldflex": {
+ "version": "2.4.0",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/ldflex/-/ldflex-2.4.0.tgz",
+ "integrity": "sha512-q7OPKmtKh4Z1gCrqpUOPe2AfKH8+zkNi/YwvmeNkDcXk0hyBL0ZhZTz/jyYNzTfzA0L16CrI8RLG0gB+3GEU9g==",
+ "requires": {
+ "@babel/runtime": "^7.1.5",
+ "@rdfjs/data-model": "^1.1.1",
+ "jsonld-context-parser": "^1.2.0"
+ }
+ }
}
},
"@inrupt/solid-style-guide": {
"version": "0.1.34",
- "resolved": "https://registry.npmjs.org/@inrupt/solid-style-guide/-/solid-style-guide-0.1.34.tgz",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/@inrupt/solid-style-guide/-/solid-style-guide-0.1.34.tgz",
"integrity": "sha512-vfjVRYz+lyscskzDJGT5vjpjqNOwKUQXIB8NgUVwoO8aknmecHDenRep1X/kwYf+RvSibjNbH/0bwm3jVbhjIQ=="
},
"@jest/console": {
@@ -2287,6 +2308,36 @@
"@shexjs/core": "^1.0.0-alpha.4"
}
},
+ "@solid/cli": {
+ "version": "0.1.1",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/@solid/cli/-/cli-0.1.1.tgz",
+ "integrity": "sha512-NRmSKWGycV2u/YDHTB2DWa7JIH9lK/WqT7HEuaRfWWhxlxSiM52p08aJw90qavEp6pWIz+2Os4kRQpQqJU2oiQ==",
+ "requires": {
+ "@solid/oidc-rp": "^0.9.0"
+ },
+ "dependencies": {
+ "@solid/oidc-rp": {
+ "version": "0.9.0",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/@solid/oidc-rp/-/oidc-rp-0.9.0.tgz",
+ "integrity": "sha512-y2gBGp/0+f6D+TEZ+AxjEY2Qx1aqcN0smNR2W+PjaVXGio0t4HXh68kKoSPpSiGd84aMQY9GJfG2ZsVskqjdsg==",
+ "requires": {
+ "@solid/jose": "0.1.8",
+ "@trust/json-document": "^0.1.4",
+ "@trust/webcrypto": "0.9.2",
+ "base64url": "^3.0.0",
+ "node-fetch": "^2.1.2",
+ "standard-http-error": "^2.0.1",
+ "text-encoding": "^0.6.4",
+ "whatwg-url": "^6.4.1"
+ }
+ },
+ "node-fetch": {
+ "version": "2.6.0",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/node-fetch/-/node-fetch-2.6.0.tgz",
+ "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
+ }
+ }
+ },
"@solid/jose": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/@solid/jose/-/jose-0.1.8.tgz",
@@ -3566,9 +3617,9 @@
},
"dependencies": {
"resolve": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.0.tgz",
- "integrity": "sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw==",
+ "version": "1.11.1",
+ "resolved": "http://localhost:4873/resolve/-/resolve-1.11.1.tgz",
+ "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==",
"requires": {
"path-parse": "^1.0.6"
}
@@ -5036,14 +5087,6 @@
"stylis-rule-sheet": "^0.0.10"
}
},
- "create-emotion-styled": {
- "version": "9.2.8",
- "resolved": "https://registry.npmjs.org/create-emotion-styled/-/create-emotion-styled-9.2.8.tgz",
- "integrity": "sha512-2LrNM5MREWzI5hZK+LyiBHglwE18WE3AEbBQgpHQ1+zmyLSm/dJsUZBeFAwuIMb+TjNZP0KsMZlV776ufOtFdg==",
- "requires": {
- "@emotion/is-prop-valid": "^0.6.1"
- }
- },
"create-hash": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
@@ -5476,9 +5519,9 @@
}
},
"csstype": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.5.tgz",
- "integrity": "sha512-JsTaiksRsel5n7XwqPAfB0l3TFKdpjW/kgAELf9vrb5adGA7UCPLajKK5s3nFrcFm3Rkyp/Qkgl73ENc1UY3cA=="
+ "version": "2.6.6",
+ "resolved": "http://localhost:4873/csstype/-/csstype-2.6.6.tgz",
+ "integrity": "sha512-RpFbQGUE74iyPgvr46U9t1xoQBM8T4BL8SxrN66Le2xYAPSaDJJKeztV3awugusb3g3G9iL8StmkBBXhcbbXhg=="
},
"cyclist": {
"version": "0.2.2",
@@ -6179,6 +6222,37 @@
}
}
},
+ "eslint-config-airbnb": {
+ "version": "17.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-17.1.0.tgz",
+ "integrity": "sha512-R9jw28hFfEQnpPau01NO5K/JWMGLi6aymiF6RsnMURjTk+MqZKllCqGK/0tOvHkPi/NWSSOU2Ced/GX++YxLnw==",
+ "dev": true,
+ "requires": {
+ "eslint-config-airbnb-base": "^13.1.0",
+ "object.assign": "^4.1.0",
+ "object.entries": "^1.0.4"
+ }
+ },
+ "eslint-config-airbnb-base": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.1.0.tgz",
+ "integrity": "sha512-XWwQtf3U3zIoKO1BbHh6aUhJZQweOwSt4c2JrPDg9FP3Ltv3+YfEv7jIDB8275tVnO/qOHbfuYg3kzw6Je7uWw==",
+ "dev": true,
+ "requires": {
+ "eslint-restricted-globals": "^0.1.1",
+ "object.assign": "^4.1.0",
+ "object.entries": "^1.0.4"
+ }
+ },
+ "eslint-config-prettier": {
+ "version": "3.6.0",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/eslint-config-prettier/-/eslint-config-prettier-3.6.0.tgz",
+ "integrity": "sha512-ixJ4U3uTLXwJts4rmSVW/lMXjlGwCijhBJHk8iVqKKSifeI0qgFEfWl8L63isfc8Od7EiBALF6BX3jKLluf/jQ==",
+ "dev": true,
+ "requires": {
+ "get-stdin": "^6.0.0"
+ }
+ },
"eslint-config-react-app": {
"version": "3.0.8",
"resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-3.0.8.tgz",
@@ -6188,6 +6262,12 @@
"confusing-browser-globals": "^1.0.6"
}
},
+ "eslint-config-xo": {
+ "version": "0.25.1",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/eslint-config-xo/-/eslint-config-xo-0.25.1.tgz",
+ "integrity": "sha512-ePb7s4GsmhOn+PSeEka8mltxvimBuPfkq6CSLkdZMJXEOtiDJ5wuHcAEOzqdP/EPZ71X/KGAcaoB8/naPCX/Bw==",
+ "dev": true
+ },
"eslint-import-resolver-node": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz",
@@ -6486,6 +6566,15 @@
}
}
},
+ "eslint-plugin-prettier": {
+ "version": "3.1.0",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.0.tgz",
+ "integrity": "sha512-XWX2yVuwVNLOUhQijAkXz+rMPPoCr7WFiAl8ig6I7Xn+pPVhDhzg4DxHpmbeb0iqjO9UronEA3Tb09ChnFVHHA==",
+ "dev": true,
+ "requires": {
+ "prettier-linter-helpers": "^1.0.0"
+ }
+ },
"eslint-plugin-react": {
"version": "7.11.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.11.1.tgz",
@@ -6515,6 +6604,12 @@
"resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.6.0.tgz",
"integrity": "sha512-lHBVRIaz5ibnIgNG07JNiAuBUeKhEf8l4etNx5vfAEwqQ5tcuK3jV9yjmopPgQDagQb7HwIuQVsE3IVcGrRnag=="
},
+ "eslint-restricted-globals": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz",
+ "integrity": "sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc=",
+ "dev": true
+ },
"eslint-scope": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
@@ -6626,6 +6721,11 @@
"strip-eof": "^1.0.0"
}
},
+ "exenv": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz",
+ "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50="
+ },
"exit": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
@@ -6872,6 +6972,12 @@
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
},
+ "fast-diff": {
+ "version": "1.2.0",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/fast-diff/-/fast-diff-1.2.0.tgz",
+ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
+ "dev": true
+ },
"fast-glob": {
"version": "2.2.7",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz",
@@ -7241,21 +7347,25 @@
"dependencies": {
"abbrev": {
"version": "1.1.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
"optional": true
},
"ansi-regex": {
"version": "2.1.1",
- "bundled": true
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
},
"aproba": {
"version": "1.2.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
"optional": true
},
"are-we-there-yet": {
"version": "1.1.5",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
"optional": true,
"requires": {
"delegates": "^1.0.0",
@@ -7264,11 +7374,13 @@
},
"balanced-match": {
"version": "1.0.0",
- "bundled": true
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
},
"brace-expansion": {
"version": "1.1.11",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -7276,29 +7388,35 @@
},
"chownr": {
"version": "1.1.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz",
+ "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==",
"optional": true
},
"code-point-at": {
"version": "1.1.0",
- "bundled": true
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
},
"concat-map": {
"version": "0.0.1",
- "bundled": true
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
"console-control-strings": {
"version": "1.1.0",
- "bundled": true
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
},
"core-util-is": {
"version": "1.0.2",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
"optional": true
},
"debug": {
"version": "4.1.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"optional": true,
"requires": {
"ms": "^2.1.1"
@@ -7306,22 +7424,26 @@
},
"deep-extend": {
"version": "0.6.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
"optional": true
},
"delegates": {
"version": "1.0.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
"optional": true
},
"detect-libc": {
"version": "1.0.3",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
"optional": true
},
"fs-minipass": {
"version": "1.2.5",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz",
+ "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
"optional": true,
"requires": {
"minipass": "^2.2.1"
@@ -7329,12 +7451,14 @@
},
"fs.realpath": {
"version": "1.0.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
"optional": true
},
"gauge": {
"version": "2.7.4",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
"optional": true,
"requires": {
"aproba": "^1.0.3",
@@ -7349,7 +7473,8 @@
},
"glob": {
"version": "7.1.3",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
"optional": true,
"requires": {
"fs.realpath": "^1.0.0",
@@ -7362,12 +7487,14 @@
},
"has-unicode": {
"version": "2.0.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
"optional": true
},
"iconv-lite": {
"version": "0.4.24",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"optional": true,
"requires": {
"safer-buffer": ">= 2.1.2 < 3"
@@ -7375,7 +7502,8 @@
},
"ignore-walk": {
"version": "3.0.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz",
+ "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
"optional": true,
"requires": {
"minimatch": "^3.0.4"
@@ -7383,7 +7511,8 @@
},
"inflight": {
"version": "1.0.6",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"optional": true,
"requires": {
"once": "^1.3.0",
@@ -7392,39 +7521,46 @@
},
"inherits": {
"version": "2.0.3",
- "bundled": true
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
"ini": {
"version": "1.3.5",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
"optional": true
},
"is-fullwidth-code-point": {
"version": "1.0.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"requires": {
"number-is-nan": "^1.0.0"
}
},
"isarray": {
"version": "1.0.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
"optional": true
},
"minimatch": {
"version": "3.0.4",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"requires": {
"brace-expansion": "^1.1.7"
}
},
"minimist": {
"version": "0.0.8",
- "bundled": true
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
},
"minipass": {
"version": "2.3.5",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz",
+ "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
@@ -7432,7 +7568,8 @@
},
"minizlib": {
"version": "1.2.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz",
+ "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
"optional": true,
"requires": {
"minipass": "^2.2.1"
@@ -7440,19 +7577,22 @@
},
"mkdirp": {
"version": "0.5.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"requires": {
"minimist": "0.0.8"
}
},
"ms": {
"version": "2.1.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
"optional": true
},
"needle": {
"version": "2.3.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/needle/-/needle-2.3.0.tgz",
+ "integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==",
"optional": true,
"requires": {
"debug": "^4.1.0",
@@ -7462,7 +7602,8 @@
},
"node-pre-gyp": {
"version": "0.12.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz",
+ "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==",
"optional": true,
"requires": {
"detect-libc": "^1.0.2",
@@ -7479,7 +7620,8 @@
},
"nopt": {
"version": "4.0.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
+ "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
"optional": true,
"requires": {
"abbrev": "1",
@@ -7488,12 +7630,14 @@
},
"npm-bundled": {
"version": "1.0.6",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz",
+ "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==",
"optional": true
},
"npm-packlist": {
"version": "1.4.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.1.tgz",
+ "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==",
"optional": true,
"requires": {
"ignore-walk": "^3.0.1",
@@ -7502,7 +7646,8 @@
},
"npmlog": {
"version": "4.1.2",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
"optional": true,
"requires": {
"are-we-there-yet": "~1.1.2",
@@ -7513,33 +7658,39 @@
},
"number-is-nan": {
"version": "1.0.1",
- "bundled": true
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
},
"object-assign": {
"version": "4.1.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"optional": true
},
"once": {
"version": "1.4.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"requires": {
"wrappy": "1"
}
},
"os-homedir": {
"version": "1.0.2",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
"optional": true
},
"os-tmpdir": {
"version": "1.0.2",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
"optional": true
},
"osenv": {
"version": "0.1.5",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
"optional": true,
"requires": {
"os-homedir": "^1.0.0",
@@ -7548,17 +7699,20 @@
},
"path-is-absolute": {
"version": "1.0.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
"optional": true
},
"process-nextick-args": {
"version": "2.0.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
"optional": true
},
"rc": {
"version": "1.2.8",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
"optional": true,
"requires": {
"deep-extend": "^0.6.0",
@@ -7569,14 +7723,16 @@
"dependencies": {
"minimist": {
"version": "1.2.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"optional": true
}
}
},
"readable-stream": {
"version": "2.3.6",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"optional": true,
"requires": {
"core-util-is": "~1.0.0",
@@ -7590,7 +7746,8 @@
},
"rimraf": {
"version": "2.6.3",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
"optional": true,
"requires": {
"glob": "^7.1.3"
@@ -7598,36 +7755,43 @@
},
"safe-buffer": {
"version": "5.1.2",
- "bundled": true
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"safer-buffer": {
"version": "2.1.2",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"optional": true
},
"sax": {
"version": "1.2.4",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
"optional": true
},
"semver": {
"version": "5.7.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
+ "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
"optional": true
},
"set-blocking": {
"version": "2.0.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
"optional": true
},
"signal-exit": {
"version": "3.0.2",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
"optional": true
},
"string-width": {
"version": "1.0.2",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
@@ -7636,7 +7800,8 @@
},
"string_decoder": {
"version": "1.1.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"optional": true,
"requires": {
"safe-buffer": "~5.1.0"
@@ -7644,19 +7809,22 @@
},
"strip-ansi": {
"version": "3.0.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"requires": {
"ansi-regex": "^2.0.0"
}
},
"strip-json-comments": {
"version": "2.0.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
"optional": true
},
"tar": {
"version": "4.4.8",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz",
+ "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
"optional": true,
"requires": {
"chownr": "^1.1.1",
@@ -7670,12 +7838,14 @@
},
"util-deprecate": {
"version": "1.0.2",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
"optional": true
},
"wide-align": {
"version": "1.1.3",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
"optional": true,
"requires": {
"string-width": "^1.0.2 || 2"
@@ -7683,11 +7853,13 @@
},
"wrappy": {
"version": "1.0.2",
- "bundled": true
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"yallist": {
"version": "3.0.3",
- "bundled": true
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
+ "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A=="
}
}
},
@@ -8064,9 +8236,9 @@
"integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ=="
},
"hierarchy-closure": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/hierarchy-closure/-/hierarchy-closure-1.1.0.tgz",
- "integrity": "sha512-HpApcPeYFkuPNWQNjlsKiITOe5+HLbt6iWesycmVJMMseQenJD2u9DEQNcKjdbglS2oSQUVRHp3D6Dwe2wNAlg=="
+ "version": "1.2.1",
+ "resolved": "http://localhost:4873/hierarchy-closure/-/hierarchy-closure-1.2.1.tgz",
+ "integrity": "sha512-3Lm4gqKditachEhU94qyd5YtyfVOcKAs3WZVAd62DxQGLaA1ZU4mGPg7bOvgm9JTzWbcXoipTikYRvrflY7Orw=="
},
"history": {
"version": "4.9.0",
@@ -9990,9 +10162,9 @@
}
},
"lodash": {
- "version": "4.17.11",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
- "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
},
"lodash._reinterpolate": {
"version": "3.0.0",
@@ -10391,9 +10563,9 @@
}
},
"mixin-deep": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
- "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
"requires": {
"for-in": "^1.0.2",
"is-extendable": "^1.0.1"
@@ -10793,6 +10965,18 @@
"object-keys": "^1.0.11"
}
},
+ "object.entries": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz",
+ "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.12.0",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3"
+ }
+ },
"object.fromentries": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.0.tgz",
@@ -12108,6 +12292,15 @@
"resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz",
"integrity": "sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw=="
},
+ "prettier-linter-helpers": {
+ "version": "1.0.0",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
+ "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+ "dev": true,
+ "requires": {
+ "fast-diff": "^1.1.2"
+ }
+ },
"pretty-bytes": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.2.0.tgz",
@@ -12362,6 +12555,22 @@
"strip-json-comments": "~2.0.1"
}
},
+ "rdf-canonize": {
+ "version": "1.0.3",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/rdf-canonize/-/rdf-canonize-1.0.3.tgz",
+ "integrity": "sha512-piLMOB5Q6LJSVx2XzmdpHktYVb8TmVTy8coXJBFtdkcMC96DknZOuzpAYqCWx2ERZX7xEW+mMi8/wDuMJS/95w==",
+ "requires": {
+ "node-forge": "^0.8.1",
+ "semver": "^5.6.0"
+ },
+ "dependencies": {
+ "node-forge": {
+ "version": "0.8.5",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/node-forge/-/node-forge-0.8.5.tgz",
+ "integrity": "sha512-vFMQIWt+J/7FLNyKouZ9TazT74PRV3wgv9UT4cRjC8BffxFbKXkgIWR42URCPSnHm/QDz6BOlb2Q0U4+VQT67Q=="
+ }
+ }
+ },
"rdf-string": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/rdf-string/-/rdf-string-1.3.1.tgz",
@@ -12379,6 +12588,36 @@
"lodash.uniqwith": "^4.5.0"
}
},
+ "rdflib": {
+ "version": "0.20.1",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/rdflib/-/rdflib-0.20.1.tgz",
+ "integrity": "sha512-5G1t7rURqPdsYE+mjpDW2e9/H19XFMuChTIjPFPtH2tI0fma+xlJYwrSgmd1aOm45SOYKpqwJfTSIvFpmP2n+g==",
+ "requires": {
+ "async": "^0.9.x",
+ "jsonld": "^0.4.5",
+ "n3": "^0.4.1",
+ "solid-auth-cli": "^0.1.12",
+ "solid-auth-client": "^2.3.0",
+ "xmldom": "^0.1.22"
+ },
+ "dependencies": {
+ "async": {
+ "version": "0.9.2",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/async/-/async-0.9.2.tgz",
+ "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0="
+ },
+ "n3": {
+ "version": "0.4.5",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/n3/-/n3-0.4.5.tgz",
+ "integrity": "sha1-W3DTq2ohyejUyb2io9TZCQm+tQg="
+ },
+ "xmldom": {
+ "version": "0.1.27",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/xmldom/-/xmldom-0.1.27.tgz",
+ "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk="
+ }
+ }
+ },
"rdfxml-streaming-parser": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/rdfxml-streaming-parser/-/rdfxml-streaming-parser-1.2.3.tgz",
@@ -12520,15 +12759,6 @@
"scheduler": "^0.13.4"
}
},
- "react-emotion": {
- "version": "9.2.12",
- "resolved": "https://registry.npmjs.org/react-emotion/-/react-emotion-9.2.12.tgz",
- "integrity": "sha512-qt7XbxnEKX5sZ73rERJ92JMbEOoyOwG3BuCRFRkXrsJhEe+rFBRTljRw7yOLHZUCQC4GBObZhjXIduQ8S0ZpYw==",
- "requires": {
- "babel-plugin-emotion": "^9.2.11",
- "create-emotion-styled": "^9.2.8"
- }
- },
"react-error-overlay": {
"version": "5.1.6",
"resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-5.1.6.tgz",
@@ -12561,6 +12791,17 @@
"resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
"integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
},
+ "react-modal": {
+ "version": "3.8.2",
+ "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.8.2.tgz",
+ "integrity": "sha512-wxNk94wy/DMh2LyJa8K+LyOQDhQfhKuBrZ4SxS091p75cpW+STfY+9GpAuvl6P6Yt2r/+wxYH8Z3G5Ww/L8Tiw==",
+ "requires": {
+ "exenv": "^1.2.0",
+ "prop-types": "^15.5.10",
+ "react-lifecycles-compat": "^3.0.0",
+ "warning": "^4.0.3"
+ }
+ },
"react-router": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-4.3.1.tgz",
@@ -13789,6 +14030,19 @@
"raf": "^3.4.0",
"react-input-autosize": "^2.2.1",
"react-transition-group": "^2.2.1"
+ },
+ "dependencies": {
+ "react-transition-group": {
+ "version": "2.9.0",
+ "resolved": "http://localhost:4873/react-transition-group/-/react-transition-group-2.9.0.tgz",
+ "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==",
+ "requires": {
+ "dom-helpers": "^3.4.0",
+ "loose-envify": "^1.4.0",
+ "prop-types": "^15.6.2",
+ "react-lifecycles-compat": "^3.0.4"
+ }
+ }
}
},
"react-testing-library": {
@@ -13801,25 +14055,39 @@
"dom-testing-library": "^3.19.0"
}
},
- "react-toast-notifications": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/react-toast-notifications/-/react-toast-notifications-1.4.0.tgz",
- "integrity": "sha512-O9D76tEwDpJRqted8z+2ukCHbbzPaV3Lfvr+IKOY43go64F1oLdX0Vj3yRk6zwuq5+hOB1ExgR2iqTJ5hi1oEw==",
+ "react-toastify": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-5.3.0.tgz",
+ "integrity": "sha512-01Tc1ZfeAgmbUp+CWj0J/G+6KqCGpo2XKdBSZ9/fpDw0Qmvne6fIrEzg7bGx2Uz7at5GDgd/ii4ek/6TY/T+6Q==",
"requires": {
- "emotion": "^9.1.1",
- "react-emotion": "^9.1.3",
- "react-transition-group": "^2.3.1"
+ "@babel/runtime": "^7.4.2",
+ "classnames": "^2.2.6",
+ "prop-types": "^15.7.2",
+ "react-transition-group": "^2.6.1"
+ },
+ "dependencies": {
+ "react-transition-group": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz",
+ "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==",
+ "requires": {
+ "dom-helpers": "^3.4.0",
+ "loose-envify": "^1.4.0",
+ "prop-types": "^15.6.2",
+ "react-lifecycles-compat": "^3.0.4"
+ }
+ }
}
},
"react-transition-group": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz",
- "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.1.1.tgz",
+ "integrity": "sha512-K/N1wqJ2GRP2yj3WBqEUYa0KV5fiaAWpUfU9SpHOHefeKvyrO+VrnMBML21M19QZoVbDZKmuQFHZYoMMi1xuJA==",
"requires": {
+ "@babel/runtime": "^7.4.5",
"dom-helpers": "^3.4.0",
"loose-envify": "^1.4.0",
- "prop-types": "^15.6.2",
- "react-lifecycles-compat": "^3.0.4"
+ "prop-types": "^15.6.2"
}
},
"read-pkg": {
@@ -14575,9 +14843,9 @@
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
},
"set-value": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
- "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
"requires": {
"extend-shallow": "^2.0.1",
"is-extendable": "^0.1.1",
@@ -14846,6 +15114,40 @@
"url-parse": "^1.4.3"
}
},
+ "solid-auth-cli": {
+ "version": "0.1.14",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/solid-auth-cli/-/solid-auth-cli-0.1.14.tgz",
+ "integrity": "sha512-G1xhi4hASPW5hib1UxN10rm0X2lTYqqNQELJ4neRjcM07qWnkKUG08Q4fMFz5xeKAWjDh8ytqhvq5M349/CZsw==",
+ "requires": {
+ "@solid/cli": "^0.1.1",
+ "async": "^2.6.1",
+ "isomorphic-fetch": "^2.2.1",
+ "jsonld": "^1.4.0",
+ "n3": "^1.0.3",
+ "solid-rest": "^1.0.2"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.6.3",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/async/-/async-2.6.3.tgz",
+ "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+ "requires": {
+ "lodash": "^4.17.14"
+ }
+ },
+ "jsonld": {
+ "version": "1.6.2",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/jsonld/-/jsonld-1.6.2.tgz",
+ "integrity": "sha512-eMzFHqhF2kPMrMUjw8+Lz9IF1QkrxTOIfVndkP/OpuoZs31VdDtfDs8mLa5EOC/ROdemFTQGLdYPZbRtmMe2Yw==",
+ "requires": {
+ "rdf-canonize": "^1.0.2",
+ "request": "^2.88.0",
+ "semver": "^5.6.0",
+ "xmldom": "0.1.19"
+ }
+ }
+ }
+ },
"solid-auth-client": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/solid-auth-client/-/solid-auth-client-2.3.0.tgz",
@@ -14858,6 +15160,60 @@
"isomorphic-fetch": "^2.2.1"
}
},
+ "solid-rest": {
+ "version": "1.0.7",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/solid-rest/-/solid-rest-1.0.7.tgz",
+ "integrity": "sha512-OiNKV1nW00RVdnd88HfCVIcY+LKI6VAc6DbY0Tujy5/eiURkCnxqAkMJXLd10lKmpQZ2NNYpsfBN/QWnoIBczA==",
+ "requires": {
+ "concat-stream": "^2.0.0",
+ "fs-extra": "^8.0.1",
+ "mime-types": "^2.1.24",
+ "node-fetch": "^2.6.0"
+ },
+ "dependencies": {
+ "concat-stream": {
+ "version": "2.0.0",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/concat-stream/-/concat-stream-2.0.0.tgz",
+ "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.0.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.0",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/graceful-fs/-/graceful-fs-4.2.0.tgz",
+ "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg=="
+ },
+ "node-fetch": {
+ "version": "2.6.0",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/node-fetch/-/node-fetch-2.6.0.tgz",
+ "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
+ },
+ "readable-stream": {
+ "version": "3.4.0",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/readable-stream/-/readable-stream-3.4.0.tgz",
+ "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
"source-list-map": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
@@ -16012,35 +16368,14 @@
}
},
"union-value": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
- "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
"requires": {
"arr-union": "^3.1.0",
"get-value": "^2.0.6",
"is-extendable": "^0.1.1",
- "set-value": "^0.4.3"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "requires": {
- "is-extendable": "^0.1.0"
- }
- },
- "set-value": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
- "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
- "requires": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.1",
- "to-object-path": "^0.3.0"
- }
- }
+ "set-value": "^2.0.1"
}
},
"uniq": {
@@ -16053,6 +16388,11 @@
"resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz",
"integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI="
},
+ "unique": {
+ "version": "0.0.1",
+ "resolved": "https://repo.janeirodigital.com/repository/npm-all/unique/-/unique-0.0.1.tgz",
+ "integrity": "sha1-iCXJRG2bD9J14wDt2yD200cw/Yc="
+ },
"unique-filename": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
diff --git a/generators/app/templates/package.json b/generators/app/templates/package.json
index 3b7f8873..88eb8b16 100644
--- a/generators/app/templates/package.json
+++ b/generators/app/templates/package.json
@@ -4,7 +4,7 @@
"@fortawesome/free-brands-svg-icons": "^5.8.0",
"@fortawesome/free-solid-svg-icons": "^5.6.3",
"@fortawesome/react-fontawesome": "^0.1.4",
- "@inrupt/solid-react-components": "0.4.3",
+ "@inrupt/solid-react-components": "^0.4.4",
"@inrupt/solid-style-guide": "^0.1.34",
"@rdfjs/data-model": "^1.1.1",
"@solid/query-ldflex": "^2.4.0",
@@ -22,6 +22,7 @@
"i18next-xhr-backend": "^2.0.1",
"identity-obj-proxy": "3.0.0",
"moment": "^2.24.0",
+ "n3": "^1.1.1",
"normalize.css": "^8.0.1",
"optimize-css-assets-webpack-plugin": "5.0.1",
"pnp-webpack-plugin": "1.1.0",
@@ -31,9 +32,11 @@
"react-click-outside": "^3.0.1",
"react-dev-utils": "^7.0.1",
"react-i18next": "^10.1.2",
+ "react-modal": "^3.8.2",
"react-router-dom": "^4.3.1",
"react-scripts": "^3.0.1",
- "react-toast-notifications": "^1.3.1",
+ "react-toastify": "^5.3.0",
+ "react-transition-group": "^4.1.1",
"solid-auth-client": "^2.3.0",
"styled-components": "^4.1.3"
},
@@ -116,7 +119,9 @@
"@layouts": "./src/layouts",
"@contexts": "./src/contexts/",
"@hocs": "./src/hocs",
- "@utils": "./src/utils"
+ "@utils": "./src/utils",
+ "@hooks": "./src/hooks",
+ "@constants": "./src/constants"
}
}
]
@@ -132,36 +137,41 @@
"babel-eslint": "9.0.0",
"babel-jest": "^24.5.0",
"babel-loader": "8.0.4",
+ "babel-plugin-module-resolver": "^3.1.2",
"babel-plugin-named-asset-import": "^0.3.0",
"babel-preset-react-app": "^7.0.0",
- "babel-plugin-module-resolver": "^3.1.2",
"copy-webpack-plugin": "^4.6.0",
"css-loader": "1.0.0",
- "husky": "^1.3.1",
- "jest-dom": "^3.1.2",
- "react-testing-library": "^6.0.0",
"eslint": "5.6.0",
+ "eslint-config-airbnb": "^17.1.0",
"eslint-config-react-app": "^3.0.6",
"eslint-loader": "2.1.1",
"eslint-plugin-flowtype": "2.50.1",
"eslint-plugin-import": "2.14.0",
"eslint-plugin-jsx-a11y": "6.1.2",
+ "eslint-plugin-prettier": "^3.0.0",
+ "eslint-config-prettier": "^3.3.0",
+ "eslint-config-xo": "^0.25.0",
"eslint-plugin-react": "7.11.1",
"file-loader": "2.0.0",
- "resolve": "1.8.1",
+ "html-webpack-include-assets-plugin": "^1.0.6",
+ "html-webpack-plugin": "4.0.0-alpha.2",
+ "husky": "^1.3.1",
"jest": "^24.1.0",
+ "jest-dom": "^3.1.2",
"jest-pnp-resolver": "1.0.1",
"jest-resolve": "23.6.0",
+ "mini-css-extract-plugin": "0.4.3",
"postcss-flexbugs-fixes": "4.1.0",
"postcss-loader": "3.0.0",
"postcss-preset-env": "6.3.1",
"postcss-safe-parser": "4.0.1",
+ "prettier": "^1.18.2",
+ "react-testing-library": "^6.0.0",
+ "resolve": "1.8.1",
"sass-loader": "7.1.0",
"style-loader": "0.23.0",
"terser-webpack-plugin": "1.1.0",
- "mini-css-extract-plugin": "0.4.3",
- "html-webpack-include-assets-plugin": "^1.0.6",
- "html-webpack-plugin": "4.0.0-alpha.2",
"url-loader": "1.1.1",
"webpack": "4.19.1",
"webpack-dev-server": "3.1.14",
diff --git a/generators/app/templates/public/img/icon/tictactoe.svg b/generators/app/templates/public/img/icon/tictactoe.svg
new file mode 100644
index 00000000..7b74784f
--- /dev/null
+++ b/generators/app/templates/public/img/icon/tictactoe.svg
@@ -0,0 +1,18 @@
+
+
\ No newline at end of file
diff --git a/generators/app/templates/public/img/tic-tac-toe-color.svg b/generators/app/templates/public/img/tic-tac-toe-color.svg
new file mode 100644
index 00000000..0a7d28c3
--- /dev/null
+++ b/generators/app/templates/public/img/tic-tac-toe-color.svg
@@ -0,0 +1,52 @@
+
+
\ No newline at end of file
diff --git a/generators/app/templates/public/index.html b/generators/app/templates/public/index.html
index e60135ca..68224cd2 100644
--- a/generators/app/templates/public/index.html
+++ b/generators/app/templates/public/index.html
@@ -3,10 +3,7 @@