less 4.1.3 → 4.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.
Files changed (200) hide show
  1. package/.eslintrc.js +63 -0
  2. package/Gruntfile.js +4 -14
  3. package/dist/less.js +7240 -7042
  4. package/dist/less.min.js +3 -3
  5. package/dist/less.min.js.map +1 -1
  6. package/lib/less/contexts.js +2 -2
  7. package/lib/less/contexts.js.map +1 -1
  8. package/lib/less/default-options.js +0 -1
  9. package/lib/less/default-options.js.map +1 -1
  10. package/lib/less/environment/abstract-file-manager.js +12 -6
  11. package/lib/less/environment/abstract-file-manager.js.map +1 -1
  12. package/lib/less/environment/abstract-plugin-loader.js +2 -2
  13. package/lib/less/environment/abstract-plugin-loader.js.map +1 -1
  14. package/lib/less/environment/environment-api.js +0 -25
  15. package/lib/less/environment/environment-api.js.map +1 -1
  16. package/lib/less/environment/environment.js +2 -2
  17. package/lib/less/environment/environment.js.map +1 -1
  18. package/lib/less/environment/file-manager-api.js +0 -103
  19. package/lib/less/environment/file-manager-api.js.map +1 -1
  20. package/lib/less/functions/color-blending.js +1 -0
  21. package/lib/less/functions/color-blending.js.map +1 -1
  22. package/lib/less/functions/color.js +20 -20
  23. package/lib/less/functions/color.js.map +1 -1
  24. package/lib/less/functions/data-uri.js +3 -3
  25. package/lib/less/functions/data-uri.js.map +1 -1
  26. package/lib/less/functions/default.js +2 -1
  27. package/lib/less/functions/default.js.map +1 -1
  28. package/lib/less/functions/function-caller.js +1 -1
  29. package/lib/less/functions/function-caller.js.map +1 -1
  30. package/lib/less/functions/function-registry.js +1 -0
  31. package/lib/less/functions/function-registry.js.map +1 -1
  32. package/lib/less/functions/index.js +4 -2
  33. package/lib/less/functions/index.js.map +1 -1
  34. package/lib/less/functions/list.js +2 -2
  35. package/lib/less/functions/list.js.map +1 -1
  36. package/lib/less/functions/math-helper.js +1 -1
  37. package/lib/less/functions/math-helper.js.map +1 -1
  38. package/lib/less/functions/math.js +2 -1
  39. package/lib/less/functions/math.js.map +1 -1
  40. package/lib/less/functions/number.js +10 -6
  41. package/lib/less/functions/number.js.map +1 -1
  42. package/lib/less/functions/style.js +28 -0
  43. package/lib/less/functions/style.js.map +1 -0
  44. package/lib/less/functions/svg.js +6 -6
  45. package/lib/less/functions/svg.js.map +1 -1
  46. package/lib/less/functions/types.js +1 -1
  47. package/lib/less/functions/types.js.map +1 -1
  48. package/lib/less/import-manager.js +2 -3
  49. package/lib/less/import-manager.js.map +1 -1
  50. package/lib/less/index.js +8 -9
  51. package/lib/less/index.js.map +1 -1
  52. package/lib/less/less-error.js +11 -12
  53. package/lib/less/less-error.js.map +1 -1
  54. package/lib/less/parse-tree.js +2 -3
  55. package/lib/less/parse-tree.js.map +1 -1
  56. package/lib/less/parse.js +1 -2
  57. package/lib/less/parse.js.map +1 -1
  58. package/lib/less/parser/chunker.js +1 -2
  59. package/lib/less/parser/chunker.js.map +1 -1
  60. package/lib/less/parser/parser-input.js +11 -5
  61. package/lib/less/parser/parser-input.js.map +1 -1
  62. package/lib/less/parser/parser.js +150 -104
  63. package/lib/less/parser/parser.js.map +1 -1
  64. package/lib/less/render.js +1 -2
  65. package/lib/less/render.js.map +1 -1
  66. package/lib/less/source-map-builder.js +2 -3
  67. package/lib/less/source-map-builder.js.map +1 -1
  68. package/lib/less/source-map-output.js +1 -1
  69. package/lib/less/source-map-output.js.map +1 -1
  70. package/lib/less/transform-tree.js +1 -2
  71. package/lib/less/transform-tree.js.map +1 -1
  72. package/lib/less/tree/assignment.js +1 -1
  73. package/lib/less/tree/assignment.js.map +1 -1
  74. package/lib/less/tree/atrule-syntax.js +10 -0
  75. package/lib/less/tree/atrule-syntax.js.map +1 -0
  76. package/lib/less/tree/atrule.js +4 -4
  77. package/lib/less/tree/atrule.js.map +1 -1
  78. package/lib/less/tree/attribute.js +2 -2
  79. package/lib/less/tree/attribute.js.map +1 -1
  80. package/lib/less/tree/call.js +3 -2
  81. package/lib/less/tree/call.js.map +1 -1
  82. package/lib/less/tree/color.js +8 -6
  83. package/lib/less/tree/color.js.map +1 -1
  84. package/lib/less/tree/comment.js +1 -1
  85. package/lib/less/tree/comment.js.map +1 -1
  86. package/lib/less/tree/container.js +48 -0
  87. package/lib/less/tree/container.js.map +1 -0
  88. package/lib/less/tree/debug-info.js +6 -6
  89. package/lib/less/tree/debug-info.js.map +1 -1
  90. package/lib/less/tree/declaration.js +1 -1
  91. package/lib/less/tree/declaration.js.map +1 -1
  92. package/lib/less/tree/dimension.js +6 -4
  93. package/lib/less/tree/dimension.js.map +1 -1
  94. package/lib/less/tree/expression.js +5 -1
  95. package/lib/less/tree/expression.js.map +1 -1
  96. package/lib/less/tree/extend.js +2 -0
  97. package/lib/less/tree/extend.js.map +1 -1
  98. package/lib/less/tree/import.js +1 -1
  99. package/lib/less/tree/import.js.map +1 -1
  100. package/lib/less/tree/index.js +4 -0
  101. package/lib/less/tree/index.js.map +1 -1
  102. package/lib/less/tree/javascript.js +1 -1
  103. package/lib/less/tree/javascript.js.map +1 -1
  104. package/lib/less/tree/js-eval-node.js +6 -6
  105. package/lib/less/tree/js-eval-node.js.map +1 -1
  106. package/lib/less/tree/media.js +4 -88
  107. package/lib/less/tree/media.js.map +1 -1
  108. package/lib/less/tree/mixin-call.js +6 -6
  109. package/lib/less/tree/mixin-call.js.map +1 -1
  110. package/lib/less/tree/mixin-definition.js +2 -2
  111. package/lib/less/tree/mixin-definition.js.map +1 -1
  112. package/lib/less/tree/namespace-value.js +6 -6
  113. package/lib/less/tree/namespace-value.js.map +1 -1
  114. package/lib/less/tree/nested-at-rule.js +91 -0
  115. package/lib/less/tree/nested-at-rule.js.map +1 -0
  116. package/lib/less/tree/node.js +6 -4
  117. package/lib/less/tree/node.js.map +1 -1
  118. package/lib/less/tree/property.js +2 -2
  119. package/lib/less/tree/property.js.map +1 -1
  120. package/lib/less/tree/query-in-parens.js +41 -0
  121. package/lib/less/tree/query-in-parens.js.map +1 -0
  122. package/lib/less/tree/quoted.js +3 -3
  123. package/lib/less/tree/quoted.js.map +1 -1
  124. package/lib/less/tree/ruleset.js +14 -11
  125. package/lib/less/tree/ruleset.js.map +1 -1
  126. package/lib/less/tree/selector.js +5 -3
  127. package/lib/less/tree/selector.js.map +1 -1
  128. package/lib/less/tree/unit.js +4 -2
  129. package/lib/less/tree/unit.js.map +1 -1
  130. package/lib/less/tree/url.js +2 -2
  131. package/lib/less/tree/url.js.map +1 -1
  132. package/lib/less/tree/variable-call.js +1 -1
  133. package/lib/less/tree/variable-call.js.map +1 -1
  134. package/lib/less/tree/variable.js +3 -3
  135. package/lib/less/tree/variable.js.map +1 -1
  136. package/lib/less/utils.js +9 -5
  137. package/lib/less/utils.js.map +1 -1
  138. package/lib/less/visitors/extend-visitor.js +8 -4
  139. package/lib/less/visitors/extend-visitor.js.map +1 -1
  140. package/lib/less/visitors/import-visitor.js +4 -0
  141. package/lib/less/visitors/import-visitor.js.map +1 -1
  142. package/lib/less/visitors/join-selector-visitor.js +4 -0
  143. package/lib/less/visitors/join-selector-visitor.js.map +1 -1
  144. package/lib/less/visitors/to-css-visitor.js +9 -5
  145. package/lib/less/visitors/to-css-visitor.js.map +1 -1
  146. package/lib/less/visitors/visitor.js +2 -2
  147. package/lib/less/visitors/visitor.js.map +1 -1
  148. package/lib/less-browser/add-default-options.js +1 -1
  149. package/lib/less-browser/add-default-options.js.map +1 -1
  150. package/lib/less-browser/bootstrap.js +6 -7
  151. package/lib/less-browser/bootstrap.js.map +1 -1
  152. package/lib/less-browser/browser.js +1 -1
  153. package/lib/less-browser/browser.js.map +1 -1
  154. package/lib/less-browser/cache.js +7 -7
  155. package/lib/less-browser/cache.js.map +1 -1
  156. package/lib/less-browser/error-reporting.js +11 -11
  157. package/lib/less-browser/error-reporting.js.map +1 -1
  158. package/lib/less-browser/file-manager.js +4 -5
  159. package/lib/less-browser/file-manager.js.map +1 -1
  160. package/lib/less-browser/index.js +17 -13
  161. package/lib/less-browser/index.js.map +1 -1
  162. package/lib/less-browser/plugin-loader.js +3 -2
  163. package/lib/less-browser/plugin-loader.js.map +1 -1
  164. package/lib/less-browser/utils.js +4 -4
  165. package/lib/less-browser/utils.js.map +1 -1
  166. package/lib/less-node/file-manager.js +17 -17
  167. package/lib/less-node/file-manager.js.map +1 -1
  168. package/lib/less-node/image-size.js +1 -1
  169. package/lib/less-node/image-size.js.map +1 -1
  170. package/lib/less-node/index.js +1 -1
  171. package/lib/less-node/index.js.map +1 -1
  172. package/lib/less-node/lessc-helper.js +2 -1
  173. package/lib/less-node/lessc-helper.js.map +1 -1
  174. package/lib/less-node/url-file-manager.js +9 -4
  175. package/lib/less-node/url-file-manager.js.map +1 -1
  176. package/package.json +140 -137
  177. package/test/browser/css/plugin/plugin.css +1 -1
  178. package/test/browser/css/relative-urls/urls.css +8 -8
  179. package/test/browser/css/rewrite-urls/urls.css +8 -8
  180. package/test/browser/css/urls.css +12 -12
  181. package/test/browser/generator/benchmark.config.js +19 -19
  182. package/test/browser/generator/generate.js +1 -1
  183. package/test/browser/generator/runner.config.js +76 -74
  184. package/test/browser/generator/template.js +17 -7
  185. package/test/browser/generator/utils.js +14 -0
  186. package/test/browser/less/relative-urls/urls.less +1 -1
  187. package/test/browser/less/rewrite-urls/urls.less +1 -1
  188. package/test/browser/less/rootpath/urls.less +1 -1
  189. package/test/browser/less/rootpath-relative/urls.less +1 -1
  190. package/test/browser/less/rootpath-rewrite-urls/urls.less +1 -1
  191. package/test/browser/less/urls.less +2 -2
  192. package/test/browser/runner-rewrite-urls-spec.js +1 -1
  193. package/test/index.js +2 -0
  194. package/test/less-test.js +33 -9
  195. package/test/plugins/filemanager/index.js +1 -1
  196. package/test/sourcemaps-variable-selector/basic.json +1 -0
  197. package/test/test-es6.ts +5 -5
  198. package/tsconfig.build.json +7 -0
  199. package/tsconfig.json +20 -18
  200. package/.eslintrc.json +0 -71
