@daghis/teamcity-mcp 1.11.16 → 1.11.17

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/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.11.17](https://github.com/Daghis/teamcity-mcp/compare/teamcity-mcp-v1.11.16...teamcity-mcp-v1.11.17) (2025-12-06)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **security:** address CodeQL incomplete string escaping alert ([#305](https://github.com/Daghis/teamcity-mcp/issues/305)) ([24071ed](https://github.com/Daghis/teamcity-mcp/commit/24071ed1e308d699f8f5e52075eb0d53b91f6a2e))
9
+
3
10
  ## [1.11.16](https://github.com/Daghis/teamcity-mcp/compare/teamcity-mcp-v1.11.15...teamcity-mcp-v1.11.16) (2025-12-06)
4
11
 
5
12
 
package/dist/index.js CHANGED
@@ -954,7 +954,7 @@ function debug2(message, meta) {
954
954
  // package.json
955
955
  var package_default = {
956
956
  name: "@daghis/teamcity-mcp",
957
- version: "1.11.16",
957
+ version: "1.11.17",
958
958
  description: "Model Control Protocol server for TeamCity CI/CD integration with AI coding assistants",
959
959
  mcpName: "io.github.Daghis/teamcity",
960
960
  main: "dist/index.js",
@@ -3039,6 +3039,13 @@ var BuildFeatureManager = class {
3039
3039
  }
3040
3040
  };
3041
3041
 
3042
+ // src/utils/pattern.ts
3043
+ var REGEX_SPECIAL_CHARS = /[.+^${}()|[\]\\]/g;
3044
+ function globToRegex(pattern, flags) {
3045
+ const escaped = pattern.replace(REGEX_SPECIAL_CHARS, "\\$&").replace(/\*/g, ".*").replace(/\?/g, ".");
3046
+ return new RegExp(`^${escaped}$`, flags);
3047
+ }
3048
+
3042
3049
  // src/teamcity/build-results-manager.ts
3043
3050
  init_errors();
3044
3051
  var isRecord2 = (value) => {
@@ -3354,9 +3361,7 @@ var BuildResultsManager = class _BuildResultsManager {
3354
3361
  * Filter artifacts by pattern
3355
3362
  */
3356
3363
  filterArtifacts(artifacts, pattern) {
3357
- const regex = new RegExp(
3358
- `^${pattern.replace(/\./g, "\\.").replace(/\*/g, ".*").replace(/\?/g, ".")}$`
3359
- );
3364
+ const regex = globToRegex(pattern);
3360
3365
  return artifacts.filter((a) => regex.test(a.name));
3361
3366
  }
3362
3367
  ensureArtifactListResponse(data, buildId) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@daghis/teamcity-mcp",
3
- "version": "1.11.16",
3
+ "version": "1.11.17",
4
4
  "description": "Model Control Protocol server for TeamCity CI/CD integration with AI coding assistants",
5
5
  "mcpName": "io.github.Daghis/teamcity",
6
6
  "main": "dist/index.js",
package/server.json CHANGED
@@ -7,13 +7,13 @@
7
7
  "source": "github"
8
8
  },
9
9
  "websiteUrl": "https://github.com/Daghis/teamcity-mcp",
10
- "version": "1.11.16",
10
+ "version": "1.11.17",
11
11
  "packages": [
12
12
  {
13
13
  "registryType": "npm",
14
14
  "registryBaseUrl": "https://registry.npmjs.org",
15
15
  "identifier": "@daghis/teamcity-mcp",
16
- "version": "1.11.16",
16
+ "version": "1.11.17",
17
17
  "runtimeHint": "npx",
18
18
  "runtimeArguments": [
19
19
  {