memory-journal-mcp 4.3.1 → 4.4.1
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/.dockerignore +131 -122
- package/.gitattributes +29 -0
- package/.github/workflows/docker-publish.yml +1 -1
- package/.github/workflows/lint-and-test.yml +1 -2
- package/.github/workflows/secrets-scanning.yml +0 -1
- package/.github/workflows/security-update.yml +6 -6
- package/.vscode/settings.json +17 -15
- package/CHANGELOG.md +1071 -11
- package/DOCKER_README.md +51 -33
- package/Dockerfile +12 -11
- package/README.md +68 -33
- package/SECURITY.md +225 -158
- package/dist/cli.js +7 -0
- package/dist/cli.js.map +1 -1
- package/dist/constants/ServerInstructions.d.ts +1 -1
- package/dist/constants/ServerInstructions.d.ts.map +1 -1
- package/dist/constants/ServerInstructions.js +70 -26
- package/dist/constants/ServerInstructions.js.map +1 -1
- package/dist/constants/icons.d.ts +2 -0
- package/dist/constants/icons.d.ts.map +1 -1
- package/dist/constants/icons.js +6 -0
- package/dist/constants/icons.js.map +1 -1
- package/dist/database/SqliteAdapter.d.ts +51 -10
- package/dist/database/SqliteAdapter.d.ts.map +1 -1
- package/dist/database/SqliteAdapter.js +140 -31
- package/dist/database/SqliteAdapter.js.map +1 -1
- package/dist/filtering/ToolFilter.d.ts +1 -1
- package/dist/filtering/ToolFilter.d.ts.map +1 -1
- package/dist/filtering/ToolFilter.js +7 -1
- package/dist/filtering/ToolFilter.js.map +1 -1
- package/dist/github/GitHubIntegration.d.ts +74 -2
- package/dist/github/GitHubIntegration.d.ts.map +1 -1
- package/dist/github/GitHubIntegration.js +508 -7
- package/dist/github/GitHubIntegration.js.map +1 -1
- package/dist/handlers/prompts/index.js +1 -0
- package/dist/handlers/prompts/index.js.map +1 -1
- package/dist/handlers/resources/index.d.ts.map +1 -1
- package/dist/handlers/resources/index.js +257 -13
- package/dist/handlers/resources/index.js.map +1 -1
- package/dist/handlers/tools/index.d.ts.map +1 -1
- package/dist/handlers/tools/index.js +590 -7
- package/dist/handlers/tools/index.js.map +1 -1
- package/dist/server/McpServer.d.ts +2 -0
- package/dist/server/McpServer.d.ts.map +1 -1
- package/dist/server/McpServer.js +69 -26
- package/dist/server/McpServer.js.map +1 -1
- package/dist/types/index.d.ts +97 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/logger.d.ts +1 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +8 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/security-utils.d.ts +8 -0
- package/dist/utils/security-utils.d.ts.map +1 -1
- package/dist/utils/security-utils.js +32 -0
- package/dist/utils/security-utils.js.map +1 -1
- package/dist/vector/VectorSearchManager.d.ts +2 -1
- package/dist/vector/VectorSearchManager.d.ts.map +1 -1
- package/dist/vector/VectorSearchManager.js +100 -34
- package/dist/vector/VectorSearchManager.js.map +1 -1
- package/docker-compose.yml +46 -37
- package/mcp-config-example.json +0 -2
- package/package.json +13 -11
- package/releases/v4.3.1.md +69 -0
- package/releases/v4.4.0.md +120 -0
- package/releases/v4.4.1.md +33 -0
- package/server.json +3 -3
- package/src/cli.ts +11 -0
- package/src/constants/ServerInstructions.ts +70 -26
- package/src/constants/icons.ts +7 -0
- package/src/database/SqliteAdapter.ts +162 -32
- package/src/filtering/ToolFilter.ts +7 -1
- package/src/github/GitHubIntegration.ts +588 -8
- package/src/handlers/prompts/index.ts +1 -0
- package/src/handlers/resources/index.ts +318 -12
- package/src/handlers/tools/index.ts +681 -12
- package/src/server/McpServer.ts +79 -37
- package/src/types/index.ts +98 -0
- package/src/utils/logger.ts +10 -1
- package/src/utils/security-utils.ts +35 -0
- package/src/vector/VectorSearchManager.ts +110 -39
- package/tests/constants/icons.test.ts +102 -0
- package/tests/constants/server-instructions.test.ts +549 -0
- package/tests/database/sqlite-adapter.bench.ts +63 -0
- package/tests/database/sqlite-adapter.test.ts +555 -0
- package/tests/filtering/tool-filter.test.ts +266 -0
- package/tests/github/github-integration.test.ts +1024 -0
- package/tests/handlers/github-resource-handlers.test.ts +473 -0
- package/tests/handlers/github-tool-handlers.test.ts +556 -0
- package/tests/handlers/prompt-handlers.test.ts +91 -0
- package/tests/handlers/resource-handlers.test.ts +339 -0
- package/tests/handlers/tool-handlers.test.ts +497 -0
- package/tests/handlers/vector-tool-handlers.test.ts +238 -0
- package/tests/server/mcp-server.bench.ts +55 -0
- package/tests/server/mcp-server.test.ts +675 -0
- package/tests/utils/logger.test.ts +180 -0
- package/tests/utils/mcp-logger.test.ts +212 -0
- package/tests/utils/progress-utils.test.ts +156 -0
- package/tests/utils/security-utils.test.ts +82 -0
- package/tests/vector/vector-search-manager.test.ts +335 -0
- package/tests/vector/vector-search.bench.ts +53 -0
- package/.github/workflows/DOCKER_DEPLOYMENT_SETUP.md +0 -387
- package/.github/workflows/dependabot-auto-merge.yml +0 -42
package/.dockerignore
CHANGED
|
@@ -1,122 +1,131 @@
|
|
|
1
|
-
# =============================================================================
|
|
2
|
-
# Memory Journal MCP - Docker Build Ignore File
|
|
3
|
-
# =============================================================================
|
|
4
|
-
# Files and directories excluded from Docker build context
|
|
5
|
-
# Keep this in sync with .gitignore where applicable
|
|
6
|
-
|
|
7
|
-
# -----------------------------------------------------------------------------
|
|
8
|
-
# Dependencies (reinstalled in builder stage)
|
|
9
|
-
# -----------------------------------------------------------------------------
|
|
10
|
-
node_modules/
|
|
11
|
-
|
|
12
|
-
# -----------------------------------------------------------------------------
|
|
13
|
-
# Git and Version Control
|
|
14
|
-
# -----------------------------------------------------------------------------
|
|
15
|
-
.git/
|
|
16
|
-
.gitignore
|
|
17
|
-
.github/
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
#
|
|
21
|
-
#
|
|
22
|
-
|
|
23
|
-
.
|
|
24
|
-
.
|
|
25
|
-
|
|
26
|
-
*.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
# -----------------------------------------------------------------------------
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
# -----------------------------------------------------------------------------
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
.
|
|
55
|
-
.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
#
|
|
59
|
-
#
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
#
|
|
78
|
-
#
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
*.
|
|
92
|
-
|
|
93
|
-
# -----------------------------------------------------------------------------
|
|
94
|
-
#
|
|
95
|
-
# -----------------------------------------------------------------------------
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
# -----------------------------------------------------------------------------
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
.
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# Memory Journal MCP - Docker Build Ignore File
|
|
3
|
+
# =============================================================================
|
|
4
|
+
# Files and directories excluded from Docker build context
|
|
5
|
+
# Keep this in sync with .gitignore where applicable
|
|
6
|
+
|
|
7
|
+
# -----------------------------------------------------------------------------
|
|
8
|
+
# Dependencies (reinstalled in builder stage)
|
|
9
|
+
# -----------------------------------------------------------------------------
|
|
10
|
+
node_modules/
|
|
11
|
+
|
|
12
|
+
# -----------------------------------------------------------------------------
|
|
13
|
+
# Git and Version Control
|
|
14
|
+
# -----------------------------------------------------------------------------
|
|
15
|
+
.git/
|
|
16
|
+
.gitignore
|
|
17
|
+
.github/
|
|
18
|
+
.gitattributes
|
|
19
|
+
|
|
20
|
+
# -----------------------------------------------------------------------------
|
|
21
|
+
# IDE and Editor Files
|
|
22
|
+
# -----------------------------------------------------------------------------
|
|
23
|
+
.vscode/
|
|
24
|
+
.cursor/
|
|
25
|
+
.idea/
|
|
26
|
+
*.swp
|
|
27
|
+
*.swo
|
|
28
|
+
*~
|
|
29
|
+
*.tsbuildinfo
|
|
30
|
+
|
|
31
|
+
# -----------------------------------------------------------------------------
|
|
32
|
+
# OS Files
|
|
33
|
+
# -----------------------------------------------------------------------------
|
|
34
|
+
.DS_Store
|
|
35
|
+
Thumbs.db
|
|
36
|
+
|
|
37
|
+
# -----------------------------------------------------------------------------
|
|
38
|
+
# Development Tooling (not needed in production)
|
|
39
|
+
# -----------------------------------------------------------------------------
|
|
40
|
+
.prettierrc
|
|
41
|
+
.prettierignore
|
|
42
|
+
eslint.config.js
|
|
43
|
+
vitest.config.ts
|
|
44
|
+
tests/
|
|
45
|
+
coverage/
|
|
46
|
+
dist/
|
|
47
|
+
|
|
48
|
+
# -----------------------------------------------------------------------------
|
|
49
|
+
# Local Development Files
|
|
50
|
+
# -----------------------------------------------------------------------------
|
|
51
|
+
docker-compose.yml
|
|
52
|
+
mcp-config-example.json
|
|
53
|
+
tools.json
|
|
54
|
+
server.json
|
|
55
|
+
mcp-publisher.exe
|
|
56
|
+
|
|
57
|
+
# -----------------------------------------------------------------------------
|
|
58
|
+
# Security Scanning Configs (CI only)
|
|
59
|
+
# -----------------------------------------------------------------------------
|
|
60
|
+
.scout-ignore
|
|
61
|
+
.trivyignore
|
|
62
|
+
trivy-results.sarif
|
|
63
|
+
|
|
64
|
+
# -----------------------------------------------------------------------------
|
|
65
|
+
# Documentation (keep README.md for Docker Hub)
|
|
66
|
+
# -----------------------------------------------------------------------------
|
|
67
|
+
docs/
|
|
68
|
+
releases/
|
|
69
|
+
CHANGELOG.md
|
|
70
|
+
CODE_OF_CONDUCT.md
|
|
71
|
+
CONTRIBUTING.md
|
|
72
|
+
DOCKER_README.md
|
|
73
|
+
SECURITY.md
|
|
74
|
+
*.md
|
|
75
|
+
!README.md
|
|
76
|
+
|
|
77
|
+
# -----------------------------------------------------------------------------
|
|
78
|
+
# Data Directory (mounted as volume at runtime)
|
|
79
|
+
# -----------------------------------------------------------------------------
|
|
80
|
+
data/
|
|
81
|
+
|
|
82
|
+
# -----------------------------------------------------------------------------
|
|
83
|
+
# Database and Index Files (runtime only)
|
|
84
|
+
# -----------------------------------------------------------------------------
|
|
85
|
+
*.db
|
|
86
|
+
*.db-shm
|
|
87
|
+
*.db-wal
|
|
88
|
+
*.sqlite
|
|
89
|
+
*.sqlite3
|
|
90
|
+
.vectra_index/
|
|
91
|
+
*.vectra/
|
|
92
|
+
|
|
93
|
+
# -----------------------------------------------------------------------------
|
|
94
|
+
# Temporary Files
|
|
95
|
+
# -----------------------------------------------------------------------------
|
|
96
|
+
temp/
|
|
97
|
+
tmp/
|
|
98
|
+
*.tmp
|
|
99
|
+
*.temp
|
|
100
|
+
backups/
|
|
101
|
+
|
|
102
|
+
# -----------------------------------------------------------------------------
|
|
103
|
+
# Logs
|
|
104
|
+
# -----------------------------------------------------------------------------
|
|
105
|
+
*.log
|
|
106
|
+
logs/
|
|
107
|
+
|
|
108
|
+
# -----------------------------------------------------------------------------
|
|
109
|
+
# Security and Secrets
|
|
110
|
+
# -----------------------------------------------------------------------------
|
|
111
|
+
*.pem
|
|
112
|
+
*.key
|
|
113
|
+
.env
|
|
114
|
+
.env.*
|
|
115
|
+
auth.json
|
|
116
|
+
github_auth.json
|
|
117
|
+
.mcpregistry_*
|
|
118
|
+
|
|
119
|
+
# -----------------------------------------------------------------------------
|
|
120
|
+
# Python Legacy (archived, not used in TypeScript version)
|
|
121
|
+
# -----------------------------------------------------------------------------
|
|
122
|
+
__pycache__/
|
|
123
|
+
*.py[cod]
|
|
124
|
+
*$py.class
|
|
125
|
+
*.so
|
|
126
|
+
.Python
|
|
127
|
+
venv/
|
|
128
|
+
env/
|
|
129
|
+
ENV/
|
|
130
|
+
*.egg-info/
|
|
131
|
+
*.egg
|
package/.gitattributes
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Auto-detect text files and normalize line endings
|
|
2
|
+
* text=auto
|
|
3
|
+
|
|
4
|
+
# Force LF for source files
|
|
5
|
+
*.ts text eol=lf
|
|
6
|
+
*.js text eol=lf
|
|
7
|
+
*.json text eol=lf
|
|
8
|
+
*.md text eol=lf
|
|
9
|
+
*.yml text eol=lf
|
|
10
|
+
*.yaml text eol=lf
|
|
11
|
+
*.css text eol=lf
|
|
12
|
+
*.html text eol=lf
|
|
13
|
+
|
|
14
|
+
# Docker
|
|
15
|
+
Dockerfile text eol=lf
|
|
16
|
+
.dockerignore text eol=lf
|
|
17
|
+
|
|
18
|
+
# Config
|
|
19
|
+
.prettierrc text eol=lf
|
|
20
|
+
.prettierignore text eol=lf
|
|
21
|
+
.eslintrc* text eol=lf
|
|
22
|
+
.gitignore text eol=lf
|
|
23
|
+
|
|
24
|
+
# Explicitly binary
|
|
25
|
+
*.db binary
|
|
26
|
+
*.wasm binary
|
|
27
|
+
*.png binary
|
|
28
|
+
*.jpg binary
|
|
29
|
+
*.ico binary
|
|
@@ -271,7 +271,7 @@ jobs:
|
|
|
271
271
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
272
272
|
repository: ${{ env.IMAGE_NAME }}
|
|
273
273
|
readme-filepath: ./DOCKER_README.md
|
|
274
|
-
short-description: 'AI Project Memory
|
|
274
|
+
short-description: 'AI Project Memory- Triple Search, Knowledge Graphs, GitHub Integration, HTTP/SSE & Tool Filtering.'
|
|
275
275
|
|
|
276
276
|
- name: Deployment Summary
|
|
277
277
|
if: github.ref == 'refs/heads/main'
|
|
@@ -14,7 +14,7 @@ jobs:
|
|
|
14
14
|
runs-on: ubuntu-latest
|
|
15
15
|
strategy:
|
|
16
16
|
matrix:
|
|
17
|
-
node-version: [
|
|
17
|
+
node-version: [24.x, 25.x]
|
|
18
18
|
|
|
19
19
|
steps:
|
|
20
20
|
- name: Checkout code
|
|
@@ -55,4 +55,3 @@ jobs:
|
|
|
55
55
|
|
|
56
56
|
- name: Run npm audit
|
|
57
57
|
run: npm audit --audit-level=moderate
|
|
58
|
-
continue-on-error: true
|
|
@@ -48,7 +48,7 @@ jobs:
|
|
|
48
48
|
|
|
49
49
|
# Run SARIF scan first (non-blocking) to always generate the file
|
|
50
50
|
- name: Run Trivy scanner for SARIF output
|
|
51
|
-
uses: aquasecurity/trivy-action@0.
|
|
51
|
+
uses: aquasecurity/trivy-action@0.34.0
|
|
52
52
|
with:
|
|
53
53
|
image-ref: security-test:latest
|
|
54
54
|
format: 'sarif'
|
|
@@ -67,7 +67,7 @@ jobs:
|
|
|
67
67
|
|
|
68
68
|
# Run table scan (blocking) after SARIF is uploaded
|
|
69
69
|
- name: Run Trivy vulnerability scanner
|
|
70
|
-
uses: aquasecurity/trivy-action@0.
|
|
70
|
+
uses: aquasecurity/trivy-action@0.34.0
|
|
71
71
|
with:
|
|
72
72
|
image-ref: security-test:latest
|
|
73
73
|
format: 'table'
|
|
@@ -88,20 +88,20 @@ jobs:
|
|
|
88
88
|
title: '🚨 Security vulnerabilities detected in Docker images',
|
|
89
89
|
body: `
|
|
90
90
|
## Security Alert
|
|
91
|
-
|
|
91
|
+
|
|
92
92
|
Trivy has detected security vulnerabilities in our Docker images.
|
|
93
|
-
|
|
93
|
+
|
|
94
94
|
**Action Required:**
|
|
95
95
|
1. Review the security scan results in the Actions tab
|
|
96
96
|
2. Update base images and dependencies
|
|
97
97
|
3. Test the fixes
|
|
98
98
|
4. Deploy updated images
|
|
99
|
-
|
|
99
|
+
|
|
100
100
|
**Scan Details:**
|
|
101
101
|
- Workflow run: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
|
102
102
|
- Triggered by: Weekly security scan
|
|
103
103
|
- Scan Date: ${{ github.event.schedule || 'Manual trigger' }}
|
|
104
|
-
|
|
104
|
+
|
|
105
105
|
**Next Steps:**
|
|
106
106
|
- [ ] Review vulnerability details
|
|
107
107
|
- [ ] Update Dockerfiles
|
package/.vscode/settings.json
CHANGED
|
@@ -16,38 +16,41 @@
|
|
|
16
16
|
// Run ESLint on save (provides feedback to agent)
|
|
17
17
|
"eslint.run": "onSave",
|
|
18
18
|
// Show severity inline
|
|
19
|
-
"eslint.rules.customizations": [
|
|
20
|
-
|
|
19
|
+
"eslint.rules.customizations": [
|
|
20
|
+
{
|
|
21
|
+
"rule": "*",
|
|
22
|
+
"severity": "warn"
|
|
23
|
+
}
|
|
24
|
+
],
|
|
21
25
|
// ═══════════════════════════════════════════════════════════════════════
|
|
22
26
|
// Prettier Configuration
|
|
23
27
|
// ═══════════════════════════════════════════════════════════════════════
|
|
24
|
-
"editor.defaultFormatter": "
|
|
28
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
25
29
|
"editor.formatOnSave": true,
|
|
26
30
|
"[typescript]": {
|
|
27
|
-
"editor.defaultFormatter": "
|
|
31
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
28
32
|
},
|
|
29
33
|
"[javascript]": {
|
|
30
|
-
"editor.defaultFormatter": "
|
|
34
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
31
35
|
},
|
|
32
36
|
"[json]": {
|
|
33
|
-
"editor.defaultFormatter": "
|
|
37
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
34
38
|
},
|
|
35
39
|
"[jsonc]": {
|
|
36
|
-
"editor.defaultFormatter": "
|
|
40
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
37
41
|
},
|
|
38
42
|
"[markdown]": {
|
|
39
|
-
"editor.defaultFormatter": "
|
|
43
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
40
44
|
},
|
|
41
45
|
"[yaml]": {
|
|
42
|
-
"editor.defaultFormatter": "
|
|
46
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
43
47
|
},
|
|
44
48
|
"[html]": {
|
|
45
|
-
"editor.defaultFormatter": "
|
|
49
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
46
50
|
},
|
|
47
51
|
"[css]": {
|
|
48
|
-
"editor.defaultFormatter": "
|
|
52
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
49
53
|
},
|
|
50
|
-
|
|
51
54
|
// ═══════════════════════════════════════════════════════════════════════
|
|
52
55
|
// Error Lens Configuration
|
|
53
56
|
// ═══════════════════════════════════════════════════════════════════════
|
|
@@ -60,7 +63,6 @@
|
|
|
60
63
|
"errorLens.delay": 500,
|
|
61
64
|
// Exclude noisy hints if needed
|
|
62
65
|
"errorLens.excludeBySource": [],
|
|
63
|
-
|
|
64
66
|
// ═══════════════════════════════════════════════════════════════════════
|
|
65
67
|
// TypeScript Configuration (Built-in)
|
|
66
68
|
// ═══════════════════════════════════════════════════════════════════════
|
|
@@ -68,7 +70,6 @@
|
|
|
68
70
|
"typescript.updateImportsOnFileMove.enabled": "always",
|
|
69
71
|
"typescript.suggest.autoImports": true,
|
|
70
72
|
"typescript.tsdk": "node_modules/typescript/lib",
|
|
71
|
-
|
|
72
73
|
// ═══════════════════════════════════════════════════════════════════════
|
|
73
74
|
// Editor Behavior
|
|
74
75
|
// ═══════════════════════════════════════════════════════════════════════
|
|
@@ -78,5 +79,6 @@
|
|
|
78
79
|
},
|
|
79
80
|
"files.trimTrailingWhitespace": true,
|
|
80
81
|
"files.insertFinalNewline": true,
|
|
81
|
-
"files.trimFinalNewlines": true
|
|
82
|
+
"files.trimFinalNewlines": true,
|
|
83
|
+
"files.eol": "\n"
|
|
82
84
|
}
|