filedist 0.31.0 → 0.34.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 (129) hide show
  1. package/README.md +301 -254
  2. package/dist/cli/actions/check.d.ts +5 -2
  3. package/dist/cli/actions/check.d.ts.map +1 -1
  4. package/dist/cli/actions/check.js +9 -3
  5. package/dist/cli/actions/check.js.map +1 -1
  6. package/dist/cli/actions/init.d.ts.map +1 -1
  7. package/dist/cli/actions/init.js +10 -3
  8. package/dist/cli/actions/init.js.map +1 -1
  9. package/dist/cli/actions/install.d.ts +7 -0
  10. package/dist/cli/actions/install.d.ts.map +1 -0
  11. package/dist/cli/actions/{extract.js → install.js} +15 -13
  12. package/dist/cli/actions/install.js.map +1 -0
  13. package/dist/cli/actions/list.d.ts +1 -1
  14. package/dist/cli/actions/list.d.ts.map +1 -1
  15. package/dist/cli/actions/list.js +4 -2
  16. package/dist/cli/actions/list.js.map +1 -1
  17. package/dist/cli/actions/remove.d.ts +20 -0
  18. package/dist/cli/actions/remove.d.ts.map +1 -0
  19. package/dist/cli/actions/remove.js +133 -0
  20. package/dist/cli/actions/remove.js.map +1 -0
  21. package/dist/cli/actions/update.d.ts +8 -0
  22. package/dist/cli/actions/update.d.ts.map +1 -0
  23. package/dist/cli/actions/update.js +40 -0
  24. package/dist/cli/actions/update.js.map +1 -0
  25. package/dist/cli/argv.d.ts +8 -5
  26. package/dist/cli/argv.d.ts.map +1 -1
  27. package/dist/cli/argv.js +40 -15
  28. package/dist/cli/argv.js.map +1 -1
  29. package/dist/cli/binpkg.d.ts +1 -12
  30. package/dist/cli/binpkg.d.ts.map +1 -1
  31. package/dist/cli/binpkg.js +65 -12
  32. package/dist/cli/binpkg.js.map +1 -1
  33. package/dist/cli/cli.d.ts.map +1 -1
  34. package/dist/cli/cli.js +80 -41
  35. package/dist/cli/cli.js.map +1 -1
  36. package/dist/cli/usage.d.ts.map +1 -1
  37. package/dist/cli/usage.js +65 -33
  38. package/dist/cli/usage.js.map +1 -1
  39. package/dist/fileset/check.d.ts +0 -1
  40. package/dist/fileset/check.d.ts.map +1 -1
  41. package/dist/fileset/check.js +7 -8
  42. package/dist/fileset/check.js.map +1 -1
  43. package/dist/fileset/constants.d.ts.map +1 -1
  44. package/dist/fileset/constants.js +3 -2
  45. package/dist/fileset/constants.js.map +1 -1
  46. package/dist/fileset/execute.d.ts.map +1 -1
  47. package/dist/fileset/execute.js +2 -1
  48. package/dist/fileset/execute.js.map +1 -1
  49. package/dist/fileset/gitignore.js +3 -3
  50. package/dist/fileset/gitignore.js.map +1 -1
  51. package/dist/fileset/markers.d.ts +1 -2
  52. package/dist/fileset/markers.d.ts.map +1 -1
  53. package/dist/fileset/markers.js +6 -14
  54. package/dist/fileset/markers.js.map +1 -1
  55. package/dist/fileset/test-utils.d.ts.map +1 -1
  56. package/dist/fileset/test-utils.js +2 -1
  57. package/dist/fileset/test-utils.js.map +1 -1
  58. package/dist/index.d.ts +9 -5
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +15 -5
  61. package/dist/index.js.map +1 -1
  62. package/dist/package/action-check.d.ts +19 -9
  63. package/dist/package/action-check.d.ts.map +1 -1
  64. package/dist/package/action-check.js +76 -32
  65. package/dist/package/action-check.js.map +1 -1
  66. package/dist/package/action-init.d.ts +6 -2
  67. package/dist/package/action-init.d.ts.map +1 -1
  68. package/dist/package/action-init.js +26 -15
  69. package/dist/package/action-init.js.map +1 -1
  70. package/dist/package/action-install.d.ts +22 -0
  71. package/dist/package/action-install.d.ts.map +1 -0
  72. package/dist/package/{action-extract.js → action-install.js} +205 -32
  73. package/dist/package/action-install.js.map +1 -0
  74. package/dist/package/action-list.d.ts +5 -2
  75. package/dist/package/action-list.d.ts.map +1 -1
  76. package/dist/package/action-list.js +5 -4
  77. package/dist/package/action-list.js.map +1 -1
  78. package/dist/package/action-remove.d.ts +65 -0
  79. package/dist/package/action-remove.d.ts.map +1 -0
  80. package/dist/package/action-remove.js +171 -0
  81. package/dist/package/action-remove.js.map +1 -0
  82. package/dist/package/action-update.d.ts +28 -0
  83. package/dist/package/action-update.d.ts.map +1 -0
  84. package/dist/package/action-update.js +45 -0
  85. package/dist/package/action-update.js.map +1 -0
  86. package/dist/package/calculate-diff.d.ts +1 -1
  87. package/dist/package/calculate-diff.d.ts.map +1 -1
  88. package/dist/package/calculate-diff.js +11 -13
  89. package/dist/package/calculate-diff.js.map +1 -1
  90. package/dist/package/config.d.ts +40 -27
  91. package/dist/package/config.d.ts.map +1 -1
  92. package/dist/package/config.js +164 -113
  93. package/dist/package/config.js.map +1 -1
  94. package/dist/package/index.d.ts +6 -4
  95. package/dist/package/index.d.ts.map +1 -1
  96. package/dist/package/index.js +7 -5
  97. package/dist/package/index.js.map +1 -1
  98. package/dist/package/lockfile.d.ts +69 -0
  99. package/dist/package/lockfile.d.ts.map +1 -0
  100. package/dist/package/lockfile.js +192 -0
  101. package/dist/package/lockfile.js.map +1 -0
  102. package/dist/package/resolve-files.d.ts +14 -0
  103. package/dist/package/resolve-files.d.ts.map +1 -1
  104. package/dist/package/resolve-files.js +5 -1
  105. package/dist/package/resolve-files.js.map +1 -1
  106. package/dist/package/source.d.ts +13 -0
  107. package/dist/package/source.d.ts.map +1 -1
  108. package/dist/package/source.js +32 -11
  109. package/dist/package/source.js.map +1 -1
  110. package/dist/package/symlinks.d.ts.map +1 -1
  111. package/dist/package/symlinks.js +8 -3
  112. package/dist/package/symlinks.js.map +1 -1
  113. package/dist/types.d.ts +7 -6
  114. package/dist/types.d.ts.map +1 -1
  115. package/package.json +1 -2
  116. package/dist/cli/actions/extract.d.ts +0 -7
  117. package/dist/cli/actions/extract.d.ts.map +0 -1
  118. package/dist/cli/actions/extract.js.map +0 -1
  119. package/dist/cli/actions/purge.d.ts +0 -6
  120. package/dist/cli/actions/purge.d.ts.map +0 -1
  121. package/dist/cli/actions/purge.js +0 -42
  122. package/dist/cli/actions/purge.js.map +0 -1
  123. package/dist/package/action-extract.d.ts +0 -20
  124. package/dist/package/action-extract.d.ts.map +0 -1
  125. package/dist/package/action-extract.js.map +0 -1
  126. package/dist/package/action-purge.d.ts +0 -19
  127. package/dist/package/action-purge.d.ts.map +0 -1
  128. package/dist/package/action-purge.js +0 -135
  129. package/dist/package/action-purge.js.map +0 -1
