sass-embedded-go 1.104.0-alpha0

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 (161) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +37 -0
  3. package/lib/index.js +100 -0
  4. package/lib/index.js.map +1 -0
  5. package/lib/index.mjs +215 -0
  6. package/lib/src/canonicalize-context.js +31 -0
  7. package/lib/src/canonicalize-context.js.map +1 -0
  8. package/lib/src/compile.js +51 -0
  9. package/lib/src/compile.js.map +1 -0
  10. package/lib/src/compiler/async.js +187 -0
  11. package/lib/src/compiler/async.js.map +1 -0
  12. package/lib/src/compiler/sync.js +204 -0
  13. package/lib/src/compiler/sync.js.map +1 -0
  14. package/lib/src/compiler/utils.js +210 -0
  15. package/lib/src/compiler/utils.js.map +1 -0
  16. package/lib/src/compiler-module.js +64 -0
  17. package/lib/src/compiler-module.js.map +1 -0
  18. package/lib/src/compiler-path.js +82 -0
  19. package/lib/src/compiler-path.js.map +1 -0
  20. package/lib/src/deprecations.js +121 -0
  21. package/lib/src/deprecations.js.map +1 -0
  22. package/lib/src/deprotofy-span.js +41 -0
  23. package/lib/src/deprotofy-span.js.map +1 -0
  24. package/lib/src/dispatcher.js +241 -0
  25. package/lib/src/dispatcher.js.map +1 -0
  26. package/lib/src/elf.js +114 -0
  27. package/lib/src/elf.js.map +1 -0
  28. package/lib/src/exception.js +23 -0
  29. package/lib/src/exception.js.map +1 -0
  30. package/lib/src/function-registry.js +127 -0
  31. package/lib/src/function-registry.js.map +1 -0
  32. package/lib/src/importer-registry.js +201 -0
  33. package/lib/src/importer-registry.js.map +1 -0
  34. package/lib/src/legacy/importer.js +296 -0
  35. package/lib/src/legacy/importer.js.map +1 -0
  36. package/lib/src/legacy/index.js +329 -0
  37. package/lib/src/legacy/index.js.map +1 -0
  38. package/lib/src/legacy/resolve-path.js +133 -0
  39. package/lib/src/legacy/resolve-path.js.map +1 -0
  40. package/lib/src/legacy/utils.js +58 -0
  41. package/lib/src/legacy/utils.js.map +1 -0
  42. package/lib/src/legacy/value/base.js +18 -0
  43. package/lib/src/legacy/value/base.js.map +1 -0
  44. package/lib/src/legacy/value/color.js +65 -0
  45. package/lib/src/legacy/value/color.js.map +1 -0
  46. package/lib/src/legacy/value/index.js +23 -0
  47. package/lib/src/legacy/value/index.js.map +1 -0
  48. package/lib/src/legacy/value/list.js +50 -0
  49. package/lib/src/legacy/value/list.js.map +1 -0
  50. package/lib/src/legacy/value/map.js +74 -0
  51. package/lib/src/legacy/value/map.js.map +1 -0
  52. package/lib/src/legacy/value/number.js +60 -0
  53. package/lib/src/legacy/value/number.js.map +1 -0
  54. package/lib/src/legacy/value/string.js +27 -0
  55. package/lib/src/legacy/value/string.js.map +1 -0
  56. package/lib/src/legacy/value/wrap.js +115 -0
  57. package/lib/src/legacy/value/wrap.js.map +1 -0
  58. package/lib/src/logger.js +10 -0
  59. package/lib/src/logger.js.map +1 -0
  60. package/lib/src/message-transformer.js +108 -0
  61. package/lib/src/message-transformer.js.map +1 -0
  62. package/lib/src/messages.js +6 -0
  63. package/lib/src/messages.js.map +1 -0
  64. package/lib/src/packet-transformer.js +171 -0
  65. package/lib/src/packet-transformer.js.map +1 -0
  66. package/lib/src/protofier.js +492 -0
  67. package/lib/src/protofier.js.map +1 -0
  68. package/lib/src/request-tracker.js +52 -0
  69. package/lib/src/request-tracker.js.map +1 -0
  70. package/lib/src/utils.js +177 -0
  71. package/lib/src/utils.js.map +1 -0
  72. package/lib/src/value/argument-list.js +66 -0
  73. package/lib/src/value/argument-list.js.map +1 -0
  74. package/lib/src/value/boolean.js +69 -0
  75. package/lib/src/value/boolean.js.map +1 -0
  76. package/lib/src/value/calculations.js +114 -0
  77. package/lib/src/value/calculations.js.map +1 -0
  78. package/lib/src/value/color.js +869 -0
  79. package/lib/src/value/color.js.map +1 -0
  80. package/lib/src/value/function.js +74 -0
  81. package/lib/src/value/function.js.map +1 -0
  82. package/lib/src/value/index.js +166 -0
  83. package/lib/src/value/index.js.map +1 -0
  84. package/lib/src/value/list.js +101 -0
  85. package/lib/src/value/list.js.map +1 -0
  86. package/lib/src/value/map.js +92 -0
  87. package/lib/src/value/map.js.map +1 -0
  88. package/lib/src/value/mixin.js +50 -0
  89. package/lib/src/value/mixin.js.map +1 -0
  90. package/lib/src/value/null.js +49 -0
  91. package/lib/src/value/null.js.map +1 -0
  92. package/lib/src/value/number.js +583 -0
  93. package/lib/src/value/number.js.map +1 -0
  94. package/lib/src/value/string.js +118 -0
  95. package/lib/src/value/string.js.map +1 -0
  96. package/lib/src/value/utils.js +124 -0
  97. package/lib/src/value/utils.js.map +1 -0
  98. package/lib/src/vendor/deprecations.js +216 -0
  99. package/lib/src/vendor/deprecations.js.map +1 -0
  100. package/lib/src/vendor/embedded_sass_pb.js +432 -0
  101. package/lib/src/vendor/embedded_sass_pb.js.map +1 -0
  102. package/lib/src/vendor/sass/README.md +162 -0
  103. package/lib/src/vendor/sass/compile.d.ts +342 -0
  104. package/lib/src/vendor/sass/deprecations.d.ts +312 -0
  105. package/lib/src/vendor/sass/exception.d.ts +41 -0
  106. package/lib/src/vendor/sass/importer.d.ts +471 -0
  107. package/lib/src/vendor/sass/index.d.ts +122 -0
  108. package/lib/src/vendor/sass/index.m.d.ts +122 -0
  109. package/lib/src/vendor/sass/legacy/exception.d.ts +55 -0
  110. package/lib/src/vendor/sass/legacy/function.d.ts +757 -0
  111. package/lib/src/vendor/sass/legacy/importer.d.ts +169 -0
  112. package/lib/src/vendor/sass/legacy/options.d.ts +700 -0
  113. package/lib/src/vendor/sass/legacy/plugin_this.d.ts +74 -0
  114. package/lib/src/vendor/sass/legacy/render.d.ts +144 -0
  115. package/lib/src/vendor/sass/logger/index.d.ts +115 -0
  116. package/lib/src/vendor/sass/logger/source_location.d.ts +21 -0
  117. package/lib/src/vendor/sass/logger/source_span.d.ts +34 -0
  118. package/lib/src/vendor/sass/options.d.ts +468 -0
  119. package/lib/src/vendor/sass/util/promise_or.d.ts +17 -0
  120. package/lib/src/vendor/sass/value/argument_list.d.ts +47 -0
  121. package/lib/src/vendor/sass/value/boolean.d.ts +29 -0
  122. package/lib/src/vendor/sass/value/calculation.d.ts +137 -0
  123. package/lib/src/vendor/sass/value/color.d.ts +567 -0
  124. package/lib/src/vendor/sass/value/function.d.ts +22 -0
  125. package/lib/src/vendor/sass/value/index.d.ts +219 -0
  126. package/lib/src/vendor/sass/value/list.d.ts +54 -0
  127. package/lib/src/vendor/sass/value/map.d.ts +41 -0
  128. package/lib/src/vendor/sass/value/mixin.d.ts +14 -0
  129. package/lib/src/vendor/sass/value/number.d.ts +305 -0
  130. package/lib/src/vendor/sass/value/string.d.ts +84 -0
  131. package/lib/src/version.js +28 -0
  132. package/lib/src/version.js.map +1 -0
  133. package/package.json +36 -0
  134. package/types/compile.d.ts +342 -0
  135. package/types/deprecations.d.ts +312 -0
  136. package/types/exception.d.ts +41 -0
  137. package/types/importer.d.ts +471 -0
  138. package/types/index.d.ts +122 -0
  139. package/types/index.m.d.ts +122 -0
  140. package/types/legacy/exception.d.ts +55 -0
  141. package/types/legacy/function.d.ts +757 -0
  142. package/types/legacy/importer.d.ts +169 -0
  143. package/types/legacy/options.d.ts +700 -0
  144. package/types/legacy/plugin_this.d.ts +74 -0
  145. package/types/legacy/render.d.ts +144 -0
  146. package/types/logger/index.d.ts +115 -0
  147. package/types/logger/source_location.d.ts +21 -0
  148. package/types/logger/source_span.d.ts +34 -0
  149. package/types/options.d.ts +468 -0
  150. package/types/util/promise_or.d.ts +17 -0
  151. package/types/value/argument_list.d.ts +47 -0
  152. package/types/value/boolean.d.ts +29 -0
  153. package/types/value/calculation.d.ts +137 -0
  154. package/types/value/color.d.ts +567 -0
  155. package/types/value/function.d.ts +22 -0
  156. package/types/value/index.d.ts +219 -0
  157. package/types/value/list.d.ts +54 -0
  158. package/types/value/map.d.ts +41 -0
  159. package/types/value/mixin.d.ts +14 -0
  160. package/types/value/number.d.ts +305 -0
  161. package/types/value/string.d.ts +84 -0
