├── .gitignore ├── .npmignore ├── .travis.yml ├── LICENSE ├── README.md ├── examples └── simple │ ├── .babelrc │ ├── .editorconfig │ ├── .eslintignore │ ├── .eslintrc │ ├── .flowconfig │ ├── .gitignore │ ├── .npmignore │ ├── package.json │ ├── sagui.config.js │ ├── src │ ├── index.css │ ├── index.html │ ├── index.js │ ├── index.spec.js │ └── plain-two-pages.sketch │ └── yarn.lock ├── index.js ├── package.json ├── tests ├── fixtures │ ├── simple.json │ └── simple.sketch └── index.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | examples 2 | tests 3 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 7 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Fernando Vía Canel 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # sketch-loader 2 | 3 | [![https://travis-ci.org/xaviervia/sketch-loader.svg?branch=master](https://travis-ci.org/xaviervia/sketch-loader.svg?branch=master)](https://travis-ci.org/xaviervia/sketch-loader/builds) [![npm version](https://img.shields.io/npm/v/sketch-loader.svg?maxAge=1000)](https://www.npmjs.com/package/sketch-loader) 4 | 5 | 6 | Webpack loader for Sketch (+43) files 7 | 8 | ``` 9 | npm install --save sketch-loader 10 | ``` 11 | 12 | ```javascript 13 | module: { 14 | loaders: [ 15 | { 16 | test: /\.sketch$/, 17 | loader: 'sketch' 18 | } 19 | ] 20 | } 21 | ``` 22 | 23 | Then importing: 24 | 25 | ```javascript 26 | import sketchFile from './some-file.sketch' 27 | 28 | sketchFile.document // parsed contents of document.json 29 | sketchFile.user // parsed contents of user.json 30 | sketchFile.meta // parsed contents of meta.json 31 | sketchFile.pages['0F364A54-A488-4D6F-BAA4-F93FB057C5A3'] // parsed contents of pages/0F364A54-A488-4D6F-BAA4-F93FB057C5A3.json, and so on for every page file 32 | ``` 33 | 34 | You can check the example in [examples/simple/sagui.config.js](examples/simple/sagui.config.js) 35 | 36 | ## What is the structure of the contents? 37 | 38 | As far as I know, there is no official documentation yet. 39 | 40 | Meanwhile here you can find [Flowtype definitions for Sketch 43+ JSON](https://github.com/darknoon/sketchapp-json-flow-types/blob/master/types.js) by @darknoon to use as guide. 41 | 42 | ## License 43 | 44 | MIT License 45 | -------------------------------------------------------------------------------- /examples/simple/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["sagui"] 3 | } 4 | -------------------------------------------------------------------------------- /examples/simple/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | trim_trailing_whitespace = true 7 | indent_style = space 8 | indent_size = 2 9 | -------------------------------------------------------------------------------- /examples/simple/.eslintignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | node_modules 4 | -------------------------------------------------------------------------------- /examples/simple/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "sagui" 3 | } 4 | -------------------------------------------------------------------------------- /examples/simple/.flowconfig: -------------------------------------------------------------------------------- 1 | [ignore] 2 | .*/node_modules/.* 3 | .*/package.json 4 | .*/sagui.config.js 5 | 6 | [include] 7 | 8 | [libs] 9 | node_modules/sagui/flowtype-interfaces/ 10 | 11 | [options] 12 | module.system=haste 13 | -------------------------------------------------------------------------------- /examples/simple/.gitignore: -------------------------------------------------------------------------------- 1 | coverage 2 | node_modules 3 | npm-debug.log 4 | dist 5 | .DS_Store 6 | -------------------------------------------------------------------------------- /examples/simple/.npmignore: -------------------------------------------------------------------------------- 1 | .babelrc 2 | .editorconfig 3 | .eslintignore 4 | .eslintrc 5 | coverage 6 | node_modules 7 | npm-debug.log 8 | src 9 | -------------------------------------------------------------------------------- /examples/simple/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "simple", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "build": "sagui build", 8 | "dist": "sagui dist", 9 | "start": "sagui develop --port 3000", 10 | "test": "sagui test", 11 | "test:lint": "sagui test:lint", 12 | "test:typecheck": "sagui test:typecheck", 13 | "test:unit": "sagui test:unit --coverage", 14 | "test:unit:watch": "sagui test:unit --watch" 15 | }, 16 | "keywords": [], 17 | "author": "", 18 | "license": "ISC", 19 | "devDependencies": { 20 | "sagui": "^8.0.2" 21 | }, 22 | "dependencies": { 23 | "sketch-loader": "^0.1.2" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /examples/simple/sagui.config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Sagui configuration object 3 | * see: http://sagui.js.org/ 4 | */ 5 | module.exports = { 6 | pages: ['index'], 7 | webpack: { 8 | module: { 9 | loaders: [ 10 | { 11 | test: /\.sketch$/, 12 | loader: 'sketch' 13 | } 14 | ] 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /examples/simple/src/index.css: -------------------------------------------------------------------------------- 1 | .component { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /examples/simple/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | simple 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | -------------------------------------------------------------------------------- /examples/simple/src/index.js: -------------------------------------------------------------------------------- 1 | import plainTwoPages from './plain-two-pages.sketch' 2 | 3 | console.log(plainTwoPages) 4 | -------------------------------------------------------------------------------- /examples/simple/src/index.spec.js: -------------------------------------------------------------------------------- 1 | describe('simple', function () { 2 | it('should work', function () { 3 | 4 | }) 5 | }) 6 | -------------------------------------------------------------------------------- /examples/simple/src/plain-two-pages.sketch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xaviervia/sketch-loader/4d7a8085b8c2a940d5543c362a840087c04044e9/examples/simple/src/plain-two-pages.sketch -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const sketch2json = require('sketch2json') 2 | 3 | module.exports = function (source) { 4 | var callback = this.async() 5 | 6 | sketch2json(source).then(result => { 7 | callback(null, 'module.exports = ' + JSON.stringify(result)) 8 | }) 9 | } 10 | 11 | module.exports.raw = true 12 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sketch-loader", 3 | "version": "0.1.2", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "washington tests" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/xaviervia/sketch-loader.git" 12 | }, 13 | "keywords": [ 14 | "sketch", 15 | "webpack", 16 | "design" 17 | ], 18 | "author": "Fernando Via Canel ", 19 | "license": "MIT", 20 | "bugs": { 21 | "url": "https://github.com/xaviervia/sketch-loader/issues" 22 | }, 23 | "homepage": "https://github.com/xaviervia/sketch-loader#readme", 24 | "dependencies": { 25 | "sketch2json": "^0.1.0" 26 | }, 27 | "devDependencies": { 28 | "washington": "^2.0.0-rc.2" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /tests/fixtures/simple.json: -------------------------------------------------------------------------------- 1 | { 2 | "document": {"_class":"document","do_objectID":"9A448235-0DD9-4D1A-8ECF-E22FA074B710","assets":{"_class":"assetCollection","colors":[],"gradients":[],"imageCollection":{"_class":"imageCollection","images":{}},"images":[]},"currentPageIndex":1,"enableLayerInteraction":true,"enableSliceInteraction":true,"foreignSymbols":[],"layerStyles":{"_class":"sharedStyleContainer","objects":[]},"layerSymbols":{"_class":"symbolContainer","objects":[]},"layerTextStyles":{"_class":"sharedTextStyleContainer","objects":[]},"pages":[{"_class":"MSJSONFileReference","_ref_class":"MSImmutablePage","_ref":"pages\/0F364A54-A488-4D6F-BAA4-F93FB057C5A3"},{"_class":"MSJSONFileReference","_ref_class":"MSImmutablePage","_ref":"pages\/7BEBFBF7-DD75-41E2-8882-51A6E354169A"}]}, 3 | "meta": {"commit":"839c310bc9b166440aab19d887eb2aa6f18049d7","appVersion":"43","build":38976,"app":"com.bohemiancoding.sketch3.beta","pagesAndArtboards":{"7BEBFBF7-DD75-41E2-8882-51A6E354169A":{"name":"Page 2","artboards":{"F8A0B4CA-D6D0-437A-B981-916117DD2D11":{"name":"Artboard"}}},"0F364A54-A488-4D6F-BAA4-F93FB057C5A3":{"name":"Page 1","artboards":{"6A7B057C-5BCD-48D5-A0E9-E43B9799335C":{"name":"Artboard"}}}},"fonts":[],"created":{"app":"com.bohemiancoding.sketch3.beta","commit":"839c310bc9b166440aab19d887eb2aa6f18049d7","build":38976,"appVersion":"43","variant":"BETA","version":88},"version":88,"saveHistory":["BETA.38976"],"autosaved":0,"variant":"BETA"}, 4 | "user": {"9A448235-0DD9-4D1A-8ECF-E22FA074B710":{"pageListHeight":110},"7BEBFBF7-DD75-41E2-8882-51A6E354169A":{"scrollOrigin":"{345, 192}","zoomValue":1},"0F364A54-A488-4D6F-BAA4-F93FB057C5A3":{"scrollOrigin":"{0, 0}","zoomValue":1}}, 5 | "pages": { 6 | "0F364A54-A488-4D6F-BAA4-F93FB057C5A3": {"_class":"page","do_objectID":"0F364A54-A488-4D6F-BAA4-F93FB057C5A3","exportOptions":{"_class":"exportOptions","exportFormats":[],"includedLayerIds":[],"layerOptions":0,"shouldTrim":false},"frame":{"_class":"rect","constrainProportions":false,"height":300,"width":300,"x":0,"y":0},"isFlippedHorizontal":false,"isFlippedVertical":false,"isLocked":false,"isVisible":true,"layerListExpandedType":0,"name":"Page 1","nameIsFixed":false,"resizingType":0,"rotation":0,"shouldBreakMaskChain":false,"style":{"_class":"style","endDecorationType":0,"miterLimit":10,"startDecorationType":0},"hasClickThrough":true,"layers":[{"_class":"artboard","do_objectID":"6A7B057C-5BCD-48D5-A0E9-E43B9799335C","exportOptions":{"_class":"exportOptions","exportFormats":[],"includedLayerIds":[],"layerOptions":0,"shouldTrim":false},"frame":{"_class":"rect","constrainProportions":false,"height":265,"width":267,"x":231,"y":163},"isFlippedHorizontal":false,"isFlippedVertical":false,"isLocked":false,"isVisible":true,"layerListExpandedType":0,"name":"Artboard","nameIsFixed":false,"resizingType":0,"rotation":0,"shouldBreakMaskChain":false,"style":{"_class":"style","endDecorationType":0,"miterLimit":10,"startDecorationType":0},"hasClickThrough":false,"layers":[],"backgroundColor":{"_class":"color","alpha":1,"blue":1,"green":1,"red":1},"hasBackgroundColor":false,"horizontalRulerData":{"_class":"rulerData","base":0,"guides":[]},"includeBackgroundColorInExport":true,"includeInCloudUpload":true,"verticalRulerData":{"_class":"rulerData","base":0,"guides":[]}}],"horizontalRulerData":{"_class":"rulerData","base":0,"guides":[]},"includeInCloudUpload":true,"verticalRulerData":{"_class":"rulerData","base":0,"guides":[]}}, 7 | "7BEBFBF7-DD75-41E2-8882-51A6E354169A": {"_class":"page","do_objectID":"7BEBFBF7-DD75-41E2-8882-51A6E354169A","exportOptions":{"_class":"exportOptions","exportFormats":[],"includedLayerIds":[],"layerOptions":0,"shouldTrim":false},"frame":{"_class":"rect","constrainProportions":false,"height":300,"width":300,"x":0,"y":0},"isFlippedHorizontal":false,"isFlippedVertical":false,"isLocked":false,"isVisible":true,"layerListExpandedType":0,"name":"Page 2","nameIsFixed":false,"resizingType":0,"rotation":0,"shouldBreakMaskChain":false,"style":{"_class":"style","endDecorationType":0,"miterLimit":10,"startDecorationType":0},"hasClickThrough":true,"layers":[{"_class":"artboard","do_objectID":"F8A0B4CA-D6D0-437A-B981-916117DD2D11","exportOptions":{"_class":"exportOptions","exportFormats":[],"includedLayerIds":[],"layerOptions":0,"shouldTrim":false},"frame":{"_class":"rect","constrainProportions":false,"height":203,"width":356,"x":-84,"y":-76},"isFlippedHorizontal":false,"isFlippedVertical":false,"isLocked":false,"isVisible":true,"layerListExpandedType":0,"name":"Artboard","nameIsFixed":false,"resizingType":0,"rotation":0,"shouldBreakMaskChain":false,"style":{"_class":"style","endDecorationType":0,"miterLimit":10,"startDecorationType":0},"hasClickThrough":false,"layers":[],"backgroundColor":{"_class":"color","alpha":1,"blue":1,"green":1,"red":1},"hasBackgroundColor":false,"horizontalRulerData":{"_class":"rulerData","base":0,"guides":[]},"includeBackgroundColorInExport":true,"includeInCloudUpload":true,"verticalRulerData":{"_class":"rulerData","base":0,"guides":[]}}],"horizontalRulerData":{"_class":"rulerData","base":-346,"guides":[]},"includeInCloudUpload":true,"verticalRulerData":{"_class":"rulerData","base":-193,"guides":[]}} 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /tests/fixtures/simple.sketch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xaviervia/sketch-loader/4d7a8085b8c2a940d5543c362a840087c04044e9/tests/fixtures/simple.sketch -------------------------------------------------------------------------------- /tests/index.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs') 2 | const sketchLoader = require('../') 3 | const fixture = require('./fixtures/simple.json') 4 | 5 | module.exports = [ 6 | { 7 | description: 'passes the parsed sketch data to the callback', 8 | test: check => { 9 | fs.readFile(__dirname + '/fixtures/simple.sketch', (error, data) => { 10 | const context = { 11 | async: () => (error, moduleValue) => { 12 | check(JSON.parse(moduleValue.slice(17))) 13 | } 14 | } 15 | 16 | sketchLoader.bind(context)(data) 17 | }) 18 | }, 19 | shouldEqual: fixture 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | ansi-regex@^2.0.0: 6 | version "2.1.1" 7 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 8 | 9 | ansi-styles@^2.2.1: 10 | version "2.2.1" 11 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 12 | 13 | chalk@^1.1.3: 14 | version "1.1.3" 15 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 16 | dependencies: 17 | ansi-styles "^2.2.1" 18 | escape-string-regexp "^1.0.2" 19 | has-ansi "^2.0.0" 20 | strip-ansi "^3.0.0" 21 | supports-color "^2.0.0" 22 | 23 | core-js@~2.3.0: 24 | version "2.3.0" 25 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.3.0.tgz#fab83fbb0b2d8dc85fa636c4b9d34c75420c6d65" 26 | 27 | core-util-is@~1.0.0: 28 | version "1.0.2" 29 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 30 | 31 | es6-promise@~3.0.2: 32 | version "3.0.2" 33 | resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.0.2.tgz#010d5858423a5f118979665f46486a95c6ee2bb6" 34 | 35 | escape-string-regexp@^1.0.2: 36 | version "1.0.5" 37 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 38 | 39 | folktale@^2.0.0-alpha2, folktale@^2.0.0-alpha3: 40 | version "2.0.0-alpha3" 41 | resolved "https://registry.yarnpkg.com/folktale/-/folktale-2.0.0-alpha3.tgz#45f51feb486f00aa3d1d6f0f51eb45406c344899" 42 | 43 | has-ansi@^2.0.0: 44 | version "2.0.0" 45 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 46 | dependencies: 47 | ansi-regex "^2.0.0" 48 | 49 | immediate@~3.0.5: 50 | version "3.0.6" 51 | resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" 52 | 53 | immutable-ext@^1.0.8: 54 | version "1.0.8" 55 | resolved "https://registry.yarnpkg.com/immutable-ext/-/immutable-ext-1.0.8.tgz#be49852c009b9c06cbceaf166c873a1d109a4ddc" 56 | 57 | immutable@^3.8.1: 58 | version "3.8.1" 59 | resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.1.tgz#200807f11ab0f72710ea485542de088075f68cd2" 60 | 61 | infestines@^0.4.2: 62 | version "0.4.2" 63 | resolved "https://registry.yarnpkg.com/infestines/-/infestines-0.4.2.tgz#05aef1b8b48a349914be6a6f7522199dff8b93b8" 64 | 65 | inherits@~2.0.1: 66 | version "2.0.3" 67 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 68 | 69 | isarray@~1.0.0: 70 | version "1.0.0" 71 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 72 | 73 | jszip@^3.1.3: 74 | version "3.1.3" 75 | resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.1.3.tgz#8a920403b2b1651c0fc126be90192d9080957c37" 76 | dependencies: 77 | core-js "~2.3.0" 78 | es6-promise "~3.0.2" 79 | lie "~3.1.0" 80 | pako "~1.0.2" 81 | readable-stream "~2.0.6" 82 | 83 | lie@~3.1.0: 84 | version "3.1.1" 85 | resolved "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e" 86 | dependencies: 87 | immediate "~3.0.5" 88 | 89 | pako@~1.0.2: 90 | version "1.0.4" 91 | resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.4.tgz#412cc97c3b7ff06dc6c2557fd4f03d06f5e708d4" 92 | 93 | partial.lenses@^9.4.1: 94 | version "9.8.0" 95 | resolved "https://registry.yarnpkg.com/partial.lenses/-/partial.lenses-9.8.0.tgz#f8514fccc9eeb539b4dfcdb66249ed18d1f84202" 96 | dependencies: 97 | infestines "^0.4.2" 98 | 99 | process-nextick-args@~1.0.6: 100 | version "1.0.7" 101 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" 102 | 103 | readable-stream@~2.0.6: 104 | version "2.0.6" 105 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" 106 | dependencies: 107 | core-util-is "~1.0.0" 108 | inherits "~2.0.1" 109 | isarray "~1.0.0" 110 | process-nextick-args "~1.0.6" 111 | string_decoder "~0.10.x" 112 | util-deprecate "~1.0.1" 113 | 114 | sketch2json@^0.1.0: 115 | version "0.1.0" 116 | resolved "https://registry.yarnpkg.com/sketch2json/-/sketch2json-0.1.0.tgz#783964aa3a05dc14d1d71ff8819860e3807a25b9" 117 | dependencies: 118 | folktale "^2.0.0-alpha3" 119 | immutable "^3.8.1" 120 | immutable-ext "^1.0.8" 121 | jszip "^3.1.3" 122 | 123 | string_decoder@~0.10.x: 124 | version "0.10.31" 125 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 126 | 127 | strip-ansi@^3.0.0: 128 | version "3.0.1" 129 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 130 | dependencies: 131 | ansi-regex "^2.0.0" 132 | 133 | supports-color@^2.0.0: 134 | version "2.0.0" 135 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 136 | 137 | util-deprecate@~1.0.1: 138 | version "1.0.2" 139 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 140 | 141 | washington.core@^2.0.0-rc.2: 142 | version "2.0.0-rc.2" 143 | resolved "https://registry.yarnpkg.com/washington.core/-/washington.core-2.0.0-rc.2.tgz#e4569ef391dfb02e2652d7c0f1178445d8880285" 144 | dependencies: 145 | folktale "^2.0.0-alpha2" 146 | immutable "^3.8.1" 147 | immutable-ext "^1.0.8" 148 | partial.lenses "^9.4.1" 149 | 150 | washington.formatter.terminal@^2.0.0-rc.2: 151 | version "2.0.0-rc.2" 152 | resolved "https://registry.yarnpkg.com/washington.formatter.terminal/-/washington.formatter.terminal-2.0.0-rc.2.tgz#1852253555eb562ea9ef57f67cb69d88f315867b" 153 | dependencies: 154 | chalk "^1.1.3" 155 | folktale "^2.0.0-alpha2" 156 | partial.lenses "^9.4.1" 157 | 158 | washington@^2.0.0-rc.2: 159 | version "2.0.0-rc.2" 160 | resolved "https://registry.yarnpkg.com/washington/-/washington-2.0.0-rc.2.tgz#2b219f8abb3da53f636201a4f7bf4e91a2c7b2ba" 161 | dependencies: 162 | washington.core "^2.0.0-rc.2" 163 | washington.formatter.terminal "^2.0.0-rc.2" 164 | --------------------------------------------------------------------------------