npmdata 0.2.2 → 0.4.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.
package/README.md CHANGED
@@ -14,10 +14,24 @@ Publish folders as npm packages and extract them in any workspace. Use it to dis
14
14
  In the project whose folders you want to share:
15
15
 
16
16
  ```sh
17
- pnpm dlx npmdata init --folders "docs,data,configs"
17
+ # share specific folders by glob pattern (required)
18
+ pnpm dlx npmdata init --files "docs/**,data/**,configs/**"
19
+
20
+ # also bundle an additional package so consumers get data from both sources
21
+ pnpm dlx npmdata init --files "docs/**" --packages shared-configs@^1.0.0
22
+
23
+ # share multiple additional packages at once
24
+ pnpm dlx npmdata init --files "docs/**" --packages "shared-configs@^1.0.0,base-templates@2.x"
25
+
26
+ # skip .gitignore entries for managed files (gitignore is enabled by default)
27
+ pnpm dlx npmdata init --files "docs/**,data/**" --no-gitignore
28
+
29
+ # mark extracted files as unmanaged so consumers can edit them freely;
30
+ # files won't be tracked, made read-only, or added to .gitignore
31
+ pnpm dlx npmdata init --files "templates/**" --unmanaged
18
32
  ```
19
33
 
20
- This updates `package.json` with the right `files`, `bin`, and `dependencies` fields so those folders are included when the package is published. Then publish normally:
34
+ `init` updates `package.json` with the right `files`, `bin`, and `dependencies` fields so those folders are included when the package is published, and writes a thin `bin/npmdata.js` entry point. Then publish normally:
21
35
 
22
36
  ```sh
23
37
  npm publish
@@ -45,8 +59,12 @@ npx npmdata extract --packages my-shared-assets --content-regex "env: production
45
59
  # the new package takes ownership in the marker file
46
60
  npx npmdata extract --packages my-shared-assets --output ./data --force
47
61
 
48
- # also write .gitignore entries for managed files
49
- npx npmdata extract --packages my-shared-assets --output ./data --gitignore
62
+ # skip .gitignore entries for managed files (gitignore is enabled by default)
63
+ npx npmdata extract --packages my-shared-assets --output ./data --no-gitignore
64
+
65
+ # write files without a .npmdata marker or .gitignore entry; files won't be read-only
66
+ # and won't be tracked by npmdata; existing files are left unchanged
67
+ npx npmdata extract --packages my-shared-assets --output ./data --unmanaged
50
68
 
51
69
  # preview what would change without writing any files
52
70
  npx npmdata extract --packages my-shared-assets --output ./data --dry-run
@@ -70,6 +88,27 @@ npx my-shared-assets extract --output ./data
70
88
  npx my-shared-assets check --output ./data
71
89
  ```
72
90
 
91
+ When the data package defines multiple `npmdata` entries in its `package.json`, you can limit which entries are processed using the `--tags` option. Only entries whose `tags` list includes at least one of the requested tags will be extracted; entries with no tags are skipped when a tag filter is active.
92
+
93
+ ```sh
94
+ # run only entries tagged with "prod"
95
+ npx my-shared-assets --tags prod
96
+
97
+ # run entries tagged with either "prod" or "staging"
98
+ npx my-shared-assets --tags prod,staging
99
+ ```
100
+
101
+ To use tags, add a `tags` array to each `npmdata` entry in the data package's `package.json`:
102
+
103
+ ```json
104
+ {
105
+ "npmdata": [
106
+ { "package": "my-shared-assets", "outputDir": "./data", "tags": ["prod"] },
107
+ { "package": "my-dev-assets", "outputDir": "./dev-data", "tags": ["dev", "staging"] }
108
+ ]
109
+ }
110
+ ```
111
+
73
112
  Check the /examples folder to see this in action
74
113
 
75
114
  ### 3. Check files are in sync
@@ -109,24 +148,53 @@ another-pkg@1.0.0
109
148
  data/other-file.txt
