acmekit-dev-cli 2.13.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 +74 -0
- package/dist/feature-flags/index.d.ts +2 -0
- package/dist/feature-flags/index.d.ts.map +1 -0
- package/dist/feature-flags/index.js +152 -0
- package/dist/feature-flags/index.js.map +1 -0
- package/dist/feature-flags/template.d.ts +7 -0
- package/dist/feature-flags/template.d.ts.map +1 -0
- package/dist/feature-flags/template.js +13 -0
- package/dist/feature-flags/template.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +145 -0
- package/dist/index.js.map +1 -0
- package/dist/local-npm-registry/cleanup-tasks.d.ts +2 -0
- package/dist/local-npm-registry/cleanup-tasks.d.ts.map +1 -0
- package/dist/local-npm-registry/cleanup-tasks.js +17 -0
- package/dist/local-npm-registry/cleanup-tasks.js.map +1 -0
- package/dist/local-npm-registry/index.d.ts +12 -0
- package/dist/local-npm-registry/index.d.ts.map +1 -0
- package/dist/local-npm-registry/index.js +49 -0
- package/dist/local-npm-registry/index.js.map +1 -0
- package/dist/local-npm-registry/install-packages.d.ts +7 -0
- package/dist/local-npm-registry/install-packages.d.ts.map +1 -0
- package/dist/local-npm-registry/install-packages.js +136 -0
- package/dist/local-npm-registry/install-packages.js.map +1 -0
- package/dist/local-npm-registry/publish-package.d.ts +9 -0
- package/dist/local-npm-registry/publish-package.d.ts.map +1 -0
- package/dist/local-npm-registry/publish-package.js +101 -0
- package/dist/local-npm-registry/publish-package.js.map +1 -0
- package/dist/local-npm-registry/verdaccio-config.d.ts +29 -0
- package/dist/local-npm-registry/verdaccio-config.d.ts.map +1 -0
- package/dist/local-npm-registry/verdaccio-config.js +30 -0
- package/dist/local-npm-registry/verdaccio-config.js.map +1 -0
- package/dist/utils/check-deps-changes.d.ts +12 -0
- package/dist/utils/check-deps-changes.d.ts.map +1 -0
- package/dist/utils/check-deps-changes.js +152 -0
- package/dist/utils/check-deps-changes.js.map +1 -0
- package/dist/utils/get-dependant-packages.d.ts +10 -0
- package/dist/utils/get-dependant-packages.d.ts.map +1 -0
- package/dist/utils/get-dependant-packages.js +22 -0
- package/dist/utils/get-dependant-packages.js.map +1 -0
- package/dist/utils/get-monorepo-package-json-path.d.ts +5 -0
- package/dist/utils/get-monorepo-package-json-path.d.ts.map +1 -0
- package/dist/utils/get-monorepo-package-json-path.js +3 -0
- package/dist/utils/get-monorepo-package-json-path.js.map +1 -0
- package/dist/utils/promisified-spawn.d.ts +4 -0
- package/dist/utils/promisified-spawn.d.ts.map +1 -0
- package/dist/utils/promisified-spawn.js +24 -0
- package/dist/utils/promisified-spawn.js.map +1 -0
- package/dist/utils/traverse-package-deps.d.ts +43 -0
- package/dist/utils/traverse-package-deps.d.ts.map +1 -0
- package/dist/utils/traverse-package-deps.js +74 -0
- package/dist/utils/traverse-package-deps.js.map +1 -0
- package/dist/utils/version.d.ts +2 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +5 -0
- package/dist/utils/version.js.map +1 -0
- package/dist/watch.d.ts +11 -0
- package/dist/watch.d.ts.map +1 -0
- package/dist/watch.js +289 -0
- package/dist/watch.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
const path = require(`path`);
|
|
2
|
+
const fs = require(`fs-extra`);
|
|
3
|
+
const { promisifiedSpawn } = require(`../utils/promisified-spawn`);
|
|
4
|
+
const { registryUrl } = require(`./verdaccio-config`);
|
|
5
|
+
const installPackages = async ({ packagesToInstall, yarnWorkspaceRoot, newlyPublishedPackageVersions, externalRegistry, }) => {
|
|
6
|
+
console.log(`Installing packages from local registry:\n${packagesToInstall
|
|
7
|
+
.map((packageAndVersion) => ` - ${packageAndVersion}`)
|
|
8
|
+
.join(`\n`)}`);
|
|
9
|
+
let installCmd;
|
|
10
|
+
if (yarnWorkspaceRoot) {
|
|
11
|
+
// this is very hacky - given root, we run `yarn workspaces info`
|
|
12
|
+
// to get list of all workspaces and their locations, and manually
|
|
13
|
+
// edit package.json file for packages we want to install
|
|
14
|
+
// to make sure there are no mismatched versions of same package
|
|
15
|
+
// in workspaces which should preserve node_modules structure
|
|
16
|
+
// (packages being mostly hoisted to top-level node_modules)
|
|
17
|
+
const { stdout: yarnVersion } = await promisifiedSpawn([
|
|
18
|
+
`yarn`,
|
|
19
|
+
[`--version`],
|
|
20
|
+
{ stdio: `pipe` },
|
|
21
|
+
]);
|
|
22
|
+
const workspaceCommand = !yarnVersion.startsWith("1") ? "list" : "info";
|
|
23
|
+
const { stdout } = await promisifiedSpawn([
|
|
24
|
+
`yarn`,
|
|
25
|
+
[`workspaces`, workspaceCommand, `--json`],
|
|
26
|
+
{ stdio: `pipe` },
|
|
27
|
+
]);
|
|
28
|
+
let workspacesLayout;
|
|
29
|
+
try {
|
|
30
|
+
workspacesLayout = JSON.parse(JSON.parse(stdout).data);
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
/*
|
|
34
|
+
Yarn 1.22 doesn't output pure json - it has leading and trailing text:
|
|
35
|
+
```
|
|
36
|
+
$ yarn workspaces info --json
|
|
37
|
+
yarn workspaces v1.22.0
|
|
38
|
+
{
|
|
39
|
+
"z": {
|
|
40
|
+
"location": "z",
|
|
41
|
+
"workspaceDependencies": [],
|
|
42
|
+
"mismatchedWorkspaceDependencies": []
|
|
43
|
+
},
|
|
44
|
+
"y": {
|
|
45
|
+
"location": "y",
|
|
46
|
+
"workspaceDependencies": [],
|
|
47
|
+
"mismatchedWorkspaceDependencies": []
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
Done in 0.48s.
|
|
51
|
+
```
|
|
52
|
+
So we need to do some sanitization. We find JSON by matching substring
|
|
53
|
+
that starts with `{` and ends with `}`
|
|
54
|
+
*/
|
|
55
|
+
const regex = /^[^{]*({.*})[^}]*$/gs;
|
|
56
|
+
const sanitizedStdOut = regex.exec(stdout);
|
|
57
|
+
if (sanitizedStdOut?.length >= 2) {
|
|
58
|
+
// pick content of first (and only) capturing group
|
|
59
|
+
const jsonString = sanitizedStdOut[1];
|
|
60
|
+
try {
|
|
61
|
+
workspacesLayout = JSON.parse(jsonString);
|
|
62
|
+
}
|
|
63
|
+
catch (e) {
|
|
64
|
+
console.error(`Failed to parse "sanitized" output of "yarn workspaces info" command.\n\nSanitized string: "${jsonString}`);
|
|
65
|
+
// not exitting here, because we have general check for `workspacesLayout` being set below
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (!workspacesLayout) {
|
|
70
|
+
console.error(`Couldn't parse output of "yarn workspaces info" command`, stdout);
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
const handleDeps = (deps) => {
|
|
74
|
+
if (!deps) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
let changed = false;
|
|
78
|
+
Object.keys(deps).forEach((depName) => {
|
|
79
|
+
if (packagesToInstall.includes(depName)) {
|
|
80
|
+
deps[depName] = `acmekit-dev`;
|
|
81
|
+
changed = true;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
return changed;
|
|
85
|
+
};
|
|
86
|
+
Object.keys(workspacesLayout).forEach((workspaceName) => {
|
|
87
|
+
const { location } = workspacesLayout[workspaceName];
|
|
88
|
+
const pkgJsonPath = path.join(yarnWorkspaceRoot, location, `package.json`);
|
|
89
|
+
if (!fs.existsSync(pkgJsonPath)) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, `utf8`));
|
|
93
|
+
let changed = false;
|
|
94
|
+
changed |= handleDeps(pkg.dependencies);
|
|
95
|
+
changed |= handleDeps(pkg.devDependencies);
|
|
96
|
+
changed |= handleDeps(pkg.peerDependencies);
|
|
97
|
+
if (changed) {
|
|
98
|
+
console.log(`Changing deps in ${pkgJsonPath} to use @acmekit-dev`);
|
|
99
|
+
fs.outputJSONSync(pkgJsonPath, pkg, {
|
|
100
|
+
spaces: 2,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
// package.json files are changed - so we just want to install
|
|
105
|
+
// using verdaccio registry
|
|
106
|
+
const yarnCommands = [`install`];
|
|
107
|
+
if (!externalRegistry) {
|
|
108
|
+
yarnCommands.push(`--registry=${registryUrl}`);
|
|
109
|
+
}
|
|
110
|
+
installCmd = [`yarn`, yarnCommands];
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
const yarnCommands = [
|
|
114
|
+
`add`,
|
|
115
|
+
...packagesToInstall.map((packageName) => {
|
|
116
|
+
const packageVersion = newlyPublishedPackageVersions[packageName];
|
|
117
|
+
return `${packageName}@${packageVersion}`;
|
|
118
|
+
}),
|
|
119
|
+
`--exact`,
|
|
120
|
+
];
|
|
121
|
+
if (!externalRegistry) {
|
|
122
|
+
yarnCommands.push(`--registry=${registryUrl}`);
|
|
123
|
+
}
|
|
124
|
+
installCmd = [`yarn`, yarnCommands];
|
|
125
|
+
}
|
|
126
|
+
try {
|
|
127
|
+
await promisifiedSpawn(installCmd);
|
|
128
|
+
console.log(`Installation complete`);
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
console.error(`Installation failed`, error);
|
|
132
|
+
process.exit(1);
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
exports.installPackages = installPackages;
|
|
136
|
+
//# sourceMappingURL=install-packages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-packages.js","sourceRoot":"","sources":["../../src/local-npm-registry/install-packages.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export function publishPackage({ packageName, packagesToPublish, versionPostFix, ignorePackageJSONChanges, packageNameToPath, root, }: {
|
|
2
|
+
packageName: any;
|
|
3
|
+
packagesToPublish: any;
|
|
4
|
+
versionPostFix: any;
|
|
5
|
+
ignorePackageJSONChanges: any;
|
|
6
|
+
packageNameToPath: any;
|
|
7
|
+
root: any;
|
|
8
|
+
}): Promise<any>;
|
|
9
|
+
//# sourceMappingURL=publish-package.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish-package.d.ts","sourceRoot":"","sources":["../../src/local-npm-registry/publish-package.js"],"names":[],"mappings":"AAsGA;;;;;;;iBAqDC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
const fs = require(`fs-extra`);
|
|
2
|
+
const path = require(`path`);
|
|
3
|
+
const { promisifiedSpawn } = require(`../utils/promisified-spawn`);
|
|
4
|
+
const { registryUrl } = require(`./verdaccio-config`);
|
|
5
|
+
const NPMRCContent = `${registryUrl.replace(/https?:/g, ``)}/:_authToken="acmekit-dev"`;
|
|
6
|
+
const { getMonorepoPackageJsonPath, } = require(`../utils/get-monorepo-package-json-path`);
|
|
7
|
+
const { registerCleanupTask } = require(`./cleanup-tasks`);
|
|
8
|
+
/**
|
|
9
|
+
* Edit package.json to:
|
|
10
|
+
* - adjust version to temporary one
|
|
11
|
+
* - change version selectors for dependencies that
|
|
12
|
+
* will be published, to make sure that yarn
|
|
13
|
+
* install them in local site
|
|
14
|
+
*/
|
|
15
|
+
const adjustPackageJson = ({ monoRepoPackageJsonPath, packageName, versionPostFix, packagesToPublish, ignorePackageJSONChanges, packageNameToPath, }) => {
|
|
16
|
+
// we need to check if package depend on any other package to will be published and
|
|
17
|
+
// adjust version selector to point to dev version of package so local registry is used
|
|
18
|
+
// for dependencies.
|
|
19
|
+
const monorepoPKGjsonString = fs.readFileSync(monoRepoPackageJsonPath, `utf-8`);
|
|
20
|
+
const monorepoPKGjson = JSON.parse(monorepoPKGjsonString);
|
|
21
|
+
monorepoPKGjson.version = `${monorepoPKGjson.version}-dev-${versionPostFix}`;
|
|
22
|
+
packagesToPublish.forEach((packageThatWillBePublished) => {
|
|
23
|
+
if (monorepoPKGjson.dependencies &&
|
|
24
|
+
monorepoPKGjson.dependencies[packageThatWillBePublished]) {
|
|
25
|
+
const currentVersion = JSON.parse(fs.readFileSync(getMonorepoPackageJsonPath({
|
|
26
|
+
packageName: packageThatWillBePublished,
|
|
27
|
+
packageNameToPath,
|
|
28
|
+
}), `utf-8`)).version;
|
|
29
|
+
monorepoPKGjson.dependencies[packageThatWillBePublished] = `${currentVersion}-dev-${versionPostFix}`;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
const temporaryMonorepoPKGjsonString = JSON.stringify(monorepoPKGjson);
|
|
33
|
+
const unignorePackageJSONChanges = ignorePackageJSONChanges(packageName, [
|
|
34
|
+
monorepoPKGjsonString,
|
|
35
|
+
temporaryMonorepoPKGjsonString,
|
|
36
|
+
]);
|
|
37
|
+
// change version and dependency versions
|
|
38
|
+
fs.outputFileSync(monoRepoPackageJsonPath, temporaryMonorepoPKGjsonString);
|
|
39
|
+
return {
|
|
40
|
+
newPackageVersion: monorepoPKGjson.version,
|
|
41
|
+
unadjustPackageJson: registerCleanupTask(() => {
|
|
42
|
+
// restore original package.json
|
|
43
|
+
fs.outputFileSync(monoRepoPackageJsonPath, monorepoPKGjsonString);
|
|
44
|
+
unignorePackageJSONChanges();
|
|
45
|
+
}),
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Anonymous publishing require dummy .npmrc
|
|
50
|
+
* See https://github.com/verdaccio/verdaccio/issues/212#issuecomment-308578500
|
|
51
|
+
* This is `npm publish` (as in linked comment) and `yarn publish` requirement.
|
|
52
|
+
* This is not verdaccio restriction.
|
|
53
|
+
*/
|
|
54
|
+
const createTemporaryNPMRC = ({ pathToPackage, root }) => {
|
|
55
|
+
const NPMRCPathInPackage = path.join(pathToPackage, `.npmrc`);
|
|
56
|
+
fs.outputFileSync(NPMRCPathInPackage, NPMRCContent);
|
|
57
|
+
const NPMRCPathInRoot = path.join(root, `.npmrc`);
|
|
58
|
+
fs.outputFileSync(NPMRCPathInRoot, NPMRCContent);
|
|
59
|
+
return registerCleanupTask(() => {
|
|
60
|
+
fs.removeSync(NPMRCPathInPackage);
|
|
61
|
+
fs.removeSync(NPMRCPathInRoot);
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
const publishPackage = async ({ packageName, packagesToPublish, versionPostFix, ignorePackageJSONChanges, packageNameToPath, root, }) => {
|
|
65
|
+
const monoRepoPackageJsonPath = getMonorepoPackageJsonPath({
|
|
66
|
+
packageName,
|
|
67
|
+
packageNameToPath,
|
|
68
|
+
});
|
|
69
|
+
const { unadjustPackageJson, newPackageVersion } = adjustPackageJson({
|
|
70
|
+
monoRepoPackageJsonPath,
|
|
71
|
+
packageName,
|
|
72
|
+
packageNameToPath,
|
|
73
|
+
versionPostFix,
|
|
74
|
+
packagesToPublish,
|
|
75
|
+
ignorePackageJSONChanges,
|
|
76
|
+
});
|
|
77
|
+
const pathToPackage = path.dirname(monoRepoPackageJsonPath);
|
|
78
|
+
const uncreateTemporaryNPMRC = createTemporaryNPMRC({ pathToPackage, root });
|
|
79
|
+
// npm publish
|
|
80
|
+
const publishCmd = [
|
|
81
|
+
`npm`,
|
|
82
|
+
[`publish`, `--tag`, `acmekit-dev`, `--registry=${registryUrl}`],
|
|
83
|
+
{
|
|
84
|
+
cwd: pathToPackage,
|
|
85
|
+
},
|
|
86
|
+
];
|
|
87
|
+
console.log(`Publishing ${packageName}@${newPackageVersion} to local registry`);
|
|
88
|
+
try {
|
|
89
|
+
await promisifiedSpawn(publishCmd);
|
|
90
|
+
console.log(`Published ${packageName}@${newPackageVersion} to local registry`);
|
|
91
|
+
}
|
|
92
|
+
catch (e) {
|
|
93
|
+
console.error(`Failed to publish ${packageName}@${newPackageVersion}`, e);
|
|
94
|
+
process.exit(1);
|
|
95
|
+
}
|
|
96
|
+
uncreateTemporaryNPMRC();
|
|
97
|
+
unadjustPackageJson();
|
|
98
|
+
return newPackageVersion;
|
|
99
|
+
};
|
|
100
|
+
exports.publishPackage = publishPackage;
|
|
101
|
+
//# sourceMappingURL=publish-package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish-package.js","sourceRoot":"","sources":["../../src/local-npm-registry/publish-package.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export namespace verdaccioConfig {
|
|
2
|
+
let storage: string;
|
|
3
|
+
let port: number;
|
|
4
|
+
let max_body_size: string;
|
|
5
|
+
namespace web {
|
|
6
|
+
let enable: boolean;
|
|
7
|
+
let title: string;
|
|
8
|
+
}
|
|
9
|
+
let logs: {
|
|
10
|
+
type: string;
|
|
11
|
+
format: string;
|
|
12
|
+
level: string;
|
|
13
|
+
}[];
|
|
14
|
+
let packages: {
|
|
15
|
+
"**": {
|
|
16
|
+
access: string;
|
|
17
|
+
publish: string;
|
|
18
|
+
proxy: string;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
namespace uplinks {
|
|
22
|
+
namespace npmjs {
|
|
23
|
+
let url: string;
|
|
24
|
+
let max_fails: number;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export const registryUrl: string;
|
|
29
|
+
//# sourceMappingURL=verdaccio-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verdaccio-config.d.ts","sourceRoot":"","sources":["../../src/local-npm-registry/verdaccio-config.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,iCAA8D"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
const path = require(`path`);
|
|
2
|
+
const os = require(`os`);
|
|
3
|
+
const verdaccioConfig = {
|
|
4
|
+
storage: path.join(os.tmpdir(), `verdaccio`, `storage`),
|
|
5
|
+
port: 4873, // default
|
|
6
|
+
max_body_size: `1000mb`,
|
|
7
|
+
web: {
|
|
8
|
+
enable: true,
|
|
9
|
+
title: `gatsby-dev`,
|
|
10
|
+
},
|
|
11
|
+
logs: [{ type: `stdout`, format: `pretty-timestamped`, level: `warn` }],
|
|
12
|
+
packages: {
|
|
13
|
+
"**": {
|
|
14
|
+
access: `$all`,
|
|
15
|
+
publish: `$all`,
|
|
16
|
+
proxy: `npmjs`,
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
uplinks: {
|
|
20
|
+
npmjs: {
|
|
21
|
+
url: `https://registry.npmjs.org/`,
|
|
22
|
+
// default is 2 max_fails - on flaky networks that cause a lot of failed installations
|
|
23
|
+
max_fails: 10,
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
exports.verdaccioConfig = verdaccioConfig;
|
|
28
|
+
const registryUrl = `http://localhost:${verdaccioConfig.port}`;
|
|
29
|
+
exports.registryUrl = registryUrl;
|
|
30
|
+
//# sourceMappingURL=verdaccio-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verdaccio-config.js","sourceRoot":"","sources":["../../src/local-npm-registry/verdaccio-config.js"],"names":[],"mappings":"AAAA,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAExB,MAAM,eAAe,GAAG;IACtB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC;IACvD,IAAI,EAAE,IAAI,EAAE,UAAU;IACtB,aAAa,EAAE,QAAQ;IACvB,GAAG,EAAE;QACH,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,YAAY;KACpB;IACD,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACvE,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,OAAO;SACf;KACF;IACD,OAAO,EAAE;QACP,KAAK,EAAE;YACL,GAAG,EAAE,6BAA6B;YAClC,sFAAsF;YACtF,SAAS,EAAE,EAAE;SACd;KACF;CACF,CAAA;AAED,OAAO,CAAC,eAAe,GAAG,eAAe,CAAA;AAEzC,MAAM,WAAW,GAAG,oBAAoB,eAAe,CAAC,IAAI,EAAE,CAAA;AAE9D,OAAO,CAAC,WAAW,GAAG,WAAW,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function checkDepsChanges({ newPath, packageName, monoRepoPackages, isInitialScan, ignoredPackageJSON, packageNameToPath, }: {
|
|
2
|
+
newPath: any;
|
|
3
|
+
packageName: any;
|
|
4
|
+
monoRepoPackages: any;
|
|
5
|
+
isInitialScan: any;
|
|
6
|
+
ignoredPackageJSON: any;
|
|
7
|
+
packageNameToPath: any;
|
|
8
|
+
}): Promise<{
|
|
9
|
+
didDepsChanged: boolean;
|
|
10
|
+
packageNotInstalled: boolean;
|
|
11
|
+
}>;
|
|
12
|
+
//# sourceMappingURL=check-deps-changes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-deps-changes.d.ts","sourceRoot":"","sources":["../../src/utils/check-deps-changes.js"],"names":[],"mappings":"AA6B2B;;;;;;;;;;GA0J1B"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
const fs = require(`fs-extra`);
|
|
2
|
+
const _ = require(`lodash`);
|
|
3
|
+
const { getMonorepoPackageJsonPath, } = require(`./get-monorepo-package-json-path`);
|
|
4
|
+
const got = require(`got`);
|
|
5
|
+
function difference(object, base) {
|
|
6
|
+
function changes(object, base) {
|
|
7
|
+
return _.transform(object, function (result, value, key) {
|
|
8
|
+
if (!_.isEqual(value, base[key])) {
|
|
9
|
+
result[key] =
|
|
10
|
+
_.isObject(value) && _.isObject(base[key])
|
|
11
|
+
? changes(value, base[key])
|
|
12
|
+
: value;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return changes(object, base);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Compare dependencies of installed packages and monorepo package.
|
|
20
|
+
* It will skip dependencies that are removed in monorepo package.
|
|
21
|
+
*
|
|
22
|
+
* If local package is not installed, it will check unpkg.com.
|
|
23
|
+
* This allow gatsby-dev to skip publishing unnecesairly and
|
|
24
|
+
* let install packages from public npm repository if nothing changed.
|
|
25
|
+
*/
|
|
26
|
+
exports.checkDepsChanges = async ({ newPath, packageName, monoRepoPackages, isInitialScan, ignoredPackageJSON, packageNameToPath, }) => {
|
|
27
|
+
let localPKGjson;
|
|
28
|
+
let packageNotInstalled = false;
|
|
29
|
+
try {
|
|
30
|
+
localPKGjson = JSON.parse(fs.readFileSync(newPath, `utf-8`));
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
packageNotInstalled = true;
|
|
34
|
+
// there is no local package - so we still need to install deps
|
|
35
|
+
// this is nice because devs won't need to do initial package installation - we can handle this.
|
|
36
|
+
if (!isInitialScan) {
|
|
37
|
+
console.log(`'${packageName}' doesn't seem to be installed. Restart gatsby-dev to publish it`);
|
|
38
|
+
return {
|
|
39
|
+
didDepsChanged: false,
|
|
40
|
+
packageNotInstalled,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
// if package is not installed, we will do http GET request to
|
|
44
|
+
// unkpg to check if dependency in package published in public
|
|
45
|
+
// npm repository are different
|
|
46
|
+
// this allow us to not publish to local repository
|
|
47
|
+
// and save some time/work
|
|
48
|
+
try {
|
|
49
|
+
const version = getPackageVersion(packageName);
|
|
50
|
+
const url = `https://unpkg.com/${packageName}@${version}/package.json`;
|
|
51
|
+
const response = await got(url);
|
|
52
|
+
if (response?.statusCode !== 200) {
|
|
53
|
+
throw new Error(`No response or non 200 code for ${url}`);
|
|
54
|
+
}
|
|
55
|
+
localPKGjson = JSON.parse(response.body);
|
|
56
|
+
}
|
|
57
|
+
catch (e) {
|
|
58
|
+
console.log(`'${packageName}' doesn't seem to be installed and is not published on NPM. Error: ${e.message}`);
|
|
59
|
+
return {
|
|
60
|
+
didDepsChanged: true,
|
|
61
|
+
packageNotInstalled,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const monoRepoPackageJsonPath = getMonorepoPackageJsonPath({
|
|
66
|
+
packageName,
|
|
67
|
+
packageNameToPath,
|
|
68
|
+
});
|
|
69
|
+
const monorepoPKGjsonString = fs.readFileSync(monoRepoPackageJsonPath, `utf-8`);
|
|
70
|
+
const monorepoPKGjson = JSON.parse(monorepoPKGjsonString);
|
|
71
|
+
if (ignoredPackageJSON.has(packageName)) {
|
|
72
|
+
if (ignoredPackageJSON.get(packageName).includes(monorepoPKGjsonString)) {
|
|
73
|
+
// we are in middle of publishing and content of package.json is one set during publish process,
|
|
74
|
+
// so we need to not cause false positives
|
|
75
|
+
return {
|
|
76
|
+
didDepsChanged: false,
|
|
77
|
+
packageNotInstalled,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
if (!monorepoPKGjson.dependencies)
|
|
82
|
+
monorepoPKGjson.dependencies = {};
|
|
83
|
+
if (!localPKGjson.dependencies)
|
|
84
|
+
localPKGjson.dependencies = {};
|
|
85
|
+
const areDepsEqual = _.isEqual(monorepoPKGjson.dependencies, localPKGjson.dependencies);
|
|
86
|
+
if (!areDepsEqual) {
|
|
87
|
+
const diff = difference(monorepoPKGjson.dependencies, localPKGjson.dependencies);
|
|
88
|
+
const diff2 = difference(localPKGjson.dependencies, monorepoPKGjson.dependencies);
|
|
89
|
+
let needPublishing = false;
|
|
90
|
+
let isPublishing = false;
|
|
91
|
+
const depChangeLog = _.uniq(Object.keys({ ...diff, ...diff2 }))
|
|
92
|
+
.reduce((acc, key) => {
|
|
93
|
+
if (monorepoPKGjson.dependencies[key] === `gatsby-dev`) {
|
|
94
|
+
// if we are in middle of publishing to local repository - ignore
|
|
95
|
+
isPublishing = true;
|
|
96
|
+
return acc;
|
|
97
|
+
}
|
|
98
|
+
if (localPKGjson.dependencies[key] === `gatsby-dev`) {
|
|
99
|
+
// monorepo packages will restore version, but after installation
|
|
100
|
+
// in local site - it will use `gatsby-dev` dist tag - we need
|
|
101
|
+
// to ignore changes that
|
|
102
|
+
return acc;
|
|
103
|
+
}
|
|
104
|
+
if (localPKGjson.dependencies[key] &&
|
|
105
|
+
monorepoPKGjson.dependencies[key]) {
|
|
106
|
+
// Check only for version changes in packages
|
|
107
|
+
// that are not from gatsby repo.
|
|
108
|
+
// Changes in gatsby packages will be copied over
|
|
109
|
+
// from monorepo - and if those contain other dependency
|
|
110
|
+
// changes - they will be covered
|
|
111
|
+
if (!monoRepoPackages.includes(key)) {
|
|
112
|
+
acc.push(` - '${key}' changed version from ${localPKGjson.dependencies[key]} to ${monorepoPKGjson.dependencies[key]}`);
|
|
113
|
+
needPublishing = true;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
else if (monorepoPKGjson.dependencies[key]) {
|
|
117
|
+
acc.push(` - '${key}@${monorepoPKGjson.dependencies[key]}' was added`);
|
|
118
|
+
needPublishing = true;
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
acc.push(` - '${key}@${localPKGjson.dependencies[key]}' was removed`);
|
|
122
|
+
// this doesn't need publishing really, so will skip this
|
|
123
|
+
}
|
|
124
|
+
return acc;
|
|
125
|
+
}, [])
|
|
126
|
+
.join(`\n`);
|
|
127
|
+
if (!isPublishing && depChangeLog.length > 0) {
|
|
128
|
+
console.log(`Dependencies of '${packageName}' changed:\n${depChangeLog}`);
|
|
129
|
+
if (isInitialScan) {
|
|
130
|
+
console.log(`Will ${!needPublishing ? `not ` : ``}publish to local npm registry.`);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
console.warn(`Installation of dependencies after initial scan is not implemented`);
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
didDepsChanged: needPublishing,
|
|
137
|
+
packageNotInstalled,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return {
|
|
142
|
+
didDepsChanged: false,
|
|
143
|
+
packageNotInstalled,
|
|
144
|
+
};
|
|
145
|
+
};
|
|
146
|
+
function getPackageVersion(packageName) {
|
|
147
|
+
const projectPackageJson = JSON.parse(fs.readFileSync(`./package.json`, `utf-8`));
|
|
148
|
+
const { dependencies = {}, devDependencies = {} } = projectPackageJson;
|
|
149
|
+
const version = dependencies[packageName] || devDependencies[packageName];
|
|
150
|
+
return version || `latest`;
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=check-deps-changes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-deps-changes.js","sourceRoot":"","sources":["../../src/utils/check-deps-changes.js"],"names":[],"mappings":"AAAA,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAC9B,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAC3B,MAAM,EACJ,0BAA0B,GAC3B,GAAG,OAAO,CAAC,kCAAkC,CAAC,CAAA;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;AAE1B,SAAS,UAAU,CAAC,MAAM,EAAE,IAAI;IAC9B,SAAS,OAAO,CAAC,MAAM,EAAE,IAAI;QAC3B,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,MAAM,EAAE,KAAK,EAAE,GAAG;YACrD,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACjC,MAAM,CAAC,GAAG,CAAC;oBACT,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACxC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;wBAC3B,CAAC,CAAC,KAAK,CAAA;YACb,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AAC9B,CAAC;AAED;;;;;;;GAOG;AACH,OAAO,CAAC,gBAAgB,GAAG,KAAK,EAAE,EAChC,OAAO,EACP,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,GAClB,EAAE,EAAE;IACH,IAAI,YAAY,CAAA;IAChB,IAAI,mBAAmB,GAAG,KAAK,CAAA;IAC/B,IAAI,CAAC;QACH,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,mBAAmB,GAAG,IAAI,CAAA;QAC1B,+DAA+D;QAC/D,gGAAgG;QAChG,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CACT,IAAI,WAAW,kEAAkE,CAClF,CAAA;YACD,OAAO;gBACL,cAAc,EAAE,KAAK;gBACrB,mBAAmB;aACpB,CAAA;QACH,CAAC;QAED,8DAA8D;QAC9D,8DAA8D;QAC9D,+BAA+B;QAE/B,mDAAmD;QACnD,0BAA0B;QAC1B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAA;YAC9C,MAAM,GAAG,GAAG,qBAAqB,WAAW,IAAI,OAAO,eAAe,CAAA;YACtE,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAA;YAC/B,IAAI,QAAQ,EAAE,UAAU,KAAK,GAAG,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,EAAE,CAAC,CAAA;YAC3D,CAAC;YACD,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC1C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CACT,IAAI,WAAW,sEAAsE,CAAC,CAAC,OAAO,EAAE,CACjG,CAAA;YACD,OAAO;gBACL,cAAc,EAAE,IAAI;gBACpB,mBAAmB;aACpB,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,uBAAuB,GAAG,0BAA0B,CAAC;QACzD,WAAW;QACX,iBAAiB;KAClB,CAAC,CAAA;IACF,MAAM,qBAAqB,GAAG,EAAE,CAAC,YAAY,CAC3C,uBAAuB,EACvB,OAAO,CACR,CAAA;IACD,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACzD,IAAI,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QACxC,IAAI,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACxE,gGAAgG;YAChG,0CAA0C;YAC1C,OAAO;gBACL,cAAc,EAAE,KAAK;gBACrB,mBAAmB;aACpB,CAAA;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,YAAY;QAAE,eAAe,CAAC,YAAY,GAAG,EAAE,CAAA;IACpE,IAAI,CAAC,YAAY,CAAC,YAAY;QAAE,YAAY,CAAC,YAAY,GAAG,EAAE,CAAA;IAE9D,MAAM,YAAY,GAAG,CAAC,CAAC,OAAO,CAC5B,eAAe,CAAC,YAAY,EAC5B,YAAY,CAAC,YAAY,CAC1B,CAAA;IAED,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,UAAU,CACrB,eAAe,CAAC,YAAY,EAC5B,YAAY,CAAC,YAAY,CAC1B,CAAA;QAED,MAAM,KAAK,GAAG,UAAU,CACtB,YAAY,CAAC,YAAY,EACzB,eAAe,CAAC,YAAY,CAC7B,CAAA;QAED,IAAI,cAAc,GAAG,KAAK,CAAA;QAC1B,IAAI,YAAY,GAAG,KAAK,CAAA;QACxB,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;aAC5D,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACnB,IAAI,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,YAAY,EAAE,CAAC;gBACvD,iEAAiE;gBACjE,YAAY,GAAG,IAAI,CAAA;gBACnB,OAAO,GAAG,CAAA;YACZ,CAAC;YAED,IAAI,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,YAAY,EAAE,CAAC;gBACpD,iEAAiE;gBACjE,8DAA8D;gBAC9D,yBAAyB;gBACzB,OAAO,GAAG,CAAA;YACZ,CAAC;YAED,IACE,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC;gBAC9B,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,EACjC,CAAC;gBACD,6CAA6C;gBAC7C,iCAAiC;gBACjC,iDAAiD;gBACjD,wDAAwD;gBACxD,iCAAiC;gBACjC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpC,GAAG,CAAC,IAAI,CACN,OAAO,GAAG,0BAA0B,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAC7G,CAAA;oBACD,cAAc,GAAG,IAAI,CAAA;gBACvB,CAAC;YACH,CAAC;iBAAM,IAAI,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7C,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;gBACtE,cAAc,GAAG,IAAI,CAAA;YACvB,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;gBACrE,yDAAyD;YAC3D,CAAC;YACD,OAAO,GAAG,CAAA;QACZ,CAAC,EAAE,EAAE,CAAC;aACL,IAAI,CAAC,IAAI,CAAC,CAAA;QAEb,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,oBAAoB,WAAW,eAAe,YAAY,EAAE,CAAC,CAAA;YACzE,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CACT,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,gCAAgC,CACtE,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CACV,oEAAoE,CACrE,CAAA;YACH,CAAC;YACD,OAAO;gBACL,cAAc,EAAE,cAAc;gBAC9B,mBAAmB;aACpB,CAAA;QACH,CAAC;IACH,CAAC;IACD,OAAO;QACL,cAAc,EAAE,KAAK;QACrB,mBAAmB;KACpB,CAAA;AACH,CAAC,CAAA;AAED,SAAS,iBAAiB,CAAC,WAAW;IACpC,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CACnC,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAC3C,CAAA;IACD,MAAM,EAAE,YAAY,GAAG,EAAE,EAAE,eAAe,GAAG,EAAE,EAAE,GAAG,kBAAkB,CAAA;IACtE,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC,WAAW,CAAC,CAAA;IACzE,OAAO,OAAO,IAAI,QAAQ,CAAA;AAC5B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recursively get set of packages that depend on given package.
|
|
3
|
+
* Set also includes passed package.
|
|
4
|
+
*/
|
|
5
|
+
export function getDependantPackages({ packageName, depTree, packagesToPublish, }: {
|
|
6
|
+
packageName: any;
|
|
7
|
+
depTree: any;
|
|
8
|
+
packagesToPublish?: Set<any> | undefined;
|
|
9
|
+
}): Set<any>;
|
|
10
|
+
//# sourceMappingURL=get-dependant-packages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-dependant-packages.d.ts","sourceRoot":"","sources":["../../src/utils/get-dependant-packages.js"],"names":[],"mappings":"AAAA;;;GAGG;AACH;;;;aAuBC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recursively get set of packages that depend on given package.
|
|
3
|
+
* Set also includes passed package.
|
|
4
|
+
*/
|
|
5
|
+
const getDependantPackages = ({ packageName, depTree, packagesToPublish = new Set(), }) => {
|
|
6
|
+
if (packagesToPublish.has(packageName)) {
|
|
7
|
+
// bail early if package was already handled
|
|
8
|
+
return packagesToPublish;
|
|
9
|
+
}
|
|
10
|
+
packagesToPublish.add(packageName);
|
|
11
|
+
const dependants = depTree[packageName];
|
|
12
|
+
if (dependants) {
|
|
13
|
+
dependants.forEach((dependant) => getDependantPackages({
|
|
14
|
+
packageName: dependant,
|
|
15
|
+
depTree,
|
|
16
|
+
packagesToPublish,
|
|
17
|
+
}));
|
|
18
|
+
}
|
|
19
|
+
return packagesToPublish;
|
|
20
|
+
};
|
|
21
|
+
exports.getDependantPackages = getDependantPackages;
|
|
22
|
+
//# sourceMappingURL=get-dependant-packages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-dependant-packages.js","sourceRoot":"","sources":["../../src/utils/get-dependant-packages.js"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,oBAAoB,GAAG,CAAC,EAC5B,WAAW,EACX,OAAO,EACP,iBAAiB,GAAG,IAAI,GAAG,EAAE,GAC9B,EAAE,EAAE;IACH,IAAI,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,4CAA4C;QAC5C,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IAED,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IAClC,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IACvC,IAAI,UAAU,EAAE,CAAC;QACf,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAC/B,oBAAoB,CAAC;YACnB,WAAW,EAAE,SAAS;YACtB,OAAO;YACP,iBAAiB;SAClB,CAAC,CACH,CAAA;IACH,CAAC;IAED,OAAO,iBAAiB,CAAA;AAC1B,CAAC,CAAA;AAED,OAAO,CAAC,oBAAoB,GAAG,oBAAoB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-monorepo-package-json-path.d.ts","sourceRoot":"","sources":["../../src/utils/get-monorepo-package-json-path.js"],"names":[],"mappings":"AAEqC;;;WAC0B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-monorepo-package-json-path.js","sourceRoot":"","sources":["../../src/utils/get-monorepo-package-json-path.js"],"names":[],"mappings":"AAAA,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAE5B,OAAO,CAAC,0BAA0B,GAAG,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAC1E,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,cAAc,CAAC,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export function setDefaultSpawnStdio(stdio: any): void;
|
|
2
|
+
export function promisifiedSpawn([cmd, args, spawnArgs]: [any, (never[] | undefined)?, ({} | undefined)?]): Promise<execa.ExecaReturnValue<string> & execa.ExecaReturnValue<Buffer<ArrayBufferLike>>>;
|
|
3
|
+
import execa = require("execa");
|
|
4
|
+
//# sourceMappingURL=promisified-spawn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promisified-spawn.d.ts","sourceRoot":"","sources":["../../src/utils/promisified-spawn.js"],"names":[],"mappings":"AAO+B,uDAE9B;AAE0B,sMAiB1B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
const execa = require(`execa`);
|
|
2
|
+
const defaultSpawnArgs = {
|
|
3
|
+
cwd: process.cwd(),
|
|
4
|
+
stdio: `inherit`,
|
|
5
|
+
};
|
|
6
|
+
exports.setDefaultSpawnStdio = (stdio) => {
|
|
7
|
+
defaultSpawnArgs.stdio = stdio;
|
|
8
|
+
};
|
|
9
|
+
exports.promisifiedSpawn = async ([cmd, args = [], spawnArgs = {}]) => {
|
|
10
|
+
const spawnOptions = {
|
|
11
|
+
...defaultSpawnArgs,
|
|
12
|
+
...spawnArgs,
|
|
13
|
+
};
|
|
14
|
+
try {
|
|
15
|
+
return await execa(cmd, args, spawnOptions);
|
|
16
|
+
}
|
|
17
|
+
catch (e) {
|
|
18
|
+
if (spawnOptions.stdio === `ignore`) {
|
|
19
|
+
console.log(`\nCommand "${cmd} ${args.join(` `)}" failed.\nTo see details of failed command, rerun "acmekit-dev" without "--quiet" or "-q" switch\n`);
|
|
20
|
+
}
|
|
21
|
+
throw e;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=promisified-spawn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promisified-spawn.js","sourceRoot":"","sources":["../../src/utils/promisified-spawn.js"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAE9B,MAAM,gBAAgB,GAAG;IACvB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;IAClB,KAAK,EAAE,SAAS;CACjB,CAAA;AAED,OAAO,CAAC,oBAAoB,GAAG,CAAC,KAAK,EAAE,EAAE;IACvC,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAA;AAChC,CAAC,CAAA;AAED,OAAO,CAAC,gBAAgB,GAAG,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,CAAC,EAAE,EAAE;IACpE,MAAM,YAAY,GAAG;QACnB,GAAG,gBAAgB;QACnB,GAAG,SAAS;KACb,CAAA;IACD,IAAI,CAAC;QACH,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;IAC7C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,YAAY,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CACT,cAAc,GAAG,IAAI,IAAI,CAAC,IAAI,CAC5B,GAAG,CACJ,qGAAqG,CACvG,CAAA;QACH,CAAC;QACD,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC,CAAA"}
|