@ui-tars-test/cli 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +231 -0
  2. package/bin/index.js +13 -0
  3. package/dist/337.js +1396 -0
  4. package/dist/337.js.LICENSE.txt +14 -0
  5. package/dist/337.js.map +1 -0
  6. package/dist/337.mjs +1395 -0
  7. package/dist/337.mjs.LICENSE.txt +14 -0
  8. package/dist/337.mjs.map +1 -0
  9. package/dist/597.js +19 -0
  10. package/dist/597.mjs +18 -0
  11. package/dist/663.js +98 -0
  12. package/dist/663.js.map +1 -0
  13. package/dist/663.mjs +97 -0
  14. package/dist/663.mjs.map +1 -0
  15. package/dist/760.js +2957 -0
  16. package/dist/760.js.map +1 -0
  17. package/dist/760.mjs +2956 -0
  18. package/dist/760.mjs.map +1 -0
  19. package/dist/940.js +1013 -0
  20. package/dist/940.js.map +1 -0
  21. package/dist/940.mjs +1011 -0
  22. package/dist/940.mjs.map +1 -0
  23. package/dist/955.js +317 -0
  24. package/dist/955.js.map +1 -0
  25. package/dist/955.mjs +317 -0
  26. package/dist/955.mjs.map +1 -0
  27. package/dist/bundle/index.js +299060 -0
  28. package/dist/cli/commands.js +75 -0
  29. package/dist/cli/commands.js.map +1 -0
  30. package/dist/cli/commands.mjs +41 -0
  31. package/dist/cli/commands.mjs.map +1 -0
  32. package/dist/cli/start.js +447 -0
  33. package/dist/cli/start.js.map +1 -0
  34. package/dist/cli/start.mjs +396 -0
  35. package/dist/cli/start.mjs.map +1 -0
  36. package/dist/gui-agent-macos +0 -0
  37. package/dist/index.js +14 -0
  38. package/dist/index.js.LICENSE.txt +471 -0
  39. package/dist/index.js.map +1 -0
  40. package/dist/index.mjs +8 -0
  41. package/dist/index.mjs.LICENSE.txt +471 -0
  42. package/dist/index.mjs.map +1 -0
  43. package/dist/src/cli/commands.d.ts +2 -0
  44. package/dist/src/cli/commands.d.ts.map +1 -0
  45. package/dist/src/cli/start.d.ts +11 -0
  46. package/dist/src/cli/start.d.ts.map +1 -0
  47. package/dist/src/index.d.ts +2 -0
  48. package/dist/src/index.d.ts.map +1 -0
  49. package/package.json +59 -0