110
149
  ```
111
150
 
151
+ ### 5. Purge managed files
152
+
153
+ Remove all files previously extracted by one or more packages without touching any other files in the output directory. No network access or package installation is required — only the local `.npmdata` marker state is used.
154
+
155
+ ```sh
156
+ # remove all files managed by a package
157
+ npx npmdata purge --packages my-shared-assets --output ./data
158
+
159
+ # purge multiple packages at once
160
+ npx npmdata purge --packages "my-shared-assets,another-pkg" --output ./data
161
+
162
+ # preview what would be deleted without removing anything
163
+ npx npmdata purge --packages my-shared-assets --output ./data --dry-run
164
+ ```
165
+
166
+ After a purge, the corresponding entries are removed from the `.npmdata` marker file and any empty directories are cleaned up. `.gitignore` sections written by `extract` are also removed.
167
+
112
168
  ## CLI reference
113
169
 
114
170
  ```
115
171
  Usage:
116
- npx npmdata [init|extract|check|list] [options]
172
+ npx npmdata [init|extract|check|list|purge] [options]
117
173
 
118
174
  Commands:
119
175
  init Set up publishing configuration in a package
120
176
  extract Extract files from a published package into a local directory
121
177
  check Verify local files are in sync with the published package
122
178
  list List all files managed by npmdata in an output directory
179
+ purge Remove all managed files previously extracted by given packages
123
180
 
124
181
  Global options:
125
182
  --help, -h Show help
126
183
  --version, -v Show version
127
184
 
128
185
  Init options:
129
- --folders <list> Comma-separated folders to publish (required)
186
+ --files <patterns> Comma-separated glob patterns of files to publish (required)
187
+ e.g. "docs/**,data/**,configs/*.json"
188
+ --packages <specs> Comma-separated additional package specs to bundle as data sources.
189
+ Each spec is "name" or "name@version", e.g.
190
+ "shared-configs@^1.0.0,base-templates@2.x".
191
+ Listed under `npmdata.additionalPackages` in package.json and
192
+ added to `dependencies` so consumers pull data from all of them.
193
+ --no-gitignore Skip adding .gitignore entries for managed files
194
+ (gitignore is enabled by default)
195
+ --unmanaged Mark all generated npmdata entries as unmanaged: extracted files
196
+ are written without a .npmdata marker, without updating .gitignore,
197
+ and without being made read-only. Existing files are skipped.
130
198
 
131
199
  Extract options:
132
200
  --packages <specs> Comma-separated package specs (required).
@@ -134,7 +202,10 @@ Extract options:
134
202
  "my-pkg@^1.0.0,other-pkg@2.x"
135
203
  --output, -o <dir> Output directory (default: current directory)
136
204
  --force Overwrite existing unmanaged files or files owned by a different package
137
- --gitignore Create/update .gitignore for managed files
205
+ --no-gitignore Skip creating/updating .gitignore (gitignore is enabled by default)
206
+ --unmanaged Write files without a .npmdata marker, .gitignore update, or read-only
207
+ flag. Existing files are skipped. Files can be freely edited afterwards
208
+ and are not tracked by npmdata.
138
209
  --files <patterns> Comma-separated glob patterns to filter files
139
210
  --content-regex <regex> Regex to filter files by content
140
211
  --dry-run Preview changes without writing any files
@@ -144,6 +215,12 @@ Check options:
144
215
  --packages <specs> Same format as extract (required)
145
216
  --output, -o <dir> Output directory to check (default: current directory)
146
217
 
218
+ Purge options:
219
+ --packages <specs> Comma-separated package names whose managed files should be removed
220
+ --output, -o <dir> Output directory to purge from (default: current directory)
221
+ --dry-run Simulate purge without removing any files
222
+ --silent Suppress per-file output
223
+
147
224
  List options:
148
225
  --output, -o <dir> Output directory to inspect (default: current directory)
149
226
  ```
@@ -153,8 +230,8 @@ List options:
153
230
  `npmdata` also exports a programmatic API:
154
231
 
155
232
  ```typescript
156
- import { extract, check, list, initPublisher, parsePackageSpec, isBinaryFile } from 'npmdata';
157
- import type { ConsumerConfig, ConsumerResult, CheckResult, ProgressEvent } from 'npmdata';
233
+ import { extract, check, list, purge, initPublisher, parsePackageSpec, isBinaryFile } from 'npmdata';
234
+ import type { ConsumerConfig, ConsumerResult, CheckResult, PurgeConfig, ProgressEvent } from 'npmdata';
158
235
 
