obsidian-mcp-server 1.5.8 → 2.0.2
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/README.md +248 -104
- package/dist/config/index.d.ts +41 -0
- package/dist/config/index.js +191 -0
- package/dist/index.d.ts +1 -5
- package/dist/index.js +296 -18
- package/dist/mcp-server/server.d.ts +33 -0
- package/dist/mcp-server/server.js +211 -0
- package/dist/mcp-server/tools/obsidianDeleteFileTool/index.d.ts +12 -0
- package/dist/mcp-server/tools/obsidianDeleteFileTool/index.js +12 -0
- package/dist/mcp-server/tools/obsidianDeleteFileTool/logic.d.ts +51 -0
- package/dist/mcp-server/tools/obsidianDeleteFileTool/logic.js +168 -0
- package/dist/mcp-server/tools/obsidianDeleteFileTool/registration.d.ts +19 -0
- package/dist/mcp-server/tools/obsidianDeleteFileTool/registration.js +91 -0
- package/dist/mcp-server/tools/obsidianGlobalSearchTool/index.d.ts +12 -0
- package/dist/mcp-server/tools/obsidianGlobalSearchTool/index.js +12 -0
- package/dist/mcp-server/tools/obsidianGlobalSearchTool/logic.d.ts +77 -0
- package/dist/mcp-server/tools/obsidianGlobalSearchTool/logic.js +341 -0
- package/dist/mcp-server/tools/obsidianGlobalSearchTool/registration.d.ts +18 -0
- package/dist/mcp-server/tools/obsidianGlobalSearchTool/registration.js +69 -0
- package/dist/mcp-server/tools/obsidianListFilesTool/index.d.ts +12 -0
- package/dist/mcp-server/tools/obsidianListFilesTool/index.js +12 -0
- package/dist/mcp-server/tools/obsidianListFilesTool/logic.d.ts +64 -0
- package/dist/mcp-server/tools/obsidianListFilesTool/logic.js +179 -0
- package/dist/mcp-server/tools/obsidianListFilesTool/registration.d.ts +19 -0
- package/dist/mcp-server/tools/obsidianListFilesTool/registration.js +96 -0
- package/dist/mcp-server/tools/obsidianManageFrontmatterTool/index.d.ts +3 -0
- package/dist/mcp-server/tools/obsidianManageFrontmatterTool/index.js +2 -0
- package/dist/mcp-server/tools/obsidianManageFrontmatterTool/logic.d.ts +42 -0
- package/dist/mcp-server/tools/obsidianManageFrontmatterTool/logic.js +152 -0
- package/dist/mcp-server/tools/obsidianManageFrontmatterTool/registration.d.ts +3 -0
- package/dist/mcp-server/tools/obsidianManageFrontmatterTool/registration.js +52 -0
- package/dist/mcp-server/tools/obsidianManageTagsTool/index.d.ts +3 -0
- package/dist/mcp-server/tools/obsidianManageTagsTool/index.js +2 -0
- package/dist/mcp-server/tools/obsidianManageTagsTool/logic.d.ts +28 -0
- package/dist/mcp-server/tools/obsidianManageTagsTool/logic.js +161 -0
- package/dist/mcp-server/tools/obsidianManageTagsTool/registration.d.ts +3 -0
- package/dist/mcp-server/tools/obsidianManageTagsTool/registration.js +52 -0
- package/dist/mcp-server/tools/obsidianReadFileTool/index.d.ts +12 -0
- package/dist/mcp-server/tools/obsidianReadFileTool/index.js +12 -0
- package/dist/mcp-server/tools/obsidianReadFileTool/logic.d.ts +87 -0
- package/dist/mcp-server/tools/obsidianReadFileTool/logic.js +216 -0
- package/dist/mcp-server/tools/obsidianReadFileTool/registration.d.ts +20 -0
- package/dist/mcp-server/tools/obsidianReadFileTool/registration.js +101 -0
- package/dist/mcp-server/tools/obsidianSearchReplaceTool/index.d.ts +12 -0
- package/dist/mcp-server/tools/obsidianSearchReplaceTool/index.js +12 -0
- package/dist/mcp-server/tools/obsidianSearchReplaceTool/logic.d.ts +255 -0
- package/dist/mcp-server/tools/obsidianSearchReplaceTool/logic.js +583 -0
- package/dist/mcp-server/tools/obsidianSearchReplaceTool/registration.d.ts +22 -0
- package/dist/mcp-server/tools/obsidianSearchReplaceTool/registration.js +111 -0
- package/dist/mcp-server/tools/obsidianUpdateFileTool/index.d.ts +12 -0
- package/dist/mcp-server/tools/obsidianUpdateFileTool/index.js +12 -0
- package/dist/mcp-server/tools/obsidianUpdateFileTool/logic.d.ts +183 -0
- package/dist/mcp-server/tools/obsidianUpdateFileTool/logic.js +490 -0
- package/dist/mcp-server/tools/obsidianUpdateFileTool/registration.d.ts +21 -0
- package/dist/mcp-server/tools/obsidianUpdateFileTool/registration.js +108 -0
- package/dist/mcp-server/transports/authentication/authContext.d.ts +33 -0
- package/dist/mcp-server/transports/authentication/authContext.js +24 -0
- package/dist/mcp-server/transports/authentication/authMiddleware.d.ts +30 -0
- package/dist/mcp-server/transports/authentication/authMiddleware.js +145 -0
- package/dist/mcp-server/transports/authentication/authUtils.d.ts +18 -0
- package/dist/mcp-server/transports/authentication/authUtils.js +45 -0
- package/dist/mcp-server/transports/authentication/oauthMiddleware.d.ts +24 -0
- package/dist/mcp-server/transports/authentication/oauthMiddleware.js +109 -0
- package/dist/mcp-server/transports/authentication/types.d.ts +17 -0
- package/dist/mcp-server/transports/authentication/types.js +5 -0
- package/dist/mcp-server/transports/httpTransport.d.ts +24 -0
- package/dist/mcp-server/transports/httpTransport.js +496 -0
- package/dist/mcp-server/transports/stdioTransport.d.ts +42 -0
- package/dist/mcp-server/transports/stdioTransport.js +63 -0
- package/dist/services/obsidianRestAPI/index.d.ts +15 -0
- package/dist/services/obsidianRestAPI/index.js +17 -0
- package/dist/services/obsidianRestAPI/methods/activeFileMethods.d.ts +38 -0
- package/dist/services/obsidianRestAPI/methods/activeFileMethods.js +62 -0
- package/dist/services/obsidianRestAPI/methods/commandMethods.d.ts +22 -0
- package/dist/services/obsidianRestAPI/methods/commandMethods.js +31 -0
- package/dist/services/obsidianRestAPI/methods/openMethods.d.ts +16 -0
- package/dist/services/obsidianRestAPI/methods/openMethods.js +21 -0
- package/dist/services/obsidianRestAPI/methods/patchMethods.d.ts +37 -0
- package/dist/services/obsidianRestAPI/methods/patchMethods.js +94 -0
- package/dist/services/obsidianRestAPI/methods/periodicNoteMethods.d.ts +42 -0
- package/dist/services/obsidianRestAPI/methods/periodicNoteMethods.js +66 -0
- package/dist/services/obsidianRestAPI/methods/searchMethods.d.ts +25 -0
- package/dist/services/obsidianRestAPI/methods/searchMethods.js +36 -0
- package/dist/services/obsidianRestAPI/methods/vaultMethods.d.ts +58 -0
- package/dist/services/obsidianRestAPI/methods/vaultMethods.js +144 -0
- package/dist/services/obsidianRestAPI/service.d.ts +195 -0
- package/dist/services/obsidianRestAPI/service.js +379 -0
- package/dist/services/obsidianRestAPI/types.d.ts +127 -0
- package/dist/services/obsidianRestAPI/types.js +7 -0
- package/dist/services/obsidianRestAPI/vaultCache/index.d.ts +4 -0
- package/dist/services/obsidianRestAPI/vaultCache/index.js +4 -0
- package/dist/services/obsidianRestAPI/vaultCache/service.d.ts +88 -0
- package/dist/services/obsidianRestAPI/vaultCache/service.js +299 -0
- package/dist/types-global/errors.d.ts +73 -0
- package/dist/types-global/errors.js +71 -0
- package/dist/utils/index.d.ts +5 -8
- package/dist/utils/index.js +13 -9
- package/dist/utils/internal/asyncUtils.d.ts +54 -0
- package/dist/utils/internal/asyncUtils.js +101 -0
- package/dist/utils/internal/errorHandler.d.ts +176 -0
- package/dist/utils/internal/errorHandler.js +351 -0
- package/dist/utils/internal/index.d.ts +4 -0
- package/dist/utils/internal/index.js +4 -0
- package/dist/utils/internal/logger.d.ts +141 -0
- package/dist/utils/internal/logger.js +406 -0
- package/dist/utils/internal/requestContext.d.ts +83 -0
- package/dist/utils/internal/requestContext.js +72 -0
- package/dist/utils/metrics/index.d.ts +1 -0
- package/dist/utils/metrics/index.js +1 -0
- package/dist/utils/metrics/tokenCounter.d.ts +27 -0
- package/dist/utils/metrics/tokenCounter.js +128 -0
- package/dist/utils/obsidian/index.d.ts +5 -0
- package/dist/utils/obsidian/index.js +5 -0
- package/dist/utils/obsidian/obsidianApiUtils.d.ts +14 -0
- package/dist/utils/obsidian/obsidianApiUtils.js +29 -0
- package/dist/utils/obsidian/obsidianStatUtils.d.ts +68 -0
- package/dist/utils/obsidian/obsidianStatUtils.js +143 -0
- package/dist/utils/parsing/dateParser.d.ts +56 -0
- package/dist/utils/parsing/dateParser.js +104 -0
- package/dist/utils/parsing/index.d.ts +2 -0
- package/dist/utils/parsing/index.js +3 -0
- package/dist/utils/parsing/jsonParser.d.ts +80 -0
- package/dist/utils/parsing/jsonParser.js +133 -0
- package/dist/utils/security/idGenerator.d.ts +140 -0
- package/dist/utils/security/idGenerator.js +194 -0
- package/dist/utils/security/index.d.ts +3 -0
- package/dist/utils/security/index.js +3 -0
- package/dist/utils/security/rateLimiter.d.ts +156 -0
- package/dist/utils/security/rateLimiter.js +235 -0
- package/dist/utils/security/sanitization.d.ts +244 -0
- package/dist/utils/security/sanitization.js +599 -0
- package/package.json +58 -37
- package/dist/index.js.map +0 -1
- package/dist/mcp/handlers.d.ts +0 -29
- package/dist/mcp/handlers.js +0 -305
- package/dist/mcp/handlers.js.map +0 -1
- package/dist/mcp/index.d.ts +0 -6
- package/dist/mcp/index.js +0 -7
- package/dist/mcp/index.js.map +0 -1
- package/dist/mcp/server.d.ts +0 -18
- package/dist/mcp/server.js +0 -240
- package/dist/mcp/server.js.map +0 -1
- package/dist/mcp/types.d.ts +0 -70
- package/dist/mcp/types.js +0 -49
- package/dist/mcp/types.js.map +0 -1
- package/dist/obsidian/client.d.ts +0 -109
- package/dist/obsidian/client.js +0 -403
- package/dist/obsidian/client.js.map +0 -1
- package/dist/obsidian/errors.d.ts +0 -28
- package/dist/obsidian/errors.js +0 -75
- package/dist/obsidian/errors.js.map +0 -1
- package/dist/obsidian/index.d.ts +0 -6
- package/dist/obsidian/index.js +0 -7
- package/dist/obsidian/index.js.map +0 -1
- package/dist/obsidian/types.d.ts +0 -107
- package/dist/obsidian/types.js +0 -12
- package/dist/obsidian/types.js.map +0 -1
- package/dist/resources/index.d.ts +0 -13
- package/dist/resources/index.js +0 -15
- package/dist/resources/index.js.map +0 -1
- package/dist/resources/tags.d.ts +0 -39
- package/dist/resources/tags.js +0 -257
- package/dist/resources/tags.js.map +0 -1
- package/dist/resources/types.d.ts +0 -27
- package/dist/resources/types.js +0 -5
- package/dist/resources/types.js.map +0 -1
- package/dist/tools/base.d.ts +0 -46
- package/dist/tools/base.js +0 -88
- package/dist/tools/base.js.map +0 -1
- package/dist/tools/files/content.d.ts +0 -58
- package/dist/tools/files/content.js +0 -171
- package/dist/tools/files/content.js.map +0 -1
- package/dist/tools/files/index.d.ts +0 -14
- package/dist/tools/files/index.js +0 -22
- package/dist/tools/files/index.js.map +0 -1
- package/dist/tools/files/list.d.ts +0 -35
- package/dist/tools/files/list.js +0 -133
- package/dist/tools/files/list.js.map +0 -1
- package/dist/tools/index.d.ts +0 -21
- package/dist/tools/index.js +0 -31
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/properties/index.d.ts +0 -14
- package/dist/tools/properties/index.js +0 -19
- package/dist/tools/properties/index.js.map +0 -1
- package/dist/tools/properties/manager.d.ts +0 -62
- package/dist/tools/properties/manager.js +0 -302
- package/dist/tools/properties/manager.js.map +0 -1
- package/dist/tools/properties/tools.d.ts +0 -47
- package/dist/tools/properties/tools.js +0 -239
- package/dist/tools/properties/tools.js.map +0 -1
- package/dist/tools/properties/types.d.ts +0 -141
- package/dist/tools/properties/types.js +0 -70
- package/dist/tools/properties/types.js.map +0 -1
- package/dist/tools/search/complex.d.ts +0 -38
- package/dist/tools/search/complex.js +0 -270
- package/dist/tools/search/complex.js.map +0 -1
- package/dist/tools/search/index.d.ts +0 -14
- package/dist/tools/search/index.js +0 -20
- package/dist/tools/search/index.js.map +0 -1
- package/dist/tools/search/simple.d.ts +0 -25
- package/dist/tools/search/simple.js +0 -127
- package/dist/tools/search/simple.js.map +0 -1
- package/dist/utils/errors.d.ts +0 -24
- package/dist/utils/errors.js +0 -59
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/idGenerator.d.ts +0 -15
- package/dist/utils/idGenerator.js +0 -21
- package/dist/utils/idGenerator.js.map +0 -1
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/logging.d.ts +0 -245
- package/dist/utils/logging.js +0 -417
- package/dist/utils/logging.js.map +0 -1
- package/dist/utils/rate-limiting.d.ts +0 -50
- package/dist/utils/rate-limiting.js +0 -94
- package/dist/utils/rate-limiting.js.map +0 -1
- package/dist/utils/tokenization.d.ts +0 -28
- package/dist/utils/tokenization.js +0 -75
- package/dist/utils/tokenization.js.map +0 -1
- package/dist/utils/validation.d.ts +0 -22
- package/dist/utils/validation.js +0 -92
- package/dist/utils/validation.js.map +0 -1
package/dist/obsidian/client.js
DELETED
|
@@ -1,403 +0,0 @@
|
|
|
1
|
-
import axios from "axios";
|
|
2
|
-
import { readFileSync } from "fs";
|
|
3
|
-
import { Agent } from "node:https";
|
|
4
|
-
import { dirname, join } from "path";
|
|
5
|
-
import { fileURLToPath } from 'url';
|
|
6
|
-
import { ObsidianError } from '../utils/errors.js';
|
|
7
|
-
import { createLogger } from '../utils/logging.js';
|
|
8
|
-
import { sanitizeHeader, validateFilePath } from '../utils/validation.js';
|
|
9
|
-
import { createMissingAPIKeyMessage, handleAxiosError } from './errors.js';
|
|
10
|
-
import { DEFAULT_OBSIDIAN_CONFIG } from './types.js';
|
|
11
|
-
// Logger for the ObsidianClient
|
|
12
|
-
const logger = createLogger('ObsidianClient');
|
|
13
|
-
// Get package version for user agent
|
|
14
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
15
|
-
const __dirname = dirname(__filename);
|
|
16
|
-
const VERSION = (() => {
|
|
17
|
-
try {
|
|
18
|
-
// Look for package.json in the same directory as the built files
|
|
19
|
-
const packagePath = join(__dirname, '..', '..', 'package.json');
|
|
20
|
-
const pkg = JSON.parse(readFileSync(packagePath, 'utf-8'));
|
|
21
|
-
return pkg.version;
|
|
22
|
-
}
|
|
23
|
-
catch (error) {
|
|
24
|
-
// Try alternative location for development
|
|
25
|
-
try {
|
|
26
|
-
const devPackagePath = join(__dirname, '..', '..', '..', 'package.json');
|
|
27
|
-
const pkg = JSON.parse(readFileSync(devPackagePath, 'utf-8'));
|
|
28
|
-
return pkg.version;
|
|
29
|
-
}
|
|
30
|
-
catch (devError) {
|
|
31
|
-
logger.warn('Could not read package.json version, using fallback');
|
|
32
|
-
return '1.1.0'; // Fallback version
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
})();
|
|
36
|
-
/**
|
|
37
|
-
* Client for interacting with the Obsidian Local REST API
|
|
38
|
-
*/
|
|
39
|
-
export class ObsidianClient {
|
|
40
|
-
client;
|
|
41
|
-
config;
|
|
42
|
-
/**
|
|
43
|
-
* Create a new ObsidianClient
|
|
44
|
-
* @param config Configuration for the client
|
|
45
|
-
*/
|
|
46
|
-
constructor(config) {
|
|
47
|
-
if (!config.apiKey) {
|
|
48
|
-
throw new ObsidianError(createMissingAPIKeyMessage(), 40100 // Unauthorized
|
|
49
|
-
);
|
|
50
|
-
}
|
|
51
|
-
// Determine if we're in a development environment
|
|
52
|
-
const isDev = process.env.NODE_ENV === 'development' || !process.env.NODE_ENV;
|
|
53
|
-
// Read environment variables with fallbacks
|
|
54
|
-
const envConfig = {
|
|
55
|
-
protocol: process.env.OBSIDIAN_PROTOCOL || DEFAULT_OBSIDIAN_CONFIG.protocol,
|
|
56
|
-
host: process.env.OBSIDIAN_HOST || DEFAULT_OBSIDIAN_CONFIG.host,
|
|
57
|
-
port: parseInt(process.env.OBSIDIAN_PORT || String(DEFAULT_OBSIDIAN_CONFIG.port)),
|
|
58
|
-
verifySSL: process.env.VERIFY_SSL ? process.env.VERIFY_SSL === 'true' : (isDev ? false : true),
|
|
59
|
-
timeout: parseInt(process.env.REQUEST_TIMEOUT || '5000'),
|
|
60
|
-
maxContentLength: parseInt(process.env.MAX_CONTENT_LENGTH || String(50 * 1024 * 1024)),
|
|
61
|
-
maxBodyLength: parseInt(process.env.MAX_BODY_LENGTH || String(50 * 1024 * 1024))
|
|
62
|
-
};
|
|
63
|
-
// Combine defaults with provided config and environment variables
|
|
64
|
-
this.config = {
|
|
65
|
-
protocol: envConfig.protocol,
|
|
66
|
-
host: envConfig.host,
|
|
67
|
-
port: envConfig.port,
|
|
68
|
-
verifySSL: config.verifySSL ?? envConfig.verifySSL,
|
|
69
|
-
apiKey: config.apiKey,
|
|
70
|
-
timeout: config.timeout ?? envConfig.timeout,
|
|
71
|
-
maxContentLength: config.maxContentLength ?? envConfig.maxContentLength,
|
|
72
|
-
maxBodyLength: config.maxBodyLength ?? envConfig.maxBodyLength
|
|
73
|
-
};
|
|
74
|
-
// Configure HTTPS agent
|
|
75
|
-
const httpsAgent = new Agent({
|
|
76
|
-
rejectUnauthorized: this.config.verifySSL
|
|
77
|
-
});
|
|
78
|
-
const axiosConfig = {
|
|
79
|
-
baseURL: this.getBaseUrl(),
|
|
80
|
-
headers: {
|
|
81
|
-
...this.getHeaders(),
|
|
82
|
-
// Security headers
|
|
83
|
-
'X-Content-Type-Options': 'nosniff',
|
|
84
|
-
'X-Frame-Options': 'DENY',
|
|
85
|
-
'X-XSS-Protection': '1; mode=block',
|
|
86
|
-
'Strict-Transport-Security': 'max-age=31536000; includeSubDomains'
|
|
87
|
-
},
|
|
88
|
-
validateStatus: (status) => status >= 200 && status < 300,
|
|
89
|
-
timeout: this.config.timeout,
|
|
90
|
-
maxRedirects: 5,
|
|
91
|
-
maxContentLength: this.config.maxContentLength,
|
|
92
|
-
maxBodyLength: this.config.maxBodyLength,
|
|
93
|
-
httpsAgent,
|
|
94
|
-
// Additional security configurations
|
|
95
|
-
xsrfCookieName: 'XSRF-TOKEN',
|
|
96
|
-
xsrfHeaderName: 'X-XSRF-TOKEN',
|
|
97
|
-
withCredentials: true,
|
|
98
|
-
decompress: true
|
|
99
|
-
};
|
|
100
|
-
if (!this.config.verifySSL) {
|
|
101
|
-
logger.warn("WARNING: SSL verification is disabled. While this works for development, it's not recommended for production.\n" +
|
|
102
|
-
"To properly configure SSL certificates:\n" +
|
|
103
|
-
"1. Go to Obsidian Settings > Local REST API\n" +
|
|
104
|
-
"2. Under 'How to Access', copy the certificate\n" +
|
|
105
|
-
"3. For Windows users:\n" +
|
|
106
|
-
" - Open 'certmgr.msc' (Windows Certificate Manager)\n" +
|
|
107
|
-
" - Go to 'Trusted Root Certification Authorities' > 'Certificates'\n" +
|
|
108
|
-
" - Right-click > 'All Tasks' > 'Import' and follow the wizard\n" +
|
|
109
|
-
" - Select the certificate file you copied from Obsidian\n" +
|
|
110
|
-
"4. For other systems:\n" +
|
|
111
|
-
" - macOS: Add to Keychain Access\n" +
|
|
112
|
-
" - Linux: Add to ca-certificates");
|
|
113
|
-
}
|
|
114
|
-
this.client = axios.create(axiosConfig);
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Get the base URL for the Obsidian API
|
|
118
|
-
*/
|
|
119
|
-
getBaseUrl() {
|
|
120
|
-
return `${this.config.protocol}://${this.config.host}:${this.config.port}`;
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Get headers for requests to the Obsidian API
|
|
124
|
-
*/
|
|
125
|
-
getHeaders() {
|
|
126
|
-
const headers = {
|
|
127
|
-
Authorization: `Bearer ${this.config.apiKey}`,
|
|
128
|
-
'Accept': 'application/json',
|
|
129
|
-
'User-Agent': `obsidian-mcp-server/${VERSION}`
|
|
130
|
-
};
|
|
131
|
-
// Sanitize headers
|
|
132
|
-
return Object.fromEntries(Object.entries(headers).map(([key, value]) => [
|
|
133
|
-
key,
|
|
134
|
-
sanitizeHeader(value)
|
|
135
|
-
]));
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Safely execute an API request with error handling
|
|
139
|
-
*/
|
|
140
|
-
async safeRequest(operation) {
|
|
141
|
-
try {
|
|
142
|
-
return await operation();
|
|
143
|
-
}
|
|
144
|
-
catch (error) {
|
|
145
|
-
if (axios.isAxiosError(error)) {
|
|
146
|
-
throw handleAxiosError(error, this.config.host, this.config.port);
|
|
147
|
-
}
|
|
148
|
-
if (error instanceof Error) {
|
|
149
|
-
throw new ObsidianError(error.message, 50000, error);
|
|
150
|
-
}
|
|
151
|
-
throw new ObsidianError("Unknown error occurred", 50000, error);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* List all files in the vault
|
|
156
|
-
*/
|
|
157
|
-
async listFilesInVault() {
|
|
158
|
-
return this.safeRequest(async () => {
|
|
159
|
-
logger.debug('Listing all files in vault');
|
|
160
|
-
const response = await this.client.get("/vault/");
|
|
161
|
-
return response.data.files;
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* List files in a specific directory
|
|
166
|
-
*/
|
|
167
|
-
async listFilesInDir(dirpath) {
|
|
168
|
-
validateFilePath(dirpath);
|
|
169
|
-
return this.safeRequest(async () => {
|
|
170
|
-
logger.debug(`Listing files in directory: ${dirpath}`);
|
|
171
|
-
const response = await this.client.get(`/vault/${dirpath}/`);
|
|
172
|
-
return response.data.files;
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Get the contents of a file
|
|
177
|
-
*/
|
|
178
|
-
async getFileContents(filepath) {
|
|
179
|
-
validateFilePath(filepath);
|
|
180
|
-
return this.safeRequest(async () => {
|
|
181
|
-
logger.debug(`Getting contents of file: ${filepath}`);
|
|
182
|
-
const response = await this.client.get(`/vault/${filepath}`);
|
|
183
|
-
return response.data;
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Search for a string across all files
|
|
188
|
-
*/
|
|
189
|
-
async search(query, contextLength = 100) {
|
|
190
|
-
return this.safeRequest(async () => {
|
|
191
|
-
logger.debug(`Searching for: ${query} with context length: ${contextLength}`);
|
|
192
|
-
const response = await this.client.post("/search/simple/", null, { params: { query, contextLength } });
|
|
193
|
-
return response.data;
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
/**
|
|
197
|
-
* Append content to a file
|
|
198
|
-
*/
|
|
199
|
-
async appendContent(filepath, content) {
|
|
200
|
-
validateFilePath(filepath);
|
|
201
|
-
if (!content || typeof content !== 'string') {
|
|
202
|
-
throw new ObsidianError('Invalid content: Content must be a non-empty string', 40003);
|
|
203
|
-
}
|
|
204
|
-
return this.safeRequest(async () => {
|
|
205
|
-
logger.debug(`Appending content to file: ${filepath}`);
|
|
206
|
-
await this.client.post(`/vault/${filepath}`, content, {
|
|
207
|
-
headers: {
|
|
208
|
-
"Content-Type": "text/markdown"
|
|
209
|
-
}
|
|
210
|
-
});
|
|
211
|
-
});
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Update the entire content of a file
|
|
215
|
-
*/
|
|
216
|
-
async updateContent(filepath, content) {
|
|
217
|
-
validateFilePath(filepath);
|
|
218
|
-
if (!content || typeof content !== 'string') {
|
|
219
|
-
throw new ObsidianError('Invalid content: Content must be a non-empty string', 40003);
|
|
220
|
-
}
|
|
221
|
-
return this.safeRequest(async () => {
|
|
222
|
-
logger.debug(`Updating content of file: ${filepath}`);
|
|
223
|
-
await this.client.put(`/vault/${filepath}`, content, {
|
|
224
|
-
headers: {
|
|
225
|
-
"Content-Type": "text/markdown"
|
|
226
|
-
}
|
|
227
|
-
});
|
|
228
|
-
});
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Execute a complex search using JsonLogic query
|
|
232
|
-
*/
|
|
233
|
-
async searchJson(query) {
|
|
234
|
-
return this.safeRequest(async () => {
|
|
235
|
-
logger.debug(`Executing JSON search with query: ${JSON.stringify(query)}`);
|
|
236
|
-
const isTagSearch = JSON.stringify(query).includes('"contains"') &&
|
|
237
|
-
JSON.stringify(query).includes('"#"');
|
|
238
|
-
const response = await this.client.post("/search/", query, {
|
|
239
|
-
headers: {
|
|
240
|
-
"Content-Type": "application/vnd.olrapi.jsonlogic+json",
|
|
241
|
-
"Accept": "application/vnd.olrapi.note+json"
|
|
242
|
-
}
|
|
243
|
-
});
|
|
244
|
-
return response.data;
|
|
245
|
-
});
|
|
246
|
-
}
|
|
247
|
-
/**
|
|
248
|
-
* Get server status
|
|
249
|
-
*/
|
|
250
|
-
async getStatus() {
|
|
251
|
-
return this.safeRequest(async () => {
|
|
252
|
-
logger.debug('Getting server status');
|
|
253
|
-
const response = await this.client.get("/");
|
|
254
|
-
return response.data;
|
|
255
|
-
});
|
|
256
|
-
}
|
|
257
|
-
/**
|
|
258
|
-
* List available commands
|
|
259
|
-
*/
|
|
260
|
-
async listCommands() {
|
|
261
|
-
return this.safeRequest(async () => {
|
|
262
|
-
logger.debug('Listing commands');
|
|
263
|
-
const response = await this.client.get("/commands/");
|
|
264
|
-
return response.data.commands;
|
|
265
|
-
});
|
|
266
|
-
}
|
|
267
|
-
/**
|
|
268
|
-
* Execute a command by ID
|
|
269
|
-
*/
|
|
270
|
-
async executeCommand(commandId) {
|
|
271
|
-
return this.safeRequest(async () => {
|
|
272
|
-
logger.debug(`Executing command: ${commandId}`);
|
|
273
|
-
await this.client.post(`/commands/${commandId}/`);
|
|
274
|
-
});
|
|
275
|
-
}
|
|
276
|
-
/**
|
|
277
|
-
* Open a file in Obsidian
|
|
278
|
-
*/
|
|
279
|
-
async openFile(filepath, newLeaf = false) {
|
|
280
|
-
validateFilePath(filepath);
|
|
281
|
-
return this.safeRequest(async () => {
|
|
282
|
-
logger.debug(`Opening file: ${filepath}, newLeaf: ${newLeaf}`);
|
|
283
|
-
await this.client.post(`/open/${filepath}`, null, {
|
|
284
|
-
params: { newLeaf }
|
|
285
|
-
});
|
|
286
|
-
});
|
|
287
|
-
}
|
|
288
|
-
/**
|
|
289
|
-
* Get the currently active file
|
|
290
|
-
*/
|
|
291
|
-
async getActiveFile() {
|
|
292
|
-
return this.safeRequest(async () => {
|
|
293
|
-
logger.debug('Getting active file');
|
|
294
|
-
const response = await this.client.get("/active/", {
|
|
295
|
-
headers: {
|
|
296
|
-
"Accept": "application/vnd.olrapi.note+json"
|
|
297
|
-
}
|
|
298
|
-
});
|
|
299
|
-
return response.data;
|
|
300
|
-
});
|
|
301
|
-
}
|
|
302
|
-
/**
|
|
303
|
-
* Update the active file
|
|
304
|
-
*/
|
|
305
|
-
async updateActiveFile(content) {
|
|
306
|
-
return this.safeRequest(async () => {
|
|
307
|
-
logger.debug('Updating active file');
|
|
308
|
-
await this.client.put("/active/", content, {
|
|
309
|
-
headers: {
|
|
310
|
-
"Content-Type": "text/markdown"
|
|
311
|
-
}
|
|
312
|
-
});
|
|
313
|
-
});
|
|
314
|
-
}
|
|
315
|
-
/**
|
|
316
|
-
* Delete the active file
|
|
317
|
-
*/
|
|
318
|
-
async deleteActiveFile() {
|
|
319
|
-
return this.safeRequest(async () => {
|
|
320
|
-
logger.debug('Deleting active file');
|
|
321
|
-
await this.client.delete("/active/");
|
|
322
|
-
});
|
|
323
|
-
}
|
|
324
|
-
/**
|
|
325
|
-
* Patch the active file
|
|
326
|
-
*/
|
|
327
|
-
async patchActiveFile(operation, targetType, target, content, options) {
|
|
328
|
-
return this.safeRequest(async () => {
|
|
329
|
-
logger.debug(`Patching active file: ${operation} ${targetType} "${target}"`);
|
|
330
|
-
const headers = {
|
|
331
|
-
"Operation": operation,
|
|
332
|
-
"Target-Type": targetType,
|
|
333
|
-
"Target": target,
|
|
334
|
-
"Content-Type": options?.contentType || "text/markdown"
|
|
335
|
-
};
|
|
336
|
-
if (options?.delimiter) {
|
|
337
|
-
headers["Target-Delimiter"] = options.delimiter;
|
|
338
|
-
}
|
|
339
|
-
if (options?.trimWhitespace !== undefined) {
|
|
340
|
-
headers["Trim-Target-Whitespace"] = options.trimWhitespace.toString();
|
|
341
|
-
}
|
|
342
|
-
await this.client.patch("/active/", content, { headers });
|
|
343
|
-
});
|
|
344
|
-
}
|
|
345
|
-
/**
|
|
346
|
-
* Get a periodic note (e.g., daily, weekly)
|
|
347
|
-
*/
|
|
348
|
-
async getPeriodicNote(period) {
|
|
349
|
-
return this.safeRequest(async () => {
|
|
350
|
-
logger.debug(`Getting ${period} periodic note`);
|
|
351
|
-
const response = await this.client.get(`/periodic/${period}/`, {
|
|
352
|
-
headers: {
|
|
353
|
-
"Accept": "application/vnd.olrapi.note+json"
|
|
354
|
-
}
|
|
355
|
-
});
|
|
356
|
-
return response.data;
|
|
357
|
-
});
|
|
358
|
-
}
|
|
359
|
-
/**
|
|
360
|
-
* Update a periodic note
|
|
361
|
-
*/
|
|
362
|
-
async updatePeriodicNote(period, content) {
|
|
363
|
-
return this.safeRequest(async () => {
|
|
364
|
-
logger.debug(`Updating ${period} periodic note`);
|
|
365
|
-
await this.client.put(`/periodic/${period}/`, content, {
|
|
366
|
-
headers: {
|
|
367
|
-
"Content-Type": "text/markdown"
|
|
368
|
-
}
|
|
369
|
-
});
|
|
370
|
-
});
|
|
371
|
-
}
|
|
372
|
-
/**
|
|
373
|
-
* Delete a periodic note
|
|
374
|
-
*/
|
|
375
|
-
async deletePeriodicNote(period) {
|
|
376
|
-
return this.safeRequest(async () => {
|
|
377
|
-
logger.debug(`Deleting ${period} periodic note`);
|
|
378
|
-
await this.client.delete(`/periodic/${period}/`);
|
|
379
|
-
});
|
|
380
|
-
}
|
|
381
|
-
/**
|
|
382
|
-
* Patch a periodic note
|
|
383
|
-
*/
|
|
384
|
-
async patchPeriodicNote(period, operation, targetType, target, content, options) {
|
|
385
|
-
return this.safeRequest(async () => {
|
|
386
|
-
logger.debug(`Patching ${period} periodic note: ${operation} ${targetType} "${target}"`);
|
|
387
|
-
const headers = {
|
|
388
|
-
"Operation": operation,
|
|
389
|
-
"Target-Type": targetType,
|
|
390
|
-
"Target": target,
|
|
391
|
-
"Content-Type": options?.contentType || "text/markdown"
|
|
392
|
-
};
|
|
393
|
-
if (options?.delimiter) {
|
|
394
|
-
headers["Target-Delimiter"] = options.delimiter;
|
|
395
|
-
}
|
|
396
|
-
if (options?.trimWhitespace !== undefined) {
|
|
397
|
-
headers["Trim-Target-Whitespace"] = options.trimWhitespace.toString();
|
|
398
|
-
}
|
|
399
|
-
await this.client.patch(`/periodic/${period}/`, content, { headers });
|
|
400
|
-
});
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
//# sourceMappingURL=client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/obsidian/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Error handling for Obsidian client
|
|
3
|
-
*/
|
|
4
|
-
import { AxiosError } from "axios";
|
|
5
|
-
import type { ApiError } from '../utils/errors.js';
|
|
6
|
-
import { ObsidianError } from '../utils/errors.js';
|
|
7
|
-
/**
|
|
8
|
-
* Helper function to create a descriptive error message for SSL certificate issues
|
|
9
|
-
*/
|
|
10
|
-
export declare function createSSLErrorMessage(error: Error, config: {
|
|
11
|
-
verifySSL: boolean;
|
|
12
|
-
}): string;
|
|
13
|
-
/**
|
|
14
|
-
* Helper function to create a descriptive error message for connection refused issues
|
|
15
|
-
*/
|
|
16
|
-
export declare function createConnectionRefusedMessage(host: string, port: number): string;
|
|
17
|
-
/**
|
|
18
|
-
* Helper function to create a descriptive error message for authentication failures
|
|
19
|
-
*/
|
|
20
|
-
export declare function createAuthFailedMessage(): string;
|
|
21
|
-
/**
|
|
22
|
-
* Helper function to create a descriptive error message for missing API key
|
|
23
|
-
*/
|
|
24
|
-
export declare function createMissingAPIKeyMessage(): string;
|
|
25
|
-
/**
|
|
26
|
-
* Helper function to handle Axios errors consistently
|
|
27
|
-
*/
|
|
28
|
-
export declare function handleAxiosError(error: AxiosError<ApiError>, host: string, port: number): ObsidianError;
|
package/dist/obsidian/errors.js
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { ObsidianError, getErrorCodeFromStatus } from '../utils/errors.js';
|
|
2
|
-
/**
|
|
3
|
-
* Helper function to create a descriptive error message for SSL certificate issues
|
|
4
|
-
*/
|
|
5
|
-
export function createSSLErrorMessage(error, config) {
|
|
6
|
-
return (`SSL certificate verification failed. You have two options:\n\n` +
|
|
7
|
-
`Option 1 - Enable HTTP (not recommended for production):\n` +
|
|
8
|
-
`1. Go to Obsidian Settings > Local REST API\n` +
|
|
9
|
-
`2. Enable "Enable Non-encrypted (HTTP) Server"\n` +
|
|
10
|
-
`3. Update your client config to use "http" protocol\n\n` +
|
|
11
|
-
`Option 2 - Configure HTTPS (recommended):\n` +
|
|
12
|
-
`1. Go to Obsidian Settings > Local REST API\n` +
|
|
13
|
-
`2. Under 'How to Access', copy the certificate\n` +
|
|
14
|
-
`3. Add the certificate to your system's trusted certificates:\n` +
|
|
15
|
-
` - On macOS: Add to Keychain Access\n` +
|
|
16
|
-
` - On Windows: Add to Certificate Manager\n` +
|
|
17
|
-
` - On Linux: Add to ca-certificates\n` +
|
|
18
|
-
` For development only: Set verifySSL: false in client config\n\n` +
|
|
19
|
-
`Original error: ${error.message}`);
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Helper function to create a descriptive error message for connection refused issues
|
|
23
|
-
*/
|
|
24
|
-
export function createConnectionRefusedMessage(host, port) {
|
|
25
|
-
return (`Connection refused. To fix this:\n` +
|
|
26
|
-
`1. Ensure Obsidian is running\n` +
|
|
27
|
-
`2. Verify the 'Local REST API' plugin is enabled in Obsidian Settings\n` +
|
|
28
|
-
`3. Check that you're using the correct host (${host}) and port (${port})\n` +
|
|
29
|
-
`4. Make sure HTTPS is enabled in the plugin settings`);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Helper function to create a descriptive error message for authentication failures
|
|
33
|
-
*/
|
|
34
|
-
export function createAuthFailedMessage() {
|
|
35
|
-
return (`Authentication failed. To fix this:\n` +
|
|
36
|
-
`1. Go to Obsidian Settings > Local REST API\n` +
|
|
37
|
-
`2. Copy your API key from the settings\n` +
|
|
38
|
-
`3. Update your configuration with the new API key\n` +
|
|
39
|
-
`Note: The API key changes when you regenerate certificates`);
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Helper function to create a descriptive error message for missing API key
|
|
43
|
-
*/
|
|
44
|
-
export function createMissingAPIKeyMessage() {
|
|
45
|
-
return (`Missing API key. To fix this:\n` +
|
|
46
|
-
`1. Install the 'Local REST API' plugin in Obsidian\n` +
|
|
47
|
-
`2. Enable the plugin in Obsidian Settings\n` +
|
|
48
|
-
`3. Copy your API key from Obsidian Settings > Local REST API\n` +
|
|
49
|
-
`4. Provide the API key in your configuration`);
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Helper function to handle Axios errors consistently
|
|
53
|
-
*/
|
|
54
|
-
export function handleAxiosError(error, host, port) {
|
|
55
|
-
const response = error.response;
|
|
56
|
-
const errorData = response?.data;
|
|
57
|
-
// Handle common connection errors with helpful messages
|
|
58
|
-
if (error.code === 'DEPTH_ZERO_SELF_SIGNED_CERT' || error.code === 'UNABLE_TO_VERIFY_LEAF_SIGNATURE') {
|
|
59
|
-
return new ObsidianError(createSSLErrorMessage(error, { verifySSL: true }), 50001, // SSL error code
|
|
60
|
-
{ code: error.code });
|
|
61
|
-
}
|
|
62
|
-
if (error.code === 'ECONNREFUSED') {
|
|
63
|
-
return new ObsidianError(createConnectionRefusedMessage(host, port), 50002, // Connection refused
|
|
64
|
-
{ code: error.code });
|
|
65
|
-
}
|
|
66
|
-
if (response?.status === 401) {
|
|
67
|
-
return new ObsidianError(createAuthFailedMessage(), 40100, // Unauthorized
|
|
68
|
-
{ code: error.code });
|
|
69
|
-
}
|
|
70
|
-
// For other errors, use API error code if available
|
|
71
|
-
const errorCode = errorData?.errorCode ?? getErrorCodeFromStatus(response?.status ?? 500);
|
|
72
|
-
const message = errorData?.message ?? error.message ?? "Unknown error";
|
|
73
|
-
return new ObsidianError(message, errorCode, errorData);
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/obsidian/errors.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE3E;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAY,EAAE,MAA8B;IAChF,OAAO,CACL,gEAAgE;QAChE,4DAA4D;QAC5D,+CAA+C;QAC/C,kDAAkD;QAClD,yDAAyD;QACzD,6CAA6C;QAC7C,+CAA+C;QAC/C,kDAAkD;QAClD,iEAAiE;QACjE,yCAAyC;QACzC,+CAA+C;QAC/C,yCAAyC;QACzC,oEAAoE;QACpE,mBAAmB,KAAK,CAAC,OAAO,EAAE,CACnC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAAC,IAAY,EAAE,IAAY;IACvE,OAAO,CACL,oCAAoC;QACpC,iCAAiC;QACjC,yEAAyE;QACzE,gDAAgD,IAAI,eAAe,IAAI,KAAK;QAC5E,sDAAsD,CACvD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,CACL,uCAAuC;QACvC,+CAA+C;QAC/C,0CAA0C;QAC1C,qDAAqD;QACrD,4DAA4D,CAC7D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B;IACxC,OAAO,CACL,iCAAiC;QACjC,sDAAsD;QACtD,6CAA6C;QAC7C,gEAAgE;QAChE,8CAA8C,CAC/C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAA2B,EAAE,IAAY,EAAE,IAAY;IACtF,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAChC,MAAM,SAAS,GAAG,QAAQ,EAAE,IAAI,CAAC;IAEjC,wDAAwD;IACxD,IAAI,KAAK,CAAC,IAAI,KAAK,6BAA6B,IAAI,KAAK,CAAC,IAAI,KAAK,iCAAiC,EAAE,CAAC;QACrG,OAAO,IAAI,aAAa,CACtB,qBAAqB,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EACjD,KAAK,EAAE,iBAAiB;QACxB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CACrB,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAClC,OAAO,IAAI,aAAa,CACtB,8BAA8B,CAAC,IAAI,EAAE,IAAI,CAAC,EAC1C,KAAK,EAAE,qBAAqB;QAC5B,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CACrB,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;QAC7B,OAAO,IAAI,aAAa,CACtB,uBAAuB,EAAE,EACzB,KAAK,EAAE,eAAe;QACtB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CACrB,CAAC;IACJ,CAAC;IAED,oDAAoD;IACpD,MAAM,SAAS,GAAG,SAAS,EAAE,SAAS,IAAI,sBAAsB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,CAAC,CAAC;IAC1F,MAAM,OAAO,GAAG,SAAS,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,eAAe,CAAC;IACvE,OAAO,IAAI,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAC1D,CAAC"}
|
package/dist/obsidian/index.d.ts
DELETED
package/dist/obsidian/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/obsidian/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|
package/dist/obsidian/types.d.ts
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Type definitions for Obsidian client
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Configuration for the Obsidian client
|
|
6
|
-
*/
|
|
7
|
-
export interface ObsidianConfig {
|
|
8
|
-
apiKey: string;
|
|
9
|
-
verifySSL?: boolean;
|
|
10
|
-
timeout?: number;
|
|
11
|
-
maxContentLength?: number;
|
|
12
|
-
maxBodyLength?: number;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Server configuration for Obsidian
|
|
16
|
-
*/
|
|
17
|
-
export interface ObsidianServerConfig {
|
|
18
|
-
protocol: "http" | "https";
|
|
19
|
-
host: string;
|
|
20
|
-
port: number;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Default configuration for Obsidian server
|
|
24
|
-
*/
|
|
25
|
-
export declare const DEFAULT_OBSIDIAN_CONFIG: ObsidianServerConfig;
|
|
26
|
-
/**
|
|
27
|
-
* JSON representation of an Obsidian note
|
|
28
|
-
*/
|
|
29
|
-
export interface NoteJson {
|
|
30
|
-
content: string;
|
|
31
|
-
frontmatter: Record<string, unknown>;
|
|
32
|
-
path: string;
|
|
33
|
-
stat: {
|
|
34
|
-
ctime: number;
|
|
35
|
-
mtime: number;
|
|
36
|
-
size: number;
|
|
37
|
-
};
|
|
38
|
-
tags: string[];
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Obsidian file/folder information
|
|
42
|
-
*/
|
|
43
|
-
export interface ObsidianFile {
|
|
44
|
-
path: string;
|
|
45
|
-
type: "file" | "folder";
|
|
46
|
-
children?: ObsidianFile[];
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Obsidian command
|
|
50
|
-
*/
|
|
51
|
-
export interface ObsidianCommand {
|
|
52
|
-
id: string;
|
|
53
|
-
name: string;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Obsidian server status
|
|
57
|
-
*/
|
|
58
|
-
export interface ObsidianStatus {
|
|
59
|
-
authenticated: boolean;
|
|
60
|
-
ok: string;
|
|
61
|
-
service: string;
|
|
62
|
-
versions: {
|
|
63
|
-
obsidian: string;
|
|
64
|
-
self: string;
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Period type for periodic notes
|
|
69
|
-
*/
|
|
70
|
-
export interface PeriodType {
|
|
71
|
-
type: "daily" | "weekly" | "monthly" | "quarterly" | "yearly";
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Search match with context
|
|
75
|
-
*/
|
|
76
|
-
export interface SearchMatch {
|
|
77
|
-
context: string;
|
|
78
|
-
match: {
|
|
79
|
-
start: number;
|
|
80
|
-
end: number;
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Standard search result
|
|
85
|
-
*/
|
|
86
|
-
export interface SearchResult {
|
|
87
|
-
filename: string;
|
|
88
|
-
result: unknown;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Simple search result with context
|
|
92
|
-
*/
|
|
93
|
-
export interface SimpleSearchResult {
|
|
94
|
-
filename: string;
|
|
95
|
-
score: number;
|
|
96
|
-
matches: SearchMatch[];
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Union type for search responses
|
|
100
|
-
*/
|
|
101
|
-
export type SearchResponse = SearchResult | SimpleSearchResult;
|
|
102
|
-
/**
|
|
103
|
-
* JSON Logic query for complex searches
|
|
104
|
-
*/
|
|
105
|
-
export interface JsonLogicQuery {
|
|
106
|
-
[operator: string]: unknown;
|
|
107
|
-
}
|
package/dist/obsidian/types.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Type definitions for Obsidian client
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Default configuration for Obsidian server
|
|
6
|
-
*/
|
|
7
|
-
export const DEFAULT_OBSIDIAN_CONFIG = {
|
|
8
|
-
protocol: "https", // HTTPS required by default in Obsidian REST API plugin
|
|
9
|
-
host: "127.0.0.1",
|
|
10
|
-
port: 27124
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/obsidian/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAsBH;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAyB;IAC3D,QAAQ,EAAE,OAAO,EAAE,wDAAwD;IAC3E,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,KAAK;CACH,CAAC"}
|