hacklab 0.0.1 → 0.3.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.
- package/README.md +48 -8
- package/bin/ddd +19 -0
- package/dist/commands/brag.d.ts +3 -6
- package/dist/commands/brag.d.ts.map +1 -1
- package/dist/commands/brag.js +68 -299
- package/dist/commands/brag.js.map +1 -1
- package/dist/commands/claim.d.ts +2 -0
- package/dist/commands/claim.d.ts.map +1 -0
- package/dist/commands/claim.js +534 -0
- package/dist/commands/claim.js.map +1 -0
- package/dist/commands/config.d.ts +2 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +48 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/dojo-init.d.ts +2 -0
- package/dist/commands/dojo-init.d.ts.map +1 -0
- package/dist/commands/dojo-init.js +75 -0
- package/dist/commands/dojo-init.js.map +1 -0
- package/dist/commands/drop.d.ts +2 -0
- package/dist/commands/drop.d.ts.map +1 -0
- package/dist/commands/drop.js +29 -0
- package/dist/commands/drop.js.map +1 -0
- package/dist/commands/exam.d.ts +5 -0
- package/dist/commands/exam.d.ts.map +1 -0
- package/dist/commands/exam.js +224 -0
- package/dist/commands/exam.js.map +1 -0
- package/dist/commands/login.d.ts +1 -14
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +70 -102
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/scan-profile.d.ts +33 -0
- package/dist/commands/scan-profile.d.ts.map +1 -0
- package/dist/commands/scan-profile.js +279 -0
- package/dist/commands/scan-profile.js.map +1 -0
- package/dist/commands/signup.d.ts +11 -0
- package/dist/commands/signup.d.ts.map +1 -0
- package/dist/commands/signup.js +242 -0
- package/dist/commands/signup.js.map +1 -0
- package/dist/commands/sync.d.ts +2 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +55 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/whoami.d.ts +1 -1
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +10 -16
- package/dist/commands/whoami.js.map +1 -1
- package/dist/config.d.ts +7 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +18 -0
- package/dist/config.js.map +1 -0
- package/dist/dd.d.ts +3 -0
- package/dist/dd.d.ts.map +1 -0
- package/dist/dd.js +28 -0
- package/dist/dd.js.map +1 -0
- package/dist/index.js +125 -134
- package/dist/index.js.map +1 -1
- package/dist/project-brag.d.ts +58 -0
- package/dist/project-brag.d.ts.map +1 -0
- package/dist/project-brag.js +270 -0
- package/dist/project-brag.js.map +1 -0
- package/dist/scanners/index.d.ts +24 -0
- package/dist/scanners/index.d.ts.map +1 -0
- package/dist/scanners/index.js +543 -0
- package/dist/scanners/index.js.map +1 -0
- package/dist/scanners/util.d.ts +83 -0
- package/dist/scanners/util.d.ts.map +1 -0
- package/dist/scanners/util.js +129 -0
- package/dist/scanners/util.js.map +1 -0
- package/dist/session.d.ts +17 -12
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +46 -141
- package/dist/session.js.map +1 -1
- package/dist/share-card.d.ts +29 -0
- package/dist/share-card.d.ts.map +1 -0
- package/dist/share-card.js +401 -0
- package/dist/share-card.js.map +1 -0
- package/dist/sync.d.ts +64 -0
- package/dist/sync.d.ts.map +1 -0
- package/dist/sync.js +805 -0
- package/dist/sync.js.map +1 -0
- package/dist/ui.d.ts +10 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +21 -0
- package/dist/ui.js.map +1 -0
- package/dist/utils/openBrowser.js.map +1 -1
- package/package.json +36 -27
- package/dist/api/client.d.ts +0 -118
- package/dist/api/client.d.ts.map +0 -1
- package/dist/api/client.js +0 -214
- package/dist/api/client.js.map +0 -1
- package/dist/commands/brag.utils.d.ts +0 -12
- package/dist/commands/brag.utils.d.ts.map +0 -1
- package/dist/commands/brag.utils.js +0 -43
- package/dist/commands/brag.utils.js.map +0 -1
- package/dist/commands/essay.d.ts +0 -18
- package/dist/commands/essay.d.ts.map +0 -1
- package/dist/commands/essay.js +0 -117
- package/dist/commands/essay.js.map +0 -1
- package/dist/commands/init.d.ts +0 -16
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -237
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/join.d.ts +0 -10
- package/dist/commands/join.d.ts.map +0 -1
- package/dist/commands/join.js +0 -314
- package/dist/commands/join.js.map +0 -1
- package/dist/commands/link.d.ts +0 -17
- package/dist/commands/link.d.ts.map +0 -1
- package/dist/commands/link.js +0 -36
- package/dist/commands/link.js.map +0 -1
- package/dist/commands/login.utils.d.ts +0 -3
- package/dist/commands/login.utils.d.ts.map +0 -1
- package/dist/commands/login.utils.js +0 -13
- package/dist/commands/login.utils.js.map +0 -1
- package/dist/commands/new.d.ts +0 -15
- package/dist/commands/new.d.ts.map +0 -1
- package/dist/commands/new.js +0 -172
- package/dist/commands/new.js.map +0 -1
- package/dist/commands/new.utils.d.ts +0 -7
- package/dist/commands/new.utils.d.ts.map +0 -1
- package/dist/commands/new.utils.js +0 -50
- package/dist/commands/new.utils.js.map +0 -1
- package/dist/commands/onboard.d.ts +0 -10
- package/dist/commands/onboard.d.ts.map +0 -1
- package/dist/commands/onboard.js +0 -93
- package/dist/commands/onboard.js.map +0 -1
- package/dist/commands/tui.d.ts +0 -12
- package/dist/commands/tui.d.ts.map +0 -1
- package/dist/commands/tui.js +0 -112
- package/dist/commands/tui.js.map +0 -1
- package/dist/help-format.d.ts +0 -4
- package/dist/help-format.d.ts.map +0 -1
- package/dist/help-format.js +0 -30
- package/dist/help-format.js.map +0 -1
- package/dist/lab/config.d.ts +0 -32
- package/dist/lab/config.d.ts.map +0 -1
- package/dist/lab/config.js +0 -148
- package/dist/lab/config.js.map +0 -1
- package/dist/lab/contentStatus.d.ts +0 -6
- package/dist/lab/contentStatus.d.ts.map +0 -1
- package/dist/lab/contentStatus.js +0 -19
- package/dist/lab/contentStatus.js.map +0 -1
- package/dist/ui/banner.d.ts +0 -2
- package/dist/ui/banner.d.ts.map +0 -1
- package/dist/ui/banner.js +0 -22
- package/dist/ui/banner.js.map +0 -1
- package/dist/utils/findRepoRoot.d.ts +0 -2
- package/dist/utils/findRepoRoot.d.ts.map +0 -1
- package/dist/utils/findRepoRoot.js +0 -17
- package/dist/utils/findRepoRoot.js.map +0 -1
- package/dist/utils/pathExists.d.ts +0 -2
- package/dist/utils/pathExists.d.ts.map +0 -1
- package/dist/utils/pathExists.js +0 -11
- package/dist/utils/pathExists.js.map +0 -1
package/dist/commands/join.js
DELETED
|
@@ -1,314 +0,0 @@
|
|
|
1
|
-
import { execFile } from 'node:child_process';
|
|
2
|
-
import { mkdir } from 'node:fs/promises';
|
|
3
|
-
import { homedir } from 'node:os';
|
|
4
|
-
import { relative, resolve } from 'node:path';
|
|
5
|
-
import { promisify } from 'node:util';
|
|
6
|
-
import { cancel, intro, isCancel, note, outro, select, text } from '@clack/prompts';
|
|
7
|
-
import { initializeRepository } from './init.js';
|
|
8
|
-
import { getAppUrl } from './login.utils.js';
|
|
9
|
-
import { loginCommand } from './login.js';
|
|
10
|
-
import { createPublicCliAgent } from '../api/client.js';
|
|
11
|
-
import { linkHqToAccount } from '../session.js';
|
|
12
|
-
import { pathExists } from '../utils/pathExists.js';
|
|
13
|
-
const execFileAsync = promisify(execFile);
|
|
14
|
-
export function normalizeRepoName(rawValue) {
|
|
15
|
-
return rawValue
|
|
16
|
-
.trim()
|
|
17
|
-
.toLowerCase()
|
|
18
|
-
.replace(/\s+/g, '-')
|
|
19
|
-
.replace(/[^a-z0-9._-]/g, '');
|
|
20
|
-
}
|
|
21
|
-
export function resolveWizardLocation(input, currentLocation) {
|
|
22
|
-
const normalized = input.trim();
|
|
23
|
-
if (!normalized) {
|
|
24
|
-
return currentLocation;
|
|
25
|
-
}
|
|
26
|
-
return resolve(currentLocation, normalized);
|
|
27
|
-
}
|
|
28
|
-
export function pickDefaultBaseLocation(currentDirectory, homeDirectory, hasHomeGhDirectory) {
|
|
29
|
-
if (currentDirectory && currentDirectory !== '/') {
|
|
30
|
-
return currentDirectory;
|
|
31
|
-
}
|
|
32
|
-
if (hasHomeGhDirectory) {
|
|
33
|
-
return resolve(homeDirectory, 'gh');
|
|
34
|
-
}
|
|
35
|
-
return homeDirectory;
|
|
36
|
-
}
|
|
37
|
-
async function getDefaultBaseLocation() {
|
|
38
|
-
const currentDirectory = process.cwd();
|
|
39
|
-
const homeDirectory = homedir();
|
|
40
|
-
const homeGhDirectory = resolve(homeDirectory, 'gh');
|
|
41
|
-
const hasHomeGhDirectory = await pathExists(homeGhDirectory);
|
|
42
|
-
return pickDefaultBaseLocation(currentDirectory, homeDirectory, hasHomeGhDirectory);
|
|
43
|
-
}
|
|
44
|
-
async function promptForLabLocation(initialLocation) {
|
|
45
|
-
let selectedLocation = initialLocation;
|
|
46
|
-
while (true) {
|
|
47
|
-
const action = await select({
|
|
48
|
-
message: `create hq in ${selectedLocation}?`,
|
|
49
|
-
options: [
|
|
50
|
-
{
|
|
51
|
-
value: 'continue',
|
|
52
|
-
label: 'yes, continue',
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
value: 'change',
|
|
56
|
-
label: 'change location',
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
value: 'exit',
|
|
60
|
-
label: 'exit',
|
|
61
|
-
},
|
|
62
|
-
],
|
|
63
|
-
});
|
|
64
|
-
if (isCancel(action)) {
|
|
65
|
-
cancel('join cancelled.');
|
|
66
|
-
process.exit(1);
|
|
67
|
-
}
|
|
68
|
-
const parsedAction = String(action);
|
|
69
|
-
if (parsedAction === 'continue') {
|
|
70
|
-
return selectedLocation;
|
|
71
|
-
}
|
|
72
|
-
if (parsedAction === 'exit') {
|
|
73
|
-
return null;
|
|
74
|
-
}
|
|
75
|
-
const pathInput = await text({
|
|
76
|
-
message: 'new location',
|
|
77
|
-
placeholder: selectedLocation,
|
|
78
|
-
});
|
|
79
|
-
if (isCancel(pathInput)) {
|
|
80
|
-
cancel('join cancelled.');
|
|
81
|
-
process.exit(1);
|
|
82
|
-
}
|
|
83
|
-
selectedLocation = resolveWizardLocation(String(pathInput), selectedLocation);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
async function ensureGitRepository(repoLocation) {
|
|
87
|
-
if (await pathExists(resolve(repoLocation, '.git'))) {
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
await execFileAsync('git', ['init', '-q'], {
|
|
91
|
-
cwd: repoLocation,
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
function defaultRepoName(nickname) {
|
|
95
|
-
return nickname ? `${nickname}-hq` : 'my-hq';
|
|
96
|
-
}
|
|
97
|
-
export function normalizeAgentHandle(rawValue) {
|
|
98
|
-
return rawValue
|
|
99
|
-
.trim()
|
|
100
|
-
.toLowerCase()
|
|
101
|
-
.replace(/[^a-z0-9-]/g, '-')
|
|
102
|
-
.replace(/-+/g, '-')
|
|
103
|
-
.replace(/^-|-$/g, '');
|
|
104
|
-
}
|
|
105
|
-
async function runAgentJoinFlow(options) {
|
|
106
|
-
const appUrl = getAppUrl(options.appUrl);
|
|
107
|
-
let result = null;
|
|
108
|
-
while (!result) {
|
|
109
|
-
const handleInput = await text({
|
|
110
|
-
message: 'agent handle',
|
|
111
|
-
placeholder: 'my-agent',
|
|
112
|
-
validate: (value) => {
|
|
113
|
-
const normalized = normalizeAgentHandle(String(value));
|
|
114
|
-
if (!normalized) {
|
|
115
|
-
return 'handle is required.';
|
|
116
|
-
}
|
|
117
|
-
if (normalized.length < 2) {
|
|
118
|
-
return 'handle must be at least 2 characters.';
|
|
119
|
-
}
|
|
120
|
-
if (normalized.length > 80) {
|
|
121
|
-
return 'handle must be at most 80 characters.';
|
|
122
|
-
}
|
|
123
|
-
return undefined;
|
|
124
|
-
},
|
|
125
|
-
});
|
|
126
|
-
if (isCancel(handleInput)) {
|
|
127
|
-
cancel('join cancelled.');
|
|
128
|
-
process.exit(1);
|
|
129
|
-
}
|
|
130
|
-
const handle = normalizeAgentHandle(String(handleInput));
|
|
131
|
-
const bioInput = await text({
|
|
132
|
-
message: 'agent bio',
|
|
133
|
-
placeholder: 'what does this agent do?',
|
|
134
|
-
});
|
|
135
|
-
if (isCancel(bioInput)) {
|
|
136
|
-
cancel('join cancelled.');
|
|
137
|
-
process.exit(1);
|
|
138
|
-
}
|
|
139
|
-
const avatarInput = await text({
|
|
140
|
-
message: 'profile pic url',
|
|
141
|
-
placeholder: 'https://...',
|
|
142
|
-
});
|
|
143
|
-
if (isCancel(avatarInput)) {
|
|
144
|
-
cancel('join cancelled.');
|
|
145
|
-
process.exit(1);
|
|
146
|
-
}
|
|
147
|
-
const bio = String(bioInput).trim();
|
|
148
|
-
const avatarUrl = String(avatarInput).trim();
|
|
149
|
-
try {
|
|
150
|
-
result = await createPublicCliAgent(appUrl, {
|
|
151
|
-
handle,
|
|
152
|
-
bio,
|
|
153
|
-
avatarUrl,
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
catch (error) {
|
|
157
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
158
|
-
if (message.toLowerCase().includes('handle') &&
|
|
159
|
-
message.toLowerCase().includes('taken')) {
|
|
160
|
-
note('handle is already taken. choose another one.', 'error');
|
|
161
|
-
continue;
|
|
162
|
-
}
|
|
163
|
-
if (message.toLowerCase().includes('invalid request payload')) {
|
|
164
|
-
note('invalid bio or profile pic url. try again.', 'error');
|
|
165
|
-
continue;
|
|
166
|
-
}
|
|
167
|
-
if (message.toLowerCase().includes('fetch failed')) {
|
|
168
|
-
cancel('cannot reach hacklab app. use `--app-url <url>`.');
|
|
169
|
-
process.exit(1);
|
|
170
|
-
}
|
|
171
|
-
cancel(`failed to create agent profile: ${message}`);
|
|
172
|
-
process.exit(1);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
note(result.agent.claimState.toLowerCase(), 'claim state');
|
|
176
|
-
note(result.agent.slug, 'handle');
|
|
177
|
-
note(result.profileUrl, 'profile');
|
|
178
|
-
note(result.claimUrl, 'claim link');
|
|
179
|
-
outro([
|
|
180
|
-
'agent join complete.',
|
|
181
|
-
'you are currently in unclaimed mode.',
|
|
182
|
-
'share the claim link with a human owner to activate gated capabilities.',
|
|
183
|
-
].join('\n'));
|
|
184
|
-
}
|
|
185
|
-
async function promptSetupAction() {
|
|
186
|
-
const value = await select({
|
|
187
|
-
message: 'set up your hq now?',
|
|
188
|
-
options: [
|
|
189
|
-
{
|
|
190
|
-
value: 'setup-now',
|
|
191
|
-
label: 'yes, set up hq now (recommended)',
|
|
192
|
-
},
|
|
193
|
-
{
|
|
194
|
-
value: 'skip',
|
|
195
|
-
label: 'skip for now',
|
|
196
|
-
},
|
|
197
|
-
],
|
|
198
|
-
});
|
|
199
|
-
if (isCancel(value)) {
|
|
200
|
-
return 'skip';
|
|
201
|
-
}
|
|
202
|
-
return String(value);
|
|
203
|
-
}
|
|
204
|
-
async function promptJoinIdentity() {
|
|
205
|
-
const value = await select({
|
|
206
|
-
message: 'who are you?',
|
|
207
|
-
options: [
|
|
208
|
-
{
|
|
209
|
-
value: 'human',
|
|
210
|
-
label: 'human',
|
|
211
|
-
},
|
|
212
|
-
{
|
|
213
|
-
value: 'agent',
|
|
214
|
-
label: 'agent',
|
|
215
|
-
},
|
|
216
|
-
],
|
|
217
|
-
});
|
|
218
|
-
if (isCancel(value)) {
|
|
219
|
-
cancel('join cancelled.');
|
|
220
|
-
process.exit(1);
|
|
221
|
-
}
|
|
222
|
-
return String(value);
|
|
223
|
-
}
|
|
224
|
-
export async function joinCommand(options = {}) {
|
|
225
|
-
intro('join hacklab');
|
|
226
|
-
const identity = await promptJoinIdentity();
|
|
227
|
-
note(`identity: ${identity}`, 'identity');
|
|
228
|
-
if (identity === 'agent') {
|
|
229
|
-
await runAgentJoinFlow(options);
|
|
230
|
-
return;
|
|
231
|
-
}
|
|
232
|
-
const loginResult = await loginCommand({
|
|
233
|
-
appUrl: options.appUrl,
|
|
234
|
-
mode: 'join',
|
|
235
|
-
showIntro: false,
|
|
236
|
-
showSuccess: false,
|
|
237
|
-
showAuthorizeUrlWhenOpened: true,
|
|
238
|
-
});
|
|
239
|
-
const nicknameLabel = loginResult.nickname ? ` (${loginResult.nickname})` : '';
|
|
240
|
-
note(`joined as ${loginResult.email}${nicknameLabel}`, 'account');
|
|
241
|
-
const setupAction = await promptSetupAction();
|
|
242
|
-
if (setupAction === 'skip') {
|
|
243
|
-
outro([
|
|
244
|
-
'join complete.',
|
|
245
|
-
'next:',
|
|
246
|
-
'- run `hacklab init` in a new repo to scaffold a fresh hq',
|
|
247
|
-
'- or run `hacklab link` in an existing repo',
|
|
248
|
-
].join('\n'));
|
|
249
|
-
return;
|
|
250
|
-
}
|
|
251
|
-
const defaultBaseLocation = await getDefaultBaseLocation();
|
|
252
|
-
const baseLocation = await promptForLabLocation(defaultBaseLocation);
|
|
253
|
-
if (!baseLocation) {
|
|
254
|
-
outro([
|
|
255
|
-
'join complete.',
|
|
256
|
-
'hq setup skipped.',
|
|
257
|
-
'run `hacklab init` or `hacklab link` when ready.',
|
|
258
|
-
].join('\n'));
|
|
259
|
-
return;
|
|
260
|
-
}
|
|
261
|
-
const suggestedRepoName = defaultRepoName(loginResult.nickname);
|
|
262
|
-
const repoNameInput = await text({
|
|
263
|
-
message: 'hq repo name',
|
|
264
|
-
placeholder: suggestedRepoName,
|
|
265
|
-
validate: (value) => {
|
|
266
|
-
const rawValue = String(value).trim();
|
|
267
|
-
if (!rawValue) {
|
|
268
|
-
return undefined;
|
|
269
|
-
}
|
|
270
|
-
const normalized = normalizeRepoName(rawValue);
|
|
271
|
-
if (!normalized) {
|
|
272
|
-
return 'repository name is required.';
|
|
273
|
-
}
|
|
274
|
-
if (normalized.length < 2) {
|
|
275
|
-
return 'repository name must be at least 2 characters.';
|
|
276
|
-
}
|
|
277
|
-
if (normalized.length > 64) {
|
|
278
|
-
return 'repository name must be at most 64 characters.';
|
|
279
|
-
}
|
|
280
|
-
return undefined;
|
|
281
|
-
},
|
|
282
|
-
});
|
|
283
|
-
if (isCancel(repoNameInput)) {
|
|
284
|
-
outro([
|
|
285
|
-
'join complete.',
|
|
286
|
-
'hq setup skipped.',
|
|
287
|
-
'run `hacklab init` or `hacklab link` when ready.',
|
|
288
|
-
].join('\n'));
|
|
289
|
-
return;
|
|
290
|
-
}
|
|
291
|
-
const repoName = normalizeRepoName(String(repoNameInput)) || suggestedRepoName;
|
|
292
|
-
const repoLocation = resolve(baseLocation, repoName);
|
|
293
|
-
await mkdir(repoLocation, { recursive: true });
|
|
294
|
-
try {
|
|
295
|
-
await ensureGitRepository(repoLocation);
|
|
296
|
-
}
|
|
297
|
-
catch {
|
|
298
|
-
cancel('failed to initialize git repository. make sure git is installed.');
|
|
299
|
-
process.exit(1);
|
|
300
|
-
}
|
|
301
|
-
const result = await initializeRepository(repoLocation, {
|
|
302
|
-
name: repoName,
|
|
303
|
-
});
|
|
304
|
-
if (result.status === 'already-initialized') {
|
|
305
|
-
note(`hq already initialized at ${repoLocation}`, 'hq');
|
|
306
|
-
}
|
|
307
|
-
else {
|
|
308
|
-
note(`hq ready at ${repoLocation}`, 'hq');
|
|
309
|
-
}
|
|
310
|
-
await linkHqToAccount(loginResult.email, repoLocation);
|
|
311
|
-
const relativePath = relative(process.cwd(), repoLocation) || '.';
|
|
312
|
-
outro(`join complete.\nnext: cd ${relativePath} && hacklab tui`);
|
|
313
|
-
}
|
|
314
|
-
//# sourceMappingURL=join.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"join.js","sourceRoot":"","sources":["../../src/commands/join.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/link.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { type HacklabConfig } from '../lab/config.js';
|
|
2
|
-
type LinkOptions = {
|
|
3
|
-
name?: string;
|
|
4
|
-
force?: boolean;
|
|
5
|
-
};
|
|
6
|
-
export type LinkResult = {
|
|
7
|
-
status: 'linked';
|
|
8
|
-
configPath: string;
|
|
9
|
-
config: HacklabConfig;
|
|
10
|
-
} | {
|
|
11
|
-
status: 'already-linked';
|
|
12
|
-
configPath: string;
|
|
13
|
-
};
|
|
14
|
-
export declare function linkRepository(repoRoot: string, options?: LinkOptions): Promise<LinkResult>;
|
|
15
|
-
export declare function linkCommand(options?: LinkOptions): Promise<void>;
|
|
16
|
-
export {};
|
|
17
|
-
//# sourceMappingURL=link.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/commands/link.ts"],"names":[],"mappings":"AAIA,OAAO,EAKH,KAAK,aAAa,EACrB,MAAM,kBAAkB,CAAA;AAGzB,KAAK,WAAW,GAAG;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,UAAU,GAChB;IACI,MAAM,EAAE,QAAQ,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,aAAa,CAAA;CACxB,GACD;IACI,MAAM,EAAE,gBAAgB,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;CACrB,CAAA;AAEP,wBAAsB,cAAc,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,WAAgB,GAC1B,OAAO,CAAC,UAAU,CAAC,CAqBrB;AAED,wBAAsB,WAAW,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB1E"}
|
package/dist/commands/link.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { basename, relative } from 'node:path';
|
|
2
|
-
import { cancel, intro, note, outro } from '@clack/prompts';
|
|
3
|
-
import { createDefaultHacklabConfig, getHacklabConfigPath, hasHacklabConfig, saveHacklabConfig, } from '../lab/config.js';
|
|
4
|
-
import { findRepoRoot } from '../utils/findRepoRoot.js';
|
|
5
|
-
export async function linkRepository(repoRoot, options = {}) {
|
|
6
|
-
const configPath = getHacklabConfigPath(repoRoot);
|
|
7
|
-
if ((await hasHacklabConfig(repoRoot)) && !options.force) {
|
|
8
|
-
return {
|
|
9
|
-
status: 'already-linked',
|
|
10
|
-
configPath,
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
const defaultLabName = basename(repoRoot);
|
|
14
|
-
const config = createDefaultHacklabConfig({
|
|
15
|
-
labName: options.name || defaultLabName,
|
|
16
|
-
});
|
|
17
|
-
await saveHacklabConfig(repoRoot, config);
|
|
18
|
-
return {
|
|
19
|
-
status: 'linked',
|
|
20
|
-
configPath,
|
|
21
|
-
config,
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
export async function linkCommand(options = {}) {
|
|
25
|
-
intro('link existing repository to hacklab');
|
|
26
|
-
const repoRoot = await findRepoRoot();
|
|
27
|
-
const result = await linkRepository(repoRoot, options);
|
|
28
|
-
if (result.status === 'already-linked') {
|
|
29
|
-
cancel(`repository is already linked at ${relative(process.cwd(), result.configPath) || result.configPath}. use --force to overwrite config.`);
|
|
30
|
-
process.exit(1);
|
|
31
|
-
}
|
|
32
|
-
note(`linked ${repoRoot}`, 'repository');
|
|
33
|
-
note(relative(process.cwd(), result.configPath) || result.configPath, 'config path');
|
|
34
|
-
outro('repository linked. no content folders were created.');
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=link.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"link.js","sourceRoot":"","sources":["../../src/commands/link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAE9C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAE3D,OAAO,EACH,0BAA0B,EAC1B,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,GAEpB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAkBvD,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,QAAgB,EAChB,UAAuB,EAAE;IAEzB,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAA;IAEjD,IAAI,CAAC,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACvD,OAAO;YACH,MAAM,EAAE,gBAAgB;YACxB,UAAU;SACb,CAAA;IACL,CAAC;IAED,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACzC,MAAM,MAAM,GAAG,0BAA0B,CAAC;QACtC,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,cAAc;KAC1C,CAAC,CAAA;IACF,MAAM,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAEzC,OAAO;QACH,MAAM,EAAE,QAAQ;QAChB,UAAU;QACV,MAAM;KACT,CAAA;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,UAAuB,EAAE;IACvD,KAAK,CAAC,qCAAqC,CAAC,CAAA;IAE5C,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAA;IACrC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAEtD,IAAI,MAAM,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;QACrC,MAAM,CACF,mCAAmC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,oCAAoC,CACzI,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;IAED,IAAI,CAAC,UAAU,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAA;IACxC,IAAI,CACA,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,EAC/D,aAAa,CAChB,CAAA;IACD,KAAK,CAAC,qDAAqD,CAAC,CAAA;AAChE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"login.utils.d.ts","sourceRoot":"","sources":["../../src/commands/login.utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,0BAA0B,CAAA;AAEtD,wBAAgB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAYjD"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export const DEFAULT_APP_URL = 'http://localhost:3000';
|
|
2
|
-
export function getAppUrl(appUrl) {
|
|
3
|
-
const normalizedOption = appUrl?.trim();
|
|
4
|
-
if (normalizedOption) {
|
|
5
|
-
return normalizedOption.replace(/\/$/, '');
|
|
6
|
-
}
|
|
7
|
-
const envUrl = process.env.HACKLAB_APP_URL?.trim();
|
|
8
|
-
if (envUrl) {
|
|
9
|
-
return envUrl.replace(/\/$/, '');
|
|
10
|
-
}
|
|
11
|
-
return DEFAULT_APP_URL;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=login.utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"login.utils.js","sourceRoot":"","sources":["../../src/commands/login.utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB,CAAA;AAEtD,MAAM,UAAU,SAAS,CAAC,MAAe;IACrC,MAAM,gBAAgB,GAAG,MAAM,EAAE,IAAI,EAAE,CAAA;IACvC,IAAI,gBAAgB,EAAE,CAAC;QACnB,OAAO,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC9C,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,CAAA;IAClD,IAAI,MAAM,EAAE,CAAC;QACT,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACpC,CAAC;IAED,OAAO,eAAe,CAAA;AAC1B,CAAC"}
|
package/dist/commands/new.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { type EntryType } from './new.utils.js';
|
|
2
|
-
type NewOptions = {
|
|
3
|
-
title?: string;
|
|
4
|
-
showIntro?: boolean;
|
|
5
|
-
showOutput?: boolean;
|
|
6
|
-
};
|
|
7
|
-
export type NewCommandResult = {
|
|
8
|
-
entryType: EntryType;
|
|
9
|
-
slug: string;
|
|
10
|
-
title: string;
|
|
11
|
-
targetPath: string;
|
|
12
|
-
};
|
|
13
|
-
export declare function newCommand(rawType?: string, rawSlug?: string, options?: NewOptions): Promise<NewCommandResult>;
|
|
14
|
-
export {};
|
|
15
|
-
//# sourceMappingURL=new.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"AAYA,OAAO,EAKH,KAAK,SAAS,EACjB,MAAM,gBAAgB,CAAA;AAEvB,KAAK,UAAU,GAAG;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC3B,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;CACrB,CAAA;AAoJD,wBAAsB,UAAU,CAC5B,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,GAAE,UAAe,GACzB,OAAO,CAAC,gBAAgB,CAAC,CA6D3B"}
|
package/dist/commands/new.js
DELETED
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
import { mkdir, writeFile } from 'node:fs/promises';
|
|
2
|
-
import { dirname, join } from 'node:path';
|
|
3
|
-
import { cancel, intro, isCancel, note, outro, select, text } from '@clack/prompts';
|
|
4
|
-
import { DEFAULT_CONTENT_STATUS, DEFAULT_CONTENT_VISIBILITY, } from '../lab/contentStatus.js';
|
|
5
|
-
import { loadHacklabConfig } from '../lab/config.js';
|
|
6
|
-
import { findRepoRoot } from '../utils/findRepoRoot.js';
|
|
7
|
-
import { pathExists } from '../utils/pathExists.js';
|
|
8
|
-
import { getEntryTypeLabel, parseEntryType, slugify, titleFromSlug, } from './new.utils.js';
|
|
9
|
-
function currentDate() {
|
|
10
|
-
return new Date().toISOString().slice(0, 10);
|
|
11
|
-
}
|
|
12
|
-
function buildFrontmatter(entryType, title) {
|
|
13
|
-
const date = currentDate();
|
|
14
|
-
return [
|
|
15
|
-
'---',
|
|
16
|
-
`title: ${title}`,
|
|
17
|
-
`type: ${entryType}`,
|
|
18
|
-
`status: ${DEFAULT_CONTENT_STATUS}`,
|
|
19
|
-
`visibility: ${DEFAULT_CONTENT_VISIBILITY}`,
|
|
20
|
-
`created_at: ${date}`,
|
|
21
|
-
`updated_at: ${date}`,
|
|
22
|
-
'---',
|
|
23
|
-
].join('\n');
|
|
24
|
-
}
|
|
25
|
-
function getTargetPath(entryType, baseDir, slug) {
|
|
26
|
-
if (entryType === 'essay' || entryType === 'research-paper') {
|
|
27
|
-
return join(baseDir, `${slug}.mdx`);
|
|
28
|
-
}
|
|
29
|
-
return join(baseDir, slug, 'README.mdx');
|
|
30
|
-
}
|
|
31
|
-
function getTemplate(entryType, title) {
|
|
32
|
-
const frontmatter = buildFrontmatter(entryType, title);
|
|
33
|
-
if (entryType === 'essay') {
|
|
34
|
-
return [
|
|
35
|
-
frontmatter,
|
|
36
|
-
'',
|
|
37
|
-
`# ${title}`,
|
|
38
|
-
'',
|
|
39
|
-
'write your essay here.',
|
|
40
|
-
'',
|
|
41
|
-
].join('\n');
|
|
42
|
-
}
|
|
43
|
-
if (entryType === 'research-paper') {
|
|
44
|
-
return [
|
|
45
|
-
frontmatter,
|
|
46
|
-
'',
|
|
47
|
-
`# ${title}`,
|
|
48
|
-
'',
|
|
49
|
-
'abstract:',
|
|
50
|
-
'',
|
|
51
|
-
'## notes',
|
|
52
|
-
'',
|
|
53
|
-
].join('\n');
|
|
54
|
-
}
|
|
55
|
-
return [frontmatter, '', `# ${title}`, '', `this is a new ${entryType}.`, ''].join('\n');
|
|
56
|
-
}
|
|
57
|
-
function getBaseDirectory(entryType, dirs) {
|
|
58
|
-
if (entryType === 'project') {
|
|
59
|
-
return dirs.projects;
|
|
60
|
-
}
|
|
61
|
-
if (entryType === 'guide') {
|
|
62
|
-
return dirs.guides;
|
|
63
|
-
}
|
|
64
|
-
if (entryType === 'course') {
|
|
65
|
-
return dirs.courses;
|
|
66
|
-
}
|
|
67
|
-
if (entryType === 'essay') {
|
|
68
|
-
return dirs.essays;
|
|
69
|
-
}
|
|
70
|
-
return dirs.research;
|
|
71
|
-
}
|
|
72
|
-
async function promptForEntryType() {
|
|
73
|
-
const value = await select({
|
|
74
|
-
message: 'what do you want to create?',
|
|
75
|
-
options: [
|
|
76
|
-
{
|
|
77
|
-
value: 'essay',
|
|
78
|
-
label: 'essay',
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
value: 'guide',
|
|
82
|
-
label: 'guide',
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
value: 'course',
|
|
86
|
-
label: 'course',
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
value: 'research-paper',
|
|
90
|
-
label: 'research paper',
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
value: 'project',
|
|
94
|
-
label: 'project',
|
|
95
|
-
},
|
|
96
|
-
],
|
|
97
|
-
});
|
|
98
|
-
if (isCancel(value)) {
|
|
99
|
-
cancel('creation cancelled.');
|
|
100
|
-
process.exit(1);
|
|
101
|
-
}
|
|
102
|
-
const entryType = parseEntryType(String(value));
|
|
103
|
-
if (!entryType) {
|
|
104
|
-
cancel('invalid content type selected.');
|
|
105
|
-
process.exit(1);
|
|
106
|
-
}
|
|
107
|
-
return entryType;
|
|
108
|
-
}
|
|
109
|
-
async function promptForSlug(entryType) {
|
|
110
|
-
const label = getEntryTypeLabel(entryType);
|
|
111
|
-
const value = await text({
|
|
112
|
-
message: `name your ${label}`,
|
|
113
|
-
placeholder: `my-${label.replace(/\s+/g, '-')}`,
|
|
114
|
-
});
|
|
115
|
-
if (isCancel(value)) {
|
|
116
|
-
cancel('creation cancelled.');
|
|
117
|
-
process.exit(1);
|
|
118
|
-
}
|
|
119
|
-
const slug = slugify(String(value));
|
|
120
|
-
if (!slug) {
|
|
121
|
-
cancel('invalid name. use letters, numbers, spaces, underscores, or dashes.');
|
|
122
|
-
process.exit(1);
|
|
123
|
-
}
|
|
124
|
-
return slug;
|
|
125
|
-
}
|
|
126
|
-
export async function newCommand(rawType, rawSlug, options = {}) {
|
|
127
|
-
const showIntro = options.showIntro !== false;
|
|
128
|
-
const showOutput = options.showOutput !== false;
|
|
129
|
-
if (showIntro) {
|
|
130
|
-
intro('create new hacklab content');
|
|
131
|
-
}
|
|
132
|
-
const entryType = rawType
|
|
133
|
-
? parseEntryType(rawType)
|
|
134
|
-
: await promptForEntryType();
|
|
135
|
-
if (!entryType) {
|
|
136
|
-
cancel(`unknown content type "${rawType}". use one of: project, guide, course, essay, research-paper.`);
|
|
137
|
-
process.exit(1);
|
|
138
|
-
}
|
|
139
|
-
const slug = rawSlug ? slugify(rawSlug) : await promptForSlug(entryType);
|
|
140
|
-
if (!slug) {
|
|
141
|
-
cancel('invalid slug. use letters, numbers, spaces, underscores, or dashes.');
|
|
142
|
-
process.exit(1);
|
|
143
|
-
}
|
|
144
|
-
const repoRoot = await findRepoRoot();
|
|
145
|
-
const config = await loadHacklabConfig(repoRoot);
|
|
146
|
-
if (!config) {
|
|
147
|
-
cancel('hacklab is not initialized. run `hacklab init` first.');
|
|
148
|
-
process.exit(1);
|
|
149
|
-
}
|
|
150
|
-
const baseDirectory = getBaseDirectory(entryType, config.contentDirs);
|
|
151
|
-
const basePath = join(repoRoot, baseDirectory);
|
|
152
|
-
const targetPath = getTargetPath(entryType, basePath, slug);
|
|
153
|
-
if (await pathExists(targetPath)) {
|
|
154
|
-
cancel(`target already exists: ${targetPath}`);
|
|
155
|
-
process.exit(1);
|
|
156
|
-
}
|
|
157
|
-
await mkdir(dirname(targetPath), { recursive: true });
|
|
158
|
-
const title = options.title?.trim() || titleFromSlug(slug);
|
|
159
|
-
const template = getTemplate(entryType, title);
|
|
160
|
-
await writeFile(targetPath, template, 'utf8');
|
|
161
|
-
if (showOutput) {
|
|
162
|
-
note(targetPath, 'created');
|
|
163
|
-
outro(`created ${getEntryTypeLabel(entryType)} "${slug}".`);
|
|
164
|
-
}
|
|
165
|
-
return {
|
|
166
|
-
entryType,
|
|
167
|
-
slug,
|
|
168
|
-
title,
|
|
169
|
-
targetPath,
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
//# sourceMappingURL=new.js.map
|
package/dist/commands/new.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export declare const ENTRY_TYPES: readonly ["project", "guide", "course", "essay", "research-paper"];
|
|
2
|
-
export type EntryType = (typeof ENTRY_TYPES)[number];
|
|
3
|
-
export declare function parseEntryType(value: string): EntryType | null;
|
|
4
|
-
export declare function getEntryTypeLabel(entryType: EntryType): string;
|
|
5
|
-
export declare function slugify(value: string): string;
|
|
6
|
-
export declare function titleFromSlug(slug: string): string;
|
|
7
|
-
//# sourceMappingURL=new.utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"new.utils.d.ts","sourceRoot":"","sources":["../../src/commands/new.utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,oEAMd,CAAA;AAEV,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AAEpD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAwB9D;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAM9D;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAU7C;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMlD"}
|