@tobi-or-not/docpress 0.8.0 → 0.8.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.
@@ -0,0 +1,4 @@
1
+ import type { FetchOpts } from '../schemas/fetch.js';
2
+ export declare const fetchOpts: import("commander").Option[];
3
+ export declare const fetchCmd: import("commander").Command;
4
+ export declare function main(opts: FetchOpts): Promise<void>;
@@ -0,0 +1 @@
1
+ export declare const globalOpts: import("commander").Option[];
@@ -0,0 +1,4 @@
1
+ import type { PrepareOpts } from '../schemas/prepare.js';
2
+ export declare const prepareOpts: import("commander").Option[];
3
+ export declare const prepareCmd: import("commander").Command;
4
+ export declare function main(opts: PrepareOpts): Promise<void>;
@@ -0,0 +1,120 @@
1
+ import type { GlobalOpts } from '../schemas/global.js';
2
+ import type { FetchOpts } from '../schemas/fetch.js';
3
+ import { getInfos } from './git.js';
4
+ export type EnhancedRepository = Awaited<ReturnType<typeof getInfos>>['repos'][number] & {
5
+ docpress: {
6
+ branch: string;
7
+ filtered: boolean;
8
+ includes: string[];
9
+ projectPath: string;
10
+ raw_url: string;
11
+ replace_url: string;
12
+ };
13
+ };
14
+ export declare function checkDoc(repoOwner: GlobalOpts['username'], repoName: string, branch: FetchOpts['branch']): Promise<{
15
+ rootReadmeStatus: number;
16
+ docsFolderStatus: number;
17
+ docsReadmeStatus: number;
18
+ }>;
19
+ export declare function fetchDoc({ username, branch, reposFilter, token }: FetchOpts): Promise<void>;
20
+ export declare function enhanceRepositories(repos: Awaited<ReturnType<typeof getInfos>>['repos'], branch?: FetchOpts['branch'], reposFilter?: FetchOpts['reposFilter']): Promise<EnhancedRepository[]>;
21
+ export declare function getSparseCheckout(repo: Awaited<ReturnType<typeof getInfos>>['repos'][number], branch: FetchOpts['branch']): Promise<string[]>;
22
+ export declare function generateInfos(user: Awaited<ReturnType<typeof getInfos>>['user'], repos: Awaited<ReturnType<typeof getInfos>>['repos'], branch?: FetchOpts['branch'], reposFilter?: FetchOpts['reposFilter']): Promise<{
23
+ user: {
24
+ login: string;
25
+ id: number;
26
+ node_id: string;
27
+ avatar_url: string;
28
+ gravatar_id: string | null;
29
+ url: string;
30
+ html_url: string;
31
+ followers_url: string;
32
+ following_url: string;
33
+ gists_url: string;
34
+ starred_url: string;
35
+ subscriptions_url: string;
36
+ organizations_url: string;
37
+ repos_url: string;
38
+ events_url: string;
39
+ received_events_url: string;
40
+ type: string;
41
+ site_admin: boolean;
42
+ name: string | null;
43
+ company: string | null;
44
+ blog: string | null;
45
+ location: string | null;
46
+ email: string | null;
47
+ hireable: boolean | null;
48
+ bio: string | null;
49
+ twitter_username?: string | null;
50
+ public_repos: number;
51
+ public_gists: number;
52
+ followers: number;
53
+ following: number;
54
+ created_at: string;
55
+ updated_at: string;
56
+ private_gists: number;
57
+ total_private_repos: number;
58
+ owned_private_repos: number;
59
+ disk_usage: number;
60
+ collaborators: number;
61
+ two_factor_authentication: boolean;
62
+ plan?: {
63
+ collaborators: number;
64
+ name: string;
65
+ space: number;
66
+ private_repos: number;
67
+ };
68
+ suspended_at?: string | null;
69
+ business_plus?: boolean;
70
+ ldap_dn?: string;
71
+ } | {
72
+ login: string;
73
+ id: number;
74
+ node_id: string;
75
+ avatar_url: string;
76
+ gravatar_id: string | null;
77
+ url: string;
78
+ html_url: string;
79
+ followers_url: string;
80
+ following_url: string;
81
+ gists_url: string;
82
+ starred_url: string;
83
+ subscriptions_url: string;
84
+ organizations_url: string;
85
+ repos_url: string;
86
+ events_url: string;
87
+ received_events_url: string;
88
+ type: string;
89
+ site_admin: boolean;
90
+ name: string | null;
91
+ company: string | null;
92
+ blog: string | null;
93
+ location: string | null;
94
+ email: string | null;
95
+ hireable: boolean | null;
96
+ bio: string | null;
97
+ twitter_username?: string | null;
98
+ public_repos: number;
99
+ public_gists: number;
100
+ followers: number;
101
+ following: number;
102
+ created_at: string;
103
+ updated_at: string;
104
+ plan?: {
105
+ collaborators: number;
106
+ name: string;
107
+ space: number;
108
+ private_repos: number;
109
+ };
110
+ suspended_at?: string | null;
111
+ private_gists?: number;
112
+ total_private_repos?: number;
113
+ owned_private_repos?: number;
114
+ disk_usage?: number;
115
+ collaborators?: number;
116
+ };
117
+ repos: EnhancedRepository[];
118
+ }>;
119
+ export declare function getDoc(repos?: EnhancedRepository[], reposFilter?: FetchOpts['reposFilter']): Promise<void>;
120
+ export declare function isRepoFiltered(repo: EnhancedRepository | Awaited<ReturnType<typeof getInfos>>['repos'][number], reposFilter?: FetchOpts['reposFilter']): boolean;
@@ -0,0 +1,515 @@
1
+ import type { GlobalOpts } from '../schemas/global.js';
2
+ import type { FetchOpts } from '../schemas/fetch.js';
3
+ import type { EnhancedRepository } from './fetch.js';
4
+ export declare function getInfos({ username, token, branch }: Pick<FetchOpts, 'branch'> & Pick<GlobalOpts, 'token'> & Required<Pick<GlobalOpts, 'username'>>): Promise<{
5
+ user: {
6
+ login: string;
7
+ id: number;
8
+ node_id: string;
9
+ avatar_url: string;
10
+ gravatar_id: string | null;
11
+ url: string;
12
+ html_url: string;
13
+ followers_url: string;
14
+ following_url: string;
15
+ gists_url: string;
16
+ starred_url: string;
17
+ subscriptions_url: string;
18
+ organizations_url: string;
19
+ repos_url: string;
20
+ events_url: string;
21
+ received_events_url: string;
22
+ type: string;
23
+ site_admin: boolean;
24
+ name: string | null;
25
+ company: string | null;
26
+ blog: string | null;
27
+ location: string | null;
28
+ email: string | null;
29
+ hireable: boolean | null;
30
+ bio: string | null;
31
+ twitter_username?: string | null;
32
+ public_repos: number;
33
+ public_gists: number;
34
+ followers: number;
35
+ following: number;
36
+ created_at: string;
37
+ updated_at: string;
38
+ private_gists: number;
39
+ total_private_repos: number;
40
+ owned_private_repos: number;
41
+ disk_usage: number;
42
+ collaborators: number;
43
+ two_factor_authentication: boolean;
44
+ plan?: {
45
+ collaborators: number;
46
+ name: string;
47
+ space: number;
48
+ private_repos: number;
49
+ };
50
+ suspended_at?: string | null;
51
+ business_plus?: boolean;
52
+ ldap_dn?: string;
53
+ } | {
54
+ login: string;
55
+ id: number;
56
+ node_id: string;
57
+ avatar_url: string;
58
+ gravatar_id: string | null;
59
+ url: string;
60
+ html_url: string;
61
+ followers_url: string;
62
+ following_url: string;
63
+ gists_url: string;
64
+ starred_url: string;
65
+ subscriptions_url: string;
66
+ organizations_url: string;
67
+ repos_url: string;
68
+ events_url: string;
69
+ received_events_url: string;
70
+ type: string;
71
+ site_admin: boolean;
72
+ name: string | null;
73
+ company: string | null;
74
+ blog: string | null;
75
+ location: string | null;
76
+ email: string | null;
77
+ hireable: boolean | null;
78
+ bio: string | null;
79
+ twitter_username?: string | null;
80
+ public_repos: number;
81
+ public_gists: number;
82
+ followers: number;
83
+ following: number;
84
+ created_at: string;
85
+ updated_at: string;
86
+ plan?: {
87
+ collaborators: number;
88
+ name: string;
89
+ space: number;
90
+ private_repos: number;
91
+ };
92
+ suspended_at?: string | null;
93
+ private_gists?: number;
94
+ total_private_repos?: number;
95
+ owned_private_repos?: number;
96
+ disk_usage?: number;
97
+ collaborators?: number;
98
+ };
99
+ repos: {
100
+ id: number;
101
+ node_id: string;
102
+ name: string;
103
+ full_name: string;
104
+ owner: {
105
+ name?: string | null;
106
+ email?: string | null;
107
+ login: string;
108
+ id: number;
109
+ node_id: string;
110
+ avatar_url: string;
111
+ gravatar_id: string | null;
112
+ url: string;
113
+ html_url: string;
114
+ followers_url: string;
115
+ following_url: string;
116
+ gists_url: string;
117
+ starred_url: string;
118
+ subscriptions_url: string;
119
+ organizations_url: string;
120
+ repos_url: string;
121
+ events_url: string;
122
+ received_events_url: string;
123
+ type: string;
124
+ site_admin: boolean;
125
+ starred_at?: string;
126
+ };
127
+ private: boolean;
128
+ html_url: string;
129
+ description: string | null;
130
+ fork: boolean;
131
+ url: string;
132
+ archive_url: string;
133
+ assignees_url: string;
134
+ blobs_url: string;
135
+ branches_url: string;
136
+ collaborators_url: string;
137
+ comments_url: string;
138
+ commits_url: string;
139
+ compare_url: string;
140
+ contents_url: string;
141
+ contributors_url: string;
142
+ deployments_url: string;
143
+ downloads_url: string;
144
+ events_url: string;
145
+ forks_url: string;
146
+ git_commits_url: string;
147
+ git_refs_url: string;
148
+ git_tags_url: string;
149
+ git_url?: string;
150
+ issue_comment_url: string;
151
+ issue_events_url: string;
152
+ issues_url: string;
153
+ keys_url: string;
154
+ labels_url: string;
155
+ languages_url: string;
156
+ merges_url: string;
157
+ milestones_url: string;
158
+ notifications_url: string;
159
+ pulls_url: string;
160
+ releases_url: string;
161
+ ssh_url?: string;
162
+ stargazers_url: string;
163
+ statuses_url: string;
164
+ subscribers_url: string;
165
+ subscription_url: string;
166
+ tags_url: string;
167
+ teams_url: string;
168
+ trees_url: string;
169
+ clone_url?: string;
170
+ mirror_url?: string | null;
171
+ hooks_url: string;
172
+ svn_url?: string;
173
+ homepage?: string | null;
174
+ language?: string | null;
175
+ forks_count?: number;
176
+ stargazers_count?: number;
177
+ watchers_count?: number;
178
+ size?: number;
179
+ default_branch?: string;
180
+ open_issues_count?: number;
181
+ is_template?: boolean;
182
+ topics?: string[];
183
+ has_issues?: boolean;
184
+ has_projects?: boolean;
185
+ has_wiki?: boolean;
186
+ has_pages?: boolean;
187
+ has_downloads?: boolean;
188
+ has_discussions?: boolean;
189
+ archived?: boolean;
190
+ disabled?: boolean;
191
+ visibility?: string;
192
+ pushed_at?: string | null;
193
+ created_at?: string | null;
194
+ updated_at?: string | null;
195
+ permissions?: {
196
+ admin?: boolean;
197
+ maintain?: boolean;
198
+ push?: boolean;
199
+ triage?: boolean;
200
+ pull?: boolean;
201
+ };
202
+ role_name?: string;
203
+ temp_clone_token?: string;
204
+ delete_branch_on_merge?: boolean;
205
+ subscribers_count?: number;
206
+ network_count?: number;
207
+ code_of_conduct?: {
208
+ key: string;
209
+ name: string;
210
+ url: string;
211
+ body?: string;
212
+ html_url: string | null;
213
+ };
214
+ license?: {
215
+ key?: string;
216
+ name?: string;
217
+ spdx_id?: string;
218
+ url?: string;
219
+ node_id?: string;
220
+ } | null;
221
+ forks?: number;
222
+ open_issues?: number;
223
+ watchers?: number;
224
+ allow_forking?: boolean;
225
+ web_commit_signoff_required?: boolean;
226
+ security_and_analysis?: {
227
+ advanced_security?: {
228
+ status?: "enabled" | "disabled";
229
+ };
230
+ dependabot_security_updates?: {
231
+ status?: "enabled" | "disabled";
232
+ };
233
+ secret_scanning?: {
234
+ status?: "enabled" | "disabled";
235
+ };
236
+ secret_scanning_push_protection?: {
237
+ status?: "enabled" | "disabled";
238
+ };
239
+ } | null;
240
+ }[];
241
+ branch: string | undefined;
242
+ }>;
243
+ export declare function getContributors({ repository, token, }: {
244
+ repository: EnhancedRepository;
245
+ token: GlobalOpts['token'];
246
+ }): Promise<{
247
+ source: {
248
+ id: number;
249
+ node_id: string;
250
+ name: string;
251
+ full_name: string;
252
+ license: {
253
+ key: string;
254
+ name: string;
255
+ url: string | null;
256
+ spdx_id: string | null;
257
+ node_id: string;
258
+ html_url?: string;
259
+ } | null;
260
+ forks: number;
261
+ permissions?: {
262
+ admin: boolean;
263
+ pull: boolean;
264
+ triage?: boolean;
265
+ push: boolean;
266
+ maintain?: boolean;
267
+ };
268
+ owner: {
269
+ name?: string | null;
270
+ email?: string | null;
271
+ login: string;
272
+ id: number;
273
+ node_id: string;
274
+ avatar_url: string;
275
+ gravatar_id: string | null;
276
+ url: string;
277
+ html_url: string;
278
+ followers_url: string;
279
+ following_url: string;
280
+ gists_url: string;
281
+ starred_url: string;
282
+ subscriptions_url: string;
283
+ organizations_url: string;
284
+ repos_url: string;
285
+ events_url: string;
286
+ received_events_url: string;
287
+ type: string;
288
+ site_admin: boolean;
289
+ starred_at?: string;
290
+ };
291
+ private: boolean;
292
+ html_url: string;
293
+ description: string | null;
294
+ fork: boolean;
295
+ url: string;
296
+ archive_url: string;
297
+ assignees_url: string;
298
+ blobs_url: string;
299
+ branches_url: string;
300
+ collaborators_url: string;
301
+ comments_url: string;
302
+ commits_url: string;
303
+ compare_url: string;
304
+ contents_url: string;
305
+ contributors_url: string;
306
+ deployments_url: string;
307
+ downloads_url: string;
308
+ events_url: string;
309
+ forks_url: string;
310
+ git_commits_url: string;
311
+ git_refs_url: string;
312
+ git_tags_url: string;
313
+ git_url: string;
314
+ issue_comment_url: string;
315
+ issue_events_url: string;
316
+ issues_url: string;
317
+ keys_url: string;
318
+ labels_url: string;
319
+ languages_url: string;
320
+ merges_url: string;
321
+ milestones_url: string;
322
+ notifications_url: string;
323
+ pulls_url: string;
324
+ releases_url: string;
325
+ ssh_url: string;
326
+ stargazers_url: string;
327
+ statuses_url: string;
328
+ subscribers_url: string;
329
+ subscription_url: string;
330
+ tags_url: string;
331
+ teams_url: string;
332
+ trees_url: string;
333
+ clone_url: string;
334
+ mirror_url: string | null;
335
+ hooks_url: string;
336
+ svn_url: string;
337
+ homepage: string | null;
338
+ language: string | null;
339
+ forks_count: number;
340
+ stargazers_count: number;
341
+ watchers_count: number;
342
+ size: number;
343
+ default_branch: string;
344
+ open_issues_count: number;
345
+ is_template?: boolean;
346
+ topics?: string[];
347
+ has_issues: boolean;
348
+ has_projects: boolean;
349
+ has_wiki: boolean;
350
+ has_pages: boolean;
351
+ has_downloads: boolean;
352
+ has_discussions?: boolean;
353
+ archived: boolean;
354
+ disabled: boolean;
355
+ visibility?: string;
356
+ pushed_at: string | null;
357
+ created_at: string | null;
358
+ updated_at: string | null;
359
+ allow_rebase_merge?: boolean;
360
+ temp_clone_token?: string;
361
+ allow_squash_merge?: boolean;
362
+ allow_auto_merge?: boolean;
363
+ delete_branch_on_merge?: boolean;
364
+ allow_update_branch?: boolean;
365
+ use_squash_pr_title_as_default?: boolean;
366
+ squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE";
367
+ squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK";
368
+ merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE";
369
+ merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK";
370
+ allow_merge_commit?: boolean;
371
+ allow_forking?: boolean;
372
+ web_commit_signoff_required?: boolean;
373
+ open_issues: number;
374
+ watchers: number;
375
+ master_branch?: string;
376
+ starred_at?: string;
377
+ anonymous_access_enabled?: boolean;
378
+ } | undefined;
379
+ contributors: never[];
380
+ } | {
381
+ source: {
382
+ id: number;
383
+ node_id: string;
384
+ name: string;
385
+ full_name: string;
386
+ license: {
387
+ key: string;
388
+ name: string;
389
+ url: string | null;
390
+ spdx_id: string | null;
391
+ node_id: string;
392
+ html_url?: string;
393
+ } | null;
394
+ forks: number;
395
+ permissions?: {
396
+ admin: boolean;
397
+ pull: boolean;
398
+ triage?: boolean;
399
+ push: boolean;
400
+ maintain?: boolean;
401
+ };
402
+ owner: {
403
+ name?: string | null;
404
+ email?: string | null;
405
+ login: string;
406
+ id: number;
407
+ node_id: string;
408
+ avatar_url: string;
409
+ gravatar_id: string | null;
410
+ url: string;
411
+ html_url: string;
412
+ followers_url: string;
413
+ following_url: string;
414
+ gists_url: string;
415
+ starred_url: string;
416
+ subscriptions_url: string;
417
+ organizations_url: string;
418
+ repos_url: string;
419
+ events_url: string;
420
+ received_events_url: string;
421
+ type: string;
422
+ site_admin: boolean;
423
+ starred_at?: string;
424
+ };
425
+ private: boolean;
426
+ html_url: string;
427
+ description: string | null;
428
+ fork: boolean;
429
+ url: string;
430
+ archive_url: string;
431
+ assignees_url: string;
432
+ blobs_url: string;
433
+ branches_url: string;
434
+ collaborators_url: string;
435
+ comments_url: string;
436
+ commits_url: string;
437
+ compare_url: string;
438
+ contents_url: string;
439
+ contributors_url: string;
440
+ deployments_url: string;
441
+ downloads_url: string;
442
+ events_url: string;
443
+ forks_url: string;
444
+ git_commits_url: string;
445
+ git_refs_url: string;
446
+ git_tags_url: string;
447
+ git_url: string;
448
+ issue_comment_url: string;
449
+ issue_events_url: string;
450
+ issues_url: string;
451
+ keys_url: string;
452
+ labels_url: string;
453
+ languages_url: string;
454
+ merges_url: string;
455
+ milestones_url: string;
456
+ notifications_url: string;
457
+ pulls_url: string;
458
+ releases_url: string;
459
+ ssh_url: string;
460
+ stargazers_url: string;
461
+ statuses_url: string;
462
+ subscribers_url: string;
463
+ subscription_url: string;
464
+ tags_url: string;
465
+ teams_url: string;
466
+ trees_url: string;
467
+ clone_url: string;
468
+ mirror_url: string | null;
469
+ hooks_url: string;
470
+ svn_url: string;
471
+ homepage: string | null;
472
+ language: string | null;
473
+ forks_count: number;
474
+ stargazers_count: number;
475
+ watchers_count: number;
476
+ size: number;
477
+ default_branch: string;
478
+ open_issues_count: number;
479
+ is_template?: boolean;
480
+ topics?: string[];
481
+ has_issues: boolean;
482
+ has_projects: boolean;
483
+ has_wiki: boolean;
484
+ has_pages: boolean;
485
+ has_downloads: boolean;
486
+ has_discussions?: boolean;
487
+ archived: boolean;
488
+ disabled: boolean;
489
+ visibility?: string;
490
+ pushed_at: string | null;
491
+ created_at: string | null;
492
+ updated_at: string | null;
493
+ allow_rebase_merge?: boolean;
494
+ temp_clone_token?: string;
495
+ allow_squash_merge?: boolean;
496
+ allow_auto_merge?: boolean;
497
+ delete_branch_on_merge?: boolean;
498
+ allow_update_branch?: boolean;
499
+ use_squash_pr_title_as_default?: boolean;
500
+ squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE";
501
+ squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK";
502
+ merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE";
503
+ merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK";
504
+ allow_merge_commit?: boolean;
505
+ allow_forking?: boolean;
506
+ web_commit_signoff_required?: boolean;
507
+ open_issues: number;
508
+ watchers: number;
509
+ master_branch?: string;
510
+ starred_at?: string;
511
+ anonymous_access_enabled?: boolean;
512
+ };
513
+ contributors: any[];
514
+ }>;
515
+ export declare function cloneRepo(name: string, url: string, projectDir: string, branch: string, includes: string[]): Promise<void>;
@@ -0,0 +1,62 @@
1
+ import type { defineConfig } from 'vitepress';
2
+ import type { GlobalOpts } from '../schemas/global.js';
3
+ import type { getUserInfos } from '../utils/functions.js';
4
+ import type { EnhancedRepository } from './fetch.js';
5
+ import type { getInfos } from './git.js';
6
+ export interface Page {
7
+ text: string;
8
+ link: string;
9
+ }
10
+ export interface SidebarProject {
11
+ text: string;
12
+ collapsed: boolean;
13
+ items: Page[];
14
+ }
15
+ export interface Feature {
16
+ title: string;
17
+ details: string;
18
+ link: string;
19
+ }
20
+ export interface Index {
21
+ layout: string;
22
+ hero: {
23
+ name: string;
24
+ tagline: string;
25
+ };
26
+ features: Feature[];
27
+ }
28
+ export declare function generateIndex(features: Feature[], user: ReturnType<typeof getUserInfos>): {
29
+ layout: string;
30
+ hero: {
31
+ name: string;
32
+ tagline: string;
33
+ };
34
+ features: Feature[];
35
+ };
36
+ export declare function generateFeatures(repoName: string, description: string, features?: Feature[]): Feature[];
37
+ export declare function generateSidebarProject(repoName: string, sidebarPages: Page[]): {
38
+ text: string;
39
+ collapsed: boolean;
40
+ items: Page[];
41
+ };
42
+ export declare function generateSidebarPages(repoName: string, fileName: string, sidebarPages?: Page[]): Page[];
43
+ export declare function transformDoc(repositories: EnhancedRepository[], user: ReturnType<typeof getUserInfos>): {
44
+ sidebar: SidebarProject[];
45
+ index: {
46
+ layout: string;
47
+ hero: {
48
+ name: string;
49
+ tagline: string;
50
+ };
51
+ features: Feature[];
52
+ };
53
+ };
54
+ export declare function addExtraPages(paths: string[]): Page[];
55
+ export declare function addContent(paths: string | string[], dir: string, fn?: () => void): void;
56
+ export declare function addForkPage(forks: {
57
+ repository: Awaited<ReturnType<typeof getInfos>>['repos'][number];
58
+ contributions: number;
59
+ }[]): void;
60
+ export declare function processForks(repositories: EnhancedRepository[], username: GlobalOpts['username'], token?: GlobalOpts['token']): Promise<void>;
61
+ export declare function parseVitepressConfig(path: string): any;
62
+ export declare function generateVitepressFiles(vitepressConfig: Partial<ReturnType<typeof defineConfig>>, index: Index): void;