npmdata 0.2.2 → 0.5.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.
@@ -1 +1 @@
1
- {"version":3,"file":"publisher.js","sourceRoot":"","sources":["../src/publisher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publisher.js","sourceRoot":"","sources":["../src/publisher.ts"],"names":[],"mappings":"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"}
package/dist/runner.d.ts CHANGED
@@ -1,6 +1,67 @@
1
+ import { NpmdataExtractEntry } from './types';
1
2
  /**
2
- * Runs the npmdata CLI (extract or check) on behalf of a publishable package.
3
+ * Build a CLI command string that purges (removes) all managed files for the entry's package
4
+ * from its output directory. No package installation is required.
5
+ */
6
+ export declare function buildPurgeCommand(cliPath: string, entry: NpmdataExtractEntry): string;
7
+ /**
8
+ * Collects all unique tags that appear across the given npmdata entries, sorted alphabetically.
9
+ */
10
+ export declare function collectAllTags(entries: NpmdataExtractEntry[]): string[];
11
+ /**
12
+ * Prints a help message to stdout, listing the extract action, all options, and available tags.
13
+ */
14
+ export declare function printHelp(packageName: string, availableTags: string[]): void;
15
+ /**
16
+ * Parses --tags from an argv array and returns the list of requested tags (split by comma).
17
+ * Returns an empty array when --tags is not present.
18
+ */
19
+ export declare function parseTagsFromArgv(argv: string[]): string[];
20
+ /**
21
+ * Filter entries by requested tags. When no tags are requested all entries pass through.
22
+ * When tags are requested only entries that share at least one tag with the requested list
23
+ * are included.
24
+ */
25
+ export declare function filterEntriesByTags(entries: NpmdataExtractEntry[], requestedTags: string[]): NpmdataExtractEntry[];
26
+ /**
27
+ * Apply the symlink configs from an extraction entry.
28
+ *
29
+ * For each config:
30
+ * 1. Expands the `source` glob inside the resolved `outputDir`.
31
+ * 2. Ensures the `target` directory exists.
32
+ * 3. Removes stale symlinks from the target dir that previously pointed into
33
+ * outputDir but are no longer matched by the current glob result.
34
+ * 4. Creates (or updates) symlinks for every matched file/directory.
35
+ *
36
+ * Only symlinks whose targets live inside outputDir are managed; any other
37
+ * symlinks in the target directory are left untouched.
38
+ */
39
+ export declare function applySymlinks(entry: NpmdataExtractEntry, cwd?: string): void;
40
+ /**
41
+ * Apply the content-replacement configs from an extraction entry.
42
+ *
43
+ * For each config:
44
+ * 1. Expands the `files` glob inside `cwd`.
45
+ * 2. Reads each matched file.
46
+ * 3. Applies the regex replacement (global, multiline).
47
+ * 4. Writes the file back only when the content changed.
48
+ */
49
+ export declare function applyContentReplacements(entry: NpmdataExtractEntry, cwd?: string): void;
50
+ /**
51
+ * Check whether the content-replacement configs from an extraction entry are
52
+ * currently in effect in the workspace.
53
+ *
54
+ * Returns a list of file paths where the replacement pattern still matches
55
+ * (i.e. the replacement has not been applied or has drifted). An empty list
56
+ * means everything is in sync.
57
+ */
58
+ export declare function checkContentReplacements(entry: NpmdataExtractEntry, cwd?: string): string[];
59
+ /**
60
+ * Runs extraction for each entry defined in the publishable package's package.json "npmdata" array.
61
+ * Invokes the npmdata CLI once per entry so that all CLI output and error handling is preserved.
3
62
  * Called from the minimal generated bin script with its own __dirname as binDir.
63
+ *
64
+ * Pass --tags <tag1,tag2> to limit extraction to entries whose tags overlap with the given list.
4
65
  */
5
- export declare function run(binDir: string): void;
66
+ export declare function run(binDir: string, argv?: string[]): void;
6
67
  //# sourceMappingURL=runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAiEA;;;GAGG;AACH,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAwCxC"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAmC9C;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAOrF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,MAAM,EAAE,CAUvE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CA0B5E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAS1D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,mBAAmB,EAAE,EAC9B,aAAa,EAAE,MAAM,EAAE,GACtB,mBAAmB,EAAE,CAKvB;AA8ID;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,GAAE,MAAsB,GAAG,IAAI,CAqC3F;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,mBAAmB,EAC1B,GAAG,GAAE,MAAsB,GAC1B,IAAI,CAaN;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,mBAAmB,EAC1B,GAAG,GAAE,MAAsB,GAC1B,MAAM,EAAE,CAmBV;AAED;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAiB,GAAG,IAAI,CA0CvE"}
package/dist/runner.js CHANGED
@@ -3,95 +3,385 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.buildPurgeCommand = buildPurgeCommand;
7
+ exports.collectAllTags = collectAllTags;
8
+ exports.printHelp = printHelp;
9
+ exports.parseTagsFromArgv = parseTagsFromArgv;
10
+ exports.filterEntriesByTags = filterEntriesByTags;
11
+ exports.applySymlinks = applySymlinks;
12
+ exports.applyContentReplacements = applyContentReplacements;
13
+ exports.checkContentReplacements = checkContentReplacements;
6
14
  exports.run = run;
7
- /* eslint-disable functional/no-let */
15
+ /* eslint-disable no-restricted-syntax */
8
16
  const node_child_process_1 = require("node:child_process");
9
17
  const node_fs_1 = __importDefault(require("node:fs"));
10
18
  const node_path_1 = __importDefault(require("node:path"));
19
+ const minimatch_1 = require("minimatch");
20
+ const utils_1 = require("./utils");
11
21
  /**
12
- * Returns the owning package name plus any additional packages listed in
13
- * `npmdata.additionalPackages` of the package.json at the given path.
22
+ * Extract just the package name (without version specifier) from a package spec string.
23
+ * Delegates to the shared parsePackageSpec utility.
14
24
  */
15
- function collectPackages(pkgJsonPath) {
16
- const pkg = JSON.parse(node_fs_1.default.readFileSync(pkgJsonPath).toString());
17
- const additional = pkg.npmdata?.additionalPackages ?? [];
18
- return [pkg.name, ...additional];
25
+ function parseEntryPackageName(spec) {
26
+ const { name } = (0, utils_1.parsePackageSpec)(spec);
27
+ return { name };
28
+ }
29
+ function buildExtractCommand(cliPath, entry) {
30
+ const outputFlag = ` --output "${entry.outputDir}"`;
31
+ const forceFlag = entry.force ? ' --force' : '';
32
+ const keepExistingFlag = entry.keepExisting ? ' --keep-existing' : '';
33
+ const gitignoreFlag = entry.gitignore === false ? ' --no-gitignore' : '';
34
+ const unmanagedFlag = entry.unmanaged ? ' --unmanaged' : '';
35
+ const silentFlag = entry.silent ? ' --silent' : '';
36
+ const dryRunFlag = entry.dryRun ? ' --dry-run' : '';
37
+ const upgradeFlag = entry.upgrade ? ' --upgrade' : '';
38
+ const filesFlag = entry.files && entry.files.length > 0 ? ` --files "${entry.files.join(',')}"` : '';
39
+ const contentRegexFlag = entry.contentRegexes && entry.contentRegexes.length > 0
40
+ ? ` --content-regex "${entry.contentRegexes.join(',')}"`
41
+ : '';
42
+ return `node "${cliPath}" extract --packages "${entry.package}"${outputFlag}${forceFlag}${keepExistingFlag}${gitignoreFlag}${unmanagedFlag}${silentFlag}${dryRunFlag}${upgradeFlag}${filesFlag}${contentRegexFlag}`;
43
+ }
44
+ /**
45
+ * Build a CLI command string that purges (removes) all managed files for the entry's package
46
+ * from its output directory. No package installation is required.
47
+ */
48
+ function buildPurgeCommand(cliPath, entry) {
49
+ const { name } = parseEntryPackageName(entry.package);
50
+ const outputFlag = ` --output "${entry.outputDir}"`;
51
+ // Propagate silent/dry-run settings from the entry if present.
52
+ const silentFlag = entry.silent ? ' --silent' : '';
53
+ const dryRunFlag = entry.dryRun ? ' --dry-run' : '';
54
+ return `node "${cliPath}" purge --packages "${name}"${outputFlag}${silentFlag}${dryRunFlag}`;
55
+ }
56
+ /**
57
+ * Collects all unique tags that appear across the given npmdata entries, sorted alphabetically.
58
+ */
59
+ function collectAllTags(entries) {
60
+ const tagSet = new Set();
61
+ for (const entry of entries) {
62
+ if (entry.tags) {
63
+ for (const tag of entry.tags) {
64
+ tagSet.add(tag);
65
+ }
66
+ }
67
+ }
68
+ return Array.from(tagSet).sort();
69
+ }
70
+ /**
71
+ * Prints a help message to stdout, listing the extract action, all options, and available tags.
72
+ */
73
+ function printHelp(packageName, availableTags) {
74
+ const tagsLine = availableTags.length > 0 ? availableTags.join(', ') : '(none defined in package.json)';
75
+ const exampleTag = availableTags.length > 0 ? availableTags[0] : 'my-tag';
76
+ process.stdout.write([
77
+ `Usage: ${packageName} <action> [options]`,
78
+ '',
79
+ 'Actions:',
80
+ ' extract Extract files from the source package(s) defined in package.json',
81
+ '',
82
+ 'Options:',
83
+ ' --help Show this help message',
84
+ ' --tags <tag1,tag2> Limit extraction to entries whose tags overlap (comma-separated)',
85
+ '',
86
+ `Available tags: ${tagsLine}`,
87
+ '',
88
+ 'Examples:',
89
+ ` ${packageName} extract`,
90
+ ' Extract files for all entries defined in package.json',
91
+ '',
92
+ ` ${packageName} extract --tags ${exampleTag}`,
93
+ ` Extract files only for entries tagged "${exampleTag}"`,
94
+ '',
95
+ ].join('\n'));
96
+ }
97
+ /**
98
+ * Parses --tags from an argv array and returns the list of requested tags (split by comma).
99
+ * Returns an empty array when --tags is not present.
100
+ */
101
+ function parseTagsFromArgv(argv) {
102
+ const idx = argv.indexOf('--tags');
103
+ if (idx === -1 || idx + 1 >= argv.length) {
104
+ return [];
105
+ }
106
+ return argv[idx + 1]
107
+ .split(',')
108
+ .map((t) => t.trim())
109
+ .filter(Boolean);
110
+ }
111
+ /**
112
+ * Filter entries by requested tags. When no tags are requested all entries pass through.
113
+ * When tags are requested only entries that share at least one tag with the requested list
114
+ * are included.
115
+ */
116
+ function filterEntriesByTags(entries, requestedTags) {
117
+ if (requestedTags.length === 0) {
118
+ return entries;
119
+ }
120
+ return entries.filter((entry) => entry.tags && entry.tags.some((t) => requestedTags.includes(t)));
121
+ }
122
+ // ─── Glob helpers ─────────────────────────────────────────────────────────────
123
+ /**
124
+ * Walk a directory tree and return the absolute paths of every node (file or
125
+ * directory) whose path relative to `rootDir` matches `pattern`.
126
+ */
127
+ function globMatchInDir(rootDir, pattern) {
128
+ const results = [];
129
+ const walk = (dir, rel) => {
130
+ if (!node_fs_1.default.existsSync(dir))
131
+ return;
132
+ for (const name of node_fs_1.default.readdirSync(dir)) {
133
+ const fullPath = node_path_1.default.join(dir, name);
134
+ const relPath = rel ? `${rel}/${name}` : name;
135
+ if ((0, minimatch_1.minimatch)(relPath, pattern, { dot: true })) {
136
+ // eslint-disable-next-line functional/immutable-data
137
+ results.push(fullPath);
138
+ }
139
+ // Always descend into directories so patterns like **/skills/** can match
140
+ // entries deep in the tree even when the directory itself didn't match.
141
+ const stat = node_fs_1.default.statSync(fullPath);
142
+ if (stat.isDirectory()) {
143
+ walk(fullPath, relPath);
144
+ }
145
+ }
146
+ };
147
+ walk(rootDir, '');
148
+ return results;
149
+ }
150
+ /**
151
+ * Walk a directory tree and return the absolute paths of files (not directories)
152
+ * whose path relative to `rootDir` matches `pattern`.
153
+ */
154
+ function globMatchFiles(rootDir, pattern) {
155
+ const results = [];
156
+ const walk = (dir, rel) => {
157
+ if (!node_fs_1.default.existsSync(dir))
158
+ return;
159
+ for (const name of node_fs_1.default.readdirSync(dir)) {
160
+ const fullPath = node_path_1.default.join(dir, name);
161
+ const relPath = rel ? `${rel}/${name}` : name;
162
+ const stat = node_fs_1.default.statSync(fullPath);
163
+ if (stat.isDirectory()) {
164
+ walk(fullPath, relPath);
165
+ }
166
+ else if ((0, minimatch_1.minimatch)(relPath, pattern, { dot: true })) {
167
+ // eslint-disable-next-line functional/immutable-data
168
+ results.push(fullPath);
169
+ }
170
+ }
171
+ };
172
+ walk(rootDir, '');
173
+ return results;
19
174
  }
20
- function parseArgs(extraArgs) {
21
- let outputDir;
22
- let force = false;
23
- let gitignore = false;
24
- let silent = false;
25
- let dryRun = false;
26
- let upgrade = false;
27
- let files;
28
- let contentRegex;
29
- for (let i = 0; i < extraArgs.length; i += 1) {
30
- if (extraArgs[i] === '--output' || extraArgs[i] === '-o') {
31
- outputDir = extraArgs[i + 1];
32
- i += 1;
175
+ /**
176
+ * Collect all existing symlinks in `targetDir` whose resolved (or as-written)
177
+ * link target starts with `outputDir`. Returns a map of basename → resolved
178
+ * target path. Dead symlinks that still point into outputDir are included so
179
+ * that they can be cleaned up.
180
+ */
181
+ function collectManagedSymlinks(targetDir, outputDir) {
182
+ const owned = new Map();
183
+ if (!node_fs_1.default.existsSync(targetDir))
184
+ return owned;
185
+ // Resolve outputDir through any intermediate symlinks (e.g. /var /private/var on macOS)
186
+ // so prefix comparisons work correctly on all platforms.
187
+ // eslint-disable-next-line functional/no-let, functional/no-try-statements
188
+ let resolvedOutputDir = outputDir;
189
+ // eslint-disable-next-line functional/no-try-statements
190
+ try {
191
+ resolvedOutputDir = node_fs_1.default.realpathSync(outputDir);
192
+ }
193
+ catch {
194
+ // If outputDir does not exist, fall back to the raw path.
195
+ }
196
+ const normalizedOutput = resolvedOutputDir.endsWith(node_path_1.default.sep)
197
+ ? resolvedOutputDir
198
+ : `${resolvedOutputDir}${node_path_1.default.sep}`;
199
+ for (const name of node_fs_1.default.readdirSync(targetDir)) {
200
+ const symlinkPath = node_path_1.default.join(targetDir, name);
201
+ const lstat = node_fs_1.default.lstatSync(symlinkPath);
202
+ if (lstat.isSymbolicLink()) {
203
+ // Try to resolve (handles live symlinks).
204
+ // eslint-disable-next-line functional/no-try-statements
205
+ try {
206
+ const resolved = node_fs_1.default.realpathSync(symlinkPath);
207
+ if (resolved === resolvedOutputDir || resolved.startsWith(normalizedOutput)) {
208
+ owned.set(name, resolved);
209
+ }
210
+ }
211
+ catch {
212
+ // Dead symlink – read the raw link target to see if it points into outputDir.
213
+ const rawTarget = node_fs_1.default.readlinkSync(symlinkPath);
214
+ const absTarget = node_path_1.default.resolve(targetDir, rawTarget);
215
+ const resolvedAbsTarget = absTarget; // raw path is enough for dead-link check
216
+ if (resolvedAbsTarget === outputDir ||
217
+ resolvedAbsTarget.startsWith(`${outputDir}${node_path_1.default.sep}`)) {
218
+ owned.set(name, absTarget);
219
+ }
220
+ }
33
221
  }
34
- else if (extraArgs[i] === '--force') {
35
- force = true;
222
+ }
223
+ return owned;
224
+ }
225
+ /**
226
+ * Determine the symlink action for a single target path.
227
+ * Returns 'create' when the path does not exist, 'update' when an out-of-date
228
+ * managed symlink exists, or 'skip' when nothing should be done.
229
+ */
230
+ function symlinkAction(symlinkPath, sourcePath, isManaged) {
231
+ // eslint-disable-next-line functional/no-try-statements
232
+ try {
233
+ const lstat = node_fs_1.default.lstatSync(symlinkPath);
234
+ if (!lstat.isSymbolicLink())
235
+ return 'skip'; // Non-symlink – never clobber.
236
+ if (!isManaged)
237
+ return 'skip'; // Not managed by npmdata – leave alone.
238
+ // Managed symlink: only recreate if the target has drifted.
239
+ // eslint-disable-next-line functional/no-try-statements
240
+ try {
241
+ return node_fs_1.default.realpathSync(symlinkPath) === sourcePath ? 'skip' : 'update';
36
242
  }
37
- else if (extraArgs[i] === '--gitignore') {
38
- gitignore = true;
243
+ catch {
244
+ return 'update'; // Dead link – recreate.
39
245
  }
40
- else if (extraArgs[i] === '--silent') {
41
- silent = true;
246
+ }
247
+ catch {
248
+ return 'create'; // Path does not exist.
249
+ }
250
+ }
251
+ // ─── Post-extract operations ───────────────────────────────────────────────────
252
+ /**
253
+ * Apply the symlink configs from an extraction entry.
254
+ *
255
+ * For each config:
256
+ * 1. Expands the `source` glob inside the resolved `outputDir`.
257
+ * 2. Ensures the `target` directory exists.
258
+ * 3. Removes stale symlinks from the target dir that previously pointed into
259
+ * outputDir but are no longer matched by the current glob result.
260
+ * 4. Creates (or updates) symlinks for every matched file/directory.
261
+ *
262
+ * Only symlinks whose targets live inside outputDir are managed; any other
263
+ * symlinks in the target directory are left untouched.
264
+ */
265
+ function applySymlinks(entry, cwd = process.cwd()) {
266
+ if (!entry.symlinks || entry.symlinks.length === 0)
267
+ return;
268
+ const outputDir = node_path_1.default.resolve(cwd, entry.outputDir);
269
+ for (const cfg of entry.symlinks) {
270
+ const targetDir = node_path_1.default.resolve(cwd, cfg.target);
271
+ node_fs_1.default.mkdirSync(targetDir, { recursive: true });
272
+ // Build desired symlink map: basename (in target) → absolute source path.
273
+ const desired = new Map();
274
+ for (const absMatch of globMatchInDir(outputDir, cfg.source)) {
275
+ desired.set(node_path_1.default.basename(absMatch), absMatch);
42
276
  }
43
- else if (extraArgs[i] === '--dry-run') {
44
- dryRun = true;
277
+ // Remove stale managed symlinks that are no longer in the desired set.
278
+ const existing = collectManagedSymlinks(targetDir, outputDir);
279
+ for (const [basename] of existing) {
280
+ if (!desired.has(basename)) {
281
+ node_fs_1.default.unlinkSync(node_path_1.default.join(targetDir, basename));
282
+ }
45
283
  }
46
- else if (extraArgs[i] === '--upgrade') {
47
- upgrade = true;
284
+ // Create or update symlinks.
285
+ for (const [basename, sourcePath] of desired) {
286
+ const symlinkPath = node_path_1.default.join(targetDir, basename);
287
+ const action = symlinkAction(symlinkPath, sourcePath, existing.has(basename));
288
+ if (action === 'update') {
289
+ node_fs_1.default.unlinkSync(symlinkPath);
290
+ node_fs_1.default.symlinkSync(sourcePath, symlinkPath);
291
+ }
292
+ else if (action === 'create') {
293
+ node_fs_1.default.symlinkSync(sourcePath, symlinkPath);
294
+ }
295
+ // 'skip' → do nothing
48
296
  }
49
- else if (extraArgs[i] === '--files') {
50
- files = extraArgs[i + 1];
51
- i += 1;
297
+ }
298
+ }
299
+ /**
300
+ * Apply the content-replacement configs from an extraction entry.
301
+ *
302
+ * For each config:
303
+ * 1. Expands the `files` glob inside `cwd`.
304
+ * 2. Reads each matched file.
305
+ * 3. Applies the regex replacement (global, multiline).
306
+ * 4. Writes the file back only when the content changed.
307
+ */
308
+ function applyContentReplacements(entry, cwd = process.cwd()) {
309
+ if (!entry.contentReplacements || entry.contentReplacements.length === 0)
310
+ return;
311
+ for (const cfg of entry.contentReplacements) {
312
+ const regex = new RegExp(cfg.match, 'gm');
313
+ for (const filePath of globMatchFiles(cwd, cfg.files)) {
314
+ const original = node_fs_1.default.readFileSync(filePath, 'utf8');
315
+ const updated = original.replace(regex, cfg.replace);
316
+ if (updated !== original) {
317
+ node_fs_1.default.writeFileSync(filePath, updated, 'utf8');
318
+ }
52
319
  }
53
- else if (extraArgs[i] === '--content-regex') {
54
- contentRegex = extraArgs[i + 1];
55
- i += 1;
320
+ }
321
+ }
322
+ /**
323
+ * Check whether the content-replacement configs from an extraction entry are
324
+ * currently in effect in the workspace.
325
+ *
326
+ * Returns a list of file paths where the replacement pattern still matches
327
+ * (i.e. the replacement has not been applied or has drifted). An empty list
328
+ * means everything is in sync.
329
+ */
330
+ function checkContentReplacements(entry, cwd = process.cwd()) {
331
+ if (!entry.contentReplacements || entry.contentReplacements.length === 0)
332
+ return [];
333
+ const outOfSync = [];
334
+ for (const cfg of entry.contentReplacements) {
335
+ const regex = new RegExp(cfg.match, 'gm');
336
+ for (const filePath of globMatchFiles(cwd, cfg.files)) {
337
+ const content = node_fs_1.default.readFileSync(filePath, 'utf8');
338
+ // A file is out of sync when applying the replacement would change it.
339
+ const expected = content.replace(regex, cfg.replace);
340
+ if (expected !== content) {
341
+ // eslint-disable-next-line functional/immutable-data
342
+ outOfSync.push(filePath);
343
+ }
56
344
  }
57
345
  }
58
- return { outputDir, force, gitignore, silent, dryRun, upgrade, files, contentRegex };
346
+ return outOfSync;
59
347
  }
60
348
  /**
61
- * Runs the npmdata CLI (extract or check) on behalf of a publishable package.
349
+ * Runs extraction for each entry defined in the publishable package's package.json "npmdata" array.
350
+ * Invokes the npmdata CLI once per entry so that all CLI output and error handling is preserved.
62
351
  * Called from the minimal generated bin script with its own __dirname as binDir.
352
+ *
353
+ * Pass --tags <tag1,tag2> to limit extraction to entries whose tags overlap with the given list.
63
354
  */
64
- function run(binDir) {
355
+ function run(binDir, argv = process.argv) {
65
356
  const pkgJsonPath = node_path_1.default.join(binDir, '../package.json');
66
- const allPackages = collectPackages(pkgJsonPath);
67
- const fpCliPath = require.resolve('npmdata/dist/main.js', {
68
- paths: [binDir],
69
- });
70
- const action = process.argv[2] ?? 'extract';
71
- if (action !== 'extract' && action !== 'check' && action !== 'list') {
72
- process.stderr.write(`Invalid action: "${action}". Must be "extract", "check", or "list".\n`);
73
- // eslint-disable-next-line unicorn/no-process-exit
74
- process.exit(1);
357
+ const pkg = JSON.parse(node_fs_1.default.readFileSync(pkgJsonPath).toString());
358
+ const allEntries = pkg.npmdata && pkg.npmdata.length > 0 ? pkg.npmdata : [{ package: pkg.name, outputDir: '.' }];
359
+ const userArgs = argv.slice(2);
360
+ if (userArgs.length === 0 || userArgs.includes('--help')) {
361
+ printHelp(pkg.name, collectAllTags(allEntries));
362
+ return;
363
+ }
364
+ const action = userArgs[0];
365
+ if (action !== 'extract') {
366
+ process.stderr.write(`Error: unknown action '${action}'. Use 'extract'.\n\n`);
367
+ printHelp(pkg.name, collectAllTags(allEntries));
368
+ return;
75
369
  }
76
- const { outputDir, force, gitignore, silent, dryRun, upgrade, files, contentRegex } = parseArgs(process.argv.slice(3));
77
- const outputFlag = outputDir ? ` --output "${outputDir}"` : '';
78
- let command;
79
- if (action === 'list') {
80
- command = `node "${fpCliPath}" list${outputFlag}`;
370
+ const requestedTags = parseTagsFromArgv(argv);
371
+ const entries = filterEntriesByTags(allEntries, requestedTags);
372
+ const excludedEntries = requestedTags.length > 0 ? allEntries.filter((e) => !entries.includes(e)) : [];
373
+ const cliPath = require.resolve('npmdata/dist/main.js', { paths: [binDir] });
374
+ for (const entry of entries) {
375
+ const command = buildExtractCommand(cliPath, entry);
376
+ (0, node_child_process_1.execSync)(command, { stdio: 'inherit' });
377
+ applySymlinks(entry, process.cwd());
378
+ applyContentReplacements(entry, process.cwd());
81
379
  }
82
- else {
83
- const forceFlag = force ? ' --force' : '';
84
- const gitignoreFlag = gitignore ? ' --gitignore' : '';
85
- const silentFlag = silent ? ' --silent' : '';
86
- const dryRunFlag = dryRun ? ' --dry-run' : '';
87
- const upgradeFlag = upgrade ? ' --upgrade' : '';
88
- const filesFlag = files ? ` --files "${files}"` : '';
89
- const contentRegexFlag = contentRegex ? ` --content-regex "${contentRegex}"` : '';
90
- command = `node "${fpCliPath}" ${action} --packages "${allPackages.join(',')}"${outputFlag}${forceFlag}${gitignoreFlag}${silentFlag}${dryRunFlag}${upgradeFlag}${filesFlag}${contentRegexFlag}`;
380
+ // When a tag filter is active, purge managed files from excluded entries so that
381
+ // the output directory contains only files from the currently active tag group.
382
+ for (const entry of excludedEntries) {
383
+ const command = buildPurgeCommand(cliPath, entry);
384
+ (0, node_child_process_1.execSync)(command, { stdio: 'inherit' });
91
385
  }
92
- process.on('uncaughtException', () => {
93
- process.exit(3);
94
- });
95
- (0, node_child_process_1.execSync)(command, { stdio: 'inherit' });
96
386
  }
97
387
  //# sourceMappingURL=runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}