@profullstack/agenticjobs 0.12.0 → 0.14.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 +70 -1
- package/dist/cli/args.js +1 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/index.js +78 -5
- package/dist/cli/index.js.map +1 -1
- package/dist/client/client.d.ts +44 -0
- package/dist/client/client.js +19 -0
- package/dist/client/client.js.map +1 -1
- package/dist/client/config.js +4 -3
- package/dist/client/config.js.map +1 -1
- package/dist/client/fanout.js +13 -4
- package/dist/client/fanout.js.map +1 -1
- package/dist/client/login.js +9 -2
- package/dist/client/login.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.js +1 -1
- package/dist/core/agentwriter.js +22 -5
- package/dist/core/agentwriter.js.map +1 -1
- package/dist/core/applications.js +1 -1
- package/dist/core/applications.js.map +1 -1
- package/dist/core/capacity.js +7 -3
- package/dist/core/capacity.js.map +1 -1
- package/dist/core/import.js +10 -2
- package/dist/core/import.js.map +1 -1
- package/dist/core/jobs.d.ts +24 -6
- package/dist/core/jobs.js +116 -31
- package/dist/core/jobs.js.map +1 -1
- package/dist/core/recommendations.d.ts +134 -0
- package/dist/core/recommendations.js +356 -0
- package/dist/core/recommendations.js.map +1 -0
- package/dist/core/updates.d.ts +15 -3
- package/dist/core/updates.js +58 -24
- package/dist/core/updates.js.map +1 -1
- package/dist/core/zip.js +29 -4
- package/dist/core/zip.js.map +1 -1
- package/dist/directory/federate.js +3 -1
- package/dist/directory/federate.js.map +1 -1
- package/dist/directory/fetch.d.ts +1 -1
- package/dist/markup/markdown.js +2 -1
- package/dist/markup/markdown.js.map +1 -1
- package/dist/markup/resume.js +18 -5
- package/dist/markup/resume.js.map +1 -1
- package/dist/mcp/tools.js +99 -7
- package/dist/mcp/tools.js.map +1 -1
- package/dist/schema/index.d.ts +1 -0
- package/dist/schema/index.js +1 -0
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/instance.js +29 -0
- package/dist/schema/instance.js.map +1 -1
- package/dist/schema/job.d.ts +12 -0
- package/dist/schema/job.js +17 -3
- package/dist/schema/job.js.map +1 -1
- package/dist/schema/jsonld.js +7 -6
- package/dist/schema/jsonld.js.map +1 -1
- package/dist/schema/pay.d.ts +173 -0
- package/dist/schema/pay.js +668 -0
- package/dist/schema/pay.js.map +1 -0
- package/dist/schema/query.js +1 -1
- package/dist/schema/query.js.map +1 -1
- package/dist/server/app.js +3 -1
- package/dist/server/app.js.map +1 -1
- package/dist/server/middleware.d.ts +11 -1
- package/dist/server/middleware.js +18 -3
- package/dist/server/middleware.js.map +1 -1
- package/dist/server/routes/api.js +153 -7
- package/dist/server/routes/api.js.map +1 -1
- package/dist/server/routes/discovery.js +10 -8
- package/dist/server/routes/discovery.js.map +1 -1
- package/dist/server/routes/openapi.js +136 -2
- package/dist/server/routes/openapi.js.map +1 -1
- package/dist/server/routes/pages.js +155 -14
- package/dist/server/routes/pages.js.map +1 -1
- package/dist/tui/views.js +9 -3
- package/dist/tui/views.js.map +1 -1
- package/dist/views/candidates.d.ts +6 -0
- package/dist/views/candidates.js +2 -1
- package/dist/views/candidates.js.map +1 -1
- package/dist/views/inbox.js +6 -6
- package/dist/views/inbox.js.map +1 -1
- package/dist/views/jobs.d.ts +16 -0
- package/dist/views/jobs.js +33 -11
- package/dist/views/jobs.js.map +1 -1
- package/dist/views/layout.d.ts +22 -0
- package/dist/views/layout.js +18 -0
- package/dist/views/layout.js.map +1 -1
- package/dist/views/me.d.ts +7 -0
- package/dist/views/me.js +3 -2
- package/dist/views/me.js.map +1 -1
- package/dist/views/post.d.ts +18 -0
- package/dist/views/post.js +39 -7
- package/dist/views/post.js.map +1 -1
- package/dist/views/recommendations.d.ts +43 -0
- package/dist/views/recommendations.js +26 -0
- package/dist/views/recommendations.js.map +1 -0
- package/dist/views/updates.js +5 -5
- package/dist/views/updates.js.map +1 -1
- package/docs/openjob.md +63 -0
- package/migrations/0015_pay_lines.sql +38 -0
- package/migrations/0016_recommendations.sql +65 -0
- package/package.json +1 -1
- package/web/public/app.css +60 -5
- package/web/public/sw.js +6 -2
package/dist/core/jobs.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
import { DEFAULT_APPLY_SCHEMA, isAgentPolicy, isEmploymentType, isSeniority, isSalaryPeriod, isWorkplace, } from "../schema/index.js";
|
|
9
9
|
import { clean, parseList, slugify, suffix } from "../schema/text.js";
|
|
10
10
|
import { PER_YEAR } from "../schema/salary.js";
|
|
11
|
+
import { isPayType, normalisePay, payFromSalary, payStated, salaryFromPay, } from "../schema/pay.js";
|
|
11
12
|
// Filtering and ordering must compare periods on the same basis as the
|
|
12
13
|
// structured data and merged searches. Cast before multiplying: the stored
|
|
13
14
|
// integer range can annualise beyond Postgres's 32-bit integer limit.
|
|
@@ -20,7 +21,8 @@ const ANNUAL_TOP_SALARY = `case when j.salary_unpaid then null else
|
|
|
20
21
|
const SELECT = `
|
|
21
22
|
select j.id, j.slug, j.title, j.description, j.employment_type, j.workplace, j.seniority,
|
|
22
23
|
j.location, j.remote_regions, j.salary_min, j.salary_max, j.salary_currency,
|
|
23
|
-
j.salary_period, j.salary_equity, j.salary_unpaid, j.
|
|
24
|
+
j.salary_period, j.salary_equity, j.salary_unpaid, j.pay_lines, j.pay_method,
|
|
25
|
+
j.tags, j.stack, j.requirements, j.responsibilities,
|
|
24
26
|
j.agent_policy, j.apply_via, j.apply_url, j.apply_email, j.apply_schema,
|
|
25
27
|
j.apply_source_url, j.status,
|
|
26
28
|
j.published_at, j.expires_at, j.created_at, j.updated_at,
|
|
@@ -53,6 +55,61 @@ function toOrganisation(row) {
|
|
|
53
55
|
function toApplyMethod(row) {
|
|
54
56
|
return { via: 'board', schema: row.apply_schema ?? DEFAULT_APPLY_SCHEMA };
|
|
55
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* The pay lines, read back out of JSON with the same suspicion as any other
|
|
60
|
+
* column that came from outside: a row written by an older build, a restore
|
|
61
|
+
* or a hand edit must render, not throw. A row with no lines but a salary
|
|
62
|
+
* range is one the backfill has not reached, and reads as that one line.
|
|
63
|
+
*/
|
|
64
|
+
function payOf(row) {
|
|
65
|
+
const lines = [];
|
|
66
|
+
if (Array.isArray(row.pay_lines)) {
|
|
67
|
+
for (const entry of row.pay_lines) {
|
|
68
|
+
if (typeof entry !== 'object' || entry === null)
|
|
69
|
+
continue;
|
|
70
|
+
const line = entry;
|
|
71
|
+
if (!isPayType(line['type']))
|
|
72
|
+
continue;
|
|
73
|
+
const number = (value) => typeof value === 'number' && Number.isFinite(value) ? value : null;
|
|
74
|
+
lines.push({
|
|
75
|
+
type: line['type'],
|
|
76
|
+
min: number(line['min']),
|
|
77
|
+
max: number(line['max']),
|
|
78
|
+
currency: typeof line['currency'] === 'string' ? line['currency'] : 'USD',
|
|
79
|
+
unit: typeof line['unit'] === 'string' ? line['unit'] : null,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const unpaid = row.salary_unpaid === true;
|
|
84
|
+
if (lines.length === 0 && !unpaid && (row.salary_min !== null || row.salary_max !== null)) {
|
|
85
|
+
return {
|
|
86
|
+
...payFromSalary({
|
|
87
|
+
min: row.salary_min,
|
|
88
|
+
max: row.salary_max,
|
|
89
|
+
currency: row.salary_currency,
|
|
90
|
+
period: row.salary_period,
|
|
91
|
+
}),
|
|
92
|
+
method: row.pay_method,
|
|
93
|
+
equity: row.salary_equity,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
return { lines: unpaid ? [] : lines, method: row.pay_method, equity: row.salary_equity, unpaid };
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Why a listing cannot go live, or null when it can.
|
|
100
|
+
*
|
|
101
|
+
* Pay is required to publish. A listing that does not say what it pays gets
|
|
102
|
+
* fewer and worse applications, and on a board whose readers are agents
|
|
103
|
+
* deciding whether to bother, "not stated" is a listing nobody can act on.
|
|
104
|
+
* "Unpaid" counts: it is an answer. This is checked at publish rather than
|
|
105
|
+
* at creation so a draft can be written in pieces, by a person or a model,
|
|
106
|
+
* and only the moment it becomes public is held to it.
|
|
107
|
+
*/
|
|
108
|
+
export function publishProblem(job) {
|
|
109
|
+
if (payStated(job.pay))
|
|
110
|
+
return null;
|
|
111
|
+
return 'Say what it pays before publishing: an amount per hour, day, week, month or year, a fixed fee, a price per task, a revenue share, or that it is unpaid.';
|
|
112
|
+
}
|
|
56
113
|
export function toJob(row) {
|
|
57
114
|
return {
|
|
58
115
|
id: row.id,
|
|
@@ -67,6 +124,7 @@ export function toJob(row) {
|
|
|
67
124
|
seniority: isSeniority(row.seniority) ? row.seniority : null,
|
|
68
125
|
location: row.location,
|
|
69
126
|
remoteRegions: row.remote_regions ?? [],
|
|
127
|
+
pay: payOf(row),
|
|
70
128
|
salary: {
|
|
71
129
|
min: row.salary_min,
|
|
72
130
|
max: row.salary_max,
|
|
@@ -195,15 +253,11 @@ export function normaliseInput(input, orgId) {
|
|
|
195
253
|
const workplace = isWorkplace(input['workplace']) ? input['workplace'] : 'remote';
|
|
196
254
|
const seniority = isSeniority(input['seniority']) ? input['seniority'] : null;
|
|
197
255
|
const agentPolicy = isAgentPolicy(input['agentPolicy']) ? input['agentPolicy'] : 'disclose';
|
|
198
|
-
//
|
|
199
|
-
//
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
const salaryMax = salaryUnpaid ? null : money(input['salaryMax']);
|
|
204
|
-
if (salaryMin !== null && salaryMax !== null && salaryMax < salaryMin) {
|
|
205
|
-
return 'The top of the salary range is below the bottom of it.';
|
|
206
|
-
}
|
|
256
|
+
// Pay lines, the settlement method, equity and "unpaid", from the new
|
|
257
|
+
// `pay` field or from the flat salary fields older clients still send.
|
|
258
|
+
const pay = normalisePay(input);
|
|
259
|
+
if (typeof pay === 'string')
|
|
260
|
+
return pay;
|
|
207
261
|
const apply = normaliseApply(input);
|
|
208
262
|
if (typeof apply === 'string')
|
|
209
263
|
return apply;
|
|
@@ -217,12 +271,7 @@ export function normaliseInput(input, orgId) {
|
|
|
217
271
|
seniority,
|
|
218
272
|
location: location === '' ? null : location,
|
|
219
273
|
remoteRegions: parseList(input['remoteRegions'], 30, 8).map((code) => code.toUpperCase()),
|
|
220
|
-
|
|
221
|
-
salaryMax,
|
|
222
|
-
salaryCurrency: (clean(input['salaryCurrency'], 3) || 'USD').toUpperCase(),
|
|
223
|
-
salaryPeriod: isSalaryPeriod(input['salaryPeriod']) ? input['salaryPeriod'] : 'year',
|
|
224
|
-
salaryEquity: clean(input['salaryEquity'], 60) || null,
|
|
225
|
-
salaryUnpaid,
|
|
274
|
+
pay,
|
|
226
275
|
tags: parseList(input['tags'], 12),
|
|
227
276
|
stack: parseList(input['stack'], 20),
|
|
228
277
|
requirements: lines(input['requirements'], 20),
|
|
@@ -344,13 +393,16 @@ async function uniqueSlug(pool, title) {
|
|
|
344
393
|
}
|
|
345
394
|
export async function createJob(pool, input) {
|
|
346
395
|
const slug = await uniqueSlug(pool, input.title);
|
|
396
|
+
const salary = salaryFromPay(input.pay);
|
|
347
397
|
const result = await pool.query(`insert into jobs (
|
|
348
398
|
slug, org_id, title, description, employment_type, workplace, seniority, location,
|
|
349
399
|
remote_regions, salary_min, salary_max, salary_currency, salary_period, salary_equity,
|
|
350
400
|
salary_unpaid, tags, stack, requirements, responsibilities, agent_policy, apply_via,
|
|
351
|
-
apply_url, apply_email, apply_schema, apply_source_url, expires_at, status
|
|
401
|
+
apply_url, apply_email, apply_schema, apply_source_url, expires_at, status,
|
|
402
|
+
pay_lines, pay_method
|
|
352
403
|
) values (
|
|
353
|
-
$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,'draft'
|
|
404
|
+
$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,'draft',
|
|
405
|
+
$27,$28
|
|
354
406
|
) returning id`, [
|
|
355
407
|
slug,
|
|
356
408
|
input.orgId,
|
|
@@ -361,12 +413,12 @@ export async function createJob(pool, input) {
|
|
|
361
413
|
input.seniority,
|
|
362
414
|
input.location,
|
|
363
415
|
input.remoteRegions,
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
input.
|
|
369
|
-
input.
|
|
416
|
+
salary.min,
|
|
417
|
+
salary.max,
|
|
418
|
+
salary.currency,
|
|
419
|
+
salary.period,
|
|
420
|
+
input.pay.equity,
|
|
421
|
+
input.pay.unpaid,
|
|
370
422
|
input.tags,
|
|
371
423
|
input.stack,
|
|
372
424
|
input.requirements,
|
|
@@ -378,6 +430,8 @@ export async function createJob(pool, input) {
|
|
|
378
430
|
JSON.stringify(input.apply.schema),
|
|
379
431
|
input.sourceUrl,
|
|
380
432
|
input.expiresAt,
|
|
433
|
+
JSON.stringify(input.pay.lines),
|
|
434
|
+
input.pay.method,
|
|
381
435
|
]);
|
|
382
436
|
const id = result.rows[0]?.id;
|
|
383
437
|
if (id === undefined)
|
|
@@ -433,13 +487,15 @@ export async function updateJobFromImport(pool, id, fields) {
|
|
|
433
487
|
* the slug is the listing's public URL and editing must not break links to it.
|
|
434
488
|
*/
|
|
435
489
|
export async function editJob(pool, id, input) {
|
|
490
|
+
const salary = salaryFromPay(input.pay);
|
|
436
491
|
await pool.query(`update jobs
|
|
437
492
|
set title = $2, description = $3, employment_type = $4, workplace = $5,
|
|
438
493
|
seniority = $6, location = $7, remote_regions = $8,
|
|
439
494
|
salary_min = $9, salary_max = $10, salary_currency = $11,
|
|
440
495
|
salary_period = $12, salary_equity = $13, salary_unpaid = $14,
|
|
441
496
|
tags = $15, stack = $16, requirements = $17, responsibilities = $18,
|
|
442
|
-
agent_policy = $19, expires_at = $20,
|
|
497
|
+
agent_policy = $19, expires_at = $20, pay_lines = $21, pay_method = $22,
|
|
498
|
+
updated_at = now()
|
|
443
499
|
where id = $1`, [
|
|
444
500
|
id,
|
|
445
501
|
input.title,
|
|
@@ -449,18 +505,47 @@ export async function editJob(pool, id, input) {
|
|
|
449
505
|
input.seniority,
|
|
450
506
|
input.location,
|
|
451
507
|
input.remoteRegions,
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
input.
|
|
457
|
-
input.
|
|
508
|
+
salary.min,
|
|
509
|
+
salary.max,
|
|
510
|
+
salary.currency,
|
|
511
|
+
salary.period,
|
|
512
|
+
input.pay.equity,
|
|
513
|
+
input.pay.unpaid,
|
|
458
514
|
input.tags,
|
|
459
515
|
input.stack,
|
|
460
516
|
input.requirements,
|
|
461
517
|
input.responsibilities,
|
|
462
518
|
input.agentPolicy,
|
|
463
519
|
input.expiresAt,
|
|
520
|
+
JSON.stringify(input.pay.lines),
|
|
521
|
+
input.pay.method,
|
|
522
|
+
]);
|
|
523
|
+
return getJobById(pool, id);
|
|
524
|
+
}
|
|
525
|
+
/**
|
|
526
|
+
* Change only what a listing pays, leaving the rest of it alone.
|
|
527
|
+
*
|
|
528
|
+
* The one field that is required to publish deserves a way to be set
|
|
529
|
+
* without rewriting the listing around it: a draft written last week, or a
|
|
530
|
+
* listing that went live before pay was required, needs exactly this and
|
|
531
|
+
* nothing else.
|
|
532
|
+
*/
|
|
533
|
+
export async function setPay(pool, id, pay) {
|
|
534
|
+
const salary = salaryFromPay(pay);
|
|
535
|
+
await pool.query(`update jobs
|
|
536
|
+
set salary_min = $2, salary_max = $3, salary_currency = $4, salary_period = $5,
|
|
537
|
+
salary_equity = $6, salary_unpaid = $7, pay_lines = $8, pay_method = $9,
|
|
538
|
+
updated_at = now()
|
|
539
|
+
where id = $1`, [
|
|
540
|
+
id,
|
|
541
|
+
salary.min,
|
|
542
|
+
salary.max,
|
|
543
|
+
salary.currency,
|
|
544
|
+
salary.period,
|
|
545
|
+
pay.equity,
|
|
546
|
+
pay.unpaid,
|
|
547
|
+
JSON.stringify(pay.lines),
|
|
548
|
+
pay.method,
|
|
464
549
|
]);
|
|
465
550
|
return getJobById(pool, id);
|
|
466
551
|
}
|
package/dist/core/jobs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/core/jobs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/core/jobs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recommendations: what somebody who worked with you says about you, on
|
|
3
|
+
* your page once you have agreed to it.
|
|
4
|
+
*
|
|
5
|
+
* Not a rating. A star out of five from a stranger who paid you once is a
|
|
6
|
+
* number that says nothing and cannot be answered, and it is the thing that
|
|
7
|
+
* turns a profile into a scoreboard. A recommendation is a paragraph with a
|
|
8
|
+
* name on it, and it goes on your page only when you approve it. Reject it
|
|
9
|
+
* and nothing is shown, to anybody. That is the model LinkedIn settled on,
|
|
10
|
+
* and it is the right one for a board where every profile is a person's own
|
|
11
|
+
* document.
|
|
12
|
+
*
|
|
13
|
+
* Both directions, because the board is symmetric: an employer recommends a
|
|
14
|
+
* candidate it hired, and a candidate recommends an employer they worked
|
|
15
|
+
* for. Each side is a person or an employer, exactly as a message is, and
|
|
16
|
+
* for the same reason: a recommendation from "Acme" outlives the member who
|
|
17
|
+
* typed it, and one from a person has a page behind it that can be read.
|
|
18
|
+
*
|
|
19
|
+
* What keeps this honest:
|
|
20
|
+
*
|
|
21
|
+
* - The author has a page. A person recommends as themselves only with a
|
|
22
|
+
* published resume; an employer's member recommends as the employer. A
|
|
23
|
+
* recommendation from an account made this morning is not worth showing
|
|
24
|
+
* and is not accepted.
|
|
25
|
+
* - One per author per subject. Writing it again replaces the words and
|
|
26
|
+
* goes back to pending for the subject to read again.
|
|
27
|
+
* - Ten a day per person, whichever side they wrote for.
|
|
28
|
+
* - The subject decides, and can change their mind: an approved one can be
|
|
29
|
+
* taken down later, and a rejected one stays rejected until the author
|
|
30
|
+
* rewrites it.
|
|
31
|
+
*/
|
|
32
|
+
import type pg from 'pg';
|
|
33
|
+
import type { Mailer } from './mail.ts';
|
|
34
|
+
export declare const BODY_MIN = 20;
|
|
35
|
+
export declare const BODY_MAX = 2000;
|
|
36
|
+
export declare const RELATIONSHIP_MAX = 120;
|
|
37
|
+
/** Per person, per day. */
|
|
38
|
+
export declare const DAILY_LIMIT = 10;
|
|
39
|
+
export type RecommendationStatus = 'pending' | 'approved' | 'rejected';
|
|
40
|
+
export type Party = {
|
|
41
|
+
kind: 'candidate';
|
|
42
|
+
userId: string;
|
|
43
|
+
} | {
|
|
44
|
+
kind: 'employer';
|
|
45
|
+
orgId: string;
|
|
46
|
+
};
|
|
47
|
+
export interface RecommendationParty {
|
|
48
|
+
kind: 'candidate' | 'employer';
|
|
49
|
+
name: string;
|
|
50
|
+
/** The page, or null when the party has none any more. */
|
|
51
|
+
slug: string | null;
|
|
52
|
+
}
|
|
53
|
+
export interface Recommendation {
|
|
54
|
+
id: string;
|
|
55
|
+
body: string;
|
|
56
|
+
relationship: string | null;
|
|
57
|
+
status: RecommendationStatus;
|
|
58
|
+
author: RecommendationParty;
|
|
59
|
+
subject: RecommendationParty;
|
|
60
|
+
createdAt: string;
|
|
61
|
+
decidedAt: string | null;
|
|
62
|
+
}
|
|
63
|
+
export declare function isStatus(value: unknown): value is RecommendationStatus;
|
|
64
|
+
/** What is on somebody's page: approved only, newest decision first. */
|
|
65
|
+
export declare function listApproved(pool: pg.Pool, subject: Party): Promise<Recommendation[]>;
|
|
66
|
+
/**
|
|
67
|
+
* Everything written about the viewer or their employers, every status.
|
|
68
|
+
* Pending first, because that is what needs a decision.
|
|
69
|
+
*/
|
|
70
|
+
export declare function listReceived(pool: pg.Pool, viewerId: string): Promise<Recommendation[]>;
|
|
71
|
+
/** Everything the viewer wrote, as themselves or as an employer. */
|
|
72
|
+
export declare function listGiven(pool: pg.Pool, viewerId: string): Promise<Recommendation[]>;
|
|
73
|
+
export declare function pendingCount(pool: pg.Pool, viewerId: string): Promise<number>;
|
|
74
|
+
export interface WriteInput {
|
|
75
|
+
as: Party;
|
|
76
|
+
subject: Party;
|
|
77
|
+
body: unknown;
|
|
78
|
+
relationship: unknown;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Write one, or rewrite the one already written about this subject.
|
|
82
|
+
*
|
|
83
|
+
* Returns the recommendation, or a sentence saying why not. A rewrite goes
|
|
84
|
+
* back to pending: the subject approved the earlier words, not whatever
|
|
85
|
+
* comes next.
|
|
86
|
+
*/
|
|
87
|
+
export declare function writeRecommendation(pool: pg.Pool, viewerId: string, input: WriteInput): Promise<Recommendation | string>;
|
|
88
|
+
export declare function getRecommendation(pool: pg.Pool, id: string): Promise<Recommendation | null>;
|
|
89
|
+
/**
|
|
90
|
+
* The subject's decision. Approve, or reject; either can be changed later,
|
|
91
|
+
* because taking down a recommendation you approved last year is a thing
|
|
92
|
+
* people need to do. The ownership test is in the update's `where`, so a
|
|
93
|
+
* caller who does not own the subject changes nothing and learns nothing.
|
|
94
|
+
*/
|
|
95
|
+
export declare function decide(pool: pg.Pool, viewerId: string, id: string, decision: 'approved' | 'rejected'): Promise<Recommendation | null>;
|
|
96
|
+
/** The author takes it back. Gone, not hidden: it was theirs to say. */
|
|
97
|
+
export declare function withdraw(pool: pg.Pool, viewerId: string, id: string): Promise<boolean>;
|
|
98
|
+
export interface Resolved {
|
|
99
|
+
as: Party;
|
|
100
|
+
asParty: RecommendationParty;
|
|
101
|
+
subject: Party;
|
|
102
|
+
subjectParty: RecommendationParty;
|
|
103
|
+
/** The employers the writer could write as, for a form's select. */
|
|
104
|
+
asOptions: {
|
|
105
|
+
slug: string;
|
|
106
|
+
name: string;
|
|
107
|
+
}[];
|
|
108
|
+
/** True when the writer has a published resume and may write as themselves. */
|
|
109
|
+
canWriteAsSelf: boolean;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Who is writing, and about whom, from a candidate slug or an employer
|
|
113
|
+
* slug plus an optional `as`. A person writes as themselves only with a
|
|
114
|
+
* published resume, so the recommendation has a page behind it; without
|
|
115
|
+
* one, and without an employer to write as, there is nobody to sign it.
|
|
116
|
+
*/
|
|
117
|
+
export declare function resolve(pool: pg.Pool, viewerId: string, params: {
|
|
118
|
+
candidate?: string;
|
|
119
|
+
org?: string;
|
|
120
|
+
as?: string;
|
|
121
|
+
}): Promise<Resolved | string>;
|
|
122
|
+
/**
|
|
123
|
+
* Tell the subject there is something to approve. The words travel in the
|
|
124
|
+
* mail, so the decision can be made from it, and the link goes to the place
|
|
125
|
+
* the buttons are.
|
|
126
|
+
*/
|
|
127
|
+
export declare function notifySubject(options: {
|
|
128
|
+
pool: pg.Pool;
|
|
129
|
+
mailer: Mailer | null;
|
|
130
|
+
boardName: string;
|
|
131
|
+
publicUrl: string;
|
|
132
|
+
recommendation: Recommendation;
|
|
133
|
+
subject: Party;
|
|
134
|
+
}): Promise<number>;
|