hacklab 0.22.3 → 26.921.1
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 +23 -430
- package/dist/index.js +132 -23
- package/package.json +20 -42
- package/LICENSE +0 -21
- package/dist/agent-handoff.d.ts +0 -51
- package/dist/agent-handoff.d.ts.map +0 -1
- package/dist/agent-handoff.js +0 -91
- package/dist/agent-handoff.js.map +0 -1
- package/dist/api-client.d.ts +0 -18
- package/dist/api-client.d.ts.map +0 -1
- package/dist/api-client.js +0 -40
- package/dist/api-client.js.map +0 -1
- package/dist/belt.d.ts +0 -25
- package/dist/belt.d.ts.map +0 -1
- package/dist/belt.js +0 -113
- package/dist/belt.js.map +0 -1
- package/dist/card.d.ts +0 -66
- package/dist/card.d.ts.map +0 -1
- package/dist/card.js +0 -151
- package/dist/card.js.map +0 -1
- package/dist/cli.d.ts +0 -2
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -238
- package/dist/cli.js.map +0 -1
- package/dist/commands/book.d.ts +0 -14
- package/dist/commands/book.d.ts.map +0 -1
- package/dist/commands/book.js +0 -90
- package/dist/commands/book.js.map +0 -1
- package/dist/commands/chat.d.ts +0 -36
- package/dist/commands/chat.d.ts.map +0 -1
- package/dist/commands/chat.js +0 -642
- package/dist/commands/chat.js.map +0 -1
- package/dist/commands/config.d.ts +0 -2
- package/dist/commands/config.d.ts.map +0 -1
- package/dist/commands/config.js +0 -84
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/daemon.d.ts +0 -19
- package/dist/commands/daemon.d.ts.map +0 -1
- package/dist/commands/daemon.js +0 -72
- package/dist/commands/daemon.js.map +0 -1
- package/dist/commands/drop.d.ts +0 -12
- package/dist/commands/drop.d.ts.map +0 -1
- package/dist/commands/drop.js +0 -103
- package/dist/commands/drop.js.map +0 -1
- package/dist/commands/drops.d.ts +0 -9
- package/dist/commands/drops.d.ts.map +0 -1
- package/dist/commands/drops.js +0 -96
- package/dist/commands/drops.js.map +0 -1
- package/dist/commands/essay.d.ts +0 -40
- package/dist/commands/essay.d.ts.map +0 -1
- package/dist/commands/essay.js +0 -651
- package/dist/commands/essay.js.map +0 -1
- package/dist/commands/hackathon.d.ts +0 -2
- package/dist/commands/hackathon.d.ts.map +0 -1
- package/dist/commands/hackathon.js +0 -893
- package/dist/commands/hackathon.js.map +0 -1
- package/dist/commands/hacker.d.ts +0 -2
- package/dist/commands/hacker.d.ts.map +0 -1
- package/dist/commands/hacker.js +0 -87
- package/dist/commands/hacker.js.map +0 -1
- package/dist/commands/jobs.d.ts +0 -18
- package/dist/commands/jobs.d.ts.map +0 -1
- package/dist/commands/jobs.js +0 -138
- package/dist/commands/jobs.js.map +0 -1
- package/dist/commands/keys.d.ts +0 -2
- package/dist/commands/keys.d.ts.map +0 -1
- package/dist/commands/keys.js +0 -138
- package/dist/commands/keys.js.map +0 -1
- package/dist/commands/login.d.ts +0 -83
- package/dist/commands/login.d.ts.map +0 -1
- package/dist/commands/login.js +0 -236
- package/dist/commands/login.js.map +0 -1
- package/dist/commands/logout.d.ts +0 -2
- package/dist/commands/logout.d.ts.map +0 -1
- package/dist/commands/logout.js +0 -22
- package/dist/commands/logout.js.map +0 -1
- package/dist/commands/org-jobs.d.ts +0 -50
- package/dist/commands/org-jobs.d.ts.map +0 -1
- package/dist/commands/org-jobs.js +0 -383
- package/dist/commands/org-jobs.js.map +0 -1
- package/dist/commands/org.d.ts +0 -67
- package/dist/commands/org.d.ts.map +0 -1
- package/dist/commands/org.js +0 -1244
- package/dist/commands/org.js.map +0 -1
- package/dist/commands/ping.d.ts +0 -2
- package/dist/commands/ping.d.ts.map +0 -1
- package/dist/commands/ping.js +0 -50
- package/dist/commands/ping.js.map +0 -1
- package/dist/commands/profile.d.ts +0 -72
- package/dist/commands/profile.d.ts.map +0 -1
- package/dist/commands/profile.js +0 -672
- package/dist/commands/profile.js.map +0 -1
- package/dist/commands/project.d.ts +0 -2
- package/dist/commands/project.d.ts.map +0 -1
- package/dist/commands/project.js +0 -583
- package/dist/commands/project.js.map +0 -1
- package/dist/commands/referral.d.ts +0 -6
- package/dist/commands/referral.d.ts.map +0 -1
- package/dist/commands/referral.js +0 -93
- package/dist/commands/referral.js.map +0 -1
- package/dist/commands/rtfm.d.ts +0 -9
- package/dist/commands/rtfm.d.ts.map +0 -1
- package/dist/commands/rtfm.js +0 -114
- package/dist/commands/rtfm.js.map +0 -1
- package/dist/commands/scan.d.ts +0 -13
- package/dist/commands/scan.d.ts.map +0 -1
- package/dist/commands/scan.js +0 -286
- package/dist/commands/scan.js.map +0 -1
- package/dist/commands/scout.d.ts +0 -18
- package/dist/commands/scout.d.ts.map +0 -1
- package/dist/commands/scout.js +0 -232
- package/dist/commands/scout.js.map +0 -1
- package/dist/commands/setup-rail.d.ts +0 -58
- package/dist/commands/setup-rail.d.ts.map +0 -1
- package/dist/commands/setup-rail.js +0 -135
- package/dist/commands/setup-rail.js.map +0 -1
- package/dist/commands/setup.d.ts +0 -29
- package/dist/commands/setup.d.ts.map +0 -1
- package/dist/commands/setup.js +0 -442
- package/dist/commands/setup.js.map +0 -1
- package/dist/commands/sync.d.ts +0 -9
- package/dist/commands/sync.d.ts.map +0 -1
- package/dist/commands/sync.js +0 -345
- package/dist/commands/sync.js.map +0 -1
- package/dist/commands/update.d.ts +0 -2
- package/dist/commands/update.d.ts.map +0 -1
- package/dist/commands/update.js +0 -92
- package/dist/commands/update.js.map +0 -1
- package/dist/commands/whoami.d.ts +0 -2
- package/dist/commands/whoami.d.ts.map +0 -1
- package/dist/commands/whoami.js +0 -41
- package/dist/commands/whoami.js.map +0 -1
- package/dist/config.d.ts +0 -78
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -93
- package/dist/config.js.map +0 -1
- package/dist/daily-sync.d.ts +0 -150
- package/dist/daily-sync.d.ts.map +0 -1
- package/dist/daily-sync.js +0 -665
- package/dist/daily-sync.js.map +0 -1
- package/dist/dossier.d.ts +0 -73
- package/dist/dossier.d.ts.map +0 -1
- package/dist/dossier.js +0 -141
- package/dist/dossier.js.map +0 -1
- package/dist/field-normalize.d.ts +0 -4
- package/dist/field-normalize.d.ts.map +0 -1
- package/dist/field-normalize.js +0 -8
- package/dist/field-normalize.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/job-fields.d.ts +0 -47
- package/dist/job-fields.d.ts.map +0 -1
- package/dist/job-fields.js +0 -148
- package/dist/job-fields.js.map +0 -1
- package/dist/machine.d.ts +0 -15
- package/dist/machine.d.ts.map +0 -1
- package/dist/machine.js +0 -64
- package/dist/machine.js.map +0 -1
- package/dist/org-fields.d.ts +0 -57
- package/dist/org-fields.d.ts.map +0 -1
- package/dist/org-fields.js +0 -167
- package/dist/org-fields.js.map +0 -1
- package/dist/posthog.d.ts +0 -38
- package/dist/posthog.d.ts.map +0 -1
- package/dist/posthog.js +0 -224
- package/dist/posthog.js.map +0 -1
- package/dist/project-fields.d.ts +0 -40
- package/dist/project-fields.d.ts.map +0 -1
- package/dist/project-fields.js +0 -79
- package/dist/project-fields.js.map +0 -1
- package/dist/prompt-consent.d.ts +0 -73
- package/dist/prompt-consent.d.ts.map +0 -1
- package/dist/prompt-consent.js +0 -191
- package/dist/prompt-consent.js.map +0 -1
- package/dist/prompt-stats.d.ts +0 -226
- package/dist/prompt-stats.d.ts.map +0 -1
- package/dist/prompt-stats.js +0 -561
- package/dist/prompt-stats.js.map +0 -1
- package/dist/referral.d.ts +0 -14
- package/dist/referral.d.ts.map +0 -1
- package/dist/referral.js +0 -28
- package/dist/referral.js.map +0 -1
- package/dist/registry.d.ts +0 -15
- package/dist/registry.d.ts.map +0 -1
- package/dist/registry.js +0 -180
- package/dist/registry.js.map +0 -1
- package/dist/resolve-command.d.ts +0 -20
- package/dist/resolve-command.d.ts.map +0 -1
- package/dist/resolve-command.js +0 -21
- package/dist/resolve-command.js.map +0 -1
- package/dist/scanners/antigravity.d.ts +0 -41
- package/dist/scanners/antigravity.d.ts.map +0 -1
- package/dist/scanners/antigravity.js +0 -210
- package/dist/scanners/antigravity.js.map +0 -1
- package/dist/scanners/github-copilot-telemetry.d.ts +0 -23
- package/dist/scanners/github-copilot-telemetry.d.ts.map +0 -1
- package/dist/scanners/github-copilot-telemetry.js +0 -220
- package/dist/scanners/github-copilot-telemetry.js.map +0 -1
- package/dist/scanners/github-copilot.d.ts +0 -68
- package/dist/scanners/github-copilot.d.ts.map +0 -1
- package/dist/scanners/github-copilot.js +0 -262
- package/dist/scanners/github-copilot.js.map +0 -1
- package/dist/scanners/incremental.d.ts +0 -282
- package/dist/scanners/incremental.d.ts.map +0 -1
- package/dist/scanners/incremental.js +0 -788
- package/dist/scanners/incremental.js.map +0 -1
- package/dist/scanners/index.d.ts +0 -116
- package/dist/scanners/index.d.ts.map +0 -1
- package/dist/scanners/index.js +0 -726
- package/dist/scanners/index.js.map +0 -1
- package/dist/scanners/sqlite.d.ts +0 -18
- package/dist/scanners/sqlite.d.ts.map +0 -1
- package/dist/scanners/sqlite.js +0 -63
- package/dist/scanners/sqlite.js.map +0 -1
- package/dist/scanners/util.d.ts +0 -112
- package/dist/scanners/util.d.ts.map +0 -1
- package/dist/scanners/util.js +0 -167
- package/dist/scanners/util.js.map +0 -1
- package/dist/session.d.ts +0 -106
- package/dist/session.d.ts.map +0 -1
- package/dist/session.js +0 -191
- package/dist/session.js.map +0 -1
- package/dist/share-card-colors.d.ts +0 -19
- package/dist/share-card-colors.d.ts.map +0 -1
- package/dist/share-card-colors.js +0 -36
- package/dist/share-card-colors.js.map +0 -1
- package/dist/share-card.d.ts +0 -31
- package/dist/share-card.d.ts.map +0 -1
- package/dist/share-card.js +0 -380
- package/dist/share-card.js.map +0 -1
- package/dist/share.d.ts +0 -17
- package/dist/share.d.ts.map +0 -1
- package/dist/share.js +0 -75
- package/dist/share.js.map +0 -1
- package/dist/sync.d.ts +0 -100
- package/dist/sync.d.ts.map +0 -1
- package/dist/sync.js +0 -304
- package/dist/sync.js.map +0 -1
- package/dist/ui.d.ts +0 -33
- package/dist/ui.d.ts.map +0 -1
- package/dist/ui.js +0 -127
- package/dist/ui.js.map +0 -1
- package/dist/utils/npmGlobal.d.ts +0 -30
- package/dist/utils/npmGlobal.d.ts.map +0 -1
- package/dist/utils/npmGlobal.js +0 -69
- package/dist/utils/npmGlobal.js.map +0 -1
- package/dist/utils/openBrowser.d.ts +0 -14
- package/dist/utils/openBrowser.d.ts.map +0 -1
- package/dist/utils/openBrowser.js +0 -47
- package/dist/utils/openBrowser.js.map +0 -1
- package/dist/utils/updateCheck.d.ts +0 -16
- package/dist/utils/updateCheck.d.ts.map +0 -1
- package/dist/utils/updateCheck.js +0 -111
- package/dist/utils/updateCheck.js.map +0 -1
- package/dist/utils/waitForEnter.d.ts +0 -12
- package/dist/utils/waitForEnter.d.ts.map +0 -1
- package/dist/utils/waitForEnter.js +0 -43
- package/dist/utils/waitForEnter.js.map +0 -1
|
@@ -1,383 +0,0 @@
|
|
|
1
|
-
import * as clack from '@clack/prompts';
|
|
2
|
-
import { emitJsonError } from '../api-client.js';
|
|
3
|
-
import { buildJobFields, JOB_FIELD_NAMES, JOB_FIELDS, normalizeJobFieldValue, } from '../job-fields.js';
|
|
4
|
-
import { resolveCommand } from '../resolve-command.js';
|
|
5
|
-
import { resolveAppUrl, unauthorizedHint } from '../session.js';
|
|
6
|
-
import { bold, dim, displayWidth, error, hint, info, padEndTo, stripControl, success, } from '../ui.js';
|
|
7
|
-
// `hacklab org jobs <list|view|post|close>` — a company's Job Shop listings.
|
|
8
|
-
//
|
|
9
|
-
// Nested under `org` because posting a listing is speaking for a company, and
|
|
10
|
-
// which company you may speak for is exactly what `org access` decides. Both
|
|
11
|
-
// roles on the access list reach these verbs: admins because they run the
|
|
12
|
-
// company, recruiters because filling the job shop is the whole reason that
|
|
13
|
-
// role exists.
|
|
14
|
-
//
|
|
15
|
-
// `post` cannot finish here. A listing is $1,000 and the terminal has no way
|
|
16
|
-
// to take a card, so it creates the listing and hands back a Stripe checkout
|
|
17
|
-
// URL. Until that is paid the listing sits in `pending_payment` and nobody
|
|
18
|
-
// sees it; after payment a human reviews it before it goes live.
|
|
19
|
-
export const JOBS_SUBCOMMANDS = ['list', 'view', 'post', 'close'];
|
|
20
|
-
function printJson(data) {
|
|
21
|
-
console.log(JSON.stringify({ schemaVersion: 1, ...data }, null, 2));
|
|
22
|
-
}
|
|
23
|
-
function fail(json, code, message) {
|
|
24
|
-
if (json)
|
|
25
|
-
emitJsonError(code, message);
|
|
26
|
-
error(message);
|
|
27
|
-
process.exit(1);
|
|
28
|
-
}
|
|
29
|
-
export function jobsUsage() {
|
|
30
|
-
error('usage: hacklab org jobs [list|view|post|close]');
|
|
31
|
-
info(` hacklab org jobs ${dim('[list] [--org <slug>] [--json]')} every listing you have posted`);
|
|
32
|
-
info(` hacklab org jobs ${dim('view <id> [--org <slug>] [--json]')}`);
|
|
33
|
-
info(` hacklab org jobs ${dim('post [--role "…"] [--description "…"] [--apply-url <url>] [--contact <email>] [--json]')}`);
|
|
34
|
-
info(` hacklab org jobs ${dim('close <id> [--org <slug>] [--json]')}`);
|
|
35
|
-
info(` fields: ${dim(JOB_FIELD_NAMES.map((n) => `--${n}`).join(', '))}`);
|
|
36
|
-
hint('a listing costs $1,000 — post hands back a Stripe checkout link');
|
|
37
|
-
process.exit(1);
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* How a listing reads at a glance.
|
|
41
|
-
*
|
|
42
|
-
* Statuses are shown as what they mean to the person who paid, not as the
|
|
43
|
-
* enum: `pending_payment` is "you never finished checkout", which is a very
|
|
44
|
-
* different thing to do next than "we are still reading it".
|
|
45
|
-
*/
|
|
46
|
-
export function jobStatusLabel(status, expiresAt) {
|
|
47
|
-
if (status === 'active') {
|
|
48
|
-
if (expiresAt && new Date(expiresAt).getTime() <= Date.now()) {
|
|
49
|
-
return 'expired';
|
|
50
|
-
}
|
|
51
|
-
return 'live';
|
|
52
|
-
}
|
|
53
|
-
if (status === 'pending_payment')
|
|
54
|
-
return 'unpaid';
|
|
55
|
-
if (status === 'pending_review')
|
|
56
|
-
return 'in review';
|
|
57
|
-
if (status === 'rejected')
|
|
58
|
-
return 'rejected';
|
|
59
|
-
if (status === 'disputed')
|
|
60
|
-
return 'disputed';
|
|
61
|
-
if (status === 'closed')
|
|
62
|
-
return 'closed';
|
|
63
|
-
return status;
|
|
64
|
-
}
|
|
65
|
-
/** What the poster should do about a listing in this state, if anything. */
|
|
66
|
-
export function jobStatusHint(job) {
|
|
67
|
-
if (job.status === 'pending_payment') {
|
|
68
|
-
return 'checkout was never completed — post it again to get a fresh link';
|
|
69
|
-
}
|
|
70
|
-
if (job.status === 'rejected') {
|
|
71
|
-
return job.reviewNote ? `rejected: ${job.reviewNote}` : 'rejected';
|
|
72
|
-
}
|
|
73
|
-
return null;
|
|
74
|
-
}
|
|
75
|
-
// ---------------------------------------------------------------------------
|
|
76
|
-
// HTTP
|
|
77
|
-
async function request(session, method, query, body) {
|
|
78
|
-
const url = new URL(`${resolveAppUrl(session)}/api/cli/org/jobs`);
|
|
79
|
-
for (const [key, value] of Object.entries(query)) {
|
|
80
|
-
url.searchParams.set(key, value);
|
|
81
|
-
}
|
|
82
|
-
let res;
|
|
83
|
-
try {
|
|
84
|
-
res = await fetch(url, {
|
|
85
|
-
method,
|
|
86
|
-
headers: {
|
|
87
|
-
Authorization: `Bearer ${session.token}`,
|
|
88
|
-
...(body ? { 'Content-Type': 'application/json' } : {}),
|
|
89
|
-
},
|
|
90
|
-
...(body ? { body: JSON.stringify(body) } : {}),
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
catch (err) {
|
|
94
|
-
return {
|
|
95
|
-
ok: false,
|
|
96
|
-
code: 'network',
|
|
97
|
-
message: err instanceof Error ? err.message : String(err),
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
const data = (await res.json().catch(() => null));
|
|
101
|
-
if (res.ok)
|
|
102
|
-
return { ok: true, data: data };
|
|
103
|
-
const message = res.status === 401
|
|
104
|
-
? unauthorizedHint(session)
|
|
105
|
-
: (data?.error ?? `request failed (${res.status})`);
|
|
106
|
-
// The route names its own refusals, so unlike the access route there is
|
|
107
|
-
// nothing to reverse-engineer from the message here.
|
|
108
|
-
return { ok: false, code: data?.code ?? 'error', message };
|
|
109
|
-
}
|
|
110
|
-
/** What the caller can do about a refusal. Printed to stderr, never stdout. */
|
|
111
|
-
export function jobsErrorHint(code) {
|
|
112
|
-
if (code === 'forbidden') {
|
|
113
|
-
return 'ask an admin for access: `hacklab org access grant <your handle> --role recruiter`';
|
|
114
|
-
}
|
|
115
|
-
if (code === 'org_not_found') {
|
|
116
|
-
return '`hacklab org list` shows the companies you manage';
|
|
117
|
-
}
|
|
118
|
-
if (code === 'not_closable') {
|
|
119
|
-
return 'only live listings can be closed — `hacklab org jobs list` shows their status';
|
|
120
|
-
}
|
|
121
|
-
return null;
|
|
122
|
-
}
|
|
123
|
-
function jobsFail(json, code, message) {
|
|
124
|
-
if (json)
|
|
125
|
-
emitJsonError(code, message);
|
|
126
|
-
error(message);
|
|
127
|
-
const tip = jobsErrorHint(code);
|
|
128
|
-
if (tip)
|
|
129
|
-
hint(tip);
|
|
130
|
-
process.exit(1);
|
|
131
|
-
}
|
|
132
|
-
// ---------------------------------------------------------------------------
|
|
133
|
-
// Verbs
|
|
134
|
-
async function jobsList(target, args) {
|
|
135
|
-
const json = args.includes('--json');
|
|
136
|
-
const { session, org } = target;
|
|
137
|
-
const result = await request(session, 'GET', { orgSlug: org.slug });
|
|
138
|
-
if (!result.ok)
|
|
139
|
-
jobsFail(json, result.code, result.message);
|
|
140
|
-
if (json) {
|
|
141
|
-
printJson(result.data);
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
const { jobs, yourRole } = result.data;
|
|
145
|
-
console.log(` ${bold(org.name)} ${dim(`/o/${org.slug}`)} ${dim(`(${yourRole})`)}`);
|
|
146
|
-
console.log('');
|
|
147
|
-
if (jobs.length === 0) {
|
|
148
|
-
info('no listings yet');
|
|
149
|
-
info(`post one with ${dim('hacklab org jobs post')}`);
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
const rows = jobs.map((job) => ({
|
|
153
|
-
title: stripControl(job.roleTitle),
|
|
154
|
-
status: jobStatusLabel(job.status, job.expiresAt),
|
|
155
|
-
id: job.id,
|
|
156
|
-
tip: jobStatusHint(job),
|
|
157
|
-
}));
|
|
158
|
-
const titleWidth = Math.max(...rows.map((r) => displayWidth(r.title)));
|
|
159
|
-
const statusWidth = Math.max(...rows.map((r) => displayWidth(r.status)));
|
|
160
|
-
for (const row of rows) {
|
|
161
|
-
console.log(` ${bold(padEndTo(row.title, titleWidth))} ${padEndTo(row.status, statusWidth)} ${dim(row.id)}`);
|
|
162
|
-
if (row.tip)
|
|
163
|
-
console.log(` ${dim(row.tip)}`);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
async function jobsView(target, args) {
|
|
167
|
-
const json = args.includes('--json');
|
|
168
|
-
const id = args.find((a) => !a.startsWith('-'));
|
|
169
|
-
if (!id)
|
|
170
|
-
fail(json, 'invalid_args', 'pass a listing id');
|
|
171
|
-
const { session, org } = target;
|
|
172
|
-
const result = await request(session, 'GET', { orgSlug: org.slug });
|
|
173
|
-
if (!result.ok)
|
|
174
|
-
jobsFail(json, result.code, result.message);
|
|
175
|
-
const job = result.data.jobs.find((candidate) => candidate.id === id);
|
|
176
|
-
if (!job) {
|
|
177
|
-
fail(json, 'not_found', `no listing "${id}" on ${org.name}`);
|
|
178
|
-
}
|
|
179
|
-
if (json) {
|
|
180
|
-
printJson({ organization: result.data.organization, job });
|
|
181
|
-
return;
|
|
182
|
-
}
|
|
183
|
-
const meta = [
|
|
184
|
-
job.remoteOnsite,
|
|
185
|
-
job.salaryRange,
|
|
186
|
-
job.beltRankMin != null && job.beltRankMin > 0
|
|
187
|
-
? `lv.${job.beltRankMin}+`
|
|
188
|
-
: null,
|
|
189
|
-
].filter(Boolean);
|
|
190
|
-
console.log(` ${bold(stripControl(job.roleTitle))}`);
|
|
191
|
-
console.log(` ${dim(stripControl(job.companyName))}`);
|
|
192
|
-
console.log('');
|
|
193
|
-
console.log(` ${dim('status')} ${jobStatusLabel(job.status, job.expiresAt)}`);
|
|
194
|
-
if (meta.length)
|
|
195
|
-
console.log(` ${dim('about ')} ${meta.join(' · ')}`);
|
|
196
|
-
console.log(` ${dim('apply ')} ${job.atsUrl}`);
|
|
197
|
-
if (job.expiresAt) {
|
|
198
|
-
console.log(` ${dim('until ')} ${new Date(job.expiresAt).toLocaleDateString()}`);
|
|
199
|
-
}
|
|
200
|
-
const tip = jobStatusHint(job);
|
|
201
|
-
if (tip) {
|
|
202
|
-
console.log('');
|
|
203
|
-
info(tip);
|
|
204
|
-
}
|
|
205
|
-
if (job.status === 'active') {
|
|
206
|
-
console.log('');
|
|
207
|
-
info(dim(`${resolveAppUrl(session)}/jobshop/${job.id}`));
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
async function jobsClose(target, args) {
|
|
211
|
-
const json = args.includes('--json');
|
|
212
|
-
const id = args.find((a) => !a.startsWith('-'));
|
|
213
|
-
if (!id)
|
|
214
|
-
fail(json, 'invalid_args', 'pass the id of the listing to close');
|
|
215
|
-
const { session, org } = target;
|
|
216
|
-
const result = await request(session, 'DELETE', {
|
|
217
|
-
orgSlug: org.slug,
|
|
218
|
-
jobId: id,
|
|
219
|
-
});
|
|
220
|
-
if (!result.ok)
|
|
221
|
-
jobsFail(json, result.code, result.message);
|
|
222
|
-
if (json) {
|
|
223
|
-
printJson({
|
|
224
|
-
organization: { id: org.id, name: org.name, slug: org.slug },
|
|
225
|
-
job: result.data.job,
|
|
226
|
-
});
|
|
227
|
-
return;
|
|
228
|
-
}
|
|
229
|
-
success(`closed ${bold(stripControl(result.data.job.roleTitle))}`);
|
|
230
|
-
info('it is off the shop — the listing fee is not refunded');
|
|
231
|
-
}
|
|
232
|
-
// ---------------------------------------------------------------------------
|
|
233
|
-
// post
|
|
234
|
-
/** Pull every `--<field> <value>` out of argv, leaving the rest. */
|
|
235
|
-
export function extractJobOptions(args) {
|
|
236
|
-
const options = {};
|
|
237
|
-
const rest = [];
|
|
238
|
-
for (let i = 0; i < args.length; i++) {
|
|
239
|
-
const token = args[i];
|
|
240
|
-
const name = token.startsWith('--') ? token.slice(2) : null;
|
|
241
|
-
if (name && JOB_FIELD_NAMES.includes(name) && i + 1 < args.length) {
|
|
242
|
-
options[name] = args[++i];
|
|
243
|
-
continue;
|
|
244
|
-
}
|
|
245
|
-
rest.push(token);
|
|
246
|
-
}
|
|
247
|
-
return { options, rest };
|
|
248
|
-
}
|
|
249
|
-
/** True when argv carries any listing field, i.e. this is the agent path. */
|
|
250
|
-
export function hasJobFlags(args) {
|
|
251
|
-
return JOB_FIELD_NAMES.some((name) => args.includes(`--${name}`));
|
|
252
|
-
}
|
|
253
|
-
async function submitPost(target, fields, json) {
|
|
254
|
-
const result = await request(target.session, 'POST', {}, { orgSlug: target.org.slug, fields });
|
|
255
|
-
if (!result.ok)
|
|
256
|
-
jobsFail(json, result.code, result.message);
|
|
257
|
-
return result.data;
|
|
258
|
-
}
|
|
259
|
-
function reportPosted(target, result) {
|
|
260
|
-
success(`created the listing for ${bold(target.org.name)}`);
|
|
261
|
-
console.log('');
|
|
262
|
-
info('pay to submit it for review:');
|
|
263
|
-
console.log(` ${result.checkoutUrl ?? '(no checkout url returned)'}`);
|
|
264
|
-
console.log('');
|
|
265
|
-
info(dim('we review every posting before it goes live.'));
|
|
266
|
-
}
|
|
267
|
-
async function jobsPostDirect(target, args) {
|
|
268
|
-
const json = args.includes('--json');
|
|
269
|
-
const { options } = extractJobOptions(args.filter((a) => a !== '--json'));
|
|
270
|
-
const built = buildJobFields(options, target.org.name);
|
|
271
|
-
if (!built.ok)
|
|
272
|
-
fail(json, 'invalid_fields', built.error);
|
|
273
|
-
const result = await submitPost(target, built.fields, json);
|
|
274
|
-
if (json) {
|
|
275
|
-
printJson({
|
|
276
|
-
organization: {
|
|
277
|
-
id: target.org.id,
|
|
278
|
-
name: target.org.name,
|
|
279
|
-
slug: target.org.slug,
|
|
280
|
-
},
|
|
281
|
-
job: result.job,
|
|
282
|
-
checkoutUrl: result.checkoutUrl,
|
|
283
|
-
});
|
|
284
|
-
return;
|
|
285
|
-
}
|
|
286
|
-
reportPosted(target, result);
|
|
287
|
-
}
|
|
288
|
-
/** Ask for one field, validating with the same rules the flags go through. */
|
|
289
|
-
async function promptJobField(spec, initial) {
|
|
290
|
-
if (spec.type === 'choice') {
|
|
291
|
-
const picked = await clack.select({
|
|
292
|
-
message: spec.label,
|
|
293
|
-
options: [
|
|
294
|
-
...(spec.choices ?? []).map((choice) => ({
|
|
295
|
-
value: choice,
|
|
296
|
-
label: choice,
|
|
297
|
-
})),
|
|
298
|
-
...(spec.required ? [] : [{ value: '', label: 'skip' }]),
|
|
299
|
-
],
|
|
300
|
-
});
|
|
301
|
-
return clack.isCancel(picked) ? picked : String(picked);
|
|
302
|
-
}
|
|
303
|
-
return clack.text({
|
|
304
|
-
message: spec.required
|
|
305
|
-
? spec.label
|
|
306
|
-
: `${spec.label} ${dim('(blank to skip)')}`,
|
|
307
|
-
initialValue: initial,
|
|
308
|
-
placeholder: spec.placeholder,
|
|
309
|
-
validate: (value) => {
|
|
310
|
-
const normalized = normalizeJobFieldValue(spec, value ?? '');
|
|
311
|
-
return normalized.ok ? undefined : normalized.error;
|
|
312
|
-
},
|
|
313
|
-
});
|
|
314
|
-
}
|
|
315
|
-
async function jobsPostInteractive(target) {
|
|
316
|
-
clack.intro(bold(`hacklab org jobs post — ${target.org.name}`));
|
|
317
|
-
clack.log.info(`a listing costs ${bold('$1,000')} and is reviewed before it goes live`);
|
|
318
|
-
const fields = {};
|
|
319
|
-
for (const spec of JOB_FIELDS) {
|
|
320
|
-
// Company name is the org you are posting as; asking would only create a
|
|
321
|
-
// way for the listing and the company page to disagree.
|
|
322
|
-
if (spec.key === 'companyName') {
|
|
323
|
-
fields.companyName = target.org.name;
|
|
324
|
-
continue;
|
|
325
|
-
}
|
|
326
|
-
const answer = await promptJobField(spec, '');
|
|
327
|
-
if (clack.isCancel(answer)) {
|
|
328
|
-
clack.outro(dim('cancelled — nothing was created, nothing was charged.'));
|
|
329
|
-
return;
|
|
330
|
-
}
|
|
331
|
-
const normalized = normalizeJobFieldValue(spec, String(answer));
|
|
332
|
-
// Validated at the prompt; a failure here can only be the skip case.
|
|
333
|
-
if (!normalized.ok)
|
|
334
|
-
continue;
|
|
335
|
-
if (normalized.value !== null)
|
|
336
|
-
fields[spec.key] = normalized.value;
|
|
337
|
-
}
|
|
338
|
-
const go = await clack.confirm({
|
|
339
|
-
message: `create this listing and open checkout for $1,000?`,
|
|
340
|
-
});
|
|
341
|
-
if (clack.isCancel(go) || !go) {
|
|
342
|
-
clack.outro(dim('cancelled — nothing was created, nothing was charged.'));
|
|
343
|
-
return;
|
|
344
|
-
}
|
|
345
|
-
const spin = clack.spinner();
|
|
346
|
-
spin.start('creating the listing');
|
|
347
|
-
const result = await submitPost(target, fields, false);
|
|
348
|
-
spin.stop('created the listing');
|
|
349
|
-
reportPosted(target, result);
|
|
350
|
-
clack.outro(dim('done.'));
|
|
351
|
-
}
|
|
352
|
-
// ---------------------------------------------------------------------------
|
|
353
|
-
/**
|
|
354
|
-
* Dispatch `org jobs <verb>`. The caller resolves the target org, because that
|
|
355
|
-
* is the same `--org` / single-org resolution every other org verb uses.
|
|
356
|
-
*/
|
|
357
|
-
export async function orgJobs(target, args) {
|
|
358
|
-
const [subToken, ...rest] = args;
|
|
359
|
-
// Bare `org jobs` (and `--json`) is the list — the cheapest read.
|
|
360
|
-
if (!subToken || subToken.startsWith('-'))
|
|
361
|
-
return jobsList(target, args);
|
|
362
|
-
const resolved = resolveCommand(subToken, JOBS_SUBCOMMANDS);
|
|
363
|
-
if (resolved.kind === 'ambiguous') {
|
|
364
|
-
error(`ambiguous: org jobs ${subToken} (${resolved.matches.join(', ')})`);
|
|
365
|
-
process.exit(1);
|
|
366
|
-
}
|
|
367
|
-
if (resolved.kind === 'unknown') {
|
|
368
|
-
error(`unknown subcommand: org jobs ${subToken}`);
|
|
369
|
-
jobsUsage();
|
|
370
|
-
}
|
|
371
|
-
if (resolved.name === 'list')
|
|
372
|
-
return jobsList(target, rest);
|
|
373
|
-
if (resolved.name === 'view')
|
|
374
|
-
return jobsView(target, rest);
|
|
375
|
-
if (resolved.name === 'close')
|
|
376
|
-
return jobsClose(target, rest);
|
|
377
|
-
if (resolved.name === 'post') {
|
|
378
|
-
// Flags (or --json) make it non-interactive; bare `post` keeps the prompts.
|
|
379
|
-
const direct = hasJobFlags(rest) || rest.includes('--json');
|
|
380
|
-
return direct ? jobsPostDirect(target, rest) : jobsPostInteractive(target);
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
//# sourceMappingURL=org-jobs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"org-jobs.js","sourceRoot":"","sources":["../../src/commands/org-jobs.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/org.d.ts
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { type OrgFieldSpec } from '../org-fields.js';
|
|
2
|
-
declare const ORG_ROLES: readonly ["admin", "recruiter"];
|
|
3
|
-
type OrgRole = (typeof ORG_ROLES)[number];
|
|
4
|
-
type ClaimableOrg = {
|
|
5
|
-
id: string;
|
|
6
|
-
name: string;
|
|
7
|
-
slug: string;
|
|
8
|
-
ycBatch?: string | null;
|
|
9
|
-
via?: 'member' | 'email' | 'both';
|
|
10
|
-
};
|
|
11
|
-
export declare function claimReason(via: ClaimableOrg['via']): string;
|
|
12
|
-
export declare function slugify(name: string): string;
|
|
13
|
-
export declare function displayValue(spec: Pick<OrgFieldSpec, 'type'>, value: unknown): string;
|
|
14
|
-
type Claimant = {
|
|
15
|
-
handle: string | null;
|
|
16
|
-
displayName: string | null;
|
|
17
|
-
email: string;
|
|
18
|
-
role: OrgRole;
|
|
19
|
-
grantedBy: string | null;
|
|
20
|
-
since: string;
|
|
21
|
-
isYou: boolean;
|
|
22
|
-
};
|
|
23
|
-
/**
|
|
24
|
-
* Map an access-route refusal to a stable code.
|
|
25
|
-
*
|
|
26
|
-
* The route answers with a bare `{ error: "<sentence>" }` — no machine code —
|
|
27
|
-
* and it reuses 404 for three different refusals. Classifying on the message is
|
|
28
|
-
* the only way to tell them apart, and telling them apart is the point: "there
|
|
29
|
-
* is no such account" and "that account doesn't control this org" send the
|
|
30
|
-
* caller to completely different next steps. Unrecognized text falls back to a
|
|
31
|
-
* generic code rather than guessing.
|
|
32
|
-
*/
|
|
33
|
-
export declare function accessErrorCode(status: number, message: string): string;
|
|
34
|
-
/** What the caller can do about a refusal. Printed to stderr, never stdout. */
|
|
35
|
-
export declare function accessErrorHint(code: string): string | null;
|
|
36
|
-
/** Pull `--flag <value>` out of argv; returns the value and the rest. */
|
|
37
|
-
export declare function extractOption(args: string[], flag: string): {
|
|
38
|
-
value: string | undefined;
|
|
39
|
-
rest: string[];
|
|
40
|
-
};
|
|
41
|
-
/** Trim and drop a leading @, so `@marin` and `marin` both work. */
|
|
42
|
-
export declare function normalizeHandle(raw: string): string;
|
|
43
|
-
/** `@handle`, falling back to the email when there's no hacker profile yet. */
|
|
44
|
-
export declare function claimantLabel(claimant: Pick<Claimant, 'handle' | 'email'>): string;
|
|
45
|
-
/**
|
|
46
|
-
* The "granted by" column.
|
|
47
|
-
*
|
|
48
|
-
* `grantedBy` is a raw user id — the route has no handle for it — so there is
|
|
49
|
-
* nothing here to turn it into a name. It prints truncated: long enough to tell
|
|
50
|
-
* two granters apart at a glance, short enough not to swamp the row. The full
|
|
51
|
-
* value is in `--json`.
|
|
52
|
-
*/
|
|
53
|
-
export declare function grantedByLabel(grantedBy: string | null): string;
|
|
54
|
-
/** Read `--role`, defaulting to admin — the historical meaning of a grant. */
|
|
55
|
-
export declare function parseRoleFlag(args: string[]): {
|
|
56
|
-
ok: true;
|
|
57
|
-
role: OrgRole;
|
|
58
|
-
rest: string[];
|
|
59
|
-
} | {
|
|
60
|
-
ok: false;
|
|
61
|
-
error: string;
|
|
62
|
-
};
|
|
63
|
-
/** "an admin" / "a recruiter" — the grammar differs, so it lives in one place. */
|
|
64
|
-
export declare function roleArticle(role: OrgRole): string;
|
|
65
|
-
export declare function org(args?: string[]): Promise<void>;
|
|
66
|
-
export {};
|
|
67
|
-
//# sourceMappingURL=org.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"org.d.ts","sourceRoot":"","sources":["../../src/commands/org.ts"],"names":[],"mappings":"AAOA,OAAO,EAIL,KAAK,YAAY,EAGlB,MAAM,kBAAkB,CAAA;AA4CzB,QAAA,MAAM,SAAS,iCAAkC,CAAA;AACjD,KAAK,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA;AAYzC,KAAK,YAAY,GAAG;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAEvB,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAA;CAClC,CAAA;AAgBD,wBAAgB,WAAW,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,MAAM,CAI5D;AAiBD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAS5C;AAID,wBAAgB,YAAY,CAC1B,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,EAChC,KAAK,EAAE,OAAO,GACb,MAAM,CAQR;AAwFD,KAAK,QAAQ,GAAG;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,OAAO,CAAA;IAGb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAeD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAavE;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiB3D;AAgGD,yEAAyE;AACzE,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,MAAM,GACX;IAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAW/C;AA4YD,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAcD,+EAA+E;AAC/E,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,GAC3C,MAAM,CAGR;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAI/D;AA2DD,8EAA8E;AAC9E,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EAAE,GACb;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAW5E;AAqDD,kFAAkF;AAClF,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAEjD;AA+eD,wBAAsB,GAAG,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAsC5D"}
|