@@ -1 +1 @@
1
- {"version":3,"file":"file-manager.js","sourceRoot":"","sources":["../../src/less-browser/file-manager.js"],"names":[],"mappings":"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","sourcesContent":["/* global window, XMLHttpRequest */\n\nimport AbstractFileManager from '../less/environment/abstract-file-manager.js';\n\nlet options;\nlet logger;\nlet fileCache = {};\n\n// TODOS - move log somewhere. pathDiff and doing something similar in node. use pathDiff in the other browser file for the initial load\nconst FileManager = function() {}\nFileManager.prototype = Object.assign(new AbstractFileManager(), {\n alwaysMakePathsAbsolute() {\n return true;\n },\n\n join(basePath, laterPath) {\n if (!basePath) {\n return laterPath;\n }\n return this.extractUrlParts(laterPath, basePath).path;\n },\n\n doXHR(url, type, callback, errback) {\n const xhr = new XMLHttpRequest();\n const async = options.isFileProtocol ? options.fileAsync : true;\n\n if (typeof xhr.overrideMimeType === 'function') {\n xhr.overrideMimeType('text/css');\n }\n logger.debug(`XHR: Getting '${url}'`);\n xhr.open('GET', url, async);\n xhr.setRequestHeader('Accept', type || 'text/x-less, text/css; q=0.9, */*; q=0.5');\n xhr.send(null);\n\n function handleResponse(xhr, callback, errback) {\n if (xhr.status >= 200 && xhr.status < 300) {\n callback(xhr.responseText,\n xhr.getResponseHeader('Last-Modified'));\n } else if (typeof errback === 'function') {\n errback(xhr.status, url);\n }\n }\n\n if (options.isFileProtocol && !options.fileAsync) {\n if (xhr.status === 0 || (xhr.status >= 200 && xhr.status < 300)) {\n callback(xhr.responseText);\n } else {\n errback(xhr.status, url);\n }\n } else if (async) {\n xhr.onreadystatechange = () => {\n if (xhr.readyState == 4) {\n handleResponse(xhr, callback, errback);\n }\n };\n } else {\n handleResponse(xhr, callback, errback);\n }\n },\n\n supports() {\n return true;\n },\n\n clearFileCache() {\n fileCache = {};\n },\n\n loadFile(filename, currentDirectory, options, environment) {\n // TODO: Add prefix support like less-node?\n // What about multiple paths?\n\n if (currentDirectory && !this.isPathAbsolute(filename)) {\n filename = currentDirectory + filename;\n }\n\n filename = options.ext ? this.tryAppendExtension(filename, options.ext) : filename;\n\n options = options || {};\n\n // sheet may be set to the stylesheet for the initial load or a collection of properties including\n // some context variables for imports\n const hrefParts = this.extractUrlParts(filename, window.location.href);\n const href = hrefParts.url;\n const self = this;\n \n return new Promise((resolve, reject) => {\n if (options.useFileCache && fileCache[href]) {\n try {\n const lessText = fileCache[href];\n return resolve({ contents: lessText, filename: href, webInfo: { lastModified: new Date() }});\n } catch (e) {\n return reject({ filename: href, message: `Error loading file ${href} error was ${e.message}` });\n }\n }\n\n self.doXHR(href, options.mime, function doXHRCallback(data, lastModified) {\n // per file cache\n fileCache[href] = data;\n\n // Use remote copy (re-parse)\n resolve({ contents: data, filename: href, webInfo: { lastModified }});\n }, function doXHRError(status, url) {\n reject({ type: 'File', message: `'${url}' wasn't found (${status})`, href });\n });\n });\n }\n});\n\nexport default (opts, log) => {\n options = opts;\n logger = log;\n return FileManager;\n}\n"]}
1
+ {"version":3,"file":"file-manager.js","sourceRoot":"","sources":["../../src/less-browser/file-manager.js"],"names":[],"mappings":"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","sourcesContent":["import AbstractFileManager from '../less/environment/abstract-file-manager.js';\n\nlet options;\nlet logger;\nlet fileCache = {};\n\n// TODOS - move log somewhere. pathDiff and doing something similar in node. use pathDiff in the other browser file for the initial load\nconst FileManager = function() {}\nFileManager.prototype = Object.assign(new AbstractFileManager(), {\n alwaysMakePathsAbsolute() {\n return true;\n },\n\n join(basePath, laterPath) {\n if (!basePath) {\n return laterPath;\n }\n return this.extractUrlParts(laterPath, basePath).path;\n },\n\n doXHR(url, type, callback, errback) {\n const xhr = new XMLHttpRequest();\n const async = options.isFileProtocol ? options.fileAsync : true;\n\n if (typeof xhr.overrideMimeType === 'function') {\n xhr.overrideMimeType('text/css');\n }\n logger.debug(`XHR: Getting '${url}'`);\n xhr.open('GET', url, async);\n xhr.setRequestHeader('Accept', type || 'text/x-less, text/css; q=0.9, */*; q=0.5');\n xhr.send(null);\n\n function handleResponse(xhr, callback, errback) {\n if (xhr.status >= 200 && xhr.status < 300) {\n callback(xhr.responseText,\n xhr.getResponseHeader('Last-Modified'));\n } else if (typeof errback === 'function') {\n errback(xhr.status, url);\n }\n }\n\n if (options.isFileProtocol && !options.fileAsync) {\n if (xhr.status === 0 || (xhr.status >= 200 && xhr.status < 300)) {\n callback(xhr.responseText);\n } else {\n errback(xhr.status, url);\n }\n } else if (async) {\n xhr.onreadystatechange = () => {\n if (xhr.readyState == 4) {\n handleResponse(xhr, callback, errback);\n }\n };\n } else {\n handleResponse(xhr, callback, errback);\n }\n },\n\n supports() {\n return true;\n },\n\n clearFileCache() {\n fileCache = {};\n },\n\n loadFile(filename, currentDirectory, options) {\n // TODO: Add prefix support like less-node?\n // What about multiple paths?\n\n if (currentDirectory && !this.isPathAbsolute(filename)) {\n filename = currentDirectory + filename;\n }\n\n filename = options.ext ? this.tryAppendExtension(filename, options.ext) : filename;\n\n options = options || {};\n\n // sheet may be set to the stylesheet for the initial load or a collection of properties including\n // some context variables for imports\n const hrefParts = this.extractUrlParts(filename, window.location.href);\n const href = hrefParts.url;\n const self = this;\n \n return new Promise((resolve, reject) => {\n if (options.useFileCache && fileCache[href]) {\n try {\n const lessText = fileCache[href];\n return resolve({ contents: lessText, filename: href, webInfo: { lastModified: new Date() }});\n } catch (e) {\n return reject({ filename: href, message: `Error loading file ${href} error was ${e.message}` });\n }\n }\n\n self.doXHR(href, options.mime, function doXHRCallback(data, lastModified) {\n // per file cache\n fileCache[href] = data;\n\n // Use remote copy (re-parse)\n resolve({ contents: data, filename: href, webInfo: { lastModified }});\n }, function doXHRError(status, url) {\n reject({ type: 'File', message: `'${url}' wasn't found (${status})`, href });\n });\n });\n }\n});\n\nexport default (opts, log) => {\n options = opts;\n logger = log;\n return FileManager;\n}\n"]}
@@ -16,18 +16,18 @@ var cache_1 = tslib_1.__importDefault(require("./cache"));
16
16
  var image_size_1 = tslib_1.__importDefault(require("./image-size"));
