git0 0.2.5 → 0.2.7

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 (75) hide show
  1. package/bun.lock +159 -0
  2. package/docs/404.html +2 -3
  3. package/docs/Footer/index.html +2 -3
  4. package/docs/assets/js/1df93b7f.d8c05d2c.js +2 -0
  5. package/docs/assets/js/22dd74f7.237398b4.js +1 -0
  6. package/docs/assets/js/28ab763d.5714aa16.js +1 -0
  7. package/docs/assets/js/299d276b.1a1baa1c.js +1 -0
  8. package/docs/assets/js/68cef36b.c312447e.js +1 -0
  9. package/docs/assets/js/c3a618e1.965a31da.js +1 -0
  10. package/docs/assets/js/{main.c71c09a5.js → main.cf858a7d.js} +2 -2
  11. package/docs/assets/js/runtime~main.7520dc36.js +1 -0
  12. package/docs/functions/git0/index.html +48 -0
  13. package/docs/functions/github-api/index.html +149 -0
  14. package/docs/functions/index.html +4 -5
  15. package/docs/functions/modules/index.html +30 -0
  16. package/docs/index.html +3 -4
  17. package/docs/lunr-index-1749613752315.json +1 -0
  18. package/docs/lunr-index.json +1 -1
  19. package/docs/search-doc-1749613752315.json +1 -0
  20. package/docs/search-doc.json +1 -1
  21. package/docs/sitemap.xml +1 -1
  22. package/docs-config/.docusaurus/DONT-EDIT-THIS-FOLDER +5 -0
  23. package/docs-config/.docusaurus/client-manifest.json +259 -0
  24. package/docs-config/.docusaurus/client-modules.js +8 -0
  25. package/docs-config/.docusaurus/codeTranslations.json +1 -0
  26. package/docs-config/.docusaurus/docusaurus-lunr-search/default/__plugin.json +4 -0
  27. package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/__mdx-loader-dependency.json +1 -0
  28. package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/__plugin.json +4 -0
  29. package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/p/docs-175.json +1 -0
  30. package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/p/index-466.json +1 -0
  31. package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/site-src-functions-git-0-1-md-d3e.json +19 -0
  32. package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/site-src-functions-git-0-md-299.json +19 -0
  33. package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/site-src-functions-github-api-md-28a.json +23 -0
  34. package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/site-src-functions-globals-md-4a8.json +19 -0
  35. package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/site-src-functions-index-md-c3a.json +23 -0
  36. package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/site-src-functions-modules-md-68c.json +19 -0
  37. package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/site-src-index-md-d14.json +21 -0
  38. package/docs-config/.docusaurus/docusaurus-plugin-content-pages/default/__plugin.json +4 -0
  39. package/docs-config/.docusaurus/docusaurus-plugin-google-gtag/default/__plugin.json +4 -0
  40. package/docs-config/.docusaurus/docusaurus.config.mjs +378 -0
  41. package/docs-config/.docusaurus/globalData.json +65 -0
  42. package/docs-config/.docusaurus/i18n.json +17 -0
  43. package/docs-config/.docusaurus/lunr.client.js +5 -0
  44. package/docs-config/.docusaurus/registry.js +15 -0
  45. package/docs-config/.docusaurus/routes.js +61 -0
  46. package/docs-config/.docusaurus/routesChunkNames.json +45 -0
  47. package/docs-config/.docusaurus/site-metadata.json +51 -0
  48. package/docs-config/.docusaurus/site-storage.json +4 -0
  49. package/docs-config/bun.lock +6139 -0
  50. package/docs-config/config/customize-docs.js +4 -2
  51. package/docs-config/docusaurus.config.ts +0 -9
  52. package/docs-config/src/functions/git0.md +101 -0
  53. package/docs-config/src/functions/github-api.md +744 -0
  54. package/docs-config/src/functions/modules.md +4 -0
  55. package/docs-config/src/functions/typedoc-sidebar.cjs +12 -1
  56. package/docs-config/src/pages/index.tsx +289 -279
  57. package/docs-config/tsconfig.json +1 -1
  58. package/package.json +10 -7
  59. package/src/git0.js +380 -0
  60. package/src/github-api.js +473 -0
  61. package/docs/assets/js/1df93b7f.dfdf0ef3.js +0 -2
  62. package/docs/assets/js/22dd74f7.5e857962.js +0 -1
  63. package/docs/assets/js/4a829dc8.728a4445.js +0 -1
  64. package/docs/assets/js/c3a618e1.50a89e4d.js +0 -1
  65. package/docs/assets/js/d140250a.62af53aa.js +0 -1
  66. package/docs/assets/js/runtime~main.ef55418f.js +0 -1
  67. package/docs/functions/globals/index.html +0 -57
  68. package/docs/lunr-index-1749601667754.json +0 -1
  69. package/docs/search-doc-1749601667754.json +0 -1
  70. package/docs-config/src/functions/globals.md +0 -153
  71. package/docs-config/src/index.md +0 -127
  72. package/docs-config/tailwind.config.js +0 -13
  73. package/git0.js +0 -646
  74. /package/docs/assets/js/{1df93b7f.dfdf0ef3.js.LICENSE.txt → 1df93b7f.d8c05d2c.js.LICENSE.txt} +0 -0
  75. /package/docs/assets/js/{main.c71c09a5.js.LICENSE.txt → main.cf858a7d.js.LICENSE.txt} +0 -0
