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,43 @@
|
|
|
1
|
+
export type TraversePackagesDepsReturn = {
|
|
2
|
+
/**
|
|
3
|
+
* Lookup table to check dependants for given package.
|
|
4
|
+
* Used to determine which packages need to be published.
|
|
5
|
+
*/
|
|
6
|
+
depTree: any;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* @typedef {Object} TraversePackagesDepsReturn
|
|
10
|
+
* @property {Object} depTree Lookup table to check dependants for given package.
|
|
11
|
+
* Used to determine which packages need to be published.
|
|
12
|
+
* @example
|
|
13
|
+
* ```
|
|
14
|
+
* {
|
|
15
|
+
* "acmekit-cli": Set(["acmekit"]),
|
|
16
|
+
* "acmekit-telemetry": Set(["acmekit", "acmekit-cli"]),
|
|
17
|
+
* }
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Compile final list of packages to watch
|
|
22
|
+
* This will include packages explicitly defined packages and all their dependencies
|
|
23
|
+
* Also creates dependency graph that is used later to determine which packages
|
|
24
|
+
* would need to be published when their dependencies change
|
|
25
|
+
* @param {Object} $0
|
|
26
|
+
* @param {String} $0.root Path to root of acmekit monorepo repository
|
|
27
|
+
* @param {String[]} $0.packages Initial array of packages to watch
|
|
28
|
+
* This can be extracted from project dependencies or explicitly set by `--packages` flag
|
|
29
|
+
* @param {String[]} $0.monoRepoPackages Array of packages in acmekit monorepo
|
|
30
|
+
* @param {String[]} [$0.seenPackages] Array of packages that were already traversed.
|
|
31
|
+
* This makes sure dependencies are extracted one time for each package and avoid any
|
|
32
|
+
* infinite loops.
|
|
33
|
+
* @param {DepTree} [$0.depTree] Used internally to recursively construct dependency graph.
|
|
34
|
+
* @return {TraversePackagesDepsReturn}
|
|
35
|
+
*/
|
|
36
|
+
export function traversePackagesDeps({ packages, monoRepoPackages, seenPackages, depTree, packageNameToPath, }: {
|
|
37
|
+
root: string;
|
|
38
|
+
packages: string[];
|
|
39
|
+
monoRepoPackages: string[];
|
|
40
|
+
seenPackages?: string[] | undefined;
|
|
41
|
+
depTree?: any;
|
|
42
|
+
}): TraversePackagesDepsReturn;
|
|
43
|
+
//# sourceMappingURL=traverse-package-deps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"traverse-package-deps.d.ts","sourceRoot":"","sources":["../../src/utils/traverse-package-deps.js"],"names":[],"mappings":";;;;;;;AAGA;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,gHAVG;IAAmB,IAAI;IACF,QAAQ,EAArB,QAAQ;IAEK,gBAAgB,EAA7B,QAAQ;IACM,YAAY;IAGb,OAAO;CAC5B,GAAS,0BAA0B,CAuDrC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
const _ = require(`lodash`);
|
|
2
|
+
const path = require(`path`);
|
|
3
|
+
/**
|
|
4
|
+
* @typedef {Object} TraversePackagesDepsReturn
|
|
5
|
+
* @property {Object} depTree Lookup table to check dependants for given package.
|
|
6
|
+
* Used to determine which packages need to be published.
|
|
7
|
+
* @example
|
|
8
|
+
* ```
|
|
9
|
+
* {
|
|
10
|
+
* "acmekit-cli": Set(["acmekit"]),
|
|
11
|
+
* "acmekit-telemetry": Set(["acmekit", "acmekit-cli"]),
|
|
12
|
+
* }
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Compile final list of packages to watch
|
|
17
|
+
* This will include packages explicitly defined packages and all their dependencies
|
|
18
|
+
* Also creates dependency graph that is used later to determine which packages
|
|
19
|
+
* would need to be published when their dependencies change
|
|
20
|
+
* @param {Object} $0
|
|
21
|
+
* @param {String} $0.root Path to root of acmekit monorepo repository
|
|
22
|
+
* @param {String[]} $0.packages Initial array of packages to watch
|
|
23
|
+
* This can be extracted from project dependencies or explicitly set by `--packages` flag
|
|
24
|
+
* @param {String[]} $0.monoRepoPackages Array of packages in acmekit monorepo
|
|
25
|
+
* @param {String[]} [$0.seenPackages] Array of packages that were already traversed.
|
|
26
|
+
* This makes sure dependencies are extracted one time for each package and avoid any
|
|
27
|
+
* infinite loops.
|
|
28
|
+
* @param {DepTree} [$0.depTree] Used internally to recursively construct dependency graph.
|
|
29
|
+
* @return {TraversePackagesDepsReturn}
|
|
30
|
+
*/
|
|
31
|
+
const traversePackagesDeps = ({ packages, monoRepoPackages, seenPackages = [...packages], depTree = {}, packageNameToPath, }) => {
|
|
32
|
+
packages.forEach((p) => {
|
|
33
|
+
let pkgJson;
|
|
34
|
+
try {
|
|
35
|
+
const packageRoot = packageNameToPath.get(p);
|
|
36
|
+
if (packageRoot) {
|
|
37
|
+
pkgJson = require(path.join(packageRoot, `package.json`));
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
console.error(`"${p}" package doesn't exist in monorepo.`);
|
|
41
|
+
// remove from seenPackages
|
|
42
|
+
seenPackages = seenPackages.filter((seenPkg) => seenPkg !== p);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
console.error(`"${p}" package doesn't exist in monorepo.`, e);
|
|
48
|
+
// remove from seenPackages
|
|
49
|
+
seenPackages = seenPackages.filter((seenPkg) => seenPkg !== p);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const fromMonoRepo = _.intersection(Object.keys({ ...pkgJson.dependencies }), monoRepoPackages);
|
|
53
|
+
fromMonoRepo.forEach((pkgName) => {
|
|
54
|
+
depTree[pkgName] = (depTree[pkgName] || new Set()).add(p);
|
|
55
|
+
});
|
|
56
|
+
// only traverse not yet seen packages to avoid infinite loops
|
|
57
|
+
const newPackages = _.difference(fromMonoRepo, seenPackages);
|
|
58
|
+
if (newPackages.length) {
|
|
59
|
+
newPackages.forEach((depFromMonorepo) => {
|
|
60
|
+
seenPackages.push(depFromMonorepo);
|
|
61
|
+
});
|
|
62
|
+
traversePackagesDeps({
|
|
63
|
+
packages: fromMonoRepo,
|
|
64
|
+
monoRepoPackages,
|
|
65
|
+
seenPackages,
|
|
66
|
+
depTree,
|
|
67
|
+
packageNameToPath,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
return { seenPackages, depTree };
|
|
72
|
+
};
|
|
73
|
+
exports.traversePackagesDeps = traversePackagesDeps;
|
|
74
|
+
//# sourceMappingURL=traverse-package-deps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"traverse-package-deps.js","sourceRoot":"","sources":["../../src/utils/traverse-package-deps.js"],"names":[],"mappings":"AAAA,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAE5B;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,oBAAoB,GAAG,CAAC,EAC5B,QAAQ,EACR,gBAAgB,EAChB,YAAY,GAAG,CAAC,GAAG,QAAQ,CAAC,EAC5B,OAAO,GAAG,EAAE,EACZ,iBAAiB,GAClB,EAAE,EAAE;IACH,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACrB,IAAI,OAAO,CAAA;QACX,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAC5C,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAA;YAC3D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAA;gBAC1D,2BAA2B;gBAC3B,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,CAAA;gBAC9D,OAAM;YACR,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,sCAAsC,EAAE,CAAC,CAAC,CAAA;YAC7D,2BAA2B;YAC3B,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,CAAA;YAC9D,OAAM;QACR,CAAC;QAED,MAAM,YAAY,GAAG,CAAC,CAAC,YAAY,CACjC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,EACxC,gBAAgB,CACjB,CAAA;QAED,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC/B,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;QAEF,8DAA8D;QAC9D,MAAM,WAAW,GAAG,CAAC,CAAC,UAAU,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;QAE5D,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YACvB,WAAW,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE;gBACtC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;YACpC,CAAC,CAAC,CAAA;YAEF,oBAAoB,CAAC;gBACnB,QAAQ,EAAE,YAAY;gBACtB,gBAAgB;gBAChB,YAAY;gBACZ,OAAO;gBACP,iBAAiB;aAClB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAC,CAAA;IACF,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,CAAA;AAClC,CAAC,CAAA;AAED,OAAO,CAAC,oBAAoB,GAAG,oBAAoB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/utils/version.js"],"names":[],"mappings":"AAAyB,yCAGxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.js"],"names":[],"mappings":"AAAA,OAAO,CAAC,cAAc,GAAG,GAAG,EAAE;IAC5B,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAChE,OAAO,4BAA4B,aAAa,EAAE,CAAA;AACpD,CAAC,CAAA"}
|
package/dist/watch.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export = watch;
|
|
2
|
+
declare function watch(root: any, packages: any, { scanOnce, quiet, forceInstall, monoRepoPackages, localPackages, packageNameToPath, externalRegistry, }: {
|
|
3
|
+
scanOnce: any;
|
|
4
|
+
quiet: any;
|
|
5
|
+
forceInstall: any;
|
|
6
|
+
monoRepoPackages: any;
|
|
7
|
+
localPackages: any;
|
|
8
|
+
packageNameToPath: any;
|
|
9
|
+
externalRegistry: any;
|
|
10
|
+
}): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=watch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../src/watch.js"],"names":[],"mappings":";AA6BA;;;;;;;;kBAoVC"}
|
package/dist/watch.js
ADDED
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
const chokidar = require(`chokidar`);
|
|
2
|
+
const _ = require(`lodash`);
|
|
3
|
+
const del = require(`del`);
|
|
4
|
+
const fs = require(`fs-extra`);
|
|
5
|
+
const path = require(`path`);
|
|
6
|
+
const findWorkspaceRoot = require(`find-yarn-workspace-root`);
|
|
7
|
+
const { publishPackagesLocallyAndInstall } = require(`./local-npm-registry`);
|
|
8
|
+
const { checkDepsChanges } = require(`./utils/check-deps-changes`);
|
|
9
|
+
const { getDependantPackages } = require(`./utils/get-dependant-packages`);
|
|
10
|
+
const { setDefaultSpawnStdio, promisifiedSpawn, } = require(`./utils/promisified-spawn`);
|
|
11
|
+
const { traversePackagesDeps } = require(`./utils/traverse-package-deps`);
|
|
12
|
+
let numCopied = 0;
|
|
13
|
+
const quit = () => {
|
|
14
|
+
console.log(`Copied ${numCopied} files`);
|
|
15
|
+
process.exit();
|
|
16
|
+
};
|
|
17
|
+
const MAX_COPY_RETRIES = 3;
|
|
18
|
+
/*
|
|
19
|
+
* non-existent packages break on('ready')
|
|
20
|
+
* See: https://github.com/paulmillr/chokidar/issues/449
|
|
21
|
+
*/
|
|
22
|
+
async function watch(root, packages, { scanOnce, quiet, forceInstall, monoRepoPackages, localPackages, packageNameToPath, externalRegistry, }) {
|
|
23
|
+
setDefaultSpawnStdio(quiet ? `ignore` : `inherit`);
|
|
24
|
+
// determine if in yarn workspace - if in workspace, force using verdaccio
|
|
25
|
+
// as current logic of copying files will not work correctly.
|
|
26
|
+
const yarnWorkspaceRoot = findWorkspaceRoot();
|
|
27
|
+
if (yarnWorkspaceRoot && process.env.NODE_ENV !== `test`) {
|
|
28
|
+
console.log(`Yarn workspace found.`);
|
|
29
|
+
forceInstall = true;
|
|
30
|
+
}
|
|
31
|
+
let afterPackageInstallation = false;
|
|
32
|
+
let queuedCopies = [];
|
|
33
|
+
const realCopyPath = (arg) => {
|
|
34
|
+
const { oldPath, newPath, quiet, resolve, reject, retry = 0 } = arg;
|
|
35
|
+
fs.copy(oldPath, newPath, (err) => {
|
|
36
|
+
if (err) {
|
|
37
|
+
if (retry >= MAX_COPY_RETRIES) {
|
|
38
|
+
console.error(err);
|
|
39
|
+
reject(err);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
setTimeout(() => realCopyPath({ ...arg, retry: retry + 1 }), 500 * Math.pow(2, retry));
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// When the acmekit binary is copied over, it is not setup with the executable
|
|
48
|
+
// permissions that it is given when installed via yarn.
|
|
49
|
+
// This fixes the issue where after running acmekit-dev, running `yarn acmekit develop`
|
|
50
|
+
// fails with a permission issue.
|
|
51
|
+
// @fixes https://github.com/acmekit/acmekit/issues/18809
|
|
52
|
+
// Binary files we target:
|
|
53
|
+
// - acmekit/bin/acmekit.js
|
|
54
|
+
// -acmekit/cli.js
|
|
55
|
+
// -acmekit-cli/cli.js
|
|
56
|
+
if (/(bin\/acmekit.js|acmekit(-cli)?\/cli.js)$/.test(newPath)) {
|
|
57
|
+
fs.chmodSync(newPath, `0755`);
|
|
58
|
+
}
|
|
59
|
+
numCopied += 1;
|
|
60
|
+
if (!quiet) {
|
|
61
|
+
console.log(`Copied ${oldPath} to ${newPath}`);
|
|
62
|
+
}
|
|
63
|
+
resolve();
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
const copyPath = (oldPath, newPath, quiet, packageName) => new Promise((resolve, reject) => {
|
|
67
|
+
const argObj = { oldPath, newPath, quiet, packageName, resolve, reject };
|
|
68
|
+
if (afterPackageInstallation) {
|
|
69
|
+
realCopyPath(argObj);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
queuedCopies.push(argObj);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
const runQueuedCopies = () => {
|
|
76
|
+
afterPackageInstallation = true;
|
|
77
|
+
queuedCopies.forEach((argObj) => realCopyPath(argObj));
|
|
78
|
+
queuedCopies = [];
|
|
79
|
+
};
|
|
80
|
+
const clearJSFilesFromNodeModules = async () => {
|
|
81
|
+
const packagesToClear = queuedCopies.reduce((acc, { packageName }) => {
|
|
82
|
+
if (packageName) {
|
|
83
|
+
acc.add(packageName);
|
|
84
|
+
}
|
|
85
|
+
return acc;
|
|
86
|
+
}, new Set());
|
|
87
|
+
await Promise.all([...packagesToClear].map(async (packageToClear) => await del([
|
|
88
|
+
`node_modules/${packageToClear}/**/*.{js,js.map}`,
|
|
89
|
+
`!node_modules/${packageToClear}/node_modules/**/*.{js,js.map}`,
|
|
90
|
+
`!node_modules/${packageToClear}/src/**/*.{js,js.map}`,
|
|
91
|
+
])));
|
|
92
|
+
};
|
|
93
|
+
// check packages deps and if they depend on other packages from monorepo
|
|
94
|
+
// add them to packages list
|
|
95
|
+
const { seenPackages, depTree } = traversePackagesDeps({
|
|
96
|
+
root,
|
|
97
|
+
packages: _.uniq(localPackages),
|
|
98
|
+
monoRepoPackages,
|
|
99
|
+
packageNameToPath,
|
|
100
|
+
});
|
|
101
|
+
const allPackagesToWatch = packages
|
|
102
|
+
? _.intersection(packages, seenPackages)
|
|
103
|
+
: seenPackages;
|
|
104
|
+
const ignoredPackageJSON = new Map();
|
|
105
|
+
const ignorePackageJSONChanges = (packageName, contentArray) => {
|
|
106
|
+
ignoredPackageJSON.set(packageName, contentArray);
|
|
107
|
+
return () => {
|
|
108
|
+
ignoredPackageJSON.delete(packageName);
|
|
109
|
+
};
|
|
110
|
+
};
|
|
111
|
+
if (forceInstall) {
|
|
112
|
+
try {
|
|
113
|
+
if (allPackagesToWatch.length > 0) {
|
|
114
|
+
await publishPackagesLocallyAndInstall({
|
|
115
|
+
packagesToPublish: allPackagesToWatch,
|
|
116
|
+
packageNameToPath,
|
|
117
|
+
localPackages,
|
|
118
|
+
ignorePackageJSONChanges,
|
|
119
|
+
yarnWorkspaceRoot,
|
|
120
|
+
externalRegistry,
|
|
121
|
+
root,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
// run `yarn`
|
|
126
|
+
const yarnInstallCmd = [`yarn`];
|
|
127
|
+
console.log(`Installing packages from public NPM registry`);
|
|
128
|
+
await promisifiedSpawn(yarnInstallCmd);
|
|
129
|
+
console.log(`Installation complete`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
catch (e) {
|
|
133
|
+
console.log(e);
|
|
134
|
+
}
|
|
135
|
+
process.exit();
|
|
136
|
+
}
|
|
137
|
+
if (allPackagesToWatch.length === 0) {
|
|
138
|
+
console.error(`There are no packages to watch.`);
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
const allPackagesIgnoringThemesToWatch = allPackagesToWatch.filter((pkgName) => !pkgName.startsWith(`acmekit-theme`));
|
|
142
|
+
const ignored = [
|
|
143
|
+
/[/\\]node_modules[/\\]/i,
|
|
144
|
+
/\.git/i,
|
|
145
|
+
/\.DS_Store/,
|
|
146
|
+
/[/\\]__tests__[/\\]/i,
|
|
147
|
+
/[/\\]__mocks__[/\\]/i,
|
|
148
|
+
/\.npmrc/i,
|
|
149
|
+
].concat(allPackagesIgnoringThemesToWatch.map((p) => new RegExp(`${p}[\\/\\\\]src[\\/\\\\]`, `i`)));
|
|
150
|
+
const watchers = _.uniq(allPackagesToWatch
|
|
151
|
+
.map((p) => path.join(packageNameToPath.get(p)))
|
|
152
|
+
.filter((p) => fs.existsSync(p)));
|
|
153
|
+
let allCopies = [];
|
|
154
|
+
const packagesToPublish = new Set();
|
|
155
|
+
let isInitialScan = true;
|
|
156
|
+
let isPublishing = false;
|
|
157
|
+
const waitFor = new Set();
|
|
158
|
+
let anyPackageNotInstalled = false;
|
|
159
|
+
const watchEvents = [`change`, `add`];
|
|
160
|
+
const packagePathMatchingEntries = Array.from(packageNameToPath.entries());
|
|
161
|
+
chokidar
|
|
162
|
+
.watch(watchers, {
|
|
163
|
+
ignored: [(filePath) => _.some(ignored, (reg) => reg.test(filePath))],
|
|
164
|
+
})
|
|
165
|
+
.on(`all`, async (event, filePath) => {
|
|
166
|
+
if (!watchEvents.includes(event)) {
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
// match against paths
|
|
170
|
+
let packageName;
|
|
171
|
+
for (const [_packageName, packagePath] of packagePathMatchingEntries) {
|
|
172
|
+
const relativeToThisPackage = path.relative(packagePath, filePath);
|
|
173
|
+
if (!relativeToThisPackage.startsWith(`..`)) {
|
|
174
|
+
packageName = _packageName;
|
|
175
|
+
break;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
if (!packageName) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
const prefix = packageNameToPath.get(packageName);
|
|
182
|
+
// Copy it over local version.
|
|
183
|
+
// Don't copy over the acmekit bin file as that breaks the NPM symlink.
|
|
184
|
+
if (_.includes(filePath, `dist/acmekit-cli.js`)) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
const relativePackageFile = path.relative(prefix, filePath);
|
|
188
|
+
const newPath = path.join(`./node_modules/${packageName}`, relativePackageFile);
|
|
189
|
+
if (relativePackageFile === `package.json`) {
|
|
190
|
+
// package.json files will change during publish to adjust version of package (and dependencies), so ignore
|
|
191
|
+
// changes during this process
|
|
192
|
+
if (isPublishing) {
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
// Compare dependencies with local version
|
|
196
|
+
const didDepsChangedPromise = checkDepsChanges({
|
|
197
|
+
newPath,
|
|
198
|
+
packageName,
|
|
199
|
+
monoRepoPackages,
|
|
200
|
+
packageNameToPath,
|
|
201
|
+
isInitialScan,
|
|
202
|
+
ignoredPackageJSON,
|
|
203
|
+
});
|
|
204
|
+
if (isInitialScan) {
|
|
205
|
+
// normally checkDepsChanges would be sync,
|
|
206
|
+
// but because it also can do async GET request
|
|
207
|
+
// to unpkg if local package is not installed
|
|
208
|
+
// keep track of it to make sure all of it
|
|
209
|
+
// finish before installing
|
|
210
|
+
waitFor.add(didDepsChangedPromise);
|
|
211
|
+
}
|
|
212
|
+
const { didDepsChanged, packageNotInstalled } = await didDepsChangedPromise;
|
|
213
|
+
if (packageNotInstalled) {
|
|
214
|
+
anyPackageNotInstalled = true;
|
|
215
|
+
}
|
|
216
|
+
if (didDepsChanged) {
|
|
217
|
+
if (isInitialScan) {
|
|
218
|
+
waitFor.delete(didDepsChangedPromise);
|
|
219
|
+
// handle dependency change only in initial scan - this is for sure doable to
|
|
220
|
+
// handle this in watching mode correctly - but for the sake of shipping
|
|
221
|
+
// this I limit more work/time consuming edge cases.
|
|
222
|
+
// Dependency changed - now we need to figure out
|
|
223
|
+
// the packages that actually need to be published.
|
|
224
|
+
// If package with changed dependencies is dependency of other
|
|
225
|
+
// acmekit package - like for example `acmekit-plugin-page-creator`
|
|
226
|
+
// we need to publish both `acmekit-plugin-page-creator` and `acmekit`
|
|
227
|
+
// and install `acmekit` in example site project.
|
|
228
|
+
getDependantPackages({
|
|
229
|
+
packageName,
|
|
230
|
+
depTree,
|
|
231
|
+
packages,
|
|
232
|
+
}).forEach((packageToPublish) => {
|
|
233
|
+
// scheduling publish - we will publish when `ready` is emitted
|
|
234
|
+
// as we can do single publish then
|
|
235
|
+
packagesToPublish.add(packageToPublish);
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
// don't ever copy package.json as this will mess up any future dependency
|
|
240
|
+
// changes checks
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
const localCopies = [copyPath(filePath, newPath, quiet, packageName)];
|
|
244
|
+
// If this is from "cache-dir" also copy it into the site's .cache
|
|
245
|
+
if (_.includes(filePath, `cache-dir`)) {
|
|
246
|
+
const newCachePath = path.join(`.cache/`, path.relative(path.join(prefix, `cache-dir`), filePath));
|
|
247
|
+
localCopies.push(copyPath(filePath, newCachePath, quiet));
|
|
248
|
+
}
|
|
249
|
+
allCopies = allCopies.concat(localCopies);
|
|
250
|
+
})
|
|
251
|
+
.on(`ready`, async () => {
|
|
252
|
+
// wait for all async work needed to be done
|
|
253
|
+
// before publishing / installing
|
|
254
|
+
await Promise.all(Array.from(waitFor));
|
|
255
|
+
if (isInitialScan) {
|
|
256
|
+
isInitialScan = false;
|
|
257
|
+
if (packagesToPublish.size > 0) {
|
|
258
|
+
isPublishing = true;
|
|
259
|
+
await publishPackagesLocallyAndInstall({
|
|
260
|
+
packagesToPublish: Array.from(packagesToPublish),
|
|
261
|
+
packageNameToPath,
|
|
262
|
+
localPackages,
|
|
263
|
+
ignorePackageJSONChanges,
|
|
264
|
+
externalRegistry,
|
|
265
|
+
root,
|
|
266
|
+
});
|
|
267
|
+
packagesToPublish.clear();
|
|
268
|
+
isPublishing = false;
|
|
269
|
+
}
|
|
270
|
+
else if (anyPackageNotInstalled) {
|
|
271
|
+
// run `yarn`
|
|
272
|
+
const yarnInstallCmd = [`yarn`];
|
|
273
|
+
console.log(`Installing packages from public NPM registry`);
|
|
274
|
+
await promisifiedSpawn(yarnInstallCmd);
|
|
275
|
+
console.log(`Installation complete`);
|
|
276
|
+
}
|
|
277
|
+
await clearJSFilesFromNodeModules();
|
|
278
|
+
runQueuedCopies();
|
|
279
|
+
}
|
|
280
|
+
// all files watched, quit once all files are copied if necessary
|
|
281
|
+
Promise.all(allCopies).then(() => {
|
|
282
|
+
if (scanOnce) {
|
|
283
|
+
quit();
|
|
284
|
+
}
|
|
285
|
+
});
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
module.exports = watch;
|
|
289
|
+
//# sourceMappingURL=watch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../src/watch.js"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AACpC,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;AAC1B,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,MAAM,iBAAiB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAA;AAE7D,MAAM,EAAE,gCAAgC,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAA;AAC5E,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAA;AAClE,MAAM,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAA;AAC1E,MAAM,EACJ,oBAAoB,EACpB,gBAAgB,GACjB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAA;AACxC,MAAM,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAA;AAEzE,IAAI,SAAS,GAAG,CAAC,CAAA;AAEjB,MAAM,IAAI,GAAG,GAAG,EAAE;IAChB,OAAO,CAAC,GAAG,CAAC,UAAU,SAAS,QAAQ,CAAC,CAAA;IACxC,OAAO,CAAC,IAAI,EAAE,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,CAAA;AAE1B;;;GAGG;AACH,KAAK,UAAU,KAAK,CAClB,IAAI,EACJ,QAAQ,EACR,EACE,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,GACjB;IAED,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAClD,0EAA0E;IAC1E,6DAA6D;IAC7D,MAAM,iBAAiB,GAAG,iBAAiB,EAAE,CAAA;IAC7C,IAAI,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;QACpC,YAAY,GAAG,IAAI,CAAA;IACrB,CAAC;IAED,IAAI,wBAAwB,GAAG,KAAK,CAAA;IACpC,IAAI,YAAY,GAAG,EAAE,CAAA;IAErB,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,EAAE;QAC3B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,CAAA;QACnE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAChC,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,KAAK,IAAI,gBAAgB,EAAE,CAAC;oBAC9B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBAClB,MAAM,CAAC,GAAG,CAAC,CAAA;oBACX,OAAM;gBACR,CAAC;qBAAM,CAAC;oBACN,UAAU,CACR,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,EAChD,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CACzB,CAAA;oBACD,OAAM;gBACR,CAAC;YACH,CAAC;YAED,8EAA8E;YAC9E,wDAAwD;YACxD,uFAAuF;YACvF,iCAAiC;YACjC,yDAAyD;YACzD,0BAA0B;YAC1B,2BAA2B;YAC3B,mBAAmB;YACnB,uBAAuB;YACvB,IAAI,2CAA2C,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9D,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YAC/B,CAAC;YAED,SAAS,IAAI,CAAC,CAAA;YACd,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,OAAO,OAAO,EAAE,CAAC,CAAA;YAChD,CAAC;YACD,OAAO,EAAE,CAAA;QACX,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CACxD,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;QACxE,IAAI,wBAAwB,EAAE,CAAC;YAC7B,YAAY,CAAC,MAAM,CAAC,CAAA;QACtB,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,wBAAwB,GAAG,IAAI,CAAA;QAC/B,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAA;QACtD,YAAY,GAAG,EAAE,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,2BAA2B,GAAG,KAAK,IAAI,EAAE;QAC7C,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;YACnE,IAAI,WAAW,EAAE,CAAC;gBAChB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YACtB,CAAC;YACD,OAAO,GAAG,CAAA;QACZ,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;QAEb,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,GAAG,eAAe,CAAC,CAAC,GAAG,CACtB,KAAK,EAAE,cAAc,EAAE,EAAE,CACvB,MAAM,GAAG,CAAC;YACR,gBAAgB,cAAc,mBAAmB;YACjD,iBAAiB,cAAc,gCAAgC;YAC/D,iBAAiB,cAAc,uBAAuB;SACvD,CAAC,CACL,CACF,CAAA;IACH,CAAC,CAAA;IACD,yEAAyE;IACzE,4BAA4B;IAC5B,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC;QACrD,IAAI;QACJ,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QAC/B,gBAAgB;QAChB,iBAAiB;KAClB,CAAC,CAAA;IAEF,MAAM,kBAAkB,GAAG,QAAQ;QACjC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC;QACxC,CAAC,CAAC,YAAY,CAAA;IAEhB,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAA;IACpC,MAAM,wBAAwB,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,EAAE;QAC7D,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;QAEjD,OAAO,GAAG,EAAE;YACV,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QACxC,CAAC,CAAA;IACH,CAAC,CAAA;IAED,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,MAAM,gCAAgC,CAAC;oBACrC,iBAAiB,EAAE,kBAAkB;oBACrC,iBAAiB;oBACjB,aAAa;oBACb,wBAAwB;oBACxB,iBAAiB;oBACjB,gBAAgB;oBAChB,IAAI;iBACL,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,aAAa;gBACb,MAAM,cAAc,GAAG,CAAC,MAAM,CAAC,CAAA;gBAE/B,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAA;gBAC3D,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA;gBACtC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;YACtC,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAChB,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,CAAA;IAChB,CAAC;IAED,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;QAChD,OAAM;IACR,CAAC;IAED,MAAM,gCAAgC,GAAG,kBAAkB,CAAC,MAAM,CAChE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAClD,CAAA;IAED,MAAM,OAAO,GAAG;QACd,yBAAyB;QACzB,QAAQ;QACR,YAAY;QACZ,sBAAsB;QACtB,sBAAsB;QACtB,UAAU;KACX,CAAC,MAAM,CACN,gCAAgC,CAAC,GAAG,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,GAAG,CAAC,CACpD,CACF,CAAA;IACD,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CACrB,kBAAkB;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CACnC,CAAA;IAED,IAAI,SAAS,GAAG,EAAE,CAAA;IAClB,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAA;IACnC,IAAI,aAAa,GAAG,IAAI,CAAA;IACxB,IAAI,YAAY,GAAG,KAAK,CAAA;IAExB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE,CAAA;IACzB,IAAI,sBAAsB,GAAG,KAAK,CAAA;IAElC,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IACrC,MAAM,0BAA0B,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAA;IAC1E,QAAQ;SACL,KAAK,CAAC,QAAQ,EAAE;QACf,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;KACtE,CAAC;SACD,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;QACnC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,OAAM;QACR,CAAC;QAED,sBAAsB;QACtB,IAAI,WAAW,CAAA;QAEf,KAAK,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,IAAI,0BAA0B,EAAE,CAAC;YACrE,MAAM,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;YAClE,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5C,WAAW,GAAG,YAAY,CAAA;gBAC1B,MAAK;YACP,CAAC;QACH,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAM;QACR,CAAC;QAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAEjD,8BAA8B;QAC9B,uEAAuE;QACvE,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC,EAAE,CAAC;YAChD,OAAM;QACR,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAE3D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CACvB,kBAAkB,WAAW,EAAE,EAC/B,mBAAmB,CACpB,CAAA;QAED,IAAI,mBAAmB,KAAK,cAAc,EAAE,CAAC;YAC3C,2GAA2G;YAC3G,8BAA8B;YAC9B,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAM;YACR,CAAC;YAED,0CAA0C;YAE1C,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;gBAC7C,OAAO;gBACP,WAAW;gBACX,gBAAgB;gBAChB,iBAAiB;gBACjB,aAAa;gBACb,kBAAkB;aACnB,CAAC,CAAA;YAEF,IAAI,aAAa,EAAE,CAAC;gBAClB,2CAA2C;gBAC3C,+CAA+C;gBAC/C,6CAA6C;gBAC7C,0CAA0C;gBAC1C,2BAA2B;gBAE3B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;YACpC,CAAC;YAED,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAAE,GAC3C,MAAM,qBAAqB,CAAA;YAE7B,IAAI,mBAAmB,EAAE,CAAC;gBACxB,sBAAsB,GAAG,IAAI,CAAA;YAC/B,CAAC;YAED,IAAI,cAAc,EAAE,CAAC;gBACnB,IAAI,aAAa,EAAE,CAAC;oBAClB,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAA;oBACrC,6EAA6E;oBAC7E,wEAAwE;oBACxE,oDAAoD;oBAEpD,iDAAiD;oBACjD,mDAAmD;oBACnD,8DAA8D;oBAC9D,mEAAmE;oBACnE,sEAAsE;oBACtE,iDAAiD;oBACjD,oBAAoB,CAAC;wBACnB,WAAW;wBACX,OAAO;wBACP,QAAQ;qBACT,CAAC,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,EAAE;wBAC9B,+DAA+D;wBAC/D,mCAAmC;wBACnC,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;oBACzC,CAAC,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;YAED,0EAA0E;YAC1E,iBAAiB;YACjB,OAAM;QACR,CAAC;QAED,MAAM,WAAW,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAA;QAErE,kEAAkE;QAClE,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC;YACtC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAC5B,SAAS,EACT,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,CACxD,CAAA;YACD,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAA;QAC3D,CAAC;QAED,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IAC3C,CAAC,CAAC;SACD,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QACtB,4CAA4C;QAC5C,iCAAiC;QACjC,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;QAEtC,IAAI,aAAa,EAAE,CAAC;YAClB,aAAa,GAAG,KAAK,CAAA;YACrB,IAAI,iBAAiB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC/B,YAAY,GAAG,IAAI,CAAA;gBACnB,MAAM,gCAAgC,CAAC;oBACrC,iBAAiB,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAChD,iBAAiB;oBACjB,aAAa;oBACb,wBAAwB;oBACxB,gBAAgB;oBAChB,IAAI;iBACL,CAAC,CAAA;gBACF,iBAAiB,CAAC,KAAK,EAAE,CAAA;gBACzB,YAAY,GAAG,KAAK,CAAA;YACtB,CAAC;iBAAM,IAAI,sBAAsB,EAAE,CAAC;gBAClC,aAAa;gBACb,MAAM,cAAc,GAAG,CAAC,MAAM,CAAC,CAAA;gBAE/B,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAA;gBAC3D,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA;gBACtC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;YACtC,CAAC;YAED,MAAM,2BAA2B,EAAE,CAAA;YACnC,eAAe,EAAE,CAAA;QACnB,CAAC;QAED,iEAAiE;QACjE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YAC/B,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,EAAE,CAAA;YACR,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACN,CAAC;AAED,MAAM,CAAC,OAAO,GAAG,KAAK,CAAA"}
|
package/package.json
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "acmekit-dev-cli",
|
|
3
|
+
"description": "CLI helpers for contributors working on AcmeKit",
|
|
4
|
+
"version": "2.13.1",
|
|
5
|
+
"author": "Sebastian Rindom <skrindom@gmail.com>",
|
|
6
|
+
"bin": {
|
|
7
|
+
"acmekit-dev": "./dist/index.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"dist"
|
|
11
|
+
],
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"chokidar": "^3.5.3",
|
|
14
|
+
"configstore": "^5.0.1",
|
|
15
|
+
"del": "^6.0.0",
|
|
16
|
+
"dotenv": "^16.4.5",
|
|
17
|
+
"execa": "^5.1.1",
|
|
18
|
+
"find-yarn-workspace-root": "^2.0.0",
|
|
19
|
+
"fs-extra": "^11.1.1",
|
|
20
|
+
"glob": "11.1.0",
|
|
21
|
+
"got": "^11.8.6",
|
|
22
|
+
"lodash": "^4.17.21",
|
|
23
|
+
"signal-exit": "^3.0.7",
|
|
24
|
+
"verdaccio": "^5.0.0",
|
|
25
|
+
"yargs": "^17.7.2"
|
|
26
|
+
},
|
|
27
|
+
"peerDependencies": {
|
|
28
|
+
"ts-node": "^10.9.2",
|
|
29
|
+
"tsconfig-paths": "^4.2.0"
|
|
30
|
+
},
|
|
31
|
+
"peerDependenciesMeta": {
|
|
32
|
+
"ts-node": {
|
|
33
|
+
"optional": true
|
|
34
|
+
},
|
|
35
|
+
"tsconfig-paths": {
|
|
36
|
+
"optional": true
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"homepage": "https://github.com/acmekit/acmekit/tree/master/packages/acmekit-dev-cli#readme",
|
|
40
|
+
"keywords": [
|
|
41
|
+
"acmekit"
|
|
42
|
+
],
|
|
43
|
+
"license": "MIT",
|
|
44
|
+
"main": "index.js",
|
|
45
|
+
"repository": {
|
|
46
|
+
"type": "git",
|
|
47
|
+
"url": "https://github.com/acmekit/acmekit.git",
|
|
48
|
+
"directory": "packages/cli/acmekit-dev-cli"
|
|
49
|
+
},
|
|
50
|
+
"scripts": {
|
|
51
|
+
"test": "../../../node_modules/.bin/jest --passWithNoTests --testPathPattern=src",
|
|
52
|
+
"build": "tsc",
|
|
53
|
+
"watch": "yarn run -T tsc --watch"
|
|
54
|
+
},
|
|
55
|
+
"engines": {
|
|
56
|
+
"node": ">=16"
|
|
57
|
+
},
|
|
58
|
+
"gitHead": "41a5425405aea5045a26def95c0dc00cf4a5a44d"
|
|
59
|
+
}
|