@dollhousemcp/mcp-server 1.5.0 → 1.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/CHANGELOG.md +49 -1
  2. package/README.md +27 -16
  3. package/dist/auth/GitHubAuthManager.js +2 -2
  4. package/dist/cache/CollectionCache.d.ts +65 -0
  5. package/dist/cache/CollectionCache.d.ts.map +1 -0
  6. package/dist/cache/CollectionCache.js +162 -0
  7. package/dist/cache/index.d.ts +1 -0
  8. package/dist/cache/index.d.ts.map +1 -1
  9. package/dist/cache/index.js +2 -1
  10. package/dist/collection/CollectionBrowser.d.ts +24 -1
  11. package/dist/collection/CollectionBrowser.d.ts.map +1 -1
  12. package/dist/collection/CollectionBrowser.js +135 -23
  13. package/dist/collection/CollectionSearch.d.ts +20 -1
  14. package/dist/collection/CollectionSearch.d.ts.map +1 -1
  15. package/dist/collection/CollectionSearch.js +110 -6
  16. package/dist/collection/CollectionSeeder.d.ts +36 -0
  17. package/dist/collection/CollectionSeeder.d.ts.map +1 -0
  18. package/dist/collection/CollectionSeeder.js +230 -0
  19. package/dist/collection/GitHubClient.d.ts.map +1 -1
  20. package/dist/collection/GitHubClient.js +8 -4
  21. package/dist/collection/PersonaSubmitter.d.ts +48 -1
  22. package/dist/collection/PersonaSubmitter.d.ts.map +1 -1
  23. package/dist/collection/PersonaSubmitter.js +170 -34
  24. package/dist/collection/index.d.ts +1 -0
  25. package/dist/collection/index.d.ts.map +1 -1
  26. package/dist/collection/index.js +2 -1
  27. package/dist/generated/version.d.ts +2 -2
  28. package/dist/generated/version.js +3 -3
  29. package/dist/index.d.ts +12 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +165 -54
  32. package/dist/server/tools/CollectionTools.d.ts.map +1 -1
  33. package/dist/server/tools/CollectionTools.js +12 -1
  34. package/dist/server/tools/PersonaTools.d.ts.map +1 -1
  35. package/dist/server/tools/PersonaTools.js +3 -7
  36. package/dist/server/types.d.ts +1 -0
  37. package/dist/server/types.d.ts.map +1 -1
  38. package/dist/server/types.js +1 -1
  39. package/dist/utils/searchUtils.d.ts +23 -0
  40. package/dist/utils/searchUtils.d.ts.map +1 -0
  41. package/dist/utils/searchUtils.js +57 -0
  42. package/package.json +1 -1