@@ -0,0 +1,65 @@
1
+ import { ProgressEvent } from '../types';
2
+ import { InstallResult } from './action-install';
3
+ export type RemoveOptions = {
4
+ /**
5
+ * Working directory; used to discover config file and resolve output paths.
6
+ */
7
+ cwd: string;
8
+ /**
9
+ * When true, removes all set entries. Mutually exclusive with packageSpec.
10
+ */
11
+ all?: boolean;
12
+ /**
13
+ * Package spec to remove. Version/ref is ignored during matching, so both
14
+ * "xdrs-core" and "xdrs-core@1.0.0" match an entry whose package field
15
+ * starts with "xdrs-core". Required when all is not true.
16
+ */
17
+ packageSpec?: string;
18
+ /**
19
+ * Optional: restrict removal to entries whose output.path equals this value.
20
+ * When omitted, all entries for the package are removed.
21
+ */
22
+ outputPath?: string;
23
+ /**
24
+ * Optional: restrict removal to entries that contain ALL of these preset tags.
25
+ */
26
+ presets?: string[];
27
+ /**
28
+ * Explicit path to the config file. When omitted, the config is auto-discovered
29
+ * via cosmiconfig (same as the `install` command).
30
+ */
31
+ configFilePath: string;
32
+ lockfilePath: string;
33
+ dryRun?: boolean;
34
+ verbose?: boolean;
35
+ onProgress?: (event: ProgressEvent) => void;
36
+ };
37
+ export type RemoveSummary = {
38
+ /** Number of config entries that were removed (or would be removed in dry-run). */
39
+ removedEntries: number;
40
+ /** Result from the subsequent install run that cleared the output directories. */
41
+ install: InstallResult;
42
+ /** True when the lock file was deleted (only possible on --all with full cleanup). */
43
+ lockfileDeleted?: boolean;
44
+ /** True when the config file was deleted (only possible on --all with full cleanup). */
45
+ configFileDeleted?: boolean;
46
+ };
47
+ /**
48
+ * Remove matching config entries and run a full install with the remaining entries
49
+ * so that the lockfile is updated and removed files are deleted from output directories.
50
+ *
51
+ * Steps:
52
+ * 1. Discover the config file path (unless `configFilePath` is supplied). Throws when
53
+ * no config file is found — the config file is required for this command.
54
+ * 2. Partition the config sets: when `all=true`, all entries are removed; otherwise
55
+ * entries matching `packageSpec` (plus optional `outputPath` / `presets` filters)
56
+ * are removed. Throws when no matching entries are found.
57
+ * 3. Rewrite the config file on disk with only the `toKeep` entries.
58
+ * 4. Call `actionInstall` with the remaining entries (`frozenLockfile: false`)
59
+ * so the lockfile is updated and files for removed entries are deleted from disk.
60
+ *
61
+ * This has the same effect as manually deleting the matching sets from the config
62
+ * file and running `filedist install`.
63
+ */
64
+ export declare function actionRemove(options: RemoveOptions): Promise<RemoveSummary>;
65
+ //# sourceMappingURL=action-remove.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-remove.d.ts","sourceRoot":"","sources":["../../src/package/action-remove.ts"],"names":[],"mappings":"AAKA,OAAO,EAAwB,aAAa,EAAE,MAAM,UAAU,CAAC;AAE/D,OAAO,EAAiB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGhE,MAAM,MAAM,aAAa,GAAG;IAC1B;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IACd;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,mFAAmF;IACnF,cAAc,EAAE,MAAM,CAAC;IACvB,kFAAkF;IAClF,OAAO,EAAE,aAAa,CAAC;IACvB,sFAAsF;IACtF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wFAAwF;IACxF,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AA6CF;;;;;;;;;;;;;;;;GAgBG;AAEH,wBAAsB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CA8HjF"}
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.actionRemove = actionRemove;
7
+ /* eslint-disable no-console */
8
+ const node_fs_1 = __importDefault(require("node:fs"));
9
+ const js_yaml_1 = __importDefault(require("js-yaml"));
10
+ const action_install_1 = require("./action-install");
11
+ const config_1 = require("./config");
12
+ /**
13
+ * Split config sets into the entries to remove and the entries to keep.
14
+ */
15
+ function partitionSets(sets, targetName, outputPath, presets) {
16
+ const toRemove = [];
17
+ const toKeep = [];
18
+ for (const e of sets) {
19
+ if (!e.package) {
20
+ toKeep.push(e);
21
+ continue;
22
+ }
23
+ const match = (0, config_1.packageNameWithoutRef)(e.package) === targetName;
24
+ // eslint-disable-next-line no-undefined
25
+ const outputMatch = outputPath === undefined || e.output?.path === outputPath;
26
+ // eslint-disable-next-line no-undefined
27
+ const presetsMatch = presets === undefined || presets.every((p) => e.presets?.includes(p));
28
+ if (match && outputMatch && presetsMatch) {
29
+ toRemove.push(e);
30
+ }
31
+ else {
32
+ toKeep.push(e);
33
+ }
34
+ }
35
+ return { toRemove, toKeep };
36
+ }
37
+ /**
38
+ * Read and parse sets from a YAML config file. Returns [] when file is missing or empty.
39
+ */
40
+ function readConfigSets(filePath) {
41
+ try {
42
+ const raw = node_fs_1.default.readFileSync(filePath, 'utf8');
43
+ const parsed = js_yaml_1.default.load(raw);
44
+ return parsed?.sets ?? [];
45
+ }
46
+ catch {
47
+ return [];
48
+ }
49
+ }
50
+ /**
51
+ * Remove matching config entries and run a full install with the remaining entries
52
+ * so that the lockfile is updated and removed files are deleted from output directories.
53
+ *
54
+ * Steps:
55
+ * 1. Discover the config file path (unless `configFilePath` is supplied). Throws when
56
+ * no config file is found — the config file is required for this command.
57
+ * 2. Partition the config sets: when `all=true`, all entries are removed; otherwise
58
+ * entries matching `packageSpec` (plus optional `outputPath` / `presets` filters)
59
+ * are removed. Throws when no matching entries are found.
60
+ * 3. Rewrite the config file on disk with only the `toKeep` entries.
61
+ * 4. Call `actionInstall` with the remaining entries (`frozenLockfile: false`)
62
+ * so the lockfile is updated and files for removed entries are deleted from disk.
63
+ *
64
+ * This has the same effect as manually deleting the matching sets from the config
65
+ * file and running `filedist install`.
66
+ */
67
+ // eslint-disable-next-line complexity
68
+ async function actionRemove(options) {
69
+ const { cwd, packageSpec, all = false, outputPath, presets, dryRun = false, verbose = false, onProgress, } = options;
70
+ // ── Resolve config file path ──────────────────────────────────────────────
71
+ const { configFilePath } = options;
72
+ const currentSets = readConfigSets(configFilePath);
73
+ // ── Determine which entries to remove and which to keep ───────────────────
74
+ let toRemove;
75
+ let toKeep;
76
+ if (all) {
77
+ toRemove = currentSets.slice();
78
+ toKeep = [];
79
+ if (verbose) {
80
+ console.log(`[verbose] actionRemove: removing all ${toRemove.length} config entries` +
81
+ (configFilePath ? ` from ${configFilePath}` : ''));
82
+ }
83
+ }
84
+ else {
85
+ if (!packageSpec) {
86
+ throw new Error('actionRemove: packageSpec is required when all is not true');
87
+ }
88
+ const targetName = (0, config_1.packageNameWithoutRef)(packageSpec);
89
+ if (verbose) {
90
+ console.log(`[verbose] actionRemove: removing entries for "${targetName}"` +
91
+ (outputPath ? ` (output: ${outputPath})` : '') +
92
+ (presets ? ` (presets: ${presets.join(',')})` : '') +
93
+ (configFilePath ? ` from ${configFilePath}` : ' (no config file found)'));
94
+ }
95
+ ({ toRemove, toKeep } = partitionSets(currentSets, targetName, outputPath, presets));
96
+ if (toRemove.length === 0) {
97
+ throw new Error(`No entries found for "${packageSpec}"` +
98
+ (outputPath ? ` with output "${outputPath}"` : '') +
99
+ (presets ? ` and presets "${presets.join(',')}"` : '') +
100
+ '. Nothing removed.');
101
+ }
102
+ }
103
+ const removedEntries = toRemove.length;
104
+ if (verbose && removedEntries > 0) {
105
+ console.log(`[verbose] actionRemove: ${dryRun ? 'would remove' : 'removing'} ${removedEntries} config entries`);
106
+ }
107
+ // ── Rewrite config file with remaining entries ────────────────────────────
108
+ if (!dryRun && removedEntries > 0) {
109
+ let existingConfig = {};
110
+ try {
111
+ const raw = node_fs_1.default.readFileSync(configFilePath, 'utf8');
112
+ existingConfig = js_yaml_1.default.load(raw) ?? {};
113
+ }
114
+ catch {
115
+ // no-op: file may not exist when using lockfile-only mode
116
+ }
117
+ existingConfig.sets = toKeep;
118
+ const isJson = configFilePath.endsWith('.json');
119
+ const content = isJson
120
+ ? // eslint-disable-next-line unicorn/no-null
121
+ JSON.stringify(existingConfig, null, 2) + '\n'
122
+ : js_yaml_1.default.dump(existingConfig, { indent: 2 });
123
+ node_fs_1.default.writeFileSync(configFilePath, content, 'utf8');
124
+ }
125
+ // ── Run install with remaining entries to update lockfile ─────────────────
126
+ if (verbose) {
127
+ console.log(`[verbose] actionRemove: running install with ${toKeep.length} remaining entries`);
128
+ }
129
+ const { lockfilePath } = options;
130
+ const install = await (0, action_install_1.actionInstall)({
131
+ entries: toKeep,
132
+ cwd,
133
+ lockfilePath,
134
+ dryRun,
135
+ verbose,
136
+ frozenLockfile: false,
137
+ onProgress,
138
+ });
139
+ // When --all is used and all files were successfully removed, delete the lock
140
+ // file and config file since they would be empty/useless.
141
+ let lockfileDeleted = false;
142
+ let configFileDeleted = false;
143
+ if (all && !dryRun && install.added === 0 && install.modified === 0) {
144
+ try {
145
+ if (node_fs_1.default.existsSync(lockfilePath)) {
146
+ node_fs_1.default.unlinkSync(lockfilePath);
147
+ lockfileDeleted = true;
148
+ if (verbose) {
149
+ console.log(`[verbose] actionRemove: deleted lock file ${lockfilePath}`);
150
+ }
151
+ }
152
+ }
153
+ catch {
154
+ // Ignore lock file deletion errors
155
+ }
156
+ try {
157
+ if (node_fs_1.default.existsSync(configFilePath)) {
158
+ node_fs_1.default.unlinkSync(configFilePath);
159
+ configFileDeleted = true;
160
+ if (verbose) {
161
+ console.log(`[verbose] actionRemove: deleted config file ${configFilePath}`);
162
+ }
163
+ }
164
+ }
165
+ catch {
166
+ // Ignore config file deletion errors
167
+ }
168
+ }
169
+ return { removedEntries, install, lockfileDeleted, configFileDeleted };
170
+ }
171
+ //# sourceMappingURL=action-remove.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-remove.js","sourceRoot":"","sources":["../../src/package/action-remove.ts"],"names":[],"mappings":";;;;;AAqHA,oCA8HC;AAnPD,+BAA+B;AAC/B,sDAAyB;AAEzB,sDAA2B;AAI3B,qDAAgE;AAChE,qCAAiD;AAgDjD;;GAEG;AACH,SAAS,aAAa,CACpB,IAA4B,EAC5B,UAAkB,EAClB,UAAmB,EACnB,OAAkB;IAElB,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACf,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,IAAA,8BAAqB,EAAC,CAAC,CAAC,OAAO,CAAC,KAAK,UAAU,CAAC;QAC9D,wCAAwC;QACxC,MAAM,WAAW,GAAG,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,KAAK,UAAU,CAAC;QAC9E,wCAAwC;QACxC,MAAM,YAAY,GAAG,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3F,IAAI,KAAK,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,QAAgB;IACtC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,iBAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,iBAAI,CAAC,IAAI,CAAC,GAAG,CAA6C,CAAC;QAC1E,OAAO,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,sCAAsC;AAC/B,KAAK,UAAU,YAAY,CAAC,OAAsB;IACvD,MAAM,EACJ,GAAG,EACH,WAAW,EACX,GAAG,GAAG,KAAK,EACX,UAAU,EACV,OAAO,EACP,MAAM,GAAG,KAAK,EACd,OAAO,GAAG,KAAK,EACf,UAAU,GACX,GAAG,OAAO,CAAC;IAEZ,6EAA6E;IAC7E,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IACnC,MAAM,WAAW,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;IAEnD,6EAA6E;IAC7E,IAAI,QAAgC,CAAC;IACrC,IAAI,MAA8B,CAAC;IAEnC,IAAI,GAAG,EAAE,CAAC;QACR,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,GAAG,EAAE,CAAC;QACZ,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CACT,wCAAwC,QAAQ,CAAC,MAAM,iBAAiB;gBACtE,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACpD,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,UAAU,GAAG,IAAA,8BAAqB,EAAC,WAAW,CAAC,CAAC;QACtD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CACT,iDAAiD,UAAU,GAAG;gBAC5D,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9C,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,cAAc,EAAE,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAC3E,CAAC;QACJ,CAAC;QACD,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QACrF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,yBAAyB,WAAW,GAAG;gBACrC,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClD,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtD,oBAAoB,CACvB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;IAEvC,IAAI,OAAO,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CACT,2BAA2B,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,IAAI,cAAc,iBAAiB,CACnG,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,IAAI,CAAC,MAAM,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QAClC,IAAI,cAAc,GAA4B,EAAE,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,iBAAE,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YACpD,cAAc,GAAI,iBAAI,CAAC,IAAI,CAAC,GAAG,CAAoC,IAAI,EAAE,CAAC;QAC5E,CAAC;QAAC,MAAM,CAAC;YACP,0DAA0D;QAC5D,CAAC;QACD,cAAc,CAAC,IAAI,GAAG,MAAM,CAAC;QAC7B,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAG,MAAM;YACpB,CAAC,CAAC,2CAA2C;gBAC3C,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI;YAChD,CAAC,CAAC,iBAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7C,iBAAE,CAAC,aAAa,CAAC,cAAc,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,6EAA6E;IAC7E,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,gDAAgD,MAAM,CAAC,MAAM,oBAAoB,CAAC,CAAC;IACjG,CAAC;IAED,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACjC,MAAM,OAAO,GAAG,MAAM,IAAA,8BAAa,EAAC;QAClC,OAAO,EAAE,MAAM;QACf,GAAG;QACH,YAAY;QACZ,MAAM;QACN,OAAO;QACP,cAAc,EAAE,KAAK;QACrB,UAAU;KACX,CAAC,CAAC;IAEH,8EAA8E;IAC9E,0DAA0D;IAC1D,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,IAAI,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QACpE,IAAI,CAAC;YACH,IAAI,iBAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAChC,iBAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;gBAC5B,eAAe,GAAG,IAAI,CAAC;gBACvB,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,6CAA6C,YAAY,EAAE,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,mCAAmC;QACrC,CAAC;QACD,IAAI,CAAC;YACH,IAAI,iBAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBAClC,iBAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;gBAC9B,iBAAiB,GAAG,IAAI,CAAC;gBACzB,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,+CAA+C,cAAc,EAAE,CAAC,CAAC;gBAC/E,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;QACvC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,CAAC;AACzE,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { BasicPackageOptions, FiledistExtractEntry, ProgressEvent } from '../types';
2
+ import { InstallResult } from './action-install';
3
+ export type UpdateOptions = Omit<BasicPackageOptions, 'entries'> & {
4
+ entries?: FiledistExtractEntry[];
5
+ onProgress?: (event: ProgressEvent) => void;
6
+ /**
7
+ * Absolute path to the lock file. Derived from the config file path via getLockfilePath().
8
+ */
9
+ lockfilePath: string;
10
+ /**
11
+ * When true (default), forces every entry selector to upgrade=true so the
12
+ * package manager fetches the latest matching version from the registry.
13
+ * Set to false to re-resolve from whatever is currently installed locally
14
+ * (useful for testing without registry access).
15
+ */
16
+ upgrade?: boolean;
17
+ };
18
+ /**
19
+ * Update managed files to their latest available package versions.
20
+ *
21
+ * Reads the set definitions from .filedist.lock (falls back to the entries option
22
+ * when no lockfile is present). Forces upgrade=true on every entry selector so
23
+ * npm/git sources are re-fetched for the newest matching version. Then runs a
24
+ * full install (frozenLockfile=false), which resolves and writes an updated
25
+ * lockfile with new package refs, updated sets, and an updated managed files list.
26
+ */
27
+ export declare function actionUpdate(options: UpdateOptions): Promise<InstallResult>;
28
+ //# sourceMappingURL=action-update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-update.d.ts","sourceRoot":"","sources":["../../src/package/action-update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEpF,OAAO,EAAiB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGhE,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,GAAG;IACjE,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC5C;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAwCjF"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.actionUpdate = actionUpdate;
4
+ const action_install_1 = require("./action-install");
5
+ const lockfile_1 = require("./lockfile");
6
+ /**
7
+ * Update managed files to their latest available package versions.
8
+ *
9
+ * Reads the set definitions from .filedist.lock (falls back to the entries option
10
+ * when no lockfile is present). Forces upgrade=true on every entry selector so
11
+ * npm/git sources are re-fetched for the newest matching version. Then runs a
12
+ * full install (frozenLockfile=false), which resolves and writes an updated
13
+ * lockfile with new package refs, updated sets, and an updated managed files list.
14
+ */
15
+ async function actionUpdate(options) {
16
+ const { cwd, verbose = false, onProgress, dryRun, upgrade = true } = options;
17
+ const { lockfilePath } = options;
18
+ const lockfileData = (0, lockfile_1.readLockfile)(lockfilePath);
19
+ // Prefer caller-supplied entries (user config) — same precedence as actionInstall.
20
+ // Fall back to set definitions recorded in .filedist.lock when no entries are provided.
21
+ let entries = (options.entries && options.entries.length > 0 ? options.entries : lockfileData?.sets) ?? [];
22
+ if (entries.length === 0) {
23
+ throw new Error(`No sets found. Run 'filedist install' first, or provide --packages to specify packages.`);
24
+ }
25
+ // Force upgrade on all selectors so the resolver fetches the newest matching version.
26
+ if (upgrade) {
27
+ entries = entries.map((entry) => ({
28
+ ...entry,
29
+ selector: { ...entry.selector, upgrade: true },
30
+ }));
31
+ }
32
+ if (verbose) {
33
+ console.log(`[verbose] actionUpdate: bumping ${entries.length} set(s) to latest package versions`);
34
+ }
35
+ return (0, action_install_1.actionInstall)({
36
+ entries,
37
+ cwd,
38
+ verbose,
39
+ dryRun,
40
+ onProgress,
41
+ lockfilePath,
42
+ frozenLockfile: false,
43
+ });
44
+ }
45
+ //# sourceMappingURL=action-update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-update.js","sourceRoot":"","sources":["../../src/package/action-update.ts"],"names":[],"mappings":";;AA+BA,oCAwCC;AApED,qDAAgE;AAChE,yCAA0C;AAkB1C;;;;;;;;GAQG;AACI,KAAK,UAAU,YAAY,CAAC,OAAsB;IACvD,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAC7E,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAEjC,MAAM,YAAY,GAAG,IAAA,uBAAY,EAAC,YAAY,CAAC,CAAC;IAEhD,mFAAmF;IACnF,wFAAwF;IACxF,IAAI,OAAO,GACT,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IAE/F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F,CAAC;IACJ,CAAC;IAED,sFAAsF;IACtF,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAChC,GAAG,KAAK;YACR,QAAQ,EAAE,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;SAC/C,CAAC,CAAC,CAAC;IACN,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CACT,mCAAmC,OAAO,CAAC,MAAM,oCAAoC,CACtF,CAAC;IACJ,CAAC;IAED,OAAO,IAAA,8BAAa,EAAC;QACnB,OAAO;QACP,GAAG;QACH,OAAO;QACP,MAAM;QACN,UAAU;QACV,YAAY;QACZ,cAAc,EAAE,KAAK;KACtB,CAAC,CAAC;AACL,CAAC"}
@@ -8,5 +8,5 @@ import { ResolvedFile, DiffResult } from '../types';
8
8
  *
