weapp-tailwindcss 4.4.0 → 4.5.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/chunk-34T2BFTJ.mjs +59 -0
  2. package/dist/{chunk-VN2BU7ON.js → chunk-4NWVZ7I2.js} +160 -59
  3. package/dist/{chunk-D2AKCBDU.mjs → chunk-DKUPUV4T.mjs} +75 -2
  4. package/dist/{chunk-FBGUUXQV.mjs → chunk-FWIGQ4RY.mjs} +1 -1
  5. package/dist/{chunk-QXCC745G.js → chunk-IO3RB6AQ.js} +99 -28
  6. package/dist/chunk-MRKRCDIE.js +195 -0
  7. package/dist/{chunk-RBRSMHFS.js → chunk-NHB7NFQC.js} +1 -1
  8. package/dist/{chunk-L3HOZDIV.mjs → chunk-OHUQYFGP.mjs} +98 -27
  9. package/dist/{chunk-NDHL3P32.mjs → chunk-RQGIJKLG.mjs} +156 -55
  10. package/dist/chunk-WVKK6TBL.js +59 -0
  11. package/dist/{chunk-GQAB52GE.js → chunk-XYYHPJOQ.js} +384 -14
  12. package/dist/{chunk-D25XJJMP.mjs → chunk-Z7Q5UFNU.mjs} +381 -11
  13. package/dist/cli.js +3 -3
  14. package/dist/cli.mjs +2 -2
  15. package/dist/core.js +3 -3
  16. package/dist/core.mjs +2 -2
  17. package/dist/css-macro/postcss.js +1 -1
  18. package/dist/css-macro/postcss.mjs +1 -1
  19. package/dist/css-macro.js +1 -1
  20. package/dist/css-macro.mjs +1 -1
  21. package/dist/defaults.js +1 -1
  22. package/dist/defaults.mjs +1 -1
  23. package/dist/escape.js +1 -1
  24. package/dist/escape.mjs +1 -1
  25. package/dist/gulp.js +4 -4
  26. package/dist/gulp.mjs +3 -3
  27. package/dist/index.d.mts +1 -1
  28. package/dist/index.d.ts +1 -1
  29. package/dist/index.js +7 -6
  30. package/dist/index.mjs +6 -5
  31. package/dist/postcss-html-transform.js +1 -1
  32. package/dist/postcss-html-transform.mjs +1 -1
  33. package/dist/presets.js +1 -1
  34. package/dist/presets.mjs +1 -1
  35. package/dist/types.d.mts +48 -2
  36. package/dist/types.d.ts +48 -2
  37. package/dist/types.js +1 -1
  38. package/dist/types.mjs +1 -1
  39. package/dist/vite.js +5 -4
  40. package/dist/vite.mjs +4 -3
  41. package/dist/webpack.js +5 -4
  42. package/dist/webpack.mjs +4 -3
  43. package/dist/webpack4.js +99 -29
  44. package/dist/webpack4.mjs +97 -27
  45. package/package.json +5 -5
  46. package/dist/chunk-H2Y5VNOJ.js +0 -122
