@ms-cloudpack/cli 0.42.3 → 0.43.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/init/InitSummaryData.d.ts +18 -0
- package/lib/commands/init/InitSummaryData.d.ts.map +1 -0
- package/lib/commands/init/InitSummaryData.js +57 -0
- package/lib/commands/init/InitSummaryData.js.map +1 -0
- package/lib/commands/init/bundleAndGetImports.d.ts +4 -4
- package/lib/commands/init/bundleAndGetImports.d.ts.map +1 -1
- package/lib/commands/init/bundleAndGetImports.js +12 -7
- package/lib/commands/init/bundleAndGetImports.js.map +1 -1
- package/lib/commands/init/evaluateImportsForOverrides.d.ts +3 -1
- package/lib/commands/init/evaluateImportsForOverrides.d.ts.map +1 -1
- package/lib/commands/init/evaluateImportsForOverrides.js +34 -22
- package/lib/commands/init/evaluateImportsForOverrides.js.map +1 -1
- package/lib/commands/init/formatInitSummary.d.ts +7 -0
- package/lib/commands/init/formatInitSummary.d.ts.map +1 -0
- package/lib/commands/init/formatInitSummary.js +77 -0
- package/lib/commands/init/formatInitSummary.js.map +1 -0
- package/lib/commands/init/init.d.ts +3 -7
- package/lib/commands/init/init.d.ts.map +1 -1
- package/lib/commands/init/init.js +58 -83
- package/lib/commands/init/init.js.map +1 -1
- package/lib/commands/init/types/GeneratedChange.d.ts +6 -0
- package/lib/commands/init/types/GeneratedChange.d.ts.map +1 -0
- package/lib/commands/init/types/GeneratedChange.js +2 -0
- package/lib/commands/init/types/GeneratedChange.js.map +1 -0
- package/lib/commands/init/types/GeneratedPackageChanges.d.ts +6 -0
- package/lib/commands/init/types/GeneratedPackageChanges.d.ts.map +1 -0
- package/lib/commands/init/types/GeneratedPackageChanges.js +2 -0
- package/lib/commands/init/types/GeneratedPackageChanges.js.map +1 -0
- package/lib/commands/init/types/InitPackageIdentifier.d.ts +6 -0
- package/lib/commands/init/types/InitPackageIdentifier.d.ts.map +1 -0
- package/lib/commands/init/types/InitPackageIdentifier.js +2 -0
- package/lib/commands/init/types/InitPackageIdentifier.js.map +1 -0
- package/lib/commands/init/types/InitPackageResult.d.ts +7 -0
- package/lib/commands/init/types/InitPackageResult.d.ts.map +1 -0
- package/lib/commands/init/types/InitPackageResult.js +2 -0
- package/lib/commands/init/types/InitPackageResult.js.map +1 -0
- package/lib/commands/init/types/InitPackageResultErrors.d.ts +6 -0
- package/lib/commands/init/types/InitPackageResultErrors.d.ts.map +1 -0
- package/lib/commands/init/types/InitPackageResultErrors.js +2 -0
- package/lib/commands/init/types/InitPackageResultErrors.js.map +1 -0
- package/lib/commands/init/types/InitPackageResultWarnings.d.ts +6 -0
- package/lib/commands/init/types/InitPackageResultWarnings.d.ts.map +1 -0
- package/lib/commands/init/types/InitPackageResultWarnings.js +2 -0
- package/lib/commands/init/types/InitPackageResultWarnings.js.map +1 -0
- package/lib/commands/init/types/InitSummary.d.ts +14 -0
- package/lib/commands/init/types/InitSummary.d.ts.map +1 -0
- package/lib/commands/init/types/InitSummary.js +2 -0
- package/lib/commands/init/types/InitSummary.js.map +1 -0
- package/lib/commands/start/appServer/getHtmlResponse.js +2 -2
- package/lib/commands/start/appServer/getHtmlResponse.js.map +1 -1
- package/lib/commands/start/appServer/startAppServer.js +2 -2
- package/lib/commands/start/appServer/startAppServer.js.map +1 -1
- package/lib/tasks/resolveDependenciesTask.d.ts.map +1 -1
- package/lib/tasks/resolveDependenciesTask.js +0 -1
- package/lib/tasks/resolveDependenciesTask.js.map +1 -1
- package/package.json +7 -7
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { InitSummary } from './types/InitSummary.js';
|
|
2
|
+
import type { GeneratedPackageChanges } from './types/GeneratedPackageChanges.js';
|
|
3
|
+
import type { InitPackageResult } from './types/InitPackageResult.js';
|
|
4
|
+
/**
|
|
5
|
+
* Creates a summary tracking helper for the `init` verb to use to record statistics about results and needed
|
|
6
|
+
* changes. The `record*` methods of the returned object will be used within init to add the stats, and the
|
|
7
|
+
* `get` method will return the final tally. The resulting `InitSummary` object can be used in the `formatInitSummary`
|
|
8
|
+
* helper to convert it to a string for the user.
|
|
9
|
+
*/
|
|
10
|
+
export declare class InitSummaryData {
|
|
11
|
+
private _packageResults;
|
|
12
|
+
private _generatedUpdates;
|
|
13
|
+
constructor();
|
|
14
|
+
recordResult(packageResult: InitPackageResult): void;
|
|
15
|
+
recordGeneratedChanges(allChanges: GeneratedPackageChanges[]): void;
|
|
16
|
+
summarize(): InitSummary;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=InitSummaryData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InitSummaryData.d.ts","sourceRoot":"","sources":["../../../src/commands/init/InitSummaryData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAGlF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,eAAe,CAAoC;IAC3D,OAAO,CAAC,iBAAiB,CAA0C;;IAO5D,YAAY,CAAC,aAAa,EAAE,iBAAiB;IAI7C,sBAAsB,CAAC,UAAU,EAAE,uBAAuB,EAAE;IAS5D,SAAS,IAAI,WAAW;CAqChC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates a summary tracking helper for the `init` verb to use to record statistics about results and needed
|
|
3
|
+
* changes. The `record*` methods of the returned object will be used within init to add the stats, and the
|
|
4
|
+
* `get` method will return the final tally. The resulting `InitSummary` object can be used in the `formatInitSummary`
|
|
5
|
+
* helper to convert it to a string for the user.
|
|
6
|
+
*/
|
|
7
|
+
export class InitSummaryData {
|
|
8
|
+
constructor() {
|
|
9
|
+
this._packageResults = {};
|
|
10
|
+
this._generatedUpdates = {};
|
|
11
|
+
}
|
|
12
|
+
recordResult(packageResult) {
|
|
13
|
+
this._packageResults[packageResult.path] = packageResult;
|
|
14
|
+
}
|
|
15
|
+
recordGeneratedChanges(allChanges) {
|
|
16
|
+
for (const update of allChanges) {
|
|
17
|
+
const { name, version, path, changes } = update;
|
|
18
|
+
const updatesForPackage = (this._generatedUpdates[path] ??= { name, version, path, changes: [] });
|
|
19
|
+
updatesForPackage.changes.push(...changes);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
summarize() {
|
|
23
|
+
let totalSuccess = 0;
|
|
24
|
+
let totalErrors = 0;
|
|
25
|
+
let totalWarnings = 0;
|
|
26
|
+
let totalChanges = 0;
|
|
27
|
+
const packagesWithErrors = [];
|
|
28
|
+
const packagesWithWarnings = [];
|
|
29
|
+
for (const packageResult of Object.values(this._packageResults)) {
|
|
30
|
+
if (packageResult.errors?.length) {
|
|
31
|
+
packagesWithErrors.push(packageResult);
|
|
32
|
+
totalErrors += packageResult.errors.length;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
totalSuccess++;
|
|
36
|
+
}
|
|
37
|
+
if (packageResult.warnings?.length) {
|
|
38
|
+
packagesWithWarnings.push(packageResult);
|
|
39
|
+
totalWarnings += packageResult.warnings.length;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
for (const updates of Object.values(this._generatedUpdates)) {
|
|
43
|
+
totalChanges += updates.changes.length;
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
totalPackages: Object.keys(this._packageResults).length,
|
|
47
|
+
totalSuccess,
|
|
48
|
+
totalErrors,
|
|
49
|
+
totalWarnings,
|
|
50
|
+
totalChanges,
|
|
51
|
+
packagesWithErrors,
|
|
52
|
+
packagesWithWarnings,
|
|
53
|
+
generatedFileUpdates: Object.values(this._generatedUpdates),
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=InitSummaryData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InitSummaryData.js","sourceRoot":"","sources":["../../../src/commands/init/InitSummaryData.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,MAAM,OAAO,eAAe;IAI1B;QACE,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAC9B,CAAC;IAEM,YAAY,CAAC,aAAgC;QAClD,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;IAC3D,CAAC;IAEM,sBAAsB,CAAC,UAAqC;QACjE,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;YAC/B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;YAChD,MAAM,iBAAiB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;YAElG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;SAC5C;IACH,CAAC;IAEM,SAAS;QACd,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,MAAM,kBAAkB,GAA8B,EAAE,CAAC;QACzD,MAAM,oBAAoB,GAAgC,EAAE,CAAC;QAE7D,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;YAC/D,IAAI,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE;gBAChC,kBAAkB,CAAC,IAAI,CAAC,aAAwC,CAAC,CAAC;gBAClE,WAAW,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC;aAC5C;iBAAM;gBACL,YAAY,EAAE,CAAC;aAChB;YAED,IAAI,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE;gBAClC,oBAAoB,CAAC,IAAI,CAAC,aAA0C,CAAC,CAAC;gBACtE,aAAa,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC;aAChD;SACF;QAED,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;YAC3D,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;SACxC;QAED,OAAO;YACL,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM;YACvD,YAAY;YACZ,WAAW;YACX,aAAa;YACb,YAAY;YACZ,kBAAkB;YAClB,oBAAoB;YACpB,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;SAC5D,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { InitSummary } from './types/InitSummary.js';\nimport type { GeneratedPackageChanges } from './types/GeneratedPackageChanges.js';\nimport type { InitPackageResultWarnings } from './types/InitPackageResultWarnings.js';\nimport type { InitPackageResultErrors } from './types/InitPackageResultErrors.js';\nimport type { InitPackageResult } from './types/InitPackageResult.js';\n\n/**\n * Creates a summary tracking helper for the `init` verb to use to record statistics about results and needed\n * changes. The `record*` methods of the returned object will be used within init to add the stats, and the\n * `get` method will return the final tally. The resulting `InitSummary` object can be used in the `formatInitSummary`\n * helper to convert it to a string for the user.\n */\nexport class InitSummaryData {\n private _packageResults: Record<string, InitPackageResult>;\n private _generatedUpdates: Record<string, GeneratedPackageChanges>;\n\n constructor() {\n this._packageResults = {};\n this._generatedUpdates = {};\n }\n\n public recordResult(packageResult: InitPackageResult) {\n this._packageResults[packageResult.path] = packageResult;\n }\n\n public recordGeneratedChanges(allChanges: GeneratedPackageChanges[]) {\n for (const update of allChanges) {\n const { name, version, path, changes } = update;\n const updatesForPackage = (this._generatedUpdates[path] ??= { name, version, path, changes: [] });\n\n updatesForPackage.changes.push(...changes);\n }\n }\n\n public summarize(): InitSummary {\n let totalSuccess = 0;\n let totalErrors = 0;\n let totalWarnings = 0;\n let totalChanges = 0;\n const packagesWithErrors: InitPackageResultErrors[] = [];\n const packagesWithWarnings: InitPackageResultWarnings[] = [];\n\n for (const packageResult of Object.values(this._packageResults)) {\n if (packageResult.errors?.length) {\n packagesWithErrors.push(packageResult as InitPackageResultErrors);\n totalErrors += packageResult.errors.length;\n } else {\n totalSuccess++;\n }\n\n if (packageResult.warnings?.length) {\n packagesWithWarnings.push(packageResult as InitPackageResultWarnings);\n totalWarnings += packageResult.warnings.length;\n }\n }\n\n for (const updates of Object.values(this._generatedUpdates)) {\n totalChanges += updates.changes.length;\n }\n\n return {\n totalPackages: Object.keys(this._packageResults).length,\n totalSuccess,\n totalErrors,\n totalWarnings,\n totalChanges,\n packagesWithErrors,\n packagesWithWarnings,\n generatedFileUpdates: Object.values(this._generatedUpdates),\n };\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PackageJson, PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';
|
|
1
|
+
import type { PackageJson, PackageDefinitionsCache, BundleMessage } from '@ms-cloudpack/bundler-types';
|
|
2
2
|
import { type TaskReporter } from '@ms-cloudpack/task-reporter';
|
|
3
3
|
import type { CloudpackConfig } from '@ms-cloudpack/config';
|
|
4
4
|
/**
|
|
@@ -11,9 +11,9 @@ export declare function bundleAndGetImports(options: {
|
|
|
11
11
|
packagePath: string;
|
|
12
12
|
definition: PackageJson;
|
|
13
13
|
}): Promise<{
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
warnings: BundleMessage[];
|
|
15
|
+
errors: BundleMessage[];
|
|
16
16
|
/** Map from package name to set of required relative paths */
|
|
17
|
-
imports
|
|
17
|
+
imports: Map<string, Set<string>>;
|
|
18
18
|
}>;
|
|
19
19
|
//# sourceMappingURL=bundleAndGetImports.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundleAndGetImports.d.ts","sourceRoot":"","sources":["../../../src/commands/init/bundleAndGetImports.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"bundleAndGetImports.d.ts","sourceRoot":"","sources":["../../../src/commands/init/bundleAndGetImports.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACvG,OAAO,EAAE,KAAK,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IACjD,QAAQ,EAAE,uBAAuB,CAAC;IAClC,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,WAAW,CAAC;CACzB,GAAG,OAAO,CAAC;IACV,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,8DAA8D;IAC9D,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CACnC,CAAC,CAiED"}
|
|
@@ -18,10 +18,15 @@ export async function bundleAndGetImports(options) {
|
|
|
18
18
|
// Determine entries.
|
|
19
19
|
const entriesMap = await getEntriesMapFromPackage({ inputPath: packagePath }, { packages });
|
|
20
20
|
if (!Object.keys(entriesMap).length) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
:
|
|
24
|
-
|
|
21
|
+
return {
|
|
22
|
+
imports: new Map(),
|
|
23
|
+
errors: [],
|
|
24
|
+
warnings: [
|
|
25
|
+
{
|
|
26
|
+
text: `No valid entry points were found when evaluating ${path.join(packagePath, 'package.json')}. Check that has an exports, main, or module entry and the referenced files exist.`,
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
};
|
|
25
30
|
}
|
|
26
31
|
const bundleRequest = {
|
|
27
32
|
id: packagePath,
|
|
@@ -43,9 +48,9 @@ export async function bundleAndGetImports(options) {
|
|
|
43
48
|
};
|
|
44
49
|
});
|
|
45
50
|
return {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
imports,
|
|
51
|
+
warnings: bundleRequest.result?.warnings || [],
|
|
52
|
+
errors: bundleRequest.result?.errors || [],
|
|
53
|
+
imports: imports || new Map(),
|
|
49
54
|
};
|
|
50
55
|
}
|
|
51
56
|
//# sourceMappingURL=bundleAndGetImports.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundleAndGetImports.js","sourceRoot":"","sources":["../../../src/commands/init/bundleAndGetImports.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAsB,MAAM,0BAA0B,CAAC;AACzG,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAqB,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGnF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAMzC;IAMC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACxE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,MAAM,gBAAgB,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC7F,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC;IAEvC,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;QACtC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,oCAAoC,CAAC,CAAC;KAC9F;IAED,yCAAyC;IACzC,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAEpC,qBAAqB;IACrB,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE5F,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE;QACnC,OAAO,
|
|
1
|
+
{"version":3,"file":"bundleAndGetImports.js","sourceRoot":"","sources":["../../../src/commands/init/bundleAndGetImports.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAsB,MAAM,0BAA0B,CAAC;AACzG,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAqB,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGnF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAMzC;IAMC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACxE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,MAAM,gBAAgB,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC7F,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC;IAEvC,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;QACtC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,oCAAoC,CAAC,CAAC;KAC9F;IAED,yCAAyC;IACzC,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAEpC,qBAAqB;IACrB,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE5F,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE;QACnC,OAAO;YACL,OAAO,EAAE,IAAI,GAAG,EAAuB;YACvC,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,oDAAoD,IAAI,CAAC,IAAI,CACjE,WAAW,EACX,cAAc,CACf,oFAAoF;iBACtF;aACF;SACF,CAAC;KACH;IAED,MAAM,aAAa,GAAkB;QACnC,EAAE,EAAE,WAAW;QACf,WAAW,EAAE,UAAU,CAAC,IAAI,IAAI,EAAE;QAClC,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,EAAE;QACjC,WAAW;QACX,UAAU;QACV,UAAU;QACV,QAAQ;QACR,MAAM;KACP,CAAC;IAEF,MAAM,UAAU,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAExE,yCAAyC;IACzC,IAAI,OAA6C,CAAC;IAElD,MAAM,QAAQ,CAAC,OAAO,CAAC,YAAY,iBAAiB,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;QAC7E,OAAO,GAAG,IAAI,GAAG,CACf,MAAM,CAAC,OAAO,CACZ,CAAC,MAAM,WAAW,CAChB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAClG,CAAC,IAAI,EAAE,CACT,CACF,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,UAAU;SACnB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,QAAQ,EAAE,aAAa,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE;QAC9C,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE;QAC1C,OAAO,EAAE,OAAO,IAAI,IAAI,GAAG,EAAuB;KACnD,CAAC;AACJ,CAAC","sourcesContent":["import path from 'path';\nimport { getEntriesMapFromPackage } from '@ms-cloudpack/bundler';\nimport { bundleTask, getBundleDetails, findImports, type BundleRequest } from '@ms-cloudpack/api-server';\nimport { prepareOutputPath } from '../../common/prepareOutputPath.js';\nimport type { PackageJson, PackageDefinitionsCache, BundleMessage } from '@ms-cloudpack/bundler-types';\nimport { type TaskReporter, formatPackageName } from '@ms-cloudpack/task-reporter';\nimport type { CloudpackConfig } from '@ms-cloudpack/config';\n\n/**\n * Bundle the package and return the imports it depends on.\n */\nexport async function bundleAndGetImports(options: {\n packages: PackageDefinitionsCache;\n config: CloudpackConfig;\n reporter: TaskReporter;\n packagePath: string;\n definition: PackageJson;\n}): Promise<{\n warnings: BundleMessage[];\n errors: BundleMessage[];\n /** Map from package name to set of required relative paths */\n imports: Map<string, Set<string>>;\n}> {\n const { packagePath, definition, packages, reporter, config } = options;\n const { outputLocation, isExternal } = await getBundleDetails({ packagePath }, { packages });\n const outputPath = outputLocation.path;\n\n if (!isExternal && !definition.exports) {\n console.debug(`${path.join(packagePath, 'package.json')} does not have an \"exports\" field.`);\n }\n\n // Ensure outputPath exists and is empty.\n await prepareOutputPath(outputPath);\n\n // Determine entries.\n const entriesMap = await getEntriesMapFromPackage({ inputPath: packagePath }, { packages });\n\n if (!Object.keys(entriesMap).length) {\n return {\n imports: new Map<string, Set<string>>(),\n errors: [],\n warnings: [\n {\n text: `No valid entry points were found when evaluating ${path.join(\n packagePath,\n 'package.json',\n )}. Check that has an exports, main, or module entry and the referenced files exist.`,\n },\n ],\n };\n }\n\n const bundleRequest: BundleRequest = {\n id: packagePath,\n packageName: definition.name || '',\n version: definition.version || '',\n packagePath,\n outputPath,\n isExternal,\n packages,\n config,\n };\n\n await bundleTask({ bundleRequest, reporter, options: { force: true } });\n\n // For each outputFile, find all imports.\n let imports: Map<string, Set<string>> | undefined;\n\n await reporter.runTask(`Evaluate ${formatPackageName(definition)}`, async () => {\n imports = new Map(\n Object.entries(\n (await findImports(\n bundleRequest.result?.outputFiles?.map((file) => path.resolve(outputPath, file.outputPath)) || [],\n )) || {},\n ),\n );\n\n return {\n status: 'complete',\n };\n });\n\n return {\n warnings: bundleRequest.result?.warnings || [],\n errors: bundleRequest.result?.errors || [],\n imports: imports || new Map<string, Set<string>>(),\n };\n}\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { PackageDefinitionsCache, PackageJson } from '@ms-cloudpack/bundler-types';
|
|
2
2
|
import type { GeneratedConfig } from '@ms-cloudpack/config';
|
|
3
3
|
import type { ResolveMap } from '@ms-cloudpack/package-utilities';
|
|
4
|
+
import type { GeneratedPackageChanges } from './types/GeneratedPackageChanges.js';
|
|
4
5
|
/**
|
|
5
6
|
* Evaluate the imports depended on by a package to determine if missing exports map paths need to be added.
|
|
6
7
|
* If so, updates package overrides to the given packageOverrides array.
|
|
@@ -9,12 +10,13 @@ export declare function evaluateImportsForOverrides(options: {
|
|
|
9
10
|
packages: PackageDefinitionsCache;
|
|
10
11
|
imports: Map<string, Set<string>>;
|
|
11
12
|
definition: PackageJson;
|
|
13
|
+
packagePath: string;
|
|
12
14
|
generatedConfig: GeneratedConfig;
|
|
13
15
|
packagePathsToEvaluate: Set<string>;
|
|
14
16
|
evaluatedPackages: Set<string>;
|
|
15
17
|
resolveMap: ResolveMap;
|
|
16
18
|
}): Promise<{
|
|
17
|
-
|
|
19
|
+
changes: GeneratedPackageChanges[];
|
|
18
20
|
errors: string[];
|
|
19
21
|
}>;
|
|
20
22
|
//# sourceMappingURL=evaluateImportsForOverrides.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluateImportsForOverrides.d.ts","sourceRoot":"","sources":["../../../src/commands/init/evaluateImportsForOverrides.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAA4B,MAAM,6BAA6B,CAAC;AAClH,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,sBAAsB,CAAC;AAE7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAQlE;;;GAGG;AACH,wBAAsB,2BAA2B,CAAC,OAAO,EAAE;IACzD,QAAQ,EAAE,uBAAuB,CAAC;IAClC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAClC,UAAU,EAAE,WAAW,CAAC;IACxB,eAAe,EAAE,eAAe,CAAC;IACjC,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,UAAU,EAAE,UAAU,CAAC;CACxB,GAAG,OAAO,CAAC;IAAE,
|
|
1
|
+
{"version":3,"file":"evaluateImportsForOverrides.d.ts","sourceRoot":"","sources":["../../../src/commands/init/evaluateImportsForOverrides.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAA4B,MAAM,6BAA6B,CAAC;AAClH,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,sBAAsB,CAAC;AAE7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAQlE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAElF;;;GAGG;AACH,wBAAsB,2BAA2B,CAAC,OAAO,EAAE;IACzD,QAAQ,EAAE,uBAAuB,CAAC;IAClC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAClC,UAAU,EAAE,WAAW,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,eAAe,CAAC;IACjC,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,UAAU,EAAE,UAAU,CAAC;CACxB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAuHpE"}
|
|
@@ -1,37 +1,31 @@
|
|
|
1
1
|
import { getPackageSettings } from '@ms-cloudpack/config';
|
|
2
2
|
import { addExportsMapEntry, findResolveMapEntry, flattenExportsMap, getExportsMap, } from '@ms-cloudpack/package-utilities';
|
|
3
|
+
import { bulletedList, cyan } from '@ms-cloudpack/task-reporter';
|
|
3
4
|
/**
|
|
4
5
|
* Evaluate the imports depended on by a package to determine if missing exports map paths need to be added.
|
|
5
6
|
* If so, updates package overrides to the given packageOverrides array.
|
|
6
7
|
*/
|
|
7
8
|
export async function evaluateImportsForOverrides(options) {
|
|
8
|
-
const { packages, imports, definition, generatedConfig, packagePathsToEvaluate, evaluatedPackages, resolveMap } = options;
|
|
9
|
+
const { packages, imports, definition, packagePath, generatedConfig, packagePathsToEvaluate, evaluatedPackages, resolveMap, } = options;
|
|
9
10
|
const displayName = `${definition.name}@${definition.version}`;
|
|
10
|
-
|
|
11
|
+
const changes = [];
|
|
11
12
|
const errors = [];
|
|
12
13
|
// Iterate through imports and find their path from the resolve map.
|
|
13
14
|
for (const [dependencyName, dependencyImportPaths] of imports.entries()) {
|
|
14
15
|
const resolveEntry = findResolveMapEntry({ definition, packageName: dependencyName, resolveMap });
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
const { path: dependencyPath } = resolveEntry || {};
|
|
17
|
+
const dependencyDefinition = dependencyPath ? await packages.get(dependencyPath) : undefined;
|
|
18
|
+
if (!dependencyPath || !dependencyDefinition) {
|
|
19
|
+
const errorMessage = `Package "${displayName}" imports from the package "${dependencyName}" but it couldn't be found. ` +
|
|
17
20
|
`Ensure that "${dependencyName}" is listed in dependencies of "${displayName}".`;
|
|
18
21
|
console.error(errorMessage);
|
|
19
22
|
errors.push(errorMessage);
|
|
20
23
|
continue;
|
|
21
24
|
}
|
|
22
|
-
// Load the dependency definition.
|
|
23
|
-
const dependencyDefinition = await packages.get(resolveEntry.path);
|
|
24
|
-
if (!dependencyDefinition) {
|
|
25
|
-
const errorMessage = `Package "${displayName}" depends on "${dependencyName}" at "${resolveEntry.path}" ` +
|
|
26
|
-
`but its definition couldn't be loaded.`;
|
|
27
|
-
console.error(errorMessage);
|
|
28
|
-
errors.push(errorMessage);
|
|
29
|
-
continue;
|
|
30
|
-
}
|
|
31
25
|
// Make sure to add the package to the list of packages to evaluate.
|
|
32
|
-
packagePathsToEvaluate.add(
|
|
26
|
+
packagePathsToEvaluate.add(dependencyPath);
|
|
33
27
|
// Get the flattened bundle-able exports map for this dependency and iterate through our import paths to ensure nothing is missing.
|
|
34
|
-
const exports = await getExportsMap({ packagePath:
|
|
28
|
+
const exports = await getExportsMap({ packagePath: dependencyPath }, { packages });
|
|
35
29
|
const flattenedExports = flattenExportsMap(exports);
|
|
36
30
|
const packageSettings = (generatedConfig.packageSettings ??= []);
|
|
37
31
|
const { name, version } = dependencyDefinition;
|
|
@@ -59,23 +53,41 @@ export async function evaluateImportsForOverrides(options) {
|
|
|
59
53
|
packageSettings.push(generatedPackageSettings);
|
|
60
54
|
}
|
|
61
55
|
generatedPackageSettings.exports ??= {};
|
|
62
|
-
await addExportsMapEntry({
|
|
56
|
+
const addedEntry = await addExportsMapEntry({
|
|
63
57
|
exports: generatedPackageSettings.exports,
|
|
64
|
-
packagePath:
|
|
58
|
+
packagePath: dependencyPath,
|
|
65
59
|
importPath: dependencyImportPath,
|
|
66
60
|
}, {
|
|
67
61
|
packages,
|
|
68
62
|
});
|
|
69
|
-
|
|
63
|
+
if (!addedEntry) {
|
|
64
|
+
const errorMessage = `Imported "${cyan(dependencyImportPath.replace('.', dependencyName))}" but a corresponding file couldn't be found. Either correct the import or adjust the "${cyan(dependencyName)}" package version to one that supports this import path.\n${bulletedList([`${cyan(displayName)}: ${packagePath}`, `${cyan(dependencyName)}: ${dependencyPath}`], 2)}`;
|
|
65
|
+
console.error(errorMessage);
|
|
66
|
+
errors.push(errorMessage);
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
changes.push({
|
|
71
|
+
name: dependencyName,
|
|
72
|
+
version: dependencyDefinition.version || '',
|
|
73
|
+
path: dependencyPath,
|
|
74
|
+
changes: [
|
|
75
|
+
{
|
|
76
|
+
type: 'added-export',
|
|
77
|
+
change: dependencyImportPath,
|
|
78
|
+
reason: `Imported by "${displayName}"`,
|
|
79
|
+
},
|
|
80
|
+
],
|
|
81
|
+
});
|
|
82
|
+
}
|
|
70
83
|
generatedPackageSettings.exports = alphabetizeObject(generatedPackageSettings.exports);
|
|
71
|
-
changeCount++;
|
|
72
84
|
// Since we've found a missing exports, we need to re-enqueue the dependency for evaluation.
|
|
73
|
-
packagePathsToEvaluate.add(
|
|
74
|
-
evaluatedPackages.delete(
|
|
85
|
+
packagePathsToEvaluate.add(dependencyPath);
|
|
86
|
+
evaluatedPackages.delete(dependencyPath);
|
|
75
87
|
}
|
|
76
88
|
}
|
|
77
89
|
}
|
|
78
|
-
return {
|
|
90
|
+
return { changes, errors };
|
|
79
91
|
}
|
|
80
92
|
/** Quick helper to alphabetize the exports. */
|
|
81
93
|
function alphabetizeObject(obj) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluateImportsForOverrides.js","sourceRoot":"","sources":["../../../src/commands/init/evaluateImportsForOverrides.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,GACd,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"evaluateImportsForOverrides.js","sourceRoot":"","sources":["../../../src/commands/init/evaluateImportsForOverrides.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PackageDefinitionsCache, PackageJson, PackageJsonExportsObject } from '@ms-cloudpack/bundler-types';\nimport type { GeneratedConfig, PackageSettings } from '@ms-cloudpack/config';\nimport { getPackageSettings } from '@ms-cloudpack/config';\nimport type { ResolveMap } from '@ms-cloudpack/package-utilities';\nimport {\n addExportsMapEntry,\n findResolveMapEntry,\n flattenExportsMap,\n getExportsMap,\n} from '@ms-cloudpack/package-utilities';\nimport { bulletedList, cyan } from '@ms-cloudpack/task-reporter';\nimport type { GeneratedPackageChanges } from './types/GeneratedPackageChanges.js';\n\n/**\n * Evaluate the imports depended on by a package to determine if missing exports map paths need to be added.\n * If so, updates package overrides to the given packageOverrides array.\n */\nexport async function evaluateImportsForOverrides(options: {\n packages: PackageDefinitionsCache;\n imports: Map<string, Set<string>>;\n definition: PackageJson;\n packagePath: string;\n generatedConfig: GeneratedConfig;\n packagePathsToEvaluate: Set<string>;\n evaluatedPackages: Set<string>;\n resolveMap: ResolveMap;\n}): Promise<{ changes: GeneratedPackageChanges[]; errors: string[] }> {\n const {\n packages,\n imports,\n definition,\n packagePath,\n generatedConfig,\n packagePathsToEvaluate,\n evaluatedPackages,\n resolveMap,\n } = options;\n const displayName = `${definition.name}@${definition.version}`;\n const changes: GeneratedPackageChanges[] = [];\n const errors: string[] = [];\n\n // Iterate through imports and find their path from the resolve map.\n for (const [dependencyName, dependencyImportPaths] of imports.entries()) {\n const resolveEntry = findResolveMapEntry({ definition, packageName: dependencyName, resolveMap });\n const { path: dependencyPath } = resolveEntry || {};\n const dependencyDefinition = dependencyPath ? await packages.get(dependencyPath) : undefined;\n\n if (!dependencyPath || !dependencyDefinition) {\n const errorMessage =\n `Package \"${displayName}\" imports from the package \"${dependencyName}\" but it couldn't be found. ` +\n `Ensure that \"${dependencyName}\" is listed in dependencies of \"${displayName}\".`;\n console.error(errorMessage);\n errors.push(errorMessage);\n\n continue;\n }\n\n // Make sure to add the package to the list of packages to evaluate.\n packagePathsToEvaluate.add(dependencyPath);\n\n // Get the flattened bundle-able exports map for this dependency and iterate through our import paths to ensure nothing is missing.\n const exports = await getExportsMap({ packagePath: dependencyPath }, { packages });\n const flattenedExports = flattenExportsMap(exports);\n const packageSettings = (generatedConfig.packageSettings ??= []);\n const { name, version } = dependencyDefinition;\n let generatedPackageSettings: PackageSettings | undefined;\n\n if (!name || !version) {\n throw new Error(`Package \"${displayName}\" depends on \"${dependencyName}\" but it is missing a name or version.`);\n }\n\n for (const dependencyImportPath of dependencyImportPaths) {\n // We are missing an import path. We need to add this entry to the exports map in package settings.\n if (!flattenedExports[dependencyImportPath]) {\n generatedPackageSettings ??= getPackageSettings({\n config: { generated: { packageSettings } },\n name,\n version,\n firstMatch: true,\n }).generatedPackageSettings;\n\n if (!generatedPackageSettings) {\n generatedPackageSettings = {\n match: {\n name,\n version: `^${version}`,\n },\n exports: {},\n };\n packageSettings.push(generatedPackageSettings);\n }\n\n generatedPackageSettings.exports ??= {};\n\n const addedEntry = await addExportsMapEntry(\n {\n exports: generatedPackageSettings.exports,\n packagePath: dependencyPath,\n importPath: dependencyImportPath,\n },\n {\n packages,\n },\n );\n\n if (!addedEntry) {\n const errorMessage = `Imported \"${cyan(\n dependencyImportPath.replace('.', dependencyName),\n )}\" but a corresponding file couldn't be found. Either correct the import or adjust the \"${cyan(\n dependencyName,\n )}\" package version to one that supports this import path.\\n${bulletedList(\n [`${cyan(displayName)}: ${packagePath}`, `${cyan(dependencyName)}: ${dependencyPath}`],\n 2,\n )}`;\n console.error(errorMessage);\n errors.push(errorMessage);\n\n continue;\n } else {\n changes.push({\n name: dependencyName,\n version: dependencyDefinition.version || '',\n path: dependencyPath,\n changes: [\n {\n type: 'added-export',\n change: dependencyImportPath,\n reason: `Imported by \"${displayName}\"`,\n },\n ],\n });\n }\n\n generatedPackageSettings.exports = alphabetizeObject<PackageJsonExportsObject>(\n generatedPackageSettings.exports as PackageJsonExportsObject,\n );\n\n // Since we've found a missing exports, we need to re-enqueue the dependency for evaluation.\n packagePathsToEvaluate.add(dependencyPath);\n evaluatedPackages.delete(dependencyPath);\n }\n }\n }\n\n return { changes, errors };\n}\n\n/** Quick helper to alphabetize the exports. */\nfunction alphabetizeObject<T extends { [key: string]: unknown }>(obj: T): T {\n const sortedKeys = Object.keys(obj).sort();\n const alphabetizedObj: { [key: string]: unknown } = {};\n\n for (const key of sortedKeys) {\n alphabetizedObj[key] = obj[key];\n }\n\n return alphabetizedObj as T;\n}\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { InitOptions } from './types/InitOptions.js';
|
|
2
|
+
import type { InitSummary } from './types/InitSummary.js';
|
|
3
|
+
/**
|
|
4
|
+
* Given an init summary and init options, returns a formatted string message to display to the user via console.
|
|
5
|
+
*/
|
|
6
|
+
export declare function formatInitSummary(summary: InitSummary, options?: InitOptions): string;
|
|
7
|
+
//# sourceMappingURL=formatInitSummary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatInitSummary.d.ts","sourceRoot":"","sources":["../../../src/commands/init/formatInitSummary.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,WAAW,UAyF5E"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { slash } from '@ms-cloudpack/path-string-parsing';
|
|
2
|
+
import { bold, bulletedList, cyan, green, lightCyan, plural, red, yellow } from '@ms-cloudpack/task-reporter';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
/**
|
|
5
|
+
* Given an init summary and init options, returns a formatted string message to display to the user via console.
|
|
6
|
+
*/
|
|
7
|
+
export function formatInitSummary(summary, options) {
|
|
8
|
+
const { totalPackages, totalErrors, totalWarnings, totalChanges, packagesWithErrors, packagesWithWarnings, generatedFileUpdates, } = summary;
|
|
9
|
+
const { check } = options || {};
|
|
10
|
+
const summaryString = [];
|
|
11
|
+
// Report the "Summary" title if no errors or warnings are listed (seems redundant otherwise.
|
|
12
|
+
if (!packagesWithErrors.length && !packagesWithWarnings.length) {
|
|
13
|
+
summaryString.push('Summary:\n');
|
|
14
|
+
}
|
|
15
|
+
// Report work done to the generated file.
|
|
16
|
+
if (!packagesWithErrors.length && generatedFileUpdates.length) {
|
|
17
|
+
summaryString.push(`${plural(totalChanges, 'change')} ${check ? 'needed for' : 'made to'} ${cyan(`cloudpack.generated.json`)}:\n`);
|
|
18
|
+
for (const packageUpdates of generatedFileUpdates) {
|
|
19
|
+
const exportsUpdates = packageUpdates.changes.filter((u) => u.type === 'added-export');
|
|
20
|
+
if (exportsUpdates.length) {
|
|
21
|
+
summaryString.push(`${formatPackageName(packageUpdates)} - ${yellow(plural(exportsUpdates.length, 'path'))} missing from exports map`);
|
|
22
|
+
summaryString.push(bulletedList(exportsUpdates.map((u) => `${cyan(u.change)}${u.reason ? ` - ${u.reason}` : ``}`)), '');
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
// Report packages with warnings.
|
|
27
|
+
if (packagesWithWarnings.length) {
|
|
28
|
+
summaryString.push(`${plural(packagesWithWarnings.length, 'package')} with ${yellow('warnings')}:\n`);
|
|
29
|
+
for (const packageWithWarnings of packagesWithWarnings) {
|
|
30
|
+
summaryString.push(`${formatPackageName(packageWithWarnings)} - ${yellow(plural(packageWithWarnings.warnings.length, 'warning'))}, ${packageWithWarnings.path}:`);
|
|
31
|
+
summaryString.push(formatBundleMessages(packageWithWarnings, false), '');
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// Report packages with errors.
|
|
35
|
+
if (packagesWithErrors.length) {
|
|
36
|
+
summaryString.push(`${plural(packagesWithErrors.length, 'package')} ${red('failed')}:\n`);
|
|
37
|
+
for (const packageWithErrors of packagesWithErrors) {
|
|
38
|
+
summaryString.push(`${formatPackageName(packageWithErrors)} - ${red(plural(packageWithErrors.errors.length, 'error'))}, ${packageWithErrors.path}:`);
|
|
39
|
+
summaryString.push(formatBundleMessages(packageWithErrors, true), '');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
const generatedUpdateCount = (check && !!generatedFileUpdates.length) || 0;
|
|
43
|
+
const blockingIssueCount = packagesWithErrors.length || generatedUpdateCount;
|
|
44
|
+
// Add summary.
|
|
45
|
+
summaryString.push(`${cyan(plural(totalPackages, 'package'))} evaluated, ${blockingIssueCount
|
|
46
|
+
? `${blockingIssueCount} with ${red('blocking issues')}`
|
|
47
|
+
: `${green('no blocking issues found')}`}. (Total: ${plural(totalErrors, 'error')}, ${plural(totalWarnings, 'warning')})`, '');
|
|
48
|
+
if (generatedUpdateCount) {
|
|
49
|
+
summaryString.push(`Run "${yellow('cloudpack init')}" in your application folder to apply changes to the ${cyan('cloudpack.generated.json')} file.`);
|
|
50
|
+
}
|
|
51
|
+
return summaryString.filter((a) => a !== undefined).join('\n');
|
|
52
|
+
}
|
|
53
|
+
/** Helper to format bundle messages. */
|
|
54
|
+
function formatBundleMessages(result, formatErrors) {
|
|
55
|
+
const messages = [];
|
|
56
|
+
const unformattedMessages = (formatErrors ? result.errors : result.warnings) || [];
|
|
57
|
+
for (const message of unformattedMessages) {
|
|
58
|
+
const { location, text } = message;
|
|
59
|
+
if (!location?.file) {
|
|
60
|
+
messages.push(text);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
const relativeFilePath = cyan(slash(path.relative(result.path, location.file)));
|
|
64
|
+
const characterLocation = location.line !== undefined && location.column !== undefined
|
|
65
|
+
? yellow(`:${location.line}:${location.column}`)
|
|
66
|
+
: ``;
|
|
67
|
+
messages.push(`${relativeFilePath}${characterLocation} - ${text}`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return messages.length ? bulletedList(messages) : undefined;
|
|
71
|
+
}
|
|
72
|
+
/** Helper to format package names. */
|
|
73
|
+
function formatPackageName(packageIdentifier) {
|
|
74
|
+
const { name, version } = packageIdentifier;
|
|
75
|
+
return bold(lightCyan(`${name}@${version || `<no-version>`}`));
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=formatInitSummary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatInitSummary.js","sourceRoot":"","sources":["../../../src/commands/init/formatInitSummary.ts"],"names":[],"mappings":"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","sourcesContent":["import { slash } from '@ms-cloudpack/path-string-parsing';\nimport { bold, bulletedList, cyan, green, lightCyan, plural, red, yellow } from '@ms-cloudpack/task-reporter';\nimport path from 'path';\nimport type { InitOptions } from './types/InitOptions.js';\nimport type { InitPackageIdentifier } from './types/InitPackageIdentifier.js';\nimport type { InitPackageResult } from './types/InitPackageResult.js';\nimport type { InitSummary } from './types/InitSummary.js';\n\n/**\n * Given an init summary and init options, returns a formatted string message to display to the user via console.\n */\nexport function formatInitSummary(summary: InitSummary, options?: InitOptions) {\n const {\n totalPackages,\n totalErrors,\n totalWarnings,\n totalChanges,\n packagesWithErrors,\n packagesWithWarnings,\n generatedFileUpdates,\n } = summary;\n const { check } = options || {};\n const summaryString: (string | undefined)[] = [];\n\n // Report the \"Summary\" title if no errors or warnings are listed (seems redundant otherwise.\n if (!packagesWithErrors.length && !packagesWithWarnings.length) {\n summaryString.push('Summary:\\n');\n }\n\n // Report work done to the generated file.\n if (!packagesWithErrors.length && generatedFileUpdates.length) {\n summaryString.push(\n `${plural(totalChanges, 'change')} ${check ? 'needed for' : 'made to'} ${cyan(`cloudpack.generated.json`)}:\\n`,\n );\n\n for (const packageUpdates of generatedFileUpdates) {\n const exportsUpdates = packageUpdates.changes.filter((u) => u.type === 'added-export');\n\n if (exportsUpdates.length) {\n summaryString.push(\n `${formatPackageName(packageUpdates)} - ${yellow(\n plural(exportsUpdates.length, 'path'),\n )} missing from exports map`,\n );\n summaryString.push(\n bulletedList(exportsUpdates.map((u) => `${cyan(u.change)}${u.reason ? ` - ${u.reason}` : ``}`)),\n '',\n );\n }\n }\n }\n\n // Report packages with warnings.\n if (packagesWithWarnings.length) {\n summaryString.push(`${plural(packagesWithWarnings.length, 'package')} with ${yellow('warnings')}:\\n`);\n for (const packageWithWarnings of packagesWithWarnings) {\n summaryString.push(\n `${formatPackageName(packageWithWarnings)} - ${yellow(\n plural(packageWithWarnings.warnings.length, 'warning'),\n )}, ${packageWithWarnings.path}:`,\n );\n summaryString.push(formatBundleMessages(packageWithWarnings as InitPackageResult, false), '');\n }\n }\n\n // Report packages with errors.\n if (packagesWithErrors.length) {\n summaryString.push(`${plural(packagesWithErrors.length, 'package')} ${red('failed')}:\\n`);\n for (const packageWithErrors of packagesWithErrors) {\n summaryString.push(\n `${formatPackageName(packageWithErrors)} - ${red(plural(packageWithErrors.errors.length, 'error'))}, ${\n packageWithErrors.path\n }:`,\n );\n summaryString.push(formatBundleMessages(packageWithErrors as InitPackageResult, true), '');\n }\n }\n\n const generatedUpdateCount = (check && !!generatedFileUpdates.length) || 0;\n const blockingIssueCount = packagesWithErrors.length || generatedUpdateCount;\n\n // Add summary.\n summaryString.push(\n `${cyan(plural(totalPackages, 'package'))} evaluated, ${\n blockingIssueCount\n ? `${blockingIssueCount} with ${red('blocking issues')}`\n : `${green('no blocking issues found')}`\n }. (Total: ${plural(totalErrors, 'error')}, ${plural(totalWarnings, 'warning')})`,\n '',\n );\n\n if (generatedUpdateCount) {\n summaryString.push(\n `Run \"${yellow('cloudpack init')}\" in your application folder to apply changes to the ${cyan(\n 'cloudpack.generated.json',\n )} file.`,\n );\n }\n\n return summaryString.filter((a) => a !== undefined).join('\\n');\n}\n\n/** Helper to format bundle messages. */\nfunction formatBundleMessages(result: InitPackageResult, formatErrors: boolean) {\n const messages: string[] = [];\n const unformattedMessages = (formatErrors ? result.errors : result.warnings) || [];\n\n for (const message of unformattedMessages) {\n const { location, text } = message;\n\n if (!location?.file) {\n messages.push(text);\n } else {\n const relativeFilePath = cyan(slash(path.relative(result.path, location.file)));\n const characterLocation =\n location.line !== undefined && location.column !== undefined\n ? yellow(`:${location.line}:${location.column}`)\n : ``;\n\n messages.push(`${relativeFilePath}${characterLocation} - ${text}`);\n }\n }\n\n return messages.length ? bulletedList(messages) : undefined;\n}\n\n/** Helper to format package names. */\nfunction formatPackageName(packageIdentifier: InitPackageIdentifier) {\n const { name, version } = packageIdentifier;\n\n return bold(lightCyan(`${name}@${version || `<no-version>`}`));\n}\n"]}
|
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
import type { InitOptions } from './types/InitOptions.js';
|
|
2
1
|
import type { TaskContext } from '../../types/TaskContext.js';
|
|
2
|
+
import type { InitOptions } from './types/InitOptions.js';
|
|
3
|
+
import type { InitSummary } from './types/InitSummary.js';
|
|
3
4
|
/** Given the path, updates the Cloudpack config with overrides and project settings. */
|
|
4
5
|
export declare function init(options: InitOptions, context: TaskContext): Promise<void>;
|
|
5
6
|
/**
|
|
6
7
|
* Actual init operation (minus the completion logging).
|
|
7
8
|
* Exported for testing only.
|
|
8
9
|
*/
|
|
9
|
-
export declare function initInternal(options: InitOptions, context: TaskContext): Promise<
|
|
10
|
-
changeCount: number;
|
|
11
|
-
errorPkgCount: number;
|
|
12
|
-
warningPkgCount: number;
|
|
13
|
-
successPkgCount: number;
|
|
14
|
-
}>;
|
|
10
|
+
export declare function initInternal(options: InitOptions, context: TaskContext): Promise<InitSummary>;
|
|
15
11
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAW1D,wFAAwF;AACxF,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBpF;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAiHnG"}
|
|
@@ -1,46 +1,26 @@
|
|
|
1
|
-
import { createPackageDefinitions,
|
|
2
|
-
import { plural, red, yellow } from '@ms-cloudpack/task-reporter';
|
|
1
|
+
import { createPackageDefinitions, readConfig, writeGeneratedConfig } from '@ms-cloudpack/config';
|
|
3
2
|
import { rootSpan, stopTelemetry } from '../../initTelemetry.js';
|
|
3
|
+
import { setupReporting } from '../../setupReporting.js';
|
|
4
4
|
import { resolveDependenciesTask } from '../../tasks/resolveDependenciesTask.js';
|
|
5
|
-
import { evaluateImportsForOverrides } from './evaluateImportsForOverrides.js';
|
|
6
5
|
import { bundleAndGetImports } from './bundleAndGetImports.js';
|
|
7
|
-
import {
|
|
6
|
+
import { InitSummaryData } from './InitSummaryData.js';
|
|
7
|
+
import { evaluateImportsForOverrides } from './evaluateImportsForOverrides.js';
|
|
8
|
+
import { formatInitSummary } from './formatInitSummary.js';
|
|
8
9
|
/** Given the path, updates the Cloudpack config with overrides and project settings. */
|
|
9
10
|
export async function init(options, context) {
|
|
10
11
|
const { reporter } = context;
|
|
11
|
-
await setupReporting(context);
|
|
12
|
-
let completeReason;
|
|
13
12
|
let hasErrors = false;
|
|
14
|
-
|
|
13
|
+
await setupReporting(context);
|
|
15
14
|
try {
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const totalCount = errorPkgCount + successPkgCount;
|
|
20
|
-
if (hasErrors || hasWarnings) {
|
|
21
|
-
const successPct = ((successPkgCount / totalCount) * 100).toFixed(1);
|
|
22
|
-
completeReason =
|
|
23
|
-
[
|
|
24
|
-
`${successPkgCount}/${totalCount} (${successPct}%) packages bundled successfully`,
|
|
25
|
-
hasErrors && `${errorPkgCount} packages with errors`,
|
|
26
|
-
hasWarnings && `${warningPkgCount} packages with warnings`,
|
|
27
|
-
]
|
|
28
|
-
.filter(Boolean)
|
|
29
|
-
.join('\n') + '\n';
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
completeReason = `All ${totalCount} packages bundled successfully`;
|
|
33
|
-
}
|
|
34
|
-
if (changeCount) {
|
|
35
|
-
completeReason += `\n\nUpdated "${userConfigFileName}" with ${plural(changeCount, 'change')}.`;
|
|
36
|
-
}
|
|
15
|
+
const summary = await initInternal(options, context);
|
|
16
|
+
reporter.complete(formatInitSummary(summary, options));
|
|
17
|
+
hasErrors = summary.totalErrors > 0;
|
|
37
18
|
}
|
|
38
19
|
catch (error) {
|
|
20
|
+
reporter.complete(`Unexpected error: ${error.stack || error}`);
|
|
39
21
|
hasErrors = true;
|
|
40
|
-
completeReason = `Unexpected error: ${error.stack || error}`;
|
|
41
22
|
}
|
|
42
23
|
await stopTelemetry();
|
|
43
|
-
reporter.complete(hasErrors ? red(completeReason) : hasWarnings ? yellow(completeReason) : completeReason);
|
|
44
24
|
process.exit(hasErrors ? 1 : 0);
|
|
45
25
|
}
|
|
46
26
|
/**
|
|
@@ -49,6 +29,7 @@ export async function init(options, context) {
|
|
|
49
29
|
*/
|
|
50
30
|
export async function initInternal(options, context) {
|
|
51
31
|
const { appPath, reporter } = context;
|
|
32
|
+
const summaryData = new InitSummaryData();
|
|
52
33
|
if (options.check && options.reset) {
|
|
53
34
|
throw Error('Cannot use --check and --reset together.');
|
|
54
35
|
}
|
|
@@ -67,10 +48,7 @@ export async function initInternal(options, context) {
|
|
|
67
48
|
}
|
|
68
49
|
const packagePathsToEvaluate = new Set([appPath]);
|
|
69
50
|
const evaluatedPackages = new Set();
|
|
70
|
-
let
|
|
71
|
-
let errorPkgCount = 0;
|
|
72
|
-
let warningPkgCount = 0;
|
|
73
|
-
let successPkgCount = 0;
|
|
51
|
+
let totalChangeCount = 0;
|
|
74
52
|
while (packagePathsToEvaluate.size) {
|
|
75
53
|
const packagePath = packagePathsToEvaluate.values().next().value;
|
|
76
54
|
packagePathsToEvaluate.delete(packagePath);
|
|
@@ -83,64 +61,61 @@ export async function initInternal(options, context) {
|
|
|
83
61
|
if (!definition) {
|
|
84
62
|
// This is very weird and probably won't happen.
|
|
85
63
|
console.error(`Skipping ${packagePath} evaluation because the package.json was not found or not readable.`);
|
|
86
|
-
errorPkgCount++;
|
|
87
64
|
continue;
|
|
88
65
|
}
|
|
89
66
|
// Bundle the package and find the imports it depends on.
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
if (bundleResult.hasErrors) {
|
|
93
|
-
errorPkgCount++;
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
successPkgCount++;
|
|
97
|
-
}
|
|
98
|
-
if (bundleResult.hasWarnings) {
|
|
99
|
-
warningPkgCount++;
|
|
100
|
-
}
|
|
101
|
-
continue;
|
|
102
|
-
}
|
|
103
|
-
// Given the package imports, find the missing exports maps and update packageOverrides.
|
|
104
|
-
const overridesResult = await evaluateImportsForOverrides({
|
|
67
|
+
const { errors, warnings, imports } = await bundleAndGetImports({
|
|
68
|
+
packagePath,
|
|
105
69
|
definition,
|
|
106
70
|
packages,
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
imports: bundleResult.imports,
|
|
110
|
-
generatedConfig,
|
|
111
|
-
resolveMap,
|
|
71
|
+
reporter,
|
|
72
|
+
config,
|
|
112
73
|
});
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
74
|
+
// Record the results for the summary.
|
|
75
|
+
const resultIdentifier = {
|
|
76
|
+
name: definition.name || '',
|
|
77
|
+
version: definition.version || '',
|
|
78
|
+
path: packagePath,
|
|
79
|
+
};
|
|
80
|
+
summaryData.recordResult({
|
|
81
|
+
...resultIdentifier,
|
|
82
|
+
errors,
|
|
83
|
+
warnings,
|
|
84
|
+
});
|
|
85
|
+
// If no errors came from the bundle attempt, move on to evaluating the imports.
|
|
86
|
+
if (errors.length === 0) {
|
|
87
|
+
// Given the package imports, find the missing exports maps and update packageOverrides.
|
|
88
|
+
const { changes, errors: evalErrors } = await evaluateImportsForOverrides({
|
|
89
|
+
definition,
|
|
90
|
+
packagePath,
|
|
91
|
+
packages,
|
|
92
|
+
packagePathsToEvaluate,
|
|
93
|
+
evaluatedPackages,
|
|
94
|
+
imports,
|
|
95
|
+
generatedConfig,
|
|
96
|
+
resolveMap,
|
|
116
97
|
});
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
98
|
+
if (evalErrors.length) {
|
|
99
|
+
summaryData.recordResult({
|
|
100
|
+
...resultIdentifier,
|
|
101
|
+
errors: evalErrors.map((text) => ({ text })),
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
summaryData.recordGeneratedChanges(changes);
|
|
106
|
+
}
|
|
107
|
+
if (options.check && (changes.length || evalErrors.length)) {
|
|
108
|
+
rootSpan?.addEvent('INIT_CHECK_FAILED', {
|
|
109
|
+
reason: changes.length ? 'Config needs to be updated.' : evalErrors,
|
|
110
|
+
});
|
|
111
|
+
return summaryData.summarize();
|
|
112
|
+
}
|
|
113
|
+
totalChangeCount += changes.length;
|
|
130
114
|
}
|
|
131
115
|
}
|
|
132
|
-
if (
|
|
133
|
-
|
|
134
|
-
console.log(`Writing updates to "${generatedConfigFileName}". If you're in a git repo, this file should be committed with your project.`);
|
|
135
|
-
if (generatedConfig.packageSettings?.length) {
|
|
136
|
-
await writeGeneratedConfig(generatedConfig, appPath);
|
|
137
|
-
}
|
|
116
|
+
if (totalChangeCount && generatedConfig.packageSettings?.length) {
|
|
117
|
+
await writeGeneratedConfig(generatedConfig, appPath);
|
|
138
118
|
}
|
|
139
|
-
return
|
|
140
|
-
changeCount,
|
|
141
|
-
errorPkgCount,
|
|
142
|
-
warningPkgCount,
|
|
143
|
-
successPkgCount,
|
|
144
|
-
};
|
|
119
|
+
return summaryData.summarize();
|
|
145
120
|
}
|
|
146
121
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init/init.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n createPackageDefinitions,\n generatedConfigFileName,\n readConfig,\n userConfigFileName,\n writeGeneratedConfig,\n} from '@ms-cloudpack/config';\nimport { plural, red, yellow } from '@ms-cloudpack/task-reporter';\nimport { rootSpan, stopTelemetry } from '../../initTelemetry.js';\nimport { resolveDependenciesTask } from '../../tasks/resolveDependenciesTask.js';\nimport { evaluateImportsForOverrides } from './evaluateImportsForOverrides.js';\nimport { bundleAndGetImports } from './bundleAndGetImports.js';\nimport type { InitOptions } from './types/InitOptions.js';\nimport type { TaskContext } from '../../types/TaskContext.js';\nimport { setupReporting } from '../../setupReporting.js';\n\n/** Given the path, updates the Cloudpack config with overrides and project settings. */\nexport async function init(options: InitOptions, context: TaskContext): Promise<void> {\n const { reporter } = context;\n\n await setupReporting(context);\n\n let completeReason: string | undefined;\n let hasErrors = false;\n let hasWarnings = false;\n try {\n const { changeCount, errorPkgCount, warningPkgCount, successPkgCount } = await initInternal(options, context);\n\n hasErrors = errorPkgCount > 0;\n hasWarnings = warningPkgCount > 0;\n\n const totalCount = errorPkgCount + successPkgCount;\n\n if (hasErrors || hasWarnings) {\n const successPct = ((successPkgCount / totalCount) * 100).toFixed(1);\n completeReason =\n [\n `${successPkgCount}/${totalCount} (${successPct}%) packages bundled successfully`,\n hasErrors && `${errorPkgCount} packages with errors`,\n hasWarnings && `${warningPkgCount} packages with warnings`,\n ]\n .filter(Boolean)\n .join('\\n') + '\\n';\n } else {\n completeReason = `All ${totalCount} packages bundled successfully`;\n }\n\n if (changeCount) {\n completeReason += `\\n\\nUpdated \"${userConfigFileName}\" with ${plural(changeCount, 'change')}.`;\n }\n } catch (error) {\n hasErrors = true;\n completeReason = `Unexpected error: ${(error as Error).stack || error}`;\n }\n\n await stopTelemetry();\n reporter.complete(hasErrors ? red(completeReason) : hasWarnings ? yellow(completeReason) : completeReason);\n\n process.exit(hasErrors ? 1 : 0);\n}\n\n/**\n * Actual init operation (minus the completion logging).\n * Exported for testing only.\n */\nexport async function initInternal(\n options: InitOptions,\n context: TaskContext,\n): Promise<{\n changeCount: number;\n errorPkgCount: number;\n warningPkgCount: number;\n successPkgCount: number;\n}> {\n const { appPath, reporter } = context;\n\n if (options.check && options.reset) {\n throw Error('Cannot use --check and --reset together.');\n }\n\n const config = await readConfig(appPath);\n\n // If --reset is specified we ignore generated config.\n if (options.reset) {\n config.generated = {};\n }\n\n const packages = createPackageDefinitions({ config });\n const generatedConfig = config.generated;\n\n generatedConfig.packageSettings ??= [];\n\n // Try to resolve dependencies.\n const resolveMap = await resolveDependenciesTask({ appPath }, { packages, reporter });\n\n if (!resolveMap) {\n throw new Error(\"Couldn't resolve dependencies.\");\n }\n\n const packagePathsToEvaluate = new Set<string>([appPath]);\n const evaluatedPackages = new Set<string>();\n let changeCount = 0;\n let errorPkgCount = 0;\n let warningPkgCount = 0;\n let successPkgCount = 0;\n\n while (packagePathsToEvaluate.size) {\n const packagePath = packagePathsToEvaluate.values().next().value as string;\n\n packagePathsToEvaluate.delete(packagePath);\n\n // Skip already-visited packages.\n if (!packagePath || evaluatedPackages.has(packagePath)) {\n continue;\n }\n\n evaluatedPackages.add(packagePath);\n\n const definition = await packages.get(packagePath, { refresh: true });\n\n if (!definition) {\n // This is very weird and probably won't happen.\n console.error(`Skipping ${packagePath} evaluation because the package.json was not found or not readable.`);\n errorPkgCount++;\n continue;\n }\n\n // Bundle the package and find the imports it depends on.\n const bundleResult = await bundleAndGetImports({ packagePath, definition, packages, reporter, config });\n\n if (!bundleResult.imports?.size) {\n if (bundleResult.hasErrors) {\n errorPkgCount++;\n } else {\n successPkgCount++;\n }\n\n if (bundleResult.hasWarnings) {\n warningPkgCount++;\n }\n\n continue;\n }\n\n // Given the package imports, find the missing exports maps and update packageOverrides.\n const overridesResult = await evaluateImportsForOverrides({\n definition,\n packages,\n packagePathsToEvaluate,\n evaluatedPackages,\n imports: bundleResult.imports,\n generatedConfig,\n resolveMap,\n });\n\n if (options.check && (overridesResult.changeCount || overridesResult.errors.length)) {\n rootSpan?.addEvent('INIT_CHECK_FAILED', {\n reason: overridesResult.changeCount ? 'Config needs to be updated.' : overridesResult.errors,\n });\n throw Error(\n overridesResult.changeCount\n ? 'Run \"cloudpack init --reset\" to update the config.'\n : overridesResult.errors.map((e) => e).join('\\n'),\n );\n }\n\n changeCount += overridesResult.changeCount;\n\n if (bundleResult.hasErrors || overridesResult.errors.length) {\n errorPkgCount++;\n } else {\n successPkgCount++;\n }\n if (bundleResult.hasWarnings) {\n warningPkgCount++;\n }\n }\n\n if (changeCount) {\n // Log the results to a file.\n console.log(\n `Writing updates to \"${generatedConfigFileName}\". If you're in a git repo, this file should be committed with your project.`,\n );\n\n if (generatedConfig.packageSettings?.length) {\n await writeGeneratedConfig(generatedConfig, appPath);\n }\n }\n\n return {\n changeCount,\n errorPkgCount,\n warningPkgCount,\n successPkgCount,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init/init.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TaskContext } from '../../types/TaskContext.js';\nimport type { InitOptions } from './types/InitOptions.js';\nimport type { InitSummary } from './types/InitSummary.js';\n\nimport { createPackageDefinitions, readConfig, writeGeneratedConfig } from '@ms-cloudpack/config';\nimport { rootSpan, stopTelemetry } from '../../initTelemetry.js';\nimport { setupReporting } from '../../setupReporting.js';\nimport { resolveDependenciesTask } from '../../tasks/resolveDependenciesTask.js';\nimport { bundleAndGetImports } from './bundleAndGetImports.js';\nimport { InitSummaryData } from './InitSummaryData.js';\nimport { evaluateImportsForOverrides } from './evaluateImportsForOverrides.js';\nimport { formatInitSummary } from './formatInitSummary.js';\n\n/** Given the path, updates the Cloudpack config with overrides and project settings. */\nexport async function init(options: InitOptions, context: TaskContext): Promise<void> {\n const { reporter } = context;\n let hasErrors = false;\n\n await setupReporting(context);\n\n try {\n const summary = await initInternal(options, context);\n\n reporter.complete(formatInitSummary(summary, options));\n hasErrors = summary.totalErrors > 0;\n } catch (error) {\n reporter.complete(`Unexpected error: ${(error as Error).stack || error}`);\n hasErrors = true;\n }\n\n await stopTelemetry();\n\n process.exit(hasErrors ? 1 : 0);\n}\n\n/**\n * Actual init operation (minus the completion logging).\n * Exported for testing only.\n */\nexport async function initInternal(options: InitOptions, context: TaskContext): Promise<InitSummary> {\n const { appPath, reporter } = context;\n const summaryData = new InitSummaryData();\n\n if (options.check && options.reset) {\n throw Error('Cannot use --check and --reset together.');\n }\n\n const config = await readConfig(appPath);\n\n // If --reset is specified we ignore generated config.\n if (options.reset) {\n config.generated = {};\n }\n\n const packages = createPackageDefinitions({ config });\n const generatedConfig = config.generated;\n\n generatedConfig.packageSettings ??= [];\n\n // Try to resolve dependencies.\n const resolveMap = await resolveDependenciesTask({ appPath }, { packages, reporter });\n\n if (!resolveMap) {\n throw new Error(\"Couldn't resolve dependencies.\");\n }\n\n const packagePathsToEvaluate = new Set<string>([appPath]);\n const evaluatedPackages = new Set<string>();\n let totalChangeCount = 0;\n\n while (packagePathsToEvaluate.size) {\n const packagePath = packagePathsToEvaluate.values().next().value as string;\n\n packagePathsToEvaluate.delete(packagePath);\n\n // Skip already-visited packages.\n if (!packagePath || evaluatedPackages.has(packagePath)) {\n continue;\n }\n\n evaluatedPackages.add(packagePath);\n\n const definition = await packages.get(packagePath, { refresh: true });\n\n if (!definition) {\n // This is very weird and probably won't happen.\n console.error(`Skipping ${packagePath} evaluation because the package.json was not found or not readable.`);\n continue;\n }\n\n // Bundle the package and find the imports it depends on.\n const { errors, warnings, imports } = await bundleAndGetImports({\n packagePath,\n definition,\n packages,\n reporter,\n config,\n });\n\n // Record the results for the summary.\n const resultIdentifier = {\n name: definition.name || '',\n version: definition.version || '',\n path: packagePath,\n };\n\n summaryData.recordResult({\n ...resultIdentifier,\n errors,\n warnings,\n });\n\n // If no errors came from the bundle attempt, move on to evaluating the imports.\n if (errors.length === 0) {\n // Given the package imports, find the missing exports maps and update packageOverrides.\n const { changes, errors: evalErrors } = await evaluateImportsForOverrides({\n definition,\n packagePath,\n packages,\n packagePathsToEvaluate,\n evaluatedPackages,\n imports,\n generatedConfig,\n resolveMap,\n });\n\n if (evalErrors.length) {\n summaryData.recordResult({\n ...resultIdentifier,\n errors: evalErrors.map((text) => ({ text })),\n });\n } else {\n summaryData.recordGeneratedChanges(changes);\n }\n\n if (options.check && (changes.length || evalErrors.length)) {\n rootSpan?.addEvent('INIT_CHECK_FAILED', {\n reason: changes.length ? 'Config needs to be updated.' : evalErrors,\n });\n\n return summaryData.summarize();\n }\n\n totalChangeCount += changes.length;\n }\n }\n\n if (totalChangeCount && generatedConfig.packageSettings?.length) {\n await writeGeneratedConfig(generatedConfig, appPath);\n }\n\n return summaryData.summarize();\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeneratedChange.d.ts","sourceRoot":"","sources":["../../../../src/commands/init/types/GeneratedChange.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,cAAc,GAAG,qBAAqB,GAAG,qBAAqB,CAAC;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeneratedChange.js","sourceRoot":"","sources":["../../../../src/commands/init/types/GeneratedChange.ts"],"names":[],"mappings":"","sourcesContent":["export interface GeneratedChange {\n type: 'added-export' | 'included-dependency' | 'excluded-dependency';\n change: string;\n reason?: string;\n}\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { InitPackageIdentifier } from './InitPackageIdentifier.js';
|
|
2
|
+
import type { GeneratedChange } from './GeneratedChange.js';
|
|
3
|
+
export interface GeneratedPackageChanges extends InitPackageIdentifier {
|
|
4
|
+
changes: GeneratedChange[];
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=GeneratedPackageChanges.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeneratedPackageChanges.d.ts","sourceRoot":"","sources":["../../../../src/commands/init/types/GeneratedPackageChanges.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeneratedPackageChanges.js","sourceRoot":"","sources":["../../../../src/commands/init/types/GeneratedPackageChanges.ts"],"names":[],"mappings":"","sourcesContent":["import type { InitPackageIdentifier } from './InitPackageIdentifier.js';\nimport type { GeneratedChange } from './GeneratedChange.js';\n\nexport interface GeneratedPackageChanges extends InitPackageIdentifier {\n changes: GeneratedChange[];\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InitPackageIdentifier.d.ts","sourceRoot":"","sources":["../../../../src/commands/init/types/InitPackageIdentifier.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InitPackageIdentifier.js","sourceRoot":"","sources":["../../../../src/commands/init/types/InitPackageIdentifier.ts"],"names":[],"mappings":"","sourcesContent":["export interface InitPackageIdentifier {\n name: string;\n version: string;\n path: string;\n}\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { BundleMessage } from '@ms-cloudpack/bundler-types';
|
|
2
|
+
import type { InitPackageIdentifier } from './InitPackageIdentifier.js';
|
|
3
|
+
export interface InitPackageResult extends InitPackageIdentifier {
|
|
4
|
+
errors?: BundleMessage[];
|
|
5
|
+
warnings?: BundleMessage[];
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=InitPackageResult.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InitPackageResult.d.ts","sourceRoot":"","sources":["../../../../src/commands/init/types/InitPackageResult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAExE,MAAM,WAAW,iBAAkB,SAAQ,qBAAqB;IAC9D,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InitPackageResult.js","sourceRoot":"","sources":["../../../../src/commands/init/types/InitPackageResult.ts"],"names":[],"mappings":"","sourcesContent":["import type { BundleMessage } from '@ms-cloudpack/bundler-types';\nimport type { InitPackageIdentifier } from './InitPackageIdentifier.js';\n\nexport interface InitPackageResult extends InitPackageIdentifier {\n errors?: BundleMessage[];\n warnings?: BundleMessage[];\n}\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { BundleMessage } from '@ms-cloudpack/bundler-types';
|
|
2
|
+
import type { InitPackageIdentifier } from './InitPackageIdentifier.js';
|
|
3
|
+
export interface InitPackageResultErrors extends InitPackageIdentifier {
|
|
4
|
+
errors: BundleMessage[];
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=InitPackageResultErrors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InitPackageResultErrors.d.ts","sourceRoot":"","sources":["../../../../src/commands/init/types/InitPackageResultErrors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAExE,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InitPackageResultErrors.js","sourceRoot":"","sources":["../../../../src/commands/init/types/InitPackageResultErrors.ts"],"names":[],"mappings":"","sourcesContent":["import type { BundleMessage } from '@ms-cloudpack/bundler-types';\nimport type { InitPackageIdentifier } from './InitPackageIdentifier.js';\n\nexport interface InitPackageResultErrors extends InitPackageIdentifier {\n errors: BundleMessage[];\n}\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { BundleMessage } from '@ms-cloudpack/bundler-types';
|
|
2
|
+
import type { InitPackageIdentifier } from './InitPackageIdentifier.js';
|
|
3
|
+
export interface InitPackageResultWarnings extends InitPackageIdentifier {
|
|
4
|
+
warnings: BundleMessage[];
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=InitPackageResultWarnings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InitPackageResultWarnings.d.ts","sourceRoot":"","sources":["../../../../src/commands/init/types/InitPackageResultWarnings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAExE,MAAM,WAAW,yBAA0B,SAAQ,qBAAqB;IACtE,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InitPackageResultWarnings.js","sourceRoot":"","sources":["../../../../src/commands/init/types/InitPackageResultWarnings.ts"],"names":[],"mappings":"","sourcesContent":["import type { BundleMessage } from '@ms-cloudpack/bundler-types';\nimport type { InitPackageIdentifier } from './InitPackageIdentifier.js';\n\nexport interface InitPackageResultWarnings extends InitPackageIdentifier {\n warnings: BundleMessage[];\n}\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { InitPackageResultErrors } from './InitPackageResultErrors.js';
|
|
2
|
+
import type { InitPackageResultWarnings } from './InitPackageResultWarnings.js';
|
|
3
|
+
import type { GeneratedPackageChanges } from './GeneratedPackageChanges.js';
|
|
4
|
+
export interface InitSummary {
|
|
5
|
+
totalPackages: number;
|
|
6
|
+
totalSuccess: number;
|
|
7
|
+
totalErrors: number;
|
|
8
|
+
totalWarnings: number;
|
|
9
|
+
totalChanges: number;
|
|
10
|
+
generatedFileUpdates: GeneratedPackageChanges[];
|
|
11
|
+
packagesWithErrors: InitPackageResultErrors[];
|
|
12
|
+
packagesWithWarnings: InitPackageResultWarnings[];
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=InitSummary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InitSummary.d.ts","sourceRoot":"","sources":["../../../../src/commands/init/types/InitSummary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAE5E,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IAErB,oBAAoB,EAAE,uBAAuB,EAAE,CAAC;IAChD,kBAAkB,EAAE,uBAAuB,EAAE,CAAC;IAC9C,oBAAoB,EAAE,yBAAyB,EAAE,CAAC;CACnD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InitSummary.js","sourceRoot":"","sources":["../../../../src/commands/init/types/InitSummary.ts"],"names":[],"mappings":"","sourcesContent":["import type { InitPackageResultErrors } from './InitPackageResultErrors.js';\nimport type { InitPackageResultWarnings } from './InitPackageResultWarnings.js';\nimport type { GeneratedPackageChanges } from './GeneratedPackageChanges.js';\n\nexport interface InitSummary {\n totalPackages: number;\n totalSuccess: number;\n totalErrors: number;\n totalWarnings: number;\n totalChanges: number;\n\n generatedFileUpdates: GeneratedPackageChanges[];\n packagesWithErrors: InitPackageResultErrors[];\n packagesWithWarnings: InitPackageResultWarnings[];\n}\n"]}
|
|
@@ -83,9 +83,9 @@ function addScript(parentElement, url) {
|
|
|
83
83
|
parentElement.appendChild(script);
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
|
-
function isHtml(
|
|
86
|
+
function isHtml(scriptPath) {
|
|
87
87
|
// path has an .htm or .html extension; case insensitive.
|
|
88
|
-
return
|
|
88
|
+
return scriptPath.toLowerCase().match(/\.htm(l)?$/) !== null;
|
|
89
89
|
}
|
|
90
90
|
async function readStaticHtml(options) {
|
|
91
91
|
const { route } = options;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getHtmlResponse.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/getHtmlResponse.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAKpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA0B;IAC9D,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAC9E,IAAI,UAAU,GAAuB,sBAAsB,CAAC;IAE5D,IAAI,KAAK,CAAC,YAAY,EAAE;QACtB,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3E,IAAI,sBAAsB,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAEhD,IAAI;YACF,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;YAE3F,sBAAsB,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;SAClD;QAAC,MAAM;YACN,WAAW;SACZ;QAED,IAAI,MAAM,CAAC,gBAAgB,CAAC,EAAE;YAC5B,UAAU,GAAG,cAAc,CAAC;SAC7B;aAAM;YACL,8DAA8D;YAC9D,MAAM,eAAe,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC;YAEnE,gHAAgH;YAChH,iHAAiH;YACjH,sFAAsF;YACtF,IAAI;gBACF,UAAU,GAAI,CAAC,MAAM,MAAM,CAAC,eAAe,GAAG,sBAAsB,CAAC,CAAsB,CAAC,OAAO,CAAC;aACrG;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,qCAAqC,eAAe,IAAI,EAAE,CAAC,CAAC,CAAC;aAC5E;SACF;QAED,IAAI,CAAC,UAAU,EAAE;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,gBAAgB,uCAAuC,CAAC,CAAC;SACjG;KACF;IAED,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,IAAI,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;IACzE,MAAM,UAAU,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,IAAI,GAAG,CAAC;IAEvF,IAAI;QACF,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC;QAEzC,yBAAyB;QACzB,IAAI,WAAW,IAAI,aAAa,EAAE;YAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC;YAC1B,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACnE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAC/B;QAED,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;YACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;YACvB,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC;YAChC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;SACnC;QAED,6BAA6B;QAC7B,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAExC,2BAA2B;QAC3B,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAEtC,IAAI,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC;KACjC;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,oDAAoD,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;KACtF;IAED,OAAO;QACL,IAAI;QACJ,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,aAA0B,EAAE,GAAuB;IACpE,IAAI,GAAG,EAAE;QACP,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEnE,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;QACvB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;QACjB,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;KACnC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"getHtmlResponse.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/getHtmlResponse.ts"],"names":[],"mappings":"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","sourcesContent":["import path from 'path';\nimport { pathToFileURL } from 'url';\nimport type { CreateHtmlScript } from '../../../types/CreateHtmlScript.js';\nimport type { CreateHtmlFunction } from '../../../types/CreateHtmlFunction.js';\nimport type { CreateHtmlResult } from '../../../types/CreateHtmlResult.js';\nimport type { CreateHtmlOptions } from '../../../types/CreateHtmlOptions.js';\nimport { getDefaultHtmlResponse } from './getDefaultHtmlResponse.js';\nimport { JSDOM } from 'jsdom';\nimport fsPromises from 'fs/promises';\n\n/**\n * Get the HTML response for the given route. If the route has a custom render script, use that.\n */\nexport async function getHtmlResponse(options: CreateHtmlOptions): Promise<Exclude<CreateHtmlResult, string>> {\n const { route, session, overlayScript, entryScript, inlineScripts } = options;\n let createHtml: CreateHtmlFunction = getDefaultHtmlResponse;\n\n if (route.renderScript) {\n const renderScriptPath = path.resolve(session.appPath, route.renderScript);\n let cacheBreakerQueryParam = `?t=${Date.now()}`;\n\n try {\n const { mtime } = await fsPromises.stat(path.resolve(session.appPath, route.renderScript));\n\n cacheBreakerQueryParam = `?t=${mtime.getTime()}`;\n } catch {\n /* no-op */\n }\n\n if (isHtml(renderScriptPath)) {\n createHtml = readStaticHtml;\n } else {\n // Get the html factory function from a script default export.\n const renderScriptUrl = pathToFileURL(renderScriptPath).toString();\n\n // Note: because there isn't a way to purge the require cache, we need to add a cache breaker query param to the\n // script path to ensure we get the latest version of the script. This could be improved by using the git hash of\n // the file if it exists, or a hash of the content, or even the timestamp of the file.\n try {\n createHtml = ((await import(renderScriptUrl + cacheBreakerQueryParam)) as CreateHtmlScript).default;\n } catch (e) {\n console.error(`Error importing render script at \"${renderScriptUrl}\":`, e);\n }\n }\n\n if (!createHtml) {\n console.error(`The render script at \"${renderScriptPath}\" does not export a default function.`);\n }\n }\n\n const htmlResult = await createHtml(options);\n let html = typeof htmlResult === 'string' ? htmlResult : htmlResult.html;\n const statusCode = typeof htmlResult === 'string' ? 200 : htmlResult.statusCode || 200;\n\n try {\n const htmlDocument = new JSDOM(html);\n const { document } = htmlDocument.window;\n\n // inject the import map.\n if (entryScript || overlayScript) {\n const script = document.createElement('script');\n script.type = 'importmap';\n script.innerHTML = JSON.stringify(session.getImportMap(), null, 2);\n document.head.prepend(script);\n }\n\n for (const inlineScript of inlineScripts) {\n const script = document.createElement('script');\n script.type = 'module';\n script.innerHTML = inlineScript;\n document.head.appendChild(script);\n }\n\n // inject the overlay script.\n addScript(document.head, overlayScript);\n\n // inject the entry script.\n addScript(document.head, entryScript);\n\n html = htmlDocument.serialize();\n } catch (e) {\n console.error(`Error parsing html response for rendering route \"${route.match}\"`, e);\n }\n\n return {\n html,\n statusCode,\n };\n}\n\n/**\n * Helper function to add a script to the document.\n */\nfunction addScript(parentElement: HTMLElement, url: string | undefined) {\n if (url) {\n const script = parentElement.ownerDocument.createElement('script');\n\n script.type = 'module';\n script.src = url;\n parentElement.appendChild(script);\n }\n}\n\nfunction isHtml(scriptPath: string): boolean {\n // path has an .htm or .html extension; case insensitive.\n return scriptPath.toLowerCase().match(/\\.htm(l)?$/) !== null;\n}\n\nasync function readStaticHtml(options: CreateHtmlOptions): Promise<string> {\n const { route } = options;\n let html = '';\n\n if (route.renderScript) {\n const htmlPath = path.resolve(options.session.appPath, route.renderScript);\n\n try {\n html = (await fsPromises.readFile(htmlPath, 'utf8')) || '';\n } catch (e) {\n console.error(`Error reading HTML file at \"${htmlPath}\".`, e);\n }\n }\n\n return html;\n}\n"]}
|
|
@@ -26,9 +26,9 @@ export async function startAppServer({ session, bundleServer, apiServer, definit
|
|
|
26
26
|
hostname: devServer?.domain,
|
|
27
27
|
sslOptions: config.devServer?.https,
|
|
28
28
|
// publicDir,
|
|
29
|
-
setupCallback: (app,
|
|
29
|
+
setupCallback: (app, appUrl) => createRoutes({
|
|
30
30
|
app,
|
|
31
|
-
url,
|
|
31
|
+
url: appUrl,
|
|
32
32
|
session,
|
|
33
33
|
definition,
|
|
34
34
|
bundleServer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startAppServer.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/startAppServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAGpE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAqB,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAItE;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EACnC,OAAO,EACP,YAAY,EACZ,SAAS,EACT,UAAU,EACV,MAAM,GAAG,EAAqB,EAC9B,QAAQ,EACR,QAAQ,GAST;IACC,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,MAAM,IAAK,EAAsB,CAAC;IAE7D,mEAAmE;IACnE,MAAM,oBAAoB,GAAG,SAAS,EAAE,IAAI,KAAK,SAAS,CAAC;IAC3D,MAAM,KAAK,GAAG,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAE1D,mEAAmE;IACnE,+EAA+E;IAC/E,oEAAoE;IAEpE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,4BAA4B,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;IAE9E,IAAI;QACF,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,gBAAgB,CAAC;YAClD,SAAS,EAAE,KAAK;YAChB,oBAAoB;YACpB,QAAQ,EAAE,SAAS,EAAE,MAAM;YAC3B,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK;YACnC,cAAc;YACd,aAAa,EAAE,CAAC,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"startAppServer.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/startAppServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAGpE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAqB,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAItE;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EACnC,OAAO,EACP,YAAY,EACZ,SAAS,EACT,UAAU,EACV,MAAM,GAAG,EAAqB,EAC9B,QAAQ,EACR,QAAQ,GAST;IACC,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,MAAM,IAAK,EAAsB,CAAC;IAE7D,mEAAmE;IACnE,MAAM,oBAAoB,GAAG,SAAS,EAAE,IAAI,KAAK,SAAS,CAAC;IAC3D,MAAM,KAAK,GAAG,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAE1D,mEAAmE;IACnE,+EAA+E;IAC/E,oEAAoE;IAEpE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,4BAA4B,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;IAE9E,IAAI;QACF,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,gBAAgB,CAAC;YAClD,SAAS,EAAE,KAAK;YAChB,oBAAoB;YACpB,QAAQ,EAAE,SAAS,EAAE,MAAM;YAC3B,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK;YACnC,cAAc;YACd,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAC7B,YAAY,CAAC;gBACX,GAAG;gBACH,GAAG,EAAE,MAAM;gBACX,OAAO;gBACP,UAAU;gBACV,YAAY;gBACZ,SAAS;gBACT,MAAM;gBACN,QAAQ;aACT,CAAC;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,eAAe,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAExE,OAAO;YACL,KAAK;YACL,IAAI;YACJ,GAAG;SACJ,CAAC;KACH;IAAC,OAAO,GAAY,EAAE;QACrB,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,4BAA4B,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1F,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAEvD,MAAM,GAAG,CAAC;KACX;AACH,CAAC","sourcesContent":["import { createExpressApp } from '@ms-cloudpack/create-express-app';\nimport type { BundleServer } from '../../../types/BundleServer.js';\nimport type { PackageDefinitionsCache, PackageJson } from '@ms-cloudpack/bundler-types';\nimport { createRoutes } from './createRoutes.js';\nimport { exitIfPortUnavailable } from './exitIfPortUnavailable.js';\nimport { type TaskReporter, cyan } from '@ms-cloudpack/task-reporter';\nimport type { CloudpackConfig } from '@ms-cloudpack/config';\nimport type { ApiServer, Session } from '@ms-cloudpack/api-server';\n\n/**\n * The app server hosts the appropriate routes for the web app, primarily returning html content\n * which loads resources from the bundle server.\n *\n * Separating the app server from the bundle service keeps the routes separate - the app server\n * can support whichever routes the app needs, while the bundle server can provide package\n * assets in various forms using its own routing.\n */\nexport async function startAppServer({\n session,\n bundleServer,\n apiServer,\n definition,\n config = {} as CloudpackConfig,\n packages,\n reporter,\n}: {\n session: Session;\n definition: PackageJson;\n bundleServer: BundleServer;\n apiServer: ApiServer;\n config: CloudpackConfig;\n packages: PackageDefinitionsCache;\n reporter: TaskReporter;\n}) {\n const { devServer = {} } = config || ({} as CloudpackConfig);\n\n // Read the port from the config file or default to array of ports.\n const requireSpecifiedPort = devServer?.port !== undefined;\n const ports = devServer?.port ?? [5000, 5001, 5002, 5003];\n\n // Directory to serve as plain static assets. Defaults to \"public\".\n // Can be overridden by setting the 'publicDir' option in the cloudpack config.\n // const publicDir = path.resolve(devServer.publicPath ?? 'public');\n\n const task = reporter.addTask(`Starting app server for \"${definition.name}\"`);\n\n try {\n const { close, port, url } = await createExpressApp({\n portRange: ports,\n requireSpecifiedPort,\n hostname: devServer?.domain,\n sslOptions: config.devServer?.https,\n // publicDir,\n setupCallback: (app, appUrl) =>\n createRoutes({\n app,\n url: appUrl,\n session,\n definition,\n bundleServer,\n apiServer,\n config,\n packages,\n }),\n });\n\n task.complete({ message: `Available @ ${cyan(url)}`, forceShow: true });\n\n return {\n close,\n port,\n url,\n };\n } catch (err: unknown) {\n task.complete({ status: 'fail', message: 'Failed to start app server', forceShow: true });\n exitIfPortUnavailable(err, session.projectName, ports);\n\n throw err;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveDependenciesTask.d.ts","sourceRoot":"","sources":["../../src/tasks/resolveDependenciesTask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAmB,MAAM,iCAAiC,CAAC;AAE/F,OAAO,EAAoC,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGlG;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE;IACP,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B,EACD,OAAO,EAAE;IAAE,QAAQ,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,uBAAuB,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"resolveDependenciesTask.d.ts","sourceRoot":"","sources":["../../src/tasks/resolveDependenciesTask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAmB,MAAM,iCAAiC,CAAC;AAE/F,OAAO,EAAoC,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGlG;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE;IACP,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B,EACD,OAAO,EAAE;IAAE,QAAQ,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,uBAAuB,CAAA;CAAE,uBAyCvE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveDependenciesTask.js","sourceRoot":"","sources":["../../src/tasks/resolveDependenciesTask.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAqB,MAAM,6BAA6B,CAAC;AAClG,OAAO,EAAE,kBAAkB,EAAE,wCAAwC,EAAE,MAAM,2BAA2B,CAAC;AAEzG;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAIC,EACD,OAAsE;IAEtE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAC1D,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACvC,IAAI,UAAkC,CAAC;IAEvC,IAAI,WAAW,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE;QAC3D,WAAW,CAAC,OAAO,CAAC,wCAAwC,EAAE,kBAAkB,CAAC,CAAC;KACnF;IACD,2CAA2C;IAC3C,MAAM,QAAQ,CAAC,OAAO,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QAC1D,UAAU,GAAG,MAAM,gBAAgB,CACjC;YACE,OAAO;YACP,eAAe;YACf,WAAW;
|
|
1
|
+
{"version":3,"file":"resolveDependenciesTask.js","sourceRoot":"","sources":["../../src/tasks/resolveDependenciesTask.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';\nimport type { LinkedPath, ResolveMap, ResolveMapEntry } from '@ms-cloudpack/package-utilities';\nimport { createResolveMap } from '@ms-cloudpack/package-utilities';\nimport { bold, bulletedList, cyan, yellow, type TaskReporter } from '@ms-cloudpack/task-reporter';\nimport { PerfMarkerCliEntry, PerfMeasurementTimeToResolveDependencies } from '../performance/markers.js';\n\n/**\n * Resolves the locations of dependencies and returns the resolve map, logging results\n * to the task reporter.\n */\nexport async function resolveDependenciesTask(\n options: {\n appPath: string;\n additionalPaths?: string[];\n linkedPaths?: LinkedPath[];\n },\n context: { reporter: TaskReporter; packages: PackageDefinitionsCache },\n) {\n const { appPath, additionalPaths, linkedPaths } = options;\n const { reporter, packages } = context;\n let resolveMap: ResolveMap | undefined;\n\n if (performance.getEntriesByName(PerfMarkerCliEntry).length) {\n performance.measure(PerfMeasurementTimeToResolveDependencies, PerfMarkerCliEntry);\n }\n // Grab the installed dependency locations.\n await reporter.runTask('Resolving dependencies', async () => {\n resolveMap = await createResolveMap(\n {\n appPath,\n additionalPaths,\n linkedPaths,\n },\n {\n packages,\n },\n );\n\n const { allPackages, duplicatedPackages } = getPackagesFromResolveMap(resolveMap);\n const message = `Found ${cyan(allPackages.size)} total packages, ${\n duplicatedPackages.size ? `${yellow(duplicatedPackages.size)} with multiple versions.` : `no duplicates.`\n }`;\n const extended = bulletedList(\n Array.from(duplicatedPackages.entries()).map(\n ([name, versions]) => `${bold(name)}: ${Array.from(versions).join(', ')}`,\n ),\n );\n\n return {\n message,\n extended,\n forceShow: true,\n };\n });\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- will be defined after the task runs\n return resolveMap!;\n}\n\n/**\n * Given a resolveMap, returns a map of all packages and a map of packages with multiple versions.\n * This is used to log the results of the resolve task.\n */\nfunction getPackagesFromResolveMap(resolveMap: ResolveMap) {\n const allPackages = new Map<string, ResolveMapEntry>();\n const duplicatedPackages = new Map<string, Set<string>>();\n\n function addEntry(entry: ResolveMapEntry) {\n if (allPackages.has(entry.name)) {\n if (!duplicatedPackages.has(entry.name)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n duplicatedPackages.set(entry.name, new Set([allPackages.get(entry.name)!.version]));\n }\n const dupeSet = duplicatedPackages.get(entry.name);\n\n dupeSet?.add(entry.version);\n } else {\n allPackages.set(entry.name, entry);\n }\n }\n\n for (const currentEntry of Object.values(resolveMap)) {\n addEntry(currentEntry);\n\n if (currentEntry.scopedVersions) {\n for (const scopedEntry of Object.values(currentEntry.scopedVersions)) {\n addEntry(scopedEntry);\n }\n }\n }\n\n return {\n allPackages,\n duplicatedPackages,\n };\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ms-cloudpack/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.43.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",
|
|
@@ -11,16 +11,16 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@lage-run/target-graph": "^0.8.6",
|
|
14
|
-
"@ms-cloudpack/api-server": "^0.13.
|
|
15
|
-
"@ms-cloudpack/bundler": "^0.14.
|
|
16
|
-
"@ms-cloudpack/config": "^0.11.
|
|
14
|
+
"@ms-cloudpack/api-server": "^0.13.2",
|
|
15
|
+
"@ms-cloudpack/bundler": "^0.14.8",
|
|
16
|
+
"@ms-cloudpack/config": "^0.11.1",
|
|
17
17
|
"@ms-cloudpack/create-express-app": "^1.3.9",
|
|
18
18
|
"@ms-cloudpack/json-utilities": "^0.0.7",
|
|
19
|
-
"@ms-cloudpack/overlay": "^0.14.
|
|
20
|
-
"@ms-cloudpack/package-utilities": "^5.1.
|
|
19
|
+
"@ms-cloudpack/overlay": "^0.14.6",
|
|
20
|
+
"@ms-cloudpack/package-utilities": "^5.1.1",
|
|
21
21
|
"@ms-cloudpack/path-string-parsing": "^1.0.3",
|
|
22
22
|
"@ms-cloudpack/path-utilities": "^2.3.2",
|
|
23
|
-
"@ms-cloudpack/task-reporter": "^0.7.
|
|
23
|
+
"@ms-cloudpack/task-reporter": "^0.7.2",
|
|
24
24
|
"@ms-cloudpack/telemetry": "^0.3.6",
|
|
25
25
|
"commander": "^11.0.0",
|
|
26
26
|
"cross-spawn": "^7.0.3",
|