@trebired/bundler 1.4.0 → 1.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.
Files changed (43) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +60 -35
  3. package/dist/core/asset-manifest.d.ts +5 -0
  4. package/dist/core/asset-manifest.d.ts.map +1 -0
  5. package/dist/core/asset-manifest.js +257 -0
  6. package/dist/core/asset-manifest.js.map +1 -0
  7. package/dist/core/esbuild-options.d.ts +0 -10
  8. package/dist/core/esbuild-options.d.ts.map +1 -1
  9. package/dist/core/esbuild-options.js +2 -59
  10. package/dist/core/esbuild-options.js.map +1 -1
  11. package/dist/core/import-graph.d.ts +4 -0
  12. package/dist/core/import-graph.d.ts.map +1 -0
  13. package/dist/core/import-graph.js +410 -0
  14. package/dist/core/import-graph.js.map +1 -0
  15. package/dist/core/manifest.d.ts.map +1 -1
  16. package/dist/core/manifest.js +7 -0
  17. package/dist/core/manifest.js.map +1 -1
  18. package/dist/core/shared.d.ts.map +1 -1
  19. package/dist/core/shared.js +10 -0
  20. package/dist/core/shared.js.map +1 -1
  21. package/dist/index.d.ts +3 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +2 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/plugins/scss.d.ts +0 -2
  26. package/dist/plugins/scss.d.ts.map +1 -1
  27. package/dist/plugins/scss.js +2 -6
  28. package/dist/plugins/scss.js.map +1 -1
  29. package/dist/plugins/source-annotations.d.ts +0 -3
  30. package/dist/plugins/source-annotations.d.ts.map +1 -1
  31. package/dist/plugins/source-annotations.js +6 -19
  32. package/dist/plugins/source-annotations.js.map +1 -1
  33. package/dist/plugins/virtual-entries.d.ts +0 -2
  34. package/dist/plugins/virtual-entries.d.ts.map +1 -1
  35. package/dist/plugins/virtual-entries.js +1 -8
  36. package/dist/plugins/virtual-entries.js.map +1 -1
  37. package/dist/types.d.ts +78 -10
  38. package/dist/types.d.ts.map +1 -1
  39. package/package.json +4 -10
  40. package/dist/plugins/obfuscation.d.ts +0 -13
  41. package/dist/plugins/obfuscation.d.ts.map +0 -1
  42. package/dist/plugins/obfuscation.js +0 -606
  43. package/dist/plugins/obfuscation.js.map +0 -1