9
9
  * @returns DiffResult classifying each file as ok, missing, extra, or conflict.
10
10
  */
11
- export declare function calculateDiff(resolvedFiles: ResolvedFile[], verbose?: boolean, cwd?: string, relevantPackagesByOutputDir?: Map<string, Set<string>>, compareWithSource?: boolean): Promise<DiffResult>;
11
+ export declare function calculateDiff(resolvedFiles: ResolvedFile[], verbose?: boolean, cwd?: string, relevantPackagesByOutputDir?: Map<string, Set<string>>, compareWithSource?: boolean, lockfilePath?: string): Promise<DiffResult>;
12
12
  //# sourceMappingURL=calculate-diff.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"calculate-diff.d.ts","sourceRoot":"","sources":["../../src/package/calculate-diff.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAuB,MAAM,UAAU,CAAC;AAQzE;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,aAAa,EAAE,YAAY,EAAE,EAC7B,OAAO,CAAC,EAAE,OAAO,EACjB,GAAG,CAAC,EAAE,MAAM,EACZ,2BAA2B,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EACtD,iBAAiB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC,UAAU,CAAC,CA0CrB"}
1
+ {"version":3,"file":"calculate-diff.d.ts","sourceRoot":"","sources":["../../src/package/calculate-diff.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAuB,MAAM,UAAU,CAAC;AAQzE;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,aAAa,EAAE,YAAY,EAAE,EAC7B,OAAO,CAAC,EAAE,OAAO,EACjB,GAAG,CAAC,EAAE,MAAM,EACZ,2BAA2B,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EACtD,iBAAiB,CAAC,EAAE,OAAO,EAC3B,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,UAAU,CAAC,CA4CrB"}
@@ -10,7 +10,7 @@ const node_fs_1 = __importDefault(require("node:fs"));
10
10
  const node_path_1 = __importDefault(require("node:path"));
11
11
  const gitignore_1 = require("../fileset/gitignore");
12
12
  const utils_1 = require("../utils");
13
- const markers_1 = require("../fileset/markers");
13
+ const lockfile_1 = require("./lockfile");
14
14
  const content_replacements_1 = require("./content-replacements");
15
15
  const symlinks_1 = require("./symlinks");
16
16
  /**
@@ -22,7 +22,7 @@ const symlinks_1 = require("./symlinks");
22
22
  *
23
23
  * @returns DiffResult classifying each file as ok, missing, extra, or conflict.
24
24
  */
25
- async function calculateDiff(resolvedFiles, verbose, cwd, relevantPackagesByOutputDir, compareWithSource) {
25
+ async function calculateDiff(resolvedFiles, verbose, cwd, relevantPackagesByOutputDir, compareWithSource, lockfilePath) {
26
26
  const result = { ok: [], missing: [], extra: [], conflict: [] };
27
27
  if (resolvedFiles.length === 0 &&
28
28
  (!relevantPackagesByOutputDir || relevantPackagesByOutputDir.size === 0)) {
@@ -40,7 +40,7 @@ async function calculateDiff(resolvedFiles, verbose, cwd, relevantPackagesByOutp
40
40
  ...(relevantPackagesByOutputDir?.keys() ?? []),
41
41
  ]);
42
42
  for (const outputDir of outputDirs) {
43
- await appendOutputDirDiff(outputDir, byOutputDir.get(outputDir) ?? [], result, relevantPackagesByOutputDir?.get(outputDir), compareWithSource);
43
+ await appendOutputDirDiff(outputDir, byOutputDir.get(outputDir) ?? [], result, relevantPackagesByOutputDir?.get(outputDir), compareWithSource, cwd, lockfilePath);
44
44
  if (verbose) {
45
45
  console.log(`[verbose] calculateDiff: ${(0, utils_1.formatDisplayPath)(outputDir, cwd)}: ` +
46
46
  `ok=${result.ok.length} missing=${result.missing.length} ` +
@@ -49,8 +49,11 @@ async function calculateDiff(resolvedFiles, verbose, cwd, relevantPackagesByOutp
49
49
  }
50
50
  return result;
51
51
  }
52
- async function appendOutputDirDiff(outputDir, desiredFiles, result, relevantPackages, compareWithSource) {
53
- const existingMarker = await (0, markers_1.readOutputDirMarker)(outputDir);
52
+ async function appendOutputDirDiff(outputDir, desiredFiles, result, relevantPackages, compareWithSource, cwd, lockfilePath) {
53
+ let existingMarker = [];
54
+ if (lockfilePath && cwd) {
55
+ existingMarker = (0, lockfile_1.readManagedFilesForDir)(lockfilePath, cwd, outputDir);
56
+ }
54
57
  const managedByPath = new Map(existingMarker.map((m) => [m.path, m]));
55
58
  const desiredSymlinks = (0, symlinks_1.collectManagedSymlinkTargets)(outputDir, desiredFiles);
56
59
  const desiredPaths = new Set([
@@ -98,7 +101,7 @@ function classifyDesiredSymlink(desiredSymlink, outputDir, managedByPath, result
98
101
  conflictReasons.push('content');
99
102
  }
100
103
  }
101
- if (!existingEntry || (existingEntry.kind ?? 'file') !== 'symlink') {
104
+ if (!existingEntry || existingEntry.kind !== 'symlink') {
102
105
  conflictReasons.push('managed');
103
106
  }
104
107
  if (conflictReasons.length === 0) {
@@ -153,19 +156,14 @@ async function classifyDesiredFile(desired, outputDir, managedByPath, gitignoreP
153
156
  else {
154
157
  // Check mode: compare disk against stored checksum (no source package needed).
155
158
  // Mutable files are allowed to change locally — skip content verification.
156
- // Files with no stored checksum cannot be verified — reported as no-checksum conflict.
157
159
  if (existingEntry?.mutable) {
158
160
  // File is intentionally mutable (e.g. extracted with mutable option); skip content check
159
161
  }
160
- else if (existingEntry?.checksum) {
162
+ else {
161
163
  const destHash = (0, utils_1.shortenChecksum)(await (0, utils_1.hashFile)(destPath));
162
- if (existingEntry.checksum !== destHash)
164
+ if (existingEntry?.checksum !== destHash)
163
165
  conflictReasons.push('content');
164
166
  }
165
- else {
166
- // No stored checksum: marker is from an old extraction; re-extract to repair
167
- conflictReasons.push('no-checksum');
168
- }
169
167
  }
170
168
  // Managed-state check
171
169
  const isManaged = managedByPath.has(desired.relPath);
@@ -1 +1 @@
1
- {"version":3,"file":"calculate-diff.js","sourceRoot":"","sources":["../../src/package/calculate-diff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calculate-diff.js","sourceRoot":"","sources":["../../src/package/calculate-diff.ts"],"names":[],"mappings":"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"}
@@ -1,39 +1,52 @@
1
1
  import { FiledistConfig, FiledistExtractEntry } from '../types';
2
+ /** Default bootstrap config filename. */
3
+ export declare const DEFAULT_CONFIG_FILENAME = ".filedist.yml";
4
+ /** Represents the structure of a .filedist.yml or .filedist-package.yml file. */
5
+ export type FiledistConfigFile = {
6
+ version: number;
7
+ sets: FiledistExtractEntry[];
8
+ };
9
+ /** Package config filename used by data packages to define their own sets. */
10
+ export declare const PACKAGE_CONFIG_FILENAME = ".filedist-package.yml";
2
11
  /**
3
- * Search for a filedist configuration using cosmiconfig, starting from the given cwd.
4
- * Looks for (in priority order):
5
- * - .filedistrc (JSON or YAML)
6
- * - .filedistrc.json / .filedistrc.yaml / .filedistrc.js
7
- * - filedist.config.js
8
- * - "filedist" key in package.json
9
- *
10
- * Returns the FiledistConfig when found, or null when no configuration is present.
12
+ * Load the default filedist bootstrap config (.filedist.yml) from the given directory.
13
+ * Returns the FiledistConfig when found, or null when absent or empty.
11
14
  */
12
- export declare function searchAndLoadFiledistConfig(cwd: string): Promise<FiledistConfig | null>;
15
+ export declare function loadDefaultConfig(cwd: string): FiledistConfig | null;
13
16
  /**
14
- * Load a filedist configuration from an explicit file path using cosmiconfig.
15
- * Supports JSON, YAML, and JS config files.
16
- *
17
- * Returns the FiledistConfig when found, or null when the file is empty or invalid.
17
+ * Load a filedist bootstrap config from an explicit YAML file path.
18
+ * Returns the FiledistConfig when found, or null when the file is empty or absent.
18
19
  */
19
- export declare function loadFiledistConfigFile(filePath: string): Promise<FiledistConfig | null>;
20
+ export declare function loadFiledistConfigFile(filePath: string): FiledistConfig | null;
20
21
  /**
21
- * Load filedist config only from the given directory, without searching parent folders.
22
+ * Load a filedist package config (.filedist-package.yml) from the given directory.
23
+ * Data packages place this file in their root to define their sets, selectors, and presets.
24
+ * Returns the FiledistConfig when found, or null when absent or empty.
22
25
  */
23
- export declare function loadFiledistConfigFromDirectory(directory: string): Promise<FiledistConfig | null>;
26
+ export declare function loadPackageConfig(directory: string): FiledistConfig | null;
27
+ export declare function upsertFiledistConfigEntries(directory: string, configFilePath: string, addEntries: FiledistExtractEntry[]): Promise<void>;
24
28
  /**
25
- * Load a filedist configuration from `.filedistrc.local.yml` in the given directory.
26
- * Returns the config when found, or null when the file does not exist or is empty.
27
- * The local config file is intentionally not searched in parent directories.
29
+ * Strip the version/ref from a package spec string, leaving only the package name.
30
+ *
31
+ * Examples:
32
+ * "my-pkg@^1.2.3" → "my-pkg"
33
+ * "@scope/pkg@1.0.0" → "@scope/pkg"
34
+ * "git:github.com/org/repo.git@main" → "git:github.com/org/repo.git"
35
+ * "my-pkg" → "my-pkg"
28
36
  */
29
- export declare function loadFiledistLocalConfig(directory: string): Promise<FiledistConfig | null>;
37
+ export declare function packageNameWithoutRef(spec: string): string;
30
38
  /**
31
- * Upsert entries into a filedist YAML config file.
32
- * - Uses the path provided (from --config) or defaults to `.filedistrc.yml` in `directory`.
33
- * - Reads the existing file (or starts with an empty sets array).
34
- * - For each provided entry, replaces an existing entry with the same `package`
35
- * value, or appends it when no match is found.
36
- * - Writes the merged result back as YAML.
39
+ * Remove entries from the filedist YAML config file that match the given package name.
40
+ *
41
+ * - `packageSpec` is matched against each entry's `package` field after stripping
42
+ * the version/ref from both sides, so "xdrs-core@1.0.0" and "xdrs-core" both
43
+ * match entries whose package field starts with "xdrs-core".
44
+ * - When `outputPath` is supplied, only entries whose `output.path` equals
45
+ * `outputPath` are removed (allows targeting a specific entry when the same
46
+ * package is installed to multiple output directories).
47
+ * - Returns the number of entries removed. Zero means the config was unchanged.
48
+ * - When `configFilePath` is not supplied, defaults to `.filedist.yml` in `directory`.
49
+ * - Throws if the config file exists but cannot be parsed.
37
50
  */
38
- export declare function upsertFiledistConfigEntries(directory: string, addEntries: FiledistExtractEntry[], configFilePath?: string): Promise<void>;
51
+ export declare function removeFiledistConfigEntries(directory: string, packageSpec: string, outputPath?: string, configFilePath?: string): number;
39
52
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/package/config.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAoDhE;;;;;;;;;GASG;AACH,wBAAsB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAQ7F;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAQ7F;AAED;;GAEG;AACH,wBAAsB,+BAA+B,CACnD,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAuBhC;AAKD;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAkB/F;AAED;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,oBAAoB,EAAE,EAClC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC,CA2Cf"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/package/config.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAShE,yCAAyC;AACzC,eAAO,MAAM,uBAAuB,kBAAkB,CAAC;AAEvD,iFAAiF;AACjF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,oBAAoB,EAAE,CAAC;CAC9B,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAsD/D;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAEpE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAE9E;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAE1E;AAuDD,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,oBAAoB,EAAE,GACjC,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAkB1D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,EACnB,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,CAkCR"}