@codeguide/core 0.0.27 → 0.0.29
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 +50 -41
- package/__tests__/services/codespace/codespace-v2.test.ts +29 -18
- package/__tests__/services/usage/usage-service.test.ts +597 -85
- package/codeguide.ts +6 -0
- package/dist/codeguide.d.ts +3 -1
- package/dist/codeguide.js +2 -0
- package/dist/index.d.ts +4 -3
- package/dist/services/base/base-service.d.ts +21 -0
- package/dist/services/base/base-service.js +114 -0
- package/dist/services/codespace/codespace-service.d.ts +55 -1
- package/dist/services/codespace/codespace-service.js +260 -5
- package/dist/services/codespace/codespace-types.d.ts +193 -13
- package/dist/services/codespace/index.d.ts +1 -1
- package/dist/services/index.d.ts +4 -0
- package/dist/services/index.js +7 -1
- package/dist/services/projects/project-types.d.ts +66 -32
- package/dist/services/repository-analysis/repository-types.d.ts +1 -0
- package/dist/services/starter-kits/index.d.ts +2 -0
- package/dist/services/starter-kits/index.js +20 -0
- package/dist/services/starter-kits/starter-kits-service.d.ts +13 -0
- package/dist/services/starter-kits/starter-kits-service.js +27 -0
- package/dist/services/starter-kits/starter-kits-types.d.ts +34 -0
- package/dist/services/starter-kits/starter-kits-types.js +2 -0
- package/dist/services/tasks/task-service.d.ts +2 -1
- package/dist/services/tasks/task-service.js +8 -0
- package/dist/services/tasks/task-types.d.ts +26 -7
- package/dist/services/usage/usage-service.d.ts +5 -2
- package/dist/services/usage/usage-service.js +58 -9
- package/dist/services/usage/usage-types.d.ts +207 -34
- package/dist/services/users/index.d.ts +2 -0
- package/dist/services/users/index.js +20 -0
- package/dist/services/users/user-service.d.ts +12 -0
- package/dist/services/users/user-service.js +17 -0
- package/dist/services/users/user-types.d.ts +55 -0
- package/dist/services/users/user-types.js +2 -0
- package/docs/.vitepress/README.md +51 -0
- package/docs/.vitepress/config.ts +139 -0
- package/docs/.vitepress/theme/custom.css +80 -0
- package/docs/.vitepress/theme/index.ts +13 -0
- package/docs/.vitepress/tsconfig.json +19 -0
- package/docs/QUICKSTART.md +77 -0
- package/docs/README.md +134 -0
- package/docs/README_SETUP.md +46 -0
- package/docs/authentication.md +351 -0
- package/docs/codeguide-client.md +350 -0
- package/docs/codespace-models.md +1004 -0
- package/docs/codespace-service.md +558 -81
- package/docs/index.md +135 -0
- package/docs/package.json +14 -0
- package/docs/projects-service.md +688 -0
- package/docs/security-keys-service.md +773 -0
- package/docs/starter-kits-service.md +249 -0
- package/docs/task-service.md +955 -0
- package/docs/testsprite_tests/TC001_Homepage_Load_and_Hero_Section_Display.py +70 -0
- package/docs/testsprite_tests/TC002_Sidebar_Navigation_ExpandCollapse_Functionality.py +73 -0
- package/docs/testsprite_tests/TC003_Full_Text_Local_Search_with_Keyboard_Shortcut.py +90 -0
- package/docs/testsprite_tests/TC004_Dark_Mode_Toggle_and_Persistence.py +73 -0
- package/docs/testsprite_tests/TC005_Mobile_Responsiveness_and_Touch_Navigation.py +113 -0
- package/docs/testsprite_tests/TC006_GitHub_Integration_Edit_this_page_Links.py +73 -0
- package/docs/testsprite_tests/TC007_Syntax_Highlighting_and_Code_Copy_Functionality.py +73 -0
- package/docs/testsprite_tests/TC008_Auto_Generated_Table_of_Contents_Accuracy.py +73 -0
- package/docs/testsprite_tests/TC009_SEO_and_Content_Discoverability_Verification.py +73 -0
- package/docs/testsprite_tests/TC010_Accessibility_Compliance_WCAG_AA.py +73 -0
- package/docs/testsprite_tests/TC011_Local_Development_Workflow_Build_and_Hot_Reload.py +74 -0
- package/docs/testsprite_tests/TC012_Performance_Metrics_Compliance.py +73 -0
- package/docs/testsprite_tests/standard_prd.json +122 -0
- package/docs/testsprite_tests/testsprite-mcp-test-report.html +2508 -0
- package/docs/testsprite_tests/testsprite-mcp-test-report.md +273 -0
- package/docs/testsprite_tests/testsprite_frontend_test_plan.json +390 -0
- package/docs/usage-service.md +616 -0
- package/index.ts +11 -3
- package/package.json +16 -2
- package/plans/CODESPACE_LOGS_STREAMING_GUIDE.md +320 -0
- package/plans/CODESPACE_TASK_LOGS_API_COMPLETE_GUIDE.md +821 -0
- package/services/base/base-service.ts +130 -0
- package/services/codespace/codespace-service.ts +347 -8
- package/services/codespace/codespace-types.ts +263 -14
- package/services/codespace/index.ts +16 -1
- package/services/index.ts +4 -0
- package/services/projects/README.md +107 -34
- package/services/projects/project-types.ts +69 -32
- package/services/repository-analysis/repository-types.ts +1 -0
- package/services/starter-kits/index.ts +2 -0
- package/services/starter-kits/starter-kits-service.ts +33 -0
- package/services/starter-kits/starter-kits-types.ts +38 -0
- package/services/tasks/task-service.ts +10 -0
- package/services/tasks/task-types.ts +29 -7
- package/services/usage/usage-service.ts +59 -10
- package/services/usage/usage-types.ts +239 -34
- package/services/users/index.ts +2 -0
- package/services/users/user-service.ts +15 -0
- package/services/users/user-types.ts +59 -0
|
@@ -11,6 +11,7 @@ class UsageService extends base_service_1.BaseService {
|
|
|
11
11
|
}
|
|
12
12
|
async checkCredits(params) {
|
|
13
13
|
const queryParams = new URLSearchParams();
|
|
14
|
+
queryParams.append('model_key', params.model_key);
|
|
14
15
|
if (params.input_tokens !== undefined)
|
|
15
16
|
queryParams.append('input_tokens', params.input_tokens.toString());
|
|
16
17
|
if (params.output_tokens !== undefined)
|
|
@@ -20,15 +21,6 @@ class UsageService extends base_service_1.BaseService {
|
|
|
20
21
|
const url = `/usage/credit-check?${queryParams.toString()}`;
|
|
21
22
|
return this.get(url);
|
|
22
23
|
}
|
|
23
|
-
async getUsageSummary(params) {
|
|
24
|
-
const queryParams = new URLSearchParams();
|
|
25
|
-
if (params?.start_date)
|
|
26
|
-
queryParams.append('start_date', params.start_date);
|
|
27
|
-
if (params?.end_date)
|
|
28
|
-
queryParams.append('end_date', params.end_date);
|
|
29
|
-
const url = `/usage/summary${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
|
|
30
|
-
return this.get(url);
|
|
31
|
-
}
|
|
32
24
|
async getAuthorization() {
|
|
33
25
|
return this.get('/usage/authorization');
|
|
34
26
|
}
|
|
@@ -64,5 +56,62 @@ class UsageService extends base_service_1.BaseService {
|
|
|
64
56
|
return false;
|
|
65
57
|
}
|
|
66
58
|
}
|
|
59
|
+
// Dashboard Analytics Methods
|
|
60
|
+
async getDashboardAnalytics(params) {
|
|
61
|
+
const queryParams = new URLSearchParams();
|
|
62
|
+
if (params?.period)
|
|
63
|
+
queryParams.append('period', params.period);
|
|
64
|
+
if (params?.start_date)
|
|
65
|
+
queryParams.append('start_date', params.start_date);
|
|
66
|
+
if (params?.end_date)
|
|
67
|
+
queryParams.append('end_date', params.end_date);
|
|
68
|
+
if (params?.service_type)
|
|
69
|
+
queryParams.append('service_type', params.service_type);
|
|
70
|
+
const url = `/usage/dashboard/analytics${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
|
|
71
|
+
return this.get(url);
|
|
72
|
+
}
|
|
73
|
+
async getUsageDetails(params) {
|
|
74
|
+
const queryParams = new URLSearchParams();
|
|
75
|
+
if (params?.period)
|
|
76
|
+
queryParams.append('period', params.period);
|
|
77
|
+
if (params?.start_date)
|
|
78
|
+
queryParams.append('start_date', params.start_date);
|
|
79
|
+
if (params?.end_date)
|
|
80
|
+
queryParams.append('end_date', params.end_date);
|
|
81
|
+
if (params?.service_type)
|
|
82
|
+
queryParams.append('service_type', params.service_type);
|
|
83
|
+
if (params?.page !== undefined)
|
|
84
|
+
queryParams.append('page', params.page.toString());
|
|
85
|
+
if (params?.page_size !== undefined)
|
|
86
|
+
queryParams.append('page_size', params.page_size.toString());
|
|
87
|
+
if (params?.sort_by)
|
|
88
|
+
queryParams.append('sort_by', params.sort_by);
|
|
89
|
+
if (params?.sort_order)
|
|
90
|
+
queryParams.append('sort_order', params.sort_order);
|
|
91
|
+
const url = `/usage/dashboard/details${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
|
|
92
|
+
return this.get(url);
|
|
93
|
+
}
|
|
94
|
+
async getUsageSummary(params) {
|
|
95
|
+
const queryParams = new URLSearchParams();
|
|
96
|
+
if (params?.period)
|
|
97
|
+
queryParams.append('period', params.period);
|
|
98
|
+
if (params?.start_date)
|
|
99
|
+
queryParams.append('start_date', params.start_date);
|
|
100
|
+
if (params?.end_date)
|
|
101
|
+
queryParams.append('end_date', params.end_date);
|
|
102
|
+
const url = `/usage/dashboard/summary${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
|
|
103
|
+
return this.get(url);
|
|
104
|
+
}
|
|
105
|
+
async getServiceBreakdown(params) {
|
|
106
|
+
const queryParams = new URLSearchParams();
|
|
107
|
+
if (params?.period)
|
|
108
|
+
queryParams.append('period', params.period);
|
|
109
|
+
if (params?.start_date)
|
|
110
|
+
queryParams.append('start_date', params.start_date);
|
|
111
|
+
if (params?.end_date)
|
|
112
|
+
queryParams.append('end_date', params.end_date);
|
|
113
|
+
const url = `/usage/dashboard/services${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
|
|
114
|
+
return this.get(url);
|
|
115
|
+
}
|
|
67
116
|
}
|
|
68
117
|
exports.UsageService = UsageService;
|
|
@@ -11,7 +11,7 @@ export interface TrackUsageResponse {
|
|
|
11
11
|
remaining_credits: number;
|
|
12
12
|
message: string;
|
|
13
13
|
}
|
|
14
|
-
export interface
|
|
14
|
+
export interface CreditBalanceData {
|
|
15
15
|
user_id: string;
|
|
16
16
|
total_consumed: number;
|
|
17
17
|
total_allotted: number;
|
|
@@ -24,6 +24,9 @@ export interface CreditBalanceResponse {
|
|
|
24
24
|
status: string;
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
|
+
export interface CreditBalanceResponse {
|
|
28
|
+
data: CreditBalanceData;
|
|
29
|
+
}
|
|
27
30
|
export interface CreditCheckRequest {
|
|
28
31
|
model_key: string;
|
|
29
32
|
input_tokens?: number;
|
|
@@ -36,43 +39,67 @@ export interface CreditCheckResponse {
|
|
|
36
39
|
remaining_credits: number;
|
|
37
40
|
model_key: string;
|
|
38
41
|
}
|
|
39
|
-
export interface
|
|
40
|
-
|
|
41
|
-
|
|
42
|
+
export interface CreditBalance {
|
|
43
|
+
total_allotted: number;
|
|
44
|
+
total_consumed: number;
|
|
45
|
+
remaining_credits: number;
|
|
46
|
+
is_over_limit: boolean;
|
|
47
|
+
utilization_percentage: number;
|
|
48
|
+
billing_cycle_start: string;
|
|
49
|
+
billing_cycle_end: string;
|
|
42
50
|
}
|
|
43
|
-
export interface
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
51
|
+
export interface LimitInfo {
|
|
52
|
+
allowed?: boolean;
|
|
53
|
+
current_usage?: number;
|
|
54
|
+
limit: number;
|
|
55
|
+
remaining?: number;
|
|
56
|
+
period_type?: string;
|
|
57
|
+
period_start?: string | null;
|
|
58
|
+
period_end?: string | null;
|
|
59
|
+
message?: string;
|
|
60
|
+
is_unlimited: boolean;
|
|
61
|
+
period?: string;
|
|
62
|
+
description?: string;
|
|
63
|
+
}
|
|
64
|
+
export interface PlanLimits {
|
|
65
|
+
plan_type: string;
|
|
66
|
+
limits: {
|
|
67
|
+
codespace_tasks: LimitInfo;
|
|
68
|
+
api_calls: LimitInfo;
|
|
69
|
+
storage_gb: LimitInfo;
|
|
70
|
+
projects: LimitInfo;
|
|
71
|
+
collaborators: LimitInfo;
|
|
62
72
|
};
|
|
63
73
|
}
|
|
64
|
-
export interface
|
|
74
|
+
export interface AuthorizationSubscription {
|
|
75
|
+
id: string;
|
|
76
|
+
status: string;
|
|
77
|
+
interval: string;
|
|
78
|
+
current_period_start: string;
|
|
79
|
+
current_period_end: string;
|
|
80
|
+
price_id: string;
|
|
81
|
+
product_name: string | null;
|
|
82
|
+
plan_name: string;
|
|
83
|
+
}
|
|
84
|
+
export interface AuthorizationData {
|
|
65
85
|
user_id: string;
|
|
66
|
-
subscription:
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
86
|
+
subscription: AuthorizationSubscription | null;
|
|
87
|
+
credit_balance: CreditBalance;
|
|
88
|
+
has_active_subscription: boolean;
|
|
89
|
+
has_previous_subscriptions: boolean;
|
|
90
|
+
is_within_credit_limit: boolean;
|
|
91
|
+
authorization_level: string;
|
|
92
|
+
restrictions: string[];
|
|
93
|
+
can_create_tasks: boolean;
|
|
94
|
+
can_analyze_repos: boolean;
|
|
95
|
+
can_access_previous_projects: boolean;
|
|
96
|
+
plan_limits: PlanLimits;
|
|
97
|
+
codespace_task_limit: LimitInfo | null;
|
|
98
|
+
}
|
|
99
|
+
export interface AuthorizationResponse {
|
|
100
|
+
success: boolean;
|
|
101
|
+
data: AuthorizationData;
|
|
102
|
+
message: string;
|
|
76
103
|
}
|
|
77
104
|
export interface FreeUserStatusResponse {
|
|
78
105
|
is_free_user: boolean;
|
|
@@ -131,3 +158,149 @@ export interface HealthResponse {
|
|
|
131
158
|
timestamp: string;
|
|
132
159
|
version: string;
|
|
133
160
|
}
|
|
161
|
+
export type PeriodType = "7d" | "1w" | "1m" | "3m";
|
|
162
|
+
export type ServiceType = "docs" | "chat" | "codespace_task" | "api";
|
|
163
|
+
export type SortOrder = "asc" | "desc";
|
|
164
|
+
export type SortByField = "created_at" | "credits_consumed" | "cost_amount";
|
|
165
|
+
export interface DashboardAnalyticsRequest {
|
|
166
|
+
period?: PeriodType;
|
|
167
|
+
start_date?: string;
|
|
168
|
+
end_date?: string;
|
|
169
|
+
service_type?: ServiceType;
|
|
170
|
+
}
|
|
171
|
+
export interface DailyUsage {
|
|
172
|
+
date: string;
|
|
173
|
+
credits_consumed: number;
|
|
174
|
+
cost_usd: number;
|
|
175
|
+
requests_count: number;
|
|
176
|
+
average_credits_per_request: number;
|
|
177
|
+
}
|
|
178
|
+
export interface ServiceUsage {
|
|
179
|
+
service_type: ServiceType;
|
|
180
|
+
credits_consumed: number;
|
|
181
|
+
requests_count: number;
|
|
182
|
+
}
|
|
183
|
+
export interface AnalyticsTotals {
|
|
184
|
+
credits_consumed: number;
|
|
185
|
+
cost_usd: number;
|
|
186
|
+
requests_count: number;
|
|
187
|
+
}
|
|
188
|
+
export interface AnalyticsAverages {
|
|
189
|
+
daily_credits: number;
|
|
190
|
+
daily_requests: number;
|
|
191
|
+
}
|
|
192
|
+
export interface AnalyticsTrends {
|
|
193
|
+
credits_consumed: number;
|
|
194
|
+
requests_count: number;
|
|
195
|
+
}
|
|
196
|
+
export interface PeriodInfo {
|
|
197
|
+
start: string;
|
|
198
|
+
end: string;
|
|
199
|
+
label: string;
|
|
200
|
+
}
|
|
201
|
+
export interface DashboardAnalyticsResponse {
|
|
202
|
+
status: string;
|
|
203
|
+
data: {
|
|
204
|
+
period: PeriodInfo;
|
|
205
|
+
daily_usage: DailyUsage[];
|
|
206
|
+
totals: AnalyticsTotals;
|
|
207
|
+
averages: AnalyticsAverages;
|
|
208
|
+
trends: AnalyticsTrends;
|
|
209
|
+
top_services: ServiceUsage[];
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
export interface UsageDetailsRequest {
|
|
213
|
+
period?: PeriodType;
|
|
214
|
+
start_date?: string;
|
|
215
|
+
end_date?: string;
|
|
216
|
+
service_type?: ServiceType;
|
|
217
|
+
page?: number;
|
|
218
|
+
page_size?: number;
|
|
219
|
+
sort_by?: SortByField;
|
|
220
|
+
sort_order?: SortOrder;
|
|
221
|
+
}
|
|
222
|
+
export interface UsageDetailRecord {
|
|
223
|
+
id: string;
|
|
224
|
+
created_at: string;
|
|
225
|
+
service_type: ServiceType;
|
|
226
|
+
model_name: string;
|
|
227
|
+
usage_type: string;
|
|
228
|
+
units_consumed: number;
|
|
229
|
+
credits_consumed: number;
|
|
230
|
+
cost_amount: number | null;
|
|
231
|
+
}
|
|
232
|
+
export interface UsageDetailsPagination {
|
|
233
|
+
page: number;
|
|
234
|
+
page_size: number;
|
|
235
|
+
total_count: number;
|
|
236
|
+
total_pages: number;
|
|
237
|
+
has_next: boolean;
|
|
238
|
+
has_prev: boolean;
|
|
239
|
+
}
|
|
240
|
+
export interface UsageDetailsFilters {
|
|
241
|
+
period: string | null;
|
|
242
|
+
start_date: string | null;
|
|
243
|
+
end_date: string | null;
|
|
244
|
+
service_type: string | null;
|
|
245
|
+
}
|
|
246
|
+
export interface UsageDetailsResponse {
|
|
247
|
+
status: string;
|
|
248
|
+
data: UsageDetailRecord[];
|
|
249
|
+
pagination: UsageDetailsPagination;
|
|
250
|
+
filters: UsageDetailsFilters;
|
|
251
|
+
}
|
|
252
|
+
export interface UsageSummaryRequest {
|
|
253
|
+
period?: PeriodType;
|
|
254
|
+
start_date?: string;
|
|
255
|
+
end_date?: string;
|
|
256
|
+
}
|
|
257
|
+
export interface CurrentPeriodUsage {
|
|
258
|
+
credits_consumed: number;
|
|
259
|
+
cost_usd: number;
|
|
260
|
+
requests_count: number;
|
|
261
|
+
}
|
|
262
|
+
export interface PreviousPeriodUsage {
|
|
263
|
+
credits_consumed: number;
|
|
264
|
+
cost_usd: number;
|
|
265
|
+
requests_count: number;
|
|
266
|
+
}
|
|
267
|
+
export interface BillingCycleInfo {
|
|
268
|
+
total_allotted: number;
|
|
269
|
+
total_consumed: number;
|
|
270
|
+
remaining_credits: number;
|
|
271
|
+
}
|
|
272
|
+
export interface UsageSummaryResponse {
|
|
273
|
+
status: string;
|
|
274
|
+
data: {
|
|
275
|
+
current_period: CurrentPeriodUsage;
|
|
276
|
+
previous_period: PreviousPeriodUsage;
|
|
277
|
+
billing_cycle: BillingCycleInfo;
|
|
278
|
+
utilization_percentage: number;
|
|
279
|
+
remaining_credits: number;
|
|
280
|
+
daily_average: number;
|
|
281
|
+
projected_monthly: number;
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
export interface ServiceBreakdownRequest {
|
|
285
|
+
period?: PeriodType;
|
|
286
|
+
start_date?: string;
|
|
287
|
+
end_date?: string;
|
|
288
|
+
}
|
|
289
|
+
export interface ServiceBreakdown {
|
|
290
|
+
service_type: ServiceType;
|
|
291
|
+
credits_consumed: number;
|
|
292
|
+
percentage: number;
|
|
293
|
+
cost_usd: number;
|
|
294
|
+
requests_count: number;
|
|
295
|
+
trend: number;
|
|
296
|
+
}
|
|
297
|
+
export interface ServiceBreakdownData {
|
|
298
|
+
period: PeriodInfo;
|
|
299
|
+
services: ServiceBreakdown[];
|
|
300
|
+
total_credits: number;
|
|
301
|
+
total_cost: number;
|
|
302
|
+
}
|
|
303
|
+
export interface ServiceBreakdownResponse {
|
|
304
|
+
status: string;
|
|
305
|
+
data: ServiceBreakdownData;
|
|
306
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.UserService = void 0;
|
|
18
|
+
var user_service_1 = require("./user-service");
|
|
19
|
+
Object.defineProperty(exports, "UserService", { enumerable: true, get: function () { return user_service_1.UserService; } });
|
|
20
|
+
__exportStar(require("./user-types"), exports);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseService } from '../base/base-service';
|
|
2
|
+
import { GetCurrentClerkUserResponse } from './user-types';
|
|
3
|
+
export declare class UserService extends BaseService {
|
|
4
|
+
/**
|
|
5
|
+
* Get the current Clerk user information
|
|
6
|
+
*
|
|
7
|
+
* GET /users/me/clerk
|
|
8
|
+
*
|
|
9
|
+
* @returns Promise resolving to the current Clerk user data
|
|
10
|
+
*/
|
|
11
|
+
getCurrentClerkUser(): Promise<GetCurrentClerkUserResponse>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UserService = void 0;
|
|
4
|
+
const base_service_1 = require("../base/base-service");
|
|
5
|
+
class UserService extends base_service_1.BaseService {
|
|
6
|
+
/**
|
|
7
|
+
* Get the current Clerk user information
|
|
8
|
+
*
|
|
9
|
+
* GET /users/me/clerk
|
|
10
|
+
*
|
|
11
|
+
* @returns Promise resolving to the current Clerk user data
|
|
12
|
+
*/
|
|
13
|
+
async getCurrentClerkUser() {
|
|
14
|
+
return this.get('/users/me/clerk');
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.UserService = UserService;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Email address verification information
|
|
3
|
+
*/
|
|
4
|
+
export interface EmailVerification {
|
|
5
|
+
status: 'verified' | 'unverified';
|
|
6
|
+
strategy: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Email address information
|
|
10
|
+
*/
|
|
11
|
+
export interface EmailAddress {
|
|
12
|
+
id: string;
|
|
13
|
+
email_address: string;
|
|
14
|
+
verification: EmailVerification;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Clerk user metadata
|
|
18
|
+
*/
|
|
19
|
+
export interface ClerkUserMetadata {
|
|
20
|
+
[key: string]: any;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Clerk user data structure
|
|
24
|
+
*/
|
|
25
|
+
export interface ClerkUserData {
|
|
26
|
+
user_id: string;
|
|
27
|
+
first_name: string | null;
|
|
28
|
+
last_name: string | null;
|
|
29
|
+
username: string | null;
|
|
30
|
+
email_addresses: EmailAddress[];
|
|
31
|
+
phone_numbers: Array<{
|
|
32
|
+
id: string;
|
|
33
|
+
phone_number: string;
|
|
34
|
+
verification: {
|
|
35
|
+
status: 'verified' | 'unverified';
|
|
36
|
+
strategy: string;
|
|
37
|
+
};
|
|
38
|
+
}>;
|
|
39
|
+
primary_email_address: string | null;
|
|
40
|
+
primary_phone_number: string | null;
|
|
41
|
+
image_url: string | null;
|
|
42
|
+
created_at: number;
|
|
43
|
+
updated_at: number;
|
|
44
|
+
last_sign_in_at: number | null;
|
|
45
|
+
public_metadata: ClerkUserMetadata;
|
|
46
|
+
private_metadata: ClerkUserMetadata;
|
|
47
|
+
unsafe_metadata: ClerkUserMetadata;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Response for getting current Clerk user
|
|
51
|
+
*/
|
|
52
|
+
export interface GetCurrentClerkUserResponse {
|
|
53
|
+
status: 'success' | 'error';
|
|
54
|
+
data: ClerkUserData;
|
|
55
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# VitePress Documentation Setup
|
|
2
|
+
|
|
3
|
+
This directory contains the VitePress configuration for the @codeguide/core documentation.
|
|
4
|
+
|
|
5
|
+
## Structure
|
|
6
|
+
|
|
7
|
+
- `config.ts` - Main VitePress configuration file (TypeScript)
|
|
8
|
+
- `theme/` - Custom theme files
|
|
9
|
+
- `index.ts` - Theme entry point
|
|
10
|
+
- `custom.css` - Custom styles
|
|
11
|
+
|
|
12
|
+
## Development
|
|
13
|
+
|
|
14
|
+
To run the documentation locally:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
cd packages/core
|
|
18
|
+
npm install
|
|
19
|
+
npm run docs:dev
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Then open http://localhost:5173
|
|
23
|
+
|
|
24
|
+
## Building
|
|
25
|
+
|
|
26
|
+
To build the documentation for production:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm run docs:build
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
The output will be in `packages/core/docs/.vitepress/dist`
|
|
33
|
+
|
|
34
|
+
## Preview
|
|
35
|
+
|
|
36
|
+
To preview the built documentation:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
npm run docs:preview
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Configuration
|
|
43
|
+
|
|
44
|
+
The main configuration is in `config.ts`. Key features:
|
|
45
|
+
|
|
46
|
+
- TypeScript-based configuration
|
|
47
|
+
- Sidebar navigation
|
|
48
|
+
- Search functionality
|
|
49
|
+
- Edit links to GitHub
|
|
50
|
+
- Custom theme styling
|
|
51
|
+
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { defineConfig } from 'vitepress'
|
|
2
|
+
|
|
3
|
+
export default defineConfig({
|
|
4
|
+
title: '@codeguide/core',
|
|
5
|
+
description: 'Documentation for @codeguide/core package - TypeScript SDK for CodeGuide API',
|
|
6
|
+
|
|
7
|
+
// Server configuration
|
|
8
|
+
server: {
|
|
9
|
+
port: 5174,
|
|
10
|
+
host: true,
|
|
11
|
+
},
|
|
12
|
+
|
|
13
|
+
// Base URL if deploying to a subdirectory
|
|
14
|
+
base: '/',
|
|
15
|
+
|
|
16
|
+
// Theme configuration
|
|
17
|
+
themeConfig: {
|
|
18
|
+
// Logo (optional)
|
|
19
|
+
logo: '/logo.png', // You can add a logo later
|
|
20
|
+
|
|
21
|
+
// Site title in nav
|
|
22
|
+
siteTitle: '@codeguide/core',
|
|
23
|
+
|
|
24
|
+
// Navigation bar
|
|
25
|
+
nav: [
|
|
26
|
+
{ text: 'Home', link: '/' },
|
|
27
|
+
{ text: 'Getting Started', link: '/codeguide-client' },
|
|
28
|
+
{ text: 'Services', link: '/projects-service' },
|
|
29
|
+
{ text: 'GitHub', link: 'https://github.com/CodeGuide-dev/codeguide' },
|
|
30
|
+
],
|
|
31
|
+
|
|
32
|
+
// Sidebar navigation
|
|
33
|
+
sidebar: [
|
|
34
|
+
{
|
|
35
|
+
text: 'Getting Started',
|
|
36
|
+
items: [
|
|
37
|
+
{ text: 'Overview', link: '/' },
|
|
38
|
+
{ text: 'CodeGuide Client', link: '/codeguide-client' },
|
|
39
|
+
{ text: 'Authentication', link: '/authentication' },
|
|
40
|
+
],
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
text: 'Services',
|
|
44
|
+
items: [
|
|
45
|
+
{ text: 'Projects Service', link: '/projects-service' },
|
|
46
|
+
{ text: 'Codespace Service', link: '/codespace-service' },
|
|
47
|
+
{ text: 'Codespace Models', link: '/codespace-models' },
|
|
48
|
+
{ text: 'Security Keys Service', link: '/security-keys-service' },
|
|
49
|
+
{ text: 'Usage Service', link: '/usage-service' },
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
|
|
54
|
+
// Social links
|
|
55
|
+
socialLinks: [
|
|
56
|
+
{ icon: 'github', link: 'https://github.com/CodeGuide-dev/codeguide' },
|
|
57
|
+
],
|
|
58
|
+
|
|
59
|
+
// Search configuration
|
|
60
|
+
search: {
|
|
61
|
+
provider: 'local',
|
|
62
|
+
options: {
|
|
63
|
+
locales: {
|
|
64
|
+
root: {
|
|
65
|
+
translations: {
|
|
66
|
+
button: {
|
|
67
|
+
buttonText: 'Search',
|
|
68
|
+
buttonAriaLabel: 'Search documentation',
|
|
69
|
+
},
|
|
70
|
+
modal: {
|
|
71
|
+
noResultsText: 'No results for',
|
|
72
|
+
resetButtonTitle: 'Reset search',
|
|
73
|
+
footer: {
|
|
74
|
+
selectText: 'to select',
|
|
75
|
+
navigateText: 'to navigate',
|
|
76
|
+
closeText: 'to close',
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
|
|
85
|
+
// Footer
|
|
86
|
+
footer: {
|
|
87
|
+
message: 'Released under the MIT License.',
|
|
88
|
+
copyright: 'Copyright © 2024 CodeGuide Team',
|
|
89
|
+
},
|
|
90
|
+
|
|
91
|
+
// Edit link
|
|
92
|
+
editLink: {
|
|
93
|
+
pattern: 'https://github.com/CodeGuide-dev/codeguide/blob/main/packages/core/docs/:path',
|
|
94
|
+
text: 'Edit this page on GitHub',
|
|
95
|
+
},
|
|
96
|
+
|
|
97
|
+
// Carbon ads (optional - remove if not needed)
|
|
98
|
+
// carbonAds: {
|
|
99
|
+
// code: 'your-code',
|
|
100
|
+
// placement: 'your-placement'
|
|
101
|
+
// },
|
|
102
|
+
|
|
103
|
+
// Last updated
|
|
104
|
+
lastUpdated: {
|
|
105
|
+
text: 'Last updated',
|
|
106
|
+
},
|
|
107
|
+
|
|
108
|
+
// Outline configuration
|
|
109
|
+
outline: {
|
|
110
|
+
level: [2, 3],
|
|
111
|
+
label: 'On this page',
|
|
112
|
+
},
|
|
113
|
+
|
|
114
|
+
// Doc footer (prev/next links)
|
|
115
|
+
docFooter: {
|
|
116
|
+
prev: 'Previous page',
|
|
117
|
+
next: 'Next page',
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
|
|
121
|
+
// Markdown configuration
|
|
122
|
+
markdown: {
|
|
123
|
+
lineNumbers: true,
|
|
124
|
+
theme: {
|
|
125
|
+
light: 'github-light',
|
|
126
|
+
dark: 'github-dark',
|
|
127
|
+
},
|
|
128
|
+
// Disable Vue component parsing in markdown to avoid conflicts
|
|
129
|
+
breaks: false,
|
|
130
|
+
},
|
|
131
|
+
|
|
132
|
+
// Head configuration
|
|
133
|
+
head: [
|
|
134
|
+
['meta', { name: 'viewport', content: 'width=device-width, initial-scale=1.0' }],
|
|
135
|
+
['meta', { name: 'description', content: 'Documentation for @codeguide/core package' }],
|
|
136
|
+
['link', { rel: 'icon', href: '/favicon.ico' }],
|
|
137
|
+
],
|
|
138
|
+
})
|
|
139
|
+
|