@ms-cloudpack/cli 0.57.9 → 0.58.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commands/bundle/execute.d.ts.map +1 -1
- package/lib/commands/bundle/execute.js +14 -5
- package/lib/commands/bundle/execute.js.map +1 -1
- package/lib/commands/bundle/index.d.ts.map +1 -1
- package/lib/commands/bundle/index.js +2 -1
- package/lib/commands/bundle/index.js.map +1 -1
- package/lib/commands/bundle/types/BundleOptions.d.ts +4 -1
- package/lib/commands/bundle/types/BundleOptions.d.ts.map +1 -1
- package/lib/commands/bundle/types/BundleOptions.js.map +1 -1
- package/lib/commands/info/nonSemverDeps/getNonSemverDeps.js.map +1 -1
- package/lib/commands/init/evaluateImportsForOverrides.d.ts +1 -2
- package/lib/commands/init/evaluateImportsForOverrides.d.ts.map +1 -1
- package/lib/commands/init/evaluateImportsForOverrides.js.map +1 -1
- package/lib/commands/init/evaluatePath.d.ts +1 -2
- package/lib/commands/init/evaluatePath.d.ts.map +1 -1
- package/lib/commands/init/evaluatePath.js.map +1 -1
- package/lib/commands/init/execute.d.ts.map +1 -1
- package/lib/commands/init/execute.js +10 -4
- package/lib/commands/init/execute.js.map +1 -1
- package/lib/commands/init/formatInitSummary.d.ts +5 -1
- package/lib/commands/init/formatInitSummary.d.ts.map +1 -1
- package/lib/commands/init/formatInitSummary.js +16 -10
- package/lib/commands/init/formatInitSummary.js.map +1 -1
- package/lib/commands/init/init.d.ts +8 -2
- package/lib/commands/init/init.d.ts.map +1 -1
- package/lib/commands/init/init.js +4 -5
- package/lib/commands/init/init.js.map +1 -1
- package/lib/commands/init/neverExclude.d.ts +1 -1
- package/lib/commands/init/neverExclude.js.map +1 -1
- package/lib/commands/init/optimizeDependencies.d.ts +1 -2
- package/lib/commands/init/optimizeDependencies.d.ts.map +1 -1
- package/lib/commands/init/optimizeDependencies.js.map +1 -1
- package/lib/commands/init/types/InitPackageResult.d.ts +1 -1
- package/lib/commands/init/types/InitPackageResult.d.ts.map +1 -1
- package/lib/commands/init/types/InitPackageResult.js.map +1 -1
- package/lib/commands/init/types/InitPackageResultErrors.d.ts +1 -1
- package/lib/commands/init/types/InitPackageResultErrors.d.ts.map +1 -1
- package/lib/commands/init/types/InitPackageResultErrors.js.map +1 -1
- package/lib/commands/init/types/InitPackageResultWarnings.d.ts +1 -1
- package/lib/commands/init/types/InitPackageResultWarnings.d.ts.map +1 -1
- package/lib/commands/init/types/InitPackageResultWarnings.js.map +1 -1
- package/lib/commands/init/verifyExports.d.ts +1 -1
- package/lib/commands/init/verifyExports.d.ts.map +1 -1
- package/lib/commands/init/verifyExports.js.map +1 -1
- package/lib/commands/sync/execute.d.ts.map +1 -1
- package/lib/commands/sync/execute.js +3 -5
- package/lib/commands/sync/execute.js.map +1 -1
- package/lib/common/CommandExecutor.d.ts +1 -0
- package/lib/common/CommandExecutor.d.ts.map +1 -1
- package/lib/common/CommandExecutor.js +11 -7
- package/lib/common/CommandExecutor.js.map +1 -1
- package/lib/common/checkFeatures.d.ts +1 -1
- package/lib/common/checkFeatures.js +1 -1
- package/lib/common/checkFeatures.js.map +1 -1
- package/lib/common/findPackageOverride.d.ts +1 -1
- package/lib/common/findPackageOverride.js.map +1 -1
- package/lib/common/getMergedFeatureFlags.d.ts +1 -1
- package/lib/common/getMergedFeatureFlags.js +1 -1
- package/lib/common/getMergedFeatureFlags.js.map +1 -1
- package/lib/common/mergeFeatures.d.ts +1 -1
- package/lib/common/mergeFeatures.js +1 -1
- package/lib/common/mergeFeatures.js.map +1 -1
- package/lib/common/runPrerequisites.d.ts +1 -1
- package/lib/common/runPrerequisites.js.map +1 -1
- package/lib/types/CommandAction.d.ts +20 -12
- package/lib/types/CommandAction.d.ts.map +1 -1
- package/lib/types/CommandAction.js.map +1 -1
- package/package.json +9 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/commands/bundle/execute.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/commands/bundle/execute.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,eAAO,MAAM,OAAO,EAAE,aAAa,CAAC,aAAa,CAoFhD,CAAC"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { findResolveMapEntry } from '@ms-cloudpack/package-utilities';
|
|
2
1
|
import { createPartialApiContext, ensurePackageBundled } from '@ms-cloudpack/api-server';
|
|
2
|
+
import { findResolveMapEntry } from '@ms-cloudpack/package-utilities';
|
|
3
|
+
import { bold, bulletedList, formatPackageName, green, red, yellow } from '@ms-cloudpack/task-reporter';
|
|
3
4
|
import path from 'path';
|
|
4
|
-
import { bulletedList, formatPackageName } from '@ms-cloudpack/task-reporter';
|
|
5
5
|
export const execute = async (params) => {
|
|
6
6
|
const { cwd: appPath, options, reporter, initialize, exit, autoDispose } = params;
|
|
7
7
|
const { package: packageArg } = options;
|
|
8
8
|
const { config, telemetryClient } = await initialize({
|
|
9
9
|
appPath,
|
|
10
10
|
});
|
|
11
|
-
const { bundler: bundlerType, outdir
|
|
11
|
+
const { bundler: bundlerType, outdir, disableSourceMaps } = options;
|
|
12
12
|
const [ctx] = autoDispose(await createPartialApiContext({
|
|
13
13
|
appPath,
|
|
14
14
|
config,
|
|
@@ -47,12 +47,16 @@ export const execute = async (params) => {
|
|
|
47
47
|
return;
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
+
// If outdir is set, resolve relative to the package/app path.
|
|
51
|
+
// Otherwise, use the default path under the cloudpack cache to stay consistent with init and start,
|
|
52
|
+
// and to avoid potentially messing with the package's original output.
|
|
53
|
+
const outputPath = outdir ? path.resolve(packagePath, outdir) : undefined;
|
|
50
54
|
const definition = await ctx.packages.get(packagePath);
|
|
51
55
|
const { result } = await ensurePackageBundled({
|
|
52
56
|
input: {
|
|
53
57
|
name: definition?.name ?? '<unknown>',
|
|
54
58
|
version: definition?.version ?? '0.0.0',
|
|
55
|
-
outputPath
|
|
59
|
+
outputPath,
|
|
56
60
|
bundlerType,
|
|
57
61
|
disableSourceMaps,
|
|
58
62
|
shouldForce: true,
|
|
@@ -60,8 +64,13 @@ export const execute = async (params) => {
|
|
|
60
64
|
},
|
|
61
65
|
ctx,
|
|
62
66
|
});
|
|
67
|
+
const hasErrors = !!result?.errors?.length;
|
|
68
|
+
const hasWarnings = !!result?.warnings?.length;
|
|
69
|
+
const color = hasErrors ? red : hasWarnings ? yellow : green;
|
|
70
|
+
const status = hasErrors ? 'failed' : hasWarnings ? 'completed with warnings' : 'completed';
|
|
63
71
|
await exit({
|
|
64
|
-
|
|
72
|
+
message: `${color(bold(`Bundling ${status}!`))}\nOutput: ${result.outputPath}\n`,
|
|
73
|
+
exitCode: hasErrors ? 1 : 0,
|
|
65
74
|
});
|
|
66
75
|
};
|
|
67
76
|
//# sourceMappingURL=execute.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/commands/bundle/execute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/commands/bundle/execute.ts"],"names":[],"mappings":"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","sourcesContent":["import { createPartialApiContext, ensurePackageBundled } from '@ms-cloudpack/api-server';\nimport { findResolveMapEntry } from '@ms-cloudpack/package-utilities';\nimport { bold, bulletedList, formatPackageName, green, red, yellow } from '@ms-cloudpack/task-reporter';\nimport path from 'path';\nimport type { CommandAction } from '../../types/CommandAction.js';\nimport type { BundleOptions } from './types/BundleOptions.js';\n\nexport const execute: CommandAction<BundleOptions> = async (params) => {\n const { cwd: appPath, options, reporter, initialize, exit, autoDispose } = params;\n const { package: packageArg } = options;\n const { config, telemetryClient } = await initialize({\n appPath,\n });\n\n const { bundler: bundlerType, outdir, disableSourceMaps } = options;\n\n const [ctx] = autoDispose(\n await createPartialApiContext({\n appPath,\n config,\n reporter,\n telemetryClient,\n items: ['packages', 'watcher', 'session', 'taskRunner', 'bus', 'packageImportPaths', 'packageHashes'],\n }),\n );\n\n let packagePath = appPath;\n\n if (packageArg) {\n let packageName = packageArg;\n let version: string | undefined;\n\n const versionSeparatorIndex = packageName.lastIndexOf('@');\n\n if (versionSeparatorIndex > 0) {\n packageName = packageArg.substring(0, versionSeparatorIndex);\n version = packageArg.substring(versionSeparatorIndex + 1);\n }\n const { resolveMap } = ctx.session;\n const entry = findResolveMapEntry({ packageName, version, resolveMap });\n const versions = [resolveMap[packageName].version, ...Object.keys(resolveMap[packageName].scopedVersions || {})];\n\n if (entry) {\n if (!version && versions.length > 1) {\n // Error out if there are multiple versions available and no version was specified.\n await exit({\n message: `Package \"${packageName}\" has multiple versions available, specify one of the following:\\n${bulletedList(versions.map((v) => formatPackageName({ name: packageName, version: v })))}`,\n exitCode: 1,\n });\n }\n\n packagePath = entry.path;\n console.log(`Package ${formatPackageName({ name: packageName, version: entry.version })} found: ${entry.path}`);\n } else {\n await exit({\n message: `Package \"${packageArg}\" couldn't be found.`,\n exitCode: 1,\n });\n\n return;\n }\n }\n\n // If outdir is set, resolve relative to the package/app path.\n // Otherwise, use the default path under the cloudpack cache to stay consistent with init and start,\n // and to avoid potentially messing with the package's original output.\n const outputPath = outdir ? path.resolve(packagePath, outdir) : undefined;\n\n const definition = await ctx.packages.get(packagePath);\n\n const { result } = await ensurePackageBundled({\n input: {\n name: definition?.name ?? '<unknown>',\n version: definition?.version ?? '0.0.0',\n outputPath,\n bundlerType,\n disableSourceMaps,\n shouldForce: true,\n isIncremental: false,\n },\n ctx,\n });\n\n const hasErrors = !!result?.errors?.length;\n const hasWarnings = !!result?.warnings?.length;\n const color = hasErrors ? red : hasWarnings ? yellow : green;\n const status = hasErrors ? 'failed' : hasWarnings ? 'completed with warnings' : 'completed';\n await exit({\n message: `${color(bold(`Bundling ${status}!`))}\\nOutput: ${result.outputPath}\\n`,\n exitCode: hasErrors ? 1 : 0,\n });\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/bundle/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAG9E,iCAAiC;AACjC,eAAO,MAAM,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/bundle/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAG9E,iCAAiC;AACjC,eAAO,MAAM,IAAI,EAAE,mBAmBlB,CAAC"}
|
|
@@ -7,7 +7,8 @@ export const init = (program) => {
|
|
|
7
7
|
options: {
|
|
8
8
|
bundler: new Option('--bundler <name>', 'Forces use of a specific bundler.'),
|
|
9
9
|
package: new Option('--package <package>', "Bundles the named package in the current folder's application dependency graph."),
|
|
10
|
-
outdir: new Option('--outdir <path>', 'Path to drop the bundle output, relative to current path.'
|
|
10
|
+
outdir: new Option('--outdir <path>', 'Path to drop the bundle output, relative to current or package path. ' +
|
|
11
|
+
'If not set, uses the default path under the cloudpack cache.'),
|
|
11
12
|
disableSourceMaps: new Option('--disable-source-maps', 'Disables source maps.'),
|
|
12
13
|
},
|
|
13
14
|
getExecutor: () => import('./execute.js'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/bundle/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAInC,iCAAiC;AACjC,MAAM,CAAC,MAAM,IAAI,GAAwB,CAAC,OAAO,EAAE,EAAE;IACnD,OAAO,CAAC,aAAa,CAAgB;QACnC,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE;YACP,OAAO,EAAE,IAAI,MAAM,CAAC,kBAAkB,EAAE,mCAAmC,CAAC;YAC5E,OAAO,EAAE,IAAI,MAAM,CACjB,qBAAqB,EACrB,iFAAiF,CAClF;YACD,MAAM,EAAE,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/bundle/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAInC,iCAAiC;AACjC,MAAM,CAAC,MAAM,IAAI,GAAwB,CAAC,OAAO,EAAE,EAAE;IACnD,OAAO,CAAC,aAAa,CAAgB;QACnC,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE;YACP,OAAO,EAAE,IAAI,MAAM,CAAC,kBAAkB,EAAE,mCAAmC,CAAC;YAC5E,OAAO,EAAE,IAAI,MAAM,CACjB,qBAAqB,EACrB,iFAAiF,CAClF;YACD,MAAM,EAAE,IAAI,MAAM,CAChB,iBAAiB,EACjB,uEAAuE;gBACrE,8DAA8D,CACjE;YACD,iBAAiB,EAAE,IAAI,MAAM,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;SAChF;QACD,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC;KAC1C,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["import { Option } from 'commander';\nimport type { CommandInitFunction } from '../../types/CommandInitFunction.js';\nimport type { BundleOptions } from './types/BundleOptions.js';\n\n/** Defines the \"bundle\" verb. */\nexport const init: CommandInitFunction = (program) => {\n program.addSubCommand<BundleOptions>({\n name: 'bundle',\n description: 'Bundles a package.',\n options: {\n bundler: new Option('--bundler <name>', 'Forces use of a specific bundler.'),\n package: new Option(\n '--package <package>',\n \"Bundles the named package in the current folder's application dependency graph.\",\n ),\n outdir: new Option(\n '--outdir <path>',\n 'Path to drop the bundle output, relative to current or package path. ' +\n 'If not set, uses the default path under the cloudpack cache.',\n ),\n disableSourceMaps: new Option('--disable-source-maps', 'Disables source maps.'),\n },\n getExecutor: () => import('./execute.js'),\n });\n};\n"]}
|
|
@@ -8,7 +8,10 @@ export interface BundleOptions {
|
|
|
8
8
|
*/
|
|
9
9
|
disableSourceMaps?: boolean;
|
|
10
10
|
/**
|
|
11
|
-
* Path to drop the bundle output
|
|
11
|
+
* Path to drop the bundle output. This is usually relative to the app path.
|
|
12
|
+
* If `package` is set, it's relative to the package path.
|
|
13
|
+
*
|
|
14
|
+
* If not set, the bundle output is dropped in the default path under the cloudpack cache.
|
|
12
15
|
*/
|
|
13
16
|
outdir?: string;
|
|
14
17
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BundleOptions.d.ts","sourceRoot":"","sources":["../../../../src/commands/bundle/types/BundleOptions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B
|
|
1
|
+
{"version":3,"file":"BundleOptions.d.ts","sourceRoot":"","sources":["../../../../src/commands/bundle/types/BundleOptions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BundleOptions.js","sourceRoot":"","sources":["../../../../src/commands/bundle/types/BundleOptions.ts"],"names":[],"mappings":"","sourcesContent":["export interface BundleOptions {\n /**\n * Forces use of a specific bundler. 'ori' | 'rollup' | 'auto'. Defaults to \"auto\".\n */\n bundler?: string;\n\n /**\n * Disables source maps.\n */\n disableSourceMaps?: boolean;\n\n /**\n * Path to drop the bundle output
|
|
1
|
+
{"version":3,"file":"BundleOptions.js","sourceRoot":"","sources":["../../../../src/commands/bundle/types/BundleOptions.ts"],"names":[],"mappings":"","sourcesContent":["export interface BundleOptions {\n /**\n * Forces use of a specific bundler. 'ori' | 'rollup' | 'auto'. Defaults to \"auto\".\n */\n bundler?: string;\n\n /**\n * Disables source maps.\n */\n disableSourceMaps?: boolean;\n\n /**\n * Path to drop the bundle output. This is usually relative to the app path.\n * If `package` is set, it's relative to the package path.\n *\n * If not set, the bundle output is dropped in the default path under the cloudpack cache.\n */\n outdir?: string;\n\n /**\n * Given a package name, resolves dependencies and finds the first patch.\n */\n package?: string;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getNonSemverDeps.js","sourceRoot":"","sources":["../../../../src/commands/info/nonSemverDeps/getNonSemverDeps.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PackageJson } from '@ms-cloudpack/
|
|
1
|
+
{"version":3,"file":"getNonSemverDeps.js","sourceRoot":"","sources":["../../../../src/commands/info/nonSemverDeps/getNonSemverDeps.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PackageJson } from '@ms-cloudpack/common-types';\nimport { readJson } from '@ms-cloudpack/json-utilities';\nimport { findProjectRoot } from '@ms-cloudpack/package-utilities';\nimport { table } from '@ms-cloudpack/task-reporter';\nimport path from 'path';\nimport semver from 'semver';\nimport { getPackageInfos, type PackageInfo } from 'workspace-tools';\n\ninterface NonSemverDep {\n parent: string | undefined;\n depName: string;\n type: string;\n version: string | undefined;\n}\n\n// resolutions might apply to prod or dev dependencies, so include it just in case\nconst prodDeps = ['dependencies', 'peerDependencies', 'resolutions'] as const;\nconst allDeps = [...prodDeps, 'devDependencies'] as const;\n\nconst depTypeNames = {\n dependencies: 'prod',\n peerDependencies: 'peer',\n devDependencies: 'dev',\n resolutions: 'resolution',\n};\n\n/**\n * Check the local packages in the monorepo for non-semver deps.\n * Returns either a table of those deps or a message saying there are none.\n */\nexport async function getNonSemverDeps(params: {\n cwd: string;\n /** Only include production dependencies */\n prod?: boolean;\n /** Use this directory as the root instead of calling `findProjectRoot` (for testing) */\n overrideProjectRoot?: string;\n}): Promise<string> {\n const { cwd, prod, overrideProjectRoot } = params;\n\n const projectRoot = overrideProjectRoot || findProjectRoot(cwd) || cwd;\n const packages = getPackageInfos(projectRoot);\n\n // add the root package.json to the package infos\n const rootPkgJsonPath = path.join(projectRoot, 'package.json');\n const rootPkg = await readJson<PackageJson>(rootPkgJsonPath);\n if (!rootPkg) {\n throw new Error(`${rootPkgJsonPath} does not exist`);\n }\n if (!rootPkg.name || !rootPkg.version) {\n throw new Error(`${rootPkgJsonPath} is missing a name and/or version`);\n }\n packages[rootPkg.name] = rootPkg as PackageInfo;\n\n const depTypes = prod ? prodDeps : allDeps;\n\n const nonSemverDeps = Object.values(packages)\n .map((pkg: PackageJson) =>\n depTypes\n // get dependencies, peerDependencies, etc from the package\n .map((dt) => Object.entries(pkg[dt] || {}).map(([name, version]) => ({ name, version, type: dt })))\n .flat(1)\n // get non-semver versions\n .filter(({ version }) => !semver.validRange(version))\n .map(\n ({ name, version, type }): NonSemverDep => ({\n parent: pkg.name,\n depName: name,\n type: depTypeNames[type],\n version,\n }),\n ),\n )\n .flat();\n\n if (!nonSemverDeps.length) {\n return 'No non-semver dependencies found';\n }\n\n return (\n table(nonSemverDeps, {\n parent: 'Parent package',\n depName: 'Dependency',\n type: 'Dep type',\n version: 'Version',\n }) + '\\n'\n );\n}\n"]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { BundleInfo } from '@ms-cloudpack/api-server';
|
|
2
|
-
import type { PackageDefinitionsCache, PackageImporterContext } from '@ms-cloudpack/
|
|
3
|
-
import type { CloudpackConfig, PackageJson } from '@ms-cloudpack/config-types';
|
|
2
|
+
import type { CloudpackConfig, PackageDefinitionsCache, PackageImporterContext, PackageJson } from '@ms-cloudpack/common-types';
|
|
4
3
|
import type { ResolveMap } from '@ms-cloudpack/package-utilities';
|
|
5
4
|
import type { GeneratedPackageChanges } from './types/GeneratedPackageChanges.js';
|
|
6
5
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluateImportsForOverrides.d.ts","sourceRoot":"","sources":["../../../src/commands/init/evaluateImportsForOverrides.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"evaluateImportsForOverrides.d.ts","sourceRoot":"","sources":["../../../src/commands/init/evaluateImportsForOverrides.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,WAAW,EAEZ,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAWlE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAKlF;;;GAGG;AACH,wBAAsB,2BAA2B,CAAC,OAAO,EAAE;IACzD,QAAQ,EAAE,uBAAuB,CAAC;IAClC,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,WAAW,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,EAAE,sBAAsB,GAAG,SAAS,CAAC;CACrD,GAAG,OAAO,CAAC;IACV,kDAAkD;IAClD,cAAc,EAAE,uBAAuB,EAAE,CAAC;IAC1C,iEAAiE;IACjE,2BAA2B,EAAE,uBAAuB,EAAE,CAAC;IACvD,6BAA6B;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,4EAA4E;IAC5E,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,GAAG,SAAS,CAAC,CAAC;IACjE,6FAA6F;IAC7F,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC7B,CAAC,CAiMD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluateImportsForOverrides.js","sourceRoot":"","sources":["../../../src/commands/init/evaluateImportsForOverrides.ts"],"names":[],"mappings":"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","sourcesContent":["import type { BundleInfo } from '@ms-cloudpack/api-server';\nimport type { PackageDefinitionsCache, PackageImporterContext } from '@ms-cloudpack/bundler-types';\nimport type { CloudpackConfig, PackageJson, PackageSettings } from '@ms-cloudpack/config-types';\nimport { getPackageSettings } from '@ms-cloudpack/config';\nimport type { ResolveMap } from '@ms-cloudpack/package-utilities';\nimport {\n addExportsMapEntry,\n findResolveMapEntry,\n flattenExportsMap,\n getDependencies,\n getUnusedDependencies,\n getExportsMap,\n isExternalPackage,\n} from '@ms-cloudpack/package-utilities';\nimport { bulletedList, cyan } from '@ms-cloudpack/task-reporter';\nimport type { GeneratedPackageChanges } from './types/GeneratedPackageChanges.js';\nimport { isBuiltin } from 'module';\nimport { getConsumedPaths } from '@ms-cloudpack/api-server';\nimport { neverExclude } from './neverExclude.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 in the config.\n */\nexport async function evaluateImportsForOverrides(options: {\n packages: PackageDefinitionsCache;\n info: BundleInfo;\n definition: PackageJson;\n packagePath: string;\n /** Config so far. This will be modified if new overrides are needed. */\n config: CloudpackConfig;\n resolveMap: ResolveMap;\n importerContext: PackageImporterContext | undefined;\n}): Promise<{\n /** Export changes made to the generated config */\n exportsChanges: GeneratedPackageChanges[];\n /** Included dependencies changes made to the generated config */\n includedDependenciesChanges: GeneratedPackageChanges[];\n /** Any errors encountered */\n errors: string[];\n /** Any warnings generated */\n warnings: string[];\n /** Map from new package path (to be evaluated) to info about the parent. */\n pathsToEvaluate: Map<string, PackageImporterContext | undefined>;\n /** Package paths for which new exports were added, so the package should be re-processed. */\n pathsToRefresh: Set<string>;\n}> {\n const { packages, info, definition, packagePath, config, resolveMap, importerContext } = options;\n\n const { name: packageName, version: packageVersion } = definition;\n const displayName = `${packageName}@${packageVersion}`;\n if (!packageName || !packageVersion) {\n throw new Error(`Package \"${displayName}\" is missing a name or version.`);\n }\n\n const exportsChanges: GeneratedPackageChanges[] = [];\n const includedDependenciesChanges: GeneratedPackageChanges[] = [];\n const errors = [];\n const warnings = [];\n const pathsToEvaluate = new Map<string, PackageImporterContext | undefined>();\n const pathsToRefresh = new Set<string>();\n const dependencies = getDependencies(definition);\n const unusedDependencies = getUnusedDependencies(definition);\n const consumedPaths = getConsumedPaths(info);\n\n // Iterate through imports and find their path from the resolve map.\n for (const [dependencyName, dependencyImportPaths] of Object.entries(consumedPaths)) {\n const resolveEntry = findResolveMapEntry({ definition, packageName: dependencyName, resolveMap });\n const dependencyPath = resolveEntry?.path;\n const dependencyDefinition = dependencyPath ? await packages.get(dependencyPath) : undefined;\n\n const message =\n `The package \"${dependencyName}\" couldn't be found, but it's being imported by the package \"${displayName}\". ` +\n `Please ensure that \"${dependencyName}\" is listed in the dependencies of \"${displayName}\".`;\n const messageBuiltin =\n `The node built-in \"${dependencyName}\" is being imported by the package \"${displayName}\", but no browser-friendly version was found in dependencies. ` +\n `This can be fixed by forcing the package \"${displayName}\" to use \"bundlerType\": \"rollup\" in package settings, or by adding a polyfill browser-friendly dependency.`;\n\n // If the dependency is not resolved, add an error.\n if (!dependencyPath || !dependencyDefinition) {\n isBuiltin(dependencyName) ? errors.push(messageBuiltin) : errors.push(message);\n // If the dependency is not resolved, we can't continue to evaluate it.\n continue;\n }\n\n // If the dependency is not listed as a dependency add to includedDependencies.\n if (!dependencies[dependencyName] && dependencyName !== definition.name && !neverExclude(dependencyName, config)) {\n // Survive from the case where it is not a dependency in the package.json\n // and it is resolvable, but warn the user.\n if (!unusedDependencies[dependencyName]) {\n isBuiltin(dependencyName) ? warnings.push(messageBuiltin) : warnings.push(message);\n }\n // Make sure to add the package to the list of packages to evaluate.\n pathsToEvaluate.set(packagePath, importerContext);\n\n // Add to includedDependencies\n const packageSettings = (config.generated.packageSettings ??= []);\n let generatedPackageSettings = getPackageSettings({\n config: { generated: { packageSettings } },\n name: packageName,\n version: packageVersion,\n firstMatch: true,\n }).generatedPackageSettings;\n\n if (!generatedPackageSettings) {\n if (isExternalPackage(packagePath)) {\n generatedPackageSettings = {\n match: { name: packageName, version: `^${packageVersion}` },\n };\n } else {\n generatedPackageSettings = {\n match: packageName,\n };\n }\n packageSettings.push(generatedPackageSettings);\n }\n\n generatedPackageSettings.includedDependencies ??= [];\n\n // Add to includedDependencies if it is not already included.\n if (generatedPackageSettings.includedDependencies.includes(dependencyName)) {\n continue;\n }\n\n generatedPackageSettings.includedDependencies.push(dependencyName);\n\n includedDependenciesChanges.push({\n name: packageName,\n version: packageVersion,\n path: packagePath,\n changes: [\n {\n type: 'included-dependency',\n change: dependencyName,\n reason: `Imported by \"${displayName}\"`,\n },\n ],\n });\n\n pathsToRefresh.add(packagePath);\n }\n\n const { name, version } = dependencyDefinition as Required<PackageJson>;\n if (!name || !version) {\n throw new Error(`Package \"${displayName}\" depends on \"${dependencyName}\" but it is missing a name or version.`);\n }\n\n let dependencyImporterContext: PackageImporterContext | undefined;\n const versionRequirement = dependencies[dependencyName];\n if (versionRequirement && definition.name && definition.version) {\n dependencyImporterContext = {\n parentName: definition.name,\n parentVersion: definition.version,\n importedName: dependencyName,\n versionRequirement,\n };\n }\n\n // Make sure to add the package to the list of packages to evaluate.\n pathsToEvaluate.set(dependencyPath, dependencyImporterContext);\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, config });\n const flattenedExports = flattenExportsMap(exports);\n const packageSettings = (config.generated.packageSettings ??= []);\n let generatedPackageSettings: PackageSettings | undefined;\n // iterate through all the import paths.\n for (const dependencyImportPath of dependencyImportPaths) {\n if (flattenedExports[dependencyImportPath]) {\n continue;\n }\n\n // We are missing an import path. We need to add this entry to the exports map in package settings.\n generatedPackageSettings ??= getPackageSettings({\n config: { generated: { packageSettings } },\n name,\n version,\n firstMatch: true,\n }).generatedPackageSettings;\n\n if (!generatedPackageSettings) {\n if (isExternalPackage(dependencyPath)) {\n generatedPackageSettings = {\n match: { name, version: `^${version}` },\n exports: {},\n };\n } else {\n generatedPackageSettings = {\n match: name,\n exports: {},\n };\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 { packages, config },\n );\n\n if (addedEntry) {\n exportsChanges.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 // Since we've found a missing export, we need to re-enqueue the dependency for evaluation.\n pathsToRefresh.add(dependencyPath);\n } else {\n const errorMessage = `An import couldn't be resolved to a physical file. Check that the import refers to a file that's exported by the package or adjust the \"${cyan(\n dependencyName,\n )}\" package version to one that supports this import path.\\n${bulletedList(\n [\n `Import: ${cyan(dependencyImportPath.replace('.', dependencyName))}`,\n `Location: ${packagePath}`,\n `Resolved to: ${dependencyName}@${version} (${dependencyImportPath})`,\n ],\n 2,\n )}`;\n errors.push(errorMessage);\n }\n }\n }\n\n return { exportsChanges, includedDependenciesChanges, errors, warnings, pathsToEvaluate, pathsToRefresh };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"evaluateImportsForOverrides.js","sourceRoot":"","sources":["../../../src/commands/init/evaluateImportsForOverrides.ts"],"names":[],"mappings":"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","sourcesContent":["import type { BundleInfo } from '@ms-cloudpack/api-server';\nimport type {\n CloudpackConfig,\n PackageDefinitionsCache,\n PackageImporterContext,\n PackageJson,\n PackageSettings,\n} from '@ms-cloudpack/common-types';\nimport { getPackageSettings } from '@ms-cloudpack/config';\nimport type { ResolveMap } from '@ms-cloudpack/package-utilities';\nimport {\n addExportsMapEntry,\n findResolveMapEntry,\n flattenExportsMap,\n getDependencies,\n getUnusedDependencies,\n getExportsMap,\n isExternalPackage,\n} from '@ms-cloudpack/package-utilities';\nimport { bulletedList, cyan } from '@ms-cloudpack/task-reporter';\nimport type { GeneratedPackageChanges } from './types/GeneratedPackageChanges.js';\nimport { isBuiltin } from 'module';\nimport { getConsumedPaths } from '@ms-cloudpack/api-server';\nimport { neverExclude } from './neverExclude.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 in the config.\n */\nexport async function evaluateImportsForOverrides(options: {\n packages: PackageDefinitionsCache;\n info: BundleInfo;\n definition: PackageJson;\n packagePath: string;\n /** Config so far. This will be modified if new overrides are needed. */\n config: CloudpackConfig;\n resolveMap: ResolveMap;\n importerContext: PackageImporterContext | undefined;\n}): Promise<{\n /** Export changes made to the generated config */\n exportsChanges: GeneratedPackageChanges[];\n /** Included dependencies changes made to the generated config */\n includedDependenciesChanges: GeneratedPackageChanges[];\n /** Any errors encountered */\n errors: string[];\n /** Any warnings generated */\n warnings: string[];\n /** Map from new package path (to be evaluated) to info about the parent. */\n pathsToEvaluate: Map<string, PackageImporterContext | undefined>;\n /** Package paths for which new exports were added, so the package should be re-processed. */\n pathsToRefresh: Set<string>;\n}> {\n const { packages, info, definition, packagePath, config, resolveMap, importerContext } = options;\n\n const { name: packageName, version: packageVersion } = definition;\n const displayName = `${packageName}@${packageVersion}`;\n if (!packageName || !packageVersion) {\n throw new Error(`Package \"${displayName}\" is missing a name or version.`);\n }\n\n const exportsChanges: GeneratedPackageChanges[] = [];\n const includedDependenciesChanges: GeneratedPackageChanges[] = [];\n const errors = [];\n const warnings = [];\n const pathsToEvaluate = new Map<string, PackageImporterContext | undefined>();\n const pathsToRefresh = new Set<string>();\n const dependencies = getDependencies(definition);\n const unusedDependencies = getUnusedDependencies(definition);\n const consumedPaths = getConsumedPaths(info);\n\n // Iterate through imports and find their path from the resolve map.\n for (const [dependencyName, dependencyImportPaths] of Object.entries(consumedPaths)) {\n const resolveEntry = findResolveMapEntry({ definition, packageName: dependencyName, resolveMap });\n const dependencyPath = resolveEntry?.path;\n const dependencyDefinition = dependencyPath ? await packages.get(dependencyPath) : undefined;\n\n const message =\n `The package \"${dependencyName}\" couldn't be found, but it's being imported by the package \"${displayName}\". ` +\n `Please ensure that \"${dependencyName}\" is listed in the dependencies of \"${displayName}\".`;\n const messageBuiltin =\n `The node built-in \"${dependencyName}\" is being imported by the package \"${displayName}\", but no browser-friendly version was found in dependencies. ` +\n `This can be fixed by forcing the package \"${displayName}\" to use \"bundlerType\": \"rollup\" in package settings, or by adding a polyfill browser-friendly dependency.`;\n\n // If the dependency is not resolved, add an error.\n if (!dependencyPath || !dependencyDefinition) {\n isBuiltin(dependencyName) ? errors.push(messageBuiltin) : errors.push(message);\n // If the dependency is not resolved, we can't continue to evaluate it.\n continue;\n }\n\n // If the dependency is not listed as a dependency add to includedDependencies.\n if (!dependencies[dependencyName] && dependencyName !== definition.name && !neverExclude(dependencyName, config)) {\n // Survive from the case where it is not a dependency in the package.json\n // and it is resolvable, but warn the user.\n if (!unusedDependencies[dependencyName]) {\n isBuiltin(dependencyName) ? warnings.push(messageBuiltin) : warnings.push(message);\n }\n // Make sure to add the package to the list of packages to evaluate.\n pathsToEvaluate.set(packagePath, importerContext);\n\n // Add to includedDependencies\n const packageSettings = (config.generated.packageSettings ??= []);\n let generatedPackageSettings = getPackageSettings({\n config: { generated: { packageSettings } },\n name: packageName,\n version: packageVersion,\n firstMatch: true,\n }).generatedPackageSettings;\n\n if (!generatedPackageSettings) {\n if (isExternalPackage(packagePath)) {\n generatedPackageSettings = {\n match: { name: packageName, version: `^${packageVersion}` },\n };\n } else {\n generatedPackageSettings = {\n match: packageName,\n };\n }\n packageSettings.push(generatedPackageSettings);\n }\n\n generatedPackageSettings.includedDependencies ??= [];\n\n // Add to includedDependencies if it is not already included.\n if (generatedPackageSettings.includedDependencies.includes(dependencyName)) {\n continue;\n }\n\n generatedPackageSettings.includedDependencies.push(dependencyName);\n\n includedDependenciesChanges.push({\n name: packageName,\n version: packageVersion,\n path: packagePath,\n changes: [\n {\n type: 'included-dependency',\n change: dependencyName,\n reason: `Imported by \"${displayName}\"`,\n },\n ],\n });\n\n pathsToRefresh.add(packagePath);\n }\n\n const { name, version } = dependencyDefinition as Required<PackageJson>;\n if (!name || !version) {\n throw new Error(`Package \"${displayName}\" depends on \"${dependencyName}\" but it is missing a name or version.`);\n }\n\n let dependencyImporterContext: PackageImporterContext | undefined;\n const versionRequirement = dependencies[dependencyName];\n if (versionRequirement && definition.name && definition.version) {\n dependencyImporterContext = {\n parentName: definition.name,\n parentVersion: definition.version,\n importedName: dependencyName,\n versionRequirement,\n };\n }\n\n // Make sure to add the package to the list of packages to evaluate.\n pathsToEvaluate.set(dependencyPath, dependencyImporterContext);\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, config });\n const flattenedExports = flattenExportsMap(exports);\n const packageSettings = (config.generated.packageSettings ??= []);\n let generatedPackageSettings: PackageSettings | undefined;\n // iterate through all the import paths.\n for (const dependencyImportPath of dependencyImportPaths) {\n if (flattenedExports[dependencyImportPath]) {\n continue;\n }\n\n // We are missing an import path. We need to add this entry to the exports map in package settings.\n generatedPackageSettings ??= getPackageSettings({\n config: { generated: { packageSettings } },\n name,\n version,\n firstMatch: true,\n }).generatedPackageSettings;\n\n if (!generatedPackageSettings) {\n if (isExternalPackage(dependencyPath)) {\n generatedPackageSettings = {\n match: { name, version: `^${version}` },\n exports: {},\n };\n } else {\n generatedPackageSettings = {\n match: name,\n exports: {},\n };\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 { packages, config },\n );\n\n if (addedEntry) {\n exportsChanges.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 // Since we've found a missing export, we need to re-enqueue the dependency for evaluation.\n pathsToRefresh.add(dependencyPath);\n } else {\n const errorMessage = `An import couldn't be resolved to a physical file. Check that the import refers to a file that's exported by the package or adjust the \"${cyan(\n dependencyName,\n )}\" package version to one that supports this import path.\\n${bulletedList(\n [\n `Import: ${cyan(dependencyImportPath.replace('.', dependencyName))}`,\n `Location: ${packagePath}`,\n `Resolved to: ${dependencyName}@${version} (${dependencyImportPath})`,\n ],\n 2,\n )}`;\n errors.push(errorMessage);\n }\n }\n }\n\n return { exportsChanges, includedDependenciesChanges, errors, warnings, pathsToEvaluate, pathsToRefresh };\n}\n"]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { EnsurePackageBundledContext } from '@ms-cloudpack/api-server';
|
|
2
|
-
import type { CloudpackConfig } from '@ms-cloudpack/
|
|
3
|
-
import type { PackageImporterContext } from '@ms-cloudpack/bundler-types';
|
|
2
|
+
import type { CloudpackConfig, PackageImporterContext } from '@ms-cloudpack/common-types';
|
|
4
3
|
import type { ResolveMap } from '@ms-cloudpack/package-utilities';
|
|
5
4
|
import type { TelemetryClient } from '@ms-cloudpack/telemetry';
|
|
6
5
|
import type { InitSummaryData } from './InitSummaryData.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluatePath.d.ts","sourceRoot":"","sources":["../../../src/commands/init/evaluatePath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"evaluatePath.d.ts","sourceRoot":"","sources":["../../../src/commands/init/evaluatePath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAM1D;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAC1C,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,eAAe,EAAE,sBAAsB,GAAG,SAAS,CAAC;IACpD,wEAAwE;IACxE,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,eAAe,CAAC;IAC7B,GAAG,EAAE,2BAA2B,CAAC;CAClC,GAAG,OAAO,CAAC;IACV,4EAA4E;IAC5E,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,GAAG,SAAS,CAAC,CAAC;IAClE,6FAA6F;IAC7F,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,6CAA6C;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC,CAkHD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluatePath.js","sourceRoot":"","sources":["../../../src/commands/init/evaluatePath.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"evaluatePath.js","sourceRoot":"","sources":["../../../src/commands/init/evaluatePath.ts"],"names":[],"mappings":"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","sourcesContent":["import type { EnsurePackageBundledContext } from '@ms-cloudpack/api-server';\nimport type { CloudpackConfig, PackageImporterContext } from '@ms-cloudpack/common-types';\nimport type { ResolveMap } from '@ms-cloudpack/package-utilities';\nimport type { TelemetryClient } from '@ms-cloudpack/telemetry';\nimport type { InitSummaryData } from './InitSummaryData.js';\nimport type { InitOptions } from './types/InitOptions.js';\n\nimport { ensurePackageBundled } from '@ms-cloudpack/api-server';\nimport { evaluateImportsForOverrides } from './evaluateImportsForOverrides.js';\nimport { optimizeDependencies } from './optimizeDependencies.js';\n\n/**\n * A helper which given the packagePath, tries to evaluate the path by bundling things, finding imports,\n * and cross checking the imports with explicit exports. If any exports are missing, they are documented\n * in the generated config.\n */\nexport async function evaluatePath(options: {\n /** Path to evaluate. */\n packagePath: string;\n /** Info about how the parent package */\n importerContext: PackageImporterContext | undefined;\n /** Config so far. This will be modified if new overrides are needed. */\n config: CloudpackConfig;\n resolveMap: ResolveMap;\n telemetryClient: TelemetryClient;\n initOptions: InitOptions;\n summaryData: InitSummaryData;\n ctx: EnsurePackageBundledContext;\n}): Promise<{\n /** Map from new package path (to be evaluated) to info about the parent. */\n pathsToEvaluate?: Map<string, PackageImporterContext | undefined>;\n /** Package paths for which new exports were added, so the package should be re-processed. */\n pathsToRefresh?: Set<string>;\n /** Whether a fatal error was encountered. */\n shouldExit?: boolean;\n}> {\n const { packagePath, config, initOptions, telemetryClient, resolveMap, summaryData, ctx, importerContext } = options;\n const { packages } = ctx;\n const { features } = config;\n\n // This line is the reason we have to track the importerContext for packages to evaluate:\n // otherwise if a non-semver package is read here, we'd lose the modifications from the initial\n // time the package was read (and getNonSemverTransform was called) when building the resolve map.\n const definition = await packages.get(packagePath, { refresh: true, importerContext });\n const { name, version } = definition || {};\n\n if (!definition || !name || !version) {\n // Unsure why a package would be missing a definition/name/version - we've built the resolve map already.\n throw new Error(\n `${packagePath} evaluation failed because the package.json with a name/version was not found or not readable.`,\n );\n }\n\n // Bundle the package and find the imports it depends on.\n const { result } = await ensurePackageBundled({\n input: {\n name,\n version,\n isIncremental: false,\n shouldGetBundleInfo: true,\n useHashAsId: true,\n },\n ctx,\n });\n\n const { errors, warnings, info } = result;\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({ packageResult: { ...resultIdentifier, errors, warnings, info } });\n\n // If there were errors or no imports, return early.\n if (errors?.length || !info?.entry) {\n return {};\n }\n\n // Given the package imports, find the missing exports maps and update packageOverrides.\n const {\n exportsChanges,\n includedDependenciesChanges,\n errors: evalErrors,\n pathsToEvaluate,\n pathsToRefresh,\n } = await evaluateImportsForOverrides({\n definition,\n packagePath,\n packages,\n info,\n config,\n resolveMap,\n importerContext,\n });\n\n if (evalErrors.length) {\n summaryData.recordResult({\n packageResult: {\n ...resultIdentifier,\n errors: evalErrors.map((text) => ({ text })),\n },\n append: true,\n });\n }\n summaryData.recordGeneratedChanges(exportsChanges);\n summaryData.recordGeneratedChanges(includedDependenciesChanges);\n\n // Conditionally scan dependency usage so that we can populate\n // include/excludeDependencies automatically, ensuring the dep list\n // is both minimal (remove unused deps) and complete (include\n // specific devDeps.)\n if (features?.optimizeDependencies) {\n const { warnings: excludedDependenciesWarnings, excludedDependenciesChanges } = optimizeDependencies(\n { definition, packagePath, info, resolveMap },\n { packages, config },\n );\n\n if (excludedDependenciesWarnings.length) {\n summaryData.recordResult({\n packageResult: {\n ...resultIdentifier,\n warnings: excludedDependenciesWarnings.map((text) => ({ text })),\n },\n append: true,\n });\n }\n summaryData.recordGeneratedChanges(excludedDependenciesChanges);\n }\n\n // Uncomment this when #1694 init does not cache packages correctly after editing config is fixed\n // and the heap does not reach the limit as almost every package is enqueued.\n // importPathsToEvaluate?.forEach((path) => pathsToEvaluate.set(path, importerContext));\n // importPathsToRefresh?.forEach((path) => pathsToRefresh.add(path));\n\n if (initOptions.check && (exportsChanges.length || evalErrors.length)) {\n telemetryClient.rootSpan.addEvent('INIT_CHECK_FAILED', {\n reason: exportsChanges ? 'Config needs to be updated.' : evalErrors,\n });\n\n return { shouldExit: true };\n }\n\n return {\n pathsToEvaluate,\n pathsToRefresh,\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/commands/init/execute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/commands/init/execute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAMlE,wFAAwF;AACxF,eAAO,MAAM,OAAO,EAAE,aAAa,CAAC,WAAW,CA0B9C,CAAC"}
|
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
import { init } from './init.js';
|
|
2
2
|
import { formatInitSummary } from './formatInitSummary.js';
|
|
3
3
|
import { findCloudpackAppPaths } from '../../common/findCloudpackAppPaths.js';
|
|
4
|
+
import { InitSummaryData } from './InitSummaryData.js';
|
|
4
5
|
/** Given the path, updates the Cloudpack config with overrides and project settings. */
|
|
5
6
|
export const execute = async (params) => {
|
|
6
|
-
const { options, cwd, initialize, reporter, exit, autoDispose } = params;
|
|
7
|
+
const { options, cwd, initialize, reporter, exit, autoDispose, setInterruptMessageHandler } = params;
|
|
7
8
|
const appPaths = findCloudpackAppPaths(cwd);
|
|
8
9
|
// `findCloudpackAppPaths` will only return an array of paths in which cloudpack.config.json was found.
|
|
9
10
|
// To ensure initialize can be run even if no cloudpack.config.json was found, we use the cwd directory as a fallback.
|
|
10
11
|
const contexts = await initialize({ appPaths: appPaths.length > 0 ? appPaths : [cwd] });
|
|
11
|
-
const
|
|
12
|
-
|
|
12
|
+
const appSummaries = Object.fromEntries(contexts.map((context) => [context.appPath, new InitSummaryData(context.appPath)]));
|
|
13
|
+
setInterruptMessageHandler(() => formatInitSummary({
|
|
14
|
+
summaries: Object.values(appSummaries).map((s) => s.summarize(options)),
|
|
15
|
+
options,
|
|
16
|
+
isInterrupted: true,
|
|
17
|
+
}));
|
|
18
|
+
const summaries = await init({ appSummaries, options, contexts, reporter, autoDispose });
|
|
13
19
|
await exit({
|
|
14
20
|
exitCode: summaries.some((summary) => summary.failed) ? 1 : 0,
|
|
15
|
-
message,
|
|
21
|
+
message: formatInitSummary({ summaries, options }),
|
|
16
22
|
});
|
|
17
23
|
};
|
|
18
24
|
//# sourceMappingURL=execute.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/commands/init/execute.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/commands/init/execute.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,wFAAwF;AACxF,MAAM,CAAC,MAAM,OAAO,GAA+B,KAAK,EAAE,MAAM,EAAE,EAAE;IAClE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE,GAAG,MAAM,CAAC;IAErG,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAE5C,uGAAuG;IACvG,sHAAsH;IACtH,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAExF,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CACrC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CACnF,CAAC;IACF,0BAA0B,CAAC,GAAG,EAAE,CAC9B,iBAAiB,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACvE,OAAO;QACP,aAAa,EAAE,IAAI;KACpB,CAAC,CACH,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;IAEzF,MAAM,IAAI,CAAC;QACT,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,OAAO,EAAE,iBAAiB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;KACnD,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["import type { InitOptions } from './types/InitOptions.js';\nimport type { CommandAction } from '../../types/CommandAction.js';\nimport { init } from './init.js';\nimport { formatInitSummary } from './formatInitSummary.js';\nimport { findCloudpackAppPaths } from '../../common/findCloudpackAppPaths.js';\nimport { InitSummaryData } from './InitSummaryData.js';\n\n/** Given the path, updates the Cloudpack config with overrides and project settings. */\nexport const execute: CommandAction<InitOptions> = async (params) => {\n const { options, cwd, initialize, reporter, exit, autoDispose, setInterruptMessageHandler } = params;\n\n const appPaths = findCloudpackAppPaths(cwd);\n\n // `findCloudpackAppPaths` will only return an array of paths in which cloudpack.config.json was found.\n // To ensure initialize can be run even if no cloudpack.config.json was found, we use the cwd directory as a fallback.\n const contexts = await initialize({ appPaths: appPaths.length > 0 ? appPaths : [cwd] });\n\n const appSummaries = Object.fromEntries(\n contexts.map((context) => [context.appPath, new InitSummaryData(context.appPath)]),\n );\n setInterruptMessageHandler(() =>\n formatInitSummary({\n summaries: Object.values(appSummaries).map((s) => s.summarize(options)),\n options,\n isInterrupted: true,\n }),\n );\n\n const summaries = await init({ appSummaries, options, contexts, reporter, autoDispose });\n\n await exit({\n exitCode: summaries.some((summary) => summary.failed) ? 1 : 0,\n message: formatInitSummary({ summaries, options }),\n });\n};\n"]}
|
|
@@ -3,5 +3,9 @@ import type { InitSummary } from './types/InitSummary.js';
|
|
|
3
3
|
/**
|
|
4
4
|
* Given an init summary and init options, returns a formatted string message to display to the user via console.
|
|
5
5
|
*/
|
|
6
|
-
export declare function formatInitSummary(
|
|
6
|
+
export declare function formatInitSummary(params: {
|
|
7
|
+
summaries: InitSummary[];
|
|
8
|
+
options: InitOptions;
|
|
9
|
+
isInterrupted?: boolean;
|
|
10
|
+
}): string;
|
|
7
11
|
//# sourceMappingURL=formatInitSummary.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatInitSummary.d.ts","sourceRoot":"","sources":["../../../src/commands/init/formatInitSummary.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"formatInitSummary.d.ts","sourceRoot":"","sources":["../../../src/commands/init/formatInitSummary.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,WAAW,EAAE,CAAC;IAAC,OAAO,EAAE,WAAW,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,UA+GpH"}
|
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
import { slash } from '@ms-cloudpack/path-string-parsing';
|
|
2
1
|
import { bold, bulletedList, cyan, green, lightCyan, plural, red, yellow, formatTime, statusCharacter, } from '@ms-cloudpack/task-reporter';
|
|
3
2
|
import path from 'path';
|
|
4
3
|
/**
|
|
5
4
|
* Given an init summary and init options, returns a formatted string message to display to the user via console.
|
|
6
5
|
*/
|
|
7
|
-
export function formatInitSummary(
|
|
6
|
+
export function formatInitSummary(params) {
|
|
7
|
+
const { summaries, options, isInterrupted } = params;
|
|
8
8
|
const summaryString = [];
|
|
9
9
|
const isMultiApp = summaries.length > 1;
|
|
10
10
|
for (const summary of summaries) {
|
|
11
11
|
const { totalPackages, totalErrors, totalWarnings, totalRequiredChanges, packagesWithErrors, packagesWithWarnings, generatedFileUpdates, } = summary;
|
|
12
|
-
const { check } = options
|
|
12
|
+
const { check } = options;
|
|
13
|
+
const incompleteText = isInterrupted ? bold(` (incomplete)`) : ``;
|
|
13
14
|
// Report the "Summary" title if no errors or warnings are listed (seems redundant otherwise.
|
|
14
15
|
if ((!packagesWithErrors.length && !packagesWithWarnings.length) || isMultiApp) {
|
|
15
|
-
summaryString.push(bold(
|
|
16
|
+
summaryString.push(bold(`==== Summary for ${summary.appPath}${incompleteText} ====`));
|
|
16
17
|
}
|
|
17
18
|
if (!isMultiApp) {
|
|
18
19
|
// Report work done to the generated file.
|
|
19
20
|
if (!packagesWithErrors.length && generatedFileUpdates.length) {
|
|
20
|
-
summaryString.push(`Updates ${check ? 'needed for' : 'made to'} ${cyan(`cloudpack.generated.json`)}:\n`);
|
|
21
|
+
summaryString.push(`Updates ${check || isInterrupted ? 'needed for' : 'made to'} ${cyan(`cloudpack.generated.json`)}:\n`);
|
|
21
22
|
for (const packageUpdates of generatedFileUpdates) {
|
|
22
23
|
const exportsUpdates = packageUpdates.changes.filter((u) => u.type === 'added-export');
|
|
23
24
|
if (exportsUpdates.length) {
|
|
@@ -48,15 +49,18 @@ export function formatInitSummary(summaries, options) {
|
|
|
48
49
|
const blockingIssueCount = packagesWithErrors.length || 0;
|
|
49
50
|
const requiresChanges = (check && totalRequiredChanges) || 0;
|
|
50
51
|
// Add summary.
|
|
51
|
-
summaryString.push(`${cyan(plural(totalPackages, 'total package'))} evaluated in ${formatTime(summary.duration)}:`, bulletedList([
|
|
52
|
+
summaryString.push(`${cyan(plural(totalPackages, 'total package'))} evaluated in ${formatTime(summary.duration)}${incompleteText}:`, bulletedList([
|
|
52
53
|
requiresChanges ? `${red(plural(totalRequiredChanges, 'change'))} required` : undefined,
|
|
53
54
|
`${green(plural(totalPackages - blockingIssueCount, 'package'))} built successfully${packagesWithWarnings.length
|
|
54
55
|
? ` (${yellow(plural(packagesWithWarnings.length, 'package'))} with warnings)`
|
|
55
56
|
: ''}`,
|
|
56
57
|
blockingIssueCount ? `${red(plural(blockingIssueCount, 'package'))} failed to build` : undefined,
|
|
57
|
-
`Totals: ${red(plural(totalErrors, 'error'))}, ${yellow(plural(totalWarnings, 'warning'))}`,
|
|
58
|
+
`Totals: ${totalErrors ? red(plural(totalErrors, 'error')) : '0 errors'}, ${totalWarnings ? yellow(plural(totalWarnings, 'warning')) : '0 warnings'}`,
|
|
58
59
|
].filter(Boolean)));
|
|
59
|
-
if (
|
|
60
|
+
if (isInterrupted) {
|
|
61
|
+
summaryString.push('', yellow(bold('Process was interrupted before all tasks could complete.')));
|
|
62
|
+
}
|
|
63
|
+
else if (requiresChanges) {
|
|
60
64
|
summaryString.push(`Run "${yellow('cloudpack init')}" in your application folder to apply changes to the ${cyan('cloudpack.generated.json')} file.`);
|
|
61
65
|
}
|
|
62
66
|
summaryString.push('\n');
|
|
@@ -74,11 +78,13 @@ function formatBundleMessages(result, formatErrors) {
|
|
|
74
78
|
messages.push(`${prefix}: ${text}`);
|
|
75
79
|
}
|
|
76
80
|
else {
|
|
77
|
-
|
|
81
|
+
// Show the whole path so it can be easily opened with ctrl+click.
|
|
82
|
+
// NOTE: location.file should be relative to the package path, not the app path.
|
|
83
|
+
const filePath = path.resolve(result.path, location.file);
|
|
78
84
|
const characterLocation = location.line !== undefined && location.column !== undefined
|
|
79
85
|
? yellow(`:${location.line}:${location.column}`)
|
|
80
86
|
: ``;
|
|
81
|
-
messages.push(`${prefix}: ${
|
|
87
|
+
messages.push(`${prefix}: ${filePath}${characterLocation} - ${text}`);
|
|
82
88
|
}
|
|
83
89
|
}
|
|
84
90
|
return messages.length ? bulletedList(messages) : undefined;
|
|
@@ -1 +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 {\n bold,\n bulletedList,\n cyan,\n green,\n lightCyan,\n plural,\n red,\n yellow,\n formatTime,\n statusCharacter,\n} 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(summaries: InitSummary[], options?: InitOptions) {\n const summaryString: (string | undefined)[] = [];\n const isMultiApp = summaries.length > 1;\n\n for (const summary of summaries) {\n const {\n totalPackages,\n totalErrors,\n totalWarnings,\n totalRequiredChanges,\n packagesWithErrors,\n packagesWithWarnings,\n generatedFileUpdates,\n } = summary;\n const { check } = options || {};\n\n // Report the \"Summary\" title if no errors or warnings are listed (seems redundant otherwise.\n if ((!packagesWithErrors.length && !packagesWithWarnings.length) || isMultiApp) {\n summaryString.push(bold(`:: Summary for ${summary.appPath} ::`));\n }\n\n if (!isMultiApp) {\n // Report work done to the generated file.\n if (!packagesWithErrors.length && generatedFileUpdates.length) {\n summaryString.push(`Updates ${check ? 'needed for' : 'made to'} ${cyan(`cloudpack.generated.json`)}:\\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 let currentCount = 1;\n\n for (const packageWithWarnings of packagesWithWarnings) {\n summaryString.push(\n `${yellow(`${statusCharacter.warn} ${currentCount++}.`)} ${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\n // Report packages with errors.\n if (packagesWithErrors.length) {\n summaryString.push(`${plural(packagesWithErrors.length, 'package')} ${red('failed')}:\\n`);\n let currentCount = 1;\n for (const packageWithErrors of packagesWithErrors) {\n summaryString.push(\n `${red(`${statusCharacter.fail} ${currentCount++}.`)} ${formatPackageName(packageWithErrors)} - ${red(\n plural(packageWithErrors.errors.length, 'error'),\n )}, ${packageWithErrors.path}:`,\n );\n summaryString.push(formatBundleMessages(packageWithErrors as InitPackageResult, true), '');\n }\n }\n\n const blockingIssueCount = packagesWithErrors.length || 0;\n const requiresChanges = (check && totalRequiredChanges) || 0;\n\n // Add summary.\n summaryString.push(\n `${cyan(plural(totalPackages, 'total package'))} evaluated in ${formatTime(summary.duration)}:`,\n bulletedList(\n [\n requiresChanges ? `${red(plural(totalRequiredChanges, 'change'))} required` : undefined,\n `${green(plural(totalPackages - blockingIssueCount, 'package'))} built successfully${\n packagesWithWarnings.length\n ? ` (${yellow(plural(packagesWithWarnings.length, 'package'))} with warnings)`\n : ''\n }`,\n blockingIssueCount ? `${red(plural(blockingIssueCount, 'package'))} failed to build` : undefined,\n `Totals: ${red(plural(totalErrors, 'error'))}, ${yellow(plural(totalWarnings, 'warning'))}`,\n ].filter(Boolean),\n ),\n );\n\n if (requiresChanges) {\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 summaryString.push('\\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 const prefix = formatErrors ? red('Error') : yellow('Warning');\n\n if (!location?.file) {\n messages.push(`${prefix}: ${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(`${prefix}: ${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
|
+
{"version":3,"file":"formatInitSummary.js","sourceRoot":"","sources":["../../../src/commands/init/formatInitSummary.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n bold,\n bulletedList,\n cyan,\n green,\n lightCyan,\n plural,\n red,\n yellow,\n formatTime,\n statusCharacter,\n} 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(params: { summaries: InitSummary[]; options: InitOptions; isInterrupted?: boolean }) {\n const { summaries, options, isInterrupted } = params;\n const summaryString: (string | undefined)[] = [];\n const isMultiApp = summaries.length > 1;\n\n for (const summary of summaries) {\n const {\n totalPackages,\n totalErrors,\n totalWarnings,\n totalRequiredChanges,\n packagesWithErrors,\n packagesWithWarnings,\n generatedFileUpdates,\n } = summary;\n const { check } = options;\n const incompleteText = isInterrupted ? bold(` (incomplete)`) : ``;\n\n // Report the \"Summary\" title if no errors or warnings are listed (seems redundant otherwise.\n if ((!packagesWithErrors.length && !packagesWithWarnings.length) || isMultiApp) {\n summaryString.push(bold(`==== Summary for ${summary.appPath}${incompleteText} ====`));\n }\n\n if (!isMultiApp) {\n // Report work done to the generated file.\n if (!packagesWithErrors.length && generatedFileUpdates.length) {\n summaryString.push(\n `Updates ${check || isInterrupted ? '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 let currentCount = 1;\n\n for (const packageWithWarnings of packagesWithWarnings) {\n summaryString.push(\n `${yellow(`${statusCharacter.warn} ${currentCount++}.`)} ${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\n // Report packages with errors.\n if (packagesWithErrors.length) {\n summaryString.push(`${plural(packagesWithErrors.length, 'package')} ${red('failed')}:\\n`);\n let currentCount = 1;\n for (const packageWithErrors of packagesWithErrors) {\n summaryString.push(\n `${red(`${statusCharacter.fail} ${currentCount++}.`)} ${formatPackageName(packageWithErrors)} - ${red(\n plural(packageWithErrors.errors.length, 'error'),\n )}, ${packageWithErrors.path}:`,\n );\n summaryString.push(formatBundleMessages(packageWithErrors as InitPackageResult, true), '');\n }\n }\n\n const blockingIssueCount = packagesWithErrors.length || 0;\n const requiresChanges = (check && totalRequiredChanges) || 0;\n\n // Add summary.\n summaryString.push(\n `${cyan(plural(totalPackages, 'total package'))} evaluated in ${formatTime(summary.duration)}${incompleteText}:`,\n bulletedList(\n [\n requiresChanges ? `${red(plural(totalRequiredChanges, 'change'))} required` : undefined,\n `${green(plural(totalPackages - blockingIssueCount, 'package'))} built successfully${\n packagesWithWarnings.length\n ? ` (${yellow(plural(packagesWithWarnings.length, 'package'))} with warnings)`\n : ''\n }`,\n blockingIssueCount ? `${red(plural(blockingIssueCount, 'package'))} failed to build` : undefined,\n `Totals: ${totalErrors ? red(plural(totalErrors, 'error')) : '0 errors'}, ${totalWarnings ? yellow(plural(totalWarnings, 'warning')) : '0 warnings'}`,\n ].filter(Boolean),\n ),\n );\n\n if (isInterrupted) {\n summaryString.push('', yellow(bold('Process was interrupted before all tasks could complete.')));\n } else if (requiresChanges) {\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 summaryString.push('\\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 const prefix = formatErrors ? red('Error') : yellow('Warning');\n\n if (!location?.file) {\n messages.push(`${prefix}: ${text}`);\n } else {\n // Show the whole path so it can be easily opened with ctrl+click.\n // NOTE: location.file should be relative to the package path, not the app path.\n const filePath = path.resolve(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(`${prefix}: ${filePath}${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"]}
|
|
@@ -2,14 +2,20 @@ import type { TaskReporter } from '@ms-cloudpack/task-reporter';
|
|
|
2
2
|
import type { AutoDispose } from '../../types/AutoDispose.js';
|
|
3
3
|
import type { InitOptions } from './types/InitOptions.js';
|
|
4
4
|
import type { InitSummary } from './types/InitSummary.js';
|
|
5
|
-
import type {
|
|
5
|
+
import type { InitSummaryData } from './InitSummaryData.js';
|
|
6
|
+
import type { AppCommandContext } from '../../types/CommandAction.js';
|
|
6
7
|
/**
|
|
7
8
|
* Init execution function.
|
|
8
9
|
*/
|
|
9
10
|
export declare function init(parameters: {
|
|
10
11
|
options: InitOptions;
|
|
11
|
-
contexts:
|
|
12
|
+
contexts: AppCommandContext[];
|
|
12
13
|
autoDispose: AutoDispose;
|
|
13
14
|
reporter: TaskReporter;
|
|
15
|
+
/**
|
|
16
|
+
* App summary objects, created ahead of time so that a partial summary can be generated
|
|
17
|
+
* if the process is interrupted.
|
|
18
|
+
*/
|
|
19
|
+
appSummaries: Record<string, InitSummaryData>;
|
|
14
20
|
}): Promise<InitSummary[]>;
|
|
15
21
|
//# 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":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,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;AAK1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAKtE;;GAEG;AACH,wBAAsB,IAAI,CAAC,UAAU,EAAE;IACrC,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC/C,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAkIzB"}
|