swift-patterns-mcp 1.0.14 → 1.0.16
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 +16 -22
- package/build/cli/{auth.d.ts → patreon.d.ts} +1 -1
- package/build/cli/patreon.d.ts.map +1 -0
- package/build/cli/patreon.js +148 -0
- package/build/cli/patreon.js.map +1 -0
- package/build/cli/{source-manager.d.ts → sources.d.ts} +1 -1
- package/build/cli/sources.d.ts.map +1 -0
- package/build/cli/sources.js +43 -0
- package/build/cli/sources.js.map +1 -0
- package/build/index.js +13 -0
- package/build/index.js.map +1 -1
- package/build/sources/free/pointfree.d.ts.map +1 -1
- package/build/sources/free/pointfree.js +4 -3
- package/build/sources/free/pointfree.js.map +1 -1
- package/build/utils/cache.d.ts.map +1 -1
- package/build/utils/cache.js +3 -2
- package/build/utils/cache.js.map +1 -1
- package/package.json +4 -4
- package/build/cli/auth.d.ts.map +0 -1
- package/build/cli/auth.js +0 -44
- package/build/cli/auth.js.map +0 -1
- package/build/cli/setup.d.ts +0 -2
- package/build/cli/setup.d.ts.map +0 -1
- package/build/cli/setup.js +0 -116
- package/build/cli/setup.js.map +0 -1
- package/build/cli/source-manager.d.ts.map +0 -1
- package/build/cli/source-manager.js +0 -117
- package/build/cli/source-manager.js.map +0 -1
- package/build/utils/concurrency.d.ts +0 -13
- package/build/utils/concurrency.d.ts.map +0 -1
- package/build/utils/concurrency.js +0 -33
- package/build/utils/concurrency.js.map +0 -1
package/README.md
CHANGED
|
@@ -75,7 +75,7 @@ Access exclusive content from top iOS educators: **Kavsoft**, **SwiftUI Codes**,
|
|
|
75
75
|
### Install
|
|
76
76
|
|
|
77
77
|
```bash
|
|
78
|
-
|
|
78
|
+
npx -y swift-patterns-mcp@latest
|
|
79
79
|
```
|
|
80
80
|
|
|
81
81
|
### Configure Your AI Assistant
|
|
@@ -323,13 +323,13 @@ Add to your MCP client config:
|
|
|
323
323
|
Access premium content from iOS creators you support:
|
|
324
324
|
|
|
325
325
|
```bash
|
|
326
|
-
swift-patterns-mcp setup
|
|
326
|
+
swift-patterns-mcp patreon setup
|
|
327
327
|
```
|
|
328
328
|
|
|
329
329
|
Follow the interactive wizard to:
|
|
330
|
-
1.
|
|
331
|
-
2.
|
|
332
|
-
3.
|
|
330
|
+
1. Verify environment variables are configured
|
|
331
|
+
2. Complete OAuth authentication
|
|
332
|
+
3. Fetch and verify content from your subscriptions
|
|
333
333
|
|
|
334
334
|
📖 **Detailed Guide**: [Patreon Setup Documentation](docs/PATREON_SETUP.md)
|
|
335
335
|
|
|
@@ -354,18 +354,13 @@ Patreon requires OAuth apps to be registered by creators. You don't need to laun
|
|
|
354
354
|
## ⚙️ Commands
|
|
355
355
|
|
|
356
356
|
```bash
|
|
357
|
-
#
|
|
358
|
-
swift-patterns-mcp
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
#
|
|
363
|
-
swift-patterns-mcp
|
|
364
|
-
swift-patterns-mcp setup --patreon
|
|
365
|
-
|
|
366
|
-
# Authentication
|
|
367
|
-
swift-patterns-mcp auth patreon
|
|
368
|
-
swift-patterns-mcp auth status
|
|
357
|
+
# List all content sources and status
|
|
358
|
+
swift-patterns-mcp sources
|
|
359
|
+
|
|
360
|
+
# Patreon integration
|
|
361
|
+
swift-patterns-mcp patreon setup # Connect your Patreon account
|
|
362
|
+
swift-patterns-mcp patreon status # Check connection status
|
|
363
|
+
swift-patterns-mcp patreon reset # Clear authentication data
|
|
369
364
|
```
|
|
370
365
|
|
|
371
366
|
## 🗃️ How It Works
|
|
@@ -376,7 +371,7 @@ graph LR
|
|
|
376
371
|
B --> C[Free Sources]
|
|
377
372
|
B --> D[Premium Sources]
|
|
378
373
|
C --> E[Swift by Sundell RSS]
|
|
379
|
-
C --> F[van der Lee RSS]
|
|
374
|
+
C --> F[Antoine van der Lee RSS]
|
|
380
375
|
C --> G[Nil Coalescing RSS]
|
|
381
376
|
C --> H[Point-Free GitHub]
|
|
382
377
|
D --> I[Patreon API]
|
|
@@ -399,9 +394,8 @@ node --version # Should be >= 18.0.0
|
|
|
399
394
|
|
|
400
395
|
**Sources not returning results**
|
|
401
396
|
```bash
|
|
402
|
-
swift-patterns-mcp
|
|
397
|
+
swift-patterns-mcp sources
|
|
403
398
|
ls ~/.swift-patterns-mcp/config.json
|
|
404
|
-
swift-patterns-mcp setup
|
|
405
399
|
```
|
|
406
400
|
|
|
407
401
|
### Patreon Integration Issues
|
|
@@ -413,8 +407,8 @@ swift-patterns-mcp setup
|
|
|
413
407
|
|
|
414
408
|
**No premium content showing**
|
|
415
409
|
- Confirm you have active Patreon subscriptions to iOS creators
|
|
416
|
-
-
|
|
417
|
-
-
|
|
410
|
+
- Check status: `swift-patterns-mcp patreon status`
|
|
411
|
+
- Re-authenticate: `swift-patterns-mcp patreon setup`
|
|
418
412
|
|
|
419
413
|
## 🗺️ Roadmap
|
|
420
414
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patreon.d.ts","sourceRoot":"","sources":["../../src/cli/patreon.ts"],"names":[],"mappings":";AAKA,OAAO,eAAe,CAAC"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// src/cli/patreon.ts
|
|
3
|
+
// Patreon integration: setup, reset, status
|
|
4
|
+
import 'dotenv/config';
|
|
5
|
+
import readline from 'readline';
|
|
6
|
+
import { startOAuthFlow, loadTokens, clearPatreonAuth } from '../sources/premium/patreon-oauth.js';
|
|
7
|
+
import PatreonSource from '../sources/premium/patreon.js';
|
|
8
|
+
import SourceManager from '../config/sources.js';
|
|
9
|
+
import { withYouTube } from '../config/creators.js';
|
|
10
|
+
import logger from '../utils/logger.js';
|
|
11
|
+
function printUsage() {
|
|
12
|
+
console.log('swift-patterns-mcp patreon\n');
|
|
13
|
+
console.log('Manage Patreon integration for premium content access.\n');
|
|
14
|
+
console.log('Usage:');
|
|
15
|
+
console.log(' swift-patterns-mcp patreon setup Connect your Patreon account');
|
|
16
|
+
console.log(' swift-patterns-mcp patreon reset Clear authentication data');
|
|
17
|
+
console.log(' swift-patterns-mcp patreon status Check connection status');
|
|
18
|
+
}
|
|
19
|
+
async function showStatus() {
|
|
20
|
+
console.log('\n# Patreon Status\n');
|
|
21
|
+
const tokens = await loadTokens();
|
|
22
|
+
const sourceManager = new SourceManager();
|
|
23
|
+
if (!tokens) {
|
|
24
|
+
console.log(' Status: ⬜ Not configured\n');
|
|
25
|
+
console.log('Run: swift-patterns-mcp patreon setup');
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const isEnabled = sourceManager.isSourceConfigured('patreon');
|
|
29
|
+
console.log(` Status: ${isEnabled ? '✅ Connected' : '⚙️ Configured but disabled'}`);
|
|
30
|
+
const creators = withYouTube();
|
|
31
|
+
console.log(` Creators: ${creators.length} configured`);
|
|
32
|
+
for (const c of creators) {
|
|
33
|
+
console.log(` - ${c.name}`);
|
|
34
|
+
}
|
|
35
|
+
console.log('');
|
|
36
|
+
}
|
|
37
|
+
async function setup() {
|
|
38
|
+
console.log('\n# Patreon Setup\n');
|
|
39
|
+
const clientId = process.env.PATREON_CLIENT_ID;
|
|
40
|
+
const clientSecret = process.env.PATREON_CLIENT_SECRET;
|
|
41
|
+
const youtubeKey = process.env.YOUTUBE_API_KEY;
|
|
42
|
+
// Check required env vars
|
|
43
|
+
const missing = [];
|
|
44
|
+
if (!clientId)
|
|
45
|
+
missing.push('PATREON_CLIENT_ID');
|
|
46
|
+
if (!clientSecret)
|
|
47
|
+
missing.push('PATREON_CLIENT_SECRET');
|
|
48
|
+
if (!youtubeKey)
|
|
49
|
+
missing.push('YOUTUBE_API_KEY');
|
|
50
|
+
if (missing.length > 0) {
|
|
51
|
+
console.log('Missing required environment variables:\n');
|
|
52
|
+
for (const v of missing) {
|
|
53
|
+
console.log(` - ${v}`);
|
|
54
|
+
}
|
|
55
|
+
console.log('\nAdd these to your .env file:');
|
|
56
|
+
console.log(' Patreon: https://www.patreon.com/portal/registration/register-clients');
|
|
57
|
+
console.log(' YouTube: https://console.cloud.google.com/apis/credentials\n');
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
// Check if already configured
|
|
61
|
+
const existingTokens = await loadTokens();
|
|
62
|
+
if (existingTokens) {
|
|
63
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
64
|
+
const answer = await new Promise(resolve => rl.question('Already configured. Reconfigure? (y/N): ', resolve));
|
|
65
|
+
rl.close();
|
|
66
|
+
if (answer.toLowerCase() !== 'y') {
|
|
67
|
+
console.log('\nCancelled.\n');
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// OAuth flow
|
|
72
|
+
console.log('Step 1/2: Authentication\n');
|
|
73
|
+
const result = await startOAuthFlow(clientId, clientSecret);
|
|
74
|
+
if (!result.success) {
|
|
75
|
+
console.log(`\nAuthentication failed: ${result.error}\n`);
|
|
76
|
+
process.exit(1);
|
|
77
|
+
}
|
|
78
|
+
console.log('Authenticated!\n');
|
|
79
|
+
// Verify and show stats
|
|
80
|
+
console.log('Step 2/2: Verifying...\n');
|
|
81
|
+
const creators = withYouTube();
|
|
82
|
+
console.log(`Configured creators (${creators.length}):`);
|
|
83
|
+
for (const c of creators) {
|
|
84
|
+
console.log(` - ${c.name}`);
|
|
85
|
+
}
|
|
86
|
+
console.log('\nFetching content...\n');
|
|
87
|
+
const patreon = new PatreonSource();
|
|
88
|
+
const patterns = await patreon.fetchPatterns();
|
|
89
|
+
const stats = new Map();
|
|
90
|
+
for (const p of patterns) {
|
|
91
|
+
if (!stats.has(p.creator)) {
|
|
92
|
+
stats.set(p.creator, { posts: 0, withCode: 0 });
|
|
93
|
+
}
|
|
94
|
+
const s = stats.get(p.creator);
|
|
95
|
+
s.posts++;
|
|
96
|
+
if (p.hasCode)
|
|
97
|
+
s.withCode++;
|
|
98
|
+
}
|
|
99
|
+
for (const [name, s] of stats) {
|
|
100
|
+
console.log(` ${name}: ${s.posts} posts (${s.withCode} with code)`);
|
|
101
|
+
}
|
|
102
|
+
// Mark configured
|
|
103
|
+
const sourceManager = new SourceManager();
|
|
104
|
+
sourceManager.markSourceConfigured('patreon');
|
|
105
|
+
console.log(`\n✅ Setup complete! Found ${patterns.length} posts.\n`);
|
|
106
|
+
}
|
|
107
|
+
async function reset() {
|
|
108
|
+
console.log('\n# Reset Patreon\n');
|
|
109
|
+
try {
|
|
110
|
+
await clearPatreonAuth();
|
|
111
|
+
console.log('Authentication data cleared.\n');
|
|
112
|
+
console.log('Run: swift-patterns-mcp patreon setup\n');
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
console.log(`Failed: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
116
|
+
process.exit(1);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
// Parse args
|
|
120
|
+
const args = process.argv.slice(2);
|
|
121
|
+
const action = args[0];
|
|
122
|
+
if (args.includes('--help') || args.includes('-h') || !action) {
|
|
123
|
+
printUsage();
|
|
124
|
+
process.exit(0);
|
|
125
|
+
}
|
|
126
|
+
async function main() {
|
|
127
|
+
switch (action) {
|
|
128
|
+
case 'setup':
|
|
129
|
+
await setup();
|
|
130
|
+
break;
|
|
131
|
+
case 'reset':
|
|
132
|
+
await reset();
|
|
133
|
+
break;
|
|
134
|
+
case 'status':
|
|
135
|
+
await showStatus();
|
|
136
|
+
break;
|
|
137
|
+
default:
|
|
138
|
+
console.log(`Unknown command: ${action}\n`);
|
|
139
|
+
printUsage();
|
|
140
|
+
process.exit(1);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
await main().catch(err => {
|
|
144
|
+
logger.error({ err }, 'Command failed');
|
|
145
|
+
process.exit(1);
|
|
146
|
+
});
|
|
147
|
+
process.exit(0);
|
|
148
|
+
//# sourceMappingURL=patreon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patreon.js","sourceRoot":"","sources":["../../src/cli/patreon.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../src/cli/sources.ts"],"names":[],"mappings":";AAKA,OAAO,eAAe,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// src/cli/sources.ts
|
|
3
|
+
// Lists all content sources and their status
|
|
4
|
+
import 'dotenv/config';
|
|
5
|
+
import SourceManager from '../config/sources.js';
|
|
6
|
+
const sourceManager = new SourceManager();
|
|
7
|
+
function getStatusIcon(isEnabled, isConfigured) {
|
|
8
|
+
if (isEnabled && isConfigured)
|
|
9
|
+
return '✅';
|
|
10
|
+
if (isConfigured)
|
|
11
|
+
return '⚙️';
|
|
12
|
+
return '⬜';
|
|
13
|
+
}
|
|
14
|
+
function listSources() {
|
|
15
|
+
const allSources = sourceManager.getAllSources();
|
|
16
|
+
const freeSources = allSources.filter(source => source.type === 'free');
|
|
17
|
+
const premiumSources = allSources.filter(source => source.type === 'premium');
|
|
18
|
+
console.log('\n# Content Sources\n');
|
|
19
|
+
console.log('## Free Sources');
|
|
20
|
+
for (const source of freeSources) {
|
|
21
|
+
const status = getStatusIcon(source.isEnabled, source.isConfigured);
|
|
22
|
+
console.log(` ${status} ${source.name} - ${source.description}`);
|
|
23
|
+
}
|
|
24
|
+
console.log('\n## Premium Sources');
|
|
25
|
+
for (const source of premiumSources) {
|
|
26
|
+
const status = getStatusIcon(source.isEnabled, source.isConfigured);
|
|
27
|
+
const note = source.isConfigured ? '' : ' (run: swift-patterns-mcp patreon setup)';
|
|
28
|
+
console.log(` ${status} ${source.name} - ${source.description}${note}`);
|
|
29
|
+
}
|
|
30
|
+
console.log('\n✅ Enabled | ⚙️ Disabled | ⬜ Not configured\n');
|
|
31
|
+
}
|
|
32
|
+
// Show help or list sources
|
|
33
|
+
const args = process.argv.slice(2);
|
|
34
|
+
if (args.includes('--help') || args.includes('-h')) {
|
|
35
|
+
console.log('swift-patterns-mcp sources\n');
|
|
36
|
+
console.log('Lists all available content sources and their status.\n');
|
|
37
|
+
console.log('Usage:');
|
|
38
|
+
console.log(' swift-patterns-mcp sources');
|
|
39
|
+
process.exit(0);
|
|
40
|
+
}
|
|
41
|
+
listSources();
|
|
42
|
+
process.exit(0);
|
|
43
|
+
//# sourceMappingURL=sources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../../src/cli/sources.ts"],"names":[],"mappings":";AAEA,qBAAqB;AACrB,6CAA6C;AAE7C,OAAO,eAAe,CAAC;AACvB,OAAO,aAAa,MAAM,sBAAsB,CAAC;AAEjD,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AAE1C,SAAS,aAAa,CAAC,SAAkB,EAAE,YAAqB;IAC9D,IAAI,SAAS,IAAI,YAAY;QAAE,OAAO,GAAG,CAAC;IAC1C,IAAI,YAAY;QAAE,OAAO,IAAI,CAAC;IAC9B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,EAAE,CAAC;IACjD,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACxE,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAE9E,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAErC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/B,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACpC,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,0CAA0C,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,WAAW,GAAG,IAAI,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;AAChE,CAAC;AAED,4BAA4B;AAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,WAAW,EAAE,CAAC;AACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC"}
|
package/build/index.js
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
// src/index.ts
|
|
3
3
|
import 'dotenv/config';
|
|
4
|
+
// CLI subcommand routing — detect before starting MCP server
|
|
5
|
+
const CLI_COMMANDS = {
|
|
6
|
+
sources: './cli/sources.js',
|
|
7
|
+
patreon: './cli/patreon.js',
|
|
8
|
+
};
|
|
9
|
+
const subcommand = process.argv[2];
|
|
10
|
+
if (subcommand && subcommand in CLI_COMMANDS) {
|
|
11
|
+
// Strip the subcommand from argv so CLI modules see correct args
|
|
12
|
+
// e.g. "swift-patterns-mcp source list" → argv becomes [..., "list"]
|
|
13
|
+
process.argv.splice(2, 1);
|
|
14
|
+
await import(CLI_COMMANDS[subcommand]);
|
|
15
|
+
process.exit(0); // Fallback if CLI module doesn't exit explicitly
|
|
16
|
+
}
|
|
4
17
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
5
18
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
6
19
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pointfree.d.ts","sourceRoot":"","sources":["../../../src/sources/free/pointfree.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,UAAU,EAAE,MAAM,CAAC;CACpB;AAwGD,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAA2E;YAEjF,gBAAgB;YAYhB,WAAW;YAaX,iBAAiB;YAUjB,gBAAgB;IASxB,aAAa,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"pointfree.d.ts","sourceRoot":"","sources":["../../../src/sources/free/pointfree.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,UAAU,EAAE,MAAM,CAAC;CACpB;AAwGD,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAA2E;YAEjF,gBAAgB;YAYhB,WAAW;YAaX,iBAAiB;YAUjB,gBAAgB;IASxB,aAAa,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAoD5C,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;CAIjE;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -5,7 +5,7 @@ import { CachedSearchIndex } from '../../utils/search.js';
|
|
|
5
5
|
import { detectTopics, hasCodeContent, calculateRelevance } from '../../utils/swift-analysis.js';
|
|
6
6
|
import { createSourceConfig } from '../../config/swift-keywords.js';
|
|
7
7
|
import { fetchJson, fetchText, buildHeaders } from '../../utils/http.js';
|
|
8
|
-
import
|
|
8
|
+
import pLimit from 'p-limit';
|
|
9
9
|
import logger from '../../utils/logger.js';
|
|
10
10
|
const POINTFREE_OWNER = 'pointfreeco';
|
|
11
11
|
const POINTFREE_REPO = 'pointfreeco';
|
|
@@ -130,7 +130,8 @@ export class PointFreeSource {
|
|
|
130
130
|
}
|
|
131
131
|
const branch = await this.getDefaultBranch();
|
|
132
132
|
const { branch: resolvedBranch, files } = await this.fetchContentFiles(branch);
|
|
133
|
-
const
|
|
133
|
+
const limit = pLimit(MAX_CONCURRENT_FETCHES);
|
|
134
|
+
const patterns = await Promise.all(files.map(file => limit(async () => {
|
|
134
135
|
try {
|
|
135
136
|
const content = await this.fetchFileContent(resolvedBranch, file.path);
|
|
136
137
|
const title = extractTitle(file.path, content);
|
|
@@ -158,7 +159,7 @@ export class PointFreeSource {
|
|
|
158
159
|
logger.error({ err: error, filePath: file.path }, 'Failed to fetch PointFree file');
|
|
159
160
|
return null;
|
|
160
161
|
}
|
|
161
|
-
});
|
|
162
|
+
})));
|
|
162
163
|
// Filter out null results from failed fetches
|
|
163
164
|
const validPatterns = patterns.filter((pattern) => pattern !== null);
|
|
164
165
|
await rssCache.set(POINTFREE_CACHE_KEY, validPatterns, POINTFREE_CACHE_TTL);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pointfree.js","sourceRoot":"","sources":["../../../src/sources/free/pointfree.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,
|
|
1
|
+
{"version":3,"file":"pointfree.js","sourceRoot":"","sources":["../../../src/sources/free/pointfree.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"AAmBA,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAwC;IAC3D,OAAO,CAAC,eAAe,CAA4C;IACnE,OAAO,CAAC,eAAe,CAA+C;gBAE1D,SAAS,GAAE,MAAkB,EAAE,gBAAgB,GAAE,MAAmC;IAUhG,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,YAAY;IAId,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAgCtC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,GAAE,MAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBtE,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,GAAE,MAAoB,GAAG,OAAO,CAAC,CAAC,CAAC;IA6BlG,OAAO,CAAC,SAAS;IAKX,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAYtB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"AAmBA,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAwC;IAC3D,OAAO,CAAC,eAAe,CAA4C;IACnE,OAAO,CAAC,eAAe,CAA+C;gBAE1D,SAAS,GAAE,MAAkB,EAAE,gBAAgB,GAAE,MAAmC;IAUhG,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,YAAY;IAId,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAgCtC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,GAAE,MAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBtE,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,GAAE,MAAoB,GAAG,OAAO,CAAC,CAAC,CAAC;IA6BlG,OAAO,CAAC,SAAS;IAKX,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAYtB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;CAyCtC;AAGD,eAAO,MAAM,QAAQ,WAAuB,CAAC;AAC7C,eAAO,MAAM,YAAY,WAA4B,CAAC"}
|
package/build/utils/cache.js
CHANGED
|
@@ -159,8 +159,9 @@ export class FileCache {
|
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
catch {
|
|
162
|
-
|
|
163
|
-
|
|
162
|
+
// Skip files that can't be read or parsed — don't delete them
|
|
163
|
+
// as they may be mid-write by another operation
|
|
164
|
+
return 0;
|
|
164
165
|
}
|
|
165
166
|
return 0;
|
|
166
167
|
}));
|
package/build/utils/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "swift-patterns-mcp",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.16",
|
|
4
4
|
"description": "MCP server providing curated Swift/SwiftUI best practices from leading iOS developers, including patterns and real-world code examples from Swift by Sundell, SwiftLee, and other trusted sources.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -15,9 +15,8 @@
|
|
|
15
15
|
"build": "tsc",
|
|
16
16
|
"watch": "tsc --watch",
|
|
17
17
|
"prepare": "npm run build",
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"source": "node build/cli/source-manager.js",
|
|
18
|
+
"sources": "node build/cli/sources.js",
|
|
19
|
+
"patreon": "node build/cli/patreon.js",
|
|
21
20
|
"lint": "eslint . && tsc --noEmit",
|
|
22
21
|
"pretest": "npm run build",
|
|
23
22
|
"test": "vitest run",
|
|
@@ -61,6 +60,7 @@
|
|
|
61
60
|
"minisearch": "^7.2.0",
|
|
62
61
|
"ml-distance": "^4.0.1",
|
|
63
62
|
"natural": "^8.1.0",
|
|
63
|
+
"p-limit": "^7.2.0",
|
|
64
64
|
"pino": "^9.5.0",
|
|
65
65
|
"playwright": "^1.58.0",
|
|
66
66
|
"quick-lru": "^7.3.0",
|
package/build/cli/auth.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":";AAIA,OAAO,eAAe,CAAC"}
|
package/build/cli/auth.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// src/cli/auth.ts
|
|
3
|
-
import 'dotenv/config';
|
|
4
|
-
import { clearPatreonAuth } from "../sources/premium/patreon-oauth.js";
|
|
5
|
-
import logger from "../utils/logger.js";
|
|
6
|
-
function print(msg) {
|
|
7
|
-
console.log(msg);
|
|
8
|
-
}
|
|
9
|
-
async function resetAuth() {
|
|
10
|
-
print("\n🔄 Resetting Patreon Authentication");
|
|
11
|
-
print("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n");
|
|
12
|
-
try {
|
|
13
|
-
await clearPatreonAuth();
|
|
14
|
-
print("✅ Authentication data cleared successfully!\n");
|
|
15
|
-
print("Run 'swift-patterns-mcp setup --patreon' to re-authenticate.\n");
|
|
16
|
-
}
|
|
17
|
-
catch (err) {
|
|
18
|
-
print(`❌ Failed to clear authentication: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
19
|
-
process.exit(1);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
// Parse args
|
|
23
|
-
const args = process.argv.slice(2);
|
|
24
|
-
if (args.includes("reset") || args.includes("-r")) {
|
|
25
|
-
resetAuth().catch((err) => {
|
|
26
|
-
logger.error({ err }, "Reset failed");
|
|
27
|
-
process.exit(1);
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
else if (args.includes("--help") || args.includes("-h")) {
|
|
31
|
-
print("swift-patterns-mcp auth\n");
|
|
32
|
-
print("Usage:");
|
|
33
|
-
print(" swift-patterns-mcp auth reset Clear all Patreon authentication data");
|
|
34
|
-
print(" swift-patterns-mcp auth --help Show this help");
|
|
35
|
-
process.exit(0);
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
print("swift-patterns-mcp auth\n");
|
|
39
|
-
print("Available commands:");
|
|
40
|
-
print(" reset Clear all Patreon authentication data");
|
|
41
|
-
print("\nRun: swift-patterns-mcp auth reset");
|
|
42
|
-
process.exit(0);
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=auth.js.map
|
package/build/cli/auth.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":";AAEA,kBAAkB;AAElB,OAAO,eAAe,CAAC;AAEvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;AACtE,OAAO,MAAM,MAAM,oBAAoB,CAAA;AAEvC,SAAS,KAAK,CAAC,GAAW;IACxB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAClB,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAC9C,KAAK,CAAC,sCAAsC,CAAC,CAAA;IAE7C,IAAI,CAAC;QACH,MAAM,gBAAgB,EAAE,CAAA;QACxB,KAAK,CAAC,+CAA+C,CAAC,CAAA;QACtD,KAAK,CAAC,gEAAgE,CAAC,CAAA;IACzE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,KAAK,CAAC,qCAAqC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAChG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,aAAa;AACb,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAElC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IAClD,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACxB,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,cAAc,CAAC,CAAA;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;AACJ,CAAC;KAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1D,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAClC,KAAK,CAAC,QAAQ,CAAC,CAAA;IACf,KAAK,CAAC,0EAA0E,CAAC,CAAA;IACjF,KAAK,CAAC,mDAAmD,CAAC,CAAA;IAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;KAAM,CAAC;IACN,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAClC,KAAK,CAAC,qBAAqB,CAAC,CAAA;IAC5B,KAAK,CAAC,kDAAkD,CAAC,CAAA;IACzD,KAAK,CAAC,sCAAsC,CAAC,CAAA;IAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC"}
|
package/build/cli/setup.d.ts
DELETED
package/build/cli/setup.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"AAEA,OAAO,eAAe,CAAC"}
|
package/build/cli/setup.js
DELETED
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
// src/cli/setup.ts
|
|
2
|
-
import 'dotenv/config';
|
|
3
|
-
import readline from 'readline';
|
|
4
|
-
import { startOAuthFlow, loadTokens } from '../sources/premium/patreon-oauth.js';
|
|
5
|
-
import PatreonSource from '../sources/premium/patreon.js';
|
|
6
|
-
import SourceManager from '../config/sources.js';
|
|
7
|
-
import { withYouTube } from '../config/creators.js';
|
|
8
|
-
import logger from '../utils/logger.js';
|
|
9
|
-
const rl = readline.createInterface({
|
|
10
|
-
input: process.stdin,
|
|
11
|
-
output: process.stdout,
|
|
12
|
-
});
|
|
13
|
-
function question(prompt) {
|
|
14
|
-
return new Promise(resolve => rl.question(prompt, resolve));
|
|
15
|
-
}
|
|
16
|
-
function print(msg) {
|
|
17
|
-
console.log(msg);
|
|
18
|
-
}
|
|
19
|
-
async function setupPatreon() {
|
|
20
|
-
print('\n🔐 Patreon Setup');
|
|
21
|
-
print('━━━━━━━━━━━━━━━━\n');
|
|
22
|
-
const clientId = process.env.PATREON_CLIENT_ID;
|
|
23
|
-
const clientSecret = process.env.PATREON_CLIENT_SECRET;
|
|
24
|
-
const youtubeKey = process.env.YOUTUBE_API_KEY;
|
|
25
|
-
// Check all required env vars
|
|
26
|
-
const missing = [];
|
|
27
|
-
if (!clientId)
|
|
28
|
-
missing.push('PATREON_CLIENT_ID');
|
|
29
|
-
if (!clientSecret)
|
|
30
|
-
missing.push('PATREON_CLIENT_SECRET');
|
|
31
|
-
if (!youtubeKey)
|
|
32
|
-
missing.push('YOUTUBE_API_KEY');
|
|
33
|
-
if (missing.length > 0) {
|
|
34
|
-
print('❌ Missing required environment variables:\n');
|
|
35
|
-
for (const v of missing) {
|
|
36
|
-
print(` - ${v}`);
|
|
37
|
-
}
|
|
38
|
-
print('\nAdd these to your .env file or environment.');
|
|
39
|
-
print('Get Patreon credentials at: https://www.patreon.com/portal/registration/register-clients');
|
|
40
|
-
print('Get YouTube API key at: https://console.cloud.google.com/apis/credentials');
|
|
41
|
-
rl.close();
|
|
42
|
-
process.exit(1);
|
|
43
|
-
}
|
|
44
|
-
// Check if already configured
|
|
45
|
-
const existingTokens = await loadTokens();
|
|
46
|
-
if (existingTokens) {
|
|
47
|
-
const answer = await question('Patreon is already configured. Reconfigure? (y/N): ');
|
|
48
|
-
if (answer.toLowerCase() !== 'y') {
|
|
49
|
-
print('\nSetup cancelled.');
|
|
50
|
-
rl.close();
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
// Step 1: OAuth
|
|
55
|
-
print('Step 1/2: Authentication');
|
|
56
|
-
const result = await startOAuthFlow(clientId, clientSecret);
|
|
57
|
-
if (!result.success) {
|
|
58
|
-
print(`\n❌ Authorization failed: ${result.error}`);
|
|
59
|
-
rl.close();
|
|
60
|
-
process.exit(1);
|
|
61
|
-
}
|
|
62
|
-
print('✓ Authenticated successfully!\n');
|
|
63
|
-
// Step 2: Show configured creators and test
|
|
64
|
-
print('Step 2/2: Verifying Setup');
|
|
65
|
-
const creatorsWithYouTube = withYouTube();
|
|
66
|
-
print(`\nConfigured creators (${creatorsWithYouTube.length}):`);
|
|
67
|
-
for (const creator of creatorsWithYouTube) {
|
|
68
|
-
print(` ✓ ${creator.name}`);
|
|
69
|
-
}
|
|
70
|
-
print('\nTesting content fetch...\n');
|
|
71
|
-
const patreon = new PatreonSource();
|
|
72
|
-
const patterns = await patreon.fetchPatterns();
|
|
73
|
-
const creatorStats = new Map();
|
|
74
|
-
for (const p of patterns) {
|
|
75
|
-
if (!creatorStats.has(p.creator)) {
|
|
76
|
-
creatorStats.set(p.creator, { posts: 0, withCode: 0 });
|
|
77
|
-
}
|
|
78
|
-
const stats = creatorStats.get(p.creator);
|
|
79
|
-
stats.posts++;
|
|
80
|
-
if (p.hasCode)
|
|
81
|
-
stats.withCode++;
|
|
82
|
-
}
|
|
83
|
-
for (const [creatorName, stats] of creatorStats) {
|
|
84
|
-
print(` ${creatorName}: ${stats.posts} posts (${stats.withCode} with code)`);
|
|
85
|
-
}
|
|
86
|
-
// Mark as configured
|
|
87
|
-
const sourceManager = new SourceManager();
|
|
88
|
-
sourceManager.markSourceConfigured('patreon');
|
|
89
|
-
print('\n✅ Setup complete!\n');
|
|
90
|
-
print(`Found ${patterns.length} posts from ${creatorStats.size} creator(s).`);
|
|
91
|
-
print("Use 'get_patreon_patterns' in your AI assistant to search them.\n");
|
|
92
|
-
rl.close();
|
|
93
|
-
}
|
|
94
|
-
// Parse args
|
|
95
|
-
const args = process.argv.slice(2);
|
|
96
|
-
if (args.includes('--patreon') || args.includes('-p')) {
|
|
97
|
-
setupPatreon().catch(err => {
|
|
98
|
-
logger.error({ err }, 'Setup failed');
|
|
99
|
-
process.exit(1);
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
else if (args.includes('--help') || args.includes('-h')) {
|
|
103
|
-
print('swift-patterns-mcp setup\n');
|
|
104
|
-
print('Usage:');
|
|
105
|
-
print(' swift-patterns-mcp setup --patreon Set up Patreon integration');
|
|
106
|
-
print(' swift-patterns-mcp setup --help Show this help');
|
|
107
|
-
process.exit(0);
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
print('swift-patterns-mcp setup\n');
|
|
111
|
-
print('Available options:');
|
|
112
|
-
print(' --patreon Set up Patreon integration');
|
|
113
|
-
print('\nRun: swift-patterns-mcp setup --patreon');
|
|
114
|
-
process.exit(0);
|
|
115
|
-
}
|
|
116
|
-
//# sourceMappingURL=setup.js.map
|
package/build/cli/setup.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"source-manager.d.ts","sourceRoot":"","sources":["../../src/cli/source-manager.ts"],"names":[],"mappings":";AAIA,OAAO,eAAe,CAAC"}
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// src/cli/source-manager.ts
|
|
3
|
-
import 'dotenv/config';
|
|
4
|
-
import SourceManager from '../config/sources.js';
|
|
5
|
-
const sourceManager = new SourceManager();
|
|
6
|
-
function print(msg) {
|
|
7
|
-
console.log(msg);
|
|
8
|
-
}
|
|
9
|
-
function printUsage() {
|
|
10
|
-
print('swift-patterns-mcp source\n');
|
|
11
|
-
print('Usage:');
|
|
12
|
-
print(' swift-patterns-mcp source list');
|
|
13
|
-
print(' swift-patterns-mcp source enable <source-id>');
|
|
14
|
-
print(' swift-patterns-mcp source disable <source-id>');
|
|
15
|
-
print(' swift-patterns-mcp source --help');
|
|
16
|
-
}
|
|
17
|
-
function getStatusIcon(isEnabled, isConfigured) {
|
|
18
|
-
if (isEnabled && isConfigured)
|
|
19
|
-
return '✅';
|
|
20
|
-
if (isConfigured)
|
|
21
|
-
return '⚙️';
|
|
22
|
-
return '⬜';
|
|
23
|
-
}
|
|
24
|
-
function listSources() {
|
|
25
|
-
const allSources = sourceManager.getAllSources();
|
|
26
|
-
const freeSources = allSources.filter(source => source.type === 'free');
|
|
27
|
-
const premiumSources = allSources.filter(source => source.type === 'premium');
|
|
28
|
-
print('\n# Content Sources\n');
|
|
29
|
-
print('## Free Sources (Always Available)');
|
|
30
|
-
freeSources.forEach(source => {
|
|
31
|
-
const status = getStatusIcon(source.isEnabled, source.isConfigured);
|
|
32
|
-
print(`- ${status} **${source.name}** (${source.id}) - ${source.description}`);
|
|
33
|
-
});
|
|
34
|
-
print('\n## Premium Sources (Optional)');
|
|
35
|
-
premiumSources.forEach(source => {
|
|
36
|
-
const status = getStatusIcon(source.isEnabled, source.isConfigured);
|
|
37
|
-
const setupNote = source.isConfigured ? '' : ' (Setup required)';
|
|
38
|
-
print(`- ${status} **${source.name}** (${source.id}) - ${source.description}${setupNote}`);
|
|
39
|
-
});
|
|
40
|
-
print('\n## Legend');
|
|
41
|
-
print('✅ Enabled | ⚙️ Configured but disabled | ⬜ Not configured');
|
|
42
|
-
}
|
|
43
|
-
function enableSource(sourceId) {
|
|
44
|
-
if (!sourceId) {
|
|
45
|
-
print('❌ Missing source ID.');
|
|
46
|
-
printUsage();
|
|
47
|
-
process.exit(1);
|
|
48
|
-
}
|
|
49
|
-
try {
|
|
50
|
-
const source = sourceManager.getSource(sourceId);
|
|
51
|
-
if (!source) {
|
|
52
|
-
print(`❌ Unknown source: "${sourceId}"`);
|
|
53
|
-
print('Run: swift-patterns-mcp source list');
|
|
54
|
-
process.exit(1);
|
|
55
|
-
}
|
|
56
|
-
sourceManager.enableSource(sourceId);
|
|
57
|
-
print(`✅ ${source.name} enabled.`);
|
|
58
|
-
}
|
|
59
|
-
catch (error) {
|
|
60
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
61
|
-
print(`❌ ${message}`);
|
|
62
|
-
process.exit(1);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
function disableSource(sourceId) {
|
|
66
|
-
if (!sourceId) {
|
|
67
|
-
print('❌ Missing source ID.');
|
|
68
|
-
printUsage();
|
|
69
|
-
process.exit(1);
|
|
70
|
-
}
|
|
71
|
-
const source = sourceManager.getSource(sourceId);
|
|
72
|
-
if (!source) {
|
|
73
|
-
print(`❌ Unknown source: "${sourceId}"`);
|
|
74
|
-
print('Run: swift-patterns-mcp source list');
|
|
75
|
-
process.exit(1);
|
|
76
|
-
}
|
|
77
|
-
const success = sourceManager.disableSource(sourceId);
|
|
78
|
-
if (!success) {
|
|
79
|
-
print(`⚠️ ${source.name} is already disabled or not configured.`);
|
|
80
|
-
process.exit(1);
|
|
81
|
-
}
|
|
82
|
-
print(`✅ ${source.name} disabled.`);
|
|
83
|
-
}
|
|
84
|
-
function parseArgs(args) {
|
|
85
|
-
if (args.length === 0) {
|
|
86
|
-
return {};
|
|
87
|
-
}
|
|
88
|
-
const [action, sourceId] = args;
|
|
89
|
-
if (action === '--help' || action === '-h') {
|
|
90
|
-
return {};
|
|
91
|
-
}
|
|
92
|
-
if (action === 'list' || action === 'enable' || action === 'disable') {
|
|
93
|
-
return { action, sourceId };
|
|
94
|
-
}
|
|
95
|
-
return {};
|
|
96
|
-
}
|
|
97
|
-
const args = process.argv.slice(2);
|
|
98
|
-
const { action, sourceId } = parseArgs(args);
|
|
99
|
-
if (!action) {
|
|
100
|
-
printUsage();
|
|
101
|
-
process.exit(0);
|
|
102
|
-
}
|
|
103
|
-
switch (action) {
|
|
104
|
-
case 'list':
|
|
105
|
-
listSources();
|
|
106
|
-
break;
|
|
107
|
-
case 'enable':
|
|
108
|
-
enableSource(sourceId);
|
|
109
|
-
break;
|
|
110
|
-
case 'disable':
|
|
111
|
-
disableSource(sourceId);
|
|
112
|
-
break;
|
|
113
|
-
default:
|
|
114
|
-
printUsage();
|
|
115
|
-
process.exit(1);
|
|
116
|
-
}
|
|
117
|
-
//# sourceMappingURL=source-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"source-manager.js","sourceRoot":"","sources":["../../src/cli/source-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Concurrency utilities for parallel processing
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Run async operations with a concurrency limit
|
|
6
|
-
* @param items - Array of items to process
|
|
7
|
-
* @param limit - Maximum number of concurrent operations (must be positive finite number)
|
|
8
|
-
* @param worker - Function to process each item
|
|
9
|
-
* @returns Promise resolving to array of results in same order as input
|
|
10
|
-
* @throws Error if limit is not a positive finite number
|
|
11
|
-
*/
|
|
12
|
-
export declare function runWithConcurrency<T, R>(items: T[], limit: number, worker: (item: T) => Promise<R>): Promise<R[]>;
|
|
13
|
-
//# sourceMappingURL=concurrency.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"concurrency.d.ts","sourceRoot":"","sources":["../../src/utils/concurrency.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAC3C,KAAK,EAAE,CAAC,EAAE,EACV,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,CAAC,EAAE,CAAC,CA8Bd"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Concurrency utilities for parallel processing
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Run async operations with a concurrency limit
|
|
6
|
-
* @param items - Array of items to process
|
|
7
|
-
* @param limit - Maximum number of concurrent operations (must be positive finite number)
|
|
8
|
-
* @param worker - Function to process each item
|
|
9
|
-
* @returns Promise resolving to array of results in same order as input
|
|
10
|
-
* @throws Error if limit is not a positive finite number
|
|
11
|
-
*/
|
|
12
|
-
export async function runWithConcurrency(items, limit, worker) {
|
|
13
|
-
if (items.length === 0) {
|
|
14
|
-
return [];
|
|
15
|
-
}
|
|
16
|
-
// Validate limit is a positive finite number
|
|
17
|
-
if (!Number.isFinite(limit) || limit <= 0 || !Number.isInteger(limit)) {
|
|
18
|
-
throw new Error(`Invalid concurrency limit: ${limit}. Must be a positive finite integer, got ${typeof limit === 'number' ? limit : typeof limit}`);
|
|
19
|
-
}
|
|
20
|
-
const results = new Array(items.length);
|
|
21
|
-
let nextIndex = 0;
|
|
22
|
-
const runWorker = async () => {
|
|
23
|
-
while (nextIndex < items.length) {
|
|
24
|
-
const currentIndex = nextIndex++;
|
|
25
|
-
// Worker function should handle errors appropriately
|
|
26
|
-
results[currentIndex] = await worker(items[currentIndex]);
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
const workers = Array.from({ length: Math.min(limit, items.length) }, () => runWorker());
|
|
30
|
-
await Promise.all(workers);
|
|
31
|
-
return results;
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=concurrency.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"concurrency.js","sourceRoot":"","sources":["../../src/utils/concurrency.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAAU,EACV,KAAa,EACb,MAA+B;IAE/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,6CAA6C;IAC7C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CACb,8BAA8B,KAAK,4CAA4C,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAClI,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,MAAM,SAAS,GAAG,KAAK,IAAmB,EAAE;QAC1C,OAAO,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,YAAY,GAAG,SAAS,EAAE,CAAC;YACjC,qDAAqD;YACrD,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CACxB,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EACzC,GAAG,EAAE,CAAC,SAAS,EAAE,CAClB,CAAC;IAEF,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,OAAO,OAAO,CAAC;AACjB,CAAC"}
|