package/dist/955.mjs ADDED
@@ -0,0 +1,317 @@
1
+ /**
2
+ * Copyright (c) 2025 Bytedance, Inc. and its affiliates.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ export const __webpack_ids__ = [
6
+ "955"
7
+ ];
8
+ export const __webpack_modules__ = {
9
+ "../../node_modules/.pnpm/tar-fs@3.1.0/node_modules/tar-fs/index.js": function(__unused_webpack_module, exports, __webpack_require__) {
10
+ const tar = __webpack_require__("../../node_modules/.pnpm/tar-stream@3.1.7/node_modules/tar-stream/index.js");
11
+ const pump = __webpack_require__("../../node_modules/.pnpm/pump@3.0.2/node_modules/pump/index.js");
12
+ const fs = __webpack_require__("fs");
13
+ const path = __webpack_require__("path");
14
+ const win32 = (global.Bare ? global.Bare.platform : process.platform) === 'win32';
15
+ exports.pack = function(cwd, opts) {
16
+ if (!cwd) cwd = '.';
17
+ if (!opts) opts = {};
18
+ const xfs = opts.fs || fs;
19
+ const ignore = opts.ignore || opts.filter || noop;
20
+ const mapStream = opts.mapStream || echo;
21
+ const statNext = statAll(xfs, opts.dereference ? xfs.stat : xfs.lstat, cwd, ignore, opts.entries, opts.sort);
22
+ const strict = false !== opts.strict;
23
+ const umask = 'number' == typeof opts.umask ? ~opts.umask : ~processUmask();
24
+ const pack = opts.pack || tar.pack();
25
+ const finish = opts.finish || noop;
26
+ let map = opts.map || noop;
27
+ let dmode = 'number' == typeof opts.dmode ? opts.dmode : 0;
28
+ let fmode = 'number' == typeof opts.fmode ? opts.fmode : 0;
29
+ if (opts.strip) map = strip(map, opts.strip);
30
+ if (opts.readable) {
31
+ dmode |= parseInt(555, 8);
32
+ fmode |= parseInt(444, 8);
33
+ }
34
+ if (opts.writable) {
35
+ dmode |= parseInt(333, 8);
36
+ fmode |= parseInt(222, 8);
37
+ }
38
+ onnextentry();
39
+ function onsymlink(filename, header) {
40
+ xfs.readlink(path.join(cwd, filename), function(err, linkname) {
41
+ if (err) return pack.destroy(err);
42
+ header.linkname = normalize(linkname);
43
+ pack.entry(header, onnextentry);
44
+ });
45
+ }
46
+ function onstat(err, filename, stat) {
47
+ if (pack.destroyed) return;
48
+ if (err) return pack.destroy(err);
49
+ if (!filename) {
50
+ if (false !== opts.finalize) pack.finalize();
51
+ return finish(pack);
52
+ }
53
+ if (stat.isSocket()) return onnextentry();
54
+ let header = {
55
+ name: normalize(filename),
56
+ mode: (stat.mode | (stat.isDirectory() ? dmode : fmode)) & umask,
57
+ mtime: stat.mtime,
58
+ size: stat.size,
59
+ type: 'file',
60
+ uid: stat.uid,
61
+ gid: stat.gid
62
+ };
63
+ if (stat.isDirectory()) {
64
+ header.size = 0;
65
+ header.type = 'directory';
66
+ header = map(header) || header;
67
+ return pack.entry(header, onnextentry);
68
+ }
69
+ if (stat.isSymbolicLink()) {
70
+ header.size = 0;
71
+ header.type = 'symlink';
72
+ header = map(header) || header;
73
+ return onsymlink(filename, header);
74
+ }
75
+ header = map(header) || header;
76
+ if (!stat.isFile()) {
77
+ if (strict) return pack.destroy(new Error('unsupported type for ' + filename));
78
+ return onnextentry();
79
+ }
80
+ const entry = pack.entry(header, onnextentry);
81
+ const rs = mapStream(xfs.createReadStream(path.join(cwd, filename), {
82
+ start: 0,
83
+ end: header.size > 0 ? header.size - 1 : header.size
84
+ }), header);
85
+ rs.on('error', function(err) {
86
+ entry.destroy(err);
87
+ });
88
+ pump(rs, entry);
89
+ }
90
+ function onnextentry(err) {
91
+ if (err) return pack.destroy(err);
92
+ statNext(onstat);
93
+ }
94
+ return pack;
95
+ };
96
+ function head(list) {
97
+ return list.length ? list[list.length - 1] : null;
98
+ }
99
+ function processGetuid() {
100
+ return !global.Bare && process.getuid ? process.getuid() : -1;
101
+ }
102
+ function processUmask() {
103
+ return !global.Bare && process.umask ? process.umask() : 0;
104
+ }
105
+ exports.extract = function(cwd, opts) {
106
+ if (!cwd) cwd = '.';
107
+ if (!opts) opts = {};
108
+ cwd = path.resolve(cwd);
109
+ const xfs = opts.fs || fs;
110
+ const ignore = opts.ignore || opts.filter || noop;
111
+ const mapStream = opts.mapStream || echo;
112
+ const own = false !== opts.chown && !win32 && 0 === processGetuid();
113
+ const extract = opts.extract || tar.extract();
114
+ const stack = [];
115
+ const now = new Date();
116
+ const umask = 'number' == typeof opts.umask ? ~opts.umask : ~processUmask();
117
+ const strict = false !== opts.strict;
118
+ const validateSymLinks = false !== opts.validateSymlinks;
119
+ let map = opts.map || noop;
120
+ let dmode = 'number' == typeof opts.dmode ? opts.dmode : 0;
121
+ let fmode = 'number' == typeof opts.fmode ? opts.fmode : 0;
122
+ if (opts.strip) map = strip(map, opts.strip);
123
+ if (opts.readable) {
124
+ dmode |= parseInt(555, 8);
125
+ fmode |= parseInt(444, 8);
126
+ }
127
+ if (opts.writable) {
128
+ dmode |= parseInt(333, 8);
129
+ fmode |= parseInt(222, 8);
130
+ }
131
+ extract.on('entry', onentry);
132
+ if (opts.finish) extract.on('finish', opts.finish);
133
+ return extract;
134
+ function onentry(header, stream, next) {
135
+ header = map(header) || header;
136
+ header.name = normalize(header.name);
137
+ const name = path.join(cwd, path.join('/', header.name));
138
+ if (ignore(name, header)) {
139
+ stream.resume();
140
+ return next();
141
+ }
142
+ const dir = path.join(name, '.') === path.join(cwd, '.') ? cwd : path.dirname(name);
143
+ validate(xfs, dir, path.join(cwd, '.'), function(err, valid) {
144
+ if (err) return next(err);
145
+ if (!valid) return next(new Error(dir + ' is not a valid path'));
146
+ if ('directory' === header.type) {
147
+ stack.push([
148
+ name,
149
+ header.mtime
150
+ ]);
151
+ return mkdirfix(name, {
152
+ fs: xfs,
153
+ own,
154
+ uid: header.uid,
155
+ gid: header.gid,
156
+ mode: header.mode
157
+ }, stat);
158
+ }
159
+ mkdirfix(dir, {
160
+ fs: xfs,
161
+ own,
162
+ uid: header.uid,
163
+ gid: header.gid,
164
+ mode: 493
165
+ }, function(err) {
166
+ if (err) return next(err);
167
+ switch(header.type){
168
+ case 'file':
169
+ return onfile();
170
+ case 'link':
171
+ return onlink();
172
+ case 'symlink':
173
+ return onsymlink();
174
+ }
175
+ if (strict) return next(new Error('unsupported type for ' + name + ' (' + header.type + ')'));
176
+ stream.resume();
177
+ next();
178
+ });
179
+ });
180
+ function stat(err) {
181
+ if (err) return next(err);
182
+ utimes(name, header, function(err) {
183
+ if (err) return next(err);
184
+ if (win32) return next();
185
+ chperm(name, header, next);
186
+ });
187
+ }
188
+ function onsymlink() {
189
+ if (win32) return next();
190
+ xfs.unlink(name, function() {
191
+ const dst = path.resolve(path.dirname(name), header.linkname);
192
+ if (!inCwd(dst) && validateSymLinks) return next(new Error(name + ' is not a valid symlink'));
193
+ xfs.symlink(header.linkname, name, stat);
194
+ });
195
+ }
196
+ function onlink() {
197
+ if (win32) return next();
198
+ xfs.unlink(name, function() {
199
+ const link = path.join(cwd, path.join('/', header.linkname));
200
+ fs.realpath(link, function(err, dst) {
201
+ if (err || !inCwd(dst)) return next(new Error(name + ' is not a valid hardlink'));
202
+ xfs.link(dst, name, function(err) {
203
+ if (err && 'EPERM' === err.code && opts.hardlinkAsFilesFallback) {
204
+ stream = xfs.createReadStream(dst);
205
+ return onfile();
206
+ }
207
+ stat(err);
208
+ });
209
+ });
210
+ });
211
+ }
212
+ function inCwd(dst) {
213
+ return dst.startsWith(cwd);
214
+ }
215
+ function onfile() {
216
+ const ws = xfs.createWriteStream(name);
217
+ const rs = mapStream(stream, header);
218
+ ws.on('error', function(err) {
219
+ rs.destroy(err);
220
+ });
221
+ pump(rs, ws, function(err) {
222
+ if (err) return next(err);
223
+ ws.on('close', stat);
224
+ });
225
+ }
226
+ }
227
+ function utimesParent(name, cb) {
228
+ let top;
229
+ while((top = head(stack)) && name.slice(0, top[0].length) !== top[0])stack.pop();
230
+ if (!top) return cb();
231
+ xfs.utimes(top[0], now, top[1], cb);
232
+ }
233
+ function utimes(name, header, cb) {
234
+ if (false === opts.utimes) return cb();
235
+ if ('directory' === header.type) return xfs.utimes(name, now, header.mtime, cb);
236
+ if ('symlink' === header.type) return utimesParent(name, cb);
237
+ xfs.utimes(name, now, header.mtime, function(err) {
238
+ if (err) return cb(err);
239
+ utimesParent(name, cb);
240
+ });
241
+ }
242
+ function chperm(name, header, cb) {
243
+ const link = 'symlink' === header.type;
244
+ const chmod = link ? xfs.lchmod : xfs.chmod;
245
+ const chown = link ? xfs.lchown : xfs.chown;
246
+ if (!chmod) return cb();
247
+ const mode = (header.mode | ('directory' === header.type ? dmode : fmode)) & umask;
248
+ if (chown && own) chown.call(xfs, name, header.uid, header.gid, onchown);
249
+ else onchown(null);
250
+ function onchown(err) {
251
+ if (err) return cb(err);
252
+ if (!chmod) return cb();
253
+ chmod.call(xfs, name, mode, cb);
254
+ }
255
+ }
256
+ function mkdirfix(name, opts, cb) {
257
+ xfs.stat(name, function(err) {
258
+ if (!err) return cb(null);
259
+ if ('ENOENT' !== err.code) return cb(err);
260
+ xfs.mkdir(name, {
261
+ mode: opts.mode,
262
+ recursive: true
263
+ }, function(err, made) {
264
+ if (err) return cb(err);
265
+ chperm(name, opts, cb);
266
+ });
267
+ });
268
+ }
269
+ };
270
+ function validate(fs, name, root, cb) {
271
+ if (name === root) return cb(null, true);
272
+ fs.lstat(name, function(err, st) {
273
+ if (err && 'ENOENT' !== err.code && 'EPERM' !== err.code) return cb(err);
274
+ if (err || st.isDirectory()) return validate(fs, path.join(name, '..'), root, cb);
275
+ cb(null, false);
276
+ });
277
+ }
278
+ function noop() {}
279
+ function echo(name) {
280
+ return name;
281
+ }
282
+ function normalize(name) {
283
+ return win32 ? name.replace(/\\/g, '/').replace(/[:?<>|]/g, '_') : name;
284
+ }
285
+ function statAll(fs, stat, cwd, ignore, entries, sort) {
286
+ if (!entries) entries = [
287
+ '.'
288
+ ];
289
+ const queue = entries.slice(0);
290
+ return function(callback) {
291
+ if (!queue.length) return callback(null);
292
+ const next = queue.shift();
293
+ const nextAbs = path.join(cwd, next);
294
+ stat.call(fs, nextAbs, function(err, stat) {
295
+ if (err) return callback(-1 === entries.indexOf(next) && 'ENOENT' === err.code ? null : err);
296
+ if (!stat.isDirectory()) return callback(null, next, stat);
297
+ fs.readdir(nextAbs, function(err, files) {
298
+ if (err) return callback(err);
299
+ if (sort) files.sort();
300
+ for(let i = 0; i < files.length; i++)if (!ignore(path.join(cwd, next, files[i]))) queue.push(path.join(next, files[i]));
301
+ callback(null, next, stat);
302
+ });
303
+ });
304
+ };
305
+ }
306
+ function strip(map, level) {
307
+ return function(header) {
308
+ header.name = header.name.split('/').slice(level).join('/');
309
+ const linkname = header.linkname;
310
+ if (linkname && ('link' === header.type || path.isAbsolute(linkname))) header.linkname = linkname.split('/').slice(level).join('/');
311
+ return map(header);
312
+ };
313
+ }
314
+ }
315
+ };
316
+
317
+ //# sourceMappingURL=955.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"955.mjs","sources":["webpack://@gui-agent/cli/../../node_modules/.pnpm/tar-fs@3.1.0/node_modules/tar-fs/index.js"],"sourcesContent":["const tar = require('tar-stream')\nconst pump = require('pump')\nconst fs = require('fs')\nconst path = require('path')\n\nconst win32 = (global.Bare ? global.Bare.platform : process.platform) === 'win32'\n\nexports.pack = function pack (cwd, opts) {\n if (!cwd) cwd = '.'\n if (!opts) opts = {}\n\n const xfs = opts.fs || fs\n const ignore = opts.ignore || opts.filter || noop\n const mapStream = opts.mapStream || echo\n const statNext = statAll(xfs, opts.dereference ? xfs.stat : xfs.lstat, cwd, ignore, opts.entries, opts.sort)\n const strict = opts.strict !== false\n const umask = typeof opts.umask === 'number' ? ~opts.umask : ~processUmask()\n const pack = opts.pack || tar.pack()\n const finish = opts.finish || noop\n\n let map = opts.map || noop\n let dmode = typeof opts.dmode === 'number' ? opts.dmode : 0\n let fmode = typeof opts.fmode === 'number' ? opts.fmode : 0\n\n if (opts.strip) map = strip(map, opts.strip)\n\n if (opts.readable) {\n dmode |= parseInt(555, 8)\n fmode |= parseInt(444, 8)\n }\n if (opts.writable) {\n dmode |= parseInt(333, 8)\n fmode |= parseInt(222, 8)\n }\n\n onnextentry()\n\n function onsymlink (filename, header) {\n xfs.readlink(path.join(cwd, filename), function (err, linkname) {\n if (err) return pack.destroy(err)\n header.linkname = normalize(linkname)\n pack.entry(header, onnextentry)\n })\n }\n\n function onstat (err, filename, stat) {\n if (pack.destroyed) return\n if (err) return pack.destroy(err)\n if (!filename) {\n if (opts.finalize !== false) pack.finalize()\n return finish(pack)\n }\n\n if (stat.isSocket()) return onnextentry() // tar does not support sockets...\n\n let header = {\n name: normalize(filename),\n mode: (stat.mode | (stat.isDirectory() ? dmode : fmode)) & umask,\n mtime: stat.mtime,\n size: stat.size,\n type: 'file',\n uid: stat.uid,\n gid: stat.gid\n }\n\n if (stat.isDirectory()) {\n header.size = 0\n header.type = 'directory'\n header = map(header) || header\n return pack.entry(header, onnextentry)\n }\n\n if (stat.isSymbolicLink()) {\n header.size = 0\n header.type = 'symlink'\n header = map(header) || header\n return onsymlink(filename, header)\n }\n\n // TODO: add fifo etc...\n\n header = map(header) || header\n\n if (!stat.isFile()) {\n if (strict) return pack.destroy(new Error('unsupported type for ' + filename))\n return onnextentry()\n }\n\n const entry = pack.entry(header, onnextentry)\n const rs = mapStream(xfs.createReadStream(path.join(cwd, filename), { start: 0, end: header.size > 0 ? header.size - 1 : header.size }), header)\n\n rs.on('error', function (err) { // always forward errors on destroy\n entry.destroy(err)\n })\n\n pump(rs, entry)\n }\n\n function onnextentry (err) {\n if (err) return pack.destroy(err)\n statNext(onstat)\n }\n\n return pack\n}\n\nfunction head (list) {\n return list.length ? list[list.length - 1] : null\n}\n\nfunction processGetuid () {\n return (!global.Bare && process.getuid) ? process.getuid() : -1\n}\n\nfunction processUmask () {\n return (!global.Bare && process.umask) ? process.umask() : 0\n}\n\nexports.extract = function extract (cwd, opts) {\n if (!cwd) cwd = '.'\n if (!opts) opts = {}\n\n cwd = path.resolve(cwd)\n\n const xfs = opts.fs || fs\n const ignore = opts.ignore || opts.filter || noop\n const mapStream = opts.mapStream || echo\n const own = opts.chown !== false && !win32 && processGetuid() === 0\n const extract = opts.extract || tar.extract()\n const stack = []\n const now = new Date()\n const umask = typeof opts.umask === 'number' ? ~opts.umask : ~processUmask()\n const strict = opts.strict !== false\n const validateSymLinks = opts.validateSymlinks !== false\n\n let map = opts.map || noop\n let dmode = typeof opts.dmode === 'number' ? opts.dmode : 0\n let fmode = typeof opts.fmode === 'number' ? opts.fmode : 0\n\n if (opts.strip) map = strip(map, opts.strip)\n\n if (opts.readable) {\n dmode |= parseInt(555, 8)\n fmode |= parseInt(444, 8)\n }\n if (opts.writable) {\n dmode |= parseInt(333, 8)\n fmode |= parseInt(222, 8)\n }\n\n extract.on('entry', onentry)\n\n if (opts.finish) extract.on('finish', opts.finish)\n\n return extract\n\n function onentry (header, stream, next) {\n header = map(header) || header\n header.name = normalize(header.name)\n\n const name = path.join(cwd, path.join('/', header.name))\n\n if (ignore(name, header)) {\n stream.resume()\n return next()\n }\n\n const dir = path.join(name, '.') === path.join(cwd, '.') ? cwd : path.dirname(name)\n\n validate(xfs, dir, path.join(cwd, '.'), function (err, valid) {\n if (err) return next(err)\n if (!valid) return next(new Error(dir + ' is not a valid path'))\n\n if (header.type === 'directory') {\n stack.push([name, header.mtime])\n return mkdirfix(name, {\n fs: xfs,\n own,\n uid: header.uid,\n gid: header.gid,\n mode: header.mode\n }, stat)\n }\n\n mkdirfix(dir, {\n fs: xfs,\n own,\n uid: header.uid,\n gid: header.gid,\n // normally, the folders with rights and owner should be part of the TAR file\n // if this is not the case, create folder for same user as file and with\n // standard permissions of 0o755 (rwxr-xr-x)\n mode: 0o755\n }, function (err) {\n if (err) return next(err)\n\n switch (header.type) {\n case 'file': return onfile()\n case 'link': return onlink()\n case 'symlink': return onsymlink()\n }\n\n if (strict) return next(new Error('unsupported type for ' + name + ' (' + header.type + ')'))\n\n stream.resume()\n next()\n })\n })\n\n function stat (err) {\n if (err) return next(err)\n utimes(name, header, function (err) {\n if (err) return next(err)\n if (win32) return next()\n chperm(name, header, next)\n })\n }\n\n function onsymlink () {\n if (win32) return next() // skip symlinks on win for now before it can be tested\n xfs.unlink(name, function () {\n const dst = path.resolve(path.dirname(name), header.linkname)\n if (!inCwd(dst) && validateSymLinks) return next(new Error(name + ' is not a valid symlink'))\n\n xfs.symlink(header.linkname, name, stat)\n })\n }\n\n function onlink () {\n if (win32) return next() // skip links on win for now before it can be tested\n xfs.unlink(name, function () {\n const link = path.join(cwd, path.join('/', header.linkname))\n\n fs.realpath(link, function (err, dst) {\n if (err || !inCwd(dst)) return next(new Error(name + ' is not a valid hardlink'))\n\n xfs.link(dst, name, function (err) {\n if (err && err.code === 'EPERM' && opts.hardlinkAsFilesFallback) {\n stream = xfs.createReadStream(dst)\n return onfile()\n }\n\n stat(err)\n })\n })\n })\n }\n\n function inCwd (dst) {\n return dst.startsWith(cwd)\n }\n\n function onfile () {\n const ws = xfs.createWriteStream(name)\n const rs = mapStream(stream, header)\n\n ws.on('error', function (err) { // always forward errors on destroy\n rs.destroy(err)\n })\n\n pump(rs, ws, function (err) {\n if (err) return next(err)\n ws.on('close', stat)\n })\n }\n }\n\n function utimesParent (name, cb) { // we just set the mtime on the parent dir again everytime we write an entry\n let top\n while ((top = head(stack)) && name.slice(0, top[0].length) !== top[0]) stack.pop()\n if (!top) return cb()\n xfs.utimes(top[0], now, top[1], cb)\n }\n\n function utimes (name, header, cb) {\n if (opts.utimes === false) return cb()\n\n if (header.type === 'directory') return xfs.utimes(name, now, header.mtime, cb)\n if (header.type === 'symlink') return utimesParent(name, cb) // TODO: how to set mtime on link?\n\n xfs.utimes(name, now, header.mtime, function (err) {\n if (err) return cb(err)\n utimesParent(name, cb)\n })\n }\n\n function chperm (name, header, cb) {\n const link = header.type === 'symlink'\n\n /* eslint-disable n/no-deprecated-api */\n const chmod = link ? xfs.lchmod : xfs.chmod\n const chown = link ? xfs.lchown : xfs.chown\n /* eslint-enable n/no-deprecated-api */\n\n if (!chmod) return cb()\n\n const mode = (header.mode | (header.type === 'directory' ? dmode : fmode)) & umask\n\n if (chown && own) chown.call(xfs, name, header.uid, header.gid, onchown)\n else onchown(null)\n\n function onchown (err) {\n if (err) return cb(err)\n if (!chmod) return cb()\n chmod.call(xfs, name, mode, cb)\n }\n }\n\n function mkdirfix (name, opts, cb) {\n // when mkdir is called on an existing directory, the permissions\n // will be overwritten (?), to avoid this we check for its existance first\n xfs.stat(name, function (err) {\n if (!err) return cb(null)\n if (err.code !== 'ENOENT') return cb(err)\n xfs.mkdir(name, { mode: opts.mode, recursive: true }, function (err, made) {\n if (err) return cb(err)\n chperm(name, opts, cb)\n })\n })\n }\n}\n\nfunction validate (fs, name, root, cb) {\n if (name === root) return cb(null, true)\n\n fs.lstat(name, function (err, st) {\n if (err && err.code !== 'ENOENT' && err.code !== 'EPERM') return cb(err)\n if (err || st.isDirectory()) return validate(fs, path.join(name, '..'), root, cb)\n cb(null, false)\n })\n}\n\nfunction noop () {}\n\nfunction echo (name) {\n return name\n}\n\nfunction normalize (name) {\n return win32 ? name.replace(/\\\\/g, '/').replace(/[:?<>|]/g, '_') : name\n}\n\nfunction statAll (fs, stat, cwd, ignore, entries, sort) {\n if (!entries) entries = ['.']\n const queue = entries.slice(0)\n\n return function loop (callback) {\n if (!queue.length) return callback(null)\n\n const next = queue.shift()\n const nextAbs = path.join(cwd, next)\n\n stat.call(fs, nextAbs, function (err, stat) {\n // ignore errors if the files were deleted while buffering\n if (err) return callback(entries.indexOf(next) === -1 && err.code === 'ENOENT' ? null : err)\n\n if (!stat.isDirectory()) return callback(null, next, stat)\n\n fs.readdir(nextAbs, function (err, files) {\n if (err) return callback(err)\n\n if (sort) files.sort()\n\n for (let i = 0; i < files.length; i++) {\n if (!ignore(path.join(cwd, next, files[i]))) queue.push(path.join(next, files[i]))\n }\n\n callback(null, next, stat)\n })\n })\n }\n}\n\nfunction strip (map, level) {\n return function (header) {\n header.name = header.name.split('/').slice(level).join('/')\n\n const linkname = header.linkname\n if (linkname && (header.type === 'link' || path.isAbsolute(linkname))) {\n header.linkname = linkname.split('/').slice(level).join('/')\n }\n\n return map(header)\n }\n}\n"],"names":["tar","pump","fs","path","win32","global","process","exports","cwd","opts","xfs","ignore","noop","mapStream","echo","statNext","statAll","strict","umask","processUmask","pack","finish","map","dmode","fmode","strip","parseInt","onnextentry","onsymlink","filename","header","err","linkname","normalize","onstat","stat","Error","entry","rs","head","list","processGetuid","own","extract","stack","now","Date","validateSymLinks","onentry","stream","next","name","dir","validate","valid","mkdirfix","onfile","onlink","utimes","chperm","dst","inCwd","link","ws","utimesParent","cb","top","chmod","chown","mode","onchown","made","root","st","entries","sort","queue","callback","nextAbs","files","i","level"],"mappings":"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"}