@thejob/jobs-client 1.0.1 → 2.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.
- package/README.md +3 -4
- package/dist/client.d.ts +20 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +26 -6
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/types.d.ts +17 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +7 -8
package/README.md
CHANGED
|
@@ -23,9 +23,8 @@ const { results, total } = await jobs.listJobs({
|
|
|
23
23
|
// &category[0]=Technology%2C+Data+%26+Digital&salary[min]=50000&limit=6
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
>
|
|
27
|
-
>
|
|
28
|
-
> service and its ~20 existing call sites is a separate, approved step.
|
|
26
|
+
> The service parses exactly this `qs` form. The older `filter[field]=value`
|
|
27
|
+
> dialect is retired and answers 400.
|
|
29
28
|
|
|
30
29
|
## Methods
|
|
31
30
|
|
|
@@ -33,7 +32,7 @@ Twenty methods for twenty endpoints, one to one. No wrappers, no helpers.
|
|
|
33
32
|
|
|
34
33
|
| | |
|
|
35
34
|
|---|---|
|
|
36
|
-
| **Read** | `listJobs` · `getJob` · `listSimilarJobs` · `searchJobsV3`
|
|
35
|
+
| **Read** | `listJobs` · `getJob` · `listSimilarJobs` · `searchJobsV3` |
|
|
37
36
|
| **Write** | `createJob` · `updateJob` · `deleteJob` · `closeJob` · `reopenJob` · `toggleJobFeatured` · `purgeJobCache` |
|
|
38
37
|
| **Bookmarks** | `addBookmark` · `removeBookmark` |
|
|
39
38
|
| **Expiry** | `listJobsDueForExpiryCheck` · `closeLapsedJobs` |
|
package/dist/client.d.ts
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* Auth: pass `apiKey` for backend-to-backend calls, `token` for user-scoped ones
|
|
21
21
|
* (bookmarks). Uses the global `fetch`.
|
|
22
22
|
*/
|
|
23
|
-
import type { BookmarkResult, JobDoc, JobListQuery, JobPage } from './types.js';
|
|
23
|
+
import type { BookmarkResult, JobBatchResult, JobDoc, JobListQuery, JobPage } from './types.js';
|
|
24
24
|
export interface JobsClientOptions {
|
|
25
25
|
/** Base URL of the service, e.g. "http://localhost:3081" (trailing slash trimmed). */
|
|
26
26
|
baseUrl: string;
|
|
@@ -51,6 +51,11 @@ export declare class JobsClient {
|
|
|
51
51
|
* an empty array encodes to a term matching nothing, silently.
|
|
52
52
|
*/
|
|
53
53
|
private get;
|
|
54
|
+
/**
|
|
55
|
+
* The `?…` suffix for a jobs query, or `''`. One encoder for `get` and
|
|
56
|
+
* `listJobsBatch`, so a batched query is byte-for-byte what `listJobs` sends.
|
|
57
|
+
*/
|
|
58
|
+
private querySuffix;
|
|
54
59
|
/**
|
|
55
60
|
* Jobs matching a filter, with the filter's TOTAL alongside the page.
|
|
56
61
|
*
|
|
@@ -66,10 +71,8 @@ export declare class JobsClient {
|
|
|
66
71
|
getJob(shortId: string, fields?: string[]): Promise<JobDoc>;
|
|
67
72
|
/** Jobs similar to one job (vector neighbours). */
|
|
68
73
|
listSimilarJobs(shortId: string, query?: JobListQuery): Promise<JobPage>;
|
|
69
|
-
/**
|
|
74
|
+
/** Parsed-query search. Currently a placeholder that answers an empty page. */
|
|
70
75
|
searchJobsV3(query?: JobListQuery): Promise<JobPage>;
|
|
71
|
-
/** Meilisearch-backed search. */
|
|
72
|
-
searchJobsMeili(query?: JobListQuery): Promise<JobPage>;
|
|
73
76
|
/**
|
|
74
77
|
* Create a job as the acting user (requires `token`).
|
|
75
78
|
*
|
|
@@ -113,6 +116,19 @@ export declare class JobsClient {
|
|
|
113
116
|
* its own bookkeeping, so this is a purpose-built feed rather than something a
|
|
114
117
|
* caller could express as a `listJobs` filter.
|
|
115
118
|
*/
|
|
119
|
+
/**
|
|
120
|
+
* Many `listJobs` queries in one call, the first query with results winning
|
|
121
|
+
* per item.
|
|
122
|
+
*
|
|
123
|
+
* For each item the queries run in order, most specific first; the answer is
|
|
124
|
+
* the first page with any result and its `index`, or `index: -1` with an empty
|
|
125
|
+
* page when none matched. Keys are opaque and echoed back. Needs the service
|
|
126
|
+
* API key. At most 500 items and 10 queries per item per call.
|
|
127
|
+
*/
|
|
128
|
+
listJobsBatch(items: Array<{
|
|
129
|
+
key: string;
|
|
130
|
+
queries: JobListQuery[];
|
|
131
|
+
}>): Promise<JobBatchResult>;
|
|
116
132
|
listJobsDueForExpiryCheck(query?: JobListQuery): Promise<JobPage>;
|
|
117
133
|
/**
|
|
118
134
|
* Run the dated auto-close sweep on demand.
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,KAAK,EACV,cAAc,EACd,MAAM,EACN,YAAY,EACZ,OAAO,EACR,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,iBAAiB;IAChC,sFAAsF;IACtF,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,2EAA2E;AAC3E,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,MAAM,EAAE,MAAM;aACd,IAAI,EAAE,OAAO;gBAF7B,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO;CAKhC;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;gBAErC,OAAO,EAAE,iBAAiB;YAaxB,OAAO;IAiBrB;;;;OAIG;IACH,OAAO,CAAC,GAAG;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -70,6 +70,13 @@ export class JobsClient {
|
|
|
70
70
|
* an empty array encodes to a term matching nothing, silently.
|
|
71
71
|
*/
|
|
72
72
|
get(path, q) {
|
|
73
|
+
return this.request('GET', `${path}${this.querySuffix(q)}`);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* The `?…` suffix for a jobs query, or `''`. One encoder for `get` and
|
|
77
|
+
* `listJobsBatch`, so a batched query is byte-for-byte what `listJobs` sends.
|
|
78
|
+
*/
|
|
79
|
+
querySuffix(q) {
|
|
73
80
|
const { fields, ...rest } = (q ?? {});
|
|
74
81
|
const params = { ...rest };
|
|
75
82
|
// ONE comma-joined param. `parseResponseFields` server-side reads
|
|
@@ -79,7 +86,7 @@ export class JobsClient {
|
|
|
79
86
|
// looks like a working call with a much larger payload.
|
|
80
87
|
if (fields?.length)
|
|
81
88
|
params['fields'] = fields.join(',');
|
|
82
|
-
return
|
|
89
|
+
return buildQuerySuffix(params);
|
|
83
90
|
}
|
|
84
91
|
// ── jobs: read ─────────────────────────────────────────────────────────────
|
|
85
92
|
/**
|
|
@@ -103,14 +110,10 @@ export class JobsClient {
|
|
|
103
110
|
listSimilarJobs(shortId, query = {}) {
|
|
104
111
|
return this.get(`/jobs/${encodeURIComponent(shortId)}/similar`, query);
|
|
105
112
|
}
|
|
106
|
-
/**
|
|
113
|
+
/** Parsed-query search. Currently a placeholder that answers an empty page. */
|
|
107
114
|
searchJobsV3(query = {}) {
|
|
108
115
|
return this.get('/jobs/search-v3', query);
|
|
109
116
|
}
|
|
110
|
-
/** Meilisearch-backed search. */
|
|
111
|
-
searchJobsMeili(query = {}) {
|
|
112
|
-
return this.get('/jobs/search-meili', query);
|
|
113
|
-
}
|
|
114
117
|
// ── jobs: write ────────────────────────────────────────────────────────────
|
|
115
118
|
/**
|
|
116
119
|
* Create a job as the acting user (requires `token`).
|
|
@@ -174,6 +177,23 @@ export class JobsClient {
|
|
|
174
177
|
* its own bookkeeping, so this is a purpose-built feed rather than something a
|
|
175
178
|
* caller could express as a `listJobs` filter.
|
|
176
179
|
*/
|
|
180
|
+
/**
|
|
181
|
+
* Many `listJobs` queries in one call, the first query with results winning
|
|
182
|
+
* per item.
|
|
183
|
+
*
|
|
184
|
+
* For each item the queries run in order, most specific first; the answer is
|
|
185
|
+
* the first page with any result and its `index`, or `index: -1` with an empty
|
|
186
|
+
* page when none matched. Keys are opaque and echoed back. Needs the service
|
|
187
|
+
* API key. At most 500 items and 10 queries per item per call.
|
|
188
|
+
*/
|
|
189
|
+
listJobsBatch(items) {
|
|
190
|
+
return this.request('POST', '/internal/jobs/list-batch', {
|
|
191
|
+
items: items.map(({ key, queries }) => ({
|
|
192
|
+
key,
|
|
193
|
+
queries: queries.map((q) => this.querySuffix(q).replace(/^\?/, '')),
|
|
194
|
+
})),
|
|
195
|
+
});
|
|
196
|
+
}
|
|
177
197
|
listJobsDueForExpiryCheck(query = {}) {
|
|
178
198
|
return this.get('/jobs/expiry-candidates', query);
|
|
179
199
|
}
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { JobsClient, JobsClientError, type JobsClientOptions } from './client.js';
|
|
2
|
-
export type { BookmarkResult, JobDoc, JobFilter, JobListQuery, JobLocation, JobPage, } from './types.js';
|
|
2
|
+
export type { BookmarkResult, JobBatchItem, JobBatchResult, JobDoc, JobFilter, JobListQuery, JobLocation, JobPage, } from './types.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAElF,YAAY,EACV,cAAc,EACd,MAAM,EACN,SAAS,EACT,YAAY,EACZ,WAAW,EACX,OAAO,GACR,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAElF,YAAY,EACV,cAAc,EACd,YAAY,EACZ,cAAc,EACd,MAAM,EACN,SAAS,EACT,YAAY,EACZ,WAAW,EACX,OAAO,GACR,MAAM,YAAY,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -95,6 +95,23 @@ export interface JobPage {
|
|
|
95
95
|
page?: number;
|
|
96
96
|
limit?: number;
|
|
97
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* One item of a `listJobsBatch` answer: the winning query's page.
|
|
100
|
+
*
|
|
101
|
+
* @todo LIST-BATCH-SCHEMA — `key`, `queries`, `index` and `distinctQueries` are
|
|
102
|
+
* hand-written here and in the route. Declare the request and response as
|
|
103
|
+
* schemas in `@thejob/schema` (additive) and derive both sides from them.
|
|
104
|
+
*/
|
|
105
|
+
export interface JobBatchItem extends JobPage {
|
|
106
|
+
key: string;
|
|
107
|
+
/** Which of the item's queries produced this page; `-1` when none matched. */
|
|
108
|
+
index: number;
|
|
109
|
+
}
|
|
110
|
+
export interface JobBatchResult {
|
|
111
|
+
items: JobBatchItem[];
|
|
112
|
+
/** How many distinct queries the service actually ran (repeats run once). */
|
|
113
|
+
distinctQueries: number;
|
|
114
|
+
}
|
|
98
115
|
export interface BookmarkResult {
|
|
99
116
|
bookmarked?: boolean;
|
|
100
117
|
[field: string]: unknown;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGjE;;;;;;;;;;;;;;;;;;GAkBG;AACH;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC;AAEnE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,gBAAgB,CAAC;AAExD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAExF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,SAAS,CAAC,CAAC,GAAG;IAC1D,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B,CAAC;AAEF,2EAA2E;AAC3E,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGjE;;;;;;;;;;;;;;;;;;GAkBG;AACH;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC;AAEnE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,gBAAgB,CAAC;AAExD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAExF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,SAAS,CAAC,CAAC,GAAG;IAC1D,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B,CAAC;AAEF,2EAA2E;AAC3E,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAa,SAAQ,OAAO;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,6EAA6E;IAC7E,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thejob/jobs-client",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Typed TypeScript/JavaScript client for the thejob-jobs-service HTTP API.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -22,12 +22,6 @@
|
|
|
22
22
|
"engines": {
|
|
23
23
|
"node": ">=18"
|
|
24
24
|
},
|
|
25
|
-
"scripts": {
|
|
26
|
-
"build": "tsc -p tsconfig.json",
|
|
27
|
-
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
28
|
-
"test": "vitest run",
|
|
29
|
-
"prepublishOnly": "npm run build"
|
|
30
|
-
},
|
|
31
25
|
"publishConfig": {
|
|
32
26
|
"access": "public"
|
|
33
27
|
},
|
|
@@ -41,5 +35,10 @@
|
|
|
41
35
|
"@types/node": "^22.19.19",
|
|
42
36
|
"typescript": "^5.9.3",
|
|
43
37
|
"vitest": "^4.1.9"
|
|
38
|
+
},
|
|
39
|
+
"scripts": {
|
|
40
|
+
"build": "tsc -p tsconfig.json",
|
|
41
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
42
|
+
"test": "vitest run"
|
|
44
43
|
}
|
|
45
|
-
}
|
|
44
|
+
}
|