@trebired/bundler 3.1.1 → 3.4.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.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,15 @@ All notable changes to `@trebired/bundler` will be documented here.
4
4
 
5
5
  This project follows semantic versioning once published.
6
6
 
7
+ ## 3.4.0
8
+
9
+ - Added package `imports` map resolution for SCSS `@use` and `@forward` hash aliases while preserving normal Sass relative imports, load paths, packages, and CSS asset URLs.
10
+ - Kept the SCSS resolver wired through the shared esbuild plugin path so browser and node-targeted builds compile aliases the same way.
11
+
12
+ ## 3.1.2
13
+
14
+ - Moved package-owned bundler logging under the `trebired.bundler` group root, including build, watch, and initialization groups.
15
+
7
16
  ## 3.1.1
8
17
 
9
18
  - Added `@trebired/result` as the internal bundler outcome surface for build-time backend coordination instead of maintaining package-local result shims.
@@ -1,4 +1,4 @@
1
- declare const BUNDLER_LOG_GROUP = "bundler";
1
+ declare const BUNDLER_LOG_GROUP = "trebired.bundler";
2
2
  declare const BUNDLER_PACKAGE_NAME = "@trebired/bundler";
3
3
  export { BUNDLER_LOG_GROUP, BUNDLER_PACKAGE_NAME };
4
4
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,iBAAiB,YAAY,CAAC;AACpC,QAAA,MAAM,oBAAoB,sBAAsB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,iBAAiB,qBAAqB,CAAC;AAC7C,QAAA,MAAM,oBAAoB,sBAAsB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC"}
package/dist/constants.js CHANGED
@@ -1,4 +1,4 @@
1
- const BUNDLER_LOG_GROUP = "bundler";
1
+ const BUNDLER_LOG_GROUP = "trebired.bundler";
2
2
  const BUNDLER_PACKAGE_NAME = "@trebired/bundler";
3
3
  export { BUNDLER_LOG_GROUP, BUNDLER_PACKAGE_NAME };
