@ms-cloudpack/cli 0.26.5 → 0.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commands/bundle/bundle.js +19 -18
- package/lib/commands/bundle/bundle.js.map +1 -1
- package/lib/commands/init/evaluateImportsForOverrides.d.ts +1 -3
- package/lib/commands/init/evaluateImportsForOverrides.js +4 -4
- package/lib/commands/init/evaluateImportsForOverrides.js.map +1 -1
- package/lib/commands/init/findImports.js +3 -3
- package/lib/commands/init/findImports.js.map +1 -1
- package/lib/commands/init/findImports.test.d.ts +1 -0
- package/lib/commands/init/findImports.test.js +35 -0
- package/lib/commands/init/findImports.test.js.map +1 -0
- package/lib/commands/init/getImportsFromBundle.d.ts +1 -3
- package/lib/commands/init/getImportsFromBundle.js +32 -23
- package/lib/commands/init/getImportsFromBundle.js.map +1 -1
- package/lib/commands/init/index.js +20 -1
- package/lib/commands/init/index.js.map +1 -1
- package/lib/commands/init/init.d.ts +3 -1
- package/lib/commands/init/init.js +18 -14
- package/lib/commands/init/init.js.map +1 -1
- package/lib/commands/init/init.test.js +7 -2
- package/lib/commands/init/init.test.js.map +1 -1
- package/lib/commands/init/patchAllInternalPackageExports.d.ts +0 -2
- package/lib/commands/init/patchAllInternalPackageExports.js +4 -4
- package/lib/commands/init/patchAllInternalPackageExports.js.map +1 -1
- package/lib/commands/init/patchPackageExports.d.ts +0 -2
- package/lib/commands/init/patchPackageExports.js.map +1 -1
- package/lib/commands/start/addOverride.js +2 -6
- package/lib/commands/start/addOverride.js.map +1 -1
- package/lib/commands/start/addOverride.test.js +5 -1
- package/lib/commands/start/addOverride.test.js.map +1 -1
- package/lib/commands/start/appServer/startAppServer.js +6 -1
- package/lib/commands/start/appServer/startAppServer.js.map +1 -1
- package/lib/commands/start/createBundleTask.d.ts +4 -0
- package/lib/commands/start/createBundleTask.js +7 -48
- package/lib/commands/start/createBundleTask.js.map +1 -1
- package/lib/commands/start/createSession.js +9 -6
- package/lib/commands/start/createSession.js.map +1 -1
- package/lib/commands/start/createSession.test.js +5 -1
- package/lib/commands/start/createSession.test.js.map +1 -1
- package/lib/commands/start/start.js +70 -58
- package/lib/commands/start/start.js.map +1 -1
- package/lib/commands/start/startBundleServer.js +10 -17
- package/lib/commands/start/startBundleServer.js.map +1 -1
- package/lib/commands/start/startWatcher.js +5 -12
- package/lib/commands/start/startWatcher.js.map +1 -1
- package/lib/getVersion.js +1 -1
- package/lib/index.js +19 -1
- package/lib/index.js.map +1 -1
- package/lib/reporter.d.ts +4 -0
- package/lib/reporter.js +7 -0
- package/lib/reporter.js.map +1 -0
- package/lib/tasks/bundleTask.d.ts +5 -0
- package/lib/tasks/bundleTask.js +80 -0
- package/lib/tasks/bundleTask.js.map +1 -0
- package/lib/tasks/formatBundleErrors.d.ts +8 -0
- package/lib/tasks/formatBundleErrors.js +19 -0
- package/lib/tasks/formatBundleErrors.js.map +1 -0
- package/lib/tasks/resolveDependenciesTask.d.ts +10 -0
- package/lib/tasks/resolveDependenciesTask.js +57 -0
- package/lib/tasks/resolveDependenciesTask.js.map +1 -0
- package/lib/types.d.ts +4 -1
- package/package.json +4 -3
- package/lib/commands/init/createLog.d.ts +0 -11
- package/lib/commands/init/createLog.js +0 -25
- package/lib/commands/init/createLog.js.map +0 -1
package/lib/index.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { bold, debugLoggingConfig, defaultLoggingConfig, gradient, verboseLoggingConfig, } from '@ms-cloudpack/task-reporter';
|
|
1
2
|
import { Command } from 'commander';
|
|
2
3
|
import glob from 'glob';
|
|
3
4
|
import path from 'path';
|
|
4
5
|
import { fileURLToPath, pathToFileURL } from 'url';
|
|
5
6
|
import { getVersion } from './getVersion.js';
|
|
7
|
+
import { initReporter } from './reporter.js';
|
|
6
8
|
const currentPath = path.dirname(fileURLToPath(import.meta.url));
|
|
7
9
|
/**
|
|
8
10
|
* Entry point for the cloudpack CLI. Resolves all commands defined
|
|
@@ -10,12 +12,28 @@ const currentPath = path.dirname(fileURLToPath(import.meta.url));
|
|
|
10
12
|
*/
|
|
11
13
|
export async function start() {
|
|
12
14
|
const program = new Command();
|
|
13
|
-
|
|
15
|
+
const version = getVersion();
|
|
16
|
+
// the name "Cloudpack" preceed by an emoji representing sun behind cloud
|
|
17
|
+
const productName = gradient(`Cloudpack`);
|
|
18
|
+
const useDebugLogging = process.argv.includes('--debug') || process.argv.includes('-d');
|
|
19
|
+
const verb = process.argv[2];
|
|
20
|
+
const useVerboseLogging = process.argv.includes('--verbose') || process.argv.includes('-v') || verb === 'bundle';
|
|
21
|
+
program.name(productName).version(version).usage('<command> [options]');
|
|
22
|
+
initReporter({
|
|
23
|
+
productName,
|
|
24
|
+
version,
|
|
25
|
+
description: `Running "${bold(process.argv.slice(2).join(' '))}"`,
|
|
26
|
+
...defaultLoggingConfig,
|
|
27
|
+
...(useVerboseLogging && verboseLoggingConfig),
|
|
28
|
+
...(useDebugLogging && debugLoggingConfig),
|
|
29
|
+
});
|
|
14
30
|
const commands = glob.sync('commands/*/index.js', { cwd: currentPath });
|
|
15
31
|
for (const commandPath of commands) {
|
|
16
32
|
const command = (await import(pathToFileURL(path.resolve(currentPath, commandPath)).toString()));
|
|
17
33
|
command.init(program);
|
|
18
34
|
}
|
|
35
|
+
program.option('-v, --verbose', 'Show additional details about the running tasks. (default: false)');
|
|
36
|
+
program.option('-d, --debug', 'Show debug information (superset of --verbose). (default: false)');
|
|
19
37
|
program.parse(process.argv);
|
|
20
38
|
if (program.args.length === 0) {
|
|
21
39
|
program.help();
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAEjE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK;IACzB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,kBAAkB,EAClB,oBAAoB,EACpB,QAAQ,EACR,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAEjE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK;IACzB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,yEAAyE;IACzE,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,QAAQ,CAAC;IAEjH,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAExE,YAAY,CAAC;QACX,WAAW;QACX,OAAO;QACP,WAAW,EAAE,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;QACjE,GAAG,oBAAoB;QACvB,GAAG,CAAC,iBAAiB,IAAI,oBAAoB,CAAC;QAC9C,GAAG,CAAC,eAAe,IAAI,kBAAkB,CAAC;KAC3C,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;IAExE,KAAK,MAAM,WAAW,IAAI,QAAQ,EAAE;QAClC,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAE9F,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACvB;IAED,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,mEAAmE,CAAC,CAAC;IACrG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,kEAAkE,CAAC,CAAC;IAElG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7B,OAAO,CAAC,IAAI,EAAE,CAAC;KAChB;AACH,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { TaskReporter, type TaskReporterOptions } from '@ms-cloudpack/task-reporter';
|
|
2
|
+
export declare const reporter: TaskReporter;
|
|
3
|
+
export declare function initReporter(options: TaskReporterOptions): void;
|
|
4
|
+
export { noLoggingConfig, defaultLoggingConfig, verboseLoggingConfig, debugLoggingConfig, } from '@ms-cloudpack/task-reporter';
|
package/lib/reporter.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TaskReporter } from '@ms-cloudpack/task-reporter';
|
|
2
|
+
export const reporter = new TaskReporter();
|
|
3
|
+
export function initReporter(options) {
|
|
4
|
+
reporter.setOptions(options);
|
|
5
|
+
}
|
|
6
|
+
export { noLoggingConfig, defaultLoggingConfig, verboseLoggingConfig, debugLoggingConfig, } from '@ms-cloudpack/task-reporter';
|
|
7
|
+
//# sourceMappingURL=reporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA4B,MAAM,6BAA6B,CAAC;AAErF,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;AAE3C,MAAM,UAAU,YAAY,CAAC,OAA4B;IACvD,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { bundlePackage } from '@ms-cloudpack/bundler';
|
|
2
|
+
import { bulletedList, formatPackageName } from '@ms-cloudpack/task-reporter';
|
|
3
|
+
import { readJson, writeJson } from '@ms-cloudpack/json-utilities';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import { formatBundleErrors } from './formatBundleErrors.js';
|
|
6
|
+
import { prepareOutputPath } from '../common/prepareOutputPath.js';
|
|
7
|
+
import { reporter } from '../reporter.js';
|
|
8
|
+
export async function bundleTask({ bundleRequest, options = {}, }) {
|
|
9
|
+
const { packageName, version } = bundleRequest;
|
|
10
|
+
const { force } = options || {};
|
|
11
|
+
// If force is set, dispose the existing result.
|
|
12
|
+
if (force && bundleRequest?.result?.dispose) {
|
|
13
|
+
bundleRequest.result.dispose();
|
|
14
|
+
bundleRequest.result = undefined;
|
|
15
|
+
}
|
|
16
|
+
const { rebuild } = bundleRequest?.result || {};
|
|
17
|
+
const taskName = `${rebuild ? `Re-bundle` : `Bundle`} ${formatPackageName({ name: packageName, version })}`;
|
|
18
|
+
await reporter.runTask(taskName, async () => {
|
|
19
|
+
if (rebuild) {
|
|
20
|
+
bundleRequest.result = await rebuild();
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
await bundle(bundleRequest, force);
|
|
24
|
+
}
|
|
25
|
+
const result = (bundleRequest.result || (bundleRequest.result = {}));
|
|
26
|
+
result.outputFiles || (result.outputFiles = []);
|
|
27
|
+
result.errors || (result.errors = []);
|
|
28
|
+
result.warnings || (result.warnings = []);
|
|
29
|
+
if (!result.outputFiles.length) {
|
|
30
|
+
result.warnings.push({
|
|
31
|
+
text: `No output files were found for "${packageName}" in "${bundleRequest.outputPath}"`,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
status: result.errors.length ? 'fail' : 'complete',
|
|
36
|
+
...formatBundleErrors(result.errors),
|
|
37
|
+
extended: bulletedList([
|
|
38
|
+
`Bundler: ${result.bundlerName || 'unknown'}`,
|
|
39
|
+
`Input path: ${bundleRequest.packagePath}`,
|
|
40
|
+
`Entries:\n${bulletedList(Object.keys(result.entries || {}), 2)}`,
|
|
41
|
+
`Output path: ${bundleRequest.outputPath}`,
|
|
42
|
+
...(result.outputFiles.length
|
|
43
|
+
? [
|
|
44
|
+
`Output files:`,
|
|
45
|
+
result.outputFiles.map((file) => path.relative(bundleRequest.outputPath, file.outputPath)),
|
|
46
|
+
]
|
|
47
|
+
: []),
|
|
48
|
+
]),
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
return bundleRequest;
|
|
52
|
+
}
|
|
53
|
+
async function bundle(bundleRequest, force) {
|
|
54
|
+
const { packagePath, outputPath, isExternal } = bundleRequest;
|
|
55
|
+
// Rehydrate the result if not incremental.
|
|
56
|
+
if (isExternal && !force) {
|
|
57
|
+
bundleRequest.result = (await readJson(path.join(outputPath, 'result.json')));
|
|
58
|
+
}
|
|
59
|
+
if (bundleRequest.result?.errors?.length === 0) {
|
|
60
|
+
bundleRequest.resultFromCache = true;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
bundleRequest.resultFromCache = false;
|
|
64
|
+
// Only use cached result if it's successful.
|
|
65
|
+
await prepareOutputPath(outputPath);
|
|
66
|
+
bundleRequest.result = await bundlePackage({
|
|
67
|
+
inputPath: packagePath,
|
|
68
|
+
outputPath,
|
|
69
|
+
incremental: !isExternal,
|
|
70
|
+
packages: bundleRequest.packages,
|
|
71
|
+
});
|
|
72
|
+
// Write the result to disk.
|
|
73
|
+
if (isExternal) {
|
|
74
|
+
bundleRequest.result.rawInput = bundleRequest.result.rawOutput = undefined;
|
|
75
|
+
await writeJson(path.join(outputPath, 'result.json'), bundleRequest.result);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return bundleRequest;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=bundleTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundleTask.js","sourceRoot":"","sources":["../../src/tasks/bundleTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { darkGrey, red, bulletedList } from '@ms-cloudpack/task-reporter';
|
|
2
|
+
export function formatBundleErrors(errors) {
|
|
3
|
+
if (!errors?.length)
|
|
4
|
+
return {};
|
|
5
|
+
return {
|
|
6
|
+
message: `${errors.length} ${errors.length === 1 ? 'error' : 'errors'} found`,
|
|
7
|
+
details: bulletedList(errors.map((error) => formatError(error))),
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
function formatError(error) {
|
|
11
|
+
const { location } = error;
|
|
12
|
+
return [
|
|
13
|
+
location && darkGrey(`${location.file}:${location.line}:${location.column}:`),
|
|
14
|
+
red(error.text ? error.text : JSON.stringify(error, null, 2)),
|
|
15
|
+
]
|
|
16
|
+
.filter(Boolean)
|
|
17
|
+
.join(' ');
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=formatBundleErrors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatBundleErrors.js","sourceRoot":"","sources":["../../src/tasks/formatBundleErrors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE1E,MAAM,UAAU,kBAAkB,CAAC,MAAmC;IACpE,IAAI,CAAC,MAAM,EAAE,MAAM;QAAE,OAAO,EAAE,CAAC;IAE/B,OAAO;QACL,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,QAAQ;QAC7E,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;KACjE,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAoB;IACvC,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAE3B,OAAO;QACL,QAAQ,IAAI,QAAQ,CAAC,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAC7E,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;KAC9D;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ResolveMap, type PackageDefinitions } from '@ms-cloudpack/package-utilities';
|
|
2
|
+
/**
|
|
3
|
+
* Resolves the locations of dependencies and returns the resolve map, logging results
|
|
4
|
+
* to the task reporter.
|
|
5
|
+
*/
|
|
6
|
+
export declare function resolveDependenciesTask({ appPath, additionalPaths, packages, }: {
|
|
7
|
+
appPath: string;
|
|
8
|
+
additionalPaths?: string[];
|
|
9
|
+
packages?: PackageDefinitions;
|
|
10
|
+
}): Promise<ResolveMap | undefined>;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { createResolveMap, } from '@ms-cloudpack/package-utilities';
|
|
2
|
+
import { cyan, yellow, bulletedList, bold } from '@ms-cloudpack/task-reporter';
|
|
3
|
+
import { reporter } from '../reporter.js';
|
|
4
|
+
/**
|
|
5
|
+
* Resolves the locations of dependencies and returns the resolve map, logging results
|
|
6
|
+
* to the task reporter.
|
|
7
|
+
*/
|
|
8
|
+
export async function resolveDependenciesTask({ appPath, additionalPaths, packages, }) {
|
|
9
|
+
let resolveMap;
|
|
10
|
+
// Grab the installed dependency locations.
|
|
11
|
+
await reporter?.runTask('Resolving dependencies', async () => {
|
|
12
|
+
resolveMap = await createResolveMap({ appPath, additionalPaths, strictVersioning: false, packages });
|
|
13
|
+
const { allPackages, duplicatedPackages } = getPackagesFromResolveMap(resolveMap);
|
|
14
|
+
const message = `Found ${cyan(allPackages.size)} total packages, ${duplicatedPackages.size ? `${yellow(duplicatedPackages.size)} with multiple versions.` : `no duplicates.`}`;
|
|
15
|
+
const extended = bulletedList(Array.from(duplicatedPackages.entries()).map(([name, versions]) => `${bold(name)}: ${Array.from(versions).join(', ')}`));
|
|
16
|
+
return {
|
|
17
|
+
message,
|
|
18
|
+
extended,
|
|
19
|
+
forceShow: true,
|
|
20
|
+
};
|
|
21
|
+
});
|
|
22
|
+
return resolveMap;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Given a resolveMap, returns a map of all packages and a map of packages with multiple versions.
|
|
26
|
+
* This is used to log the results of the resolve task.
|
|
27
|
+
*/
|
|
28
|
+
function getPackagesFromResolveMap(resolveMap) {
|
|
29
|
+
const allPackages = new Map();
|
|
30
|
+
const duplicatedPackages = new Map();
|
|
31
|
+
function addEntry(entry) {
|
|
32
|
+
if (allPackages.has(entry.name)) {
|
|
33
|
+
if (!duplicatedPackages.has(entry.name)) {
|
|
34
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
35
|
+
duplicatedPackages.set(entry.name, new Set([allPackages.get(entry.name).version]));
|
|
36
|
+
}
|
|
37
|
+
const dupeSet = duplicatedPackages.get(entry.name);
|
|
38
|
+
dupeSet?.add(entry.version);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
allPackages.set(entry.name, entry);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
for (const currentEntry of Object.values(resolveMap)) {
|
|
45
|
+
addEntry(currentEntry);
|
|
46
|
+
if (currentEntry.scopedVersions) {
|
|
47
|
+
for (const scopedEntry of Object.values(currentEntry.scopedVersions)) {
|
|
48
|
+
addEntry(scopedEntry);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
allPackages,
|
|
54
|
+
duplicatedPackages,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=resolveDependenciesTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveDependenciesTask.js","sourceRoot":"","sources":["../../src/tasks/resolveDependenciesTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,GAGjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,EAC5C,OAAO,EACP,eAAe,EACf,QAAQ,GAKT;IACC,IAAI,UAAkC,CAAC;IAEvC,2CAA2C;IAC3C,MAAM,QAAQ,EAAE,OAAO,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QAC3D,UAAU,GAAG,MAAM,gBAAgB,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAErG,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;QAClF,MAAM,OAAO,GAAG,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,oBAC7C,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,gBAC3F,EAAE,CAAC;QACH,MAAM,QAAQ,GAAG,YAAY,CAC3B,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAC1C,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1E,CACF,CAAC;QAEF,OAAO;YACL,OAAO;YACP,QAAQ;YACR,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,SAAS,yBAAyB,CAAC,UAAsB;IACvD,MAAM,WAAW,GAAG,IAAI,GAAG,EAA2B,CAAC;IACvD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAuB,CAAC;IAE1D,SAAS,QAAQ,CAAC,KAAsB;QACtC,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAC/B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBACvC,oEAAoE;gBACpE,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aACrF;YACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEnD,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC7B;aAAM;YACL,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACpC;IACH,CAAC;IAED,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;QACpD,QAAQ,CAAC,YAAY,CAAC,CAAC;QAEvB,IAAI,YAAY,CAAC,cAAc,EAAE;YAC/B,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE;gBACpE,QAAQ,CAAC,WAAW,CAAC,CAAC;aACvB;SACF;KACF;IAED,OAAO;QACL,WAAW;QACX,kBAAkB;KACnB,CAAC;AACJ,CAAC"}
|
package/lib/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ImportMap, ResolveMap } from '@ms-cloudpack/package-utilities';
|
|
2
|
-
import type { BundleResult, PackageJson } from '@ms-cloudpack/bundler-types';
|
|
2
|
+
import type { BundleResult, PackageJson, PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';
|
|
3
3
|
import type { HttpsConfig } from '@ms-cloudpack/create-express-app';
|
|
4
4
|
export interface Session {
|
|
5
5
|
/**
|
|
@@ -74,8 +74,11 @@ export interface BundleRequest {
|
|
|
74
74
|
packagePath: string;
|
|
75
75
|
outputPath: string;
|
|
76
76
|
isExternal: boolean;
|
|
77
|
+
bundlerType?: string;
|
|
77
78
|
result?: BundleResult;
|
|
79
|
+
resultFromCache?: boolean;
|
|
78
80
|
isRebuildRequired?: boolean;
|
|
81
|
+
packages?: PackageDefinitionsCache;
|
|
79
82
|
}
|
|
80
83
|
export interface BundleTaskOptions {
|
|
81
84
|
force?: boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ms-cloudpack/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.27.0",
|
|
4
4
|
"description": "The Cloudpack command line interface - a tool for managing fast inner and outer looping in web apps.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -16,14 +16,15 @@
|
|
|
16
16
|
"cloudpack": "./bin/cloudpack.js"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@ms-cloudpack/bundler": "^0.
|
|
19
|
+
"@ms-cloudpack/bundler": "^0.11.0",
|
|
20
20
|
"@ms-cloudpack/create-express-app": "^1.2.4",
|
|
21
21
|
"@ms-cloudpack/data-bus": "^0.1.1",
|
|
22
22
|
"@ms-cloudpack/json-utilities": "^0.0.5",
|
|
23
23
|
"@ms-cloudpack/overlay": "^0.11.3",
|
|
24
|
-
"@ms-cloudpack/package-utilities": "^2.3.
|
|
24
|
+
"@ms-cloudpack/package-utilities": "^2.3.8",
|
|
25
25
|
"@ms-cloudpack/path-utilities": "^2.1.1",
|
|
26
26
|
"@ms-cloudpack/path-string-parsing": "^1.0.1",
|
|
27
|
+
"@ms-cloudpack/task-reporter": "^0.1.1",
|
|
27
28
|
"chokidar": "^3.5.3",
|
|
28
29
|
"commander": "^10.0.0",
|
|
29
30
|
"es-module-lexer": "^1.0.3",
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export interface Log {
|
|
2
|
-
messages: {
|
|
3
|
-
errors: string[];
|
|
4
|
-
warnings: string[];
|
|
5
|
-
};
|
|
6
|
-
error: (message: string, error?: Error) => void;
|
|
7
|
-
warn: (message: string, error?: Error) => void;
|
|
8
|
-
info: (message: string) => void;
|
|
9
|
-
task: <TReturn>(task: string | string[], execute: () => Promise<TReturn>) => Promise<TReturn>;
|
|
10
|
-
}
|
|
11
|
-
export declare function createLog(): Log;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
export function createLog() {
|
|
2
|
-
const messages = { errors: [], warnings: [] };
|
|
3
|
-
return {
|
|
4
|
-
messages,
|
|
5
|
-
error: (message, error) => {
|
|
6
|
-
messages.errors.push(message + (error ? `\n${error.toString?.() || String(error)}` : ''));
|
|
7
|
-
},
|
|
8
|
-
warn: (message) => {
|
|
9
|
-
messages.warnings.push(message);
|
|
10
|
-
},
|
|
11
|
-
info: (message) => {
|
|
12
|
-
console.log(message);
|
|
13
|
-
},
|
|
14
|
-
task: async (task, execute) => {
|
|
15
|
-
const [taskType, taskDetails] = Array.isArray(task) ? task : [task, undefined];
|
|
16
|
-
console.log(`>>> [Start: ${taskType}]${taskDetails ? ` ${taskDetails}` : ''}`);
|
|
17
|
-
const start = Date.now();
|
|
18
|
-
const result = await execute();
|
|
19
|
-
const end = Date.now();
|
|
20
|
-
console.log(`<<< [End: ${taskType}]${taskDetails ? ` ${taskDetails}` : ''} (${end - start}ms)`);
|
|
21
|
-
return result;
|
|
22
|
-
},
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=createLog.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createLog.js","sourceRoot":"","sources":["../../../src/commands/init/createLog.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,SAAS;IACvB,MAAM,QAAQ,GAAoB,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAE/D,OAAO;QACL,QAAQ;QACR,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YACxB,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,EAAE,CAAC,OAAe,EAAE,EAAE;YACxB,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,EAAE,CAAC,OAAe,EAAE,EAAE;YACxB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,EAAE,KAAK,EAAW,IAAuB,EAAE,OAA+B,EAAE,EAAE;YAChF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC/E,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAE/E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,OAAO,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEvB,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC;YAEhG,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC"}
|