@cichol/sass-bridge 4.4.3 → 4.6.0

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.
@@ -0,0 +1,212 @@
1
+ 'use strict';
2
+
3
+ var _Symbol = require('core-js-pure/stable/symbol/index.js');
4
+ var _Promise = require('core-js-pure/stable/promise/index.js');
5
+ var _mapInstanceProperty = require('core-js-pure/stable/instance/map.js');
6
+ var _Reflect$construct = require('core-js-pure/stable/reflect/construct.js');
7
+ var _Object$fromEntries = require('core-js-pure/stable/object/from-entries.js');
8
+ require('reflect-metadata');
9
+ var _fillInstanceProperty = require('core-js-pure/stable/instance/fill.js');
10
+ var _Array$from = require('core-js-pure/stable/array/from.js');
11
+ var _entriesInstanceProperty = require('core-js-pure/stable/instance/entries.js');
12
+ var _Map = require('core-js-pure/stable/map/index.js');
13
+ var _everyInstanceProperty = require('core-js-pure/stable/instance/every.js');
14
+ var _Array$isArray = require('core-js-pure/stable/array/is-array.js');
15
+ var chroma = require('chroma-js');
16
+ var _filterInstanceProperty = require('core-js-pure/stable/instance/filter.js');
17
+ var _Object$keys = require('core-js-pure/stable/object/keys.js');
18
+ var _startsWithInstanceProperty = require('core-js-pure/stable/instance/starts-with.js');
19
+ var _Object$getPrototypeOf = require('core-js-pure/stable/object/get-prototype-of.js');
20
+ var sass = require('sass');
21
+
22
+ function _interopNamespaceDefault(e) {
23
+ var n = Object.create(null);
24
+ if (e) {
25
+ Object.keys(e).forEach(function (k) {
26
+ if (k !== 'default') {
27
+ var d = Object.getOwnPropertyDescriptor(e, k);
28
+ Object.defineProperty(n, k, d.get ? d : {
29
+ enumerable: true,
30
+ get: function () { return e[k]; }
31
+ });
32
+ }
33
+ });
34
+ }
35
+ n.default = e;
36
+ return Object.freeze(n);
37
+ }
38
+
39
+ var sass__namespace = /*#__PURE__*/_interopNamespaceDefault(sass);
40
+
41
+ var _context, _context2, _context3, _context4, _context5;
42
+
43
+ // Type definitions.
44
+
45
+ const SassTypes = _Object$fromEntries(_mapInstanceProperty(_context = _filterInstanceProperty(_context2 = _filterInstanceProperty(_context3 = _mapInstanceProperty(_context4 = _filterInstanceProperty(_context5 = _Object$keys(sass__namespace)).call(_context5, propertyKey => _startsWithInstanceProperty(propertyKey).call(propertyKey, 'Sass'))).call(_context4, propertyKey => sass__namespace[propertyKey])).call(_context3, constructor => typeof constructor === 'function')).call(_context2, constructor => Object.prototype.isPrototypeOf.call(sass.Value.prototype, constructor.prototype))).call(_context, constructor => [constructor.name, constructor]));
46
+ const SassTRUE = sass__namespace.sassTrue;
47
+ const SassFALSE = sass__namespace.sassFalse;
48
+ const SassNULL = sass__namespace.sassNull;
49
+ const {
50
+ SassNumber
51
+ } = SassTypes;
52
+ const {
53
+ SassString
54
+ } = SassTypes;
55
+ const {
56
+ SassColor
57
+ } = SassTypes;
58
+ const {
59
+ SassList
60
+ } = SassTypes;
61
+ const {
62
+ SassMap
63
+ } = SassTypes;
64
+ const SassBoolean = _Object$getPrototypeOf(SassTRUE).constructor;
65
+
66
+ // Helper functions.
67
+ function isObject(value) {
68
+ const type = typeof value;
69
+ return !!value && (type === 'object' || type === 'function');
70
+ }
71
+ function sassToJavaScriptType(sassValue) {
72
+ switch (true) {
73
+ case sassValue instanceof SassBoolean:
74
+ {
75
+ return sassValue.value;
76
+ }
77
+ case sassValue instanceof SassString:
78
+ {
79
+ return sassValue.text;
80
+ }
81
+ case sassValue instanceof SassNumber:
82
+ {
83
+ const {
84
+ value,
85
+ numeratorUnits,
86
+ denominatorUnits
87
+ } = sassValue;
88
+ const unit = sassValue.hasUnits ? numeratorUnits.join('*') + (denominatorUnits.size > 0 ? `/${denominatorUnits.join('*')}` : '') : '';
89
+ return unit ? {
90
+ value,
91
+ unit
92
+ } : value;
93
+ }
94
+ case sassValue instanceof SassColor:
95
+ {
96
+ const {
97
+ red,
98
+ green,
99
+ blue,
100
+ alpha
101
+ } = sassValue;
102
+ return chroma(red, green, blue, alpha);
103
+ }
104
+ case sassValue instanceof SassList:
105
+ {
106
+ var _context;
107
+ const listValue = sassValue.asList;
108
+ const length = listValue.size;
109
+ const array = _fillInstanceProperty(_context = Array(length)).call(_context, undefined);
110
+ for (let index = 0; index < length; index += 1) {
111
+ array[index] = listValue.get(index);
112
+ }
113
+ return _mapInstanceProperty(array).call(array, value => sassToJavaScriptType(value));
114
+ }
115
+ case sassValue instanceof SassMap:
116
+ {
117
+ var _context2;
118
+ const mapValue = sassValue.contents;
119
+ const entries = _mapInstanceProperty(_context2 = _Array$from(_entriesInstanceProperty(mapValue).call(mapValue))).call(_context2, ([key, value]) => [sassToJavaScriptType(key), sassToJavaScriptType(value)]);
120
+ return new _Map(entries);
121
+ }
122
+ default:
123
+ {
124
+ return null;
125
+ }
126
+ }
127
+ }
128
+ function javaScriptToSassType(rawValue) {
129
+ var _context3;
130
+ switch (true) {
131
+ case typeof rawValue === 'boolean':
132
+ {
133
+ const booleanValue = rawValue;
134
+ return booleanValue ? SassTRUE : SassFALSE;
135
+ }
136
+ case typeof rawValue === 'number':
137
+ {
138
+ const numberValue = rawValue;
139
+ return new SassNumber(numberValue);
140
+ }
141
+ case isObject(rawValue) && _everyInstanceProperty(_context3 = ['value', 'unit']).call(_context3, propertyKey => propertyKey in rawValue):
142
+ {
143
+ const {
144
+ value,
145
+ unit
146
+ } = rawValue;
147
+ return new SassNumber(value, unit);
148
+ }
149
+ case typeof rawValue === 'string':
150
+ {
151
+ const stringValue = rawValue;
152
+ return new SassString(stringValue);
153
+ }
154
+ case isObject(rawValue) && '_rgb' in rawValue:
155
+ {
156
+ const [red, green, blue, alpha] = rawValue.rgba();
157
+ return new SassColor({
158
+ red,
159
+ green,
160
+ blue,
161
+ alpha
162
+ });
163
+ }
164
+ case _Array$isArray(rawValue):
165
+ {
166
+ return new SassList(_mapInstanceProperty(rawValue).call(rawValue, value => javaScriptToSassType(value)));
167
+ }
168
+ case rawValue instanceof _Map:
169
+ {
170
+ var _context4;
171
+ const mapValue = rawValue;
172
+ const sassMap = new SassMap();
173
+ const converted = _mapInstanceProperty(_context4 = _Array$from(_entriesInstanceProperty(mapValue).call(mapValue))).call(_context4, entry => _mapInstanceProperty(entry).call(entry, javaScriptToSassType));
174
+ for (const [key, value] of converted) {
175
+ sassMap.contents.set(key, value);
176
+ }
177
+ return sassMap;
178
+ }
179
+ default:
180
+ {
181
+ return SassNULL;
182
+ }
183
+ }
184
+ }
185
+
186
+ // Type definitions.
187
+
188
+ // Constants.
189
+ const KeyOfSignature = _Symbol('@cichol/sass-bridge::KeyOfSignature');
190
+ function sassFunction(definition) {
191
+ return target => {
192
+ Reflect.defineMetadata(KeyOfSignature, definition, target);
193
+ return target;
194
+ };
195
+ }
196
+ async function getFunctions(...moduleImports) {
197
+ const modules = await _Promise.all(_mapInstanceProperty(moduleImports).call(moduleImports, module => _Promise.resolve(module).then(module => module.default)));
198
+ const entries = _mapInstanceProperty(modules).call(modules, module => {
199
+ const signature = Reflect.getMetadata(KeyOfSignature, module);
200
+ async function customFunction(rawArgs) {
201
+ const args = _mapInstanceProperty(rawArgs).call(rawArgs, sassToJavaScriptType);
202
+ const result = await _Reflect$construct(module, args).execute();
203
+ return javaScriptToSassType(result);
204
+ }
205
+ return [signature, customFunction];
206
+ });
207
+ return _Object$fromEntries(entries);
208
+ }
209
+
210
+ exports.getFunctions = getFunctions;
211
+ exports.sassFunction = sassFunction;
212
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY2pzIiwic291cmNlcyI6WyIuLi9zb3VyY2VzL3R5cGVzLnRzIiwiLi4vc291cmNlcy90eXBlLWNvbnZlcnRlci50cyIsIi4uL3NvdXJjZXMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcmQtcGFydHkgbW9kdWxlcy5cbmltcG9ydCB0eXBlIHsgQ29sb3IgfSBmcm9tICdjaHJvbWEtanMnXG5pbXBvcnQgKiBhcyBzYXNzIGZyb20gJ3Nhc3MnXG5pbXBvcnQgeyBWYWx1ZSB9IGZyb20gJ3Nhc3MnXG5cbi8vIFR5cGUgZGVmaW5pdGlvbnMuXG5leHBvcnQgdHlwZSBQcmltaXRpdmVzID0gYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZyB8IG51bGxcblxuZXhwb3J0IHR5cGUgTnVtYmVyV2l0aFVuaXQgPSB7IHZhbHVlOiBudW1iZXIsIHVuaXQ6IHN0cmluZyB9XG5cbmV4cG9ydCB0eXBlIEphdmFTY3JpcHRUeXBlPEJhc2UgPSBQcmltaXRpdmVzIHwgQ29sb3IgfCBOdW1iZXJXaXRoVW5pdD4gPVxuXHR8IEJhc2Vcblx0fCBKYXZhU2NyaXB0VHlwZTxCYXNlPltdXG5cdHwgTWFwPEphdmFTY3JpcHRUeXBlPEJhc2U+LCBKYXZhU2NyaXB0VHlwZTxCYXNlPj5cblxudHlwZSBGaWx0ZXJTYXNzUHJlZml4PFQgZXh0ZW5kcyBzdHJpbmc+ID0gVCBleHRlbmRzIGBTYXNzJHtpbmZlciBSfWAgPyBSIDogbmV2ZXJcblxudHlwZSBTYXNzVHlwZXMgPSBFeGNsdWRlPGBTYXNzJHtGaWx0ZXJTYXNzUHJlZml4PGtleW9mIHR5cGVvZiBzYXNzPn1gLCBgU2FzcyR7J0Jvb2xlYW4nIHwgJ0NhbGN1bGF0aW9uJ31gPlxuXG5jb25zdCBTYXNzVHlwZXMgPSBPYmplY3QuZnJvbUVudHJpZXMoXG5cdE9iamVjdC5rZXlzKHNhc3MpXG5cdFx0LmZpbHRlcihwcm9wZXJ0eUtleSA9PiBwcm9wZXJ0eUtleS5zdGFydHNXaXRoKCdTYXNzJykpXG5cdFx0Lm1hcChwcm9wZXJ0eUtleSA9PiBzYXNzW3Byb3BlcnR5S2V5IGFzIFNhc3NUeXBlc10pXG5cdFx0LmZpbHRlcihjb25zdHJ1Y3RvciA9PiB0eXBlb2YgY29uc3RydWN0b3IgPT09ICdmdW5jdGlvbicpXG5cdFx0LmZpbHRlcihjb25zdHJ1Y3RvciA9PiBPYmplY3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2YuY2FsbChWYWx1ZS5wcm90b3R5cGUsIGNvbnN0cnVjdG9yLnByb3RvdHlwZSkpXG5cdFx0Lm1hcChjb25zdHJ1Y3RvciA9PiBbIGNvbnN0cnVjdG9yLm5hbWUsIGNvbnN0cnVjdG9yIF0gYXMgW1Nhc3NUeXBlcywgKHR5cGVvZiBzYXNzKVtTYXNzVHlwZXNdXSksXG4pIGFzIHsgW1AgaW4gU2Fzc1R5cGVzXTogKHR5cGVvZiBzYXNzKVtQXSB9XG5cbmV4cG9ydCBjb25zdCBTYXNzVFJVRSA9IHNhc3Muc2Fzc1RydWVcbmV4cG9ydCB0eXBlIFNhc3NUUlVFID0gdHlwZW9mIFNhc3NUUlVFXG5cbmV4cG9ydCBjb25zdCBTYXNzRkFMU0UgPSBzYXNzLnNhc3NGYWxzZVxuZXhwb3J0IHR5cGUgU2Fzc0ZBTFNFID0gdHlwZW9mIFNhc3NGQUxTRVxuXG5leHBvcnQgY29uc3QgU2Fzc05VTEwgPSBzYXNzLnNhc3NOdWxsXG5leHBvcnQgdHlwZSBTYXNzTlVMTCA9IHR5cGVvZiBTYXNzTlVMTFxuXG5leHBvcnQgY29uc3QgeyBTYXNzTnVtYmVyIH0gPSBTYXNzVHlwZXNcbmV4cG9ydCB0eXBlIFNhc3NOdW1iZXIgPSBJbnN0YW5jZVR5cGU8dHlwZW9mIFNhc3NOdW1iZXI+XG5cbmV4cG9ydCBjb25zdCB7IFNhc3NTdHJpbmcgfSA9IFNhc3NUeXBlc1xuZXhwb3J0IHR5cGUgU2Fzc1N0cmluZyA9IEluc3RhbmNlVHlwZTx0eXBlb2YgU2Fzc1N0cmluZz5cblxuZXhwb3J0IGNvbnN0IHsgU2Fzc0NvbG9yIH0gPSBTYXNzVHlwZXNcbmV4cG9ydCB0eXBlIFNhc3NDb2xvciA9IEluc3RhbmNlVHlwZTx0eXBlb2YgU2Fzc0NvbG9yPlxuXG5leHBvcnQgY29uc3QgeyBTYXNzTGlzdCB9ID0gU2Fzc1R5cGVzXG5leHBvcnQgdHlwZSBTYXNzTGlzdCA9IEluc3RhbmNlVHlwZTx0eXBlb2YgU2Fzc0xpc3Q+XG5cbmV4cG9ydCBjb25zdCB7IFNhc3NNYXAgfSA9IFNhc3NUeXBlc1xuZXhwb3J0IHR5cGUgU2Fzc01hcCA9IEluc3RhbmNlVHlwZTx0eXBlb2YgU2Fzc01hcD5cblxuZXhwb3J0IGNvbnN0IFNhc3NCb29sZWFuID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKFNhc3NUUlVFKS5jb25zdHJ1Y3RvciBhcyB0eXBlb2Ygc2Fzcy5TYXNzQm9vbGVhblxuZXhwb3J0IHR5cGUgU2Fzc0Jvb2xlYW4gPSBzYXNzLlNhc3NCb29sZWFuXG5cbmV4cG9ydCB0eXBlIFNhc3NUeXBlID1cblx0fCBJbnN0YW5jZVR5cGU8dHlwZW9mIFNhc3NUeXBlcyBleHRlbmRzIFJlY29yZDxhbnksIGluZmVyIFI+ID8gUiA6IG5ldmVyPlxuXHR8IFNhc3NCb29sZWFuXG4iLCIvLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IGNocm9tYSBmcm9tICdjaHJvbWEtanMnXG5cbi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQge1xuXHR0eXBlIFNhc3NUeXBlLFxuXHRTYXNzQm9vbGVhbixcblx0U2Fzc051bWJlcixcblx0U2Fzc1N0cmluZyxcblx0U2Fzc0NvbG9yLFxuXHRTYXNzTGlzdCxcblx0U2Fzc01hcCxcblx0U2Fzc1RSVUUsXG5cdFNhc3NGQUxTRSxcblx0U2Fzc05VTEwsXG5cdHR5cGUgSmF2YVNjcmlwdFR5cGUsXG5cdHR5cGUgTnVtYmVyV2l0aFVuaXQsXG59IGZyb20gJy4vdHlwZXMnXG5cbi8vIEhlbHBlciBmdW5jdGlvbnMuXG5mdW5jdGlvbiBpc09iamVjdCh2YWx1ZT86IHVua25vd24pOiB2YWx1ZSBpcyBvYmplY3Qge1xuXHRjb25zdCB0eXBlID0gdHlwZW9mIHZhbHVlXG5cblx0cmV0dXJuICEhdmFsdWUgJiYgKHR5cGUgPT09ICdvYmplY3QnIHx8IHR5cGUgPT09ICdmdW5jdGlvbicpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXNzVG9KYXZhU2NyaXB0VHlwZShzYXNzVmFsdWU6IFNhc3NUeXBlKTogSmF2YVNjcmlwdFR5cGUge1xuXHRzd2l0Y2ggKHRydWUpIHtcblx0Y2FzZSBzYXNzVmFsdWUgaW5zdGFuY2VvZiBTYXNzQm9vbGVhbjoge1xuXHRcdHJldHVybiBzYXNzVmFsdWUudmFsdWVcblx0fVxuXG5cdGNhc2Ugc2Fzc1ZhbHVlIGluc3RhbmNlb2YgU2Fzc1N0cmluZzoge1xuXHRcdHJldHVybiBzYXNzVmFsdWUudGV4dFxuXHR9XG5cblx0Y2FzZSBzYXNzVmFsdWUgaW5zdGFuY2VvZiBTYXNzTnVtYmVyOiB7XG5cdFx0Y29uc3QgeyB2YWx1ZSwgbnVtZXJhdG9yVW5pdHMsIGRlbm9taW5hdG9yVW5pdHMgfSA9IHNhc3NWYWx1ZVxuXG5cdFx0Y29uc3QgdW5pdCA9IHNhc3NWYWx1ZS5oYXNVbml0c1xuXHRcdFx0PyBudW1lcmF0b3JVbml0cy5qb2luKCcqJykgKyAoZGVub21pbmF0b3JVbml0cy5zaXplID4gMCA/IGAvJHtkZW5vbWluYXRvclVuaXRzLmpvaW4oJyonKX1gIDogJycpXG5cdFx0XHQ6ICcnXG5cblx0XHRyZXR1cm4gdW5pdCA/IHsgdmFsdWUsIHVuaXQgfSA6IHZhbHVlXG5cdH1cblxuXHRjYXNlIHNhc3NWYWx1ZSBpbnN0YW5jZW9mIFNhc3NDb2xvcjoge1xuXHRcdGNvbnN0IHsgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEgfSA9IHNhc3NWYWx1ZVxuXG5cdFx0cmV0dXJuIGNocm9tYShyZWQsIGdyZWVuLCBibHVlLCBhbHBoYSlcblx0fVxuXG5cdGNhc2Ugc2Fzc1ZhbHVlIGluc3RhbmNlb2YgU2Fzc0xpc3Q6IHtcblx0XHRjb25zdCBsaXN0VmFsdWUgPSBzYXNzVmFsdWUuYXNMaXN0XG5cdFx0Y29uc3QgbGVuZ3RoID0gbGlzdFZhbHVlLnNpemVcblx0XHRjb25zdCBhcnJheSA9IEFycmF5KGxlbmd0aCkuZmlsbCh1bmRlZmluZWQpIGFzIFNhc3NUeXBlW11cblxuXHRcdGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcblx0XHRcdGFycmF5W2luZGV4XSA9IGxpc3RWYWx1ZS5nZXQoaW5kZXgpIGFzIFNhc3NUeXBlXG5cdFx0fVxuXG5cdFx0cmV0dXJuIGFycmF5Lm1hcCh2YWx1ZSA9PiBzYXNzVG9KYXZhU2NyaXB0VHlwZSh2YWx1ZSkpXG5cdH1cblxuXHRjYXNlIHNhc3NWYWx1ZSBpbnN0YW5jZW9mIFNhc3NNYXA6IHtcblx0XHRjb25zdCBtYXBWYWx1ZSA9IHNhc3NWYWx1ZS5jb250ZW50c1xuXG5cdFx0Y29uc3QgZW50cmllcyA9IEFycmF5LmZyb20obWFwVmFsdWUuZW50cmllcygpIGFzIEl0ZXJhYmxlSXRlcmF0b3I8W1Nhc3NUeXBlLCBTYXNzVHlwZV0+KVxuXHRcdFx0Lm1hcCgoWyBrZXksIHZhbHVlIF0pID0+IFsgc2Fzc1RvSmF2YVNjcmlwdFR5cGUoa2V5KSwgc2Fzc1RvSmF2YVNjcmlwdFR5cGUodmFsdWUpIF0pXG5cblx0XHRyZXR1cm4gbmV3IE1hcChlbnRyaWVzIGFzIFtKYXZhU2NyaXB0VHlwZSwgSmF2YVNjcmlwdFR5cGVdW10pXG5cdH1cblxuXHRkZWZhdWx0OiB7XG5cdFx0cmV0dXJuIG51bGxcblx0fVxuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBqYXZhU2NyaXB0VG9TYXNzVHlwZShyYXdWYWx1ZTogSmF2YVNjcmlwdFR5cGUpOiBTYXNzVHlwZSB7XG5cdHN3aXRjaCAodHJ1ZSkge1xuXHRjYXNlIHR5cGVvZiByYXdWYWx1ZSA9PT0gJ2Jvb2xlYW4nOiB7XG5cdFx0Y29uc3QgYm9vbGVhblZhbHVlID0gcmF3VmFsdWVcblxuXHRcdHJldHVybiBib29sZWFuVmFsdWUgPyBTYXNzVFJVRSA6IFNhc3NGQUxTRVxuXHR9XG5cblx0Y2FzZSB0eXBlb2YgcmF3VmFsdWUgPT09ICdudW1iZXInOiB7XG5cdFx0Y29uc3QgbnVtYmVyVmFsdWUgPSByYXdWYWx1ZVxuXG5cdFx0cmV0dXJuIG5ldyBTYXNzTnVtYmVyKG51bWJlclZhbHVlKVxuXHR9XG5cblx0Y2FzZSBpc09iamVjdChyYXdWYWx1ZSkgJiYgWyAndmFsdWUnLCAndW5pdCcgXS5ldmVyeShwcm9wZXJ0eUtleSA9PiBwcm9wZXJ0eUtleSBpbiByYXdWYWx1ZSk6IHtcblx0XHRjb25zdCB7IHZhbHVlLCB1bml0IH0gPSByYXdWYWx1ZSBhcyBOdW1iZXJXaXRoVW5pdFxuXG5cdFx0cmV0dXJuIG5ldyBTYXNzTnVtYmVyKHZhbHVlLCB1bml0KVxuXHR9XG5cblx0Y2FzZSB0eXBlb2YgcmF3VmFsdWUgPT09ICdzdHJpbmcnOiB7XG5cdFx0Y29uc3Qgc3RyaW5nVmFsdWUgPSByYXdWYWx1ZVxuXG5cdFx0cmV0dXJuIG5ldyBTYXNzU3RyaW5nKHN0cmluZ1ZhbHVlKVxuXHR9XG5cblx0Y2FzZSBpc09iamVjdChyYXdWYWx1ZSkgJiYgJ19yZ2InIGluIHJhd1ZhbHVlOiB7XG5cdFx0Y29uc3QgWyByZWQsIGdyZWVuLCBibHVlLCBhbHBoYSBdID0gcmF3VmFsdWUucmdiYSgpIGFzIG51bWJlcltdXG5cblx0XHRyZXR1cm4gbmV3IFNhc3NDb2xvcih7IHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhIH0pXG5cdH1cblxuXHRjYXNlIEFycmF5LmlzQXJyYXkocmF3VmFsdWUpOiB7XG5cdFx0cmV0dXJuIG5ldyBTYXNzTGlzdChyYXdWYWx1ZS5tYXAodmFsdWUgPT4gamF2YVNjcmlwdFRvU2Fzc1R5cGUodmFsdWUpKSlcblx0fVxuXG5cdGNhc2UgcmF3VmFsdWUgaW5zdGFuY2VvZiBNYXA6IHtcblx0XHRjb25zdCBtYXBWYWx1ZSA9IHJhd1ZhbHVlIGFzIE1hcDxKYXZhU2NyaXB0VHlwZSwgSmF2YVNjcmlwdFR5cGU+XG5cdFx0Y29uc3Qgc2Fzc01hcCA9IG5ldyBTYXNzTWFwKClcblxuXHRcdGNvbnN0IGNvbnZlcnRlZCA9IEFycmF5LmZyb20obWFwVmFsdWUuZW50cmllcygpKVxuXHRcdFx0Lm1hcChlbnRyeSA9PiBlbnRyeS5tYXAoamF2YVNjcmlwdFRvU2Fzc1R5cGUpKSBhcyBbU2Fzc1R5cGUsIFNhc3NUeXBlXVtdXG5cblx0XHRmb3IgKGNvbnN0IFsga2V5LCB2YWx1ZSBdIG9mIGNvbnZlcnRlZCkge1xuXHRcdFx0c2Fzc01hcC5jb250ZW50cy5zZXQoa2V5LCB2YWx1ZSlcblx0XHR9XG5cblx0XHRyZXR1cm4gc2Fzc01hcFxuXHR9XG5cblx0ZGVmYXVsdDoge1xuXHRcdHJldHVybiBTYXNzTlVMTFxuXHR9XG5cdH1cbn1cbiIsImltcG9ydCAncmVmbGVjdC1tZXRhZGF0YSdcblxuLy8gVGhpcmQtcGFydHkgbW9kdWxlcy5cbmltcG9ydCB7IEN1c3RvbUZ1bmN0aW9uIH0gZnJvbSAnc2FzcydcblxuLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCB0eXBlIHsgU2Fzc1R5cGUsIEphdmFTY3JpcHRUeXBlIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB7IHNhc3NUb0phdmFTY3JpcHRUeXBlLCBqYXZhU2NyaXB0VG9TYXNzVHlwZSB9IGZyb20gJy4vdHlwZS1jb252ZXJ0ZXInXG5cbi8vIFR5cGUgZGVmaW5pdGlvbnMuXG5leHBvcnQgaW50ZXJmYWNlIEJyaWRnZWRGdW5jdGlvbiB7XG5cdGV4ZWN1dGUoKTogSmF2YVNjcmlwdFR5cGUgfCBQcm9taXNlPEphdmFTY3JpcHRUeXBlPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnN0cnVjdG9yIHtcblx0bmV3ICguLi5hcmdzOiBhbnlbXSk6IEJyaWRnZWRGdW5jdGlvblxufVxuXG4vLyBDb25zdGFudHMuXG5jb25zdCBLZXlPZlNpZ25hdHVyZSA9IFN5bWJvbCgnQGNpY2hvbC9zYXNzLWJyaWRnZTo6S2V5T2ZTaWduYXR1cmUnKVxuXG5leHBvcnQgZnVuY3Rpb24gc2Fzc0Z1bmN0aW9uKGRlZmluaXRpb246IHN0cmluZyk6IENsYXNzRGVjb3JhdG9yIHtcblx0cmV0dXJuICg8VCBleHRlbmRzIENvbnN0cnVjdG9yPih0YXJnZXQ6IFQpID0+IHtcblx0XHRSZWZsZWN0LmRlZmluZU1ldGFkYXRhKEtleU9mU2lnbmF0dXJlLCBkZWZpbml0aW9uLCB0YXJnZXQpXG5cblx0XHRyZXR1cm4gdGFyZ2V0XG5cdH0pIGFzIENsYXNzRGVjb3JhdG9yXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRGdW5jdGlvbnMoXG5cdC4uLm1vZHVsZUltcG9ydHM6IFByb21pc2U8eyBkZWZhdWx0OiBDb25zdHJ1Y3RvciB9PltdXG4pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIEN1c3RvbUZ1bmN0aW9uPCdhc3luYyc+Pj4ge1xuXHRjb25zdCBtb2R1bGVzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG5cdFx0bW9kdWxlSW1wb3J0cy5tYXAobW9kdWxlID0+IChcblx0XHRcdFByb21pc2UucmVzb2x2ZShtb2R1bGUpXG5cdFx0XHRcdC50aGVuKG1vZHVsZSA9PiBtb2R1bGUuZGVmYXVsdClcblx0XHQpKSxcblx0KVxuXG5cdGNvbnN0IGVudHJpZXMgPSBtb2R1bGVzLm1hcChtb2R1bGUgPT4ge1xuXHRcdGNvbnN0IHNpZ25hdHVyZSA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoS2V5T2ZTaWduYXR1cmUsIG1vZHVsZSkgYXMgc3RyaW5nXG5cblx0XHRhc3luYyBmdW5jdGlvbiBjdXN0b21GdW5jdGlvbihyYXdBcmdzOiBTYXNzVHlwZVtdKTogUHJvbWlzZTxTYXNzVHlwZT4ge1xuXHRcdFx0Y29uc3QgYXJncyA9IHJhd0FyZ3MubWFwKHNhc3NUb0phdmFTY3JpcHRUeXBlKVxuXHRcdFx0Y29uc3QgcmVzdWx0ID0gYXdhaXQgUmVmbGVjdC5jb25zdHJ1Y3QobW9kdWxlLCBhcmdzKS5leGVjdXRlKClcblxuXHRcdFx0cmV0dXJuIGphdmFTY3JpcHRUb1Nhc3NUeXBlKHJlc3VsdClcblx0XHR9XG5cblx0XHRyZXR1cm4gWyBzaWduYXR1cmUsIGN1c3RvbUZ1bmN0aW9uIF0gYXMgY29uc3Rcblx0fSlcblxuXHRyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKGVudHJpZXMpXG59XG4iXSwibmFtZXMiOlsiU2Fzc1R5cGVzIiwiX09iamVjdCRmcm9tRW50cmllcyIsIl9tYXBJbnN0YW5jZVByb3BlcnR5IiwiX2NvbnRleHQiLCJfZmlsdGVySW5zdGFuY2VQcm9wZXJ0eSIsIl9jb250ZXh0MiIsIl9jb250ZXh0MyIsIl9jb250ZXh0NCIsIl9jb250ZXh0NSIsIl9PYmplY3Qka2V5cyIsInNhc3MiLCJjYWxsIiwicHJvcGVydHlLZXkiLCJfc3RhcnRzV2l0aEluc3RhbmNlUHJvcGVydHkiLCJjb25zdHJ1Y3RvciIsIk9iamVjdCIsInByb3RvdHlwZSIsImlzUHJvdG90eXBlT2YiLCJWYWx1ZSIsIm5hbWUiLCJTYXNzVFJVRSIsInNhc3NUcnVlIiwiU2Fzc0ZBTFNFIiwic2Fzc0ZhbHNlIiwiU2Fzc05VTEwiLCJzYXNzTnVsbCIsIlNhc3NOdW1iZXIiLCJTYXNzU3RyaW5nIiwiU2Fzc0NvbG9yIiwiU2Fzc0xpc3QiLCJTYXNzTWFwIiwiU2Fzc0Jvb2xlYW4iLCJfT2JqZWN0JGdldFByb3RvdHlwZU9mIiwiaXNPYmplY3QiLCJ2YWx1ZSIsInR5cGUiLCJzYXNzVG9KYXZhU2NyaXB0VHlwZSIsInNhc3NWYWx1ZSIsInRleHQiLCJudW1lcmF0b3JVbml0cyIsImRlbm9taW5hdG9yVW5pdHMiLCJ1bml0IiwiaGFzVW5pdHMiLCJqb2luIiwic2l6ZSIsInJlZCIsImdyZWVuIiwiYmx1ZSIsImFscGhhIiwiY2hyb21hIiwibGlzdFZhbHVlIiwiYXNMaXN0IiwibGVuZ3RoIiwiYXJyYXkiLCJfZmlsbEluc3RhbmNlUHJvcGVydHkiLCJBcnJheSIsInVuZGVmaW5lZCIsImluZGV4IiwiZ2V0IiwibWFwVmFsdWUiLCJjb250ZW50cyIsImVudHJpZXMiLCJfQXJyYXkkZnJvbSIsIl9lbnRyaWVzSW5zdGFuY2VQcm9wZXJ0eSIsImtleSIsIl9NYXAiLCJqYXZhU2NyaXB0VG9TYXNzVHlwZSIsInJhd1ZhbHVlIiwiYm9vbGVhblZhbHVlIiwibnVtYmVyVmFsdWUiLCJfZXZlcnlJbnN0YW5jZVByb3BlcnR5Iiwic3RyaW5nVmFsdWUiLCJyZ2JhIiwiX0FycmF5JGlzQXJyYXkiLCJzYXNzTWFwIiwiY29udmVydGVkIiwiZW50cnkiLCJzZXQiLCJLZXlPZlNpZ25hdHVyZSIsIl9TeW1ib2wiLCJzYXNzRnVuY3Rpb24iLCJkZWZpbml0aW9uIiwidGFyZ2V0IiwiUmVmbGVjdCIsImRlZmluZU1ldGFkYXRhIiwiZ2V0RnVuY3Rpb25zIiwibW9kdWxlSW1wb3J0cyIsIm1vZHVsZXMiLCJfUHJvbWlzZSIsImFsbCIsIm1vZHVsZSIsInJlc29sdmUiLCJ0aGVuIiwiZGVmYXVsdCIsInNpZ25hdHVyZSIsImdldE1ldGFkYXRhIiwiY3VzdG9tRnVuY3Rpb24iLCJyYXdBcmdzIiwiYXJncyIsInJlc3VsdCIsIl9SZWZsZWN0JGNvbnN0cnVjdCIsImV4ZWN1dGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUtBOztBQWNBLE1BQU1BLFNBQVMsR0FBR0MsbUJBQUEsQ0FDakJDLG9CQUFBLENBQUFDLFFBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsU0FBQSxHQUFBRCx1QkFBQSxDQUFBRSxTQUFBLEdBQUFKLG9CQUFBLENBQUFLLFNBQUEsR0FBQUgsdUJBQUEsQ0FBQUksU0FBQSxHQUFBQyxZQUFBLENBQVlDLGVBQUksQ0FBQyxDQUFBLENBQUFDLElBQUEsQ0FBQUgsU0FBQSxFQUNSSSxXQUFXLElBQUlDLDJCQUFBLENBQUFELFdBQVcsQ0FBQUQsQ0FBQUEsSUFBQSxDQUFYQyxXQUFXLEVBQVksTUFBTSxDQUFDLENBQUMsQ0FBQSxDQUFBRCxJQUFBLENBQUFKLFNBQUEsRUFDakRLLFdBQVcsSUFBSUYsZUFBSSxDQUFDRSxXQUFXLENBQWMsQ0FBQyxDQUFBLENBQUFELElBQUEsQ0FBQUwsU0FBQSxFQUMzQ1EsV0FBVyxJQUFJLE9BQU9BLFdBQVcsS0FBSyxVQUFVLENBQUMsQ0FBQSxDQUFBSCxJQUFBLENBQUFOLFNBQUEsRUFDakRTLFdBQVcsSUFBSUMsTUFBTSxD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
@@ -0,0 +1,27 @@
1
+ import type { Color } from 'chroma-js';
2
+ import { CustomFunction } from 'sass';
3
+
4
+ export declare interface BridgedFunction {
5
+ execute(): JavaScriptType | Promise<JavaScriptType>;
6
+ }
7
+
8
+ export declare interface Constructor {
9
+ new (...args: any[]): BridgedFunction;
10
+ }
11
+
12
+ export declare function getFunctions(...moduleImports: Promise<{
13
+ default: Constructor;
14
+ }>[]): Promise<Record<string, CustomFunction<'async'>>>;
15
+
16
+ declare type JavaScriptType<Base = Primitives | Color | NumberWithUnit> = Base | JavaScriptType<Base>[] | Map<JavaScriptType<Base>, JavaScriptType<Base>>;
17
+
18
+ declare type NumberWithUnit = {
19
+ value: number;
20
+ unit: string;
21
+ };
22
+
23
+ declare type Primitives = boolean | number | string | null;
24
+
25
+ export declare function sassFunction(definition: string): ClassDecorator;
26
+
27
+ export { }
@@ -0,0 +1,27 @@
1
+ import type { Color } from 'chroma-js';
2
+ import { CustomFunction } from 'sass';
3
+
4
+ export declare interface BridgedFunction {
5
+ execute(): JavaScriptType | Promise<JavaScriptType>;
6
+ }
7
+
8
+ export declare interface Constructor {
9
+ new (...args: any[]): BridgedFunction;
10
+ }
11
+
12
+ export declare function getFunctions(...moduleImports: Promise<{
13
+ default: Constructor;
14
+ }>[]): Promise<Record<string, CustomFunction<'async'>>>;
15
+
16
+ declare type JavaScriptType<Base = Primitives | Color | NumberWithUnit> = Base | JavaScriptType<Base>[] | Map<JavaScriptType<Base>, JavaScriptType<Base>>;
17
+
18
+ declare type NumberWithUnit = {
19
+ value: number;
20
+ unit: string;
21
+ };
22
+
23
+ declare type Primitives = boolean | number | string | null;
24
+
25
+ export declare function sassFunction(definition: string): ClassDecorator;
26
+
27
+ export { }
package/dists/index.js ADDED
@@ -0,0 +1,191 @@
1
+ import _Symbol from 'core-js-pure/stable/symbol/index.js';
2
+ import _Promise from 'core-js-pure/stable/promise/index.js';
3
+ import _mapInstanceProperty from 'core-js-pure/stable/instance/map.js';
4
+ import _Reflect$construct from 'core-js-pure/stable/reflect/construct.js';
5
+ import _Object$fromEntries from 'core-js-pure/stable/object/from-entries.js';
6
+ import 'reflect-metadata';
7
+ import _fillInstanceProperty from 'core-js-pure/stable/instance/fill.js';
8
+ import _Array$from from 'core-js-pure/stable/array/from.js';
9
+ import _entriesInstanceProperty from 'core-js-pure/stable/instance/entries.js';
10
+ import _Map from 'core-js-pure/stable/map/index.js';
11
+ import _everyInstanceProperty from 'core-js-pure/stable/instance/every.js';
12
+ import _Array$isArray from 'core-js-pure/stable/array/is-array.js';
13
+ import chroma from 'chroma-js';
14
+ import _filterInstanceProperty from 'core-js-pure/stable/instance/filter.js';
15
+ import _Object$keys from 'core-js-pure/stable/object/keys.js';
16
+ import _startsWithInstanceProperty from 'core-js-pure/stable/instance/starts-with.js';
17
+ import _Object$getPrototypeOf from 'core-js-pure/stable/object/get-prototype-of.js';
18
+ import * as sass from 'sass';
19
+ import { Value } from 'sass';
20
+
21
+ var _context, _context2, _context3, _context4, _context5;
22
+
23
+ // Type definitions.
24
+
25
+ const SassTypes = _Object$fromEntries(_mapInstanceProperty(_context = _filterInstanceProperty(_context2 = _filterInstanceProperty(_context3 = _mapInstanceProperty(_context4 = _filterInstanceProperty(_context5 = _Object$keys(sass)).call(_context5, propertyKey => _startsWithInstanceProperty(propertyKey).call(propertyKey, 'Sass'))).call(_context4, propertyKey => sass[propertyKey])).call(_context3, constructor => typeof constructor === 'function')).call(_context2, constructor => Object.prototype.isPrototypeOf.call(Value.prototype, constructor.prototype))).call(_context, constructor => [constructor.name, constructor]));
26
+ const SassTRUE = sass.sassTrue;
27
+ const SassFALSE = sass.sassFalse;
28
+ const SassNULL = sass.sassNull;
29
+ const {
30
+ SassNumber
31
+ } = SassTypes;
32
+ const {
33
+ SassString
34
+ } = SassTypes;
35
+ const {
36
+ SassColor
37
+ } = SassTypes;
38
+ const {
39
+ SassList
40
+ } = SassTypes;
41
+ const {
42
+ SassMap
43
+ } = SassTypes;
44
+ const SassBoolean = _Object$getPrototypeOf(SassTRUE).constructor;
45
+
46
+ // Helper functions.
47
+ function isObject(value) {
48
+ const type = typeof value;
49
+ return !!value && (type === 'object' || type === 'function');
50
+ }
51
+ function sassToJavaScriptType(sassValue) {
52
+ switch (true) {
53
+ case sassValue instanceof SassBoolean:
54
+ {
55
+ return sassValue.value;
56
+ }
57
+ case sassValue instanceof SassString:
58
+ {
59
+ return sassValue.text;
60
+ }
61
+ case sassValue instanceof SassNumber:
62
+ {
63
+ const {
64
+ value,
65
+ numeratorUnits,
66
+ denominatorUnits
67
+ } = sassValue;
68
+ const unit = sassValue.hasUnits ? numeratorUnits.join('*') + (denominatorUnits.size > 0 ? `/${denominatorUnits.join('*')}` : '') : '';
69
+ return unit ? {
70
+ value,
71
+ unit
72
+ } : value;
73
+ }
74
+ case sassValue instanceof SassColor:
75
+ {
76
+ const {
77
+ red,
78
+ green,
79
+ blue,
80
+ alpha
81
+ } = sassValue;
82
+ return chroma(red, green, blue, alpha);
83
+ }
84
+ case sassValue instanceof SassList:
85
+ {
86
+ var _context;
87
+ const listValue = sassValue.asList;
88
+ const length = listValue.size;
89
+ const array = _fillInstanceProperty(_context = Array(length)).call(_context, undefined);
90
+ for (let index = 0; index < length; index += 1) {
91
+ array[index] = listValue.get(index);
92
+ }
93
+ return _mapInstanceProperty(array).call(array, value => sassToJavaScriptType(value));
94
+ }
95
+ case sassValue instanceof SassMap:
96
+ {
97
+ var _context2;
98
+ const mapValue = sassValue.contents;
99
+ const entries = _mapInstanceProperty(_context2 = _Array$from(_entriesInstanceProperty(mapValue).call(mapValue))).call(_context2, ([key, value]) => [sassToJavaScriptType(key), sassToJavaScriptType(value)]);
100
+ return new _Map(entries);
101
+ }
102
+ default:
103
+ {
104
+ return null;
105
+ }
106
+ }
107
+ }
108
+ function javaScriptToSassType(rawValue) {
109
+ var _context3;
110
+ switch (true) {
111
+ case typeof rawValue === 'boolean':
112
+ {
113
+ const booleanValue = rawValue;
114
+ return booleanValue ? SassTRUE : SassFALSE;
115
+ }
116
+ case typeof rawValue === 'number':
117
+ {
118
+ const numberValue = rawValue;
119
+ return new SassNumber(numberValue);
120
+ }
121
+ case isObject(rawValue) && _everyInstanceProperty(_context3 = ['value', 'unit']).call(_context3, propertyKey => propertyKey in rawValue):
122
+ {
123
+ const {
124
+ value,
125
+ unit
126
+ } = rawValue;
127
+ return new SassNumber(value, unit);
128
+ }
129
+ case typeof rawValue === 'string':
130
+ {
131
+ const stringValue = rawValue;
132
+ return new SassString(stringValue);
133
+ }
134
+ case isObject(rawValue) && '_rgb' in rawValue:
135
+ {
136
+ const [red, green, blue, alpha] = rawValue.rgba();
137
+ return new SassColor({
138
+ red,
139
+ green,
140
+ blue,
141
+ alpha
142
+ });
143
+ }
144
+ case _Array$isArray(rawValue):
145
+ {
146
+ return new SassList(_mapInstanceProperty(rawValue).call(rawValue, value => javaScriptToSassType(value)));
147
+ }
148
+ case rawValue instanceof _Map:
149
+ {
150
+ var _context4;
151
+ const mapValue = rawValue;
152
+ const sassMap = new SassMap();
153
+ const converted = _mapInstanceProperty(_context4 = _Array$from(_entriesInstanceProperty(mapValue).call(mapValue))).call(_context4, entry => _mapInstanceProperty(entry).call(entry, javaScriptToSassType));
154
+ for (const [key, value] of converted) {
155
+ sassMap.contents.set(key, value);
156
+ }
157
+ return sassMap;
158
+ }
159
+ default:
160
+ {
161
+ return SassNULL;
162
+ }
163
+ }
164
+ }
165
+
166
+ // Type definitions.
167
+
168
+ // Constants.
169
+ const KeyOfSignature = _Symbol('@cichol/sass-bridge::KeyOfSignature');
170
+ function sassFunction(definition) {
171
+ return target => {
172
+ Reflect.defineMetadata(KeyOfSignature, definition, target);
173
+ return target;
174
+ };
175
+ }
176
+ async function getFunctions(...moduleImports) {
177
+ const modules = await _Promise.all(_mapInstanceProperty(moduleImports).call(moduleImports, module => _Promise.resolve(module).then(module => module.default)));
178
+ const entries = _mapInstanceProperty(modules).call(modules, module => {
179
+ const signature = Reflect.getMetadata(KeyOfSignature, module);
180
+ async function customFunction(rawArgs) {
181
+ const args = _mapInstanceProperty(rawArgs).call(rawArgs, sassToJavaScriptType);
182
+ const result = await _Reflect$construct(module, args).execute();
183
+ return javaScriptToSassType(result);
184
+ }
185
+ return [signature, customFunction];
186
+ });
187
+ return _Object$fromEntries(entries);
188
+ }
189
+
190
+ export { getFunctions, sassFunction };
191
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZXMvdHlwZXMudHMiLCIuLi9zb3VyY2VzL3R5cGUtY29udmVydGVyLnRzIiwiLi4vc291cmNlcy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IHR5cGUgeyBDb2xvciB9IGZyb20gJ2Nocm9tYS1qcydcbmltcG9ydCAqIGFzIHNhc3MgZnJvbSAnc2FzcydcbmltcG9ydCB7IFZhbHVlIH0gZnJvbSAnc2FzcydcblxuLy8gVHlwZSBkZWZpbml0aW9ucy5cbmV4cG9ydCB0eXBlIFByaW1pdGl2ZXMgPSBib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nIHwgbnVsbFxuXG5leHBvcnQgdHlwZSBOdW1iZXJXaXRoVW5pdCA9IHsgdmFsdWU6IG51bWJlciwgdW5pdDogc3RyaW5nIH1cblxuZXhwb3J0IHR5cGUgSmF2YVNjcmlwdFR5cGU8QmFzZSA9IFByaW1pdGl2ZXMgfCBDb2xvciB8IE51bWJlcldpdGhVbml0PiA9XG5cdHwgQmFzZVxuXHR8IEphdmFTY3JpcHRUeXBlPEJhc2U+W11cblx0fCBNYXA8SmF2YVNjcmlwdFR5cGU8QmFzZT4sIEphdmFTY3JpcHRUeXBlPEJhc2U+PlxuXG50eXBlIEZpbHRlclNhc3NQcmVmaXg8VCBleHRlbmRzIHN0cmluZz4gPSBUIGV4dGVuZHMgYFNhc3Mke2luZmVyIFJ9YCA/IFIgOiBuZXZlclxuXG50eXBlIFNhc3NUeXBlcyA9IEV4Y2x1ZGU8YFNhc3Mke0ZpbHRlclNhc3NQcmVmaXg8a2V5b2YgdHlwZW9mIHNhc3M+fWAsIGBTYXNzJHsnQm9vbGVhbicgfCAnQ2FsY3VsYXRpb24nfWA+XG5cbmNvbnN0IFNhc3NUeXBlcyA9IE9iamVjdC5mcm9tRW50cmllcyhcblx0T2JqZWN0LmtleXMoc2Fzcylcblx0XHQuZmlsdGVyKHByb3BlcnR5S2V5ID0+IHByb3BlcnR5S2V5LnN0YXJ0c1dpdGgoJ1Nhc3MnKSlcblx0XHQubWFwKHByb3BlcnR5S2V5ID0+IHNhc3NbcHJvcGVydHlLZXkgYXMgU2Fzc1R5cGVzXSlcblx0XHQuZmlsdGVyKGNvbnN0cnVjdG9yID0+IHR5cGVvZiBjb25zdHJ1Y3RvciA9PT0gJ2Z1bmN0aW9uJylcblx0XHQuZmlsdGVyKGNvbnN0cnVjdG9yID0+IE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZi5jYWxsKFZhbHVlLnByb3RvdHlwZSwgY29uc3RydWN0b3IucHJvdG90eXBlKSlcblx0XHQubWFwKGNvbnN0cnVjdG9yID0+IFsgY29uc3RydWN0b3IubmFtZSwgY29uc3RydWN0b3IgXSBhcyBbU2Fzc1R5cGVzLCAodHlwZW9mIHNhc3MpW1Nhc3NUeXBlc11dKSxcbikgYXMgeyBbUCBpbiBTYXNzVHlwZXNdOiAodHlwZW9mIHNhc3MpW1BdIH1cblxuZXhwb3J0IGNvbnN0IFNhc3NUUlVFID0gc2Fzcy5zYXNzVHJ1ZVxuZXhwb3J0IHR5cGUgU2Fzc1RSVUUgPSB0eXBlb2YgU2Fzc1RSVUVcblxuZXhwb3J0IGNvbnN0IFNhc3NGQUxTRSA9IHNhc3Muc2Fzc0ZhbHNlXG5leHBvcnQgdHlwZSBTYXNzRkFMU0UgPSB0eXBlb2YgU2Fzc0ZBTFNFXG5cbmV4cG9ydCBjb25zdCBTYXNzTlVMTCA9IHNhc3Muc2Fzc051bGxcbmV4cG9ydCB0eXBlIFNhc3NOVUxMID0gdHlwZW9mIFNhc3NOVUxMXG5cbmV4cG9ydCBjb25zdCB7IFNhc3NOdW1iZXIgfSA9IFNhc3NUeXBlc1xuZXhwb3J0IHR5cGUgU2Fzc051bWJlciA9IEluc3RhbmNlVHlwZTx0eXBlb2YgU2Fzc051bWJlcj5cblxuZXhwb3J0IGNvbnN0IHsgU2Fzc1N0cmluZyB9ID0gU2Fzc1R5cGVzXG5leHBvcnQgdHlwZSBTYXNzU3RyaW5nID0gSW5zdGFuY2VUeXBlPHR5cGVvZiBTYXNzU3RyaW5nPlxuXG5leHBvcnQgY29uc3QgeyBTYXNzQ29sb3IgfSA9IFNhc3NUeXBlc1xuZXhwb3J0IHR5cGUgU2Fzc0NvbG9yID0gSW5zdGFuY2VUeXBlPHR5cGVvZiBTYXNzQ29sb3I+XG5cbmV4cG9ydCBjb25zdCB7IFNhc3NMaXN0IH0gPSBTYXNzVHlwZXNcbmV4cG9ydCB0eXBlIFNhc3NMaXN0ID0gSW5zdGFuY2VUeXBlPHR5cGVvZiBTYXNzTGlzdD5cblxuZXhwb3J0IGNvbnN0IHsgU2Fzc01hcCB9ID0gU2Fzc1R5cGVzXG5leHBvcnQgdHlwZSBTYXNzTWFwID0gSW5zdGFuY2VUeXBlPHR5cGVvZiBTYXNzTWFwPlxuXG5leHBvcnQgY29uc3QgU2Fzc0Jvb2xlYW4gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoU2Fzc1RSVUUpLmNvbnN0cnVjdG9yIGFzIHR5cGVvZiBzYXNzLlNhc3NCb29sZWFuXG5leHBvcnQgdHlwZSBTYXNzQm9vbGVhbiA9IHNhc3MuU2Fzc0Jvb2xlYW5cblxuZXhwb3J0IHR5cGUgU2Fzc1R5cGUgPVxuXHR8IEluc3RhbmNlVHlwZTx0eXBlb2YgU2Fzc1R5cGVzIGV4dGVuZHMgUmVjb3JkPGFueSwgaW5mZXIgUj4gPyBSIDogbmV2ZXI+XG5cdHwgU2Fzc0Jvb2xlYW5cbiIsIi8vIFRoaXJkLXBhcnR5IG1vZHVsZXMuXG5pbXBvcnQgY2hyb21hIGZyb20gJ2Nocm9tYS1qcydcblxuLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCB7XG5cdHR5cGUgU2Fzc1R5cGUsXG5cdFNhc3NCb29sZWFuLFxuXHRTYXNzTnVtYmVyLFxuXHRTYXNzU3RyaW5nLFxuXHRTYXNzQ29sb3IsXG5cdFNhc3NMaXN0LFxuXHRTYXNzTWFwLFxuXHRTYXNzVFJVRSxcblx0U2Fzc0ZBTFNFLFxuXHRTYXNzTlVMTCxcblx0dHlwZSBKYXZhU2NyaXB0VHlwZSxcblx0dHlwZSBOdW1iZXJXaXRoVW5pdCxcbn0gZnJvbSAnLi90eXBlcydcblxuLy8gSGVscGVyIGZ1bmN0aW9ucy5cbmZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlPzogdW5rbm93bik6IHZhbHVlIGlzIG9iamVjdCB7XG5cdGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsdWVcblxuXHRyZXR1cm4gISF2YWx1ZSAmJiAodHlwZSA9PT0gJ29iamVjdCcgfHwgdHlwZSA9PT0gJ2Z1bmN0aW9uJylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNhc3NUb0phdmFTY3JpcHRUeXBlKHNhc3NWYWx1ZTogU2Fzc1R5cGUpOiBKYXZhU2NyaXB0VHlwZSB7XG5cdHN3aXRjaCAodHJ1ZSkge1xuXHRjYXNlIHNhc3NWYWx1ZSBpbnN0YW5jZW9mIFNhc3NCb29sZWFuOiB7XG5cdFx0cmV0dXJuIHNhc3NWYWx1ZS52YWx1ZVxuXHR9XG5cblx0Y2FzZSBzYXNzVmFsdWUgaW5zdGFuY2VvZiBTYXNzU3RyaW5nOiB7XG5cdFx0cmV0dXJuIHNhc3NWYWx1ZS50ZXh0XG5cdH1cblxuXHRjYXNlIHNhc3NWYWx1ZSBpbnN0YW5jZW9mIFNhc3NOdW1iZXI6IHtcblx0XHRjb25zdCB7IHZhbHVlLCBudW1lcmF0b3JVbml0cywgZGVub21pbmF0b3JVbml0cyB9ID0gc2Fzc1ZhbHVlXG5cblx0XHRjb25zdCB1bml0ID0gc2Fzc1ZhbHVlLmhhc1VuaXRzXG5cdFx0XHQ/IG51bWVyYXRvclVuaXRzLmpvaW4oJyonKSArIChkZW5vbWluYXRvclVuaXRzLnNpemUgPiAwID8gYC8ke2Rlbm9taW5hdG9yVW5pdHMuam9pbignKicpfWAgOiAnJylcblx0XHRcdDogJydcblxuXHRcdHJldHVybiB1bml0ID8geyB2YWx1ZSwgdW5pdCB9IDogdmFsdWVcblx0fVxuXG5cdGNhc2Ugc2Fzc1ZhbHVlIGluc3RhbmNlb2YgU2Fzc0NvbG9yOiB7XG5cdFx0Y29uc3QgeyByZWQsIGdyZWVuLCBibHVlLCBhbHBoYSB9ID0gc2Fzc1ZhbHVlXG5cblx0XHRyZXR1cm4gY2hyb21hKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKVxuXHR9XG5cblx0Y2FzZSBzYXNzVmFsdWUgaW5zdGFuY2VvZiBTYXNzTGlzdDoge1xuXHRcdGNvbnN0IGxpc3RWYWx1ZSA9IHNhc3NWYWx1ZS5hc0xpc3Rcblx0XHRjb25zdCBsZW5ndGggPSBsaXN0VmFsdWUuc2l6ZVxuXHRcdGNvbnN0IGFycmF5ID0gQXJyYXkobGVuZ3RoKS5maWxsKHVuZGVmaW5lZCkgYXMgU2Fzc1R5cGVbXVxuXG5cdFx0Zm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuXHRcdFx0YXJyYXlbaW5kZXhdID0gbGlzdFZhbHVlLmdldChpbmRleCkgYXMgU2Fzc1R5cGVcblx0XHR9XG5cblx0XHRyZXR1cm4gYXJyYXkubWFwKHZhbHVlID0+IHNhc3NUb0phdmFTY3JpcHRUeXBlKHZhbHVlKSlcblx0fVxuXG5cdGNhc2Ugc2Fzc1ZhbHVlIGluc3RhbmNlb2YgU2Fzc01hcDoge1xuXHRcdGNvbnN0IG1hcFZhbHVlID0gc2Fzc1ZhbHVlLmNvbnRlbnRzXG5cblx0XHRjb25zdCBlbnRyaWVzID0gQXJyYXkuZnJvbShtYXBWYWx1ZS5lbnRyaWVzKCkgYXMgSXRlcmFibGVJdGVyYXRvcjxbU2Fzc1R5cGUsIFNhc3NUeXBlXT4pXG5cdFx0XHQubWFwKChbIGtleSwgdmFsdWUgXSkgPT4gWyBzYXNzVG9KYXZhU2NyaXB0VHlwZShrZXkpLCBzYXNzVG9KYXZhU2NyaXB0VHlwZSh2YWx1ZSkgXSlcblxuXHRcdHJldHVybiBuZXcgTWFwKGVudHJpZXMgYXMgW0phdmFTY3JpcHRUeXBlLCBKYXZhU2NyaXB0VHlwZV1bXSlcblx0fVxuXG5cdGRlZmF1bHQ6IHtcblx0XHRyZXR1cm4gbnVsbFxuXHR9XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGphdmFTY3JpcHRUb1Nhc3NUeXBlKHJhd1ZhbHVlOiBKYXZhU2NyaXB0VHlwZSk6IFNhc3NUeXBlIHtcblx0c3dpdGNoICh0cnVlKSB7XG5cdGNhc2UgdHlwZW9mIHJhd1ZhbHVlID09PSAnYm9vbGVhbic6IHtcblx0XHRjb25zdCBib29sZWFuVmFsdWUgPSByYXdWYWx1ZVxuXG5cdFx0cmV0dXJuIGJvb2xlYW5WYWx1ZSA/IFNhc3NUUlVFIDogU2Fzc0ZBTFNFXG5cdH1cblxuXHRjYXNlIHR5cGVvZiByYXdWYWx1ZSA9PT0gJ251bWJlcic6IHtcblx0XHRjb25zdCBudW1iZXJWYWx1ZSA9IHJhd1ZhbHVlXG5cblx0XHRyZXR1cm4gbmV3IFNhc3NOdW1iZXIobnVtYmVyVmFsdWUpXG5cdH1cblxuXHRjYXNlIGlzT2JqZWN0KHJhd1ZhbHVlKSAmJiBbICd2YWx1ZScsICd1bml0JyBdLmV2ZXJ5KHByb3BlcnR5S2V5ID0+IHByb3BlcnR5S2V5IGluIHJhd1ZhbHVlKToge1xuXHRcdGNvbnN0IHsgdmFsdWUsIHVuaXQgfSA9IHJhd1ZhbHVlIGFzIE51bWJlcldpdGhVbml0XG5cblx0XHRyZXR1cm4gbmV3IFNhc3NOdW1iZXIodmFsdWUsIHVuaXQpXG5cdH1cblxuXHRjYXNlIHR5cGVvZiByYXdWYWx1ZSA9PT0gJ3N0cmluZyc6IHtcblx0XHRjb25zdCBzdHJpbmdWYWx1ZSA9IHJhd1ZhbHVlXG5cblx0XHRyZXR1cm4gbmV3IFNhc3NTdHJpbmcoc3RyaW5nVmFsdWUpXG5cdH1cblxuXHRjYXNlIGlzT2JqZWN0KHJhd1ZhbHVlKSAmJiAnX3JnYicgaW4gcmF3VmFsdWU6IHtcblx0XHRjb25zdCBbIHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhIF0gPSByYXdWYWx1ZS5yZ2JhKCkgYXMgbnVtYmVyW11cblxuXHRcdHJldHVybiBuZXcgU2Fzc0NvbG9yKHsgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEgfSlcblx0fVxuXG5cdGNhc2UgQXJyYXkuaXNBcnJheShyYXdWYWx1ZSk6IHtcblx0XHRyZXR1cm4gbmV3IFNhc3NMaXN0KHJhd1ZhbHVlLm1hcCh2YWx1ZSA9PiBqYXZhU2NyaXB0VG9TYXNzVHlwZSh2YWx1ZSkpKVxuXHR9XG5cblx0Y2FzZSByYXdWYWx1ZSBpbnN0YW5jZW9mIE1hcDoge1xuXHRcdGNvbnN0IG1hcFZhbHVlID0gcmF3VmFsdWUgYXMgTWFwPEphdmFTY3JpcHRUeXBlLCBKYXZhU2NyaXB0VHlwZT5cblx0XHRjb25zdCBzYXNzTWFwID0gbmV3IFNhc3NNYXAoKVxuXG5cdFx0Y29uc3QgY29udmVydGVkID0gQXJyYXkuZnJvbShtYXBWYWx1ZS5lbnRyaWVzKCkpXG5cdFx0XHQubWFwKGVudHJ5ID0+IGVudHJ5Lm1hcChqYXZhU2NyaXB0VG9TYXNzVHlwZSkpIGFzIFtTYXNzVHlwZSwgU2Fzc1R5cGVdW11cblxuXHRcdGZvciAoY29uc3QgWyBrZXksIHZhbHVlIF0gb2YgY29udmVydGVkKSB7XG5cdFx0XHRzYXNzTWFwLmNvbnRlbnRzLnNldChrZXksIHZhbHVlKVxuXHRcdH1cblxuXHRcdHJldHVybiBzYXNzTWFwXG5cdH1cblxuXHRkZWZhdWx0OiB7XG5cdFx0cmV0dXJuIFNhc3NOVUxMXG5cdH1cblx0fVxufVxuIiwiaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJ1xuXG4vLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IHsgQ3VzdG9tRnVuY3Rpb24gfSBmcm9tICdzYXNzJ1xuXG4vLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IHR5cGUgeyBTYXNzVHlwZSwgSmF2YVNjcmlwdFR5cGUgfSBmcm9tICcuL3R5cGVzJ1xuaW1wb3J0IHsgc2Fzc1RvSmF2YVNjcmlwdFR5cGUsIGphdmFTY3JpcHRUb1Nhc3NUeXBlIH0gZnJvbSAnLi90eXBlLWNvbnZlcnRlcidcblxuLy8gVHlwZSBkZWZpbml0aW9ucy5cbmV4cG9ydCBpbnRlcmZhY2UgQnJpZGdlZEZ1bmN0aW9uIHtcblx0ZXhlY3V0ZSgpOiBKYXZhU2NyaXB0VHlwZSB8IFByb21pc2U8SmF2YVNjcmlwdFR5cGU+XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc3RydWN0b3Ige1xuXHRuZXcgKC4uLmFyZ3M6IGFueVtdKTogQnJpZGdlZEZ1bmN0aW9uXG59XG5cbi8vIENvbnN0YW50cy5cbmNvbnN0IEtleU9mU2lnbmF0dXJlID0gU3ltYm9sKCdAY2ljaG9sL3Nhc3MtYnJpZGdlOjpLZXlPZlNpZ25hdHVyZScpXG5cbmV4cG9ydCBmdW5jdGlvbiBzYXNzRnVuY3Rpb24oZGVmaW5pdGlvbjogc3RyaW5nKTogQ2xhc3NEZWNvcmF0b3Ige1xuXHRyZXR1cm4gKDxUIGV4dGVuZHMgQ29uc3RydWN0b3I+KHRhcmdldDogVCkgPT4ge1xuXHRcdFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoS2V5T2ZTaWduYXR1cmUsIGRlZmluaXRpb24sIHRhcmdldClcblxuXHRcdHJldHVybiB0YXJnZXRcblx0fSkgYXMgQ2xhc3NEZWNvcmF0b3Jcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEZ1bmN0aW9ucyhcblx0Li4ubW9kdWxlSW1wb3J0czogUHJvbWlzZTx7IGRlZmF1bHQ6IENvbnN0cnVjdG9yIH0+W11cbik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgQ3VzdG9tRnVuY3Rpb248J2FzeW5jJz4+PiB7XG5cdGNvbnN0IG1vZHVsZXMgPSBhd2FpdCBQcm9taXNlLmFsbChcblx0XHRtb2R1bGVJbXBvcnRzLm1hcChtb2R1bGUgPT4gKFxuXHRcdFx0UHJvbWlzZS5yZXNvbHZlKG1vZHVsZSlcblx0XHRcdFx0LnRoZW4obW9kdWxlID0+IG1vZHVsZS5kZWZhdWx0KVxuXHRcdCkpLFxuXHQpXG5cblx0Y29uc3QgZW50cmllcyA9IG1vZHVsZXMubWFwKG1vZHVsZSA9PiB7XG5cdFx0Y29uc3Qgc2lnbmF0dXJlID0gUmVmbGVjdC5nZXRNZXRhZGF0YShLZXlPZlNpZ25hdHVyZSwgbW9kdWxlKSBhcyBzdHJpbmdcblxuXHRcdGFzeW5jIGZ1bmN0aW9uIGN1c3RvbUZ1bmN0aW9uKHJhd0FyZ3M6IFNhc3NUeXBlW10pOiBQcm9taXNlPFNhc3NUeXBlPiB7XG5cdFx0XHRjb25zdCBhcmdzID0gcmF3QXJncy5tYXAoc2Fzc1RvSmF2YVNjcmlwdFR5cGUpXG5cdFx0XHRjb25zdCByZXN1bHQgPSBhd2FpdCBSZWZsZWN0LmNvbnN0cnVjdChtb2R1bGUsIGFyZ3MpLmV4ZWN1dGUoKVxuXG5cdFx0XHRyZXR1cm4gamF2YVNjcmlwdFRvU2Fzc1R5cGUocmVzdWx0KVxuXHRcdH1cblxuXHRcdHJldHVybiBbIHNpZ25hdHVyZSwgY3VzdG9tRnVuY3Rpb24gXSBhcyBjb25zdFxuXHR9KVxuXG5cdHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoZW50cmllcylcbn1cbiJdLCJuYW1lcyI6WyJTYXNzVHlwZXMiLCJfT2JqZWN0JGZyb21FbnRyaWVzIiwiX21hcEluc3RhbmNlUHJvcGVydHkiLCJfY29udGV4dCIsIl9maWx0ZXJJbnN0YW5jZVByb3BlcnR5IiwiX2NvbnRleHQyIiwiX2NvbnRleHQzIiwiX2NvbnRleHQ0IiwiX2NvbnRleHQ1IiwiX09iamVjdCRrZXlzIiwic2FzcyIsImNhbGwiLCJwcm9wZXJ0eUtleSIsIl9zdGFydHNXaXRoSW5zdGFuY2VQcm9wZXJ0eSIsImNvbnN0cnVjdG9yIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaXNQcm90b3R5cGVPZiIsIlZhbHVlIiwibmFtZSIsIlNhc3NUUlVFIiwic2Fzc1RydWUiLCJTYXNzRkFMU0UiLCJzYXNzRmFsc2UiLCJTYXNzTlVMTCIsInNhc3NOdWxsIiwiU2Fzc051bWJlciIsIlNhc3NTdHJpbmciLCJTYXNzQ29sb3IiLCJTYXNzTGlzdCIsIlNhc3NNYXAiLCJTYXNzQm9vbGVhbiIsIl9PYmplY3QkZ2V0UHJvdG90eXBlT2YiLCJpc09iamVjdCIsInZhbHVlIiwidHlwZSIsInNhc3NUb0phdmFTY3JpcHRUeXBlIiwic2Fzc1ZhbHVlIiwidGV4dCIsIm51bWVyYXRvclVuaXRzIiwiZGVub21pbmF0b3JVbml0cyIsInVuaXQiLCJoYXNVbml0cyIsImpvaW4iLCJzaXplIiwicmVkIiwiZ3JlZW4iLCJibHVlIiwiYWxwaGEiLCJjaHJvbWEiLCJsaXN0VmFsdWUiLCJhc0xpc3QiLCJsZW5ndGgiLCJhcnJheSIsIl9maWxsSW5zdGFuY2VQcm9wZXJ0eSIsIkFycmF5IiwidW5kZWZpbmVkIiwiaW5kZXgiLCJnZXQiLCJtYXBWYWx1ZSIsImNvbnRlbnRzIiwiZW50cmllcyIsIl9BcnJheSRmcm9tIiwiX2VudHJpZXNJbnN0YW5jZVByb3BlcnR5Iiwia2V5IiwiX01hcCIsImphdmFTY3JpcHRUb1Nhc3NUeXBlIiwicmF3VmFsdWUiLCJib29sZWFuVmFsdWUiLCJudW1iZXJWYWx1ZSIsIl9ldmVyeUluc3RhbmNlUHJvcGVydHkiLCJzdHJpbmdWYWx1ZSIsInJnYmEiLCJfQXJyYXkkaXNBcnJheSIsInNhc3NNYXAiLCJjb252ZXJ0ZWQiLCJlbnRyeSIsInNldCIsIktleU9mU2lnbmF0dXJlIiwiX1N5bWJvbCIsInNhc3NGdW5jdGlvbiIsImRlZmluaXRpb24iLCJ0YXJnZXQiLCJSZWZsZWN0IiwiZGVmaW5lTWV0YWRhdGEiLCJnZXRGdW5jdGlvbnMiLCJtb2R1bGVJbXBvcnRzIiwibW9kdWxlcyIsIl9Qcm9taXNlIiwiYWxsIiwibW9kdWxlIiwicmVzb2x2ZSIsInRoZW4iLCJkZWZhdWx0Iiwic2lnbmF0dXJlIiwiZ2V0TWV0YWRhdGEiLCJjdXN0b21GdW5jdGlvbiIsInJhd0FyZ3MiLCJhcmdzIiwicmVzdWx0IiwiX1JlZmxlY3QkY29uc3RydWN0IiwiZXhlY3V0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUtBOztBQWNBLE1BQU1BLFNBQVMsR0FBR0MsbUJBQUEsQ0FDakJDLG9CQUFBLENBQUFDLFFBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsU0FBQSxHQUFBRCx1QkFBQSxDQUFBRSxTQUFBLEdBQUFKLG9CQUFBLENBQUFLLFNBQUEsR0FBQUgsdUJBQUEsQ0FBQUksU0FBQSxHQUFBQyxZQUFBLENBQVlDLElBQUksQ0FBQyxDQUFBLENBQUFDLElBQUEsQ0FBQUgsU0FBQSxFQUNSSSxXQUFXLElBQUlDLDJCQUFBLENBQUFELFdBQVcsQ0FBQUQsQ0FBQUEsSUFBQSxDQUFYQyxXQUFXLEVBQVksTUFBTSxDQUFDLENBQUMsQ0FBQSxDQUFBRCxJQUFBLENBQUFKLFNBQUEsRUFDakRLLFdBQVcsSUFBSUYsSUFBSSxDQUFDRSxXQUFXLENBQWMsQ0FBQyxDQUFBLENBQUFELElBQUEsQ0FBQUwsU0FBQSxFQUMzQ1EsV0FBVyxJQUFJLE9BQU9BLFdBQVcsS0FBSyxVQUFVLENBQUMsQ0FBQSxDQUFBSCxJQUFBLENBQUFOLFNBQUEsRUFDakRTLFdBQVcsSUFBSUMsTUFBTSxDQUFDQyxTQUFTLENBQUNDLGFBQWEs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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cichol/sass-bridge",
3
- "version": "4.4.3",
3
+ "version": "4.6.0",
4
4
  "description": "A bridge interface to define Sass custom functions.",
