@ms-cloudpack/config 0.31.4 → 0.31.6

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,8 +1,5 @@
1
1
  import type { PackageSettings } from '@ms-cloudpack/common-types';
2
- /**
3
- * Checks if the package is a match for the given package settings.
4
- */
5
- export declare function checkMatch(params: {
2
+ interface CheckMatchParams {
6
3
  /** The name of the package. */
7
4
  name: string;
8
5
  /** The version of the package. */
@@ -11,5 +8,10 @@ export declare function checkMatch(params: {
11
8
  match: PackageSettings['match'];
12
9
  /** If true, require an exact match for the name (don't process wildcards). */
13
10
  exactMatch?: boolean;
14
- }): boolean;
11
+ }
12
+ /**
13
+ * Checks if the package is a match for the given package settings.
14
+ */
15
+ export declare function checkMatch(params: CheckMatchParams): boolean;
16
+ export {};
15
17
  //# sourceMappingURL=checkMatch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkMatch.d.ts","sourceRoot":"","sources":["../src/checkMatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGlE;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE;IACjC,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAChC,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,OAAO,CAwBV"}
1
+ {"version":3,"file":"checkMatch.d.ts","sourceRoot":"","sources":["../src/checkMatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAoD,MAAM,4BAA4B,CAAC;AAGpH,UAAU,gBAAgB;IACxB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAChC,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAqB5D"}
package/lib/checkMatch.js CHANGED
@@ -5,17 +5,12 @@ import { satisfies } from 'semver';
5
5
  export function checkMatch(params) {
6
6
  const { name, version, match, exactMatch } = params;
7
7
  if (Array.isArray(match)) {
8
- return match.some((m) => checkMatch({ ...params, match: m }));
8
+ return checkMatchArray({ ...params, matches: match });
9
9
  }
10
- let matchName;
11
- let matchVersion;
12
- if (typeof match === 'string') {
13
- matchName = match;
14
- }
15
- else {
16
- matchName = match.name;
17
- // If any version is allowed, unset the version to skip the satisfies() check for efficiency.
18
- matchVersion = match.version === '*' ? undefined : match.version;
10
+ const matchObj = toMatchObject(match);
11
+ const { name: matchName, version: matchVersion } = matchObj;
12
+ if (matchName.startsWith('!')) {
13
+ return checkNegatedMatch({ ...params, match: matchObj });
19
14
  }
20
15
  // For exact or non-wildcard matches, check the full name and possibly the version.
21
16
  if (exactMatch || !matchName.endsWith('*')) {
@@ -24,4 +19,37 @@ export function checkMatch(params) {
24
19
  // Remove the trailing wildcard and check for a prefix match and possibly the version.
25
20
  return name.startsWith(matchName.slice(0, -1)) && (!matchVersion || satisfies(version, matchVersion));
26
21
  }
22
+ /**
23
+ * Check a match where `match.name` is negated. (This will handle removing the ! from the name.)
24
+ */
25
+ function checkNegatedMatch(params) {
26
+ return !checkMatch({ ...params, match: { ...params.match, name: params.match.name.slice(1) } });
27
+ }
28
+ function checkMatchArray(params) {
29
+ let hasMatch = false;
30
+ // Now that we support negations, we have to check every element.
31
+ for (const m of params.matches) {
32
+ const matchObj = toMatchObject(m);
33
+ if (matchObj.name.startsWith('!')) {
34
+ hasMatch &&= checkNegatedMatch({ ...params, match: matchObj });
35
+ }
36
+ else {
37
+ hasMatch ||= checkMatch({ ...params, match: m });
38
+ }
39
+ }
40
+ return hasMatch;
41
+ }
42
+ function toMatchObject(match) {
43
+ let name;
44
+ let version;
45
+ if (typeof match === 'string') {
46
+ name = match;
47
+ }
48
+ else {
49
+ name = match.name;
50
+ // If any version is allowed, unset the version to skip the satisfies() check for efficiency.
51
+ version = match.version === '*' ? undefined : match.version;
52
+ }
53
+ return { name, version };
54
+ }
27
55
  //# sourceMappingURL=checkMatch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkMatch.js","sourceRoot":"","sources":["../src/checkMatch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,MAS1B;IACC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAEpD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,SAAiB,CAAC;IACtB,IAAI,YAAgC,CAAC;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,SAAS,GAAG,KAAK,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,6FAA6F;QAC7F,YAAY,GAAG,KAAK,CAAC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;IACnE,CAAC;IAED,mFAAmF;IACnF,IAAI,UAAU,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3C,OAAO,SAAS,KAAK,IAAI,IAAI,CAAC,CAAC,YAAY,IAAI,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,sFAAsF;IACtF,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,IAAI,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;AACxG,CAAC","sourcesContent":["import type { PackageSettings } from '@ms-cloudpack/common-types';\nimport { satisfies } from 'semver';\n\n/**\n * Checks if the package is a match for the given package settings.\n */\nexport function checkMatch(params: {\n /** The name of the package. */\n name: string;\n /** The version of the package. */\n version: string;\n /** The match to check against. For an array, returns true if any entries match. */\n match: PackageSettings['match'];\n /** If true, require an exact match for the name (don't process wildcards). */\n exactMatch?: boolean;\n}): boolean {\n const { name, version, match, exactMatch } = params;\n\n if (Array.isArray(match)) {\n return match.some((m) => checkMatch({ ...params, match: m }));\n }\n\n let matchName: string;\n let matchVersion: string | undefined;\n if (typeof match === 'string') {\n matchName = match;\n } else {\n matchName = match.name;\n // If any version is allowed, unset the version to skip the satisfies() check for efficiency.\n matchVersion = match.version === '*' ? undefined : match.version;\n }\n\n // For exact or non-wildcard matches, check the full name and possibly the version.\n if (exactMatch || !matchName.endsWith('*')) {\n return matchName === name && (!matchVersion || satisfies(version, matchVersion));\n }\n\n // Remove the trailing wildcard and check for a prefix match and possibly the version.\n return name.startsWith(matchName.slice(0, -1)) && (!matchVersion || satisfies(version, matchVersion));\n}\n"]}
1
+ {"version":3,"file":"checkMatch.js","sourceRoot":"","sources":["../src/checkMatch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAanC;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,MAAwB;IACjD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAEpD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,eAAe,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;IAE5D,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,iBAAiB,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,mFAAmF;IACnF,IAAI,UAAU,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3C,OAAO,SAAS,KAAK,IAAI,IAAI,CAAC,CAAC,YAAY,IAAI,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,sFAAsF;IACtF,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,IAAI,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;AACxG,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,MAA+E;IACxG,OAAO,CAAC,UAAU,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClG,CAAC;AAED,SAAS,eAAe,CAAC,MAA6E;IACpG,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,iEAAiE;IACjE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,QAAQ,KAAK,iBAAiB,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,QAAQ,KAAK,UAAU,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,aAAa,CAAC,KAA0C;IAC/D,IAAI,IAAY,CAAC;IACjB,IAAI,OAA2B,CAAC;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,GAAG,KAAK,CAAC;IACf,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAClB,6FAA6F;QAC7F,OAAO,GAAG,KAAK,CAAC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;IAC9D,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC","sourcesContent":["import type { PackageSettings, PackageSettingsMatch, PackageSettingsMatchObject } from '@ms-cloudpack/common-types';\nimport { satisfies } from 'semver';\n\ninterface CheckMatchParams {\n /** The name of the package. */\n name: string;\n /** The version of the package. */\n version: string;\n /** The match to check against. For an array, returns true if any entries match. */\n match: PackageSettings['match'];\n /** If true, require an exact match for the name (don't process wildcards). */\n exactMatch?: boolean;\n}\n\n/**\n * Checks if the package is a match for the given package settings.\n */\nexport function checkMatch(params: CheckMatchParams): boolean {\n const { name, version, match, exactMatch } = params;\n\n if (Array.isArray(match)) {\n return checkMatchArray({ ...params, matches: match });\n }\n\n const matchObj = toMatchObject(match);\n const { name: matchName, version: matchVersion } = matchObj;\n\n if (matchName.startsWith('!')) {\n return checkNegatedMatch({ ...params, match: matchObj });\n }\n\n // For exact or non-wildcard matches, check the full name and possibly the version.\n if (exactMatch || !matchName.endsWith('*')) {\n return matchName === name && (!matchVersion || satisfies(version, matchVersion));\n }\n\n // Remove the trailing wildcard and check for a prefix match and possibly the version.\n return name.startsWith(matchName.slice(0, -1)) && (!matchVersion || satisfies(version, matchVersion));\n}\n\n/**\n * Check a match where `match.name` is negated. (This will handle removing the ! from the name.)\n */\nfunction checkNegatedMatch(params: Omit<CheckMatchParams, 'match'> & { match: PackageSettingsMatchObject }): boolean {\n return !checkMatch({ ...params, match: { ...params.match, name: params.match.name.slice(1) } });\n}\n\nfunction checkMatchArray(params: Omit<CheckMatchParams, 'match'> & { matches: PackageSettingsMatch[] }): boolean {\n let hasMatch = false;\n // Now that we support negations, we have to check every element.\n for (const m of params.matches) {\n const matchObj = toMatchObject(m);\n if (matchObj.name.startsWith('!')) {\n hasMatch &&= checkNegatedMatch({ ...params, match: matchObj });\n } else {\n hasMatch ||= checkMatch({ ...params, match: m });\n }\n }\n return hasMatch;\n}\n\nfunction toMatchObject(match: PackageSettingsMatchObject | string): PackageSettingsMatchObject {\n let name: string;\n let version: string | undefined;\n if (typeof match === 'string') {\n name = match;\n } else {\n name = match.name;\n // If any version is allowed, unset the version to skip the satisfies() check for efficiency.\n version = match.version === '*' ? undefined : match.version;\n }\n return { name, version };\n}\n"]}
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.47.9"
8
+ "packageVersion": "7.47.11"
9
9
  }
10
10
  ]
11
11
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ms-cloudpack/config",
3
- "version": "0.31.4",
3
+ "version": "0.31.6",
4
4
  "description": "Configuration handling for cloudpack.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -14,11 +14,11 @@
14
14
  }
15
15
  },
16
16
  "dependencies": {
17
- "@ms-cloudpack/common-types": "^0.23.0",
17
+ "@ms-cloudpack/common-types": "^0.23.1",
18
18
  "@ms-cloudpack/json-utilities": "^0.1.8",
19
- "@ms-cloudpack/package-utilities": "^10.2.4",
19
+ "@ms-cloudpack/package-utilities": "^10.2.6",
20
20
  "@ms-cloudpack/path-string-parsing": "^1.2.4",
21
- "@ms-cloudpack/path-utilities": "^2.7.49",
21
+ "@ms-cloudpack/path-utilities": "^2.7.50",
22
22
  "semver": "^7.6.0"
23
23
  },
24
24
  "devDependencies": {