sass-embedded 1.0.0-beta.4 → 1.0.0-rc.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 (150) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/.gitignore +1 -0
  3. package/dist/lib/index.js +40 -11
  4. package/dist/lib/index.js.map +1 -1
  5. package/dist/lib/src/{embedded-compiler/compiler.js → async-compiler.js} +13 -13
  6. package/dist/lib/src/async-compiler.js.map +1 -0
  7. package/dist/lib/src/compile.js +187 -85
  8. package/dist/lib/src/compile.js.map +1 -1
  9. package/dist/lib/src/compiler-path.js +18 -0
  10. package/dist/lib/src/compiler-path.js.map +1 -0
  11. package/dist/lib/src/deprotofy-span.js +51 -0
  12. package/dist/lib/src/deprotofy-span.js.map +1 -0
  13. package/dist/lib/src/{embedded-protocol/dispatcher.js → dispatcher.js} +47 -41
  14. package/dist/lib/src/dispatcher.js.map +1 -0
  15. package/dist/lib/src/exception.js +20 -0
  16. package/dist/lib/src/exception.js.map +1 -0
  17. package/dist/lib/src/function-registry.js +92 -0
  18. package/dist/lib/src/function-registry.js.map +1 -0
  19. package/dist/lib/src/importer-registry.js +127 -0
  20. package/dist/lib/src/importer-registry.js.map +1 -0
  21. package/dist/lib/src/legacy/importer.js +186 -0
  22. package/dist/lib/src/legacy/importer.js.map +1 -0
  23. package/dist/lib/src/legacy/index.js +261 -0
  24. package/dist/lib/src/legacy/index.js.map +1 -0
  25. package/dist/lib/src/legacy/resolve-path.js +101 -0
  26. package/dist/lib/src/legacy/resolve-path.js.map +1 -0
  27. package/dist/lib/src/legacy/value/base.js +17 -0
  28. package/dist/lib/src/legacy/value/base.js.map +1 -0
  29. package/dist/lib/src/legacy/value/color.js +64 -0
  30. package/dist/lib/src/legacy/value/color.js.map +1 -0
  31. package/dist/lib/src/legacy/value/index.js +23 -0
  32. package/dist/lib/src/legacy/value/index.js.map +1 -0
  33. package/dist/lib/src/legacy/value/list.js +50 -0
  34. package/dist/lib/src/legacy/value/list.js.map +1 -0
  35. package/dist/lib/src/legacy/value/map.js +74 -0
  36. package/dist/lib/src/legacy/value/map.js.map +1 -0
  37. package/dist/lib/src/legacy/value/number.js +60 -0
  38. package/dist/lib/src/legacy/value/number.js.map +1 -0
  39. package/dist/lib/src/legacy/value/string.js +27 -0
  40. package/dist/lib/src/legacy/value/string.js.map +1 -0
  41. package/dist/lib/src/legacy/value/wrap.js +83 -0
  42. package/dist/lib/src/legacy/value/wrap.js.map +1 -0
  43. package/dist/lib/src/{embedded-protocol/message-transformer.js → message-transformer.js} +11 -10
  44. package/dist/lib/src/message-transformer.js.map +1 -0
  45. package/dist/lib/src/{embedded-compiler/packet-transformer.js → packet-transformer.js} +2 -1
  46. package/dist/lib/src/packet-transformer.js.map +1 -0
  47. package/dist/lib/src/protofier.js +272 -0
  48. package/dist/lib/src/protofier.js.map +1 -0
  49. package/dist/lib/src/{embedded-protocol/request-tracker.js → request-tracker.js} +1 -0
  50. package/dist/lib/src/request-tracker.js.map +1 -0
  51. package/dist/lib/src/sync-compiler.js +52 -0
  52. package/dist/lib/src/sync-compiler.js.map +1 -0
  53. package/dist/lib/src/{exception/span.js → sync-process/event.js} +2 -2
  54. package/dist/lib/src/sync-process/event.js.map +1 -0
  55. package/dist/lib/src/sync-process/index.js +122 -0
  56. package/dist/lib/src/sync-process/index.js.map +1 -0
  57. package/dist/lib/src/sync-process/sync-message-port.js +128 -0
  58. package/dist/lib/src/sync-process/sync-message-port.js.map +1 -0
  59. package/dist/lib/src/sync-process/worker.js +51 -0
  60. package/dist/lib/src/sync-process/worker.js.map +1 -0
  61. package/dist/lib/src/utils.js +96 -1
  62. package/dist/lib/src/utils.js.map +1 -1
  63. package/dist/lib/src/value/argument-list.js +31 -0
  64. package/dist/lib/src/value/argument-list.js.map +1 -0
  65. package/dist/lib/src/value/boolean.js +22 -5
  66. package/dist/lib/src/value/boolean.js.map +1 -1
  67. package/dist/lib/src/value/color.js +258 -0
  68. package/dist/lib/src/value/color.js.map +1 -0
  69. package/dist/lib/src/value/function.js +34 -0
  70. package/dist/lib/src/value/function.js.map +1 -0
  71. package/dist/lib/src/value/{value.js → index.js} +28 -14
  72. package/dist/lib/src/value/index.js.map +1 -0
  73. package/dist/lib/src/value/list.js +99 -0
  74. package/dist/lib/src/value/list.js.map +1 -0
  75. package/dist/lib/src/value/map.js +91 -0
  76. package/dist/lib/src/value/map.js.map +1 -0
  77. package/dist/lib/src/value/null.js +16 -3
  78. package/dist/lib/src/value/null.js.map +1 -1
  79. package/dist/lib/src/value/number.js +41 -46
  80. package/dist/lib/src/value/number.js.map +1 -1
  81. package/dist/lib/src/value/string.js +18 -12
  82. package/dist/lib/src/value/string.js.map +1 -1
  83. package/dist/lib/src/value/utils.js +27 -2
  84. package/dist/lib/src/value/utils.js.map +1 -1
  85. package/dist/lib/src/vendor/embedded-protocol/embedded_sass_pb.js +1395 -101
  86. package/dist/lib/src/vendor/embedded-protocol/embedded_sass_pb.js.map +1 -1
  87. package/dist/package.json +23 -20
  88. package/dist/tool/utils.js +50 -18
  89. package/dist/tool/utils.js.map +1 -1
  90. package/dist/types/compile.d.ts +152 -0
  91. package/dist/types/exception.d.ts +41 -0
  92. package/dist/types/importer.d.ts +294 -0
  93. package/dist/types/index.d.ts +80 -0
  94. package/dist/types/legacy/exception.d.ts +54 -0
  95. package/dist/types/legacy/function.d.ts +756 -0
  96. package/dist/types/legacy/importer.d.ts +168 -0
  97. package/dist/types/legacy/options.d.ts +642 -0
  98. package/dist/types/legacy/plugin_this.d.ts +73 -0
  99. package/dist/types/legacy/render.d.ts +139 -0
  100. package/dist/types/logger/index.d.ts +94 -0
  101. package/dist/types/logger/source_location.d.ts +21 -0
  102. package/dist/types/logger/source_span.d.ts +34 -0
  103. package/dist/types/options.d.ts +418 -0
  104. package/dist/types/util/promise_or.d.ts +17 -0
  105. package/dist/types/value/argument_list.d.ts +47 -0
  106. package/dist/types/value/boolean.d.ts +29 -0
  107. package/dist/types/value/color.d.ts +107 -0
  108. package/dist/types/value/function.d.ts +22 -0
  109. package/dist/types/value/index.d.ts +173 -0
  110. package/dist/types/value/list.d.ts +54 -0
  111. package/dist/types/value/map.d.ts +41 -0
  112. package/dist/types/value/number.d.ts +305 -0
  113. package/dist/types/value/string.d.ts +84 -0
  114. package/package.json +23 -20
  115. package/dist/lib/index.d.ts +0 -7
  116. package/dist/lib/src/compile.d.ts +0 -20
  117. package/dist/lib/src/embedded-compiler/compiler.d.ts +0 -19
  118. package/dist/lib/src/embedded-compiler/compiler.js.map +0 -1
  119. package/dist/lib/src/embedded-compiler/packet-transformer.d.ts +0 -34
  120. package/dist/lib/src/embedded-compiler/packet-transformer.js.map +0 -1
  121. package/dist/lib/src/embedded-protocol/dispatcher.d.ts +0 -60
  122. package/dist/lib/src/embedded-protocol/dispatcher.js.map +0 -1
  123. package/dist/lib/src/embedded-protocol/message-transformer.d.ts +0 -47
  124. package/dist/lib/src/embedded-protocol/message-transformer.js.map +0 -1
  125. package/dist/lib/src/embedded-protocol/request-tracker.d.ts +0 -20
  126. package/dist/lib/src/embedded-protocol/request-tracker.js.map +0 -1
  127. package/dist/lib/src/embedded-protocol/utils.d.ts +0 -7
  128. package/dist/lib/src/embedded-protocol/utils.js +0 -52
  129. package/dist/lib/src/embedded-protocol/utils.js.map +0 -1
  130. package/dist/lib/src/exception/exception.d.ts +0 -19
  131. package/dist/lib/src/exception/exception.js +0 -36
  132. package/dist/lib/src/exception/exception.js.map +0 -1
  133. package/dist/lib/src/exception/location.d.ts +0 -11
  134. package/dist/lib/src/exception/location.js +0 -6
  135. package/dist/lib/src/exception/location.js.map +0 -1
  136. package/dist/lib/src/exception/span.d.ts +0 -29
  137. package/dist/lib/src/exception/span.js.map +0 -1
  138. package/dist/lib/src/node-sass/render.d.ts +0 -60
  139. package/dist/lib/src/node-sass/render.js +0 -126
  140. package/dist/lib/src/node-sass/render.js.map +0 -1
  141. package/dist/lib/src/utils.d.ts +0 -12
  142. package/dist/lib/src/value/boolean.d.ts +0 -25
  143. package/dist/lib/src/value/null.d.ts +0 -12
  144. package/dist/lib/src/value/number.d.ts +0 -189
  145. package/dist/lib/src/value/string.d.ts +0 -56
  146. package/dist/lib/src/value/utils.d.ts +0 -36
  147. package/dist/lib/src/value/value.d.ts +0 -103
  148. package/dist/lib/src/value/value.js.map +0 -1
  149. package/dist/lib/src/vendor/embedded-protocol/embedded_sass_pb.d.ts +0 -1
  150. package/dist/tool/utils.d.ts +0 -32