159
236
  // extract files from one package
160
237
  const result = await extract({
@@ -179,6 +256,14 @@ await extract({
179
256
  upgrade: true,
180
257
  });
181
258
 
259
+ // extract without npmdata tracking: files are writable, no .npmdata marker is written,
260
+ // no .gitignore entry is created. Existing files are left untouched (skipped).
261
+ await extract({
262
+ packages: ['shared-templates'],
263
+ outputDir: './templates',
264
+ unmanaged: true,
265
+ });
266
+
182
267
  // track progress file-by-file
183
268
  await extract({
184
269
  packages: ['my-shared-assets@^2.0.0'],
@@ -212,6 +297,29 @@ if (!status.ok) {
212
297
  }
213
298
  }
214
299
 
300
+ // remove all files previously extracted by a package (no network required)
301
+ await purge({
302
+ packages: ['my-shared-assets'],
303
+ outputDir: './data',
304
+ });
305
+
306
+ // dry-run: preview what would be deleted without removing anything
307
+ const purgePreview = await purge({
308
+ packages: ['my-shared-assets'],
309
+ outputDir: './data',
310
+ dryRun: true,
311
+ });
312
+ console.log('Would delete', purgePreview.deleted, 'files');
313
+
314
+ // track progress during purge
315
+ await purge({
316
+ packages: ['my-shared-assets'],
317
+ outputDir: './data',
318
+ onProgress: (event: ProgressEvent) => {
319
+ if (event.type === 'file-deleted') console.log('D', event.file);
320
+ },
321
+ });
322
+
215
323
  // list all files managed by npmdata in an output directory
216
324
  const managed = await list('./data');
217
325
  // managed is Record<string, string[]> keyed by "package@version"
package/bin/npmdata.js ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+
3
+ // DON'T EDIT THIS FILE MANUALLY - this script is generated by "npmdata init" command
4
+ require('npmdata/dist/runner.js').run(__dirname);
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAaA;;GAEG;AAEH,wBAAsB,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAwPhE"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAaA;;GAEG;AAEH,wBAAsB,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAgVhE"}
package/dist/cli.js CHANGED
@@ -37,39 +37,53 @@ async function cli(processArgs) {
37
37
  // Handle init command
38
38
  if (command === 'init') {
39
39
  // eslint-disable-next-line functional/no-let
40
- let sourceFoldersFlag;
40
+ let sourceFilesFlag;
41
41
  // eslint-disable-next-line functional/no-let
42
42
  let additionalPackagesFlag;
43
- // Parse args for --folders and --packages flags
43
+ // eslint-disable-next-line functional/no-let
44
+ let initGitignore = true;
45
+ // eslint-disable-next-line functional/no-let
46
+ let initUnmanaged = false;
47
+ // Parse args for --files and --packages flags
44
48
  // eslint-disable-next-line functional/no-let
45
49
  for (let i = 1; i < args.length; i += 1) {
46
- if (args[i] === '--folders') {
50
+ if (args[i] === '--files') {
47
51
  // eslint-disable-next-line no-plusplus
48
- sourceFoldersFlag = args[++i];
52
+ sourceFilesFlag = args[++i];
49
53
  }
50
54
  else if (args[i] === '--packages') {
51
55
  // eslint-disable-next-line no-plusplus
52
56
  additionalPackagesFlag = args[++i];
53
57
  }
58
+ else if (args[i] === '--no-gitignore') {
59
+ initGitignore = false;
60
+ }
61
+ else if (args[i] === '--unmanaged') {
62
+ initUnmanaged = true;
63
+ }
54
64
  }
55
- // --folders is required
56
- if (!sourceFoldersFlag) {
57
- console.error('Error: --folders option is required for init command');
65
+ // --files is required
66
+ if (!sourceFilesFlag) {
67
+ console.error('Error: --files option is required for init command');
58
68
  printUsage();
59
69
  return 1;
60
70
  }
61
- const folders = sourceFoldersFlag.split(',').map((f) => f.trim());
71
+ const fileGlobs = sourceFilesFlag.split(',').map((f) => f.trim());
62
72
  const additionalPackages = additionalPackagesFlag
63
73
  ? additionalPackagesFlag.split(',').map((p) => p.trim())
64
74
  : [];
65
- const result = await (0, publisher_1.initPublisher)(folders, { additionalPackages });
75
+ const result = await (0, publisher_1.initPublisher)(fileGlobs, {
76
+ additionalPackages,
77
+ gitignore: initGitignore,
78
+ ...(initUnmanaged ? { unmanaged: true } : {}),
79
+ });
66
80
  if (!result.success) {
67
81
  console.error(`\nError: ${result.message}`);
68
82
  return 1;
69
83
  }
70
84
  console.log(`\n${result.message}`);
71
- if (result.publishedFolders) {
72
- console.log(`\nThe following folders will be published: ${result.publishedFolders.join(', ')}`);
85
+ if (result.publishedFiles) {
86
+ console.log(`\nThe following file patterns will be published: ${result.publishedFiles.join(', ')}`);
73
87
  }
74
88
  if (result.additionalPackages && result.additionalPackages.length > 0) {
75
89
  console.log(`\nAdditional data source packages: ${result.additionalPackages.join(', ')}`);
@@ -106,19 +120,85 @@ async function cli(processArgs) {
106
120
  }
107
121
  return 0;
108
122
  }
123
+ // Handle purge command
124
+ if (command === 'purge') {
125
+ let purgePackageSpecs;
126
+ let purgeOutDir = process.cwd();
127
+ let purgeOutputFlagProvided = false;
128
+ let purgeDryRun = false;
129
+ let purgeSilent = false;
130
+ for (let i = 1; i < args.length; i++) {
131
+ if (args[i] === '--packages') {
132
+ purgePackageSpecs = args[++i];
133
+ }
134
+ else if (args[i] === '--output' || args[i] === '-o') {
135
+ purgeOutDir = args[++i];
136
+ purgeOutputFlagProvided = true;
137
+ }
138
+ else if (args[i] === '--dry-run') {
139
+ purgeDryRun = true;
140
+ }
141
+ else if (args[i] === '--silent') {
142
+ purgeSilent = true;
143
+ }
144
+ else if (!args[i].startsWith('-')) {
145
+ purgeOutDir = args[i];
146
+ purgeOutputFlagProvided = true;
147
+ }
148
+ }
149
+ if (!purgePackageSpecs) {
150
+ console.error(`Error: --packages option is required for 'purge' command`);
151
+ printUsage();
152
+ return 1;
153
+ }
154
+ if (!purgeOutputFlagProvided && !purgeSilent) {
155
+ console.info(`No --output specified. Using current directory: ${purgeOutDir}`);
156
+ }
157
+ const purgePackages = purgePackageSpecs.split(',').map((s) => s.trim());
158
+ const purgeOnProgress = purgeSilent
159
+ ? // eslint-disable-next-line no-undefined
160
+ undefined
161
+ : (event) => {
162
+ switch (event.type) {
163
+ case 'package-start':
164
+ console.log(`\n>> Package ${event.packageName}`);
165
+ break;
166
+ case 'file-deleted':
167
+ console.log(`D\t${event.file}`);
168
+ break;
169
+ default:
170
+ break;
171
+ }
172
+ };
173
+ if (!purgeSilent) {
174
+ if (purgeDryRun)
175
+ console.info('Dry run: simulating purge (no files will be removed)...');
176
+ else
177
+ console.info('Purging managed files...');
178
+ }
179
+ const purgeResult = await (0, consumer_1.purge)({
180
+ packages: purgePackages,
181
+ outputDir: node_path_1.default.resolve(purgeOutDir),
182
+ dryRun: purgeDryRun,
183
+ onProgress: purgeOnProgress,
184
+ });
185
+ console.log(`\nPurge complete: ${purgeResult.deleted.length} deleted${purgeDryRun ? ' (dry run)' : ''}`);
186
+ return 0;
187
+ }
109
188
  // Consumer commands (extract, check)
110
189
  if (!['extract', 'check'].includes(command)) {
111
- console.error(`Error: unknown command '${command}'. Use 'init', 'extract', 'check', or 'list'`);
190
+ console.error(`Error: unknown command '${command}'. Use 'init', 'extract', 'check', 'purge', or 'list'`);
112
191
  printUsage();
113
192
  return 1;
114
193
  }
115
194
  // Parse options common to extract and check
116
195
  let packageSpecs;
117
196
  let force = false;
118
- let gitignore = false;
197
+ let gitignore = true;
119
198
  let dryRun = false;
120
199
  let upgrade = false;
121
200
  let silent = false;
201
+ let unmanaged = false;
122
202
  let filenamePatterns;
123
203
  let contentRegexes;
124
204
  let outDir = process.cwd();
@@ -133,8 +213,8 @@ async function cli(processArgs) {
133
213
  else if (args[i] === '--silent') {
134
214
  silent = true;
135
215
  }
136
- else if (args[i] === '--gitignore') {
137
- gitignore = true;
216
+ else if (args[i] === '--no-gitignore') {
217
+ gitignore = false;
138
218
  }
139
219
  else if (args[i] === '--dry-run') {
140
220
  dryRun = true;
@@ -142,6 +222,9 @@ async function cli(processArgs) {
142
222
  else if (args[i] === '--upgrade') {
143
223
  upgrade = true;
144
224
  }
225
+ else if (args[i] === '--unmanaged') {
226
+ unmanaged = true;
227
+ }
145
228
  else if (args[i] === '--files') {
146
229
  filenamePatterns = args[++i];
147
230
  }
@@ -195,6 +278,7 @@ async function cli(processArgs) {
195
278
  gitignore,
196
279
  dryRun,
197
280
  upgrade,
281
+ unmanaged,
198
282
  onProgress,
199
283
  filenamePatterns: filenamePatterns
200
284
  ? filenamePatterns.split(',')
@@ -250,12 +334,13 @@ function printUsage() {
250
334
  npmdata
251
335
 
252
336
  Usage:
253
- npx npmdata [init|extract|check|list] [options]
337
+ npx npmdata [init|extract|check|purge|list] [options]
254
338
 
255
339
  Commands:
256
340
  init Initialize publishing configuration
257
341
  extract Extract files from one or more published packages
258
342
  check Verify if local files are in sync with packages
343
+ purge Remove all managed files written by given packages
259
344
  list List all managed files in the output directory
260
345
 
261
346
  Global Options:
@@ -263,10 +348,12 @@ Global Options:
263
348
  --version, -v Show version
264
349
 
265
350
  Init Options:
266
- --folders <folders> Comma-separated list of source folders to publish (required)
351
+ --files <patterns> Comma-separated glob patterns of files to publish (required)
352
+ e.g. "docs/**,data/**,configs/*.json"
267
353
  --packages <specs> Comma-separated additional package specs to use as data sources.
268
354
  Each spec is "name" or "name@version"
269
355
  e.g. "shared-data@^1.0.0,other-pkg@2.x"
356
+ --unmanaged Mark all npmdata entries as unmanaged (see Extract options)
270
357
 
271
358
  Extract / Check Options:
272
359
  --packages <specs> Comma-separated package specs to extract from (required).
@@ -274,18 +361,27 @@ Extract / Check Options:
274
361
  e.g. "my-pkg@^1.2.3,other-pkg@2.x"
275
362
  --output, -o <dir> Output directory (default: current directory, with a warning)
276
363
  --force Allow overwriting existing unmanaged files
277
- --gitignore Create/update .gitignore to ignore managed files and .publisher
364
+ --no-gitignore Skip creating/updating .gitignore (gitignore is enabled by default)
365
+ --unmanaged Write files without a .npmdata marker, .gitignore update, or
366
+ read-only flag. Existing files are skipped. Files can be freely
367
+ edited afterwards and are not tracked by npmdata.
278
368
  --dry-run Simulate extraction without writing any files
279
369
  --upgrade Re-install packages even when a satisfying version is installed
280
370
  --silent Print only the final result line, suppressing package and file listing
281
371
  --files <pattern> Comma-separated shell glob patterns to filter files
282
372
  --content-regex <regex> Regex pattern to match file contents
283
373
 
374
+ Purge Options:
375
+ --packages <specs> Comma-separated package names whose managed files should be removed
376
+ --output, -o <dir> Output directory to purge from (default: current directory)
377
+ --dry-run Simulate purge without removing any files
378
+ --silent Suppress per-file output
379
+
284
380
  List Options:
285
381
  --output, -o <dir> Directory to inspect (default: current directory)
286
382
 
287
383
  Examples:
288
- npx npmdata init --folders "data,docs,config"
384
+ npx npmdata init --files "data/**,docs/**,configs/*.json"
289
385
  npx npmdata extract --packages mydataset --output ./data
290
386
  npx npmdata extract --packages mydataset@^2.0.0 --output ./data
291
387
  npx npmdata extract --packages "mydataset@^2.0.0,otherpkg@1.x" --output ./data
@@ -296,6 +392,8 @@ Examples:
296
392
  npx npmdata check --packages mydataset --output ./data
297
393
  npx npmdata check --packages "mydataset,otherpkg" --output ./data
298
394
  npx npmdata list --output ./data
395
+ npx npmdata purge --packages mydataset --output ./data
396
+ npx npmdata purge --packages "mydataset,otherpkg" --output ./data
299
397
  `);
300
398
  }
301
399
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ConsumerConfig, ConsumerResult, CheckResult } from './types';
1
+ import { ConsumerConfig, ConsumerResult, CheckResult, ProgressEvent } from './types';
2
2
  /**
3
3
  * Extract files from published packages to output directory.
4
4
  *
@@ -11,13 +11,43 @@ export declare function extract(config: ConsumerConfig): Promise<ConsumerResult>
11
11
  * Check if managed files are in sync with published packages.
12
12
  *
13
13
  * Performs a bidirectional comparison:
14
- * - Files in the .publisher marker that are missing from or modified in the output directory.
14
+ * - Files in the .npmdata marker that are missing from or modified in the output directory.
15
15
  * - Files present in the package (matching filters) that have not been extracted yet ("extra").
16
16
  *
17
17
  * If a version constraint is specified (e.g. "my-pkg@^1.0.0"), the installed version is
18
18
  * validated against it so stale installs are caught.
19
19
  */
20
20
  export declare function check(config: ConsumerConfig): Promise<CheckResult>;
21
+ /**
22
+ * Configuration for a purge operation.
23
+ */
24
+ export type PurgeConfig = {
25
+ /**
26
+ * Package names whose managed files should be removed.
27
+ * Each entry is a bare package name ("my-pkg") or a name with a semver constraint
28
+ * ("my-pkg@^1.2.3") – the version part is ignored; only the name is used for lookup.
29
+ */
30
+ packages: string[];
31
+ /**
32
+ * Output directory from which managed files will be removed.
33
+ */
34
+ outputDir: string;
35
+ /**
36
+ * When true, simulate the purge without writing anything to disk.
37
+ */
38
+ dryRun?: boolean;
39
+ /**
40
+ * Optional callback called for each file event during purge.
41
+ */
42
+ onProgress?: (event: ProgressEvent) => void;
43
+ };
44
+ /**
45
+ * Remove all managed files previously extracted by the given packages from outputDir.
46
+ * Reads .npmdata marker files to discover which files are owned by each package,
47
+ * deletes them from disk, updates the marker files, and cleans up empty directories.
48
+ * No package installation is required – only the local marker state is used.
49
+ */
50
+ export declare function purge(config: PurgeConfig): Promise<ConsumerResult>;
21
51
  /**
22
52
  * List all managed files currently extracted in outputDir, grouped by package.
23
53
  */
@@ -1 +1 @@
1
- {"version":3,"file":"consumer.d.ts","sourceRoot":"","sources":["../src/consumer.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,cAAc,EACd,cAAc,EACd,WAAW,EAGZ,MAAM,SAAS,CAAC;AA8gBjB;;;;;;GAMG;AACH,wBAAsB,OAAO,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAwD7E;AAED;;;;;;;;;GASG;AACH,wBAAsB,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAwFxE;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC,CAwBD"}
1
+ {"version":3,"file":"consumer.d.ts","sourceRoot":"","sources":["../src/consumer.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,cAAc,EACd,cAAc,EACd,WAAW,EAEX,aAAa,EAEd,MAAM,SAAS,CAAC;AAuhBjB;;;;;;GAMG;AACH,wBAAsB,OAAO,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CA0D7E;AAED;;;;;;;;;GASG;AACH,wBAAsB,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAwFxE;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEnB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAC7C,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CA8ExE;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC,CAwBD"}