sass-embedded 1.0.0-beta.5 → 1.49.7

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 (153) hide show
  1. package/CHANGELOG.md +2379 -22
  2. package/README.md +95 -9
  3. package/dist/.gitignore +1 -1
  4. package/dist/lib/index.js +34 -12
  5. package/dist/lib/index.js.map +1 -1
  6. package/dist/lib/src/{embedded-compiler/compiler.js → async-compiler.js} +9 -17
  7. package/dist/lib/src/async-compiler.js.map +1 -0
  8. package/dist/lib/src/compile.js +186 -96
  9. package/dist/lib/src/compile.js.map +1 -1
  10. package/dist/lib/src/compiler-path.js +18 -0
  11. package/dist/lib/src/compiler-path.js.map +1 -0
  12. package/dist/lib/src/{embedded-protocol/utils.js → deprotofy-span.js} +16 -18
  13. package/dist/lib/src/deprotofy-span.js.map +1 -0
  14. package/dist/lib/src/{embedded-protocol/dispatcher.js → dispatcher.js} +45 -40
  15. package/dist/lib/src/dispatcher.js.map +1 -0
  16. package/dist/lib/src/exception.js +20 -0
  17. package/dist/lib/src/exception.js.map +1 -0
  18. package/dist/lib/src/function-registry.js +92 -0
  19. package/dist/lib/src/function-registry.js.map +1 -0
  20. package/dist/lib/src/importer-registry.js +127 -0
  21. package/dist/lib/src/importer-registry.js.map +1 -0
  22. package/dist/lib/src/legacy/importer.js +186 -0
  23. package/dist/lib/src/legacy/importer.js.map +1 -0
  24. package/dist/lib/src/legacy/index.js +262 -0
  25. package/dist/lib/src/legacy/index.js.map +1 -0
  26. package/dist/lib/src/legacy/resolve-path.js +101 -0
  27. package/dist/lib/src/legacy/resolve-path.js.map +1 -0
  28. package/dist/lib/src/legacy/value/base.js +17 -0
  29. package/dist/lib/src/legacy/value/base.js.map +1 -0
  30. package/dist/lib/src/legacy/value/color.js +64 -0
  31. package/dist/lib/src/legacy/value/color.js.map +1 -0
  32. package/dist/lib/src/legacy/value/index.js +23 -0
  33. package/dist/lib/src/legacy/value/index.js.map +1 -0
  34. package/dist/lib/src/legacy/value/list.js +50 -0
  35. package/dist/lib/src/legacy/value/list.js.map +1 -0
  36. package/dist/lib/src/legacy/value/map.js +74 -0
  37. package/dist/lib/src/legacy/value/map.js.map +1 -0
  38. package/dist/lib/src/legacy/value/number.js +60 -0
  39. package/dist/lib/src/legacy/value/number.js.map +1 -0
  40. package/dist/lib/src/legacy/value/string.js +27 -0
  41. package/dist/lib/src/legacy/value/string.js.map +1 -0
  42. package/dist/lib/src/legacy/value/wrap.js +83 -0
  43. package/dist/lib/src/legacy/value/wrap.js.map +1 -0
  44. package/dist/lib/src/{embedded-protocol/message-transformer.js → message-transformer.js} +2 -2
  45. package/dist/lib/src/message-transformer.js.map +1 -0
  46. package/dist/lib/src/{embedded-compiler/packet-transformer.js → packet-transformer.js} +0 -0
  47. package/dist/lib/src/packet-transformer.js.map +1 -0
  48. package/dist/lib/src/protofier.js +272 -0
  49. package/dist/lib/src/protofier.js.map +1 -0
  50. package/dist/lib/src/{embedded-protocol/request-tracker.js → request-tracker.js} +0 -0
  51. package/dist/lib/src/request-tracker.js.map +1 -0
  52. package/dist/lib/src/sync-compiler.js +52 -0
  53. package/dist/lib/src/sync-compiler.js.map +1 -0
  54. package/dist/lib/src/{exception/span.js → sync-process/event.js} +2 -2
  55. package/dist/lib/src/sync-process/event.js.map +1 -0
  56. package/dist/lib/src/sync-process/index.js +122 -0
  57. package/dist/lib/src/sync-process/index.js.map +1 -0
  58. package/dist/lib/src/sync-process/sync-message-port.js +128 -0
  59. package/dist/lib/src/sync-process/sync-message-port.js.map +1 -0
  60. package/dist/lib/src/sync-process/worker.js +51 -0
  61. package/dist/lib/src/sync-process/worker.js.map +1 -0
  62. package/dist/lib/src/utils.js +79 -1
  63. package/dist/lib/src/utils.js.map +1 -1
  64. package/dist/lib/src/value/argument-list.js +31 -0
  65. package/dist/lib/src/value/argument-list.js.map +1 -0
  66. package/dist/lib/src/value/boolean.js +20 -4
  67. package/dist/lib/src/value/boolean.js.map +1 -1
  68. package/dist/lib/src/value/color.js +89 -98
  69. package/dist/lib/src/value/color.js.map +1 -1
  70. package/dist/lib/src/value/function.js +34 -0
  71. package/dist/lib/src/value/function.js.map +1 -0
  72. package/dist/lib/src/value/{value.js → index.js} +5 -1
  73. package/dist/lib/src/value/index.js.map +1 -0
  74. package/dist/lib/src/value/list.js +15 -18
  75. package/dist/lib/src/value/list.js.map +1 -1
  76. package/dist/lib/src/value/map.js +17 -10
  77. package/dist/lib/src/value/map.js.map +1 -1
  78. package/dist/lib/src/value/null.js +15 -3
  79. package/dist/lib/src/value/null.js.map +1 -1
  80. package/dist/lib/src/value/number.js +20 -26
  81. package/dist/lib/src/value/number.js.map +1 -1
  82. package/dist/lib/src/value/string.js +14 -9
  83. package/dist/lib/src/value/string.js.map +1 -1
  84. package/dist/lib/src/value/utils.js +7 -1
  85. package/dist/lib/src/value/utils.js.map +1 -1
  86. package/dist/lib/src/vendor/embedded-protocol/embedded_sass_pb.js +1438 -121
  87. package/dist/lib/src/vendor/embedded-protocol/embedded_sass_pb.js.map +1 -1
  88. package/dist/package.json +6 -4
  89. package/dist/tool/utils.js +47 -16
  90. package/dist/tool/utils.js.map +1 -1
  91. package/dist/types/compile.d.ts +152 -0
  92. package/dist/types/exception.d.ts +41 -0
  93. package/dist/types/importer.d.ts +294 -0
  94. package/dist/types/index.d.ts +80 -0
  95. package/dist/types/legacy/exception.d.ts +54 -0
  96. package/dist/types/legacy/function.d.ts +756 -0
  97. package/dist/types/legacy/importer.d.ts +168 -0
  98. package/dist/types/legacy/options.d.ts +642 -0
  99. package/dist/types/legacy/plugin_this.d.ts +73 -0
  100. package/dist/types/legacy/render.d.ts +139 -0
  101. package/dist/types/logger/index.d.ts +94 -0
  102. package/dist/types/logger/source_location.d.ts +21 -0
  103. package/dist/types/logger/source_span.d.ts +34 -0
  104. package/dist/types/options.d.ts +418 -0
  105. package/dist/types/util/promise_or.d.ts +17 -0
  106. package/dist/types/value/argument_list.d.ts +47 -0
  107. package/dist/types/value/boolean.d.ts +29 -0
  108. package/dist/types/value/color.d.ts +107 -0
  109. package/dist/types/value/function.d.ts +22 -0
  110. package/dist/types/value/index.d.ts +173 -0
  111. package/dist/types/value/list.d.ts +54 -0
  112. package/dist/types/value/map.d.ts +41 -0
  113. package/dist/types/value/number.d.ts +305 -0
  114. package/dist/types/value/string.d.ts +84 -0
  115. package/package.json +6 -4
  116. package/dist/lib/index.d.ts +0 -10
  117. package/dist/lib/src/compile.d.ts +0 -22
  118. package/dist/lib/src/embedded-compiler/compiler.d.ts +0 -19
  119. package/dist/lib/src/embedded-compiler/compiler.js.map +0 -1
  120. package/dist/lib/src/embedded-compiler/packet-transformer.d.ts +0 -34
  121. package/dist/lib/src/embedded-compiler/packet-transformer.js.map +0 -1
  122. package/dist/lib/src/embedded-protocol/dispatcher.d.ts +0 -60
  123. package/dist/lib/src/embedded-protocol/dispatcher.js.map +0 -1
  124. package/dist/lib/src/embedded-protocol/message-transformer.d.ts +0 -47
  125. package/dist/lib/src/embedded-protocol/message-transformer.js.map +0 -1
  126. package/dist/lib/src/embedded-protocol/request-tracker.d.ts +0 -20
  127. package/dist/lib/src/embedded-protocol/request-tracker.js.map +0 -1
  128. package/dist/lib/src/embedded-protocol/utils.d.ts +0 -7
  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 -37
  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 -61
  139. package/dist/lib/src/node-sass/render.js +0 -127
  140. package/dist/lib/src/node-sass/render.js.map +0 -1
  141. package/dist/lib/src/utils.d.ts +0 -16
  142. package/dist/lib/src/value/boolean.d.ts +0 -25
  143. package/dist/lib/src/value/color.d.ts +0 -89
  144. package/dist/lib/src/value/list.d.ts +0 -41
  145. package/dist/lib/src/value/map.d.ts +0 -26
  146. package/dist/lib/src/value/null.d.ts +0 -12
  147. package/dist/lib/src/value/number.d.ts +0 -189
  148. package/dist/lib/src/value/string.d.ts +0 -56
  149. package/dist/lib/src/value/utils.d.ts +0 -44
  150. package/dist/lib/src/value/value.d.ts +0 -108
  151. package/dist/lib/src/value/value.js.map +0 -1
  152. package/dist/lib/src/vendor/embedded-protocol/embedded_sass_pb.d.ts +0 -1
  153. package/dist/tool/utils.d.ts +0 -32
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ // Copyright 2021 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
+ const worker_threads_1 = require("worker_threads");
7
+ const child_process_1 = require("child_process");
8
+ const assert_1 = require("assert");
9
+ const sync_message_port_1 = require("./sync-message-port");
10
+ const port = new sync_message_port_1.SyncMessagePort(worker_threads_1.workerData.port);
11
+ /** A more type-safe way to call `port.postMesage()` */
12
+ function emit(event, transferList) {
13
+ port.postMessage(event, transferList);
14
+ }
15
+ const process = (0, child_process_1.spawn)(worker_threads_1.workerData.command, worker_threads_1.workerData.args, worker_threads_1.workerData.options);
16
+ port.on('message', message => {
17
+ if (message.type === 'stdin') {
18
+ process.stdin.write(message.data);
19
+ }
20
+ else if (message.type === 'stdinClosed') {
21
+ process.stdin.end();
22
+ }
23
+ else {
24
+ assert_1.strict.equal(message.type, 'kill');
25
+ process.kill(message.signal);
26
+ }
27
+ });
28
+ process.stdout.on('data', data => {
29
+ emit({ type: 'stdout', data }, [data.buffer]);
30
+ });
31
+ process.stderr.on('data', data => {
32
+ emit({ type: 'stderr', data }, [data.buffer]);
33
+ });
34
+ process.on('error', error => {
35
+ emit({ type: 'error', error });
36
+ process.kill();
37
+ worker_threads_1.parentPort.close();
38
+ port.close();
39
+ });
40
+ process.on('exit', (code, signal) => {
41
+ if (code !== null) {
42
+ emit({ type: 'exit', code });
43
+ }
44
+ else {
45
+ (0, assert_1.strict)(signal);
46
+ emit({ type: 'exit', signal });
47
+ }
48
+ worker_threads_1.parentPort.close();
49
+ port.close();
50
+ });
51
+ //# sourceMappingURL=worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../../lib/src/sync-process/worker.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;AAEvC,mDAKwB;AACxB,iDAA8D;AAC9D,mCAAwC;AAExC,2DAAoD;AAGpD,MAAM,IAAI,GAAG,IAAI,mCAAe,CAAC,2BAAU,CAAC,IAAmB,CAAC,CAAC;AAEjE,uDAAuD;AACvD,SAAS,IAAI,CAAC,KAAoB,EAAE,YAAiC;IACnE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,OAAO,GAAG,IAAA,qBAAK,EACnB,2BAAU,CAAC,OAAiB,EAC5B,2BAAU,CAAC,IAAgB,EAC3B,2BAAU,CAAC,OAA+C,CAC3D,CAAC;AAEF,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE;IAC3B,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE;QAC5B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAc,CAAC,CAAC;KAC7C;SAAM,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE;QACzC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;KACrB;SAAM;QACL,eAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAA6C,CAAC,CAAC;KACrE;AACH,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;IAC/B,IAAI,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;IAC/B,IAAI,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;IAC1B,IAAI,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAC,CAAC,CAAC;IAE7B,OAAO,CAAC,IAAI,EAAE,CAAC;IACf,2BAAW,CAAC,KAAK,EAAE,CAAC;IACpB,IAAI,CAAC,KAAK,EAAE,CAAC;AACf,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;IAClC,IAAI,IAAI,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC;KAC5B;SAAM;QACL,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC;QACf,IAAI,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC,CAAC;KAC9B;IAED,2BAAW,CAAC,KAAK,EAAE,CAAC;IACpB,IAAI,CAAC,KAAK,EAAE,CAAC;AACf,CAAC,CAAC,CAAC"}
@@ -3,10 +3,37 @@
3
3
  // MIT-style license that can be found in the LICENSE file or at
