...
 
Commits (2)
......@@ -7,32 +7,34 @@
{
"type": "node",
"request": "attach",
"name": "node:remote",
"name": "node",
"address": "<your-dev-machine-ip (and/or localhost)>",
"port": 7777,
"localRoot": "${workspaceFolder}",
"localRoot": "${workspaceFolder}/",
// If you have path mapping/remote root problems while debugging,
// see: https://bit.ly/2ME6T6u
"remoteRoot": "</the/absolute/path/to/shopify-react-webpack-nextjs (or whatever your project name is)>",
"skipFiles": [
"${workspaceFolder}/node_modules/**/*.js",
"<node_internals>/**/*.js"
]
// "skipFiles": [
// "/**/node_modules/**",
// "<node_internals>/**"
// ],
},
{
"type": "chrome",
"request": "launch",
"name": "chrome:main",
"name": "chrome",
"url": "<http-or-https://configure-dev-url-here:port-goes-here>",
"webRoot": "${workspaceFolder}",
"skipFiles": [
"${workspaceFolder}/node_modules/**/*.js",
"<node_internals>/**/*.js"
]
// "skipFiles": [
// "/**/node_modules/**",
// "<node_internals>/**"
// ],
}
],
"compounds": [
{
"name": "node+chrome:fullstack",
"configurations": ["chrome:main", "node:remote"]
"name": "fullstack (node+chrome)",
"configurations": ["node", "chrome"]
}
]
}
......@@ -12,4 +12,4 @@
"packagejson",
"scriptscommands"
]
}
\ No newline at end of file
}
......@@ -4,22 +4,23 @@ This is one of those [boilerplate](https://git.xunn.io/boilerplate) futuristic w
<!-- TOC -->
- [Simple Quick Start Guide](#simple-quick-start-guide)
- [Feature Scope](#feature-scope)
- [Required Reading](#required-reading)
- [Skinny Gulp Configuration](#skinny-gulp-configuration)
- [Server-side Routing vs Client-side Routing](#server-side-routing-vs-client-side-routing)
- [Data *Eventually* Instead of Data Now (i.e. GraphQL, Page Size, and Lazy Loading)](#data-eventually-instead-of-data-now-ie-graphql-page-size-and-lazy-loading)
- [One-Way Data Models, Single Source of State, "Smart" vs "Dumb" Components](#one-way-data-models-single-source-of-state-smart-vs-dumb-components)
- [Favor Composition Over Inheritance](#favor-composition-over-inheritance)
- [Script Tags Should Usually Not Appear In Your Components](#script-tags-should-usually-not-appear-in-your-components)
- [Page Refreshes vs Client-side Navigation](#page-refreshes-vs-client-side-navigation)
- [Immutability and You](#immutability-and-you)
- [Other Considerations](#other-considerations)
- [Available NPM Run Scripts](#available-npm-run-scripts)
- [Other Useful Commands](#other-useful-commands)
- [Good Questions](#good-questions)
- [Further Research Materials](#further-research-materials)
- [nextjs-react-webpack-gulp-babel](#nextjs-react-webpack-gulp-babel)
- [Simple Quick Start Guide](#simple-quick-start-guide)
- [Feature Scope](#feature-scope)
- [Required Reading](#required-reading)
- [Skinny Gulp Configuration](#skinny-gulp-configuration)
- [Server-side Routing vs Client-side Routing](#server-side-routing-vs-client-side-routing)
- [Data *Eventually* Instead of Data Now (i.e. GraphQL, Page Size, and Lazy Loading)](#data-eventually-instead-of-data-now-ie-graphql-page-size-and-lazy-loading)
- [One-Way Data Models, Single Source of State, "Smart" vs "Dumb" Components](#one-way-data-models-single-source-of-state-smart-vs-dumb-components)
- [Favor Composition Over Inheritance](#favor-composition-over-inheritance)
- [Script Tags Should Usually Not Appear In Your Components](#script-tags-should-usually-not-appear-in-your-components)
- [Page Refreshes vs Client-side Navigation](#page-refreshes-vs-client-side-navigation)
- [Immutability and You](#immutability-and-you)
- [Other Considerations](#other-considerations)
- [Available NPM Run Scripts](#available-npm-run-scripts)
- [Other Useful Commands](#other-useful-commands)
- [Good Questions](#good-questions)
- [Further Research Materials](#further-research-materials)
<!-- /TOC -->
......@@ -157,6 +158,12 @@ When a `<Link>` is followed (client-side nav), `getInitialProps()` is called cli
(todo)
</details>
<details>
<summary><strong>generate</strong></summary>
(todo)
</details>
<details>
<summary><strong>regenerate</strong></summary>
......
......@@ -32,8 +32,8 @@ module.exports = {
presets: [devNextBabelPreset]
},
generator: {
/* sourceMaps: sourceMapValue,
plugins: [sourceMapPlugin], */
sourceMaps: sourceMapValue,
plugins: [sourceMapPlugin],
comments: false,
presets: [
['@babel/preset-env', {
......
......@@ -15,10 +15,10 @@ import del from 'del'
import log from 'fancy-log'
import parseGitIgnore from 'parse-gitignore'
import { transformSync as babel } from '@babel/core'
import { execAsync } from 'child_process'
import { parse as parsePath } from 'path'
import { parse as parsePath, relative as relPath } from 'path'
import term from 'inquirer'
import replaceInFile from 'replace-in-file'
import sh from 'shelljs'
const paths = {};
const FLOW_TYPES_DIR = 'flow-typed';
......@@ -62,14 +62,16 @@ cleanTypes.description = `Resets the ${FLOW_TYPES_DIR} directory to a pristine s
// ? If you change this function, run `npm run regenerate` twice: once to
// ? compile this new function and once again to compile itself with the newly
// ? compiled logic. If there is an error that prevents regeneration, you can
// ? run `npm run regenerate` before `npm run regenerate` instead.
// ? run `npm run generate` then `npm run regenerate` instead.
const regenerate = () => {
log(`Regenerating targets: "${paths.regenTargets.join('" "')}"`);
process.env.BABEL_ENV = 'generator';
return gulp.src(paths.regenTargets)
.pipe(tap(file => file.contents = Buffer.from(CLI_BANNER + babel(file.contents.toString()).code)))
.pipe(tap(file => file.contents = Buffer.from(CLI_BANNER + babel(file.contents.toString(), {
sourceFileName: relPath(__dirname, file.path)
}).code)))
.pipe(gulp.dest('.'));
};
......@@ -122,13 +124,13 @@ const eject = () => term.prompt([
message: 'Does everything look good?',
default: false
}
]).then(async answers => {
]).then(answers => {
if(!answers.confirm)
return log.error('Task aborted!');
try {
await execAsync(`mv ${paths.envDist} ${paths.env}`).stderr.pipe(process.stderr);
await execAsync(`mv ${paths.launchJsonDist} ${paths.launchJson}`).stderr.pipe(process.stderr);
sh.mv(paths.envDist, paths.env);
sh.mv(paths.launchJsonDist, paths.launchJson);
const delta1 = replaceInFile({
files: paths.packageJson,
......@@ -158,13 +160,15 @@ const eject = () => term.prompt([
throw new Error(`There was an error attempting to access "${paths.gitignore}"`);
if(answers.installTypes)
await execAsync('npm run install-types').stderr.pipe(process.stderr);
sh('npm run install-types');
await execAsync(`rm -f ${paths.packageLockJson}`).stderr.pipe(process.stderr);
await execAsync('echo "rm -f .git"').stderr.pipe(process.stderr);
await execAsync(`echo "git init"`).stderr.pipe(process.stderr);
sh.rm('-f', paths.packageLockJson);
// sh.rm('-f', '.git');
sh.echo("sh.rm('-f', '.git');");
// sh('git init');
sh.echo("sh('git init');");
await execAsync(`cd .. && mv ${parsePath(__dirname).name} ${answers.package.name}`).stderr.pipe(process.stderr);
sh(`cd .. && mv '${parsePath(__dirname).name}' '${answers.package.name}'`);
log.info('Boilerplate ejection complete!');
log(`Next steps:\n\t- If you're going to host this project on Github/Gitlab, begin that process now\n\t- Check over package.json for accuracy; remove any unnecessary dependencies/devDependencies\n\t- Look over .env and configure it to your liking\n`);
......
This diff is collapsed.
......@@ -45,4 +45,4 @@ module.exports = (phase, {
publicRuntimeConfig: {}
};
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVua25vd24iXSwibmFtZXMiOlsiQU5BTFlaRV9XRUJQQUNLX0JVTkRMRVMiLCJwcm9jZXNzIiwiZW52IiwicGF0aHMiLCJjb21wb25lbnRzIiwiX19kaXJuYW1lIiwibW9kdWxlIiwiZXhwb3J0cyIsInBoYXNlIiwiZGVmYXVsdENvbmZpZyIsIndlYnBhY2siLCJjb25maWciLCJpc1NlcnZlciIsInBsdWdpbnMiLCJwdXNoIiwiQnVuZGxlQW5hbHl6ZXJQbHVnaW4iLCJhbmFseXplck1vZGUiLCJhbmFseXplclBvcnQiLCJvcGVuQW5hbHl6ZXIiLCJtYXAiLCJkaXIiLCJwYXRoIiwicmVzb2x2ZSIsImZpbHRlciIsImRpcnBhdGgiLCJpc0RpcmVjdG9yeSIsImZvckVhY2giLCJkaXJuYW1lIiwiYWxpYXMiLCJzZXJ2ZXJSdW50aW1lQ29uZmlnIiwicHVibGljUnVudGltZUNvbmZpZyJdLCJtYXBwaW5ncyI6Ijs7OztBQUVBOztBQUNBOztBQUNBOzs7O0FBRUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQThCQyxPQUFPLENBQUNDLEdBQTVDO0FBRUEsTUFBTUMsS0FBSyxHQUFHO0FBQ1ZDLEVBQUFBLFVBQVUsRUFBRyxHQUFFQyxTQUFVO0FBRGYsQ0FBZDs7QUFJQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCLENBQUNDLEtBQUQsRUFBZ0I7QUFBRUMsRUFBQUE7QUFBRixDQUFoQixLQUE4QztBQUMzRCxTQUFPO0FBQ0hDLElBQUFBLE9BQU8sRUFBRSxDQUFDQyxNQUFELEVBQWlCO0FBQUVDLE1BQUFBO0FBQUYsS0FBakIsS0FBMEM7QUFDL0MsVUFBR1osdUJBQUgsRUFBNEI7QUFDeEJXLFFBQUFBLE1BQU0sQ0FBQ0UsT0FBUCxDQUFlQyxJQUFmLENBQW9CLElBQUlDLDJDQUFKLENBQXlCO0FBQ3pDQyxVQUFBQSxZQUFZLEVBQUUsUUFEMkI7QUFFekNDLFVBQUFBLFlBQVksRUFBRUwsUUFBUSxHQUFHLElBQUgsR0FBVSxJQUZTO0FBR3pDTSxVQUFBQSxZQUFZLEVBQUU7QUFIMkIsU0FBekIsQ0FBcEI7QUFLSDs7QUFxQkQsMkJBQVlmLEtBQUssQ0FBQ0MsVUFBbEIsRUFDS2UsR0FETCxDQUNTQyxHQUFHLElBQUksQ0FBRUMsY0FBS0MsT0FBTCxDQUFhbkIsS0FBSyxDQUFDQyxVQUFuQixFQUErQmdCLEdBQS9CLENBQUYsRUFBdUNBLEdBQXZDLENBRGhCLEVBRUtHLE1BRkwsQ0FFWSxDQUFDLENBQUVDLE9BQUYsQ0FBRCxLQUFpQixtQkFBVUEsT0FBVixFQUFtQkMsV0FBbkIsRUFGN0IsRUFHS0MsT0FITCxDQUdhLENBQUMsQ0FBRUYsT0FBRixFQUFXRyxPQUFYLENBQUQsS0FBMEJoQixNQUFNLENBQUNXLE9BQVAsQ0FBZU0sS0FBZixDQUFxQkQsT0FBckIsSUFBZ0NILE9BSHZFO0FBS0EsYUFBT2IsTUFBUDtBQUNILEtBbkNFO0FBc0NIa0IsSUFBQUEsbUJBQW1CLEVBQUUsRUF0Q2xCO0FBMkNIQyxJQUFBQSxtQkFBbUIsRUFBRTtBQTNDbEIsR0FBUDtBQStDSCxDQWhERCIsInNvdXJjZXNDb250ZW50IjpbIi8qIEBmbG93ICovXG5cbmltcG9ydCB7IEJ1bmRsZUFuYWx5emVyUGx1Z2luIH0gZnJvbSAnd2VicGFjay1idW5kbGUtYW5hbHl6ZXInXG5pbXBvcnQgeyByZWFkZGlyU3luYywgbHN0YXRTeW5jIH0gZnJvbSAnZnMnXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuXG5jb25zdCB7IEFOQUxZWkVfV0VCUEFDS19CVU5ETEVTIH0gPSBwcm9jZXNzLmVudlxuXG5jb25zdCBwYXRocyA9IHtcbiAgICBjb21wb25lbnRzOiBgJHtfX2Rpcm5hbWV9L2NvbXBvbmVudHNgLFxufTtcblxubW9kdWxlLmV4cG9ydHMgPSAocGhhc2U6IHN0cmluZywgeyBkZWZhdWx0Q29uZmlnIH06IE9iamVjdCkgPT4geyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgcmV0dXJuIHtcbiAgICAgICAgd2VicGFjazogKGNvbmZpZzogT2JqZWN0LCB7IGlzU2VydmVyIH06IE9iamVjdCkgPT4ge1xuICAgICAgICAgICAgaWYoQU5BTFlaRV9XRUJQQUNLX0JVTkRMRVMpIHtcbiAgICAgICAgICAgICAgICBjb25maWcucGx1Z2lucy5wdXNoKG5ldyBCdW5kbGVBbmFseXplclBsdWdpbih7XG4gICAgICAgICAgICAgICAgICAgIGFuYWx5emVyTW9kZTogJ3NlcnZlcicsXG4gICAgICAgICAgICAgICAgICAgIGFuYWx5emVyUG9ydDogaXNTZXJ2ZXIgPyA4ODg4IDogODg4OSxcbiAgICAgICAgICAgICAgICAgICAgb3BlbkFuYWx5emVyOiB0cnVlXG4gICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGNvbmZpZy5lbnRyeSA9ICcuL3NyYy9pbmRleC5qcyc7XG4gICAgICAgICAgICAvLyBjb25maWcub3V0cHV0ID0ge1xuICAgICAgICAgICAgLy8gICAgIHBhdGg6IF9fZGlybmFtZSArICcvZGlzdCcsXG4gICAgICAgICAgICAvLyAgICAgcHVibGljUGF0aDogJy8nLFxuICAgICAgICAgICAgLy8gICAgIGZpbGVuYW1lOiAnYnVuZGxlLmpzJ1xuICAgICAgICAgICAgLy8gfTtcblxuICAgICAgICAgICAgLy8gY29uZmlnLmRldlNlcnZlciA9IHtcbiAgICAgICAgICAgIC8vICAgICBjb250ZW50QmFzZTogJy4vZGlzdCdcbiAgICAgICAgICAgIC8vIH07XG5cbiAgICAgICAgICAgIC8vIGNvbmZpZy5tb2R1bGUucnVsZXMucHVzaCh7XG4gICAgICAgICAgICAvLyAgICAgdGVzdDogL1xcLmpzJC8sXG4gICAgICAgICAgICAvLyAgICAgZXhjbHVkZTogL25vZGVfbW9kdWxlcy8sXG4gICAgICAgICAgICAvLyAgICAgdXNlOiB7XG4gICAgICAgICAgICAvLyAgICAgICAgIGxvYWRlcjogJ2JhYmVsLWxvYWRlcidcbiAgICAgICAgICAgIC8vICAgICB9XG4gICAgICAgICAgICAvLyB9KTtcblxuICAgICAgICAgICAgcmVhZGRpclN5bmMocGF0aHMuY29tcG9uZW50cylcbiAgICAgICAgICAgICAgICAubWFwKGRpciA9PiBbIHBhdGgucmVzb2x2ZShwYXRocy5jb21wb25lbnRzLCBkaXIpLCBkaXIgXSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChbIGRpcnBhdGggXSkgPT4gbHN0YXRTeW5jKGRpcnBhdGgpLmlzRGlyZWN0b3J5KCkpXG4gICAgICAgICAgICAgICAgLmZvckVhY2goKFsgZGlycGF0aCwgZGlybmFtZSBdKSA9PiBjb25maWcucmVzb2x2ZS5hbGlhc1tkaXJuYW1lXSA9IGRpcnBhdGgpO1xuXG4gICAgICAgICAgICByZXR1cm4gY29uZmlnO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8vID8gV2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBvbiB0aGUgc2VydmVyIHNpZGVcbiAgICAgICAgc2VydmVyUnVudGltZUNvbmZpZzoge1xuICAgICAgICAgICAgLy8gLi4uXG4gICAgICAgIH0sXG5cbiAgICAgICAgLy8gPyBXaWxsIGJlIGF2YWlsYWJsZSBvbiBib3RoIHNlcnZlciBhbmQgY2xpZW50XG4gICAgICAgIHB1YmxpY1J1bnRpbWVDb25maWc6IHtcbiAgICAgICAgICAgIC8vIC4uLlxuICAgICAgICB9XG4gICAgfVxufTtcbiJdfQ==
\ No newline at end of file
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbmZpZy9uZXh0LmNvbmZpZy5qcyJdLCJuYW1lcyI6WyJBTkFMWVpFX1dFQlBBQ0tfQlVORExFUyIsInByb2Nlc3MiLCJlbnYiLCJwYXRocyIsImNvbXBvbmVudHMiLCJfX2Rpcm5hbWUiLCJtb2R1bGUiLCJleHBvcnRzIiwicGhhc2UiLCJkZWZhdWx0Q29uZmlnIiwid2VicGFjayIsImNvbmZpZyIsImlzU2VydmVyIiwicGx1Z2lucyIsInB1c2giLCJCdW5kbGVBbmFseXplclBsdWdpbiIsImFuYWx5emVyTW9kZSIsImFuYWx5emVyUG9ydCIsIm9wZW5BbmFseXplciIsIm1hcCIsImRpciIsInBhdGgiLCJyZXNvbHZlIiwiZmlsdGVyIiwiZGlycGF0aCIsImlzRGlyZWN0b3J5IiwiZm9yRWFjaCIsImRpcm5hbWUiLCJhbGlhcyIsInNlcnZlclJ1bnRpbWVDb25maWciLCJwdWJsaWNSdW50aW1lQ29uZmlnIl0sIm1hcHBpbmdzIjoiOzs7O0FBRUE7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBOEJDLE9BQU8sQ0FBQ0MsR0FBNUM7QUFFQSxNQUFNQyxLQUFLLEdBQUc7QUFDVkMsRUFBQUEsVUFBVSxFQUFHLEdBQUVDLFNBQVU7QUFEZixDQUFkOztBQUlBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUIsQ0FBQ0MsS0FBRCxFQUFnQjtBQUFFQyxFQUFBQTtBQUFGLENBQWhCLEtBQThDO0FBQzNELFNBQU87QUFDSEMsSUFBQUEsT0FBTyxFQUFFLENBQUNDLE1BQUQsRUFBaUI7QUFBRUMsTUFBQUE7QUFBRixLQUFqQixLQUEwQztBQUMvQyxVQUFHWix1QkFBSCxFQUE0QjtBQUN4QlcsUUFBQUEsTUFBTSxDQUFDRSxPQUFQLENBQWVDLElBQWYsQ0FBb0IsSUFBSUMsMkNBQUosQ0FBeUI7QUFDekNDLFVBQUFBLFlBQVksRUFBRSxRQUQyQjtBQUV6Q0MsVUFBQUEsWUFBWSxFQUFFTCxRQUFRLEdBQUcsSUFBSCxHQUFVLElBRlM7QUFHekNNLFVBQUFBLFlBQVksRUFBRTtBQUgyQixTQUF6QixDQUFwQjtBQUtIOztBQXFCRCwyQkFBWWYsS0FBSyxDQUFDQyxVQUFsQixFQUNLZSxHQURMLENBQ1NDLEdBQUcsSUFBSSxDQUFFQyxjQUFLQyxPQUFMLENBQWFuQixLQUFLLENBQUNDLFVBQW5CLEVBQStCZ0IsR0FBL0IsQ0FBRixFQUF1Q0EsR0FBdkMsQ0FEaEIsRUFFS0csTUFGTCxDQUVZLENBQUMsQ0FBRUMsT0FBRixDQUFELEtBQWlCLG1CQUFVQSxPQUFWLEVBQW1CQyxXQUFuQixFQUY3QixFQUdLQyxPQUhMLENBR2EsQ0FBQyxDQUFFRixPQUFGLEVBQVdHLE9BQVgsQ0FBRCxLQUEwQmhCLE1BQU0sQ0FBQ1csT0FBUCxDQUFlTSxLQUFmLENBQXFCRCxPQUFyQixJQUFnQ0gsT0FIdkU7QUFLQSxhQUFPYixNQUFQO0FBQ0gsS0FuQ0U7QUFzQ0hrQixJQUFBQSxtQkFBbUIsRUFBRSxFQXRDbEI7QUEyQ0hDLElBQUFBLG1CQUFtQixFQUFFO0FBM0NsQixHQUFQO0FBK0NILENBaEREIiwic291cmNlc0NvbnRlbnQiOlsiLyogQGZsb3cgKi9cblxuaW1wb3J0IHsgQnVuZGxlQW5hbHl6ZXJQbHVnaW4gfSBmcm9tICd3ZWJwYWNrLWJ1bmRsZS1hbmFseXplcidcbmltcG9ydCB7IHJlYWRkaXJTeW5jLCBsc3RhdFN5bmMgfSBmcm9tICdmcydcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5cbmNvbnN0IHsgQU5BTFlaRV9XRUJQQUNLX0JVTkRMRVMgfSA9IHByb2Nlc3MuZW52XG5cbmNvbnN0IHBhdGhzID0ge1xuICAgIGNvbXBvbmVudHM6IGAke19fZGlybmFtZX0vY29tcG9uZW50c2AsXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IChwaGFzZTogc3RyaW5nLCB7IGRlZmF1bHRDb25maWcgfTogT2JqZWN0KSA9PiB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgICByZXR1cm4ge1xuICAgICAgICB3ZWJwYWNrOiAoY29uZmlnOiBPYmplY3QsIHsgaXNTZXJ2ZXIgfTogT2JqZWN0KSA9PiB7XG4gICAgICAgICAgICBpZihBTkFMWVpFX1dFQlBBQ0tfQlVORExFUykge1xuICAgICAgICAgICAgICAgIGNvbmZpZy5wbHVnaW5zLnB1c2gobmV3IEJ1bmRsZUFuYWx5emVyUGx1Z2luKHtcbiAgICAgICAgICAgICAgICAgICAgYW5hbHl6ZXJNb2RlOiAnc2VydmVyJyxcbiAgICAgICAgICAgICAgICAgICAgYW5hbHl6ZXJQb3J0OiBpc1NlcnZlciA/IDg4ODggOiA4ODg5LFxuICAgICAgICAgICAgICAgICAgICBvcGVuQW5hbHl6ZXI6IHRydWVcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gY29uZmlnLmVudHJ5ID0gJy4vc3JjL2luZGV4LmpzJztcbiAgICAgICAgICAgIC8vIGNvbmZpZy5vdXRwdXQgPSB7XG4gICAgICAgICAgICAvLyAgICAgcGF0aDogX19kaXJuYW1lICsgJy9kaXN0JyxcbiAgICAgICAgICAgIC8vICAgICBwdWJsaWNQYXRoOiAnLycsXG4gICAgICAgICAgICAvLyAgICAgZmlsZW5hbWU6ICdidW5kbGUuanMnXG4gICAgICAgICAgICAvLyB9O1xuXG4gICAgICAgICAgICAvLyBjb25maWcuZGV2U2VydmVyID0ge1xuICAgICAgICAgICAgLy8gICAgIGNvbnRlbnRCYXNlOiAnLi9kaXN0J1xuICAgICAgICAgICAgLy8gfTtcblxuICAgICAgICAgICAgLy8gY29uZmlnLm1vZHVsZS5ydWxlcy5wdXNoKHtcbiAgICAgICAgICAgIC8vICAgICB0ZXN0OiAvXFwuanMkLyxcbiAgICAgICAgICAgIC8vICAgICBleGNsdWRlOiAvbm9kZV9tb2R1bGVzLyxcbiAgICAgICAgICAgIC8vICAgICB1c2U6IHtcbiAgICAgICAgICAgIC8vICAgICAgICAgbG9hZGVyOiAnYmFiZWwtbG9hZGVyJ1xuICAgICAgICAgICAgLy8gICAgIH1cbiAgICAgICAgICAgIC8vIH0pO1xuXG4gICAgICAgICAgICByZWFkZGlyU3luYyhwYXRocy5jb21wb25lbnRzKVxuICAgICAgICAgICAgICAgIC5tYXAoZGlyID0+IFsgcGF0aC5yZXNvbHZlKHBhdGhzLmNvbXBvbmVudHMsIGRpciksIGRpciBdKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKFsgZGlycGF0aCBdKSA9PiBsc3RhdFN5bmMoZGlycGF0aCkuaXNEaXJlY3RvcnkoKSlcbiAgICAgICAgICAgICAgICAuZm9yRWFjaCgoWyBkaXJwYXRoLCBkaXJuYW1lIF0pID0+IGNvbmZpZy5yZXNvbHZlLmFsaWFzW2Rpcm5hbWVdID0gZGlycGF0aCk7XG5cbiAgICAgICAgICAgIHJldHVybiBjb25maWc7XG4gICAgICAgIH0sXG5cbiAgICAgICAgLy8gPyBXaWxsIG9ubHkgYmUgYXZhaWxhYmxlIG9uIHRoZSBzZXJ2ZXIgc2lkZVxuICAgICAgICBzZXJ2ZXJSdW50aW1lQ29uZmlnOiB7XG4gICAgICAgICAgICAvLyAuLi5cbiAgICAgICAgfSxcblxuICAgICAgICAvLyA/IFdpbGwgYmUgYXZhaWxhYmxlIG9uIGJvdGggc2VydmVyIGFuZCBjbGllbnRcbiAgICAgICAgcHVibGljUnVudGltZUNvbmZpZzoge1xuICAgICAgICAgICAgLy8gLi4uXG4gICAgICAgIH1cbiAgICB9XG59O1xuIl19
\ No newline at end of file
......@@ -3,9 +3,9 @@
"description": "<THIS PACKAGE NEEDS A DESCRIPTION>",
"repository": {
"type": "git",
"url": "https://git.xunn.io/shopify/<THIS URL NEEDS TO BE UPDATED>"
"url": "<THIS URL NEEDS TO BE UPDATED>"
},
"version": "0.1.0",
"version": "0.0.1",
"scripts": {
"init": "npx gulp eject",
"test": "npx jest",
......@@ -59,12 +59,13 @@
"fancy-log": "^1.3.2",
"flow-bin": "^0.80.0",
"flow-typed": "^2.5.1",
"gulp": "^4.0.0",
"gulp-tap": "^1.0.1",
"inquirer": "^6.2.0",
"gulp": "^4.0.0",
"jest": "^23.5.0",
"parse-gitignore": "^1.0.1",
"replace-in-file": "^3.4.2",
"shelljs": "^0.8.2",
"source-map": "^0.7.3",
"source-map-support": "^0.5.9",
"stylelint": "^9.5.0",
......