@@ -0,0 +1,329 @@
1
+ "use strict";
2
+ // Copyright 2021 Google Inc. Use of this source code is governed by an
3
+ // MIT-style license that can be found in the LICENSE file or at
4
+ // https://opensource.org/licenses/MIT.
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.render = render;
40
+ exports.renderSync = renderSync;
41
+ const fs = __importStar(require("fs"));
42
+ const p = __importStar(require("path"));
43
+ const url_1 = require("url");
44
+ const importer_registry_1 = require("../importer-registry");
45
+ const exception_1 = require("../exception");
46
+ const compile_1 = require("../compile");
47
+ const deprecations_1 = require("../deprecations");
48
+ const utils_1 = require("../utils");
49
+ const wrap_1 = require("./value/wrap");
50
+ const importer_1 = require("./importer");
51
+ const utils_2 = require("./utils");
52
+ function render(options, callback) {
53
+ try {
54
+ options = adjustOptions(options);
55
+ const start = Date.now();
56
+ (0, deprecations_1.warnForHostSideDeprecation)('The legacy JS API is deprecated and will be removed in ' +
57
+ 'Dart Sass 2.0.0.\n\n' +
58
+ 'More info: https://sass-lang.com/d/legacy-js-api', deprecations_1.deprecations['legacy-js-api'], options);
59
+ const compileSass = isStringOptions(options)
60
+ ? (0, compile_1.compileStringAsync)(options.data, convertStringOptions(options, false))
61
+ : (0, compile_1.compileAsync)(options.file, convertOptions(options, false));
62
+ compileSass.then(result => callback(undefined, newLegacyResult(options, start, result)), error => callback(newLegacyException(error)));
63
+ }
64
+ catch (error) {
65
+ if (error instanceof Error)
66
+ callback(newLegacyException(error));
67
+ throw error;
68
+ }
69
+ }
70
+ function renderSync(options) {
71
+ const start = Date.now();
72
+ try {
73
+ options = adjustOptions(options);
74
+ (0, deprecations_1.warnForHostSideDeprecation)('The legacy JS API is deprecated and will be removed in ' +
75
+ 'Dart Sass 2.0.0.\n\n' +
76
+ 'More info: https://sass-lang.com/d/legacy-js-api', deprecations_1.deprecations['legacy-js-api'], options);
77
+ const result = isStringOptions(options)
78
+ ? (0, compile_1.compileString)(options.data, convertStringOptions(options, true))
79
+ : (0, compile_1.compile)(options.file, convertOptions(options, true));
80
+ return newLegacyResult(options, start, result);
81
+ }
82
+ catch (error) {
83
+ throw newLegacyException(error);
84
+ }
85
+ }
86
+ // Does some initial adjustments of `options` to make it easier to pass to the
87
+ // new API.
88
+ function adjustOptions(options) {
89
+ if (!('file' in options && options.file) && !('data' in options)) {
90
+ throw new Error('Either options.data or options.file must be set.');
91
+ }
92
+ // In legacy API, the current working directory is always attempted before
93
+ // any load path.
94
+ options.includePaths = [process.cwd(), ...(options.includePaths ?? [])];
95
+ if (!isStringOptions(options) &&
96
+ // The `indentedSyntax` option takes precedence over the file extension in the
97
+ // legacy API, but the new API doesn't have a `syntax` option for a file path.
98
+ // Instead, we eagerly load the entrypoint into memory and treat it like a
99
+ // string source.
100
+ (options.indentedSyntax !==
101
+ undefined ||
102
+ options.importer)) {
103
+ return {
104
+ ...options,
105
+ data: fs.readFileSync(options.file, 'utf8'),
106
+ indentedSyntax: !!options
107
+ .indentedSyntax,
108
+ };
109
+ }
110
+ else {
111
+ return options;
112
+ }
113
+ }
114
+ // Returns whether `options` is a `LegacyStringOptions`.
115
+ function isStringOptions(options) {
116
+ return 'data' in options;
117
+ }
118
+ // Converts `LegacyOptions` into new API `Options`.
119
+ function convertOptions(options, sync) {
120
+ if ('outputStyle' in options &&
121
+ options.outputStyle !== 'compressed' &&
122
+ options.outputStyle !== 'expanded') {
123
+ throw new Error(`Unknown output style: "${options.outputStyle}"`);
124
+ }
125
+ const self = pluginThis(options);
126
+ const functions = {};
127
+ for (let [signature, callback] of Object.entries(options.functions ?? {})) {
128
+ // The legacy API allows signatures without parentheses but the modern API
129
+ // does not.
130
+ if (!signature.includes('('))
131
+ signature += '()';
132
+ functions[signature.trimLeft()] = (0, wrap_1.wrapFunction)(self, callback, sync);
133
+ }
134
+ const importers = options.importer &&
135
+ (!(options.importer instanceof Array) || options.importer.length > 0)
136
+ ? [
137
+ new importer_1.LegacyImporterWrapper(self, options.importer instanceof Array
138
+ ? options.importer
139
+ : [options.importer], options.includePaths ?? [], options.file ?? 'stdin', sync),
140
+ ]
141
+ : undefined;
142
+ return {
143
+ functions,
144
+ importers: options.pkgImporter instanceof importer_registry_1.NodePackageImporter
145
+ ? [options.pkgImporter, ...(importers ?? [])]
146
+ : importers,
147
+ sourceMap: wasSourceMapRequested(options),
148
+ sourceMapIncludeSources: options.sourceMapContents,
149
+ loadPaths: importers ? undefined : options.includePaths,
150
+ style: options.outputStyle,
151
+ quietDeps: options.quietDeps,
152
+ verbose: options.verbose,
153
+ charset: options.charset,
154
+ logger: options.logger,
155
+ fatalDeprecations: options.fatalDeprecations,
156
+ futureDeprecations: options.futureDeprecations,
157
+ silenceDeprecations: options.silenceDeprecations,
158
+ legacy: true,
159
+ };
160
+ }
161
+ // Converts `LegacyStringOptions` into new API `StringOptions`.
162
+ function convertStringOptions(options, sync) {
163
+ const modernOptions = convertOptions(options, sync);
164
+ // Use a no-op base importer, because the LegacyImporterWrapper will emulate
165
+ // the base importer by itself in order to mark containingUrl as accessed.
166
+ const importer = modernOptions.importers?.some(importer => importer instanceof importer_1.LegacyImporterWrapper)
167
+ ? {
168
+ canonicalize() {
169
+ return null;
170
+ },
171
+ load() {
172
+ return null;
173
+ },
174
+ }
175
+ : undefined;
176
+ return {
177
+ ...modernOptions,
178
+ url: options.file
179
+ ? options.importer
180
+ ? (0, utils_2.pathToLegacyFileUrl)(options.file)
181
+ : (0, url_1.pathToFileURL)(options.file)
182
+ : new url_1.URL(utils_2.legacyImporterProtocol),
183
+ importer,
184
+ syntax: options.indentedSyntax ? 'indented' : 'scss',
185
+ };
186
+ }
187
+ // Determines whether a sourceMap was requested by the call to `render()`.
188
+ function wasSourceMapRequested(options) {
189
+ return (typeof options.sourceMap === 'string' ||
190
+ (options.sourceMap === true && !!options.outFile));
191
+ }
192
+ // Creates the `this` value that's used for callbacks.
193
+ function pluginThis(options) {
194
+ const pluginThis = {
195
+ options: {
196
+ context: undefined,
197
+ file: options.file,
198
+ data: options.data,
199
+ includePaths: (options.includePaths ?? []).join(p.delimiter),
200
+ precision: 10,
201
+ style: 1,
202
+ indentType: 0,
203
+ indentWidth: 2,
204
+ linefeed: '\n',
205
+ result: {
206
+ stats: {
207
+ start: Date.now(),
208
+ entry: options.file ?? 'data',
209
+ },
210
+ },
211
+ },
212
+ };
213
+ pluginThis.options.context = pluginThis;
214
+ return pluginThis;
215
+ }
216
+ // Transforms the compilation result into an object that mimics the Node Sass
217
+ // API format.
218
+ function newLegacyResult(options, start, result) {
219
+ const end = Date.now();
220
+ let css = result.css;
221
+ let sourceMapBytes;
222
+ if (result.sourceMap) {
223
+ const sourceMap = result.sourceMap;
224
+ sourceMap.sourceRoot = options.sourceMapRoot ?? '';
225
+ const sourceMapPath = typeof options.sourceMap === 'string'
226
+ ? options.sourceMap
227
+ : options.outFile + '.map';
228
+ const sourceMapDir = p.dirname(sourceMapPath);
229
+ if (options.outFile) {
230
+ sourceMap.file = (0, utils_1.pathToUrlString)(p.relative(sourceMapDir, options.outFile));
231
+ }
232
+ else if (options.file) {
233
+ sourceMap.file = (0, utils_1.pathToUrlString)((0, utils_1.withoutExtension)(options.file) + '.css');
234
+ }
235
+ else {
236
+ sourceMap.file = 'stdin.css';
237
+ }
238
+ sourceMap.sources = sourceMap.sources
239
+ .filter(source => !source.startsWith(importer_1.endOfLoadProtocol))
240
+ .map(source => {
241
+ source = (0, utils_2.removeLegacyImporter)(source);
242
+ if (source.startsWith('file://')) {
243
+ return (0, utils_1.pathToUrlString)(p.relative(sourceMapDir, (0, utils_1.fileUrlToPathCrossPlatform)(source)));
244
+ }
245
+ else if (source.startsWith('data:')) {
246
+ return 'stdin';
247
+ }
248
+ else {
249
+ return source;
250
+ }
251
+ });
252
+ sourceMapBytes = Buffer.from(JSON.stringify(sourceMap));
253
+ if (!options.omitSourceMapUrl) {
254
+ let url;
255
+ if (options.sourceMapEmbed) {
256
+ url = `data:application/json;base64,${sourceMapBytes.toString('base64')}`;
257
+ }
258
+ else if (options.outFile) {
259
+ url = (0, utils_1.pathToUrlString)(p.relative(p.dirname(options.outFile), sourceMapPath));
260
+ }
261
+ else {
262
+ url = (0, utils_1.pathToUrlString)(sourceMapPath);
263
+ }
264
+ css += `\n\n/*# sourceMappingURL=${url} */`;
265
+ }
266
+ }
267
+ return {
268
+ css: Buffer.from(css),
269
+ map: sourceMapBytes,
270
+ stats: {
271
+ entry: options.file ?? 'data',
272
+ start,
273
+ end,
274
+ duration: end - start,
275
+ includedFiles: result.loadedUrls
276
+ .filter(url => url.protocol !== importer_1.endOfLoadProtocol)
277
+ .map(url => {
278
+ if (url.protocol === utils_2.legacyImporterProtocol) {
279
+ return decodeURI(url.pathname);
280
+ }
281
+ const urlString = (0, utils_2.removeLegacyImporter)(url.toString());
282
+ return urlString.startsWith('file:')
283
+ ? (0, utils_1.fileUrlToPathCrossPlatform)(urlString)
284
+ : urlString;
285
+ }),
286
+ },
287
+ };
288
+ }
289
+ // Decorates an Error with additional fields so that it behaves like a Node Sass
290
+ // error.
291
+ function newLegacyException(error) {
292
+ if (!(error instanceof exception_1.Exception)) {
293
+ return Object.assign(error, {
294
+ formatted: error.toString(),
295
+ status: 3,
296
+ });
297
+ }
298
+ const span = error.span ? (0, utils_2.removeLegacyImporterFromSpan)(error.span) : null;
299
+ let file;
300
+ if (!span?.url) {
301
+ file = 'stdin';
302
+ }
303
+ else if (span.url.protocol === 'file:') {
304
+ // We have to cast to Node's URL type here because the specified type is the
305
+ // standard URL type which is slightly less featureful. `fileURLToPath()`
306
+ // does work with standard URL objects in practice, but we know that we
307
+ // generate Node URLs here regardless.
308
+ file = (0, utils_1.fileUrlToPathCrossPlatform)(span.url);
309
+ }
310
+ else {
311
+ file = span.url.toString();
312
+ }
313
+ const errorString = (0, utils_2.removeLegacyImporter)(error.toString());
314
+ return Object.assign(new Error(), {
315
+ status: 1,
316
+ message: errorString.replace(/^Error: /, ''),
317
+ formatted: errorString,
318
+ toString: () => errorString,
319
+ stack: error.stack ? (0, utils_2.removeLegacyImporter)(error.stack) : undefined,
320
+ line: (0, utils_1.isNullOrUndefined)(error.span?.start.line)
321
+ ? undefined
322
+ : error.span.start.line + 1,
323
+ column: (0, utils_1.isNullOrUndefined)(error.span?.start.column)
324
+ ? undefined
325
+ : error.span.start.column + 1,
326
+ file,
327
+ });
328
+ }
329
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/src/legacy/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ // Copyright 2022 Google LLC. Use of this source code is governed by an
3
+ // MIT-style license that can be found in the LICENSE file or at
4
+ // https://opensource.org/licenses/MIT.
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.resolvePath = resolvePath;
40
+ const fs = __importStar(require("fs"));
41
+ const p = __importStar(require("path"));
42
+ /**
43
+ * Resolves a path using the same logic as the filesystem importer.
44
+ *
45
+ * This tries to fill in extensions and partial prefixes and check for a
46
+ * directory default. If no file can be found, it returns `null`.
47
+ */
48
+ function resolvePath(path, fromImport) {
49
+ const extension = p.extname(path);
50
+ if (extension === '.sass' || extension === '.scss' || extension === '.css') {
51
+ return ((fromImport
52
+ ? exactlyOne(tryPath(`${withoutExtension(path)}.import${extension}`))
53
+ : null) ?? exactlyOne(tryPath(path)));
54
+ }
55
+ return ((fromImport ? exactlyOne(tryPathWithExtensions(`${path}.import`)) : null) ??
56
+ exactlyOne(tryPathWithExtensions(path)) ??
57
+ tryPathAsDirectory(path, fromImport));
58
+ }
59
+ // Like `tryPath`, but checks `.sass`, `.scss`, and `.css` extensions.
60
+ function tryPathWithExtensions(path) {
61
+ const result = [...tryPath(path + '.sass'), ...tryPath(path + '.scss')];
62
+ return result.length > 0 ? result : tryPath(path + '.css');
63
+ }
64
+ // Returns the `path` and/or the partial with the same name, if either or both
65
+ // exists. If neither exists, returns an empty list.
66
+ function tryPath(path) {
67
+ const partial = p.join(p.dirname(path), `_${p.basename(path)}`);
68
+ const result = [];
69
+ if (fileExists(partial))
70
+ result.push(partial);
71
+ if (fileExists(path))
72
+ result.push(path);
73
+ return result;
74
+ }
75
+ // Returns the resolved index file for `path` if `path` is a directory and the
76
+ // index file exists. Otherwise, returns `null`.
77
+ function tryPathAsDirectory(path, fromImport) {
78
+ if (!dirExists(path))
79
+ return null;
80
+ return ((fromImport
81
+ ? exactlyOne(tryPathWithExtensions(p.join(path, 'index.import')))
82
+ : null) ?? exactlyOne(tryPathWithExtensions(p.join(path, 'index'))));
83
+ }
84
+ // If `paths` contains exactly one path, returns that path. If it contains no
85
+ // paths, returns `null`. If it contains more than one, throws an exception.
86
+ function exactlyOne(paths) {
87
+ if (paths.length === 0)
88
+ return null;
89
+ if (paths.length === 1)
90
+ return paths[0];
91
+ throw new Error("It's not clear which file to import. Found:\n" +
92
+ paths.map(path => ' ' + path).join('\n'));
93
+ }
94
+ // Returns whether or not a file (not a directory) exists at `path`.
95
+ function fileExists(path) {
96
+ // `existsSync()` is faster than `statSync()`, but it doesn't clarify whether
97
+ // the entity in question is a file or a directory. Since false negatives are
98
+ // much more common than false positives, it works out in our favor to check
99
+ // this first.
100
+ if (!fs.existsSync(path))
101
+ return false;
102
+ try {
103
+ return fs.statSync(path).isFile();
104
+ }
105
+ catch (error) {
106
+ if (error.code === 'ENOENT')
107
+ return false;
108
+ throw error;
109
+ }
110
+ }
111
+ // Returns whether or not a directory (not a file) exists at `path`.
112
+ function dirExists(path) {
113
+ // `existsSync()` is faster than `statSync()`, but it doesn't clarify whether
114
+ // the entity in question is a file or a directory. Since false negatives are
115
+ // much more common than false positives, it works out in our favor to check
116
+ // this first.
117
+ if (!fs.existsSync(path))
118
+ return false;
119
+ try {
120
+ return fs.statSync(path).isDirectory();
121
+ }
122
+ catch (error) {
123
+ if (error.code === 'ENOENT')
124
+ return false;
125
+ throw error;
126
+ }
127
+ }
128
+ // Returns `path` without its file extension.
129
+ function withoutExtension(path) {
130
+ const extension = p.extname(path);
131
+ return path.substring(0, path.length - extension.length);
132
+ }
133
+ //# sourceMappingURL=resolve-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-path.js","sourceRoot":"","sources":["../../../../lib/src/legacy/resolve-path.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEvC,MAAY,EAAE,+BAAW;AACzB,MAAY,CAAC,iCAAa;AAE1B;;;;;GAKG;AACH,qBAA4B,IAAY,EAAE,UAAmB;IAC3D,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QAC3E,OAAO,CACL,CAAC,UAAU;YACT,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,SAAS,EAAE,CAAC,CAAC;YACrE,CAAC,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CACvC,CAAC;IACJ,CAAC;IAED,OAAO,CACL,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACzE,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACvC,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,CACrC,CAAC;AACJ,CAAC;AAED,sEAAsE;AACtE,SAAS,qBAAqB,CAAC,IAAY;IACzC,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC;IACxE,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;AAC7D,CAAC;AAED,8EAA8E;AAC9E,oDAAoD;AACpD,SAAS,OAAO,CAAC,IAAY;IAC3B,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,UAAU,CAAC,OAAO,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,UAAU,CAAC,IAAI,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8EAA8E;AAC9E,gDAAgD;AAChD,SAAS,kBAAkB,CAAC,IAAY,EAAE,UAAmB;IAC3D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAElC,OAAO,CACL,CAAC,UAAU;QACT,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CACtE,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,4EAA4E;AAC5E,SAAS,UAAU,CAAC,KAAe;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAExC,MAAM,IAAI,KAAK,CACb,+CAA+C;QAC7C,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5C,CAAC;AACJ,CAAC;AAED,oEAAoE;AACpE,SAAS,UAAU,CAAC,IAAY;IAC9B,6EAA6E;IAC7E,6EAA6E;IAC7E,4EAA4E;IAC5E,cAAc;IACd,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAEvC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IACpC,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACrE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,oEAAoE;AACpE,SAAS,SAAS,CAAC,IAAY;IAC7B,6EAA6E;IAC7E,6EAA6E;IAC7E,4EAA4E;IAC5E,cAAc;IACd,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAEvC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IACzC,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACrE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,6CAA6C;AAC7C,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ // Copyright 2023 Google Inc. Use of this source code is governed by an
3
+ // MIT-style license that can be found in the LICENSE file or at
4
+ // https://opensource.org/licenses/MIT.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.legacyImporterProtocolPrefix = exports.legacyImporterProtocol = void 0;
7
+ exports.removeLegacyImporter = removeLegacyImporter;
8
+ exports.removeLegacyImporterFromSpan = removeLegacyImporterFromSpan;
9
+ exports.pathToLegacyFileUrl = pathToLegacyFileUrl;
10
+ exports.legacyFileUrlToPath = legacyFileUrlToPath;
11
+ const assert_1 = require("assert");
12
+ const url_1 = require("url");
13
+ const utils_1 = require("../utils");
14
+ const importer_1 = require("./importer");
15
+ /**
16
+ * The URL protocol to use for URLs canonicalized using `LegacyImporterWrapper`.
17
+ */
18
+ exports.legacyImporterProtocol = 'legacy-importer:';
19
+ /**
20
+ * The prefix for absolute URLs canonicalized using `LegacyImporterWrapper`.
21
+ *
22
+ * This is used to distinguish imports resolved relative to URLs returned by a
23
+ * legacy importer from manually-specified absolute URLs.
24
+ */
25
+ exports.legacyImporterProtocolPrefix = 'legacy-importer-';
26
+ // A regular expression that matches legacy importer protocol syntax that
27
+ // should be removed from human-readable messages.
28
+ const removeLegacyImporterRegExp = new RegExp(`${exports.legacyImporterProtocol}|${exports.legacyImporterProtocolPrefix}`, 'g');
29
+ // Returns `string` with all instances of legacy importer syntax removed.
30
+ function removeLegacyImporter(string) {
31
+ return string.replace(removeLegacyImporterRegExp, '');
32
+ }
33
+ // Returns a copy of [span] with the URL updated to remove legacy importer
34
+ // syntax.
35
+ function removeLegacyImporterFromSpan(span) {
36
+ if (!span.url)
37
+ return span;
38
+ return {
39
+ ...span,
40
+ url: new URL(removeLegacyImporter(span.url.toString()), (0, url_1.pathToFileURL)(process.cwd())),
41
+ };
42
+ }
43
+ // Converts [path] to a `file:` URL and adds the [legacyImporterProtocolPrefix]
44
+ // to the beginning so we can distinguish it from manually-specified absolute
45
+ // `file:` URLs.
46
+ function pathToLegacyFileUrl(path) {
47
+ return new URL(`${exports.legacyImporterProtocolPrefix}${(0, url_1.pathToFileURL)(path)}`);
48
+ }
49
+ // Converts a `file:` URL with [legacyImporterProtocolPrefix] to the filesystem
50
+ // path which it represents.
51
+ function legacyFileUrlToPath(url) {
52
+ assert_1.strict.equal(url.protocol, importer_1.legacyImporterFileProtocol);
53
+ const originalUrl = url
54
+ .toString()
55
+ .substring(exports.legacyImporterProtocolPrefix.length);
56
+ return (0, utils_1.fileUrlToPathCrossPlatform)(originalUrl);
57
+ }
58
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../lib/src/legacy/utils.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;;;;;AAEvC,mCAAwC;AACxC,6BAAkC;AAElC,oCAAoD;AAEpD,yCAAsD;AAEtD;;GAEG;AACU,QAAA,sBAAsB,GAAG,kBAAkB,CAAC;AAEzD;;;;;GAKG;AACU,QAAA,4BAA4B,GAAG,kBAAkB,CAAC;AAE/D,yEAAyE;AACzE,kDAAkD;AAClD,MAAM,0BAA0B,GAAG,IAAI,MAAM,CAC3C,GAAG,QAAA,sBAAsB,IAAI,QAAA,4BAA4B,EAAE,EAC3D,GAAG,CACJ,CAAC;AAEF,yEAAyE;AACzE,8BAAqC,MAAc;IACjD,OAAO,MAAM,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,0EAA0E;AAC1E,UAAU;AACV,sCAA6C,IAAgB;IAC3D,IAAI,CAAC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAC3B,OAAO;QACL,GAAG,IAAI;QACP,GAAG,EAAE,IAAI,GAAG,CACV,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EACzC,IAAA,mBAAa,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAC7B;KACF,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,6EAA6E;AAC7E,gBAAgB;AAChB,6BAAoC,IAAY;IAC9C,OAAO,IAAI,GAAG,CAAC,GAAG,QAAA,4BAA4B,GAAG,IAAA,mBAAa,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,+EAA+E;AAC/E,4BAA4B;AAC5B,6BAAoC,GAAQ;IAC1C,eAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,qCAA0B,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,GAAG;SACpB,QAAQ,EAAE;SACV,SAAS,CAAC,QAAA,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO,IAAA,kCAA0B,EAAC,WAAW,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ // Copyright 2022 Google LLC. Use of this source code is governed by an
3
+ // MIT-style license that can be found in the LICENSE file or at
4
+ // https://opensource.org/licenses/MIT.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LegacyValueBase = void 0;
7
+ /**
8
+ * A base class for legacy value types. A shared base class makes it easier to
9
+ * detect legacy values and extract their inner value objects.
10
+ */
11
+ class LegacyValueBase {
12
+ inner;
13
+ constructor(inner) {
14
+ this.inner = inner;
15
+ }
16
+ }
17
+ exports.LegacyValueBase = LegacyValueBase;
18
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../lib/src/legacy/value/base.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAIvC;;;GAGG;AACH;IACqB,KAAK;IAAxB,YAAmB,KAAQ;qBAAR,KAAK;IAAM,CAAC;CAChC"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ // Copyright 2022 Google LLC. Use of this source code is governed by an
3
+ // MIT-style license that can be found in the LICENSE file or at
4
+ // https://opensource.org/licenses/MIT.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LegacyColor = void 0;
7
+ const utils_1 = require("../../utils");
8
+ const color_1 = require("../../value/color");
9
+ const base_1 = require("./base");
10
+ class LegacyColor extends base_1.LegacyValueBase {
11
+ constructor(redOrArgb, green, blue, alpha) {
12
+ if (redOrArgb instanceof color_1.SassColor) {
13
+ super(redOrArgb);
14
+ return;
15
+ }
16
+ let red;
17
+ if ((0, utils_1.isNullOrUndefined)(green) || (0, utils_1.isNullOrUndefined)(blue)) {
18
+ const argb = redOrArgb;
19
+ alpha = (argb >> 24) / 0xff;
20
+ red = (argb >> 16) % 0x100;
21
+ green = (argb >> 8) % 0x100;
22
+ blue = argb % 0x100;
23
+ }
24
+ else {
25
+ red = redOrArgb;
26
+ }
27
+ super(new color_1.SassColor({
28
+ red: clamp(red, 0, 255),
29
+ green: clamp(green, 0, 255),
30
+ blue: clamp(blue, 0, 255),
31
+ alpha: alpha ? clamp(alpha, 0, 1) : 1,
32
+ }));
33
+ }
34
+ getR() {
35
+ return this.inner.red;
36
+ }
37
+ setR(value) {
38
+ this.inner = this.inner.change({ red: clamp(value, 0, 255) });
39
+ }
40
+ getG() {
41
+ return this.inner.green;
42
+ }
43
+ setG(value) {
44
+ this.inner = this.inner.change({ green: clamp(value, 0, 255) });
45
+ }
46
+ getB() {
47
+ return this.inner.blue;
48
+ }
49
+ setB(value) {
50
+ this.inner = this.inner.change({ blue: clamp(value, 0, 255) });
51
+ }
52
+ getA() {
53
+ return this.inner.alpha;
54
+ }
55
+ setA(value) {
56
+ this.inner = this.inner.change({ alpha: clamp(value, 0, 1) });
57
+ }
58
+ }
59
+ exports.LegacyColor = LegacyColor;
60
+ Object.defineProperty(LegacyColor, 'name', { value: 'sass.types.Color' });
61
+ // Returns `number` clamped to between `min` and `max`.
62
+ function clamp(num, min, max) {
63
+ return Math.min(Math.max(num, min), max);
64
+ }
65
+ //# sourceMappingURL=color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color.js","sourceRoot":"","sources":["../../../../../lib/src/legacy/value/color.ts"],"names":[],"mappings":"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"}