4
4
  // https://opensource.org/licenses/MIT.
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.withoutExtension = exports.pathToUrlString = exports.valueError = exports.hostError = exports.compilerError = exports.asImmutableList = exports.isNullOrUndefined = void 0;
6
+ exports.putIfAbsent = exports.protofySyntax = exports.withoutExtension = exports.fileUrlToPathCrossPlatform = exports.pathToUrlString = exports.valueError = exports.hostError = exports.mandatoryError = exports.compilerError = exports.asImmutableList = exports.isNullOrUndefined = exports.catchOr = exports.thenOr = void 0;
7
7
  const immutable_1 = require("immutable");
8
8
  const p = require("path");
9
9
  const url = require("url");
10
+ const proto = require("./vendor/embedded-protocol/embedded_sass_pb");
11
+ /**
12
+ * The equivalent of `Promise.then()`, except that if the first argument is a
13
+ * plain value it synchronously invokes `callback()` and returns its result.
14
+ */
15
+ function thenOr(promiseOrValue, callback) {
16
+ return promiseOrValue instanceof Promise
17
+ ? promiseOrValue.then(callback)
18
+ : callback(promiseOrValue);
19
+ }
20
+ exports.thenOr = thenOr;
21
+ /**
22
+ * The equivalent of `Promise.catch()`, except that if the first argument throws
23
+ * synchronously it synchronously invokes `callback()` and returns its result.
24
+ */
25
+ function catchOr(promiseOrValueCallback, callback) {
26
+ try {
27
+ const result = promiseOrValueCallback();
28
+ return result instanceof Promise
29
+ ? result.catch(callback)
30
+ : result;
31
+ }
32
+ catch (error) {
33
+ return callback(error);
34
+ }
35
+ }
36
+ exports.catchOr = catchOr;
10
37
  /** Checks for null or undefined. */
