fa-mcp-sdk 0.2.243 → 0.2.244

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.
@@ -29,14 +29,19 @@ export default [
29
29
  rules: {
30
30
  ...tsPlugin.configs.recommended.rules,
31
31
  '@typescript-eslint/ban-ts-comment': 'off',
32
- '@typescript-eslint/no-unused-vars': 'off',
32
+ '@typescript-eslint/no-unused-vars': ['warn', {
33
+ 'argsIgnorePattern': '^_',
34
+ 'varsIgnorePattern': '^_',
35
+ 'caughtErrorsIgnorePattern': '^_',
36
+ 'ignoreRestSiblings': true,
37
+ }],
33
38
  '@typescript-eslint/no-unsafe-function-type': 'off',
34
39
  'unused-imports/no-unused-imports': 'error',
35
40
  'unused-imports/no-unused-vars': ['warn', {
36
41
  'argsIgnorePattern': '^_',
37
42
  'varsIgnorePattern': '^_',
38
43
  'caughtErrorsIgnorePattern': '^_',
39
- 'ignoreRestSiblings': true
44
+ 'ignoreRestSiblings': true,
40
45
  }],
41
46
  '@typescript-eslint/no-explicit-any': 'off',
42
47
  '@typescript-eslint/no-unsafe-member-access': 'off',
@@ -45,9 +50,9 @@ export default [
45
50
  'ts': 'never',
46
51
  'js': 'always',
47
52
  'pattern': {
48
- '**/*.ts': 'always'
53
+ '**/*.ts': 'always',
49
54
  },
50
- 'ignorePackages': true
55
+ 'ignorePackages': true,
51
56
  }],
52
57
  // Formatting rules
53
58
  'semi': ['error', 'always'],
@@ -55,7 +60,7 @@ export default [
55
60
  'space-before-function-paren': ['error', {
56
61
  'anonymous': 'always',
57
62
  'named': 'always',
58
- 'asyncArrow': 'always'
63
+ 'asyncArrow': 'always',
59
64
  }],
60
65
  'object-curly-spacing': ['error', 'always'],
61
66
  'curly': ['error', 'all'],
@@ -80,13 +85,21 @@ export default [
80
85
  },
81
86
  rules: {
82
87
  'import/no-default-export': 'off',
88
+ // Unused variables/imports rules
89
+ 'unused-imports/no-unused-imports': 'warn',
90
+ 'unused-imports/no-unused-vars': ['warn', {
91
+ 'argsIgnorePattern': '^_',
92
+ 'varsIgnorePattern': '^_',
93
+ 'caughtErrorsIgnorePattern': '^_',
94
+ 'ignoreRestSiblings': true,
95
+ }],
83
96
  // Formatting rules
84
97
  'semi': ['error', 'always'],
85
98
  'quotes': ['error', 'single', { 'avoidEscape': true }],
86
99
  'space-before-function-paren': ['error', {
87
100
  'anonymous': 'always',
88
101
  'named': 'always',
89
- 'asyncArrow': 'always'
102
+ 'asyncArrow': 'always',
90
103
  }],
91
104
  'object-curly-spacing': ['error', 'always'],
92
105
  'curly': ['error', 'all'],
@@ -47,7 +47,7 @@
47
47
  "dependencies": {
48
48
  "@modelcontextprotocol/sdk": "^1.25.2",
49
49
  "dotenv": "^17.2.3",
50
- "fa-mcp-sdk": "^0.2.243"
50
+ "fa-mcp-sdk": "^0.2.244"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@types/express": "^5.0.6",
@@ -2,7 +2,6 @@
2
2
  let toolsData = [];
3
3
  let resourcesData = [];
4
4
  let promptsData = [];
5
- let pageData = {};
6
5
 
7
6
  // Set primary color CSS variable
8
7
  function setPrimaryColor (color) {
@@ -133,7 +132,6 @@ async function loadPageData () {
133
132
  }
134
133
 
135
134
  const data = await response.json();
136
- pageData = data;
137
135
 
138
136
  // Set theme color
139
137
  setPrimaryColor(data.primaryColor);
@@ -155,6 +153,7 @@ async function loadPageData () {
155
153
  }
156
154
  }
157
155
 
156
+ // eslint-disable-next-line unused-imports/no-unused-vars
158
157
  function openModal (sectionName) {
159
158
  const modal = document.getElementById(sectionName + '-modal');
160
159
  const tableBody = document.getElementById(sectionName + '-table').querySelector('tbody');
@@ -272,6 +271,7 @@ function generatePromptsTableRows (prompts) {
272
271
  ).join('');
273
272
  }
274
273
 
274
+ // eslint-disable-next-line unused-imports/no-unused-vars
275
275
  function toggleDetails (sectionName, index) {
276
276
  const detailRow = document.getElementById(sectionName + '-detail-' + index);
277
277
  const toggleLink = document.getElementById(sectionName + '-toggle-' + index);
@@ -322,6 +322,7 @@ function toggleDetails (sectionName, index) {
322
322
  }
323
323
 
324
324
  // Handle prompt details and prompt content display
325
+ // eslint-disable-next-line unused-imports/no-unused-vars
325
326
  async function togglePromptDetails (sectionName, index, displayType) {
326
327
  const detailRow = document.getElementById(sectionName + '-detail-' + index);
327
328
  const toggleLinkDetails = document.getElementById(sectionName + '-toggle-details-' + index);
@@ -414,6 +415,7 @@ async function togglePromptDetails (sectionName, index, displayType) {
414
415
  }
415
416
 
416
417
  // Handle resource details and resource content display
418
+ // eslint-disable-next-line unused-imports/no-unused-vars
417
419
  async function toggleResourceDetails (sectionName, index, displayType) {
418
420
  const detailRow = document.getElementById(sectionName + '-detail-' + index);
419
421
  const toggleLinkDetails = document.getElementById(sectionName + '-toggle-details-' + index);
@@ -516,6 +518,7 @@ async function toggleResourceDetails (sectionName, index, displayType) {
516
518
  }
517
519
 
518
520
  // Health Check Modal
521
+ // eslint-disable-next-line unused-imports/no-unused-vars
519
522
  async function openHealthCheckModal () {
520
523
  const modal = document.getElementById('health-modal');
521
524
  const loading = document.getElementById('health-loading');
@@ -599,7 +602,7 @@ function addCopyButton (contentElement) {
599
602
  notification.classList.remove('show');
600
603
  }, 1000);
601
604
 
602
- } catch (err) {
605
+ } catch {
603
606
  // Fallback for browsers that don't support clipboard API
604
607
  const textArea = document.createElement('textarea');
605
608
  textArea.value = textToCopy;
@@ -104,7 +104,7 @@ async function initializeAuth () {
104
104
  showTokenModal('Token is invalid or expired.');
105
105
  return false;
106
106
  }
107
- } catch (error) {
107
+ } catch {
108
108
  // authFetch already handles 401 and shows modal
109
109
  return false;
110
110
  }
@@ -207,6 +207,7 @@ function addKeyValuePair (key = '', value = '', readonly = false, placeholder =
207
207
  keyValuePairCount++;
208
208
  }
209
209
 
210
+ // eslint-disable-next-line unused-imports/no-unused-vars
210
211
  function removeKeyValuePair (button) {
211
212
  button.parentElement.remove();
212
213
  keyValuePairCount--;
@@ -251,7 +252,7 @@ function addCopyButtonToTokenOutput (tokenOutput, token) {
251
252
  notification.classList.remove('show');
252
253
  }, 1000);
253
254
 
254
- } catch (err) {
255
+ } catch {
255
256
  // Fallback for browsers that don't support clipboard API
256
257
  const textArea = document.createElement('textarea');
257
258
  textArea.value = token;
@@ -504,6 +505,7 @@ async function initializeForm () {
504
505
  }
505
506
 
506
507
  // Logout function
508
+ // eslint-disable-next-line unused-imports/no-unused-vars
507
509
  async function logout () {
508
510
  try {
509
511
  // For token-based auth, just clear the stored token
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "fa-mcp-sdk",
3
3
  "productName": "FA MCP SDK",
4
- "version": "0.2.243",
4
+ "version": "0.2.244",
5
5
  "description": "Core infrastructure and templates for building Model Context Protocol (MCP) servers with TypeScript",
6
6
  "type": "module",
7
7
  "main": "dist/core/index.js",
@@ -27,7 +27,7 @@ async function killProcessOnPort (portNumber) {
27
27
  try {
28
28
  const result = await execAsync(`netstat -ano | findstr :${portNumber}`);
29
29
  stdout = result.stdout;
30
- } catch (error) {
30
+ } catch {
31
31
  // findstr returns error when no matches found
32
32
  console.log(`No process found on port ${portNumber}`);
33
33
  return;