overskill 1.0.0

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 (151) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +261 -0
  3. package/dist/commands/add.d.ts +3 -0
  4. package/dist/commands/add.d.ts.map +1 -0
  5. package/dist/commands/add.js +121 -0
  6. package/dist/commands/add.js.map +1 -0
  7. package/dist/commands/bundle.d.ts +3 -0
  8. package/dist/commands/bundle.d.ts.map +1 -0
  9. package/dist/commands/bundle.js +58 -0
  10. package/dist/commands/bundle.js.map +1 -0
  11. package/dist/commands/config.d.ts +3 -0
  12. package/dist/commands/config.d.ts.map +1 -0
  13. package/dist/commands/config.js +109 -0
  14. package/dist/commands/config.js.map +1 -0
  15. package/dist/commands/delete.d.ts +3 -0
  16. package/dist/commands/delete.d.ts.map +1 -0
  17. package/dist/commands/delete.js +64 -0
  18. package/dist/commands/delete.js.map +1 -0
  19. package/dist/commands/diff.d.ts +3 -0
  20. package/dist/commands/diff.d.ts.map +1 -0
  21. package/dist/commands/diff.js +93 -0
  22. package/dist/commands/diff.js.map +1 -0
  23. package/dist/commands/edit.d.ts +3 -0
  24. package/dist/commands/edit.d.ts.map +1 -0
  25. package/dist/commands/edit.js +69 -0
  26. package/dist/commands/edit.js.map +1 -0
  27. package/dist/commands/import.d.ts +3 -0
  28. package/dist/commands/import.d.ts.map +1 -0
  29. package/dist/commands/import.js +514 -0
  30. package/dist/commands/import.js.map +1 -0
  31. package/dist/commands/info.d.ts +3 -0
  32. package/dist/commands/info.d.ts.map +1 -0
  33. package/dist/commands/info.js +89 -0
  34. package/dist/commands/info.js.map +1 -0
  35. package/dist/commands/init.d.ts +3 -0
  36. package/dist/commands/init.d.ts.map +1 -0
  37. package/dist/commands/init.js +88 -0
  38. package/dist/commands/init.js.map +1 -0
  39. package/dist/commands/list.d.ts +3 -0
  40. package/dist/commands/list.d.ts.map +1 -0
  41. package/dist/commands/list.js +84 -0
  42. package/dist/commands/list.js.map +1 -0
  43. package/dist/commands/login.d.ts +3 -0
  44. package/dist/commands/login.d.ts.map +1 -0
  45. package/dist/commands/login.js +143 -0
  46. package/dist/commands/login.js.map +1 -0
  47. package/dist/commands/new.d.ts +3 -0
  48. package/dist/commands/new.d.ts.map +1 -0
  49. package/dist/commands/new.js +262 -0
  50. package/dist/commands/new.js.map +1 -0
  51. package/dist/commands/publish.d.ts +3 -0
  52. package/dist/commands/publish.d.ts.map +1 -0
  53. package/dist/commands/publish.js +215 -0
  54. package/dist/commands/publish.js.map +1 -0
  55. package/dist/commands/push.d.ts +3 -0
  56. package/dist/commands/push.d.ts.map +1 -0
  57. package/dist/commands/push.js +151 -0
  58. package/dist/commands/push.js.map +1 -0
  59. package/dist/commands/registry.d.ts +3 -0
  60. package/dist/commands/registry.d.ts.map +1 -0
  61. package/dist/commands/registry.js +169 -0
  62. package/dist/commands/registry.js.map +1 -0
  63. package/dist/commands/remove.d.ts +3 -0
  64. package/dist/commands/remove.d.ts.map +1 -0
  65. package/dist/commands/remove.js +48 -0
  66. package/dist/commands/remove.js.map +1 -0
  67. package/dist/commands/search.d.ts +3 -0
  68. package/dist/commands/search.d.ts.map +1 -0
  69. package/dist/commands/search.js +48 -0
  70. package/dist/commands/search.js.map +1 -0
  71. package/dist/commands/sync.d.ts +3 -0
  72. package/dist/commands/sync.d.ts.map +1 -0
  73. package/dist/commands/sync.js +160 -0
  74. package/dist/commands/sync.js.map +1 -0
  75. package/dist/commands/update.d.ts +3 -0
  76. package/dist/commands/update.d.ts.map +1 -0
  77. package/dist/commands/update.js +130 -0
  78. package/dist/commands/update.js.map +1 -0
  79. package/dist/commands/validate.d.ts +3 -0
  80. package/dist/commands/validate.d.ts.map +1 -0
  81. package/dist/commands/validate.js +94 -0
  82. package/dist/commands/validate.js.map +1 -0
  83. package/dist/index.d.ts +3 -0
  84. package/dist/index.d.ts.map +1 -0
  85. package/dist/index.js +56 -0
  86. package/dist/index.js.map +1 -0
  87. package/dist/lib/api.d.ts +60 -0
  88. package/dist/lib/api.d.ts.map +1 -0
  89. package/dist/lib/api.js +340 -0
  90. package/dist/lib/api.js.map +1 -0
  91. package/dist/lib/auth.d.ts +78 -0
  92. package/dist/lib/auth.d.ts.map +1 -0
  93. package/dist/lib/auth.js +241 -0
  94. package/dist/lib/auth.js.map +1 -0
  95. package/dist/lib/config.d.ts +94 -0
  96. package/dist/lib/config.d.ts.map +1 -0
  97. package/dist/lib/config.js +294 -0
  98. package/dist/lib/config.js.map +1 -0
  99. package/dist/lib/editor.d.ts +6 -0
  100. package/dist/lib/editor.d.ts.map +1 -0
  101. package/dist/lib/editor.js +60 -0
  102. package/dist/lib/editor.js.map +1 -0
  103. package/dist/lib/fs.d.ts +74 -0
  104. package/dist/lib/fs.d.ts.map +1 -0
  105. package/dist/lib/fs.js +235 -0
  106. package/dist/lib/fs.js.map +1 -0
  107. package/dist/lib/index-gen.d.ts +18 -0
  108. package/dist/lib/index-gen.d.ts.map +1 -0
  109. package/dist/lib/index-gen.js +75 -0
  110. package/dist/lib/index-gen.js.map +1 -0
  111. package/dist/lib/local-registry/index.d.ts +15 -0
  112. package/dist/lib/local-registry/index.d.ts.map +1 -0
  113. package/dist/lib/local-registry/index.js +18 -0
  114. package/dist/lib/local-registry/index.js.map +1 -0
  115. package/dist/lib/local-registry/objects.d.ts +51 -0
  116. package/dist/lib/local-registry/objects.d.ts.map +1 -0
  117. package/dist/lib/local-registry/objects.js +148 -0
  118. package/dist/lib/local-registry/objects.js.map +1 -0
  119. package/dist/lib/local-registry/paths.d.ts +53 -0
  120. package/dist/lib/local-registry/paths.d.ts.map +1 -0
  121. package/dist/lib/local-registry/paths.js +85 -0
  122. package/dist/lib/local-registry/paths.js.map +1 -0
  123. package/dist/lib/local-registry/skills.d.ts +83 -0
  124. package/dist/lib/local-registry/skills.d.ts.map +1 -0
  125. package/dist/lib/local-registry/skills.js +261 -0
  126. package/dist/lib/local-registry/skills.js.map +1 -0
  127. package/dist/lib/local-registry/types.d.ts +79 -0
  128. package/dist/lib/local-registry/types.d.ts.map +1 -0
  129. package/dist/lib/local-registry/types.js +5 -0
  130. package/dist/lib/local-registry/types.js.map +1 -0
  131. package/dist/lib/local-registry/versions.d.ts +61 -0
  132. package/dist/lib/local-registry/versions.d.ts.map +1 -0
  133. package/dist/lib/local-registry/versions.js +163 -0
  134. package/dist/lib/local-registry/versions.js.map +1 -0
  135. package/dist/lib/lockfile.d.ts +38 -0
  136. package/dist/lib/lockfile.d.ts.map +1 -0
  137. package/dist/lib/lockfile.js +102 -0
  138. package/dist/lib/lockfile.js.map +1 -0
  139. package/dist/lib/meta-skill.d.ts +6 -0
  140. package/dist/lib/meta-skill.d.ts.map +1 -0
  141. package/dist/lib/meta-skill.js +72 -0
  142. package/dist/lib/meta-skill.js.map +1 -0
  143. package/dist/lib/semver.d.ts +63 -0
  144. package/dist/lib/semver.d.ts.map +1 -0
  145. package/dist/lib/semver.js +107 -0
  146. package/dist/lib/semver.js.map +1 -0
  147. package/dist/types.d.ts +147 -0
  148. package/dist/types.d.ts.map +1 -0
  149. package/dist/types.js +8 -0
  150. package/dist/types.js.map +1 -0
  151. package/package.json +57 -0