@@ -0,0 +1,473 @@
1
+ import grab from 'grab-api.js';
2
+ import chalk from 'chalk';
3
+ import gitUrlParse from 'git-url-parse';
4
+ import os from 'os';
5
+ import fs from 'fs';
6
+ import * as tar from 'tar';
7
+ import path from 'path';
8
+
9
+ /**
10
+ * GitHub API client for downloading repositories, searching, and managing releases
11
+ * @class GithubAPI
12
+ * @example
13
+ * const github = new GithubAPI();
14
+ * const repos = await github.searchRepositories('nodejs');
15
+ * await github.downloadRepo('user/repo', './my-downloads');
16
+ */
17
+ class GithubAPI {
18
+ /** @constant {number} Number of results to return per page for repository searches */
19
+ static DEFAULT_RESULTS_PER_PAGE = 10;
20
+
21
+ /**
22
+ * Creates a new GithubAPI instance
23
+ * @param {Object} [options={}] - Configuration options
24
+ * @param {string} [options.token] - GitHub personal access token (defaults to GITHUB_TOKEN env var)
25
+ * @param {boolean} [options.debug=false] - Enable debug logging
26
+ * @param {string} [options.baseURL='https://api.github.com'] - GitHub API base URL
27
+ * @example
28
+ * // Use default settings with environment token
29
+ *
30
+ * // Use custom token
31
+ * const github = new GithubAPI({ token: 'ghp_xxxxxxxxxxxx' });
32
+ *
33
+ * // Enable debug mode
34
+ * const github = new GithubAPI({ debug: true });
35
+ */
36
+ constructor(options = {}) {
37
+ this.token = options.token || process.env.GITHUB_TOKEN;
38
+ this.debug = options.debug || false;
39
+ this.baseURL = options.baseURL || 'https://api.github.com';
40
+
41
+ this.client = grab.instance({
42
+ debug: this.debug,
43
+ baseURL: this.baseURL,
44
+ headers: this.token ? { Authorization: `token ${this.token}` } : {},
45
+ onError: (error) => {
46
+ if (error.includes('403')) {
47
+ const githubHelpUrl = 'https://github.com/settings/personal-access-tokens/new';
48
+ console.log(chalk.red('Rate limit exceeded. Please set env var GITHUB_TOKEN. Help:\n' + githubHelpUrl));
49
+ process.exit(1);
50
+ }
51
+ }
52
+ });
53
+ }
54
+
55
+ /**
56
+ * Downloads a GitHub repository as a tarball and extracts it to a local directory
57
+ * @param {string} repo - Repository URL or owner/name format
58
+ * @param {string|null} [targetDir=null] - Target directory name (defaults to repo name)
59
+ * @returns {Promise<string>} Path to the extracted repository directory
60
+ * @throws {Error} When repository download fails
61
+ * @example
62
+ *
63
+ * // Download repository to current directory
64
+ * const repoPath = await github.downloadRepo('https://github.com/user/repo');
65
+ *
66
+ * // Download to specific directory
67
+ * const repoPath = await github.downloadRepo('user/repo', 'my-custom-dir');
68
+ */
69
+ async downloadRepo(repo, targetDir = null) {
70
+ const parsed = gitUrlParse(repo);
71
+ const defaultDir = path.resolve(process.cwd(), targetDir?.length ? targetDir : parsed.name);
72
+ const extractPath = this._getAvailableDirectoryName(defaultDir);
73
+
74
+ // if it picks up a larger owner name, slice to the last part
75
+ if (parsed.owner.includes('/')) {
76
+ parsed.owner = parsed.owner.split('/').slice(-1).join('');
77
+ }
78
+
79
+ fs.mkdirSync(extractPath, { recursive: true });
80
+
81
+ let url = `/repos/${parsed.owner}/${parsed.name}/tarball/${parsed.default_branch || 'master'}`;
82
+
83
+ console.log(chalk.blue(`📦 Downloading ${parsed.name} into ${path.basename(extractPath)}...`));
84
+
85
+ const params = {
86
+ onStream: async (res) => {
87
+ const nodeStream = (await import('stream'))?.Readable.fromWeb(res);
88
+ await new Promise((resolve, reject) => {
89
+ nodeStream.pipe(tar.x({
90
+ C: extractPath,
91
+ strip: 1
92
+ })).on('finish', resolve).on('error', reject);
93
+ });
94
+ }
95
+ };
96
+
97
+ let response = await this.client(url, params);
98
+
99
+ if (response.error) {
100
+ response = await this.client(url.replace("/master", "/main"), params);
101
+ }
102
+
103
+ return extractPath;
104
+ }
105
+
106
+ /**
107
+ * Searches for GitHub repositories by name and enriches results with release information
108
+ * @param {string} query - Search query for repository names
109
+ * @param {Object} [options={}] - Search options
110
+ *
111
+ * @param {number} [options.perPage] - Number of results per page (defaults to DEFAULT_RESULTS_PER_PAGE)
112
+ * @param {string} [options.sort='stars'] - Sort field (stars, forks, updated)
113
+ * @param {string} [options.order='desc'] - Sort order (asc, desc)
114
+ * @returns {Promise<Array<Object>>} Array of repository objects with release information
115
+ * @throws {Error} When search fails
116
+ * @example
117
+ *
118
+ * const repos = await github.searchRepositories('nodejs');
119
+ * repos.forEach(repo => {
120
+ * console.log(`${repo.name}: ${repo.hasReleases ? 'Has releases' : 'No releases'}`);
121
+ * });
122
+ *
123
+ * // Custom search options
124
+ * const repos = await github.searchRepositories('react', {
125
+ * perPage: 5,
126
+ * sort: 'updated',
127
+ * order: 'desc'
128
+ * });
129
+ */
130
+ async searchRepositories(query, options = {}) {
131
+ try {
132
+ const {
133
+ perPage = GithubAPI.DEFAULT_RESULTS_PER_PAGE,
134
+ sort = 'stars',
135
+ order = 'desc',
136
+ getReleaseInfo = true
137
+ } = options;
138
+
139
+ const response = await this.client('/search/repositories', {
140
+ q: `${query} in:name`,
141
+ sort,
142
+ order,
143
+ per_page: perPage,
144
+ });
145
+
146
+ if (response.error || !response.items) {
147
+ console.log("No response");
148
+ return [];
149
+ }
150
+
151
+ return !getReleaseInfo ? response :
152
+ // Check for releases for each repository
153
+ await Promise.all(
154
+ response.items.map(async (repo) => {
155
+ const releases = await this.client(`/repos/${repo.owner.login}/${repo.name}/releases`);
156
+
157
+ const currentPlatform = this.getCurrentPlatform();
158
+ const compatibleReleases = this._filterReleasesByPlatform(releases, currentPlatform);
159
+ const categorizedReleases = this._categorizeReleasesByPlatform(releases);
160
+
161
+ return {
162
+ ...repo,
163
+ hasReleases: releases?.length > 0,
164
+ hasCompatibleReleases: compatibleReleases.length > 0,
165
+ releases: compatibleReleases,
166
+ allReleases: categorizedReleases
167
+ };
168
+ })
169
+ );
170
+
171
+ } catch (error) {
172
+ console.error(chalk.red('Search failed:'), error.message);
173
+ throw error;
174
+ }
175
+ }
176
+
177
+ /**
178
+ * Downloads a release asset from GitHub and provides installation instructions
179
+ * @param {Object} packageURL - Download URL for the asset
180
+ * @param {string} downloadPath - Directory to download the asset to
181
+ * @returns {Promise<string>} Path to the downloaded file
182
+ * @throws {Error} When download fails
183
+ * @example
184
+ *
185
+ * const asset = 'https://github.com/user/repo/releases/download/v1.0.0/myapp-v1.0.0-linux-x64'
186
+ * const downloadPath = await github.downloadPackage(asset, './downloads/myapp');
187
+ */
188
+ async downloadPackage(packageURL, downloadPath) {
189
+ const fileName = downloadPath.split('/').slice(-1)?.[0];
190
+
191
+ console.log(chalk.blue(`📦 Downloading ${fileName}...`));
192
+
193
+ try {
194
+ await this.client(packageURL, {
195
+ onStream: async (res) => {
196
+ const nodeStream = (await import('stream'))?.Readable.fromWeb(res);
197
+ await new Promise((resolve, reject) => {
198
+ nodeStream.pipe(fs.createWriteStream(downloadPath)).on('finish', resolve).on('error', reject);
199
+ });
200
+ }
201
+ });
202
+
203
+ console.log(chalk.green(`✅ Downloaded ${fileName} to ${downloadPath}`));
204
+
205
+ // Try to make executable if it's a binary
206
+ if (process.platform !== 'win32' && !fileName.includes('.')) {
207
+ try {
208
+ fs.chmodSync(downloadPath, '755');
209
+ console.log(chalk.green(`✅ Made ${fileName} executable`));
210
+ } catch (error) {
211
+ console.log(chalk.yellow(`⚠️ Could not make ${fileName} executable`));
212
+ }
213
+ }
214
+
215
+ // Provide installation instructions
216
+ this._provideInstallationInstructions(downloadPath, asset);
217
+
218
+ return downloadPath;
219
+ } catch (error) {
220
+ console.error(chalk.red(`❌ Failed to download ${fileName}:`), error.message);
221
+ throw error;
222
+ }
223
+ }
224
+
225
+ /**
226
+ * Parses a GitHub URL or shorthand repository reference
227
+ * @param {string} query - GitHub URL or owner/repo format
228
+ * @returns {Object|false} Parsed git URL object or false if invalid
229
+ * @example
230
+ *
231
+ * // Parse full URL
232
+ * const parsed = github.parseURL('https://github.com/user/repo');
233
+ *
234
+ * // Parse shorthand
235
+ * const parsed = github.parseURL('user/repo');
236
+ *
237
+ * if (parsed) {
238
+ * console.log(`Owner: ${parsed.owner}, Name: ${parsed.name}`);
239
+ * }
240
+ */
241
+ parseURL(query) {
242
+ if (query.includes('github.com') || query.startsWith('git@github.com:') ||
243
+ query.startsWith('https://') || query.startsWith('git://')) {
244
+ return gitUrlParse(query);
245
+ } else if (/^[\w-]+\/[\w.-]+$/.test(query)) {
246
+ return gitUrlParse(`https://github.com/${query}`);
247
+ }
248
+ return false;
249
+ }
250
+
251
+ /**
252
+ * Detects the current operating system and architecture
253
+ * @returns {Object} Platform information object
254
+ * @returns {string} returns.os - Normalized OS name (windows, macos, linux)
255
+ * @returns {string} returns.arch - Normalized architecture (x86_64, arm64, arm, i386)
256
+ * @returns {string} returns.platform - Raw Node.js platform string
257
+ * @returns {string} returns.architecture - Raw Node.js architecture string
258
+ * @example
259
+ * const platform = github.getCurrentPlatform();
260
+ * console.log(`Running on ${platform.os} ${platform.arch}`);
261
+ */
262
+ getCurrentPlatform() {
263
+ const platform = os.platform();
264
+ const arch = os.arch();
265
+
266
+ const platformMap = {
267
+ 'win32': 'windows',
268
+ 'darwin': 'macos',
269
+ 'linux': 'linux'
270
+ };
271
+
272
+ const archMap = {
273
+ 'x64': 'x86_64',
274
+ 'arm64': 'arm64',
275
+ 'arm': 'arm',
276
+ 'ia32': 'i386'
277
+ };
278
+
279
+ return {
280
+ os: platformMap[platform] || platform,
281
+ arch: archMap[arch] || arch,
282
+ platform,
283
+ architecture: arch
284
+ };
285
+ }
286
+
287
+ /**
288
+ * Gets repository releases with platform categorization
289
+ * @param {string} owner - Repository owner
290
+ * @param {string} repo - Repository name
291
+ * @returns {Promise<Array<Object>>} Array of categorized releases
292
+ * @example
293
+ * const releases = await github.getReleases('microsoft', 'vscode');
294
+ * console.log(`Found ${releases.length} releases`);
295
+ */
296
+ async getReleases(owner, repo) {
297
+ const releases = await this.client(`/repos/${owner}/${repo}/releases`);
298
+ return this._categorizeReleasesByPlatform(releases);
299
+ }
300
+
301
+ /**
302
+ * Gets releases compatible with the current platform
303
+ * @param {string} owner - Repository owner
304
+ * @param {string} repo - Repository name
305
+ * @returns {Promise<Array<Object>>} Array of compatible releases
306
+ * @example
307
+ * const compatible = await github.getCompatibleReleases('user', 'repo');
308
+ * console.log(`Found ${compatible.length} compatible releases`);
309
+ */
310
+ async getCompatibleReleases(owner, repo) {
311
+ const releases = await this.client(`/repos/${owner}/${repo}/releases`);
312
+ const currentPlatform = this.getCurrentPlatform();
313
+ return this._filterReleasesByPlatform(releases, currentPlatform);
314
+ }
315
+
316
+ /**
317
+ * Generates an available directory name by appending a counter if the base path exists
318
+ * @private
319
+ * @param {string} basePath - The desired base directory path
320
+ * @returns {string} An available directory path
321
+ */
322
+ _getAvailableDirectoryName(basePath) {
323
+ if (!fs.existsSync(basePath)) return basePath;
324
+ let counter = 2;
325
+ let newPath;
326
+ while (true) {
327
+ newPath = `${basePath}-${counter}`;
328
+ if (!fs.existsSync(newPath)) return newPath;
329
+ counter++;
330
+ }
331
+ }
332
+
333
+ /**
334
+ * Categorizes GitHub releases by platform and architecture based on asset names
335
+ * @private
336
+ * @param {Array<Object>} releases - Array of GitHub release objects
337
+ * @returns {Array<Object>} Releases with platformAssets property containing categorized assets
338
+ */
339
+ _categorizeReleasesByPlatform(releases) {
340
+ const platformKeywords = {
341
+ windows: ['win', 'windows', 'win32', 'win64', '.exe', '.msi'],
342
+ macos: ['mac', 'macos', 'darwin', 'osx', '.dmg', '.pkg'],
343
+ linux: ['linux', 'ubuntu', 'debian', '.deb', '.rpm', '.tar.gz', '.AppImage']
344
+ };
345
+
346
+ const archKeywords = {
347
+ x86_64: ['x86_64', 'x64', 'amd64', '64'],
348
+ arm64: ['arm64', 'aarch64'],
349
+ arm: ['arm', 'armv7'],
350
+ i386: ['i386', 'x86', '32']
351
+ };
352
+
353
+ const categorizedReleases = [];
354
+
355
+ Object.entries(releases).forEach(([key, release]) => {
356
+ const platformAssets = {
357
+ windows: [],
358
+ macos: [],
359
+ linux: [],
360
+ universal: []
361
+ };
362
+
363
+ release?.assets?.forEach(asset => {
364
+ const name = asset.name.toLowerCase();
365
+ let categorized = false;
366
+
367
+ // Check each platform
368
+ Object.entries(platformKeywords).forEach(([platform, keywords]) => {
369
+ if (keywords.some(keyword => name.includes(keyword.toLowerCase()))) {
370
+ // Determine architecture
371
+ let detectedArch = 'unknown';
372
+ Object.entries(archKeywords).forEach(([arch, archKeys]) => {
373
+ if (archKeys.some(archKey => name.includes(archKey.toLowerCase()))) {
374
+ detectedArch = arch;
375
+ }
376
+ });
377
+
378
+ platformAssets[platform].push({
379
+ ...asset,
380
+ detectedArch,
381
+ platform
382
+ });
383
+ categorized = true;
384
+ }
385
+ });
386
+
387
+ // If not categorized, check for universal binaries
388
+ if (!categorized && (name.includes('universal') || name.includes('all') ||
389
+ (!name.includes('win') && !name.includes('mac') && !name.includes('linux')))) {
390
+ platformAssets.universal.push({
391
+ ...asset,
392
+ detectedArch: 'universal',
393
+ platform: 'universal'
394
+ });
395
+ }
396
+ });
397
+
398
+ // Only include releases that have assets
399
+ const hasAssets = Object.values(platformAssets).some(assets => assets.length > 0);
400
+ if (hasAssets) {
401
+ categorizedReleases.push({
402
+ ...release,
403
+ platformAssets
404
+ });
405
+ }
406
+ });
407
+
408
+ return categorizedReleases;
409
+ }
410
+
411
+ /**
412
+ * Filters releases to only include those compatible with the specified platform
413
+ * @private
414
+ * @param {Array<Object>} releases - Array of GitHub release objects
415
+ * @param {Object} currentPlatform - Platform information from getCurrentPlatform()
416
+ * @returns {Array<Object>} Filtered array of compatible releases
417
+ */
418
+ _filterReleasesByPlatform(releases, currentPlatform) {
419
+ const categorized = this._categorizeReleasesByPlatform(releases);
420
+ return categorized.filter(release =>
421
+ release.platformAssets[currentPlatform.os].length > 0 ||
422
+ release.platformAssets.universal.length > 0
423
+ );
424
+ }
425
+
426
+ /**
427
+ * Provides platform-specific installation instructions for a downloaded asset
428
+ * @private
429
+ * @param {string} filePath - Path to the downloaded file
430
+ * @param {Object} asset - GitHub release asset object
431
+ * @param {string} asset.name - Name of the asset file
432
+ */
433
+ _provideInstallationInstructions(filePath, asset) {
434
+ const fileName = asset.name;
435
+ const platform = this.getCurrentPlatform();
436
+
437
+ if (platform.platform === 'win32') {
438
+ if (fileName.endsWith('.exe')) {
439
+ console.log(chalk.white(' Run the executable:'));
440
+ console.log(chalk.gray(` ${filePath}`));
441
+ } else if (fileName.endsWith('.msi')) {
442
+ console.log(chalk.white(' Install the MSI package:'));
443
+ console.log(chalk.gray(` msiexec /i "${filePath}"`));
444
+ }
445
+ } else if (platform.platform === 'darwin') {
446
+ if (fileName.endsWith('.dmg')) {
447
+ console.log(chalk.white(' Mount and install the DMG:'));
448
+ console.log(chalk.gray(` open "${filePath}"`));
449
+ } else if (fileName.endsWith('.pkg')) {
450
+ console.log(chalk.white(' Install the package:'));
451
+ console.log(chalk.gray(` sudo installer -pkg "${filePath}" -target /`));
452
+ }
453
+ } else {
454
+ if (fileName.endsWith('.deb')) {
455
+ console.log(chalk.white(' Install the DEB package:'));
456
+ console.log(chalk.gray(` sudo dpkg -i "${filePath}"`));
457
+ } else if (fileName.endsWith('.rpm')) {
458
+ console.log(chalk.white(' Install the RPM package:'));
459
+ console.log(chalk.gray(` sudo rpm -i "${filePath}"`));
460
+ } else if (fileName.endsWith('.AppImage')) {
461
+ console.log(chalk.white(' Run the AppImage:'));
462
+ console.log(chalk.gray(` chmod +x "${filePath}" && "${filePath}"`));
463
+ } else if (!fileName.includes('.')) {
464
+ console.log(chalk.white(' Binary is ready to use:'));
465
+ console.log(chalk.gray(` "${filePath}"`));
466
+ console.log(chalk.white(' Consider moving to PATH:'));
467
+ console.log(chalk.gray(` sudo mv "${filePath}" /usr/local/bin/`));
468
+ }
469
+ }
470
+ }
471
+ }
472
+
473
+ export default GithubAPI;
@@ -1,2 +0,0 @@
1
- /*! For license information please see 1df93b7f.dfdf0ef3.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkcreate_apidocs=self.webpackChunkcreate_apidocs||[]).push([[583,682],{3378:(e,t,a)=>{a.d(t,{A:()=>r});const r=(0,a(4722).A)("github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]])},4722:(e,t,a)=>{a.d(t,{A:()=>c});var r=a(6540);const s=e=>{const t=(e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,((e,t,a)=>a?a.toUpperCase():t.toLowerCase())))(e);return t.charAt(0).toUpperCase()+t.slice(1)},l=(...e)=>e.filter(((e,t,a)=>Boolean(e)&&""!==e.trim()&&a.indexOf(e)===t)).join(" ").trim(),o=e=>{for(const t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0};var i={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const n=(0,r.forwardRef)((({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:s,className:n="",children:c,iconNode:d,...m},x)=>(0,r.createElement)("svg",{ref:x,...i,width:t,height:t,stroke:e,strokeWidth:s?24*Number(a)/Number(t):a,className:l("lucide",n),...!c&&!o(m)&&{"aria-hidden":"true"},...m},[...d.map((([e,t])=>(0,r.createElement)(e,t))),...Array.isArray(c)?c:[c]]))),c=(e,t)=>{const a=(0,r.forwardRef)((({className:a,...o},i)=>{return(0,r.createElement)(n,{ref:i,iconNode:t,className:l(`lucide-${c=s(e),c.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,a),...o});var c}));return a.displayName=s(e),a}},4905:(e,t,a)=>{a.r(t),a.d(t,{default:()=>w});var r=a(6540),s=a(7851),l=a(4722);const o=(0,l.A)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]),i=(0,l.A)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]),n=(0,l.A)("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]),c=(0,l.A)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),d=(0,l.A)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]),m=(0,l.A)("shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]),x=(0,l.A)("layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]),u=(0,l.A)("file-code",[["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z",key:"1mlx9k"}]]),h=(0,l.A)("settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),p=(0,l.A)("play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);var g=a(3378);const b=(0,l.A)("sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]),y=(0,l.A)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]),f=(0,l.A)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);var v=a(4848),j={installCommands:{bun:"bun install -g git0",npm:"npm install -g git0",npx:"npx git0 react starter"},coreFeatures:[{icon:o,title:"Search GitHub Repositories",description:"Search repositories by name with intelligent fuzzy matching and instant results",gradient:"from-blue-500 via-cyan-500 to-teal-500",example:"git0 react starter"},{icon:i,title:"Direct Repository Download",description:"Download from GitHub URLs or owner/repo shortcuts. Skip the manual git clone dance",gradient:"from-purple-500 via-pink-500 to-rose-500",example:"git0 facebook/react"},{icon:n,title:"Git Release Package Manager",description:"Instantly download latest release binaries for your system or all platforms",gradient:"from-green-500 via-emerald-500 to-cyan-500",example:"gg user/repo"},{icon:c,title:"Automatic Dependency Installation",description:"Smart detection and installation of dependencies for multiple project types",gradient:"from-orange-500 via-red-500 to-pink-500",example:"Auto-detects package.json, requirements.txt, Cargo.toml"},{icon:d,title:"Smart IDE Integration",description:"Automatically opens projects in Cursor, Windsurf, VS Code, or your preferred editor",gradient:"from-indigo-500 via-purple-500 to-blue-500",example:"Opens in cursor, windsurf, code, nvim"},{icon:m,title:"Conflict Resolution",description:"Handles directory naming conflicts automatically with smart numbering",gradient:"from-yellow-500 via-orange-500 to-red-500",example:"react \u2192 react-2 \u2192 react-3"}],projectTypes:[{name:"Node.js",file:"package.json",install:"bun install (fallback to npm)",color:"text-green-400",icon:n},{name:"Docker",file:"Dockerfile, docker-compose.yml",install:"docker-compose up -d",color:"text-blue-400",icon:x},{name:"Python",file:"requirements.txt, setup.py",install:"Virtual env + pip install",color:"text-yellow-400",icon:u},{name:"Rust",file:"Cargo.toml",install:"cargo build",color:"text-orange-400",icon:h},{name:"Go",file:"go.mod",install:"go mod tidy",color:"text-cyan-400",icon:p}],supportedIDEs:[{name:"Cursor",command:"cursor",color:"text-blue-400"},{name:"Windsurf",command:"windsurf",color:"text-purple-400"},{name:"VS Code",command:"code",color:"text-blue-300"},{name:"Code Server",command:"code-server",color:"text-green-400"},{name:"Neovim",command:"nvim",color:"text-orange-400"}],featuresList:[{title:"Search Repositories",command:"git0 react starter",desc:"Find repositories by name with fuzzy matching"},{title:"Direct Download",command:"gg facebook/react",desc:"Download using owner/repo shorthand"},{title:"From GitHub URL",command:"git0 https://github.com/user/repo",desc:"Download from any GitHub URL"}],workflowSteps:[{step:"1",title:"Repository Downloaded",desc:"To your current directory",icon:i},{step:"2",title:"Project Type Detected",desc:"Automatically identified",icon:o},{step:"3",title:"Dependencies Installed",desc:"Based on project type",icon:n},{step:"4",title:"IDE Launched",desc:"Opens in preferred editor",icon:d},{step:"5",title:"Dev Server Started",desc:"For Node.js projects",icon:p}],urlDocs:"https://git0.js.org/functions",urlSupport:"https://discord.gg/SJdBqBz3tV",urlGithub:"https://github.com/vtempest/git0",urlGithubChat:"https://github.com/vtempest/git0/discussions",urlLogo:"https://i.imgur.com/857meew.png",name:"git0",urlAuthor:"https://github.com/vtempest",author:"vtempest",copyrightHTML:'&copy; 2025 Get git0. <a href="https://github.com/vtempest/git0">Star this on GitHub</a> so it can grow!'};const w=function(){var e=(0,r.useState)(null),t=e[0],a=e[1],l=(0,r.useState)("bun"),o=l[0],i=l[1],n=(0,r.useState)({x:0,y:0}),c=n[0],d=n[1];return(0,r.useEffect)((function(){var e=function(e){d({x:e.clientX,y:e.clientY})};return window.addEventListener("mousemove",e),function(){return window.removeEventListener("mousemove",e)}}),[]),(0,v.jsxs)("div",{className:"min-h-screen bg-gray-900 text-white overflow-hidden relative",children:[(0,v.jsxs)("div",{className:"fixed inset-0 bg-gradient-to-br from-gray-900 via-blue-900/30 to-purple-900/30",children:[(0,v.jsxs)("div",{className:"absolute inset-0",children:[(0,v.jsx)("div",{className:"absolute w-96 h-96 bg-blue-500/20 rounded-full blur-3xl animate-pulse",style:{left:20+.02*c.x+"%",top:10+.01*c.y+"%",transform:"translate3d(0, 0, 0)"}}),(0,v.jsx)("div",{className:"absolute w-80 h-80 bg-purple-500/20 rounded-full blur-3xl animate-pulse delay-1000",style:{right:15+-.015*c.x+"%",bottom:20+-.01*c.y+"%",transform:"translate3d(0, 0, 0)"}}),(0,v.jsx)("div",{className:"absolute w-64 h-64 bg-cyan-500/15 rounded-full blur-3xl animate-pulse delay-2000",style:{left:60+.01*c.x+"%",top:60+.005*c.y+"%",transform:"translate3d(0, 0, 0)"}})]}),(0,v.jsx)("div",{className:"absolute inset-0 bg-[linear-gradient(rgba(56,189,248,0.03)_1px,transparent_1px),linear-gradient(90deg,rgba(56,189,248,0.03)_1px,transparent_1px)] bg-[size:50px_50px]"}),(0,v.jsx)("div",{className:"absolute inset-0 bg-[radial-gradient(circle_at_25%_25%,rgba(56,189,248,0.15),transparent_50%)]"}),(0,v.jsx)("div",{className:"absolute inset-0 bg-[radial-gradient(circle_at_75%_75%,rgba(147,51,234,0.15),transparent_50%)]"})]}),(0,v.jsxs)("nav",{className:"relative z-50 flex items-center justify-between p-6 backdrop-blur-xl bg-gray-900/70 border-b border-gray-700/50",children:[(0,v.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,v.jsx)("div",{className:"w-12 h-12 bg-gradient-to-br from-blue-500 via-cyan-500 to-purple-600 rounded-xl flex items-center justify-center shadow-2xl shadow-blue-500/25 transform hover:scale-110 transition-all duration-300",children:(0,v.jsx)("img",{src:j.urlLogo,alt:"logo",className:"w-10 h-10"})}),(0,v.jsx)("span",{className:"text-3xl font-bold bg-gradient-to-r from-blue-400 via-cyan-400 to-purple-400 bg-clip-text text-transparent",children:j.name})]}),(0,v.jsxs)("div",{className:"flex items-center space-x-8",children:[(0,v.jsx)("a",{href:"#features",className:"hover:text-blue-400 transition-all duration-300 hover:scale-105",children:"Features"}),(0,v.jsx)("a",{href:"#installation",className:"hover:text-blue-400 transition-all duration-300 hover:scale-105",children:"Install"}),(0,v.jsx)("a",{href:"#workflow",className:"hover:text-blue-400 transition-all duration-300 hover:scale-105",children:"How It Works"}),(0,v.jsxs)("a",{href:j.urlGithub,className:"flex items-center space-x-2 bg-gradient-to-r from-blue-600 via-cyan-600 to-purple-600 px-6 py-3 rounded-xl hover:from-blue-500 hover:via-cyan-500 hover:to-purple-500 transition-all duration-300 shadow-2xl shadow-blue-500/25 hover:scale-105 hover:shadow-blue-500/40",children:[(0,v.jsx)(g.A,{className:"w-5 h-5"}),(0,v.jsx)("span",{className:"font-semibold",children:"GitHub"})]})]})]}),(0,v.jsx)("section",{className:"relative z-10 pt-6 pb-10 px-6",children:(0,v.jsxs)("div",{className:"max-w-7xl mx-auto text-center",children:[(0,v.jsxs)("div",{className:"",children:[(0,v.jsxs)("div",{className:"inline-flex items-center space-x-3 bg-gradient-to-r from-blue-500/20 via-cyan-500/20 to-purple-500/20 backdrop-blur-xl border border-blue-500/30 rounded-full px-6 py-3 mb-8 shadow-2xl shadow-blue-500/10 hover:shadow-blue-500/20 transition-all duration-500",children:[(0,v.jsx)(b,{className:"w-5 h-5 text-blue-400 animate-pulse"}),(0,v.jsx)("span",{className:"text-blue-300 font-medium",children:"Download Git Repo on Step Zero"}),(0,v.jsx)("div",{className:"w-2 h-2 bg-green-400 rounded-full animate-pulse"})]}),(0,v.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,v.jsx)("img",{src:"https://i.imgur.com/Io3ukRC.gif",alt:"Git Preview",className:"w-full"}),(0,v.jsx)("img",{src:"https://i.imgur.com/6l9esbL.png",alt:"Git Preview",className:"w-full"})]}),(0,v.jsxs)("p",{className:"text-2xl md:text-3xl mt-4 text-gray-300 mb-12 max-w-5xl mx-auto leading-relaxed font-light",children:["CLI tool to search GitHub repositories, download source & releases, and instantly set up projects with",(0,v.jsx)("span",{className:"bg-gradient-to-r from-blue-400 to-cyan-400 bg-clip-text text-transparent font-semibold",children:" automatic dependency installation and editor opening"})]})]}),(0,v.jsxs)("div",{id:"installation",children:[(0,v.jsx)("div",{className:"flex justify-center mb-8",children:(0,v.jsx)("div",{className:"flex bg-gray-800/50 backdrop-blur-xl rounded-2xl p-2 border border-gray-700/50 shadow-2xl",children:Object.keys(j.installCommands).map((function(e){return(0,v.jsx)("button",{onClick:function(){return i(e)},className:"px-6 py-3 rounded-xl transition-all duration-300 font-semibold "+(o===e?"bg-gradient-to-r from-blue-500 via-cyan-500 to-purple-500 text-white shadow-lg transform scale-105":"text-gray-400 hover:text-white hover:bg-gray-700/50"),children:e.toUpperCase()},e)}))})}),(0,v.jsx)("div",{className:"max-w-3xl mx-auto",children:(0,v.jsxs)("div",{className:"bg-gray-800/40 backdrop-blur-xl border border-gray-700/50 rounded-2xl p-8 shadow-2xl hover:shadow-blue-500/10 transition-all duration-500 transform hover:scale-[1.02]",children:[(0,v.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,v.jsx)("span",{className:"text-gray-400 font-medium",children:"Installation Command"}),(0,v.jsxs)("button",{onClick:function(){return e=j.installCommands[o],t=o,navigator.clipboard.writeText(e),a(t),void setTimeout((function(){return a(null)}),2e3);var e,t},className:"flex items-center space-x-2 text-blue-400 hover:text-blue-300 transition-all duration-300 bg-blue-500/10 px-4 py-2 rounded-lg hover:bg-blue-500/20",children:[t===o?(0,v.jsx)(y,{className:"w-5 h-5"}):(0,v.jsx)(f,{className:"w-5 h-5"}),(0,v.jsx)("span",{className:"font-medium",children:t===o?"Copied!":"Copy"})]})]}),(0,v.jsx)("code",{className:"text-xl text-green-400 font-mono bg-gray-900/50 p-4 rounded-lg block",children:j.installCommands[o]})]})})]}),(0,v.jsx)("div",{className:"",children:(0,v.jsxs)("div",{className:"max-w-6xl mx-auto bg-gray-800/30 backdrop-blur-xl border border-gray-700/50 rounded-2xl p-10 shadow-2xl",children:[(0,v.jsx)("h3",{className:"text-3xl font-bold mb-8 text-center bg-gradient-to-r from-blue-400 to-purple-400 bg-clip-text text-transparent",children:"Usage Examples"}),(0,v.jsx)("div",{className:"grid md:grid-cols-3 gap-6",children:j.featuresList.map((function(e,t){return(0,v.jsxs)("div",{className:"bg-gray-800/50 rounded-xl p-6 border border-gray-700/50 hover:border-blue-500/50 transition-all duration-300 transform hover:scale-105 hover:shadow-xl",children:[(0,v.jsx)("div",{className:"text-blue-400 font-bold text-lg mb-2",children:e.title}),(0,v.jsx)("code",{className:"text-green-400 text-lg font-mono block mb-3 bg-gray-900/50 p-3 rounded",children:e.command}),(0,v.jsx)("p",{className:"text-gray-400 text-sm",children:e.desc})]},t)}))})]})})]})}),(0,v.jsx)("section",{id:"features",className:"relative z-10 px-6",children:(0,v.jsx)("div",{className:"max-w-7xl mx-auto",children:(0,v.jsx)("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-8 ",children:j.coreFeatures.map((function(e,t){return(0,v.jsxs)("div",{className:"group relative bg-gray-800/30 backdrop-blur-xl border border-gray-700/50 rounded-2xl p-8 hover:bg-gray-800/50 transition-all duration-500 transform hover:scale-105 hover:shadow-2xl hover:shadow-blue-500/20",children:[(0,v.jsx)("div",{className:"w-16 h-16 bg-gradient-to-br "+e.gradient+" rounded-2xl flex items-center justify-center mb-6 group-hover:scale-110 transition-all duration-300 shadow-2xl",children:(0,v.jsx)(e.icon,{className:"w-8 h-8 text-white"})}),(0,v.jsx)("h3",{className:"text-xl font-bold mb-4 group-hover:text-blue-400 transition-colors",children:e.title}),(0,v.jsx)("p",{className:"text-gray-400 leading-relaxed mb-4",children:e.description}),(0,v.jsx)("code",{className:"text-sm text-green-400 bg-gray-900/50 px-3 py-1 rounded font-mono",children:e.example}),(0,v.jsx)("div",{className:"absolute inset-0 bg-gradient-to-r from-blue-500/5 to-purple-500/5 rounded-2xl opacity-0 group-hover:opacity-100 transition-opacity duration-300"})]},t)}))})})}),(0,v.jsx)("section",{className:"relative z-10 px-6 mt-4 ",children:(0,v.jsxs)("div",{className:"max-w-7xl mx-auto",children:[(0,v.jsx)("div",{className:"text-center ",children:(0,v.jsx)("h2",{className:"text-6xl h-full md:text-5xl font-bold mb-6 bg-gradient-to-r pb-4 from-green-400 to-blue-400 bg-clip-text text-transparent",children:"Supported Project Types"})}),(0,v.jsx)("div",{className:"grid md:grid-cols-1 lg:grid-cols-1 gap-6 mt-4 ",children:j.projectTypes.map((function(e,t){return(0,v.jsx)("div",{className:"bg-gray-800/40 backdrop-blur-xl border border-gray-700/50 rounded-xl p-6 hover:border-blue-500/50 transition-all duration-300 transform hover:scale-[1.02]",children:(0,v.jsxs)("div",{className:"flex items-center justify-between",children:[(0,v.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,v.jsx)(e.icon,{className:"w-8 h-8 "+e.color}),(0,v.jsxs)("div",{children:[(0,v.jsx)("h3",{className:"text-lg font-bold "+e.color,children:e.name}),(0,v.jsxs)("p",{className:"text-gray-400 text-sm",children:["Detection: ",e.file]})]})]}),(0,v.jsxs)("div",{className:"text-right",children:[(0,v.jsx)("p",{className:"text-gray-300 font-medium",children:"Installation"}),(0,v.jsx)("code",{className:"text-green-400 text-sm",children:e.install})]})]})},t)}))})]})}),(0,v.jsx)("section",{id:"workflow",className:"relative z-10 mt-6 px-6",children:(0,v.jsxs)("div",{className:"max-w-7xl mx-auto",children:[(0,v.jsxs)("div",{className:"text-center",children:[(0,v.jsx)("h2",{className:"text-4xl md:text-5xl font-bold mb-6 mt-10 bg-gradient-to-r from-cyan-400 to-blue-400 bg-clip-text text-transparent",children:"The Proper Protocol to Download Git Repo"}),(0,v.jsx)("p",{className:"text-xl text-gray-300 max-w-3xl mx-auto mb-10",children:'Skip the manual "git clone, cd, install" dance.'})]}),(0,v.jsx)("div",{className:"grid md:grid-cols-5 gap-8 mt-6",children:j.workflowSteps.map((function(e,t){return(0,v.jsxs)("div",{className:"text-center group",children:[(0,v.jsxs)("div",{className:"relative mb-6",children:[(0,v.jsx)("div",{className:"w-16 h-16 bg-gradient-to-br from-blue-500 to-purple-600 rounded-full flex items-center justify-center mx-auto shadow-2xl group-hover:scale-110 transition-all duration-300",children:(0,v.jsx)(e.icon,{className:"w-8 h-8 text-white"})}),(0,v.jsx)("div",{className:"absolute -top-2 -right-2 w-8 h-8 bg-gradient-to-r from-cyan-400 to-blue-400 rounded-full flex items-center justify-center text-sm font-bold text-gray-900",children:e.step})]}),(0,v.jsx)("h3",{className:"text-lg font-bold mb-2 group-hover:text-blue-400 transition-colors",children:e.title}),(0,v.jsx)("p",{className:"text-gray-400 text-sm",children:e.desc})]},t)}))}),(0,v.jsx)("div",{className:"mt-8 mb-8 text-center",children:(0,v.jsxs)("div",{className:"bg-gray-800/40 backdrop-blur-xl border border-gray-700/50 rounded-xl p-6 max-w-2xl mx-auto",children:[(0,v.jsxs)("p",{className:"text-gray-300 mb-4",children:[(0,v.jsx)("strong",{className:"text-blue-400",children:"Conflict Resolution:"})," If a directory with the same name exists, git0 automatically appends a number"]}),(0,v.jsx)("code",{className:"text-green-400 bg-gray-900/50 px-4 py-2 rounded",children:"react-app \u2192 react-app-2 \u2192 react-app-3"})]})})]})}),(0,v.jsx)(s.default,{})]})}},7851:(e,t,a)=>{a.r(t),a.d(t,{default:()=>d});a(6540);var r=a(4722);const s=(0,r.A)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]),l=(0,r.A)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);var o=a(3378);const i=(0,r.A)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);var n=a(4848),c={urlDocs:"https://git0.js.org/functions",urlSupport:"https://discord.gg/SJdBqBz3tV",urlGithub:"https://github.com/vtempest/git0",urlGithubChat:"https://github.com/vtempest/git0/discussions",urlLogo:"https://i.imgur.com/857meew.png",name:"git0",urlAuthor:"https://github.com/vtempest",author:"vtempest",copyrightHTML:'&copy; 2025 Get git0. <a href="https://github.com/vtempest/git0">Star this on GitHub</a> so it can grow!'};function d(){return(0,n.jsx)("footer",{className:"relative z-10 border-t border-gray-800/50 py-16 px-6 bg-gray-900/50 backdrop-blur-xl",children:(0,n.jsxs)("div",{className:"max-w-7xl mx-auto",children:[(0,n.jsxs)("div",{className:"flex flex-col md:flex-row items-center justify-between ",children:[(0,n.jsxs)("div",{className:"flex items-center space-x-4 mb-6 md:mb-0",children:[(0,n.jsx)("div",{className:"w-12 h-12 bg-gradient-to-br from-blue-500 via-cyan-500 to-purple-600 rounded-xl flex items-center justify-center shadow-2xl",children:(0,n.jsx)("img",{src:c.urlLogo,alt:"logo",className:"w-10 h-10"})}),(0,n.jsx)("span",{className:"text-2xl font-bold bg-gradient-to-r from-blue-400 to-purple-400 bg-clip-text text-transparent",children:c.name})]}),(0,n.jsxs)("div",{className:"flex items-center space-x-8",children:[(0,n.jsxs)("a",{href:c.urlDocs,className:"flex items-center space-x-2 text-gray-400 hover:text-white transition-all duration-300 hover:scale-105",children:[(0,n.jsx)(s,{className:"w-5 h-5"}),(0,n.jsx)("span",{children:"Docs"})]}),(0,n.jsxs)("a",{href:c.urlSupport,className:"flex items-center space-x-2 text-gray-400 hover:text-white transition-all duration-300 hover:scale-105",children:[(0,n.jsx)(l,{className:"w-5 h-5"}),(0,n.jsx)("span",{children:"Discord"})]}),(0,n.jsxs)("a",{href:c.urlGithub,className:"flex items-center space-x-2 text-gray-400 hover:text-white transition-all duration-300 hover:scale-105",children:[(0,n.jsx)(o.A,{className:"w-5 h-5"}),(0,n.jsx)("span",{children:"GitHub"})]}),(0,n.jsxs)("a",{href:c.urlGithubChat,className:"flex items-center space-x-2 text-gray-400 hover:text-white transition-all duration-300 hover:scale-105",children:[(0,n.jsx)(i,{className:"w-5 h-5"}),(0,n.jsx)("span",{children:"Discussions"})]})]})]}),(0,n.jsxs)("div",{className:"pt-8 border-t border-gray-800/50 text-center",children:[(0,n.jsx)("p",{className:"text-gray-400 mb-4",dangerouslySetInnerHTML:{__html:c.copyrightHTML}}),(0,n.jsx)("div",{className:"flex justify-center space-x-4 text-sm text-gray-500",children:(0,n.jsxs)("span",{children:["Made by ",(0,n.jsx)("a",{href:c.urlAuthor,className:"text-blue-400 hover:text-blue-300 transition-all duration-300",children:c.author})," with \u2764\ufe0f for the developer community"]})})]})]})})}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkcreate_apidocs=self.webpackChunkcreate_apidocs||[]).push([[567],{5226:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"default":[{"type":"category","label":"Functions","collapsed":false,"items":[{"type":"link","label":"globals","href":"/functions/globals","docId":"functions/globals","unlisted":false},{"type":"link","label":"index","href":"/functions/","docId":"functions/index","unlisted":false}],"collapsible":true}]},"docs":{"functions/globals":{"id":"functions/globals","title":"globals","description":"downloadRepo()","sidebar":"default"},"functions/index":{"id":"functions/index","title":"index","description":"<img src=\\"https://img.shields.io/discord/1110227955554209923.svg?label=Chat&logo=Discord&colorB=7289da&style=flat\\"","sidebar":"default"},"index":{"id":"index","title":"Overview","description":"<img src=\\"https://img.shields.io/discord/1110227955554209923.svg?label=Chat&logo=Discord&colorB=7289da&style=flat\\"","sidebar":"default"}}}}')}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkcreate_apidocs=self.webpackChunkcreate_apidocs||[]).push([[26],{5576:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>c,default:()=>o,frontMatter:()=>t,metadata:()=>r,toc:()=>a});const r=JSON.parse('{"id":"functions/globals","title":"globals","description":"downloadRepo()","source":"@site/src/functions/globals.md","sourceDirName":"functions","slug":"/functions/globals","permalink":"/functions/globals","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{},"sidebar":"default","next":{"title":"index","permalink":"/functions/"}}');var i=s(4848),d=s(8453);const t={},c=void 0,l={},a=[{value:"downloadRepo()",id:"downloadrepo",level:2},{value:"Parameters",id:"parameters",level:3},{value:"Returns",id:"returns",level:3},{value:"installDependencies()",id:"installdependencies",level:2},{value:"Parameters",id:"parameters-1",level:3},{value:"Returns",id:"returns-1",level:3},{value:"openInIDE()",id:"openinide",level:2},{value:"Parameters",id:"parameters-2",level:3},{value:"Returns",id:"returns-2",level:3},{value:"searchRepositories()",id:"searchrepositories",level:2},{value:"Parameters",id:"parameters-3",level:3},{value:"Returns",id:"returns-3",level:3}];function h(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",hr:"hr",p:"p",pre:"pre",...(0,d.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"downloadrepo",children:"downloadRepo()"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"function downloadRepo(repo: any): Promise<void>;\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Defined in: ",(0,i.jsx)(n.a,{href:"https://github.com/vtempest/git0/blob/f5565c601a25c627e02f22dfda1f72982fbcaeae/git0.js#L506",children:"git0.js:506"})]}),"\n",(0,i.jsx)(n.h3,{id:"parameters",children:"Parameters"}),"\n",(0,i.jsxs)("table",{children:[(0,i.jsx)("thead",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("th",{children:"Parameter"}),(0,i.jsx)("th",{children:"Type"})]})}),(0,i.jsx)("tbody",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"repo"})})}),(0,i.jsx)("td",{children:(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"any"})})})]})})]}),"\n",(0,i.jsx)(n.h3,{id:"returns",children:"Returns"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Promise"}),"<",(0,i.jsx)(n.code,{children:"void"}),">"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"installdependencies",children:"installDependencies()"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"function installDependencies(targetDir: any): Promise<void>;\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Defined in: ",(0,i.jsx)(n.a,{href:"https://github.com/vtempest/git0/blob/f5565c601a25c627e02f22dfda1f72982fbcaeae/git0.js#L397",children:"git0.js:397"})]}),"\n",(0,i.jsx)(n.h3,{id:"parameters-1",children:"Parameters"}),"\n",(0,i.jsxs)("table",{children:[(0,i.jsx)("thead",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("th",{children:"Parameter"}),(0,i.jsx)("th",{children:"Type"})]})}),(0,i.jsx)("tbody",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"targetDir"})})}),(0,i.jsx)("td",{children:(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"any"})})})]})})]}),"\n",(0,i.jsx)(n.h3,{id:"returns-1",children:"Returns"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Promise"}),"<",(0,i.jsx)(n.code,{children:"void"}),">"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"openinide",children:"openInIDE()"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"function openInIDE(targetDir: any): void;\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Defined in: ",(0,i.jsx)(n.a,{href:"https://github.com/vtempest/git0/blob/f5565c601a25c627e02f22dfda1f72982fbcaeae/git0.js#L354",children:"git0.js:354"})]}),"\n",(0,i.jsx)(n.h3,{id:"parameters-2",children:"Parameters"}),"\n",(0,i.jsxs)("table",{children:[(0,i.jsx)("thead",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("th",{children:"Parameter"}),(0,i.jsx)("th",{children:"Type"})]})}),(0,i.jsx)("tbody",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"targetDir"})})}),(0,i.jsx)("td",{children:(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"any"})})})]})})]}),"\n",(0,i.jsx)(n.h3,{id:"returns-2",children:"Returns"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"void"})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"searchrepositories",children:"searchRepositories()"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"function searchRepositories(query: any): Promise<any>;\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Defined in: ",(0,i.jsx)(n.a,{href:"https://github.com/vtempest/git0/blob/f5565c601a25c627e02f22dfda1f72982fbcaeae/git0.js#L467",children:"git0.js:467"})]}),"\n",(0,i.jsx)(n.h3,{id:"parameters-3",children:"Parameters"}),"\n",(0,i.jsxs)("table",{children:[(0,i.jsx)("thead",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("th",{children:"Parameter"}),(0,i.jsx)("th",{children:"Type"})]})}),(0,i.jsx)("tbody",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"query"})})}),(0,i.jsx)("td",{children:(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"any"})})})]})})]}),"\n",(0,i.jsx)(n.h3,{id:"returns-3",children:"Returns"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Promise"}),"<",(0,i.jsx)(n.code,{children:"any"}),">"]})]})}function o(e={}){const{wrapper:n}={...(0,d.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>t,x:()=>c});var r=s(6540);const i={},d=r.createContext(i);function t(e){const n=r.useContext(d);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),r.createElement(d.Provider,{value:n},e.children)}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkcreate_apidocs=self.webpackChunkcreate_apidocs||[]).push([[893],{4035:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"functions/index","title":"index","description":"<img src=\\"https://img.shields.io/discord/1110227955554209923.svg?label=Chat&logo=Discord&colorB=7289da&style=flat\\"","source":"@site/src/functions/index.md","sourceDirName":"functions","slug":"/functions/","permalink":"/functions/","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{},"sidebar":"default","previous":{"title":"globals","permalink":"/functions/globals"}}');var i=t(4848),r=t(8453);const o={},l="Git0: Download Git Repo on Step Zero",d={},c=[{value:"\ud83d\ude80 Installation",id:"-installation",level:2},{value:"\u2728 Features",id:"-features",level:2},{value:"\ud83c\udfaf Usage",id:"-usage",level:2},{value:"Supported Project Types",id:"supported-project-types",level:3},{value:"Supported IDEs",id:"supported-ides",level:3},{value:"\ud83d\udd27 Configuration",id:"-configuration",level:2},{value:"What Happens After Download",id:"what-happens-after-download",level:3},{value:"GitHub Token (Optional)",id:"github-token-optional",level:3}];function a(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("p",{align:"center",children:(0,i.jsx)("img",{src:"https://i.imgur.com/poOtI3N.png"})}),"\n",(0,i.jsxs)("p",{align:"center",children:[(0,i.jsx)("a",{href:"https://discord.gg/SJdBqBz3tV",children:(0,i.jsx)("img",{src:"https://img.shields.io/discord/1110227955554209923.svg?label=Chat&logo=Discord&colorB=7289da&style=flat",alt:"Join Discord"})}),(0,i.jsx)("a",{href:"https://github.com/vtempest/git0/discussions",children:(0,i.jsx)("img",{alt:"GitHub Stars",src:"https://img.shields.io/github/stars/vtempest/git0"})}),(0,i.jsx)("a",{href:"https://github.com/vtempest/git0/discussions",children:(0,i.jsx)("img",{alt:"GitHub Discussions",src:"https://img.shields.io/github/discussions/vtempest/git0"})}),(0,i.jsx)("a",{href:"https://github.com/vtempest/git0/pulse",alt:"Activity",children:(0,i.jsx)("img",{src:"https://img.shields.io/github/commit-activity/m/vtempest/git0"})}),(0,i.jsx)("img",{src:"https://img.shields.io/github/last-commit/vtempest/git0.svg?style=flat-square",alt:"GitHub last commit"})]}),"\n",(0,i.jsxs)("p",{align:"center",children:[(0,i.jsx)("img",{src:"https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square",alt:"PRs Welcome"}),(0,i.jsx)("a",{href:"https://codespaces.new/vtempest/git0",children:(0,i.jsx)("img",{src:"https://github.com/codespaces/badge.svg",width:"150",height:"20"})})]}),"\n",(0,i.jsx)(s.header,{children:(0,i.jsx)(s.h1,{id:"git0-download-git-repo-on-step-zero",children:"Git0: Download Git Repo on Step Zero"})}),"\n",(0,i.jsx)(s.p,{children:"CLI tool to search GitHub repositories, download source & releases for your system, and instantly set up, then install dependencies and open code editor."}),"\n",(0,i.jsx)(s.h2,{id:"-installation",children:"\ud83d\ude80 Installation"}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-bash",children:"npm install -g git0\n"})}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-bash",children:"bun install -g git0\n"})}),"\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.img,{src:"https://i.imgur.com/Io3ukRC.gif",alt:"livepreview"}),"\n",(0,i.jsx)(s.img,{src:"https://i.imgur.com/K22NiBq.png",alt:"preview"})]}),"\n",(0,i.jsx)(s.h2,{id:"-features",children:"\u2728 Features"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Search GitHub repositories"})," by name with fuzzy matching"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Download repositories"})," directly from GitHub URLs or owner/repo shortcuts. Skip the manual git clone, cd, install dance"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Get Releases"})," instantly download latest release for your system or all systems"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Automatic dependency detection"})," and installation for multiple project types"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Smart IDE integration"})," - automatically opens projects in your preferred editor"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Cross-platform support"})," - works on Windows, macOS, and Linux"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Conflict resolution"})," - handles directory naming conflicts automatically"]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"-usage",children:"\ud83c\udfaf Usage"}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-bash",children:"# Search for repositories by name\ngg react starter\n\n# Direct download from GitHub URL\n## gg and git0 both work\ngg https://github.com/facebook/react\n\n# Download using owner/repo shorthand\ngit0 react starter\n\n## Use git0 without installing, (only node needed)\n# (copy into your project's readme for quick setup)\nnpx git0 facebook/react\n"})}),"\n",(0,i.jsx)(s.h3,{id:"supported-project-types",children:"Supported Project Types"}),"\n",(0,i.jsx)(s.p,{children:"git0 automatically detects and sets up the following project types:"}),"\n",(0,i.jsxs)(s.table,{children:[(0,i.jsx)(s.thead,{children:(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.th,{children:"Project Type"}),(0,i.jsx)(s.th,{children:"Detection"}),(0,i.jsx)(s.th,{children:"Installation"})]})}),(0,i.jsxs)(s.tbody,{children:[(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:(0,i.jsx)(s.strong,{children:"Node.js"})}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.code,{children:"package.json"})}),(0,i.jsxs)(s.td,{children:[(0,i.jsx)(s.code,{children:"bun install"})," (fallback to ",(0,i.jsx)(s.code,{children:"npm install"}),")"]})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:(0,i.jsx)(s.strong,{children:"Docker"})}),(0,i.jsxs)(s.td,{children:[(0,i.jsx)(s.code,{children:"Dockerfile"}),", ",(0,i.jsx)(s.code,{children:"docker-compose.yml"})]}),(0,i.jsxs)(s.td,{children:[(0,i.jsx)(s.code,{children:"docker-compose up -d"})," or ",(0,i.jsx)(s.code,{children:"docker build"})]})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:(0,i.jsx)(s.strong,{children:"Python"})}),(0,i.jsxs)(s.td,{children:[(0,i.jsx)(s.code,{children:"requirements.txt"}),", ",(0,i.jsx)(s.code,{children:"setup.py"})]}),(0,i.jsx)(s.td,{children:"Virtual environment + pip install"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:(0,i.jsx)(s.strong,{children:"Rust"})}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.code,{children:"Cargo.toml"})}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.code,{children:"cargo build"})})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:(0,i.jsx)(s.strong,{children:"Go"})}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.code,{children:"go.mod"})}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.code,{children:"go mod tidy"})})]})]})]}),"\n",(0,i.jsx)(s.h3,{id:"supported-ides",children:"Supported IDEs"}),"\n",(0,i.jsx)(s.p,{children:"git0 automatically detects and opens projects in your preferred IDE:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Cursor"})," (",(0,i.jsx)(s.code,{children:"cursor"}),")"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Windsurf"})," (",(0,i.jsx)(s.code,{children:"windsurf"}),")"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"VS Code"})," (",(0,i.jsx)(s.code,{children:"code"}),")"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Code Server"})," (",(0,i.jsx)(s.code,{children:"code-server"}),")"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Neovim"})," (",(0,i.jsx)(s.code,{children:"nvim"}),")"]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"-configuration",children:"\ud83d\udd27 Configuration"}),"\n",(0,i.jsx)(s.h3,{id:"what-happens-after-download",children:"What Happens After Download"}),"\n",(0,i.jsxs)(s.ol,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Repository is downloaded"})," to your current directory"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Project type is detected"})," automatically"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Dependencies are installed"})," based on project type"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"IDE is launched"})," automatically (if available)"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Development server starts"})," (for Node.js projects)"]}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["If a directory with the same name exists, git0 automatically appends a number (e.g., ",(0,i.jsx)(s.code,{children:"react-2"}),", ",(0,i.jsx)(s.code,{children:"react-3"}),")."]}),"\n",(0,i.jsx)(s.h3,{id:"github-token-optional",children:"GitHub Token (Optional)"}),"\n",(0,i.jsxs)(s.p,{children:["For higher API rate limits, set ",(0,i.jsx)(s.a,{href:"https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token",children:"your GitHub token"}),":"]}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-bash",children:"export GITHUB_TOKEN=your_github_token_here\n"})}),"\n",(0,i.jsx)(s.p,{children:"Without a token, you're limited to 60 requests per hour. With a token, you get 5,000 requests per hour."})]})}function h(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},8453:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>l});var n=t(6540);const i={},r=n.createContext(i);function o(e){const s=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(r.Provider,{value:s},e.children)}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkcreate_apidocs=self.webpackChunkcreate_apidocs||[]).push([[684],{1970:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"index","title":"Overview","description":"<img src=\\"https://img.shields.io/discord/1110227955554209923.svg?label=Chat&logo=Discord&colorB=7289da&style=flat\\"","source":"@site/src/index.md","sourceDirName":".","slug":"/","permalink":"/","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"id":"index","title":"Overview","sidebar_position":1,"displayed_sidebar":"default"},"sidebar":"default"}');var n=t(4848),r=t(8453);const o={id:"index",title:"Overview",sidebar_position:1,displayed_sidebar:"default"},l="Git0: Download Git Repo on Step Zero",d={},c=[{value:"\ud83d\ude80 Installation",id:"-installation",level:2},{value:"\u2728 Features",id:"-features",level:2},{value:"\ud83c\udfaf Usage",id:"-usage",level:2},{value:"Supported Project Types",id:"supported-project-types",level:3},{value:"Supported IDEs",id:"supported-ides",level:3},{value:"\ud83d\udd27 Configuration",id:"-configuration",level:2},{value:"What Happens After Download",id:"what-happens-after-download",level:3},{value:"GitHub Token (Optional)",id:"github-token-optional",level:3}];function a(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("p",{align:"center",children:(0,n.jsx)("img",{src:"https://i.imgur.com/poOtI3N.png"})}),"\n",(0,n.jsxs)("p",{align:"center",children:[(0,n.jsx)("a",{href:"https://discord.gg/SJdBqBz3tV",children:(0,n.jsx)("img",{src:"https://img.shields.io/discord/1110227955554209923.svg?label=Chat&logo=Discord&colorB=7289da&style=flat",alt:"Join Discord"})}),(0,n.jsx)("a",{href:"https://github.com/vtempest/git0/discussions",children:(0,n.jsx)("img",{alt:"GitHub Stars",src:"https://img.shields.io/github/stars/vtempest/git0"})}),(0,n.jsx)("a",{href:"https://github.com/vtempest/git0/discussions",children:(0,n.jsx)("img",{alt:"GitHub Discussions",src:"https://img.shields.io/github/discussions/vtempest/git0"})}),(0,n.jsx)("a",{href:"https://github.com/vtempest/git0/pulse",alt:"Activity",children:(0,n.jsx)("img",{src:"https://img.shields.io/github/commit-activity/m/vtempest/git0"})}),(0,n.jsx)("img",{src:"https://img.shields.io/github/last-commit/vtempest/git0.svg?style=flat-square",alt:"GitHub last commit"})]}),"\n",(0,n.jsxs)("p",{align:"center",children:[(0,n.jsx)("img",{src:"https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square",alt:"PRs Welcome"}),(0,n.jsx)("a",{href:"https://codespaces.new/vtempest/git0",children:(0,n.jsx)("img",{src:"https://github.com/codespaces/badge.svg",width:"150",height:"20"})})]}),"\n",(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"git0-download-git-repo-on-step-zero",children:"Git0: Download Git Repo on Step Zero"})}),"\n",(0,n.jsx)(s.p,{children:"CLI tool to search GitHub repositories, download source & releases for your system, and instantly set up, then install dependencies and open code editor."}),"\n",(0,n.jsx)(s.h2,{id:"-installation",children:"\ud83d\ude80 Installation"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-bash",children:"npm install -g git0\n"})}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-bash",children:"bun install -g git0\n"})}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.img,{src:"https://i.imgur.com/Io3ukRC.gif",alt:"livepreview"}),"\n",(0,n.jsx)(s.img,{src:"https://i.imgur.com/K22NiBq.png",alt:"preview"})]}),"\n",(0,n.jsx)(s.h2,{id:"-features",children:"\u2728 Features"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Search GitHub repositories"})," by name with fuzzy matching"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Download repositories"})," directly from GitHub URLs or owner/repo shortcuts. Skip the manual git clone, cd, install dance"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Get Releases"})," instantly download latest release for your system or all systems"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Automatic dependency detection"})," and installation for multiple project types"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Smart IDE integration"})," - automatically opens projects in your preferred editor"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Cross-platform support"})," - works on Windows, macOS, and Linux"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Conflict resolution"})," - handles directory naming conflicts automatically"]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"-usage",children:"\ud83c\udfaf Usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-bash",children:"# Search for repositories by name\ngg react starter\n\n# Direct download from GitHub URL\n## gg and git0 both work\ngg https://github.com/facebook/react\n\n# Download using owner/repo shorthand\ngit0 react starter\n\n## Use git0 without installing, (only node needed)\n# (copy into your project's readme for quick setup)\nnpx git0 facebook/react\n"})}),"\n",(0,n.jsx)(s.h3,{id:"supported-project-types",children:"Supported Project Types"}),"\n",(0,n.jsx)(s.p,{children:"git0 automatically detects and sets up the following project types:"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"Project Type"}),(0,n.jsx)(s.th,{children:"Detection"}),(0,n.jsx)(s.th,{children:"Installation"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"Node.js"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"package.json"})}),(0,n.jsxs)(s.td,{children:[(0,n.jsx)(s.code,{children:"bun install"})," (fallback to ",(0,n.jsx)(s.code,{children:"npm install"}),")"]})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"Docker"})}),(0,n.jsxs)(s.td,{children:[(0,n.jsx)(s.code,{children:"Dockerfile"}),", ",(0,n.jsx)(s.code,{children:"docker-compose.yml"})]}),(0,n.jsxs)(s.td,{children:[(0,n.jsx)(s.code,{children:"docker-compose up -d"})," or ",(0,n.jsx)(s.code,{children:"docker build"})]})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"Python"})}),(0,n.jsxs)(s.td,{children:[(0,n.jsx)(s.code,{children:"requirements.txt"}),", ",(0,n.jsx)(s.code,{children:"setup.py"})]}),(0,n.jsx)(s.td,{children:"Virtual environment + pip install"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"Rust"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"Cargo.toml"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"cargo build"})})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"Go"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"go.mod"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"go mod tidy"})})]})]})]}),"\n",(0,n.jsx)(s.h3,{id:"supported-ides",children:"Supported IDEs"}),"\n",(0,n.jsx)(s.p,{children:"git0 automatically detects and opens projects in your preferred IDE:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Cursor"})," (",(0,n.jsx)(s.code,{children:"cursor"}),")"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Windsurf"})," (",(0,n.jsx)(s.code,{children:"windsurf"}),")"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"VS Code"})," (",(0,n.jsx)(s.code,{children:"code"}),")"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Code Server"})," (",(0,n.jsx)(s.code,{children:"code-server"}),")"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Neovim"})," (",(0,n.jsx)(s.code,{children:"nvim"}),")"]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"-configuration",children:"\ud83d\udd27 Configuration"}),"\n",(0,n.jsx)(s.h3,{id:"what-happens-after-download",children:"What Happens After Download"}),"\n",(0,n.jsxs)(s.ol,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Repository is downloaded"})," to your current directory"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Project type is detected"})," automatically"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Dependencies are installed"})," based on project type"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"IDE is launched"})," automatically (if available)"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Development server starts"})," (for Node.js projects)"]}),"\n"]}),"\n",(0,n.jsxs)(s.p,{children:["If a directory with the same name exists, git0 automatically appends a number (e.g., ",(0,n.jsx)(s.code,{children:"react-2"}),", ",(0,n.jsx)(s.code,{children:"react-3"}),")."]}),"\n",(0,n.jsx)(s.h3,{id:"github-token-optional",children:"GitHub Token (Optional)"}),"\n",(0,n.jsxs)(s.p,{children:["For higher API rate limits, set ",(0,n.jsx)(s.a,{href:"https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token",children:"your GitHub token"}),":"]}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-bash",children:"export GITHUB_TOKEN=your_github_token_here\n"})}),"\n",(0,n.jsx)(s.p,{children:"Without a token, you're limited to 60 requests per hour. With a token, you get 5,000 requests per hour."})]})}function h(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},8453:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>l});var i=t(6540);const n={},r=i.createContext(n);function o(e){const s=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),i.createElement(r.Provider,{value:s},e.children)}}}]);
@@ -1 +0,0 @@
1
- (()=>{"use strict";var e,t,r,a,o,n={},f={};function i(e){var t=f[e];if(void 0!==t)return t.exports;var r=f[e]={id:e,loaded:!1,exports:{}};return n[e].call(r.exports,r,r.exports,i),r.loaded=!0,r.exports}i.m=n,i.c=f,e=[],i.O=(t,r,a,o)=>{if(!r){var n=1/0;for(u=0;u<e.length;u++){for(var[r,a,o]=e[u],f=!0,d=0;d<r.length;d++)(!1&o||n>=o)&&Object.keys(i.O).every((e=>i.O[e](r[d])))?r.splice(d--,1):(f=!1,o<n&&(n=o));if(f){e.splice(u--,1);var c=a();void 0!==c&&(t=c)}}return t}o=o||0;for(var u=e.length;u>0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[r,a,o]},i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,i.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var o=Object.create(null);i.r(o);var n={};t=t||[null,r({}),r([]),r(r)];for(var f=2&a&&e;"object"==typeof f&&!~t.indexOf(f);f=r(f))Object.getOwnPropertyNames(f).forEach((t=>n[t]=()=>e[t]));return n.default=()=>e,i.d(o,n),o},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>"assets/js/"+({26:"4a829dc8",48:"a94703ab",98:"a7bd4aaa",235:"a7456010",401:"17896441",567:"22dd74f7",583:"1df93b7f",647:"5e95c892",682:"ac46717f",684:"d140250a",742:"aba21aa0",893:"c3a618e1"}[e]||e)+"."+{26:"728a4445",48:"6d39a596",98:"87229397",235:"3054873b",237:"daf7efdf",278:"1628756c",401:"79ceefeb",567:"5e857962",577:"78325c02",583:"dfdf0ef3",591:"2156b33d",647:"bd6c1093",682:"32345167",684:"62af53aa",742:"dfebd789",893:"50a89e4d"}[e]+".js",i.miniCssF=e=>{},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a={},o="create-apidocs:",i.l=(e,t,r,n)=>{if(a[e])a[e].push(t);else{var f,d;if(void 0!==r)for(var c=document.getElementsByTagName("script"),u=0;u<c.length;u++){var l=c[u];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==o+r){f=l;break}}f||(d=!0,(f=document.createElement("script")).charset="utf-8",f.timeout=120,i.nc&&f.setAttribute("nonce",i.nc),f.setAttribute("data-webpack",o+r),f.src=e),a[e]=[t];var s=(t,r)=>{f.onerror=f.onload=null,clearTimeout(b);var o=a[e];if(delete a[e],f.parentNode&&f.parentNode.removeChild(f),o&&o.forEach((e=>e(r))),t)return t(r)},b=setTimeout(s.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=s.bind(null,f.onerror),f.onload=s.bind(null,f.onload),d&&document.head.appendChild(f)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="/",i.gca=function(e){return e={17896441:"401","4a829dc8":"26",a94703ab:"48",a7bd4aaa:"98",a7456010:"235","22dd74f7":"567","1df93b7f":"583","5e95c892":"647",ac46717f:"682",d140250a:"684",aba21aa0:"742",c3a618e1:"893"}[e]||e,i.p+i.u(e)},(()=>{var e={354:0,869:0};i.f.j=(t,r)=>{var a=i.o(e,t)?e[t]:void 0;if(0!==a)if(a)r.push(a[2]);else if(/^(354|869)$/.test(t))e[t]=0;else{var o=new Promise(((r,o)=>a=e[t]=[r,o]));r.push(a[2]=o);var n=i.p+i.u(t),f=new Error;i.l(n,(r=>{if(i.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var o=r&&("load"===r.type?"missing":r.type),n=r&&r.target&&r.target.src;f.message="Loading chunk "+t+" failed.\n("+o+": "+n+")",f.name="ChunkLoadError",f.type=o,f.request=n,a[1](f)}}),"chunk-"+t,t)}},i.O.j=t=>0===e[t];var t=(t,r)=>{var a,o,[n,f,d]=r,c=0;if(n.some((t=>0!==e[t]))){for(a in f)i.o(f,a)&&(i.m[a]=f[a]);if(d)var u=d(i)}for(t&&t(r);c<n.length;c++)o=n[c],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return i.O(u)},r=self.webpackChunkcreate_apidocs=self.webpackChunkcreate_apidocs||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})()})();