jass-vue 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.md +43 -0
- data/lib/jass/vue.rb +12 -0
- data/lib/jass/vue/version.rb +5 -0
- data/vendor/node_modules/arr-diff/index.js +58 -0
- data/vendor/node_modules/arr-diff/package.json +49 -0
- data/vendor/node_modules/arr-flatten/index.js +22 -0
- data/vendor/node_modules/arr-flatten/package.json +76 -0
- data/vendor/node_modules/array-unique/index.js +28 -0
- data/vendor/node_modules/array-unique/package.json +37 -0
- data/vendor/node_modules/braces/index.js +399 -0
- data/vendor/node_modules/braces/package.json +83 -0
- data/vendor/node_modules/de-indent/index.js +45 -0
- data/vendor/node_modules/de-indent/package.json +25 -0
- data/vendor/node_modules/de-indent/test.js +30 -0
- data/vendor/node_modules/estree-walker/dist/estree-walker.es.js +55 -0
- data/vendor/node_modules/estree-walker/dist/estree-walker.es6.js +59 -0
- data/vendor/node_modules/estree-walker/dist/estree-walker.umd.js +65 -0
- data/vendor/node_modules/estree-walker/package.json +33 -0
- data/vendor/node_modules/estree-walker/src/estree-walker.js +49 -0
- data/vendor/node_modules/expand-brackets/index.js +163 -0
- data/vendor/node_modules/expand-brackets/package.json +62 -0
- data/vendor/node_modules/expand-range/index.js +43 -0
- data/vendor/node_modules/expand-range/package.json +73 -0
- data/vendor/node_modules/extglob/index.js +178 -0
- data/vendor/node_modules/extglob/package.json +60 -0
- data/vendor/node_modules/filename-regex/index.js +10 -0
- data/vendor/node_modules/filename-regex/package.json +50 -0
- data/vendor/node_modules/fill-range/index.js +408 -0
- data/vendor/node_modules/fill-range/package.json +61 -0
- data/vendor/node_modules/for-in/index.js +16 -0
- data/vendor/node_modules/for-in/package.json +68 -0
- data/vendor/node_modules/for-own/index.js +19 -0
- data/vendor/node_modules/for-own/package.json +70 -0
- data/vendor/node_modules/glob-base/index.js +51 -0
- data/vendor/node_modules/glob-base/package.json +52 -0
- data/vendor/node_modules/glob-parent/index.js +10 -0
- data/vendor/node_modules/glob-parent/package.json +35 -0
- data/vendor/node_modules/glob-parent/test.js +28 -0
- data/vendor/node_modules/he/bin/he +148 -0
- data/vendor/node_modules/he/he.js +342 -0
- data/vendor/node_modules/he/man/he.1 +78 -0
- data/vendor/node_modules/he/package.json +56 -0
- data/vendor/node_modules/is-buffer/index.js +21 -0
- data/vendor/node_modules/is-buffer/package.json +51 -0
- data/vendor/node_modules/is-dotfile/index.js +14 -0
- data/vendor/node_modules/is-dotfile/package.json +69 -0
- data/vendor/node_modules/is-equal-shallow/index.js +27 -0
- data/vendor/node_modules/is-equal-shallow/package.json +54 -0
- data/vendor/node_modules/is-extendable/index.js +13 -0
- data/vendor/node_modules/is-extendable/package.json +51 -0
- data/vendor/node_modules/is-extglob/index.js +11 -0
- data/vendor/node_modules/is-extglob/package.json +48 -0
- data/vendor/node_modules/is-glob/index.js +14 -0
- data/vendor/node_modules/is-glob/package.json +60 -0
- data/vendor/node_modules/is-number/index.js +19 -0
- data/vendor/node_modules/is-number/package.json +59 -0
- data/vendor/node_modules/is-posix-bracket/index.js +10 -0
- data/vendor/node_modules/is-posix-bracket/package.json +64 -0
- data/vendor/node_modules/is-primitive/index.js +13 -0
- data/vendor/node_modules/is-primitive/package.json +46 -0
- data/vendor/node_modules/isarray/index.js +5 -0
- data/vendor/node_modules/isarray/package.json +45 -0
- data/vendor/node_modules/isarray/test.js +20 -0
- data/vendor/node_modules/isobject/index.js +14 -0
- data/vendor/node_modules/isobject/package.json +67 -0
- data/vendor/node_modules/kind-of/index.js +116 -0
- data/vendor/node_modules/kind-of/package.json +90 -0
- data/vendor/node_modules/magic-string/dist/magic-string.cjs.js +1287 -0
- data/vendor/node_modules/magic-string/dist/magic-string.es.js +1283 -0
- data/vendor/node_modules/magic-string/dist/magic-string.umd.js +1339 -0
- data/vendor/node_modules/magic-string/package.json +60 -0
- data/vendor/node_modules/magic-string/src/Bundle.js +263 -0
- data/vendor/node_modules/magic-string/src/Chunk.js +154 -0
- data/vendor/node_modules/magic-string/src/MagicString.js +618 -0
- data/vendor/node_modules/magic-string/src/index-legacy.js +6 -0
- data/vendor/node_modules/magic-string/src/index.js +4 -0
- data/vendor/node_modules/magic-string/src/utils/Mappings.js +117 -0
- data/vendor/node_modules/magic-string/src/utils/SourceMap.js +21 -0
- data/vendor/node_modules/magic-string/src/utils/Stats.js +18 -0
- data/vendor/node_modules/magic-string/src/utils/btoa.js +13 -0
- data/vendor/node_modules/magic-string/src/utils/getLocator.js +35 -0
- data/vendor/node_modules/magic-string/src/utils/getRelativePath.js +18 -0
- data/vendor/node_modules/magic-string/src/utils/guessIndent.js +25 -0
- data/vendor/node_modules/magic-string/src/utils/hasOwnProp.js +1 -0
- data/vendor/node_modules/magic-string/src/utils/isObject.js +5 -0
- data/vendor/node_modules/micromatch/index.js +431 -0
- data/vendor/node_modules/micromatch/lib/chars.js +67 -0
- data/vendor/node_modules/micromatch/lib/expand.js +304 -0
- data/vendor/node_modules/micromatch/lib/glob.js +193 -0
- data/vendor/node_modules/micromatch/lib/utils.js +149 -0
- data/vendor/node_modules/micromatch/package.json +114 -0
- data/vendor/node_modules/normalize-path/index.js +19 -0
- data/vendor/node_modules/normalize-path/package.json +78 -0
- data/vendor/node_modules/object.omit/index.js +40 -0
- data/vendor/node_modules/object.omit/package.json +67 -0
- data/vendor/node_modules/parse-glob/index.js +156 -0
- data/vendor/node_modules/parse-glob/package.json +62 -0
- data/vendor/node_modules/preserve/index.js +54 -0
- data/vendor/node_modules/preserve/package.json +48 -0
- data/vendor/node_modules/preserve/test.js +48 -0
- data/vendor/node_modules/randomatic/index.js +82 -0
- data/vendor/node_modules/randomatic/node_modules/is-number/index.js +22 -0
- data/vendor/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/index.js +116 -0
- data/vendor/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/package.json +90 -0
- data/vendor/node_modules/randomatic/node_modules/is-number/package.json +83 -0
- data/vendor/node_modules/randomatic/node_modules/kind-of/index.js +119 -0
- data/vendor/node_modules/randomatic/node_modules/kind-of/package.json +90 -0
- data/vendor/node_modules/randomatic/package.json +78 -0
- data/vendor/node_modules/regex-cache/index.js +68 -0
- data/vendor/node_modules/regex-cache/package.json +64 -0
- data/vendor/node_modules/remove-trailing-separator/index.js +17 -0
- data/vendor/node_modules/remove-trailing-separator/package.json +37 -0
- data/vendor/node_modules/repeat-element/index.js +18 -0
- data/vendor/node_modules/repeat-element/package.json +44 -0
- data/vendor/node_modules/repeat-string/index.js +70 -0
- data/vendor/node_modules/repeat-string/package.json +77 -0
- data/vendor/node_modules/rollup-plugin-vue2/dist/rollup-plugin-vue2.common.js +164 -0
- data/vendor/node_modules/rollup-plugin-vue2/dist/rollup-plugin-vue2.es.js +160 -0
- data/vendor/node_modules/rollup-plugin-vue2/package.json +50 -0
- data/vendor/node_modules/rollup-pluginutils/dist/pluginutils.cjs.js +223 -0
- data/vendor/node_modules/rollup-pluginutils/dist/pluginutils.es.js +214 -0
- data/vendor/node_modules/rollup-pluginutils/dist/pluginutils.es6.js +217 -0
- data/vendor/node_modules/rollup-pluginutils/package.json +40 -0
- data/vendor/node_modules/rollup-pluginutils/src/addExtension.js +6 -0
- data/vendor/node_modules/rollup-pluginutils/src/attachScopes.js +147 -0
- data/vendor/node_modules/rollup-pluginutils/src/createFilter.js +33 -0
- data/vendor/node_modules/rollup-pluginutils/src/index.js +4 -0
- data/vendor/node_modules/rollup-pluginutils/src/makeLegalIdentifier.js +15 -0
- data/vendor/node_modules/rollup-pluginutils/src/utils/ensureArray.js +5 -0
- data/vendor/node_modules/vlq/dist/vlq.js +91 -0
- data/vendor/node_modules/vlq/package.json +27 -0
- data/vendor/node_modules/vlq/src/vlq.js +78 -0
- data/vendor/node_modules/vue-template-compiler/browser.js +5237 -0
- data/vendor/node_modules/vue-template-compiler/build.js +4835 -0
- data/vendor/node_modules/vue-template-compiler/index.js +18 -0
- data/vendor/node_modules/vue-template-compiler/package.json +27 -0
- data/vendor/node_modules/vue-template-es2015-compiler/buble.js +14112 -0
- data/vendor/node_modules/vue-template-es2015-compiler/index.js +24 -0
- data/vendor/node_modules/vue-template-es2015-compiler/package.json +28 -0
- data/vendor/package.json +9 -0
- data/vendor/yarn.lock +268 -0
- metadata +242 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: c2685154ff4c63266a8b7b5320642b211ae7e45b626f4e9168c9161de174f4ab
|
|
4
|
+
data.tar.gz: 8825925b9cba3fddfd05f10fb4c2e73038fb29547cdcbf47a54c0d0f3ea62159
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 2d325b4bab960a478c5f503c80fdd5b2655cc7f31e2c4db205dc9cfcefed37405cc8ed01390b3fedfe7c79bfde2d24062231391572b1b218e857010ccb2b897b
|
|
7
|
+
data.tar.gz: 1178b2353d960e41e057d161d7917cd2c61eccf729f7334d1e58c79cfa98a7abdd122c8e741a1c1f7451bb226a88fdce541e953e2db1ae60271dcf646ae8bd63
|
data/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2018 Matthias Grosser
|
|
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.
|
data/README.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Jass::Vue
|
|
2
|
+
|
|
3
|
+
Roll ES6 and VueJS single file components with the Rails asset pipeline - no Webpack required!
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Add this line to your application's Gemfile:
|
|
8
|
+
|
|
9
|
+
```ruby
|
|
10
|
+
gem 'jass-vue'
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
You need a working NodeJS installation.
|
|
14
|
+
|
|
15
|
+
## Configuration
|
|
16
|
+
|
|
17
|
+
In Rails apps the location of your custom npm dependencies will be automatically
|
|
18
|
+
set to:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
Jass.vendor_modules_root = Rails.root.join('vendor')
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
For other frameworks, it needs to be set manually using the above method.
|
|
25
|
+
|
|
26
|
+
## Usage
|
|
27
|
+
|
|
28
|
+
Use `yarn` to install your custom npm dependencies into `vendor/node_modules`.
|
|
29
|
+
`vendor/package.json` and `vendor/yarn.lock` should be checked into source control.
|
|
30
|
+
|
|
31
|
+
Create your bundle entry points as `.jass` files under `app/assets/javascripts` in regular
|
|
32
|
+
ES6 syntax (`import`, `async/await`).
|
|
33
|
+
|
|
34
|
+
External dependencies can be declared to Sprockets using the `global` comment:
|
|
35
|
+
|
|
36
|
+
```js
|
|
37
|
+
// application.jass
|
|
38
|
+
//= global vue Vue
|
|
39
|
+
//= global vue-router VueRouter
|
|
40
|
+
|
|
41
|
+
import Vue from 'vue'
|
|
42
|
+
import Foo from 'custom-dependency'
|
|
43
|
+
```
|
data/lib/jass/vue.rb
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
require 'jass/vue/version'
|
|
2
|
+
require 'jass'
|
|
3
|
+
|
|
4
|
+
module Jass
|
|
5
|
+
module Vue
|
|
6
|
+
def self.root
|
|
7
|
+
File.absolute_path(Pathname.new(__FILE__).dirname.join('..', '..', 'vendor').to_s)
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
Jass.prepend_plugin 'rollup-plugin-vue2', 'vue2', '{include: /\.vue$/ }', Jass::Vue.root
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* arr-diff <https://github.com/jonschlinkert/arr-diff>
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2014 Jon Schlinkert, contributors.
|
|
5
|
+
* Licensed under the MIT License
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
'use strict';
|
|
9
|
+
|
|
10
|
+
var flatten = require('arr-flatten');
|
|
11
|
+
var slice = [].slice;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Return the difference between the first array and
|
|
15
|
+
* additional arrays.
|
|
16
|
+
*
|
|
17
|
+
* ```js
|
|
18
|
+
* var diff = require('{%= name %}');
|
|
19
|
+
*
|
|
20
|
+
* var a = ['a', 'b', 'c', 'd'];
|
|
21
|
+
* var b = ['b', 'c'];
|
|
22
|
+
*
|
|
23
|
+
* console.log(diff(a, b))
|
|
24
|
+
* //=> ['a', 'd']
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @param {Array} `a`
|
|
28
|
+
* @param {Array} `b`
|
|
29
|
+
* @return {Array}
|
|
30
|
+
* @api public
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
function diff(arr, arrays) {
|
|
34
|
+
var argsLen = arguments.length;
|
|
35
|
+
var len = arr.length, i = -1;
|
|
36
|
+
var res = [], arrays;
|
|
37
|
+
|
|
38
|
+
if (argsLen === 1) {
|
|
39
|
+
return arr;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (argsLen > 2) {
|
|
43
|
+
arrays = flatten(slice.call(arguments, 1));
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
while (++i < len) {
|
|
47
|
+
if (!~arrays.indexOf(arr[i])) {
|
|
48
|
+
res.push(arr[i]);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return res;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Expose `diff`
|
|
56
|
+
*/
|
|
57
|
+
|
|
58
|
+
module.exports = diff;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "arr-diff",
|
|
3
|
+
"description": "Returns an array with only the unique values from the first array, by excluding all values from additional arrays using strict equality for comparisons.",
|
|
4
|
+
"version": "2.0.0",
|
|
5
|
+
"homepage": "https://github.com/jonschlinkert/arr-diff",
|
|
6
|
+
"author": "Jon Schlinkert (https://github.com/jonschlinkert)",
|
|
7
|
+
"repository": "jonschlinkert/arr-diff",
|
|
8
|
+
"bugs": {
|
|
9
|
+
"url": "https://github.com/jonschlinkert/arr-diff/issues"
|
|
10
|
+
},
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"files": [
|
|
13
|
+
"index.js"
|
|
14
|
+
],
|
|
15
|
+
"main": "index.js",
|
|
16
|
+
"engines": {
|
|
17
|
+
"node": ">=0.10.0"
|
|
18
|
+
},
|
|
19
|
+
"scripts": {
|
|
20
|
+
"test": "mocha"
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"arr-flatten": "^1.0.1"
|
|
24
|
+
},
|
|
25
|
+
"devDependencies": {
|
|
26
|
+
"array-differ": "^1.0.0",
|
|
27
|
+
"array-slice": "^0.2.3",
|
|
28
|
+
"benchmarked": "^0.1.4",
|
|
29
|
+
"chalk": "^1.1.1",
|
|
30
|
+
"mocha": "*",
|
|
31
|
+
"should": "*"
|
|
32
|
+
},
|
|
33
|
+
"keywords": [
|
|
34
|
+
"arr",
|
|
35
|
+
"array",
|
|
36
|
+
"diff",
|
|
37
|
+
"differ",
|
|
38
|
+
"difference"
|
|
39
|
+
],
|
|
40
|
+
"verb": {
|
|
41
|
+
"related": {
|
|
42
|
+
"list": [
|
|
43
|
+
"arr-flatten",
|
|
44
|
+
"array-filter",
|
|
45
|
+
"array-intersection"
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* arr-flatten <https://github.com/jonschlinkert/arr-flatten>
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2014-2017, Jon Schlinkert.
|
|
5
|
+
* Released under the MIT License.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
'use strict';
|
|
9
|
+
|
|
10
|
+
module.exports = function (arr) {
|
|
11
|
+
return flat(arr, []);
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
function flat(arr, res) {
|
|
15
|
+
var i = 0, cur;
|
|
16
|
+
var len = arr.length;
|
|
17
|
+
for (; i < len; i++) {
|
|
18
|
+
cur = arr[i];
|
|
19
|
+
Array.isArray(cur) ? flat(cur, res) : res.push(cur);
|
|
20
|
+
}
|
|
21
|
+
return res;
|
|
22
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "arr-flatten",
|
|
3
|
+
"description": "Recursively flatten an array or arrays.",
|
|
4
|
+
"version": "1.1.0",
|
|
5
|
+
"homepage": "https://github.com/jonschlinkert/arr-flatten",
|
|
6
|
+
"author": "Jon Schlinkert (https://github.com/jonschlinkert)",
|
|
7
|
+
"contributors": [
|
|
8
|
+
"Jon Schlinkert (http://twitter.com/jonschlinkert)",
|
|
9
|
+
"Luke Edwards (https://lukeed.com)"
|
|
10
|
+
],
|
|
11
|
+
"repository": "jonschlinkert/arr-flatten",
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/jonschlinkert/arr-flatten/issues"
|
|
14
|
+
},
|
|
15
|
+
"license": "MIT",
|
|
16
|
+
"files": [
|
|
17
|
+
"index.js"
|
|
18
|
+
],
|
|
19
|
+
"main": "index.js",
|
|
20
|
+
"engines": {
|
|
21
|
+
"node": ">=0.10.0"
|
|
22
|
+
},
|
|
23
|
+
"scripts": {
|
|
24
|
+
"test": "mocha"
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"ansi-bold": "^0.1.1",
|
|
28
|
+
"array-flatten": "^2.1.1",
|
|
29
|
+
"array-slice": "^1.0.0",
|
|
30
|
+
"benchmarked": "^1.0.0",
|
|
31
|
+
"compute-flatten": "^1.0.0",
|
|
32
|
+
"flatit": "^1.1.1",
|
|
33
|
+
"flatten": "^1.0.2",
|
|
34
|
+
"flatten-array": "^1.0.0",
|
|
35
|
+
"glob": "^7.1.1",
|
|
36
|
+
"gulp-format-md": "^0.1.12",
|
|
37
|
+
"just-flatten-it": "^1.1.23",
|
|
38
|
+
"lodash.flattendeep": "^4.4.0",
|
|
39
|
+
"m_flattened": "^1.0.1",
|
|
40
|
+
"mocha": "^3.2.0",
|
|
41
|
+
"utils-flatten": "^1.0.0",
|
|
42
|
+
"write": "^0.3.3"
|
|
43
|
+
},
|
|
44
|
+
"keywords": [
|
|
45
|
+
"arr",
|
|
46
|
+
"array",
|
|
47
|
+
"elements",
|
|
48
|
+
"flat",
|
|
49
|
+
"flatten",
|
|
50
|
+
"nested",
|
|
51
|
+
"recurse",
|
|
52
|
+
"recursive",
|
|
53
|
+
"recursively"
|
|
54
|
+
],
|
|
55
|
+
"verb": {
|
|
56
|
+
"toc": false,
|
|
57
|
+
"layout": "default",
|
|
58
|
+
"tasks": [
|
|
59
|
+
"readme"
|
|
60
|
+
],
|
|
61
|
+
"plugins": [
|
|
62
|
+
"gulp-format-md"
|
|
63
|
+
],
|
|
64
|
+
"related": {
|
|
65
|
+
"list": [
|
|
66
|
+
"arr-filter",
|
|
67
|
+
"arr-union",
|
|
68
|
+
"array-each",
|
|
69
|
+
"array-unique"
|
|
70
|
+
]
|
|
71
|
+
},
|
|
72
|
+
"lint": {
|
|
73
|
+
"reflinks": true
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* array-unique <https://github.com/jonschlinkert/array-unique>
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2014-2015, Jon Schlinkert.
|
|
5
|
+
* Licensed under the MIT License.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
'use strict';
|
|
9
|
+
|
|
10
|
+
module.exports = function unique(arr) {
|
|
11
|
+
if (!Array.isArray(arr)) {
|
|
12
|
+
throw new TypeError('array-unique expects an array.');
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
var len = arr.length;
|
|
16
|
+
var i = -1;
|
|
17
|
+
|
|
18
|
+
while (i++ < len) {
|
|
19
|
+
var j = i + 1;
|
|
20
|
+
|
|
21
|
+
for (; j < arr.length; ++j) {
|
|
22
|
+
if (arr[i] === arr[j]) {
|
|
23
|
+
arr.splice(j--, 1);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return arr;
|
|
28
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "array-unique",
|
|
3
|
+
"description": "Return an array free of duplicate values. Fastest ES5 implementation.",
|
|
4
|
+
"version": "0.2.1",
|
|
5
|
+
"homepage": "https://github.com/jonschlinkert/array-unique",
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "Jon Schlinkert",
|
|
8
|
+
"url": "https://github.com/jonschlinkert"
|
|
9
|
+
},
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git://github.com/jonschlinkert/array-unique.git"
|
|
13
|
+
},
|
|
14
|
+
"bugs": {
|
|
15
|
+
"url": "https://github.com/jonschlinkert/array-unique/issues"
|
|
16
|
+
},
|
|
17
|
+
"license": {
|
|
18
|
+
"type": "MIT",
|
|
19
|
+
"url": "https://github.com/jonschlinkert/array-unique/blob/master/LICENSE"
|
|
20
|
+
},
|
|
21
|
+
"files": [
|
|
22
|
+
"index.js"
|
|
23
|
+
],
|
|
24
|
+
"main": "index.js",
|
|
25
|
+
"engines": {
|
|
26
|
+
"node": ">=0.10.0"
|
|
27
|
+
},
|
|
28
|
+
"scripts": {
|
|
29
|
+
"test": "mocha"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"array-uniq": "^1.0.2",
|
|
33
|
+
"benchmarked": "^0.1.3",
|
|
34
|
+
"mocha": "*",
|
|
35
|
+
"should": "*"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* braces <https://github.com/jonschlinkert/braces>
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2014-2015, Jon Schlinkert.
|
|
5
|
+
* Licensed under the MIT license.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
'use strict';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Module dependencies
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
var expand = require('expand-range');
|
|
15
|
+
var repeat = require('repeat-element');
|
|
16
|
+
var tokens = require('preserve');
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Expose `braces`
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
module.exports = function(str, options) {
|
|
23
|
+
if (typeof str !== 'string') {
|
|
24
|
+
throw new Error('braces expects a string');
|
|
25
|
+
}
|
|
26
|
+
return braces(str, options);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Expand `{foo,bar}` or `{1..5}` braces in the
|
|
31
|
+
* given `string`.
|
|
32
|
+
*
|
|
33
|
+
* @param {String} `str`
|
|
34
|
+
* @param {Array} `arr`
|
|
35
|
+
* @param {Object} `options`
|
|
36
|
+
* @return {Array}
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
function braces(str, arr, options) {
|
|
40
|
+
if (str === '') {
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (!Array.isArray(arr)) {
|
|
45
|
+
options = arr;
|
|
46
|
+
arr = [];
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
var opts = options || {};
|
|
50
|
+
arr = arr || [];
|
|
51
|
+
|
|
52
|
+
if (typeof opts.nodupes === 'undefined') {
|
|
53
|
+
opts.nodupes = true;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
var fn = opts.fn;
|
|
57
|
+
var es6;
|
|
58
|
+
|
|
59
|
+
if (typeof opts === 'function') {
|
|
60
|
+
fn = opts;
|
|
61
|
+
opts = {};
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (!(patternRe instanceof RegExp)) {
|
|
65
|
+
patternRe = patternRegex();
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
var matches = str.match(patternRe) || [];
|
|
69
|
+
var m = matches[0];
|
|
70
|
+
|
|
71
|
+
switch(m) {
|
|
72
|
+
case '\\,':
|
|
73
|
+
return escapeCommas(str, arr, opts);
|
|
74
|
+
case '\\.':
|
|
75
|
+
return escapeDots(str, arr, opts);
|
|
76
|
+
case '\/.':
|
|
77
|
+
return escapePaths(str, arr, opts);
|
|
78
|
+
case ' ':
|
|
79
|
+
return splitWhitespace(str);
|
|
80
|
+
case '{,}':
|
|
81
|
+
return exponential(str, opts, braces);
|
|
82
|
+
case '{}':
|
|
83
|
+
return emptyBraces(str, arr, opts);
|
|
84
|
+
case '\\{':
|
|
85
|
+
case '\\}':
|
|
86
|
+
return escapeBraces(str, arr, opts);
|
|
87
|
+
case '${':
|
|
88
|
+
if (!/\{[^{]+\{/.test(str)) {
|
|
89
|
+
return arr.concat(str);
|
|
90
|
+
} else {
|
|
91
|
+
es6 = true;
|
|
92
|
+
str = tokens.before(str, es6Regex());
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (!(braceRe instanceof RegExp)) {
|
|
97
|
+
braceRe = braceRegex();
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
var match = braceRe.exec(str);
|
|
101
|
+
if (match == null) {
|
|
102
|
+
return [str];
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
var outter = match[1];
|
|
106
|
+
var inner = match[2];
|
|
107
|
+
if (inner === '') { return [str]; }
|
|
108
|
+
|
|
109
|
+
var segs, segsLength;
|
|
110
|
+
|
|
111
|
+
if (inner.indexOf('..') !== -1) {
|
|
112
|
+
segs = expand(inner, opts, fn) || inner.split(',');
|
|
113
|
+
segsLength = segs.length;
|
|
114
|
+
|
|
115
|
+
} else if (inner[0] === '"' || inner[0] === '\'') {
|
|
116
|
+
return arr.concat(str.split(/['"]/).join(''));
|
|
117
|
+
|
|
118
|
+
} else {
|
|
119
|
+
segs = inner.split(',');
|
|
120
|
+
if (opts.makeRe) {
|
|
121
|
+
return braces(str.replace(outter, wrap(segs, '|')), opts);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
segsLength = segs.length;
|
|
125
|
+
if (segsLength === 1 && opts.bash) {
|
|
126
|
+
segs[0] = wrap(segs[0], '\\');
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
var len = segs.length;
|
|
131
|
+
var i = 0, val;
|
|
132
|
+
|
|
133
|
+
while (len--) {
|
|
134
|
+
var path = segs[i++];
|
|
135
|
+
|
|
136
|
+
if (/(\.[^.\/])/.test(path)) {
|
|
137
|
+
if (segsLength > 1) {
|
|
138
|
+
return segs;
|
|
139
|
+
} else {
|
|
140
|
+
return [str];
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
val = splice(str, outter, path);
|
|
145
|
+
|
|
146
|
+
if (/\{[^{}]+?\}/.test(val)) {
|
|
147
|
+
arr = braces(val, arr, opts);
|
|
148
|
+
} else if (val !== '') {
|
|
149
|
+
if (opts.nodupes && arr.indexOf(val) !== -1) { continue; }
|
|
150
|
+
arr.push(es6 ? tokens.after(val) : val);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
if (opts.strict) { return filter(arr, filterEmpty); }
|
|
155
|
+
return arr;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Expand exponential ranges
|
|
160
|
+
*
|
|
161
|
+
* `a{,}{,}` => ['a', 'a', 'a', 'a']
|
|
162
|
+
*/
|
|
163
|
+
|
|
164
|
+
function exponential(str, options, fn) {
|
|
165
|
+
if (typeof options === 'function') {
|
|
166
|
+
fn = options;
|
|
167
|
+
options = null;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
var opts = options || {};
|
|
171
|
+
var esc = '__ESC_EXP__';
|
|
172
|
+
var exp = 0;
|
|
173
|
+
var res;
|
|
174
|
+
|
|
175
|
+
var parts = str.split('{,}');
|
|
176
|
+
if (opts.nodupes) {
|
|
177
|
+
return fn(parts.join(''), opts);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
exp = parts.length - 1;
|
|
181
|
+
res = fn(parts.join(esc), opts);
|
|
182
|
+
var len = res.length;
|
|
183
|
+
var arr = [];
|
|
184
|
+
var i = 0;
|
|
185
|
+
|
|
186
|
+
while (len--) {
|
|
187
|
+
var ele = res[i++];
|
|
188
|
+
var idx = ele.indexOf(esc);
|
|
189
|
+
|
|
190
|
+
if (idx === -1) {
|
|
191
|
+
arr.push(ele);
|
|
192
|
+
|
|
193
|
+
} else {
|
|
194
|
+
ele = ele.split('__ESC_EXP__').join('');
|
|
195
|
+
if (!!ele && opts.nodupes !== false) {
|
|
196
|
+
arr.push(ele);
|
|
197
|
+
|
|
198
|
+
} else {
|
|
199
|
+
var num = Math.pow(2, exp);
|
|
200
|
+
arr.push.apply(arr, repeat(ele, num));
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return arr;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Wrap a value with parens, brackets or braces,
|
|
209
|
+
* based on the given character/separator.
|
|
210
|
+
*
|
|
211
|
+
* @param {String|Array} `val`
|
|
212
|
+
* @param {String} `ch`
|
|
213
|
+
* @return {String}
|
|
214
|
+
*/
|
|
215
|
+
|
|
216
|
+
function wrap(val, ch) {
|
|
217
|
+
if (ch === '|') {
|
|
218
|
+
return '(' + val.join(ch) + ')';
|
|
219
|
+
}
|
|
220
|
+
if (ch === ',') {
|
|
221
|
+
return '{' + val.join(ch) + '}';
|
|
222
|
+
}
|
|
223
|
+
if (ch === '-') {
|
|
224
|
+
return '[' + val.join(ch) + ']';
|
|
225
|
+
}
|
|
226
|
+
if (ch === '\\') {
|
|
227
|
+
return '\\{' + val + '\\}';
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Handle empty braces: `{}`
|
|
233
|
+
*/
|
|
234
|
+
|
|
235
|
+
function emptyBraces(str, arr, opts) {
|
|
236
|
+
return braces(str.split('{}').join('\\{\\}'), arr, opts);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* Filter out empty-ish values
|
|
241
|
+
*/
|
|
242
|
+
|
|
243
|
+
function filterEmpty(ele) {
|
|
244
|
+
return !!ele && ele !== '\\';
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Handle patterns with whitespace
|
|
249
|
+
*/
|
|
250
|
+
|
|
251
|
+
function splitWhitespace(str) {
|
|
252
|
+
var segs = str.split(' ');
|
|
253
|
+
var len = segs.length;
|
|
254
|
+
var res = [];
|
|
255
|
+
var i = 0;
|
|
256
|
+
|
|
257
|
+
while (len--) {
|
|
258
|
+
res.push.apply(res, braces(segs[i++]));
|
|
259
|
+
}
|
|
260
|
+
return res;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* Handle escaped braces: `\\{foo,bar}`
|
|
265
|
+
*/
|
|
266
|
+
|
|
267
|
+
function escapeBraces(str, arr, opts) {
|
|
268
|
+
if (!/\{[^{]+\{/.test(str)) {
|
|
269
|
+
return arr.concat(str.split('\\').join(''));
|
|
270
|
+
} else {
|
|
271
|
+
str = str.split('\\{').join('__LT_BRACE__');
|
|
272
|
+
str = str.split('\\}').join('__RT_BRACE__');
|
|
273
|
+
return map(braces(str, arr, opts), function(ele) {
|
|
274
|
+
ele = ele.split('__LT_BRACE__').join('{');
|
|
275
|
+
return ele.split('__RT_BRACE__').join('}');
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
/**
|
|
281
|
+
* Handle escaped dots: `{1\\.2}`
|
|
282
|
+
*/
|
|
283
|
+
|
|
284
|
+
function escapeDots(str, arr, opts) {
|
|
285
|
+
if (!/[^\\]\..+\\\./.test(str)) {
|
|
286
|
+
return arr.concat(str.split('\\').join(''));
|
|
287
|
+
} else {
|
|
288
|
+
str = str.split('\\.').join('__ESC_DOT__');
|
|
289
|
+
return map(braces(str, arr, opts), function(ele) {
|
|
290
|
+
return ele.split('__ESC_DOT__').join('.');
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* Handle escaped dots: `{1\\.2}`
|
|
297
|
+
*/
|
|
298
|
+
|
|
299
|
+
function escapePaths(str, arr, opts) {
|
|
300
|
+
str = str.split('\/.').join('__ESC_PATH__');
|
|
301
|
+
return map(braces(str, arr, opts), function(ele) {
|
|
302
|
+
return ele.split('__ESC_PATH__').join('\/.');
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* Handle escaped commas: `{a\\,b}`
|
|
308
|
+
*/
|
|
309
|
+
|
|
310
|
+
function escapeCommas(str, arr, opts) {
|
|
311
|
+
if (!/\w,/.test(str)) {
|
|
312
|
+
return arr.concat(str.split('\\').join(''));
|
|
313
|
+
} else {
|
|
314
|
+
str = str.split('\\,').join('__ESC_COMMA__');
|
|
315
|
+
return map(braces(str, arr, opts), function(ele) {
|
|
316
|
+
return ele.split('__ESC_COMMA__').join(',');
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* Regex for common patterns
|
|
323
|
+
*/
|
|
324
|
+
|
|
325
|
+
function patternRegex() {
|
|
326
|
+
return /\${|( (?=[{,}])|(?=[{,}]) )|{}|{,}|\\,(?=.*[{}])|\/\.(?=.*[{}])|\\\.(?={)|\\{|\\}/;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
/**
|
|
330
|
+
* Braces regex.
|
|
331
|
+
*/
|
|
332
|
+
|
|
333
|
+
function braceRegex() {
|
|
334
|
+
return /.*(\\?\{([^}]+)\})/;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
/**
|
|
338
|
+
* es6 delimiter regex.
|
|
339
|
+
*/
|
|
340
|
+
|
|
341
|
+
function es6Regex() {
|
|
342
|
+
return /\$\{([^}]+)\}/;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
var braceRe;
|
|
346
|
+
var patternRe;
|
|
347
|
+
|
|
348
|
+
/**
|
|
349
|
+
* Faster alternative to `String.replace()` when the
|
|
350
|
+
* index of the token to be replaces can't be supplied
|
|
351
|
+
*/
|
|
352
|
+
|
|
353
|
+
function splice(str, token, replacement) {
|
|
354
|
+
var i = str.indexOf(token);
|
|
355
|
+
return str.substr(0, i) + replacement
|
|
356
|
+
+ str.substr(i + token.length);
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
/**
|
|
360
|
+
* Fast array map
|
|
361
|
+
*/
|
|
362
|
+
|
|
363
|
+
function map(arr, fn) {
|
|
364
|
+
if (arr == null) {
|
|
365
|
+
return [];
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
var len = arr.length;
|
|
369
|
+
var res = new Array(len);
|
|
370
|
+
var i = -1;
|
|
371
|
+
|
|
372
|
+
while (++i < len) {
|
|
373
|
+
res[i] = fn(arr[i], i, arr);
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
return res;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* Fast array filter
|
|
381
|
+
*/
|
|
382
|
+
|
|
383
|
+
function filter(arr, cb) {
|
|
384
|
+
if (arr == null) return [];
|
|
385
|
+
if (typeof cb !== 'function') {
|
|
386
|
+
throw new TypeError('braces: filter expects a callback function.');
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
var len = arr.length;
|
|
390
|
+
var res = arr.slice();
|
|
391
|
+
var i = 0;
|
|
392
|
+
|
|
393
|
+
while (len--) {
|
|
394
|
+
if (!cb(arr[len], i++)) {
|
|
395
|
+
res.splice(len, 1);
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
return res;
|
|
399
|
+
}
|