@@ -0,0 +1,60 @@
1
+ import type { AuthResponse, RegistryResponse, SkillResponse, SkillVersionResponse, SyncResponse, SearchResult, MemberResponse, InvitationResponse } from '../types.js';
2
+ export declare function register(email: string, password: string, username: string, displayName?: string): Promise<AuthResponse>;
3
+ export declare function login(email: string, password: string): Promise<AuthResponse>;
4
+ export declare function listRegistries(): Promise<RegistryResponse[]>;
5
+ export declare function getRegistry(slug: string): Promise<RegistryResponse>;
6
+ export declare function createRegistry(slug: string, name: string, options?: {
7
+ description?: string;
8
+ type?: 'personal' | 'organization';
9
+ publish_policy?: 'open' | 'require_approval';
10
+ }): Promise<RegistryResponse>;
11
+ export declare function listMembers(registrySlug: string): Promise<MemberResponse[]>;
12
+ export declare function inviteMember(registrySlug: string, email: string, role: 'member' | 'contributor' | 'admin'): Promise<void>;
13
+ export declare function listInvitations(): Promise<InvitationResponse[]>;
14
+ export declare function acceptInvitation(registrySlug: string, invitationId: string): Promise<void>;
15
+ export declare function declineInvitation(registrySlug: string, invitationId: string): Promise<void>;
16
+ export declare function listSkills(registrySlug: string, options?: {
17
+ tags?: string[];
18
+ compat?: string[];
19
+ search?: string;
20
+ }): Promise<SkillResponse[]>;
21
+ export declare function getSkill(registrySlug: string, skillSlug: string): Promise<SkillResponse>;
22
+ export declare function createSkill(registrySlug: string, data: {
23
+ slug: string;
24
+ name: string;
25
+ description?: string;
26
+ tags?: string[];
27
+ compat?: string[];
28
+ content: string;
29
+ version?: string;
30
+ }): Promise<{
31
+ skill: SkillResponse;
32
+ version: string;
33
+ }>;
34
+ export declare function updateSkill(registrySlug: string, skillSlug: string, data: {
35
+ name?: string;
36
+ description?: string;
37
+ tags?: string[];
38
+ compat?: string[];
39
+ }): Promise<SkillResponse>;
40
+ export declare function deleteSkill(registrySlug: string, skillSlug: string): Promise<void>;
41
+ export declare function listVersions(registrySlug: string, skillSlug: string): Promise<SkillVersionResponse[]>;
42
+ export declare function getVersion(registrySlug: string, skillSlug: string, version: string): Promise<SkillVersionResponse>;
43
+ export declare function createVersion(registrySlug: string, skillSlug: string, data: {
44
+ version: string;
45
+ content: string;
46
+ changelog?: string;
47
+ }): Promise<{
48
+ version: string;
49
+ changelog?: string;
50
+ }>;
51
+ export declare function search(query: string, options?: {
52
+ tags?: string[];
53
+ compat?: string[];
54
+ }): Promise<SearchResult[]>;
55
+ export declare function sync(skills: Array<{
56
+ registry: string;
57
+ slug: string;
58
+ version?: string;
59
+ }>): Promise<SyncResponse>;
60
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,340 @@
1
+ import { ofetch, FetchError } from 'ofetch';
2
+ import * as auth from './auth.js';
3
+ /**
4
+ * Get the base API URL
5
+ */
6
+ function getBaseUrl() {
7
+ const url = auth.getApiUrl();
8
+ if (!url) {
9
+ throw new Error('API URL not configured. Run `skills config api_url <url>` first.');
10
+ }
11
+ return url;
12
+ }
13
+ /**
14
+ * Get the web app URL for token refresh
15
+ */
16
+ function getWebAppUrl() {
17
+ const url = auth.getWebAppUrl();
18
+ // Fall back to default local development URL
19
+ return url || 'http://localhost:3000';
20
+ }
21
+ /**
22
+ * Get authorization headers
23
+ */
24
+ async function getAuthHeaders() {
25
+ const token = auth.getAccessToken();
26
+ if (!token) {
27
+ throw new Error('Not logged in. Run `skills login` first.');
28
+ }
29
+ const apiKey = process.env.SUPABASE_ANON_KEY ||
30
+ process.env.NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY;
31
+ // Check if token is expired and refresh if needed
32
+ if (auth.isTokenExpired()) {
33
+ const refreshToken = auth.getRefreshToken();
34
+ if (!refreshToken) {
35
+ throw new Error('Session expired. Run `skills login` again.');
36
+ }
37
+ try {
38
+ const response = await ofetch(`${getWebAppUrl()}/api/auth/token`, {
39
+ method: 'POST',
40
+ body: {
41
+ grant_type: 'refresh_token',
42
+ refresh_token: refreshToken,
43
+ },
44
+ });
45
+ auth.setTokens(response.access_token, response.refresh_token, response.expires_in || 3600);
46
+ return {
47
+ Authorization: `Bearer ${response.access_token}`,
48
+ ...(apiKey ? { apikey: apiKey } : {}),
49
+ };
50
+ }
51
+ catch {
52
+ auth.clearTokens();
53
+ throw new Error('Session expired. Run `skills login` again.');
54
+ }
55
+ }
56
+ return {
57
+ Authorization: `Bearer ${token}`,
58
+ ...(apiKey ? { apikey: apiKey } : {}),
59
+ };
60
+ }
61
+ /**
62
+ * Handle API errors
63
+ */
64
+ function handleError(error) {
65
+ if (error instanceof FetchError) {
66
+ const data = error.data;
67
+ if (data?.error) {
68
+ switch (data.error.code) {
69
+ case 'UNAUTHORIZED':
70
+ throw new Error('Not logged in. Run `skills login` first.');
71
+ case 'FORBIDDEN':
72
+ throw new Error(`Permission denied: ${data.error.message}`);
73
+ case 'NOT_FOUND':
74
+ throw new Error(data.error.message);
75
+ case 'CONFLICT':
76
+ throw new Error(data.error.message);
77
+ case 'VALIDATION_ERROR':
78
+ throw new Error(`Invalid input: ${data.error.message}`);
79
+ default:
80
+ throw new Error(data.error.message);
81
+ }
82
+ }
83
+ throw new Error(`API error: ${error.message}`);
84
+ }
85
+ throw error;
86
+ }
87
+ // =============================================================================
88
+ // AUTH
89
+ // =============================================================================
90
+ export async function register(email, password, username, displayName) {
91
+ try {
92
+ return await ofetch(`${getBaseUrl()}/auth/register`, {
93
+ method: 'POST',
94
+ body: { email, password, username, display_name: displayName },
95
+ });
96
+ }
97
+ catch (error) {
98
+ handleError(error);
99
+ }
100
+ }
101
+ export async function login(email, password) {
102
+ try {
103
+ return await ofetch(`${getBaseUrl()}/auth/login`, {
104
+ method: 'POST',
105
+ body: { email, password },
106
+ });
107
+ }
108
+ catch (error) {
109
+ handleError(error);
110
+ }
111
+ }
112
+ // =============================================================================
113
+ // REGISTRIES
114
+ // =============================================================================
115
+ export async function listRegistries() {
116
+ try {
117
+ const headers = await getAuthHeaders();
118
+ const response = await ofetch(`${getBaseUrl()}/registries`, { headers });
119
+ return response.registries;
120
+ }
121
+ catch (error) {
122
+ handleError(error);
123
+ }
124
+ }
125
+ export async function getRegistry(slug) {
126
+ try {
127
+ const headers = await getAuthHeaders();
128
+ return await ofetch(`${getBaseUrl()}/registries/${slug}`, {
129
+ headers,
130
+ });
131
+ }
132
+ catch (error) {
133
+ handleError(error);
134
+ }
135
+ }
136
+ export async function createRegistry(slug, name, options) {
137
+ try {
138
+ const headers = await getAuthHeaders();
139
+ const response = await ofetch(`${getBaseUrl()}/registries`, {
140
+ method: 'POST',
141
+ headers,
142
+ body: { slug, name, ...options },
143
+ });
144
+ return response.registry;
145
+ }
146
+ catch (error) {
147
+ handleError(error);
148
+ }
149
+ }
150
+ export async function listMembers(registrySlug) {
151
+ try {
152
+ const headers = await getAuthHeaders();
153
+ const response = await ofetch(`${getBaseUrl()}/registries/${registrySlug}/members`, { headers });
154
+ return response.members;
155
+ }
156
+ catch (error) {
157
+ handleError(error);
158
+ }
159
+ }
160
+ export async function inviteMember(registrySlug, email, role) {
161
+ try {
162
+ const headers = await getAuthHeaders();
163
+ await ofetch(`${getBaseUrl()}/registries/${registrySlug}/members/invite`, {
164
+ method: 'POST',
165
+ headers,
166
+ body: { email, role },
167
+ });
168
+ }
169
+ catch (error) {
170
+ handleError(error);
171
+ }
172
+ }
173
+ export async function listInvitations() {
174
+ try {
175
+ const headers = await getAuthHeaders();
176
+ const response = await ofetch(`${getBaseUrl()}/invitations`, { headers });
177
+ return response.invitations;
178
+ }
179
+ catch (error) {
180
+ handleError(error);
181
+ }
182
+ }
183
+ export async function acceptInvitation(registrySlug, invitationId) {
184
+ try {
185
+ const headers = await getAuthHeaders();
186
+ await ofetch(`${getBaseUrl()}/registries/${registrySlug}/invitations/${invitationId}/accept`, { method: 'POST', headers });
187
+ }
188
+ catch (error) {
189
+ handleError(error);
190
+ }
191
+ }
192
+ export async function declineInvitation(registrySlug, invitationId) {
193
+ try {
194
+ const headers = await getAuthHeaders();
195
+ await ofetch(`${getBaseUrl()}/registries/${registrySlug}/invitations/${invitationId}/decline`, { method: 'POST', headers });
196
+ }
197
+ catch (error) {
198
+ handleError(error);
199
+ }
200
+ }
201
+ // =============================================================================
202
+ // SKILLS
203
+ // =============================================================================
204
+ export async function listSkills(registrySlug, options) {
205
+ try {
206
+ const headers = await getAuthHeaders();
207
+ const params = new URLSearchParams();
208
+ if (options?.tags?.length)
209
+ params.set('tags', options.tags.join(','));
210
+ if (options?.compat?.length)
211
+ params.set('compat', options.compat.join(','));
212
+ if (options?.search)
213
+ params.set('search', options.search);
214
+ const queryString = params.toString();
215
+ const url = `${getBaseUrl()}/registries/${registrySlug}/skills${queryString ? `?${queryString}` : ''}`;
216
+ const response = await ofetch(url, { headers });
217
+ return response.skills;
218
+ }
219
+ catch (error) {
220
+ handleError(error);
221
+ }
222
+ }
223
+ export async function getSkill(registrySlug, skillSlug) {
224
+ try {
225
+ const headers = await getAuthHeaders();
226
+ return await ofetch(`${getBaseUrl()}/registries/${registrySlug}/skills/${skillSlug}`, { headers });
227
+ }
228
+ catch (error) {
229
+ handleError(error);
230
+ }
231
+ }
232
+ export async function createSkill(registrySlug, data) {
233
+ try {
234
+ const headers = await getAuthHeaders();
235
+ return await ofetch(`${getBaseUrl()}/registries/${registrySlug}/skills`, {
236
+ method: 'POST',
237
+ headers,
238
+ body: data,
239
+ });
240
+ }
241
+ catch (error) {
242
+ handleError(error);
243
+ }
244
+ }
245
+ export async function updateSkill(registrySlug, skillSlug, data) {
246
+ try {
247
+ const headers = await getAuthHeaders();
248
+ const response = await ofetch(`${getBaseUrl()}/registries/${registrySlug}/skills/${skillSlug}`, {
249
+ method: 'PUT',
250
+ headers,
251
+ body: data,
252
+ });
253
+ return response.skill;
254
+ }
255
+ catch (error) {
256
+ handleError(error);
257
+ }
258
+ }
259
+ export async function deleteSkill(registrySlug, skillSlug) {
260
+ try {
261
+ const headers = await getAuthHeaders();
262
+ await ofetch(`${getBaseUrl()}/registries/${registrySlug}/skills/${skillSlug}`, {
263
+ method: 'DELETE',
264
+ headers,
265
+ });
266
+ }
267
+ catch (error) {
268
+ handleError(error);
269
+ }
270
+ }
271
+ // =============================================================================
272
+ // VERSIONS
273
+ // =============================================================================
274
+ export async function listVersions(registrySlug, skillSlug) {
275
+ try {
276
+ const headers = await getAuthHeaders();
277
+ const response = await ofetch(`${getBaseUrl()}/registries/${registrySlug}/skills/${skillSlug}/versions`, { headers });
278
+ return response.versions;
279
+ }
280
+ catch (error) {
281
+ handleError(error);
282
+ }
283
+ }
284
+ export async function getVersion(registrySlug, skillSlug, version) {
285
+ try {
286
+ const headers = await getAuthHeaders();
287
+ return await ofetch(`${getBaseUrl()}/registries/${registrySlug}/skills/${skillSlug}/versions/${version}`, { headers });
288
+ }
289
+ catch (error) {
290
+ handleError(error);
291
+ }
292
+ }
293
+ export async function createVersion(registrySlug, skillSlug, data) {
294
+ try {
295
+ const headers = await getAuthHeaders();
296
+ return await ofetch(`${getBaseUrl()}/registries/${registrySlug}/skills/${skillSlug}/versions`, {
297
+ method: 'POST',
298
+ headers,
299
+ body: data,
300
+ });
301
+ }
302
+ catch (error) {
303
+ handleError(error);
304
+ }
305
+ }
306
+ // =============================================================================
307
+ // SEARCH
308
+ // =============================================================================
309
+ export async function search(query, options) {
310
+ try {
311
+ const headers = await getAuthHeaders();
312
+ const params = new URLSearchParams({ q: query });
313
+ if (options?.tags?.length)
314
+ params.set('tags', options.tags.join(','));
315
+ if (options?.compat?.length)
316
+ params.set('compat', options.compat.join(','));
317
+ const response = await ofetch(`${getBaseUrl()}/search?${params}`, { headers });
318
+ return response.results;
319
+ }
320
+ catch (error) {
321
+ handleError(error);
322
+ }
323
+ }
324
+ // =============================================================================
325
+ // SYNC
326
+ // =============================================================================
327
+ export async function sync(skills) {
328
+ try {
329
+ const headers = await getAuthHeaders();
330
+ return await ofetch(`${getBaseUrl()}/sync`, {
331
+ method: 'POST',
332
+ headers,
333
+ body: { skills },
334
+ });
335
+ }
336
+ catch (error) {
337
+ handleError(error);
338
+ }
339
+ }
340
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ import type { CLIConfig } from "../types.js";
2
+ /**
3
+ * Get the config file path (~/.overskill/config.json)
4
+ */
5
+ export declare function getConfigPath(): string;
6
+ /**
7
+ * Get the API URL
8
+ */
9
+ export declare function getApiUrl(): string | undefined;
10
+ /**
11
+ * Set the API URL
12
+ */
13
+ export declare function setApiUrl(url: string): void;
14
+ /**
15
+ * Get the web app URL
16
+ */
17
+ export declare function getWebAppUrl(): string | undefined;
18
+ /**
19
+ * Set the web app URL
20
+ */
21
+ export declare function setWebAppUrl(url: string): void;
22
+ /**
23
+ * Get the access token
24
+ */
25
+ export declare function getAccessToken(): string | undefined;
26
+ /**
27
+ * Get the refresh token
28
+ */
29
+ export declare function getRefreshToken(): string | undefined;
30
+ /**
31
+ * Get token expiration time
32
+ */
33
+ export declare function getExpiresAt(): number | undefined;
34
+ /**
35
+ * Store authentication tokens
36
+ */
37
+ export declare function setTokens(accessToken: string, refreshToken: string, expiresIn: number): void;
38
+ /**
39
+ * Clear authentication tokens
40
+ */
41
+ export declare function clearTokens(): void;
42
+ /**
43
+ * Check if tokens are expired
44
+ */
45
+ export declare function isTokenExpired(): boolean;
46
+ /**
47
+ * Check if user is logged in
48
+ */
49
+ export declare function isLoggedIn(): boolean;
50
+ /**
51
+ * Get preferred editor
52
+ */
53
+ export declare function getEditor(): string;
54
+ /**
55
+ * Set preferred editor
56
+ */
57
+ export declare function setEditor(editor: string): void;
58
+ /**
59
+ * Get default install path
60
+ */
61
+ export declare function getDefaultInstallPath(): string;
62
+ /**
63
+ * Set default install path
64
+ */
65
+ export declare function setDefaultInstallPath(installPath: string): void;
66
+ /**
67
+ * Get a config value
68
+ */
69
+ export declare function get<K extends keyof CLIConfig>(key: K): CLIConfig[K] | undefined;
70
+ /**
71
+ * Set a config value
72
+ */
73
+ export declare function set<K extends keyof CLIConfig>(key: K, value: CLIConfig[K]): void;
74
+ /**
75
+ * Get all config
76
+ */
77
+ export declare function getAll(): CLIConfig;
78
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA+D7C;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAmDD;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,GAAG,SAAS,CAE9C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAI3C;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,GAAG,SAAS,CAEjD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAI9C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,GAAG,SAAS,CAEnD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CAEpD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,GAAG,SAAS,CAEjD;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,IAAI,CAMN;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAMlC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAKxC;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAIlC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAI9C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAI/D;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,SAAS,EAC3C,GAAG,EAAE,CAAC,GACL,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAE1B;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,SAAS,EAC3C,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAClB,IAAI,CAIN;AAED;;GAEG;AACH,wBAAgB,MAAM,IAAI,SAAS,CAElC"}