@@ -0,0 +1,261 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.renderSync = exports.render = void 0;
7
+ const fs = require("fs");
8
+ const p = require("path");
9
+ const url_1 = require("url");
10
+ const exception_1 = require("../exception");
11
+ const compile_1 = require("../compile");
12
+ const utils_1 = require("../utils");
13
+ const wrap_1 = require("./value/wrap");
14
+ const importer_1 = require("./importer");
15
+ function render(options, callback) {
16
+ try {
17
+ options = adjustOptions(options);
18
+ const start = Date.now();
19
+ const compileSass = isStringOptions(options)
20
+ ? (0, compile_1.compileStringAsync)(options.data, convertStringOptions(options, false))
21
+ : (0, compile_1.compileAsync)(options.file, convertOptions(options, false));
22
+ compileSass.then(result => callback(undefined, newLegacyResult(options, start, result)), error => callback(newLegacyException(error)));
23
+ }
24
+ catch (error) {
25
+ if (error instanceof Error)
26
+ callback(newLegacyException(error));
27
+ throw error;
28
+ }
29
+ }
30
+ exports.render = render;
31
+ function renderSync(options) {
32
+ const start = Date.now();
33
+ try {
34
+ options = adjustOptions(options);
35
+ const result = isStringOptions(options)
36
+ ? (0, compile_1.compileString)(options.data, convertStringOptions(options, true))
37
+ : (0, compile_1.compile)(options.file, convertOptions(options, true));
38
+ return newLegacyResult(options, start, result);
39
+ }
40
+ catch (error) {
41
+ throw newLegacyException(error);
42
+ }
43
+ }
44
+ exports.renderSync = renderSync;
45
+ // Does some initial adjustments of `options` to make it easier to convert pass
46
+ // to the new API.
47
+ function adjustOptions(options) {
48
+ if (!('file' in options && options.file) && !('data' in options)) {
49
+ throw new Error('Either options.data or options.file must be set.');
50
+ }
51
+ if (!isStringOptions(options) &&
52
+ // The `indentedSyntax` option takes precedence over the file extension in the
53
+ // legacy API, but the new API doesn't have a `syntax` option for a file path.
54
+ // Instead, we eagerly load the entrypoint into memory and treat it like a
55
+ // string source.
56
+ (options.indentedSyntax !==
57
+ undefined ||
58
+ options.importer)) {
59
+ return {
60
+ ...options,
61
+ data: fs.readFileSync(options.file, 'utf8'),
62
+ indentedSyntax: !!options
63
+ .indentedSyntax,
64
+ };
65
+ }
66
+ else {
67
+ return options;
68
+ }
69
+ }
70
+ // Returns whether `options` is a `LegacyStringOptions`.
71
+ function isStringOptions(options) {
72
+ return 'data' in options;
73
+ }
74
+ // Converts `LegacyOptions` into new API `Options`.
75
+ function convertOptions(options, sync) {
76
+ var _a, _b, _c;
77
+ if ('outputStyle' in options &&
78
+ options.outputStyle !== 'compressed' &&
79
+ options.outputStyle !== 'expanded') {
80
+ throw new Error(`Unknown output style: "${options.outputStyle}"`);
81
+ }
82
+ const self = pluginThis(options);
83
+ const functions = {};
84
+ for (let [signature, callback] of Object.entries((_a = options.functions) !== null && _a !== void 0 ? _a : {})) {
85
+ // The legacy API allows signatures without parentheses but the modern API
86
+ // does not.
87
+ if (!signature.includes('('))
88
+ signature += '()';
89
+ functions[signature] = (0, wrap_1.wrapFunction)(self, callback, sync);
90
+ }
91
+ const importers = options.importer
92
+ ? [
93
+ new importer_1.LegacyImporterWrapper(self, options.importer instanceof Array
94
+ ? options.importer
95
+ : [options.importer], (_b = options.includePaths) !== null && _b !== void 0 ? _b : [], (_c = options.file) !== null && _c !== void 0 ? _c : 'stdin', sync),
96
+ ]
97
+ : undefined;
98
+ return {
99
+ functions,
100
+ importers,
101
+ sourceMap: wasSourceMapRequested(options),
102
+ loadPaths: importers ? undefined : options.includePaths,
103
+ style: options.outputStyle,
104
+ quietDeps: options.quietDeps,
105
+ verbose: options.verbose,
106
+ logger: options.logger,
107
+ };
108
+ }
109
+ // Converts `LegacyStringOptions` into new API `StringOptions`.
110
+ function convertStringOptions(options, sync) {
111
+ const modernOptions = convertOptions(options, sync);
112
+ return {
113
+ ...modernOptions,
114
+ url: options.file ? (0, url_1.pathToFileURL)(options.file) : undefined,
115
+ importer: modernOptions.importers ? modernOptions.importers[0] : undefined,
116
+ syntax: options.indentedSyntax ? 'indented' : 'scss',
117
+ };
118
+ }
119
+ // Determines whether a sourceMap was requested by the call to `render()`.
120
+ function wasSourceMapRequested(options) {
121
+ return (typeof options.sourceMap === 'string' ||
122
+ (options.sourceMap === true && !!options.outFile));
123
+ }
124
+ // Creates the `this` value that's used for callbacks.
125
+ function pluginThis(options) {
126
+ var _a, _b;
127
+ const pluginThis = {
128
+ options: {
129
+ context: undefined,
130
+ file: options.file,
131
+ data: options.data,
132
+ includePaths: [process.cwd(), ...((_a = options.includePaths) !== null && _a !== void 0 ? _a : [])].join(p.delimiter),
133
+ precision: 10,
134
+ style: 1,
135
+ indentType: 0,
136
+ indentWidth: 2,
137
+ linefeed: '\n',
138
+ result: {
139
+ stats: {
140
+ start: Date.now(),
141
+ entry: (_b = options.file) !== null && _b !== void 0 ? _b : 'data',
142
+ },
143
+ },
144
+ },
145
+ };
146
+ pluginThis.options.context = pluginThis;
147
+ return pluginThis;
148
+ }
149
+ // Transforms the compilation result into an object that mimics the Node Sass
150
+ // API format.
151
+ function newLegacyResult(options, start, result) {
152
+ var _a, _b;
153
+ const end = Date.now();
154
+ let css = result.css;
155
+ let sourceMapBytes;
156
+ if (result.sourceMap) {
157
+ const sourceMap = result.sourceMap;
158
+ sourceMap.sourceRoot = (_a = options.sourceMapRoot) !== null && _a !== void 0 ? _a : '';
159
+ const sourceMapPath = typeof options.sourceMap === 'string'
160
+ ? options.sourceMap
161
+ : options.outFile + '.map';
162
+ const sourceMapDir = p.dirname(sourceMapPath);
163
+ if (options.outFile) {
164
+ sourceMap.file = (0, utils_1.pathToUrlString)(p.relative(sourceMapDir, options.outFile));
165
+ }
166
+ else if (options.file) {
167
+ sourceMap.file = (0, utils_1.pathToUrlString)((0, utils_1.withoutExtension)(options.file) + '.css');
168
+ }
169
+ else {
170
+ sourceMap.file = 'stdin.css';
171
+ }
172
+ sourceMap.sources = sourceMap.sources.map(source => {
173
+ if (source.startsWith('file://')) {
174
+ return (0, utils_1.pathToUrlString)(p.relative(sourceMapDir, (0, utils_1.fileUrlToPathCrossPlatform)(source)));
175
+ }
176
+ else if (source.startsWith('data:')) {
177
+ return 'stdin';
178
+ }
179
+ else {
180
+ return source;
181
+ }
182
+ });
183
+ sourceMapBytes = Buffer.from(JSON.stringify(sourceMap));
184
+ if (!options.omitSourceMapUrl) {
185
+ let url;
186
+ if (options.sourceMapEmbed) {
187
+ url = `data:application/json;base64,${sourceMapBytes.toString('base64')}`;
188
+ }
189
+ else if (options.outFile) {
190
+ url = (0, utils_1.pathToUrlString)(p.relative(p.dirname(options.outFile), sourceMapPath));
191
+ }
192
+ else {
193
+ url = (0, utils_1.pathToUrlString)(sourceMapPath);
194
+ }
195
+ css += `\n\n/*# sourceMappingURL=${url} */`;
196
+ }
197
+ }
198
+ return {
199
+ css: Buffer.from(css),
200
+ map: sourceMapBytes,
201
+ stats: {
202
+ entry: (_b = options.file) !== null && _b !== void 0 ? _b : 'data',
203
+ start,
204
+ end,
205
+ duration: end - start,
206
+ includedFiles: result.loadedUrls
207
+ .filter(url => url.protocol !== importer_1.endOfLoadProtocol)
208
+ .map(url => {
209
+ if (url.protocol === 'file:') {
210
+ return (0, utils_1.fileUrlToPathCrossPlatform)(url);
211
+ }
212
+ else if (url.protocol === importer_1.legacyImporterProtocol) {
213
+ return decodeURI(url.pathname);
214
+ }
215
+ else {
216
+ return url.toString();
217
+ }
218
+ }),
219
+ },
220
+ };
221
+ }
222
+ // Decorates an Error with additional fields so that it behaves like a Node Sass
223
+ // error.
224
+ function newLegacyException(error) {
225
+ var _a, _b, _c;
226
+ if (!(error instanceof exception_1.Exception)) {
227
+ return Object.assign(error, {
228
+ formatted: error.toString(),
229
+ status: 3,
230
+ });
231
+ }
232
+ let file;
233
+ if (!((_a = error.span) === null || _a === void 0 ? void 0 : _a.url)) {
234
+ file = 'stdin';
235
+ }
236
+ else if (error.span.url.protocol === 'file:') {
237
+ // We have to cast to Node's URL type here because the specified type is the
238
+ // standard URL type which is slightly less featureful. `fileURLToPath()`
239
+ // does work with standard URL objects in practice, but we know that we
240
+ // generate Node URLs here regardless.
241
+ file = (0, utils_1.fileUrlToPathCrossPlatform)(error.span.url);
242
+ }
243
+ else {
244
+ file = error.span.url.toString();
245
+ }
246
+ return Object.assign(new Error(), {
247
+ status: 1,
248
+ message: error.toString().replace(/^Error: /, ''),
249
+ formatted: error.toString(),
250
+ toString: () => error.toString(),
251
+ stack: error.stack,
252
+ line: (0, utils_1.isNullOrUndefined)((_b = error.span) === null || _b === void 0 ? void 0 : _b.start.line)
253
+ ? undefined
254
+ : error.span.start.line + 1,
255
+ column: (0, utils_1.isNullOrUndefined)((_c = error.span) === null || _c === void 0 ? void 0 : _c.start.column)
256
+ ? undefined
257
+ : error.span.start.column + 1,
258
+ file,
259
+ });
260
+ }
261
+ //# 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,101 @@
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.resolvePath = void 0;
7
+ const fs = require("fs");
8
+ const p = require("path");
9
+ /**
10
+ * Resolves a path using the same logic as the filesystem importer.
11
+ *
12
+ * This tries to fill in extensions and partial prefixes and check for a
13
+ * directory default. If no file can be found, it returns `null`.
14
+ */
15
+ function resolvePath(path, fromImport) {
16
+ var _a, _b, _c;
17
+ const extension = p.extname(path);
18
+ if (extension === '.sass' || extension === '.scss' || extension === '.css') {
19
+ return ((_a = (fromImport
20
+ ? exactlyOne(tryPath(`${withoutExtension(path)}.import${extension}`))
21
+ : null)) !== null && _a !== void 0 ? _a : exactlyOne(tryPath(path)));
22
+ }
23
+ return ((_c = (_b = (fromImport ? exactlyOne(tryPathWithExtensions(`${path}.import`)) : null)) !== null && _b !== void 0 ? _b : exactlyOne(tryPathWithExtensions(path))) !== null && _c !== void 0 ? _c : tryPathAsDirectory(path, fromImport));
24
+ }
25
+ exports.resolvePath = resolvePath;
26
+ // Like `tryPath`, but checks `.sass`, `.scss`, and `.css` extensions.
27
+ function tryPathWithExtensions(path) {
28
+ const result = [...tryPath(path + '.sass'), ...tryPath(path + '.scss')];
29
+ return result.length > 0 ? result : tryPath(path + '.css');
30
+ }
31
+ // Returns the `path` and/or the partial with the same name, if either or both
32
+ // exists. If neither exists, returns an empty list.
33
+ function tryPath(path) {
34
+ const partial = p.join(p.dirname(path), `_${p.basename(path)}`);
35
+ const result = [];
36
+ if (fileExists(partial))
37
+ result.push(partial);
38
+ if (fileExists(path))
39
+ result.push(path);
40
+ return result;
41
+ }
42
+ // Returns the resolved index file for `path` if `path` is a directory and the
43
+ // index file exists. Otherwise, returns `null`.
44
+ function tryPathAsDirectory(path, fromImport) {
45
+ var _a;
46
+ if (!dirExists(path))
47
+ return null;
48
+ return ((_a = (fromImport
49
+ ? exactlyOne(tryPathWithExtensions(p.join(path, 'index.import')))
50
+ : null)) !== null && _a !== void 0 ? _a : exactlyOne(tryPathWithExtensions(p.join(path, 'index'))));
51
+ }
52
+ // If `paths` contains exactly one path, returns that path. If it contains no
53
+ // paths, returns `null`. If it contains more than one, throws an exception.
54
+ function exactlyOne(paths) {
55
+ if (paths.length === 0)
56
+ return null;
57
+ if (paths.length === 1)
58
+ return paths[0];
59
+ throw new Error("It's not clear which file to import. Found:\n" +
60
+ paths.map(path => ' ' + path).join('\n'));
61
+ }
62
+ // Returns whether or not a file (not a directory) exists at `path`.
63
+ function fileExists(path) {
64
+ // `existsSync()` is faster than `statSync()`, but it doesn't clarify whether
65
+ // the entity in question is a file or a directory. Since false negatives are
66
+ // much more common than false positives, it works out in our favor to check
67
+ // this first.
68
+ if (!fs.existsSync(path))
69
+ return false;
70
+ try {
71
+ return fs.statSync(path).isFile();
72
+ }
73
+ catch (error) {
74
+ if (error.code === 'ENOENT')
75
+ return false;
76
+ throw error;
77
+ }
78
+ }
79
+ // Returns whether or not a directory (not a file) exists at `path`.
80
+ function dirExists(path) {
81
+ // `existsSync()` is faster than `statSync()`, but it doesn't clarify whether
82
+ // the entity in question is a file or a directory. Since false negatives are
83
+ // much more common than false positives, it works out in our favor to check
84
+ // this first.
85
+ if (!fs.existsSync(path))
86
+ return false;
87
+ try {
88
+ return fs.statSync(path).isDirectory();
89
+ }
90
+ catch (error) {
91
+ if (error.code === 'ENOENT')
92
+ return false;
93
+ throw error;
94
+ }
95
+ }
96
+ // Returns `path` without its file extension.
97
+ function withoutExtension(path) {
98
+ const extension = p.extname(path);
99
+ return path.substring(0, path.length - extension.length);
100
+ }
101
+ //# 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,yBAAyB;AACzB,0BAA0B;AAE1B;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,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;QAC1E,OAAO,CACL,MAAA,CAAC,UAAU;YACT,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,SAAS,EAAE,CAAC,CAAC;YACrE,CAAC,CAAC,IAAI,CAAC,mCAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CACvC,CAAC;KACH;IAED,OAAO,CACL,MAAA,MAAA,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,mCACzE,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,mCACvC,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,CACrC,CAAC;AACJ,CAAC;AAfD,kCAeC;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,MAAA,CAAC,UAAU;QACT,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,IAAI,CAAC,mCAAI,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;QACF,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;KACnC;IAAC,OAAO,KAAc,EAAE;QACvB,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACrE,MAAM,KAAK,CAAC;KACb;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;QACF,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;KACxC;IAAC,OAAO,KAAc,EAAE;QACvB,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACrE,MAAM,KAAK,CAAC;KACb;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,17 @@
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
+ constructor(inner) {
13
+ this.inner = inner;
14
+ }
15
+ }
16
+ exports.LegacyValueBase = LegacyValueBase;
17
+ //# 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,MAAa,eAAe;IAC1B,YAAmB,KAAQ;QAAR,UAAK,GAAL,KAAK,CAAG;IAAG,CAAC;CAChC;AAFD,0CAEC"}
@@ -0,0 +1,64 @@
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 color_1 = require("../../value/color");
8
+ const base_1 = require("./base");
9
+ class LegacyColor extends base_1.LegacyValueBase {
10
+ constructor(redOrArgb, green, blue, alpha) {
11
+ if (redOrArgb instanceof color_1.SassColor) {
12
+ super(redOrArgb);
13
+ return;
14
+ }
15
+ let red;
16
+ if (!green || !blue) {
17
+ const argb = redOrArgb;
18
+ alpha = (argb >> 24) / 0xff;
19
+ red = (argb >> 16) % 0x100;
20
+ green = (argb >> 8) % 0x100;
21
+ blue = argb % 0x100;
22
+ }
23
+ else {
24
+ red = redOrArgb;
25
+ }
26
+ super(new color_1.SassColor({
27
+ red: clamp(red, 0, 255),
28
+ green: clamp(green, 0, 255),
29
+ blue: clamp(blue, 0, 255),
30
+ alpha: alpha ? clamp(alpha, 0, 1) : 1,
31
+ }));
32
+ }
33
+ getR() {
34
+ return this.inner.red;
35
+ }
36
+ setR(value) {
37
+ this.inner = this.inner.change({ red: clamp(value, 0, 255) });
38
+ }
39
+ getG() {
40
+ return this.inner.green;
41
+ }
42
+ setG(value) {
43
+ this.inner = this.inner.change({ green: clamp(value, 0, 255) });
44
+ }
45
+ getB() {
46
+ return this.inner.blue;
47
+ }
48
+ setB(value) {
49
+ this.inner = this.inner.change({ blue: clamp(value, 0, 255) });
50
+ }
51
+ getA() {
52
+ return this.inner.alpha;
53
+ }
54
+ setA(value) {
55
+ this.inner = this.inner.change({ alpha: clamp(value, 0, 1) });
56
+ }
57
+ }
58
+ exports.LegacyColor = LegacyColor;
59
+ Object.defineProperty(LegacyColor, 'name', { value: 'sass.types.Color' });
60
+ // Returns `number` clamped to between `min` and `max`.
61
+ function clamp(num, min, max) {
62
+ return Math.min(Math.max(num, min), max);
63
+ }
64
+ //# 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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"}
@@ -0,0 +1,23 @@
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.Error = exports.String = exports.Number = exports.Null = exports.Map = exports.List = exports.Color = exports.Boolean = void 0;
7
+ const boolean_1 = require("../../value/boolean");
8
+ const null_1 = require("../../value/null");
9
+ const color_1 = require("./color");
10
+ const list_1 = require("./list");
11
+ const map_1 = require("./map");
12
+ const number_1 = require("./number");
13
+ const string_1 = require("./string");
14
+ exports.Boolean = boolean_1.SassBooleanInternal;
15
+ exports.Color = color_1.LegacyColor;
16
+ exports.List = list_1.LegacyList;
17
+ exports.Map = map_1.LegacyMap;
18
+ exports.Null = null_1.SassNull;
19
+ exports.Number = number_1.LegacyNumber;
20
+ exports.String = string_1.LegacyString;
21
+ // For the `sass.types.Error` object, we just re-export the native Error class.
22
+ exports.Error = global.Error;
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lib/src/legacy/value/index.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC,iDAAwD;AACxD,2CAA0C;AAC1C,mCAAoC;AACpC,iCAAkC;AAClC,+BAAgC;AAChC,qCAAsC;AACtC,qCAAsC;AAEzB,QAAA,OAAO,GAAG,6BAAmB,CAAC;AAC9B,QAAA,KAAK,GAAG,mBAAW,CAAC;AACpB,QAAA,IAAI,GAAG,iBAAU,CAAC;AAClB,QAAA,GAAG,GAAG,eAAS,CAAC;AAChB,QAAA,IAAI,GAAG,eAAQ,CAAC;AAChB,QAAA,MAAM,GAAG,qBAAY,CAAC;AACtB,QAAA,MAAM,GAAG,qBAAY,CAAC;AAEnC,+EAA+E;AAClE,QAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC"}
@@ -0,0 +1,50 @@
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.LegacyList = void 0;
7
+ const base_1 = require("./base");
8
+ const list_1 = require("../../value/list");
9
+ const null_1 = require("../../value/null");
10
+ const wrap_1 = require("./wrap");
11
+ class LegacyList extends base_1.LegacyValueBase {
12
+ constructor(lengthOrInner, commaSeparator) {
13
+ if (lengthOrInner instanceof list_1.SassList) {
14
+ super(lengthOrInner);
15
+ return;
16
+ }
17
+ super(new list_1.SassList(new Array(lengthOrInner).fill(null_1.sassNull), {
18
+ separator: commaSeparator === false ? ' ' : ',',
19
+ }));
20
+ }
21
+ getValue(index) {
22
+ const length = this.inner.asList.size;
23
+ if (index < 0 || index >= length) {
24
+ throw new Error(`Invalid index ${index}, must be between 0 and ${length}`);
25
+ }
26
+ const value = this.inner.get(index);
27
+ return value ? (0, wrap_1.wrapValue)(value) : undefined;
28
+ }
29
+ setValue(index, value) {
30
+ this.inner = new list_1.SassList(this.inner.asList.set(index, (0, wrap_1.unwrapValue)(value)), {
31
+ separator: this.inner.separator,
32
+ brackets: this.inner.hasBrackets,
33
+ });
34
+ }
35
+ getSeparator() {
36
+ return this.inner.separator === ',';
37
+ }
38
+ setSeparator(isComma) {
39
+ this.inner = new list_1.SassList(this.inner.asList, {
40
+ separator: isComma ? ',' : ' ',
41
+ brackets: this.inner.hasBrackets,
42
+ });
43
+ }
44
+ getLength() {
45
+ return this.inner.asList.size;
46
+ }
47
+ }
48
+ exports.LegacyList = LegacyList;
49
+ Object.defineProperty(LegacyList, 'name', { value: 'sass.types.List' });
50
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../lib/src/legacy/value/list.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC,iCAAuC;AAEvC,2CAA0C;AAC1C,2CAA0C;AAC1C,iCAA8C;AAE9C,MAAa,UAAW,SAAQ,sBAAyB;IAIvD,YAAY,aAAgC,EAAE,cAAwB;QACpE,IAAI,aAAa,YAAY,eAAQ,EAAE;YACrC,KAAK,CAAC,aAAa,CAAC,CAAC;YACrB,OAAO;SACR;QAED,KAAK,CACH,IAAI,eAAQ,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,eAAQ,CAAC,EAAE;YACpD,SAAS,EAAE,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;SAChD,CAAC,CACH,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;QACtC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,MAAM,EAAE;YAChC,MAAM,IAAI,KAAK,CACb,iBAAiB,KAAK,2BAA2B,MAAM,EAAE,CAC1D,CAAC;SACH;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpC,OAAO,KAAK,CAAC,CAAC,CAAC,IAAA,gBAAS,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9C,CAAC;IAED,QAAQ,CAAC,KAAa,EAAE,KAAkB;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,eAAQ,CACvB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAA,kBAAW,EAAC,KAAK,CAAC,CAAC,EAChD;YACE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC/B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;SACjC,CACF,CAAC;IACJ,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,GAAG,CAAC;IACtC,CAAC;IAED,YAAY,CAAC,OAAgB;QAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,eAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAC3C,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;YAC9B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;SACjC,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;IAChC,CAAC;CACF;AApDD,gCAoDC;AAED,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,EAAC,KAAK,EAAE,iBAAiB,EAAC,CAAC,CAAC"}
@@ -0,0 +1,74 @@
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.LegacyMap = void 0;
7
+ const immutable_1 = require("immutable");
8
+ const base_1 = require("./base");
9
+ const map_1 = require("../../value/map");
10
+ const number_1 = require("../../value/number");
11
+ const null_1 = require("../../value/null");
12
+ const wrap_1 = require("./wrap");
13
+ class LegacyMap extends base_1.LegacyValueBase {
14
+ constructor(lengthOrInner) {
15
+ if (lengthOrInner instanceof map_1.SassMap) {
16
+ super(lengthOrInner);
17
+ return;
18
+ }
19
+ super(new map_1.SassMap((0, immutable_1.OrderedMap)(Array.from({ length: lengthOrInner }, (_, i) => [
20
+ new number_1.SassNumber(i),
21
+ null_1.sassNull,
22
+ ]))));
23
+ }
24
+ getValue(index) {
25
+ const value = this.inner.contents.valueSeq().get(index);
26
+ if (index < 0 || !value) {
27
+ throw new Error(`Invalid index ${index}, must be between 0 and ` +
28
+ this.inner.contents.size);
29
+ }
30
+ return (0, wrap_1.wrapValue)(value);
31
+ }
32
+ setValue(index, value) {
33
+ this.inner = new map_1.SassMap(this.inner.contents.set(this.getUnwrappedKey(index), (0, wrap_1.unwrapValue)(value)));
34
+ }
35
+ getKey(index) {
36
+ return (0, wrap_1.wrapValue)(this.getUnwrappedKey(index));
37
+ }
38
+ // Like `getKey()`, but returns the unwrapped non-legacy value.
39
+ getUnwrappedKey(index) {
40
+ const key = this.inner.contents.keySeq().get(index);
41
+ if (index >= 0 && key)
42
+ return key;
43
+ throw new Error(`Invalid index ${index}, must be between 0 and ` +
44
+ this.inner.contents.size);
45
+ }
46
+ setKey(index, key) {
47
+ const oldMap = this.inner.contents;
48
+ if (index < 0 || index >= oldMap.size) {
49
+ throw new Error(`Invalid index ${index}, must be between 0 and ${oldMap.size}`);
50
+ }
51
+ const newKey = (0, wrap_1.unwrapValue)(key);
52
+ const newMap = (0, immutable_1.OrderedMap)().asMutable();
53
+ let i = 0;
54
+ for (const [oldKey, oldValue] of oldMap.entries()) {
55
+ if (i === index) {
56
+ newMap.set(newKey, oldValue);
57
+ }
58
+ else {
59
+ if (newKey.equals(oldKey)) {
60
+ throw new Error(`${key} is already in the map`);
61
+ }
62
+ newMap.set(oldKey, oldValue);
63
+ }
64
+ i++;
65
+ }
66
+ this.inner = new map_1.SassMap(newMap.asImmutable());
67
+ }
68
+ getLength() {
69
+ return this.inner.contents.size;
70
+ }
71
+ }
72
+ exports.LegacyMap = LegacyMap;
73
+ Object.defineProperty(LegacyMap, 'name', { value: 'sass.types.Map' });
74
+ //# sourceMappingURL=map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../../../../lib/src/legacy/value/map.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC,yCAAqC;AAErC,iCAAuC;AAEvC,yCAAwC;AACxC,+CAA8C;AAE9C,2CAA0C;AAC1C,iCAA8C;AAE9C,MAAa,SAAU,SAAQ,sBAAwB;IACrD,YAAY,aAA+B;QACzC,IAAI,aAAa,YAAY,aAAO,EAAE;YACpC,KAAK,CAAC,aAAa,CAAC,CAAC;YACrB,OAAO;SACR;QAED,KAAK,CACH,IAAI,aAAO,CACT,IAAA,sBAAU,EACR,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,aAAa,EAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,IAAI,mBAAU,CAAC,CAAC,CAAC;YACjB,eAAQ;SACT,CAAC,CACH,CACF,CACF,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxD,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACvB,MAAM,IAAI,KAAK,CACb,iBAAiB,KAAK,0BAA0B;gBAC9C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAC3B,CAAC;SACH;QAED,OAAO,IAAA,gBAAS,EAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,QAAQ,CAAC,KAAa,EAAE,KAAkB;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,aAAO,CACtB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,IAAA,kBAAW,EAAC,KAAK,CAAC,CAAC,CACzE,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,OAAO,IAAA,gBAAS,EAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,+DAA+D;IACvD,eAAe,CAAC,KAAa;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,iBAAiB,KAAK,0BAA0B;YAC9C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAC3B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAa,EAAE,GAAgB;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QACnC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,MAAM,CAAC,IAAI,EAAE;YACrC,MAAM,IAAI,KAAK,CACb,iBAAiB,KAAK,2BAA2B,MAAM,CAAC,IAAI,EAAE,CAC/D,CAAC;SACH;QAED,MAAM,MAAM,GAAG,IAAA,kBAAW,EAAC,GAAG,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,IAAA,sBAAU,GAAgB,CAAC,SAAS,EAAE,CAAC;QAEtD,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE;YACjD,IAAI,CAAC,KAAK,KAAK,EAAE;gBACf,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;aAC9B;iBAAM;gBACL,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;oBACzB,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,wBAAwB,CAAC,CAAC;iBACjD;gBACD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;aAC9B;YACD,CAAC,EAAE,CAAC;SACL;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,aAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;IAClC,CAAC;CACF;AAjFD,8BAiFC;AAED,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAC,KAAK,EAAE,gBAAgB,EAAC,CAAC,CAAC"}