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.
Files changed (62) hide show
  1. package/README.md +74 -0
  2. package/dist/feature-flags/index.d.ts +2 -0
  3. package/dist/feature-flags/index.d.ts.map +1 -0
  4. package/dist/feature-flags/index.js +152 -0
  5. package/dist/feature-flags/index.js.map +1 -0
  6. package/dist/feature-flags/template.d.ts +7 -0
  7. package/dist/feature-flags/template.d.ts.map +1 -0
  8. package/dist/feature-flags/template.js +13 -0
  9. package/dist/feature-flags/template.js.map +1 -0
  10. package/dist/index.d.ts +3 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +145 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/local-npm-registry/cleanup-tasks.d.ts +2 -0
  15. package/dist/local-npm-registry/cleanup-tasks.d.ts.map +1 -0
  16. package/dist/local-npm-registry/cleanup-tasks.js +17 -0
  17. package/dist/local-npm-registry/cleanup-tasks.js.map +1 -0
  18. package/dist/local-npm-registry/index.d.ts +12 -0
  19. package/dist/local-npm-registry/index.d.ts.map +1 -0
  20. package/dist/local-npm-registry/index.js +49 -0
  21. package/dist/local-npm-registry/index.js.map +1 -0
  22. package/dist/local-npm-registry/install-packages.d.ts +7 -0
  23. package/dist/local-npm-registry/install-packages.d.ts.map +1 -0
  24. package/dist/local-npm-registry/install-packages.js +136 -0
  25. package/dist/local-npm-registry/install-packages.js.map +1 -0
  26. package/dist/local-npm-registry/publish-package.d.ts +9 -0
  27. package/dist/local-npm-registry/publish-package.d.ts.map +1 -0
  28. package/dist/local-npm-registry/publish-package.js +101 -0
  29. package/dist/local-npm-registry/publish-package.js.map +1 -0
  30. package/dist/local-npm-registry/verdaccio-config.d.ts +29 -0
  31. package/dist/local-npm-registry/verdaccio-config.d.ts.map +1 -0
  32. package/dist/local-npm-registry/verdaccio-config.js +30 -0
  33. package/dist/local-npm-registry/verdaccio-config.js.map +1 -0
  34. package/dist/utils/check-deps-changes.d.ts +12 -0
  35. package/dist/utils/check-deps-changes.d.ts.map +1 -0
  36. package/dist/utils/check-deps-changes.js +152 -0
  37. package/dist/utils/check-deps-changes.js.map +1 -0
  38. package/dist/utils/get-dependant-packages.d.ts +10 -0
  39. package/dist/utils/get-dependant-packages.d.ts.map +1 -0
  40. package/dist/utils/get-dependant-packages.js +22 -0
  41. package/dist/utils/get-dependant-packages.js.map +1 -0
  42. package/dist/utils/get-monorepo-package-json-path.d.ts +5 -0
  43. package/dist/utils/get-monorepo-package-json-path.d.ts.map +1 -0
  44. package/dist/utils/get-monorepo-package-json-path.js +3 -0
  45. package/dist/utils/get-monorepo-package-json-path.js.map +1 -0
  46. package/dist/utils/promisified-spawn.d.ts +4 -0
  47. package/dist/utils/promisified-spawn.d.ts.map +1 -0
  48. package/dist/utils/promisified-spawn.js +24 -0
  49. package/dist/utils/promisified-spawn.js.map +1 -0
  50. package/dist/utils/traverse-package-deps.d.ts +43 -0
  51. package/dist/utils/traverse-package-deps.d.ts.map +1 -0
  52. package/dist/utils/traverse-package-deps.js +74 -0
  53. package/dist/utils/traverse-package-deps.js.map +1 -0
  54. package/dist/utils/version.d.ts +2 -0
  55. package/dist/utils/version.d.ts.map +1 -0
  56. package/dist/utils/version.js +5 -0
  57. package/dist/utils/version.js.map +1 -0
  58. package/dist/watch.d.ts +11 -0
  59. package/dist/watch.d.ts.map +1 -0
  60. package/dist/watch.js +289 -0
  61. package/dist/watch.js.map +1 -0
  62. 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,2 @@
1
+ export function getVersionInfo(): string;
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/utils/version.js"],"names":[],"mappings":"AAAyB,yCAGxB"}
@@ -0,0 +1,5 @@
1
+ exports.getVersionInfo = () => {
2
+ const { version: devCliVersion } = require(`../../package.json`);
3
+ return `AcmeKit Dev CLI version: ${devCliVersion}`;
4
+ };
5
+ //# sourceMappingURL=version.js.map
@@ -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"}
@@ -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":"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"}
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
+ }