@vscode/vsce 3.9.3-7 → 3.9.3-8

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/out/package.js +39 -2
  2. package/package.json +3 -2
package/out/package.js CHANGED
@@ -65,7 +65,7 @@ const cp = __importStar(require("child_process"));
65
65
  const yazl = __importStar(require("yazl"));
66
66
  const nls_1 = require("./nls");
67
67
  const util = __importStar(require("./util"));
68
- const glob_1 = require("glob");
68
+ const tinyglobby_1 = require("tinyglobby");
69
69
  const minimatch_1 = require("minimatch");
70
70
  const parse5_1 = require("parse5");
71
71
  const marked_1 = require("marked");
@@ -1285,9 +1285,46 @@ const defaultIgnore = [
1285
1285
  '**/.vscode-test/**',
1286
1286
  '**/.vscode-test-web/**',
1287
1287
  ];
1288
+ /**
1289
+ * `tinyglobby` skips symbolic links altogether when `followSymbolicLinks` is disabled, while
1290
+ * vsce treats them as regular files instead (see the `--follow-symlinks` option). Presenting
1291
+ * symbolic links to the crawler as regular files keeps them in the result without recursing
1292
+ * into symlinked directories.
1293
+ */
1294
+ const symlinksAsFilesFileSystem = {
1295
+ readdir: (dir, options, callback) => fs.readdir(dir, options, (err, entries) => callback(err, err ? entries : entries.map(asFile))),
1296
+ readdirSync: (dir, options) => fs.readdirSync(dir, options).map(asFile),
1297
+ };
1298
+ function asFile(entry) {
1299
+ if (!entry.isSymbolicLink()) {
1300
+ return entry;
1301
+ }
1302
+ return Object.create(entry, {
1303
+ isFile: { value: () => true },
1304
+ isDirectory: { value: () => false },
1305
+ isSymbolicLink: { value: () => false },
1306
+ });
1307
+ }
1308
+ /**
1309
+ * `glob` matched patterns case-insensitively on Windows and macOS and case-sensitively
1310
+ * everywhere else, based on `process.platform` rather than on the actual filesystem.
1311
+ * `tinyglobby` always matches case-sensitively, so this keeps the previous behaviour, which
1312
+ * matters for the `node_modules` folder being ignored regardless of how it is cased on disk.
1313
+ * Keep this keyed off the platform: probing the filesystem instead would change what is
1314
+ * packaged on case-sensitive macOS volumes and case-insensitive Linux mounts.
1315
+ */
1316
+ const caseSensitiveMatch = process.platform !== 'win32' && process.platform !== 'darwin';
1288
1317
  async function collectAllFiles(cwd, dependencies, dependencyEntryPoints, followSymlinks = true) {
1289
1318
  const deps = await (0, npm_1.getDependencies)(cwd, dependencies, dependencyEntryPoints);
1290
- const promises = deps.map(dep => (0, glob_1.glob)('**', { cwd: dep, nodir: true, follow: followSymlinks, dot: true, ignore: 'node_modules/**' }).then(files => files.map(f => path.relative(cwd, path.join(dep, f))).map(f => f.replace(/\\/g, '/'))));
1319
+ const promises = deps.map(dep => (0, tinyglobby_1.glob)('**', {
1320
+ cwd: dep,
1321
+ onlyFiles: true,
1322
+ followSymbolicLinks: followSymlinks,
1323
+ fs: followSymlinks ? undefined : symlinksAsFilesFileSystem,
1324
+ caseSensitiveMatch,
1325
+ dot: true,
1326
+ ignore: ['node_modules/**'],
1327
+ }).then(files => files.map(f => path.relative(cwd, path.join(dep, f))).map(f => f.replace(/\\/g, '/'))));
1291
1328
  return Promise.all(promises).then(util.flatten);
1292
1329
  }
1293
1330
  function getDependenciesOption(options) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vscode/vsce",
3
- "version": "3.9.3-7",
3
+ "version": "3.9.3-8",
4
4
  "description": "VS Code Extensions Manager",
5
5
  "repository": {
6
6
  "type": "git",
@@ -50,7 +50,6 @@
50
50
  "cockatiel": "^3.1.2",
51
51
  "commander": "^12.1.0",
52
52
  "form-data": "^4.0.0",
53
- "glob": "^13.0.6",
54
53
  "hosted-git-info": "^4.0.2",
55
54
  "jsonc-parser": "^3.2.0",
56
55
  "leven": "^3.1.0",
@@ -61,6 +60,7 @@
61
60
  "parse5": "^8.0.1",
62
61
  "read": "^1.0.7",
63
62
  "semver": "^7.5.2",
63
+ "tinyglobby": "^0.2.17",
64
64
  "typed-rest-client": "^1.8.4",
65
65
  "url-join": "^4.0.1",
66
66
  "xml2js": "^0.5.0",
@@ -73,6 +73,7 @@
73
73
  "@types/mime": "^1",
74
74
  "@types/mocha": "^7.0.2",
75
75
  "@types/node": "^22.0.0",
76
+ "@types/picomatch": "^4.0.3",
76
77
  "@types/read": "^0.0.28",
77
78
  "@types/semver": "^6.0.0",
78
79
  "@types/url-join": "^4.0.1",