5
5
  "homepage": "https://github.com/morrighan/packages",
6
6
  "bugs": {
@@ -13,35 +13,39 @@
13
13
  "url": "https://www.cichol.com/"
14
14
  },
15
15
  "type": "module",
16
- "main": "releases/cjs.js",
17
- "module": "releases/esm.js",
18
- "types": "types/index.d.ts",
19
- "directories": {
20
- "lib": "releases"
21
- },
16
+ "main": "./dists/index.cjs",
17
+ "module": "./dists/index.js",
18
+ "types": "./dists/index.d.ts",
22
19
  "exports": {
23
- "import": "./releases/esm.js",
24
- "require": "./releases/cjs.js",
25
- "types": "./types/index.d.ts"
20
+ ".": {
21
+ "import": {
22
+ "default": "./dists/index.js",
23
+ "types": "./dists/index.d.ts"
24
+ },
25
+ "require": {
26
+ "default": "./dists/index.cjs",
27
+ "types": "./dists/index.d.cts"
28
+ }
29
+ },
30
+ "./package.json": "./package.json"
26
31
  },
27
32
  "repository": {
28
33
  "type": "git",
29
34
  "url": "git+https://github.com/morrighan/packages.git",
30
35
  "directory": "packages/sass-bridge"
31
36
  },
