css-loader 0.25.0 → 0.26.4
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.
- package/LICENSE +20 -0
- package/README.md +289 -101
- package/index.js +5 -5
- package/lib/compile-exports.js +38 -29
- package/lib/css-base.js +50 -50
- package/lib/getImportPrefix.js +14 -14
- package/lib/getLocalIdent.js +16 -16
- package/lib/loader.js +119 -124
- package/lib/localsLoader.js +46 -46
- package/lib/processCss.js +252 -251
- package/locals.js +5 -5
- package/package.json +20 -12
- package/.eslintrc +0 -10
- package/.npmignore +0 -3
- package/.travis.yml +0 -12
package/lib/processCss.js
CHANGED
|
@@ -1,251 +1,252 @@
|
|
|
1
|
-
/*
|
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
-
Author Tobias Koppers @sokra
|
|
4
|
-
*/
|
|
5
|
-
var formatCodeFrame = require("babel-code-frame");
|
|
6
|
-
var Tokenizer = require("css-selector-tokenizer");
|
|
7
|
-
var postcss = require("postcss");
|
|
8
|
-
var loaderUtils = require("loader-utils");
|
|
9
|
-
var assign = require("object-assign");
|
|
10
|
-
var getLocalIdent = require("./getLocalIdent");
|
|
11
|
-
|
|
12
|
-
var localByDefault = require("postcss-modules-local-by-default");
|
|
13
|
-
var extractImports = require("postcss-modules-extract-imports");
|
|
14
|
-
var modulesScope = require("postcss-modules-scope");
|
|
15
|
-
var modulesValues = require("postcss-modules-values");
|
|
16
|
-
var cssnano = require("cssnano");
|
|
17
|
-
|
|
18
|
-
var parserPlugin = postcss.plugin("css-loader-parser", function(options) {
|
|
19
|
-
return function(css) {
|
|
20
|
-
var imports = {};
|
|
21
|
-
var exports = {};
|
|
22
|
-
var importItems = [];
|
|
23
|
-
var urlItems = [];
|
|
24
|
-
|
|
25
|
-
function replaceImportsInString(str) {
|
|
26
|
-
if(options.import) {
|
|
27
|
-
var tokens = str.split(/(\S+)/);
|
|
28
|
-
tokens = tokens.map(function (token) {
|
|
29
|
-
var importIndex = imports["$" + token];
|
|
30
|
-
if(typeof importIndex === "number") {
|
|
31
|
-
return "___CSS_LOADER_IMPORT___" + importIndex + "___";
|
|
32
|
-
}
|
|
33
|
-
return token;
|
|
34
|
-
});
|
|
35
|
-
return tokens.join("");
|
|
36
|
-
}
|
|
37
|
-
return str;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
if(options.import) {
|
|
41
|
-
css.walkAtRules("import", function(rule) {
|
|
42
|
-
var values = Tokenizer.parseValues(rule.params);
|
|
43
|
-
var url = values.nodes[0].nodes[0];
|
|
44
|
-
if(url.type === "url") {
|
|
45
|
-
url = url.url;
|
|
46
|
-
} else if(url.type === "string") {
|
|
47
|
-
url = url.value;
|
|
48
|
-
} else throw rule.error("Unexpected format" + rule.params);
|
|
49
|
-
values.nodes[0].nodes.shift();
|
|
50
|
-
var mediaQuery = Tokenizer.stringifyValues(values);
|
|
51
|
-
if(loaderUtils.isUrlRequest(url, options.root) && options.mode === "global") {
|
|
52
|
-
url = loaderUtils.urlToRequest(url, options.root);
|
|
53
|
-
}
|
|
54
|
-
importItems.push({
|
|
55
|
-
url: url,
|
|
56
|
-
mediaQuery: mediaQuery
|
|
57
|
-
});
|
|
58
|
-
rule.remove();
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
css.walkRules(function(rule) {
|
|
63
|
-
if(rule.selector === ":export") {
|
|
64
|
-
rule.walkDecls(function(decl) {
|
|
65
|
-
exports[decl.prop] = decl.value;
|
|
66
|
-
});
|
|
67
|
-
rule.remove();
|
|
68
|
-
} else if(/^:import\(.+\)$/.test(rule.selector)) {
|
|
69
|
-
var match = /^:import\((.+)\)$/.exec(rule.selector);
|
|
70
|
-
var url = loaderUtils.parseString(match[1]);
|
|
71
|
-
rule.walkDecls(function(decl) {
|
|
72
|
-
imports["$" + decl.prop] = importItems.length;
|
|
73
|
-
importItems.push({
|
|
74
|
-
url: url,
|
|
75
|
-
export: decl.value
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
rule.remove();
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
Object.keys(exports).forEach(function(exportName) {
|
|
83
|
-
exports[exportName] = replaceImportsInString(exports[exportName]);
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
function processNode(item) {
|
|
87
|
-
switch (item.type) {
|
|
88
|
-
case "value":
|
|
89
|
-
item.nodes.forEach(processNode);
|
|
90
|
-
break;
|
|
91
|
-
case "nested-item":
|
|
92
|
-
item.nodes.forEach(processNode);
|
|
93
|
-
break;
|
|
94
|
-
case "item":
|
|
95
|
-
var importIndex = imports["$" + item.name];
|
|
96
|
-
if (typeof importIndex === "number") {
|
|
97
|
-
item.name = "___CSS_LOADER_IMPORT___" + importIndex + "___";
|
|
98
|
-
}
|
|
99
|
-
break;
|
|
100
|
-
case "url":
|
|
101
|
-
if (options.url && !/^#/.test(item.url) && loaderUtils.isUrlRequest(item.url, options.root)) {
|
|
102
|
-
item.stringType = "";
|
|
103
|
-
delete item.innerSpacingBefore;
|
|
104
|
-
delete item.innerSpacingAfter;
|
|
105
|
-
var url = item.url;
|
|
106
|
-
item.url = "___CSS_LOADER_URL___" + urlItems.length + "___";
|
|
107
|
-
urlItems.push({
|
|
108
|
-
url: url
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
break;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
css.walkDecls(function(decl) {
|
|
116
|
-
var values = Tokenizer.parseValues(decl.value);
|
|
117
|
-
values.nodes.forEach(function(value) {
|
|
118
|
-
value.nodes.forEach(processNode);
|
|
119
|
-
});
|
|
120
|
-
decl.value = Tokenizer.stringifyValues(values);
|
|
121
|
-
});
|
|
122
|
-
css.walkAtRules(function(atrule) {
|
|
123
|
-
if(typeof atrule.params === "string") {
|
|
124
|
-
atrule.params = replaceImportsInString(atrule.params);
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
options.importItems = importItems;
|
|
129
|
-
options.urlItems = urlItems;
|
|
130
|
-
options.exports = exports;
|
|
131
|
-
};
|
|
132
|
-
});
|
|
133
|
-
|
|
134
|
-
module.exports = function processCss(inputSource, inputMap, options, callback) {
|
|
135
|
-
|
|
136
|
-
var
|
|
137
|
-
var
|
|
138
|
-
var
|
|
139
|
-
var
|
|
140
|
-
var
|
|
141
|
-
var
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
err.
|
|
217
|
-
|
|
218
|
-
:
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
};
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
Error.
|
|
244
|
-
this
|
|
245
|
-
this.
|
|
246
|
-
this.
|
|
247
|
-
this.
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
CSSLoaderError.prototype
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
Author Tobias Koppers @sokra
|
|
4
|
+
*/
|
|
5
|
+
var formatCodeFrame = require("babel-code-frame");
|
|
6
|
+
var Tokenizer = require("css-selector-tokenizer");
|
|
7
|
+
var postcss = require("postcss");
|
|
8
|
+
var loaderUtils = require("loader-utils");
|
|
9
|
+
var assign = require("object-assign");
|
|
10
|
+
var getLocalIdent = require("./getLocalIdent");
|
|
11
|
+
|
|
12
|
+
var localByDefault = require("postcss-modules-local-by-default");
|
|
13
|
+
var extractImports = require("postcss-modules-extract-imports");
|
|
14
|
+
var modulesScope = require("postcss-modules-scope");
|
|
15
|
+
var modulesValues = require("postcss-modules-values");
|
|
16
|
+
var cssnano = require("cssnano");
|
|
17
|
+
|
|
18
|
+
var parserPlugin = postcss.plugin("css-loader-parser", function(options) {
|
|
19
|
+
return function(css) {
|
|
20
|
+
var imports = {};
|
|
21
|
+
var exports = {};
|
|
22
|
+
var importItems = [];
|
|
23
|
+
var urlItems = [];
|
|
24
|
+
|
|
25
|
+
function replaceImportsInString(str) {
|
|
26
|
+
if(options.import) {
|
|
27
|
+
var tokens = str.split(/(\S+)/);
|
|
28
|
+
tokens = tokens.map(function (token) {
|
|
29
|
+
var importIndex = imports["$" + token];
|
|
30
|
+
if(typeof importIndex === "number") {
|
|
31
|
+
return "___CSS_LOADER_IMPORT___" + importIndex + "___";
|
|
32
|
+
}
|
|
33
|
+
return token;
|
|
34
|
+
});
|
|
35
|
+
return tokens.join("");
|
|
36
|
+
}
|
|
37
|
+
return str;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if(options.import) {
|
|
41
|
+
css.walkAtRules("import", function(rule) {
|
|
42
|
+
var values = Tokenizer.parseValues(rule.params);
|
|
43
|
+
var url = values.nodes[0].nodes[0];
|
|
44
|
+
if(url.type === "url") {
|
|
45
|
+
url = url.url;
|
|
46
|
+
} else if(url.type === "string") {
|
|
47
|
+
url = url.value;
|
|
48
|
+
} else throw rule.error("Unexpected format" + rule.params);
|
|
49
|
+
values.nodes[0].nodes.shift();
|
|
50
|
+
var mediaQuery = Tokenizer.stringifyValues(values);
|
|
51
|
+
if(loaderUtils.isUrlRequest(url, options.root) && options.mode === "global") {
|
|
52
|
+
url = loaderUtils.urlToRequest(url, options.root);
|
|
53
|
+
}
|
|
54
|
+
importItems.push({
|
|
55
|
+
url: url,
|
|
56
|
+
mediaQuery: mediaQuery
|
|
57
|
+
});
|
|
58
|
+
rule.remove();
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
css.walkRules(function(rule) {
|
|
63
|
+
if(rule.selector === ":export") {
|
|
64
|
+
rule.walkDecls(function(decl) {
|
|
65
|
+
exports[decl.prop] = decl.value;
|
|
66
|
+
});
|
|
67
|
+
rule.remove();
|
|
68
|
+
} else if(/^:import\(.+\)$/.test(rule.selector)) {
|
|
69
|
+
var match = /^:import\((.+)\)$/.exec(rule.selector);
|
|
70
|
+
var url = loaderUtils.parseString(match[1]);
|
|
71
|
+
rule.walkDecls(function(decl) {
|
|
72
|
+
imports["$" + decl.prop] = importItems.length;
|
|
73
|
+
importItems.push({
|
|
74
|
+
url: url,
|
|
75
|
+
export: decl.value
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
rule.remove();
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
Object.keys(exports).forEach(function(exportName) {
|
|
83
|
+
exports[exportName] = replaceImportsInString(exports[exportName]);
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
function processNode(item) {
|
|
87
|
+
switch (item.type) {
|
|
88
|
+
case "value":
|
|
89
|
+
item.nodes.forEach(processNode);
|
|
90
|
+
break;
|
|
91
|
+
case "nested-item":
|
|
92
|
+
item.nodes.forEach(processNode);
|
|
93
|
+
break;
|
|
94
|
+
case "item":
|
|
95
|
+
var importIndex = imports["$" + item.name];
|
|
96
|
+
if (typeof importIndex === "number") {
|
|
97
|
+
item.name = "___CSS_LOADER_IMPORT___" + importIndex + "___";
|
|
98
|
+
}
|
|
99
|
+
break;
|
|
100
|
+
case "url":
|
|
101
|
+
if (options.url && !/^#/.test(item.url) && loaderUtils.isUrlRequest(item.url, options.root)) {
|
|
102
|
+
item.stringType = "";
|
|
103
|
+
delete item.innerSpacingBefore;
|
|
104
|
+
delete item.innerSpacingAfter;
|
|
105
|
+
var url = item.url;
|
|
106
|
+
item.url = "___CSS_LOADER_URL___" + urlItems.length + "___";
|
|
107
|
+
urlItems.push({
|
|
108
|
+
url: url
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
css.walkDecls(function(decl) {
|
|
116
|
+
var values = Tokenizer.parseValues(decl.value);
|
|
117
|
+
values.nodes.forEach(function(value) {
|
|
118
|
+
value.nodes.forEach(processNode);
|
|
119
|
+
});
|
|
120
|
+
decl.value = Tokenizer.stringifyValues(values);
|
|
121
|
+
});
|
|
122
|
+
css.walkAtRules(function(atrule) {
|
|
123
|
+
if(typeof atrule.params === "string") {
|
|
124
|
+
atrule.params = replaceImportsInString(atrule.params);
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
options.importItems = importItems;
|
|
129
|
+
options.urlItems = urlItems;
|
|
130
|
+
options.exports = exports;
|
|
131
|
+
};
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
module.exports = function processCss(inputSource, inputMap, options, callback) {
|
|
135
|
+
var query = options.query;
|
|
136
|
+
var root = query.root;
|
|
137
|
+
var context = query.context;
|
|
138
|
+
var localIdentName = query.localIdentName || "[hash:base64]";
|
|
139
|
+
var localIdentRegExp = query.localIdentRegExp;
|
|
140
|
+
var forceMinimize = query.minimize;
|
|
141
|
+
var minimize = typeof forceMinimize !== "undefined" ? !!forceMinimize : options.minimize;
|
|
142
|
+
|
|
143
|
+
var customGetLocalIdent = query.getLocalIdent || getLocalIdent;
|
|
144
|
+
|
|
145
|
+
var parserOptions = {
|
|
146
|
+
root: root,
|
|
147
|
+
mode: options.mode,
|
|
148
|
+
url: query.url !== false,
|
|
149
|
+
import: query.import !== false
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
var pipeline = postcss([
|
|
153
|
+
localByDefault({
|
|
154
|
+
mode: options.mode,
|
|
155
|
+
rewriteUrl: function(global, url) {
|
|
156
|
+
if(parserOptions.url){
|
|
157
|
+
if(!loaderUtils.isUrlRequest(url, root)) {
|
|
158
|
+
return url;
|
|
159
|
+
}
|
|
160
|
+
if(global) {
|
|
161
|
+
return loaderUtils.urlToRequest(url, root);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return url;
|
|
165
|
+
}
|
|
166
|
+
}),
|
|
167
|
+
extractImports(),
|
|
168
|
+
modulesValues,
|
|
169
|
+
modulesScope({
|
|
170
|
+
generateScopedName: function generateScopedName (exportName) {
|
|
171
|
+
return customGetLocalIdent(options.loaderContext, localIdentName, exportName, {
|
|
172
|
+
regExp: localIdentRegExp,
|
|
173
|
+
hashPrefix: query.hashPrefix || "",
|
|
174
|
+
context: context
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
}),
|
|
178
|
+
parserPlugin(parserOptions)
|
|
179
|
+
]);
|
|
180
|
+
|
|
181
|
+
if(minimize) {
|
|
182
|
+
var minimizeOptions = assign({}, query);
|
|
183
|
+
["zindex", "normalizeUrl", "discardUnused", "mergeIdents", "reduceIdents", "autoprefixer"].forEach(function(name) {
|
|
184
|
+
if(typeof minimizeOptions[name] === "undefined")
|
|
185
|
+
minimizeOptions[name] = false;
|
|
186
|
+
});
|
|
187
|
+
pipeline.use(cssnano(minimizeOptions));
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
pipeline.process(inputSource, {
|
|
191
|
+
// we need a prefix to avoid path rewriting of PostCSS
|
|
192
|
+
from: "/css-loader!" + options.from,
|
|
193
|
+
to: options.to,
|
|
194
|
+
map: {
|
|
195
|
+
prev: inputMap,
|
|
196
|
+
sourcesContent: true,
|
|
197
|
+
inline: false,
|
|
198
|
+
annotation: false
|
|
199
|
+
}
|
|
200
|
+
}).then(function(result) {
|
|
201
|
+
callback(null, {
|
|
202
|
+
source: result.css,
|
|
203
|
+
map: result.map && result.map.toJSON(),
|
|
204
|
+
exports: parserOptions.exports,
|
|
205
|
+
importItems: parserOptions.importItems,
|
|
206
|
+
importItemRegExpG: /___CSS_LOADER_IMPORT___([0-9]+)___/g,
|
|
207
|
+
importItemRegExp: /___CSS_LOADER_IMPORT___([0-9]+)___/,
|
|
208
|
+
urlItems: parserOptions.urlItems,
|
|
209
|
+
urlItemRegExpG: /___CSS_LOADER_URL___([0-9]+)___/g,
|
|
210
|
+
urlItemRegExp: /___CSS_LOADER_URL___([0-9]+)___/
|
|
211
|
+
});
|
|
212
|
+
}).catch(function(err) {
|
|
213
|
+
if (err.name === 'CssSyntaxError') {
|
|
214
|
+
var wrappedError = new CSSLoaderError(
|
|
215
|
+
'Syntax Error',
|
|
216
|
+
err.reason,
|
|
217
|
+
err.line != null && err.column != null
|
|
218
|
+
? {line: err.line, column: err.column}
|
|
219
|
+
: null,
|
|
220
|
+
err.input.source
|
|
221
|
+
);
|
|
222
|
+
callback(wrappedError);
|
|
223
|
+
} else {
|
|
224
|
+
callback(err);
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
function formatMessage(message, loc, source) {
|
|
230
|
+
var formatted = message;
|
|
231
|
+
if (loc) {
|
|
232
|
+
formatted = formatted
|
|
233
|
+
+ ' (' + loc.line + ':' + loc.column + ')';
|
|
234
|
+
}
|
|
235
|
+
if (loc && source) {
|
|
236
|
+
formatted = formatted
|
|
237
|
+
+ '\n\n' + formatCodeFrame(source, loc.line, loc.column) + '\n';
|
|
238
|
+
}
|
|
239
|
+
return formatted;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
function CSSLoaderError(name, message, loc, source, error) {
|
|
243
|
+
Error.call(this);
|
|
244
|
+
Error.captureStackTrace(this, CSSLoaderError);
|
|
245
|
+
this.name = name;
|
|
246
|
+
this.error = error;
|
|
247
|
+
this.message = formatMessage(message, loc, source);
|
|
248
|
+
this.hideStack = true;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
CSSLoaderError.prototype = Object.create(Error.prototype);
|
|
252
|
+
CSSLoaderError.prototype.constructor = CSSLoaderError;
|
package/locals.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/*
|
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
-
Author Tobias Koppers @sokra
|
|
4
|
-
*/
|
|
5
|
-
module.exports = require("./lib/localsLoader");
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
Author Tobias Koppers @sokra
|
|
4
|
+
*/
|
|
5
|
+
module.exports = require("./lib/localsLoader");
|
package/package.json
CHANGED
|
@@ -1,35 +1,43 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "css-loader",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.4",
|
|
4
4
|
"author": "Tobias Koppers @sokra",
|
|
5
5
|
"description": "css loader module for webpack",
|
|
6
6
|
"engines": {
|
|
7
|
-
"node": ">=0.12.0"
|
|
7
|
+
"node": ">=0.12.0 || >=4.3.0 <5.0.0 || >=5.10"
|
|
8
8
|
},
|
|
9
|
+
"files": [
|
|
10
|
+
"index.js",
|
|
11
|
+
"locals.js",
|
|
12
|
+
"lib"
|
|
13
|
+
],
|
|
9
14
|
"dependencies": {
|
|
10
15
|
"babel-code-frame": "^6.11.0",
|
|
11
|
-
"css-selector-tokenizer": "^0.
|
|
16
|
+
"css-selector-tokenizer": "^0.7.0",
|
|
12
17
|
"cssnano": ">=2.6.1 <4",
|
|
13
|
-
"loader-utils": "
|
|
14
|
-
"lodash.camelcase": "^3.0
|
|
18
|
+
"loader-utils": "^1.0.2",
|
|
19
|
+
"lodash.camelcase": "^4.3.0",
|
|
15
20
|
"object-assign": "^4.0.1",
|
|
16
21
|
"postcss": "^5.0.6",
|
|
17
22
|
"postcss-modules-extract-imports": "^1.0.0",
|
|
18
23
|
"postcss-modules-local-by-default": "^1.0.1",
|
|
19
24
|
"postcss-modules-scope": "^1.0.0",
|
|
20
25
|
"postcss-modules-values": "^1.1.0",
|
|
21
|
-
"source-list-map": "^0.1.
|
|
26
|
+
"source-list-map": "^0.1.7"
|
|
22
27
|
},
|
|
23
28
|
"devDependencies": {
|
|
24
|
-
"codecov
|
|
25
|
-
"
|
|
26
|
-
"istanbul": "^0.
|
|
27
|
-
"mocha": "^
|
|
28
|
-
"should": "^
|
|
29
|
+
"codecov": "^1.0.1",
|
|
30
|
+
"eslint": "3.14.0",
|
|
31
|
+
"istanbul": "^0.4.5",
|
|
32
|
+
"mocha": "^3.2.0",
|
|
33
|
+
"should": "^11.1.2"
|
|
29
34
|
},
|
|
30
35
|
"scripts": {
|
|
31
36
|
"test": "mocha",
|
|
32
|
-
"
|
|
37
|
+
"test:cover": "npm run cover -- --report lcovonly",
|
|
38
|
+
"lint": "eslint lib test",
|
|
39
|
+
"travis:test": "npm run cover",
|
|
40
|
+
"travis:lint": "npm run lint",
|
|
33
41
|
"cover": "istanbul cover node_modules/mocha/bin/_mocha",
|
|
34
42
|
"publish-patch": "mocha && npm version patch && git push && git push --tags && npm publish"
|
|
35
43
|
},
|
package/.eslintrc
DELETED
package/.npmignore
DELETED
package/.travis.yml
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
sudo: false
|
|
2
|
-
language: node_js
|
|
3
|
-
node_js:
|
|
4
|
-
- "0.12"
|
|
5
|
-
- "node"
|
|
6
|
-
- "iojs"
|
|
7
|
-
script: npm run travis
|
|
8
|
-
|
|
9
|
-
after_success:
|
|
10
|
-
- cat ./coverage/lcov.info | node_modules/.bin/coveralls --verbose
|
|
11
|
-
- cat ./coverage/coverage.json | node_modules/codecov.io/bin/codecov.io.js
|
|
12
|
-
- rm -rf ./coverage
|