mcpocket 0.1.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +38 -0
- package/README.md +52 -4
- package/dist/cli.js +24 -5
- package/dist/cli.js.map +1 -1
- package/dist/clients/antigravity.d.ts +5 -0
- package/dist/clients/antigravity.d.ts.map +1 -0
- package/dist/clients/antigravity.js +94 -0
- package/dist/clients/antigravity.js.map +1 -0
- package/dist/clients/codex.d.ts +5 -0
- package/dist/clients/codex.d.ts.map +1 -0
- package/dist/clients/codex.js +78 -0
- package/dist/clients/codex.js.map +1 -0
- package/dist/clients/copilot-cli.d.ts +5 -0
- package/dist/clients/copilot-cli.d.ts.map +1 -0
- package/dist/clients/copilot-cli.js +90 -0
- package/dist/clients/copilot-cli.js.map +1 -0
- package/dist/clients/cursor.d.ts +5 -0
- package/dist/clients/cursor.d.ts.map +1 -0
- package/dist/clients/cursor.js +77 -0
- package/dist/clients/cursor.js.map +1 -0
- package/dist/clients/providers.d.ts +7 -0
- package/dist/clients/providers.d.ts.map +1 -0
- package/dist/clients/providers.js +80 -0
- package/dist/clients/providers.js.map +1 -0
- package/dist/clients/types.d.ts +27 -1
- package/dist/clients/types.d.ts.map +1 -1
- package/dist/commands/dedupe.d.ts +2 -0
- package/dist/commands/dedupe.d.ts.map +1 -0
- package/dist/commands/dedupe.js +114 -0
- package/dist/commands/dedupe.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +54 -15
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/provider-options.d.ts +18 -0
- package/dist/commands/provider-options.d.ts.map +1 -0
- package/dist/commands/provider-options.js +34 -0
- package/dist/commands/provider-options.js.map +1 -0
- package/dist/commands/pull.d.ts +2 -1
- package/dist/commands/pull.d.ts.map +1 -1
- package/dist/commands/pull.js +90 -75
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/push.d.ts +2 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +82 -50
- package/dist/commands/push.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/storage/gist.d.ts +5 -0
- package/dist/storage/gist.d.ts.map +1 -1
- package/dist/storage/gist.js +36 -7
- package/dist/storage/gist.js.map +1 -1
- package/dist/storage/github.d.ts +5 -0
- package/dist/storage/github.d.ts.map +1 -1
- package/dist/storage/github.js +25 -0
- package/dist/storage/github.js.map +1 -1
- package/dist/sync/agents.d.ts +6 -2
- package/dist/sync/agents.d.ts.map +1 -1
- package/dist/sync/agents.js +35 -33
- package/dist/sync/agents.js.map +1 -1
- package/dist/sync/mcp.d.ts.map +1 -1
- package/dist/sync/mcp.js +75 -9
- package/dist/sync/mcp.js.map +1 -1
- package/dist/sync/plugins.d.ts +5 -1
- package/dist/sync/plugins.d.ts.map +1 -1
- package/dist/sync/plugins.js +14 -0
- package/dist/sync/plugins.js.map +1 -1
- package/dist/sync/pocket.d.ts +3 -0
- package/dist/sync/pocket.d.ts.map +1 -0
- package/dist/sync/pocket.js +16 -0
- package/dist/sync/pocket.js.map +1 -0
- package/dist/sync/skills.d.ts +3 -2
- package/dist/sync/skills.d.ts.map +1 -1
- package/dist/sync/skills.js +28 -18
- package/dist/sync/skills.js.map +1 -1
- package/dist/utils/crypto.d.ts +11 -0
- package/dist/utils/crypto.d.ts.map +1 -1
- package/dist/utils/crypto.js +17 -3
- package/dist/utils/crypto.js.map +1 -1
- package/dist/utils/files.d.ts +16 -0
- package/dist/utils/files.d.ts.map +1 -0
- package/dist/utils/files.js +168 -0
- package/dist/utils/files.js.map +1 -0
- package/dist/utils/paths.d.ts +16 -0
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +38 -3
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/sparkle.d.ts.map +1 -1
- package/dist/utils/sparkle.js +27 -10
- package/dist/utils/sparkle.js.map +1 -1
- package/package.json +4 -2
package/dist/commands/pull.js
CHANGED
|
@@ -34,62 +34,36 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.pullCommand = pullCommand;
|
|
37
|
-
const fs = __importStar(require("fs"));
|
|
38
|
-
const path = __importStar(require("path"));
|
|
37
|
+
const fs = __importStar(require("node:fs"));
|
|
38
|
+
const path = __importStar(require("node:path"));
|
|
39
39
|
const config_js_1 = require("../config.js");
|
|
40
40
|
const github_js_1 = require("../storage/github.js");
|
|
41
41
|
const gist_js_1 = require("../storage/gist.js");
|
|
42
|
-
const claude_desktop_js_1 = require("../clients/claude-desktop.js");
|
|
43
|
-
const claude_code_js_1 = require("../clients/claude-code.js");
|
|
44
|
-
const opencode_js_1 = require("../clients/opencode.js");
|
|
45
42
|
const mcp_js_1 = require("../sync/mcp.js");
|
|
46
|
-
const claude_desktop_js_2 = require("../clients/claude-desktop.js");
|
|
47
|
-
const claude_code_js_2 = require("../clients/claude-code.js");
|
|
48
|
-
const opencode_js_2 = require("../clients/opencode.js");
|
|
49
43
|
const plugins_js_1 = require("../sync/plugins.js");
|
|
50
44
|
const agents_js_1 = require("../sync/agents.js");
|
|
51
45
|
const skills_js_1 = require("../sync/skills.js");
|
|
46
|
+
const provider_options_js_1 = require("./provider-options.js");
|
|
52
47
|
const prompt_js_1 = require("../utils/prompt.js");
|
|
53
48
|
const sparkle_js_1 = require("../utils/sparkle.js");
|
|
54
|
-
async function pullCommand() {
|
|
49
|
+
async function pullCommand(options = {}) {
|
|
55
50
|
const config = (0, config_js_1.readConfig)();
|
|
56
51
|
const repoDir = (0, config_js_1.getLocalRepoDir)();
|
|
52
|
+
const selection = (0, provider_options_js_1.resolveProviderSelection)(options);
|
|
57
53
|
// Pull or clone
|
|
58
54
|
(0, sparkle_js_1.section)('Pull');
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
try {
|
|
62
|
-
const gistFiles = await (0, gist_js_1.fetchGist)(config.githubToken, config.gistId);
|
|
63
|
-
fs.mkdirSync(repoDir, { recursive: true });
|
|
64
|
-
(0, gist_js_1.writeGistFilesToDir)(repoDir, gistFiles);
|
|
65
|
-
}
|
|
66
|
-
catch (err) {
|
|
67
|
-
(0, sparkle_js_1.oops)(err.message);
|
|
68
|
-
process.exit(1);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
try {
|
|
73
|
-
(0, github_js_1.pullRepo)(repoDir, config.githubToken, config.repoCloneUrl);
|
|
74
|
-
(0, github_js_1.ensureGitConfig)(repoDir);
|
|
75
|
-
}
|
|
76
|
-
catch (err) {
|
|
77
|
-
(0, sparkle_js_1.oops)(err.message);
|
|
78
|
-
process.exit(1);
|
|
79
|
-
}
|
|
55
|
+
if (selection.isFiltered) {
|
|
56
|
+
(0, sparkle_js_1.sparkle)(`Sync scope: ${(0, provider_options_js_1.formatProviderList)(selection.selected)}`);
|
|
80
57
|
}
|
|
58
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.pulling);
|
|
59
|
+
await syncPocketToLocal(repoDir, config);
|
|
81
60
|
// Check for mcp-config.json
|
|
82
61
|
const mcpConfigPath = path.join(repoDir, 'mcp-config.json');
|
|
83
62
|
if (!fs.existsSync(mcpConfigPath)) {
|
|
84
63
|
(0, sparkle_js_1.heads_up)('No config found in the pocket yet. Run `mcpocket push` on your source machine first!');
|
|
85
64
|
return;
|
|
86
65
|
}
|
|
87
|
-
|
|
88
|
-
const passphrase = await (0, prompt_js_1.askSecret)(' 🔓 Passphrase to decrypt secrets: ');
|
|
89
|
-
if (!passphrase) {
|
|
90
|
-
(0, sparkle_js_1.oops)('Passphrase cannot be empty.');
|
|
91
|
-
process.exit(1);
|
|
92
|
-
}
|
|
66
|
+
const passphrase = await promptForPullPassphrase();
|
|
93
67
|
// Restore MCP servers
|
|
94
68
|
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.decrypting);
|
|
95
69
|
let remoteServers;
|
|
@@ -102,56 +76,97 @@ async function pullCommand() {
|
|
|
102
76
|
process.exit(1);
|
|
103
77
|
}
|
|
104
78
|
const serverCount = Object.keys(remoteServers).length;
|
|
105
|
-
const updatedClients =
|
|
106
|
-
// Apply to Claude Desktop
|
|
107
|
-
const localDesktop = (0, claude_desktop_js_2.readClaudeDesktopMcpServers)();
|
|
108
|
-
const mergedDesktop = (0, mcp_js_1.additiveMerge)(localDesktop, remoteServers);
|
|
109
|
-
if (Object.keys(mergedDesktop).length > Object.keys(localDesktop).length) {
|
|
110
|
-
(0, claude_desktop_js_1.writeClaudeDesktopMcpServers)(mergedDesktop);
|
|
111
|
-
updatedClients.push(`Claude Desktop (${(0, claude_desktop_js_1.getConfigPath)()})`);
|
|
112
|
-
}
|
|
113
|
-
// Apply to Claude Code
|
|
114
|
-
const localCode = (0, claude_code_js_2.readClaudeCodeMcpServers)();
|
|
115
|
-
const mergedCode = (0, mcp_js_1.additiveMerge)(localCode, remoteServers);
|
|
116
|
-
if (Object.keys(mergedCode).length > Object.keys(localCode).length) {
|
|
117
|
-
(0, claude_code_js_1.writeClaudeCodeMcpServers)(mergedCode);
|
|
118
|
-
updatedClients.push(`Claude Code (${(0, claude_code_js_1.getSettingsPath)()})`);
|
|
119
|
-
}
|
|
120
|
-
// Apply to OpenCode
|
|
121
|
-
const localOpenCode = (0, opencode_js_2.readOpenCodeMcpServers)();
|
|
122
|
-
const mergedOpenCode = (0, mcp_js_1.additiveMerge)(localOpenCode, remoteServers);
|
|
123
|
-
if (Object.keys(mergedOpenCode).length > Object.keys(localOpenCode).length) {
|
|
124
|
-
(0, opencode_js_1.writeOpenCodeMcpServers)(mergedOpenCode);
|
|
125
|
-
updatedClients.push(`OpenCode (${(0, opencode_js_1.getConfigPath)()})`);
|
|
126
|
-
}
|
|
79
|
+
const updatedClients = applyServersToProviders(selection.selected, remoteServers);
|
|
127
80
|
(0, sparkle_js_1.sparkle)(`Restored ${serverCount} MCP server(s)`);
|
|
128
|
-
|
|
129
|
-
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingPlugins);
|
|
130
|
-
const manifests = (0, plugins_js_1.readPluginManifestsFromRepo)(repoDir);
|
|
131
|
-
const updatedManifests = (0, plugins_js_1.applyPluginManifests)(manifests);
|
|
132
|
-
(0, sparkle_js_1.sparkle)(`Updated ${updatedManifests.length} manifest file(s)`);
|
|
133
|
-
// Apply agents
|
|
134
|
-
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingAgents);
|
|
135
|
-
const agentCount = (0, agents_js_1.applyAgentsFromRepo)(repoDir);
|
|
136
|
-
(0, sparkle_js_1.sparkle)(`Restored ${agentCount} agent file(s)`);
|
|
137
|
-
// Apply skills
|
|
138
|
-
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingSkills);
|
|
139
|
-
const skillCount = (0, skills_js_1.applySkillsFromRepo)(repoDir);
|
|
140
|
-
(0, sparkle_js_1.sparkle)(`Restored ${skillCount} skill file(s)`);
|
|
81
|
+
const restoredAssets = restoreClaudeHomeAssetsFromPocket(repoDir, selection.syncsClaudeHomeAssets, selection.isFiltered);
|
|
141
82
|
// Summary
|
|
142
83
|
(0, sparkle_js_1.celebrate)(sparkle_js_1.WITTY.pullDone);
|
|
143
84
|
(0, sparkle_js_1.section)('Summary');
|
|
85
|
+
(0, sparkle_js_1.stat)('Providers', (0, provider_options_js_1.formatProviderList)(selection.selected));
|
|
144
86
|
(0, sparkle_js_1.stat)('MCPs', `${serverCount} servers → ${updatedClients.length} client(s)`);
|
|
145
|
-
(0, sparkle_js_1.stat)('Plugins', `${updatedManifests.length} manifest file(s)`);
|
|
146
|
-
(0, sparkle_js_1.stat)('Agents',
|
|
147
|
-
(0, sparkle_js_1.stat)('Skills',
|
|
87
|
+
(0, sparkle_js_1.stat)('Plugins', `${restoredAssets.updatedManifests.length} manifest file(s)`);
|
|
88
|
+
(0, sparkle_js_1.stat)('Agents', restoredAssets.agentResult.synced.toString());
|
|
89
|
+
(0, sparkle_js_1.stat)('Skills', restoredAssets.skillResult.synced.toString());
|
|
148
90
|
if (updatedClients.length > 0) {
|
|
149
91
|
console.log('\n Updated clients:');
|
|
150
92
|
for (const c of updatedClients) {
|
|
151
93
|
(0, sparkle_js_1.sparkle)(c);
|
|
152
94
|
}
|
|
153
|
-
(0, sparkle_js_1.heads_up)('Restart
|
|
95
|
+
(0, sparkle_js_1.heads_up)('Restart affected apps to apply MCP changes.');
|
|
154
96
|
}
|
|
155
97
|
console.log('');
|
|
156
98
|
}
|
|
99
|
+
async function syncPocketToLocal(repoDir, config) {
|
|
100
|
+
if (config.storageType === 'gist') {
|
|
101
|
+
try {
|
|
102
|
+
const gistFiles = await (0, gist_js_1.fetchGist)(config.githubToken, config.gistId);
|
|
103
|
+
fs.mkdirSync(repoDir, { recursive: true });
|
|
104
|
+
(0, gist_js_1.writeGistFilesToDir)(repoDir, gistFiles);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
(0, sparkle_js_1.oops)(err.message);
|
|
109
|
+
process.exit(1);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
try {
|
|
113
|
+
(0, github_js_1.pullRepo)(repoDir, config.githubToken, config.repoCloneUrl);
|
|
114
|
+
(0, github_js_1.ensureGitConfig)(repoDir);
|
|
115
|
+
}
|
|
116
|
+
catch (err) {
|
|
117
|
+
(0, sparkle_js_1.oops)(err.message);
|
|
118
|
+
process.exit(1);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
async function promptForPullPassphrase() {
|
|
122
|
+
const passphrase = await (0, prompt_js_1.askSecret)(' 🔓 Passphrase to decrypt secrets: ');
|
|
123
|
+
if (!passphrase) {
|
|
124
|
+
(0, sparkle_js_1.oops)('Passphrase cannot be empty.');
|
|
125
|
+
process.exit(1);
|
|
126
|
+
}
|
|
127
|
+
return passphrase;
|
|
128
|
+
}
|
|
129
|
+
function applyServersToProviders(providers, remoteServers) {
|
|
130
|
+
const updatedClients = [];
|
|
131
|
+
for (const provider of providers) {
|
|
132
|
+
const localServers = provider.readMcpServers();
|
|
133
|
+
const mergedServers = (0, mcp_js_1.additiveMerge)(localServers, remoteServers);
|
|
134
|
+
if (Object.keys(mergedServers).length > Object.keys(localServers).length) {
|
|
135
|
+
provider.writeMcpServers(mergedServers);
|
|
136
|
+
updatedClients.push(`${provider.displayName} (${provider.getConfigPath()})`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return updatedClients;
|
|
140
|
+
}
|
|
141
|
+
function restoreClaudeHomeAssetsFromPocket(repoDir, shouldRestore, showSkipMessage) {
|
|
142
|
+
if (!shouldRestore) {
|
|
143
|
+
if (showSkipMessage) {
|
|
144
|
+
(0, sparkle_js_1.sparkle)('Skipping Claude home plugin manifests for this provider selection');
|
|
145
|
+
(0, sparkle_js_1.sparkle)('Skipping Claude home agents for this provider selection');
|
|
146
|
+
(0, sparkle_js_1.sparkle)('Skipping Claude home skills for this provider selection');
|
|
147
|
+
}
|
|
148
|
+
return {
|
|
149
|
+
updatedManifests: [],
|
|
150
|
+
agentResult: { synced: 0, removed: 0 },
|
|
151
|
+
skillResult: { synced: 0, removed: 0 },
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingPlugins);
|
|
155
|
+
const manifests = (0, plugins_js_1.readPluginManifestsFromRepo)(repoDir);
|
|
156
|
+
const updatedManifests = (0, plugins_js_1.applyPluginManifests)(manifests);
|
|
157
|
+
(0, sparkle_js_1.sparkle)(`Updated ${updatedManifests.length} manifest file(s)`);
|
|
158
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingAgents);
|
|
159
|
+
const agentResult = (0, agents_js_1.applyAgentsFromRepo)(repoDir);
|
|
160
|
+
(0, sparkle_js_1.sparkle)(`Restored ${agentResult.synced} agent file(s)`);
|
|
161
|
+
if (agentResult.removed > 0) {
|
|
162
|
+
(0, sparkle_js_1.sparkle)(`Removed ${agentResult.removed} stale local agent file(s)`);
|
|
163
|
+
}
|
|
164
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingSkills);
|
|
165
|
+
const skillResult = (0, skills_js_1.applySkillsFromRepo)(repoDir);
|
|
166
|
+
(0, sparkle_js_1.sparkle)(`Restored ${skillResult.synced} skill file(s)`);
|
|
167
|
+
if (skillResult.removed > 0) {
|
|
168
|
+
(0, sparkle_js_1.sparkle)(`Removed ${skillResult.removed} stale local skill file(s)`);
|
|
169
|
+
}
|
|
170
|
+
return { updatedManifests, agentResult, skillResult };
|
|
171
|
+
}
|
|
157
172
|
//# sourceMappingURL=pull.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,kCA8DC;AAvFD,4CAA8B;AAC9B,gDAAkC;AAClC,4CAA2D;AAC3D,oDAAiE;AACjE,gDAAoE;AACpE,2CAGwB;AAGxB,mDAAuF;AACvF,iDAAwD;AACxD,iDAAwD;AACxD,+DAAqF;AAErF,kDAA+C;AAC/C,oDAA+F;AAQxF,KAAK,UAAU,WAAW,CAAC,UAA+B,EAAE;IACjE,MAAM,MAAM,GAAG,IAAA,sBAAU,GAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAA,2BAAe,GAAE,CAAC;IAClC,MAAM,SAAS,GAAG,IAAA,8CAAwB,EAAC,OAAO,CAAC,CAAC;IAEpD,gBAAgB;IAChB,IAAA,oBAAO,EAAC,MAAM,CAAC,CAAC;IAChB,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QACzB,IAAA,oBAAO,EAAC,eAAe,IAAA,wCAAkB,EAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,IAAA,oBAAO,EAAC,kBAAK,CAAC,OAAO,CAAC,CAAC;IACvB,MAAM,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAEzC,4BAA4B;IAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAC5D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,IAAA,qBAAQ,EAAC,sFAAsF,CAAC,CAAC;QACjG,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,uBAAuB,EAAE,CAAC;IAEnD,sBAAsB;IACtB,IAAA,oBAAO,EAAC,kBAAK,CAAC,UAAU,CAAC,CAAC;IAC1B,IAAI,aAA2D,CAAC;IAChE,IAAI,CAAC;QACH,MAAM,cAAc,GAAsB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7F,aAAa,GAAG,IAAA,kCAAyB,EAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IACxE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAA,iBAAI,EAAC,sBAAuB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;IACtD,MAAM,cAAc,GAAG,uBAAuB,CAAC,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAElF,IAAA,oBAAO,EAAC,YAAY,WAAW,gBAAgB,CAAC,CAAC;IAEjD,MAAM,cAAc,GAAG,iCAAiC,CACtD,OAAO,EACP,SAAS,CAAC,qBAAqB,EAC/B,SAAS,CAAC,UAAU,CACrB,CAAC;IAEF,UAAU;IACV,IAAA,sBAAS,EAAC,kBAAK,CAAC,QAAQ,CAAC,CAAC;IAE1B,IAAA,oBAAO,EAAC,SAAS,CAAC,CAAC;IACnB,IAAA,iBAAI,EAAC,WAAW,EAAE,IAAA,wCAAkB,EAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1D,IAAA,iBAAI,EAAC,MAAM,EAAE,GAAG,WAAW,cAAc,cAAc,CAAC,MAAM,YAAY,CAAC,CAAC;IAC5E,IAAA,iBAAI,EAAC,SAAS,EAAE,GAAG,cAAc,CAAC,gBAAgB,CAAC,MAAM,mBAAmB,CAAC,CAAC;IAC9E,IAAA,iBAAI,EAAC,QAAQ,EAAE,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7D,IAAA,iBAAI,EAAC,QAAQ,EAAE,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE7D,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;YAC/B,IAAA,oBAAO,EAAC,CAAC,CAAC,CAAC;QACb,CAAC;QACD,IAAA,qBAAQ,EAAC,6CAA6C,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,OAAe,EAAE,MAAqC;IACrF,IAAI,MAAM,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAA,mBAAS,EAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,MAAO,CAAC,CAAC;YACtE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3C,IAAA,6BAAmB,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAA,iBAAI,EAAE,GAAa,CAAC,OAAO,CAAC,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,IAAA,oBAAQ,EAAC,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,YAAa,CAAC,CAAC;QAC5D,IAAA,2BAAe,EAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAA,iBAAI,EAAE,GAAa,CAAC,OAAO,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,uBAAuB;IACpC,MAAM,UAAU,GAAG,MAAM,IAAA,qBAAS,EAAC,sCAAsC,CAAC,CAAC;IAC3E,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,IAAA,iBAAI,EAAC,6BAA6B,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,uBAAuB,CAAC,SAA+B,EAAE,aAA4B;IAC5F,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC/C,MAAM,aAAa,GAAG,IAAA,sBAAa,EAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QACjE,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,CAAC;YACzE,QAAQ,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YACxC,cAAc,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,WAAW,KAAK,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAS,iCAAiC,CACxC,OAAe,EACf,aAAsB,EACtB,eAAwB;IAExB,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,IAAI,eAAe,EAAE,CAAC;YACpB,IAAA,oBAAO,EAAC,mEAAmE,CAAC,CAAC;YAC7E,IAAA,oBAAO,EAAC,yDAAyD,CAAC,CAAC;YACnE,IAAA,oBAAO,EAAC,yDAAyD,CAAC,CAAC;QACrE,CAAC;QAED,OAAO;YACL,gBAAgB,EAAE,EAAE;YACpB,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;YACtC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;SACvC,CAAC;IACJ,CAAC;IAED,IAAA,oBAAO,EAAC,kBAAK,CAAC,cAAc,CAAC,CAAC;IAC9B,MAAM,SAAS,GAAG,IAAA,wCAA2B,EAAC,OAAO,CAAC,CAAC;IACvD,MAAM,gBAAgB,GAAG,IAAA,iCAAoB,EAAC,SAAS,CAAC,CAAC;IACzD,IAAA,oBAAO,EAAC,WAAW,gBAAgB,CAAC,MAAM,mBAAmB,CAAC,CAAC;IAE/D,IAAA,oBAAO,EAAC,kBAAK,CAAC,aAAa,CAAC,CAAC;IAC7B,MAAM,WAAW,GAAG,IAAA,+BAAmB,EAAC,OAAO,CAAC,CAAC;IACjD,IAAA,oBAAO,EAAC,YAAY,WAAW,CAAC,MAAM,gBAAgB,CAAC,CAAC;IACxD,IAAI,WAAW,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;QAC5B,IAAA,oBAAO,EAAC,WAAW,WAAW,CAAC,OAAO,4BAA4B,CAAC,CAAC;IACtE,CAAC;IAED,IAAA,oBAAO,EAAC,kBAAK,CAAC,aAAa,CAAC,CAAC;IAC7B,MAAM,WAAW,GAAG,IAAA,+BAAmB,EAAC,OAAO,CAAC,CAAC;IACjD,IAAA,oBAAO,EAAC,YAAY,WAAW,CAAC,MAAM,gBAAgB,CAAC,CAAC;IACxD,IAAI,WAAW,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;QAC5B,IAAA,oBAAO,EAAC,WAAW,WAAW,CAAC,OAAO,4BAA4B,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;AACxD,CAAC"}
|
package/dist/commands/push.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAWjE,wBAAsB,WAAW,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmElF"}
|
package/dist/commands/push.js
CHANGED
|
@@ -34,73 +34,42 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.pushCommand = pushCommand;
|
|
37
|
-
const fs = __importStar(require("fs"));
|
|
38
|
-
const path = __importStar(require("path"));
|
|
37
|
+
const fs = __importStar(require("node:fs"));
|
|
38
|
+
const path = __importStar(require("node:path"));
|
|
39
39
|
const config_js_1 = require("../config.js");
|
|
40
40
|
const github_js_1 = require("../storage/github.js");
|
|
41
41
|
const gist_js_1 = require("../storage/gist.js");
|
|
42
|
-
const claude_desktop_js_1 = require("../clients/claude-desktop.js");
|
|
43
|
-
const claude_code_js_1 = require("../clients/claude-code.js");
|
|
44
|
-
const opencode_js_1 = require("../clients/opencode.js");
|
|
45
42
|
const mcp_js_1 = require("../sync/mcp.js");
|
|
46
43
|
const plugins_js_1 = require("../sync/plugins.js");
|
|
47
44
|
const agents_js_1 = require("../sync/agents.js");
|
|
48
45
|
const skills_js_1 = require("../sync/skills.js");
|
|
46
|
+
const pocket_js_1 = require("../sync/pocket.js");
|
|
47
|
+
const provider_options_js_1 = require("./provider-options.js");
|
|
49
48
|
const prompt_js_1 = require("../utils/prompt.js");
|
|
50
49
|
const sparkle_js_1 = require("../utils/sparkle.js");
|
|
51
|
-
async function pushCommand() {
|
|
50
|
+
async function pushCommand(options = {}) {
|
|
52
51
|
const config = (0, config_js_1.readConfig)();
|
|
53
52
|
const repoDir = (0, config_js_1.getLocalRepoDir)();
|
|
53
|
+
const selection = (0, provider_options_js_1.resolveProviderSelection)(options);
|
|
54
54
|
(0, sparkle_js_1.section)('Push');
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.pulling);
|
|
58
|
-
try {
|
|
59
|
-
(0, github_js_1.pullRepo)(repoDir, config.githubToken, config.repoCloneUrl);
|
|
60
|
-
}
|
|
61
|
-
catch (err) {
|
|
62
|
-
(0, sparkle_js_1.heads_up)(`Could not pull latest — ${err.message}`);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
fs.mkdirSync(repoDir, { recursive: true });
|
|
55
|
+
if (selection.isFiltered) {
|
|
56
|
+
(0, sparkle_js_1.sparkle)(`Sync scope: ${(0, provider_options_js_1.formatProviderList)(selection.selected)}`);
|
|
67
57
|
}
|
|
68
|
-
|
|
69
|
-
const
|
|
70
|
-
if (
|
|
71
|
-
(0, sparkle_js_1.
|
|
72
|
-
process.exit(1);
|
|
73
|
-
}
|
|
74
|
-
const confirm = await (0, prompt_js_1.askSecret)(' 🔒 Confirm passphrase: ');
|
|
75
|
-
if (passphrase !== confirm) {
|
|
76
|
-
(0, sparkle_js_1.oops)('Passphrases don\'t match. Give it another whirl!');
|
|
77
|
-
process.exit(1);
|
|
58
|
+
preparePocketDirectory(config.storageType, repoDir, config.githubToken, config.repoCloneUrl);
|
|
59
|
+
const prunedEntries = (0, pocket_js_1.prunePocketDir)(repoDir);
|
|
60
|
+
if (prunedEntries > 0) {
|
|
61
|
+
(0, sparkle_js_1.sparkle)(`Removed ${prunedEntries} stale pocket entr${prunedEntries === 1 ? 'y' : 'ies'}`);
|
|
78
62
|
}
|
|
63
|
+
const passphrase = await promptForPushPassphrase();
|
|
79
64
|
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingMCP);
|
|
80
|
-
const
|
|
81
|
-
const claudeCode = (0, claude_code_js_1.readClaudeCodeMcpServers)();
|
|
82
|
-
const opencode = (0, opencode_js_1.readOpenCodeMcpServers)();
|
|
83
|
-
const merged = (0, mcp_js_1.mergeMcpSources)(desktop, claudeCode, opencode);
|
|
65
|
+
const merged = (0, mcp_js_1.mergeMcpSources)(...selection.selected.map((provider) => provider.readMcpServers()));
|
|
84
66
|
const serverCount = Object.keys(merged).length;
|
|
85
|
-
(0, sparkle_js_1.sparkle)(`Found ${serverCount} MCP server(s) across
|
|
67
|
+
(0, sparkle_js_1.sparkle)(`Found ${serverCount} MCP server(s) across ${selection.selected.length} provider(s)`);
|
|
86
68
|
// Write mcp-config.json
|
|
87
69
|
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.encrypting);
|
|
88
70
|
const portableConfig = (0, mcp_js_1.buildPortableConfig)(merged, passphrase);
|
|
89
71
|
fs.writeFileSync(path.join(repoDir, 'mcp-config.json'), JSON.stringify(portableConfig, null, 2), 'utf8');
|
|
90
|
-
|
|
91
|
-
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingPlugins);
|
|
92
|
-
const manifests = (0, plugins_js_1.readPluginManifests)();
|
|
93
|
-
const manifestCount = Object.keys(manifests).length;
|
|
94
|
-
(0, sparkle_js_1.sparkle)(`Found ${manifestCount} plugin manifest file(s)`);
|
|
95
|
-
(0, plugins_js_1.writePluginManifestsToRepo)(manifests, repoDir);
|
|
96
|
-
// Sync agents
|
|
97
|
-
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingAgents);
|
|
98
|
-
const agentCount = (0, agents_js_1.writeAgentsToRepo)(repoDir);
|
|
99
|
-
(0, sparkle_js_1.sparkle)(`Synced ${agentCount} agent file(s)`);
|
|
100
|
-
// Sync skills
|
|
101
|
-
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingSkills);
|
|
102
|
-
const skillCount = (0, skills_js_1.writeSkillsToRepo)(repoDir);
|
|
103
|
-
(0, sparkle_js_1.sparkle)(`Synced ${skillCount} skill file(s)`);
|
|
72
|
+
const assetSummary = syncClaudeHomeAssetsToPocket(repoDir, selection.syncsClaudeHomeAssets, selection.isFiltered);
|
|
104
73
|
// Push to remote
|
|
105
74
|
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.pushing);
|
|
106
75
|
if (config.storageType === 'gist') {
|
|
@@ -127,10 +96,73 @@ async function pushCommand() {
|
|
|
127
96
|
}
|
|
128
97
|
(0, sparkle_js_1.section)('Summary');
|
|
129
98
|
(0, sparkle_js_1.stat)('Storage', config.storageType === 'gist' ? `gist (${config.gistUrl})` : `repo (${config.repoHtmlUrl})`);
|
|
99
|
+
(0, sparkle_js_1.stat)('Providers', (0, provider_options_js_1.formatProviderList)(selection.selected));
|
|
130
100
|
(0, sparkle_js_1.stat)('MCPs', serverCount.toString());
|
|
131
|
-
(0, sparkle_js_1.stat)('Plugins', `${manifestCount} manifest file(s)`);
|
|
132
|
-
(0, sparkle_js_1.stat)('Agents',
|
|
133
|
-
(0, sparkle_js_1.stat)('Skills',
|
|
101
|
+
(0, sparkle_js_1.stat)('Plugins', `${assetSummary.manifestCount} manifest file(s)`);
|
|
102
|
+
(0, sparkle_js_1.stat)('Agents', assetSummary.agentResult.synced.toString());
|
|
103
|
+
(0, sparkle_js_1.stat)('Skills', assetSummary.skillResult.synced.toString());
|
|
134
104
|
console.log('');
|
|
135
105
|
}
|
|
106
|
+
function preparePocketDirectory(storageType, repoDir, githubToken, repoCloneUrl) {
|
|
107
|
+
if (storageType === 'gist') {
|
|
108
|
+
fs.mkdirSync(repoDir, { recursive: true });
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.pulling);
|
|
112
|
+
try {
|
|
113
|
+
(0, github_js_1.pullRepo)(repoDir, githubToken, repoCloneUrl);
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
(0, sparkle_js_1.heads_up)(`Could not pull latest — ${err.message}`);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
async function promptForPushPassphrase() {
|
|
120
|
+
const passphrase = await (0, prompt_js_1.askSecret)(' 🔒 Passphrase to encrypt secrets: ');
|
|
121
|
+
if (!passphrase) {
|
|
122
|
+
(0, sparkle_js_1.oops)('Passphrase cannot be empty.');
|
|
123
|
+
process.exit(1);
|
|
124
|
+
}
|
|
125
|
+
const confirm = await (0, prompt_js_1.askSecret)(' 🔒 Confirm passphrase: ');
|
|
126
|
+
if (passphrase !== confirm) {
|
|
127
|
+
(0, sparkle_js_1.oops)('Passphrases don\'t match. Give it another whirl!');
|
|
128
|
+
process.exit(1);
|
|
129
|
+
}
|
|
130
|
+
return passphrase;
|
|
131
|
+
}
|
|
132
|
+
function syncClaudeHomeAssetsToPocket(repoDir, shouldSync, showSkipMessage) {
|
|
133
|
+
if (!shouldSync) {
|
|
134
|
+
if (showSkipMessage) {
|
|
135
|
+
(0, sparkle_js_1.sparkle)('Skipping Claude home plugin manifests for this provider selection');
|
|
136
|
+
(0, sparkle_js_1.sparkle)('Skipping Claude home agents for this provider selection');
|
|
137
|
+
(0, sparkle_js_1.sparkle)('Skipping Claude home skills for this provider selection');
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
manifestCount: 0,
|
|
141
|
+
pluginResult: { synced: 0, removed: 0 },
|
|
142
|
+
agentResult: { synced: 0, removed: 0 },
|
|
143
|
+
skillResult: { synced: 0, removed: 0 },
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingPlugins);
|
|
147
|
+
const manifests = (0, plugins_js_1.readPluginManifests)();
|
|
148
|
+
const manifestCount = Object.keys(manifests).length;
|
|
149
|
+
(0, sparkle_js_1.sparkle)(`Found ${manifestCount} plugin manifest file(s)`);
|
|
150
|
+
const pluginResult = (0, plugins_js_1.writePluginManifestsToRepo)(manifests, repoDir);
|
|
151
|
+
if (pluginResult.removed > 0) {
|
|
152
|
+
(0, sparkle_js_1.sparkle)(`Removed ${pluginResult.removed} stale plugin manifest file(s) from the pocket`);
|
|
153
|
+
}
|
|
154
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingAgents);
|
|
155
|
+
const agentResult = (0, agents_js_1.writeAgentsToRepo)(repoDir);
|
|
156
|
+
(0, sparkle_js_1.sparkle)(`Synced ${agentResult.synced} agent file(s)`);
|
|
157
|
+
if (agentResult.removed > 0) {
|
|
158
|
+
(0, sparkle_js_1.sparkle)(`Removed ${agentResult.removed} stale agent file(s) from the pocket`);
|
|
159
|
+
}
|
|
160
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingSkills);
|
|
161
|
+
const skillResult = (0, skills_js_1.writeSkillsToRepo)(repoDir);
|
|
162
|
+
(0, sparkle_js_1.sparkle)(`Synced ${skillResult.synced} skill file(s)`);
|
|
163
|
+
if (skillResult.removed > 0) {
|
|
164
|
+
(0, sparkle_js_1.sparkle)(`Removed ${skillResult.removed} stale skill file(s) from the pocket`);
|
|
165
|
+
}
|
|
166
|
+
return { manifestCount, pluginResult, agentResult, skillResult };
|
|
167
|
+
}
|
|
136
168
|
//# sourceMappingURL=push.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,kCAmEC;AAzFD,4CAA8B;AAC9B,gDAAkC;AAClC,4CAA2D;AAC3D,oDAAgF;AAChF,gDAAqE;AACrE,2CAAsE;AACtE,mDAAqF;AACrF,iDAAsD;AACtD,iDAAsD;AACtD,iDAAmD;AACnD,+DAAqF;AAErF,kDAA+C;AAC/C,oDAA+F;AASxF,KAAK,UAAU,WAAW,CAAC,UAA+B,EAAE;IACjE,MAAM,MAAM,GAAG,IAAA,sBAAU,GAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAA,2BAAe,GAAE,CAAC;IAClC,MAAM,SAAS,GAAG,IAAA,8CAAwB,EAAC,OAAO,CAAC,CAAC;IAEpD,IAAA,oBAAO,EAAC,MAAM,CAAC,CAAC;IAEhB,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QACzB,IAAA,oBAAO,EAAC,eAAe,IAAA,wCAAkB,EAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,sBAAsB,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAE7F,MAAM,aAAa,GAAG,IAAA,0BAAc,EAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,IAAA,oBAAO,EAAC,WAAW,aAAa,qBAAqB,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,uBAAuB,EAAE,CAAC;IAEnD,IAAA,oBAAO,EAAC,kBAAK,CAAC,UAAU,CAAC,CAAC;IAC1B,MAAM,MAAM,GAAG,IAAA,wBAAe,EAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IACnG,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAA,oBAAO,EAAC,SAAS,WAAW,yBAAyB,SAAS,CAAC,QAAQ,CAAC,MAAM,cAAc,CAAC,CAAC;IAE9F,wBAAwB;IACxB,IAAA,oBAAO,EAAC,kBAAK,CAAC,UAAU,CAAC,CAAC;IAC1B,MAAM,cAAc,GAAG,IAAA,4BAAmB,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/D,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,EACrC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,EACvC,MAAM,CACP,CAAC;IAEF,MAAM,YAAY,GAAG,4BAA4B,CAAC,OAAO,EAAE,SAAS,CAAC,qBAAqB,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAElH,iBAAiB;IACjB,IAAA,oBAAO,EAAC,kBAAK,CAAC,OAAO,CAAC,CAAC;IAEvB,IAAI,MAAM,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAA,6BAAmB,EAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,IAAA,oBAAU,EAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,MAAO,EAAE,KAAK,CAAC,CAAC;YAC5D,IAAA,sBAAS,EAAC,kBAAK,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAA,iBAAI,EAAC,qBAAsB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAA,2BAAe,EAAC,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC;YACH,IAAA,yBAAa,EAAC,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,YAAa,EAAE,gBAAgB,CAAC,CAAC;YACnF,IAAA,sBAAS,EAAC,kBAAK,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAA,iBAAI,EAAC,gBAAiB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,IAAA,oBAAO,EAAC,SAAS,CAAC,CAAC;IACnB,IAAA,iBAAI,EAAC,SAAS,EAAE,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC;IAC7G,IAAA,iBAAI,EAAC,WAAW,EAAE,IAAA,wCAAkB,EAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1D,IAAA,iBAAI,EAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrC,IAAA,iBAAI,EAAC,SAAS,EAAE,GAAG,YAAY,CAAC,aAAa,mBAAmB,CAAC,CAAC;IAClE,IAAA,iBAAI,EAAC,QAAQ,EAAE,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3D,IAAA,iBAAI,EAAC,QAAQ,EAAE,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,sBAAsB,CAC7B,WAA4B,EAC5B,OAAe,EACf,WAAmB,EACnB,YAAqB;IAErB,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QAC3B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,IAAA,oBAAO,EAAC,kBAAK,CAAC,OAAO,CAAC,CAAC;IACvB,IAAI,CAAC;QACH,IAAA,oBAAQ,EAAC,OAAO,EAAE,WAAW,EAAE,YAAa,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAA,qBAAQ,EAAC,2BAA4B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,uBAAuB;IACpC,MAAM,UAAU,GAAG,MAAM,IAAA,qBAAS,EAAC,sCAAsC,CAAC,CAAC;IAC3E,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,IAAA,iBAAI,EAAC,6BAA6B,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,IAAA,qBAAS,EAAC,2BAA2B,CAAC,CAAC;IAC7D,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QAC3B,IAAA,iBAAI,EAAC,kDAAkD,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,4BAA4B,CACnC,OAAe,EACf,UAAmB,EACnB,eAAwB;IAExB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,IAAI,eAAe,EAAE,CAAC;YACpB,IAAA,oBAAO,EAAC,mEAAmE,CAAC,CAAC;YAC7E,IAAA,oBAAO,EAAC,yDAAyD,CAAC,CAAC;YACnE,IAAA,oBAAO,EAAC,yDAAyD,CAAC,CAAC;QACrE,CAAC;QAED,OAAO;YACL,aAAa,EAAE,CAAC;YAChB,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;YACvC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;YACtC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;SACvC,CAAC;IACJ,CAAC;IAED,IAAA,oBAAO,EAAC,kBAAK,CAAC,cAAc,CAAC,CAAC;IAC9B,MAAM,SAAS,GAAG,IAAA,gCAAmB,GAAE,CAAC;IACxC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IACpD,IAAA,oBAAO,EAAC,SAAS,aAAa,0BAA0B,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,IAAA,uCAA0B,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACpE,IAAI,YAAY,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;QAC7B,IAAA,oBAAO,EAAC,WAAW,YAAY,CAAC,OAAO,gDAAgD,CAAC,CAAC;IAC3F,CAAC;IAED,IAAA,oBAAO,EAAC,kBAAK,CAAC,aAAa,CAAC,CAAC;IAC7B,MAAM,WAAW,GAAG,IAAA,6BAAiB,EAAC,OAAO,CAAC,CAAC;IAC/C,IAAA,oBAAO,EAAC,UAAU,WAAW,CAAC,MAAM,gBAAgB,CAAC,CAAC;IACtD,IAAI,WAAW,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;QAC5B,IAAA,oBAAO,EAAC,WAAW,WAAW,CAAC,OAAO,sCAAsC,CAAC,CAAC;IAChF,CAAC;IAED,IAAA,oBAAO,EAAC,kBAAK,CAAC,aAAa,CAAC,CAAC;IAC7B,MAAM,WAAW,GAAG,IAAA,6BAAiB,EAAC,OAAO,CAAC,CAAC;IAC/C,IAAA,oBAAO,EAAC,UAAU,WAAW,CAAC,MAAM,gBAAgB,CAAC,CAAC;IACtD,IAAI,WAAW,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;QAC5B,IAAA,oBAAO,EAAC,WAAW,WAAW,CAAC,OAAO,sCAAsC,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;AACnE,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -11,6 +11,6 @@ export interface McpocketConfig {
|
|
|
11
11
|
export declare function configExists(): boolean;
|
|
12
12
|
export declare function readConfig(): McpocketConfig;
|
|
13
13
|
export declare function writeConfig(config: McpocketConfig): void;
|
|
14
|
-
/** Local
|
|
14
|
+
/** Local staging directory for synced pocket contents */
|
|
15
15
|
export declare function getLocalRepoDir(): string;
|
|
16
16
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1C,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IAEzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,wBAAgB,UAAU,IAAI,cAAc,CAa3C;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAQxD;AAED,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1C,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IAEzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,wBAAgB,UAAU,IAAI,cAAc,CAa3C;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAQxD;AAED,yDAAyD;AACzD,wBAAgB,eAAe,IAAI,MAAM,CAExC"}
|
package/dist/config.js
CHANGED
|
@@ -65,7 +65,7 @@ function writeConfig(config) {
|
|
|
65
65
|
fs.chmodSync((0, paths_js_1.getMcpocketConfigPath)(), 0o600);
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
-
/** Local
|
|
68
|
+
/** Local staging directory for synced pocket contents */
|
|
69
69
|
function getLocalRepoDir() {
|
|
70
70
|
return path.join(os.homedir(), '.mcpocket', 'repo');
|
|
71
71
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,oCAEC;AAED,gCAaC;AAED,kCAQC;AAGD,0CAEC;AAnDD,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AACzB,+CAA+E;AAgB/E,SAAgB,YAAY;IAC1B,OAAO,EAAE,CAAC,UAAU,CAAC,IAAA,gCAAqB,GAAE,CAAC,CAAC;AAChD,CAAC;AAED,SAAgB,UAAU;IACxB,MAAM,UAAU,GAAG,IAAA,gCAAqB,GAAE,CAAC;IAC3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5D,uEAAuE;IACvE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACrB,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,WAAW,CAAC,MAAsB;IAChD,MAAM,GAAG,GAAG,IAAA,+BAAoB,GAAE,CAAC;IACnC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,EAAE,CAAC,aAAa,CAAC,IAAA,gCAAqB,GAAE,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACnF,8DAA8D;IAC9D,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,EAAE,CAAC,SAAS,CAAC,IAAA,gCAAqB,GAAE,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,oCAEC;AAED,gCAaC;AAED,kCAQC;AAGD,0CAEC;AAnDD,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AACzB,+CAA+E;AAgB/E,SAAgB,YAAY;IAC1B,OAAO,EAAE,CAAC,UAAU,CAAC,IAAA,gCAAqB,GAAE,CAAC,CAAC;AAChD,CAAC;AAED,SAAgB,UAAU;IACxB,MAAM,UAAU,GAAG,IAAA,gCAAqB,GAAE,CAAC;IAC3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5D,uEAAuE;IACvE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACrB,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,WAAW,CAAC,MAAsB;IAChD,MAAM,GAAG,GAAG,IAAA,+BAAoB,GAAE,CAAC;IACnC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,EAAE,CAAC,aAAa,CAAC,IAAA,gCAAqB,GAAE,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACnF,8DAA8D;IAC9D,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,EAAE,CAAC,SAAS,CAAC,IAAA,gCAAqB,GAAE,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,yDAAyD;AACzD,SAAgB,eAAe;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC"}
|
package/dist/storage/gist.d.ts
CHANGED
|
@@ -2,6 +2,11 @@ export interface GistInfo {
|
|
|
2
2
|
id: string;
|
|
3
3
|
htmlUrl: string;
|
|
4
4
|
}
|
|
5
|
+
/**
|
|
6
|
+
* Resolve a gist URL (https://gist.github.com/user/id) or raw ID to GistInfo,
|
|
7
|
+
* verifying it's accessible with the given token.
|
|
8
|
+
*/
|
|
9
|
+
export declare function resolveGistInfo(token: string, urlOrId: string): Promise<GistInfo>;
|
|
5
10
|
/** Create a private gist as the sync target */
|
|
6
11
|
export declare function createGist(token: string): Promise<GistInfo>;
|
|
7
12
|
/** Upload files to an existing gist (creates/updates, does not delete missing files) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gist.d.ts","sourceRoot":"","sources":["../../src/storage/gist.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gist.d.ts","sourceRoot":"","sources":["../../src/storage/gist.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB;AAYD;;;GAGG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAgBvF;AAED,+CAA+C;AAC/C,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAmBjE;AAED,wFAAwF;AACxF,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CA6Bf;AAED,kCAAkC;AAClC,wBAAsB,SAAS,CAC7B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAkBjC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKvE;AAoBD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,IAAI,CAON"}
|
package/dist/storage/gist.js
CHANGED
|
@@ -33,6 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.resolveGistInfo = resolveGistInfo;
|
|
36
37
|
exports.createGist = createGist;
|
|
37
38
|
exports.updateGist = updateGist;
|
|
38
39
|
exports.fetchGist = fetchGist;
|
|
@@ -40,6 +41,7 @@ exports.collectFilesFromDir = collectFilesFromDir;
|
|
|
40
41
|
exports.writeGistFilesToDir = writeGistFilesToDir;
|
|
41
42
|
const fs = __importStar(require("fs"));
|
|
42
43
|
const path = __importStar(require("path"));
|
|
44
|
+
const files_js_1 = require("../utils/files.js");
|
|
43
45
|
const GITHUB_API = 'https://api.github.com';
|
|
44
46
|
function headers(token) {
|
|
45
47
|
return {
|
|
@@ -50,6 +52,24 @@ function headers(token) {
|
|
|
50
52
|
'User-Agent': 'mcpocket-cli',
|
|
51
53
|
};
|
|
52
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Resolve a gist URL (https://gist.github.com/user/id) or raw ID to GistInfo,
|
|
57
|
+
* verifying it's accessible with the given token.
|
|
58
|
+
*/
|
|
59
|
+
async function resolveGistInfo(token, urlOrId) {
|
|
60
|
+
const trimmed = urlOrId.trim();
|
|
61
|
+
// Extract ID from URL: https://gist.github.com/user/gistId
|
|
62
|
+
const urlMatch = trimmed.match(/gist\.github\.com\/[^/]+\/([a-f0-9]+)/i);
|
|
63
|
+
const gistId = urlMatch ? urlMatch[1] : trimmed;
|
|
64
|
+
const res = await fetch(`${GITHUB_API}/gists/${gistId}`, {
|
|
65
|
+
headers: headers(token),
|
|
66
|
+
});
|
|
67
|
+
if (!res.ok) {
|
|
68
|
+
throw new Error(`Could not access gist (${res.status}): ${await res.text()}`);
|
|
69
|
+
}
|
|
70
|
+
const data = await res.json();
|
|
71
|
+
return { id: data.id, htmlUrl: data.html_url };
|
|
72
|
+
}
|
|
53
73
|
/** Create a private gist as the sync target */
|
|
54
74
|
async function createGist(token) {
|
|
55
75
|
const res = await fetch(`${GITHUB_API}/gists`, {
|
|
@@ -75,10 +95,21 @@ async function updateGist(token, gistId, files) {
|
|
|
75
95
|
for (const [name, content] of Object.entries(files)) {
|
|
76
96
|
gistFiles[name] = { content };
|
|
77
97
|
}
|
|
98
|
+
const existingFiles = await fetchGist(token, gistId);
|
|
99
|
+
for (const name of Object.keys(existingFiles)) {
|
|
100
|
+
if (!(name in files)) {
|
|
101
|
+
gistFiles[name] = { content: '' };
|
|
102
|
+
}
|
|
103
|
+
}
|
|
78
104
|
const res = await fetch(`${GITHUB_API}/gists/${gistId}`, {
|
|
79
105
|
method: 'PATCH',
|
|
80
106
|
headers: headers(token),
|
|
81
|
-
body: JSON.stringify({
|
|
107
|
+
body: JSON.stringify({
|
|
108
|
+
files: Object.fromEntries(Object.entries(gistFiles).map(([name, file]) => [
|
|
109
|
+
name,
|
|
110
|
+
name in files ? file : null,
|
|
111
|
+
])),
|
|
112
|
+
}),
|
|
82
113
|
});
|
|
83
114
|
if (!res.ok) {
|
|
84
115
|
throw new Error(`Failed to update gist (${res.status}): ${await res.text()}`);
|
|
@@ -129,11 +160,9 @@ function collectRecursive(dir, prefix, files) {
|
|
|
129
160
|
* Keys with __ are expanded to subdirectories.
|
|
130
161
|
*/
|
|
131
162
|
function writeGistFilesToDir(dir, files) {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
fs.writeFileSync(fullPath, content, 'utf8');
|
|
137
|
-
}
|
|
163
|
+
const expandedFiles = Object.fromEntries(Object.entries(files).map(([key, content]) => [key.split('__').join(path.sep), content]));
|
|
164
|
+
(0, files_js_1.mirrorFileMapToDir)(dir, expandedFiles, {
|
|
165
|
+
protectedTopLevelNames: new Set(['.git']),
|
|
166
|
+
});
|
|
138
167
|
}
|
|
139
168
|
//# sourceMappingURL=gist.js.map
|
package/dist/storage/gist.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gist.js","sourceRoot":"","sources":["../../src/storage/gist.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"gist.js","sourceRoot":"","sources":["../../src/storage/gist.ts"],"names":[],"mappings":"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"}
|