@ms-cloudpack/config 0.8.1 → 0.9.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.
@@ -1,5 +1,5 @@
1
1
  import type { PackageDefinitionTransform } from '@ms-cloudpack/bundler-types';
2
- import type { CloudpackConfig } from '@ms-cloudpack/config';
2
+ import type { CloudpackConfig } from './types/CloudpackConfig.js';
3
3
  /**
4
4
  * Creates a transform to be registered with a PackageDefinitions registry for applying overrides to from the config
5
5
  * to package.json definitions.
@@ -1 +1 @@
1
- {"version":3,"file":"createPackageOverrideTransform.d.ts","sourceRoot":"","sources":["../src/createPackageOverrideTransform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAe,MAAM,6BAA6B,CAAC;AAC3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,eAAe,GAAG,0BAA0B,CA4ClG"}
1
+ {"version":3,"file":"createPackageOverrideTransform.d.ts","sourceRoot":"","sources":["../src/createPackageOverrideTransform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAe,MAAM,6BAA6B,CAAC;AAC3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGlE;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,eAAe,GAAG,0BAA0B,CA2DlG"}
@@ -6,18 +6,28 @@ import { getPackageSettings } from './getPackageSettings.js';
6
6
  export function createPackageOverrideTransform(config) {
7
7
  return (packageDefinition) => {
8
8
  const { name = '', version = '' } = packageDefinition;
9
- const packageSettings = getPackageSettings({ name, version, config });
10
- if (!packageSettings) {
9
+ const { userPackageSettings, generatedPackageSettings } = getPackageSettings({ name, version, config });
10
+ if (!userPackageSettings && !generatedPackageSettings) {
11
11
  return undefined;
12
12
  }
13
13
  const result = { ...packageDefinition };
14
14
  // If we have a custom exports map for the package, apply it.
15
- if (packageSettings.exports) {
16
- result.exports = packageSettings.exports;
15
+ if (userPackageSettings?.exports) {
16
+ result.exports = userPackageSettings.exports;
17
+ }
18
+ // If we have generated overrides, apply them.
19
+ if (generatedPackageSettings?.exports) {
20
+ result.exports = result.exports
21
+ ? [result.exports, generatedPackageSettings.exports]
22
+ : generatedPackageSettings.exports;
17
23
  }
18
24
  // If we have included dependencies, add them.
19
- if (packageSettings.includedDependencies?.length) {
20
- for (const dep of packageSettings.includedDependencies) {
25
+ const includedDependencies = [
26
+ ...(userPackageSettings?.includedDependencies || []),
27
+ ...(generatedPackageSettings?.includedDependencies || []),
28
+ ];
29
+ if (includedDependencies.length) {
30
+ for (const dep of includedDependencies) {
21
31
  if (!result.dependencies?.[dep]) {
22
32
  // Initialize dependencies map if it doesn't exist.
23
33
  result.dependencies ??= {};
@@ -31,8 +41,12 @@ export function createPackageOverrideTransform(config) {
31
41
  }
32
42
  }
33
43
  // If we have excluded dependencies, remove them.
34
- if (packageSettings.excludedDependencies?.length) {
35
- result.dependencies = Object.fromEntries(Object.entries(result.dependencies || {}).filter(([dep]) => !packageSettings.excludedDependencies?.includes(dep)));
44
+ const excludedDependencies = [
45
+ ...(userPackageSettings?.excludedDependencies || []),
46
+ ...(generatedPackageSettings?.excludedDependencies || []),
47
+ ];
48
+ if (excludedDependencies?.length) {
49
+ result.dependencies = Object.fromEntries(Object.entries(result.dependencies || {}).filter(([dep]) => !excludedDependencies?.includes(dep)));
36
50
  }
37
51
  return result;
38
52
  };
@@ -1 +1 @@
1
- {"version":3,"file":"createPackageOverrideTransform.js","sourceRoot":"","sources":["../src/createPackageOverrideTransform.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;GAGG;AACH,MAAM,UAAU,8BAA8B,CAAC,MAAuB;IACpE,OAAO,CAAC,iBAA8B,EAAE,EAAE;QACxC,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,iBAAiB,CAAC;QACtD,MAAM,eAAe,GAAG,kBAAkB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAEtE,IAAI,CAAC,eAAe,EAAE;YACpB,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,MAAM,GAAG,EAAE,GAAG,iBAAiB,EAAE,CAAC;QAExC,6DAA6D;QAC7D,IAAI,eAAe,CAAC,OAAO,EAAE;YAC3B,MAAM,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC;SAC1C;QAED,8CAA8C;QAC9C,IAAI,eAAe,CAAC,oBAAoB,EAAE,MAAM,EAAE;YAChD,KAAK,MAAM,GAAG,IAAI,eAAe,CAAC,oBAAoB,EAAE;gBACtD,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,EAAE;oBAC/B,mDAAmD;oBACnD,MAAM,CAAC,YAAY,KAAK,EAAE,CAAC;oBAE3B,4DAA4D;oBAC5D,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC;wBACtB,MAAM,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC;4BAC7B,MAAM,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC;4BAC9B,MAAM,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC;4BAClC,GAAG,CAAC;iBACP;aACF;SACF;QAED,iDAAiD;QACjD,IAAI,eAAe,CAAC,oBAAoB,EAAE,MAAM,EAAE;YAChD,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CACtC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CAC9C,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,oBAAoB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAChE,CACF,CAAC;SACH;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import type { PackageDefinitionTransform, PackageJson } from '@ms-cloudpack/bundler-types';\nimport type { CloudpackConfig } from '@ms-cloudpack/config';\nimport { getPackageSettings } from './getPackageSettings.js';\n\n/**\n * Creates a transform to be registered with a PackageDefinitions registry for applying overrides to from the config\n * to package.json definitions.\n */\nexport function createPackageOverrideTransform(config: CloudpackConfig): PackageDefinitionTransform {\n return (packageDefinition: PackageJson) => {\n const { name = '', version = '' } = packageDefinition;\n const packageSettings = getPackageSettings({ name, version, config });\n\n if (!packageSettings) {\n return undefined;\n }\n\n const result = { ...packageDefinition };\n\n // If we have a custom exports map for the package, apply it.\n if (packageSettings.exports) {\n result.exports = packageSettings.exports;\n }\n\n // If we have included dependencies, add them.\n if (packageSettings.includedDependencies?.length) {\n for (const dep of packageSettings.includedDependencies) {\n if (!result.dependencies?.[dep]) {\n // Initialize dependencies map if it doesn't exist.\n result.dependencies ??= {};\n\n // Add the dependency from other sources, or use a wildcard.\n result.dependencies[dep] =\n result.devDependencies?.[dep] ||\n result.peerDependencies?.[dep] ||\n result.optionalDependencies?.[dep] ||\n '*';\n }\n }\n }\n\n // If we have excluded dependencies, remove them.\n if (packageSettings.excludedDependencies?.length) {\n result.dependencies = Object.fromEntries(\n Object.entries(result.dependencies || {}).filter(\n ([dep]) => !packageSettings.excludedDependencies?.includes(dep),\n ),\n );\n }\n\n return result;\n };\n}\n"]}
1
+ {"version":3,"file":"createPackageOverrideTransform.js","sourceRoot":"","sources":["../src/createPackageOverrideTransform.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;GAGG;AACH,MAAM,UAAU,8BAA8B,CAAC,MAAuB;IACpE,OAAO,CAAC,iBAA8B,EAAE,EAAE;QACxC,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,iBAAiB,CAAC;QACtD,MAAM,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,GAAG,kBAAkB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAExG,IAAI,CAAC,mBAAmB,IAAI,CAAC,wBAAwB,EAAE;YACrD,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,MAAM,GAAG,EAAE,GAAG,iBAAiB,EAAE,CAAC;QAExC,6DAA6D;QAC7D,IAAI,mBAAmB,EAAE,OAAO,EAAE;YAChC,MAAM,CAAC,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC;SAC9C;QAED,8CAA8C;QAC9C,IAAI,wBAAwB,EAAE,OAAO,EAAE;YACrC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;gBAC7B,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,wBAAwB,CAAC,OAAO,CAAC;gBACpD,CAAC,CAAC,wBAAwB,CAAC,OAAO,CAAC;SACtC;QAED,8CAA8C;QAC9C,MAAM,oBAAoB,GAAG;YAC3B,GAAG,CAAC,mBAAmB,EAAE,oBAAoB,IAAI,EAAE,CAAC;YACpD,GAAG,CAAC,wBAAwB,EAAE,oBAAoB,IAAI,EAAE,CAAC;SAC1D,CAAC;QAEF,IAAI,oBAAoB,CAAC,MAAM,EAAE;YAC/B,KAAK,MAAM,GAAG,IAAI,oBAAoB,EAAE;gBACtC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,EAAE;oBAC/B,mDAAmD;oBACnD,MAAM,CAAC,YAAY,KAAK,EAAE,CAAC;oBAE3B,4DAA4D;oBAC5D,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC;wBACtB,MAAM,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC;4BAC7B,MAAM,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC;4BAC9B,MAAM,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC;4BAClC,GAAG,CAAC;iBACP;aACF;SACF;QAED,iDAAiD;QACjD,MAAM,oBAAoB,GAAG;YAC3B,GAAG,CAAC,mBAAmB,EAAE,oBAAoB,IAAI,EAAE,CAAC;YACpD,GAAG,CAAC,wBAAwB,EAAE,oBAAoB,IAAI,EAAE,CAAC;SAC1D,CAAC;QAEF,IAAI,oBAAoB,EAAE,MAAM,EAAE;YAChC,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CACtC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,oBAAoB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAClG,CAAC;SACH;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import type { PackageDefinitionTransform, PackageJson } from '@ms-cloudpack/bundler-types';\nimport type { CloudpackConfig } from './types/CloudpackConfig.js';\nimport { getPackageSettings } from './getPackageSettings.js';\n\n/**\n * Creates a transform to be registered with a PackageDefinitions registry for applying overrides to from the config\n * to package.json definitions.\n */\nexport function createPackageOverrideTransform(config: CloudpackConfig): PackageDefinitionTransform {\n return (packageDefinition: PackageJson) => {\n const { name = '', version = '' } = packageDefinition;\n const { userPackageSettings, generatedPackageSettings } = getPackageSettings({ name, version, config });\n\n if (!userPackageSettings && !generatedPackageSettings) {\n return undefined;\n }\n\n const result = { ...packageDefinition };\n\n // If we have a custom exports map for the package, apply it.\n if (userPackageSettings?.exports) {\n result.exports = userPackageSettings.exports;\n }\n\n // If we have generated overrides, apply them.\n if (generatedPackageSettings?.exports) {\n result.exports = result.exports\n ? [result.exports, generatedPackageSettings.exports]\n : generatedPackageSettings.exports;\n }\n\n // If we have included dependencies, add them.\n const includedDependencies = [\n ...(userPackageSettings?.includedDependencies || []),\n ...(generatedPackageSettings?.includedDependencies || []),\n ];\n\n if (includedDependencies.length) {\n for (const dep of includedDependencies) {\n if (!result.dependencies?.[dep]) {\n // Initialize dependencies map if it doesn't exist.\n result.dependencies ??= {};\n\n // Add the dependency from other sources, or use a wildcard.\n result.dependencies[dep] =\n result.devDependencies?.[dep] ||\n result.peerDependencies?.[dep] ||\n result.optionalDependencies?.[dep] ||\n '*';\n }\n }\n }\n\n // If we have excluded dependencies, remove them.\n const excludedDependencies = [\n ...(userPackageSettings?.excludedDependencies || []),\n ...(generatedPackageSettings?.excludedDependencies || []),\n ];\n\n if (excludedDependencies?.length) {\n result.dependencies = Object.fromEntries(\n Object.entries(result.dependencies || {}).filter(([dep]) => !excludedDependencies?.includes(dep)),\n );\n }\n\n return result;\n };\n}\n"]}
@@ -3,9 +3,17 @@ import type { PackageSettings } from './types/PackageSettings.js';
3
3
  /**
4
4
  * Gets the single set of package settings for a given package using the given config.
5
5
  */
6
- export declare function getPackageSettings({ name, version, config, }: {
6
+ export declare function getPackageSettings({ name, version, config, firstMatch, }: {
7
7
  name: string;
8
8
  version: string;
9
9
  config: CloudpackConfig;
10
- }): PackageSettings | undefined;
10
+ /**
11
+ * If true, only the first matching package settings will be returned, rather than the merge of all viable settings.
12
+ * This is useful in the `init` case, where we want to attach new settings to the first matching entry.
13
+ */
14
+ firstMatch?: boolean;
15
+ }): {
16
+ userPackageSettings: PackageSettings | undefined;
17
+ generatedPackageSettings: PackageSettings | undefined;
18
+ };
11
19
  //# sourceMappingURL=getPackageSettings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getPackageSettings.d.ts","sourceRoot":"","sources":["../src/getPackageSettings.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,MAAM,GACP,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,CAAC;CACzB,GAAG,eAAe,GAAG,SAAS,CAoB9B"}
1
+ {"version":3,"file":"getPackageSettings.d.ts","sourceRoot":"","sources":["../src/getPackageSettings.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,MAAM,EACN,UAAU,GACX,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,CAAC;IAExB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG;IACF,mBAAmB,EAAE,eAAe,GAAG,SAAS,CAAC;IACjD,wBAAwB,EAAE,eAAe,GAAG,SAAS,CAAC;CACvD,CAgBA"}
@@ -3,20 +3,29 @@ import { mergePackageSettings } from './mergePackageSettings.js';
3
3
  /**
4
4
  * Gets the single set of package settings for a given package using the given config.
5
5
  */
6
- export function getPackageSettings({ name, version, config, }) {
7
- const { packageSettings = [] } = config;
8
- if (!packageSettings.length) {
9
- return undefined;
10
- }
11
- const matchedSettings = packageSettings.filter(({ match }) => {
12
- if (match?.name === name) {
13
- return !match.version || satisfies(version, match.version);
14
- }
15
- return false;
16
- });
17
- if (!matchedSettings.length) {
18
- return undefined;
19
- }
20
- return mergePackageSettings(matchedSettings);
6
+ export function getPackageSettings({ name, version, config, firstMatch, }) {
7
+ const userPackageSettings = config.packageSettings?.filter(filterPackageSettings(name, version));
8
+ const generatedPackageSettings = config.generated?.packageSettings?.filter(filterPackageSettings(name, version));
9
+ return {
10
+ userPackageSettings: userPackageSettings?.length
11
+ ? firstMatch
12
+ ? userPackageSettings?.[0]
13
+ : mergePackageSettings(userPackageSettings)
14
+ : undefined,
15
+ generatedPackageSettings: generatedPackageSettings?.length
16
+ ? firstMatch
17
+ ? generatedPackageSettings?.[0]
18
+ : mergePackageSettings(generatedPackageSettings)
19
+ : undefined,
20
+ };
21
21
  }
22
+ /**
23
+ * Helper for filtering out package settings applicable to a given package name and version.
24
+ */
25
+ const filterPackageSettings = (name, version) => ({ match }) => {
26
+ if (match?.name === name) {
27
+ return !match.version || satisfies(version, match.version);
28
+ }
29
+ return false;
30
+ };
22
31
  //# sourceMappingURL=getPackageSettings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getPackageSettings.js","sourceRoot":"","sources":["../src/getPackageSettings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAIjE;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,MAAM,GAKP;IACC,MAAM,EAAE,eAAe,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;IAExC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;QAC3B,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QAC3D,IAAI,KAAK,EAAE,IAAI,KAAK,IAAI,EAAE;YACxB,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;SAC5D;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;QAC3B,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,oBAAoB,CAAC,eAAe,CAAC,CAAC;AAC/C,CAAC","sourcesContent":["import { satisfies } from 'semver';\nimport { mergePackageSettings } from './mergePackageSettings.js';\nimport type { CloudpackConfig } from './types/CloudpackConfig.js';\nimport type { PackageSettings } from './types/PackageSettings.js';\n\n/**\n * Gets the single set of package settings for a given package using the given config.\n */\nexport function getPackageSettings({\n name,\n version,\n config,\n}: {\n name: string;\n version: string;\n config: CloudpackConfig;\n}): PackageSettings | undefined {\n const { packageSettings = [] } = config;\n\n if (!packageSettings.length) {\n return undefined;\n }\n\n const matchedSettings = packageSettings.filter(({ match }) => {\n if (match?.name === name) {\n return !match.version || satisfies(version, match.version);\n }\n\n return false;\n });\n\n if (!matchedSettings.length) {\n return undefined;\n }\n\n return mergePackageSettings(matchedSettings);\n}\n"]}
1
+ {"version":3,"file":"getPackageSettings.js","sourceRoot":"","sources":["../src/getPackageSettings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAIjE;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,MAAM,EACN,UAAU,GAWX;IAIC,MAAM,mBAAmB,GAAG,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACjG,MAAM,wBAAwB,GAAG,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAEjH,OAAO;QACL,mBAAmB,EAAE,mBAAmB,EAAE,MAAM;YAC9C,CAAC,CAAC,UAAU;gBACV,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;gBAC1B,CAAC,CAAC,oBAAoB,CAAC,mBAAmB,CAAC;YAC7C,CAAC,CAAC,SAAS;QACb,wBAAwB,EAAE,wBAAwB,EAAE,MAAM;YACxD,CAAC,CAAC,UAAU;gBACV,CAAC,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;gBAC/B,CAAC,CAAC,oBAAoB,CAAC,wBAAwB,CAAC;YAClD,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,qBAAqB,GACzB,CAAC,IAAY,EAAE,OAAe,EAAE,EAAE,CAClC,CAAC,EAAE,KAAK,EAAmB,EAAE,EAAE;IAC7B,IAAI,KAAK,EAAE,IAAI,KAAK,IAAI,EAAE;QACxB,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;KAC5D;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["import { satisfies } from 'semver';\nimport { mergePackageSettings } from './mergePackageSettings.js';\nimport type { CloudpackConfig } from './types/CloudpackConfig.js';\nimport type { PackageSettings } from './types/PackageSettings.js';\n\n/**\n * Gets the single set of package settings for a given package using the given config.\n */\nexport function getPackageSettings({\n name,\n version,\n config,\n firstMatch,\n}: {\n name: string;\n version: string;\n config: CloudpackConfig;\n\n /**\n * If true, only the first matching package settings will be returned, rather than the merge of all viable settings.\n * This is useful in the `init` case, where we want to attach new settings to the first matching entry.\n */\n firstMatch?: boolean;\n}): {\n userPackageSettings: PackageSettings | undefined;\n generatedPackageSettings: PackageSettings | undefined;\n} {\n const userPackageSettings = config.packageSettings?.filter(filterPackageSettings(name, version));\n const generatedPackageSettings = config.generated?.packageSettings?.filter(filterPackageSettings(name, version));\n\n return {\n userPackageSettings: userPackageSettings?.length\n ? firstMatch\n ? userPackageSettings?.[0]\n : mergePackageSettings(userPackageSettings)\n : undefined,\n generatedPackageSettings: generatedPackageSettings?.length\n ? firstMatch\n ? generatedPackageSettings?.[0]\n : mergePackageSettings(generatedPackageSettings)\n : undefined,\n };\n}\n\n/**\n * Helper for filtering out package settings applicable to a given package name and version.\n */\nconst filterPackageSettings =\n (name: string, version: string) =>\n ({ match }: PackageSettings) => {\n if (match?.name === name) {\n return !match.version || satisfies(version, match.version);\n }\n\n return false;\n };\n"]}
@@ -1,6 +1,6 @@
1
- import type { CloudpackConfig } from './types/CloudpackConfig.js';
1
+ import type { GeneratedConfig } from './index.js';
2
2
  /**
3
3
  * An internal function for processing a config object after reading the json values.
4
4
  */
5
- export declare function processConfig(config: CloudpackConfig): void;
5
+ export declare function processConfig(config?: GeneratedConfig): void;
6
6
  //# sourceMappingURL=processConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"processConfig.d.ts","sourceRoot":"","sources":["../src/processConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,QAmBpD"}
1
+ {"version":3,"file":"processConfig.d.ts","sourceRoot":"","sources":["../src/processConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,YAAY,CAAC;AAEnE;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,eAAe,QAmBrD"}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export function processConfig(config) {
5
5
  // eslint-disable-next-line etc/no-deprecated
6
- const { packageOverrides } = config;
6
+ const packageOverrides = config?.packageOverrides;
7
7
  // Convert package overrides into settings to preserve the deprecated support.
8
8
  if (packageOverrides) {
9
9
  config.packageSettings = config.packageSettings || [];
@@ -1 +1 @@
1
- {"version":3,"file":"processConfig.js","sourceRoot":"","sources":["../src/processConfig.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAuB;IACnD,6CAA6C;IAC7C,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;IAEpC,8EAA8E;IAC9E,IAAI,gBAAgB,EAAE;QACpB,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;QAEtD,KAAK,MAAM,QAAQ,IAAI,gBAAgB,IAAI,EAAE,EAAE;YAC7C,MAAM,QAAQ,GAAoB;gBAChC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,kBAAkB,EAAE;gBACpE,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO;aACpC,CAAC;YACF,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACvC;QAED,6CAA6C;QAC7C,OAAO,MAAM,CAAC,gBAAgB,CAAC;KAChC;AACH,CAAC","sourcesContent":["import type { PackageSettings } from './index.js';\nimport type { CloudpackConfig } from './types/CloudpackConfig.js';\n\n/**\n * An internal function for processing a config object after reading the json values.\n */\nexport function processConfig(config: CloudpackConfig) {\n // eslint-disable-next-line etc/no-deprecated\n const { packageOverrides } = config;\n\n // Convert package overrides into settings to preserve the deprecated support.\n if (packageOverrides) {\n config.packageSettings = config.packageSettings || [];\n\n for (const override of packageOverrides || []) {\n const settings: PackageSettings = {\n match: { name: override.name, version: override.versionRequirement },\n exports: override.overrides.exports,\n };\n config.packageSettings.push(settings);\n }\n\n // eslint-disable-next-line etc/no-deprecated\n delete config.packageOverrides;\n }\n}\n"]}
1
+ {"version":3,"file":"processConfig.js","sourceRoot":"","sources":["../src/processConfig.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAwB;IACpD,6CAA6C;IAC7C,MAAM,gBAAgB,GAAG,MAAM,EAAE,gBAAgB,CAAC;IAElD,8EAA8E;IAC9E,IAAI,gBAAgB,EAAE;QACpB,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;QAEtD,KAAK,MAAM,QAAQ,IAAI,gBAAgB,IAAI,EAAE,EAAE;YAC7C,MAAM,QAAQ,GAAoB;gBAChC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,kBAAkB,EAAE;gBACpE,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO;aACpC,CAAC;YACF,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACvC;QAED,6CAA6C;QAC7C,OAAO,MAAM,CAAC,gBAAgB,CAAC;KAChC;AACH,CAAC","sourcesContent":["import type { GeneratedConfig, PackageSettings } from './index.js';\n\n/**\n * An internal function for processing a config object after reading the json values.\n */\nexport function processConfig(config?: GeneratedConfig) {\n // eslint-disable-next-line etc/no-deprecated\n const packageOverrides = config?.packageOverrides;\n\n // Convert package overrides into settings to preserve the deprecated support.\n if (packageOverrides) {\n config.packageSettings = config.packageSettings || [];\n\n for (const override of packageOverrides || []) {\n const settings: PackageSettings = {\n match: { name: override.name, version: override.versionRequirement },\n exports: override.overrides.exports,\n };\n config.packageSettings.push(settings);\n }\n\n // eslint-disable-next-line etc/no-deprecated\n delete config.packageOverrides;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"readConfig.d.ts","sourceRoot":"","sources":["../src/readConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAKlE;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAc1E"}
1
+ {"version":3,"file":"readConfig.d.ts","sourceRoot":"","sources":["../src/readConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAKlE;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAU1E"}
package/lib/readConfig.js CHANGED
@@ -7,13 +7,10 @@ import { readGeneratedConfig } from './readGeneratedConfig.js';
7
7
  export async function readConfig(appPath) {
8
8
  const [userConfig, generatedConfig] = await Promise.all([readUserConfig(appPath), readGeneratedConfig(appPath)]);
9
9
  const config = {
10
- ...generatedConfig,
10
+ generated: generatedConfig,
11
11
  ...userConfig,
12
12
  };
13
- if (userConfig.packageSettings || generatedConfig.packageSettings) {
14
- config.packageSettings = [...(userConfig.packageSettings || []), ...(generatedConfig.packageSettings || [])];
15
- }
16
- processConfig(config);
13
+ processConfig(config.generated);
17
14
  return config;
18
15
  }
19
16
  //# sourceMappingURL=readConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"readConfig.js","sourceRoot":"","sources":["../src/readConfig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAe;IAC9C,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACjH,MAAM,MAAM,GAAoB;QAC9B,GAAG,eAAe;QAClB,GAAG,UAAU;KACd,CAAC;IAEF,IAAI,UAAU,CAAC,eAAe,IAAI,eAAe,CAAC,eAAe,EAAE;QACjE,MAAM,CAAC,eAAe,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,CAAC;KAC9G;IAED,aAAa,CAAC,MAAM,CAAC,CAAC;IAEtB,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import type { CloudpackConfig } from './types/CloudpackConfig.js';\nimport { processConfig } from './processConfig.js';\nimport { readUserConfig } from './readUserConfig.js';\nimport { readGeneratedConfig } from './readGeneratedConfig.js';\n\n/**\n * Reads the config file asynchronously (and merges generated config into the result.)\n */\nexport async function readConfig(appPath: string): Promise<CloudpackConfig> {\n const [userConfig, generatedConfig] = await Promise.all([readUserConfig(appPath), readGeneratedConfig(appPath)]);\n const config: CloudpackConfig = {\n ...generatedConfig,\n ...userConfig,\n };\n\n if (userConfig.packageSettings || generatedConfig.packageSettings) {\n config.packageSettings = [...(userConfig.packageSettings || []), ...(generatedConfig.packageSettings || [])];\n }\n\n processConfig(config);\n\n return config;\n}\n"]}
1
+ {"version":3,"file":"readConfig.js","sourceRoot":"","sources":["../src/readConfig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAe;IAC9C,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACjH,MAAM,MAAM,GAAoB;QAC9B,SAAS,EAAE,eAAe;QAC1B,GAAG,UAAU;KACd,CAAC;IAEF,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import type { CloudpackConfig } from './types/CloudpackConfig.js';\nimport { processConfig } from './processConfig.js';\nimport { readUserConfig } from './readUserConfig.js';\nimport { readGeneratedConfig } from './readGeneratedConfig.js';\n\n/**\n * Reads the config file asynchronously (and merges generated config into the result.)\n */\nexport async function readConfig(appPath: string): Promise<CloudpackConfig> {\n const [userConfig, generatedConfig] = await Promise.all([readUserConfig(appPath), readGeneratedConfig(appPath)]);\n const config: CloudpackConfig = {\n generated: generatedConfig,\n ...userConfig,\n };\n\n processConfig(config.generated);\n\n return config;\n}\n"]}
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.36.1"
8
+ "packageVersion": "7.36.2"
9
9
  }
10
10
  ]
11
11
  }
@@ -3,5 +3,7 @@ import type { UserConfig } from './UserConfig.js';
3
3
  /**
4
4
  * The merged result of user-provided and generated configuration for Cloudpack.
5
5
  */
6
- export type CloudpackConfig = UserConfig & GeneratedConfig;
6
+ export type CloudpackConfig = UserConfig & {
7
+ generated: GeneratedConfig;
8
+ };
7
9
  //# sourceMappingURL=CloudpackConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CloudpackConfig.d.ts","sourceRoot":"","sources":["../../src/types/CloudpackConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;GAEG;AAEH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,eAAe,CAAC"}
1
+ {"version":3,"file":"CloudpackConfig.d.ts","sourceRoot":"","sources":["../../src/types/CloudpackConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;GAEG;AAEH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG;IACzC,SAAS,EAAE,eAAe,CAAC;CAC5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CloudpackConfig.js","sourceRoot":"","sources":["../../src/types/CloudpackConfig.ts"],"names":[],"mappings":"","sourcesContent":["import type { GeneratedConfig } from './GeneratedConfig.js';\nimport type { UserConfig } from './UserConfig.js';\n\n/**\n * The merged result of user-provided and generated configuration for Cloudpack.\n */\n\nexport type CloudpackConfig = UserConfig & GeneratedConfig;\n"]}
1
+ {"version":3,"file":"CloudpackConfig.js","sourceRoot":"","sources":["../../src/types/CloudpackConfig.ts"],"names":[],"mappings":"","sourcesContent":["import type { GeneratedConfig } from './GeneratedConfig.js';\nimport type { UserConfig } from './UserConfig.js';\n\n/**\n * The merged result of user-provided and generated configuration for Cloudpack.\n */\n\nexport type CloudpackConfig = UserConfig & {\n generated: GeneratedConfig;\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ms-cloudpack/config",
3
- "version": "0.8.1",
3
+ "version": "0.9.0",
4
4
  "description": "Configuration handling for cloudpack.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -16,7 +16,7 @@
16
16
  "@ms-cloudpack/bundler-types": "^0.16.0",
17
17
  "@ms-cloudpack/create-express-app": "^1.3.8",
18
18
  "@ms-cloudpack/json-utilities": "^0.0.7",
19
- "@ms-cloudpack/package-utilities": "^5.0.0"
19
+ "@ms-cloudpack/package-utilities": "^5.0.1"
20
20
  },
21
21
  "devDependencies": {
22
22
  "@ms-cloudpack/eslint-plugin-internal": "*",