@novis10813/secondbrain-cli 0.1.0 → 0.1.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 +71 -81
- package/dist/commands/backlinks.d.ts.map +1 -1
- package/dist/commands/backlinks.js +16 -33
- package/dist/commands/backlinks.js.map +1 -1
- package/dist/commands/capture.d.ts.map +1 -1
- package/dist/commands/capture.js +71 -57
- package/dist/commands/capture.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +5 -20
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/get.js +27 -26
- package/dist/commands/get.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +21 -4
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/migrate.d.ts +3 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +22 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/open.d.ts +3 -0
- package/dist/commands/open.d.ts.map +1 -0
- package/dist/commands/open.js +28 -0
- package/dist/commands/open.js.map +1 -0
- package/dist/commands/orphans.d.ts.map +1 -1
- package/dist/commands/orphans.js +9 -27
- package/dist/commands/orphans.js.map +1 -1
- package/dist/commands/outlinks.d.ts +3 -0
- package/dist/commands/outlinks.d.ts.map +1 -0
- package/dist/commands/outlinks.js +48 -0
- package/dist/commands/outlinks.js.map +1 -0
- package/dist/commands/search.d.ts +2 -0
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +57 -39
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/stats.d.ts.map +1 -1
- package/dist/commands/stats.js +4 -18
- package/dist/commands/stats.js.map +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +3 -17
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/template.d.ts +3 -0
- package/dist/commands/template.d.ts.map +1 -0
- package/dist/commands/template.js +63 -0
- package/dist/commands/template.js.map +1 -0
- package/dist/commands/vault.d.ts +3 -0
- package/dist/commands/vault.d.ts.map +1 -0
- package/dist/commands/vault.js +233 -0
- package/dist/commands/vault.js.map +1 -0
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +134 -10
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/config.d.ts +3 -1
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +12 -0
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/database.d.ts +58 -14
- package/dist/utils/database.d.ts.map +1 -1
- package/dist/utils/database.js +627 -207
- package/dist/utils/database.js.map +1 -1
- package/dist/utils/global-config.d.ts +53 -0
- package/dist/utils/global-config.d.ts.map +1 -0
- package/dist/utils/global-config.js +144 -0
- package/dist/utils/global-config.js.map +1 -0
- package/dist/utils/parser.d.ts +95 -2
- package/dist/utils/parser.d.ts.map +1 -1
- package/dist/utils/parser.js +466 -39
- package/dist/utils/parser.js.map +1 -1
- package/dist/utils/placeholder.d.ts +37 -0
- package/dist/utils/placeholder.d.ts.map +1 -0
- package/dist/utils/placeholder.js +113 -0
- package/dist/utils/placeholder.js.map +1 -0
- package/dist/utils/position.d.ts +10 -0
- package/dist/utils/position.d.ts.map +1 -0
- package/dist/utils/position.js +24 -0
- package/dist/utils/position.js.map +1 -0
- package/dist/utils/sqlite-adapter.d.ts +8 -0
- package/dist/utils/sqlite-adapter.d.ts.map +1 -0
- package/dist/utils/sqlite-adapter.js +14 -0
- package/dist/utils/sqlite-adapter.js.map +1 -0
- package/dist/utils/template.d.ts +2 -2
- package/dist/utils/template.d.ts.map +1 -1
- package/dist/utils/template.js +8 -3
- package/dist/utils/template.js.map +1 -1
- package/dist/utils/vault-resolve.d.ts +23 -0
- package/dist/utils/vault-resolve.d.ts.map +1 -0
- package/dist/utils/vault-resolve.js +86 -0
- package/dist/utils/vault-resolve.js.map +1 -0
- package/dist/utils/vault.d.ts +77 -10
- package/dist/utils/vault.d.ts.map +1 -1
- package/dist/utils/vault.js +262 -98
- package/dist/utils/vault.js.map +1 -1
- package/package.json +9 -3
package/dist/commands/sync.js
CHANGED
|
@@ -2,21 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createSyncCommand = createSyncCommand;
|
|
4
4
|
const commander_1 = require("commander");
|
|
5
|
-
const
|
|
6
|
-
const vault_js_1 = require("../utils/vault.js");
|
|
5
|
+
const vault_resolve_js_1 = require("../utils/vault-resolve.js");
|
|
7
6
|
function createSyncCommand() {
|
|
8
7
|
const command = new commander_1.Command('sync')
|
|
9
8
|
.description('Sync vault with database index')
|
|
10
9
|
.action(async () => {
|
|
11
|
-
|
|
12
|
-
const vaultPath = config_js_1.ConfigManager.findVaultPath();
|
|
13
|
-
if (!vaultPath) {
|
|
14
|
-
console.error('❌ Not in a SecondBrain vault. Run `sb init` first.');
|
|
15
|
-
process.exit(1);
|
|
16
|
-
}
|
|
17
|
-
const configManager = new config_js_1.ConfigManager(vaultPath);
|
|
18
|
-
const config = configManager.getConfig();
|
|
19
|
-
const vault = new vault_js_1.VaultManager(config);
|
|
10
|
+
await (0, vault_resolve_js_1.withVault)(async (vault) => {
|
|
20
11
|
console.log('🔄 Syncing vault...');
|
|
21
12
|
const result = await vault.sync();
|
|
22
13
|
console.log('✅ Sync complete!');
|
|
@@ -29,12 +20,7 @@ function createSyncCommand() {
|
|
|
29
20
|
console.log(`Total notes: ${stats.totalNotes}`);
|
|
30
21
|
console.log(`Total links: ${stats.totalLinks}`);
|
|
31
22
|
console.log(`Orphan notes: ${stats.orphans}`);
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
catch (error) {
|
|
35
|
-
console.error('❌ Sync failed:', error instanceof Error ? error.message : String(error));
|
|
36
|
-
process.exit(1);
|
|
37
|
-
}
|
|
23
|
+
});
|
|
38
24
|
});
|
|
39
25
|
return command;
|
|
40
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":";;AAGA,8CAqBC;AAxBD,yCAAoC;AACpC,gEAAsD;AAEtD,SAAgB,iBAAiB;IAC/B,MAAM,OAAO,GAAG,IAAI,mBAAO,CAAC,MAAM,CAAC;SAChC,WAAW,CAAC,gCAAgC,CAAC;SAC7C,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,IAAA,4BAAS,EAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC9B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/commands/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,qBAAqB,IAAI,OAAO,CA4D/C"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTemplateCommand = createTemplateCommand;
|
|
4
|
+
const commander_1 = require("commander");
|
|
5
|
+
const vault_resolve_js_1 = require("../utils/vault-resolve.js");
|
|
6
|
+
const config_js_1 = require("../utils/config.js");
|
|
7
|
+
const template_js_1 = require("../utils/template.js");
|
|
8
|
+
function createTemplateCommand() {
|
|
9
|
+
const command = new commander_1.Command('template')
|
|
10
|
+
.description('Manage note templates and their configurations');
|
|
11
|
+
command
|
|
12
|
+
.command('list')
|
|
13
|
+
.description('List all available templates')
|
|
14
|
+
.action(async () => {
|
|
15
|
+
await (0, vault_resolve_js_1.withVault)(async (vault) => {
|
|
16
|
+
const templateManager = new template_js_1.TemplateManager(vault.config);
|
|
17
|
+
const templates = templateManager.listTemplates();
|
|
18
|
+
if (templates.length === 0) {
|
|
19
|
+
console.log('No templates found.');
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
console.log('Available templates:');
|
|
23
|
+
templates.forEach(t => console.log(`- ${t}`));
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
command
|
|
28
|
+
.command('get')
|
|
29
|
+
.description('Get configuration for a template')
|
|
30
|
+
.argument('<name>', 'Template name')
|
|
31
|
+
.action(async (name) => {
|
|
32
|
+
await (0, vault_resolve_js_1.withVault)(async (vault) => {
|
|
33
|
+
const configManager = new config_js_1.ConfigManager(vault.config.vaultPath);
|
|
34
|
+
const templateConfig = configManager.getTemplateConfig(name);
|
|
35
|
+
if (!templateConfig) {
|
|
36
|
+
console.log(`No configuration found for template: ${name}`);
|
|
37
|
+
console.log('{}');
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
console.log(JSON.stringify(templateConfig, null, 2));
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
command
|
|
45
|
+
.command('set')
|
|
46
|
+
.description('Set configuration for a template')
|
|
47
|
+
.argument('<name>', 'Template name')
|
|
48
|
+
.option('--folder <path>', 'Default folder for new notes created with this template')
|
|
49
|
+
.action(async (name, options) => {
|
|
50
|
+
await (0, vault_resolve_js_1.withVault)(async (vault) => {
|
|
51
|
+
const configManager = new config_js_1.ConfigManager(vault.config.vaultPath);
|
|
52
|
+
const existing = configManager.getTemplateConfig(name) || {};
|
|
53
|
+
if (options.folder !== undefined) {
|
|
54
|
+
existing.targetFolder = options.folder;
|
|
55
|
+
}
|
|
56
|
+
configManager.setTemplateConfig(name, existing);
|
|
57
|
+
console.log(`✅ Configuration updated for template: ${name}`);
|
|
58
|
+
console.log(JSON.stringify(existing, null, 2));
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
return command;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/commands/template.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["../../src/commands/vault.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4BpC,wBAAgB,kBAAkB,IAAI,OAAO,CAmM5C"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.createVaultCommand = createVaultCommand;
|
|
37
|
+
// src/commands/vault.ts
|
|
38
|
+
const commander_1 = require("commander");
|
|
39
|
+
const config_js_1 = require("../utils/config.js");
|
|
40
|
+
const global_config_js_1 = require("../utils/global-config.js");
|
|
41
|
+
const vault_resolve_js_1 = require("../utils/vault-resolve.js");
|
|
42
|
+
const fs_1 = require("fs");
|
|
43
|
+
const path_1 = require("path");
|
|
44
|
+
const os_1 = require("os");
|
|
45
|
+
const readline = __importStar(require("readline"));
|
|
46
|
+
const DEFAULT_VAULT_PATH = (0, path_1.join)((0, os_1.homedir)(), 'vault');
|
|
47
|
+
function createReadlineInterface() {
|
|
48
|
+
return readline.createInterface({
|
|
49
|
+
input: process.stdin,
|
|
50
|
+
output: process.stdout
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
async function confirm(message) {
|
|
54
|
+
const rl = createReadlineInterface();
|
|
55
|
+
return new Promise((resolve) => {
|
|
56
|
+
rl.question(`${message} (y/N) `, (answer) => {
|
|
57
|
+
rl.close();
|
|
58
|
+
resolve(answer.toLowerCase() === 'y');
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
function createVaultCommand() {
|
|
63
|
+
const command = new commander_1.Command('vault')
|
|
64
|
+
.description('Manage SecondBrain vaults');
|
|
65
|
+
// sb vault init [path]
|
|
66
|
+
command
|
|
67
|
+
.command('init [path]')
|
|
68
|
+
.description('Initialize a new SecondBrain vault')
|
|
69
|
+
.action((path) => {
|
|
70
|
+
try {
|
|
71
|
+
const vaultPath = (0, path_1.resolve)(path ?? DEFAULT_VAULT_PATH);
|
|
72
|
+
const configManager = new config_js_1.ConfigManager(vaultPath);
|
|
73
|
+
const globalConfig = new global_config_js_1.GlobalConfigManager();
|
|
74
|
+
if (configManager.isInitialized()) {
|
|
75
|
+
console.log('⚠️ Vault already initialized at:', vaultPath);
|
|
76
|
+
// 確保已註冊到全域設定
|
|
77
|
+
const entry = globalConfig.addVault(vaultPath);
|
|
78
|
+
if (entry) {
|
|
79
|
+
console.log(`✅ Registered as "${entry.name}" in global config`);
|
|
80
|
+
}
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const config = configManager.init();
|
|
84
|
+
const entry = globalConfig.addVault(vaultPath);
|
|
85
|
+
console.log('✅ SecondBrain vault initialized!');
|
|
86
|
+
console.log('Vault path:', config.vaultPath);
|
|
87
|
+
console.log('Vault name:', entry?.name ?? 'unknown');
|
|
88
|
+
console.log('Daily notes:', config.dailyNotesFolder);
|
|
89
|
+
console.log('Templates:', config.templatesFolder);
|
|
90
|
+
console.log();
|
|
91
|
+
console.log('Next steps:');
|
|
92
|
+
console.log(' 1. Create notes in your vault');
|
|
93
|
+
console.log(' 2. Run `sb sync` to index existing notes');
|
|
94
|
+
console.log(' 3. Use `sb capture` to create new notes');
|
|
95
|
+
console.log();
|
|
96
|
+
console.log('To use this vault:');
|
|
97
|
+
console.log(` eval $(sb vault use ${entry?.name ?? vaultPath})`);
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
console.error('❌ Failed to initialize vault:', error instanceof Error ? error.message : String(error));
|
|
101
|
+
process.exit(1);
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
// sb vault use <name|path>
|
|
105
|
+
command
|
|
106
|
+
.command('use <nameOrPath>')
|
|
107
|
+
.description('Output export command to set active vault (use with eval)')
|
|
108
|
+
.action((nameOrPath) => {
|
|
109
|
+
const globalConfig = new global_config_js_1.GlobalConfigManager();
|
|
110
|
+
const vault = globalConfig.findVault(nameOrPath);
|
|
111
|
+
let vaultPath;
|
|
112
|
+
if (vault) {
|
|
113
|
+
vaultPath = vault.path;
|
|
114
|
+
}
|
|
115
|
+
else if ((0, fs_1.existsSync)((0, path_1.join)(nameOrPath, '.secondbrain', 'config.json'))) {
|
|
116
|
+
vaultPath = (0, path_1.resolve)(nameOrPath);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
console.error(`❌ Vault not found: ${nameOrPath}`);
|
|
120
|
+
console.error('Run `sb vault list` to see available vaults');
|
|
121
|
+
process.exit(1);
|
|
122
|
+
}
|
|
123
|
+
// 輸出 export 語句,供 eval 使用
|
|
124
|
+
console.log(`export SECONDBRAIN_VAULT="${vaultPath}"`);
|
|
125
|
+
});
|
|
126
|
+
// sb vault current
|
|
127
|
+
command
|
|
128
|
+
.command('current')
|
|
129
|
+
.description('Show the currently active vault')
|
|
130
|
+
.action(() => {
|
|
131
|
+
const vaultPath = (0, vault_resolve_js_1.resolveVaultPath)();
|
|
132
|
+
if (!vaultPath) {
|
|
133
|
+
console.log('❌ No active vault');
|
|
134
|
+
console.log('Set a vault with: eval $(sb vault use <name>)');
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
const globalConfig = new global_config_js_1.GlobalConfigManager();
|
|
138
|
+
const vault = globalConfig.findVault(vaultPath);
|
|
139
|
+
const envVault = process.env.SECONDBRAIN_VAULT;
|
|
140
|
+
console.log('📁 Current vault:', vault?.name ?? vaultPath);
|
|
141
|
+
console.log(' Path:', vaultPath);
|
|
142
|
+
if (envVault) {
|
|
143
|
+
console.log(' Source: SECONDBRAIN_VAULT environment variable');
|
|
144
|
+
}
|
|
145
|
+
else if (config_js_1.ConfigManager.findVaultPath() === vaultPath) {
|
|
146
|
+
console.log(' Source: Local directory detection');
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
console.log(' Source: Default vault');
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
// sb vault list
|
|
153
|
+
command
|
|
154
|
+
.command('list')
|
|
155
|
+
.description('List all registered vaults')
|
|
156
|
+
.action(() => {
|
|
157
|
+
const globalConfig = new global_config_js_1.GlobalConfigManager();
|
|
158
|
+
const vaults = globalConfig.listVaults();
|
|
159
|
+
const defaultVault = globalConfig.getDefault();
|
|
160
|
+
const currentPath = (0, vault_resolve_js_1.resolveVaultPath)();
|
|
161
|
+
if (vaults.length === 0) {
|
|
162
|
+
console.log('No vaults registered.');
|
|
163
|
+
console.log('Initialize a vault with: sb vault init [path]');
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
console.log('Registered vaults:\n');
|
|
167
|
+
for (const vault of vaults) {
|
|
168
|
+
const isDefault = defaultVault?.name === vault.name;
|
|
169
|
+
const isCurrent = currentPath === vault.path;
|
|
170
|
+
const markers = [
|
|
171
|
+
isDefault ? '(default)' : '',
|
|
172
|
+
isCurrent ? '(current)' : ''
|
|
173
|
+
].filter(Boolean).join(' ');
|
|
174
|
+
console.log(` ${vault.name} ${markers}`);
|
|
175
|
+
console.log(` ${vault.path}`);
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
// sb vault default (查看)
|
|
179
|
+
const defaultCommand = command
|
|
180
|
+
.command('default')
|
|
181
|
+
.description('Show or set the default vault');
|
|
182
|
+
defaultCommand
|
|
183
|
+
.action(() => {
|
|
184
|
+
const globalConfig = new global_config_js_1.GlobalConfigManager();
|
|
185
|
+
const defaultVault = globalConfig.getDefault();
|
|
186
|
+
if (!defaultVault) {
|
|
187
|
+
console.log('No default vault set.');
|
|
188
|
+
console.log('Set a default with: sb vault default set <name>');
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
console.log('Default vault:', defaultVault.name);
|
|
192
|
+
console.log('Path:', defaultVault.path);
|
|
193
|
+
});
|
|
194
|
+
// sb vault default set <name|path>
|
|
195
|
+
defaultCommand
|
|
196
|
+
.command('set <nameOrPath>')
|
|
197
|
+
.description('Set the default vault')
|
|
198
|
+
.action((nameOrPath) => {
|
|
199
|
+
const globalConfig = new global_config_js_1.GlobalConfigManager();
|
|
200
|
+
try {
|
|
201
|
+
globalConfig.setDefault(nameOrPath);
|
|
202
|
+
const vault = globalConfig.findVault(nameOrPath);
|
|
203
|
+
console.log(`✅ Default vault set to: ${vault?.name ?? nameOrPath}`);
|
|
204
|
+
}
|
|
205
|
+
catch (error) {
|
|
206
|
+
console.error('❌', error instanceof Error ? error.message : String(error));
|
|
207
|
+
console.error('Run `sb vault list` to see available vaults');
|
|
208
|
+
process.exit(1);
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
// sb vault delete <name|path>
|
|
212
|
+
command
|
|
213
|
+
.command('delete <nameOrPath>')
|
|
214
|
+
.description('Remove a vault from the registry (does not delete files)')
|
|
215
|
+
.action(async (nameOrPath) => {
|
|
216
|
+
const globalConfig = new global_config_js_1.GlobalConfigManager();
|
|
217
|
+
const vault = globalConfig.findVault(nameOrPath);
|
|
218
|
+
if (!vault) {
|
|
219
|
+
console.error(`❌ Vault not found: ${nameOrPath}`);
|
|
220
|
+
process.exit(1);
|
|
221
|
+
}
|
|
222
|
+
const confirmed = await confirm(`確定要移除 vault "${vault.name}" (${vault.path}) 的註冊嗎?`);
|
|
223
|
+
if (!confirmed) {
|
|
224
|
+
console.log('取消操作');
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
globalConfig.removeVault(nameOrPath);
|
|
228
|
+
console.log(`✅ Removed vault: ${vault.name}`);
|
|
229
|
+
console.log('Note: The vault files were not deleted.');
|
|
230
|
+
});
|
|
231
|
+
return command;
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=vault.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault.js","sourceRoot":"","sources":["../../src/commands/vault.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -3,15 +3,23 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
const commander_1 = require("commander");
|
|
5
5
|
const init_js_1 = require("./commands/init.js");
|
|
6
|
+
const vault_js_1 = require("./commands/vault.js");
|
|
6
7
|
const capture_js_1 = require("./commands/capture.js");
|
|
7
8
|
const search_js_1 = require("./commands/search.js");
|
|
8
9
|
const get_js_1 = require("./commands/get.js");
|
|
9
10
|
const backlinks_js_1 = require("./commands/backlinks.js");
|
|
11
|
+
const outlinks_js_1 = require("./commands/outlinks.js");
|
|
12
|
+
const open_js_1 = require("./commands/open.js");
|
|
10
13
|
const sync_js_1 = require("./commands/sync.js");
|
|
11
14
|
const stats_js_1 = require("./commands/stats.js");
|
|
12
15
|
const orphans_js_1 = require("./commands/orphans.js");
|
|
13
16
|
const config_js_1 = require("./commands/config.js");
|
|
14
|
-
const
|
|
17
|
+
const template_js_1 = require("./commands/template.js");
|
|
18
|
+
const fs_1 = require("fs");
|
|
19
|
+
const path_1 = require("path");
|
|
20
|
+
// Resolve package.json relative to the entry script (works for dist/index.js and bun run src/index.ts)
|
|
21
|
+
const entryDir = (0, path_1.dirname)(process.argv[1] ?? '');
|
|
22
|
+
const pkg = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(entryDir, '..', 'package.json'), 'utf-8'));
|
|
15
23
|
const program = new commander_1.Command();
|
|
16
24
|
program
|
|
17
25
|
.name('sb')
|
|
@@ -19,14 +27,18 @@ program
|
|
|
19
27
|
.version(pkg.version);
|
|
20
28
|
// Add commands
|
|
21
29
|
program.addCommand((0, init_js_1.createInitCommand)());
|
|
30
|
+
program.addCommand((0, vault_js_1.createVaultCommand)());
|
|
22
31
|
program.addCommand((0, capture_js_1.createCaptureCommand)());
|
|
23
32
|
program.addCommand((0, search_js_1.createSearchCommand)());
|
|
24
33
|
program.addCommand((0, get_js_1.createGetCommand)());
|
|
25
34
|
program.addCommand((0, backlinks_js_1.createBacklinksCommand)());
|
|
35
|
+
program.addCommand((0, outlinks_js_1.createOutlinksCommand)());
|
|
36
|
+
program.addCommand((0, open_js_1.createOpenCommand)());
|
|
26
37
|
program.addCommand((0, sync_js_1.createSyncCommand)());
|
|
27
38
|
program.addCommand((0, stats_js_1.createStatsCommand)());
|
|
28
39
|
program.addCommand((0, orphans_js_1.createOrphansCommand)());
|
|
29
40
|
program.addCommand((0, config_js_1.createConfigCommand)());
|
|
41
|
+
program.addCommand((0, template_js_1.createTemplateCommand)());
|
|
30
42
|
// Default action - show help
|
|
31
43
|
if (process.argv.length === 2) {
|
|
32
44
|
program.help();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,gDAAuD;AACvD,sDAA6D;AAC7D,oDAA2D;AAC3D,8CAAqD;AACrD,0DAAiE;AACjE,gDAAuD;AACvD,kDAAyD;AACzD,sDAA6D;AAC7D,oDAA2D;AAC3D,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,gDAAuD;AACvD,kDAAyD;AACzD,sDAA6D;AAC7D,oDAA2D;AAC3D,8CAAqD;AACrD,0DAAiE;AACjE,wDAA+D;AAC/D,gDAAuD;AACvD,gDAAuD;AACvD,kDAAyD;AACzD,sDAA6D;AAC7D,oDAA2D;AAC3D,wDAA+D;AAC/D,2BAAkC;AAClC,+BAAqC;AAErC,uGAAuG;AACvG,MAAM,QAAQ,GAAG,IAAA,cAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAChD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,QAAQ,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CACrC,CAAC;AAEzB,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,IAAI,CAAC;KACV,WAAW,CAAC,mEAAmE,CAAC;KAChF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAExB,eAAe;AACf,OAAO,CAAC,UAAU,CAAC,IAAA,2BAAiB,GAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,IAAA,6BAAkB,GAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,IAAA,iCAAoB,GAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,IAAA,+BAAmB,GAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,IAAA,yBAAgB,GAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,IAAA,qCAAsB,GAAE,CAAC,CAAC;AAC7C,OAAO,CAAC,UAAU,CAAC,IAAA,mCAAqB,GAAE,CAAC,CAAC;AAC5C,OAAO,CAAC,UAAU,CAAC,IAAA,2BAAiB,GAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,IAAA,2BAAiB,GAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,IAAA,6BAAkB,GAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,IAAA,iCAAoB,GAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,IAAA,+BAAmB,GAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,IAAA,mCAAqB,GAAE,CAAC,CAAC;AAE5C,6BAA6B;AAC7B,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IAC9B,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC;AAED,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,15 +1,116 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/** File stats (Obsidian FileStats): ctime/mtime in ms, size in bytes. */
|
|
2
|
+
export interface FileStats {
|
|
3
|
+
ctime: number;
|
|
4
|
+
mtime: number;
|
|
5
|
+
size: number;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* File system info matching Obsidian's TFile.
|
|
9
|
+
* path = path relative to vault root; name = filename with extension;
|
|
10
|
+
* basename = filename without extension; extension = extension without leading dot.
|
|
11
|
+
*/
|
|
12
|
+
export interface FileInfo {
|
|
3
13
|
path: string;
|
|
4
|
-
|
|
14
|
+
name: string;
|
|
15
|
+
basename: string;
|
|
16
|
+
extension: string;
|
|
17
|
+
parent: string | null;
|
|
18
|
+
stat: FileStats;
|
|
19
|
+
content_hash?: string;
|
|
20
|
+
}
|
|
21
|
+
/** Embed with position (Obsidian ![[path]]). */
|
|
22
|
+
export interface EmbedRef {
|
|
23
|
+
target: string;
|
|
24
|
+
line: number;
|
|
25
|
+
column: number;
|
|
26
|
+
position: Pos;
|
|
27
|
+
}
|
|
28
|
+
/** Obsidian-aligned position types (CachedMetadata). */
|
|
29
|
+
/** Location: line (0-based), column, and character offset from file start. */
|
|
30
|
+
export interface Loc {
|
|
31
|
+
line: number;
|
|
32
|
+
col: number;
|
|
33
|
+
offset: number;
|
|
34
|
+
}
|
|
35
|
+
/** Span: start and end location. */
|
|
36
|
+
export interface Pos {
|
|
37
|
+
start: Loc;
|
|
38
|
+
end: Loc;
|
|
39
|
+
}
|
|
40
|
+
/** Base for cache items that have a position. */
|
|
41
|
+
export interface CacheItem {
|
|
42
|
+
position: Pos;
|
|
43
|
+
}
|
|
44
|
+
/** Base for link-like caches (wikilinks, embeds). */
|
|
45
|
+
export interface ReferenceCache extends CacheItem {
|
|
46
|
+
link: string;
|
|
47
|
+
original: string;
|
|
48
|
+
displayText?: string;
|
|
49
|
+
}
|
|
50
|
+
/** Wikilink [[target]] or [[target|display]]. */
|
|
51
|
+
export interface LinkCache extends ReferenceCache {
|
|
52
|
+
}
|
|
53
|
+
/** Embed ![[path]] or ![[path|display]]. */
|
|
54
|
+
export interface EmbedCache extends ReferenceCache {
|
|
55
|
+
}
|
|
56
|
+
/** Tag #tag (tag is the name without #). */
|
|
57
|
+
export interface TagCache extends CacheItem {
|
|
58
|
+
tag: string;
|
|
59
|
+
}
|
|
60
|
+
/** Heading H1–H6. */
|
|
61
|
+
export interface HeadingCache extends CacheItem {
|
|
62
|
+
heading: string;
|
|
63
|
+
level: number;
|
|
64
|
+
}
|
|
65
|
+
/** Block for ^block-id references. */
|
|
66
|
+
export interface BlockCache extends CacheItem {
|
|
67
|
+
id: string;
|
|
68
|
+
}
|
|
69
|
+
/** Frontmatter position in file. */
|
|
70
|
+
export interface FrontMatterCache {
|
|
71
|
+
position: Pos;
|
|
72
|
+
}
|
|
73
|
+
/** Footnote definition. */
|
|
74
|
+
export interface FootnoteCache extends CacheItem {
|
|
75
|
+
id: string;
|
|
5
76
|
content: string;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
77
|
+
}
|
|
78
|
+
/** Footnote reference in text. */
|
|
79
|
+
export interface FootnoteRefCache extends CacheItem {
|
|
80
|
+
id: string;
|
|
81
|
+
}
|
|
82
|
+
/** Document section (e.g. frontmatter, content). */
|
|
83
|
+
export interface SectionCache extends CacheItem {
|
|
84
|
+
id: string;
|
|
85
|
+
type: string;
|
|
86
|
+
}
|
|
87
|
+
/** List item with optional task state. */
|
|
88
|
+
export interface ListItemCache extends CacheItem {
|
|
89
|
+
task?: string;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Content-derived metadata matching Obsidian's CachedMetadata.
|
|
93
|
+
* Returned by MetadataCache.getFileCache(file). All fields optional.
|
|
94
|
+
*/
|
|
95
|
+
export interface ContentMetadata {
|
|
96
|
+
links?: LinkCache[];
|
|
97
|
+
embeds?: EmbedCache[];
|
|
98
|
+
tags?: TagCache[];
|
|
99
|
+
headings?: HeadingCache[];
|
|
100
|
+
footnotes?: FootnoteCache[];
|
|
101
|
+
footnoteRefs?: FootnoteRefCache[];
|
|
102
|
+
blocks?: BlockCache[];
|
|
103
|
+
frontmatter?: FrontMatterCache;
|
|
104
|
+
sections?: SectionCache[];
|
|
105
|
+
listItems?: ListItemCache[];
|
|
106
|
+
}
|
|
107
|
+
/** Heading with position (H1–H6). */
|
|
108
|
+
export interface HeadingRef {
|
|
109
|
+
level: number;
|
|
110
|
+
text: string;
|
|
111
|
+
line: number;
|
|
112
|
+
column: number;
|
|
113
|
+
position: Pos;
|
|
13
114
|
}
|
|
14
115
|
export interface SearchResult {
|
|
15
116
|
id: string;
|
|
@@ -32,11 +133,24 @@ export interface SearchFilters {
|
|
|
32
133
|
path?: string;
|
|
33
134
|
limit?: number;
|
|
34
135
|
}
|
|
136
|
+
export interface TemplateConfig {
|
|
137
|
+
targetFolder?: string;
|
|
138
|
+
}
|
|
139
|
+
export interface PlaceholderContext {
|
|
140
|
+
/** 可注入測試用日期,預設 new Date() */
|
|
141
|
+
date?: Date;
|
|
142
|
+
/** 筆記標題(從 --title 傳入) */
|
|
143
|
+
title?: string;
|
|
144
|
+
/** Vault 名稱(basename of vault path) */
|
|
145
|
+
vault?: string;
|
|
146
|
+
}
|
|
35
147
|
export interface Config {
|
|
36
148
|
vaultPath: string;
|
|
149
|
+
captureFolder?: string;
|
|
37
150
|
dailyNotesFolder: string;
|
|
38
151
|
templatesFolder: string;
|
|
39
152
|
dbPath: string;
|
|
153
|
+
templates?: Record<string, TemplateConfig>;
|
|
40
154
|
}
|
|
41
155
|
export interface Template {
|
|
42
156
|
name: string;
|
|
@@ -66,4 +180,14 @@ export interface GraphData {
|
|
|
66
180
|
nodes: GraphNode[];
|
|
67
181
|
edges: GraphEdge[];
|
|
68
182
|
}
|
|
183
|
+
/** 單一 Vault 的註冊資訊 */
|
|
184
|
+
export interface VaultEntry {
|
|
185
|
+
name: string;
|
|
186
|
+
path: string;
|
|
187
|
+
}
|
|
188
|
+
/** 全域設定檔結構 (~/.config/secondbrain/vaults.json) */
|
|
189
|
+
export interface GlobalConfig {
|
|
190
|
+
vaults: VaultEntry[];
|
|
191
|
+
default?: string;
|
|
192
|
+
}
|
|
69
193
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/config.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Config } from '../types/index.js';
|
|
1
|
+
import type { Config, TemplateConfig } from '../types/index.js';
|
|
2
2
|
export declare class ConfigManager {
|
|
3
3
|
private vaultPath;
|
|
4
4
|
constructor(vaultPath?: string);
|
|
@@ -10,6 +10,8 @@ export declare class ConfigManager {
|
|
|
10
10
|
saveConfig(config: Config): void;
|
|
11
11
|
getConfig(): Config;
|
|
12
12
|
updateConfig(updates: Partial<Config>): void;
|
|
13
|
+
getTemplateConfig(name: string): TemplateConfig | undefined;
|
|
14
|
+
setTemplateConfig(name: string, templateConfig: TemplateConfig): void;
|
|
13
15
|
static findVaultPath(startPath?: string): string | null;
|
|
14
16
|
}
|
|
15
17
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKhE,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,GAAE,MAAsB;IAI7C,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,aAAa,IAAI,OAAO;IAIxB,IAAI,IAAI,MAAM;IAmBd,UAAU,IAAI,MAAM,GAAG,IAAI;IAa3B,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIhC,SAAS,IAAI,MAAM;IAQnB,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI;IAM5C,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAK3D,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,IAAI;IASrE,MAAM,CAAC,aAAa,CAAC,SAAS,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI;CAYvE"}
|