4
4
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,iBAAiB,GAAG,SAAS,CAAC;AACpC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAC7C,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Importer } from "sass-embedded";
2
+ declare function rewriteScssAliasDirectives(text: string): string;
3
+ declare function createScssAliasImporter(rootDir: string): Importer<"async">;
4
+ export { createScssAliasImporter, rewriteScssAliasDirectives };
5
+ //# sourceMappingURL=scss-imports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scss-imports.d.ts","sourceRoot":"","sources":["../../../src/plugins/scss-imports.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAU,MAAM,eAAe,CAAC;AAiStD,iBAAS,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUxD;AAiBD,iBAAS,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAoBnE;AAED,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,CAAC"}
@@ -0,0 +1,281 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { fileURLToPath, pathToFileURL } from "node:url";
4
+ const SCSS_ALIAS_SCHEME = "trebired-scss-alias:";
5
+ function readPackageImports(rootDir) {
6
+ const packageJsonPath = path.join(rootDir, "package.json");
7
+ if (!fs.existsSync(packageJsonPath))
8
+ return {};
9
+ const parsed = JSON.parse(fs.readFileSync(packageJsonPath, "utf8"));
10
+ return parsed.imports && typeof parsed.imports === "object" && !Array.isArray(parsed.imports)
11
+ ? parsed.imports
12
+ : {};
13
+ }
14
+ function resolveImportTarget(value) {
15
+ if (typeof value === "string")
16
+ return value;
17
+ if (Array.isArray(value)) {
18
+ for (const entry of value) {
19
+ const resolved = resolveImportTarget(entry);
20
+ if (resolved)
21
+ return resolved;
22
+ }
23
+ }
24
+ if (value && typeof value === "object") {
25
+ const record = value;
26
+ for (const condition of ["sass", "style", "import", "default"]) {
27
+ const resolved = resolveImportTarget(record[condition]);
28
+ if (resolved)
29
+ return resolved;
30
+ }
31
+ }
32
+ return "";
33
+ }
34
+ function buildSassFileCandidates(candidatePath) {
35
+ const candidates = [];
36
+ const extension = path.extname(candidatePath).toLowerCase();
37
+ const dirname = path.dirname(candidatePath);
38
+ const basename = path.basename(candidatePath);
39
+ const partialPath = path.join(dirname, `_${basename}`);
40
+ if (extension) {
41
+ candidates.push(candidatePath, path.join(dirname, `_${basename}`));
42
+ return candidates;
43
+ }
44
+ candidates.push(`${candidatePath}.sass`, `${candidatePath}.scss`, `${partialPath}.sass`, `${partialPath}.scss`, path.join(candidatePath, "index.sass"), path.join(candidatePath, "index.scss"), path.join(candidatePath, "_index.sass"), path.join(candidatePath, "_index.scss"));
45
+ return candidates;
46
+ }
47
+ function resolveSassFileCandidate(candidatePath) {
48
+ const matches = buildSassFileCandidates(candidatePath).filter((candidate) => {
49
+ try {
50
+ return fs.statSync(candidate).isFile();
51
+ }
52
+ catch {
53
+ return false;
54
+ }
55
+ });
56
+ if (matches.length > 1) {
57
+ throw new Error(`Ambiguous Sass import: ${candidatePath}`);
58
+ }
59
+ return matches[0] ? path.resolve(matches[0]) : "";
60
+ }
61
+ function toAliasUrl(specifier) {
62
+ return `${SCSS_ALIAS_SCHEME}${encodeURIComponent(specifier.slice(1))}`;
63
+ }
64
+ function fromAliasUrl(url) {
65
+ if (!url.startsWith(SCSS_ALIAS_SCHEME))
66
+ return "";
67
+ return `#${decodeURIComponent(url.slice(SCSS_ALIAS_SCHEME.length))}`;
68
+ }
69
+ function resolveAliasFilePath(context, specifier) {
70
+ if (!specifier.startsWith("#"))
71
+ return "";
72
+ const target = resolveImportTarget(context.importsMap[specifier]);
73
+ if (!target || !target.startsWith("./"))
74
+ return "";
75
+ return resolveSassFileCandidate(path.resolve(context.rootDir, target));
76
+ }
77
+ function isIdentifierCharacter(value) {
78
+ return /[a-zA-Z0-9_-]/.test(value);
79
+ }
80
+ function matchSassDirective(text, index) {
81
+ if (text[index] !== "@")
82
+ return "";
83
+ for (const directive of ["forward", "import", "use"]) {
84
+ const start = index + 1;
85
+ const end = start + directive.length;
86
+ if (text.slice(start, end) === directive && !isIdentifierCharacter(text[end] || ""))
87
+ return directive;
88
+ }
89
+ return "";
90
+ }
91
+ function findDirectiveEnd(text, index) {
92
+ let quote = "";
93
+ let escaping = false;
94
+ let parenDepth = 0;
95
+ for (let cursor = index; cursor < text.length; cursor += 1) {
96
+ const char = text[cursor];
97
+ if (quote) {
98
+ if (escaping)
99
+ escaping = false;
100
+ else if (char === "\\")
101
+ escaping = true;
102
+ else if (char === quote)
103
+ quote = "";
104
+ continue;
105
+ }
106
+ if (char === "\"" || char === "'") {
107
+ quote = char;
108
+ continue;
109
+ }
110
+ if (char === "(")
111
+ parenDepth += 1;
112
+ else if (char === ")" && parenDepth > 0)
113
+ parenDepth -= 1;
114
+ else if (char === ";" && parenDepth === 0)
115
+ return cursor;
116
+ }
117
+ return text.length;
118
+ }
119
+ function isInsideUrlFunction(segment, quoteIndex) {
120
+ let cursor = quoteIndex - 1;
121
+ while (cursor >= 0 && /\s/.test(segment[cursor]))
122
+ cursor -= 1;
123
+ if (segment[cursor] !== "(")
124
+ return false;
125
+ cursor -= 1;
126
+ while (cursor >= 0 && /\s/.test(segment[cursor]))
127
+ cursor -= 1;
128
+ const end = cursor + 1;
129
+ while (cursor >= 0 && /[a-zA-Z-]/.test(segment[cursor]))
130
+ cursor -= 1;
131
+ return segment.slice(cursor + 1, end).toLowerCase() === "url";
132
+ }
133
+ function collectQuotedSpecifiers(segment, baseOffset) {
134
+ const occurrences = [];
135
+ let quote = "";
136
+ let specifierStart = -1;
137
+ let escaping = false;
138
+ for (let index = 0; index < segment.length; index += 1) {
139
+ const char = segment[index];
140
+ if (quote) {
141
+ if (escaping)
142
+ escaping = false;
143
+ else if (char === "\\")
144
+ escaping = true;
145
+ else if (char === quote) {
146
+ occurrences.push({
147
+ end: baseOffset + index,
148
+ specifier: segment.slice(specifierStart, index),
149
+ start: baseOffset + specifierStart,
150
+ });
151
+ quote = "";
152
+ specifierStart = -1;
153
+ }
154
+ continue;
155
+ }
156
+ if ((char === "\"" || char === "'") && !isInsideUrlFunction(segment, index)) {
157
+ quote = char;
158
+ specifierStart = index + 1;
159
+ }
160
+ }
161
+ return occurrences;
162
+ }
163
+ function createTextScannerState() {
164
+ return {
165
+ escaping: false,
166
+ inBlockComment: false,
167
+ inLineComment: false,
168
+ inString: false,
169
+ quote: "",
170
+ };
171
+ }
172
+ function advanceTextScannerState(state, char, next) {
173
+ if (state.inLineComment) {
174
+ if (char === "\n" || char === "\r")
175
+ state.inLineComment = false;
176
+ return { skip: 0 };
177
+ }
178
+ if (state.inBlockComment) {
179
+ if (char === "*" && next === "/") {
180
+ state.inBlockComment = false;
181
+ return { skip: 1 };
182
+ }
183
+ return { skip: 0 };
184
+ }
185
+ if (state.inString) {
186
+ if (state.escaping)
187
+ state.escaping = false;
188
+ else if (char === "\\")
189
+ state.escaping = true;
190
+ else if (char === state.quote) {
191
+ state.inString = false;
192
+ state.quote = "";
193
+ }
194
+ return { skip: 0 };
195
+ }
196
+ if (char === "/" && next === "/") {
197
+ state.inLineComment = true;
198
+ return { skip: 1 };
199
+ }
200
+ if (char === "/" && next === "*") {
201
+ state.inBlockComment = true;
202
+ return { skip: 1 };
203
+ }
204
+ if (char === "\"" || char === "'") {
205
+ state.inString = true;
206
+ state.quote = char;
207
+ }
208
+ return { skip: 0 };
209
+ }
210
+ function collectDirectiveSpecifiers(text, directive, index) {
211
+ const directiveEnd = findDirectiveEnd(text, index);
212
+ const directiveStart = index + directive.length + 1;
213
+ const specifiers = collectQuotedSpecifiers(text.slice(directiveStart, directiveEnd), directiveStart);
214
+ return {
215
+ nextIndex: directiveEnd,
216
+ occurrences: directive === "import" ? specifiers : specifiers.slice(0, 1),
217
+ };
218
+ }
219
+ function collectScssSpecifiers(text) {
220
+ const occurrences = [];
221
+ const state = createTextScannerState();
222
+ for (let index = 0; index < text.length; index += 1) {
223
+ const char = text[index];
224
+ const next = text[index + 1];
225
+ if (!state.inLineComment && !state.inBlockComment && !state.inString) {
226
+ const directive = matchSassDirective(text, index);
227
+ if (directive) {
228
+ const result = collectDirectiveSpecifiers(text, directive, index);
229
+ occurrences.push(...result.occurrences);
230
+ index = result.nextIndex;
231
+ continue;
232
+ }
233
+ }
234
+ index += advanceTextScannerState(state, char, next).skip;
235
+ }
236
+ return occurrences;
237
+ }
238
+ function rewriteScssAliasDirectives(text) {
239
+ const replacements = collectScssSpecifiers(text)
240
+ .filter((occurrence) => occurrence.specifier.startsWith("#"))
241
+ .sort((left, right) => right.start - left.start);
242
+ let nextText = text;
243
+ for (const replacement of replacements) {
244
+ nextText = `${nextText.slice(0, replacement.start)}${toAliasUrl(replacement.specifier)}${nextText.slice(replacement.end)}`;
245
+ }
246
+ return nextText;
247
+ }
248
+ function inferSyntax(filePath) {
249
+ return path.extname(filePath).toLowerCase() === ".sass" ? "indented" : "scss";
250
+ }
251
+ function resolveCanonicalFilePath(url, context) {
252
+ const alias = fromAliasUrl(url);
253
+ if (alias)
254
+ return resolveAliasFilePath(context, alias);
255
+ if (url.startsWith("file:")) {
256
+ return resolveSassFileCandidate(fileURLToPath(new URL(url)));
257
+ }
258
+ return "";
259
+ }
260
+ function createScssAliasImporter(rootDir) {
261
+ const importsMap = readPackageImports(rootDir);
262
+ const context = { importsMap, rootDir };
263
+ return {
264
+ canonicalize(url) {
265
+ const resolvedFile = resolveCanonicalFilePath(String(url || "").trim(), context);
266
+ return resolvedFile ? pathToFileURL(resolvedFile) : null;
267
+ },
268
+ load(canonicalUrl) {
269
+ if (canonicalUrl.protocol !== "file:")
270
+ return null;
271
+ const filePath = fileURLToPath(canonicalUrl);
272
+ return {
273
+ contents: rewriteScssAliasDirectives(fs.readFileSync(filePath, "utf8")),
274
+ sourceMapUrl: canonicalUrl,
275
+ syntax: inferSyntax(filePath),
276
+ };
277
+ },
278
+ };
279
+ }
280
+ export { createScssAliasImporter, rewriteScssAliasDirectives };
281
+ //# sourceMappingURL=scss-imports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scss-imports.js","sourceRoot":"","sources":["../../../src/plugins/scss-imports.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scss.d.ts","sourceRoot":"","sources":["../../../src/plugins/scss.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGtC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAE7D,KAAK,iBAAiB,GAAG;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,uBAAuB,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,iBAAS,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAuC5D;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"scss.d.ts","sourceRoot":"","sources":["../../../src/plugins/scss.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAItC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAE7D,KAAK,iBAAiB,GAAG;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,uBAAuB,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,iBAAS,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CA8C5D;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,17 +1,24 @@
1
+ import fs from "node:fs/promises";
1
2
  import path from "node:path";