@@ -0,0 +1,59 @@
1
+ // src/bundlers/shared/module-graph.ts
2
+ import path from "path";
3
+ var QUERY_HASH_RE = /[?#].*$/u;
4
+ var PROTOCOL_RE = /^[a-z][a-z+.-]*:/iu;
5
+ var VIRTUAL_PREFIX = "\0";
6
+ var JS_EXTENSIONS = [".js", ".mjs", ".cjs"];
7
+ function stripQueryAndHash(specifier) {
8
+ return specifier.replace(QUERY_HASH_RE, "");
9
+ }
10
+ function isResolvableSpecifier(specifier) {
11
+ if (!specifier) {
12
+ return false;
13
+ }
14
+ const normalized = stripQueryAndHash(specifier);
15
+ if (normalized.startsWith(VIRTUAL_PREFIX)) {
16
+ return false;
17
+ }
18
+ return !PROTOCOL_RE.test(normalized);
19
+ }
20
+ function toAbsoluteOutputPath(fileName, outDir) {
21
+ if (path.isAbsolute(fileName)) {
22
+ return fileName;
23
+ }
24
+ return path.resolve(outDir, fileName);
25
+ }
26
+ function matchWithExtensions(candidate, hasOutput) {
27
+ if (hasOutput(candidate)) {
28
+ return candidate;
29
+ }
30
+ if (!path.extname(candidate)) {
31
+ for (const ext of JS_EXTENSIONS) {
32
+ const extended = `${candidate}${ext}`;
33
+ if (hasOutput(extended)) {
34
+ return extended;
35
+ }
36
+ }
37
+ }
38
+ return void 0;
39
+ }
40
+ function resolveOutputSpecifier(specifier, importer, outDir, hasOutput) {
41
+ if (!isResolvableSpecifier(specifier)) {
42
+ return void 0;
43
+ }
44
+ const normalized = stripQueryAndHash(specifier);
45
+ let candidate;
46
+ if (path.isAbsolute(normalized)) {
47
+ candidate = normalized;
48
+ } else if (normalized.startsWith("/")) {
49
+ candidate = path.resolve(outDir, normalized.slice(1));
50
+ } else {
51
+ candidate = path.resolve(path.dirname(importer), normalized);
52
+ }
53
+ return matchWithExtensions(candidate, hasOutput);
54
+ }
55
+
56
+ export {
57
+ toAbsoluteOutputPath,
58
+ resolveOutputSpecifier
59
+ };
@@ -1,6 +1,10 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
3
 
4
+ var _chunkWVKK6TBLjs = require('./chunk-WVKK6TBL.js');
5
+
6
+
7
+
4
8
  var _chunk2NRTWL47js = require('./chunk-2NRTWL47.js');
5
9
 
6
10
 
@@ -8,7 +12,7 @@ var _chunkOGROHM4Ljs = require('./chunk-OGROHM4L.js');
8
12
 
9
13
 
10
14
 
11
- var _chunkGQAB52GEjs = require('./chunk-GQAB52GE.js');
15
+ var _chunkXYYHPJOQjs = require('./chunk-XYYHPJOQ.js');
12
16
 
13
17
 
14
18
  var _chunkPLMJW644js = require('./chunk-PLMJW644.js');
@@ -17,6 +21,9 @@ var _chunkPLMJW644js = require('./chunk-PLMJW644.js');
17
21
  var _chunkUW3WHSZ5js = require('./chunk-UW3WHSZ5.js');
18
22
 
19
23
  // src/bundlers/vite/index.ts
24
+ var _buffer = require('buffer');
25
+ var _path = require('path'); var _path2 = _interopRequireDefault(_path);
26
+ var _process = require('process'); var _process2 = _interopRequireDefault(_process);
20
27
  var _htmltransform = require('@weapp-tailwindcss/postcss/html-transform'); var _htmltransform2 = _interopRequireDefault(_htmltransform);
21
28
 
22
29
  // src/uni-app-x/index.ts
@@ -43,7 +50,7 @@ function createClassAttributeUpdater(ms) {
43
50
  function createClassDirectiveUpdater(ms, jsHandler, runtimeSet) {
44
51
  return (prop) => {
45
52
  if (_optionalChain([prop, 'access', _ => _.arg, 'optionalAccess', _2 => _2.type]) === _compilerdom.NodeTypes.SIMPLE_EXPRESSION && prop.arg.content === "class" && _optionalChain([prop, 'access', _3 => _3.exp, 'optionalAccess', _4 => _4.type]) === _compilerdom.NodeTypes.SIMPLE_EXPRESSION) {
46
- const generated = _chunkGQAB52GEjs.generateCode.call(void 0, prop.exp.content, {
53
+ const generated = _chunkXYYHPJOQjs.generateCode.call(void 0, prop.exp.content, {
47
54
  jsHandler,
48
55
  runtimeSet
49
56
  });
@@ -125,8 +132,8 @@ function parseVueRequest(id) {
125
132
  }
126
133
 
127
134
  // src/bundlers/vite/utils.ts
128
- var _path = require('path'); var _path2 = _interopRequireDefault(_path);
129
- var _process = require('process'); var _process2 = _interopRequireDefault(_process);
135
+
136
+
130
137
  function slash(p) {
131
138
  return p.replace(/\\/g, "/");
132
139
  }
@@ -164,8 +171,72 @@ async function formatPostcssSourceMap(rawMap, file) {
164
171
 
165
172
  // src/bundlers/vite/index.ts
166
173
  var debug = _chunk2NRTWL47js.createDebug.call(void 0, );
174
+ function readOutputEntry(entry) {
175
+ if (entry.output.type === "chunk") {
176
+ return entry.output.code;
177
+ }
178
+ const source = entry.output.source;
179
+ if (typeof source === "string") {
180
+ return source;
181
+ }
182
+ if (source instanceof Uint8Array) {
183
+ return _buffer.Buffer.from(source).toString();
184
+ }
185
+ const fallbackSource = source;
186
+ if (fallbackSource == null) {
187
+ return void 0;
188
+ }
189
+ if (typeof fallbackSource.toString === "function") {
190
+ return fallbackSource.toString();
191
+ }
192
+ return void 0;
193
+ }
194
+ function isJavaScriptEntry(entry) {
195
+ if (entry.output.type === "chunk") {
196
+ return true;
197
+ }
198
+ return entry.fileName.endsWith(".js");
199
+ }
200
+ function createBundleModuleGraphOptions(outputDir, entries) {
201
+ return {
202
+ resolve(specifier, importer) {
203
+ return _chunkWVKK6TBLjs.resolveOutputSpecifier.call(void 0, specifier, importer, outputDir, (candidate) => entries.has(candidate));
204
+ },
205
+ load(id) {
206
+ const entry = entries.get(id);
207
+ if (!entry) {
208
+ return void 0;
209
+ }
210
+ return readOutputEntry(entry);
211
+ },
212
+ filter(id) {
213
+ return entries.has(id);
214
+ }
215
+ };
216
+ }
217
+ function applyLinkedResults(linked, entries, onLinkedUpdate) {
218
+ if (!linked) {
219
+ return;
220
+ }
221
+ for (const [id, { code }] of Object.entries(linked)) {
222
+ const entry = entries.get(id);
223
+ if (!entry) {
224
+ continue;
225
+ }
226
+ const previous = readOutputEntry(entry);
227
+ if (previous == null || previous === code) {
228
+ continue;
229
+ }
230
+ if (entry.output.type === "chunk") {
231
+ entry.output.code = code;
232
+ } else {
233
+ entry.output.source = code;
234
+ }
235
+ onLinkedUpdate(entry.fileName, previous, code);
236
+ }
237
+ }
167
238
  function UnifiedViteWeappTailwindcssPlugin(options = {}) {
168
- const opts = _chunkGQAB52GEjs.getCompilerContext.call(void 0, options);
239
+ const opts = _chunkXYYHPJOQjs.getCompilerContext.call(void 0, options);
169
240
  const {
170
241
  disabled,
171
242
  onEnd,
@@ -187,12 +258,14 @@ function UnifiedViteWeappTailwindcssPlugin(options = {}) {
187
258
  }
188
259
  twPatcher.patch();
189
260
  let runtimeSet;
261
+ let resolvedConfig;
190
262
  onLoad();
191
263
  const plugins = [
192
264
  {
193
265
  name: `${_chunkOGROHM4Ljs.vitePluginName}:post`,
194
266
  enforce: "post",
195
267
  configResolved(config) {
268
+ resolvedConfig = config;
196
269
  if (typeof config.css.postcss === "object" && Array.isArray(config.css.postcss.plugins)) {
197
270
  const idx = config.css.postcss.plugins.findIndex((x) => (
198
271
  // @ts-ignore
@@ -208,10 +281,34 @@ function UnifiedViteWeappTailwindcssPlugin(options = {}) {
208
281
  debug("start");
209
282
  onStart();
210
283
  const entries = Object.entries(bundle);
284
+ const rootDir = _optionalChain([resolvedConfig, 'optionalAccess', _7 => _7.root]) ? _path2.default.resolve(resolvedConfig.root) : _process2.default.cwd();
285
+ const outDir = _optionalChain([resolvedConfig, 'optionalAccess', _8 => _8.build, 'optionalAccess', _9 => _9.outDir]) ? _path2.default.resolve(rootDir, resolvedConfig.build.outDir) : rootDir;
286
+ const jsEntries = /* @__PURE__ */ new Map();
287
+ for (const [fileName, output] of entries) {
288
+ const entry = { fileName, output };
289
+ if (isJavaScriptEntry(entry)) {
290
+ const absolute = _chunkWVKK6TBLjs.toAbsoluteOutputPath.call(void 0, fileName, outDir);
291
+ jsEntries.set(absolute, entry);
292
+ }
293
+ }
294
+ const moduleGraphOptions = createBundleModuleGraphOptions(outDir, jsEntries);
211
295
  const groupedEntries = _chunkUW3WHSZ5js.getGroupedEntries.call(void 0, entries, opts);
212
296
  runtimeSet = await twPatcher.getClassSet();
213
297
  setMangleRuntimeSet(runtimeSet);
214
298
  debug("get runtimeSet, class count: %d", runtimeSet.size);
299
+ const handleLinkedUpdate = (fileName, previous, next) => {
300
+ onUpdate(fileName, previous, next);
301
+ debug("js linked handle: %s", fileName);
302
+ };
303
+ const createHandlerOptions = (absoluteFilename, extra) => ({
304
+ ...extra,
305
+ filename: absoluteFilename,
306
+ moduleGraph: moduleGraphOptions,
307
+ babelParserOptions: {
308
+ ..._nullishCoalesce(_optionalChain([extra, 'optionalAccess', _10 => _10.babelParserOptions]), () => ( {})),
309
+ sourceFilename: absoluteFilename
310
+ }
311
+ });
215
312
  const tasks = [];
216
313
  if (Array.isArray(groupedEntries.html)) {
217
314
  for (const [file, originalSource] of groupedEntries.html) {
@@ -243,65 +340,69 @@ function UnifiedViteWeappTailwindcssPlugin(options = {}) {
243
340
  }
244
341
  if (Array.isArray(groupedEntries.js)) {
245
342
  for (const [file, originalSource] of groupedEntries.js) {
246
- if (originalSource.type === "chunk") {
247
- const rawSource = originalSource.code;
248
- tasks.push(
249
- _chunk2NRTWL47js.processCachedTask.call(void 0, {
250
- cache,
251
- cacheKey: file,
252
- rawSource,
253
- applyResult(source) {
254
- originalSource.code = source;
255
- },
256
- onCacheHit() {
257
- debug("js cache hit: %s", file);
258
- },
259
- async transform() {
260
- const { code } = await jsHandler(rawSource, runtimeSet);
261
- onUpdate(file, rawSource, code);
262
- debug("js handle: %s", file);
263
- return {
264
- result: code
265
- };
266
- }
267
- })
268
- );
343
+ if (originalSource.type !== "chunk") {
344
+ continue;
269
345
  }
346
+ const absoluteFile = _chunkWVKK6TBLjs.toAbsoluteOutputPath.call(void 0, file, outDir);
347
+ const initialRawSource = originalSource.code;
348
+ await _chunk2NRTWL47js.processCachedTask.call(void 0, {
349
+ cache,
350
+ cacheKey: file,
351
+ rawSource: initialRawSource,
352
+ applyResult(source) {
353
+ originalSource.code = source;
354
+ },
355
+ onCacheHit() {
356
+ debug("js cache hit: %s", file);
357
+ },
358
+ async transform() {
359
+ const rawSource = originalSource.code;
360
+ const { code, linked } = await jsHandler(rawSource, runtimeSet, createHandlerOptions(absoluteFile));
361
+ onUpdate(file, rawSource, code);
362
+ debug("js handle: %s", file);
363
+ applyLinkedResults(linked, jsEntries, handleLinkedUpdate);
364
+ return {
365
+ result: code
366
+ };
367
+ }
368
+ });
270
369
  }
271
370
  if (uniAppX) {
272
371
  for (const [file, originalSource] of groupedEntries.js) {
273
- if (originalSource.type === "asset") {
274
- const rawSource = originalSource.source.toString();
275
- tasks.push(
276
- _chunk2NRTWL47js.processCachedTask.call(void 0, {
277
- cache,
278
- cacheKey: file,
279
- rawSource,
280
- applyResult(source) {
281
- originalSource.source = source;
282
- },
283
- onCacheHit() {
284
- debug("js cache hit: %s", file);
285
- },
286
- async transform() {
287
- const { code } = await jsHandler(rawSource, runtimeSet, {
288
- uniAppX,
289
- babelParserOptions: {
290
- plugins: [
291
- "typescript"
292
- ],
293
- sourceType: "unambiguous"
294
- }
295
- });
296
- onUpdate(file, rawSource, code);
297
- debug("js handle: %s", file);
298
- return {
299
- result: code
300
- };
301
- }
302
- })
303
- );
372
+ if (originalSource.type !== "asset") {
373
+ continue;
304
374
  }
375
+ const absoluteFile = _chunkWVKK6TBLjs.toAbsoluteOutputPath.call(void 0, file, outDir);
376
+ const rawSource = originalSource.source.toString();
377
+ await _chunk2NRTWL47js.processCachedTask.call(void 0, {
378
+ cache,
379
+ cacheKey: file,
380
+ rawSource,
381
+ applyResult(source) {
382
+ originalSource.source = source;
383
+ },
384
+ onCacheHit() {
385
+ debug("js cache hit: %s", file);
386
+ },
387
+ async transform() {
388
+ const currentSource = originalSource.source.toString();
389
+ const { code, linked } = await jsHandler(currentSource, runtimeSet, createHandlerOptions(absoluteFile, {
390
+ uniAppX,
391
+ babelParserOptions: {
392
+ plugins: [
393
+ "typescript"
394
+ ],
395
+ sourceType: "unambiguous"
396
+ }
397
+ }));
398
+ onUpdate(file, currentSource, code);
399
+ debug("js handle: %s", file);
400
+ applyLinkedResults(linked, jsEntries, handleLinkedUpdate);
401
+ return {
402
+ result: code
403
+ };
404
+ }
405
+ });
305
406
  }
306
407
  }
307
408
  }
@@ -4,10 +4,13 @@ import {
4
4
  } from "./chunk-H4JTYYOI.mjs";
5
5
  import {
6
6
  getCompilerContext
7
- } from "./chunk-D25XJJMP.mjs";
7
+ } from "./chunk-Z7Q5UFNU.mjs";
8
8
 
9
9
  // src/bundlers/gulp/index.ts
10
10
  import { Buffer } from "buffer";
11
+ import fs from "fs";
12
+ import path from "path";
13
+ import process from "process";
11
14
  import stream from "stream";
12
15
  var debug = createDebug();
13
16
  var Transform = stream.Transform;
@@ -16,6 +19,64 @@ function createPlugins(options = {}) {
16
19
  const { templateHandler, styleHandler, jsHandler, setMangleRuntimeSet, cache, twPatcher } = opts;
17
20
  let runtimeSet = /* @__PURE__ */ new Set();
18
21
  twPatcher.patch();
22
+ const MODULE_EXTENSIONS = [".js", ".mjs", ".cjs", ".ts", ".tsx", ".jsx"];
23
+ function resolveWithExtensions(base) {
24
+ for (const ext of MODULE_EXTENSIONS) {
25
+ const candidate = `${base}${ext}`;
26
+ try {
27
+ if (fs.statSync(candidate).isFile()) {
28
+ return candidate;
29
+ }
30
+ } catch {
31
+ continue;
32
+ }
33
+ }
34
+ return void 0;
35
+ }
36
+ function resolveLocalModuleCandidate(base) {
37
+ try {
38
+ const stat = fs.statSync(base);
39
+ if (stat.isFile()) {
40
+ return base;
41
+ }
42
+ if (stat.isDirectory()) {
43
+ const resolvedIndex = resolveWithExtensions(path.join(base, "index"));
44
+ if (resolvedIndex) {
45
+ return resolvedIndex;
46
+ }
47
+ }
48
+ } catch {
49
+ }
50
+ if (!path.extname(base)) {
51
+ return resolveWithExtensions(base);
52
+ }
53
+ return void 0;
54
+ }
55
+ function createModuleGraphOptionsFor() {
56
+ return {
57
+ resolve(specifier, importer) {
58
+ if (!specifier) {
59
+ return void 0;
60
+ }
61
+ if (!specifier.startsWith(".") && !path.isAbsolute(specifier)) {
62
+ return void 0;
63
+ }
64
+ const normalized = path.resolve(path.dirname(importer), specifier);
65
+ return resolveLocalModuleCandidate(normalized);
66
+ },
67
+ load(id) {
68
+ try {
69
+ return fs.readFileSync(id, "utf8");
70
+ } catch {
71
+ return void 0;
72
+ }
73
+ },
74
+ filter(id) {
75
+ const relative = path.relative(process.cwd(), id);
76
+ return opts.jsMatcher(relative) || opts.wxsMatcher(relative);
77
+ }
78
+ };
79
+ }
19
80
  function createVinylTransform(handler) {
20
81
  return new Transform({
21
82
  objectMode: true,
@@ -63,6 +124,17 @@ function createPlugins(options = {}) {
63
124
  if (!file.contents) {
64
125
  return;
65
126
  }
127
+ const filename = path.resolve(file.path);
128
+ const moduleGraph = options2.moduleGraph ?? createModuleGraphOptionsFor();
129
+ const handlerOptions = {
130
+ ...options2,
131
+ filename,
132
+ moduleGraph,
133
+ babelParserOptions: {
134
+ ...options2?.babelParserOptions ?? {},
135
+ sourceFilename: filename
136
+ }
137
+ };
66
138
  const rawSource = file.contents.toString();
67
139
  await processCachedTask({
68
140
  cache,
@@ -75,7 +147,8 @@ function createPlugins(options = {}) {
75
147
  debug("js cache hit: %s", file.path);
76
148
  },
77
149
  async transform() {
78
- const { code } = await jsHandler(rawSource, runtimeSet, options2);
150
+ const currentSource = file.contents?.toString() ?? rawSource;
151
+ const { code } = await jsHandler(currentSource, runtimeSet, handlerOptions);
79
152
  debug("js handle: %s", file.path);
80
153
  return {
81
154
  result: code
@@ -1,4 +1,4 @@
1
- // ../../node_modules/.pnpm/tsup@8.5.0_@swc+core@1.13.5_jiti@2.6.1_postcss@8.5.6_tsx@4.20.6_typescript@5.9.3_yaml@2.8.1/node_modules/tsup/assets/esm_shims.js
1
+ // ../../node_modules/.pnpm/tsup@8.5.0_@microsoft+api-extractor@7.53.1_@types+node@24.8.1__@swc+core@1.13.5_jiti@2._cec5ee635e8b2932d274eae561437dbd/node_modules/tsup/assets/esm_shims.js
2
2
  import path from "path";
3
3
  import { fileURLToPath } from "url";
4
4
  var getFilename = () => fileURLToPath(import.meta.url);
@@ -1,16 +1,20 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
3
  var _chunk6GP37C26js = require('./chunk-6GP37C26.js');
4
4
 
5
5
 
6
6
 
7
+ var _chunkWVKK6TBLjs = require('./chunk-WVKK6TBL.js');
8
+
9
+
10
+
7
11
  var _chunk2NRTWL47js = require('./chunk-2NRTWL47.js');
8
12
 
9
13
 
10
14
  var _chunkOGROHM4Ljs = require('./chunk-OGROHM4L.js');
11
15
 
12
16
 
13
- var _chunkGQAB52GEjs = require('./chunk-GQAB52GE.js');
17
+ var _chunkXYYHPJOQjs = require('./chunk-XYYHPJOQ.js');
14
18
 
15
19
 
16
20
  var _chunkUW3WHSZ5js = require('./chunk-UW3WHSZ5.js');
@@ -18,10 +22,11 @@ var _chunkUW3WHSZ5js = require('./chunk-UW3WHSZ5.js');
18
22
  // src/bundlers/webpack/BaseUnifiedPlugin/v5.ts
19
23
  var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs);
20
24
  var _path = require('path'); var _path2 = _interopRequireDefault(_path);
25
+ var _process = require('process'); var _process2 = _interopRequireDefault(_process);
21
26
  var debug = _chunk2NRTWL47js.createDebug.call(void 0, );
22
27
  var UnifiedWebpackPluginV5 = class {
23
28
  constructor(options = {}) {
24
- this.options = _chunkGQAB52GEjs.getCompilerContext.call(void 0, options);
29
+ this.options = _chunkXYYHPJOQjs.getCompilerContext.call(void 0, options);
25
30
  this.appType = this.options.appType;
26
31
  }
27
32
  apply(compiler) {
@@ -85,6 +90,59 @@ var UnifiedWebpackPluginV5 = class {
85
90
  }
86
91
  }
87
92
  const entries = Object.entries(assets);
93
+ const compilerOutputPath = _nullishCoalesce(_optionalChain([compilation, 'access', _ => _.compiler, 'optionalAccess', _2 => _2.outputPath]), () => ( compiler.outputPath));
94
+ const outputDir = compilerOutputPath ? _path2.default.resolve(compilerOutputPath) : _nullishCoalesce(_optionalChain([compilation, 'access', _3 => _3.outputOptions, 'optionalAccess', _4 => _4.path]), () => ( _process2.default.cwd()));
95
+ const jsAssets = /* @__PURE__ */ new Map();
96
+ for (const [file] of entries) {
97
+ if (this.options.jsMatcher(file) || this.options.wxsMatcher(file)) {
98
+ const absolute = _chunkWVKK6TBLjs.toAbsoluteOutputPath.call(void 0, file, outputDir);
99
+ jsAssets.set(absolute, file);
100
+ }
101
+ }
102
+ const moduleGraphOptions = {
103
+ resolve(specifier, importer) {
104
+ return _chunkWVKK6TBLjs.resolveOutputSpecifier.call(void 0, specifier, importer, outputDir, (candidate) => jsAssets.has(candidate));
105
+ },
106
+ load: (id) => {
107
+ const assetName = jsAssets.get(id);
108
+ if (!assetName) {
109
+ return void 0;
110
+ }
111
+ const asset = compilation.getAsset(assetName);
112
+ if (!asset) {
113
+ return void 0;
114
+ }
115
+ const source = asset.source.source();
116
+ return typeof source === "string" ? source : source.toString();
117
+ },
118
+ filter(id) {
119
+ return jsAssets.has(id);
120
+ }
121
+ };
122
+ const applyLinkedResults = (linked) => {
123
+ if (!linked) {
124
+ return;
125
+ }
126
+ for (const [id, { code }] of Object.entries(linked)) {
127
+ const assetName = jsAssets.get(id);
128
+ if (!assetName) {
129
+ continue;
130
+ }
131
+ const asset = compilation.getAsset(assetName);
132
+ if (!asset) {
133
+ continue;
134
+ }
135
+ const previousSource = asset.source.source();
136
+ const previous = typeof previousSource === "string" ? previousSource : previousSource.toString();
137
+ if (previous === code) {
138
+ continue;
139
+ }
140
+ const source = new ConcatSource(code);
141
+ compilation.updateAsset(assetName, source);
142
+ onUpdate(assetName, previous, code);
143
+ debug("js linked handle: %s", assetName);
144
+ }
145
+ };
88
146
  const groupedEntries = _chunkUW3WHSZ5js.getGroupedEntries.call(void 0, entries, this.options);
89
147
  const runtimeSet = await twPatcher.getClassSet();
90
148
  setMangleRuntimeSet(runtimeSet);
@@ -122,32 +180,45 @@ var UnifiedWebpackPluginV5 = class {
122
180
  }
123
181
  }
124
182
  if (Array.isArray(groupedEntries.js)) {
125
- for (const element of groupedEntries.js) {
126
- const [file, originalSource] = element;
183
+ for (const [file] of groupedEntries.js) {
127
184
  const cacheKey = _chunk6GP37C26js.getCacheKey.call(void 0, file);
128
- const rawSource = originalSource.source().toString();
129
- tasks.push(
130
- _chunk2NRTWL47js.processCachedTask.call(void 0, {
131
- cache,
132
- cacheKey,
133
- rawSource,
134
- applyResult(source) {
135
- compilation.updateAsset(file, source);
136
- },
137
- onCacheHit() {
138
- debug("js cache hit: %s", file);
139
- },
140
- transform: async () => {
141
- const { code } = await jsHandler(rawSource, runtimeSet);
142
- const source = new ConcatSource(code);
143
- onUpdate(file, rawSource, code);
144
- debug("js handle: %s", file);
145
- return {
146
- result: source
147
- };
148
- }
149
- })
150
- );
185
+ const asset = compilation.getAsset(file);
186
+ if (!asset) {
187
+ continue;
188
+ }
189
+ const absoluteFile = _chunkWVKK6TBLjs.toAbsoluteOutputPath.call(void 0, file, outputDir);
190
+ const initialSource = asset.source.source();
191
+ const initialRawSource = typeof initialSource === "string" ? initialSource : initialSource.toString();
192
+ await _chunk2NRTWL47js.processCachedTask.call(void 0, {
193
+ cache,
194
+ cacheKey,
195
+ rawSource: initialRawSource,
196
+ applyResult(source) {
197
+ compilation.updateAsset(file, source);
198
+ },
199
+ onCacheHit() {
200
+ debug("js cache hit: %s", file);
201
+ },
202
+ transform: async () => {
203
+ const currentAsset = compilation.getAsset(file);
204
+ const currentSourceValue = _optionalChain([currentAsset, 'optionalAccess', _5 => _5.source, 'access', _6 => _6.source, 'call', _7 => _7()]);
205
+ const currentSource = typeof currentSourceValue === "string" ? currentSourceValue : _nullishCoalesce(_optionalChain([currentSourceValue, 'optionalAccess', _8 => _8.toString, 'call', _9 => _9()]), () => ( ""));
206
+ const { code, linked } = await jsHandler(currentSource, runtimeSet, {
207
+ filename: absoluteFile,
208
+ moduleGraph: moduleGraphOptions,
209
+ babelParserOptions: {
210
+ sourceFilename: absoluteFile
211
+ }
212
+ });
213
+ const source = new ConcatSource(code);
214
+ onUpdate(file, currentSource, code);
215
+ debug("js handle: %s", file);
216
+ applyLinkedResults(linked);
217
+ return {
218
+ result: source
219
+ };
220
+ }
221
+ });
151
222
  }
152
223
  }
153
224
  if (Array.isArray(groupedEntries.css)) {