@@ -0,0 +1,230 @@
1
+ /**
2
+ * Collection seeder for anonymous/offline browsing
3
+ * Provides basic collection data that doesn't require GitHub authentication
4
+ */
5
+ /**
6
+ * Basic collection data that can be used without GitHub API access
7
+ * This provides a minimal set of well-known collection items
8
+ */
9
+ export class CollectionSeeder {
10
+ // Cache the seed data as a static property for memory efficiency
11
+ static cachedSeedData = null;
12
+ /**
13
+ * Get seed data for the collection cache
14
+ * This includes popular/essential items that are commonly requested
15
+ * Data is cached as a static property to avoid recreation on every call
16
+ */
17
+ static getSeedData() {
18
+ // Return cached data if available
19
+ if (CollectionSeeder.cachedSeedData) {
20
+ return CollectionSeeder.cachedSeedData;
21
+ }
22
+ // Create and cache the seed data
23
+ CollectionSeeder.cachedSeedData = [
24
+ // Popular Personas
25
+ {
26
+ name: 'creative-writer.md',
27
+ path: 'library/personas/creative-writer.md',
28
+ sha: 'seed-data',
29
+ last_modified: new Date().toISOString()
30
+ },
31
+ {
32
+ name: 'eli5-explainer.md',
33
+ path: 'library/personas/eli5-explainer.md',
34
+ sha: 'seed-data',
35
+ last_modified: new Date().toISOString()
36
+ },
37
+ {
38
+ name: 'debug-detective.md',
39
+ path: 'library/personas/debug-detective.md',
40
+ sha: 'seed-data',
41
+ last_modified: new Date().toISOString()
42
+ },
43
+ {
44
+ name: 'technical-analyst.md',
45
+ path: 'library/personas/technical-analyst.md',
46
+ sha: 'seed-data',
47
+ last_modified: new Date().toISOString()
48
+ },
49
+ {
50
+ name: 'business-consultant.md',
51
+ path: 'library/personas/business-consultant.md',
52
+ sha: 'seed-data',
53
+ last_modified: new Date().toISOString()
54
+ },
55
+ {
56
+ name: 'security-analyst.md',
57
+ path: 'library/personas/security-analyst.md',
58
+ sha: 'seed-data',
59
+ last_modified: new Date().toISOString()
60
+ },
61
+ // Popular Skills
62
+ {
63
+ name: 'code-review.md',
64
+ path: 'library/skills/code-review.md',
65
+ sha: 'seed-data',
66
+ last_modified: new Date().toISOString()
67
+ },
68
+ {
69
+ name: 'creative-writing.md',
70
+ path: 'library/skills/creative-writing.md',
71
+ sha: 'seed-data',
72
+ last_modified: new Date().toISOString()
73
+ },
74
+ {
75
+ name: 'data-analysis.md',
76
+ path: 'library/skills/data-analysis.md',
77
+ sha: 'seed-data',
78
+ last_modified: new Date().toISOString()
79
+ },
80
+ {
81
+ name: 'research.md',
82
+ path: 'library/skills/research.md',
83
+ sha: 'seed-data',
84
+ last_modified: new Date().toISOString()
85
+ },
86
+ {
87
+ name: 'translation.md',
88
+ path: 'library/skills/translation.md',
89
+ sha: 'seed-data',
90
+ last_modified: new Date().toISOString()
91
+ },
92
+ {
93
+ name: 'threat-modeling.md',
94
+ path: 'library/skills/threat-modeling.md',
95
+ sha: 'seed-data',
96
+ last_modified: new Date().toISOString()
97
+ },
98
+ {
99
+ name: 'penetration-testing.md',
100
+ path: 'library/skills/penetration-testing.md',
101
+ sha: 'seed-data',
102
+ last_modified: new Date().toISOString()
103
+ },
104
+ // Popular Agents
105
+ {
106
+ name: 'code-reviewer.md',
107
+ path: 'library/agents/code-reviewer.md',
108
+ sha: 'seed-data',
109
+ last_modified: new Date().toISOString()
110
+ },
111
+ {
112
+ name: 'research-assistant.md',
113
+ path: 'library/agents/research-assistant.md',
114
+ sha: 'seed-data',
115
+ last_modified: new Date().toISOString()
116
+ },
117
+ {
118
+ name: 'task-manager.md',
119
+ path: 'library/agents/task-manager.md',
120
+ sha: 'seed-data',
121
+ last_modified: new Date().toISOString()
122
+ },
123
+ // Popular Templates
124
+ {
125
+ name: 'code-documentation.md',
126
+ path: 'library/templates/code-documentation.md',
127
+ sha: 'seed-data',
128
+ last_modified: new Date().toISOString()
129
+ },
130
+ {
131
+ name: 'email-professional.md',
132
+ path: 'library/templates/email-professional.md',
133
+ sha: 'seed-data',
134
+ last_modified: new Date().toISOString()
135
+ },
136
+ {
137
+ name: 'meeting-notes.md',
138
+ path: 'library/templates/meeting-notes.md',
139
+ sha: 'seed-data',
140
+ last_modified: new Date().toISOString()
141
+ },
142
+ {
143
+ name: 'project-brief.md',
144
+ path: 'library/templates/project-brief.md',
145
+ sha: 'seed-data',
146
+ last_modified: new Date().toISOString()
147
+ },
148
+ {
149
+ name: 'report-executive.md',
150
+ path: 'library/templates/report-executive.md',
151
+ sha: 'seed-data',
152
+ last_modified: new Date().toISOString()
153
+ },
154
+ {
155
+ name: 'penetration-test-report.md',
156
+ path: 'library/templates/penetration-test-report.md',
157
+ sha: 'seed-data',
158
+ last_modified: new Date().toISOString()
159
+ },
160
+ {
161
+ name: 'security-vulnerability-report.md',
162
+ path: 'library/templates/security-vulnerability-report.md',
163
+ sha: 'seed-data',
164
+ last_modified: new Date().toISOString()
165
+ },
166
+ {
167
+ name: 'threat-assessment-report.md',
168
+ path: 'library/templates/threat-assessment-report.md',
169
+ sha: 'seed-data',
170
+ last_modified: new Date().toISOString()
171
+ },
172
+ // Popular Ensembles
173
+ {
174
+ name: 'business-advisor.md',
175
+ path: 'library/ensembles/business-advisor.md',
176
+ sha: 'seed-data',
177
+ last_modified: new Date().toISOString()
178
+ },
179
+ {
180
+ name: 'creative-studio.md',
181
+ path: 'library/ensembles/creative-studio.md',
182
+ sha: 'seed-data',
183
+ last_modified: new Date().toISOString()
184
+ },
185
+ {
186
+ name: 'development-team.md',
187
+ path: 'library/ensembles/development-team.md',
188
+ sha: 'seed-data',
189
+ last_modified: new Date().toISOString()
190
+ },
191
+ {
192
+ name: 'security-analysis-team.md',
193
+ path: 'library/ensembles/security-analysis-team.md',
194
+ sha: 'seed-data',
195
+ last_modified: new Date().toISOString()
196
+ }
197
+ ];
198
+ return CollectionSeeder.cachedSeedData;
199
+ }
200
+ /**
201
+ * Get collection statistics from seed data
202
+ */
203
+ static getSeedStats() {
204
+ const seedData = this.getSeedData();
205
+ const typeCount = new Map();
206
+ seedData.forEach(item => {
207
+ // Extract type from path (library/personas/name.md -> personas)
208
+ const pathParts = item.path.split('/');
209
+ const type = pathParts[1] || 'unknown';
210
+ typeCount.set(type, (typeCount.get(type) || 0) + 1);
211
+ });
212
+ return {
213
+ total: seedData.length,
214
+ byType: Object.fromEntries(typeCount)
215
+ };
216
+ }
217
+ /**
218
+ * Check if an item is available in seed data
219
+ */
220
+ static isItemInSeedData(path) {
221
+ return this.getSeedData().some(item => item.path === path);
222
+ }
223
+ /**
224
+ * Get seed item by path
225
+ */
226
+ static getSeedItem(path) {
227
+ return this.getSeedData().find(item => item.path === path);
228
+ }
229
+ }
230
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sbGVjdGlvblNlZWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb2xsZWN0aW9uL0NvbGxlY3Rpb25TZWVkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBSUg7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixpRUFBaUU7SUFDekQsTUFBTSxDQUFDLGNBQWMsR0FBNEIsSUFBSSxDQUFDO0lBRTlEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsV0FBVztRQUNoQixrQ0FBa0M7UUFDbEMsSUFBSSxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQyxPQUFPLGdCQUFnQixDQUFDLGNBQWMsQ0FBQztRQUN6QyxDQUFDO1FBRUQsaUNBQWlDO1FBQ2pDLGdCQUFnQixDQUFDLGNBQWMsR0FBRztZQUNoQyxtQkFBbUI7WUFDbkI7Z0JBQ0UsSUFBSSxFQUFFLG9CQUFvQjtnQkFDMUIsSUFBSSxFQUFFLHFDQUFxQztnQkFDM0MsR0FBRyxFQUFFLFdBQVc7Z0JBQ2hCLGFBQWEsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTthQUN4QztZQUNEO2dCQUNFLElBQUksRUFBRSxtQkFBbUI7Z0JBQ3pCLElBQUksRUFBRSxvQ0FBb0M7Z0JBQzFDLEdBQUcsRUFBRSxXQUFXO2dCQUNoQixhQUFhLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7YUFDeEM7WUFDRDtnQkFDRSxJQUFJLEVBQUUsb0JBQW9CO2dCQUMxQixJQUFJLEVBQUUscUNBQXFDO2dCQUMzQyxHQUFHLEVBQUUsV0FBVztnQkFDaEIsYUFBYSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO2FBQ3hDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLHNCQUFzQjtnQkFDNUIsSUFBSSxFQUFFLHVDQUF1QztnQkFDN0MsR0FBRyxFQUFFLFdBQVc7Z0JBQ2hCLGFBQWEsRUFBRSxJQUFJLElBQUksRUFB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LE9BQU87WUFDTCxLQUFLLEVBQUUsUUFBUSxDQUFDLE1BQU07WUFDdEIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO1NBQ3RDLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBWTtRQUNsQyxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBWTtRQUM3QixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQzdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbGxlY3Rpb24gc2VlZGVyIGZvciBhbm9ueW1vdXMvb2ZmbGluZSBicm93c2luZ1xuICogUHJvdmlkZXMgYmFzaWMgY29sbGVjdGlvbiBkYXRhIHRoYXQgZG9lc24ndCByZXF1aXJlIEdpdEh1YiBhdXRoZW50aWNhdGlvblxuICovXG5cbmltcG9ydCB7IENvbGxlY3Rpb25JdGVtIH0gZnJvbSAnLi4vY2FjaGUvQ29sbGVjdGlvbkNhY2hlLmpzJztcblxuLyoqXG4gKiBCYXNpYyBjb2xsZWN0aW9uIGRhdGEgdGhhdCBjYW4gYmUgdXNlZCB3aXRob3V0IEdpdEh1YiBBUEkgYWNjZXNzXG4gKiBUaGlzIHByb3ZpZGVzIGEgbWluaW1hbCBzZXQgb2Ygd2VsbC1rbm93biBjb2xsZWN0aW9uIGl0ZW1zXG4gKi9cbmV4cG9ydCBjbGFzcyBDb2xsZWN0aW9uU2VlZGVyIHtcbiAgLy8gQ2FjaGUgdGhlIHNlZWQgZGF0YSBhcyBhIHN0YXRpYyBwcm9wZXJ0eSBmb3IgbWVtb3J5IGVmZmljaWVuY3lcbiAgcHJpdmF0ZSBzdGF0aWMgY2FjaGVkU2VlZERhdGE6IENvbGxlY3Rpb25JdGVtW10gfCBudWxsID0gbnVsbDtcbiAgXG4gIC8qKlxuICAgKiBHZXQgc2VlZCBkYXRhIGZvciB0aGUgY29sbGVjdGlvbiBjYWNoZVxuICAgKiBUaGlzIGluY2x1ZGVzIHBvcHVsYXIvZXNzZW50aWFsIGl0ZW1zIHRoYXQgYXJlIGNvbW1vbmx5IHJlcXVlc3RlZFxuICAgKiBEYXRhIGlzIGNhY2hlZCBhcyBhIHN0YXRpYyBwcm9wZXJ0eSB0byBhdm9pZCByZWNyZWF0aW9uIG9uIGV2ZXJ5IGNhbGxcbiAgICovXG4gIHN0YXRpYyBnZXRTZWVkRGF0YSgpOiBDb2xsZWN0aW9uSXRlbVtdIHtcbiAgICAvLyBSZXR1cm4gY2FjaGVkIGRhdGEgaWYgYXZhaWxhYmxlXG4gICAgaWYgKENvbGxlY3Rpb25TZWVkZXIuY2FjaGVkU2VlZERhdGEpIHtcbiAgICAgIHJldHVybiBDb2xsZWN0aW9uU2VlZGVyLmNhY2hlZFNlZWREYXRhO1xuICAgIH1cbiAgICBcbiAgICAvLyBDcmVhdGUgYW5kIGNhY2hlIHRoZSBzZWVkIGRhdGFcbiAgICBDb2xsZWN0aW9uU2VlZGVyLmNhY2hlZFNlZWREYXRhID0gW1xuICAgICAgLy8gUG9wdWxhciBQZXJzb25hc1xuICAgICAge1xuICAgICAgICBuYW1lOiAnY3JlYXRpdmUtd3JpdGVyLm1kJyxcbiAgICAgICAgcGF0aDogJ2xpYnJhcnkvcGVyc29uYXMvY3JlYXRpdmUtd3JpdGVyLm1kJyxcbiAgICAgICAgc2hhOiAnc2VlZC1kYXRhJyxcbiAgICAgICAgbGFzdF9tb2RpZmllZDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnZWxpNS1leHBsYWluZXIubWQnLFxuICAgICAgICBwYXRoOiAnbGlicmFyeS9wZXJzb25hcy9lbGk1LWV4cGxhaW5lci5tZCcsXG4gICAgICAgIHNoYTogJ3NlZWQtZGF0YScsXG4gICAgICAgIGxhc3RfbW9kaWZpZWQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2RlYnVnLWRldGVjdGl2ZS5tZCcsXG4gICAgICAgIHBhdGg6ICdsaWJyYXJ5L3BlcnNvbmFzL2RlYnVnLWRldGVjdGl2ZS5tZCcsXG4gICAgICAgIHNoYTogJ3NlZWQtZGF0YScsXG4gICAgICAgIGxhc3RfbW9kaWZpZWQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3RlY2huaWNhbC1hbmFseXN0Lm1kJyxcbiAgICAgICAgcGF0aDogJ2xpYnJhcnkvcGVyc29uYXMvdGVjaG5pY2FsLWFuYWx5c3QubWQnLFxuICAgICAgICBzaGE6ICdzZWVkLWRhdGEnLFxuICAgICAgICBsYXN0X21vZGlmaWVkOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdidXNpbmVzcy1jb25zdWx0YW50Lm1kJyxcbiAgICAgICAgcGF0aDogJ2xpYnJhcnkvcGVyc29uYXMvYnVzaW5lc3MtY29uc3VsdGFudC5tZCcsXG4gICAgICAgIHNoYTogJ3NlZWQtZGF0YScsXG4gICAgICAgIGxhc3RfbW9kaWZpZWQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3NlY3VyaXR5LWFuYWx5c3QubWQnLFxuICAgICAgICBwYXRoOiAnbGlicmFyeS9wZXJzb25hcy9zZWN1cml0eS1hbmFseXN0Lm1kJyxcbiAgICAgICAgc2hhOiAnc2VlZC1kYXRhJyxcbiAgICAgICAgbGFzdF9tb2RpZmllZDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpXG4gICAgICB9LFxuICAgICAgXG4gICAgICAvLyBQb3B1bGFyIFNraWxsc1xuICAgICAge1xuICAgICAgICBuYW1lOiAnY29kZS1yZXZpZXcubWQnLFxuICAgICAgICBwYXRoOiAnbGlicmFyeS9za2lsbHMvY29kZS1yZXZpZXcubWQnLFxuICAgICAgICBzaGE6ICdzZWVkLWRhdGEnLFxuICAgICAgICBsYXN0X21vZGlmaWVkOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdjcmVhdGl2ZS13cml0aW5nLm1kJyxcbiAgICAgICAgcGF0aDogJ2xpYnJhcnkvc2tpbGxzL2NyZWF0aXZlLXdyaXRpbmcubWQnLFxuICAgICAgICBzaGE6ICdzZWVkLWRhdGEnLFxuICAgICAgICBsYXN0X21vZGlmaWVkOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdkYXRhLWFuYWx5c2lzLm1kJyxcbiAgICAgICAgcGF0aDogJ2xpYnJhcnkvc2tpbGxzL2RhdGEtYW5hbHlzaXMubWQnLFxuICAgICAgICBzaGE6ICdzZWVkLWRhdGEnLFxuICAgICAgICBsYXN0X21vZGlmaWVkOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdyZXNlYXJjaC5tZCcsXG4gICAgICAgIHBhdGg6ICdsaWJyYXJ5L3NraWxscy9yZXNlYXJjaC5tZCcsXG4gICAgICAgIHNoYTogJ3NlZWQtZGF0YScsXG4gICAgICAgIGxhc3RfbW9kaWZpZWQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3RyYW5zbGF0aW9uLm1kJyxcbiAgICAgICAgcGF0aDogJ2xpYnJhcnkvc2tpbGxzL3RyYW5zbGF0aW9uLm1kJyxcbiAgICAgICAgc2hhOiAnc2VlZC1kYXRhJyxcbiAgICAgICAgbGFzdF9tb2RpZmllZDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndGhyZWF0LW1vZGVsaW5nLm1kJyxcbiAgICAgICAgcGF0aDogJ2xpYnJhcnkvc2tpbGxzL3RocmVhdC1tb2RlbGluZy5tZCcsXG4gICAgICAgIHNoYTogJ3NlZWQtZGF0YScsXG4gICAgICAgIGxhc3RfbW9kaWZpZWQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3BlbmV0cmF0aW9uLXRlc3RpbmcubWQnLFxuICAgICAgICBwYXRoOiAnbGlicmFyeS9za2lsbHMvcGVuZXRyYXRpb24tdGVzdGluZy5tZCcsXG4gICAgICAgIHNoYTogJ3NlZWQtZGF0YScsXG4gICAgICAgIGxhc3RfbW9kaWZpZWQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxuICAgICAgfSxcbiAgICAgIFxuICAgICAgLy8gUG9wdWxhciBBZ2VudHNcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2NvZGUtcmV2aWV3ZXIubWQnLFxuICAgICAgICBwYXRoOiAnbGlicmFyeS9hZ2VudHMvY29kZS1yZXZpZXdlci5tZCcsXG4gICAgICAgIHNoYTogJ3NlZWQtZGF0YScsXG4gICAgICAgIGxhc3RfbW9kaWZpZWQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3Jlc2VhcmNoLWFzc2lzdGFudC5tZCcsXG4gICAgICAgIHBhdGg6ICdsaWJyYXJ5L2FnZW50cy9yZXNlYXJjaC1hc3Npc3RhbnQubWQnLFxuICAgICAgICBzaGE6ICdzZWVkLWRhdGEnLFxuICAgICAgICBsYXN0X21vZGlmaWVkOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd0YXNrLW1hbmFnZXIubWQnLFxuICAgICAgICBwYXRoOiAnbGlicmFyeS9hZ2VudHMvdGFzay1tYW5hZ2VyLm1kJyxcbiAgICAgICAgc2hhOiAnc2VlZC1kYXRhJyxcbiAgICAgICAgbGFzdF9tb2RpZmllZDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpXG4gICAgICB9LFxuICAgICAgXG4gICAgICAvLyBQb3B1bGFyIFRlbXBsYXRlc1xuICAgICAge1xuICAgICAgICBuYW1lOiAnY29kZS1kb2N1bWVudGF0aW9uLm1kJyxcbiAgICAgICAgcGF0aDogJ2xpYnJhcnkvdGVtcGxhdGVzL2NvZGUtZG9jdW1lbnRhdGlvbi5tZCcsXG4gICAgICAgIHNoYTogJ3NlZWQtZGF0YScsXG4gICAgICAgIGxhc3RfbW9kaWZpZWQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2VtYWlsLXByb2Zlc3Npb25hbC5tZCcsXG4gICAgICAgIHBhdGg6ICdsaWJyYXJ5L3RlbXBsYXRlcy9lbWFpbC1wcm9mZXNzaW9uYWwubWQnLFxuICAgICAgICBzaGE6ICdzZWVkLWRhdGEnLFxuICAgICAgICBsYXN0X21vZGlmaWVkOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdtZWV0aW5nLW5vdGVzLm1kJyxcbiAgICAgICAgcGF0aDogJ2xpYnJhcnkvdGVtcGxhdGVzL21lZXRpbmctbm90ZXMubWQnLFxuICAgICAgICBzaGE6ICdzZWVkLWRhdGEnLFxuICAgICAgICBsYXN0X21vZGlmaWVkOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdwcm9qZWN0LWJyaWVmLm1kJyxcbiAgICAgICAgcGF0aDogJ2xpYnJhcnkvdGVtcGxhdGVzL3Byb2plY3QtYnJpZWYubWQnLFxuICAgICAgICBzaGE6ICdzZWVkLWRhdGEnLFxuICAgICAgICBsYXN0X21vZGlmaWVkOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdyZXBvcnQtZXhlY3V0aXZlLm1kJyxcbiAgICAgICAgcGF0aDogJ2xpYnJhcnkvdGVtcGxhdGVzL3JlcG9ydC1leGVjdXRpdmUubWQnLFxuICAgICAgICBzaGE6ICdzZWVkLWRhdGEnLFxuICAgICAgICBsYXN0X21vZGlmaWVkOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdwZW5ldHJhdGlvbi10ZXN0LXJlcG9ydC5tZCcsXG4gICAgICAgIHBhdGg6ICdsaWJyYXJ5L3RlbXBsYXRlcy9wZW5ldHJhdGlvbi10ZXN0LXJlcG9ydC5tZCcsXG4gICAgICAgIHNoYTogJ3NlZWQtZGF0YScsXG4gICAgICAgIGxhc3RfbW9kaWZpZWQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3NlY3VyaXR5LXZ1bG5lcmFiaWxpdHktcmVwb3J0Lm1kJyxcbiAgICAgICAgcGF0aDogJ2xpYnJhcnkvdGVtcGxhdGVzL3NlY3VyaXR5LXZ1bG5lcmFiaWxpdHktcmVwb3J0Lm1kJyxcbiAgICAgICAgc2hhOiAnc2VlZC1kYXRhJyxcbiAgICAgICAgbGFzdF9tb2RpZmllZDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndGhyZWF0LWFzc2Vzc21lbnQtcmVwb3J0Lm1kJyxcbiAgICAgICAgcGF0aDogJ2xpYnJhcnkvdGVtcGxhdGVzL3RocmVhdC1hc3Nlc3NtZW50LXJlcG9ydC5tZCcsXG4gICAgICAgIHNoYTogJ3NlZWQtZGF0YScsXG4gICAgICAgIGxhc3RfbW9kaWZpZWQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxuICAgICAgfSxcbiAgICAgIFxuICAgICAgLy8gUG9wdWxhciBFbnNlbWJsZXNcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2J1c2luZXNzLWFkdmlzb3IubWQnLFxuICAgICAgICBwYXRoOiAnbGlicmFyeS9lbnNlbWJsZXMvYnVzaW5lc3MtYWR2aXNvci5tZCcsXG4gICAgICAgIHNoYTogJ3NlZWQtZGF0YScsXG4gICAgICAgIGxhc3RfbW9kaWZpZWQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2NyZWF0aXZlLXN0dWRpby5tZCcsXG4gICAgICAgIHBhdGg6ICdsaWJyYXJ5L2Vuc2VtYmxlcy9jcmVhdGl2ZS1zdHVkaW8ubWQnLFxuICAgICAgICBzaGE6ICdzZWVkLWRhdGEnLFxuICAgICAgICBsYXN0X21vZGlmaWVkOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdkZXZlbG9wbWVudC10ZWFtLm1kJyxcbiAgICAgICAgcGF0aDogJ2xpYnJhcnkvZW5zZW1ibGVzL2RldmVsb3BtZW50LXRlYW0ubWQnLFxuICAgICAgICBzaGE6ICdzZWVkLWRhdGEnLFxuICAgICAgICBsYXN0X21vZGlmaWVkOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzZWN1cml0eS1hbmFseXNpcy10ZWFtLm1kJyxcbiAgICAgICAgcGF0aDogJ2xpYnJhcnkvZW5zZW1ibGVzL3NlY3VyaXR5LWFuYWx5c2lzLXRlYW0ubWQnLFxuICAgICAgICBzaGE6ICdzZWVkLWRhdGEnLFxuICAgICAgICBsYXN0X21vZGlmaWVkOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcbiAgICAgIH1cbiAgICBdO1xuICAgIFxuICAgIHJldHVybiBDb2xsZWN0aW9uU2VlZGVyLmNhY2hlZFNlZWREYXRhO1xuICB9XG4gIFxuICAvKipcbiAgICogR2V0IGNvbGxlY3Rpb24gc3RhdGlzdGljcyBmcm9tIHNlZWQgZGF0YVxuICAgKi9cbiAgc3RhdGljIGdldFNlZWRTdGF0cygpIHtcbiAgICBjb25zdCBzZWVkRGF0YSA9IHRoaXMuZ2V0U2VlZERhdGEoKTtcbiAgICBjb25zdCB0eXBlQ291bnQgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuICAgIFxuICAgIHNlZWREYXRhLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAvLyBFeHRyYWN0IHR5cGUgZnJvbSBwYXRoIChsaWJyYXJ5L3BlcnNvbmFzL25hbWUubWQgLT4gcGVyc29uYXMpXG4gICAgICBjb25zdCBwYXRoUGFydHMgPSBpdGVtLnBhdGguc3BsaXQoJy8nKTtcbiAgICAgIGNvbnN0IHR5cGUgPSBwYXRoUGFydHNbMV0gfHwgJ3Vua25vd24nO1xuICAgICAgdHlwZUNvdW50LnNldCh0eXBlLCAodHlwZUNvdW50LmdldCh0eXBlKSB8fCAwKSArIDEpO1xuICAgIH0pO1xuICAgIFxuICAgIHJldHVybiB7XG4gICAgICB0b3RhbDogc2VlZERhdGEubGVuZ3RoLFxuICAgICAgYnlUeXBlOiBPYmplY3QuZnJvbUVudHJpZXModHlwZUNvdW50KVxuICAgIH07XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhbiBpdGVtIGlzIGF2YWlsYWJsZSBpbiBzZWVkIGRhdGFcbiAgICovXG4gIHN0YXRpYyBpc0l0ZW1JblNlZWREYXRhKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFNlZWREYXRhKCkuc29tZShpdGVtID0+IGl0ZW0ucGF0aCA9PT0gcGF0aCk7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBHZXQgc2VlZCBpdGVtIGJ5IHBhdGhcbiAgICovXG4gIHN0YXRpYyBnZXRTZWVkSXRlbShwYXRoOiBzdHJpbmcpOiBDb2xsZWN0aW9uSXRlbSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U2VlZERhdGEoKS5maW5kKGl0ZW0gPT4gaXRlbS5wYXRoID09PSBwYXRoKTtcbiAgfVxufSJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"GitHubClient.d.ts","sourceRoot":"","sources":["../../src/collection/GitHubClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAKhD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,gBAAgB,CAAwB;gBAEpC,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAKvE;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;OAEG;IACG,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,GAAE,OAAe,GAAG,OAAO,CAAC,GAAG,CAAC;IAyF9E;;OAEG;IACG,6BAA6B,IAAI,OAAO,CAAC,IAAI,CAAC;CASrD"}
1
+ {"version":3,"file":"GitHubClient.d.ts","sourceRoot":"","sources":["../../src/collection/GitHubClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAKhD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,gBAAgB,CAAwB;gBAEpC,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAKvE;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;OAEG;IACG,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,GAAE,OAAe,GAAG,OAAO,CAAC,GAAG,CAAC;IA6F9E;;OAEG;IACG,6BAA6B,IAAI,OAAO,CAAC,IAAI,CAAC;CASrD"}
@@ -43,12 +43,16 @@ export class GitHubClient {
43
43
  'User-Agent': 'DollhouseMCP/1.0'
44
44
  };
45
45
  // Use TokenManager for secure token handling
46
- const token = TokenManager.getGitHubToken();
46
+ // CRITICAL FIX #471: Must use async method to retrieve OAuth tokens from secure storage
47
+ // The OAuth flow (setup_github_auth) stores tokens in secure OS keychain/credential store
48
+ // which requires async access. The sync method only checks environment variables,
49
+ // missing tokens stored by the OAuth authentication flow.
50
+ const token = await TokenManager.getGitHubTokenAsync();
47
51
  if (token) {
48
52
  headers['Authorization'] = `Bearer ${token}`;
49
53
  }
50
54
  else if (requireAuth) {
51
- throw new Error('GitHub authentication required but no valid token available. Please set GITHUB_TOKEN environment variable.');
55
+ throw new Error('GitHub authentication required but no valid token available. Please use setup_github_auth or set GITHUB_TOKEN environment variable.');
52
56
  }
53
57
  // Create fetch with timeout
54
58
  const controller = new AbortController();
@@ -62,7 +66,7 @@ export class GitHubClient {
62
66
  if (response.status === 403) {
63
67
  const errorMsg = token
64
68
  ? 'GitHub API rate limit exceeded or token lacks required permissions.'
65
- : 'GitHub API rate limit exceeded. Consider setting GITHUB_TOKEN environment variable.';
69
+ : 'GitHub API rate limit exceeded. Consider using setup_github_auth or setting GITHUB_TOKEN environment variable.';
66
70
  throw new Error(errorMsg);
67
71
  }
68
72
  if (response.status === 401) {
@@ -111,4 +115,4 @@ export class GitHubClient {
111
115
  }
112
116
  }
113
117
  }
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2l0SHViQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbGxlY3Rpb24vR2l0SHViQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBZSxNQUFNLDZCQUE2QixDQUFDO0FBR3hFLE1BQU0sT0FBTyxZQUFZO0lBQ2YsUUFBUSxDQUFXO0lBQ25CLGdCQUFnQixDQUF3QjtJQUVoRCxZQUFZLFFBQWtCLEVBQUUsZ0JBQXVDO1FBQ3JFLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxjQUFjLENBQUMsTUFBYyxTQUFTO1FBQzVDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN2QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV0RCxxQ0FBcUM7UUFDckMsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxJQUFJLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFakcsSUFBSSxhQUFhLENBQUMsTUFBTSxJQUFJLGVBQWUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ2hFLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLGVBQWUsQ0FBQyxtQkFBbUIsdUJBQXVCLENBQUMsQ0FBQztRQUMxRyxDQUFDO1FBRUQsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsZUFBZSxDQUFDLEdBQVcsRUFBRSxjQUF1QixLQUFLO1FBQzdELElBQUksQ0FBQztZQUNILG1CQUFtQjtZQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRWxDLG9CQUFvQjtZQUNwQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUM7WUFFRCx1REFBdUQ7WUFDdkQsTUFBTSxPQUFPLEdBQTJCO2dCQUN0QyxRQUFRLEVBQUUsZ0NBQWdDO2dCQUMxQyxZQUFZLEVBQUUsa0JBQWtCO2FBQ2pDLENBQUM7WUFFRiw2Q0FBNkM7WUFDN0MsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzVDLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1YsT0FBTyxDQUFDLGVBQWUsQ0FBQyxHQUFHLFVBQVUsS0FBSyxFQUFFLENBQUM7WUFDL0MsQ0FBQztpQkFBTSxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLDRHQUE0RyxDQUFDLENBQUM7WUFDaEksQ0FBQztZQUVELDRCQUE0QjtZQUM1QixNQUFNLFVBQVUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxvQkFBb0I7WUFFbkYsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsR0FBRyxFQUFFO2dCQUNoQyxPQUFPO2dCQUNQLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTTthQUMxQixDQUFDLENBQUM7WUFFSCxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO29CQUM1QixNQUFNLFFBQVEsR0FBRyxLQUFLO3dCQUNwQixDQUFDLENBQUMscUVBQXFFO3dCQUN2RSxDQUFDLENBQUMscUZBQXFGLENBQUM7b0JBQzFGLE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVCLENBQUM7Z0JBQ0QsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO29CQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLG1FQUFtRSxDQUFDLENBQUM7Z0JBQ3ZGLENBQUM7Z0JBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUNqRixDQUFDO1lBRUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFbkMsZ0NBQWdDO1lBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUU3QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsMkNBQTJDO1lBQzNDLE1BQU0sWUFBWSxHQUFHLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1RSxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFdEUsTUFBTSxZQUFZLEdBQVE7Z0JBQ3hCLGVBQWUsRUFBRSxXQUFXO2dCQUM1QixHQUFHO2FBQ0osQ0FBQztZQUVGLGtEQUFrRDtZQUNsRCxJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUUsQ0FBQztnQkFDM0IsWUFBWSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztnQkFDaEQsWUFBWSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUVqQywwQ0FBMEM7Z0JBQzFDLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxZQUFZLEVBQUUsQ0FBQztvQkFDaEMsWUFBWSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7Z0JBQzlCLENBQUM7WUFDSCxDQUFDO1lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQzNCLFNBQVMsQ0FBQyxhQUFhLEVBQ3ZCLGdDQUFnQyxXQUFXLEVBQUUsRUFDN0MsWUFBWSxDQUNiLENBQUM7WUFFRiw2Q0FBNkM7WUFDNUMsUUFBZ0IsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBRWhDLE1BQU0sUUFBUSxDQUFDO1FBQ2pCLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsNkJBQTZCO1FBQ2pDLGdGQUFnRjtRQUNoRix5RkFBeUY7UUFDekYsTUFBTSxVQUFVLEdBQUcsTUFBTSxZQUFZLENBQUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN4QixNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSwwQkFBMEIsQ0FBQyxDQUFDO1lBQ3hHLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDcEUsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2l0SHViIEFQSSBjbGllbnQgZm9yIGNvbGxlY3Rpb24gaW50ZWdyYXRpb25cbiAqL1xuXG5pbXBvcnQgeyBNY3BFcnJvciwgRXJyb3JDb2RlIH0gZnJvbSAnQG1vZGVsY29udGV4dHByb3RvY29sL3Nkay90eXBlcy5qcyc7XG5pbXBvcnQgeyBBUElDYWNoZSB9IGZyb20gJy4uL2NhY2hlL0FQSUNhY2hlLmpzJztcbmltcG9ydCB7IFNFQ1VSSVRZX0xJTUlUUyB9IGZyb20gJy4uL3NlY3VyaXR5L2NvbnN0YW50cy5qcyc7XG5pbXBvcnQgeyBUb2tlbk1hbmFnZXIsIFRva2VuU2NvcGVzIH0gZnJvbSAnLi4vc2VjdXJpdHkvdG9rZW5NYW5hZ2VyLmpzJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uL3V0aWxzL2xvZ2dlci5qcyc7XG5cbmV4cG9ydCBjbGFzcyBHaXRIdWJDbGllbnQge1xuICBwcml2YXRlIGFwaUNhY2hlOiBBUElDYWNoZTtcbiAgcHJpdmF0ZSByYXRlTGltaXRUcmFja2VyOiBNYXA8c3RyaW5nLCBudW1iZXJbXT47XG4gIFxuICBjb25zdHJ1Y3RvcihhcGlDYWNoZTogQVBJQ2FjaGUsIHJhdGVMaW1pdFRyYWNrZXI6IE1hcDxzdHJpbmcsIG51bWJlcltdPikge1xuICAgIHRoaXMuYXBpQ2FjaGUgPSBhcGlDYWNoZTtcbiAgICB0aGlzLnJhdGVMaW1pdFRyYWNrZXIgPSByYXRlTGltaXRUcmFja2VyO1xuICB9XG4gIFxuICAvKipcbiAgICogQ2hlY2sgcmF0ZSBsaW1pdCBmb3IgQVBJIGNhbGxzXG4gICAqL1xuICBwcml2YXRlIGNoZWNrUmF0ZUxpbWl0KGtleTogc3RyaW5nID0gJ2RlZmF1bHQnKTogdm9pZCB7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBjb25zdCByZXF1ZXN0cyA9IHRoaXMucmF0ZUxpbWl0VHJhY2tlci5nZXQoa2V5KSB8fCBbXTtcbiAgICBcbiAgICAvLyBSZW1vdmUgcmVxdWVzdHMgb3V0c2lkZSB0aGUgd2luZG93XG4gICAgY29uc3QgdmFsaWRSZXF1ZXN0cyA9IHJlcXVlc3RzLmZpbHRlcih0aW1lID0+IG5vdyAtIHRpbWUgPCBTRUNVUklUWV9MSU1JVFMuUkFURV9MSU1JVF9XSU5ET1dfTVMpO1xuICAgIFxuICAgIGlmICh2YWxpZFJlcXVlc3RzLmxlbmd0aCA+PSBTRUNVUklUWV9MSU1JVFMuUkFURV9MSU1JVF9SRVFVRVNUUykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBSYXRlIGxpbWl0IGV4Y2VlZGVkLiBNYXggJHtTRUNVUklUWV9MSU1JVFMuUkFURV9MSU1JVF9SRVFVRVNUU30gcmVxdWVzdHMgcGVyIG1pbnV0ZS5gKTtcbiAgICB9XG4gICAgXG4gICAgdmFsaWRSZXF1ZXN0cy5wdXNoKG5vdyk7XG4gICAgdGhpcy5yYXRlTGltaXRUcmFja2VyLnNldChrZXksIHZhbGlkUmVxdWVzdHMpO1xuICB9XG4gIFxuICAvKipcbiAgICogRmV0Y2ggZGF0YSBmcm9tIEdpdEh1YiBBUEkgd2l0aCBjYWNoaW5nIGFuZCByYXRlIGxpbWl0aW5nXG4gICAqL1xuICBhc3luYyBmZXRjaEZyb21HaXRIdWIodXJsOiBzdHJpbmcsIHJlcXVpcmVBdXRoOiBib29sZWFuID0gZmFsc2UpOiBQcm9taXNlPGFueT4ge1xuICAgIHRyeSB7XG4gICAgICAvLyBDaGVjayByYXRlIGxpbWl0XG4gICAgICB0aGlzLmNoZWNrUmF0ZUxpbWl0KCdnaXRodWJfYXBpJyk7XG4gICAgICBcbiAgICAgIC8vIENoZWNrIGNhY2hlIGZpcnN0XG4gICAgICBjb25zdCBjYWNoZWQgPSB0aGlzLmFwaUNhY2hlLmdldCh1cmwpO1xuICAgICAgaWYgKGNhY2hlZCkge1xuICAgICAgICByZXR1cm4gY2FjaGVkO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBBZGQgR2l0SHViIHRva2VuIGlmIGF2YWlsYWJsZSBmb3IgaGlnaGVyIHJhdGUgbGltaXRzXG4gICAgICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgICAnQWNjZXB0JzogJ2FwcGxpY2F0aW9uL3ZuZC5naXRodWIudjMranNvbicsXG4gICAgICAgICdVc2VyLUFnZW50JzogJ0RvbGxob3VzZU1DUC8xLjAnXG4gICAgICB9O1xuICAgICAgXG4gICAgICAvLyBVc2UgVG9rZW5NYW5hZ2VyIGZvciBzZWN1cmUgdG9rZW4gaGFuZGxpbmdcbiAgICAgIGNvbnN0IHRva2VuID0gVG9rZW5NYW5hZ2VyLmdldEdpdEh1YlRva2VuKCk7XG4gICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgaGVhZGVyc1snQXV0aG9yaXphdGlvbiddID0gYEJlYXJlciAke3Rva2VufWA7XG4gICAgICB9IGVsc2UgaWYgKHJlcXVpcmVBdXRoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignR2l0SHViIGF1dGhlbnRpY2F0aW9uIHJlcXVpcmVkIGJ1dCBubyB2YWxpZCB0b2tlbiBhdmFpbGFibGUuIFBsZWFzZSBzZXQgR0lUSFVCX1RPS0VOIGVudmlyb25tZW50IHZhcmlhYmxlLicpO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBDcmVhdGUgZmV0Y2ggd2l0aCB0aW1lb3V0XG4gICAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgICAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiBjb250cm9sbGVyLmFib3J0KCksIDEwMDAwKTsgLy8gMTAgc2Vjb25kIHRpbWVvdXRcbiAgICAgIFxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwsIHtcbiAgICAgICAgaGVhZGVycyxcbiAgICAgICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbFxuICAgICAgfSk7XG4gICAgICBcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICAgICAgXG4gICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQwMykge1xuICAgICAgICAgIGNvbnN0IGVycm9yTXNnID0gdG9rZW4gXG4gICAgICAgICAgICA/ICdHaXRIdWIgQVBJIHJhdGUgbGltaXQgZXhjZWVkZWQgb3IgdG9rZW4gbGFja3MgcmVxdWlyZWQgcGVybWlzc2lvbnMuJ1xuICAgICAgICAgICAgOiAnR2l0SHViIEFQSSByYXRlIGxpbWl0IGV4Y2VlZGVkLiBDb25zaWRlciBzZXR0aW5nIEdJVEhVQl9UT0tFTiBlbnZpcm9ubWVudCB2YXJpYWJsZS4nO1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1zZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdHaXRIdWIgQVBJIGF1dGhlbnRpY2F0aW9uIGZhaWxlZC4gUGxlYXNlIGNoZWNrIHlvdXIgR0lUSFVCX1RPS0VOLicpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgR2l0SHViIEFQSSBlcnJvcjogJHtyZXNwb25zZS5zdGF0dXN9ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgIFxuICAgICAgLy8gQ2FjaGUgdGhlIHN1Y2Nlc3NmdWwgcmVzcG9uc2VcbiAgICAgIHRoaXMuYXBpQ2FjaGUuc2V0KHVybCwgZGF0YSk7XG4gICAgICBcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvLyBVc2UgVG9rZW5NYW5hZ2VyIGZvciBzYWZlIGVycm9yIGhhbmRsaW5nXG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcik7XG4gICAgICBjb25zdCBzYWZlTWVzc2FnZSA9IFRva2VuTWFuYWdlci5jcmVhdGVTYWZlRXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSk7XG4gICAgICBcbiAgICAgIGNvbnN0IGVycm9yRGV0YWlsczogYW55ID0ge1xuICAgICAgICBvcmlnaW5hbE1lc3NhZ2U6IHNhZmVNZXNzYWdlLFxuICAgICAgICB1cmxcbiAgICAgIH07XG4gICAgICBcbiAgICAgIC8vIFByZXNlcnZlIHN0YWNrIHRyYWNlIGFuZCBlcnJvciB0eXBlIGluZm9ybWF0aW9uXG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICBlcnJvckRldGFpbHMuZXJyb3JUeXBlID0gZXJyb3IuY29uc3RydWN0b3IubmFtZTtcbiAgICAgICAgZXJyb3JEZXRhaWxzLnN0YWNrID0gZXJyb3Iuc3RhY2s7XG4gICAgICAgIFxuICAgICAgICAvLyBTcGVjaWFsIGhhbmRsaW5nIGZvciBjb21tb24gZXJyb3IgdHlwZXNcbiAgICAgICAgaWYgKGVycm9yLm5hbWUgPT09ICdBYm9ydEVycm9yJykge1xuICAgICAgICAgIGVycm9yRGV0YWlscy50aW1lb3V0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgXG4gICAgICBjb25zdCBtY3BFcnJvciA9IG5ldyBNY3BFcnJvcihcbiAgICAgICAgRXJyb3JDb2RlLkludGVybmFsRXJyb3IsXG4gICAgICAgIGBGYWlsZWQgdG8gZmV0Y2ggZnJvbSBHaXRIdWI6ICR7c2FmZU1lc3NhZ2V9YCxcbiAgICAgICAgZXJyb3JEZXRhaWxzXG4gICAgICApO1xuICAgICAgXG4gICAgICAvLyBBbHNvIHByZXNlcnZlIG9yaWdpbmFsIGVycm9yIGZvciBkZWJ1Z2dpbmdcbiAgICAgIChtY3BFcnJvciBhcyBhbnkpLmNhdXNlID0gZXJyb3I7XG4gICAgICBcbiAgICAgIHRocm93IG1jcEVycm9yO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB0b2tlbiBwZXJtaXNzaW9ucyBmb3IgY29sbGVjdGlvbiBvcGVyYXRpb25zXG4gICAqL1xuICBhc3luYyB2YWxpZGF0ZUNvbGxlY3Rpb25QZXJtaXNzaW9ucygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBOT1RFOiBVc2luZyAnbWFya2V0cGxhY2UnIHNjb3BlIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggVG9rZW5NYW5hZ2VyLlxuICAgIC8vIFRoaXMgaXMgYW4gaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWlsIHRoYXQgZG9lc24ndCBhZmZlY3QgZnVuY3Rpb25hbGl0eS4gKFBSICMyODApXG4gICAgY29uc3QgdmFsaWRhdGlvbiA9IGF3YWl0IFRva2VuTWFuYWdlci5lbnN1cmVUb2tlblBlcm1pc3Npb25zKCdtYXJrZXRwbGFjZScpO1xuICAgIGlmICghdmFsaWRhdGlvbi5pc1ZhbGlkKSB7XG4gICAgICBjb25zdCBzYWZlTWVzc2FnZSA9IFRva2VuTWFuYWdlci5jcmVhdGVTYWZlRXJyb3JNZXNzYWdlKHZhbGlkYXRpb24uZXJyb3IgfHwgJ1Vua25vd24gdmFsaWRhdGlvbiBlcnJvcicpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBHaXRIdWIgdG9rZW4gdmFsaWRhdGlvbiBmYWlsZWQ6ICR7c2FmZU1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG59Il19
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2l0SHViQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbGxlY3Rpb24vR2l0SHViQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBZSxNQUFNLDZCQUE2QixDQUFDO0FBR3hFLE1BQU0sT0FBTyxZQUFZO0lBQ2YsUUFBUSxDQUFXO0lBQ25CLGdCQUFnQixDQUF3QjtJQUVoRCxZQUFZLFFBQWtCLEVBQUUsZ0JBQXVDO1FBQ3JFLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxjQUFjLENBQUMsTUFBYyxTQUFTO1FBQzVDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN2QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV0RCxxQ0FBcUM7UUFDckMsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxJQUFJLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFakcsSUFBSSxhQUFhLENBQUMsTUFBTSxJQUFJLGVBQWUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ2hFLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLGVBQWUsQ0FBQyxtQkFBbUIsdUJBQXVCLENBQUMsQ0FBQztRQUMxRyxDQUFDO1FBRUQsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMs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UTtnQkFDeEIsZUFBZSxFQUFFLFdBQVc7Z0JBQzVCLEdBQUc7YUFDSixDQUFDO1lBRUYsa0RBQWtEO1lBQ2xELElBQUksS0FBSyxZQUFZLEtBQUssRUFBRSxDQUFDO2dCQUMzQixZQUFZLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUNoRCxZQUFZLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBRWpDLDBDQUEwQztnQkFDMUMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFlBQVksRUFBRSxDQUFDO29CQUNoQyxZQUFZLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDOUIsQ0FBQztZQUNILENBQUM7WUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FDM0IsU0FBUyxDQUFDLGFBQWEsRUFDdkIsZ0NBQWdDLFdBQVcsRUFBRSxFQUM3QyxZQUFZLENBQ2IsQ0FBQztZQUVGLDZDQUE2QztZQUM1QyxRQUFnQixDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFFaEMsTUFBTSxRQUFRLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyw2QkFBNkI7UUFDakMsZ0ZBQWdGO1FBQ2hGLHlGQUF5RjtRQUN6RixNQUFNLFVBQVUsR0FBRyxNQUFNLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3hCLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJLDBCQUEwQixDQUFDLENBQUM7WUFDeEcsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNwRSxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHaXRIdWIgQVBJIGNsaWVudCBmb3IgY29sbGVjdGlvbiBpbnRlZ3JhdGlvblxuICovXG5cbmltcG9ydCB7IE1jcEVycm9yLCBFcnJvckNvZGUgfSBmcm9tICdAbW9kZWxjb250ZXh0cHJvdG9jb2wvc2RrL3R5cGVzLmpzJztcbmltcG9ydCB7IEFQSUNhY2hlIH0gZnJvbSAnLi4vY2FjaGUvQVBJQ2FjaGUuanMnO1xuaW1wb3J0IHsgU0VDVVJJVFlfTElNSVRTIH0gZnJvbSAnLi4vc2VjdXJpdHkvY29uc3RhbnRzLmpzJztcbmltcG9ydCB7IFRva2VuTWFuYWdlciwgVG9rZW5TY29wZXMgfSBmcm9tICcuLi9zZWN1cml0eS90b2tlbk1hbmFnZXIuanMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vdXRpbHMvbG9nZ2VyLmpzJztcblxuZXhwb3J0IGNsYXNzIEdpdEh1YkNsaWVudCB7XG4gIHByaXZhdGUgYXBpQ2FjaGU6IEFQSUNhY2hlO1xuICBwcml2YXRlIHJhdGVMaW1pdFRyYWNrZXI6IE1hcDxzdHJpbmcsIG51bWJlcltdPjtcbiAgXG4gIGNvbnN0cnVjdG9yKGFwaUNhY2hlOiBBUElDYWNoZSwgcmF0ZUxpbWl0VHJhY2tlcjogTWFwPHN0cmluZywgbnVtYmVyW10+KSB7XG4gICAgdGhpcy5hcGlDYWNoZSA9IGFwaUNhY2hlO1xuICAgIHRoaXMucmF0ZUxpbWl0VHJhY2tlciA9IHJhdGVMaW1pdFRyYWNrZXI7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBDaGVjayByYXRlIGxpbWl0IGZvciBBUEkgY2FsbHNcbiAgICovXG4gIHByaXZhdGUgY2hlY2tSYXRlTGltaXQoa2V5OiBzdHJpbmcgPSAnZGVmYXVsdCcpOiB2b2lkIHtcbiAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgIGNvbnN0IHJlcXVlc3RzID0gdGhpcy5yYXRlTGltaXRUcmFja2VyLmdldChrZXkpIHx8IFtdO1xuICAgIFxuICAgIC8vIFJlbW92ZSByZXF1ZXN0cyBvdXRzaWRlIHRoZSB3aW5kb3dcbiAgICBjb25zdCB2YWxpZFJlcXVlc3RzID0gcmVxdWVzdHMuZmlsdGVyKHRpbWUgPT4gbm93IC0gdGltZSA8IFNFQ1VSSVRZX0xJTUlUUy5SQVRFX0xJTUlUX1dJTkRPV19NUyk7XG4gICAgXG4gICAgaWYgKHZhbGlkUmVxdWVzdHMubGVuZ3RoID49IFNFQ1VSSVRZX0xJTUlUUy5SQVRFX0xJTUlUX1JFUVVFU1RTKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFJhdGUgbGltaXQgZXhjZWVkZWQuIE1heCAke1NFQ1VSSVRZX0xJTUlUUy5SQVRFX0xJTUlUX1JFUVVFU1RTfSByZXF1ZXN0cyBwZXIgbWludXRlLmApO1xuICAgIH1cbiAgICBcbiAgICB2YWxpZFJlcXVlc3RzLnB1c2gobm93KTtcbiAgICB0aGlzLnJhdGVMaW1pdFRyYWNrZXIuc2V0KGtleSwgdmFsaWRSZXF1ZXN0cyk7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBGZXRjaCBkYXRhIGZyb20gR2l0SHViIEFQSSB3aXRoIGNhY2hpbmcgYW5kIHJhdGUgbGltaXRpbmdcbiAgICovXG4gIGFzeW5jIGZldGNoRnJvbUdpdEh1Yih1cmw6IHN0cmluZywgcmVxdWlyZUF1dGg6IGJvb2xlYW4gPSBmYWxzZSk6IFByb21pc2U8YW55PiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIENoZWNrIHJhdGUgbGltaXRcbiAgICAgIHRoaXMuY2hlY2tSYXRlTGltaXQoJ2dpdGh1Yl9hcGknKTtcbiAgICAgIFxuICAgICAgLy8gQ2hlY2sgY2FjaGUgZmlyc3RcbiAgICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMuYXBpQ2FjaGUuZ2V0KHVybCk7XG4gICAgICBpZiAoY2FjaGVkKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWQ7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIEFkZCBHaXRIdWIgdG9rZW4gaWYgYXZhaWxhYmxlIGZvciBoaWdoZXIgcmF0ZSBsaW1pdHNcbiAgICAgIGNvbnN0IGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAgICdBY2NlcHQnOiAnYXBwbGljYXRpb24vdm5kLmdpdGh1Yi52Mytqc29uJyxcbiAgICAgICAgJ1VzZXItQWdlbnQnOiAnRG9sbGhvdXNlTUNQLzEuMCdcbiAgICAgIH07XG4gICAgICBcbiAgICAgIC8vIFVzZSBUb2tlbk1hbmFnZXIgZm9yIHNlY3VyZSB0b2tlbiBoYW5kbGluZ1xuICAgICAgLy8gQ1JJVElDQUwgRklYICM0NzE6IE11c3QgdXNlIGFzeW5jIG1ldGhvZCB0byByZXRyaWV2ZSBPQXV0aCB0b2tlbnMgZnJvbSBzZWN1cmUgc3RvcmFnZVxuICAgICAgLy8gVGhlIE9BdXRoIGZsb3cgKHNldHVwX2dpdGh1Yl9hdXRoKSBzdG9yZXMgdG9rZW5zIGluIHNlY3VyZSBPUyBrZXljaGFpbi9jcmVkZW50aWFsIHN0b3JlXG4gICAgICAvLyB3aGljaCByZXF1aXJlcyBhc3luYyBhY2Nlc3MuIFRoZSBzeW5jIG1ldGhvZCBvbmx5IGNoZWNrcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMsXG4gICAgICAvLyBtaXNzaW5nIHRva2VucyBzdG9yZWQgYnkgdGhlIE9BdXRoIGF1dGhlbnRpY2F0aW9uIGZsb3cuXG4gICAgICBjb25zdCB0b2tlbiA9IGF3YWl0IFRva2VuTWFuYWdlci5nZXRHaXRIdWJUb2tlbkFzeW5jKCk7XG4gICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgaGVhZGVyc1snQXV0aG9yaXphdGlvbiddID0gYEJlYXJlciAke3Rva2VufWA7XG4gICAgICB9IGVsc2UgaWYgKHJlcXVpcmVBdXRoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignR2l0SHViIGF1dGhlbnRpY2F0aW9uIHJlcXVpcmVkIGJ1dCBubyB2YWxpZCB0b2tlbiBhdmFpbGFibGUuIFBsZWFzZSB1c2Ugc2V0dXBfZ2l0aHViX2F1dGggb3Igc2V0IEdJVEhVQl9UT0tFTiBlbnZpcm9ubWVudCB2YXJpYWJsZS4nKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gQ3JlYXRlIGZldGNoIHdpdGggdGltZW91dFxuICAgICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAgIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4gY29udHJvbGxlci5hYm9ydCgpLCAxMDAwMCk7IC8vIDEwIHNlY29uZCB0aW1lb3V0XG4gICAgICBcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsLCB7XG4gICAgICAgIGhlYWRlcnMsXG4gICAgICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWxcbiAgICAgIH0pO1xuICAgICAgXG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgICAgIFxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDMpIHtcbiAgICAgICAgICBjb25zdCBlcnJvck1zZyA9IHRva2VuIFxuICAgICAgICAgICAgPyAnR2l0SHViIEFQSSByYXRlIGxpbWl0IGV4Y2VlZGVkIG9yIHRva2VuIGxhY2tzIHJlcXVpcmVkIHBlcm1pc3Npb25zLidcbiAgICAgICAgICAgIDogJ0dpdEh1YiBBUEkgcmF0ZSBsaW1pdCBleGNlZWRlZC4gQ29uc2lkZXIgdXNpbmcgc2V0dXBfZ2l0aHViX2F1dGggb3Igc2V0dGluZyBHSVRIVUJfVE9LRU4gZW52aXJvbm1lbnQgdmFyaWFibGUuJztcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNc2cpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignR2l0SHViIEFQSSBhdXRoZW50aWNhdGlvbiBmYWlsZWQuIFBsZWFzZSBjaGVjayB5b3VyIEdJVEhVQl9UT0tFTi4nKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEdpdEh1YiBBUEkgZXJyb3I6ICR7cmVzcG9uc2Uuc3RhdHVzfSAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICBcbiAgICAgIC8vIENhY2hlIHRoZSBzdWNjZXNzZnVsIHJlc3BvbnNlXG4gICAgICB0aGlzLmFwaUNhY2hlLnNldCh1cmwsIGRhdGEpO1xuICAgICAgXG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gVXNlIFRva2VuTWFuYWdlciBmb3Igc2FmZSBlcnJvciBoYW5kbGluZ1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpO1xuICAgICAgY29uc3Qgc2FmZU1lc3NhZ2UgPSBUb2tlbk1hbmFnZXIuY3JlYXRlU2FmZUVycm9yTWVzc2FnZShlcnJvck1lc3NhZ2UpO1xuICAgICAgXG4gICAgICBjb25zdCBlcnJvckRldGFpbHM6IGFueSA9IHtcbiAgICAgICAgb3JpZ2luYWxNZXNzYWdlOiBzYWZlTWVzc2FnZSxcbiAgICAgICAgdXJsXG4gICAgICB9O1xuICAgICAgXG4gICAgICAvLyBQcmVzZXJ2ZSBzdGFjayB0cmFjZSBhbmQgZXJyb3IgdHlwZSBpbmZvcm1hdGlvblxuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgZXJyb3JEZXRhaWxzLmVycm9yVHlwZSA9IGVycm9yLmNvbnN0cnVjdG9yLm5hbWU7XG4gICAgICAgIGVycm9yRGV0YWlscy5zdGFjayA9IGVycm9yLnN0YWNrO1xuICAgICAgICBcbiAgICAgICAgLy8gU3BlY2lhbCBoYW5kbGluZyBmb3IgY29tbW9uIGVycm9yIHR5cGVzXG4gICAgICAgIGlmIChlcnJvci5uYW1lID09PSAnQWJvcnRFcnJvcicpIHtcbiAgICAgICAgICBlcnJvckRldGFpbHMudGltZW91dCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIFxuICAgICAgY29uc3QgbWNwRXJyb3IgPSBuZXcgTWNwRXJyb3IoXG4gICAgICAgIEVycm9yQ29kZS5JbnRlcm5hbEVycm9yLFxuICAgICAgICBgRmFpbGVkIHRvIGZldGNoIGZyb20gR2l0SHViOiAke3NhZmVNZXNzYWdlfWAsXG4gICAgICAgIGVycm9yRGV0YWlsc1xuICAgICAgKTtcbiAgICAgIFxuICAgICAgLy8gQWxzbyBwcmVzZXJ2ZSBvcmlnaW5hbCBlcnJvciBmb3IgZGVidWdnaW5nXG4gICAgICAobWNwRXJyb3IgYXMgYW55KS5jYXVzZSA9IGVycm9yO1xuICAgICAgXG4gICAgICB0aHJvdyBtY3BFcnJvcjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgdG9rZW4gcGVybWlzc2lvbnMgZm9yIGNvbGxlY3Rpb24gb3BlcmF0aW9uc1xuICAgKi9cbiAgYXN5bmMgdmFsaWRhdGVDb2xsZWN0aW9uUGVybWlzc2lvbnMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gTk9URTogVXNpbmcgJ21hcmtldHBsYWNlJyBzY29wZSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIFRva2VuTWFuYWdlci5cbiAgICAvLyBUaGlzIGlzIGFuIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbCB0aGF0IGRvZXNuJ3QgYWZmZWN0IGZ1bmN0aW9uYWxpdHkuIChQUiAjMjgwKVxuICAgIGNvbnN0IHZhbGlkYXRpb24gPSBhd2FpdCBUb2tlbk1hbmFnZXIuZW5zdXJlVG9rZW5QZXJtaXNzaW9ucygnbWFya2V0cGxhY2UnKTtcbiAgICBpZiAoIXZhbGlkYXRpb24uaXNWYWxpZCkge1xuICAgICAgY29uc3Qgc2FmZU1lc3NhZ2UgPSBUb2tlbk1hbmFnZXIuY3JlYXRlU2FmZUVycm9yTWVzc2FnZSh2YWxpZGF0aW9uLmVycm9yIHx8ICdVbmtub3duIHZhbGlkYXRpb24gZXJyb3InKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgR2l0SHViIHRva2VuIHZhbGlkYXRpb24gZmFpbGVkOiAke3NhZmVNZXNzYWdlfWApO1xuICAgIH1cbiAgfVxufSJdfQ==
@@ -1,19 +1,66 @@
1
1
  /**
2
2
  * Submit personas to the collection
3
+ * Handles both authenticated and anonymous submission workflows
4
+ *
5
+ * Security Features:
6
+ * - Rate limiting to prevent spam (5 submissions per hour per session)
7
+ * - URL length validation for GitHub limits
8
+ * - No email submission pathway (GitHub account required)
3
9
  */
4
10
  import { Persona } from '../types/persona.js';
11
+ import { RateLimitStatus } from '../update/RateLimiter.js';
5
12
  export declare class PersonaSubmitter {
13
+ private rateLimiter;
14
+ constructor();
6
15
  /**
7
16
  * Generate GitHub issue for persona submission
17
+ * Includes URL length validation to comply with GitHub's ~8KB limit
8
18
  */
9
19
  generateSubmissionIssue(persona: Persona): {
10
20
  issueTitle: string;
11
21
  issueBody: string;
12
22
  githubIssueUrl: string;
23
+ rateLimitStatus?: RateLimitStatus;
13
24
  };
14
25
  /**
15
- * Format submission response
26
+ * Format submission response for authenticated users
16
27
  */
17
28
  formatSubmissionResponse(persona: Persona, githubIssueUrl: string, personaIndicator?: string): string;
29
+ /**
30
+ * Format anonymous submission response for unauthenticated users
31
+ */
32
+ formatAnonymousSubmissionResponse(persona: Persona, githubIssueUrl: string, personaIndicator?: string): string;
33
+ /**
34
+ * Build the full issue body with all persona details
35
+ */
36
+ private buildIssueBody;
37
+ /**
38
+ * Build a truncated issue body to fit within URL limits
39
+ */
40
+ private buildTruncatedIssueBody;
41
+ /**
42
+ * Serialize persona metadata to YAML format
43
+ */
44
+ private serializeMetadata;
45
+ /**
46
+ * Build the GitHub issue URL
47
+ */
48
+ private buildGitHubIssueUrl;
49
+ /**
50
+ * Build common response header used by both authenticated and anonymous responses
51
+ */
52
+ private buildResponseHeader;
53
+ /**
54
+ * Build standard submission steps for authenticated users
55
+ */
56
+ private buildStandardSubmissionSteps;
57
+ /**
58
+ * Build anonymous submission process instructions
59
+ */
60
+ private buildAnonymousSubmissionProcess;
61
+ /**
62
+ * Build anonymous submission next steps and expectations
63
+ */
64
+ private buildAnonymousNextSteps;
18
65
  }
19
66
  //# sourceMappingURL=PersonaSubmitter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PersonaSubmitter.d.ts","sourceRoot":"","sources":["../../src/collection/PersonaSubmitter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,qBAAa,gBAAgB;IAC3B;;OAEG;IACH,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG;QACzC,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAA;KACvB;IAqCD;;OAEG;IACH,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,gBAAgB,GAAE,MAAW,GAAG,MAAM;CAW1G"}
1
+ {"version":3,"file":"PersonaSubmitter.d.ts","sourceRoot":"","sources":["../../src/collection/PersonaSubmitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAe,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAgBxE,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAAc;;IAUjC;;;OAGG;IACH,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG;QACzC,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;KACnC;IAsCD;;OAEG;IACH,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,gBAAgB,GAAE,MAAW,GAAG,MAAM;IAczG;;OAEG;IACH,iCAAiC,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,gBAAgB,GAAE,MAAW,GAAG,MAAM;IAiBlH;;OAEG;IACH,OAAO,CAAC,cAAc;IAqBtB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAyB/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAK3B;;OAEG;IACH,OAAO,CAAC,4BAA4B;IASpC;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAYvC;;OAEG;IACH,OAAO,CAAC,uBAAuB;CAOhC"}