diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 0000000..c773971
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,27 @@
+module.exports = {
+ "env": {
+ "node": true
+ },
+ "extends": "eslint:recommended",
+ "parserOptions": {
+ "ecmaVersion": 3
+ },
+ "rules": {
+ "indent": [
+ "error",
+ "tab"
+ ],
+ "linebreak-style": [
+ "error",
+ "unix"
+ ],
+ "quotes": [
+ "error",
+ "double"
+ ],
+ "semi": [
+ "error",
+ "never"
+ ]
+ }
+};
\ No newline at end of file
diff --git a/.eslintrc.yml b/.eslintrc.yml
new file mode 100644
index 0000000..e0383ff
--- /dev/null
+++ b/.eslintrc.yml
@@ -0,0 +1,18 @@
+env:
+ node: true
+extends: 'eslint:recommended'
+parserOptions:
+ ecmaVersion: 5
+rules:
+ indent:
+ - error
+ - tab
+ linebreak-style:
+ - error
+ - unix
+ quotes:
+ - error
+ - double
+ semi:
+ - error
+ - never
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d0e9352
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/node_modules/
+.vscode/
\ No newline at end of file
diff --git a/index.js b/index.js
new file mode 100644
index 0000000..2ffe01e
--- /dev/null
+++ b/index.js
@@ -0,0 +1,175 @@
+let Readline = require("readline")
+let execa = require("execa")
+let path = require("path")
+let fs = require("fs-extra")
+require("colors")
+
+let ask = question => {
+ let reader = Readline.createInterface({
+ input: process.stdin,
+ output: process.stdout
+ })
+
+ return new Promise(good =>
+ reader.question(question, answer => {
+ good(answer)
+ reader.close()
+ })
+ )
+}
+
+let dependencies = [
+ "canvas-sketch",
+ "canvas-sketch-util"
+]
+
+let fileCreators = {
+ "get-canvas.js"() {
+ return `// NOTE: You shouldn't need to edit this file it's only to deal
+// with anomalies of canvas-sketch and parcel together when
+// they are working together as a team
+
+let createCanvas = () => {
+ let canvas = document.createElement("canvas")
+ canvas.id = "canvas"
+ return canvas
+}
+
+export default () =>
+ document.getElementById("canvas") || createCanvas()
+`
+ },
+
+ "sketch.js"() {
+ return `import canvasSketch from "canvas-sketch"
+import getCanvas from "./get-canvas.js"
+
+let canvas = getCanvas()
+
+let settings = {
+ dimensions: [
+ 2048,
+ 2048
+ ],
+ canvas
+}
+
+let sketch = () => ({context, width, height}) => {
+ let margin = 400
+ context.fillStyle = "hsl(5, 37%, 94%)"
+ context.fillRect(0, 0, width, height)
+
+ let gradient = context.createLinearGradient(
+ 7,
+ 30,
+ 95,
+ height / 1.75
+ )
+ gradient.addColorStop(0, "hsl(220, 100%, 90%)")
+ gradient.addColorStop(1, "hsl(340, 100%, 50%)")
+ context.fillStyle = gradient
+ context.fillRect(
+ margin,
+ margin,
+ width - margin * 2,
+ height - margin * 2,
+ )
+}
+
+canvasSketch(sketch, settings)
+
+document.body.append(settings.canvas)
+`
+ },
+
+ "index.html"({ name }) {
+ return `
+
${name}
+
+
+
+`
+ }
+}
+
+let npm = function npm(...args) {
+ console.log(`running "npm ${args.join(" ")}"`.grey.bold)
+ return execa("npm", [...args])
+}
+
+npm.install = function npmInstall(...dependencies) {
+ return this(
+ "install",
+ ...dependencies
+ )
+}
+
+npm.devInstall = function npmInstall(...dependencies) {
+ return this.install(
+ "-D",
+ ...dependencies
+ )
+}
+
+void async function () {
+ let name = await ask("What is this sketch's name? ".cyan)
+ let currentDirectory = process.cwd()
+ let workingDirectory = path.resolve(
+ currentDirectory,
+ name
+ )
+
+ console.log(`making directory ${workingDirectory}`.grey)
+ await fs.mkdirp(workingDirectory)
+ console.log(`entering ${workingDirectory}`.grey)
+ process.chdir(workingDirectory)
+ await npm("init", "-y")
+ await npm.install("canvas-sketch", "canvas-sketch-util")
+
+ // await npm.devInstall("parcel-bundler")
+
+ let manifestFile = path.resolve(workingDirectory, "package.json")
+ let manifest = await fs.readJson(manifestFile)
+
+ manifest.scripts = {
+ build: "parcel build index.html -d website",
+ watch: "parcel watch index.html -d website",
+ start: "parcel index.html"
+ }
+
+ manifest.main = "index.html"
+
+ console.log(`writing scripts and main to ${manifestFile}`.gray)
+ await fs.outputJson(manifestFile, manifest)
+
+ for (let filename in fileCreators) {
+ let filepath = path.resolve(workingDirectory, filename)
+ console.log(`writing to ${filepath}`.gray)
+ await fs.outputFile(
+ filepath,
+ fileCreators[filename]({name})
+ )
+ }
+
+ console.log(`
+and we're done! you can find your boi in ${workingDirectory}
+if you hop in there and run
+$ ${"npm start".green}
+(you'll want to have ${"parcel".yellow} installed globally)
+you can get started by editing the ${"index.js".green} file.
+
+${"<3".red.bold}
+`)
+}()
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..ca8e3f8
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,441 @@
+{
+ "name": "@snoots/create-canvas-sketch",
+ "version": "0.2.2",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@types/execa": {
+ "version": "0.9.0",
+ "resolved": "http://localhost:4873/@types%2fexeca/-/execa-0.9.0.tgz",
+ "integrity": "sha512-mgfd93RhzjYBUHHV532turHC2j4l/qxsF/PbfDmprHDEUHmNZGlDn1CEsulGK3AfsPdhkWzZQT/S/k0UGhLGsA==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/fs-extra": {
+ "version": "5.0.4",
+ "resolved": "http://localhost:4873/@types%2ffs-extra/-/fs-extra-5.0.4.tgz",
+ "integrity": "sha512-DsknoBvD8s+RFfSGjmERJ7ZOP1HI0UZRA3FSI+Zakhrc/Gy26YQsLI+m5V5DHxroHRJqCDLKJp7Hixn8zyaF7g==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/node": {
+ "version": "10.12.15",
+ "resolved": "http://localhost:4873/@types%2fnode/-/node-10.12.15.tgz",
+ "integrity": "sha512-9kROxduaN98QghwwHmxXO2Xz3MaWf+I1sLVAA6KJDF5xix+IyXVhds0MAfdNwtcpSrzhaTsNB0/jnL86fgUhqA==",
+ "dev": true
+ },
+ "ansi-escapes": {
+ "version": "3.1.0",
+ "resolved": "http://localhost:4873/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
+ "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw=="
+ },
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "http://localhost:4873/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "http://localhost:4873/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.1",
+ "resolved": "http://localhost:4873/chalk/-/chalk-2.4.1.tgz",
+ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "chardet": {
+ "version": "0.7.0",
+ "resolved": "http://localhost:4873/chardet/-/chardet-0.7.0.tgz",
+ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
+ },
+ "cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "http://localhost:4873/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+ "requires": {
+ "restore-cursor": "^2.0.0"
+ }
+ },
+ "cli-width": {
+ "version": "2.2.0",
+ "resolved": "http://localhost:4873/cli-width/-/cli-width-2.2.0.tgz",
+ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk="
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "http://localhost:4873/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "http://localhost:4873/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ },
+ "colors": {
+ "version": "1.3.3",
+ "resolved": "http://localhost:4873/colors/-/colors-1.3.3.tgz",
+ "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg=="
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "http://localhost:4873/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "end-of-stream": {
+ "version": "1.4.1",
+ "resolved": "http://localhost:4873/end-of-stream/-/end-of-stream-1.4.1.tgz",
+ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "http://localhost:4873/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+ },
+ "execa": {
+ "version": "1.0.0",
+ "resolved": "http://localhost:4873/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "requires": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.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"
+ }
+ },
+ "external-editor": {
+ "version": "3.0.3",
+ "resolved": "http://localhost:4873/external-editor/-/external-editor-3.0.3.tgz",
+ "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==",
+ "requires": {
+ "chardet": "^0.7.0",
+ "iconv-lite": "^0.4.24",
+ "tmp": "^0.0.33"
+ }
+ },
+ "figures": {
+ "version": "2.0.0",
+ "resolved": "http://localhost:4873/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+ "requires": {
+ "escape-string-regexp": "^1.0.5"
+ }
+ },
+ "fs-extra": {
+ "version": "7.0.1",
+ "resolved": "http://localhost:4873/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "get-stream": {
+ "version": "4.1.0",
+ "resolved": "http://localhost:4873/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.15",
+ "resolved": "http://localhost:4873/graceful-fs/-/graceful-fs-4.1.15.tgz",
+ "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA=="
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "http://localhost:4873/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "http://localhost:4873/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "inquirer": {
+ "version": "6.2.1",
+ "resolved": "http://localhost:4873/inquirer/-/inquirer-6.2.1.tgz",
+ "integrity": "sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==",
+ "requires": {
+ "ansi-escapes": "^3.0.0",
+ "chalk": "^2.0.0",
+ "cli-cursor": "^2.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^3.0.0",
+ "figures": "^2.0.0",
+ "lodash": "^4.17.10",
+ "mute-stream": "0.0.7",
+ "run-async": "^2.2.0",
+ "rxjs": "^6.1.0",
+ "string-width": "^2.1.0",
+ "strip-ansi": "^5.0.0",
+ "through": "^2.3.6"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "http://localhost:4873/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+ },
+ "is-promise": {
+ "version": "2.1.0",
+ "resolved": "http://localhost:4873/is-promise/-/is-promise-2.1.0.tgz",
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "http://localhost:4873/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "http://localhost:4873/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "http://localhost:4873/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "lodash": {
+ "version": "4.17.11",
+ "resolved": "http://localhost:4873/lodash/-/lodash-4.17.11.tgz",
+ "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
+ },
+ "mimic-fn": {
+ "version": "1.2.0",
+ "resolved": "http://localhost:4873/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="
+ },
+ "mute-stream": {
+ "version": "0.0.7",
+ "resolved": "http://localhost:4873/mute-stream/-/mute-stream-0.0.7.tgz",
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
+ },
+ "nice-try": {
+ "version": "1.0.5",
+ "resolved": "http://localhost:4873/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "http://localhost:4873/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "requires": {
+ "path-key": "^2.0.0"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "http://localhost:4873/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "onetime": {
+ "version": "2.0.1",
+ "resolved": "http://localhost:4873/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+ "requires": {
+ "mimic-fn": "^1.0.0"
+ }
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "http://localhost:4873/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "http://localhost:4873/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "http://localhost:4873/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "http://localhost:4873/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "http://localhost:4873/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+ "requires": {
+ "onetime": "^2.0.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "run-async": {
+ "version": "2.3.0",
+ "resolved": "http://localhost:4873/run-async/-/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+ "requires": {
+ "is-promise": "^2.1.0"
+ }
+ },
+ "rxjs": {
+ "version": "6.3.3",
+ "resolved": "http://localhost:4873/rxjs/-/rxjs-6.3.3.tgz",
+ "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
+ "requires": {
+ "tslib": "^1.9.0"
+ }
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "http://localhost:4873/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "semver": {
+ "version": "5.6.0",
+ "resolved": "http://localhost:4873/semver/-/semver-5.6.0.tgz",
+ "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg=="
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "http://localhost:4873/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "http://localhost:4873/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "http://localhost:4873/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "http://localhost:4873/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "dependencies": {
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "http://localhost:4873/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "strip-ansi": {
+ "version": "5.0.0",
+ "resolved": "http://localhost:4873/strip-ansi/-/strip-ansi-5.0.0.tgz",
+ "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==",
+ "requires": {
+ "ansi-regex": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.0.0",
+ "resolved": "http://localhost:4873/ansi-regex/-/ansi-regex-4.0.0.tgz",
+ "integrity": "sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w=="
+ }
+ }
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "resolved": "http://localhost:4873/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "http://localhost:4873/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "http://localhost:4873/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
+ },
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "http://localhost:4873/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "requires": {
+ "os-tmpdir": "~1.0.2"
+ }
+ },
+ "tslib": {
+ "version": "1.9.3",
+ "resolved": "http://localhost:4873/tslib/-/tslib-1.9.3.tgz",
+ "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ=="
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "http://localhost:4873/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "http://localhost:4873/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "http://localhost:4873/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..d19e92b
--- /dev/null
+++ b/package.json
@@ -0,0 +1,40 @@
+{
+ "name": "@snootclub/create-canvas-sketch",
+ "version": "0.2.2",
+ "description": "create an empty canvas-sketch page RDY for your canvas sketch boi",
+ "main": "index.js",
+ "scripts": {
+ "test": "echo \"lol\""
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/snootclub/create-canvas-sketch.git"
+ },
+ "keywords": [
+ "create",
+ "canvas",
+ "sketch",
+ "snoot",
+ "snoot",
+ "honk",
+ "honk",
+ "noot",
+ "noot"
+ ],
+ "author": "chee ",
+ "license": "GPL-3.0+",
+ "bugs": {
+ "url": "https://github.com/snootclub/create-canvas-sketch/issues"
+ },
+ "homepage": "https://github.com/snootclub/create-canvas-sketch#readme",
+ "dependencies": {
+ "colors": "^1.3.3",
+ "execa": "^1.0.0",
+ "fs-extra": "^7.0.1",
+ "inquirer": "^6.2.1"
+ },
+ "devDependencies": {
+ "@types/execa": "^0.9.0",
+ "@types/fs-extra": "^5.0.4"
+ }
+}