job-pro 1.0.81 → 1.0.83
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/dist/apply.js +4 -3
- package/dist/index.js +18 -10
- package/package.json +1 -1
package/dist/apply.js
CHANGED
|
@@ -554,9 +554,10 @@ async function buildMultipartForm(staged) {
|
|
|
554
554
|
* → { code:0, data:{ upload_url, attachment_id, fields:{…} } }
|
|
555
555
|
* 2. POST/PUT to data.upload_url (lf-package-cn.feishucdn.com or similar)
|
|
556
556
|
* multipart/form-data with fields[…] + file bytes
|
|
557
|
-
* 3. POST {host}/api/v1/resume/apply
|
|
558
|
-
*
|
|
559
|
-
*
|
|
557
|
+
* 3. POST {host}/api/v1/user/applications (was /api/v1/resume/apply
|
|
558
|
+
* pre-1.0.62; the real route discovered via atsx-throne SPA chunk
|
|
559
|
+
* dump). Body: { post_id, attachment_id, applicant_info:{ name,
|
|
560
|
+
* email, phone } } → { code:0, data:{ application_id } }
|
|
560
561
|
*
|
|
561
562
|
* Session.json must contain valid Feishu cookies (typically `_csrf_token`,
|
|
562
563
|
* `lark_oapi_session`, `passport_csrf_token`) for the host.
|
package/dist/index.js
CHANGED
|
@@ -833,6 +833,11 @@ async function runCompany(adapter, company, rawArgs) {
|
|
|
833
833
|
return emit({ mode: "really-submit", staged, submit_kind: kind, session_used: true, result }, compact);
|
|
834
834
|
}
|
|
835
835
|
if (!isGenericMultipart) {
|
|
836
|
+
// Reachable only if a schema returns a SubmitKind that isn't in the
|
|
837
|
+
// current taxonomy (multipart-anon/session/feishu-3-step/moka-aes/
|
|
838
|
+
// beisen-wecruit/beisen-italent/cdp-real-browser/external). The
|
|
839
|
+
// SubmitKind type permits `(string & {})` extensibility, so a future
|
|
840
|
+
// contributor adding a new family without wiring it would land here.
|
|
836
841
|
return emit({
|
|
837
842
|
ok: false,
|
|
838
843
|
source: company,
|
|
@@ -841,12 +846,12 @@ async function runCompany(adapter, company, rawArgs) {
|
|
|
841
846
|
staged,
|
|
842
847
|
submit_kind: kind,
|
|
843
848
|
submit_notes: sr.schema.submit_notes,
|
|
844
|
-
message: `submit_kind="${kind}"
|
|
845
|
-
`
|
|
846
|
-
`
|
|
847
|
-
`
|
|
848
|
-
`
|
|
849
|
-
`
|
|
849
|
+
message: `submit_kind="${kind}" is unknown — no wired executor. The 7 ` +
|
|
850
|
+
`current families are: multipart-anon, multipart-session, ` +
|
|
851
|
+
`feishu-3-step, moka-aes, beisen-wecruit, beisen-italent, ` +
|
|
852
|
+
`cdp-real-browser. To add a new family, wire an executor in ` +
|
|
853
|
+
`cli/src/apply.ts. Use --debug-submit-to <url> in the meantime ` +
|
|
854
|
+
`to verify the wire format you'd want.`,
|
|
850
855
|
}, compact);
|
|
851
856
|
}
|
|
852
857
|
// Non-anon multipart families need session.json.
|
|
@@ -1288,13 +1293,16 @@ async function main() {
|
|
|
1288
1293
|
const results = await Promise.all(scope.map(async (company) => {
|
|
1289
1294
|
// lilith uses CDP (puppeteer launches Chrome) — its withTimeout
|
|
1290
1295
|
// returns but the browser handle keeps the event loop alive, so
|
|
1291
|
-
// the process never exits
|
|
1292
|
-
//
|
|
1293
|
-
|
|
1296
|
+
// the process never exits during a 50-company sweep. Skip when
|
|
1297
|
+
// we're running a default/broad sweep; only probe lilith if the
|
|
1298
|
+
// user explicitly scoped --companies and lilith is the ONLY one
|
|
1299
|
+
// (so they're knowingly waiting for a CDP launch).
|
|
1300
|
+
const lilithScopedExplicit = scope.length === 1 && scope[0] === "lilith";
|
|
1301
|
+
if (company === "lilith" && !lilithScopedExplicit) {
|
|
1294
1302
|
// lilith is in ENDPOINT_VERIFIED but we skip the probe (would
|
|
1295
1303
|
// hang puppeteer). Surface the already_verified status so the
|
|
1296
1304
|
// icon shows ⚠ ("schema verified, probe skipped") not "?".
|
|
1297
|
-
return { company, classification: "probe-error", detail: "skipped — CDP adapter (puppeteer); pass --companies=lilith
|
|
1305
|
+
return { company, classification: "probe-error", detail: "skipped — CDP adapter (puppeteer); pass --companies=lilith alone to probe", already_verified: true };
|
|
1298
1306
|
}
|
|
1299
1307
|
const adapter = ADAPTERS[company];
|
|
1300
1308
|
if (!adapter)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "job-pro",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.83",
|
|
4
4
|
"description": "Query Chinese big-tech campus recruiting + auto-apply from your terminal. 50 companies, all 50 live (46 via official APIs, 4 via Liepin third-party fallback). 45/50 with end-to-end verified apply endpoints; 5 structurally-external (Liepin IM × 4 + Unitree WeChat). No signup, no token, no server.",
|
|
5
5
|
"homepage": "https://job.ha7ch.com",
|
|
6
6
|
"repository": "https://github.com/HA7CH/job-pro",
|