pipework 0.193.0 → 0.194.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/CHANGELOG.md +8 -0
- package/dist/REFERENCE.md +13 -322
- package/dist/cli/commands/add.d.ts.map +1 -1
- package/dist/cli/commands/add.js +2 -0
- package/dist/cli/commands/add.js.map +1 -1
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +2 -0
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/remove.d.ts.map +1 -1
- package/dist/cli/commands/remove.js +2 -0
- package/dist/cli/commands/remove.js.map +1 -1
- package/dist/cli/commands/shared/report-removed.d.ts +3 -0
- package/dist/cli/commands/shared/report-removed.d.ts.map +1 -0
- package/dist/cli/commands/shared/report-removed.js +7 -0
- package/dist/cli/commands/shared/report-removed.js.map +1 -0
- package/dist/cli/commands/sync.d.ts.map +1 -1
- package/dist/cli/commands/sync.js +2 -0
- package/dist/cli/commands/sync.js.map +1 -1
- package/dist/core/config/namespace.d.ts +1 -0
- package/dist/core/config/namespace.d.ts.map +1 -1
- package/dist/core/config/schema.d.ts +2 -0
- package/dist/core/config/schema.d.ts.map +1 -1
- package/dist/core/config/schema.js +17 -0
- package/dist/core/config/schema.js.map +1 -1
- package/dist/infra/email/sigv4.d.ts +24 -0
- package/dist/infra/email/sigv4.d.ts.map +1 -0
- package/dist/infra/email/sigv4.js +55 -0
- package/dist/infra/email/sigv4.js.map +1 -0
- package/dist/workspace/discover.d.ts +1 -0
- package/dist/workspace/discover.d.ts.map +1 -1
- package/dist/workspace/discover.js +22 -1
- package/dist/workspace/discover.js.map +1 -1
- package/dist/workspace/generate.d.ts.map +1 -1
- package/dist/workspace/generate.js +2 -0
- package/dist/workspace/generate.js.map +1 -1
- package/dist/workspace/module-package-name.d.ts.map +1 -1
- package/dist/workspace/module-package-name.js +6 -0
- package/dist/workspace/module-package-name.js.map +1 -1
- package/dist/workspace/sync.d.ts +6 -0
- package/dist/workspace/sync.d.ts.map +1 -1
- package/dist/workspace/sync.js +65 -1
- package/dist/workspace/sync.js.map +1 -1
- package/package.json +1 -1
package/dist/workspace/sync.js
CHANGED
|
@@ -4,6 +4,7 @@ import { fileURLToPath } from 'node:url';
|
|
|
4
4
|
import { resolveModules } from './discover.js';
|
|
5
5
|
import { moduleImportsPipework } from './module-imports-pipework.js';
|
|
6
6
|
import { generateWorkspace } from './generate.js';
|
|
7
|
+
const DEPENDENCY_FIELDS = ['dependencies', 'devDependencies', 'peerDependencies'];
|
|
7
8
|
export function sync(input) {
|
|
8
9
|
const pipeworkVersion = input.pipeworkVersion ?? readPipeworkVersionFromConfig(input.config) ?? readPipeworkVersion();
|
|
9
10
|
const modules = resolveModules(input.config.modules, input.cwd).map((mod) => ({
|
|
@@ -21,8 +22,10 @@ export function sync(input) {
|
|
|
21
22
|
hasVitest: input.config.vitest !== undefined,
|
|
22
23
|
};
|
|
23
24
|
const files = generateWorkspace(workspaceConfig);
|
|
25
|
+
refuseHandWrittenManifests(files, modules, input.cwd);
|
|
24
26
|
let written = 0;
|
|
25
27
|
let skipped = 0;
|
|
28
|
+
const removed = [];
|
|
26
29
|
for (const file of files) {
|
|
27
30
|
const fullPath = join(input.cwd, file.relativePath);
|
|
28
31
|
const dir = dirname(fullPath);
|
|
@@ -32,11 +35,72 @@ export function sync(input) {
|
|
|
32
35
|
skipped++;
|
|
33
36
|
}
|
|
34
37
|
else {
|
|
38
|
+
if (existing !== undefined && isPackageJson(file.relativePath)) {
|
|
39
|
+
removed.push(...removedDependencies(file.relativePath, existing, file.content));
|
|
40
|
+
}
|
|
35
41
|
writeFileSync(fullPath, file.content, 'utf-8');
|
|
36
42
|
written++;
|
|
37
43
|
}
|
|
38
44
|
}
|
|
39
|
-
return { files, written, skipped, pipeworkVersion };
|
|
45
|
+
return { files, written, skipped, removed, pipeworkVersion };
|
|
46
|
+
}
|
|
47
|
+
function isPackageJson(relativePath) {
|
|
48
|
+
return relativePath === 'package.json' || relativePath.endsWith('/package.json');
|
|
49
|
+
}
|
|
50
|
+
function parseObject(raw) {
|
|
51
|
+
try {
|
|
52
|
+
const parsed = JSON.parse(raw);
|
|
53
|
+
return typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed)
|
|
54
|
+
? parsed
|
|
55
|
+
: undefined;
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// Nothing is written until every module package.json sync is about to write is known to be
|
|
62
|
+
// either absent or one pipework generated (`_generated`). A hand-written module manifest is
|
|
63
|
+
// the user's; overwriting it would drop what it declares. The root package.json is exempt:
|
|
64
|
+
// `pnpm add pipework` writes it by hand before the first `pipework install`.
|
|
65
|
+
function refuseHandWrittenManifests(files, modules, cwd) {
|
|
66
|
+
const lines = [];
|
|
67
|
+
for (const file of files) {
|
|
68
|
+
const mod = modules.find(m => m.relativePath + '/package.json' === file.relativePath);
|
|
69
|
+
if (mod === undefined)
|
|
70
|
+
continue;
|
|
71
|
+
const raw = readFileSafe(join(cwd, file.relativePath));
|
|
72
|
+
if (raw === undefined)
|
|
73
|
+
continue;
|
|
74
|
+
if (typeof parseObject(raw)?.['_generated'] === 'string')
|
|
75
|
+
continue;
|
|
76
|
+
lines.push(` ${file.relativePath}: if the module owns its manifest, set modules['${mod.key}'].managed = false; otherwise delete the file to let pipework generate it.`);
|
|
77
|
+
}
|
|
78
|
+
if (lines.length === 0)
|
|
79
|
+
return;
|
|
80
|
+
throw new Error(`[pipework] sync would overwrite ${String(lines.length)} package.json file(s) that pipework did not generate (no "_generated" field). Nothing was written.\n\n` +
|
|
81
|
+
lines.join('\n') + '\n');
|
|
82
|
+
}
|
|
83
|
+
function removedDependencies(file, oldRaw, newRaw) {
|
|
84
|
+
const before = parseObject(oldRaw);
|
|
85
|
+
const after = parseObject(newRaw);
|
|
86
|
+
if (before === undefined || after === undefined)
|
|
87
|
+
return [];
|
|
88
|
+
const out = [];
|
|
89
|
+
for (const field of DEPENDENCY_FIELDS) {
|
|
90
|
+
const oldDeps = before[field];
|
|
91
|
+
if (typeof oldDeps !== 'object' || oldDeps === null)
|
|
92
|
+
continue;
|
|
93
|
+
for (const name of Object.keys(oldDeps)) {
|
|
94
|
+
// Moving a name between the three fields is not a removal.
|
|
95
|
+
const stillDeclared = DEPENDENCY_FIELDS.some(f => {
|
|
96
|
+
const deps = after[f];
|
|
97
|
+
return typeof deps === 'object' && deps !== null && name in deps;
|
|
98
|
+
});
|
|
99
|
+
if (!stillDeclared)
|
|
100
|
+
out.push({ file, field, name });
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return out;
|
|
40
104
|
}
|
|
41
105
|
function readFileSafe(path) {
|
|
42
106
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/workspace/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAChE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/workspace/sync.ts"],"names":[],"mappings":"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"}
|