17
17
  exports.default = (function (window, options) {
18
18
  var document = window.document;
19
- var less = less_1.default();
19
+ var less = (0, less_1.default)();
20
20
  less.options = options;
21
21
  var environment = less.environment;
22
- var FileManager = file_manager_1.default(options, less.logger);
22
+ var FileManager = (0, file_manager_1.default)(options, less.logger);
23
23
  var fileManager = new FileManager();
24
24
  environment.addFileManager(fileManager);
25
25
  less.FileManager = FileManager;
26
26
  less.PluginLoader = plugin_loader_1.default;
27
- log_listener_1.default(less, options);
28
- var errors = error_reporting_1.default(window, less, options);
29
- var cache = less.cache = options.cache || cache_1.default(window, options, less.logger);
30
- image_size_1.default(less.environment);
27
+ (0, log_listener_1.default)(less, options);
28
+ var errors = (0, error_reporting_1.default)(window, less, options);
29
+ var cache = less.cache = options.cache || (0, cache_1.default)(window, options, less.logger);
30
+ (0, image_size_1.default)(less.environment);
31
31
  // Setup user functions - Deprecate?
32
32
  if (options.functions) {
33
33
  less.functions.functionRegistry.addMultiple(options.functions);
@@ -36,7 +36,7 @@ exports.default = (function (window, options) {
36
36
  function clone(obj) {
37
37
  var cloned = {};
38
38
  for (var prop in obj) {
39
- if (obj.hasOwnProperty(prop)) {
39
+ if (Object.prototype.hasOwnProperty.call(obj, prop)) {
40
40
  cloned[prop] = obj[prop];
41
41
  }
42
42
  }
@@ -81,7 +81,7 @@ exports.default = (function (window, options) {
81
81
  }
82
82
  function loadStyleSheet(sheet, callback, reload, remaining, modifyVars) {
83
83
  var instanceOptions = clone(options);
84
- utils_1.addDataAttr(instanceOptions, sheet);
84
+ (0, utils_1.addDataAttr)(instanceOptions, sheet);
85
85
  instanceOptions.mime = sheet.type;
86
86
  if (modifyVars) {
87
87
  instanceOptions.modifyVars = modifyVars;
@@ -139,6 +139,10 @@ exports.default = (function (window, options) {
139
139
  less.watchTimer = setInterval(function () {
140
140
  if (less.watchMode) {
141
141
  fileManager.clearFileCache();
142
+ /**
143
+ * @todo remove when this is typed with JSDoc
144
+ */
145
+ // eslint-disable-next-line no-unused-vars
142
146
  loadStyleSheets(function (e, css, _, sheet, webInfo) {
143
147
  if (e) {
144
148
  errors.add(e, e.href || sheet.href);
@@ -181,7 +185,7 @@ exports.default = (function (window, options) {
181
185
  // Asynchronously get all <link> tags with the 'rel' attribute set to
182
186
  // "stylesheet/less", returning a Promise.
183
187
  //
184
- less.registerStylesheets = function () { return new Promise(function (resolve, reject) {
188
+ less.registerStylesheets = function () { return new Promise(function (resolve) {
185
189
  less.registerStylesheetsImmediately();
186
190
  resolve();
187
191
  }); };
@@ -222,19 +226,19 @@ exports.default = (function (window, options) {
222
226
  return;
223
227
  }
224
228
  if (webInfo.local) {
225
- less.logger.info("Loading " + sheet.href + " from cache.");
229
+ less.logger.info("Loading ".concat(sheet.href, " from cache."));
226
230
  }
227
231
  else {
228
- less.logger.info("Rendered " + sheet.href + " successfully.");
232
+ less.logger.info("Rendered ".concat(sheet.href, " successfully."));
229
233
  }
230
234
  browser_1.default.createCSS(window.document, css, sheet);
231
- less.logger.info("CSS for " + sheet.href + " generated in " + (new Date() - endTime) + "ms");
235
+ less.logger.info("CSS for ".concat(sheet.href, " generated in ").concat(new Date() - endTime, "ms"));
232
236
  // Count completed sheet
233
237
  remainingSheets--;
234
238
  // Check if the last remaining sheet was processed and then call the promise
235
239
  if (remainingSheets === 0) {
236
240
  totalMilliseconds = new Date() - startTime;
237
- less.logger.info("Less has finished. CSS generated in " + totalMilliseconds + "ms");
241
+ less.logger.info("Less has finished. CSS generated in ".concat(totalMilliseconds, "ms"));
238
242
  resolve({
239
243
  startTime: startTime,
240
244
  endTime: endTime,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/less-browser/index.js"],"names":[],"mappings":";;;AAAA,EAAE;AACF,WAAW;AACX,uEAAuE;AACvE,EAAE;AACF,iCAAoC;AACpC,yDAA+B;AAC/B,8DAAgC;AAChC,wEAAgC;AAChC,0EAA2C;AAC3C,wEAAyC;AACzC,8EAA+C;AAC/C,0DAA4B;AAC5B,oEAAqC;AAErC,mBAAe,UAAC,MAAM,EAAE,OAAO;IAC3B,IAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,IAAM,IAAI,GAAG,cAAQ,EAAE,CAAC;IAExB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACvB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACrC,IAAM,WAAW,GAAG,sBAAE,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACtC,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACxC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAC/B,IAAI,CAAC,YAAY,GAAG,uBAAY,CAAC;IAEjC,sBAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3B,IAAM,MAAM,GAAG,yBAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,eAAK,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAChF,oBAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE5B,oCAAoC;IACpC,IAAI,OAAO,CAAC,SAAS,EAAE;QACnB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;KAClE;IAED,IAAM,WAAW,GAAG,mBAAmB,CAAC;IAExC,SAAS,KAAK,CAAC,GAAG;QACd,IAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,IAAM,IAAI,IAAI,GAAG,EAAE;YACpB,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;aAC5B;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,iCAAiC;IACjC,SAAS,IAAI,CAAC,IAAI,EAAE,OAAO;QACvB,IAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC3D,OAAO;YACH,IAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;YACxE,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC,CAAC;IACN,CAAC;IAED,SAAS,UAAU,CAAC,UAAU;QAC1B,IAAM,MAAM,GAAG,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,KAAK,CAAC;QAEV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAClB,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;gBAC/B,IAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;gBACvC,eAAe,CAAC,UAAU,GAAG,UAAU,CAAC;gBACxC,IAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;gBACvC,eAAe,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAEtE,0BAA0B;gBAC1B,qCAAqC;gBACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,EACjC,IAAI,CAAC,UAAC,KAAK,EAAE,CAAC,EAAE,MAAM;oBAClB,IAAI,CAAC,EAAE;wBACH,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;qBAC3B;yBAAM;wBACH,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;wBACxB,IAAI,KAAK,CAAC,UAAU,EAAE;4BAClB,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;yBACzC;6BAAM;4BACH,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC;yBAChC;qBACJ;gBACL,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;aACxB;SACJ;IACL,CAAC;IAED,SAAS,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU;QAElE,IAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QACvC,mBAAW,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QACpC,eAAe,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAElC,IAAI,UAAU,EAAE;YACZ,eAAe,CAAC,UAAU,GAAG,UAAU,CAAC;SAC3C;QAED,SAAS,uBAAuB,CAAC,UAAU;YACvC,IAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC;YACjC,IAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC;YACjC,IAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;YAEnC,IAAM,WAAW,GAAG;gBAChB,gBAAgB,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC3C,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,IAAI;gBAClB,WAAW,EAAE,eAAe,CAAC,WAAW;aAC3C,CAAC;YAEF,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC,gBAAgB,CAAC;YACrD,WAAW,CAAC,QAAQ,GAAG,eAAe,CAAC,QAAQ,IAAI,WAAW,CAAC,gBAAgB,CAAC;YAEhF,IAAI,OAAO,EAAE;gBACT,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;gBAE9B,IAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;gBACpE,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE;oBAChB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;oBACrB,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBAChD,OAAO;iBACV;aAEJ;YAED,wDAAwD;YACxD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAEpB,eAAe,CAAC,YAAY,GAAG,WAAW,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,UAAC,CAAC,EAAE,MAAM;gBACzC,IAAI,CAAC,EAAE;oBACH,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;oBACd,QAAQ,CAAC,CAAC,CAAC,CAAC;iBACf;qBAAM;oBACH,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,EAAE,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;oBACvF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;iBAC1D;YACL,CAAC,CAAC,CAAC;QACP,CAAC;QAED,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,CAAC;aAC/D,IAAI,CAAC,UAAA,UAAU;YACZ,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAA,GAAG;YACR,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjB,QAAQ,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IAEX,CAAC;IAED,SAAS,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;SAC9F;IACL,CAAC;IAED,SAAS,eAAe;QACpB,IAAI,IAAI,CAAC,GAAG,KAAK,aAAa,EAAE;YAC5B,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC;gBAC1B,IAAI,IAAI,CAAC,SAAS,EAAE;oBAChB,WAAW,CAAC,cAAc,EAAE,CAAC;oBAC7B,eAAe,CAAC,UAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO;wBACtC,IAAI,CAAC,EAAE;4BACH,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;yBACvC;6BAAM,IAAI,GAAG,EAAE;4BACZ,iBAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;yBAClD;oBACL,CAAC,CAAC,CAAC;iBACN;YACL,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;SACpB;IACL,CAAC;IAED,EAAE;IACF,aAAa;IACb,EAAE;IACF,IAAI,CAAC,KAAK,GAAK;QACX,IAAI,CAAC,IAAI,CAAC,SAAS,EAAG;YAClB,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC;YACzB,eAAe,EAAE,CAAC;SACrB;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEF,IAAI,CAAC,OAAO,GAAG,cAAa,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAEpG,EAAE;IACF,oEAAoE;IACpE,qBAAqB;IACrB,EAAE;IACF,IAAI,CAAC,8BAA8B,GAAG;QAClC,IAAM,KAAK,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,iBAAiB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC;gBACvE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;gBACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9B;SACJ;IACL,CAAC,CAAC;IAEF,EAAE;IACF,qEAAqE;IACrE,0CAA0C;IAC1C,EAAE;IACF,IAAI,CAAC,mBAAmB,GAAG,cAAM,OAAA,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACzD,IAAI,CAAC,8BAA8B,EAAE,CAAC;QACtC,OAAO,EAAE,CAAC;IACd,CAAC,CAAC,EAH+B,CAG/B,CAAC;IAEH,EAAE;IACF,qEAAqE;IACrE,mCAAmC;IACnC,EAAE;IACF,IAAI,CAAC,UAAU,GAAG,UAAA,MAAM,IAAI,OAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAjC,CAAiC,CAAC;IAE9D,IAAI,CAAC,OAAO,GAAG,UAAC,MAAM,EAAE,UAAU,EAAE,cAAc;QAC9C,IAAI,CAAC,MAAM,IAAI,cAAc,CAAC,IAAI,cAAc,KAAK,KAAK,EAAE;YACxD,WAAW,CAAC,cAAc,EAAE,CAAC;SAChC;QACD,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,IAAI,SAAS,CAAC;YACd,IAAI,OAAO,CAAC;YACZ,IAAI,iBAAiB,CAAC;YACtB,IAAI,eAAe,CAAC;YACpB,SAAS,GAAG,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;YAEjC,+CAA+C;YAC/C,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAErC,IAAI,eAAe,KAAK,CAAC,EAAE;gBAEvB,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;gBACrB,iBAAiB,GAAG,OAAO,GAAG,SAAS,CAAC;gBACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;gBACjE,OAAO,CAAC;oBACJ,SAAS,WAAA;oBACT,OAAO,SAAA;oBACP,iBAAiB,mBAAA;oBACjB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;iBAC7B,CAAC,CAAC;aAEN;iBAAM;gBACH,2GAA2G;gBAC3G,eAAe,CAAC,UAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO;oBACtC,IAAI,CAAC,EAAE;wBACH,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;wBACpC,MAAM,CAAC,CAAC,CAAC,CAAC;wBACV,OAAO;qBACV;oBACD,IAAI,OAAO,CAAC,KAAK,EAAE;wBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAW,KAAK,CAAC,IAAI,iBAAc,CAAC,CAAC;qBACzD;yBAAM;wBACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAY,KAAK,CAAC,IAAI,mBAAgB,CAAC,CAAC;qBAC5D;oBACD,iBAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC/C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAW,KAAK,CAAC,IAAI,uBAAiB,IAAI,IAAI,EAAE,GAAG,OAAO,QAAI,CAAC,CAAC;oBAEjF,wBAAwB;oBACxB,eAAe,EAAE,CAAC;oBAElB,4EAA4E;oBAC5E,IAAI,eAAe,KAAK,CAAC,EAAE;wBACvB,iBAAiB,GAAG,IAAI,IAAI,EAAE,GAAG,SAAS,CAAC;wBAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAuC,iBAAiB,OAAI,CAAC,CAAC;wBAC/E,OAAO,CAAC;4BACJ,SAAS,WAAA;4BACT,OAAO,SAAA;4BACP,iBAAiB,mBAAA;4BACjB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;yBAC7B,CAAC,CAAC;qBACN;oBACD,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;gBACzB,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;aAC1B;YAED,UAAU,CAAC,UAAU,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;IAChC,OAAO,IAAI,CAAC;AAChB,CAAC,EAAC","sourcesContent":["//\n// index.js\n// Should expose the additional browser functions on to the less object\n//\nimport {addDataAttr} from './utils';\nimport lessRoot from '../less';\nimport browser from './browser';\nimport FM from './file-manager';\nimport PluginLoader from './plugin-loader';\nimport LogListener from './log-listener';\nimport ErrorReporting from './error-reporting';\nimport Cache from './cache';\nimport ImageSize from './image-size';\n\nexport default (window, options) => {\n const document = window.document;\n const less = lessRoot();\n\n less.options = options;\n const environment = less.environment;\n const FileManager = FM(options, less.logger);\n const fileManager = new FileManager();\n environment.addFileManager(fileManager);\n less.FileManager = FileManager;\n less.PluginLoader = PluginLoader;\n\n LogListener(less, options);\n const errors = ErrorReporting(window, less, options);\n const cache = less.cache = options.cache || Cache(window, options, less.logger);\n ImageSize(less.environment);\n\n // Setup user functions - Deprecate?\n if (options.functions) {\n less.functions.functionRegistry.addMultiple(options.functions);\n }\n\n const typePattern = /^text\\/(x-)?less$/;\n\n function clone(obj) {\n const cloned = {};\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n cloned[prop] = obj[prop];\n }\n }\n return cloned;\n }\n\n // only really needed for phantom\n function bind(func, thisArg) {\n const curryArgs = Array.prototype.slice.call(arguments, 2);\n return function() {\n const args = curryArgs.concat(Array.prototype.slice.call(arguments, 0));\n return func.apply(thisArg, args);\n };\n }\n\n function loadStyles(modifyVars) {\n const styles = document.getElementsByTagName('style');\n let style;\n\n for (let i = 0; i < styles.length; i++) {\n style = styles[i];\n if (style.type.match(typePattern)) {\n const instanceOptions = clone(options);\n instanceOptions.modifyVars = modifyVars;\n const lessText = style.innerHTML || '';\n instanceOptions.filename = document.location.href.replace(/#.*$/, '');\n\n /* jshint loopfunc:true */\n // use closure to store current style\n less.render(lessText, instanceOptions,\n bind((style, e, result) => {\n if (e) {\n errors.add(e, 'inline');\n } else {\n style.type = 'text/css';\n if (style.styleSheet) {\n style.styleSheet.cssText = result.css;\n } else {\n style.innerHTML = result.css;\n }\n }\n }, null, style));\n }\n }\n }\n\n function loadStyleSheet(sheet, callback, reload, remaining, modifyVars) {\n\n const instanceOptions = clone(options);\n addDataAttr(instanceOptions, sheet);\n instanceOptions.mime = sheet.type;\n\n if (modifyVars) {\n instanceOptions.modifyVars = modifyVars;\n }\n\n function loadInitialFileCallback(loadedFile) {\n const data = loadedFile.contents;\n const path = loadedFile.filename;\n const webInfo = loadedFile.webInfo;\n\n const newFileInfo = {\n currentDirectory: fileManager.getPath(path),\n filename: path,\n rootFilename: path,\n rewriteUrls: instanceOptions.rewriteUrls\n };\n\n newFileInfo.entryPath = newFileInfo.currentDirectory;\n newFileInfo.rootpath = instanceOptions.rootpath || newFileInfo.currentDirectory;\n\n if (webInfo) {\n webInfo.remaining = remaining;\n\n const css = cache.getCSS(path, webInfo, instanceOptions.modifyVars);\n if (!reload && css) {\n webInfo.local = true;\n callback(null, css, data, sheet, webInfo, path);\n return;\n }\n\n }\n\n // TODO add tests around how this behaves when reloading\n errors.remove(path);\n\n instanceOptions.rootFileInfo = newFileInfo;\n less.render(data, instanceOptions, (e, result) => {\n if (e) {\n e.href = path;\n callback(e);\n } else {\n cache.setCSS(sheet.href, webInfo.lastModified, instanceOptions.modifyVars, result.css);\n callback(null, result.css, data, sheet, webInfo, path);\n }\n });\n }\n\n fileManager.loadFile(sheet.href, null, instanceOptions, environment)\n .then(loadedFile => {\n loadInitialFileCallback(loadedFile);\n }).catch(err => {\n console.log(err);\n callback(err);\n });\n\n }\n\n function loadStyleSheets(callback, reload, modifyVars) {\n for (let i = 0; i < less.sheets.length; i++) {\n loadStyleSheet(less.sheets[i], callback, reload, less.sheets.length - (i + 1), modifyVars);\n }\n }\n\n function initRunningMode() {\n if (less.env === 'development') {\n less.watchTimer = setInterval(() => {\n if (less.watchMode) {\n fileManager.clearFileCache();\n loadStyleSheets((e, css, _, sheet, webInfo) => {\n if (e) {\n errors.add(e, e.href || sheet.href);\n } else if (css) {\n browser.createCSS(window.document, css, sheet);\n }\n });\n }\n }, options.poll);\n }\n }\n\n //\n // Watch mode\n //\n less.watch = function () {\n if (!less.watchMode ) {\n less.env = 'development';\n initRunningMode();\n }\n this.watchMode = true;\n return true;\n };\n\n less.unwatch = function () {clearInterval(less.watchTimer); this.watchMode = false; return false; };\n\n //\n // Synchronously get all <link> tags with the 'rel' attribute set to\n // \"stylesheet/less\".\n //\n less.registerStylesheetsImmediately = () => {\n const links = document.getElementsByTagName('link');\n less.sheets = [];\n\n for (let i = 0; i < links.length; i++) {\n if (links[i].rel === 'stylesheet/less' || (links[i].rel.match(/stylesheet/) &&\n (links[i].type.match(typePattern)))) {\n less.sheets.push(links[i]);\n }\n }\n };\n\n //\n // Asynchronously get all <link> tags with the 'rel' attribute set to\n // \"stylesheet/less\", returning a Promise.\n //\n less.registerStylesheets = () => new Promise((resolve, reject) => {\n less.registerStylesheetsImmediately();\n resolve();\n });\n\n //\n // With this function, it's possible to alter variables and re-render\n // CSS without reloading less-files\n //\n less.modifyVars = record => less.refresh(true, record, false);\n\n less.refresh = (reload, modifyVars, clearFileCache) => {\n if ((reload || clearFileCache) && clearFileCache !== false) {\n fileManager.clearFileCache();\n }\n return new Promise((resolve, reject) => {\n let startTime;\n let endTime;\n let totalMilliseconds;\n let remainingSheets;\n startTime = endTime = new Date();\n\n // Set counter for remaining unprocessed sheets\n remainingSheets = less.sheets.length;\n\n if (remainingSheets === 0) {\n\n endTime = new Date();\n totalMilliseconds = endTime - startTime;\n less.logger.info('Less has finished and no sheets were loaded.');\n resolve({\n startTime,\n endTime,\n totalMilliseconds,\n sheets: less.sheets.length\n });\n\n } else {\n // Relies on less.sheets array, callback seems to be guaranteed to be called for every element of the array\n loadStyleSheets((e, css, _, sheet, webInfo) => {\n if (e) {\n errors.add(e, e.href || sheet.href);\n reject(e);\n return;\n }\n if (webInfo.local) {\n less.logger.info(`Loading ${sheet.href} from cache.`);\n } else {\n less.logger.info(`Rendered ${sheet.href} successfully.`);\n }\n browser.createCSS(window.document, css, sheet);\n less.logger.info(`CSS for ${sheet.href} generated in ${new Date() - endTime}ms`);\n\n // Count completed sheet\n remainingSheets--;\n\n // Check if the last remaining sheet was processed and then call the promise\n if (remainingSheets === 0) {\n totalMilliseconds = new Date() - startTime;\n less.logger.info(`Less has finished. CSS generated in ${totalMilliseconds}ms`);\n resolve({\n startTime,\n endTime,\n totalMilliseconds,\n sheets: less.sheets.length\n });\n }\n endTime = new Date();\n }, reload, modifyVars);\n }\n\n loadStyles(modifyVars);\n });\n };\n\n less.refreshStyles = loadStyles;\n return less;\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/less-browser/index.js"],"names":[],"mappings":"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","sourcesContent":["//\n// index.js\n// Should expose the additional browser functions on to the less object\n//\nimport {addDataAttr} from './utils';\nimport lessRoot from '../less';\nimport browser from './browser';\nimport FM from './file-manager';\nimport PluginLoader from './plugin-loader';\nimport LogListener from './log-listener';\nimport ErrorReporting from './error-reporting';\nimport Cache from './cache';\nimport ImageSize from './image-size';\n\nexport default (window, options) => {\n const document = window.document;\n const less = lessRoot();\n\n less.options = options;\n const environment = less.environment;\n const FileManager = FM(options, less.logger);\n const fileManager = new FileManager();\n environment.addFileManager(fileManager);\n less.FileManager = FileManager;\n less.PluginLoader = PluginLoader;\n\n LogListener(less, options);\n const errors = ErrorReporting(window, less, options);\n const cache = less.cache = options.cache || Cache(window, options, less.logger);\n ImageSize(less.environment);\n\n // Setup user functions - Deprecate?\n if (options.functions) {\n less.functions.functionRegistry.addMultiple(options.functions);\n }\n\n const typePattern = /^text\\/(x-)?less$/;\n\n function clone(obj) {\n const cloned = {};\n for (const prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n cloned[prop] = obj[prop];\n }\n }\n return cloned;\n }\n\n // only really needed for phantom\n function bind(func, thisArg) {\n const curryArgs = Array.prototype.slice.call(arguments, 2);\n return function() {\n const args = curryArgs.concat(Array.prototype.slice.call(arguments, 0));\n return func.apply(thisArg, args);\n };\n }\n\n function loadStyles(modifyVars) {\n const styles = document.getElementsByTagName('style');\n let style;\n\n for (let i = 0; i < styles.length; i++) {\n style = styles[i];\n if (style.type.match(typePattern)) {\n const instanceOptions = clone(options);\n instanceOptions.modifyVars = modifyVars;\n const lessText = style.innerHTML || '';\n instanceOptions.filename = document.location.href.replace(/#.*$/, '');\n\n /* jshint loopfunc:true */\n // use closure to store current style\n less.render(lessText, instanceOptions,\n bind((style, e, result) => {\n if (e) {\n errors.add(e, 'inline');\n } else {\n style.type = 'text/css';\n if (style.styleSheet) {\n style.styleSheet.cssText = result.css;\n } else {\n style.innerHTML = result.css;\n }\n }\n }, null, style));\n }\n }\n }\n\n function loadStyleSheet(sheet, callback, reload, remaining, modifyVars) {\n\n const instanceOptions = clone(options);\n addDataAttr(instanceOptions, sheet);\n instanceOptions.mime = sheet.type;\n\n if (modifyVars) {\n instanceOptions.modifyVars = modifyVars;\n }\n\n function loadInitialFileCallback(loadedFile) {\n const data = loadedFile.contents;\n const path = loadedFile.filename;\n const webInfo = loadedFile.webInfo;\n\n const newFileInfo = {\n currentDirectory: fileManager.getPath(path),\n filename: path,\n rootFilename: path,\n rewriteUrls: instanceOptions.rewriteUrls\n };\n\n newFileInfo.entryPath = newFileInfo.currentDirectory;\n newFileInfo.rootpath = instanceOptions.rootpath || newFileInfo.currentDirectory;\n\n if (webInfo) {\n webInfo.remaining = remaining;\n\n const css = cache.getCSS(path, webInfo, instanceOptions.modifyVars);\n if (!reload && css) {\n webInfo.local = true;\n callback(null, css, data, sheet, webInfo, path);\n return;\n }\n\n }\n\n // TODO add tests around how this behaves when reloading\n errors.remove(path);\n\n instanceOptions.rootFileInfo = newFileInfo;\n less.render(data, instanceOptions, (e, result) => {\n if (e) {\n e.href = path;\n callback(e);\n } else {\n cache.setCSS(sheet.href, webInfo.lastModified, instanceOptions.modifyVars, result.css);\n callback(null, result.css, data, sheet, webInfo, path);\n }\n });\n }\n\n fileManager.loadFile(sheet.href, null, instanceOptions, environment)\n .then(loadedFile => {\n loadInitialFileCallback(loadedFile);\n }).catch(err => {\n console.log(err);\n callback(err);\n });\n\n }\n\n function loadStyleSheets(callback, reload, modifyVars) {\n for (let i = 0; i < less.sheets.length; i++) {\n loadStyleSheet(less.sheets[i], callback, reload, less.sheets.length - (i + 1), modifyVars);\n }\n }\n\n function initRunningMode() {\n if (less.env === 'development') {\n less.watchTimer = setInterval(() => {\n if (less.watchMode) {\n fileManager.clearFileCache();\n /**\n * @todo remove when this is typed with JSDoc\n */\n // eslint-disable-next-line no-unused-vars\n loadStyleSheets((e, css, _, sheet, webInfo) => {\n if (e) {\n errors.add(e, e.href || sheet.href);\n } else if (css) {\n browser.createCSS(window.document, css, sheet);\n }\n });\n }\n }, options.poll);\n }\n }\n\n //\n // Watch mode\n //\n less.watch = function () {\n if (!less.watchMode ) {\n less.env = 'development';\n initRunningMode();\n }\n this.watchMode = true;\n return true;\n };\n\n less.unwatch = function () {clearInterval(less.watchTimer); this.watchMode = false; return false; };\n\n //\n // Synchronously get all <link> tags with the 'rel' attribute set to\n // \"stylesheet/less\".\n //\n less.registerStylesheetsImmediately = () => {\n const links = document.getElementsByTagName('link');\n less.sheets = [];\n\n for (let i = 0; i < links.length; i++) {\n if (links[i].rel === 'stylesheet/less' || (links[i].rel.match(/stylesheet/) &&\n (links[i].type.match(typePattern)))) {\n less.sheets.push(links[i]);\n }\n }\n };\n\n //\n // Asynchronously get all <link> tags with the 'rel' attribute set to\n // \"stylesheet/less\", returning a Promise.\n //\n less.registerStylesheets = () => new Promise((resolve) => {\n less.registerStylesheetsImmediately();\n resolve();\n });\n\n //\n // With this function, it's possible to alter variables and re-render\n // CSS without reloading less-files\n //\n less.modifyVars = record => less.refresh(true, record, false);\n\n less.refresh = (reload, modifyVars, clearFileCache) => {\n if ((reload || clearFileCache) && clearFileCache !== false) {\n fileManager.clearFileCache();\n }\n return new Promise((resolve, reject) => {\n let startTime;\n let endTime;\n let totalMilliseconds;\n let remainingSheets;\n startTime = endTime = new Date();\n\n // Set counter for remaining unprocessed sheets\n remainingSheets = less.sheets.length;\n\n if (remainingSheets === 0) {\n\n endTime = new Date();\n totalMilliseconds = endTime - startTime;\n less.logger.info('Less has finished and no sheets were loaded.');\n resolve({\n startTime,\n endTime,\n totalMilliseconds,\n sheets: less.sheets.length\n });\n\n } else {\n // Relies on less.sheets array, callback seems to be guaranteed to be called for every element of the array\n loadStyleSheets((e, css, _, sheet, webInfo) => {\n if (e) {\n errors.add(e, e.href || sheet.href);\n reject(e);\n return;\n }\n if (webInfo.local) {\n less.logger.info(`Loading ${sheet.href} from cache.`);\n } else {\n less.logger.info(`Rendered ${sheet.href} successfully.`);\n }\n browser.createCSS(window.document, css, sheet);\n less.logger.info(`CSS for ${sheet.href} generated in ${new Date() - endTime}ms`);\n\n // Count completed sheet\n remainingSheets--;\n\n // Check if the last remaining sheet was processed and then call the promise\n if (remainingSheets === 0) {\n totalMilliseconds = new Date() - startTime;\n less.logger.info(`Less has finished. CSS generated in ${totalMilliseconds}ms`);\n resolve({\n startTime,\n endTime,\n totalMilliseconds,\n sheets: less.sheets.length\n });\n }\n endTime = new Date();\n }, reload, modifyVars);\n }\n\n loadStyles(modifyVars);\n });\n };\n\n less.refreshStyles = loadStyles;\n return less;\n};\n"]}
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
- // TODO: Add tests for browser @plugin
3
- /* global window */
4
2
  Object.defineProperty(exports, "__esModule", { value: true });
5
3
  var tslib_1 = require("tslib");
4
+ /**
5
+ * @todo Add tests for browser `@plugin`
6
+ */
6
7
  var abstract_plugin_loader_js_1 = tslib_1.__importDefault(require("../less/environment/abstract-plugin-loader.js"));
7
8
  /**
8
9
  * Browser Plugin Loader
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-loader.js","sourceRoot":"","sources":["../../src/less-browser/plugin-loader.js"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,mBAAmB;;;AAEnB,oHAAiF;AAEjF;;GAEG;AACH,IAAM,YAAY,GAAG,UAAS,IAAI;IAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACjB,yDAAyD;AAC7D,CAAC,CAAC;AAEF,YAAY,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,mCAAoB,EAAE,EAAE;IAC/D,UAAU,YAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW;QAC5D,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC;iBACzD,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAC,CAAC;AAEH,kBAAe,YAAY,CAAC","sourcesContent":["// TODO: Add tests for browser @plugin\n/* global window */\n\nimport AbstractPluginLoader from '../less/environment/abstract-plugin-loader.js';\n\n/**\n * Browser Plugin Loader\n */\nconst PluginLoader = function(less) {\n this.less = less;\n // Should we shim this.require for browser? Probably not?\n};\n\nPluginLoader.prototype = Object.assign(new AbstractPluginLoader(), {\n loadPlugin(filename, basePath, context, environment, fileManager) {\n return new Promise((fulfill, reject) => {\n fileManager.loadFile(filename, basePath, context, environment)\n .then(fulfill).catch(reject);\n });\n }\n});\n\nexport default PluginLoader;\n\n"]}
1
+ {"version":3,"file":"plugin-loader.js","sourceRoot":"","sources":["../../src/less-browser/plugin-loader.js"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,oHAAiF;AAEjF;;GAEG;AACH,IAAM,YAAY,GAAG,UAAS,IAAI;IAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACjB,yDAAyD;AAC7D,CAAC,CAAC;AAEF,YAAY,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,mCAAoB,EAAE,EAAE;IAC/D,UAAU,YAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW;QAC5D,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC;iBACzD,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAC,CAAC;AAEH,kBAAe,YAAY,CAAC","sourcesContent":["/**\n * @todo Add tests for browser `@plugin`\n */\nimport AbstractPluginLoader from '../less/environment/abstract-plugin-loader.js';\n\n/**\n * Browser Plugin Loader\n */\nconst PluginLoader = function(less) {\n this.less = less;\n // Should we shim this.require for browser? Probably not?\n};\n\nPluginLoader.prototype = Object.assign(new AbstractPluginLoader(), {\n loadPlugin(filename, basePath, context, environment, fileManager) {\n return new Promise((fulfill, reject) => {\n fileManager.loadFile(filename, basePath, context, environment)\n .then(fulfill).catch(reject);\n });\n }\n});\n\nexport default PluginLoader;\n\n"]}
@@ -2,11 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.addDataAttr = exports.extractId = void 0;
4
4
  function extractId(href) {
5
- return href.replace(/^[a-z-]+:\/+?[^\/]+/, '') // Remove protocol & domain
6
- .replace(/[\?\&]livereload=\w+/, '') // Remove LiveReload cachebuster
5
+ return href.replace(/^[a-z-]+:\/+?[^/]+/, '') // Remove protocol & domain
6
+ .replace(/[?&]livereload=\w+/, '') // Remove LiveReload cachebuster
7
7
  .replace(/^\//, '') // Remove root /
8
8
  .replace(/\.[a-zA-Z]+$/, '') // Remove simple extension
9
- .replace(/[^\.\w-]+/g, '-') // Replace illegal characters
9
+ .replace(/[^.\w-]+/g, '-') // Replace illegal characters
10
10
  .replace(/\./g, ':'); // Replace dots with colons(for valid id)
11
11
  }
12
12
  exports.extractId = extractId;
@@ -15,7 +15,7 @@ function addDataAttr(options, tag) {
15
15
  return;
16
16
  } // in case of tag is null or undefined
17
17
  for (var opt in tag.dataset) {
18
- if (tag.dataset.hasOwnProperty(opt)) {
18
+ if (Object.prototype.hasOwnProperty.call(tag.dataset, opt)) {
19
19
  if (opt === 'env' || opt === 'dumpLineNumbers' || opt === 'rootpath' || opt === 'errorReporting') {
20
20
  options[opt] = tag.dataset[opt];
21
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/less-browser/utils.js"],"names":[],"mappings":";;;AACA,SAAgB,SAAS,CAAC,IAAI;IAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAE,2BAA2B;SACtE,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAQ,gCAAgC;SAC3E,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAyB,gBAAgB;SAC3D,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAgB,0BAA0B;SACrE,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAiB,6BAA6B;SACxE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAuB,yCAAyC;AAC7F,CAAC;AAPD,8BAOC;AAED,SAAgB,WAAW,CAAC,OAAO,EAAE,GAAG;IACpC,IAAI,CAAC,GAAG,EAAE;QAAC,OAAO;KAAC,CAAC,sCAAsC;IAC1D,KAAK,IAAM,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE;QAC3B,IAAI,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;YACjC,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,iBAAiB,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,gBAAgB,EAAE;gBAC9F,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aACnC;iBAAM;gBACH,IAAI;oBACA,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;iBAC/C;gBACD,OAAO,CAAC,EAAE,GAAE;aACf;SACJ;KACJ;AACL,CAAC;AAdD,kCAcC","sourcesContent":["\nexport function extractId(href) {\n return href.replace(/^[a-z-]+:\\/+?[^\\/]+/, '') // Remove protocol & domain\n .replace(/[\\?\\&]livereload=\\w+/, '') // Remove LiveReload cachebuster\n .replace(/^\\//, '') // Remove root /\n .replace(/\\.[a-zA-Z]+$/, '') // Remove simple extension\n .replace(/[^\\.\\w-]+/g, '-') // Replace illegal characters\n .replace(/\\./g, ':'); // Replace dots with colons(for valid id)\n}\n\nexport function addDataAttr(options, tag) {\n if (!tag) {return;} // in case of tag is null or undefined\n for (const opt in tag.dataset) {\n if (tag.dataset.hasOwnProperty(opt)) {\n if (opt === 'env' || opt === 'dumpLineNumbers' || opt === 'rootpath' || opt === 'errorReporting') {\n options[opt] = tag.dataset[opt];\n } else {\n try {\n options[opt] = JSON.parse(tag.dataset[opt]);\n }\n catch (_) {}\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/less-browser/utils.js"],"names":[],"mappings":";;;AACA,SAAgB,SAAS,CAAC,IAAI;IAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAE,2BAA2B;SACrE,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAQ,gCAAgC;SACzE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAyB,gBAAgB;SAC3D,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAgB,0BAA0B;SACrE,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAiB,6BAA6B;SACvE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAuB,yCAAyC;AAC7F,CAAC;AAPD,8BAOC;AAED,SAAgB,WAAW,CAAC,OAAO,EAAE,GAAG;IACpC,IAAI,CAAC,GAAG,EAAE;QAAC,OAAO;KAAC,CAAC,sCAAsC;IAC1D,KAAK,IAAM,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE;QAC3B,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;YACxD,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,iBAAiB,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,gBAAgB,EAAE;gBAC9F,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aACnC;iBAAM;gBACH,IAAI;oBACA,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;iBAC/C;gBACD,OAAO,CAAC,EAAE,GAAE;aACf;SACJ;KACJ;AACL,CAAC;AAdD,kCAcC","sourcesContent":["\nexport function extractId(href) {\n return href.replace(/^[a-z-]+:\\/+?[^/]+/, '') // Remove protocol & domain\n .replace(/[?&]livereload=\\w+/, '') // Remove LiveReload cachebuster\n .replace(/^\\//, '') // Remove root /\n .replace(/\\.[a-zA-Z]+$/, '') // Remove simple extension\n .replace(/[^.\\w-]+/g, '-') // Replace illegal characters\n .replace(/\\./g, ':'); // Replace dots with colons(for valid id)\n}\n\nexport function addDataAttr(options, tag) {\n if (!tag) {return;} // in case of tag is null or undefined\n for (const opt in tag.dataset) {\n if (Object.prototype.hasOwnProperty.call(tag.dataset, opt)) {\n if (opt === 'env' || opt === 'dumpLineNumbers' || opt === 'rootpath' || opt === 'errorReporting') {\n options[opt] = tag.dataset[opt];\n } else {\n try {\n options[opt] = JSON.parse(tag.dataset[opt]);\n }\n catch (_) {}\n }\n }\n }\n}\n"]}
@@ -57,6 +57,22 @@ FileManager.prototype = Object.assign(new abstract_file_manager_js_1.default(),
57
57
  }
58
58
  function getFileData(fulfill, reject) {
59
59
  (function tryPathIndex(i) {
60
+ function tryWithExtension() {
61
+ var extFilename = options.ext ? self.tryAppendExtension(fullFilename, options.ext) : fullFilename;
62
+ if (extFilename !== fullFilename && !explicit && paths[i] === '.') {
63
+ try {
64
+ fullFilename = require.resolve(extFilename);
65
+ isNodeModule = true;
66
+ }
67
+ catch (e) {
68
+ filenamesTried.push(npmPrefix + extFilename);
69
+ fullFilename = extFilename;
70
+ }
71
+ }
72
+ else {
73
+ fullFilename = extFilename;
74
+ }
75
+ }
60
76
  if (i < paths.length) {
61
77
  (function tryPrefix(j) {
62
78
  if (j < prefixes.length) {
@@ -78,22 +94,6 @@ FileManager.prototype = Object.assign(new abstract_file_manager_js_1.default(),
78
94
  else {
79
95
  tryWithExtension();
80
96
  }
81
- function tryWithExtension() {
82
- var extFilename = options.ext ? self.tryAppendExtension(fullFilename, options.ext) : fullFilename;
83
- if (extFilename !== fullFilename && !explicit && paths[i] === '.') {
84
- try {
85
- fullFilename = require.resolve(extFilename);
86
- isNodeModule = true;
87
- }
88
- catch (e) {
89
- filenamesTried.push(npmPrefix + extFilename);
90
- fullFilename = extFilename;
91
- }
92
- }
93
- else {
94
- fullFilename = extFilename;
95
- }
96
- }
97
97
  var readFileArgs = [fullFilename];
98
98
  if (!options.rawBuffer) {
99
99
  readFileArgs.push('utf-8');
@@ -125,7 +125,7 @@ FileManager.prototype = Object.assign(new abstract_file_manager_js_1.default(),
125
125
  })(0);
126
126
  }
127
127
  else {
128
- reject({ type: 'File', message: "'" + filename + "' wasn't found. Tried - " + filenamesTried.join(',') });
128
+ reject({ type: 'File', message: "'".concat(filename, "' wasn't found. Tried - ").concat(filenamesTried.join(',')) });
129
129
  }
130
130
  }(0));
131
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"file-manager.js","sourceRoot":"","sources":["../../src/less-node/file-manager.js"],"names":[],"mappings":"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","sourcesContent":["import path from 'path';\nimport fs from './fs';\nimport AbstractFileManager from '../less/environment/abstract-file-manager.js';\n\nconst FileManager = function() {}\nFileManager.prototype = Object.assign(new AbstractFileManager(), {\n supports() {\n return true;\n },\n\n supportsSync() {\n return true;\n },\n\n loadFile(filename, currentDirectory, options, environment, callback) {\n let fullFilename;\n const isAbsoluteFilename = this.isPathAbsolute(filename);\n const filenamesTried = [];\n const self = this;\n const prefix = filename.slice(0, 1);\n const explicit = prefix === '.' || prefix === '/';\n let result = null;\n let isNodeModule = false;\n const npmPrefix = 'npm://';\n\n options = options || {};\n\n const paths = isAbsoluteFilename ? [''] : [currentDirectory];\n\n if (options.paths) { paths.push.apply(paths, options.paths); }\n\n if (!isAbsoluteFilename && paths.indexOf('.') === -1) { paths.push('.'); }\n\n const prefixes = options.prefixes || [''];\n const fileParts = this.extractUrlParts(filename);\n\n if (options.syncImport) {\n getFileData(returnData, returnData);\n if (callback) {\n callback(result.error, result);\n }\n else {\n return result;\n }\n }\n else {\n // promise is guaranteed to be asyncronous\n // which helps as it allows the file handle\n // to be closed before it continues with the next file\n return new Promise(getFileData);\n }\n\n function returnData(data) {\n if (!data.filename) {\n result = { error: data };\n }\n else {\n result = data;\n }\n }\n\n function getFileData(fulfill, reject) {\n (function tryPathIndex(i) {\n if (i < paths.length) {\n (function tryPrefix(j) {\n if (j < prefixes.length) {\n isNodeModule = false;\n fullFilename = fileParts.rawPath + prefixes[j] + fileParts.filename;\n\n if (paths[i]) {\n fullFilename = path.join(paths[i], fullFilename);\n }\n\n if (!explicit && paths[i] === '.') {\n try {\n fullFilename = require.resolve(fullFilename);\n isNodeModule = true;\n }\n catch (e) {\n filenamesTried.push(npmPrefix + fullFilename);\n tryWithExtension();\n }\n }\n else {\n tryWithExtension();\n }\n\n function tryWithExtension() {\n const extFilename = options.ext ? self.tryAppendExtension(fullFilename, options.ext) : fullFilename;\n\n if (extFilename !== fullFilename && !explicit && paths[i] === '.') {\n try {\n fullFilename = require.resolve(extFilename);\n isNodeModule = true;\n }\n catch (e) {\n filenamesTried.push(npmPrefix + extFilename);\n fullFilename = extFilename;\n }\n }\n else {\n fullFilename = extFilename;\n }\n }\n\n const readFileArgs = [fullFilename];\n if (!options.rawBuffer) {\n readFileArgs.push('utf-8');\n }\n if (options.syncImport) {\n try {\n const data = fs.readFileSync.apply(this, readFileArgs);\n fulfill({ contents: data, filename: fullFilename});\n }\n catch (e) {\n filenamesTried.push(isNodeModule ? npmPrefix + fullFilename : fullFilename);\n return tryPrefix(j + 1);\n }\n }\n else {\n readFileArgs.push(function(e, data) {\n if (e) {\n filenamesTried.push(isNodeModule ? npmPrefix + fullFilename : fullFilename);\n return tryPrefix(j + 1);\n } \n fulfill({ contents: data, filename: fullFilename});\n });\n fs.readFile.apply(this, readFileArgs);\n }\n\n }\n else {\n tryPathIndex(i + 1);\n }\n })(0);\n } else {\n reject({ type: 'File', message: `'${filename}' wasn't found. Tried - ${filenamesTried.join(',')}` });\n }\n }(0));\n }\n },\n\n loadFileSync(filename, currentDirectory, options, environment) {\n options.syncImport = true;\n return this.loadFile(filename, currentDirectory, options, environment);\n }\n});\n\nexport default FileManager;\n"]}
1
+ {"version":3,"file":"file-manager.js","sourceRoot":"","sources":["../../src/less-node/file-manager.js"],"names":[],"mappings":"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","sourcesContent":["import path from 'path';\nimport fs from './fs';\nimport AbstractFileManager from '../less/environment/abstract-file-manager.js';\n\nconst FileManager = function() {}\nFileManager.prototype = Object.assign(new AbstractFileManager(), {\n supports() {\n return true;\n },\n\n supportsSync() {\n return true;\n },\n\n loadFile(filename, currentDirectory, options, environment, callback) {\n let fullFilename;\n const isAbsoluteFilename = this.isPathAbsolute(filename);\n const filenamesTried = [];\n const self = this;\n const prefix = filename.slice(0, 1);\n const explicit = prefix === '.' || prefix === '/';\n let result = null;\n let isNodeModule = false;\n const npmPrefix = 'npm://';\n\n options = options || {};\n\n const paths = isAbsoluteFilename ? [''] : [currentDirectory];\n\n if (options.paths) { paths.push.apply(paths, options.paths); }\n\n if (!isAbsoluteFilename && paths.indexOf('.') === -1) { paths.push('.'); }\n\n const prefixes = options.prefixes || [''];\n const fileParts = this.extractUrlParts(filename);\n\n if (options.syncImport) {\n getFileData(returnData, returnData);\n if (callback) {\n callback(result.error, result);\n }\n else {\n return result;\n }\n }\n else {\n // promise is guaranteed to be asyncronous\n // which helps as it allows the file handle\n // to be closed before it continues with the next file\n return new Promise(getFileData);\n }\n\n function returnData(data) {\n if (!data.filename) {\n result = { error: data };\n }\n else {\n result = data;\n }\n }\n\n function getFileData(fulfill, reject) {\n (function tryPathIndex(i) {\n function tryWithExtension() {\n const extFilename = options.ext ? self.tryAppendExtension(fullFilename, options.ext) : fullFilename;\n\n if (extFilename !== fullFilename && !explicit && paths[i] === '.') {\n try {\n fullFilename = require.resolve(extFilename);\n isNodeModule = true;\n }\n catch (e) {\n filenamesTried.push(npmPrefix + extFilename);\n fullFilename = extFilename;\n }\n }\n else {\n fullFilename = extFilename;\n }\n }\n if (i < paths.length) {\n (function tryPrefix(j) {\n if (j < prefixes.length) {\n isNodeModule = false;\n fullFilename = fileParts.rawPath + prefixes[j] + fileParts.filename;\n\n if (paths[i]) {\n fullFilename = path.join(paths[i], fullFilename);\n }\n\n if (!explicit && paths[i] === '.') {\n try {\n fullFilename = require.resolve(fullFilename);\n isNodeModule = true;\n }\n catch (e) {\n filenamesTried.push(npmPrefix + fullFilename);\n tryWithExtension();\n }\n }\n else {\n tryWithExtension();\n } \n\n const readFileArgs = [fullFilename];\n if (!options.rawBuffer) {\n readFileArgs.push('utf-8');\n }\n if (options.syncImport) {\n try {\n const data = fs.readFileSync.apply(this, readFileArgs);\n fulfill({ contents: data, filename: fullFilename});\n }\n catch (e) {\n filenamesTried.push(isNodeModule ? npmPrefix + fullFilename : fullFilename);\n return tryPrefix(j + 1);\n }\n }\n else {\n readFileArgs.push(function(e, data) {\n if (e) {\n filenamesTried.push(isNodeModule ? npmPrefix + fullFilename : fullFilename);\n return tryPrefix(j + 1);\n } \n fulfill({ contents: data, filename: fullFilename});\n });\n fs.readFile.apply(this, readFileArgs);\n }\n\n }\n else {\n tryPathIndex(i + 1);\n }\n })(0);\n } else {\n reject({ type: 'File', message: `'${filename}' wasn't found. Tried - ${filenamesTried.join(',')}` });\n }\n }(0));\n }\n },\n\n loadFileSync(filename, currentDirectory, options, environment) {\n options.syncImport = true;\n return this.loadFile(filename, currentDirectory, options, environment);\n }\n});\n\nexport default FileManager;\n"]}
@@ -18,7 +18,7 @@ exports.default = (function (environment) {
18
18
  if (!fileManager) {
19
19
  throw {
20
20
  type: 'File',
21
- message: "Can not set up FileManager for " + filePathNode
21
+ message: "Can not set up FileManager for ".concat(filePathNode)
22
22
  };
23
23
  }
24
24
  var fileSync = fileManager.loadFileSync(filePath, currentDirectory, functionContext.context, environment);
@@ -1 +1 @@
1
- {"version":3,"file":"image-size.js","sourceRoot":"","sources":["../../src/less-node/image-size.js"],"names":[],"mappings":";;;AAAA,6EAA+C;AAC/C,+EAAiD;AACjD,oGAAqE;AAErE,mBAAe,UAAA,WAAW;IAEtB,SAAS,SAAS,CAAC,eAAe,EAAE,YAAY;QAC5C,IAAI,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC;QAClC,IAAM,eAAe,GAAG,eAAe,CAAC,eAAe,CAAC;QACxD,IAAM,gBAAgB,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;YAClD,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC;QAEjE,IAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE;YACtB,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;SAC/C;QAED,IAAM,WAAW,GAAG,WAAW,CAAC,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QAEvH,IAAI,CAAC,WAAW,EAAE;YACd,MAAM;gBACF,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,oCAAkC,YAAc;aAC5D,CAAC;SACL;QAED,IAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,CAAC,QAAQ,EAAE,gBAAgB,EAAE,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAE5G,IAAI,QAAQ,CAAC,KAAK,EAAE;YAChB,MAAM,QAAQ,CAAC,KAAK,CAAC;SACxB;QAED,IAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,IAAM,cAAc,GAAG;QACnB,YAAY,EAAE,UAAS,YAAY;YAC/B,IAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC3C,OAAO,IAAI,oBAAU,CAAC;gBAClB,IAAI,mBAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;gBAC/B,IAAI,mBAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;aACnC,CAAC,CAAC;QACP,CAAC;QACD,aAAa,EAAE,UAAS,YAAY;YAChC,IAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC3C,OAAO,IAAI,mBAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;QACD,cAAc,EAAE,UAAS,YAAY;YACjC,IAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC3C,OAAO,IAAI,mBAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;KACJ,CAAC;IAEF,2BAAgB,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;AACjD,CAAC,EAAC","sourcesContent":["import Dimension from '../less/tree/dimension';\nimport Expression from '../less/tree/expression';\nimport functionRegistry from './../less/functions/function-registry';\n\nexport default environment => {\n\n function imageSize(functionContext, filePathNode) {\n let filePath = filePathNode.value;\n const currentFileInfo = functionContext.currentFileInfo;\n const currentDirectory = currentFileInfo.rewriteUrls ?\n currentFileInfo.currentDirectory : currentFileInfo.entryPath;\n\n const fragmentStart = filePath.indexOf('#');\n if (fragmentStart !== -1) {\n filePath = filePath.slice(0, fragmentStart);\n }\n\n const fileManager = environment.getFileManager(filePath, currentDirectory, functionContext.context, environment, true);\n\n if (!fileManager) {\n throw {\n type: 'File',\n message: `Can not set up FileManager for ${filePathNode}`\n };\n }\n\n const fileSync = fileManager.loadFileSync(filePath, currentDirectory, functionContext.context, environment);\n\n if (fileSync.error) {\n throw fileSync.error;\n }\n\n const sizeOf = require('image-size');\n return sizeOf(fileSync.filename);\n }\n\n const imageFunctions = {\n 'image-size': function(filePathNode) {\n const size = imageSize(this, filePathNode);\n return new Expression([\n new Dimension(size.width, 'px'),\n new Dimension(size.height, 'px')\n ]);\n },\n 'image-width': function(filePathNode) {\n const size = imageSize(this, filePathNode);\n return new Dimension(size.width, 'px');\n },\n 'image-height': function(filePathNode) {\n const size = imageSize(this, filePathNode);\n return new Dimension(size.height, 'px');\n }\n };\n\n functionRegistry.addMultiple(imageFunctions);\n};\n"]}
1
+ {"version":3,"file":"image-size.js","sourceRoot":"","sources":["../../src/less-node/image-size.js"],"names":[],"mappings":";;;AAAA,6EAA+C;AAC/C,+EAAiD;AACjD,oGAAqE;AAErE,mBAAe,UAAA,WAAW;IAEtB,SAAS,SAAS,CAAC,eAAe,EAAE,YAAY;QAC5C,IAAI,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC;QAClC,IAAM,eAAe,GAAG,eAAe,CAAC,eAAe,CAAC;QACxD,IAAM,gBAAgB,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;YAClD,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC;QAEjE,IAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE;YACtB,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;SAC/C;QAED,IAAM,WAAW,GAAG,WAAW,CAAC,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QAEvH,IAAI,CAAC,WAAW,EAAE;YACd,MAAM;gBACF,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,yCAAkC,YAAY,CAAE;aAC5D,CAAC;SACL;QAED,IAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,CAAC,QAAQ,EAAE,gBAAgB,EAAE,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAE5G,IAAI,QAAQ,CAAC,KAAK,EAAE;YAChB,MAAM,QAAQ,CAAC,KAAK,CAAC;SACxB;QAED,IAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,IAAM,cAAc,GAAG;QACnB,YAAY,EAAE,UAAS,YAAY;YAC/B,IAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC3C,OAAO,IAAI,oBAAU,CAAC;gBAClB,IAAI,mBAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;gBAC/B,IAAI,mBAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;aACnC,CAAC,CAAC;QACP,CAAC;QACD,aAAa,EAAE,UAAS,YAAY;YAChC,IAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC3C,OAAO,IAAI,mBAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;QACD,cAAc,EAAE,UAAS,YAAY;YACjC,IAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC3C,OAAO,IAAI,mBAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;KACJ,CAAC;IAEF,2BAAgB,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;AACjD,CAAC,EAAC","sourcesContent":["import Dimension from '../less/tree/dimension';\nimport Expression from '../less/tree/expression';\nimport functionRegistry from './../less/functions/function-registry';\n\nexport default environment => {\n\n function imageSize(functionContext, filePathNode) {\n let filePath = filePathNode.value;\n const currentFileInfo = functionContext.currentFileInfo;\n const currentDirectory = currentFileInfo.rewriteUrls ?\n currentFileInfo.currentDirectory : currentFileInfo.entryPath;\n\n const fragmentStart = filePath.indexOf('#');\n if (fragmentStart !== -1) {\n filePath = filePath.slice(0, fragmentStart);\n }\n\n const fileManager = environment.getFileManager(filePath, currentDirectory, functionContext.context, environment, true);\n\n if (!fileManager) {\n throw {\n type: 'File',\n message: `Can not set up FileManager for ${filePathNode}`\n };\n }\n\n const fileSync = fileManager.loadFileSync(filePath, currentDirectory, functionContext.context, environment);\n\n if (fileSync.error) {\n throw fileSync.error;\n }\n\n const sizeOf = require('image-size');\n return sizeOf(fileSync.filename);\n }\n\n const imageFunctions = {\n 'image-size': function(filePathNode) {\n const size = imageSize(this, filePathNode);\n return new Expression([\n new Dimension(size.width, 'px'),\n new Dimension(size.height, 'px')\n ]);\n },\n 'image-width': function(filePathNode) {\n const size = imageSize(this, filePathNode);\n return new Dimension(size.width, 'px');\n },\n 'image-height': function(filePathNode) {\n const size = imageSize(this, filePathNode);\n return new Dimension(size.height, 'px');\n }\n };\n\n functionRegistry.addMultiple(imageFunctions);\n};\n"]}
@@ -5,7 +5,7 @@ var environment_1 = tslib_1.__importDefault(require("./environment"));
5
5
  var file_manager_1 = tslib_1.__importDefault(require("./file-manager"));
6
6
  var url_file_manager_1 = tslib_1.__importDefault(require("./url-file-manager"));
7
7
  var less_1 = tslib_1.__importDefault(require("../less"));
8
- var less = less_1.default(environment_1.default, [new file_manager_1.default(), new url_file_manager_1.default()]);
8
+ var less = (0, less_1.default)(environment_1.default, [new file_manager_1.default(), new url_file_manager_1.default()]);
9
9
  var lessc_helper_1 = tslib_1.__importDefault(require("./lessc-helper"));
10
10
  // allow people to create less with their own environment
11
11
  less.createFromEnvironment = less_1.default;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/less-node/index.js"],"names":[],"mappings":";;;AAAA,sEAAwC;AACxC,wEAAyC;AACzC,gFAAgD;AAChD,yDAA4C;AAC5C,IAAM,IAAI,GAAG,cAAqB,CAAC,qBAAW,EAAE,CAAC,IAAI,sBAAW,EAAE,EAAE,IAAI,0BAAc,EAAE,CAAC,CAAC,CAAC;AAC3F,wEAAyC;AAEzC,yDAAyD;AACzD,IAAI,CAAC,qBAAqB,GAAG,cAAqB,CAAC;AACnD,IAAI,CAAC,WAAW,GAAG,sBAAW,CAAC;AAC/B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;AACvD,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;AAClC,IAAI,CAAC,WAAW,GAAG,sBAAW,CAAC;AAC/B,IAAI,CAAC,cAAc,GAAG,0BAAc,CAAC;AAErC,iBAAiB;AACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC,OAAO,EAAE,CAAC;AAE5D,mCAAmC;AACnC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAElD,kBAAe,IAAI,CAAC","sourcesContent":["import environment from './environment';\nimport FileManager from './file-manager';\nimport UrlFileManager from './url-file-manager';\nimport createFromEnvironment from '../less';\nconst less = createFromEnvironment(environment, [new FileManager(), new UrlFileManager()]);\nimport lesscHelper from './lessc-helper';\n\n// allow people to create less with their own environment\nless.createFromEnvironment = createFromEnvironment;\nless.lesscHelper = lesscHelper;\nless.PluginLoader = require('./plugin-loader').default;\nless.fs = require('./fs').default;\nless.FileManager = FileManager;\nless.UrlFileManager = UrlFileManager;\n\n// Set up options\nless.options = require('../less/default-options').default();\n\n// provide image-size functionality\nrequire('./image-size').default(less.environment);\n\nexport default less;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/less-node/index.js"],"names":[],"mappings":";;;AAAA,sEAAwC;AACxC,wEAAyC;AACzC,gFAAgD;AAChD,yDAA4C;AAC5C,IAAM,IAAI,GAAG,IAAA,cAAqB,EAAC,qBAAW,EAAE,CAAC,IAAI,sBAAW,EAAE,EAAE,IAAI,0BAAc,EAAE,CAAC,CAAC,CAAC;AAC3F,wEAAyC;AAEzC,yDAAyD;AACzD,IAAI,CAAC,qBAAqB,GAAG,cAAqB,CAAC;AACnD,IAAI,CAAC,WAAW,GAAG,sBAAW,CAAC;AAC/B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;AACvD,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;AAClC,IAAI,CAAC,WAAW,GAAG,sBAAW,CAAC;AAC/B,IAAI,CAAC,cAAc,GAAG,0BAAc,CAAC;AAErC,iBAAiB;AACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC,OAAO,EAAE,CAAC;AAE5D,mCAAmC;AACnC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAElD,kBAAe,IAAI,CAAC","sourcesContent":["import environment from './environment';\nimport FileManager from './file-manager';\nimport UrlFileManager from './url-file-manager';\nimport createFromEnvironment from '../less';\nconst less = createFromEnvironment(environment, [new FileManager(), new UrlFileManager()]);\nimport lesscHelper from './lessc-helper';\n\n// allow people to create less with their own environment\nless.createFromEnvironment = createFromEnvironment;\nless.lesscHelper = lesscHelper;\nless.PluginLoader = require('./plugin-loader').default;\nless.fs = require('./fs').default;\nless.FileManager = FileManager;\nless.UrlFileManager = UrlFileManager;\n\n// Set up options\nless.options = require('../less/default-options').default();\n\n// provide image-size functionality\nrequire('./image-size').default(less.environment);\n\nexport default less;\n"]}
@@ -14,7 +14,7 @@ var lessc_helper = {
14
14
  'red': [31, 39],
15
15
  'grey': [90, 39]
16
16
  };
17
- return "\u001B[" + styles[style][0] + "m" + str + "\u001B[" + styles[style][1] + "m";
17
+ return "\u001B[".concat(styles[style][0], "m").concat(str, "\u001B[").concat(styles[style][1], "m");
18
18
  },
19
19
  // Print command line options
20
20
  printUsage: function () {
@@ -85,6 +85,7 @@ var lessc_helper = {
85
85
  }
86
86
  };
87
87
  // Exports helper functions
88
+ // eslint-disable-next-line no-prototype-builtins
88
89
  for (var h in lessc_helper) {
89
90
  if (lessc_helper.hasOwnProperty(h)) {
90
91
  exports[h] = lessc_helper[h];
@@ -1 +1 @@
1
- {"version":3,"file":"lessc-helper.js","sourceRoot":"","sources":["../../src/less-node/lessc-helper.js"],"names":[],"mappings":"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","sourcesContent":["// lessc_helper.js\n//\n// helper functions for lessc\nconst lessc_helper = {\n\n // Stylize a string\n stylize : function(str, style) {\n const styles = {\n 'reset' : [0, 0],\n 'bold' : [1, 22],\n 'inverse' : [7, 27],\n 'underline' : [4, 24],\n 'yellow' : [33, 39],\n 'green' : [32, 39],\n 'red' : [31, 39],\n 'grey' : [90, 39]\n };\n return `\\x1b[${styles[style][0]}m${str}\\x1b[${styles[style][1]}m`;\n },\n\n // Print command line options\n printUsage: function() {\n console.log('usage: lessc [option option=parameter ...] <source> [destination]');\n console.log('');\n console.log('If source is set to `-\\' (dash or hyphen-minus), input is read from stdin.');\n console.log('');\n console.log('options:');\n console.log(' -h, --help Prints help (this message) and exit.');\n console.log(' --include-path=PATHS Sets include paths. Separated by `:\\'. `;\\' also supported on windows.');\n console.log(' -M, --depends Outputs a makefile import dependency list to stdout.');\n console.log(' --no-color Disables colorized output.');\n console.log(' --ie-compat Enables IE8 compatibility checks.');\n console.log(' --js Enables inline JavaScript in less files');\n console.log(' -l, --lint Syntax check only (lint).');\n console.log(' -s, --silent Suppresses output of error messages.');\n console.log(' --strict-imports Forces evaluation of imports.');\n console.log(' --insecure Allows imports from insecure https hosts.');\n console.log(' -v, --version Prints version number and exit.');\n console.log(' --verbose Be verbose.');\n console.log(' --source-map[=FILENAME] Outputs a v3 sourcemap to the filename (or output filename.map).');\n console.log(' --source-map-rootpath=X Adds this path onto the sourcemap filename and less file paths.');\n console.log(' --source-map-basepath=X Sets sourcemap base path, defaults to current working directory.');\n console.log(' --source-map-include-source Puts the less files into the map instead of referencing them.');\n console.log(' --source-map-inline Puts the map (and any less files) as a base64 data uri into the output css file.');\n console.log(' --source-map-url=URL Sets a custom URL to map file, for sourceMappingURL comment');\n console.log(' in generated CSS file.');\n console.log(' --source-map-no-annotation Excludes the sourceMappingURL comment from the output css file.');\n console.log(' -rp, --rootpath=URL Sets rootpath for url rewriting in relative imports and urls');\n console.log(' Works with or without the relative-urls option.');\n console.log(' -ru=, --rewrite-urls= Rewrites URLs to make them relative to the base less file.');\n console.log(' all|local|off \\'all\\' rewrites all URLs, \\'local\\' just those starting with a \\'.\\'');\n console.log('');\n console.log(' -m=, --math=');\n console.log(' always Less will eagerly perform math operations always.');\n console.log(' parens-division Math performed except for division (/) operator');\n console.log(' parens | strict Math only performed inside parentheses');\n console.log(' strict-legacy Parens required in very strict terms (legacy --strict-math)');\n console.log('');\n console.log(' -su=on|off Allows mixed units, e.g. 1px+1em or 1px*1px which have units');\n console.log(' --strict-units=on|off that cannot be represented.');\n console.log(' --global-var=\\'VAR=VALUE\\' Defines a variable that can be referenced by the file.');\n console.log(' --modify-var=\\'VAR=VALUE\\' Modifies a variable already declared in the file.');\n console.log(' --url-args=\\'QUERYSTRING\\' Adds params into url tokens (e.g. 42, cb=42 or \\'a=1&b=2\\')');\n console.log(' --plugin=PLUGIN=OPTIONS Loads a plugin. You can also omit the --plugin= if the plugin begins');\n console.log(' less-plugin. E.g. the clean css plugin is called less-plugin-clean-css');\n console.log(' once installed (npm install less-plugin-clean-css), use either with');\n console.log(' --plugin=less-plugin-clean-css or just --clean-css');\n console.log(' specify options afterwards e.g. --plugin=less-plugin-clean-css=\"advanced\"');\n console.log(' or --clean-css=\"advanced\"');\n console.log(' --disable-plugin-rule Disallow @plugin statements');\n console.log('');\n console.log('-------------------------- Deprecated ----------------');\n console.log(' -sm=on|off Legacy parens-only math. Use --math');\n console.log(' --strict-math=on|off ');\n console.log('');\n console.log(' --line-numbers=TYPE Outputs filename and line numbers.');\n console.log(' TYPE can be either \\'comments\\', which will output');\n console.log(' the debug info within comments, \\'mediaquery\\'');\n console.log(' that will output the information within a fake');\n console.log(' media query which is compatible with the SASS');\n console.log(' format, and \\'all\\' which will do both.');\n console.log(' -x, --compress Compresses output by removing some whitespaces.');\n console.log(' We recommend you use a dedicated minifer like less-plugin-clean-css');\n console.log('');\n console.log('Report bugs to: http://github.com/less/less.js/issues');\n console.log('Home page: <http://lesscss.org/>');\n }\n};\n\n// Exports helper functions\nfor (const h in lessc_helper) { if (lessc_helper.hasOwnProperty(h)) { exports[h] = lessc_helper[h]; }}\n"]}
1
+ {"version":3,"file":"lessc-helper.js","sourceRoot":"","sources":["../../src/less-node/lessc-helper.js"],"names":[],"mappings":"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","sourcesContent":["// lessc_helper.js\n//\n// helper functions for lessc\nconst lessc_helper = {\n\n // Stylize a string\n stylize : function(str, style) {\n const styles = {\n 'reset' : [0, 0],\n 'bold' : [1, 22],\n 'inverse' : [7, 27],\n 'underline' : [4, 24],\n 'yellow' : [33, 39],\n 'green' : [32, 39],\n 'red' : [31, 39],\n 'grey' : [90, 39]\n };\n return `\\x1b[${styles[style][0]}m${str}\\x1b[${styles[style][1]}m`;\n },\n\n // Print command line options\n printUsage: function() {\n console.log('usage: lessc [option option=parameter ...] <source> [destination]');\n console.log('');\n console.log('If source is set to `-\\' (dash or hyphen-minus), input is read from stdin.');\n console.log('');\n console.log('options:');\n console.log(' -h, --help Prints help (this message) and exit.');\n console.log(' --include-path=PATHS Sets include paths. Separated by `:\\'. `;\\' also supported on windows.');\n console.log(' -M, --depends Outputs a makefile import dependency list to stdout.');\n console.log(' --no-color Disables colorized output.');\n console.log(' --ie-compat Enables IE8 compatibility checks.');\n console.log(' --js Enables inline JavaScript in less files');\n console.log(' -l, --lint Syntax check only (lint).');\n console.log(' -s, --silent Suppresses output of error messages.');\n console.log(' --strict-imports Forces evaluation of imports.');\n console.log(' --insecure Allows imports from insecure https hosts.');\n console.log(' -v, --version Prints version number and exit.');\n console.log(' --verbose Be verbose.');\n console.log(' --source-map[=FILENAME] Outputs a v3 sourcemap to the filename (or output filename.map).');\n console.log(' --source-map-rootpath=X Adds this path onto the sourcemap filename and less file paths.');\n console.log(' --source-map-basepath=X Sets sourcemap base path, defaults to current working directory.');\n console.log(' --source-map-include-source Puts the less files into the map instead of referencing them.');\n console.log(' --source-map-inline Puts the map (and any less files) as a base64 data uri into the output css file.');\n console.log(' --source-map-url=URL Sets a custom URL to map file, for sourceMappingURL comment');\n console.log(' in generated CSS file.');\n console.log(' --source-map-no-annotation Excludes the sourceMappingURL comment from the output css file.');\n console.log(' -rp, --rootpath=URL Sets rootpath for url rewriting in relative imports and urls');\n console.log(' Works with or without the relative-urls option.');\n console.log(' -ru=, --rewrite-urls= Rewrites URLs to make them relative to the base less file.');\n console.log(' all|local|off \\'all\\' rewrites all URLs, \\'local\\' just those starting with a \\'.\\'');\n console.log('');\n console.log(' -m=, --math=');\n console.log(' always Less will eagerly perform math operations always.');\n console.log(' parens-division Math performed except for division (/) operator');\n console.log(' parens | strict Math only performed inside parentheses');\n console.log(' strict-legacy Parens required in very strict terms (legacy --strict-math)');\n console.log('');\n console.log(' -su=on|off Allows mixed units, e.g. 1px+1em or 1px*1px which have units');\n console.log(' --strict-units=on|off that cannot be represented.');\n console.log(' --global-var=\\'VAR=VALUE\\' Defines a variable that can be referenced by the file.');\n console.log(' --modify-var=\\'VAR=VALUE\\' Modifies a variable already declared in the file.');\n console.log(' --url-args=\\'QUERYSTRING\\' Adds params into url tokens (e.g. 42, cb=42 or \\'a=1&b=2\\')');\n console.log(' --plugin=PLUGIN=OPTIONS Loads a plugin. You can also omit the --plugin= if the plugin begins');\n console.log(' less-plugin. E.g. the clean css plugin is called less-plugin-clean-css');\n console.log(' once installed (npm install less-plugin-clean-css), use either with');\n console.log(' --plugin=less-plugin-clean-css or just --clean-css');\n console.log(' specify options afterwards e.g. --plugin=less-plugin-clean-css=\"advanced\"');\n console.log(' or --clean-css=\"advanced\"');\n console.log(' --disable-plugin-rule Disallow @plugin statements');\n console.log('');\n console.log('-------------------------- Deprecated ----------------');\n console.log(' -sm=on|off Legacy parens-only math. Use --math');\n console.log(' --strict-math=on|off ');\n console.log('');\n console.log(' --line-numbers=TYPE Outputs filename and line numbers.');\n console.log(' TYPE can be either \\'comments\\', which will output');\n console.log(' the debug info within comments, \\'mediaquery\\'');\n console.log(' that will output the information within a fake');\n console.log(' media query which is compatible with the SASS');\n console.log(' format, and \\'all\\' which will do both.');\n console.log(' -x, --compress Compresses output by removing some whitespaces.');\n console.log(' We recommend you use a dedicated minifer like less-plugin-clean-css');\n console.log('');\n console.log('Report bugs to: http://github.com/less/less.js/issues');\n console.log('Home page: <http://lesscss.org/>');\n }\n};\n\n// Exports helper functions\n// eslint-disable-next-line no-prototype-builtins\nfor (const h in lessc_helper) { if (lessc_helper.hasOwnProperty(h)) { exports[h] = lessc_helper[h]; }}\n"]}
@@ -1,6 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
+ /* eslint-disable no-unused-vars */
5
+ /**
6
+ * @todo - remove top eslint rule when FileManagers have JSDoc type
7
+ * and are TS-type-checked
8
+ */
4
9
  var isUrlRe = /^(?:https?:)?\/\//i;
5
10
  var url_1 = tslib_1.__importDefault(require("url"));
6
11
  var request;
@@ -31,18 +36,18 @@ UrlFileManager.prototype = Object.assign(new abstract_file_manager_js_1.default(
31
36
  request.get(hackUrlStr, { follow_max: 5 }, function (err, resp, body) {
32
37
  if (err || resp && resp.statusCode >= 400) {
33
38
  var message = resp && resp.statusCode === 404
34
- ? "resource '" + urlStr + "' was not found\n"
35
- : "resource '" + urlStr + "' gave this Error:\n " + (err || resp.statusMessage || resp.statusCode) + "\n";
39
+ ? "resource '".concat(urlStr, "' was not found\n")
40
+ : "resource '".concat(urlStr, "' gave this Error:\n ").concat(err || resp.statusMessage || resp.statusCode, "\n");
36
41
  reject({ type: 'File', message: message });
37
42
  return;
38
43
  }
39
44
  if (resp.statusCode >= 300) {
40
- reject({ type: 'File', message: "resource '" + urlStr + "' caused too many redirects" });
45
+ reject({ type: 'File', message: "resource '".concat(urlStr, "' caused too many redirects") });
41
46
  return;
42
47
  }
43
48
  body = body.toString('utf8');
44
49
  if (!body) {
45
- logger_1.default.warn("Warning: Empty body (HTTP " + resp.statusCode + ") returned by \"" + urlStr + "\"");
50
+ logger_1.default.warn("Warning: Empty body (HTTP ".concat(resp.statusCode, ") returned by \"").concat(urlStr, "\""));
46
51
  }
47
52
  fulfill({ contents: body || '', filename: urlStr });
48
53
  });
@@ -1 +1 @@
1
- {"version":3,"file":"url-file-manager.js","sourceRoot":"","sources":["../../src/less-node/url-file-manager.js"],"names":[],"mappings":";;;AAAA,IAAM,OAAO,GAAG,oBAAoB,CAAC;AACrC,oDAAsB;AACtB,IAAI,OAAO,CAAC;AACZ,kHAA+E;AAC/E,kEAAoC;AAEpC,IAAM,cAAc,GAAG,cAAY,CAAC,CAAA;AACpC,cAAc,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,kCAAmB,EAAE,EAAE;IAChE,QAAQ,YAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,WAAW;QACrD,OAAO,OAAO,CAAC,IAAI,CAAE,QAAQ,CAAE,IAAI,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACtE,CAAC;IAED,QAAQ,YAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,WAAW;QACrD,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,IAAI,OAAO,KAAK,SAAS,EAAE;gBACvB,IAAI;oBAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;iBAAE;gBACpC,OAAO,CAAC,EAAE;oBAAE,OAAO,GAAG,IAAI,CAAC;iBAAE;aAChC;YACD,IAAI,CAAC,OAAO,EAAE;gBACV,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kEAAkE,EAAE,CAAC,CAAC;gBACtG,OAAO;aACV;YAED,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,CAAE,QAAQ,CAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;YAE3F,yCAAyC;YACzC,IAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAA;YAErE,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,UAAC,GAAG,EAAE,IAAI,EAAE,IAAI;gBACvD,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,EAAE;oBACvC,IAAM,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG;wBAC3C,CAAC,CAAC,eAAa,MAAM,sBAAmB;wBACxC,CAAC,CAAC,eAAa,MAAM,+BAAyB,GAAG,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,QAAI,CAAC;oBACnG,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,SAAA,EAAE,CAAC,CAAC;oBAClC,OAAO;iBACV;gBACD,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,EAAE;oBACxB,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAa,MAAM,gCAA6B,EAAE,CAAC,CAAC;oBACpF,OAAO;iBACV;gBACD,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC7B,IAAI,CAAC,IAAI,EAAE;oBACP,gBAAM,CAAC,IAAI,CAAC,+BAA6B,IAAI,CAAC,UAAU,wBAAkB,MAAM,OAAG,CAAC,CAAC;iBACxF;gBACD,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAC,CAAC;AAEH,kBAAe,cAAc,CAAC","sourcesContent":["const isUrlRe = /^(?:https?:)?\\/\\//i;\nimport url from 'url';\nlet request;\nimport AbstractFileManager from '../less/environment/abstract-file-manager.js';\nimport logger from '../less/logger';\n\nconst UrlFileManager = function() {}\nUrlFileManager.prototype = Object.assign(new AbstractFileManager(), {\n supports(filename, currentDirectory, options, environment) {\n return isUrlRe.test( filename ) || isUrlRe.test(currentDirectory);\n },\n\n loadFile(filename, currentDirectory, options, environment) {\n return new Promise((fulfill, reject) => {\n if (request === undefined) {\n try { request = require('needle'); }\n catch (e) { request = null; }\n }\n if (!request) {\n reject({ type: 'File', message: 'optional dependency \\'needle\\' required to import over http(s)\\n' });\n return;\n }\n\n let urlStr = isUrlRe.test( filename ) ? filename : url.resolve(currentDirectory, filename);\n\n /** native-request currently has a bug */\n const hackUrlStr = urlStr.indexOf('?') === -1 ? urlStr + '?' : urlStr\n\n request.get(hackUrlStr, { follow_max: 5 }, (err, resp, body) => {\n if (err || resp && resp.statusCode >= 400) {\n const message = resp && resp.statusCode === 404\n ? `resource '${urlStr}' was not found\\n`\n : `resource '${urlStr}' gave this Error:\\n ${err || resp.statusMessage || resp.statusCode}\\n`;\n reject({ type: 'File', message });\n return;\n }\n if (resp.statusCode >= 300) {\n reject({ type: 'File', message: `resource '${urlStr}' caused too many redirects` });\n return;\n }\n body = body.toString('utf8');\n if (!body) {\n logger.warn(`Warning: Empty body (HTTP ${resp.statusCode}) returned by \"${urlStr}\"`);\n }\n fulfill({ contents: body || '', filename: urlStr });\n });\n });\n }\n});\n\nexport default UrlFileManager;\n"]}
1
+ {"version":3,"file":"url-file-manager.js","sourceRoot":"","sources":["../../src/less-node/url-file-manager.js"],"names":[],"mappings":";;;AAAA,mCAAmC;AACnC;;;GAGG;AACH,IAAM,OAAO,GAAG,oBAAoB,CAAC;AACrC,oDAAsB;AACtB,IAAI,OAAO,CAAC;AACZ,kHAA+E;AAC/E,kEAAoC;AAEpC,IAAM,cAAc,GAAG,cAAY,CAAC,CAAA;AACpC,cAAc,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,kCAAmB,EAAE,EAAE;IAChE,QAAQ,YAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,WAAW;QACrD,OAAO,OAAO,CAAC,IAAI,CAAE,QAAQ,CAAE,IAAI,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACtE,CAAC;IAED,QAAQ,YAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,WAAW;QACrD,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,IAAI,OAAO,KAAK,SAAS,EAAE;gBACvB,IAAI;oBAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;iBAAE;gBACpC,OAAO,CAAC,EAAE;oBAAE,OAAO,GAAG,IAAI,CAAC;iBAAE;aAChC;YACD,IAAI,CAAC,OAAO,EAAE;gBACV,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kEAAkE,EAAE,CAAC,CAAC;gBACtG,OAAO;aACV;YAED,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,CAAE,QAAQ,CAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;YAE3F,yCAAyC;YACzC,IAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAA;YAErE,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,UAAC,GAAG,EAAE,IAAI,EAAE,IAAI;gBACvD,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,EAAE;oBACvC,IAAM,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG;wBAC3C,CAAC,CAAC,oBAAa,MAAM,sBAAmB;wBACxC,CAAC,CAAC,oBAAa,MAAM,mCAAyB,GAAG,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,OAAI,CAAC;oBACnG,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,SAAA,EAAE,CAAC,CAAC;oBAClC,OAAO;iBACV;gBACD,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,EAAE;oBACxB,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAa,MAAM,gCAA6B,EAAE,CAAC,CAAC;oBACpF,OAAO;iBACV;gBACD,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC7B,IAAI,CAAC,IAAI,EAAE;oBACP,gBAAM,CAAC,IAAI,CAAC,oCAA6B,IAAI,CAAC,UAAU,6BAAkB,MAAM,OAAG,CAAC,CAAC;iBACxF;gBACD,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAC,CAAC;AAEH,kBAAe,cAAc,CAAC","sourcesContent":["/* eslint-disable no-unused-vars */\n/**\n * @todo - remove top eslint rule when FileManagers have JSDoc type\n * and are TS-type-checked\n */\nconst isUrlRe = /^(?:https?:)?\\/\\//i;\nimport url from 'url';\nlet request;\nimport AbstractFileManager from '../less/environment/abstract-file-manager.js';\nimport logger from '../less/logger';\n\nconst UrlFileManager = function() {}\nUrlFileManager.prototype = Object.assign(new AbstractFileManager(), {\n supports(filename, currentDirectory, options, environment) {\n return isUrlRe.test( filename ) || isUrlRe.test(currentDirectory);\n },\n\n loadFile(filename, currentDirectory, options, environment) {\n return new Promise((fulfill, reject) => {\n if (request === undefined) {\n try { request = require('needle'); }\n catch (e) { request = null; }\n }\n if (!request) {\n reject({ type: 'File', message: 'optional dependency \\'needle\\' required to import over http(s)\\n' });\n return;\n }\n\n let urlStr = isUrlRe.test( filename ) ? filename : url.resolve(currentDirectory, filename);\n\n /** native-request currently has a bug */\n const hackUrlStr = urlStr.indexOf('?') === -1 ? urlStr + '?' : urlStr\n\n request.get(hackUrlStr, { follow_max: 5 }, (err, resp, body) => {\n if (err || resp && resp.statusCode >= 400) {\n const message = resp && resp.statusCode === 404\n ? `resource '${urlStr}' was not found\\n`\n : `resource '${urlStr}' gave this Error:\\n ${err || resp.statusMessage || resp.statusCode}\\n`;\n reject({ type: 'File', message });\n return;\n }\n if (resp.statusCode >= 300) {\n reject({ type: 'File', message: `resource '${urlStr}' caused too many redirects` });\n return;\n }\n body = body.toString('utf8');\n if (!body) {\n logger.warn(`Warning: Empty body (HTTP ${resp.statusCode}) returned by \"${urlStr}\"`);\n }\n fulfill({ contents: body || '', filename: urlStr });\n });\n });\n }\n});\n\nexport default UrlFileManager;\n"]}