32
- "scripts": {
33
- "build": "npm run build:tsc",
34
- "build:tsc": "npx tsc --project sources --outDir types"
35
- },
36
37
  "dependencies": {
37
38
  "chroma-js": "^3.1.2",
38
- "core-js-pure": "^3.38.1",
39
+ "core-js-pure": "^3.39.0",
39
40
  "reflect-metadata": "^0.2.2",
40
- "sass": "npm:sass-embedded@^1.77.8"
41
+ "sass": "npm:sass-embedded@^1.83.0"
42
+ },
43
+ "devDependencies": {
44
+ "@cichol/sass-bridge": "file:."
41
45
  },
42
46
  "engines": {
43
- "node": "^20.18.0",
44
- "npm": "^10.9.0"
47
+ "node": "^20.18.1",
48
+ "npm": "^11.0.0"
45
49
  },
46
50
  "publishConfig": {
47
51
  "registry": "https://registry.npmjs.org/",
package/releases/cjs.js DELETED
@@ -1,212 +0,0 @@
1
- 'use strict';
2
-
3
- var _Symbol = require('core-js-pure/stable/symbol/index.js');
4
- var _Promise = require('core-js-pure/stable/promise/index.js');
5
- var _mapInstanceProperty = require('core-js-pure/stable/instance/map.js');
6
- var _Reflect$construct = require('core-js-pure/stable/reflect/construct.js');
7
- var _Object$fromEntries = require('core-js-pure/stable/object/from-entries.js');
8
- require('reflect-metadata');
9
- var _fillInstanceProperty = require('core-js-pure/stable/instance/fill.js');
10
- var _Array$from = require('core-js-pure/stable/array/from.js');
11
- var _entriesInstanceProperty = require('core-js-pure/stable/instance/entries.js');
12
- var _Map = require('core-js-pure/stable/map/index.js');
13
- var _everyInstanceProperty = require('core-js-pure/stable/instance/every.js');
14
- var _Array$isArray = require('core-js-pure/stable/array/is-array.js');
15
- var chroma = require('chroma-js');
16
- var _filterInstanceProperty = require('core-js-pure/stable/instance/filter.js');
17
- var _Object$keys = require('core-js-pure/stable/object/keys.js');
18
- var _startsWithInstanceProperty = require('core-js-pure/stable/instance/starts-with.js');
19
- var _Object$getPrototypeOf = require('core-js-pure/stable/object/get-prototype-of.js');
20
- var sass = require('sass');
21
-
22
- function _interopNamespaceDefault(e) {
23
- var n = Object.create(null);
24
- if (e) {
25
- Object.keys(e).forEach(function (k) {
26
- if (k !== 'default') {
27
- var d = Object.getOwnPropertyDescriptor(e, k);
28
- Object.defineProperty(n, k, d.get ? d : {
29
- enumerable: true,
30
- get: function () { return e[k]; }
31
- });
32
- }
33
- });
34
- }
35
- n.default = e;
36
- return Object.freeze(n);
37
- }
38
-
39
- var sass__namespace = /*#__PURE__*/_interopNamespaceDefault(sass);
40
-
41
- var _context, _context2, _context3, _context4, _context5;
42
-
43
- // Type definitions.
44
-
45
- const SassTypes = _Object$fromEntries(_mapInstanceProperty(_context = _filterInstanceProperty(_context2 = _filterInstanceProperty(_context3 = _mapInstanceProperty(_context4 = _filterInstanceProperty(_context5 = _Object$keys(sass__namespace)).call(_context5, propertyKey => _startsWithInstanceProperty(propertyKey).call(propertyKey, 'Sass'))).call(_context4, propertyKey => sass__namespace[propertyKey])).call(_context3, constructor => typeof constructor === 'function')).call(_context2, constructor => Object.prototype.isPrototypeOf.call(sass.Value.prototype, constructor.prototype))).call(_context, constructor => [constructor.name, constructor]));
46
- const SassTRUE = sass__namespace.sassTrue;
47
- const SassFALSE = sass__namespace.sassFalse;
48
- const SassNULL = sass__namespace.sassNull;
49
- const {
50
- SassNumber
51
- } = SassTypes;
52
- const {
53
- SassString
54
- } = SassTypes;
55
- const {
56
- SassColor
57
- } = SassTypes;
58
- const {
59
- SassList
60
- } = SassTypes;
61
- const {
62
- SassMap
63
- } = SassTypes;
64
- const SassBoolean = _Object$getPrototypeOf(SassTRUE).constructor;
65
-
66
- // Helper functions.
67
- function isObject(value) {
68
- const type = typeof value;
69
- return !!value && (type === 'object' || type === 'function');
70
- }
71
- function sassToJavaScriptType(sassValue) {
72
- switch (true) {
73
- case sassValue instanceof SassBoolean:
74
- {
75
- return sassValue.value;
76
- }
77
- case sassValue instanceof SassString:
78
- {
79
- return sassValue.text;
80
- }
81
- case sassValue instanceof SassNumber:
82
- {
83
- const {
84
- value,
85
- numeratorUnits,
86
- denominatorUnits
87
- } = sassValue;
88
- const unit = sassValue.hasUnits ? numeratorUnits.join('*') + (denominatorUnits.size > 0 ? `/${denominatorUnits.join('*')}` : '') : '';
89
- return unit ? {
90
- value,
91
- unit
92
- } : value;
93
- }
94
- case sassValue instanceof SassColor:
95
- {
96
- const {
97
- red,
98
- green,
99
- blue,
100
- alpha
101
- } = sassValue;
102
- return chroma(red, green, blue, alpha);
103
- }
104
- case sassValue instanceof SassList:
105
- {
106
- var _context;
107
- const listValue = sassValue.asList;
108
- const length = listValue.size;
109
- const array = _fillInstanceProperty(_context = Array(length)).call(_context, undefined);
110
- for (let index = 0; index < length; index += 1) {
111
- array[index] = listValue.get(index);
112
- }
113
- return _mapInstanceProperty(array).call(array, value => sassToJavaScriptType(value));
114
- }
115
- case sassValue instanceof SassMap:
116
- {
117
- var _context2;
118
- const mapValue = sassValue.contents;
119
- const entries = _mapInstanceProperty(_context2 = _Array$from(_entriesInstanceProperty(mapValue).call(mapValue))).call(_context2, ([key, value]) => [sassToJavaScriptType(key), sassToJavaScriptType(value)]);
120
- return new _Map(entries);
121
- }
122
- default:
123
- {
124
- return null;
125
- }
126
- }
127
- }
128
- function javaScriptToSassType(rawValue) {
129
- var _context3;
130
- switch (true) {
131
- case typeof rawValue === 'boolean':
132
- {
133
- const booleanValue = rawValue;
134
- return booleanValue ? SassTRUE : SassFALSE;
135
- }
136
- case typeof rawValue === 'number':
137
- {
138
- const numberValue = rawValue;
139
- return new SassNumber(numberValue);
140
- }
141
- case isObject(rawValue) && _everyInstanceProperty(_context3 = ['value', 'unit']).call(_context3, propertyKey => propertyKey in rawValue):
142
- {
143
- const {
144
- value,
145
- unit
146
- } = rawValue;
147
- return new SassNumber(value, unit);
148
- }
149
- case typeof rawValue === 'string':
150
- {
151
- const stringValue = rawValue;
152
- return new SassString(stringValue);
153
- }
154
- case isObject(rawValue) && '_rgb' in rawValue:
155
- {
156
- const [red, green, blue, alpha] = rawValue.rgba();
157
- return new SassColor({
158
- red,
159
- green,
160
- blue,
161
- alpha
162
- });
163
- }
164
- case _Array$isArray(rawValue):
165
- {
166
- return new SassList(_mapInstanceProperty(rawValue).call(rawValue, value => javaScriptToSassType(value)));
167
- }
168
- case rawValue instanceof _Map:
169
- {
170
- var _context4;
171
- const mapValue = rawValue;
172
- const sassMap = new SassMap();
173
- const converted = _mapInstanceProperty(_context4 = _Array$from(_entriesInstanceProperty(mapValue).call(mapValue))).call(_context4, entry => _mapInstanceProperty(entry).call(entry, javaScriptToSassType));
174
- for (const [key, value] of converted) {
175
- sassMap.contents.set(key, value);
176
- }
177
- return sassMap;
178
- }
179
- default:
180
- {
181
- return SassNULL;
182
- }
183
- }
184
- }
185
-
186
- // Type definitions.
187
-
188
- // Constants.
189
- const KeyOfSignature = _Symbol('@cichol/sass-bridge::KeyOfSignature');
190
- function sassFunction(definition) {
191
- return target => {
192
- Reflect.defineMetadata(KeyOfSignature, definition, target);
193
- return target;
194
- };
195
- }
196
- async function getFunctions(...moduleImports) {
197
- const modules = await _Promise.all(_mapInstanceProperty(moduleImports).call(moduleImports, module => _Promise.resolve(module).then(module => module.default)));
198
- const entries = _mapInstanceProperty(modules).call(modules, module => {
199
- const signature = Reflect.getMetadata(KeyOfSignature, module);
200
- async function customFunction(rawArgs) {
201
- const args = _mapInstanceProperty(rawArgs).call(rawArgs, sassToJavaScriptType);
202
- const result = await _Reflect$construct(module, args).execute();
203
- return javaScriptToSassType(result);
204
- }
205
- return [signature, customFunction];
206
- });
207
- return _Object$fromEntries(entries);
208
- }
209
-
210
- exports.getFunctions = getFunctions;
211
- exports.sassFunction = sassFunction;
212
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2pzLmpzIiwic291cmNlcyI6WyIuLi9zb3VyY2VzL3R5cGVzLnRzIiwiLi4vc291cmNlcy90eXBlLWNvbnZlcnRlci50cyIsIi4uL3NvdXJjZXMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcmQtcGFydHkgbW9kdWxlcy5cbmltcG9ydCB0eXBlIHsgQ29sb3IgfSBmcm9tICdjaHJvbWEtanMnO1xuaW1wb3J0ICogYXMgc2FzcyBmcm9tICdzYXNzJztcbmltcG9ydCB7IFZhbHVlIH0gZnJvbSAnc2Fzcyc7XG5cbi8vIFR5cGUgZGVmaW5pdGlvbnMuXG5leHBvcnQgdHlwZSBQcmltaXRpdmVzID0gYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZztcblxuZXhwb3J0IHR5cGUgTnVtYmVyV2l0aFVuaXQgPSB7IHZhbHVlOiBudW1iZXIsIHVuaXQ6IHN0cmluZyB9O1xuXG5leHBvcnQgdHlwZSBKYXZhU2NyaXB0VHlwZTxCYXNlID0gUHJpbWl0aXZlcyB8IENvbG9yIHwgTnVtYmVyV2l0aFVuaXQgfCBudWxsPiA9XG4gICAgfCBCYXNlXG4gICAgfCBKYXZhU2NyaXB0VHlwZTxCYXNlPltdXG4gICAgfCBNYXA8SmF2YVNjcmlwdFR5cGU8QmFzZT4sIEphdmFTY3JpcHRUeXBlPEJhc2U+PjtcblxudHlwZSBGaWx0ZXJTYXNzUHJlZml4PFQgZXh0ZW5kcyBzdHJpbmc+ID0gVCBleHRlbmRzIGBTYXNzJHtpbmZlciBSfWAgPyBSIDogbmV2ZXI7XG5cbnR5cGUgU2Fzc1R5cGVzID0gRXhjbHVkZTxgU2FzcyR7RmlsdGVyU2Fzc1ByZWZpeDxrZXlvZiB0eXBlb2Ygc2Fzcz59YCwgYFNhc3MkeydCb29sZWFuJyB8ICdDYWxjdWxhdGlvbid9YD47XG5cbmNvbnN0IFNhc3NUeXBlcyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3Qua2V5cyhzYXNzKVxuICAgICAgICAuZmlsdGVyKHByb3BlcnR5S2V5ID0+IHByb3BlcnR5S2V5LnN0YXJ0c1dpdGgoJ1Nhc3MnKSlcbiAgICAgICAgLm1hcChwcm9wZXJ0eUtleSA9PiBzYXNzW3Byb3BlcnR5S2V5IGFzIFNhc3NUeXBlc10pXG4gICAgICAgIC5maWx0ZXIoY29uc3RydWN0b3IgPT4gdHlwZW9mIGNvbnN0cnVjdG9yID09PSAnZnVuY3Rpb24nKVxuICAgICAgICAuZmlsdGVyKGNvbnN0cnVjdG9yID0+IE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZi5jYWxsKFZhbHVlLnByb3RvdHlwZSwgY29uc3RydWN0b3IucHJvdG90eXBlKSlcbiAgICAgICAgLm1hcChjb25zdHJ1Y3RvciA9PiBbIGNvbnN0cnVjdG9yLm5hbWUsIGNvbnN0cnVjdG9yIF0gYXMgW1Nhc3NUeXBlcywgKHR5cGVvZiBzYXNzKVtTYXNzVHlwZXNdXSlcbikgYXMgeyBbUCBpbiBTYXNzVHlwZXNdOiAodHlwZW9mIHNhc3MpW1BdIH07XG5cbmV4cG9ydCBjb25zdCBTYXNzVFJVRSA9IHNhc3Muc2Fzc1RydWU7XG5leHBvcnQgdHlwZSBTYXNzVFJVRSA9IHR5cGVvZiBTYXNzVFJVRTtcblxuZXhwb3J0IGNvbnN0IFNhc3NGQUxTRSA9IHNhc3Muc2Fzc0ZhbHNlO1xuZXhwb3J0IHR5cGUgU2Fzc0ZBTFNFID0gdHlwZW9mIFNhc3NGQUxTRTtcblxuZXhwb3J0IGNvbnN0IFNhc3NOVUxMID0gc2Fzcy5zYXNzTnVsbDtcbmV4cG9ydCB0eXBlIFNhc3NOVUxMID0gdHlwZW9mIFNhc3NOVUxMO1xuXG5leHBvcnQgY29uc3QgeyBTYXNzTnVtYmVyIH0gPSBTYXNzVHlwZXM7XG5leHBvcnQgdHlwZSBTYXNzTnVtYmVyID0gSW5zdGFuY2VUeXBlPHR5cGVvZiBTYXNzTnVtYmVyPjtcblxuZXhwb3J0IGNvbnN0IHsgU2Fzc1N0cmluZyB9ID0gU2Fzc1R5cGVzO1xuZXhwb3J0IHR5cGUgU2Fzc1N0cmluZyA9IEluc3RhbmNlVHlwZTx0eXBlb2YgU2Fzc1N0cmluZz47XG5cbmV4cG9ydCBjb25zdCB7IFNhc3NDb2xvciB9ID0gU2Fzc1R5cGVzO1xuZXhwb3J0IHR5cGUgU2Fzc0NvbG9yID0gSW5zdGFuY2VUeXBlPHR5cGVvZiBTYXNzQ29sb3I+O1xuXG5leHBvcnQgY29uc3QgeyBTYXNzTGlzdCB9ID0gU2Fzc1R5cGVzO1xuZXhwb3J0IHR5cGUgU2Fzc0xpc3QgPSBJbnN0YW5jZVR5cGU8dHlwZW9mIFNhc3NMaXN0PjtcblxuZXhwb3J0IGNvbnN0IHsgU2Fzc01hcCB9ID0gU2Fzc1R5cGVzO1xuZXhwb3J0IHR5cGUgU2Fzc01hcCA9IEluc3RhbmNlVHlwZTx0eXBlb2YgU2Fzc01hcD47XG5cbmV4cG9ydCBjb25zdCBTYXNzQm9vbGVhbiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihTYXNzVFJVRSkuY29uc3RydWN0b3IgYXMgdHlwZW9mIHNhc3MuU2Fzc0Jvb2xlYW47XG5leHBvcnQgdHlwZSBTYXNzQm9vbGVhbiA9IHNhc3MuU2Fzc0Jvb2xlYW47XG5cbmV4cG9ydCB0eXBlIFNhc3NUeXBlID1cbiAgICB8IEluc3RhbmNlVHlwZTx0eXBlb2YgU2Fzc1R5cGVzIGV4dGVuZHMgUmVjb3JkPGFueSwgaW5mZXIgUj4gPyBSIDogbmV2ZXI+XG4gICAgfCBTYXNzQm9vbGVhbjtcbiIsIi8vIFRoaXJkLXBhcnR5IG1vZHVsZXMuXG5pbXBvcnQgY2hyb21hIGZyb20gJ2Nocm9tYS1qcyc7XG5cbi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQge1xuICAgIHR5cGUgU2Fzc1R5cGUsXG4gICAgU2Fzc0Jvb2xlYW4sXG4gICAgU2Fzc051bWJlcixcbiAgICBTYXNzU3RyaW5nLFxuICAgIFNhc3NDb2xvcixcbiAgICBTYXNzTGlzdCxcbiAgICBTYXNzTWFwLFxuICAgIFNhc3NUUlVFLFxuICAgIFNhc3NGQUxTRSxcbiAgICBTYXNzTlVMTCxcbiAgICB0eXBlIEphdmFTY3JpcHRUeXBlLFxuICAgIHR5cGUgTnVtYmVyV2l0aFVuaXRcbn0gZnJvbSAnLi90eXBlcyc7XG5cbi8vIEhlbHBlciBmdW5jdGlvbnMuXG5mdW5jdGlvbiBpc09iamVjdCh2YWx1ZT86IHVua25vd24pOiB2YWx1ZSBpcyBvYmplY3Qge1xuICAgIGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsdWU7XG5cbiAgICByZXR1cm4gISF2YWx1ZSAmJiAodHlwZSA9PT0gJ29iamVjdCcgfHwgdHlwZSA9PT0gJ2Z1bmN0aW9uJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXNzVG9KYXZhU2NyaXB0VHlwZShzYXNzVmFsdWU6IFNhc3NUeXBlKTogSmF2YVNjcmlwdFR5cGUge1xuICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgIGNhc2Ugc2Fzc1ZhbHVlIGluc3RhbmNlb2YgU2Fzc0Jvb2xlYW46IHtcbiAgICAgICAgcmV0dXJuIHNhc3NWYWx1ZS52YWx1ZTtcbiAgICB9XG5cbiAgICBjYXNlIHNhc3NWYWx1ZSBpbnN0YW5jZW9mIFNhc3NTdHJpbmc6IHtcbiAgICAgICAgcmV0dXJuIHNhc3NWYWx1ZS50ZXh0O1xuICAgIH1cblxuICAgIGNhc2Ugc2Fzc1ZhbHVlIGluc3RhbmNlb2YgU2Fzc051bWJlcjoge1xuICAgICAgICBjb25zdCB7IHZhbHVlLCBudW1lcmF0b3JVbml0cywgZGVub21pbmF0b3JVbml0cyB9ID0gc2Fzc1ZhbHVlO1xuXG4gICAgICAgIGNvbnN0IHVuaXQgPSBzYXNzVmFsdWUuaGFzVW5pdHNcbiAgICAgICAgICAgID8gbnVtZXJhdG9yVW5pdHMuam9pbignKicpICsgKGRlbm9taW5hdG9yVW5pdHMuc2l6ZSA+IDAgPyBgLyR7ZGVub21pbmF0b3JVbml0cy5qb2luKCcqJyl9YCA6ICcnKVxuICAgICAgICAgICAgOiAnJztcblxuICAgICAgICByZXR1cm4gdW5pdCA/IHsgdmFsdWUsIHVuaXQgfSA6IHZhbHVlO1xuICAgIH1cblxuICAgIGNhc2Ugc2Fzc1ZhbHVlIGluc3RhbmNlb2YgU2Fzc0NvbG9yOiB7XG4gICAgICAgIGNvbnN0IHsgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEgfSA9IHNhc3NWYWx1ZTtcblxuICAgICAgICByZXR1cm4gY2hyb21hKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTtcbiAgICB9XG5cbiAgICBjYXNlIHNhc3NWYWx1ZSBpbnN0YW5jZW9mIFNhc3NMaXN0OiB7XG4gICAgICAgIGNvbnN0IGxpc3RWYWx1ZSA9IHNhc3NWYWx1ZS5hc0xpc3Q7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IGxpc3RWYWx1ZS5zaXplO1xuICAgICAgICBjb25zdCBhcnJheSA9IEFycmF5KGxlbmd0aCkuZmlsbCh1bmRlZmluZWQpIGFzIFNhc3NUeXBlW107XG5cbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgICAgICAgICAgYXJyYXlbaW5kZXhdID0gbGlzdFZhbHVlLmdldChpbmRleCkgYXMgU2Fzc1R5cGU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYXJyYXkubWFwKHZhbHVlID0+IHNhc3NUb0phdmFTY3JpcHRUeXBlKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgY2FzZSBzYXNzVmFsdWUgaW5zdGFuY2VvZiBTYXNzTWFwOiB7XG4gICAgICAgIGNvbnN0IG1hcFZhbHVlID0gc2Fzc1ZhbHVlLmNvbnRlbnRzO1xuXG4gICAgICAgIGNvbnN0IGVudHJpZXMgPSBBcnJheS5mcm9tKG1hcFZhbHVlLmVudHJpZXMoKSBhcyBJdGVyYWJsZUl0ZXJhdG9yPFtTYXNzVHlwZSwgU2Fzc1R5cGVdPilcbiAgICAgICAgICAgIC5tYXAoKFsga2V5LCB2YWx1ZSBdKSA9PiBbIHNhc3NUb0phdmFTY3JpcHRUeXBlKGtleSksIHNhc3NUb0phdmFTY3JpcHRUeXBlKHZhbHVlKSBdKTtcblxuICAgICAgICByZXR1cm4gbmV3IE1hcChlbnRyaWVzIGFzIFtKYXZhU2NyaXB0VHlwZSwgSmF2YVNjcmlwdFR5cGVdW10pO1xuICAgIH1cblxuICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGphdmFTY3JpcHRUb1Nhc3NUeXBlKHJhd1ZhbHVlOiBKYXZhU2NyaXB0VHlwZSk6IFNhc3NUeXBlIHtcbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICBjYXNlIHR5cGVvZiByYXdWYWx1ZSA9PT0gJ2Jvb2xlYW4nOiB7XG4gICAgICAgIGNvbnN0IGJvb2xlYW5WYWx1ZSA9IHJhd1ZhbHVlO1xuXG4gICAgICAgIHJldHVybiBib29sZWFuVmFsdWUgPyBTYXNzVFJVRSA6IFNhc3NGQUxTRTtcbiAgICB9XG5cbiAgICBjYXNlIHR5cGVvZiByYXdWYWx1ZSA9PT0gJ251bWJlcic6IHtcbiAgICAgICAgY29uc3QgbnVtYmVyVmFsdWUgPSByYXdWYWx1ZTtcblxuICAgICAgICByZXR1cm4gbmV3IFNhc3NOdW1iZXIobnVtYmVyVmFsdWUpO1xuICAgIH1cblxuICAgIGNhc2UgaXNPYmplY3QocmF3VmFsdWUpICYmIFsgJ3ZhbHVlJywgJ3VuaXQnIF0uZXZlcnkocHJvcGVydHlLZXkgPT4gcHJvcGVydHlLZXkgaW4gcmF3VmFsdWUpOiB7XG4gICAgICAgIGNvbnN0IHsgdmFsdWUsIHVuaXQgfSA9IHJhd1ZhbHVlIGFzIE51bWJlcldpdGhVbml0O1xuXG4gICAgICAgIHJldHVybiBuZXcgU2Fzc051bWJlcih2YWx1ZSwgdW5pdCk7XG4gICAgfVxuXG4gICAgY2FzZSB0eXBlb2YgcmF3VmFsdWUgPT09ICdzdHJpbmcnOiB7XG4gICAgICAgIGNvbnN0IHN0cmluZ1ZhbHVlID0gcmF3VmFsdWU7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBTYXNzU3RyaW5nKHN0cmluZ1ZhbHVlKTtcbiAgICB9XG5cbiAgICBjYXNlIGlzT2JqZWN0KHJhd1ZhbHVlKSAmJiAnX3JnYicgaW4gcmF3VmFsdWU6IHtcbiAgICAgICAgY29uc3QgWyByZWQsIGdyZWVuLCBibHVlLCBhbHBoYSBdID0gcmF3VmFsdWUucmdiYSgpIGFzIG51bWJlcltdO1xuXG4gICAgICAgIHJldHVybiBuZXcgU2Fzc0NvbG9yKHsgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEgfSk7XG4gICAgfVxuXG4gICAgY2FzZSBBcnJheS5pc0FycmF5KHJhd1ZhbHVlKToge1xuICAgICAgICByZXR1cm4gbmV3IFNhc3NMaXN0KHJhd1ZhbHVlLm1hcCh2YWx1ZSA9PiBqYXZhU2NyaXB0VG9TYXNzVHlwZSh2YWx1ZSkpKTtcbiAgICB9XG5cbiAgICBjYXNlIHJhd1ZhbHVlIGluc3RhbmNlb2YgTWFwOiB7XG4gICAgICAgIGNvbnN0IG1hcFZhbHVlID0gcmF3VmFsdWUgYXMgTWFwPEphdmFTY3JpcHRUeXBlLCBKYXZhU2NyaXB0VHlwZT47XG4gICAgICAgIGNvbnN0IHNhc3NNYXAgPSBuZXcgU2Fzc01hcCgpO1xuXG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZCA9IEFycmF5LmZyb20obWFwVmFsdWUuZW50cmllcygpKVxuICAgICAgICAgICAgLm1hcChlbnRyeSA9PiBlbnRyeS5tYXAoamF2YVNjcmlwdFRvU2Fzc1R5cGUpKSBhcyBbU2Fzc1R5cGUsIFNhc3NUeXBlXVtdO1xuXG4gICAgICAgIGZvciAoY29uc3QgWyBrZXksIHZhbHVlIF0gb2YgY29udmVydGVkKSB7XG4gICAgICAgICAgICBzYXNzTWFwLmNvbnRlbnRzLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzYXNzTWFwO1xuICAgIH1cblxuICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgcmV0dXJuIFNhc3NOVUxMO1xuICAgIH1cbiAgICB9XG59XG4iLCJpbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnO1xuXG4vLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IHsgQ3VzdG9tRnVuY3Rpb24gfSBmcm9tICdzYXNzJztcblxuLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCB0eXBlIHsgU2Fzc1R5cGUsIEphdmFTY3JpcHRUeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBzYXNzVG9KYXZhU2NyaXB0VHlwZSwgamF2YVNjcmlwdFRvU2Fzc1R5cGUgfSBmcm9tICcuL3R5cGUtY29udmVydGVyJztcblxuLy8gVHlwZSBkZWZpbml0aW9ucy5cbmV4cG9ydCBpbnRlcmZhY2UgQnJpZGdlZEZ1bmN0aW9uIHtcbiAgICBleGVjdXRlKCk6IEphdmFTY3JpcHRUeXBlIHwgUHJvbWlzZTxKYXZhU2NyaXB0VHlwZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc3RydWN0b3Ige1xuICAgIG5ldyAoLi4uYXJnczogSmF2YVNjcmlwdFR5cGVbXSk6IEJyaWRnZWRGdW5jdGlvbjtcbn1cblxuLy8gQ29uc3RhbnRzLlxuY29uc3QgS2V5T2ZTaWduYXR1cmUgPSBTeW1ib2woJ0BjaWNob2wvc2Fzcy1icmlkZ2U6OktleU9mU2lnbmF0dXJlJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXNzRnVuY3Rpb24oZGVmaW5pdGlvbjogc3RyaW5nKTogQ2xhc3NEZWNvcmF0b3Ige1xuICAgIHJldHVybiAoPFQgZXh0ZW5kcyBDb25zdHJ1Y3Rvcj4odGFyZ2V0OiBUKSA9PiB7XG4gICAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoS2V5T2ZTaWduYXR1cmUsIGRlZmluaXRpb24sIHRhcmdldCk7XG5cbiAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICB9KSBhcyBDbGFzc0RlY29yYXRvcjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEZ1bmN0aW9ucyhcbiAgICAuLi5tb2R1bGVJbXBvcnRzOiBQcm9taXNlPHsgZGVmYXVsdDogQ29uc3RydWN0b3IgfT5bXVxuKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBDdXN0b21GdW5jdGlvbjwnYXN5bmMnPj4+IHtcbiAgICBjb25zdCBtb2R1bGVzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIG1vZHVsZUltcG9ydHMubWFwKG1vZHVsZSA9PiAoXG4gICAgICAgICAgICBQcm9taXNlLnJlc29sdmUobW9kdWxlKVxuICAgICAgICAgICAgICAgIC50aGVuKG1vZHVsZSA9PiBtb2R1bGUuZGVmYXVsdClcbiAgICAgICAgKSlcbiAgICApO1xuXG4gICAgY29uc3QgZW50cmllcyA9IG1vZHVsZXMubWFwKG1vZHVsZSA9PiB7XG4gICAgICAgIGNvbnN0IHNpZ25hdHVyZSA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoS2V5T2ZTaWduYXR1cmUsIG1vZHVsZSkgYXMgc3RyaW5nO1xuXG4gICAgICAgIGFzeW5jIGZ1bmN0aW9uIGN1c3RvbUZ1bmN0aW9uKHJhd0FyZ3M6IFNhc3NUeXBlW10pOiBQcm9taXNlPFNhc3NUeXBlPiB7XG4gICAgICAgICAgICBjb25zdCBhcmdzID0gcmF3QXJncy5tYXAoc2Fzc1RvSmF2YVNjcmlwdFR5cGUpO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgUmVmbGVjdC5jb25zdHJ1Y3QobW9kdWxlLCBhcmdzKS5leGVjdXRlKCk7XG5cbiAgICAgICAgICAgIHJldHVybiBqYXZhU2NyaXB0VG9TYXNzVHlwZShyZXN1bHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFsgc2lnbmF0dXJlLCBjdXN0b21GdW5jdGlvbiBdIGFzIGNvbnN0O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhlbnRyaWVzKTtcbn1cbiJdLCJuYW1lcyI6WyJTYXNzVHlwZXMiLCJfT2JqZWN0JGZyb21FbnRyaWVzIiwiX21hcEluc3RhbmNlUHJvcGVydHkiLCJfY29udGV4dCIsIl9maWx0ZXJJbnN0YW5jZVByb3BlcnR5IiwiX2NvbnRleHQyIiwiX2NvbnRleHQzIiwiX2NvbnRleHQ0IiwiX2NvbnRleHQ1IiwiX09iamVjdCRrZXlzIiwic2FzcyIsImNhbGwiLCJwcm9wZXJ0eUtleSIsIl9zdGFydHNXaXRoSW5zdGFuY2VQcm9wZXJ0eSIsImNvbnN0cnVjdG9yIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaXNQcm90b3R5cGVPZiIsIlZhbHVlIiwibmFtZSIsIlNhc3NUUlVFIiwic2Fzc1RydWUiLCJTYXNzRkFMU0UiLCJzYXNzRmFsc2UiLCJTYXNzTlVMTCIsInNhc3NOdWxsIiwiU2Fzc051bWJlciIsIlNhc3NTdHJpbmciLCJTYXNzQ29sb3IiLCJTYXNzTGlzdCIsIlNhc3NNYXAiLCJTYXNzQm9vbGVhbiIsIl9PYmplY3QkZ2V0UHJvdG90eXBlT2YiLCJpc09iamVjdCIsInZhbHVlIiwidHlwZSIsInNhc3NUb0phdmFTY3JpcHRUeXBlIiwic2Fzc1ZhbHVlIiwidGV4dCIsIm51bWVyYXRvclVuaXRzIiwiZGVub21pbmF0b3JVbml0cyIsInVuaXQiLCJoYXNVbml0cyIsImpvaW4iLCJzaXplIiwicmVkIiwiZ3JlZW4iLCJibHVlIiwiYWxwaGEiLCJjaHJvbWEiLCJsaXN0VmFsdWUiLCJhc0xpc3QiLCJsZW5ndGgiLCJhcnJheSIsIl9maWxsSW5zdGFuY2VQcm9wZXJ0eSIsIkFycmF5IiwidW5kZWZpbmVkIiwiaW5kZXgiLCJnZXQiLCJtYXBWYWx1ZSIsImNvbnRlbnRzIiwiZW50cmllcyIsIl9BcnJheSRmcm9tIiwiX2VudHJpZXNJbnN0YW5jZVByb3BlcnR5Iiwia2V5IiwiX01hcCIsImphdmFTY3JpcHRUb1Nhc3NUeXBlIiwicmF3VmFsdWUiLCJib29sZWFuVmFsdWUiLCJudW1iZXJWYWx1ZSIsIl9ldmVyeUluc3RhbmNlUHJvcGVydHkiLCJzdHJpbmdWYWx1ZSIsInJnYmEiLCJfQXJyYXkkaXNBcnJheSIsInNhc3NNYXAiLCJjb252ZXJ0ZWQiLCJlbnRyeSIsInNldCIsIktleU9mU2lnbmF0dXJlIiwiX1N5bWJvbCIsInNhc3NGdW5jdGlvbiIsImRlZmluaXRpb24iLCJ0YXJnZXQiLCJSZWZsZWN0IiwiZGVmaW5lTWV0YWRhdGEiLCJnZXRGdW5jdGlvbnMiLCJtb2R1bGVJbXBvcnRzIiwibW9kdWxlcyIsIl9Qcm9taXNlIiwiYWxsIiwibW9kdWxlIiwicmVzb2x2ZSIsInRoZW4iLCJkZWZhdWx0Iiwic2lnbmF0dXJlIiwiZ2V0TWV0YWRhdGEiLCJjdXN0b21GdW5jdGlvbiIsInJhd0FyZ3MiLCJhcmdzIiwicmVzdWx0IiwiX1JlZmxlY3QkY29uc3RydWN0IiwiZXhlY3V0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FB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
package/releases/esm.js DELETED
@@ -1,191 +0,0 @@
1
- import _Symbol from 'core-js-pure/stable/symbol/index.js';
2
- import _Promise from 'core-js-pure/stable/promise/index.js';
3
- import _mapInstanceProperty from 'core-js-pure/stable/instance/map.js';
4
- import _Reflect$construct from 'core-js-pure/stable/reflect/construct.js';
5
- import _Object$fromEntries from 'core-js-pure/stable/object/from-entries.js';
6
- import 'reflect-metadata';
7
- import _fillInstanceProperty from 'core-js-pure/stable/instance/fill.js';
8
- import _Array$from from 'core-js-pure/stable/array/from.js';
9
- import _entriesInstanceProperty from 'core-js-pure/stable/instance/entries.js';
10
- import _Map from 'core-js-pure/stable/map/index.js';
11
- import _everyInstanceProperty from 'core-js-pure/stable/instance/every.js';
12
- import _Array$isArray from 'core-js-pure/stable/array/is-array.js';
13
- import chroma from 'chroma-js';
14
- import _filterInstanceProperty from 'core-js-pure/stable/instance/filter.js';
15
- import _Object$keys from 'core-js-pure/stable/object/keys.js';
16
- import _startsWithInstanceProperty from 'core-js-pure/stable/instance/starts-with.js';
17
- import _Object$getPrototypeOf from 'core-js-pure/stable/object/get-prototype-of.js';
18
- import * as sass from 'sass';
19
- import { Value } from 'sass';
20
-
21
- var _context, _context2, _context3, _context4, _context5;
22
-
23
- // Type definitions.
24
-
25
- const SassTypes = _Object$fromEntries(_mapInstanceProperty(_context = _filterInstanceProperty(_context2 = _filterInstanceProperty(_context3 = _mapInstanceProperty(_context4 = _filterInstanceProperty(_context5 = _Object$keys(sass)).call(_context5, propertyKey => _startsWithInstanceProperty(propertyKey).call(propertyKey, 'Sass'))).call(_context4, propertyKey => sass[propertyKey])).call(_context3, constructor => typeof constructor === 'function')).call(_context2, constructor => Object.prototype.isPrototypeOf.call(Value.prototype, constructor.prototype))).call(_context, constructor => [constructor.name, constructor]));
26
- const SassTRUE = sass.sassTrue;
27
- const SassFALSE = sass.sassFalse;
28
- const SassNULL = sass.sassNull;
29
- const {
30
- SassNumber
31
- } = SassTypes;
32
- const {
33
- SassString
34
- } = SassTypes;
35
- const {
36
- SassColor
37
- } = SassTypes;
38
- const {
39
- SassList
40
- } = SassTypes;
41
- const {
42
- SassMap
43
- } = SassTypes;
44
- const SassBoolean = _Object$getPrototypeOf(SassTRUE).constructor;
45
-
46
- // Helper functions.
47
- function isObject(value) {
48
- const type = typeof value;
49
- return !!value && (type === 'object' || type === 'function');
50
- }
51
- function sassToJavaScriptType(sassValue) {
52
- switch (true) {
53
- case sassValue instanceof SassBoolean:
54
- {
55
- return sassValue.value;
56
- }
57
- case sassValue instanceof SassString:
58
- {
59
- return sassValue.text;
60
- }
61
- case sassValue instanceof SassNumber:
62
- {
63
- const {
64
- value,
65
- numeratorUnits,
66
- denominatorUnits
67
- } = sassValue;
68
- const unit = sassValue.hasUnits ? numeratorUnits.join('*') + (denominatorUnits.size > 0 ? `/${denominatorUnits.join('*')}` : '') : '';
69
- return unit ? {
70
- value,
71
- unit
72
- } : value;
73
- }
74
- case sassValue instanceof SassColor:
75
- {
76
- const {
77
- red,
78
- green,
79
- blue,
80
- alpha
81
- } = sassValue;
82
- return chroma(red, green, blue, alpha);
83
- }
84
- case sassValue instanceof SassList:
85
- {
86
- var _context;
87
- const listValue = sassValue.asList;
88
- const length = listValue.size;
89
- const array = _fillInstanceProperty(_context = Array(length)).call(_context, undefined);
90
- for (let index = 0; index < length; index += 1) {
91
- array[index] = listValue.get(index);
92
- }
93
- return _mapInstanceProperty(array).call(array, value => sassToJavaScriptType(value));
94
- }
95
- case sassValue instanceof SassMap:
96
- {
97
- var _context2;
98
- const mapValue = sassValue.contents;
99
- const entries = _mapInstanceProperty(_context2 = _Array$from(_entriesInstanceProperty(mapValue).call(mapValue))).call(_context2, ([key, value]) => [sassToJavaScriptType(key), sassToJavaScriptType(value)]);
100
- return new _Map(entries);
101
- }
102
- default:
103
- {
104
- return null;
105
- }
106
- }
107
- }
108
- function javaScriptToSassType(rawValue) {
109
- var _context3;
110
- switch (true) {
111
- case typeof rawValue === 'boolean':
112
- {
113
- const booleanValue = rawValue;
114
- return booleanValue ? SassTRUE : SassFALSE;
115
- }
116
- case typeof rawValue === 'number':
117
- {
118
- const numberValue = rawValue;
119
- return new SassNumber(numberValue);
120
- }
121
- case isObject(rawValue) && _everyInstanceProperty(_context3 = ['value', 'unit']).call(_context3, propertyKey => propertyKey in rawValue):
122
- {
123
- const {
124
- value,
125
- unit
126
- } = rawValue;
127
- return new SassNumber(value, unit);
128
- }
129
- case typeof rawValue === 'string':
130
- {
131
- const stringValue = rawValue;
132
- return new SassString(stringValue);
133
- }
134
- case isObject(rawValue) && '_rgb' in rawValue:
135
- {
136
- const [red, green, blue, alpha] = rawValue.rgba();
137
- return new SassColor({
138
- red,
139
- green,
140
- blue,
141
- alpha
142
- });
143
- }
144
- case _Array$isArray(rawValue):
145
- {
146
- return new SassList(_mapInstanceProperty(rawValue).call(rawValue, value => javaScriptToSassType(value)));
147
- }
148
- case rawValue instanceof _Map:
149
- {
150
- var _context4;
151
- const mapValue = rawValue;
152
- const sassMap = new SassMap();
153
- const converted = _mapInstanceProperty(_context4 = _Array$from(_entriesInstanceProperty(mapValue).call(mapValue))).call(_context4, entry => _mapInstanceProperty(entry).call(entry, javaScriptToSassType));
154
- for (const [key, value] of converted) {
155
- sassMap.contents.set(key, value);
156
- }
157
- return sassMap;
158
- }
159
- default:
160
- {
161
- return SassNULL;
162
- }
163
- }
164
- }
165
-
166
- // Type definitions.
167
-
168
- // Constants.
169
- const KeyOfSignature = _Symbol('@cichol/sass-bridge::KeyOfSignature');
170
- function sassFunction(definition) {
171
- return target => {
172
- Reflect.defineMetadata(KeyOfSignature, definition, target);
173
- return target;
174
- };
175
- }
176
- async function getFunctions(...moduleImports) {
177
- const modules = await _Promise.all(_mapInstanceProperty(moduleImports).call(moduleImports, module => _Promise.resolve(module).then(module => module.default)));
178
- const entries = _mapInstanceProperty(modules).call(modules, module => {
179
- const signature = Reflect.getMetadata(KeyOfSignature, module);
180
- async function customFunction(rawArgs) {
181
- const args = _mapInstanceProperty(rawArgs).call(rawArgs, sassToJavaScriptType);
182
- const result = await _Reflect$construct(module, args).execute();
183
- return javaScriptToSassType(result);
184
- }
185
- return [signature, customFunction];
186
- });
187
- return _Object$fromEntries(entries);
188
- }
189
-
190
- export { getFunctions, sassFunction };
191
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNtLmpzIiwic291cmNlcyI6WyIuLi9zb3VyY2VzL3R5cGVzLnRzIiwiLi4vc291cmNlcy90eXBlLWNvbnZlcnRlci50cyIsIi4uL3NvdXJjZXMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcmQtcGFydHkgbW9kdWxlcy5cbmltcG9ydCB0eXBlIHsgQ29sb3IgfSBmcm9tICdjaHJvbWEtanMnO1xuaW1wb3J0ICogYXMgc2FzcyBmcm9tICdzYXNzJztcbmltcG9ydCB7IFZhbHVlIH0gZnJvbSAnc2Fzcyc7XG5cbi8vIFR5cGUgZGVmaW5pdGlvbnMuXG5leHBvcnQgdHlwZSBQcmltaXRpdmVzID0gYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZztcblxuZXhwb3J0IHR5cGUgTnVtYmVyV2l0aFVuaXQgPSB7IHZhbHVlOiBudW1iZXIsIHVuaXQ6IHN0cmluZyB9O1xuXG5leHBvcnQgdHlwZSBKYXZhU2NyaXB0VHlwZTxCYXNlID0gUHJpbWl0aXZlcyB8IENvbG9yIHwgTnVtYmVyV2l0aFVuaXQgfCBudWxsPiA9XG4gICAgfCBCYXNlXG4gICAgfCBKYXZhU2NyaXB0VHlwZTxCYXNlPltdXG4gICAgfCBNYXA8SmF2YVNjcmlwdFR5cGU8QmFzZT4sIEphdmFTY3JpcHRUeXBlPEJhc2U+PjtcblxudHlwZSBGaWx0ZXJTYXNzUHJlZml4PFQgZXh0ZW5kcyBzdHJpbmc+ID0gVCBleHRlbmRzIGBTYXNzJHtpbmZlciBSfWAgPyBSIDogbmV2ZXI7XG5cbnR5cGUgU2Fzc1R5cGVzID0gRXhjbHVkZTxgU2FzcyR7RmlsdGVyU2Fzc1ByZWZpeDxrZXlvZiB0eXBlb2Ygc2Fzcz59YCwgYFNhc3MkeydCb29sZWFuJyB8ICdDYWxjdWxhdGlvbid9YD47XG5cbmNvbnN0IFNhc3NUeXBlcyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3Qua2V5cyhzYXNzKVxuICAgICAgICAuZmlsdGVyKHByb3BlcnR5S2V5ID0+IHByb3BlcnR5S2V5LnN0YXJ0c1dpdGgoJ1Nhc3MnKSlcbiAgICAgICAgLm1hcChwcm9wZXJ0eUtleSA9PiBzYXNzW3Byb3BlcnR5S2V5IGFzIFNhc3NUeXBlc10pXG4gICAgICAgIC5maWx0ZXIoY29uc3RydWN0b3IgPT4gdHlwZW9mIGNvbnN0cnVjdG9yID09PSAnZnVuY3Rpb24nKVxuICAgICAgICAuZmlsdGVyKGNvbnN0cnVjdG9yID0+IE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZi5jYWxsKFZhbHVlLnByb3RvdHlwZSwgY29uc3RydWN0b3IucHJvdG90eXBlKSlcbiAgICAgICAgLm1hcChjb25zdHJ1Y3RvciA9PiBbIGNvbnN0cnVjdG9yLm5hbWUsIGNvbnN0cnVjdG9yIF0gYXMgW1Nhc3NUeXBlcywgKHR5cGVvZiBzYXNzKVtTYXNzVHlwZXNdXSlcbikgYXMgeyBbUCBpbiBTYXNzVHlwZXNdOiAodHlwZW9mIHNhc3MpW1BdIH07XG5cbmV4cG9ydCBjb25zdCBTYXNzVFJVRSA9IHNhc3Muc2Fzc1RydWU7XG5leHBvcnQgdHlwZSBTYXNzVFJVRSA9IHR5cGVvZiBTYXNzVFJVRTtcblxuZXhwb3J0IGNvbnN0IFNhc3NGQUxTRSA9IHNhc3Muc2Fzc0ZhbHNlO1xuZXhwb3J0IHR5cGUgU2Fzc0ZBTFNFID0gdHlwZW9mIFNhc3NGQUxTRTtcblxuZXhwb3J0IGNvbnN0IFNhc3NOVUxMID0gc2Fzcy5zYXNzTnVsbDtcbmV4cG9ydCB0eXBlIFNhc3NOVUxMID0gdHlwZW9mIFNhc3NOVUxMO1xuXG5leHBvcnQgY29uc3QgeyBTYXNzTnVtYmVyIH0gPSBTYXNzVHlwZXM7XG5leHBvcnQgdHlwZSBTYXNzTnVtYmVyID0gSW5zdGFuY2VUeXBlPHR5cGVvZiBTYXNzTnVtYmVyPjtcblxuZXhwb3J0IGNvbnN0IHsgU2Fzc1N0cmluZyB9ID0gU2Fzc1R5cGVzO1xuZXhwb3J0IHR5cGUgU2Fzc1N0cmluZyA9IEluc3RhbmNlVHlwZTx0eXBlb2YgU2Fzc1N0cmluZz47XG5cbmV4cG9ydCBjb25zdCB7IFNhc3NDb2xvciB9ID0gU2Fzc1R5cGVzO1xuZXhwb3J0IHR5cGUgU2Fzc0NvbG9yID0gSW5zdGFuY2VUeXBlPHR5cGVvZiBTYXNzQ29sb3I+O1xuXG5leHBvcnQgY29uc3QgeyBTYXNzTGlzdCB9ID0gU2Fzc1R5cGVzO1xuZXhwb3J0IHR5cGUgU2Fzc0xpc3QgPSBJbnN0YW5jZVR5cGU8dHlwZW9mIFNhc3NMaXN0PjtcblxuZXhwb3J0IGNvbnN0IHsgU2Fzc01hcCB9ID0gU2Fzc1R5cGVzO1xuZXhwb3J0IHR5cGUgU2Fzc01hcCA9IEluc3RhbmNlVHlwZTx0eXBlb2YgU2Fzc01hcD47XG5cbmV4cG9ydCBjb25zdCBTYXNzQm9vbGVhbiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihTYXNzVFJVRSkuY29uc3RydWN0b3IgYXMgdHlwZW9mIHNhc3MuU2Fzc0Jvb2xlYW47XG5leHBvcnQgdHlwZSBTYXNzQm9vbGVhbiA9IHNhc3MuU2Fzc0Jvb2xlYW47XG5cbmV4cG9ydCB0eXBlIFNhc3NUeXBlID1cbiAgICB8IEluc3RhbmNlVHlwZTx0eXBlb2YgU2Fzc1R5cGVzIGV4dGVuZHMgUmVjb3JkPGFueSwgaW5mZXIgUj4gPyBSIDogbmV2ZXI+XG4gICAgfCBTYXNzQm9vbGVhbjtcbiIsIi8vIFRoaXJkLXBhcnR5IG1vZHVsZXMuXG5pbXBvcnQgY2hyb21hIGZyb20gJ2Nocm9tYS1qcyc7XG5cbi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQge1xuICAgIHR5cGUgU2Fzc1R5cGUsXG4gICAgU2Fzc0Jvb2xlYW4sXG4gICAgU2Fzc051bWJlcixcbiAgICBTYXNzU3RyaW5nLFxuICAgIFNhc3NDb2xvcixcbiAgICBTYXNzTGlzdCxcbiAgICBTYXNzTWFwLFxuICAgIFNhc3NUUlVFLFxuICAgIFNhc3NGQUxTRSxcbiAgICBTYXNzTlVMTCxcbiAgICB0eXBlIEphdmFTY3JpcHRUeXBlLFxuICAgIHR5cGUgTnVtYmVyV2l0aFVuaXRcbn0gZnJvbSAnLi90eXBlcyc7XG5cbi8vIEhlbHBlciBmdW5jdGlvbnMuXG5mdW5jdGlvbiBpc09iamVjdCh2YWx1ZT86IHVua25vd24pOiB2YWx1ZSBpcyBvYmplY3Qge1xuICAgIGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsdWU7XG5cbiAgICByZXR1cm4gISF2YWx1ZSAmJiAodHlwZSA9PT0gJ29iamVjdCcgfHwgdHlwZSA9PT0gJ2Z1bmN0aW9uJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXNzVG9KYXZhU2NyaXB0VHlwZShzYXNzVmFsdWU6IFNhc3NUeXBlKTogSmF2YVNjcmlwdFR5cGUge1xuICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgIGNhc2Ugc2Fzc1ZhbHVlIGluc3RhbmNlb2YgU2Fzc0Jvb2xlYW46IHtcbiAgICAgICAgcmV0dXJuIHNhc3NWYWx1ZS52YWx1ZTtcbiAgICB9XG5cbiAgICBjYXNlIHNhc3NWYWx1ZSBpbnN0YW5jZW9mIFNhc3NTdHJpbmc6IHtcbiAgICAgICAgcmV0dXJuIHNhc3NWYWx1ZS50ZXh0O1xuICAgIH1cblxuICAgIGNhc2Ugc2Fzc1ZhbHVlIGluc3RhbmNlb2YgU2Fzc051bWJlcjoge1xuICAgICAgICBjb25zdCB7IHZhbHVlLCBudW1lcmF0b3JVbml0cywgZGVub21pbmF0b3JVbml0cyB9ID0gc2Fzc1ZhbHVlO1xuXG4gICAgICAgIGNvbnN0IHVuaXQgPSBzYXNzVmFsdWUuaGFzVW5pdHNcbiAgICAgICAgICAgID8gbnVtZXJhdG9yVW5pdHMuam9pbignKicpICsgKGRlbm9taW5hdG9yVW5pdHMuc2l6ZSA+IDAgPyBgLyR7ZGVub21pbmF0b3JVbml0cy5qb2luKCcqJyl9YCA6ICcnKVxuICAgICAgICAgICAgOiAnJztcblxuICAgICAgICByZXR1cm4gdW5pdCA/IHsgdmFsdWUsIHVuaXQgfSA6IHZhbHVlO1xuICAgIH1cblxuICAgIGNhc2Ugc2Fzc1ZhbHVlIGluc3RhbmNlb2YgU2Fzc0NvbG9yOiB7XG4gICAgICAgIGNvbnN0IHsgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEgfSA9IHNhc3NWYWx1ZTtcblxuICAgICAgICByZXR1cm4gY2hyb21hKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTtcbiAgICB9XG5cbiAgICBjYXNlIHNhc3NWYWx1ZSBpbnN0YW5jZW9mIFNhc3NMaXN0OiB7XG4gICAgICAgIGNvbnN0IGxpc3RWYWx1ZSA9IHNhc3NWYWx1ZS5hc0xpc3Q7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IGxpc3RWYWx1ZS5zaXplO1xuICAgICAgICBjb25zdCBhcnJheSA9IEFycmF5KGxlbmd0aCkuZmlsbCh1bmRlZmluZWQpIGFzIFNhc3NUeXBlW107XG5cbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgICAgICAgICAgYXJyYXlbaW5kZXhdID0gbGlzdFZhbHVlLmdldChpbmRleCkgYXMgU2Fzc1R5cGU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYXJyYXkubWFwKHZhbHVlID0+IHNhc3NUb0phdmFTY3JpcHRUeXBlKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgY2FzZSBzYXNzVmFsdWUgaW5zdGFuY2VvZiBTYXNzTWFwOiB7XG4gICAgICAgIGNvbnN0IG1hcFZhbHVlID0gc2Fzc1ZhbHVlLmNvbnRlbnRzO1xuXG4gICAgICAgIGNvbnN0IGVudHJpZXMgPSBBcnJheS5mcm9tKG1hcFZhbHVlLmVudHJpZXMoKSBhcyBJdGVyYWJsZUl0ZXJhdG9yPFtTYXNzVHlwZSwgU2Fzc1R5cGVdPilcbiAgICAgICAgICAgIC5tYXAoKFsga2V5LCB2YWx1ZSBdKSA9PiBbIHNhc3NUb0phdmFTY3JpcHRUeXBlKGtleSksIHNhc3NUb0phdmFTY3JpcHRUeXBlKHZhbHVlKSBdKTtcblxuICAgICAgICByZXR1cm4gbmV3IE1hcChlbnRyaWVzIGFzIFtKYXZhU2NyaXB0VHlwZSwgSmF2YVNjcmlwdFR5cGVdW10pO1xuICAgIH1cblxuICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGphdmFTY3JpcHRUb1Nhc3NUeXBlKHJhd1ZhbHVlOiBKYXZhU2NyaXB0VHlwZSk6IFNhc3NUeXBlIHtcbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICBjYXNlIHR5cGVvZiByYXdWYWx1ZSA9PT0gJ2Jvb2xlYW4nOiB7XG4gICAgICAgIGNvbnN0IGJvb2xlYW5WYWx1ZSA9IHJhd1ZhbHVlO1xuXG4gICAgICAgIHJldHVybiBib29sZWFuVmFsdWUgPyBTYXNzVFJVRSA6IFNhc3NGQUxTRTtcbiAgICB9XG5cbiAgICBjYXNlIHR5cGVvZiByYXdWYWx1ZSA9PT0gJ251bWJlcic6IHtcbiAgICAgICAgY29uc3QgbnVtYmVyVmFsdWUgPSByYXdWYWx1ZTtcblxuICAgICAgICByZXR1cm4gbmV3IFNhc3NOdW1iZXIobnVtYmVyVmFsdWUpO1xuICAgIH1cblxuICAgIGNhc2UgaXNPYmplY3QocmF3VmFsdWUpICYmIFsgJ3ZhbHVlJywgJ3VuaXQnIF0uZXZlcnkocHJvcGVydHlLZXkgPT4gcHJvcGVydHlLZXkgaW4gcmF3VmFsdWUpOiB7XG4gICAgICAgIGNvbnN0IHsgdmFsdWUsIHVuaXQgfSA9IHJhd1ZhbHVlIGFzIE51bWJlcldpdGhVbml0O1xuXG4gICAgICAgIHJldHVybiBuZXcgU2Fzc051bWJlcih2YWx1ZSwgdW5pdCk7XG4gICAgfVxuXG4gICAgY2FzZSB0eXBlb2YgcmF3VmFsdWUgPT09ICdzdHJpbmcnOiB7XG4gICAgICAgIGNvbnN0IHN0cmluZ1ZhbHVlID0gcmF3VmFsdWU7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBTYXNzU3RyaW5nKHN0cmluZ1ZhbHVlKTtcbiAgICB9XG5cbiAgICBjYXNlIGlzT2JqZWN0KHJhd1ZhbHVlKSAmJiAnX3JnYicgaW4gcmF3VmFsdWU6IHtcbiAgICAgICAgY29uc3QgWyByZWQsIGdyZWVuLCBibHVlLCBhbHBoYSBdID0gcmF3VmFsdWUucmdiYSgpIGFzIG51bWJlcltdO1xuXG4gICAgICAgIHJldHVybiBuZXcgU2Fzc0NvbG9yKHsgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEgfSk7XG4gICAgfVxuXG4gICAgY2FzZSBBcnJheS5pc0FycmF5KHJhd1ZhbHVlKToge1xuICAgICAgICByZXR1cm4gbmV3IFNhc3NMaXN0KHJhd1ZhbHVlLm1hcCh2YWx1ZSA9PiBqYXZhU2NyaXB0VG9TYXNzVHlwZSh2YWx1ZSkpKTtcbiAgICB9XG5cbiAgICBjYXNlIHJhd1ZhbHVlIGluc3RhbmNlb2YgTWFwOiB7XG4gICAgICAgIGNvbnN0IG1hcFZhbHVlID0gcmF3VmFsdWUgYXMgTWFwPEphdmFTY3JpcHRUeXBlLCBKYXZhU2NyaXB0VHlwZT47XG4gICAgICAgIGNvbnN0IHNhc3NNYXAgPSBuZXcgU2Fzc01hcCgpO1xuXG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZCA9IEFycmF5LmZyb20obWFwVmFsdWUuZW50cmllcygpKVxuICAgICAgICAgICAgLm1hcChlbnRyeSA9PiBlbnRyeS5tYXAoamF2YVNjcmlwdFRvU2Fzc1R5cGUpKSBhcyBbU2Fzc1R5cGUsIFNhc3NUeXBlXVtdO1xuXG4gICAgICAgIGZvciAoY29uc3QgWyBrZXksIHZhbHVlIF0gb2YgY29udmVydGVkKSB7XG4gICAgICAgICAgICBzYXNzTWFwLmNvbnRlbnRzLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzYXNzTWFwO1xuICAgIH1cblxuICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgcmV0dXJuIFNhc3NOVUxMO1xuICAgIH1cbiAgICB9XG59XG4iLCJpbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnO1xuXG4vLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IHsgQ3VzdG9tRnVuY3Rpb24gfSBmcm9tICdzYXNzJztcblxuLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCB0eXBlIHsgU2Fzc1R5cGUsIEphdmFTY3JpcHRUeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBzYXNzVG9KYXZhU2NyaXB0VHlwZSwgamF2YVNjcmlwdFRvU2Fzc1R5cGUgfSBmcm9tICcuL3R5cGUtY29udmVydGVyJztcblxuLy8gVHlwZSBkZWZpbml0aW9ucy5cbmV4cG9ydCBpbnRlcmZhY2UgQnJpZGdlZEZ1bmN0aW9uIHtcbiAgICBleGVjdXRlKCk6IEphdmFTY3JpcHRUeXBlIHwgUHJvbWlzZTxKYXZhU2NyaXB0VHlwZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc3RydWN0b3Ige1xuICAgIG5ldyAoLi4uYXJnczogSmF2YVNjcmlwdFR5cGVbXSk6IEJyaWRnZWRGdW5jdGlvbjtcbn1cblxuLy8gQ29uc3RhbnRzLlxuY29uc3QgS2V5T2ZTaWduYXR1cmUgPSBTeW1ib2woJ0BjaWNob2wvc2Fzcy1icmlkZ2U6OktleU9mU2lnbmF0dXJlJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXNzRnVuY3Rpb24oZGVmaW5pdGlvbjogc3RyaW5nKTogQ2xhc3NEZWNvcmF0b3Ige1xuICAgIHJldHVybiAoPFQgZXh0ZW5kcyBDb25zdHJ1Y3Rvcj4odGFyZ2V0OiBUKSA9PiB7XG4gICAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoS2V5T2ZTaWduYXR1cmUsIGRlZmluaXRpb24sIHRhcmdldCk7XG5cbiAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICB9KSBhcyBDbGFzc0RlY29yYXRvcjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEZ1bmN0aW9ucyhcbiAgICAuLi5tb2R1bGVJbXBvcnRzOiBQcm9taXNlPHsgZGVmYXVsdDogQ29uc3RydWN0b3IgfT5bXVxuKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBDdXN0b21GdW5jdGlvbjwnYXN5bmMnPj4+IHtcbiAgICBjb25zdCBtb2R1bGVzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIG1vZHVsZUltcG9ydHMubWFwKG1vZHVsZSA9PiAoXG4gICAgICAgICAgICBQcm9taXNlLnJlc29sdmUobW9kdWxlKVxuICAgICAgICAgICAgICAgIC50aGVuKG1vZHVsZSA9PiBtb2R1bGUuZGVmYXVsdClcbiAgICAgICAgKSlcbiAgICApO1xuXG4gICAgY29uc3QgZW50cmllcyA9IG1vZHVsZXMubWFwKG1vZHVsZSA9PiB7XG4gICAgICAgIGNvbnN0IHNpZ25hdHVyZSA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoS2V5T2ZTaWduYXR1cmUsIG1vZHVsZSkgYXMgc3RyaW5nO1xuXG4gICAgICAgIGFzeW5jIGZ1bmN0aW9uIGN1c3RvbUZ1bmN0aW9uKHJhd0FyZ3M6IFNhc3NUeXBlW10pOiBQcm9taXNlPFNhc3NUeXBlPiB7XG4gICAgICAgICAgICBjb25zdCBhcmdzID0gcmF3QXJncy5tYXAoc2Fzc1RvSmF2YVNjcmlwdFR5cGUpO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgUmVmbGVjdC5jb25zdHJ1Y3QobW9kdWxlLCBhcmdzKS5leGVjdXRlKCk7XG5cbiAgICAgICAgICAgIHJldHVybiBqYXZhU2NyaXB0VG9TYXNzVHlwZShyZXN1bHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFsgc2lnbmF0dXJlLCBjdXN0b21GdW5jdGlvbiBdIGFzIGNvbnN0O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhlbnRyaWVzKTtcbn1cbiJdLCJuYW1lcyI6WyJTYXNzVHlwZXMiLCJfT2JqZWN0JGZyb21FbnRyaWVzIiwiX21hcEluc3RhbmNlUHJvcGVydHkiLCJfY29udGV4dCIsIl9maWx0ZXJJbnN0YW5jZVByb3BlcnR5IiwiX2NvbnRleHQyIiwiX2NvbnRleHQzIiwiX2NvbnRleHQ0IiwiX2NvbnRleHQ1IiwiX09iamVjdCRrZXlzIiwic2FzcyIsImNhbGwiLCJwcm9wZXJ0eUtleSIsIl9zdGFydHNXaXRoSW5zdGFuY2VQcm9wZXJ0eSIsImNvbnN0cnVjdG9yIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaXNQcm90b3R5cGVPZiIsIlZhbHVlIiwibmFtZSIsIlNhc3NUUlVFIiwic2Fzc1RydWUiLCJTYXNzRkFMU0UiLCJzYXNzRmFsc2UiLCJTYXNzTlVMTCIsInNhc3NOdWxsIiwiU2Fzc051bWJlciIsIlNhc3NTdHJpbmciLCJTYXNzQ29sb3IiLCJTYXNzTGlzdCIsIlNhc3NNYXAiLCJTYXNzQm9vbGVhbiIsIl9PYmplY3QkZ2V0UHJvdG90eXBlT2YiLCJpc09iamVjdCIsInZhbHVlIiwidHlwZSIsInNhc3NUb0phdmFTY3JpcHRUeXBlIiwic2Fzc1ZhbHVlIiwidGV4dCIsIm51bWVyYXRvclVuaXRzIiwiZGVub21pbmF0b3JVbml0cyIsInVuaXQiLCJoYXNVbml0cyIsImpvaW4iLCJzaXplIiwicmVkIiwiZ3JlZW4iLCJibHVlIiwiYWxwaGEiLCJjaHJvbWEiLCJsaXN0VmFsdWUiLCJhc0xpc3QiLCJsZW5ndGgiLCJhcnJheSIsIl9maWxsSW5zdGFuY2VQcm9wZXJ0eSIsIkFycmF5IiwidW5kZWZpbmVkIiwiaW5kZXgiLCJnZXQiLCJtYXBWYWx1ZSIsImNvbnRlbnRzIiwiZW50cmllcyIsIl9BcnJheSRmcm9tIiwiX2VudHJpZXNJbnN0YW5jZVByb3BlcnR5Iiwia2V5IiwiX01hcCIsImphdmFTY3JpcHRUb1Nhc3NUeXBlIiwicmF3VmFsdWUiLCJib29sZWFuVmFsdWUiLCJudW1iZXJWYWx1ZSIsIl9ldmVyeUluc3RhbmNlUHJvcGVydHkiLCJzdHJpbmdWYWx1ZSIsInJnYmEiLCJfQXJyYXkkaXNBcnJheSIsInNhc3NNYXAiLCJjb252ZXJ0ZWQiLCJlbnRyeSIsInNldCIsIktleU9mU2lnbmF0dXJlIiwiX1N5bWJvbCIsInNhc3NGdW5jdGlvbiIsImRlZmluaXRpb24iLCJ0YXJnZXQiLCJSZWZsZWN0IiwiZGVmaW5lTWV0YWRhdGEiLCJnZXRGdW5jdGlvbnMiLCJtb2R1bGVJbXBvcnRzIiwibW9kdWxlcyIsIl9Qcm9taXNlIiwiYWxsIiwibW9kdWxlIiwicmVzb2x2ZSIsInRoZW4iLCJkZWZhdWx0Iiwic2lnbmF0dXJlIiwiZ2V0TWV0YWRhdGEiLCJjdXN0b21GdW5jdGlvbiIsInJhd0FyZ3MiLCJhcmdzIiwicmVzdWx0IiwiX1JlZmxlY3QkY29uc3RydWN0IiwiZXhlY3V0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUtBOztBQWNBLE1BQU1BLFNBQVMs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
package/types/index.d.ts DELETED
@@ -1,13 +0,0 @@
1
- import 'reflect-metadata';
2
- import { CustomFunction } from 'sass';
3
- import type { JavaScriptType } from './types';
4
- export interface BridgedFunction {
5
- execute(): JavaScriptType | Promise<JavaScriptType>;
6
- }
7
- export interface Constructor {
8
- new (...args: JavaScriptType[]): BridgedFunction;
9
- }
10
- export declare function sassFunction(definition: string): ClassDecorator;
11
- export declare function getFunctions(...moduleImports: Promise<{
12
- default: Constructor;
13
- }>[]): Promise<Record<string, CustomFunction<'async'>>>;
@@ -1,3 +0,0 @@
1
- import { type SassType, type JavaScriptType } from './types';
2
- export declare function sassToJavaScriptType(sassValue: SassType): JavaScriptType;
3
- export declare function javaScriptToSassType(rawValue: JavaScriptType): SassType;
package/types/types.d.ts DELETED
@@ -1,31 +0,0 @@
1
- import type { Color } from 'chroma-js';
2
- import * as sass from 'sass';
3
- export type Primitives = boolean | number | string;
4
- export type NumberWithUnit = {
5
- value: number;
6
- unit: string;
7
- };
8
- export type JavaScriptType<Base = Primitives | Color | NumberWithUnit | null> = Base | JavaScriptType<Base>[] | Map<JavaScriptType<Base>, JavaScriptType<Base>>;
9
- type FilterSassPrefix<T extends string> = T extends `Sass${infer R}` ? R : never;
10
- type SassTypes = Exclude<`Sass${FilterSassPrefix<keyof typeof sass>}`, `Sass${'Boolean' | 'Calculation'}`>;
11
- declare const SassTypes: { [P in SassTypes]: (typeof sass)[P]; };
12
- export declare const SassTRUE: sass.SassBoolean;
13
- export type SassTRUE = typeof SassTRUE;
14
- export declare const SassFALSE: sass.SassBoolean;
15
- export type SassFALSE = typeof SassFALSE;
16
- export declare const SassNULL: sass.Value;
17
- export type SassNULL = typeof SassNULL;
18
- export declare const SassNumber: typeof sass.SassNumber;
19
- export type SassNumber = InstanceType<typeof SassNumber>;
20
- export declare const SassString: typeof sass.SassString;
21
- export type SassString = InstanceType<typeof SassString>;
22
- export declare const SassColor: typeof sass.SassColor;
23
- export type SassColor = InstanceType<typeof SassColor>;
24
- export declare const SassList: typeof sass.SassList;
25
- export type SassList = InstanceType<typeof SassList>;
26
- export declare const SassMap: typeof sass.SassMap;
27
- export type SassMap = InstanceType<typeof SassMap>;
28
- export declare const SassBoolean: typeof sass.SassBoolean;
29
- export type SassBoolean = sass.SassBoolean;
30
- export type SassType = InstanceType<typeof SassTypes extends Record<any, infer R> ? R : never> | SassBoolean;
31
- export {};