@ms-cloudpack/config 0.33.32 → 0.34.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/builtInSettings/builtInSettings.d.ts +3 -3
- package/lib/packageDefinitions/createPackageSettingsTransform.d.ts.map +1 -1
- package/lib/packageDefinitions/createPackageSettingsTransform.js +35 -36
- package/lib/packageDefinitions/createPackageSettingsTransform.js.map +1 -1
- package/package.json +2 -2
|
@@ -1968,9 +1968,6 @@ export declare const builtInSettings: {
|
|
|
1968
1968
|
readonly dependencies?: {
|
|
1969
1969
|
readonly [x: string]: string | undefined;
|
|
1970
1970
|
} | undefined;
|
|
1971
|
-
readonly devDependencies?: {
|
|
1972
|
-
readonly [x: string]: string | undefined;
|
|
1973
|
-
} | undefined;
|
|
1974
1971
|
readonly peerDependencies?: {
|
|
1975
1972
|
readonly [x: string]: string | undefined;
|
|
1976
1973
|
} | undefined;
|
|
@@ -1979,6 +1976,9 @@ export declare const builtInSettings: {
|
|
|
1979
1976
|
readonly optional: true;
|
|
1980
1977
|
} | undefined;
|
|
1981
1978
|
} | undefined;
|
|
1979
|
+
readonly devDependencies?: {
|
|
1980
|
+
readonly [x: string]: string | undefined;
|
|
1981
|
+
} | undefined;
|
|
1982
1982
|
readonly optionalDependencies?: {
|
|
1983
1983
|
readonly [x: string]: string | undefined;
|
|
1984
1984
|
} | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPackageSettingsTransform.d.ts","sourceRoot":"","sources":["../../src/packageDefinitions/createPackageSettingsTransform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,0BAA0B,
|
|
1
|
+
{"version":3,"file":"createPackageSettingsTransform.d.ts","sourceRoot":"","sources":["../../src/packageDefinitions/createPackageSettingsTransform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,0BAA0B,EAM3B,MAAM,4BAA4B,CAAC;AAMpC;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,eAAe,GAAG,0BAA0B,CAqClG"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { addExportsMapEntry, getExportsMap } from '@ms-cloudpack/package-utilities';
|
|
1
|
+
import { addExportsMapEntry, getDependencies, getExportsMap } from '@ms-cloudpack/package-utilities';
|
|
2
2
|
import { slash } from '@ms-cloudpack/path-string-parsing';
|
|
3
3
|
import { getPackageSettings } from '../packageSettings/getPackageSettings.js';
|
|
4
4
|
import { mergePackageSettings } from '../packageSettings/mergePackageSettings.js';
|
|
@@ -16,64 +16,63 @@ export function createPackageSettingsTransform(config) {
|
|
|
16
16
|
includeBuiltIn: true,
|
|
17
17
|
generatedPackageSettings: config.generated.packageSettings,
|
|
18
18
|
});
|
|
19
|
-
//
|
|
20
|
-
// This limits what we end up hashing when we hash the definition.
|
|
19
|
+
// Pull out package settings properties which will be fully processed by this transform.
|
|
21
20
|
const { exports, includedDependencies, excludedDependencies, ...settings } = mergePackageSettings([
|
|
22
21
|
// NOTE: If we add any generated settings in the future where the user settings need to
|
|
23
22
|
// take precedence (such as `bundler` maybe), this merging will need to be adjusted.
|
|
24
23
|
userPackageSettings || {},
|
|
25
24
|
generatedPackageSettings || {},
|
|
26
25
|
]);
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
};
|
|
33
|
-
if (definition.peerDependencies && !userPackageSettings?.excludedDependencies?.includes('$peerDependencies')) {
|
|
34
|
-
newDefinition.peerDependencies = !excludedDependencies?.length
|
|
35
|
-
? definition.peerDependencies
|
|
36
|
-
: Object.fromEntries(Object.entries(definition.peerDependencies).filter(([dep]) => !excludedDependencies.includes(dep)));
|
|
37
|
-
}
|
|
38
|
-
newDefinition.cloudpack = {
|
|
26
|
+
// Calculate exports based on settings
|
|
27
|
+
definition.exports = await computeExports({ packagePath, definition, userPackageSettings, generatedPackageSettings }, { packages, config });
|
|
28
|
+
updateDependencies({ definition, includedDependencies, excludedDependencies });
|
|
29
|
+
// Store the unprocessed settings plus the mode
|
|
30
|
+
definition.cloudpack = {
|
|
39
31
|
...definition.cloudpack, // copy anything set by other transforms
|
|
40
32
|
mode: config.mode,
|
|
41
33
|
...settings,
|
|
42
34
|
};
|
|
43
|
-
return
|
|
35
|
+
return definition;
|
|
44
36
|
};
|
|
45
37
|
}
|
|
46
|
-
function
|
|
38
|
+
function updateDependencies(options) {
|
|
47
39
|
const { definition } = options;
|
|
48
|
-
|
|
49
|
-
const
|
|
40
|
+
// Get merged dependencies in the proper order of precedence, for determining included dep versions.
|
|
41
|
+
const allDependencies = getDependencies(definition, { includeAll: true });
|
|
42
|
+
const prodAndPeerDependencies = getDependencies(definition);
|
|
50
43
|
// If we have included dependencies, add them.
|
|
51
44
|
const includedDependencies = [...(options.includedDependencies || [])];
|
|
52
45
|
// Expand the $devDependencies placeholder to the actual dev dependencies.
|
|
53
|
-
const
|
|
54
|
-
if (
|
|
55
|
-
includedDependencies.splice(
|
|
46
|
+
const includeDevDependenciesIndex = includedDependencies.indexOf('$devDependencies');
|
|
47
|
+
if (includeDevDependenciesIndex !== -1 && definition.devDependencies) {
|
|
48
|
+
includedDependencies.splice(includeDevDependenciesIndex, 1);
|
|
49
|
+
definition.dependencies = {
|
|
50
|
+
...definition.dependencies,
|
|
51
|
+
...definition.devDependencies,
|
|
52
|
+
};
|
|
56
53
|
}
|
|
57
|
-
//
|
|
54
|
+
// For each included dependency, if it's not already listed, add it using the version from
|
|
55
|
+
// other dep types, or use a wildcard.
|
|
58
56
|
for (const dep of includedDependencies) {
|
|
59
|
-
|
|
60
|
-
definition.dependencies
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
definition.optionalDependencies?.[dep] ||
|
|
64
|
-
'*';
|
|
57
|
+
if (!prodAndPeerDependencies[dep]) {
|
|
58
|
+
definition.dependencies ??= {};
|
|
59
|
+
definition.dependencies[dep] = allDependencies[dep] || '*';
|
|
60
|
+
}
|
|
65
61
|
}
|
|
66
62
|
const excludedDependencies = [...(options.excludedDependencies || [])];
|
|
67
|
-
//
|
|
68
|
-
const
|
|
69
|
-
if (
|
|
70
|
-
|
|
71
|
-
|
|
63
|
+
// If the $peerDependencies placeholder is present, remove all peer dependencies.
|
|
64
|
+
const excludePeerDependenciesIndex = excludedDependencies.indexOf('$peerDependencies');
|
|
65
|
+
if (excludePeerDependenciesIndex !== -1) {
|
|
66
|
+
excludedDependencies.splice(excludePeerDependenciesIndex, 1);
|
|
67
|
+
delete definition.peerDependencies;
|
|
68
|
+
delete definition.peerDependenciesMeta;
|
|
72
69
|
}
|
|
70
|
+
// Delete the excluded deps from dependencies and peerDependencies.
|
|
71
|
+
// We ignore dev and optional deps by default, so it's probably not necessary to delete from there.
|
|
73
72
|
for (const dep of excludedDependencies) {
|
|
74
|
-
delete
|
|
73
|
+
delete definition.dependencies?.[dep];
|
|
74
|
+
delete definition.peerDependencies?.[dep];
|
|
75
75
|
}
|
|
76
|
-
return newDependencies;
|
|
77
76
|
}
|
|
78
77
|
async function computeExports(options, context) {
|
|
79
78
|
const { packagePath, definition, userPackageSettings, generatedPackageSettings } = options;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPackageSettingsTransform.js","sourceRoot":"","sources":["../../src/packageDefinitions/createPackageSettingsTransform.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n CloudpackConfig,\n PackageDefinitionTransform,\n PackageDefinitionsCache,\n PackageJson,\n PackageJsonDependencies,\n PackageJsonExports,\n GeneratedExports,\n RenderedRoute,\n} from '@ms-cloudpack/common-types';\nimport { addExportsMapEntry, getExportsMap } from '@ms-cloudpack/package-utilities';\nimport { slash } from '@ms-cloudpack/path-string-parsing';\nimport { getPackageSettings, type GetPackageSettingsResult } from '../packageSettings/getPackageSettings.js';\nimport { mergePackageSettings } from '../packageSettings/mergePackageSettings.js';\n\n/**\n * Creates a transform to be registered with a PackageDefinitions registry for updating package.json\n * based on package settings from the config.\n */\nexport function createPackageSettingsTransform(config: CloudpackConfig): PackageDefinitionTransform {\n return async ({ definition, packagePath, packages }) => {\n const { name, version } = definition;\n\n const { userPackageSettings, generatedPackageSettings } = getPackageSettings({\n name,\n version,\n userPackageSettings: config.packageSettings,\n includeBuiltIn: true,\n generatedPackageSettings: config.generated.packageSettings,\n });\n\n // Exclude all things not important in preserving within the package.json.\n // This limits what we end up hashing when we hash the definition.\n const { exports, includedDependencies, excludedDependencies, ...settings } = mergePackageSettings([\n // NOTE: If we add any generated settings in the future where the user settings need to\n // take precedence (such as `bundler` maybe), this merging will need to be adjusted.\n userPackageSettings || {},\n generatedPackageSettings || {},\n ]);\n\n const newDefinition: PackageJson = {\n name,\n version,\n exports: await computeExports(\n { packagePath, definition, userPackageSettings, generatedPackageSettings },\n { packages, config },\n ),\n dependencies: computeDependencies({ definition, includedDependencies, excludedDependencies }),\n };\n\n if (definition.peerDependencies && !userPackageSettings?.excludedDependencies?.includes('$peerDependencies')) {\n newDefinition.peerDependencies = !excludedDependencies?.length\n ? definition.peerDependencies\n : Object.fromEntries(\n Object.entries(definition.peerDependencies).filter(([dep]) => !excludedDependencies.includes(dep)),\n );\n }\n\n newDefinition.cloudpack = {\n ...definition.cloudpack, // copy anything set by other transforms\n mode: config.mode,\n ...settings,\n };\n\n return newDefinition;\n };\n}\n\nfunction computeDependencies(options: {\n definition: PackageJson;\n /** Merged `includedDependencies` from the user, built-in, and generated configs */\n includedDependencies: string[] | undefined;\n /** Merged `excludedDependencies` from the user, built-in, and generated configs */\n excludedDependencies: string[] | undefined;\n}): PackageJsonDependencies {\n const { definition } = options;\n const { dependencies = {} } = definition;\n const newDependencies = { ...dependencies };\n\n // If we have included dependencies, add them.\n const includedDependencies = [...(options.includedDependencies || [])];\n\n // Expand the $devDependencies placeholder to the actual dev dependencies.\n const includeDevDependencies = includedDependencies.indexOf('$devDependencies');\n\n if (includeDevDependencies !== -1) {\n includedDependencies.splice(includeDevDependencies, 1, ...Object.keys(definition.devDependencies || {}));\n }\n\n // Add the dependency from other sources, or use a wildcard.\n for (const dep of includedDependencies) {\n newDependencies[dep] =\n definition.dependencies?.[dep] ||\n definition.devDependencies?.[dep] ||\n definition.peerDependencies?.[dep] ||\n definition.optionalDependencies?.[dep] ||\n '*';\n }\n\n const excludedDependencies = [...(options.excludedDependencies || [])];\n\n // Expand the $peerDependencies placeholder to the actual peer dependencies.\n const excludePeerDependencies = excludedDependencies.indexOf('$peerDependencies');\n\n if (excludePeerDependencies !== -1) {\n // Add peer dependencies to the list of excluded dependencies.\n excludedDependencies.splice(excludePeerDependencies, 1, ...Object.keys(definition.peerDependencies || {}));\n }\n\n for (const dep of excludedDependencies) {\n delete newDependencies[dep];\n }\n\n return newDependencies;\n}\n\nasync function computeExports(\n options: GetPackageSettingsResult & {\n packagePath: string;\n definition: PackageJson;\n },\n context: { packages: PackageDefinitionsCache; config: CloudpackConfig },\n): Promise<PackageJsonExports | undefined> {\n const { packagePath, definition, userPackageSettings, generatedPackageSettings } = options;\n const { appPath, routes, features } = context.config;\n const resolveWebExtensions =\n userPackageSettings?.bundlerCapabilities?.['resolve-web-extensions'] ??\n // eslint-disable-next-line etc/no-deprecated\n Boolean(features?.resolveWebExtensions);\n\n // If this is the app package and it has routes with entries, use those to create the exports map.\n if (slash(appPath) === slash(packagePath) && routes?.length) {\n const routeExports: GeneratedExports = {};\n\n for (const route of routes) {\n const { entry, serverEntry } = route as RenderedRoute;\n if (!entry?.length) {\n continue;\n }\n\n for (const entryItem of entry) {\n await addExportsMapEntry(\n {\n exports: routeExports,\n packagePath,\n environmentCondition: 'browser',\n filePath: entryItem.sourcePath,\n importPath: entryItem.importPath,\n resolveWebExtensions,\n },\n context,\n );\n }\n\n if (serverEntry) {\n await addExportsMapEntry(\n {\n exports: routeExports,\n packagePath,\n environmentCondition: 'node',\n filePath: serverEntry.sourcePath,\n importPath: serverEntry.importPath,\n resolveWebExtensions,\n },\n context,\n );\n }\n }\n\n if (Object.keys(routeExports).length) {\n // Currently route exports take precedence over all other exports for the app package.\n return routeExports;\n }\n }\n\n // TODO: an array of export objects is not really valid per the spec and most implementations\n const exports: PackageJsonExports[] = [];\n\n // Push exports from the package.\n if (userPackageSettings?.exports !== undefined) {\n // Prefer user settings over the original definition, including respecting null (remove exports).\n if (userPackageSettings.exports !== null) {\n exports.push(userPackageSettings.exports);\n }\n } else if (definition.exports !== undefined) {\n // Or take the original exports if specified (again respecting null)\n if (definition.exports !== null) {\n exports.push(definition.exports);\n }\n } else {\n // Otherwise, generate an exports map from any other given entry points.\n exports.push(await getExportsMap({ packagePath, disableTransforms: true, resolveWebExtensions }, context));\n }\n\n // Push generated exports.\n if (generatedPackageSettings?.exports) {\n exports.push(generatedPackageSettings.exports);\n }\n\n if (exports.length === 0) {\n // If nothing was pushed to the array, this means the exports from either user package settings\n // or the original definition must have been null (and we have no route or generated exports),\n // so respect that.\n return null;\n }\n\n if (exports.length === 1) {\n return exports[0];\n }\n\n return exports;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"createPackageSettingsTransform.js","sourceRoot":"","sources":["../../src/packageDefinitions/createPackageSettingsTransform.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n CloudpackConfig,\n PackageDefinitionTransform,\n PackageDefinitionsCache,\n PackageJson,\n PackageJsonExports,\n GeneratedExports,\n RenderedRoute,\n} from '@ms-cloudpack/common-types';\nimport { addExportsMapEntry, getDependencies, getExportsMap } from '@ms-cloudpack/package-utilities';\nimport { slash } from '@ms-cloudpack/path-string-parsing';\nimport { getPackageSettings, type GetPackageSettingsResult } from '../packageSettings/getPackageSettings.js';\nimport { mergePackageSettings } from '../packageSettings/mergePackageSettings.js';\n\n/**\n * Creates a transform to be registered with a PackageDefinitions registry for updating package.json\n * based on package settings from the config.\n */\nexport function createPackageSettingsTransform(config: CloudpackConfig): PackageDefinitionTransform {\n return async ({ definition, packagePath, packages }) => {\n const { name, version } = definition;\n\n const { userPackageSettings, generatedPackageSettings } = getPackageSettings({\n name,\n version,\n userPackageSettings: config.packageSettings,\n includeBuiltIn: true,\n generatedPackageSettings: config.generated.packageSettings,\n });\n\n // Pull out package settings properties which will be fully processed by this transform.\n const { exports, includedDependencies, excludedDependencies, ...settings } = mergePackageSettings([\n // NOTE: If we add any generated settings in the future where the user settings need to\n // take precedence (such as `bundler` maybe), this merging will need to be adjusted.\n userPackageSettings || {},\n generatedPackageSettings || {},\n ]);\n\n // Calculate exports based on settings\n definition.exports = await computeExports(\n { packagePath, definition, userPackageSettings, generatedPackageSettings },\n { packages, config },\n );\n\n updateDependencies({ definition, includedDependencies, excludedDependencies });\n\n // Store the unprocessed settings plus the mode\n definition.cloudpack = {\n ...definition.cloudpack, // copy anything set by other transforms\n mode: config.mode,\n ...settings,\n };\n\n return definition;\n };\n}\n\nfunction updateDependencies(options: {\n definition: PackageJson;\n /** Merged `includedDependencies` from the user, built-in, and generated configs */\n includedDependencies: string[] | undefined;\n /** Merged `excludedDependencies` from the user, built-in, and generated configs */\n excludedDependencies: string[] | undefined;\n}): void {\n const { definition } = options;\n\n // Get merged dependencies in the proper order of precedence, for determining included dep versions.\n const allDependencies = getDependencies(definition, { includeAll: true });\n\n const prodAndPeerDependencies = getDependencies(definition);\n\n // If we have included dependencies, add them.\n const includedDependencies = [...(options.includedDependencies || [])];\n\n // Expand the $devDependencies placeholder to the actual dev dependencies.\n const includeDevDependenciesIndex = includedDependencies.indexOf('$devDependencies');\n if (includeDevDependenciesIndex !== -1 && definition.devDependencies) {\n includedDependencies.splice(includeDevDependenciesIndex, 1);\n definition.dependencies = {\n ...definition.dependencies,\n ...definition.devDependencies,\n };\n }\n\n // For each included dependency, if it's not already listed, add it using the version from\n // other dep types, or use a wildcard.\n for (const dep of includedDependencies) {\n if (!prodAndPeerDependencies[dep]) {\n definition.dependencies ??= {};\n definition.dependencies[dep] = allDependencies[dep] || '*';\n }\n }\n\n const excludedDependencies = [...(options.excludedDependencies || [])];\n\n // If the $peerDependencies placeholder is present, remove all peer dependencies.\n const excludePeerDependenciesIndex = excludedDependencies.indexOf('$peerDependencies');\n if (excludePeerDependenciesIndex !== -1) {\n excludedDependencies.splice(excludePeerDependenciesIndex, 1);\n delete definition.peerDependencies;\n delete definition.peerDependenciesMeta;\n }\n\n // Delete the excluded deps from dependencies and peerDependencies.\n // We ignore dev and optional deps by default, so it's probably not necessary to delete from there.\n for (const dep of excludedDependencies) {\n delete definition.dependencies?.[dep];\n delete definition.peerDependencies?.[dep];\n }\n}\n\nasync function computeExports(\n options: GetPackageSettingsResult & {\n packagePath: string;\n definition: PackageJson;\n },\n context: { packages: PackageDefinitionsCache; config: CloudpackConfig },\n): Promise<PackageJsonExports | undefined> {\n const { packagePath, definition, userPackageSettings, generatedPackageSettings } = options;\n const { appPath, routes, features } = context.config;\n const resolveWebExtensions =\n userPackageSettings?.bundlerCapabilities?.['resolve-web-extensions'] ??\n // eslint-disable-next-line etc/no-deprecated\n Boolean(features?.resolveWebExtensions);\n\n // If this is the app package and it has routes with entries, use those to create the exports map.\n if (slash(appPath) === slash(packagePath) && routes?.length) {\n const routeExports: GeneratedExports = {};\n\n for (const route of routes) {\n const { entry, serverEntry } = route as RenderedRoute;\n if (!entry?.length) {\n continue;\n }\n\n for (const entryItem of entry) {\n await addExportsMapEntry(\n {\n exports: routeExports,\n packagePath,\n environmentCondition: 'browser',\n filePath: entryItem.sourcePath,\n importPath: entryItem.importPath,\n resolveWebExtensions,\n },\n context,\n );\n }\n\n if (serverEntry) {\n await addExportsMapEntry(\n {\n exports: routeExports,\n packagePath,\n environmentCondition: 'node',\n filePath: serverEntry.sourcePath,\n importPath: serverEntry.importPath,\n resolveWebExtensions,\n },\n context,\n );\n }\n }\n\n if (Object.keys(routeExports).length) {\n // Currently route exports take precedence over all other exports for the app package.\n return routeExports;\n }\n }\n\n // TODO: an array of export objects is not really valid per the spec and most implementations\n const exports: PackageJsonExports[] = [];\n\n // Push exports from the package.\n if (userPackageSettings?.exports !== undefined) {\n // Prefer user settings over the original definition, including respecting null (remove exports).\n if (userPackageSettings.exports !== null) {\n exports.push(userPackageSettings.exports);\n }\n } else if (definition.exports !== undefined) {\n // Or take the original exports if specified (again respecting null)\n if (definition.exports !== null) {\n exports.push(definition.exports);\n }\n } else {\n // Otherwise, generate an exports map from any other given entry points.\n exports.push(await getExportsMap({ packagePath, disableTransforms: true, resolveWebExtensions }, context));\n }\n\n // Push generated exports.\n if (generatedPackageSettings?.exports) {\n exports.push(generatedPackageSettings.exports);\n }\n\n if (exports.length === 0) {\n // If nothing was pushed to the array, this means the exports from either user package settings\n // or the original definition must have been null (and we have no route or generated exports),\n // so respect that.\n return null;\n }\n\n if (exports.length === 1) {\n return exports[0];\n }\n\n return exports;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ms-cloudpack/config",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.34.0",
|
|
4
4
|
"description": "Configuration handling for cloudpack.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"@ms-cloudpack/common-types": "^0.24.16",
|
|
18
18
|
"@ms-cloudpack/environment": "^0.1.1",
|
|
19
19
|
"@ms-cloudpack/json-utilities": "^0.1.10",
|
|
20
|
-
"@ms-cloudpack/package-utilities": "^12.
|
|
20
|
+
"@ms-cloudpack/package-utilities": "^12.3.0",
|
|
21
21
|
"@ms-cloudpack/path-string-parsing": "^1.2.7",
|
|
22
22
|
"@ms-cloudpack/path-utilities": "^3.0.13",
|
|
23
23
|
"semver": "^7.6.0"
|