11
38
  function isNullOrUndefined(object) {
12
39
  return object === null || object === undefined;
@@ -22,6 +49,14 @@ function compilerError(message) {
22
49
  return Error(`Compiler caused error: ${message}.`);
23
50
  }
24
51
  exports.compilerError = compilerError;
52
+ /**
53
+ * Returns a `compilerError()` indicating that the given `field` should have
54
+ * been included but was not.
55
+ */
56
+ function mandatoryError(field) {
57
+ return compilerError(`Missing mandatory field ${field}`);
58
+ }
59
+ exports.mandatoryError = mandatoryError;
25
60
  /** Constructs a host-caused Error. */
26
61
  function hostError(message) {
27
62
  return Error(`Compiler reported error: ${message}.`);
@@ -40,10 +75,53 @@ function pathToUrlString(path) {
40
75
  return components.map(encodeURIComponent).join('/');
41
76
  }
42
77
  exports.pathToUrlString = pathToUrlString;
78
+ /**
79
+ * Like `url.fileURLToPath`, but returns the same result for Windows-style file
80
+ * URLs on all platforms.
81
+ */
82
+ function fileUrlToPathCrossPlatform(fileUrl) {
83
+ const path = url.fileURLToPath(fileUrl);
84
+ // Windows file: URLs begin with `file:///C:/` (or another drive letter),
85
+ // which `fileURLToPath` converts to `"/C:/"` on non-Windows systems. We want
86
+ // to ensure the behavior is consistent across OSes, so we normalize this back
87
+ // to a Windows-style path.
88
+ return /^\/[A-Za-z]:\//.test(path) ? path.substring(1) : path;
89
+ }
90
+ exports.fileUrlToPathCrossPlatform = fileUrlToPathCrossPlatform;
43
91
  /** Returns `path` without an extension, if it had one. */
44
92
  function withoutExtension(path) {
45
93
  const extension = p.extname(path);
46
94
  return path.substring(0, path.length - extension.length);
47
95
  }
48
96
  exports.withoutExtension = withoutExtension;
97
+ /** Converts a JS syntax string into a protobuf syntax enum. */
98
+ function protofySyntax(syntax) {
99
+ switch (syntax) {
100
+ case 'scss':
101
+ return proto.Syntax.SCSS;
102
+ case 'indented':
103
+ return proto.Syntax.INDENTED;
104
+ case 'css':
105
+ return proto.Syntax.CSS;
106
+ default:
107
+ throw new Error(`Unknown syntax: "${syntax}"`);
108
+ }
109
+ }
110
+ exports.protofySyntax = protofySyntax;
111
+ /**
112
+ * Dart-style utility. See
113
+ * http://go/dart-api/stable/2.8.4/dart-core/Map/putIfAbsent.html.
114
+ */
115
+ function putIfAbsent(map, key, provider) {
116
+ const val = map.get(key);
117
+ if (val !== undefined) {
118
+ return val;
119
+ }
120
+ else {
121
+ const newVal = provider();
122
+ map.set(key, newVal);
123
+ return newVal;
124
+ }
125
+ }
126
+ exports.putIfAbsent = putIfAbsent;
49
127
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../lib/src/utils.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC,yCAA+B;AAC/B,0BAA0B;AAC1B,2BAA2B;AAI3B,oCAAoC;AACpC,SAAgB,iBAAiB,CAAI,MAAS;IAC5C,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,CAAC;AACjD,CAAC;AAFD,8CAEC;AAED,iDAAiD;AACjD,SAAgB,eAAe,CAAI,UAAyB;IAC1D,OAAO,gBAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAA,gBAAI,EAAC,UAAU,CAAC,CAAC;AACjE,CAAC;AAFD,0CAEC;AAED,0CAA0C;AAC1C,SAAgB,aAAa,CAAC,OAAe;IAC3C,OAAO,KAAK,CAAC,0BAA0B,OAAO,GAAG,CAAC,CAAC;AACrD,CAAC;AAFD,sCAEC;AAED,sCAAsC;AACtC,SAAgB,SAAS,CAAC,OAAe;IACvC,OAAO,KAAK,CAAC,4BAA4B,OAAO,GAAG,CAAC,CAAC;AACvD,CAAC;AAFD,8BAEC;AAED,2DAA2D;AAC3D,SAAgB,UAAU,CAAC,OAAe,EAAE,IAAa;IACvD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;AAC/D,CAAC;AAFD,gCAEC;AAED,4EAA4E;AAC5E,SAAgB,eAAe,CAAC,IAAY;IAC1C,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;IAElE,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1E,OAAO,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtD,CAAC;AALD,0CAKC;AAED,0DAA0D;AAC1D,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,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;AAHD,4CAGC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../lib/src/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ // Copyright 2021 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.SassArgumentList = void 0;
7
+ const immutable_1 = require("immutable");
8
+ const list_1 = require("./list");
9
+ class SassArgumentList extends list_1.SassList {
10
+ constructor(contents, keywords, separator, id) {
11
+ super(contents, { separator });
12
+ /**
13
+ * Whether the `keywords` getter has been accessed.
14
+ *
15
+ * This is marked as public so that the protofier can access it, but it's not
16
+ * part of the package's public API and should not be accessed by user code.
17
+ * It may be renamed or removed without warning in the future.
18
+ */
19
+ this.keywordsAccessed = false;
20
+ this.keywordsInternal = (0, immutable_1.isOrderedMap)(keywords)
21
+ ? keywords
22
+ : (0, immutable_1.OrderedMap)(keywords);
23
+ this.id = id !== null && id !== void 0 ? id : 0;
24
+ }
25
+ get keywords() {
26
+ this.keywordsAccessed = true;
27
+ return this.keywordsInternal;
28
+ }
29
+ }
30
+ exports.SassArgumentList = SassArgumentList;
31
+ //# sourceMappingURL=argument-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"argument-list.js","sourceRoot":"","sources":["../../../../lib/src/value/argument-list.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC,yCAAyD;AAEzD,iCAA+C;AAG/C,MAAa,gBAAiB,SAAQ,eAAQ;IAsC5C,YACE,QAA+B,EAC/B,QAA2D,EAC3D,SAAyB,EACzB,EAAW;QAEX,KAAK,CAAC,QAAQ,EAAE,EAAC,SAAS,EAAC,CAAC,CAAC;QApB/B;;;;;;WAMG;QACH,qBAAgB,GAAG,KAAK,CAAC;QAcvB,IAAI,CAAC,gBAAgB,GAAG,IAAA,wBAAY,EAAC,QAAQ,CAAC;YAC5C,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,IAAA,sBAAU,EAAC,QAAQ,CAAC,CAAC;QACzB,IAAI,CAAC,EAAE,GAAG,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,CAAC,CAAC;IACpB,CAAC;IAhBD,IAAI,QAAQ;QACV,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;CAcF;AAlDD,4CAkDC"}
@@ -3,15 +3,19 @@
3
3
  // MIT-style license that can be found in the LICENSE file or at
4
4
  // https://opensource.org/licenses/MIT.
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.sassFalse = exports.sassTrue = void 0;
6
+ exports.sassFalse = exports.sassTrue = exports.SassBooleanInternal = void 0;
7
7
  const immutable_1 = require("immutable");
8
- const value_1 = require("./value");
8
+ const index_1 = require("./index");
9
9
  const trueHash = (0, immutable_1.hash)(true);
10
10
  const falseHash = (0, immutable_1.hash)(false);
11
- class SassBooleanInternal extends value_1.Value {
11
+ class SassBooleanInternal extends index_1.Value {
12
12
  constructor(valueInternal) {
13
13
  super();
14
14
  this.valueInternal = valueInternal;
15
+ if (!SassBooleanInternal.constructionAllowed) {
16
+ throw ("new sass.types.Boolean() isn't allowed.\n" +
17
+ 'Use sass.types.Boolean.TRUE or sass.types.Boolean.FALSE instead.');
18
+ }
15
19
  Object.freeze(this);
16
20
  }
17
21
  get value() {
@@ -24,7 +28,7 @@ class SassBooleanInternal extends value_1.Value {
24
28
  return this;
25
29
  }
26
30
  equals(other) {
27
- return other instanceof SassBooleanInternal && this.value === other.value;
31
+ return this === other;
28
32
  }
29
33
  hashCode() {
30
34
  return this.value ? trueHash : falseHash;
@@ -32,9 +36,21 @@ class SassBooleanInternal extends value_1.Value {
32
36
  toString() {
33
37
  return this.value ? 'sassTrue' : 'sassFalse';
34
38
  }
39
+ getValue() {
40
+ return this.value;
41
+ }
35
42
  }
43
+ exports.SassBooleanInternal = SassBooleanInternal;
44
+ // Whether callers are allowed to construct this class. This is set to
45
+ // `false` once the two constants are constructed so that the constructor
46
+ // throws an error for future calls, in accordance with the legacy API.
47
+ SassBooleanInternal.constructionAllowed = true;
36
48
  /** The singleton instance of SassScript true. */
37
49
  exports.sassTrue = new SassBooleanInternal(true);
38
50
  /** The singleton instance of SassScript false. */
39
51
  exports.sassFalse = new SassBooleanInternal(false);
52
+ // Legacy API support
53
+ SassBooleanInternal.constructionAllowed = false;
54
+ SassBooleanInternal.TRUE = exports.sassTrue;
55
+ SassBooleanInternal.FALSE = exports.sassFalse;
40
56
  //# sourceMappingURL=boolean.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../../../lib/src/value/boolean.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC,yCAA+B;AAE/B,mCAA8B;AAY9B,MAAM,QAAQ,GAAG,IAAA,gBAAI,EAAC,IAAI,CAAC,CAAC;AAC5B,MAAM,SAAS,GAAG,IAAA,gBAAI,EAAC,KAAK,CAAC,CAAC;AAE9B,MAAM,mBAAoB,SAAQ,aAAK;IACrC,YAA6B,aAAsB;QACjD,KAAK,EAAE,CAAC;QADmB,kBAAa,GAAb,aAAa,CAAS;QAEjD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,KAAY;QACjB,OAAO,KAAK,YAAY,mBAAmB,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC;IAC5E,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;IAC/C,CAAC;CACF;AAED,iDAAiD;AACpC,QAAA,QAAQ,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAEtD,kDAAkD;AACrC,QAAA,SAAS,GAAG,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../../../lib/src/value/boolean.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC,yCAA+B;AAE/B,mCAA8B;AAY9B,MAAM,QAAQ,GAAG,IAAA,gBAAI,EAAC,IAAI,CAAC,CAAC;AAC5B,MAAM,SAAS,GAAG,IAAA,gBAAI,EAAC,KAAK,CAAC,CAAC;AAE9B,MAAa,mBAAoB,SAAQ,aAAK;IAM5C,YAA6B,aAAsB;QACjD,KAAK,EAAE,CAAC;QADmB,kBAAa,GAAb,aAAa,CAAS;QAGjD,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE;YAC5C,MAAM,CACJ,2CAA2C;gBAC3C,kEAAkE,CACnE,CAAC;SACH;QAED,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,KAAY;QACjB,OAAO,IAAI,KAAK,KAAK,CAAC;IACxB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;IAC/C,CAAC;IAOD,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;;AAlDH,kDAmDC;AAlDC,sEAAsE;AACtE,yEAAyE;AACzE,uEAAuE;AAChE,uCAAmB,GAAG,IAAI,CAAC;AAiDpC,iDAAiD;AACpC,QAAA,QAAQ,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAEtD,kDAAkD;AACrC,QAAA,SAAS,GAAG,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAExD,qBAAqB;AACrB,mBAAmB,CAAC,mBAAmB,GAAG,KAAK,CAAC;AAEhD,mBAAmB,CAAC,IAAI,GAAG,gBAAQ,CAAC;AACpC,mBAAmB,CAAC,KAAK,GAAG,iBAAS,CAAC"}
@@ -4,79 +4,45 @@
4
4
  // https://opensource.org/licenses/MIT.
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.SassColor = void 0;
7
- const value_1 = require("./value");
7
+ const index_1 = require("./index");
8
8
  const utils_1 = require("./utils");
9
9
  const immutable_1 = require("immutable");
10
10
  /** A SassScript color. */
11
- class SassColor extends value_1.Value {
11
+ class SassColor extends index_1.Value {
12
12
  constructor(color) {
13
13
  super();
14
14
  if ('red' in color) {
15
- this.redInternal = color.red;
16
- this.greenInternal = color.green;
17
- this.blueInternal = color.blue;
15
+ this.redInternal = (0, utils_1.fuzzyAssertInRange)(Math.round(color.red), 0, 255, 'red');
16
+ this.greenInternal = (0, utils_1.fuzzyAssertInRange)(Math.round(color.green), 0, 255, 'green');
17
+ this.blueInternal = (0, utils_1.fuzzyAssertInRange)(Math.round(color.blue), 0, 255, 'blue');
18
18
  }
19
- else {
20
- this.hueInternal = color.hue;
21
- this.saturationInternal = color.saturation;
22
- this.lightnessInternal = color.lightness;
19
+ else if ('saturation' in color) {
20
+ this.hueInternal = (0, utils_1.positiveMod)(color.hue, 360);
21
+ this.saturationInternal = (0, utils_1.fuzzyAssertInRange)(color.saturation, 0, 100, 'saturation');
22
+ this.lightnessInternal = (0, utils_1.fuzzyAssertInRange)(color.lightness, 0, 100, 'lightness');
23
23
  }
24
- this.alphaInternal = color.alpha;
25
- }
26
- /**
27
- * Creates an RGB color.
28
- *
29
- * Throws an error if `red`, `green`, and `blue` aren't between `0` and `255`,
30
- * or if `alpha` isn't between `0` and `1`.
31
- */
32
- static rgb(red, green, blue, alpha) {
33
- return new SassColor({
34
- red: (0, utils_1.fuzzyAssertInRange)(red, 0, 255, 'red'),
35
- green: (0, utils_1.fuzzyAssertInRange)(green, 0, 255, 'green'),
36
- blue: (0, utils_1.fuzzyAssertInRange)(blue, 0, 255, 'blue'),
37
- alpha: alpha === undefined ? 1 : (0, utils_1.fuzzyAssertInRange)(alpha, 0, 1, 'alpha'),
38
- });
39
- }
40
- /**
41
- * Creates an HSL color.
42
- *
43
- * Throws an error if `saturation` or `lightness` aren't between `0` and
44
- * `100`, or if `alpha` isn't between `0` and `1`.
45
- */
46
- static hsl(hue, saturation, lightness, alpha) {
47
- return new SassColor({
48
- hue: hue % 360,
49
- saturation: (0, utils_1.fuzzyAssertInRange)(saturation, 0, 100, 'saturation'),
50
- lightness: (0, utils_1.fuzzyAssertInRange)(lightness, 0, 100, 'lightness'),
51
- alpha: alpha === undefined ? 1 : (0, utils_1.fuzzyAssertInRange)(alpha, 0, 1, 'alpha'),
52
- });
53
- }
54
- /**
55
- * Creates an HWB color.
56
- *
57
- * Throws an error if `whiteness` or `blackness` aren't between `0` and `100`,
58
- * or if `alpha` isn't between `0` and `1`.
59
- */
60
- static hwb(hue, whiteness, blackness, alpha) {
61
- // From https://www.w3.org/TR/css-color-4/#hwb-to-rgb
62
- const scaledHue = (hue % 360) / 360;
63
- let scaledWhiteness = (0, utils_1.fuzzyAssertInRange)(whiteness, 0, 100, 'whiteness') / 100;
64
- let scaledBlackness = (0, utils_1.fuzzyAssertInRange)(blackness, 0, 100, 'blackness') / 100;
65
- const sum = scaledWhiteness + scaledBlackness;
66
- if (sum > 1) {
67
- scaledWhiteness /= sum;
68
- scaledBlackness /= sum;
69
- }
70
- const factor = 1 - scaledWhiteness - scaledBlackness;
71
- function toRgb(hue) {
72
- const channel = hueToRgb(0, 1, hue) * factor + scaledWhiteness;
73
- return (0, utils_1.fuzzyRound)(channel * 255);
24
+ else {
25
+ // From https://www.w3.org/TR/css-color-4/#hwb-to-rgb
26
+ const scaledHue = (0, utils_1.positiveMod)(color.hue, 360) / 360;
27
+ let scaledWhiteness = (0, utils_1.fuzzyAssertInRange)(color.whiteness, 0, 100, 'whiteness') / 100;
28
+ let scaledBlackness = (0, utils_1.fuzzyAssertInRange)(color.blackness, 0, 100, 'blackness') / 100;
29
+ const sum = scaledWhiteness + scaledBlackness;
30
+ if (sum > 1) {
31
+ scaledWhiteness /= sum;
32
+ scaledBlackness /= sum;
33
+ }
34
+ // Because HWB is (currently) used much less frequently than HSL or RGB, we
35
+ // don't cache its values because we expect the memory overhead of doing so
36
+ // to outweigh the cost of recalculating it on access. Instead, we eagerly
37
+ // convert it to RGB and then convert back if necessary.
38
+ this.redInternal = hwbToRgb(scaledHue + 1 / 3, scaledWhiteness, scaledBlackness);
39
+ this.greenInternal = hwbToRgb(scaledHue, scaledWhiteness, scaledBlackness);
40
+ this.blueInternal = hwbToRgb(scaledHue - 1 / 3, scaledWhiteness, scaledBlackness);
74
41
  }
75
- // Because HWB is (currently) used much less frequently than HSL or RGB, we
76
- // don't cache its values because we expect the memory overhead of doing so
77
- // to outweigh the cost of recalculating it on access. Instead, we eagerly
78
- // convert it to RGB and then convert back if necessary.
79
- return SassColor.rgb(toRgb(scaledHue + 1 / 3), toRgb(scaledHue), toRgb(scaledHue - 1 / 3), alpha);
42
+ this.alphaInternal =
43
+ color.alpha === undefined
44
+ ? 1
45
+ : (0, utils_1.fuzzyAssertInRange)(color.alpha, 0, 1, 'alpha');
80
46
  }
81
47
  /** `this`'s red channel. */
82
48
  get red() {
@@ -138,41 +104,60 @@ class SassColor extends value_1.Value {
138
104
  get alpha() {
139
105
  return this.alphaInternal;
140
106
  }
141
- assertColor() {
142
- return this;
143
- }
144
107
  /**
145
- * Returns a copy of `this` with its RGB channels changed to `red`, `green`,
146
- * `blue`, and/or `alpha`.
147
- */
148
- changeRgb(options) {
149
- var _a, _b, _c, _d;
150
- return SassColor.rgb((_a = options.red) !== null && _a !== void 0 ? _a : this.red, (_b = options.green) !== null && _b !== void 0 ? _b : this.green, (_c = options.blue) !== null && _c !== void 0 ? _c : this.blue, (_d = options.alpha) !== null && _d !== void 0 ? _d : this.alpha);
151
- }
152
- /**
153
- * Returns a copy of `this` with its HSL values changed to `hue`,
154
- * `saturation`, `lightness`, and/or `alpha`.
108
+ * Whether `this` has already calculated the HSL components for the color.
109
+ *
110
+ * This is an internal property that's not an official part of Sass's JS API,
111
+ * and may be broken at any time.
155
112
  */
156
- changeHsl(options) {
157
- var _a, _b, _c, _d;
158
- return SassColor.hsl((_a = options.hue) !== null && _a !== void 0 ? _a : this.hue, (_b = options.saturation) !== null && _b !== void 0 ? _b : this.saturation, (_c = options.lightness) !== null && _c !== void 0 ? _c : this.lightness, (_d = options.alpha) !== null && _d !== void 0 ? _d : this.alpha);
113
+ get hasCalculatedHsl() {
114
+ return !!this.hueInternal;
159
115
  }
160
- /**
161
- * Returns a copy of `this` with its HWB values changed to `hue`, `whiteness`,
162
- * `blackness`, and/or `alpha`.
163
- */
164
- changeHwb(options) {
165
- var _a, _b, _c, _d;
166
- return SassColor.hwb((_a = options.hue) !== null && _a !== void 0 ? _a : this.hue, (_b = options.whiteness) !== null && _b !== void 0 ? _b : this.whiteness, (_c = options.blackness) !== null && _c !== void 0 ? _c : this.blackness, (_d = options.alpha) !== null && _d !== void 0 ? _d : this.alpha);
116
+ assertColor() {
117
+ return this;
167
118
  }
168
- /** Returns a copy of `this` with its alpha channel changed to `alpha`. */
169
- changeAlpha(alpha) {
170
- return new SassColor({
171
- red: this.red,
172
- green: this.green,
173
- blue: this.blue,
174
- alpha: (0, utils_1.fuzzyAssertInRange)(alpha, 0, 1, 'alpha'),
175
- });
119
+ change(color) {
120
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
121
+ if ('whiteness' in color || 'blackness' in color) {
122
+ return new SassColor({
123
+ hue: (_a = color.hue) !== null && _a !== void 0 ? _a : this.hue,
124
+ whiteness: (_b = color.whiteness) !== null && _b !== void 0 ? _b : this.whiteness,
125
+ blackness: (_c = color.blackness) !== null && _c !== void 0 ? _c : this.blackness,
126
+ alpha: (_d = color.alpha) !== null && _d !== void 0 ? _d : this.alpha,
127
+ });
128
+ }
129
+ else if ('hue' in color ||
130
+ 'saturation' in color ||
131
+ 'lightness' in color) {
132
+ // Tell TypeScript this isn't a Partial<HwbColor>.
133
+ const hsl = color;
134
+ return new SassColor({
135
+ hue: (_e = hsl.hue) !== null && _e !== void 0 ? _e : this.hue,
136
+ saturation: (_f = hsl.saturation) !== null && _f !== void 0 ? _f : this.saturation,
137
+ lightness: (_g = hsl.lightness) !== null && _g !== void 0 ? _g : this.lightness,
138
+ alpha: (_h = hsl.alpha) !== null && _h !== void 0 ? _h : this.alpha,
139
+ });
140
+ }
141
+ else if ('red' in color ||
142
+ 'green' in color ||
143
+ 'blue' in color ||
144
+ this.redInternal) {
145
+ const rgb = color;
146
+ return new SassColor({
147
+ red: (_j = rgb.red) !== null && _j !== void 0 ? _j : this.red,
148
+ green: (_k = rgb.green) !== null && _k !== void 0 ? _k : this.green,
149
+ blue: (_l = rgb.blue) !== null && _l !== void 0 ? _l : this.blue,
150
+ alpha: (_m = rgb.alpha) !== null && _m !== void 0 ? _m : this.alpha,
151
+ });
152
+ }
153
+ else {
154
+ return new SassColor({
155
+ hue: this.hue,
156
+ saturation: this.saturation,
157
+ lightness: this.lightness,
158
+ alpha: (_o = color.alpha) !== null && _o !== void 0 ? _o : this.alpha,
159
+ });
160
+ }
176
161
  }
177
162
  equals(other) {
178
163
  return (other instanceof SassColor &&
@@ -206,13 +191,13 @@ class SassColor extends value_1.Value {
206
191
  this.hueInternal = 0;
207
192
  }
208
193
  else if (max === scaledRed) {
209
- this.hueInternal = ((60 * (scaledGreen - scaledBlue)) / delta) % 360;
194
+ this.hueInternal = (0, utils_1.positiveMod)((60 * (scaledGreen - scaledBlue)) / delta, 360);
210
195
  }
211
196
  else if (max === scaledGreen) {
212
- this.hueInternal = (120 + (60 * (scaledBlue - scaledRed)) / delta) % 360;
197
+ this.hueInternal = (0, utils_1.positiveMod)(120 + (60 * (scaledBlue - scaledRed)) / delta, 360);
213
198
  }
214
199
  else if (max === scaledBlue) {
215
- this.hueInternal = (240 + (60 * (scaledRed - scaledGreen)) / delta) % 360;
200
+ this.hueInternal = (0, utils_1.positiveMod)(240 + (60 * (scaledRed - scaledGreen)) / delta, 360);
216
201
  }
217
202
  this.lightnessInternal = 50 * (max + min);
218
203
  if (max === min) {
@@ -245,6 +230,12 @@ class SassColor extends value_1.Value {
245
230
  }
246
231
  }
247
232
  exports.SassColor = SassColor;
233
+ // A helper for converting HWB colors to RGB.
234
+ function hwbToRgb(hue, scaledWhiteness, scaledBlackness) {
235
+ const factor = 1 - scaledWhiteness - scaledBlackness;
236
+ const channel = hueToRgb(0, 1, hue) * factor + scaledWhiteness;
237
+ return (0, utils_1.fuzzyRound)(channel * 255);
238
+ }
248
239
  // An algorithm from the CSS3 spec: http://www.w3.org/TR/css3-color/#hsl-color.
249
240
  function hueToRgb(m1, m2, hue) {
250
241
  if (hue < 0)
@@ -1 +1 @@
1
- {"version":3,"file":"color.js","sourceRoot":"","sources":["../../../../lib/src/value/color.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"color.js","sourceRoot":"","sources":["../../../../lib/src/value/color.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ // Copyright 2021 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.SassFunction = void 0;
7
+ const immutable_1 = require("immutable");
8
+ const index_1 = require("./index");
9
+ /** A first-class SassScript function. */
10
+ class SassFunction extends index_1.Value {
11
+ constructor(idOrSignature, callback) {
12
+ super();
13
+ if (typeof idOrSignature === 'number') {
14
+ this.id = idOrSignature;
15
+ }
16
+ else {
17
+ this.signature = idOrSignature;
18
+ this.callback = callback;
19
+ }
20
+ }
21
+ equals(other) {
22
+ return this.id === undefined
23
+ ? other === this
24
+ : other instanceof SassFunction && other.id === this.id;
25
+ }
26
+ hashCode() {
27
+ return this.id === undefined ? (0, immutable_1.hash)(this.signature) : (0, immutable_1.hash)(this.id);
28
+ }
29
+ toString() {
30
+ return this.signature ? this.signature : `<compiler function ${this.id}>`;
31
+ }
32
+ }
33
+ exports.SassFunction = SassFunction;
34
+ //# sourceMappingURL=function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function.js","sourceRoot":"","sources":["../../../../lib/src/value/function.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC,yCAA+B;AAG/B,mCAA8B;AAE9B,yCAAyC;AACzC,MAAa,YAAa,SAAQ,aAAK;IAiCrC,YACE,aAA8B,EAC9B,QAAiC;QAEjC,KAAK,EAAE,CAAC;QAER,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;YACrC,IAAI,CAAC,EAAE,GAAG,aAAa,CAAC;SACzB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,QAAS,CAAC;SAC3B;IACH,CAAC;IAED,MAAM,CAAC,KAAY;QACjB,OAAO,IAAI,CAAC,EAAE,KAAK,SAAS;YAC1B,CAAC,CAAC,KAAK,KAAK,IAAI;YAChB,CAAC,CAAC,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;IAC5D,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,gBAAI,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAA,gBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,IAAI,CAAC,EAAE,GAAG,CAAC;IAC5E,CAAC;CACF;AA5DD,oCA4DC"}
@@ -75,6 +75,10 @@ class Value {
75
75
  }
76
76
  return index < 0 ? this.lengthAsList + index : index - 1;
77
77
  }
78
+ /** Returns `this.asList.get(index)`. */
79
+ get(index) {
80
+ return index < 1 && index >= -1 ? this : undefined;
81
+ }
78
82
  /**
79
83
  * Casts `this` to `SassBoolean`; throws if `this` isn't a boolean.
80
84
  *
@@ -140,4 +144,4 @@ class Value {
140
144
  }
141
145
  }
142
146
  exports.Value = Value;
143
- //# sourceMappingURL=value.js.map
147
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/src/value/index.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC,yCAA4C;AAQ5C,oCAAoC;AAEpC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAsB,KAAK;IACzB,uCAAuC;IACvC,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0EAA0E;IAC1E,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wBAAwB;IACxB,IAAI,MAAM;QACR,OAAO,IAAA,gBAAI,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,0CAA0C;IAC1C,IAAI,SAAS;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+CAA+C;IAC/C,IAAI,WAAW;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,yDAAyD;IACzD,0BAA0B;IAC1B,IAAc,YAAY;QACxB,OAAO,CAAC,CAAC;IACX,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,oBAAoB,CAAC,SAAgB,EAAE,IAAa;QAClD,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC,SAAS,EAAE,CAAC;QACnD,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,MAAM,KAAK,CAAC,0BAA0B,CAAC,CAAC;SACzC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE;YACvC,MAAM,IAAA,kBAAU,EACd,iBAAiB,SAAS,oBAAoB,IAAI,CAAC,YAAY,YAAY,EAC3E,IAAI,CACL,CAAC;SACH;QACD,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,wCAAwC;IACxC,GAAG,CAAC,KAAa;QACf,OAAO,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACrD,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,IAAa;QACzB,MAAM,IAAA,kBAAU,EAAC,GAAG,IAAI,mBAAmB,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,IAAa;QACvB,MAAM,IAAA,kBAAU,EAAC,GAAG,IAAI,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CAAC,IAAa;QAC1B,MAAM,IAAA,kBAAU,EAAC,GAAG,IAAI,8BAA8B,EAAE,IAAI,CAAC,CAAC;QAC9D,uDAAuD;IACzD,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,IAAa;QACrB,MAAM,IAAA,kBAAU,EAAC,GAAG,IAAI,eAAe,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,IAAa;QACxB,MAAM,IAAA,kBAAU,EAAC,GAAG,IAAI,kBAAkB,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,IAAa;QACxB,MAAM,IAAA,kBAAU,EAAC,GAAG,IAAI,kBAAkB,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;CAUF;AAjJD,sBAiJC"}