2
- import { compileAsync } from "sass-embedded";
3
+ import { pathToFileURL } from "node:url";
4
+ import { compileStringAsync } from "sass-embedded";
3
5
  import { injectSourceAnnotation } from "./source-annotations.js";
6
+ import { createScssAliasImporter, rewriteScssAliasDirectives } from "./scss-imports.js";
4
7
  function createScssPlugin(options) {
5
8
  return {
6
9
  name: "trebired-scss",
7
10
  setup(build) {
8
11
  build.onLoad({ filter: /\.scss$/ }, async (args) => {
9
12
  try {
10
- const result = await compileAsync(args.path, {
13
+ const importer = createScssAliasImporter(options.rootDir);
14
+ const result = await compileStringAsync(rewriteScssAliasDirectives(await fs.readFile(args.path, "utf8")), {
15
+ importer,
16
+ importers: [importer],
11
17
  loadPaths: [options.rootDir],
12
18
  sourceMap: options.sourcemapEnabled,
13
19
  sourceMapIncludeSources: options.sourcemapEnabled,
14
20
  style: "expanded",
21
+ url: pathToFileURL(args.path),
15
22
  });
16
23
  const contents = options.annotateSources
17
24
  ? injectSourceAnnotation({
@@ -25,7 +32,7 @@ function createScssPlugin(options) {
25
32
  contents,
26
33
  loader: "css",
27
34
  resolveDir: path.dirname(args.path),
28
- watchFiles: result.loadedUrls
35
+ watchFiles: [pathToFileURL(args.path), ...result.loadedUrls]
29
36
  .filter((url) => url.protocol === "file:")
30
37
  .map((url) => url.pathname),
31
38
  };
@@ -1 +1 @@
1
- {"version":3,"file":"scss.js","sourceRoot":"","sources":["../../../src/plugins/scss.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAUjE,SAAS,gBAAgB,CAAC,OAA0B;IAClD,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,KAAK,CAAC,KAAK;YACT,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACjD,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE;wBAC3C,SAAS,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;wBAC5B,SAAS,EAAE,OAAO,CAAC,gBAAgB;wBACnC,uBAAuB,EAAE,OAAO,CAAC,gBAAgB;wBACjD,KAAK,EAAE,UAAU;qBAClB,CAAC,CAAC;oBAEH,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe;wBACtC,CAAC,CAAC,sBAAsB,CAAC;4BACvB,QAAQ,EAAE,MAAM,CAAC,GAAG;4BACpB,QAAQ,EAAE,IAAI,CAAC,IAAI;4BACnB,IAAI,EAAE,KAAK;4BACX,OAAO,EAAE,OAAO,CAAC,OAAO;yBACzB,CAAC;wBACF,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;oBAEf,OAAO;wBACL,QAAQ;wBACR,MAAM,EAAE,KAAK;wBACb,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;wBACnC,UAAU,EAAE,MAAM,CAAC,UAAU;6BAC1B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC;6BACzC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;qBAC9B,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,qBAAqB,IAAI,CAAC,IAAI,EAAE,EAAE;wBAC7D,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBAC9D,CAAC,CAAC;oBACH,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"scss.js","sourceRoot":"","sources":["../../../src/plugins/scss.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAUxF,SAAS,gBAAgB,CAAC,OAA0B;IAClD,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,KAAK,CAAC,KAAK;YACT,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACjD,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,uBAAuB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC1D,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACrC,0BAA0B,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAChE;wBACE,QAAQ;wBACR,SAAS,EAAE,CAAC,QAAQ,CAAC;wBACrB,SAAS,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;wBAC5B,SAAS,EAAE,OAAO,CAAC,gBAAgB;wBACnC,uBAAuB,EAAE,OAAO,CAAC,gBAAgB;wBACjD,KAAK,EAAE,UAAU;wBACjB,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;qBAC9B,CACF,CAAC;oBAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe;wBACtC,CAAC,CAAC,sBAAsB,CAAC;4BACvB,QAAQ,EAAE,MAAM,CAAC,GAAG;4BACpB,QAAQ,EAAE,IAAI,CAAC,IAAI;4BACnB,IAAI,EAAE,KAAK;4BACX,OAAO,EAAE,OAAO,CAAC,OAAO;yBACzB,CAAC;wBACF,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;oBAEf,OAAO;wBACL,QAAQ;wBACR,MAAM,EAAE,KAAK;wBACb,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;wBACnC,UAAU,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;6BACzD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC;6BACzC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;qBAC9B,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,qBAAqB,IAAI,CAAC,IAAI,EAAE,EAAE;wBAC7D,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBAC9D,CAAC,CAAC;oBACH,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- declare const BUNDLER_LOG_GROUP = "bundler";
1
+ declare const BUNDLER_LOG_GROUP = "trebired.bundler";
2
2
  declare const BUNDLER_PACKAGE_NAME = "@trebired/bundler";
3
3
  export { BUNDLER_LOG_GROUP, BUNDLER_PACKAGE_NAME };
4
4
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,iBAAiB,YAAY,CAAC;AACpC,QAAA,MAAM,oBAAoB,sBAAsB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,iBAAiB,qBAAqB,CAAC;AAC7C,QAAA,MAAM,oBAAoB,sBAAsB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- const BUNDLER_LOG_GROUP = "bundler";
1
+ const BUNDLER_LOG_GROUP = "trebired.bundler";
2
2
  const BUNDLER_PACKAGE_NAME = "@trebired/bundler";
3
3
  export { BUNDLER_LOG_GROUP, BUNDLER_PACKAGE_NAME };
4
4
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,iBAAiB,GAAG,SAAS,CAAC;AACpC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAC7C,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Importer } from "sass-embedded";
2
+ declare function rewriteScssAliasDirectives(text: string): string;
3
+ declare function createScssAliasImporter(rootDir: string): Importer<"async">;
4
+ export { createScssAliasImporter, rewriteScssAliasDirectives };
5
+ //# sourceMappingURL=scss-imports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scss-imports.d.ts","sourceRoot":"","sources":["../../../src/plugins/scss-imports.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAU,MAAM,eAAe,CAAC;AAiStD,iBAAS,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUxD;AAiBD,iBAAS,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAoBnE;AAED,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,CAAC"}
@@ -0,0 +1,281 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { fileURLToPath, pathToFileURL } from "node:url";
4
+ const SCSS_ALIAS_SCHEME = "trebired-scss-alias:";
5
+ function readPackageImports(rootDir) {
6
+ const packageJsonPath = path.join(rootDir, "package.json");
7
+ if (!fs.existsSync(packageJsonPath))
8
+ return {};
9
+ const parsed = JSON.parse(fs.readFileSync(packageJsonPath, "utf8"));
10
+ return parsed.imports && typeof parsed.imports === "object" && !Array.isArray(parsed.imports)
11
+ ? parsed.imports
12
+ : {};
13
+ }
14
+ function resolveImportTarget(value) {
15
+ if (typeof value === "string")
16
+ return value;
17
+ if (Array.isArray(value)) {
18
+ for (const entry of value) {
19
+ const resolved = resolveImportTarget(entry);
20
+ if (resolved)
21
+ return resolved;
22
+ }
23
+ }
24
+ if (value && typeof value === "object") {
25
+ const record = value;
26
+ for (const condition of ["sass", "style", "import", "default"]) {
27
+ const resolved = resolveImportTarget(record[condition]);
28
+ if (resolved)
29
+ return resolved;
30
+ }
31
+ }
32
+ return "";
33
+ }
34
+ function buildSassFileCandidates(candidatePath) {
35
+ const candidates = [];
36
+ const extension = path.extname(candidatePath).toLowerCase();
37
+ const dirname = path.dirname(candidatePath);
38
+ const basename = path.basename(candidatePath);
39
+ const partialPath = path.join(dirname, `_${basename}`);
40
+ if (extension) {
41
+ candidates.push(candidatePath, path.join(dirname, `_${basename}`));
42
+ return candidates;
43
+ }
44
+ candidates.push(`${candidatePath}.sass`, `${candidatePath}.scss`, `${partialPath}.sass`, `${partialPath}.scss`, path.join(candidatePath, "index.sass"), path.join(candidatePath, "index.scss"), path.join(candidatePath, "_index.sass"), path.join(candidatePath, "_index.scss"));
45
+ return candidates;
46
+ }
47
+ function resolveSassFileCandidate(candidatePath) {
48
+ const matches = buildSassFileCandidates(candidatePath).filter((candidate) => {
49
+ try {
50
+ return fs.statSync(candidate).isFile();
51
+ }
52
+ catch {
53
+ return false;
54
+ }
55
+ });
56
+ if (matches.length > 1) {
57
+ throw new Error(`Ambiguous Sass import: ${candidatePath}`);
58
+ }
59
+ return matches[0] ? path.resolve(matches[0]) : "";
60
+ }
61
+ function toAliasUrl(specifier) {
62
+ return `${SCSS_ALIAS_SCHEME}${encodeURIComponent(specifier.slice(1))}`;
63
+ }
64
+ function fromAliasUrl(url) {
65
+ if (!url.startsWith(SCSS_ALIAS_SCHEME))
66
+ return "";
67
+ return `#${decodeURIComponent(url.slice(SCSS_ALIAS_SCHEME.length))}`;
68
+ }
69
+ function resolveAliasFilePath(context, specifier) {
70
+ if (!specifier.startsWith("#"))
71
+ return "";
72
+ const target = resolveImportTarget(context.importsMap[specifier]);
73
+ if (!target || !target.startsWith("./"))
74
+ return "";
75
+ return resolveSassFileCandidate(path.resolve(context.rootDir, target));
76
+ }
77
+ function isIdentifierCharacter(value) {
78
+ return /[a-zA-Z0-9_-]/.test(value);
79
+ }
80
+ function matchSassDirective(text, index) {
81
+ if (text[index] !== "@")
82
+ return "";
83
+ for (const directive of ["forward", "import", "use"]) {
84
+ const start = index + 1;
85
+ const end = start + directive.length;
86
+ if (text.slice(start, end) === directive && !isIdentifierCharacter(text[end] || ""))
87
+ return directive;
88
+ }
89
+ return "";
90
+ }
91
+ function findDirectiveEnd(text, index) {
92
+ let quote = "";
93
+ let escaping = false;
94
+ let parenDepth = 0;
95
+ for (let cursor = index; cursor < text.length; cursor += 1) {
96
+ const char = text[cursor];
97
+ if (quote) {
98
+ if (escaping)
99
+ escaping = false;
100
+ else if (char === "\\")
101
+ escaping = true;
102
+ else if (char === quote)
103
+ quote = "";
104
+ continue;
105
+ }
106
+ if (char === "\"" || char === "'") {
107
+ quote = char;
108
+ continue;
109
+ }
110
+ if (char === "(")
111
+ parenDepth += 1;
112
+ else if (char === ")" && parenDepth > 0)
113
+ parenDepth -= 1;
114
+ else if (char === ";" && parenDepth === 0)
115
+ return cursor;
116
+ }
117
+ return text.length;
118
+ }
119
+ function isInsideUrlFunction(segment, quoteIndex) {
120
+ let cursor = quoteIndex - 1;
121
+ while (cursor >= 0 && /\s/.test(segment[cursor]))
122
+ cursor -= 1;
123
+ if (segment[cursor] !== "(")
124
+ return false;
125
+ cursor -= 1;
126
+ while (cursor >= 0 && /\s/.test(segment[cursor]))
127
+ cursor -= 1;
128
+ const end = cursor + 1;
129
+ while (cursor >= 0 && /[a-zA-Z-]/.test(segment[cursor]))
130
+ cursor -= 1;
131
+ return segment.slice(cursor + 1, end).toLowerCase() === "url";
132
+ }
133
+ function collectQuotedSpecifiers(segment, baseOffset) {
134
+ const occurrences = [];
135
+ let quote = "";
136
+ let specifierStart = -1;
137
+ let escaping = false;
138
+ for (let index = 0; index < segment.length; index += 1) {
139
+ const char = segment[index];
140
+ if (quote) {
141
+ if (escaping)
142
+ escaping = false;
143
+ else if (char === "\\")
144
+ escaping = true;
145
+ else if (char === quote) {
146
+ occurrences.push({
147
+ end: baseOffset + index,
148
+ specifier: segment.slice(specifierStart, index),
149
+ start: baseOffset + specifierStart,
150
+ });
151
+ quote = "";
152
+ specifierStart = -1;
153
+ }
154
+ continue;
155
+ }
156
+ if ((char === "\"" || char === "'") && !isInsideUrlFunction(segment, index)) {
157
+ quote = char;
158
+ specifierStart = index + 1;
159
+ }
160
+ }
161
+ return occurrences;
162
+ }
163
+ function createTextScannerState() {
164
+ return {
165
+ escaping: false,
166
+ inBlockComment: false,
167
+ inLineComment: false,
168
+ inString: false,
169
+ quote: "",
170
+ };
171
+ }
172
+ function advanceTextScannerState(state, char, next) {
173
+ if (state.inLineComment) {
174
+ if (char === "\n" || char === "\r")
175
+ state.inLineComment = false;
176
+ return { skip: 0 };
177
+ }
178
+ if (state.inBlockComment) {
179
+ if (char === "*" && next === "/") {
180
+ state.inBlockComment = false;
181
+ return { skip: 1 };
182
+ }
183
+ return { skip: 0 };
184
+ }
185
+ if (state.inString) {
186
+ if (state.escaping)
187
+ state.escaping = false;
188
+ else if (char === "\\")
189
+ state.escaping = true;
190
+ else if (char === state.quote) {
191
+ state.inString = false;
192
+ state.quote = "";
193
+ }
194
+ return { skip: 0 };
195
+ }
196
+ if (char === "/" && next === "/") {
197
+ state.inLineComment = true;
198
+ return { skip: 1 };
199
+ }
200
+ if (char === "/" && next === "*") {
201
+ state.inBlockComment = true;
202
+ return { skip: 1 };
203
+ }
204
+ if (char === "\"" || char === "'") {
205
+ state.inString = true;
206
+ state.quote = char;
207
+ }
208
+ return { skip: 0 };
209
+ }
210
+ function collectDirectiveSpecifiers(text, directive, index) {
211
+ const directiveEnd = findDirectiveEnd(text, index);
212
+ const directiveStart = index + directive.length + 1;
213
+ const specifiers = collectQuotedSpecifiers(text.slice(directiveStart, directiveEnd), directiveStart);
214
+ return {
215
+ nextIndex: directiveEnd,
216
+ occurrences: directive === "import" ? specifiers : specifiers.slice(0, 1),
217
+ };
218
+ }
219
+ function collectScssSpecifiers(text) {
220
+ const occurrences = [];
221
+ const state = createTextScannerState();
222
+ for (let index = 0; index < text.length; index += 1) {
223
+ const char = text[index];
224
+ const next = text[index + 1];
225
+ if (!state.inLineComment && !state.inBlockComment && !state.inString) {
226
+ const directive = matchSassDirective(text, index);
227
+ if (directive) {
228
+ const result = collectDirectiveSpecifiers(text, directive, index);
229
+ occurrences.push(...result.occurrences);
230
+ index = result.nextIndex;
231
+ continue;
232
+ }
233
+ }
234
+ index += advanceTextScannerState(state, char, next).skip;
235
+ }
236
+ return occurrences;
237
+ }
238
+ function rewriteScssAliasDirectives(text) {
239
+ const replacements = collectScssSpecifiers(text)
240
+ .filter((occurrence) => occurrence.specifier.startsWith("#"))
241
+ .sort((left, right) => right.start - left.start);
242
+ let nextText = text;
243
+ for (const replacement of replacements) {
244
+ nextText = `${nextText.slice(0, replacement.start)}${toAliasUrl(replacement.specifier)}${nextText.slice(replacement.end)}`;
245
+ }
246
+ return nextText;
247
+ }
248
+ function inferSyntax(filePath) {
249
+ return path.extname(filePath).toLowerCase() === ".sass" ? "indented" : "scss";
250
+ }
251
+ function resolveCanonicalFilePath(url, context) {
252
+ const alias = fromAliasUrl(url);
253
+ if (alias)
254
+ return resolveAliasFilePath(context, alias);
255
+ if (url.startsWith("file:")) {
256
+ return resolveSassFileCandidate(fileURLToPath(new URL(url)));
257
+ }
258
+ return "";
259
+ }
260
+ function createScssAliasImporter(rootDir) {
261
+ const importsMap = readPackageImports(rootDir);
262
+ const context = { importsMap, rootDir };
263
+ return {
264
+ canonicalize(url) {
265
+ const resolvedFile = resolveCanonicalFilePath(String(url || "").trim(), context);
266
+ return resolvedFile ? pathToFileURL(resolvedFile) : null;
267
+ },
268
+ load(canonicalUrl) {
269
+ if (canonicalUrl.protocol !== "file:")
270
+ return null;
271
+ const filePath = fileURLToPath(canonicalUrl);
272
+ return {
273
+ contents: rewriteScssAliasDirectives(fs.readFileSync(filePath, "utf8")),
274
+ sourceMapUrl: canonicalUrl,
275
+ syntax: inferSyntax(filePath),
276
+ };
277
+ },
278
+ };
279
+ }
280
+ export { createScssAliasImporter, rewriteScssAliasDirectives };
281
+ //# sourceMappingURL=scss-imports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scss-imports.js","sourceRoot":"","sources":["../../../src/plugins/scss-imports.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scss.d.ts","sourceRoot":"","sources":["../../../src/plugins/scss.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGtC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAE7D,KAAK,iBAAiB,GAAG;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,uBAAuB,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,iBAAS,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAuC5D;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"scss.d.ts","sourceRoot":"","sources":["../../../src/plugins/scss.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAItC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAE7D,KAAK,iBAAiB,GAAG;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,uBAAuB,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,iBAAS,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CA8C5D;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,17 +1,24 @@
1
+ import fs from "node:fs/promises";
1
2
  import path from "node:path";
2
- import { compileAsync } from "sass-embedded";
3
+ import { pathToFileURL } from "node:url";
4
+ import { compileStringAsync } from "sass-embedded";
3
5
  import { injectSourceAnnotation } from "./source-annotations.js";
6
+ import { createScssAliasImporter, rewriteScssAliasDirectives } from "./scss-imports.js";
4
7
  function createScssPlugin(options) {
5
8
  return {
6
9
  name: "trebired-scss",
7
10
  setup(build) {
8
11
  build.onLoad({ filter: /\.scss$/ }, async (args) => {
9
12
  try {
10
- const result = await compileAsync(args.path, {
13
+ const importer = createScssAliasImporter(options.rootDir);
14
+ const result = await compileStringAsync(rewriteScssAliasDirectives(await fs.readFile(args.path, "utf8")), {
15
+ importer,
16
+ importers: [importer],
11
17
  loadPaths: [options.rootDir],
12
18
  sourceMap: options.sourcemapEnabled,
13
19
  sourceMapIncludeSources: options.sourcemapEnabled,
14
20
  style: "expanded",
21
+ url: pathToFileURL(args.path),
15
22
  });
16
23
  const contents = options.annotateSources
17
24
  ? injectSourceAnnotation({
@@ -25,7 +32,7 @@ function createScssPlugin(options) {
25
32
  contents,
26
33
  loader: "css",
27
34
  resolveDir: path.dirname(args.path),
28
- watchFiles: result.loadedUrls
35
+ watchFiles: [pathToFileURL(args.path), ...result.loadedUrls]
29
36
  .filter((url) => url.protocol === "file:")
30
37
  .map((url) => url.pathname),
31
38
  };
@@ -1 +1 @@
1
- {"version":3,"file":"scss.js","sourceRoot":"","sources":["../../../src/plugins/scss.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAUjE,SAAS,gBAAgB,CAAC,OAA0B;IAClD,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,KAAK,CAAC,KAAK;YACT,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACjD,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE;wBAC3C,SAAS,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;wBAC5B,SAAS,EAAE,OAAO,CAAC,gBAAgB;wBACnC,uBAAuB,EAAE,OAAO,CAAC,gBAAgB;wBACjD,KAAK,EAAE,UAAU;qBAClB,CAAC,CAAC;oBAEH,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe;wBACtC,CAAC,CAAC,sBAAsB,CAAC;4BACvB,QAAQ,EAAE,MAAM,CAAC,GAAG;4BACpB,QAAQ,EAAE,IAAI,CAAC,IAAI;4BACnB,IAAI,EAAE,KAAK;4BACX,OAAO,EAAE,OAAO,CAAC,OAAO;yBACzB,CAAC;wBACF,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;oBAEf,OAAO;wBACL,QAAQ;wBACR,MAAM,EAAE,KAAK;wBACb,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;wBACnC,UAAU,EAAE,MAAM,CAAC,UAAU;6BAC1B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC;6BACzC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;qBAC9B,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,qBAAqB,IAAI,CAAC,IAAI,EAAE,EAAE;wBAC7D,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBAC9D,CAAC,CAAC;oBACH,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"scss.js","sourceRoot":"","sources":["../../../src/plugins/scss.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAUxF,SAAS,gBAAgB,CAAC,OAA0B;IAClD,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,KAAK,CAAC,KAAK;YACT,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACjD,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,uBAAuB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC1D,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACrC,0BAA0B,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAChE;wBACE,QAAQ;wBACR,SAAS,EAAE,CAAC,QAAQ,CAAC;wBACrB,SAAS,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;wBAC5B,SAAS,EAAE,OAAO,CAAC,gBAAgB;wBACnC,uBAAuB,EAAE,OAAO,CAAC,gBAAgB;wBACjD,KAAK,EAAE,UAAU;wBACjB,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;qBAC9B,CACF,CAAC;oBAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe;wBACtC,CAAC,CAAC,sBAAsB,CAAC;4BACvB,QAAQ,EAAE,MAAM,CAAC,GAAG;4BACpB,QAAQ,EAAE,IAAI,CAAC,IAAI;4BACnB,IAAI,EAAE,KAAK;4BACX,OAAO,EAAE,OAAO,CAAC,OAAO;yBACzB,CAAC;wBACF,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;oBAEf,OAAO;wBACL,QAAQ;wBACR,MAAM,EAAE,KAAK;wBACb,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;wBACnC,UAAU,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;6BACzD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC;6BACzC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;qBAC9B,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,qBAAqB,IAAI,CAAC,IAAI,EAAE,EAAE;wBAC7D,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBAC9D,CAAC,CAAC;oBACH,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
package/package.json CHANGED
@@ -140,5 +140,5 @@
140
140
  },
141
141
  "type": "module",
142
142
  "types": "./dist/index.d.ts",
143
- "version": "3.1.1"
143
+ "version": "3.4.0"
144
144
  }