@@ -1,606 +0,0 @@
1
- import fs from "node:fs";
2
- import path from "node:path";
3
- import generate from "@babel/generator";
4
- import { parse } from "@babel/parser";
5
- import traverse from "@babel/traverse";
6
- const STYLE_EXTENSIONS = new Set([".css", ".scss"]);
7
- const CLASS_LIST_METHODS = new Set(["add", "contains", "remove", "replace", "toggle"]);
8
- const SELECTOR_METHODS = new Set(["closest", "matches", "querySelector", "querySelectorAll"]);
9
- const CLASS_NAME_HELPERS = new Set([
10
- "classNames",
11
- "classnames",
12
- "clsx",
13
- "cn",
14
- "cx",
15
- "cva",
16
- "joinClassNames",
17
- "joinClasses",
18
- "mergeClassNames",
19
- ]);
20
- function createClassNameMap(rootDir) {
21
- const classNames = new Set();
22
- for (const filePath of collectStyleFiles(rootDir)) {
23
- for (const className of extractClassNamesFromStyle(fs.readFileSync(filePath, "utf8"))) {
24
- classNames.add(className);
25
- }
26
- }
27
- return new Map([...classNames]
28
- .sort()
29
- .map((className, index) => [className, toCompactClassName(index)]));
30
- }
31
- function collectStyleFiles(rootDir) {
32
- const files = [];
33
- const stack = [rootDir];
34
- while (stack.length > 0) {
35
- const current = stack.pop();
36
- let stats;
37
- try {
38
- stats = fs.statSync(current);
39
- }
40
- catch {
41
- continue;
42
- }
43
- if (!stats.isDirectory())
44
- continue;
45
- let entries;
46
- try {
47
- entries = fs.readdirSync(current, { withFileTypes: true });
48
- }
49
- catch {
50
- continue;
51
- }
52
- for (const entry of entries) {
53
- if (entry.name === "dist" || entry.name === "node_modules" || entry.name.startsWith(".")) {
54
- continue;
55
- }
56
- const nextPath = path.join(current, entry.name);
57
- if (entry.isDirectory()) {
58
- stack.push(nextPath);
59
- continue;
60
- }
61
- if (STYLE_EXTENSIONS.has(path.extname(entry.name).toLowerCase())) {
62
- files.push(nextPath);
63
- }
64
- }
65
- }
66
- return files.sort();
67
- }
68
- function extractClassNamesFromStyle(contents) {
69
- const classNames = new Set();
70
- const pattern = /(^|[^a-zA-Z0-9_-])\.([_a-zA-Z][\w-]*)/g;
71
- for (const match of contents.matchAll(pattern)) {
72
- if (match[2]) {
73
- classNames.add(match[2]);
74
- }
75
- }
76
- return classNames;
77
- }
78
- function toCompactClassName(index) {
79
- return `c${index.toString(36)}`;
80
- }
81
- function rewriteCssClassTokens(contents, classNameMap) {
82
- if (classNameMap.size === 0)
83
- return contents;
84
- return contents.replace(/\.([_a-zA-Z][\w-]*)/g, (match, className) => {
85
- return classNameMap.has(className) ? `.${classNameMap.get(className)}` : match;
86
- });
87
- }
88
- function rewriteSelectorValue(value, classNameMap) {
89
- if (classNameMap.size === 0)
90
- return value;
91
- return value.replace(/\.([_a-zA-Z][\w-]*)/g, (match, className) => {
92
- return classNameMap.has(className) ? `.${classNameMap.get(className)}` : match;
93
- });
94
- }
95
- function rewriteClassListValue(value, classNameMap) {
96
- if (classNameMap.size === 0)
97
- return value;
98
- return value.replace(/(^|[\s])([_a-zA-Z][\w-]*)(?=$|[\s])/g, (match, prefix, className) => {
99
- const nextValue = classNameMap.get(className);
100
- return nextValue ? `${prefix}${nextValue}` : match;
101
- });
102
- }
103
- function rewriteHtmlClassAttributes(value, classNameMap) {
104
- if (classNameMap.size === 0)
105
- return value;
106
- return value.replace(/(class(?:Name)?\s*=\s*["'])([^"']*)(["'])/g, (match, prefix, classNames, suffix) => {
107
- const rewritten = rewriteClassListValue(classNames, classNameMap);
108
- return rewritten === classNames ? match : `${prefix}${rewritten}${suffix}`;
109
- });
110
- }
111
- function readTemplateElementValue(node) {
112
- return node.value.cooked ?? node.value.raw;
113
- }
114
- function updateTemplateElement(node, nextValue) {
115
- const current = readTemplateElementValue(node);
116
- if (nextValue === current)
117
- return false;
118
- node.value.cooked = nextValue;
119
- node.value.raw = nextValue;
120
- return true;
121
- }
122
- function rewriteTemplateElements(node, rewrite) {
123
- let changed = false;
124
- for (const quasi of node.quasis) {
125
- changed = updateTemplateElement(quasi, rewrite(readTemplateElementValue(quasi))) || changed;
126
- }
127
- return changed;
128
- }
129
- function rewriteHtmlTemplateLiteral(node, classNameMap) {
130
- let changed = false;
131
- let activeQuote = null;
132
- for (const quasi of node.quasis) {
133
- const current = readTemplateElementValue(quasi);
134
- let index = 0;
135
- let next = "";
136
- while (index < current.length) {
137
- if (!activeQuote) {
138
- const match = current.slice(index).match(/class(?:Name)?\s*=\s*(["'])/);
139
- if (!match || match.index == null) {
140
- next += current.slice(index);
141
- break;
142
- }
143
- const start = index + match.index;
144
- const quote = match[1];
145
- const quoteIndex = current.indexOf(quote, start) + 1;
146
- next += current.slice(index, quoteIndex);
147
- index = quoteIndex;
148
- activeQuote = quote;
149
- continue;
150
- }
151
- const endIndex = current.indexOf(activeQuote, index);
152
- if (endIndex === -1) {
153
- next += rewriteClassListValue(current.slice(index), classNameMap);
154
- index = current.length;
155
- break;
156
- }
157
- next += rewriteClassListValue(current.slice(index, endIndex), classNameMap);
158
- next += activeQuote;
159
- index = endIndex + 1;
160
- activeQuote = null;
161
- }
162
- changed = updateTemplateElement(quasi, next) || changed;
163
- }
164
- return changed;
165
- }
166
- function updateStringLiteral(node, rewrite) {
167
- const nextValue = rewrite(node.value);
168
- if (nextValue === node.value)
169
- return false;
170
- node.value = nextValue;
171
- return true;
172
- }
173
- function updateTemplateLiteral(node, rewrite) {
174
- if (node.expressions.length > 0 || node.quasis.length !== 1)
175
- return false;
176
- return updateTemplateElement(node.quasis[0], rewrite(readTemplateElementValue(node.quasis[0])));
177
- }
178
- function updateClassListTemplateLiteral(node, classNameMap) {
179
- if (node.expressions.length === 0) {
180
- return updateTemplateLiteral(node, (value) => rewriteClassListValue(value, classNameMap));
181
- }
182
- return rewriteTemplateElements(node, (value) => rewriteClassListValue(value, classNameMap));
183
- }
184
- function updateSelectorTemplateLiteral(node, classNameMap) {
185
- if (node.expressions.length === 0) {
186
- return updateTemplateLiteral(node, (value) => rewriteSelectorValue(value, classNameMap));
187
- }
188
- return rewriteTemplateElements(node, (value) => rewriteSelectorValue(value, classNameMap));
189
- }
190
- function isJsxIdentifierName(node, value) {
191
- return Boolean(node && node.name === value);
192
- }
193
- function readMemberPropertyName(node) {
194
- if (!node.computed && node.property.type === "Identifier") {
195
- return node.property.name;
196
- }
197
- if (node.computed && node.property.type === "StringLiteral") {
198
- return node.property.value;
199
- }
200
- return null;
201
- }
202
- function resolveExpressionName(expression) {
203
- if (!expression)
204
- return null;
205
- if (expression.type === "Identifier")
206
- return expression.name;
207
- if (expression.type === "MemberExpression")
208
- return readMemberPropertyName(expression);
209
- return null;
210
- }
211
- function looksLikeClassHelperName(value) {
212
- if (!value)
213
- return false;
214
- if (CLASS_NAME_HELPERS.has(value))
215
- return true;
216
- return /class(?:name|names|es)?/i.test(value);
217
- }
218
- function looksLikeClassPropertyName(value) {
219
- if (!value)
220
- return false;
221
- return /class(?:name)?$/i.test(value);
222
- }
223
- function isExpressionNode(value) {
224
- if (!value || typeof value !== "object" || !("type" in value))
225
- return false;
226
- const type = String(value.type || "");
227
- return Boolean(type && !type.endsWith("Pattern") && type !== "PrivateName");
228
- }
229
- function parseCodeFile(contents, filePath) {
230
- const ext = path.extname(filePath).toLowerCase();
231
- const pluginSets = [];
232
- if (ext === ".tsx") {
233
- pluginSets.push(["typescript", "jsx"]);
234
- }
235
- else if (ext === ".ts" || ext === ".mts" || ext === ".cts") {
236
- pluginSets.push(["typescript"]);
237
- pluginSets.push(["typescript", "jsx"]);
238
- }
239
- else if (ext === ".jsx") {
240
- pluginSets.push(["jsx"]);
241
- }
242
- else {
243
- pluginSets.push(["jsx"]);
244
- pluginSets.push([]);
245
- }
246
- let lastError;
247
- for (const plugins of pluginSets) {
248
- try {
249
- return parse(contents, {
250
- plugins,
251
- sourceFilename: filePath,
252
- sourceType: "module",
253
- });
254
- }
255
- catch (error) {
256
- lastError = error;
257
- }
258
- }
259
- throw lastError instanceof Error ? lastError : new Error("bundler-obfuscation-parse-failed");
260
- }
261
- function collectHelperAliases(ast) {
262
- const aliases = new Set(CLASS_NAME_HELPERS);
263
- traverse(ast, {
264
- FunctionDeclaration(path) {
265
- if (looksLikeClassHelperName(path.node.id?.name)) {
266
- aliases.add(path.node.id.name);
267
- }
268
- },
269
- ImportSpecifier(path) {
270
- if (path.node.imported.type === "Identifier" && looksLikeClassHelperName(path.node.imported.name)) {
271
- aliases.add(path.node.local.name);
272
- }
273
- },
274
- VariableDeclarator(path) {
275
- if (path.node.id.type !== "Identifier")
276
- return;
277
- const name = path.node.id.name;
278
- if (looksLikeClassHelperName(name)) {
279
- aliases.add(name);
280
- return;
281
- }
282
- const initName = path.node.init ? resolveExpressionName(path.node.init) : null;
283
- if (looksLikeClassHelperName(initName) || (initName && aliases.has(initName))) {
284
- aliases.add(name);
285
- }
286
- },
287
- });
288
- return aliases;
289
- }
290
- function readObjectPropertyName(property) {
291
- if (property.computed)
292
- return null;
293
- if (property.key.type === "Identifier")
294
- return property.key.name;
295
- if (property.key.type === "StringLiteral")
296
- return property.key.value;
297
- return null;
298
- }
299
- function rewritePropertyKeyAsClassName(property, classNameMap) {
300
- if (property.computed)
301
- return false;
302
- if (property.key.type === "Identifier") {
303
- const nextValue = rewriteClassListValue(property.key.name, classNameMap);
304
- if (nextValue === property.key.name || /\s/.test(nextValue))
305
- return false;
306
- property.key.name = nextValue;
307
- return true;
308
- }
309
- if (property.key.type === "StringLiteral") {
310
- return updateStringLiteral(property.key, (value) => rewriteClassListValue(value, classNameMap));
311
- }
312
- return false;
313
- }
314
- function rewriteBoundIdentifier(path, context) {
315
- if (!path.isIdentifier())
316
- return false;
317
- const binding = path.scope.getBinding(path.node.name);
318
- if (!binding || context.visitedBindings.has(binding.path.node))
319
- return false;
320
- context.visitedBindings.add(binding.path.node);
321
- try {
322
- if (binding.path.isVariableDeclarator()) {
323
- const initPath = binding.path.get("init");
324
- if (initPath && initPath.node && isExpressionNode(initPath.node)) {
325
- return rewriteExpressionAsClassList(initPath, context);
326
- }
327
- }
328
- return false;
329
- }
330
- finally {
331
- context.visitedBindings.delete(binding.path.node);
332
- }
333
- }
334
- function rewriteClassBearingProperty(path, context) {
335
- const propertyName = readObjectPropertyName(path.node);
336
- if (!looksLikeClassPropertyName(propertyName))
337
- return false;
338
- const valuePath = path.get("value");
339
- if (!valuePath.node || !isExpressionNode(valuePath.node))
340
- return false;
341
- return rewriteExpressionAsClassList(valuePath, context);
342
- }
343
- function rewriteExpressionAsClassList(path, context) {
344
- const { classNameMap, helperAliases } = context;
345
- const expression = path.node;
346
- switch (expression.type) {
347
- case "ArrayExpression": {
348
- let changed = false;
349
- for (const elementPath of path.get("elements")) {
350
- if (!elementPath.node || elementPath.isSpreadElement() || !isExpressionNode(elementPath.node))
351
- continue;
352
- changed = rewriteExpressionAsClassList(elementPath, context) || changed;
353
- }
354
- return changed;
355
- }
356
- case "AssignmentExpression":
357
- return rewriteExpressionAsClassList(path.get("right"), context);
358
- case "BinaryExpression": {
359
- let changed = false;
360
- if (expression.left.type !== "PrivateName") {
361
- changed = rewriteExpressionAsClassList(path.get("left"), context) || changed;
362
- }
363
- changed = rewriteExpressionAsClassList(path.get("right"), context) || changed;
364
- return changed;
365
- }
366
- case "CallExpression": {
367
- const calleePath = path.get("callee");
368
- const calleeName = isExpressionNode(calleePath.node) ? resolveExpressionName(calleePath.node) : null;
369
- if (!calleeName || (!helperAliases.has(calleeName) && !looksLikeClassHelperName(calleeName))) {
370
- if (calleePath.isMemberExpression()) {
371
- const objectPath = calleePath.get("object");
372
- if (objectPath.node && isExpressionNode(objectPath.node)) {
373
- return rewriteExpressionAsClassList(objectPath, context);
374
- }
375
- }
376
- return false;
377
- }
378
- let changed = false;
379
- for (const argumentPath of path.get("arguments")) {
380
- if (!argumentPath.node || argumentPath.isSpreadElement() || !isExpressionNode(argumentPath.node))
381
- continue;
382
- changed = rewriteExpressionAsClassList(argumentPath, context) || changed;
383
- }
384
- return changed;
385
- }
386
- case "ConditionalExpression": {
387
- const changedConsequent = rewriteExpressionAsClassList(path.get("consequent"), context);
388
- const changedAlternate = rewriteExpressionAsClassList(path.get("alternate"), context);
389
- return changedConsequent || changedAlternate;
390
- }
391
- case "Identifier":
392
- return rewriteBoundIdentifier(path, context);
393
- case "LogicalExpression": {
394
- const changedLeft = rewriteExpressionAsClassList(path.get("left"), context);
395
- const changedRight = rewriteExpressionAsClassList(path.get("right"), context);
396
- return changedLeft || changedRight;
397
- }
398
- case "ObjectExpression": {
399
- let changed = false;
400
- for (const propertyPath of path.get("properties")) {
401
- if (!propertyPath.isObjectProperty())
402
- continue;
403
- const property = propertyPath.node;
404
- if (looksLikeClassPropertyName(readObjectPropertyName(property))) {
405
- changed = rewriteClassBearingProperty(propertyPath, context) || changed;
406
- continue;
407
- }
408
- if (!isExpressionNode(property.value)) {
409
- changed = rewritePropertyKeyAsClassName(property, classNameMap) || changed;
410
- continue;
411
- }
412
- changed = rewritePropertyKeyAsClassName(property, classNameMap) || changed;
413
- changed = rewriteExpressionAsClassList(propertyPath.get("value"), context) || changed;
414
- }
415
- return changed;
416
- }
417
- case "ParenthesizedExpression":
418
- return rewriteExpressionAsClassList(path.get("expression"), context);
419
- case "SequenceExpression": {
420
- let changed = false;
421
- for (const itemPath of path.get("expressions")) {
422
- if (!itemPath.node)
423
- continue;
424
- changed = rewriteExpressionAsClassList(itemPath, context) || changed;
425
- }
426
- return changed;
427
- }
428
- case "StringLiteral":
429
- return updateStringLiteral(expression, (value) => rewriteClassListValue(value, classNameMap));
430
- case "TemplateLiteral": {
431
- let changed = updateClassListTemplateLiteral(expression, classNameMap);
432
- for (const expressionPath of path.get("expressions")) {
433
- if (!expressionPath.node || !isExpressionNode(expressionPath.node))
434
- continue;
435
- changed = rewriteExpressionAsClassList(expressionPath, context) || changed;
436
- }
437
- return changed;
438
- }
439
- default:
440
- return false;
441
- }
442
- }
443
- function rewriteClassAttributeValuePath(args) {
444
- const { classNameMap, helperAliases, valuePath, visitedBindings } = args;
445
- const value = valuePath.node;
446
- if (!value)
447
- return false;
448
- if (value.type === "StringLiteral") {
449
- return updateStringLiteral(value, (current) => rewriteClassListValue(current, classNameMap));
450
- }
451
- if (value.type === "JSXExpressionContainer") {
452
- const expressionPath = valuePath.get("expression");
453
- if (!expressionPath.node || expressionPath.isJSXEmptyExpression() || !isExpressionNode(expressionPath.node))
454
- return false;
455
- return rewriteExpressionAsClassList(expressionPath, {
456
- classNameMap,
457
- helperAliases,
458
- visitedBindings,
459
- });
460
- }
461
- return false;
462
- }
463
- function rewriteCodeClassTokens(args) {
464
- if (args.classNameMap.size === 0)
465
- return args.contents;
466
- const ast = parseCodeFile(args.contents, args.filePath);
467
- const helperAliases = collectHelperAliases(ast);
468
- const visitedBindings = new WeakSet();
469
- let changed = false;
470
- traverse(ast, {
471
- AssignmentExpression(path) {
472
- const left = path.node.left;
473
- if (left.type !== "MemberExpression")
474
- return;
475
- if (readMemberPropertyName(left) !== "className")
476
- return;
477
- if (!isExpressionNode(path.node.right))
478
- return;
479
- changed = rewriteExpressionAsClassList(path.get("right"), {
480
- classNameMap: args.classNameMap,
481
- helperAliases,
482
- visitedBindings,
483
- }) || changed;
484
- },
485
- CallExpression(path) {
486
- const callee = path.node.callee;
487
- const calleeName = resolveExpressionName(callee);
488
- if (calleeName && (helperAliases.has(calleeName) || looksLikeClassHelperName(calleeName))) {
489
- for (const argumentPath of path.get("arguments")) {
490
- if (!argumentPath.node || argumentPath.isSpreadElement() || !isExpressionNode(argumentPath.node))
491
- continue;
492
- changed = rewriteExpressionAsClassList(argumentPath, {
493
- classNameMap: args.classNameMap,
494
- helperAliases,
495
- visitedBindings,
496
- }) || changed;
497
- }
498
- return;
499
- }
500
- if (callee.type !== "MemberExpression")
501
- return;
502
- const methodName = readMemberPropertyName(callee);
503
- if (!methodName)
504
- return;
505
- if (SELECTOR_METHODS.has(methodName)) {
506
- const first = path.node.arguments[0];
507
- if (!first || first.type === "SpreadElement" || !("type" in first))
508
- return;
509
- if (first.type === "StringLiteral") {
510
- changed = updateStringLiteral(first, (value) => rewriteSelectorValue(value, args.classNameMap)) || changed;
511
- }
512
- else if (first.type === "TemplateLiteral") {
513
- changed = updateSelectorTemplateLiteral(first, args.classNameMap) || changed;
514
- }
515
- return;
516
- }
517
- if (methodName === "getElementsByClassName") {
518
- const first = path.node.arguments[0];
519
- if (!first || first.type === "SpreadElement" || !("type" in first))
520
- return;
521
- if (first.type === "StringLiteral") {
522
- changed = updateStringLiteral(first, (value) => rewriteClassListValue(value, args.classNameMap)) || changed;
523
- }
524
- else if (first.type === "TemplateLiteral") {
525
- changed = updateClassListTemplateLiteral(first, args.classNameMap) || changed;
526
- }
527
- return;
528
- }
529
- if (methodName === "setAttribute" || methodName === "setAttributeNS") {
530
- const nameArg = path.node.arguments[methodName === "setAttributeNS" ? 1 : 0];
531
- const valueArgIndex = methodName === "setAttributeNS" ? 2 : 1;
532
- const valueArg = path.node.arguments[valueArgIndex];
533
- if (!nameArg || nameArg.type !== "StringLiteral")
534
- return;
535
- if (nameArg.value !== "class" && nameArg.value !== "className")
536
- return;
537
- if (!valueArg || valueArg.type === "SpreadElement" || !("type" in valueArg))
538
- return;
539
- const valuePath = path.get(`arguments.${valueArgIndex}`);
540
- if (!valuePath.node || !isExpressionNode(valuePath.node))
541
- return;
542
- changed = rewriteExpressionAsClassList(valuePath, {
543
- classNameMap: args.classNameMap,
544
- helperAliases,
545
- visitedBindings,
546
- }) || changed;
547
- return;
548
- }
549
- if (!CLASS_LIST_METHODS.has(methodName))
550
- return;
551
- if (callee.object.type !== "MemberExpression")
552
- return;
553
- if (readMemberPropertyName(callee.object) !== "classList")
554
- return;
555
- for (const argument of path.node.arguments) {
556
- if (argument.type === "SpreadElement" || !("type" in argument))
557
- continue;
558
- if (argument.type === "StringLiteral") {
559
- changed = updateStringLiteral(argument, (value) => rewriteClassListValue(value, args.classNameMap)) || changed;
560
- }
561
- else if (argument.type === "TemplateLiteral") {
562
- changed = updateClassListTemplateLiteral(argument, args.classNameMap) || changed;
563
- }
564
- }
565
- },
566
- JSXAttribute(path) {
567
- const name = path.node.name;
568
- if (name.type !== "JSXIdentifier")
569
- return;
570
- if (!isJsxIdentifierName(name, "class") && !isJsxIdentifierName(name, "className"))
571
- return;
572
- changed = rewriteClassAttributeValuePath({
573
- classNameMap: args.classNameMap,
574
- helperAliases,
575
- valuePath: path.get("value"),
576
- visitedBindings,
577
- }) || changed;
578
- },
579
- ObjectProperty(path) {
580
- changed = rewriteClassBearingProperty(path, {
581
- classNameMap: args.classNameMap,
582
- helperAliases,
583
- visitedBindings,
584
- }) || changed;
585
- },
586
- StringLiteral(path) {
587
- if (!/class(?:Name)?\s*=\s*["']/.test(path.node.value))
588
- return;
589
- changed = updateStringLiteral(path.node, (value) => rewriteHtmlClassAttributes(value, args.classNameMap)) || changed;
590
- },
591
- TemplateLiteral(path) {
592
- const hasHtmlClasses = path.node.quasis.some((quasi) => /class(?:Name)?\s*=\s*["']/.test(readTemplateElementValue(quasi)));
593
- if (!hasHtmlClasses)
594
- return;
595
- changed = rewriteHtmlTemplateLiteral(path.node, args.classNameMap) || changed;
596
- },
597
- });
598
- if (!changed)
599
- return args.contents;
600
- return generate(ast, {
601
- comments: true,
602
- retainLines: true,
603
- }).code;
604
- }
605
- export { createClassNameMap, rewriteCodeClassTokens, rewriteCssClassTokens, rewriteClassListValue, rewriteSelectorValue, };
606
- //# sourceMappingURL=obfuscation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"obfuscation.js","sourceRoot":"","sources":["../../src/plugins/obfuscation.ts"],"names":[],"mappings":"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"}