presetter 7.3.0 → 8.0.1
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 +396 -87
- package/lib/context.d.ts +14 -0
- package/lib/context.d.ts.map +1 -0
- package/lib/context.js +53 -0
- package/lib/debugger.d.ts.map +1 -1
- package/lib/debugger.js +1 -1
- package/lib/executable/entry.d.ts.map +1 -1
- package/lib/executable/entry.js +3 -3
- package/lib/executable/error.d.ts.map +1 -1
- package/lib/executable/error.js +1 -1
- package/lib/executable/index.d.ts.map +1 -1
- package/lib/executable/index.js +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/io.d.ts.map +1 -1
- package/lib/io.js +1 -1
- package/lib/preset/bootstrap.d.ts.map +1 -1
- package/lib/preset/bootstrap.js +5 -10
- package/lib/preset/config/index.d.ts.map +1 -1
- package/lib/preset/config/index.js +1 -1
- package/lib/preset/config/resolve.d.ts.map +1 -1
- package/lib/preset/config/resolve.js +1 -1
- package/lib/preset/config/search.d.ts.map +1 -1
- package/lib/preset/config/search.js +4 -4
- package/lib/preset/index.d.ts +0 -1
- package/lib/preset/index.d.ts.map +1 -1
- package/lib/preset/index.js +1 -2
- package/lib/preset/project.d.ts +2 -2
- package/lib/preset/project.d.ts.map +1 -1
- package/lib/preset/project.js +6 -7
- package/lib/preset/resolution/asset.d.ts +3 -3
- package/lib/preset/resolution/asset.d.ts.map +1 -1
- package/lib/preset/resolution/asset.js +1 -1
- package/lib/preset/resolution/content.d.ts +3 -3
- package/lib/preset/resolution/content.d.ts.map +1 -1
- package/lib/preset/resolution/content.js +1 -1
- package/lib/preset/resolution/debugger.d.ts.map +1 -1
- package/lib/preset/resolution/debugger.js +1 -1
- package/lib/preset/resolution/index.d.ts.map +1 -1
- package/lib/preset/resolution/index.js +1 -1
- package/lib/preset/resolution/object.d.ts.map +1 -1
- package/lib/preset/resolution/object.js +1 -1
- package/lib/preset/resolution/preset.d.ts +2 -2
- package/lib/preset/resolution/preset.d.ts.map +1 -1
- package/lib/preset/resolution/preset.js +1 -1
- package/lib/preset/resolution/script.d.ts +2 -2
- package/lib/preset/resolution/script.d.ts.map +1 -1
- package/lib/preset/resolution/script.js +1 -1
- package/lib/preset/resolution/variable.d.ts +2 -2
- package/lib/preset/resolution/variable.d.ts.map +1 -1
- package/lib/preset/resolution/variable.js +1 -1
- package/lib/preset/scripts.d.ts.map +1 -1
- package/lib/preset/scripts.js +3 -3
- package/lib/resolve.d.ts.map +1 -1
- package/lib/resolve.js +6 -5
- package/lib/run.d.ts.map +1 -1
- package/lib/run.js +29 -23
- package/lib/scripts.d.ts.map +1 -1
- package/lib/scripts.js +1 -1
- package/lib/serialization.d.ts.map +1 -1
- package/lib/serialization.js +3 -3
- package/lib/task.d.ts.map +1 -1
- package/lib/task.js +1 -1
- package/lib/template/index.d.ts.map +1 -1
- package/lib/template/index.js +1 -1
- package/lib/template/merge.d.ts.map +1 -1
- package/lib/template/merge.js +1 -1
- package/lib/template/substitute.d.ts.map +1 -1
- package/lib/template/substitute.js +1 -1
- package/lib/utilities/display.d.ts.map +1 -1
- package/lib/utilities/display.js +1 -1
- package/lib/utilities/index.d.ts.map +1 -1
- package/lib/utilities/index.js +1 -1
- package/lib/utilities/mapping.d.ts.map +1 -1
- package/lib/utilities/mapping.js +1 -1
- package/lib/utilities/object.d.ts.map +1 -1
- package/lib/utilities/object.js +1 -1
- package/package.json +56 -36
- package/types/mvdan-sh/index.d.ts +44 -0
- package/types/npmcli__run-script/index.d.ts +27 -0
- package/lib/package.d.ts +0 -40
- package/lib/package.d.ts.map +0 -1
- package/lib/package.js +0 -93
- package/lib/preset/context.d.ts +0 -8
- package/lib/preset/context.d.ts.map +0 -1
- package/lib/preset/context.js +0 -13
package/lib/package.d.ts
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
import type { PackageJson } from 'type-fest';
|
2
|
-
/** package detail */
|
3
|
-
export interface Package {
|
4
|
-
/** path to the package.json */
|
5
|
-
path: string;
|
6
|
-
/** content of package.json */
|
7
|
-
json: PackageJson;
|
8
|
-
}
|
9
|
-
/**
|
10
|
-
* indicate whether peer packages would be installed automatically
|
11
|
-
* @returns true for npm v7+
|
12
|
-
*/
|
13
|
-
export declare function arePeerPackagesAutoInstalled(): boolean;
|
14
|
-
/**
|
15
|
-
* get scripts from the targeted project's package.json
|
16
|
-
* @param root path to the project's root folder
|
17
|
-
* @returns package detail
|
18
|
-
*/
|
19
|
-
export declare function getPackage(root?: string): Promise<Package>;
|
20
|
-
/**
|
21
|
-
* reify packages for the target project
|
22
|
-
* @param args list of packages and other options
|
23
|
-
* @param args.root directory of the project package.json
|
24
|
-
* @param args.add list of packages to be added
|
25
|
-
* @param args.remove list of packages to be removed
|
26
|
-
* @param args.saveAs type of dependency
|
27
|
-
* @param args.lockFile indicate whether package-lock.json should be produced
|
28
|
-
* @returns list of installed packages
|
29
|
-
*/
|
30
|
-
export declare function reifyDependencies(args: {
|
31
|
-
root: string;
|
32
|
-
add?: string[];
|
33
|
-
remove?: string[];
|
34
|
-
saveAs?: 'dev' | 'peer' | 'optional' | 'prod';
|
35
|
-
lockFile?: boolean;
|
36
|
-
}): Promise<Array<{
|
37
|
-
name: string;
|
38
|
-
spec: string;
|
39
|
-
}>>;
|
40
|
-
//# sourceMappingURL=package.d.ts.map
|
package/lib/package.d.ts.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../source/package.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAI7C,qBAAqB;AACrB,MAAM,WAAW,OAAO;IACtB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,IAAI,EAAE,WAAW,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,OAAO,CAqBtD;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAahE;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CA2BjD"}
|
package/lib/package.js
DELETED
@@ -1,93 +0,0 @@
|
|
1
|
-
import { homedir } from 'node:os';
|
2
|
-
import { resolve } from 'node:path';
|
3
|
-
import { Arborist } from '@npmcli/arborist';
|
4
|
-
import Config from '@npmcli/config';
|
5
|
-
import { readPackageUp } from 'read-pkg-up';
|
6
|
-
const NPM_VERSION_FOR_PEER_INSTALLATION = 7;
|
7
|
-
/**
|
8
|
-
* indicate whether peer packages would be installed automatically
|
9
|
-
* @returns true for npm v7+
|
10
|
-
*/
|
11
|
-
export function arePeerPackagesAutoInstalled() {
|
12
|
-
// NOTE npm_config_user_agent should be in the form of 'npm/7.3.0 node/v15.5.0 darwin x64'
|
13
|
-
const clientID = process.env.npm_config_user_agent?.split(' ')[0];
|
14
|
-
/* v8 ignore next */
|
15
|
-
const [name, version] = clientID?.split('/') ?? [];
|
16
|
-
/* v8 ignore next */
|
17
|
-
const [major] = version?.split('.') ?? [];
|
18
|
-
const isNPM = name === 'npm';
|
19
|
-
const isNonNPM = name !== 'npm';
|
20
|
-
return (
|
21
|
-
// assume peer packages would be installed automatically if the client is not npm
|
22
|
-
isNonNPM ||
|
23
|
-
(isNPM &&
|
24
|
-
major !== undefined &&
|
25
|
-
parseInt(major) >= NPM_VERSION_FOR_PEER_INSTALLATION));
|
26
|
-
}
|
27
|
-
/**
|
28
|
-
* get scripts from the targeted project's package.json
|
29
|
-
* @param root path to the project's root folder
|
30
|
-
* @returns package detail
|
31
|
-
*/
|
32
|
-
export async function getPackage(root) {
|
33
|
-
// try to find the target project's package.json
|
34
|
-
const detail = await readPackageUp({ cwd: root, normalize: true });
|
35
|
-
// throw an error if there's no package.json found
|
36
|
-
if (!detail) {
|
37
|
-
throw new Error("failed to find target's package.json");
|
38
|
-
}
|
39
|
-
const path = detail.path;
|
40
|
-
const json = detail.packageJson;
|
41
|
-
return { path, json };
|
42
|
-
}
|
43
|
-
/**
|
44
|
-
* reify packages for the target project
|
45
|
-
* @param args list of packages and other options
|
46
|
-
* @param args.root directory of the project package.json
|
47
|
-
* @param args.add list of packages to be added
|
48
|
-
* @param args.remove list of packages to be removed
|
49
|
-
* @param args.saveAs type of dependency
|
50
|
-
* @param args.lockFile indicate whether package-lock.json should be produced
|
51
|
-
* @returns list of installed packages
|
52
|
-
*/
|
53
|
-
export async function reifyDependencies(args) {
|
54
|
-
const { root, add = [], remove = [], saveAs = 'prod', lockFile = false, } = { ...args };
|
55
|
-
// use arborist to install peer dependencies
|
56
|
-
const config = await getNPMConfig();
|
57
|
-
const workspacesEnabled = arePeerPackagesAutoInstalled(); // no workspace before npm 7
|
58
|
-
const arborist = new Arborist({ path: root, workspacesEnabled, ...config });
|
59
|
-
// don't write to the lockfile
|
60
|
-
const actualTree = await arborist.reify({
|
61
|
-
add,
|
62
|
-
rm: remove,
|
63
|
-
saveType: saveAs,
|
64
|
-
save: lockFile,
|
65
|
-
update: true,
|
66
|
-
});
|
67
|
-
return [...actualTree.edgesOut.values()].map((edge) => ({
|
68
|
-
name: edge.name,
|
69
|
-
spec: edge.spec,
|
70
|
-
}));
|
71
|
-
}
|
72
|
-
/**
|
73
|
-
* get the url of the package registry of the target project
|
74
|
-
* @returns url of the registry
|
75
|
-
*/
|
76
|
-
async function getNPMConfig() {
|
77
|
-
// get npm config
|
78
|
-
const config = new Config({
|
79
|
-
definitions: {
|
80
|
-
userconfig: { default: resolve(homedir(), '.npmrc'), type: String },
|
81
|
-
registry: { default: 'https://registry.npmjs.org', type: String },
|
82
|
-
},
|
83
|
-
npmPath: '.',
|
84
|
-
flatten: (config, flattenedConfig) => {
|
85
|
-
// NOTE: this function is called multiple time for flattening the configs at multiple levels, user, project, cli etc.
|
86
|
-
// ensure that higher level configs are always in priority
|
87
|
-
Object.assign(flattenedConfig, config);
|
88
|
-
},
|
89
|
-
});
|
90
|
-
await config.load();
|
91
|
-
return config.flat;
|
92
|
-
}
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9wYWNrYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxNQUFNLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUk1QyxNQUFNLGlDQUFpQyxHQUFHLENBQUMsQ0FBQztBQVU1Qzs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsNEJBQTRCO0lBQzFDLDBGQUEwRjtJQUUxRixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVsRSxvQkFBb0I7SUFDcEIsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxRQUFRLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFLLEVBQWtCLENBQUM7SUFFcEUsb0JBQW9CO0lBQ3BCLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFLLEVBQWtCLENBQUM7SUFFM0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEtBQUssQ0FBQztJQUM3QixNQUFNLFFBQVEsR0FBRyxJQUFJLEtBQUssS0FBSyxDQUFDO0lBRWhDLE9BQU87SUFDTCxpRkFBaUY7SUFDakYsUUFBUTtRQUNSLENBQUMsS0FBSztZQUNKLEtBQUssS0FBSyxTQUFTO1lBQ25CLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxpQ0FBaUMsQ0FBQyxDQUN4RCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7O0dBSUc7QUFD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
|
package/lib/preset/context.d.ts
DELETED
@@ -1,8 +0,0 @@
|
|
1
|
-
import type { PresetContext } from 'presetter-types';
|
2
|
-
/**
|
3
|
-
* get context about the target project and any customization in .presetterrc
|
4
|
-
* @param cwd the current working directory
|
5
|
-
* @returns context about the target project and any customization in .presetterrc
|
6
|
-
*/
|
7
|
-
export declare function getContext(cwd?: string): Promise<PresetContext>;
|
8
|
-
//# sourceMappingURL=context.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../source/preset/context.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAKrE"}
|
package/lib/preset/context.js
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
import { dirname } from 'node:path';
|
2
|
-
import { getPackage } from '../package.js';
|
3
|
-
/**
|
4
|
-
* get context about the target project and any customization in .presetterrc
|
5
|
-
* @param cwd the current working directory
|
6
|
-
* @returns context about the target project and any customization in .presetterrc
|
7
|
-
*/
|
8
|
-
export async function getContext(cwd) {
|
9
|
-
const { json, path } = await getPackage(cwd);
|
10
|
-
const root = dirname(path);
|
11
|
-
return { root, package: json };
|
12
|
-
}
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wcmVzZXQvY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFJeEM7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsVUFBVSxDQUFDLEdBQVk7SUFDM0MsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFM0IsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDakMsQ0FBQyJ9
|