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 CHANGED
@@ -75,7 +75,7 @@ Access exclusive content from top iOS educators: **Kavsoft**, **SwiftUI Codes**,
75
75
  ### Install
76
76
 
77
77
  ```bash
78
- npm install -g swift-patterns-mcp
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 --patreon
326
+ swift-patterns-mcp patreon setup
327
327
  ```
328
328
 
329
329
  Follow the interactive wizard to:
330
- 1. Create a Patreon OAuth application
331
- 2. Configure credentials
332
- 3. Complete authentication
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
- # Source management
358
- swift-patterns-mcp source list
359
- swift-patterns-mcp source enable <source-name>
360
- swift-patterns-mcp source disable <source-name>
361
-
362
- # Configuration
363
- swift-patterns-mcp setup
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 source list
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
- - Re-authenticate: `swift-patterns-mcp auth patreon`
417
- - Check Patreon source is enabled: `swift-patterns-mcp source list`
410
+ - Check status: `swift-patterns-mcp patreon status`
411
+ - Re-authenticate: `swift-patterns-mcp patreon setup`
418
412
 
419
413
  ## 🗺️ Roadmap
420
414
 
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
  import 'dotenv/config';
3
- //# sourceMappingURL=auth.d.ts.map
3
+ //# sourceMappingURL=patreon.d.ts.map
@@ -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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"}
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
  import 'dotenv/config';
3
- //# sourceMappingURL=source-manager.d.ts.map
3
+ //# sourceMappingURL=sources.d.ts.map
@@ -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";
@@ -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;IAmD5C,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;CAIjE;AAED,eAAe,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 { runWithConcurrency } from '../../utils/concurrency.js';
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 patterns = await runWithConcurrency(files, MAX_CONCURRENT_FETCHES, async (file) => {
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":"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"}
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;CAwCtC;AAGD,eAAO,MAAM,QAAQ,WAAuB,CAAC;AAC7C,eAAO,MAAM,YAAY,WAA4B,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"}
@@ -159,8 +159,9 @@ export class FileCache {
159
159
  }
160
160
  }
161
161
  catch {
162
- await fsp.unlink(filePath).catch(() => { });
163
- return 1;
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
  }));
@@ -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.14",
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
- "setup": "node build/cli/setup.js",
19
- "auth": "node build/cli/auth.js",
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",
@@ -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
@@ -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"}
@@ -1,2 +0,0 @@
1
- import 'dotenv/config';
2
- //# sourceMappingURL=setup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"AAEA,OAAO,eAAe,CAAC"}
@@ -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
@@ -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":";AAEA,4BAA4B;AAE5B,OAAO,eAAe,CAAC;AAEvB,OAAO,aAAa,MAAM,sBAAsB,CAAC;AAIjD,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AAE1C,SAAS,KAAK,CAAC,GAAW;IACxB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,UAAU;IACjB,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACrC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChB,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAC1C,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACxD,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACzD,KAAK,CAAC,oCAAoC,CAAC,CAAC;AAC9C,CAAC;AAED,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,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAE/B,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC5C,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QAC3B,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QACpE,KAAK,CAAC,KAAK,MAAM,MAAM,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,EAAE,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACzC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QAC9B,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC;QACjE,KAAK,CAAC,KAAK,MAAM,MAAM,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,EAAE,OAAO,MAAM,CAAC,WAAW,GAAG,SAAS,EAAE,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,aAAa,CAAC,CAAC;IACrB,KAAK,CAAC,2DAA2D,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,YAAY,CAAC,QAAiB;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC9B,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,KAAK,CAAC,sBAAsB,QAAQ,GAAG,CAAC,CAAC;YACzC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACrC,KAAK,CAAC,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,KAAK,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,QAAiB;IACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC9B,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,KAAK,CAAC,sBAAsB,QAAQ,GAAG,CAAC,CAAC;QACzC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,KAAK,CAAC,OAAO,MAAM,CAAC,IAAI,yCAAyC,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,KAAK,MAAM,CAAC,IAAI,YAAY,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,SAAS,CAAC,IAAc;IAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;IAEhC,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACrE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAE7C,IAAI,CAAC,MAAM,EAAE,CAAC;IACZ,UAAU,EAAE,CAAC;IACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,QAAQ,MAAM,EAAE,CAAC;IACf,KAAK,MAAM;QACT,WAAW,EAAE,CAAC;QACd,MAAM;IACR,KAAK,QAAQ;QACX,YAAY,CAAC,QAAQ,CAAC,CAAC;QACvB,MAAM;IACR,KAAK,SAAS;QACZ,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxB,MAAM;IACR;QACE,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
@@ -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"}