diff options
Diffstat (limited to 'node_modules/sass-graph')
-rw-r--r-- | node_modules/sass-graph/CHANGELOG.md | 127 | ||||
-rwxr-xr-x | node_modules/sass-graph/bin/sassgraph | 124 | ||||
-rw-r--r-- | node_modules/sass-graph/package.json | 75 | ||||
-rw-r--r-- | node_modules/sass-graph/parse-imports.js | 64 | ||||
-rw-r--r-- | node_modules/sass-graph/readme.md | 123 | ||||
-rw-r--r-- | node_modules/sass-graph/sass-graph.js | 160 |
6 files changed, 0 insertions, 673 deletions
diff --git a/node_modules/sass-graph/CHANGELOG.md b/node_modules/sass-graph/CHANGELOG.md deleted file mode 100644 index c21889a..0000000 --- a/node_modules/sass-graph/CHANGELOG.md +++ /dev/null @@ -1,127 +0,0 @@ -# Change Log -All notable changes to this project will be documented in this file. - -## [next] -### Features - -### Fixes - -### Tests - -## [2.2.4] -### Dependencies - -- yargs@^7.0.0 (@alan-agius4, #84) - -## [2.2.3] -### Dependencies - -- scss-tokenizer@^0.2.3 (@xzyfer) - -## [2.2.2] -### Fixes - -- Babel runtime error messages (@xzyfer, #76 #77) - -### Dependencies - -- scss-tokenizer@^0.2.1 (@xzyfer) - -## [2.2.1] -### Fixes - -- Babel runtime error messages (@STRML, #76 #77) - -### Dependencies - -- scss-tokenizer@^0.2.0 - -## [2.2.0] -### Features - -- Replace `@import` regexes with [scss-tokenizer](https://www.npmjs.com/package/scss-tokenizer) (@xzyfer, #68) -- Add support for the old indented (`.sass`) syntax (@xzyfer, #31) -- Add an option to follow symbolic links (@ludwiktrammer, #74) - -### Fixes - -- Replaces deprecated `fs.existsSync` (@martinheidegger, #29) - -### Tests - -- Significantly clean up test suite (@xzyfer, #69) - -### Dependencies - -- yargs@^6.6.0 -- mocha@^3.2.0 - -## [2.1.2] -### Fixes - -- Remove non-essential files from npm package (@jorrit, #48) -- Update yargs to version 4.7.1 (@greenkeeperio-bot, #46) -- Update glob to version 7.0.0 (@greenkeeperio-bot, #36) - -## [2.1.1] -### Fixes - -- Don't add directory `@import`s to graph - [@niksy](https://github.com/niksy) - -## [2.1.0] -### Features - -- Update to lodash 4 - [@nightwolfz](https://github.com/nightwolfz) - -### Fixes - -- Fixed directories with extensions being treated as files - [@niksy](https://github.com/niksy) - -## [2.0.1] -### Fixes -- Fixed tests for Windows - [@pleunv](https://github.com/pleunv) - -## [2.0.0] -### BREAKING CHANGES -- `.sass` files are not included in the graph by default. Use the `-e .sass` flag. - -### Features -- Configurable file extensions - [@dannymidnight](https://github.com/dannymidnight), [@xzyfer](https://github.com/xzyfer) - -### Fixes -- Prioritize cwd when resolving load paths - [@schnerd](https://github.com/schnerd) - -### Tests -- Added test for prioritizing cwd when resolving load paths - [@xzyfer](https://github.com/xzyfer) - -## [1.3.0] -### Features -- Add support for indented syntax - [@vegetableman](https://github.com/vegetableman) - -## [1.2.0] -### Features -- Add support for custom imports - [@kevin-smets](https://github.com/kevin-smets) - -## [1.1.0] - 2015-03-18 -### Fixes -- Only strip extension for css, scss, sass files - [@nervo](https://github.com/nervo) - -## [1.0.4] - 2015-03-03 -### Tests -- Added a test for nested imports - [@kevin-smets](https://github.com/kevin-smets) - -## [1.0.3] - 2015-02-02 -### Fixes -- Replace incorrect usage of `for..in` loops with simple `for` loops - -## [1.0.2] - 2015-02-02 -### Fixes -- Don't iterate over inherited object properties - -## [1.0.1] - 2015-01-05 -### Fixes -- Handle errors in the visitor - -## [1.0.0] - 2015-01-05 - -Initial stable release diff --git a/node_modules/sass-graph/bin/sassgraph b/node_modules/sass-graph/bin/sassgraph deleted file mode 100755 index dd793fb..0000000 --- a/node_modules/sass-graph/bin/sassgraph +++ /dev/null @@ -1,124 +0,0 @@ -#!/usr/bin/env node -var fs = require('fs'); -var path = require('path'); - -var command, directory, file; - -var yargs = require('yargs') - .usage('Usage: $0 <command> [options] <dir> [file]') - // .demand(1) - - .command('ancestors', 'Output the ancestors') - .command('descendents', 'Output the descendents') - - .example('$0 ancestors -I src src/ src/_footer.scss', 'outputs the ancestors of src/_footer.scss') - - .option('I', { - alias: 'load-path', - default: [process.cwd()], - describe: 'Add directories to the sass load path', - type: 'array', - }) - - .option('e', { - alias: 'extensions', - default: ['scss', 'css', 'sass'], - describe: 'File extensions to include in the graph', - type: 'array', - }) - - .option('f', { - alias: 'follow', - default: false, - describe: 'Follow symbolic links', - type: 'bool', - }) - - .option('j', { - alias: 'json', - default: false, - describe: 'Output the index in json', - type: 'bool', - }) - - .version(function() { - return require('../package').version; - }) - .alias('v', 'version') - - .help('h') - .alias('h', 'help'); - -var argv = yargs.argv; - -if (argv._.length === 0) { - yargs.showHelp(); - process.exit(1); -} - -if (['ancestors', 'descendents'].indexOf(argv._[0]) !== -1) { - command = argv._.shift(); -} - -if (argv._ && path.extname(argv._[0]) === '') { - directory = argv._.shift(); -} - -if (argv._ && path.extname(argv._[0])) { - file = argv._.shift(); -} - - -try { - if (!directory) { - throw new Error('Missing directory'); - } - - if (!command && !argv.json) { - throw new Error('Missing command'); - } - - if (!file && (command === 'ancestors' || command === 'descendents')) { - throw new Error(command + ' command requires a file'); - } - - var loadPaths = argv.loadPath; - if(process.env.SASS_PATH) { - loadPaths = loadPaths.concat(process.env.SASS_PATH.split(/:/).map(function(f) { - return path.resolve(f); - })); - } - - var graph = require('../').parseDir(directory, { - extensions: argv.extensions, - loadPaths: loadPaths, - follow: argv.follow, - }); - - if(argv.json) { - console.log(JSON.stringify(graph.index, null, 4)); - process.exit(0); - } - - if (command === 'ancestors') { - graph.visitAncestors(path.resolve(file), function(f) { - console.log(f); - }); - } - - if (command === 'descendents') { - graph.visitDescendents(path.resolve(file), function(f) { - console.log(f); - }); - } -} catch(e) { - if (e.code === 'ENOENT') { - console.error('Error: no such file or directory "' + e.path + '"'); - } - else { - console.log('Error: ' + e.message); - } - - // console.log(e.stack); - process.exit(1); -} diff --git a/node_modules/sass-graph/package.json b/node_modules/sass-graph/package.json deleted file mode 100644 index 2edebaf..0000000 --- a/node_modules/sass-graph/package.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "_from": "sass-graph@2.2.5", - "_id": "sass-graph@2.2.5", - "_inBundle": false, - "_integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", - "_location": "/sass-graph", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "sass-graph@2.2.5", - "name": "sass-graph", - "escapedName": "sass-graph", - "rawSpec": "2.2.5", - "saveSpec": null, - "fetchSpec": "2.2.5" - }, - "_requiredBy": [ - "/node-sass" - ], - "_resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", - "_shasum": "a981c87446b8319d96dce0671e487879bd24c2e8", - "_spec": "sass-graph@2.2.5", - "_where": "/home/pruss/Dev/3-minute-website/node_modules/node-sass", - "author": { - "name": "xzyfer" - }, - "bin": { - "sassgraph": "bin/sassgraph" - }, - "bugs": { - "url": "https://github.com/xzyfer/sass-graph/issues" - }, - "bundleDependencies": false, - "dependencies": { - "glob": "^7.0.0", - "lodash": "^4.0.0", - "scss-tokenizer": "^0.2.3", - "yargs": "^13.3.2" - }, - "deprecated": false, - "description": "Parse sass files and extract a graph of imports", - "devDependencies": { - "assert": "^1.3.0", - "chai": "^3.5.0", - "coveralls": "^2.13.0", - "mocha": "^3.2.0", - "nyc": "^10.2.0" - }, - "directories": { - "bin": "./bin" - }, - "files": [ - "bin", - "parse-imports.js", - "sass-graph.js" - ], - "homepage": "https://github.com/xzyfer/sass-graph#readme", - "keywords": [ - "sass", - "graph" - ], - "license": "MIT", - "main": "sass-graph.js", - "name": "sass-graph", - "repository": { - "type": "git", - "url": "git+https://github.com/xzyfer/sass-graph.git" - }, - "scripts": { - "coverage": "nyc report --reporter=text-lcov | coveralls", - "test": "nyc mocha" - }, - "version": "2.2.5" -} diff --git a/node_modules/sass-graph/parse-imports.js b/node_modules/sass-graph/parse-imports.js deleted file mode 100644 index 634253e..0000000 --- a/node_modules/sass-graph/parse-imports.js +++ /dev/null @@ -1,64 +0,0 @@ -var tokenizer = require('scss-tokenizer'); - -function parseImports(content, isIndentedSyntax) { - var tokens = tokenizer.tokenize(content); - var results = []; - var tmp = ''; - var inImport = false; - var inParen = false; - var prevToken = tokens[0]; - - var i, token; - for (i = 1; i < tokens.length; i++) { - token = tokens[i]; - - if (inImport && !inParen && token[0] === 'string') { - results.push(token[1]); - } - else if (token[1] === 'import' && prevToken[1] === '@') { - if (inImport && !isIndentedSyntax) { - throw new Error('Encountered invalid @import syntax.'); - } - - inImport = true; - } - else if (inImport && !inParen && (token[0] === 'ident' || token[0] === '/')) { - tmp += token[1]; - } - else if (inImport && !inParen && (token[0] === 'space' || token[0] === 'newline')) { - if (tmp !== '') { - results.push(tmp); - tmp = ''; - - if (isIndentedSyntax) { - inImport = false; - } - } - } - else if (inImport && token[0] === ';') { - inImport = false; - - if (tmp !== '') { - results.push(tmp); - tmp = ''; - } - } - else if (inImport && token[0] === '(') { - inParen = true; - tmp = ''; - } - else if (inParen && token[0] === ')') { - inParen = false; - } - - prevToken = token; - } - - if (tmp !== '') { - results.push(tmp); - } - - return results; -} - -module.exports = parseImports; diff --git a/node_modules/sass-graph/readme.md b/node_modules/sass-graph/readme.md deleted file mode 100644 index 1cb67fb..0000000 --- a/node_modules/sass-graph/readme.md +++ /dev/null @@ -1,123 +0,0 @@ -# Sass Graph - -Parses Sass files in a directory and exposes a graph of dependencies - -[](https://travis-ci.org/xzyfer/sass-graph) -[](https://coveralls.io/github/xzyfer/sass-graph?branch=master) -[](http://badge.fury.io/js/sass-graph) -[](https://david-dm.org/xzyfer/sass-graph) -[](https://david-dm.org/xzyfer/sass-graph#info=devDependencies) - -## Install - -Install with [npm](https://npmjs.org/package/sass-graph) - -``` -npm install --save-dev sass-graph -``` - -## Usage - -Usage as a Node library: - -```js -var sassGraph = require('./sass-graph'); -``` - -Usage as a command line tool: - -The command line tool will parse a graph and then either display ancestors, descendents or both. - -``` -$ ./bin/sassgraph --help -Usage: bin/sassgraph <command> [options] <dir> [file] - -Commands: - ancestors Output the ancestors - descendents Output the descendents - -Options: - -I, --load-path Add directories to the sass load path - -e, --extensions File extensions to include in the graph - -j, --json Output the index in json - -h, --help Show help - -v, --version Show version number - -Examples: - ./bin/sassgraph descendents test/fixtures test/fixtures/a.scss - /path/to/test/fixtures/b.scss - /path/to/test/fixtures/_c.scss -``` - -## API - -#### parseDir - -Parses a directory and builds a dependency graph of all requested file extensions. - -#### parseFile - -Parses a file and builds its dependency graph. - -## Options - -#### loadPaths - -Type: `Array` -Default: `[process.cwd]` - -Directories to use when resolved `@import` directives. - -#### extensions - -Type: `Array` -Default: `['scss', 'css', 'sass']` - -File types to be parsed. - -#### follow - -Type: `Boolean` -Default: `false` - -Follow symbolic links. - -## Example - -```js -var sassGraph = require('./sass-graph'); -console.log(sassGraph.parseDir('test/fixtures')); - -//{ index: {, -// '/path/to/test/fixtures/a.scss': { -// imports: ['b.scss'], -// importedBy: [], -// }, -// '/path/to/test/fixtures/b.scss': { -// imports: ['_c.scss'], -// importedBy: ['a.scss'], -// }, -// '/path/to/test/fixtures/_c.scss': { -// imports: [], -// importedBy: ['b/scss'], -// }, -//}} -``` - -## Running Mocha tests - -You can run the tests by executing the following commands: - -``` -npm install -npm test -``` - -## Authors - -Sass graph was originally written by [Lachlan Donald](http://lachlan.me). -It is now maintained by [Michael Mifsud](http://twitter.com/xzyfer). - -## License - -MIT diff --git a/node_modules/sass-graph/sass-graph.js b/node_modules/sass-graph/sass-graph.js deleted file mode 100644 index 5d5aba0..0000000 --- a/node_modules/sass-graph/sass-graph.js +++ /dev/null @@ -1,160 +0,0 @@ -'use strict'; - -var fs = require('fs'); -var path = require('path'); -var _ = require('lodash'); -var glob = require('glob'); -var parseImports = require('./parse-imports'); - -// resolve a sass module to a path -function resolveSassPath(sassPath, loadPaths, extensions) { - // trim sass file extensions - var re = new RegExp('(\.('+extensions.join('|')+'))$', 'i'); - var sassPathName = sassPath.replace(re, ''); - // check all load paths - var i, j, length = loadPaths.length, scssPath, partialPath; - for (i = 0; i < length; i++) { - for (j = 0; j < extensions.length; j++) { - scssPath = path.normalize(loadPaths[i] + '/' + sassPathName + '.' + extensions[j]); - try { - if (fs.lstatSync(scssPath).isFile()) { - return scssPath; - } - } catch (e) {} - } - - // special case for _partials - for (j = 0; j < extensions.length; j++) { - scssPath = path.normalize(loadPaths[i] + '/' + sassPathName + '.' + extensions[j]); - partialPath = path.join(path.dirname(scssPath), '_' + path.basename(scssPath)); - try { - if (fs.lstatSync(partialPath).isFile()) { - return partialPath; - } - } catch (e) {} - } - } - - // File to import not found or unreadable so we assume this is a custom import - return false; -} - -function Graph(options, dir) { - this.dir = dir; - this.extensions = options.extensions || []; - this.index = {}; - this.follow = options.follow || false; - this.loadPaths = _(options.loadPaths).map(function(p) { - return path.resolve(p); - }).value(); - - if (dir) { - var graph = this; - _.each(glob.sync(dir+'/**/*.@('+this.extensions.join('|')+')', { dot: true, nodir: true, follow: this.follow }), function(file) { - graph.addFile(path.resolve(file)); - }); - } -} - -// add a sass file to the graph -Graph.prototype.addFile = function(filepath, parent) { - var entry = this.index[filepath] = this.index[filepath] || { - imports: [], - importedBy: [], - modified: fs.statSync(filepath).mtime - }; - - var resolvedParent; - var isIndentedSyntax = path.extname(filepath) === '.sass'; - var imports = parseImports(fs.readFileSync(filepath, 'utf-8'), isIndentedSyntax); - var cwd = path.dirname(filepath); - - var i, length = imports.length, loadPaths, resolved; - for (i = 0; i < length; i++) { - loadPaths = _([cwd, this.dir]).concat(this.loadPaths).filter().uniq().value(); - resolved = resolveSassPath(imports[i], loadPaths, this.extensions); - if (!resolved) continue; - - // recurse into dependencies if not already enumerated - if (!_.includes(entry.imports, resolved)) { - entry.imports.push(resolved); - this.addFile(fs.realpathSync(resolved), filepath); - } - } - - // add link back to parent - if (parent) { - resolvedParent = _(parent).intersection(this.loadPaths).value(); - - if (resolvedParent) { - resolvedParent = parent.substr(parent.indexOf(resolvedParent)); - } else { - resolvedParent = parent; - } - - entry.importedBy.push(resolvedParent); - } -}; - -// visits all files that are ancestors of the provided file -Graph.prototype.visitAncestors = function(filepath, callback) { - this.visit(filepath, callback, function(err, node) { - if (err || !node) return []; - return node.importedBy; - }); -}; - -// visits all files that are descendents of the provided file -Graph.prototype.visitDescendents = function(filepath, callback) { - this.visit(filepath, callback, function(err, node) { - if (err || !node) return []; - return node.imports; - }); -}; - -// a generic visitor that uses an edgeCallback to find the edges to traverse for a node -Graph.prototype.visit = function(filepath, callback, edgeCallback, visited) { - filepath = fs.realpathSync(filepath); - var visited = visited || []; - if (!this.index.hasOwnProperty(filepath)) { - edgeCallback('Graph doesn\'t contain ' + filepath, null); - } - var edges = edgeCallback(null, this.index[filepath]); - - var i, length = edges.length; - for (i = 0; i < length; i++) { - if (!_.includes(visited, edges[i])) { - visited.push(edges[i]); - callback(edges[i], this.index[edges[i]]); - this.visit(edges[i], callback, edgeCallback, visited); - } - } -}; - -function processOptions(options) { - return _.assign({ - loadPaths: [process.cwd()], - extensions: ['scss', 'css', 'sass'], - }, options); -} - -module.exports.parseFile = function(filepath, options) { - if (fs.lstatSync(filepath).isFile()) { - filepath = path.resolve(filepath); - options = processOptions(options); - var graph = new Graph(options); - graph.addFile(filepath); - return graph; - } - // throws -}; - -module.exports.parseDir = function(dirpath, options) { - if (fs.lstatSync(dirpath).isDirectory()) { - dirpath = path.resolve(dirpath); - options = processOptions(options); - var graph = new Graph(options, dirpath); - return graph; - } - // throws -}; |