heading-case 1.0.2 → 1.0.4

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 (2) hide show
  1. package/dist/index.js +656 -797
  2. package/package.json +8 -8
package/dist/index.js CHANGED
@@ -1,707 +1,12 @@
1
- import * as __WEBPACK_EXTERNAL_MODULE_fs__ from "fs";
2
- import * as __WEBPACK_EXTERNAL_MODULE_path__ from "path";
3
1
  import node_fs from "node:fs";
4
2
  import node_process from "node:process";
5
3
  import node_os from "node:os";
6
4
  import node_tty from "node:tty";
5
+ import path_0, { basename, dirname, normalize, posix, relative as external_path_relative, resolve, sep } from "path";
6
+ import { fileURLToPath } from "url";
7
+ import { createRequire } from "module";
8
+ import * as __rspack_external_fs from "fs";
7
9
  var __webpack_modules__ = {
8
- "./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/async.js": function(__unused_webpack_module, exports, __webpack_require__) {
9
- Object.defineProperty(exports, "__esModule", {
10
- value: true
11
- });
12
- exports.callback = exports.promise = void 0;
13
- const walker_1 = __webpack_require__("./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/walker.js");
14
- function promise(root, options) {
15
- return new Promise((resolve, reject)=>{
16
- callback(root, options, (err, output)=>{
17
- if (err) return reject(err);
18
- resolve(output);
19
- });
20
- });
21
- }
22
- exports.promise = promise;
23
- function callback(root, options, callback) {
24
- let walker = new walker_1.Walker(root, options, callback);
25
- walker.start();
26
- }
27
- exports.callback = callback;
28
- },
29
- "./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/counter.js": function(__unused_webpack_module, exports) {
30
- Object.defineProperty(exports, "__esModule", {
31
- value: true
32
- });
33
- exports.Counter = void 0;
34
- class Counter {
35
- _files = 0;
36
- _directories = 0;
37
- set files(num) {
38
- this._files = num;
39
- }
40
- get files() {
41
- return this._files;
42
- }
43
- set directories(num) {
44
- this._directories = num;
45
- }
46
- get directories() {
47
- return this._directories;
48
- }
49
- get dirs() {
50
- return this._directories;
51
- }
52
- }
53
- exports.Counter = Counter;
54
- },
55
- "./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/functions/get-array.js": function(__unused_webpack_module, exports) {
56
- Object.defineProperty(exports, "__esModule", {
57
- value: true
58
- });
59
- exports.build = void 0;
60
- const getArray = (paths)=>paths;
61
- const getArrayGroup = ()=>[
62
- ""
63
- ].slice(0, 0);
64
- function build(options) {
65
- return options.group ? getArrayGroup : getArray;
66
- }
67
- exports.build = build;
68
- },
69
- "./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/functions/group-files.js": function(__unused_webpack_module, exports) {
70
- Object.defineProperty(exports, "__esModule", {
71
- value: true
72
- });
73
- exports.build = void 0;
74
- const groupFiles = (groups, directory, files)=>{
75
- groups.push({
76
- directory,
77
- files,
78
- dir: directory
79
- });
80
- };
81
- const empty = ()=>{};
82
- function build(options) {
83
- return options.group ? groupFiles : empty;
84
- }
85
- exports.build = build;
86
- },
87
- "./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/functions/invoke-callback.js": function(__unused_webpack_module, exports) {
88
- Object.defineProperty(exports, "__esModule", {
89
- value: true
90
- });
91
- exports.build = void 0;
92
- const onlyCountsSync = (state)=>state.counts;
93
- const groupsSync = (state)=>state.groups;
94
- const defaultSync = (state)=>state.paths;
95
- const limitFilesSync = (state)=>state.paths.slice(0, state.options.maxFiles);
96
- const onlyCountsAsync = (state, error, callback)=>{
97
- report(error, callback, state.counts, state.options.suppressErrors);
98
- return null;
99
- };
100
- const defaultAsync = (state, error, callback)=>{
101
- report(error, callback, state.paths, state.options.suppressErrors);
102
- return null;
103
- };
104
- const limitFilesAsync = (state, error, callback)=>{
105
- report(error, callback, state.paths.slice(0, state.options.maxFiles), state.options.suppressErrors);
106
- return null;
107
- };
108
- const groupsAsync = (state, error, callback)=>{
109
- report(error, callback, state.groups, state.options.suppressErrors);
110
- return null;
111
- };
112
- function report(error, callback, output, suppressErrors) {
113
- callback(error && !suppressErrors ? error : null, output);
114
- }
115
- function build(options, isSynchronous) {
116
- const { onlyCounts, group, maxFiles } = options;
117
- if (onlyCounts) return isSynchronous ? onlyCountsSync : onlyCountsAsync;
118
- if (group) return isSynchronous ? groupsSync : groupsAsync;
119
- if (maxFiles) return isSynchronous ? limitFilesSync : limitFilesAsync;
120
- return isSynchronous ? defaultSync : defaultAsync;
121
- }
122
- exports.build = build;
123
- },
124
- "./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/functions/join-path.js": function(__unused_webpack_module, exports, __webpack_require__) {
125
- Object.defineProperty(exports, "__esModule", {
126
- value: true
127
- });
128
- exports.build = exports.joinDirectoryPath = exports.joinPathWithBasePath = void 0;
129
- const path_1 = __webpack_require__("path");
130
- const utils_1 = __webpack_require__("./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/utils.js");
131
- function joinPathWithBasePath(filename, directoryPath) {
132
- return directoryPath + filename;
133
- }
134
- exports.joinPathWithBasePath = joinPathWithBasePath;
135
- function joinPathWithRelativePath(root, options) {
136
- return function(filename, directoryPath) {
137
- const sameRoot = directoryPath.startsWith(root);
138
- if (sameRoot) return directoryPath.replace(root, "") + filename;
139
- return (0, utils_1.convertSlashes)((0, path_1.relative)(root, directoryPath), options.pathSeparator) + options.pathSeparator + filename;
140
- };
141
- }
142
- function joinPath(filename) {
143
- return filename;
144
- }
145
- function joinDirectoryPath(filename, directoryPath, separator) {
146
- return directoryPath + filename + separator;
147
- }
148
- exports.joinDirectoryPath = joinDirectoryPath;
149
- function build(root, options) {
150
- const { relativePaths, includeBasePath } = options;
151
- return relativePaths && root ? joinPathWithRelativePath(root, options) : includeBasePath ? joinPathWithBasePath : joinPath;
152
- }
153
- exports.build = build;
154
- },
155
- "./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/functions/push-directory.js": function(__unused_webpack_module, exports) {
156
- Object.defineProperty(exports, "__esModule", {
157
- value: true
158
- });
159
- exports.build = void 0;
160
- function pushDirectoryWithRelativePath(root) {
161
- return function(directoryPath, paths) {
162
- paths.push(directoryPath.substring(root.length) || ".");
163
- };
164
- }
165
- function pushDirectoryFilterWithRelativePath(root) {
166
- return function(directoryPath, paths, filters) {
167
- const relativePath = directoryPath.substring(root.length) || ".";
168
- if (filters.every((filter)=>filter(relativePath, true))) paths.push(relativePath);
169
- };
170
- }
171
- const pushDirectory = (directoryPath, paths)=>{
172
- paths.push(directoryPath || ".");
173
- };
174
- const pushDirectoryFilter = (directoryPath, paths, filters)=>{
175
- const path = directoryPath || ".";
176
- if (filters.every((filter)=>filter(path, true))) paths.push(path);
177
- };
178
- const empty = ()=>{};
179
- function build(root, options) {
180
- const { includeDirs, filters, relativePaths } = options;
181
- if (!includeDirs) return empty;
182
- if (relativePaths) return filters && filters.length ? pushDirectoryFilterWithRelativePath(root) : pushDirectoryWithRelativePath(root);
183
- return filters && filters.length ? pushDirectoryFilter : pushDirectory;
184
- }
185
- exports.build = build;
186
- },
187
- "./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/functions/push-file.js": function(__unused_webpack_module, exports) {
188
- Object.defineProperty(exports, "__esModule", {
189
- value: true
190
- });
191
- exports.build = void 0;
192
- const pushFileFilterAndCount = (filename, _paths, counts, filters)=>{
193
- if (filters.every((filter)=>filter(filename, false))) counts.files++;
194
- };
195
- const pushFileFilter = (filename, paths, _counts, filters)=>{
196
- if (filters.every((filter)=>filter(filename, false))) paths.push(filename);
197
- };
198
- const pushFileCount = (_filename, _paths, counts, _filters)=>{
199
- counts.files++;
200
- };
201
- const pushFile = (filename, paths)=>{
202
- paths.push(filename);
203
- };
204
- const empty = ()=>{};
205
- function build(options) {
206
- const { excludeFiles, filters, onlyCounts } = options;
207
- if (excludeFiles) return empty;
208
- if (filters && filters.length) return onlyCounts ? pushFileFilterAndCount : pushFileFilter;
209
- if (onlyCounts) return pushFileCount;
210
- return pushFile;
211
- }
212
- exports.build = build;
213
- },
214
- "./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/functions/resolve-symlink.js": function(__unused_webpack_module, exports, __webpack_require__) {
215
- var __importDefault = this && this.__importDefault || function(mod) {
216
- return mod && mod.__esModule ? mod : {
217
- default: mod
218
- };
219
- };
220
- Object.defineProperty(exports, "__esModule", {
221
- value: true
222
- });
223
- exports.build = void 0;
224
- const fs_1 = __importDefault(__webpack_require__("fs"));
225
- const path_1 = __webpack_require__("path");
226
- const resolveSymlinksAsync = function(path, state, callback) {
227
- const { queue, options: { suppressErrors } } = state;
228
- queue.enqueue();
229
- fs_1.default.realpath(path, (error, resolvedPath)=>{
230
- if (error) return queue.dequeue(suppressErrors ? null : error, state);
231
- fs_1.default.stat(resolvedPath, (error, stat)=>{
232
- if (error) return queue.dequeue(suppressErrors ? null : error, state);
233
- if (stat.isDirectory() && isRecursive(path, resolvedPath, state)) return queue.dequeue(null, state);
234
- callback(stat, resolvedPath);
235
- queue.dequeue(null, state);
236
- });
237
- });
238
- };
239
- const resolveSymlinks = function(path, state, callback) {
240
- const { queue, options: { suppressErrors } } = state;
241
- queue.enqueue();
242
- try {
243
- const resolvedPath = fs_1.default.realpathSync(path);
244
- const stat = fs_1.default.statSync(resolvedPath);
245
- if (stat.isDirectory() && isRecursive(path, resolvedPath, state)) return;
246
- callback(stat, resolvedPath);
247
- } catch (e) {
248
- if (!suppressErrors) throw e;
249
- }
250
- };
251
- function build(options, isSynchronous) {
252
- if (!options.resolveSymlinks || options.excludeSymlinks) return null;
253
- return isSynchronous ? resolveSymlinks : resolveSymlinksAsync;
254
- }
255
- exports.build = build;
256
- function isRecursive(path, resolved, state) {
257
- if (state.options.useRealPaths) return isRecursiveUsingRealPaths(resolved, state);
258
- let parent = (0, path_1.dirname)(path);
259
- let depth = 1;
260
- while(parent !== state.root && depth < 2){
261
- const resolvedPath = state.symlinks.get(parent);
262
- const isSameRoot = !!resolvedPath && (resolvedPath === resolved || resolvedPath.startsWith(resolved) || resolved.startsWith(resolvedPath));
263
- if (isSameRoot) depth++;
264
- else parent = (0, path_1.dirname)(parent);
265
- }
266
- state.symlinks.set(path, resolved);
267
- return depth > 1;
268
- }
269
- function isRecursiveUsingRealPaths(resolved, state) {
270
- return state.visited.includes(resolved + state.options.pathSeparator);
271
- }
272
- },
273
- "./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/functions/walk-directory.js": function(__unused_webpack_module, exports, __webpack_require__) {
274
- var __importDefault = this && this.__importDefault || function(mod) {
275
- return mod && mod.__esModule ? mod : {
276
- default: mod
277
- };
278
- };
279
- Object.defineProperty(exports, "__esModule", {
280
- value: true
281
- });
282
- exports.build = void 0;
283
- const fs_1 = __importDefault(__webpack_require__("fs"));
284
- const readdirOpts = {
285
- withFileTypes: true
286
- };
287
- const walkAsync = (state, crawlPath, directoryPath, currentDepth, callback)=>{
288
- state.queue.enqueue();
289
- if (currentDepth < 0) return state.queue.dequeue(null, state);
290
- state.visited.push(crawlPath);
291
- state.counts.directories++;
292
- fs_1.default.readdir(crawlPath || ".", readdirOpts, (error, entries = [])=>{
293
- callback(entries, directoryPath, currentDepth);
294
- state.queue.dequeue(state.options.suppressErrors ? null : error, state);
295
- });
296
- };
297
- const walkSync = (state, crawlPath, directoryPath, currentDepth, callback)=>{
298
- if (currentDepth < 0) return;
299
- state.visited.push(crawlPath);
300
- state.counts.directories++;
301
- let entries = [];
302
- try {
303
- entries = fs_1.default.readdirSync(crawlPath || ".", readdirOpts);
304
- } catch (e) {
305
- if (!state.options.suppressErrors) throw e;
306
- }
307
- callback(entries, directoryPath, currentDepth);
308
- };
309
- function build(isSynchronous) {
310
- return isSynchronous ? walkSync : walkAsync;
311
- }
312
- exports.build = build;
313
- },
314
- "./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/queue.js": function(__unused_webpack_module, exports) {
315
- Object.defineProperty(exports, "__esModule", {
316
- value: true
317
- });
318
- exports.Queue = void 0;
319
- class Queue {
320
- onQueueEmpty;
321
- count = 0;
322
- constructor(onQueueEmpty){
323
- this.onQueueEmpty = onQueueEmpty;
324
- }
325
- enqueue() {
326
- this.count++;
327
- return this.count;
328
- }
329
- dequeue(error, output) {
330
- if (this.onQueueEmpty && (--this.count <= 0 || error)) {
331
- this.onQueueEmpty(error, output);
332
- if (error) {
333
- output.controller.abort();
334
- this.onQueueEmpty = void 0;
335
- }
336
- }
337
- }
338
- }
339
- exports.Queue = Queue;
340
- },
341
- "./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/sync.js": function(__unused_webpack_module, exports, __webpack_require__) {
342
- Object.defineProperty(exports, "__esModule", {
343
- value: true
344
- });
345
- exports.sync = void 0;
346
- const walker_1 = __webpack_require__("./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/walker.js");
347
- function sync(root, options) {
348
- const walker = new walker_1.Walker(root, options);
349
- return walker.start();
350
- }
351
- exports.sync = sync;
352
- },
353
- "./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/walker.js": function(__unused_webpack_module, exports, __webpack_require__) {
354
- var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
355
- if (void 0 === k2) k2 = k;
356
- var desc = Object.getOwnPropertyDescriptor(m, k);
357
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) desc = {
358
- enumerable: true,
359
- get: function() {
360
- return m[k];
361
- }
362
- };
363
- Object.defineProperty(o, k2, desc);
364
- } : function(o, m, k, k2) {
365
- if (void 0 === k2) k2 = k;
366
- o[k2] = m[k];
367
- });
368
- var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function(o, v) {
369
- Object.defineProperty(o, "default", {
370
- enumerable: true,
371
- value: v
372
- });
373
- } : function(o, v) {
374
- o["default"] = v;
375
- });
376
- var __importStar = this && this.__importStar || function(mod) {
377
- if (mod && mod.__esModule) return mod;
378
- var result = {};
379
- if (null != mod) {
380
- for(var k in mod)if ("default" !== k && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
381
- }
382
- __setModuleDefault(result, mod);
383
- return result;
384
- };
385
- Object.defineProperty(exports, "__esModule", {
386
- value: true
387
- });
388
- exports.Walker = void 0;
389
- const path_1 = __webpack_require__("path");
390
- const utils_1 = __webpack_require__("./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/utils.js");
391
- const joinPath = __importStar(__webpack_require__("./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/functions/join-path.js"));
392
- const pushDirectory = __importStar(__webpack_require__("./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/functions/push-directory.js"));
393
- const pushFile = __importStar(__webpack_require__("./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/functions/push-file.js"));
394
- const getArray = __importStar(__webpack_require__("./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/functions/get-array.js"));
395
- const groupFiles = __importStar(__webpack_require__("./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/functions/group-files.js"));
396
- const resolveSymlink = __importStar(__webpack_require__("./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/functions/resolve-symlink.js"));
397
- const invokeCallback = __importStar(__webpack_require__("./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/functions/invoke-callback.js"));
398
- const walkDirectory = __importStar(__webpack_require__("./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/functions/walk-directory.js"));
399
- const queue_1 = __webpack_require__("./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/queue.js");
400
- const counter_1 = __webpack_require__("./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/counter.js");
401
- class Walker {
402
- root;
403
- isSynchronous;
404
- state;
405
- joinPath;
406
- pushDirectory;
407
- pushFile;
408
- getArray;
409
- groupFiles;
410
- resolveSymlink;
411
- walkDirectory;
412
- callbackInvoker;
413
- constructor(root, options, callback){
414
- this.isSynchronous = !callback;
415
- this.callbackInvoker = invokeCallback.build(options, this.isSynchronous);
416
- this.root = (0, utils_1.normalizePath)(root, options);
417
- this.state = {
418
- root: (0, utils_1.isRootDirectory)(this.root) ? this.root : this.root.slice(0, -1),
419
- paths: [
420
- ""
421
- ].slice(0, 0),
422
- groups: [],
423
- counts: new counter_1.Counter(),
424
- options,
425
- queue: new queue_1.Queue((error, state)=>this.callbackInvoker(state, error, callback)),
426
- symlinks: new Map(),
427
- visited: [
428
- ""
429
- ].slice(0, 0),
430
- controller: new AbortController()
431
- };
432
- this.joinPath = joinPath.build(this.root, options);
433
- this.pushDirectory = pushDirectory.build(this.root, options);
434
- this.pushFile = pushFile.build(options);
435
- this.getArray = getArray.build(options);
436
- this.groupFiles = groupFiles.build(options);
437
- this.resolveSymlink = resolveSymlink.build(options, this.isSynchronous);
438
- this.walkDirectory = walkDirectory.build(this.isSynchronous);
439
- }
440
- start() {
441
- this.pushDirectory(this.root, this.state.paths, this.state.options.filters);
442
- this.walkDirectory(this.state, this.root, this.root, this.state.options.maxDepth, this.walk);
443
- return this.isSynchronous ? this.callbackInvoker(this.state, null) : null;
444
- }
445
- walk = (entries, directoryPath, depth)=>{
446
- const { paths, options: { filters, resolveSymlinks, excludeSymlinks, exclude, maxFiles, signal, useRealPaths, pathSeparator }, controller } = this.state;
447
- if (controller.signal.aborted || signal && signal.aborted || maxFiles && paths.length > maxFiles) return;
448
- const files = this.getArray(this.state.paths);
449
- for(let i = 0; i < entries.length; ++i){
450
- const entry = entries[i];
451
- if (entry.isFile() || entry.isSymbolicLink() && !resolveSymlinks && !excludeSymlinks) {
452
- const filename = this.joinPath(entry.name, directoryPath);
453
- this.pushFile(filename, files, this.state.counts, filters);
454
- } else if (entry.isDirectory()) {
455
- let path = joinPath.joinDirectoryPath(entry.name, directoryPath, this.state.options.pathSeparator);
456
- if (exclude && exclude(entry.name, path)) continue;
457
- this.pushDirectory(path, paths, filters);
458
- this.walkDirectory(this.state, path, path, depth - 1, this.walk);
459
- } else if (this.resolveSymlink && entry.isSymbolicLink()) {
460
- let path = joinPath.joinPathWithBasePath(entry.name, directoryPath);
461
- this.resolveSymlink(path, this.state, (stat, resolvedPath)=>{
462
- if (stat.isDirectory()) {
463
- resolvedPath = (0, utils_1.normalizePath)(resolvedPath, this.state.options);
464
- if (exclude && exclude(entry.name, useRealPaths ? resolvedPath : path + pathSeparator)) return;
465
- this.walkDirectory(this.state, resolvedPath, useRealPaths ? resolvedPath : path + pathSeparator, depth - 1, this.walk);
466
- } else {
467
- resolvedPath = useRealPaths ? resolvedPath : path;
468
- const filename = (0, path_1.basename)(resolvedPath);
469
- const directoryPath = (0, utils_1.normalizePath)((0, path_1.dirname)(resolvedPath), this.state.options);
470
- resolvedPath = this.joinPath(filename, directoryPath);
471
- this.pushFile(resolvedPath, files, this.state.counts, filters);
472
- }
473
- });
474
- }
475
- }
476
- this.groupFiles(this.state.groups, directoryPath, files);
477
- };
478
- }
479
- exports.Walker = Walker;
480
- },
481
- "./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/builder/api-builder.js": function(__unused_webpack_module, exports, __webpack_require__) {
482
- Object.defineProperty(exports, "__esModule", {
483
- value: true
484
- });
485
- exports.APIBuilder = void 0;
486
- const async_1 = __webpack_require__("./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/async.js");
487
- const sync_1 = __webpack_require__("./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/api/sync.js");
488
- class APIBuilder {
489
- root;
490
- options;
491
- constructor(root, options){
492
- this.root = root;
493
- this.options = options;
494
- }
495
- withPromise() {
496
- return (0, async_1.promise)(this.root, this.options);
497
- }
498
- withCallback(cb) {
499
- (0, async_1.callback)(this.root, this.options, cb);
500
- }
501
- sync() {
502
- return (0, sync_1.sync)(this.root, this.options);
503
- }
504
- }
505
- exports.APIBuilder = APIBuilder;
506
- },
507
- "./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/builder/index.js": function(__unused_webpack_module, exports, __webpack_require__) {
508
- Object.defineProperty(exports, "__esModule", {
509
- value: true
510
- });
511
- exports.Builder = void 0;
512
- const path_1 = __webpack_require__("path");
513
- const api_builder_1 = __webpack_require__("./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/builder/api-builder.js");
514
- var pm = null;
515
- try {
516
- require.resolve("picomatch");
517
- pm = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/index.js");
518
- } catch (_e) {}
519
- class Builder {
520
- globCache = {};
521
- options = {
522
- maxDepth: 1 / 0,
523
- suppressErrors: true,
524
- pathSeparator: path_1.sep,
525
- filters: []
526
- };
527
- globFunction;
528
- constructor(options){
529
- this.options = {
530
- ...this.options,
531
- ...options
532
- };
533
- this.globFunction = this.options.globFunction;
534
- }
535
- group() {
536
- this.options.group = true;
537
- return this;
538
- }
539
- withPathSeparator(separator) {
540
- this.options.pathSeparator = separator;
541
- return this;
542
- }
543
- withBasePath() {
544
- this.options.includeBasePath = true;
545
- return this;
546
- }
547
- withRelativePaths() {
548
- this.options.relativePaths = true;
549
- return this;
550
- }
551
- withDirs() {
552
- this.options.includeDirs = true;
553
- return this;
554
- }
555
- withMaxDepth(depth) {
556
- this.options.maxDepth = depth;
557
- return this;
558
- }
559
- withMaxFiles(limit) {
560
- this.options.maxFiles = limit;
561
- return this;
562
- }
563
- withFullPaths() {
564
- this.options.resolvePaths = true;
565
- this.options.includeBasePath = true;
566
- return this;
567
- }
568
- withErrors() {
569
- this.options.suppressErrors = false;
570
- return this;
571
- }
572
- withSymlinks({ resolvePaths = true } = {}) {
573
- this.options.resolveSymlinks = true;
574
- this.options.useRealPaths = resolvePaths;
575
- return this.withFullPaths();
576
- }
577
- withAbortSignal(signal) {
578
- this.options.signal = signal;
579
- return this;
580
- }
581
- normalize() {
582
- this.options.normalizePath = true;
583
- return this;
584
- }
585
- filter(predicate) {
586
- this.options.filters.push(predicate);
587
- return this;
588
- }
589
- onlyDirs() {
590
- this.options.excludeFiles = true;
591
- this.options.includeDirs = true;
592
- return this;
593
- }
594
- exclude(predicate) {
595
- this.options.exclude = predicate;
596
- return this;
597
- }
598
- onlyCounts() {
599
- this.options.onlyCounts = true;
600
- return this;
601
- }
602
- crawl(root) {
603
- return new api_builder_1.APIBuilder(root || ".", this.options);
604
- }
605
- withGlobFunction(fn) {
606
- this.globFunction = fn;
607
- return this;
608
- }
609
- crawlWithOptions(root, options) {
610
- this.options = {
611
- ...this.options,
612
- ...options
613
- };
614
- return new api_builder_1.APIBuilder(root || ".", this.options);
615
- }
616
- glob(...patterns) {
617
- if (this.globFunction) return this.globWithOptions(patterns);
618
- return this.globWithOptions(patterns, {
619
- dot: true
620
- });
621
- }
622
- globWithOptions(patterns, ...options) {
623
- const globFn = this.globFunction || pm;
624
- if (!globFn) throw new Error("Please specify a glob function to use glob matching.");
625
- var isMatch = this.globCache[patterns.join("\0")];
626
- if (!isMatch) {
627
- isMatch = globFn(patterns, ...options);
628
- this.globCache[patterns.join("\0")] = isMatch;
629
- }
630
- this.options.filters.push((path)=>isMatch(path));
631
- return this;
632
- }
633
- }
634
- exports.Builder = Builder;
635
- },
636
- "./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/index.js": function(__unused_webpack_module, exports, __webpack_require__) {
637
- var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
638
- if (void 0 === k2) k2 = k;
639
- var desc = Object.getOwnPropertyDescriptor(m, k);
640
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) desc = {
641
- enumerable: true,
642
- get: function() {
643
- return m[k];
644
- }
645
- };
646
- Object.defineProperty(o, k2, desc);
647
- } : function(o, m, k, k2) {
648
- if (void 0 === k2) k2 = k;
649
- o[k2] = m[k];
650
- });
651
- var __exportStar = this && this.__exportStar || function(m, exports) {
652
- for(var p in m)if ("default" !== p && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
653
- };
654
- Object.defineProperty(exports, "__esModule", {
655
- value: true
656
- });
657
- exports.fdir = void 0;
658
- const builder_1 = __webpack_require__("./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/builder/index.js");
659
- Object.defineProperty(exports, "fdir", {
660
- enumerable: true,
661
- get: function() {
662
- return builder_1.Builder;
663
- }
664
- });
665
- __exportStar(__webpack_require__("./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/types.js"), exports);
666
- },
667
- "./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/types.js": function(__unused_webpack_module, exports) {
668
- Object.defineProperty(exports, "__esModule", {
669
- value: true
670
- });
671
- },
672
- "./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/utils.js": function(__unused_webpack_module, exports, __webpack_require__) {
673
- Object.defineProperty(exports, "__esModule", {
674
- value: true
675
- });
676
- exports.normalizePath = exports.isRootDirectory = exports.convertSlashes = exports.cleanPath = void 0;
677
- const path_1 = __webpack_require__("path");
678
- function cleanPath(path) {
679
- let normalized = (0, path_1.normalize)(path);
680
- if (normalized.length > 1 && normalized[normalized.length - 1] === path_1.sep) normalized = normalized.substring(0, normalized.length - 1);
681
- return normalized;
682
- }
683
- exports.cleanPath = cleanPath;
684
- const SLASHES_REGEX = /[\\/]/g;
685
- function convertSlashes(path, separator) {
686
- return path.replace(SLASHES_REGEX, separator);
687
- }
688
- exports.convertSlashes = convertSlashes;
689
- const WINDOWS_ROOT_DIR_REGEX = /^[a-z]:[\\/]$/i;
690
- function isRootDirectory(path) {
691
- return "/" === path || WINDOWS_ROOT_DIR_REGEX.test(path);
692
- }
693
- exports.isRootDirectory = isRootDirectory;
694
- function normalizePath(path, options) {
695
- const { resolvePaths, normalizePath, pathSeparator } = options;
696
- const pathNeedsCleaning = "win32" === process.platform && path.includes("/") || path.startsWith(".");
697
- if (resolvePaths) path = (0, path_1.resolve)(path);
698
- if (normalizePath || pathNeedsCleaning) path = cleanPath(path);
699
- if ("." === path) return "";
700
- const needsSeperator = path[path.length - 1] !== pathSeparator;
701
- return convertSlashes(needsSeperator ? path + pathSeparator : path, pathSeparator);
702
- }
703
- exports.normalizePath = normalizePath;
704
- },
705
10
  "./node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js": function(module) {
706
11
  let p = process || {}, argv = p.argv || [], env = p.env || {};
707
12
  let isColorSupported = !(!!env.NO_COLOR || argv.includes("--no-color")) && (!!env.FORCE_COLOR || argv.includes("--color") || "win32" === p.platform || (p.stdout || {}).isTTY && "dumb" !== env.TERM || !!env.CI);
@@ -768,9 +73,9 @@ var __webpack_modules__ = {
768
73
  module.exports = createColors();
769
74
  module.exports.createColors = createColors;
770
75
  },
771
- "./node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/index.js": function(module, __unused_webpack_exports, __webpack_require__) {
772
- const pico = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/lib/picomatch.js");
773
- const utils = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/lib/utils.js");
76
+ "./node_modules/.pnpm/picomatch@4.0.3/node_modules/picomatch/index.js": function(module, __unused_webpack_exports, __webpack_require__) {
77
+ const pico = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.3/node_modules/picomatch/lib/picomatch.js");
78
+ const utils = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.3/node_modules/picomatch/lib/utils.js");
774
79
  function picomatch(glob, options, returnState = false) {
775
80
  if (options && (null === options.windows || void 0 === options.windows)) options = {
776
81
  ...options,
@@ -781,7 +86,7 @@ var __webpack_modules__ = {
781
86
  Object.assign(picomatch, pico);
782
87
  module.exports = picomatch;
783
88
  },
784
- "./node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/lib/constants.js": function(module) {
89
+ "./node_modules/.pnpm/picomatch@4.0.3/node_modules/picomatch/lib/constants.js": function(module) {
785
90
  const WIN_SLASH = '\\\\/';
786
91
  const WIN_NO_SLASH = `[^${WIN_SLASH}]`;
787
92
  const DOT_LITERAL = '\\.';
@@ -859,6 +164,7 @@ var __webpack_modules__ = {
859
164
  REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g,
860
165
  REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g,
861
166
  REPLACEMENTS: {
167
+ __proto__: null,
862
168
  '***': '*',
863
169
  '**/**': '**',
864
170
  '**/**/**': '**'
@@ -940,9 +246,9 @@ var __webpack_modules__ = {
940
246
  }
941
247
  };
942
248
  },
943
- "./node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/lib/parse.js": function(module, __unused_webpack_exports, __webpack_require__) {
944
- const constants = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/lib/constants.js");
945
- const utils = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/lib/utils.js");
249
+ "./node_modules/.pnpm/picomatch@4.0.3/node_modules/picomatch/lib/parse.js": function(module, __unused_webpack_exports, __webpack_require__) {
250
+ const constants = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.3/node_modules/picomatch/lib/constants.js");
251
+ const utils = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.3/node_modules/picomatch/lib/utils.js");
946
252
  const { MAX_LENGTH, POSIX_REGEX_SOURCE, REGEX_NON_SPECIAL_CHARS, REGEX_SPECIAL_CHARS_BACKREF, REPLACEMENTS } = constants;
947
253
  const expandRange = (args, options)=>{
948
254
  if ('function' == typeof options.expandRange) return options.expandRange(...args, options);
@@ -1728,11 +1034,11 @@ var __webpack_modules__ = {
1728
1034
  };
1729
1035
  module.exports = parse;
1730
1036
  },
1731
- "./node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/lib/picomatch.js": function(module, __unused_webpack_exports, __webpack_require__) {
1732
- const scan = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/lib/scan.js");
1733
- const parse = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/lib/parse.js");
1734
- const utils = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/lib/utils.js");
1735
- const constants = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/lib/constants.js");
1037
+ "./node_modules/.pnpm/picomatch@4.0.3/node_modules/picomatch/lib/picomatch.js": function(module, __unused_webpack_exports, __webpack_require__) {
1038
+ const scan = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.3/node_modules/picomatch/lib/scan.js");
1039
+ const parse = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.3/node_modules/picomatch/lib/parse.js");
1040
+ const utils = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.3/node_modules/picomatch/lib/utils.js");
1041
+ const constants = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.3/node_modules/picomatch/lib/constants.js");
1736
1042
  const isObject = (val)=>val && 'object' == typeof val && !Array.isArray(val);
1737
1043
  const picomatch = (glob, options, returnState = false)=>{
1738
1044
  if (Array.isArray(glob)) {
@@ -1861,9 +1167,9 @@ var __webpack_modules__ = {
1861
1167
  picomatch.constants = constants;
1862
1168
  module.exports = picomatch;
1863
1169
  },
1864
- "./node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/lib/scan.js": function(module, __unused_webpack_exports, __webpack_require__) {
1865
- const utils = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/lib/utils.js");
1866
- const { CHAR_ASTERISK, CHAR_AT, CHAR_BACKWARD_SLASH, CHAR_COMMA, CHAR_DOT, CHAR_EXCLAMATION_MARK, CHAR_FORWARD_SLASH, CHAR_LEFT_CURLY_BRACE, CHAR_LEFT_PARENTHESES, CHAR_LEFT_SQUARE_BRACKET, CHAR_PLUS, CHAR_QUESTION_MARK, CHAR_RIGHT_CURLY_BRACE, CHAR_RIGHT_PARENTHESES, CHAR_RIGHT_SQUARE_BRACKET } = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/lib/constants.js");
1170
+ "./node_modules/.pnpm/picomatch@4.0.3/node_modules/picomatch/lib/scan.js": function(module, __unused_webpack_exports, __webpack_require__) {
1171
+ const utils = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.3/node_modules/picomatch/lib/utils.js");
1172
+ const { CHAR_ASTERISK, CHAR_AT, CHAR_BACKWARD_SLASH, CHAR_COMMA, CHAR_DOT, CHAR_EXCLAMATION_MARK, CHAR_FORWARD_SLASH, CHAR_LEFT_CURLY_BRACE, CHAR_LEFT_PARENTHESES, CHAR_LEFT_SQUARE_BRACKET, CHAR_PLUS, CHAR_QUESTION_MARK, CHAR_RIGHT_CURLY_BRACE, CHAR_RIGHT_PARENTHESES, CHAR_RIGHT_SQUARE_BRACKET } = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.3/node_modules/picomatch/lib/constants.js");
1867
1173
  const isPathSeparator = (code)=>code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;
1868
1174
  const depth = (token)=>{
1869
1175
  if (true !== token.isPrefix) token.depth = token.isGlobstar ? 1 / 0 : 1;
@@ -2129,8 +1435,8 @@ var __webpack_modules__ = {
2129
1435
  };
2130
1436
  module.exports = scan;
2131
1437
  },
2132
- "./node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/lib/utils.js": function(__unused_webpack_module, exports, __webpack_require__) {
2133
- const { REGEX_BACKSLASH, REGEX_REMOVE_BACKSLASH, REGEX_SPECIAL_CHARS, REGEX_SPECIAL_CHARS_GLOBAL } = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/lib/constants.js");
1438
+ "./node_modules/.pnpm/picomatch@4.0.3/node_modules/picomatch/lib/utils.js": function(__unused_webpack_module, exports, __webpack_require__) {
1439
+ const { REGEX_BACKSLASH, REGEX_REMOVE_BACKSLASH, REGEX_SPECIAL_CHARS, REGEX_SPECIAL_CHARS_GLOBAL } = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.3/node_modules/picomatch/lib/constants.js");
2134
1440
  exports.isObject = (val)=>null !== val && 'object' == typeof val && !Array.isArray(val);
2135
1441
  exports.hasRegexChars = (str)=>REGEX_SPECIAL_CHARS.test(str);
2136
1442
  exports.isRegexChar = (str)=>1 === str.length && exports.hasRegexChars(str);
@@ -2172,12 +1478,6 @@ var __webpack_modules__ = {
2172
1478
  if ('' === last) return segs[segs.length - 2];
2173
1479
  return last;
2174
1480
  };
2175
- },
2176
- fs: function(module) {
2177
- module.exports = __WEBPACK_EXTERNAL_MODULE_fs__;
2178
- },
2179
- path: function(module) {
2180
- module.exports = __WEBPACK_EXTERNAL_MODULE_path__;
2181
1481
  }
2182
1482
  };
2183
1483
  var __webpack_module_cache__ = {};
@@ -2187,7 +1487,7 @@ function __webpack_require__(moduleId) {
2187
1487
  var module = __webpack_module_cache__[moduleId] = {
2188
1488
  exports: {}
2189
1489
  };
2190
- __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
1490
+ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
2191
1491
  return module.exports;
2192
1492
  }
2193
1493
  (()=>{
@@ -2281,6 +1581,8 @@ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
2281
1581
  if ('TEAMCITY_VERSION' in env) return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
2282
1582
  if ('truecolor' === env.COLORTERM) return 3;
2283
1583
  if ('xterm-kitty' === env.TERM) return 3;
1584
+ if ('xterm-ghostty' === env.TERM) return 3;
1585
+ if ('wezterm' === env.TERM) return 3;
2284
1586
  if ('TERM_PROGRAM' in env) {
2285
1587
  const version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);
2286
1588
  switch(env.TERM_PROGRAM){
@@ -2312,9 +1614,10 @@ const supportsColor = {
2312
1614
  };
2313
1615
  const supports_color = supportsColor;
2314
1616
  const colorLevel = supports_color.stdout ? supports_color.stdout.level : 0;
2315
- let errorStackRegExp = /at\s.*:\d+:\d+[\s\)]*$/;
2316
- let anonymousErrorStackRegExp = /at\s.*\(<anonymous>\)$/;
2317
- let isErrorStackMessage = (message)=>errorStackRegExp.test(message) || anonymousErrorStackRegExp.test(message);
1617
+ let errorStackRegExp = /at [^\r\n]{0,200}:\d+:\d+[\s\)]*$/;
1618
+ let anonymousErrorStackRegExp = /at [^\r\n]{0,200}\(<anonymous>\)$/;
1619
+ let indexErrorStackRegExp = /at [^\r\n]{0,200}\(index\s\d+\)$/;
1620
+ let isErrorStackMessage = (message)=>errorStackRegExp.test(message) || anonymousErrorStackRegExp.test(message) || indexErrorStackRegExp.test(message);
2318
1621
  let formatter = (open, close, replace = open)=>colorLevel >= 2 ? (input)=>{
2319
1622
  let string = '' + input;
2320
1623
  let index = string.indexOf(close, open.length);
@@ -2415,28 +1718,40 @@ let LOG_TYPES = {
2415
1718
  color: magenta
2416
1719
  }
2417
1720
  };
1721
+ const normalizeErrorMessage = (err)=>{
1722
+ if (err.stack) {
1723
+ let [name, ...rest] = err.stack.split('\n');
1724
+ if (name.startsWith('Error: ')) name = name.slice(7);
1725
+ return `${name}\n${gray(rest.join('\n'))}`;
1726
+ }
1727
+ return err.message;
1728
+ };
2418
1729
  let createLogger = (options = {})=>{
2419
1730
  let maxLevel = options.level || 'info';
2420
1731
  let log = (type, message, ...args)=>{
2421
- if (LOG_LEVEL[LOG_TYPES[type].level] > LOG_LEVEL[maxLevel]) return;
2422
- if (null == message) return console.log();
2423
1732
  let logType = LOG_TYPES[type];
1733
+ const { level } = logType;
1734
+ if (LOG_LEVEL[level] > LOG_LEVEL[maxLevel]) return;
1735
+ if (null == message) return console.log();
2424
1736
  let label = '';
2425
1737
  let text = '';
2426
1738
  if ('label' in logType) {
2427
1739
  label = (logType.label || '').padEnd(7);
2428
1740
  label = bold(logType.color ? logType.color(label) : label);
2429
1741
  }
2430
- if (message instanceof Error) if (message.stack) {
2431
- let [name, ...rest] = message.stack.split('\n');
2432
- if (name.startsWith('Error: ')) name = name.slice(7);
2433
- text = `${name}\n${gray(rest.join('\n'))}`;
2434
- } else text = message.message;
2435
- else if ('error' === logType.level && 'string' == typeof message) {
1742
+ if (message instanceof Error) {
1743
+ text += normalizeErrorMessage(message);
1744
+ const { cause } = message;
1745
+ if (cause) {
1746
+ text += yellow('\n [cause]: ');
1747
+ text += cause instanceof Error ? normalizeErrorMessage(cause) : String(cause);
1748
+ }
1749
+ } else if ('error' === level && 'string' == typeof message) {
2436
1750
  let lines = message.split('\n');
2437
1751
  text = lines.map((line)=>isErrorStackMessage(line) ? gray(line) : line).join('\n');
2438
1752
  } else text = `${message}`;
2439
- console.log(label.length ? `${label} ${text}` : text, ...args);
1753
+ const method = 'error' === level || 'warn' === level ? level : 'log';
1754
+ console[method](label.length ? `${label} ${text}` : text, ...args);
2440
1755
  };
2441
1756
  let logger = {
2442
1757
  greet: (message)=>log('log', gradient(message))
@@ -2456,37 +1771,523 @@ let createLogger = (options = {})=>{
2456
1771
  return logger;
2457
1772
  };
2458
1773
  let src_logger = createLogger();
2459
- var external_path_ = __webpack_require__("path");
2460
- var dist = __webpack_require__("./node_modules/.pnpm/fdir@6.4.6_picomatch@4.0.2/node_modules/fdir/dist/index.js");
2461
- var picomatch = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/index.js");
1774
+ var __require = /* @__PURE__ */ createRequire(import.meta.url);
1775
+ function cleanPath(path) {
1776
+ let normalized = normalize(path);
1777
+ if (normalized.length > 1 && normalized[normalized.length - 1] === sep) normalized = normalized.substring(0, normalized.length - 1);
1778
+ return normalized;
1779
+ }
1780
+ const SLASHES_REGEX = /[\\/]/g;
1781
+ function convertSlashes(path, separator) {
1782
+ return path.replace(SLASHES_REGEX, separator);
1783
+ }
1784
+ const WINDOWS_ROOT_DIR_REGEX = /^[a-z]:[\\/]$/i;
1785
+ function isRootDirectory(path) {
1786
+ return "/" === path || WINDOWS_ROOT_DIR_REGEX.test(path);
1787
+ }
1788
+ function normalizePath(path, options) {
1789
+ const { resolvePaths, normalizePath: normalizePath$1, pathSeparator } = options;
1790
+ const pathNeedsCleaning = "win32" === process.platform && path.includes("/") || path.startsWith(".");
1791
+ if (resolvePaths) path = resolve(path);
1792
+ if (normalizePath$1 || pathNeedsCleaning) path = cleanPath(path);
1793
+ if ("." === path) return "";
1794
+ const needsSeperator = path[path.length - 1] !== pathSeparator;
1795
+ return convertSlashes(needsSeperator ? path + pathSeparator : path, pathSeparator);
1796
+ }
1797
+ function joinPathWithBasePath(filename, directoryPath) {
1798
+ return directoryPath + filename;
1799
+ }
1800
+ function joinPathWithRelativePath(root, options) {
1801
+ return function(filename, directoryPath) {
1802
+ const sameRoot = directoryPath.startsWith(root);
1803
+ if (sameRoot) return directoryPath.slice(root.length) + filename;
1804
+ return convertSlashes(external_path_relative(root, directoryPath), options.pathSeparator) + options.pathSeparator + filename;
1805
+ };
1806
+ }
1807
+ function joinPath(filename) {
1808
+ return filename;
1809
+ }
1810
+ function joinDirectoryPath(filename, directoryPath, separator) {
1811
+ return directoryPath + filename + separator;
1812
+ }
1813
+ function build$7(root, options) {
1814
+ const { relativePaths, includeBasePath } = options;
1815
+ return relativePaths && root ? joinPathWithRelativePath(root, options) : includeBasePath ? joinPathWithBasePath : joinPath;
1816
+ }
1817
+ function pushDirectoryWithRelativePath(root) {
1818
+ return function(directoryPath, paths) {
1819
+ paths.push(directoryPath.substring(root.length) || ".");
1820
+ };
1821
+ }
1822
+ function pushDirectoryFilterWithRelativePath(root) {
1823
+ return function(directoryPath, paths, filters) {
1824
+ const relativePath = directoryPath.substring(root.length) || ".";
1825
+ if (filters.every((filter)=>filter(relativePath, true))) paths.push(relativePath);
1826
+ };
1827
+ }
1828
+ const pushDirectory = (directoryPath, paths)=>{
1829
+ paths.push(directoryPath || ".");
1830
+ };
1831
+ const pushDirectoryFilter = (directoryPath, paths, filters)=>{
1832
+ const path = directoryPath || ".";
1833
+ if (filters.every((filter)=>filter(path, true))) paths.push(path);
1834
+ };
1835
+ const empty$2 = ()=>{};
1836
+ function build$6(root, options) {
1837
+ const { includeDirs, filters, relativePaths } = options;
1838
+ if (!includeDirs) return empty$2;
1839
+ if (relativePaths) return filters && filters.length ? pushDirectoryFilterWithRelativePath(root) : pushDirectoryWithRelativePath(root);
1840
+ return filters && filters.length ? pushDirectoryFilter : pushDirectory;
1841
+ }
1842
+ const pushFileFilterAndCount = (filename, _paths, counts, filters)=>{
1843
+ if (filters.every((filter)=>filter(filename, false))) counts.files++;
1844
+ };
1845
+ const pushFileFilter = (filename, paths, _counts, filters)=>{
1846
+ if (filters.every((filter)=>filter(filename, false))) paths.push(filename);
1847
+ };
1848
+ const pushFileCount = (_filename, _paths, counts, _filters)=>{
1849
+ counts.files++;
1850
+ };
1851
+ const pushFile = (filename, paths)=>{
1852
+ paths.push(filename);
1853
+ };
1854
+ const empty$1 = ()=>{};
1855
+ function build$5(options) {
1856
+ const { excludeFiles, filters, onlyCounts } = options;
1857
+ if (excludeFiles) return empty$1;
1858
+ if (filters && filters.length) return onlyCounts ? pushFileFilterAndCount : pushFileFilter;
1859
+ if (onlyCounts) return pushFileCount;
1860
+ return pushFile;
1861
+ }
1862
+ const getArray = (paths)=>paths;
1863
+ const getArrayGroup = ()=>[
1864
+ ""
1865
+ ].slice(0, 0);
1866
+ function build$4(options) {
1867
+ return options.group ? getArrayGroup : getArray;
1868
+ }
1869
+ const groupFiles = (groups, directory, files)=>{
1870
+ groups.push({
1871
+ directory,
1872
+ files,
1873
+ dir: directory
1874
+ });
1875
+ };
1876
+ const empty = ()=>{};
1877
+ function build$3(options) {
1878
+ return options.group ? groupFiles : empty;
1879
+ }
1880
+ const resolveSymlinksAsync = function(path, state, callback$1) {
1881
+ const { queue, fs, options: { suppressErrors } } = state;
1882
+ queue.enqueue();
1883
+ fs.realpath(path, (error, resolvedPath)=>{
1884
+ if (error) return queue.dequeue(suppressErrors ? null : error, state);
1885
+ fs.stat(resolvedPath, (error$1, stat)=>{
1886
+ if (error$1) return queue.dequeue(suppressErrors ? null : error$1, state);
1887
+ if (stat.isDirectory() && isRecursive(path, resolvedPath, state)) return queue.dequeue(null, state);
1888
+ callback$1(stat, resolvedPath);
1889
+ queue.dequeue(null, state);
1890
+ });
1891
+ });
1892
+ };
1893
+ const resolveSymlinks = function(path, state, callback$1) {
1894
+ const { queue, fs, options: { suppressErrors } } = state;
1895
+ queue.enqueue();
1896
+ try {
1897
+ const resolvedPath = fs.realpathSync(path);
1898
+ const stat = fs.statSync(resolvedPath);
1899
+ if (stat.isDirectory() && isRecursive(path, resolvedPath, state)) return;
1900
+ callback$1(stat, resolvedPath);
1901
+ } catch (e) {
1902
+ if (!suppressErrors) throw e;
1903
+ }
1904
+ };
1905
+ function build$2(options, isSynchronous) {
1906
+ if (!options.resolveSymlinks || options.excludeSymlinks) return null;
1907
+ return isSynchronous ? resolveSymlinks : resolveSymlinksAsync;
1908
+ }
1909
+ function isRecursive(path, resolved, state) {
1910
+ if (state.options.useRealPaths) return isRecursiveUsingRealPaths(resolved, state);
1911
+ let parent = dirname(path);
1912
+ let depth = 1;
1913
+ while(parent !== state.root && depth < 2){
1914
+ const resolvedPath = state.symlinks.get(parent);
1915
+ const isSameRoot = !!resolvedPath && (resolvedPath === resolved || resolvedPath.startsWith(resolved) || resolved.startsWith(resolvedPath));
1916
+ if (isSameRoot) depth++;
1917
+ else parent = dirname(parent);
1918
+ }
1919
+ state.symlinks.set(path, resolved);
1920
+ return depth > 1;
1921
+ }
1922
+ function isRecursiveUsingRealPaths(resolved, state) {
1923
+ return state.visited.includes(resolved + state.options.pathSeparator);
1924
+ }
1925
+ const onlyCountsSync = (state)=>state.counts;
1926
+ const groupsSync = (state)=>state.groups;
1927
+ const defaultSync = (state)=>state.paths;
1928
+ const limitFilesSync = (state)=>state.paths.slice(0, state.options.maxFiles);
1929
+ const onlyCountsAsync = (state, error, callback$1)=>{
1930
+ report(error, callback$1, state.counts, state.options.suppressErrors);
1931
+ return null;
1932
+ };
1933
+ const defaultAsync = (state, error, callback$1)=>{
1934
+ report(error, callback$1, state.paths, state.options.suppressErrors);
1935
+ return null;
1936
+ };
1937
+ const limitFilesAsync = (state, error, callback$1)=>{
1938
+ report(error, callback$1, state.paths.slice(0, state.options.maxFiles), state.options.suppressErrors);
1939
+ return null;
1940
+ };
1941
+ const groupsAsync = (state, error, callback$1)=>{
1942
+ report(error, callback$1, state.groups, state.options.suppressErrors);
1943
+ return null;
1944
+ };
1945
+ function report(error, callback$1, output, suppressErrors) {
1946
+ callback$1(error && !suppressErrors ? error : null, output);
1947
+ }
1948
+ function build$1(options, isSynchronous) {
1949
+ const { onlyCounts, group, maxFiles } = options;
1950
+ if (onlyCounts) return isSynchronous ? onlyCountsSync : onlyCountsAsync;
1951
+ if (group) return isSynchronous ? groupsSync : groupsAsync;
1952
+ if (maxFiles) return isSynchronous ? limitFilesSync : limitFilesAsync;
1953
+ return isSynchronous ? defaultSync : defaultAsync;
1954
+ }
1955
+ const readdirOpts = {
1956
+ withFileTypes: true
1957
+ };
1958
+ const walkAsync = (state, crawlPath, directoryPath, currentDepth, callback$1)=>{
1959
+ state.queue.enqueue();
1960
+ if (currentDepth < 0) return state.queue.dequeue(null, state);
1961
+ const { fs } = state;
1962
+ state.visited.push(crawlPath);
1963
+ state.counts.directories++;
1964
+ fs.readdir(crawlPath || ".", readdirOpts, (error, entries = [])=>{
1965
+ callback$1(entries, directoryPath, currentDepth);
1966
+ state.queue.dequeue(state.options.suppressErrors ? null : error, state);
1967
+ });
1968
+ };
1969
+ const walkSync = (state, crawlPath, directoryPath, currentDepth, callback$1)=>{
1970
+ const { fs } = state;
1971
+ if (currentDepth < 0) return;
1972
+ state.visited.push(crawlPath);
1973
+ state.counts.directories++;
1974
+ let entries = [];
1975
+ try {
1976
+ entries = fs.readdirSync(crawlPath || ".", readdirOpts);
1977
+ } catch (e) {
1978
+ if (!state.options.suppressErrors) throw e;
1979
+ }
1980
+ callback$1(entries, directoryPath, currentDepth);
1981
+ };
1982
+ function build(isSynchronous) {
1983
+ return isSynchronous ? walkSync : walkAsync;
1984
+ }
1985
+ var Queue = class {
1986
+ count = 0;
1987
+ constructor(onQueueEmpty){
1988
+ this.onQueueEmpty = onQueueEmpty;
1989
+ }
1990
+ enqueue() {
1991
+ this.count++;
1992
+ return this.count;
1993
+ }
1994
+ dequeue(error, output) {
1995
+ if (this.onQueueEmpty && (--this.count <= 0 || error)) {
1996
+ this.onQueueEmpty(error, output);
1997
+ if (error) {
1998
+ output.controller.abort();
1999
+ this.onQueueEmpty = void 0;
2000
+ }
2001
+ }
2002
+ }
2003
+ };
2004
+ var Counter = class {
2005
+ _files = 0;
2006
+ _directories = 0;
2007
+ set files(num) {
2008
+ this._files = num;
2009
+ }
2010
+ get files() {
2011
+ return this._files;
2012
+ }
2013
+ set directories(num) {
2014
+ this._directories = num;
2015
+ }
2016
+ get directories() {
2017
+ return this._directories;
2018
+ }
2019
+ get dirs() {
2020
+ return this._directories;
2021
+ }
2022
+ };
2023
+ var Aborter = class {
2024
+ aborted = false;
2025
+ abort() {
2026
+ this.aborted = true;
2027
+ }
2028
+ };
2029
+ var Walker = class {
2030
+ root;
2031
+ isSynchronous;
2032
+ state;
2033
+ joinPath;
2034
+ pushDirectory;
2035
+ pushFile;
2036
+ getArray;
2037
+ groupFiles;
2038
+ resolveSymlink;
2039
+ walkDirectory;
2040
+ callbackInvoker;
2041
+ constructor(root, options, callback$1){
2042
+ this.isSynchronous = !callback$1;
2043
+ this.callbackInvoker = build$1(options, this.isSynchronous);
2044
+ this.root = normalizePath(root, options);
2045
+ this.state = {
2046
+ root: isRootDirectory(this.root) ? this.root : this.root.slice(0, -1),
2047
+ paths: [
2048
+ ""
2049
+ ].slice(0, 0),
2050
+ groups: [],
2051
+ counts: new Counter(),
2052
+ options,
2053
+ queue: new Queue((error, state)=>this.callbackInvoker(state, error, callback$1)),
2054
+ symlinks: /* @__PURE__ */ new Map(),
2055
+ visited: [
2056
+ ""
2057
+ ].slice(0, 0),
2058
+ controller: new Aborter(),
2059
+ fs: options.fs || __rspack_external_fs
2060
+ };
2061
+ this.joinPath = build$7(this.root, options);
2062
+ this.pushDirectory = build$6(this.root, options);
2063
+ this.pushFile = build$5(options);
2064
+ this.getArray = build$4(options);
2065
+ this.groupFiles = build$3(options);
2066
+ this.resolveSymlink = build$2(options, this.isSynchronous);
2067
+ this.walkDirectory = build(this.isSynchronous);
2068
+ }
2069
+ start() {
2070
+ this.pushDirectory(this.root, this.state.paths, this.state.options.filters);
2071
+ this.walkDirectory(this.state, this.root, this.root, this.state.options.maxDepth, this.walk);
2072
+ return this.isSynchronous ? this.callbackInvoker(this.state, null) : null;
2073
+ }
2074
+ walk = (entries, directoryPath, depth)=>{
2075
+ const { paths, options: { filters, resolveSymlinks: resolveSymlinks$1, excludeSymlinks, exclude, maxFiles, signal, useRealPaths, pathSeparator }, controller } = this.state;
2076
+ if (controller.aborted || signal && signal.aborted || maxFiles && paths.length > maxFiles) return;
2077
+ const files = this.getArray(this.state.paths);
2078
+ for(let i = 0; i < entries.length; ++i){
2079
+ const entry = entries[i];
2080
+ if (entry.isFile() || entry.isSymbolicLink() && !resolveSymlinks$1 && !excludeSymlinks) {
2081
+ const filename = this.joinPath(entry.name, directoryPath);
2082
+ this.pushFile(filename, files, this.state.counts, filters);
2083
+ } else if (entry.isDirectory()) {
2084
+ let path = joinDirectoryPath(entry.name, directoryPath, this.state.options.pathSeparator);
2085
+ if (exclude && exclude(entry.name, path)) continue;
2086
+ this.pushDirectory(path, paths, filters);
2087
+ this.walkDirectory(this.state, path, path, depth - 1, this.walk);
2088
+ } else if (this.resolveSymlink && entry.isSymbolicLink()) {
2089
+ let path = joinPathWithBasePath(entry.name, directoryPath);
2090
+ this.resolveSymlink(path, this.state, (stat, resolvedPath)=>{
2091
+ if (stat.isDirectory()) {
2092
+ resolvedPath = normalizePath(resolvedPath, this.state.options);
2093
+ if (exclude && exclude(entry.name, useRealPaths ? resolvedPath : path + pathSeparator)) return;
2094
+ this.walkDirectory(this.state, resolvedPath, useRealPaths ? resolvedPath : path + pathSeparator, depth - 1, this.walk);
2095
+ } else {
2096
+ resolvedPath = useRealPaths ? resolvedPath : path;
2097
+ const filename = basename(resolvedPath);
2098
+ const directoryPath$1 = normalizePath(dirname(resolvedPath), this.state.options);
2099
+ resolvedPath = this.joinPath(filename, directoryPath$1);
2100
+ this.pushFile(resolvedPath, files, this.state.counts, filters);
2101
+ }
2102
+ });
2103
+ }
2104
+ }
2105
+ this.groupFiles(this.state.groups, directoryPath, files);
2106
+ };
2107
+ };
2108
+ function promise(root, options) {
2109
+ return new Promise((resolve$1, reject)=>{
2110
+ callback(root, options, (err, output)=>{
2111
+ if (err) return reject(err);
2112
+ resolve$1(output);
2113
+ });
2114
+ });
2115
+ }
2116
+ function callback(root, options, callback$1) {
2117
+ let walker = new Walker(root, options, callback$1);
2118
+ walker.start();
2119
+ }
2120
+ function sync(root, options) {
2121
+ const walker = new Walker(root, options);
2122
+ return walker.start();
2123
+ }
2124
+ var APIBuilder = class {
2125
+ constructor(root, options){
2126
+ this.root = root;
2127
+ this.options = options;
2128
+ }
2129
+ withPromise() {
2130
+ return promise(this.root, this.options);
2131
+ }
2132
+ withCallback(cb) {
2133
+ callback(this.root, this.options, cb);
2134
+ }
2135
+ sync() {
2136
+ return sync(this.root, this.options);
2137
+ }
2138
+ };
2139
+ let pm = null;
2140
+ try {
2141
+ __require.resolve("picomatch");
2142
+ pm = __require("picomatch");
2143
+ } catch {}
2144
+ var Builder = class {
2145
+ globCache = {};
2146
+ options = {
2147
+ maxDepth: 1 / 0,
2148
+ suppressErrors: true,
2149
+ pathSeparator: sep,
2150
+ filters: []
2151
+ };
2152
+ globFunction;
2153
+ constructor(options){
2154
+ this.options = {
2155
+ ...this.options,
2156
+ ...options
2157
+ };
2158
+ this.globFunction = this.options.globFunction;
2159
+ }
2160
+ group() {
2161
+ this.options.group = true;
2162
+ return this;
2163
+ }
2164
+ withPathSeparator(separator) {
2165
+ this.options.pathSeparator = separator;
2166
+ return this;
2167
+ }
2168
+ withBasePath() {
2169
+ this.options.includeBasePath = true;
2170
+ return this;
2171
+ }
2172
+ withRelativePaths() {
2173
+ this.options.relativePaths = true;
2174
+ return this;
2175
+ }
2176
+ withDirs() {
2177
+ this.options.includeDirs = true;
2178
+ return this;
2179
+ }
2180
+ withMaxDepth(depth) {
2181
+ this.options.maxDepth = depth;
2182
+ return this;
2183
+ }
2184
+ withMaxFiles(limit) {
2185
+ this.options.maxFiles = limit;
2186
+ return this;
2187
+ }
2188
+ withFullPaths() {
2189
+ this.options.resolvePaths = true;
2190
+ this.options.includeBasePath = true;
2191
+ return this;
2192
+ }
2193
+ withErrors() {
2194
+ this.options.suppressErrors = false;
2195
+ return this;
2196
+ }
2197
+ withSymlinks({ resolvePaths = true } = {}) {
2198
+ this.options.resolveSymlinks = true;
2199
+ this.options.useRealPaths = resolvePaths;
2200
+ return this.withFullPaths();
2201
+ }
2202
+ withAbortSignal(signal) {
2203
+ this.options.signal = signal;
2204
+ return this;
2205
+ }
2206
+ normalize() {
2207
+ this.options.normalizePath = true;
2208
+ return this;
2209
+ }
2210
+ filter(predicate) {
2211
+ this.options.filters.push(predicate);
2212
+ return this;
2213
+ }
2214
+ onlyDirs() {
2215
+ this.options.excludeFiles = true;
2216
+ this.options.includeDirs = true;
2217
+ return this;
2218
+ }
2219
+ exclude(predicate) {
2220
+ this.options.exclude = predicate;
2221
+ return this;
2222
+ }
2223
+ onlyCounts() {
2224
+ this.options.onlyCounts = true;
2225
+ return this;
2226
+ }
2227
+ crawl(root) {
2228
+ return new APIBuilder(root || ".", this.options);
2229
+ }
2230
+ withGlobFunction(fn) {
2231
+ this.globFunction = fn;
2232
+ return this;
2233
+ }
2234
+ crawlWithOptions(root, options) {
2235
+ this.options = {
2236
+ ...this.options,
2237
+ ...options
2238
+ };
2239
+ return new APIBuilder(root || ".", this.options);
2240
+ }
2241
+ glob(...patterns) {
2242
+ if (this.globFunction) return this.globWithOptions(patterns);
2243
+ return this.globWithOptions(patterns, {
2244
+ dot: true
2245
+ });
2246
+ }
2247
+ globWithOptions(patterns, ...options) {
2248
+ const globFn = this.globFunction || pm;
2249
+ if (!globFn) throw new Error("Please specify a glob function to use glob matching.");
2250
+ var isMatch = this.globCache[patterns.join("\0")];
2251
+ if (!isMatch) {
2252
+ isMatch = globFn(patterns, ...options);
2253
+ this.globCache[patterns.join("\0")] = isMatch;
2254
+ }
2255
+ this.options.filters.push((path)=>isMatch(path));
2256
+ return this;
2257
+ }
2258
+ };
2259
+ var picomatch = __webpack_require__("./node_modules/.pnpm/picomatch@4.0.3/node_modules/picomatch/index.js");
2260
+ const isReadonlyArray = Array.isArray;
2261
+ const isWin = "win32" === process.platform;
2462
2262
  const ONLY_PARENT_DIRECTORIES = /^(\/?\.\.)+$/;
2463
- function getPartialMatcher(patterns, options) {
2263
+ function getPartialMatcher(patterns, options = {}) {
2464
2264
  const patternsCount = patterns.length;
2465
2265
  const patternsParts = Array(patternsCount);
2466
- const regexes = Array(patternsCount);
2266
+ const matchers = Array(patternsCount);
2267
+ const globstarEnabled = !options.noglobstar;
2467
2268
  for(let i = 0; i < patternsCount; i++){
2468
2269
  const parts = splitPattern(patterns[i]);
2469
2270
  patternsParts[i] = parts;
2470
2271
  const partsCount = parts.length;
2471
- const partRegexes = Array(partsCount);
2472
- for(let j = 0; j < partsCount; j++)partRegexes[j] = picomatch.makeRe(parts[j], options);
2473
- regexes[i] = partRegexes;
2272
+ const partMatchers = Array(partsCount);
2273
+ for(let j = 0; j < partsCount; j++)partMatchers[j] = picomatch(parts[j], options);
2274
+ matchers[i] = partMatchers;
2474
2275
  }
2475
2276
  return (input)=>{
2476
2277
  const inputParts = input.split("/");
2477
2278
  if (".." === inputParts[0] && ONLY_PARENT_DIRECTORIES.test(input)) return true;
2478
2279
  for(let i = 0; i < patterns.length; i++){
2479
2280
  const patternParts = patternsParts[i];
2480
- const regex = regexes[i];
2281
+ const matcher = matchers[i];
2481
2282
  const inputPatternCount = inputParts.length;
2482
2283
  const minParts = Math.min(inputPatternCount, patternParts.length);
2483
2284
  let j = 0;
2484
2285
  while(j < minParts){
2485
2286
  const part = patternParts[j];
2486
2287
  if (part.includes("/")) return true;
2487
- const match = regex[j].test(inputParts[j]);
2288
+ const match = matcher[j](inputParts[j]);
2488
2289
  if (!match) break;
2489
- if ("**" === part) return true;
2290
+ if (globstarEnabled && "**" === part) return true;
2490
2291
  j++;
2491
2292
  }
2492
2293
  if (j === inputPatternCount) return true;
@@ -2494,6 +2295,36 @@ function getPartialMatcher(patterns, options) {
2494
2295
  return false;
2495
2296
  };
2496
2297
  }
2298
+ const WIN32_ROOT_DIR = /^[A-Z]:\/$/i;
2299
+ const isRoot = isWin ? (p)=>WIN32_ROOT_DIR.test(p) : (p)=>"/" === p;
2300
+ function buildFormat(cwd, root, absolute) {
2301
+ if (cwd === root || root.startsWith(`${cwd}/`)) {
2302
+ if (absolute) {
2303
+ const start = isRoot(cwd) ? cwd.length : cwd.length + 1;
2304
+ return (p, isDir)=>p.slice(start, isDir ? -1 : void 0) || ".";
2305
+ }
2306
+ const prefix = root.slice(cwd.length + 1);
2307
+ if (prefix) return (p, isDir)=>{
2308
+ if ("." === p) return prefix;
2309
+ const result = `${prefix}/${p}`;
2310
+ return isDir ? result.slice(0, -1) : result;
2311
+ };
2312
+ return (p, isDir)=>isDir && "." !== p ? p.slice(0, -1) : p;
2313
+ }
2314
+ if (absolute) return (p)=>posix.relative(cwd, p) || ".";
2315
+ return (p)=>posix.relative(cwd, `${root}/${p}`) || ".";
2316
+ }
2317
+ function buildRelative(cwd, root) {
2318
+ if (root.startsWith(`${cwd}/`)) {
2319
+ const prefix = root.slice(cwd.length + 1);
2320
+ return (p)=>`${prefix}/${p}`;
2321
+ }
2322
+ return (p)=>{
2323
+ const result = posix.relative(cwd, `${root}/${p}`);
2324
+ if (p.endsWith("/") && "" !== result) return `${result}/`;
2325
+ return result || ".";
2326
+ };
2327
+ }
2497
2328
  const splitPatternOptions = {
2498
2329
  parts: true
2499
2330
  };
@@ -2504,7 +2335,6 @@ function splitPattern(path$1) {
2504
2335
  path$1
2505
2336
  ];
2506
2337
  }
2507
- const isWin = "win32" === process.platform;
2508
2338
  const POSIX_UNESCAPED_GLOB_SYMBOLS = /(?<!\\)([()[\]{}*?|]|^!|[!+@](?=\()|\\(?![()[\]{}!*+?@|]))/g;
2509
2339
  const WIN32_UNESCAPED_GLOB_SYMBOLS = /(?<!\\)([()[\]{}]|^!|[!+@](?=\())/g;
2510
2340
  const escapePosixPath = (path$1)=>path$1.replace(POSIX_UNESCAPED_GLOB_SYMBOLS, "\\$&");
@@ -2516,7 +2346,7 @@ function isDynamicPattern(pattern, options) {
2516
2346
  return scan.isGlob || scan.negated;
2517
2347
  }
2518
2348
  function dist_log(...tasks) {
2519
- console.log(`[tinyglobby ${new Date().toLocaleTimeString("es")}]`, ...tasks);
2349
+ console.log(`[tinyglobby ${/* @__PURE__ */ new Date().toLocaleTimeString("es")}]`, ...tasks);
2520
2350
  }
2521
2351
  const PARENT_DIRECTORY = /^(\/?\.\.)+/;
2522
2352
  const ESCAPING_BACKSLASHES = /\\(?=[()[\]{}!*+?@|])/g;
@@ -2526,7 +2356,7 @@ function normalizePattern(pattern, expandDirectories, cwd, props, isIgnore) {
2526
2356
  if (pattern.endsWith("/")) result = pattern.slice(0, -1);
2527
2357
  if (!result.endsWith("*") && expandDirectories) result += "/**";
2528
2358
  const escapedCwd = escapePath(cwd);
2529
- result = external_path_["default"].isAbsolute(result.replace(ESCAPING_BACKSLASHES, "")) ? external_path_.posix.relative(escapedCwd, result) : external_path_.posix.normalize(result);
2359
+ result = path_0.isAbsolute(result.replace(ESCAPING_BACKSLASHES, "")) ? posix.relative(escapedCwd, result) : posix.normalize(result);
2530
2360
  const parentDirectoryMatch = PARENT_DIRECTORY.exec(result);
2531
2361
  const parts = splitPattern(result);
2532
2362
  if (null == parentDirectoryMatch ? void 0 : parentDirectoryMatch[0]) {
@@ -2537,7 +2367,7 @@ function normalizePattern(pattern, expandDirectories, cwd, props, isIgnore) {
2537
2367
  result = result.slice(0, (n - i - 1) * 3) + result.slice((n - i) * 3 + parts[i + n].length + 1) || ".";
2538
2368
  i++;
2539
2369
  }
2540
- const potentialRoot = external_path_.posix.join(cwd, parentDirectoryMatch[0].slice(3 * i));
2370
+ const potentialRoot = posix.join(cwd, parentDirectoryMatch[0].slice(3 * i));
2541
2371
  if (!potentialRoot.startsWith(".") && props.root.length > potentialRoot.length) {
2542
2372
  props.root = potentialRoot;
2543
2373
  props.depthOffset = -n + i;
@@ -2558,17 +2388,16 @@ function normalizePattern(pattern, expandDirectories, cwd, props, isIgnore) {
2558
2388
  }
2559
2389
  props.depthOffset = newCommonPath.length;
2560
2390
  props.commonPath = newCommonPath;
2561
- props.root = newCommonPath.length > 0 ? external_path_["default"].posix.join(cwd, ...newCommonPath) : cwd;
2391
+ props.root = newCommonPath.length > 0 ? posix.join(cwd, ...newCommonPath) : cwd;
2562
2392
  }
2563
2393
  return result;
2564
2394
  }
2565
- function processPatterns({ patterns, ignore = [], expandDirectories = true }, cwd, props) {
2395
+ function processPatterns({ patterns = [
2396
+ "**/*"
2397
+ ], ignore = [], expandDirectories = true }, cwd, props) {
2566
2398
  if ("string" == typeof patterns) patterns = [
2567
2399
  patterns
2568
2400
  ];
2569
- else if (!patterns) patterns = [
2570
- "**/*"
2571
- ];
2572
2401
  if ("string" == typeof ignore) ignore = [
2573
2402
  ignore
2574
2403
  ];
@@ -2586,67 +2415,92 @@ function processPatterns({ patterns, ignore = [], expandDirectories = true }, cw
2586
2415
  ignore: ignorePatterns
2587
2416
  };
2588
2417
  }
2589
- function getRelativePath(path$1, cwd, root) {
2590
- return external_path_.posix.relative(cwd, `${root}/${path$1}`) || ".";
2591
- }
2592
- function processPath(path$1, cwd, root, isDirectory, absolute) {
2593
- const relativePath = absolute ? path$1.slice("/" === root ? 1 : root.length + 1) || "." : path$1;
2594
- if (root === cwd) return isDirectory && "." !== relativePath ? relativePath.slice(0, -1) : relativePath;
2595
- return getRelativePath(relativePath, cwd, root);
2596
- }
2597
- function formatPaths(paths, cwd, root) {
2418
+ function formatPaths(paths, relative) {
2598
2419
  for(let i = paths.length - 1; i >= 0; i--){
2599
2420
  const path$1 = paths[i];
2600
- paths[i] = getRelativePath(path$1, cwd, root) + (!path$1 || path$1.endsWith("/") ? "/" : "");
2421
+ paths[i] = relative(path$1);
2601
2422
  }
2602
2423
  return paths;
2603
2424
  }
2604
- function crawl(options, cwd, sync) {
2605
- if (process.env.TINYGLOBBY_DEBUG) options.debug = true;
2606
- if (options.debug) dist_log("globbing with options:", options, "cwd:", cwd);
2607
- if (Array.isArray(options.patterns) && 0 === options.patterns.length) return sync ? [] : Promise.resolve([]);
2425
+ function normalizeCwd(cwd) {
2426
+ if (!cwd) return process.cwd().replace(BACKSLASHES, "/");
2427
+ if (cwd instanceof URL) return fileURLToPath(cwd).replace(BACKSLASHES, "/");
2428
+ return path_0.resolve(cwd).replace(BACKSLASHES, "/");
2429
+ }
2430
+ function getCrawler(patterns, inputOptions = {}) {
2431
+ const options = process.env.TINYGLOBBY_DEBUG ? {
2432
+ ...inputOptions,
2433
+ debug: true
2434
+ } : inputOptions;
2435
+ const cwd = normalizeCwd(options.cwd);
2436
+ if (options.debug) dist_log("globbing with:", {
2437
+ patterns,
2438
+ options,
2439
+ cwd
2440
+ });
2441
+ if (Array.isArray(patterns) && 0 === patterns.length) return [
2442
+ {
2443
+ sync: ()=>[],
2444
+ withPromise: async ()=>[]
2445
+ },
2446
+ false
2447
+ ];
2608
2448
  const props = {
2609
2449
  root: cwd,
2610
2450
  commonPath: null,
2611
2451
  depthOffset: 0
2612
2452
  };
2613
- const processed = processPatterns(options, cwd, props);
2614
- const nocase = false === options.caseSensitiveMatch;
2453
+ const processed = processPatterns({
2454
+ ...options,
2455
+ patterns
2456
+ }, cwd, props);
2615
2457
  if (options.debug) dist_log("internal processing patterns:", processed);
2616
- const matcher = picomatch(processed.match, {
2458
+ const matchOptions = {
2617
2459
  dot: options.dot,
2618
- nocase,
2460
+ nobrace: false === options.braceExpansion,
2461
+ nocase: false === options.caseSensitiveMatch,
2462
+ noextglob: false === options.extglob,
2463
+ noglobstar: false === options.globstar,
2464
+ posix: true
2465
+ };
2466
+ const matcher = picomatch(processed.match, {
2467
+ ...matchOptions,
2619
2468
  ignore: processed.ignore
2620
2469
  });
2621
- const ignore = picomatch(processed.ignore, {
2622
- dot: options.dot,
2623
- nocase
2624
- });
2625
- const partialMatcher = getPartialMatcher(processed.match, {
2626
- dot: options.dot,
2627
- nocase
2628
- });
2470
+ const ignore = picomatch(processed.ignore, matchOptions);
2471
+ const partialMatcher = getPartialMatcher(processed.match, matchOptions);
2472
+ const format = buildFormat(cwd, props.root, options.absolute);
2473
+ const formatExclude = options.absolute ? format : buildFormat(cwd, props.root, true);
2629
2474
  const fdirOptions = {
2630
2475
  filters: [
2631
2476
  options.debug ? (p, isDirectory)=>{
2632
- const path$1 = processPath(p, cwd, props.root, isDirectory, options.absolute);
2477
+ const path$1 = format(p, isDirectory);
2633
2478
  const matches = matcher(path$1);
2634
2479
  if (matches) dist_log(`matched ${path$1}`);
2635
2480
  return matches;
2636
- } : (p, isDirectory)=>matcher(processPath(p, cwd, props.root, isDirectory, options.absolute))
2481
+ } : (p, isDirectory)=>matcher(format(p, isDirectory))
2637
2482
  ],
2638
2483
  exclude: options.debug ? (_, p)=>{
2639
- const relativePath = processPath(p, cwd, props.root, true, true);
2484
+ const relativePath = formatExclude(p, true);
2640
2485
  const skipped = "." !== relativePath && !partialMatcher(relativePath) || ignore(relativePath);
2641
2486
  skipped ? dist_log(`skipped ${p}`) : dist_log(`crawling ${p}`);
2642
2487
  return skipped;
2643
2488
  } : (_, p)=>{
2644
- const relativePath = processPath(p, cwd, props.root, true, true);
2489
+ const relativePath = formatExclude(p, true);
2645
2490
  return "." !== relativePath && !partialMatcher(relativePath) || ignore(relativePath);
2646
2491
  },
2492
+ fs: options.fs ? {
2493
+ readdir: options.fs.readdir || __rspack_external_fs["default"].readdir,
2494
+ readdirSync: options.fs.readdirSync || __rspack_external_fs["default"].readdirSync,
2495
+ realpath: options.fs.realpath || __rspack_external_fs["default"].realpath,
2496
+ realpathSync: options.fs.realpathSync || __rspack_external_fs["default"].realpathSync,
2497
+ stat: options.fs.stat || __rspack_external_fs["default"].stat,
2498
+ statSync: options.fs.statSync || __rspack_external_fs["default"].statSync
2499
+ } : void 0,
2647
2500
  pathSeparator: "/",
2648
2501
  relativePaths: true,
2649
- resolveSymlinks: true
2502
+ resolveSymlinks: true,
2503
+ signal: options.signal
2650
2504
  };
2651
2505
  if (void 0 !== options.deep) fdirOptions.maxDepth = Math.round(options.deep - props.depthOffset);
2652
2506
  if (options.absolute) {
@@ -2665,24 +2519,26 @@ function crawl(options, cwd, sync) {
2665
2519
  props.root = props.root.replace(BACKSLASHES, "");
2666
2520
  const root = props.root;
2667
2521
  if (options.debug) dist_log("internal properties:", props);
2668
- const api = new dist.fdir(fdirOptions).crawl(root);
2669
- if (cwd === root || options.absolute) return sync ? api.sync() : api.withPromise();
2670
- return sync ? formatPaths(api.sync(), cwd, root) : api.withPromise().then((paths)=>formatPaths(paths, cwd, root));
2522
+ const relative = cwd !== root && !options.absolute && buildRelative(cwd, props.root);
2523
+ return [
2524
+ new Builder(fdirOptions).crawl(root),
2525
+ relative
2526
+ ];
2671
2527
  }
2672
2528
  async function glob(patternsOrOptions, options) {
2673
2529
  if (patternsOrOptions && (null == options ? void 0 : options.patterns)) throw new Error("Cannot pass patterns as both an argument and an option");
2674
- const opts = Array.isArray(patternsOrOptions) || "string" == typeof patternsOrOptions ? {
2675
- ...options,
2676
- patterns: patternsOrOptions
2677
- } : patternsOrOptions;
2678
- const cwd = opts.cwd ? external_path_["default"].resolve(opts.cwd).replace(BACKSLASHES, "/") : process.cwd().replace(BACKSLASHES, "/");
2679
- return crawl(opts, cwd, false);
2530
+ const isModern = isReadonlyArray(patternsOrOptions) || "string" == typeof patternsOrOptions;
2531
+ const opts = isModern ? options : patternsOrOptions;
2532
+ const patterns = isModern ? patternsOrOptions : patternsOrOptions.patterns;
2533
+ const [crawler, relative] = getCrawler(patterns, opts);
2534
+ if (!relative) return crawler.withPromise();
2535
+ return formatPaths(await crawler.withPromise(), relative);
2680
2536
  }
2681
2537
  var abbreviates_namespaceObject = JSON.parse('{"abi":"ABI","amd":"AMD","api":"API","ast":"AST","bom":"BOM","bsd":"BSD","cdn":"CDN","cjs":"CJS","cli":"CLI","cncf":"CNCF","cors":"CORS","cpu":"CPU","crud":"CRUD","csrf":"CSRF","css":"CSS","csv":"CSV","db2":"DB2","dns":"DNS","dom":"DOM","dos":"DOS","es6":"ES6","esm":"ESM","fbi":"FBI","ftp":"FTP","ftps":"FTPS","gcc":"GCC","gcp":"GCP","glsl":"GLSL","gorm":"GORM","gpl":"GPL","gps":"GPS","gpu":"GPU","gre":"GRE","gui":"GUI","hdmi":"HDMI","hmr":"HMR","html":"HTML","http":"HTTP","https":"HTTPS","iife":"IIFE","iot":"IoT","ipc":"IPC","ipfs":"IPFS","ipmi":"IPMI","jdbc":"JDBC","jdk":"JDK","jit":"JIT","jpeg":"JPEG","jpg":"JPG","jre":"JRE","jsf":"JSF","json":"JSON","jsonp":"JSONP","jsp":"JSP","jwt":"JWT","kcp":"KCP","kde":"KDE","kpi":"KPI","lfu":"LFU","llvm":"LLVM","lru":"LRU","lts":"LTS","mdn":"MDN","mdx":"MDX","mvc":"MVC","mvp":"MVP","mvvm":"MVVM","nft":"NFT","odbc":"ODBC","ont":"ONT","orm":"ORM","oss":"OSS","pdf":"PDF","pdo":"PDO","posix":"POSIX","pwa":"PWA","qemu":"QEMU","qgis":"QGIS","quic":"QUIC","rfc":"RFC","rom":"ROM","rpc":"RPC","rss":"RSS","rss3":"RSS3","sdk":"SDK","seo":"SEO","sip":"SIP","smtp":"SMTP","sql":"SQL","sre":"SRE","ssg":"SSG","ssh":"SSH","sso":"SSO","ssr":"SSR","stp":"STP","svg":"SVG","svn":"SVN","tcp":"TCP","tls":"TLS","toml":"TOML","tsc":"TSC","udp":"UDP","umd":"UMD","uri":"URI","url":"URL","usb":"USB","vlan":"VLAN","vnc":"VNC","vpn":"VPN","vps":"VPS","wgsl":"WGSL","wlan":"WLAN","wsa":"WSA","wsl":"WSL","xhtml":"XHTML","xml":"XML","xss":"XSS","yaml":"YAML"}');
2682
- var brands_namespaceObject = JSON.parse('{"airbnb":"Airbnb","alphago":"AlphaGo","bitbucket":"Bitbucket","bytedance":"ByteDance","circleci":"CircleCI","cloudflare":"Cloudflare","freecodecamp":"freeCodeCamp","gitea":"Gitea","gitee":"Gitee","github":"GitHub","gitlab":"GitLab","gitops":"GitOps","gitpod":"Gitpod","hp":"HP","ibm":"IBM","jsdelivr":"jsDelivr","kfc":"KFC","leetcode":"LeetCode","linkedin":"LinkedIn","mcdonald":"McDonald","nvidia":"NVIDIA","pagerduty":"PagerDuty","producthunt":"Product Hunt","stackblitz":"StackBlitz","stackit":"STACKIT","stackoverflow":"Stack Overflow","unjs":"UnJS","v2ex":"V2EX","youtube":"YouTube"}');
2538
+ var brands_namespaceObject = JSON.parse('{"airbnb":"Airbnb","alphago":"AlphaGo","bitbucket":"Bitbucket","bytedance":"ByteDance","circleci":"CircleCI","cloudflare":"Cloudflare","freecodecamp":"freeCodeCamp","gitea":"Gitea","gitee":"Gitee","github":"GitHub","gitlab":"GitLab","gitops":"GitOps","gitpod":"Gitpod","hp":"HP","ibm":"IBM","jsdelivr":"jsDelivr","kfc":"KFC","leetcode":"LeetCode","linkedin":"LinkedIn","mcdonald":"McDonald","nvidia":"NVIDIA","pagerduty":"PagerDuty","producthunt":"Product Hunt","stackblitz":"StackBlitz","stackit":"STACKIT","stackoverflow":"Stack Overflow","unjs":"UnJS","v2ex":"V2EX","vuefes":"Vue Fes","youtube":"YouTube"}');
2683
2539
  var general_namespaceObject = JSON.parse('{"aiaas":"AIaaS","baas":"BaaS","caas":"CaaS","daas":"DaaS","ddos":"DDoS","devops":"DevOps","devtools":"DevTools","esim":"eSIM","faas":"FaaS","iac":"IaC","iaas":"IaaS","ioc":"IoC","ipsec":"IPsec","mpaas":"mPaaS","paas":"PaaS","saas":"SaaS","wifi":"Wi-Fi","xaas":"XaaS"}');
2684
2540
  var products_namespaceObject = JSON.parse('{"airdrop":"AirDrop","airpods":"AirPods","airtag":"AirTag","homekit":"HomeKit","homepod":"HomePod","imac":"iMac","ipad":"iPad","iphone":"iPhone","ipod":"iPod","macbook":"MacBook","macbook air":"MacBook Air","macbook pro":"MacBook Pro","yubikey":"YubiKey"}');
2685
- var softwares_namespaceObject = JSON.parse('{"1password":"1Password","3dtiles":"3DTiles","actionscript":"ActionScript","adblock":"AdBlock","ajax":"AJAX","alipay":"Alipay","amap":"AMap","angularjs":"AngularJS","ant design":"Ant Design","ant design vue":"Ant Design Vue","antd":"AntD","antdesign":"AntDesign","antdesignvue":"AntDesignVue","antv":"AntV","apifox":"Apifox","app store":"App Store","apple pay":"Apple Pay","applescript":"AppleScript","appletalk":"AppleTalk","arangodb":"ArangoDB","arcgis":"ArcGIS","arcmap":"ArcMap","arcobjects":"ArcObjects","beego":"Beego","bittorrent":"BitTorrent","bluesky":"Bluesky","busybox":"BusyBox","centos":"CentOS","cesiumjs":"CesiumJS","chatgpt":"ChatGPT","citygml":"CityGML","cityjson":"CityJSON","ckeditor":"CKEditor","clashx":"ClashX","clickhouse":"ClickHouse","cloudfront":"CloudFront","cmake":"CMake","cockroachdb":"CockroachDB","cocoapods":"CocoaPods","codepen":"CodePen","codesandbox":"CodeSandbox","coffeescript":"CoffeeScript","commonjs":"CommonJS","composition api":"Composition API","compositionapi":"CompositionAPI","coredns":"CoreDNS","css modules":"CSS Modules","dapr":"Dapr","datadog":"Datadog","datagrip":"DataGrip","dbase":"dBase","definitelytyped":"DefinitelyTyped","denodeploy":"DenoDeploy","digital ocean":"DigitalOcean","digitalocean":"DigitalOcean","dingtalk":"DingTalk","directx":"DirectX","django":"Django","duckduckgo":"DuckDuckGo","dynamodb":"DynamoDB","echarts":"ECharts","ecmascript":"ECMAScript","edgedb":"EdgeDB","eggjs":"Egg.js","elasticsearch":"Elasticsearch","element plus":"Element Plus","elementui":"ElementUI","esbuild":"esbuild","eslint":"ESLint","esxi":"ESXi","etcd":"etcd","facetime":"FaceTime","fastapi":"FastAPI","ffmpeg":"FFmpeg","filezilla":"FileZilla","firefox":"Firefox","freemarker":"FreeMarker","gdnative":"GDNative","gdscript":"GDScript","geforce":"GeForce","geojson":"GeoJSON","geopackage":"GeoPackage","geopandas":"GeoPandas","geoserver":"GeoServer","gitbook":"GitBook","gitkraken":"GitKraken","gltf":"glTF","gnome":"GNOME","gnu":"GNU","gnupg":"GnuPG","goland":"GoLand","google pay":"Google Pay","graphql":"GraphQL","greensock":"GreenSock","grpc":"gRPC","hackernews":"Hacker News","hacpai":"HacPai","hbase":"HBase","hbuilderx":"HBuilderX","ibook":"iBook","icloud":"iCloud","idrac":"iDRAC","ilo":"iLO","imessage":"iMessage","imovie":"iMovie","imtoken":"imToken","influxdb":"InfluxDB","intellij":"IntelliJ","intellij idea":"IntelliJ IDEA","ios":"iOS","ipados":"iPadOS","iphoto":"iPhoto","iscsi":"iSCSI","iterm":"iTerm","itunes":"iTunes","iwork":"iWork","javascript":"JavaScript","jetbrains":"JetBrains","jquery":"jQuery","jsdoc":"JSDoc","jupyterlab":"JupyterLab","katex":"KaTeX","kubernetes":"Kubernetes","latex":"LaTeX","less":"Less","libreoffice":"LibreOffice","line pay":"LINE Pay","lineageos":"LineageOS","macos":"macOS","mariadb":"MariaDB","markdown":"Markdown","markdownlint":"MarkdownLint","mathieu":"MATHIEU","mathjax":"MathJax","mathml":"MathML","mathtype":"MathType","matlab":"MATLAB","mediawiki":"MediaWiki","memcached":"Memcached","messagepack":"MessagePack","metamask":"MetaMask","mkdocs":"MkDocs","mlaas":"MLaaS","mlops":"MLOps","mobx":"MobX","mongodb":"MongoDB","mongoose":"Mongoose","ms-dos":"MS-DOS","mybatis":"MyBatis","mysql":"MySQL","naive ui":"Naive UI","naiveui":"NaiveUI","neo4j":"Neo4j","nestjs":"NestJS","netbeans":"NetBeans","netbios":"NetBIOS","nextjs":"Next.js","nixos":"NixOS","nocodb":"NocoDB","node.js":"Node.js","nosql":"NoSQL","notepad ++":"Notepad++","npm":"npm","numpy":"NumPy","nuxtjs":"NuxtJS","oauth":"OAuth","obs":"OBS","ocaml":"OCaml","onedrive":"OneDrive","onenote":"OneNote","openai":"OpenAI","openapi":"OpenAPI","opencv":"OpenCV","openfaas":"OpenFaaS","openflow":"OpenFlow","opengauss":"openGauss","opengl":"OpenGL","opengl es":"OpenGL ES","openjdk":"OpenJDK","openlayers":"OpenLayers","openpgp":"OpenPGP","opensea":"OpenSea","openssl":"OpenSSL","openstack":"OpenStack","openstreetmap":"OpenStreetMap","opensuse":"openSUSE","openvino":"OpenVINO","openwrt":"OpenWrt","opnsense":"OPNsense","pagp":"PAgP","paypal":"PayPal","photoshop":"Photoshop","php":"PHP","phpstorm":"PhpStorm","pihole":"Pi-hole","planetscale":"PlanetScale","postcss":"PostCSS","postgis":"PostGIS","postgresql":"PostgreSQL","potplayer":"PotPlayer","powerpoint":"PowerPoint","powershell":"PowerShell","premid":"PreMiD","primevue":"PrimeVue","protobuf":"Protobuf","pycharm":"PyCharm","pytorch":"PyTorch","qtscript":"QtScript","raii":"RAII","react native":"React Native","redhat":"RedHat","redisearch":"RediSearch","redisjson":"RedisJSON","rescript":"ReScript","restful":"RESTful","rethinkdb":"RethinkDB","rsshub":"RSSHub","rust":"Rust","rxdb":"RxDB","rxjs":"RxJS","samsung pay":"Samsung Pay","sass":"Sass","scss":"SCSS","segmentfault":"SegmentFault","socket.io":"Socket.IO","solarwinds":"SolarWinds","spatiallite":"SpatialLite","spir-v":"SPIR-V","springboot":"SpringBoot","springcloud":"SpringCloud","springmvc":"SpringMVC","sqlite":"SQLite","sqlserver":"SQLServer","storybook":"Storybook","stylus":"Stylus","sublime text":"Sublime Text","surrealdb":"SurrealDB","sveltekit":"SvelteKit","tailwind css":"Tailwind CSS","tailwindcss":"TailwindCSS","teamviewer":"TeamViewer","tensorflow":"TensorFlow","testflight":"TestFlight","tex":"TeX","threejs":"ThreeJS","tianocore":"TianoCore","tidb":"TiDB","tiflash":"TiFlash","tiktok":"TikTok","tikv":"TiKV","travis ci":"Travis CI","trpc":"tRPC","tsconfig":"TSConfig","tsdoc":"TSDoc","tsdx":"TSdx","turbopack":"Turbopack","turborepo":"Turborepo","typeorm":"TypeORM","typescript":"TypeScript","uniapp":"uniapp","unifi":"UniFi","unix":"UNIX","unocss":"UnoCSS","upnp":"UPnP","vercel":"Vercel","videolan":"VideoLAN","vim":"VIM","virtualbox":"VirtualBox","visual studio":"Visual Studio","visual studio code":"Visual Studio Code","vitepress":"VitePress","vividcortex":"VividCortex","vlc":"VLC","vmware":"VMware","voip":"VoIP","vs code":"VS Code","vs codium":"VSCodium","vscode":"VS Code","vscodium":"VSCodium","vue cli":"Vue CLI","vuepress":"VuePress","vueuse":"VueUse","vulkan":"Vulkan","w3c":"W3C","wasm":"Wasm","watchos":"watchOS","web assembly":"WebAssembly","webar":"WebAR","webassembly":"WebAssembly","webgl":"WebGL","webgpu":"WebGPU","webkit":"WebKit","webpack":"webpack","webrtc":"WebRTC","websocket":"WebSocket","webstorm":"WebStorm","webvr":"WebVR","webxr":"WebXR","wechat":"WeChat","wechat pay":"WeChat Pay","whatsapp":"WhatsApp","windi css":"Windi CSS","windicss":"WindiCSS","wireguard":"WireGuard","wordpress":"WordPress","xmind":"XMind","xstate":"XState","yapi":"YApi"}');
2541
+ var softwares_namespaceObject = JSON.parse('{"1password":"1Password","3dtiles":"3DTiles","actionscript":"ActionScript","adblock":"AdBlock","ajax":"AJAX","alipay":"Alipay","amap":"AMap","angularjs":"AngularJS","ant design":"Ant Design","ant design vue":"Ant Design Vue","antd":"AntD","antdesign":"AntDesign","antdesignvue":"AntDesignVue","antv":"AntV","apifox":"Apifox","app store":"App Store","apple pay":"Apple Pay","applescript":"AppleScript","appletalk":"AppleTalk","arangodb":"ArangoDB","arcgis":"ArcGIS","arcmap":"ArcMap","arcobjects":"ArcObjects","beego":"Beego","bittorrent":"BitTorrent","bluesky":"Bluesky","busybox":"BusyBox","centos":"CentOS","cesiumjs":"CesiumJS","chatgpt":"ChatGPT","citygml":"CityGML","cityjson":"CityJSON","ckeditor":"CKEditor","clashx":"ClashX","clickhouse":"ClickHouse","cloudfront":"CloudFront","cmake":"CMake","cockroachdb":"CockroachDB","cocoapods":"CocoaPods","codepen":"CodePen","codesandbox":"CodeSandbox","coffeescript":"CoffeeScript","commonjs":"CommonJS","composition api":"Composition API","compositionapi":"CompositionAPI","coredns":"CoreDNS","css modules":"CSS Modules","dapr":"Dapr","datadog":"Datadog","datagrip":"DataGrip","dbase":"dBase","definitelytyped":"DefinitelyTyped","denodeploy":"DenoDeploy","digital ocean":"DigitalOcean","digitalocean":"DigitalOcean","dingtalk":"DingTalk","directx":"DirectX","django":"Django","duckduckgo":"DuckDuckGo","dynamodb":"DynamoDB","echarts":"ECharts","ecmascript":"ECMAScript","edgedb":"EdgeDB","eggjs":"Egg.js","elasticsearch":"Elasticsearch","element plus":"Element Plus","elementui":"ElementUI","esbuild":"esbuild","eslint":"ESLint","esxi":"ESXi","etcd":"etcd","facetime":"FaceTime","fastapi":"FastAPI","ffmpeg":"FFmpeg","filezilla":"FileZilla","firefox":"Firefox","freemarker":"FreeMarker","gdnative":"GDNative","gdscript":"GDScript","geforce":"GeForce","geojson":"GeoJSON","geopackage":"GeoPackage","geopandas":"GeoPandas","geoserver":"GeoServer","gitbook":"GitBook","gitkraken":"GitKraken","gltf":"glTF","gnome":"GNOME","gnu":"GNU","gnupg":"GnuPG","goland":"GoLand","google pay":"Google Pay","graph rag":"Graph RAG","graphql":"GraphQL","graphrag":"GraphRAG","greensock":"GreenSock","grpc":"gRPC","hackernews":"Hacker News","hacpai":"HacPai","hbase":"HBase","hbuilderx":"HBuilderX","ibook":"iBook","icloud":"iCloud","idrac":"iDRAC","ilo":"iLO","imessage":"iMessage","imovie":"iMovie","imtoken":"imToken","influxdb":"InfluxDB","intellij":"IntelliJ","intellij idea":"IntelliJ IDEA","ios":"iOS","ipados":"iPadOS","iphoto":"iPhoto","iscsi":"iSCSI","iterm":"iTerm","itunes":"iTunes","iwork":"iWork","javascript":"JavaScript","jetbrains":"JetBrains","jquery":"jQuery","jsdoc":"JSDoc","jupyterlab":"JupyterLab","katex":"KaTeX","kubernetes":"Kubernetes","latex":"LaTeX","less":"Less","libreoffice":"LibreOffice","line pay":"LINE Pay","lineageos":"LineageOS","macos":"macOS","mariadb":"MariaDB","markdown":"Markdown","markdownlint":"MarkdownLint","mathieu":"MATHIEU","mathjax":"MathJax","mathml":"MathML","mathtype":"MathType","matlab":"MATLAB","mediawiki":"MediaWiki","memcached":"Memcached","messagepack":"MessagePack","metamask":"MetaMask","mkdocs":"MkDocs","mlaas":"MLaaS","mlops":"MLOps","mobx":"MobX","mongodb":"MongoDB","mongoose":"Mongoose","ms-dos":"MS-DOS","mybatis":"MyBatis","mysql":"MySQL","naive ui":"Naive UI","naiveui":"NaiveUI","neo4j":"Neo4j","nestjs":"NestJS","netbeans":"NetBeans","netbios":"NetBIOS","nextjs":"Next.js","nixos":"NixOS","nocodb":"NocoDB","node.js":"Node.js","nosql":"NoSQL","notepad ++":"Notepad++","npm":"npm","numpy":"NumPy","nuxtjs":"NuxtJS","oauth":"OAuth","obs":"OBS","ocaml":"OCaml","onedrive":"OneDrive","onenote":"OneNote","openai":"OpenAI","openapi":"OpenAPI","opencv":"OpenCV","openfaas":"OpenFaaS","openflow":"OpenFlow","opengauss":"openGauss","opengl":"OpenGL","opengl es":"OpenGL ES","openjdk":"OpenJDK","openlayers":"OpenLayers","openpgp":"OpenPGP","opensea":"OpenSea","openssl":"OpenSSL","openstack":"OpenStack","openstreetmap":"OpenStreetMap","opensuse":"openSUSE","openvino":"OpenVINO","openwrt":"OpenWrt","opnsense":"OPNsense","pagp":"PAgP","paypal":"PayPal","photoshop":"Photoshop","php":"PHP","phpstorm":"PhpStorm","pihole":"Pi-hole","planetscale":"PlanetScale","postcss":"PostCSS","postgis":"PostGIS","postgresql":"PostgreSQL","potplayer":"PotPlayer","powerpoint":"PowerPoint","powershell":"PowerShell","premid":"PreMiD","primevue":"PrimeVue","protobuf":"Protobuf","pycharm":"PyCharm","pytorch":"PyTorch","qtscript":"QtScript","raii":"RAII","react native":"React Native","redhat":"RedHat","redisearch":"RediSearch","redisjson":"RedisJSON","rescript":"ReScript","restful":"RESTful","rethinkdb":"RethinkDB","rsshub":"RSSHub","rust":"Rust","rxdb":"RxDB","rxjs":"RxJS","samsung pay":"Samsung Pay","sass":"Sass","scss":"SCSS","segmentfault":"SegmentFault","socket.io":"Socket.IO","solarwinds":"SolarWinds","spatiallite":"SpatialLite","spir-v":"SPIR-V","springboot":"SpringBoot","springcloud":"SpringCloud","springmvc":"SpringMVC","sqlite":"SQLite","sqlserver":"SQLServer","storybook":"Storybook","stylus":"Stylus","sublime text":"Sublime Text","surrealdb":"SurrealDB","sveltekit":"SvelteKit","tailwind css":"Tailwind CSS","tailwindcss":"TailwindCSS","teamviewer":"TeamViewer","tensorflow":"TensorFlow","testflight":"TestFlight","tex":"TeX","threejs":"ThreeJS","tianocore":"TianoCore","tidb":"TiDB","tiflash":"TiFlash","tiktok":"TikTok","tikv":"TiKV","travis ci":"Travis CI","trpc":"tRPC","tsconfig":"TSConfig","tsdoc":"TSDoc","tsdx":"TSdx","turbopack":"Turbopack","turborepo":"Turborepo","typeorm":"TypeORM","typescript":"TypeScript","uniapp":"uniapp","unifi":"UniFi","unix":"UNIX","unocss":"UnoCSS","upnp":"UPnP","vercel":"Vercel","videolan":"VideoLAN","vim":"Vim","virtualbox":"VirtualBox","visual studio":"Visual Studio","visual studio code":"Visual Studio Code","vitepress":"VitePress","vividcortex":"VividCortex","vlc":"VLC","vmware":"VMware","voip":"VoIP","vs code":"VS Code","vs codium":"VSCodium","vscode":"VS Code","vscodium":"VSCodium","vue cli":"Vue CLI","vuepress":"VuePress","vueuse":"VueUse","vulkan":"Vulkan","w3c":"W3C","wasm":"Wasm","watchos":"watchOS","web assembly":"WebAssembly","webar":"WebAR","webassembly":"WebAssembly","webgl":"WebGL","webgpu":"WebGPU","webkit":"WebKit","webpack":"webpack","webrtc":"WebRTC","websocket":"WebSocket","webstorm":"WebStorm","webvr":"WebVR","webxr":"WebXR","wechat":"WeChat","wechat pay":"WeChat Pay","whatsapp":"WhatsApp","windi css":"Windi CSS","windicss":"WindiCSS","wireguard":"WireGuard","wordpress":"WordPress","xmind":"XMind","xstate":"XState","yapi":"YApi"}');
2686
2542
  const dict = [
2687
2543
  ...Object.values(abbreviates_namespaceObject),
2688
2544
  ...Object.values(brands_namespaceObject),
@@ -2702,6 +2558,7 @@ const dict = [
2702
2558
  'GitHub Actions',
2703
2559
  'GitHub Pages',
2704
2560
  'I',
2561
+ 'Jest',
2705
2562
  'Lightning CSS',
2706
2563
  'Lynx',
2707
2564
  'Module Federation',
@@ -2728,12 +2585,14 @@ const dict = [
2728
2585
  'Rspack Stack',
2729
2586
  'Rspress',
2730
2587
  'Rstest',
2588
+ 'Rslint',
2731
2589
  'Solid',
2732
2590
  'Svelte',
2733
2591
  'Server Action',
2734
2592
  'Service Worker',
2735
2593
  'TanStack Router',
2736
2594
  'Vite',
2595
+ 'Vitest',
2737
2596
  'Vue',
2738
2597
  'Web Workers',
2739
2598
  'Xcode',