weaver-work-cli 0.1.42 → 0.1.44
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 +17 -0
- package/dist/chunks/{archive-J4I6MCKF.js → archive-P6TBQGKL.js} +13 -5
- package/dist/chunks/{archive-oa-BRZKKTO4.js → archive-oa-7TQ2NXOH.js} +12 -5
- package/dist/chunks/{asset-L7D4FAOZ.js → asset-3ELRG37G.js} +11 -4
- package/dist/chunks/{asset-idle-DADLLV75.js → asset-idle-WIGMUFMD.js} +7 -3
- package/dist/chunks/{attachment-content-K4C7VLWQ.js → attachment-content-E3276UOV.js} +5 -4
- package/dist/chunks/{blog-BVGQ7NZL.js → blog-C5NMZAAC.js} +11 -4
- package/dist/chunks/{caizhilian-SAADNFD6.js → caizhilian-5XSM2DFP.js} +13 -6
- package/dist/chunks/{calendar-Q7NQY5Z2.js → calendar-FI2WNSBO.js} +12 -5
- package/dist/chunks/{chunk-YRSZQUD2.js → chunk-3YBDYOC4.js} +3 -3
- package/dist/chunks/{chunk-OOUTBLZ4.js → chunk-56EZERK4.js} +1 -1
- package/dist/chunks/chunk-6N4JPNFL.js +76 -0
- package/dist/chunks/{chunk-ZUX3P6BQ.js → chunk-727FH2NI.js} +1 -1
- package/dist/chunks/chunk-7BDPM5ST.js +11 -0
- package/dist/chunks/{chunk-EKWAQSLU.js → chunk-BCVYBYYT.js} +432 -2248
- package/dist/chunks/{chunk-W7BEHOSR.js → chunk-CWYGFU5B.js} +2 -2
- package/dist/chunks/{chunk-NOODWMCL.js → chunk-D4ADSZ7H.js} +1 -1
- package/dist/chunks/{chunk-SA6VBIHY.js → chunk-ETNJSKMM.js} +214 -16
- package/dist/chunks/{chunk-BBKDXQEC.js → chunk-F4E4EM35.js} +3 -3
- package/dist/chunks/{chunk-IZ7S7QUS.js → chunk-FAZTGX7S.js} +6 -6
- package/dist/chunks/{chunk-NKZRQXST.js → chunk-FRZKBMSW.js} +52 -36
- package/dist/chunks/{chunk-BYBSCN4X.js → chunk-G7PQWD4L.js} +6 -3
- package/dist/chunks/{chunk-GEWYMQME.js → chunk-GAMZLAG2.js} +1 -1
- package/dist/chunks/{chunk-R4CHUSKC.js → chunk-GM6J7Q4B.js} +4 -4
- package/dist/chunks/{chunk-APVFJUQH.js → chunk-GRDRG6HP.js} +3 -3
- package/dist/chunks/{chunk-LDZQPUIA.js → chunk-HIT4Y6OI.js} +1 -1
- package/dist/chunks/{chunk-EZALDOQH.js → chunk-HP7JIYMT.js} +5 -2
- package/dist/chunks/{chunk-LADPYOWC.js → chunk-IAZ3UPY6.js} +3 -3
- package/dist/chunks/{chunk-ZEDWSH32.js → chunk-IC62NFM5.js} +1 -1
- package/dist/chunks/{chunk-P26ZWSKU.js → chunk-KIHNAS25.js} +5 -2
- package/dist/chunks/{chunk-BIPYLLVS.js → chunk-N4M2DDFE.js} +15 -15
- package/dist/chunks/{chunk-QKNKR4RH.js → chunk-OF4S23UB.js} +4 -4
- package/dist/chunks/{chunk-JPRO6ER2.js → chunk-PC7VKEB5.js} +57 -60
- package/dist/chunks/{chunk-4PD5NWAX.js → chunk-PUQS5MWL.js} +2 -2
- package/dist/chunks/{chunk-2LV74IWP.js → chunk-Q4OYAQYH.js} +1 -1
- package/dist/chunks/{chunk-72CKAUAG.js → chunk-QVSWRLLU.js} +7 -5
- package/dist/chunks/{chunk-4RAE6JXP.js → chunk-TA7FXXJD.js} +6 -3
- package/dist/chunks/{chunk-GPMFD4RD.js → chunk-TXUG266F.js} +1 -1
- package/dist/chunks/{chunk-FOAA27U5.js → chunk-UFIT2UU3.js} +16 -4
- package/dist/chunks/{chunk-LUSPKZKY.js → chunk-UG5G54VL.js} +1 -0
- package/dist/chunks/{chunk-NIAJ5ZCG.js → chunk-UL5XUQ25.js} +5 -2
- package/dist/chunks/{chunk-FMPJJYYI.js → chunk-WRXSAVKO.js} +1 -1
- package/dist/chunks/{chunk-G4UR6NXN.js → chunk-WSF4NNMR.js} +3 -3
- package/dist/chunks/chunk-XHK4MDR5.js +2497 -0
- package/dist/chunks/{chunk-3KTFS4IA.js → chunk-XNIK66I4.js} +19 -9
- package/dist/chunks/{chunk-3SO6QL6U.js → chunk-YWX377BY.js} +5 -2
- package/dist/chunks/{chunk-BYATLLEF.js → chunk-Z3GDFVJR.js} +1 -1
- package/dist/chunks/{chunk-GHXCDPTM.js → chunk-Z7VYWPZV.js} +1 -1
- package/dist/chunks/{conflict-F2OMZRTO.js → conflict-ARLSZJ6V.js} +4 -3
- package/dist/chunks/{continuation-2CKSBLA6.js → continuation-3S37AUSH.js} +4 -3
- package/dist/chunks/{continuation-RN6PZN2M.js → continuation-3XLYYTKV.js} +4 -3
- package/dist/chunks/{continuation-HZIZRZBX.js → continuation-HFW2YT5S.js} +4 -3
- package/dist/chunks/{continuation-NLECEJPX.js → continuation-KI7DRRZN.js} +4 -3
- package/dist/chunks/{contract-5BETHRSG.js → contract-DNIIW5VJ.js} +13 -5
- package/dist/chunks/{cowork-3MN6EQQO.js → cowork-GMLRGVIW.js} +11 -4
- package/dist/chunks/{create-flow-5FQNNMVO.js → create-flow-J22BO65E.js} +8 -7
- package/dist/chunks/{ebuilder-form-SBHOYBUD.js → ebuilder-form-ANV2FHYV.js} +12 -7
- package/dist/chunks/{ehr-KMOJULKG.js → ehr-GSTGAIY3.js} +266 -24
- package/dist/chunks/{employee-SAK2QYXX.js → employee-22BGJ3QS.js} +3 -3
- package/dist/chunks/{env-LB7NBL2O.js → env-BX3VRFS7.js} +4 -3
- package/dist/chunks/{esb-W2PJCFCX.js → esb-ATAIASX2.js} +12 -7
- package/dist/chunks/{factory-6ZFQXQ46.js → factory-PETTFME6.js} +3 -2
- package/dist/chunks/{fna-ZQPCUV4R.js → fna-YEKBSFSX.js} +14 -8
- package/dist/chunks/{group-chat-2HHAJN46.js → group-chat-BFVXAYFX.js} +5 -4
- package/dist/chunks/{host-ATKVNZAT.js → host-HRBXEPDQ.js} +5 -5
- package/dist/chunks/{host-BQH22NTQ.js → host-LR55CTHP.js} +5 -5
- package/dist/chunks/{host-X2CSLFM6.js → host-SUOY6VYQ.js} +5 -5
- package/dist/chunks/{host-4CBHGOHT.js → host-SZGV4UNT.js} +5 -5
- package/dist/chunks/{host-YTODKMSL.js → host-WIKN2EJ5.js} +5 -5
- package/dist/chunks/{hrm-FFM4UJFS.js → hrm-NRDO4W5G.js} +11 -7
- package/dist/chunks/{im-VEHKDQPB.js → im-IQ2HN23S.js} +8 -7
- package/dist/chunks/{invoice-LVIKSIIF.js → invoice-MNRW76PP.js} +636 -1768
- package/dist/chunks/{jiuchuanhui-X6DINO5P.js → jiuchuanhui-DTRBAX4N.js} +14 -6
- package/dist/chunks/{lazy-dispatch-KSWTN5L6.js → lazy-dispatch-ZVWAI25B.js} +7 -6
- package/dist/chunks/{mail-VDKRGUD3.js → mail-ZVAUXOJA.js} +16 -14
- package/dist/chunks/{meeting-CLC6HP3Z.js → meeting-FEVPZ67S.js} +21 -14
- package/dist/chunks/{okr-CHG4OO3U.js → okr-SDH3E5RA.js} +12 -5
- package/dist/chunks/{operations-5QL3AECO.js → operations-62N6EP3C.js} +4 -3
- package/dist/chunks/{plan-XWR75667.js → plan-E35JFDI7.js} +12 -5
- package/dist/chunks/{project-5BXOOKMG.js → project-73QXBAB2.js} +11 -4
- package/dist/chunks/reception-UWZVACBN.js +1899 -0
- package/dist/chunks/{recruit-stage-DGMFNNDE.js → recruit-stage-4MAOCKFY.js} +320 -57
- package/dist/chunks/registry-IM5G23LS.js +24 -0
- package/dist/chunks/{registry-RHMW6ANW.js → registry-JDUS4E7D.js} +7 -6
- package/dist/chunks/{registry-7FFOXIAW.js → registry-KNKSCJNT.js} +7 -6
- package/dist/chunks/{registry-Z43434VG.js → registry-PO7SI256.js} +4 -4
- package/dist/chunks/{registry-OZSMDVPP.js → registry-PVUZQDDQ.js} +3 -3
- package/dist/chunks/{room-recommend-62H7ZQQ6.js → room-recommend-H7KLXA5R.js} +6 -5
- package/dist/chunks/{schedule-FNXKH3DQ.js → schedule-ESZIBAUO.js} +6 -5
- package/dist/chunks/{workflow-ADHKCAJK.js → workflow-CWJFJLQU.js} +13 -8
- package/dist/cmd/action.js +6 -0
- package/dist/cmd/identity/index.js +45 -0
- package/dist/cmd/index.js +2 -0
- package/dist/core/continuation-ttl.js +18 -0
- package/dist/core/error-codes.js +85 -0
- package/dist/core/logger.js +11 -0
- package/dist/index.js +37 -31
- package/dist/internal/e10/auth/commands.js +163 -8
- package/dist/internal/e10/auth/error-log.js +182 -0
- package/dist/internal/e10/auth/session.js +17 -3
- package/dist/internal/e10/auth-recovery.js +39 -12
- package/dist/internal/e10/context.js +17 -2
- package/dist/internal/skills/install.js +9 -1
- package/dist/shortcuts/archive/continuation.js +2 -1
- package/dist/shortcuts/archive/index.js +3 -0
- package/dist/shortcuts/archive/operations/confirm.js +2 -1
- package/dist/shortcuts/archive-oa/continuation.js +2 -1
- package/dist/shortcuts/archive-oa/index.js +2 -0
- package/dist/shortcuts/archive-oa/operations/confirm.js +2 -1
- package/dist/shortcuts/asset/continuation.js +2 -1
- package/dist/shortcuts/asset/index.js +2 -0
- package/dist/shortcuts/asset-idle/index.js +2 -0
- package/dist/shortcuts/blog/continuation.js +2 -1
- package/dist/shortcuts/blog/index.js +2 -0
- package/dist/shortcuts/caizhilian/continuation.js +2 -1
- package/dist/shortcuts/caizhilian/index.js +2 -0
- package/dist/shortcuts/caizhilian/operations/confirm.js +3 -2
- package/dist/shortcuts/calendar/continuation.js +2 -1
- package/dist/shortcuts/calendar/index.js +2 -0
- package/dist/shortcuts/calendar/operations/write.js +1 -1
- package/dist/shortcuts/contract/continuation.js +2 -1
- package/dist/shortcuts/contract/index.js +2 -0
- package/dist/shortcuts/contract/operations/write.js +2 -1
- package/dist/shortcuts/cowork/continuation.js +2 -1
- package/dist/shortcuts/cowork/index.js +2 -0
- package/dist/shortcuts/ebuilder-form/continuation.js +2 -1
- package/dist/shortcuts/ebuilder-form/index.js +2 -0
- package/dist/shortcuts/ebuilder-form/operations/write.js +3 -2
- package/dist/shortcuts/ehr/continuation.js +2 -1
- package/dist/shortcuts/ehr/index.js +2 -0
- package/dist/shortcuts/ehr/operations/attend-write.js +1 -1
- package/dist/shortcuts/ehr/operations/recruit-candidate-import.js +182 -3
- package/dist/shortcuts/ehr/operations/recruit-position.js +134 -2
- package/dist/shortcuts/ehr/operations/recruit-write.js +1 -1
- package/dist/shortcuts/esb/continuation.js +2 -1
- package/dist/shortcuts/esb/index.js +2 -0
- package/dist/shortcuts/esb/operations/trigger.js +2 -1
- package/dist/shortcuts/fna/continuation.js +2 -1
- package/dist/shortcuts/fna/index.js +2 -0
- package/dist/shortcuts/fna/operations/invoice-writeoff.js +1 -1
- package/dist/shortcuts/fna/operations/loan.js +1 -1
- package/dist/shortcuts/hrm/index.js +2 -0
- package/dist/shortcuts/im/continuation.js +2 -1
- package/dist/shortcuts/index.js +5 -0
- package/dist/shortcuts/invoice/continuation.js +2 -1
- package/dist/shortcuts/invoice/index.js +14 -15
- package/dist/shortcuts/invoice/invoice-record.js +93 -0
- package/dist/shortcuts/invoice/manifest.js +190 -393
- package/dist/shortcuts/invoice/operations/add.js +2 -1
- package/dist/shortcuts/invoice/operations/delete.js +2 -1
- package/dist/shortcuts/invoice/operations/import.js +2 -1
- package/dist/shortcuts/invoice/operations/issuing-contract-detail.js +86 -0
- package/dist/shortcuts/invoice/operations/issuing-contracts.js +210 -0
- package/dist/shortcuts/invoice/operations/registry.js +17 -17
- package/dist/shortcuts/invoice/operations/reim-auto.js +4 -569
- package/dist/shortcuts/invoice/operations/reim.js +52 -341
- package/dist/shortcuts/invoice/operations/shared.js +21 -4
- package/dist/shortcuts/invoice/operations/update.js +2 -1
- package/dist/shortcuts/invoice/projection.js +10 -62
- package/dist/shortcuts/jiuchuanhui/continuation.js +2 -1
- package/dist/shortcuts/jiuchuanhui/index.js +2 -0
- package/dist/shortcuts/jiuchuanhui/operations/datajson.js +2 -1
- package/dist/shortcuts/jiuchuanhui/operations/esb.js +2 -1
- package/dist/shortcuts/mail/continuation.js +2 -1
- package/dist/shortcuts/mail/index.js +2 -0
- package/dist/shortcuts/mail/operations/mail-blacklist.js +1 -1
- package/dist/shortcuts/mail/operations/mail-contacts.js +1 -1
- package/dist/shortcuts/mail/operations/mail-send.js +1 -1
- package/dist/shortcuts/mail/operations/mail-sign.js +1 -1
- package/dist/shortcuts/mail/operations/mail-template.js +1 -1
- package/dist/shortcuts/meeting/continuation.js +2 -1
- package/dist/shortcuts/meeting/index.js +2 -0
- package/dist/shortcuts/meeting/operations/change.js +1 -1
- package/dist/shortcuts/meeting/operations/create.js +1 -1
- package/dist/shortcuts/meeting/operations/eb/create-flow.js +16 -7
- package/dist/shortcuts/meeting/operations/eb/decision.js +1 -1
- package/dist/shortcuts/meeting/operations/eb/factory.js +1 -1
- package/dist/shortcuts/meeting/operations/lifecycle.js +1 -1
- package/dist/shortcuts/meeting/operations/receipts.js +1 -1
- package/dist/shortcuts/meeting/operations/signs.js +1 -1
- package/dist/shortcuts/okr/continuation.js +2 -1
- package/dist/shortcuts/okr/index.js +2 -0
- package/dist/shortcuts/okr/operations/write.js +1 -1
- package/dist/shortcuts/plan/continuation.js +2 -1
- package/dist/shortcuts/plan/index.js +2 -0
- package/dist/shortcuts/plan/operations/write.js +1 -1
- package/dist/shortcuts/project/continuation.js +2 -1
- package/dist/shortcuts/project/index.js +2 -0
- package/dist/shortcuts/reception/constants.js +53 -0
- package/dist/shortcuts/reception/errors.js +54 -0
- package/dist/shortcuts/reception/host.js +125 -0
- package/dist/shortcuts/reception/index.js +198 -0
- package/dist/shortcuts/reception/manifest.js +177 -0
- package/dist/shortcuts/reception/operations/ask.js +71 -0
- package/dist/shortcuts/reception/operations/browsertool.js +58 -0
- package/dist/shortcuts/reception/operations/compose.js +129 -0
- package/dist/shortcuts/reception/operations/customparams.js +74 -0
- package/dist/shortcuts/reception/operations/doc.js +238 -0
- package/dist/shortcuts/reception/operations/docrender.js +36 -0
- package/dist/shortcuts/reception/operations/panels.js +179 -0
- package/dist/shortcuts/reception/operations/registry.js +26 -0
- package/dist/shortcuts/reception/operations/render-assets.js +184 -0
- package/dist/shortcuts/reception/operations/render.js +123 -0
- package/dist/shortcuts/reception/operations/runs.js +38 -0
- package/dist/shortcuts/reception/operations/schedule.js +127 -0
- package/dist/shortcuts/reception/operations/shared.js +196 -0
- package/dist/shortcuts/reception/operations/snapshot.js +68 -0
- package/dist/shortcuts/reception/operations/types.js +1 -0
- package/dist/shortcuts/reception/operations.js +33 -0
- package/dist/shortcuts/reception/upload.js +218 -0
- package/dist/shortcuts/recruit-stage/context.js +145 -33
- package/dist/shortcuts/recruit-stage/continuation.js +2 -1
- package/dist/shortcuts/recruit-stage/operations/jd-create.js +106 -17
- package/dist/shortcuts/recruit-stage/operations/resume-import.js +166 -10
- package/dist/shortcuts/workflow/continuation.js +2 -1
- package/dist/shortcuts/workflow/index.js +2 -0
- package/dist/shortcuts/workflow/operations/form.js +32 -8
- package/dist/shortcuts/workflow/operations/write.js +1 -1
- package/docs/_catalog.md +3 -0
- package/docs/agent-invoice.md +1 -1
- package/docs/archive-oa.md +1 -1
- package/docs/caizhilian.md +1 -1
- package/docs/calendar.md +1 -1
- package/docs/contract.md +1 -1
- package/docs/e10-auth.md +16 -0
- package/docs/ehr.md +2 -2
- package/docs/esb.md +1 -1
- package/docs/im.md +1 -1
- package/docs/invoice.md +8 -12
- package/docs/okr.md +1 -1
- package/docs/reception.md +119 -0
- package/package.json +1 -1
- package/scripts/clean.mjs +43 -2
- package/skill-template/business-info.json +18 -2
- package/skill-template/domains/caizhilian.md +1 -1
- package/skill-template/domains/reception-flow.md +18 -0
- package/skill-template/domains/yepiaotong.md +4 -7
- package/skills/weaver-e10-archive-oa/references/source-manifest.json +14 -14
- package/skills/weaver-e10-blog/references/blog-publish.md +1 -1
- package/skills/weaver-e10-blog/references/source-manifest.json +7 -7
- package/skills/weaver-e10-caizhilian/references/source-manifest.json +21 -21
- package/skills/weaver-e10-caizhilian/references/write-protocol.md +2 -2
- package/skills/weaver-e10-calendar/references/calendar-write.md +1 -1
- package/skills/weaver-e10-cowork/SKILL.md +1 -1
- package/skills/weaver-e10-ebuilder-form/SKILL.md +1 -1
- package/skills/weaver-e10-ebuilder-form/references/custom-api.md +1 -1
- package/skills/weaver-e10-ebuilder-form/references/openapi-write.md +1 -1
- package/skills/weaver-e10-esb/SKILL.md +2 -2
- package/skills/weaver-e10-esb/references/source-manifest.json +22 -22
- package/skills/weaver-e10-esb/references/trigger.md +2 -2
- package/skills/weaver-e10-jinchengda/references/contract-clause-library-crud.md +1 -1
- package/skills/weaver-e10-jinchengda/references/contract-clause-reference-save.md +1 -1
- package/skills/weaver-e10-jinchengda/references/contract-request-write.md +1 -1
- package/skills/weaver-e10-jinchengda/references/source-manifest.json +29 -29
- package/skills/weaver-e10-jucailin/SKILL.md +1 -1
- package/skills/weaver-e10-jucailin/references/attend-write.md +2 -2
- package/skills/weaver-e10-jucailin/references/recruit-create.md +12 -3
- package/skills/weaver-e10-jucailin/references/recruit-write.md +1 -1
- package/skills/weaver-e10-meeting/SKILL.md +8 -6
- package/skills/weaver-e10-meeting/references/meeting-change.md +1 -1
- package/skills/weaver-e10-meeting/references/meeting-create.md +1 -1
- package/skills/weaver-e10-meeting/references/meeting-lifecycle.md +1 -1
- package/skills/weaver-e10-meeting/references/meeting-verification.md +1 -1
- package/skills/weaver-e10-okr/references/okr-align.md +1 -1
- package/skills/weaver-e10-okr/references/okr-keyresult.md +1 -1
- package/skills/weaver-e10-okr/references/okr-write.md +1 -1
- package/skills/weaver-e10-okr/references/source-manifest.json +8 -8
- package/skills/weaver-e10-plan/references/plan-report-write.md +1 -1
- package/skills/weaver-e10-plan/references/source-manifest.json +20 -20
- package/skills/weaver-e10-qiyecheng/references/loan-management.md +1 -1
- package/skills/weaver-e10-qiyecheng/references/source-manifest.json +18 -18
- package/skills/weaver-e10-reception-flow/SKILL.md +173 -0
- package/skills/weaver-e10-reception-flow/assets//350/241/214/347/250/213/345/215/225/346/250/241/346/235/277-/346/263/233/345/276/256.docx +0 -0
- package/skills/weaver-e10-reception-flow/data/fields-snapshot.json +213 -0
- package/skills/weaver-e10-reception-flow/references/browsertool.md +68 -0
- package/skills/weaver-e10-reception-flow/references/env-pitfalls.md +51 -0
- package/skills/weaver-e10-reception-flow/references/fields-snapshot.md +227 -0
- package/skills/weaver-e10-reception-flow/references/guide.md +179 -0
- package/skills/weaver-e10-reception-flow/scripts/locate.sh +14 -0
- package/skills/weaver-e10-reception-flow/scripts/render.py +724 -0
- package/skills/weaver-e10-recruit-stage/SKILL.md +9 -5
- package/skills/weaver-e10-recruit-stage/lib/recruit-xiaoe-file.mjs +1 -1
- package/skills/weaver-e10-recruit-stage/lib/xiaoe-session.mjs +66 -0
- package/skills/weaver-e10-recruit-stage/references/position-templates.md +202 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-jd-create.md +22 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-resume-import.md +14 -1
- package/skills/weaver-e10-shared/references/e10-auth-and-session.md +6 -0
- package/skills/weaver-e10-shijingran/SKILL.md +5 -5
- package/skills/weaver-e10-shijingran/references/source-manifest.json +37 -36
- package/skills/weaver-e10-skill-maker/references/module-cli-generation.md +2 -0
- package/skills/weaver-e10-wenshuding/references/source-manifest.json +3 -3
- package/skills/weaver-e10-workflow/references/source-manifest.json +32 -32
- package/skills/weaver-e10-yepiaotong/SKILL.md +19 -26
- package/skills/weaver-e10-yepiaotong/references/invoice-detail.md +13 -10
- package/skills/weaver-e10-yepiaotong/references/invoice-enterprise-list.md +2 -0
- package/skills/weaver-e10-yepiaotong/references/invoice-issuing-workflow.md +194 -155
- package/skills/weaver-e10-yepiaotong/references/invoice-output-view.md +28 -32
- package/skills/weaver-e10-yepiaotong/references/invoice-personal-list.md +5 -1
- package/skills/weaver-e10-yepiaotong/references/invoice-reim.md +8 -10
- package/skills/weaver-e10-yepiaotong/references/reim-api-reference.md +211 -616
- package/skills/weaver-e10-yepiaotong/references/reim-examples.md +149 -117
- package/skills/weaver-e10-yepiaotong/references/reim-expense-subject-rules.md +17 -20
- package/skills/weaver-e10-yepiaotong/references/reim-form-fill-rules.md +20 -39
- package/skills/weaver-e10-yepiaotong/references/reim-matching-rules.md +55 -22
- package/skills/weaver-e10-yepiaotong/references/reim-phone-subsidy-rules.md +7 -17
- package/skills/weaver-e10-yepiaotong/references/reim-workflow.md +88 -92
- package/skills/weaver-e10-yepiaotong/references/source-manifest.json +144 -354
- package/skills/weaver-e10-yimiaoban/SKILL.md +1 -1
- package/skills/weaver-e10-yimiaoban/references/msg-write.md +1 -1
- package/skills/weaver-e10-yimiaoban/references/safety-boundaries.md +1 -1
- package/skills/weaver-e10-yimiaoban/references/source-manifest.json +7 -7
- package/dist/chunks/chunk-TTPJJJC4.js +0 -465
- package/dist/chunks/registry-BKBZPBAJ.js +0 -23
- package/dist/shortcuts/invoice/markdown.js +0 -172
- package/dist/shortcuts/invoice/operations/issuing-qys.js +0 -424
- package/skills/weaver-e10-meeting.zip +0 -0
- package/skills/weaver-e10-yepiaotong/references/invoice-issuing-examples.md +0 -131
- package/skills/weaver-e10-yepiaotong/references/invoice-issuing-form-fill-rules.md +0 -179
|
@@ -37,21 +37,28 @@ import {
|
|
|
37
37
|
toNumber,
|
|
38
38
|
toPageQuery,
|
|
39
39
|
toPositiveInt
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-HIT4Y6OI.js";
|
|
41
|
+
import {
|
|
42
|
+
reportPlatformError
|
|
43
|
+
} from "./chunk-6N4JPNFL.js";
|
|
44
|
+
import {
|
|
45
|
+
CONTINUATION_TTL_MS,
|
|
46
|
+
CONTINUATION_TTL_SECONDS
|
|
47
|
+
} from "./chunk-7BDPM5ST.js";
|
|
41
48
|
import {
|
|
42
49
|
E10ApiError,
|
|
43
50
|
createE10RequestRuntime,
|
|
44
51
|
isE10SessionExpiredResponse,
|
|
45
52
|
requireE10Session
|
|
46
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-ETNJSKMM.js";
|
|
47
54
|
import {
|
|
48
55
|
E10_SESSION_EXPIRED_MESSAGE,
|
|
49
56
|
getActiveProfile
|
|
50
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-UFIT2UU3.js";
|
|
51
58
|
import {
|
|
52
59
|
isCliError,
|
|
53
60
|
toErrorEnvelope
|
|
54
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-UG5G54VL.js";
|
|
55
62
|
import "./chunk-BUSC6UAE.js";
|
|
56
63
|
|
|
57
64
|
// src/shortcuts/ehr/index.ts
|
|
@@ -90,7 +97,7 @@ function signature(payload, key) {
|
|
|
90
97
|
}
|
|
91
98
|
function createEhrContinuationSigner(ctx) {
|
|
92
99
|
return {
|
|
93
|
-
async issue(payload, ttlMs =
|
|
100
|
+
async issue(payload, ttlMs = CONTINUATION_TTL_MS) {
|
|
94
101
|
const issuedAt = Date.now();
|
|
95
102
|
const body = encode({ ...payload, issuedAt, expiresAt: issuedAt + ttlMs });
|
|
96
103
|
const sig = signature(body, await loadKey(ctx));
|
|
@@ -708,7 +715,6 @@ var attendReadOperations = [
|
|
|
708
715
|
|
|
709
716
|
// src/shortcuts/ehr/operations/attend-write.ts
|
|
710
717
|
import { createHash as createHash2 } from "node:crypto";
|
|
711
|
-
var CONTINUATION_TTL_SECONDS = 600;
|
|
712
718
|
var CARD_TYPES = ["CHECKIN", "CHECKOUT", "LEAVE", "RETURN", "CHECKIN_AND_RETURN", "CHECKOUT_AND_LEAVE"];
|
|
713
719
|
var APPEAL_TYPES = [
|
|
714
720
|
"leave",
|
|
@@ -2263,7 +2269,6 @@ var hrReportOperations = [
|
|
|
2263
2269
|
|
|
2264
2270
|
// src/shortcuts/ehr/operations/recruit-write.ts
|
|
2265
2271
|
import { createHash as createHash3 } from "node:crypto";
|
|
2266
|
-
var CONTINUATION_TTL_SECONDS2 = 600;
|
|
2267
2272
|
function fingerprint2(value) {
|
|
2268
2273
|
return createHash3("sha256").update(JSON.stringify(value ?? null)).digest("hex").slice(0, 32);
|
|
2269
2274
|
}
|
|
@@ -2660,14 +2665,14 @@ var candidateCreatePrepare = {
|
|
|
2660
2665
|
payload: { name, mobile, channel: channelName, formId: talentObj?.formId || talentObj?.objId, objId: talentObj?.objId, dataDetails },
|
|
2661
2666
|
fingerprint: fingerprint2({ name, mobile, channel: channelName, dataDetails })
|
|
2662
2667
|
},
|
|
2663
|
-
|
|
2668
|
+
CONTINUATION_TTL_SECONDS * 1e3
|
|
2664
2669
|
);
|
|
2665
2670
|
return ehrSuccess("ehr.recruit.candidate.create.prepare", {
|
|
2666
2671
|
status: "AWAITING_CONFIRMATION",
|
|
2667
2672
|
preview,
|
|
2668
2673
|
willSubmit: { formId: talentObj?.formId || talentObj?.objId, objId: talentObj?.objId, dataDetails },
|
|
2669
2674
|
continuation: token,
|
|
2670
|
-
expiresInSeconds:
|
|
2675
|
+
expiresInSeconds: CONTINUATION_TTL_SECONDS
|
|
2671
2676
|
});
|
|
2672
2677
|
}
|
|
2673
2678
|
};
|
|
@@ -3114,7 +3119,7 @@ var interviewArrangePrepare = {
|
|
|
3114
3119
|
payload,
|
|
3115
3120
|
fingerprint: fingerprint2({ dataDetails: plan.dataDetails, notify })
|
|
3116
3121
|
},
|
|
3117
|
-
|
|
3122
|
+
CONTINUATION_TTL_SECONDS * 1e3
|
|
3118
3123
|
);
|
|
3119
3124
|
return ehrSuccess("ehr.recruit.candidate.interview.arrange.prepare", {
|
|
3120
3125
|
status: "AWAITING_CONFIRMATION",
|
|
@@ -3135,7 +3140,7 @@ var interviewArrangePrepare = {
|
|
|
3135
3140
|
},
|
|
3136
3141
|
willSubmit: { formId: plan.formId, objId: plan.objId, dataDetails: plan.dataDetails },
|
|
3137
3142
|
continuation: token,
|
|
3138
|
-
expiresInSeconds:
|
|
3143
|
+
expiresInSeconds: CONTINUATION_TTL_SECONDS
|
|
3139
3144
|
});
|
|
3140
3145
|
}
|
|
3141
3146
|
};
|
|
@@ -3366,7 +3371,7 @@ var offerSendPrepare = {
|
|
|
3366
3371
|
payload: { ...args, fbObjId: plan.fbObjId, fbFormId: plan.fbFormId, dataDetails: plan.dataDetails, offerId: plan.offerId },
|
|
3367
3372
|
fingerprint: fingerprint2({ dataDetails: plan.dataDetails, offerId: plan.offerId })
|
|
3368
3373
|
},
|
|
3369
|
-
|
|
3374
|
+
CONTINUATION_TTL_SECONDS * 1e3
|
|
3370
3375
|
);
|
|
3371
3376
|
return ehrSuccess("ehr.recruit.offer.send.prepare", {
|
|
3372
3377
|
status: "AWAITING_CONFIRMATION",
|
|
@@ -3382,7 +3387,7 @@ var offerSendPrepare = {
|
|
|
3382
3387
|
},
|
|
3383
3388
|
willSubmit: { formId: plan.fbFormId, objId: plan.fbObjId, dataDetails: plan.dataDetails },
|
|
3384
3389
|
continuation: token,
|
|
3385
|
-
expiresInSeconds:
|
|
3390
|
+
expiresInSeconds: CONTINUATION_TTL_SECONDS
|
|
3386
3391
|
});
|
|
3387
3392
|
}
|
|
3388
3393
|
};
|
|
@@ -3636,7 +3641,7 @@ var entryProcessPrepare = {
|
|
|
3636
3641
|
},
|
|
3637
3642
|
fingerprint: fingerprint2({ entryId: plan.entryId, dataDetails: plan.dataDetails })
|
|
3638
3643
|
},
|
|
3639
|
-
|
|
3644
|
+
CONTINUATION_TTL_SECONDS * 1e3
|
|
3640
3645
|
);
|
|
3641
3646
|
return ehrSuccess("ehr.recruit.entry.process.prepare", {
|
|
3642
3647
|
status: "AWAITING_CONFIRMATION",
|
|
@@ -3654,7 +3659,7 @@ var entryProcessPrepare = {
|
|
|
3654
3659
|
},
|
|
3655
3660
|
willSubmit: { formId: plan.emFormId, objId: plan.emObjId, updateTimeStamp: plan.updateTimeStamp, dataDetails: plan.dataDetails },
|
|
3656
3661
|
continuation: token,
|
|
3657
|
-
expiresInSeconds:
|
|
3662
|
+
expiresInSeconds: CONTINUATION_TTL_SECONDS
|
|
3658
3663
|
});
|
|
3659
3664
|
}
|
|
3660
3665
|
};
|
|
@@ -3886,7 +3891,7 @@ var feedbackEditPrepare = {
|
|
|
3886
3891
|
comment: plan.newComment
|
|
3887
3892
|
})
|
|
3888
3893
|
},
|
|
3889
|
-
|
|
3894
|
+
CONTINUATION_TTL_SECONDS * 1e3
|
|
3890
3895
|
);
|
|
3891
3896
|
return ehrSuccess("ehr.recruit.candidate.interview.feedback.edit.prepare", {
|
|
3892
3897
|
status: "AWAITING_CONFIRMATION",
|
|
@@ -3902,7 +3907,7 @@ var feedbackEditPrepare = {
|
|
|
3902
3907
|
note: "apply \u5C06\u4FDD\u5B58\u53CD\u9988\u8868\u5355\uFF08\u5168\u5B57\u6BB5\u96C6 + \u4E50\u89C2\u9501\uFF09\u5E76\u56DE\u67E5\u6821\u9A8C"
|
|
3903
3908
|
},
|
|
3904
3909
|
continuation: token,
|
|
3905
|
-
expiresInSeconds:
|
|
3910
|
+
expiresInSeconds: CONTINUATION_TTL_SECONDS
|
|
3906
3911
|
});
|
|
3907
3912
|
}
|
|
3908
3913
|
};
|
|
@@ -4062,7 +4067,7 @@ var feedbackUrgePrepare = {
|
|
|
4062
4067
|
},
|
|
4063
4068
|
fingerprint: fingerprint2({ talentId: plan.talentId, feedbackRecordId: plan.feedbackRecordId })
|
|
4064
4069
|
},
|
|
4065
|
-
|
|
4070
|
+
CONTINUATION_TTL_SECONDS * 1e3
|
|
4066
4071
|
);
|
|
4067
4072
|
return ehrSuccess("ehr.recruit.candidate.interview.feedback.urge.prepare", {
|
|
4068
4073
|
status: "AWAITING_CONFIRMATION",
|
|
@@ -4075,7 +4080,7 @@ var feedbackUrgePrepare = {
|
|
|
4075
4080
|
note: "\u786E\u8BA4\u540E\u5C06\u5411\u9762\u8BD5\u5B98\u53D1\u9001\u300C\u8BF7\u586B\u5199\u8BC4\u4EF7\u300D\u7CFB\u7EDF\u901A\u77E5\uFF08\u4F1A\u6253\u6270\u771F\u4EBA\uFF0C\u8BF7\u786E\u4FDD\u5DF2\u7ECF\u7528\u6237\u540C\u610F\uFF09"
|
|
4076
4081
|
},
|
|
4077
4082
|
continuation: token,
|
|
4078
|
-
expiresInSeconds:
|
|
4083
|
+
expiresInSeconds: CONTINUATION_TTL_SECONDS
|
|
4079
4084
|
});
|
|
4080
4085
|
}
|
|
4081
4086
|
};
|
|
@@ -4270,6 +4275,7 @@ var OPTION_DEFAULTS = { salary_type: "\u6708\u85AA", recruit_type: "\u793E\u4F1A
|
|
|
4270
4275
|
var SET_FIELDS = [
|
|
4271
4276
|
{ arg: "education", key: "education", kind: "dict", label: "\u5B66\u5386\u8981\u6C42\uFF08\u6309\u6570\u636E\u5B57\u5178\u540D\u79F0\uFF09" },
|
|
4272
4277
|
{ arg: "workYears", key: "work_years", kind: "dict", label: "\u5DE5\u4F5C\u5E74\u9650\uFF08\u6309\u6570\u636E\u5B57\u5178\u540D\u79F0\uFF09" },
|
|
4278
|
+
{ arg: "workLocation", key: "work_location", kind: "assoc", label: "\u5DE5\u4F5C\u5730\u70B9\uFF08\u529E\u516C\u5730\u70B9\u540D\u79F0/\u8BE6\u7EC6\u5730\u5740\uFF0C\u5982\u300C\u4E0A\u6D77\u300D\u6216\u5B8C\u6574\u5730\u5740\uFF09" },
|
|
4273
4279
|
{ arg: "jobCategory", key: "job_category", kind: "dict", label: "\u804C\u4F4D\u7C7B\u522B\uFF08\u6309\u6570\u636E\u5B57\u5178\u540D\u79F0\uFF09" },
|
|
4274
4280
|
{ arg: "positionNature", key: "position_nature", kind: "dict", label: "\u804C\u4F4D\u5C5E\u6027\uFF08\u6309\u6570\u636E\u5B57\u5178\u540D\u79F0\uFF09" },
|
|
4275
4281
|
{ arg: "salaryType", key: "salary_type", kind: "option", label: "\u85AA\u916C\u7C7B\u578B\uFF08\u6708\u85AA/\u5E74\u85AA\u7B49\uFF09" },
|
|
@@ -4319,6 +4325,85 @@ async function fetchReferenceDetails(env, cache, objId, formId) {
|
|
|
4319
4325
|
return [];
|
|
4320
4326
|
}
|
|
4321
4327
|
}
|
|
4328
|
+
var WORK_PLACE_NAMES = ["\u529E\u516C\u5730\u70B9", "\u5DE5\u4F5C\u5730\u70B9"];
|
|
4329
|
+
async function findWorkPlaceMenu(env, cache) {
|
|
4330
|
+
const ok = (m) => !!(m && m.listId);
|
|
4331
|
+
const pick = (list) => {
|
|
4332
|
+
const hit = list.find((m) => ok(m) && WORK_PLACE_NAMES.some((n) => String(m.menuName || "").includes(n)));
|
|
4333
|
+
return hit ? hit : null;
|
|
4334
|
+
};
|
|
4335
|
+
const hit1 = pick(cache.lists?.all_search || []);
|
|
4336
|
+
if (hit1) return hit1;
|
|
4337
|
+
const hit2 = pick(cache.menus || []);
|
|
4338
|
+
if (hit2) return hit2;
|
|
4339
|
+
try {
|
|
4340
|
+
const r = await env.host.request({
|
|
4341
|
+
path: "/api/cusapp/app/allMenus",
|
|
4342
|
+
query: { isFront: 1, appId: String(cache.appId || ""), terminalType: "PC" }
|
|
4343
|
+
});
|
|
4344
|
+
const flat = [];
|
|
4345
|
+
(function walk(nodes) {
|
|
4346
|
+
for (const n of nodes || []) {
|
|
4347
|
+
if (n && typeof n === "object") {
|
|
4348
|
+
flat.push(n);
|
|
4349
|
+
walk(n.children || n.childs);
|
|
4350
|
+
}
|
|
4351
|
+
}
|
|
4352
|
+
})(r?.data?.cusAppMenus || r?.data);
|
|
4353
|
+
return pick(flat);
|
|
4354
|
+
} catch {
|
|
4355
|
+
return null;
|
|
4356
|
+
}
|
|
4357
|
+
}
|
|
4358
|
+
async function resolveWorkLocation(env, cache, value) {
|
|
4359
|
+
const v = String(value).trim();
|
|
4360
|
+
if (!v) return null;
|
|
4361
|
+
const menu = await findWorkPlaceMenu(env, cache);
|
|
4362
|
+
if (!menu?.listId) return null;
|
|
4363
|
+
let pObj = "";
|
|
4364
|
+
try {
|
|
4365
|
+
const t = await env.host.request({
|
|
4366
|
+
path: "/api/ebuilder/form/obj/getObjsByTag",
|
|
4367
|
+
query: { appId: String(cache.appId || ""), tag: "uf_rcrt_work_place" }
|
|
4368
|
+
});
|
|
4369
|
+
const d = t?.data;
|
|
4370
|
+
if (Array.isArray(d) && d[0]) pObj = String(d[0].id || "");
|
|
4371
|
+
} catch {
|
|
4372
|
+
}
|
|
4373
|
+
if (!pObj) pObj = String(menu.objId || "");
|
|
4374
|
+
if (!pObj) return null;
|
|
4375
|
+
const body = buildListBody({
|
|
4376
|
+
listId: menu.listId,
|
|
4377
|
+
cusMenuId: menu.cusMenuId,
|
|
4378
|
+
menuName: menu.menuName || "\u529E\u516C\u5730\u70B9",
|
|
4379
|
+
title: menu.menuName || "\u529E\u516C\u5730\u70B9",
|
|
4380
|
+
pageSize: 200
|
|
4381
|
+
});
|
|
4382
|
+
const r = await env.host.request({
|
|
4383
|
+
path: `/api/ebuilder/form/list/getListDatas?passid=${pObj}&cid=${pObj}`,
|
|
4384
|
+
body,
|
|
4385
|
+
headers: { ebBusinessId: menu.listId }
|
|
4386
|
+
});
|
|
4387
|
+
const rows = r?.data?.data || r?.data?.displayData || [];
|
|
4388
|
+
const hit = rows.find((x) => {
|
|
4389
|
+
const name = String(x?.name || "");
|
|
4390
|
+
const detail = String(x?.detail_location || "");
|
|
4391
|
+
const area = String(x?.area_text || "");
|
|
4392
|
+
return name.includes(v) || detail.includes(v) || area.includes(v) || !!detail && v.includes(detail);
|
|
4393
|
+
});
|
|
4394
|
+
return hit ? { id: String(hit.form_data_id || hit.id), name: String(hit.detail_location || hit.name || v) } : null;
|
|
4395
|
+
}
|
|
4396
|
+
function detailDisplayValue(detail) {
|
|
4397
|
+
if (!detail) return "";
|
|
4398
|
+
const d = detail;
|
|
4399
|
+
if (d.content !== void 0 && d.content !== null) return String(d.content);
|
|
4400
|
+
if (Array.isArray(d.dataOptions) && d.dataOptions[0]) {
|
|
4401
|
+
const o = d.dataOptions[0];
|
|
4402
|
+
return String(o.content ?? o.optionId ?? "");
|
|
4403
|
+
}
|
|
4404
|
+
if (d.dataText?.content !== void 0) return String(d.dataText.content).replace(/<[^>]+>/g, "").slice(0, 60);
|
|
4405
|
+
return "";
|
|
4406
|
+
}
|
|
4322
4407
|
async function buildPositionPlan(env, cache, args) {
|
|
4323
4408
|
const form = cache.forms.position_manage;
|
|
4324
4409
|
const objId = form?.objId;
|
|
@@ -4384,6 +4469,14 @@ async function buildPositionPlan(env, cache, args) {
|
|
|
4384
4469
|
}
|
|
4385
4470
|
put({ formField: { id: fieldId }, dataOptions: [{ optionId: String(optionId), content: value }] });
|
|
4386
4471
|
applied.push(`${field.key}=${value}`);
|
|
4472
|
+
} else if (field.kind === "assoc") {
|
|
4473
|
+
const loc = await resolveWorkLocation(env, cache, value);
|
|
4474
|
+
if (!loc) {
|
|
4475
|
+
skipped.push(`${field.key}=${value}\uFF08\u672A\u5339\u914D\u5230\u300C\u529E\u516C\u5730\u70B9\u300D\u8BB0\u5F55\uFF0C\u5DF2\u8DF3\u8FC7\uFF09`);
|
|
4476
|
+
continue;
|
|
4477
|
+
}
|
|
4478
|
+
put({ formField: { id: fieldId }, dataOptions: [{ optionId: loc.id, content: loc.name }] });
|
|
4479
|
+
applied.push(`${field.key}=${value}`);
|
|
4387
4480
|
} else if (field.kind === "dict") {
|
|
4388
4481
|
const ids = cache.dict.by_name[value] || [];
|
|
4389
4482
|
const unique = [...new Set(ids.map(String))];
|
|
@@ -4442,6 +4535,15 @@ async function buildPositionPlan(env, cache, args) {
|
|
|
4442
4535
|
}
|
|
4443
4536
|
const inverse = {};
|
|
4444
4537
|
for (const [dataKey, fieldId] of Object.entries(fields)) inverse[String(fieldId)] = dataKey;
|
|
4538
|
+
const inheritedSalaryWarnings = [];
|
|
4539
|
+
for (const key of ["salary_min", "salary_max"]) {
|
|
4540
|
+
if (!inherited.includes(key)) continue;
|
|
4541
|
+
const raw = detailDisplayValue(refMap.get(String(fid(key))));
|
|
4542
|
+
const num = Number(String(raw).replace(/[^\d.]/g, ""));
|
|
4543
|
+
if (raw && Number.isFinite(num) && num > 0 && num < 1e3) {
|
|
4544
|
+
inheritedSalaryWarnings.push(`${key} \u7EE7\u627F\u503C\u300C${raw}\u300D\u660E\u663E\u504F\u4F4E\uFF08\u7591\u5386\u53F2\u810F\u6570\u636E\uFF09\uFF0C\u8BF7\u4EBA\u5DE5\u6838\u5BF9\u540E\u518D\u63D0\u4EA4`);
|
|
4545
|
+
}
|
|
4546
|
+
}
|
|
4445
4547
|
return {
|
|
4446
4548
|
objId,
|
|
4447
4549
|
formId,
|
|
@@ -4455,6 +4557,10 @@ async function buildPositionPlan(env, cache, args) {
|
|
|
4455
4557
|
explicitApplied: applied,
|
|
4456
4558
|
explicitSkipped: skipped,
|
|
4457
4559
|
inheritedFromExistingPosition: inherited,
|
|
4560
|
+
// 带值的继承清单:Agent 必须在确认摘要里逐项点名(尤其 work_location),
|
|
4561
|
+
// 不得因为它是默认值就略过——历史上这里曾静默带出过重复地点等脏数据。
|
|
4562
|
+
inheritedFromRef: inherited.length ? inherited.map((k) => ({ field: k, value: detailDisplayValue(refMap.get(String(fid(k)))) })) : void 0,
|
|
4563
|
+
inheritedSalaryWarnings: inheritedSalaryWarnings.length ? inheritedSalaryWarnings : void 0,
|
|
4458
4564
|
noReferenceValue: missingRef,
|
|
4459
4565
|
principalDefault: session.userId ? "\u5F53\u524D\u767B\u5F55\u7528\u6237" : "\u672A\u89E3\u6790\u5230\u5F53\u524D\u7528\u6237"
|
|
4460
4566
|
}
|
|
@@ -4493,14 +4599,14 @@ var positionCreatePrepare = {
|
|
|
4493
4599
|
payload: { objId: plan.objId, formId: plan.formId, positionName: String(args.positionName).trim(), dataDetails: plan.dataDetails },
|
|
4494
4600
|
fingerprint: fingerprint3({ objId: plan.objId, dataDetails: plan.dataDetails })
|
|
4495
4601
|
},
|
|
4496
|
-
|
|
4602
|
+
CONTINUATION_TTL_MS
|
|
4497
4603
|
);
|
|
4498
4604
|
return ehrSuccess("ehr.recruit.position.create.prepare", {
|
|
4499
4605
|
status: "AWAITING_CONFIRMATION",
|
|
4500
4606
|
preview: { action: "\u751F\u6210\u804C\u4F4DJD\u5E76\u5EFA\u804C\u4F4D\uFF08saveFormData \u2192 addPosition\uFF09", ...plan.summary },
|
|
4501
4607
|
willSubmit: { objId: plan.objId, formId: plan.formId, dataDetails: plan.dataDetails },
|
|
4502
4608
|
continuation,
|
|
4503
|
-
expiresInSeconds:
|
|
4609
|
+
expiresInSeconds: CONTINUATION_TTL_SECONDS
|
|
4504
4610
|
});
|
|
4505
4611
|
}
|
|
4506
4612
|
};
|
|
@@ -4669,6 +4775,93 @@ function joinRange(start, end) {
|
|
|
4669
4775
|
if (!s && !e) return void 0;
|
|
4670
4776
|
return `${s},${e}`;
|
|
4671
4777
|
}
|
|
4778
|
+
var DATE_ONLY_RE = /^\d{4}-\d{2}-\d{2}$/;
|
|
4779
|
+
var ONGOING_RE = /至今|现在|今|now|present/i;
|
|
4780
|
+
var RE_RANGE_FULL = /^\s*(\d{4}[.\-/年]\d{1,2}[.\-/月]\d{1,2}\s*日?)\s*[-–—~至,,]\s*(\d{4}[.\-/年]\d{1,2}[.\-/月]\d{1,2}\s*日?|至今|现在|今)\s*$/;
|
|
4781
|
+
var RE_RANGE_YM = /^\s*(\d{4}[.\-/年]\d{1,2})\s*[-–—~至,,]\s*(\d{4}[.\-/年]\d{1,2}|至今|现在|今)\s*$/;
|
|
4782
|
+
function normDatePart(raw, isEnd) {
|
|
4783
|
+
const s = String(raw ?? "").trim();
|
|
4784
|
+
if (!s) return "";
|
|
4785
|
+
if (ONGOING_RE.test(s)) return "";
|
|
4786
|
+
if (DATE_ONLY_RE.test(s)) return s;
|
|
4787
|
+
const m = s.match(/^(\d{4})\s*[.\-/年]?\s*(\d{1,2})?\s*[.\-/月]?\s*(\d{1,2})?\s*日?$/);
|
|
4788
|
+
if (!m) return "";
|
|
4789
|
+
const y = Number(m[1]);
|
|
4790
|
+
const mo = m[2] ? Number(m[2]) : 1;
|
|
4791
|
+
if (!y || mo < 1 || mo > 12) return "";
|
|
4792
|
+
const lastDay = new Date(y, mo, 0).getDate();
|
|
4793
|
+
let d;
|
|
4794
|
+
if (m[3]) {
|
|
4795
|
+
d = Number(m[3]);
|
|
4796
|
+
if (d < 1 || d > lastDay) return "";
|
|
4797
|
+
} else {
|
|
4798
|
+
d = isEnd ? lastDay : 1;
|
|
4799
|
+
}
|
|
4800
|
+
return `${y}-${String(mo).padStart(2, "0")}-${String(d).padStart(2, "0")}`;
|
|
4801
|
+
}
|
|
4802
|
+
function normDateRange(raw) {
|
|
4803
|
+
const s = Array.isArray(raw) ? raw.map((x) => String(x ?? "").trim()).filter(Boolean).join(",") : String(raw ?? "").trim();
|
|
4804
|
+
if (!s) return "";
|
|
4805
|
+
const m = s.match(RE_RANGE_FULL) || s.match(RE_RANGE_YM);
|
|
4806
|
+
if (m) {
|
|
4807
|
+
const a = normDatePart(m[1], false);
|
|
4808
|
+
if (!a) return "";
|
|
4809
|
+
const b = normDatePart(m[2], true);
|
|
4810
|
+
return b ? `${a},${b}` : a;
|
|
4811
|
+
}
|
|
4812
|
+
return normDatePart(s, false);
|
|
4813
|
+
}
|
|
4814
|
+
function normalizeImportDates(input, warnings) {
|
|
4815
|
+
if (!input || typeof input !== "object") return;
|
|
4816
|
+
const one = (label, val, isEnd = false) => {
|
|
4817
|
+
const before = String(val ?? "").trim();
|
|
4818
|
+
if (!before) return "";
|
|
4819
|
+
if (ONGOING_RE.test(before)) return "";
|
|
4820
|
+
const after = normDatePart(before, isEnd);
|
|
4821
|
+
if (!after) {
|
|
4822
|
+
warnings.push(`\u65E5\u671F\u65E0\u6CD5\u8BC6\u522B\uFF0C\u5DF2\u8DF3\u8FC7\u8BE5\u5B57\u6BB5\uFF08\u907F\u514D\u63A5\u53E3\u6574\u6279\u6821\u9A8C\u5931\u8D25\uFF09\uFF1A${label} = \u300C${before}\u300D`);
|
|
4823
|
+
return "";
|
|
4824
|
+
}
|
|
4825
|
+
if (after !== before) warnings.push(`\u65E5\u671F\u5DF2\u89C4\u8303\u5316\uFF1A${label} \u300C${before}\u300D\u2192\u300C${after}\u300D`);
|
|
4826
|
+
return after;
|
|
4827
|
+
};
|
|
4828
|
+
for (const k of ["joinworkdate", "graduate_date", "birthday"]) {
|
|
4829
|
+
if (input[k] === void 0 || input[k] === null) continue;
|
|
4830
|
+
input[k] = one(k, input[k], false);
|
|
4831
|
+
}
|
|
4832
|
+
if (Array.isArray(input.academicInformations)) {
|
|
4833
|
+
input.academicInformations.forEach((r, i) => {
|
|
4834
|
+
if (!r || typeof r !== "object" || r.study_date === void 0) return;
|
|
4835
|
+
const before = String(r.study_date ?? "").trim();
|
|
4836
|
+
if (!before) return;
|
|
4837
|
+
const after = normDateRange(before);
|
|
4838
|
+
if (!after) {
|
|
4839
|
+
warnings.push(`\u65E5\u671F\u533A\u95F4\u65E0\u6CD5\u8BC6\u522B\uFF0C\u5DF2\u8DF3\u8FC7\uFF1AacademicInformations[${i}].study_date = \u300C${before}\u300D`);
|
|
4840
|
+
r.study_date = "";
|
|
4841
|
+
} else {
|
|
4842
|
+
if (after !== before) warnings.push(`\u65E5\u671F\u5DF2\u89C4\u8303\u5316\uFF1AacademicInformations[${i}].study_date \u300C${before}\u300D\u2192\u300C${after}\u300D`);
|
|
4843
|
+
r.study_date = after;
|
|
4844
|
+
}
|
|
4845
|
+
});
|
|
4846
|
+
}
|
|
4847
|
+
for (const key of ["jobInformations", "workExperiences", "projectExperiences"]) {
|
|
4848
|
+
const arr = input[key];
|
|
4849
|
+
if (!Array.isArray(arr)) continue;
|
|
4850
|
+
arr.forEach((r, i) => {
|
|
4851
|
+
if (!r || typeof r !== "object") return;
|
|
4852
|
+
if (r.start_date !== void 0 && r.start_date !== null) r.start_date = one(`${key}[${i}].start_date`, r.start_date, false);
|
|
4853
|
+
if (r.end_date !== void 0 && r.end_date !== null) r.end_date = one(`${key}[${i}].end_date`, r.end_date, true);
|
|
4854
|
+
});
|
|
4855
|
+
}
|
|
4856
|
+
for (const [key, field] of [["internshipExperiences", "entry_time"], ["awardExperiences", "award_date"]]) {
|
|
4857
|
+
const arr = input[key];
|
|
4858
|
+
if (!Array.isArray(arr)) continue;
|
|
4859
|
+
arr.forEach((r, i) => {
|
|
4860
|
+
if (!r || typeof r !== "object") return;
|
|
4861
|
+
if (r[field] !== void 0 && r[field] !== null) r[field] = one(`${key}[${i}].${field}`, r[field], false);
|
|
4862
|
+
});
|
|
4863
|
+
}
|
|
4864
|
+
}
|
|
4672
4865
|
async function resolveSubTableMeta(env, formId) {
|
|
4673
4866
|
let data = null;
|
|
4674
4867
|
try {
|
|
@@ -4996,6 +5189,7 @@ function str(value) {
|
|
|
4996
5189
|
}
|
|
4997
5190
|
async function buildImportPlan(env, cache, args) {
|
|
4998
5191
|
const warnings = [];
|
|
5192
|
+
normalizeImportDates(args, warnings);
|
|
4999
5193
|
const talent = cache.forms.talent_pool;
|
|
5000
5194
|
const objId = talent?.objId;
|
|
5001
5195
|
const formId = talent?.formId || objId;
|
|
@@ -5203,7 +5397,7 @@ var candidateImportPrepare = {
|
|
|
5203
5397
|
telephone: plan.mobile
|
|
5204
5398
|
}
|
|
5205
5399
|
},
|
|
5206
|
-
|
|
5400
|
+
CONTINUATION_TTL_MS
|
|
5207
5401
|
);
|
|
5208
5402
|
return ehrSuccess("ehr.recruit.candidate.import.prepare", {
|
|
5209
5403
|
status: "AWAITING_CONFIRMATION",
|
|
@@ -5220,7 +5414,7 @@ var candidateImportPrepare = {
|
|
|
5220
5414
|
},
|
|
5221
5415
|
...tagCheck ? { tagCheck } : {},
|
|
5222
5416
|
continuation,
|
|
5223
|
-
expiresInSeconds:
|
|
5417
|
+
expiresInSeconds: CONTINUATION_TTL_SECONDS
|
|
5224
5418
|
});
|
|
5225
5419
|
}
|
|
5226
5420
|
};
|
|
@@ -5313,13 +5507,60 @@ var candidateImportApply = {
|
|
|
5313
5507
|
const talentListLocateUrl = talentListId ? `${baseUrl}/sp/ebdfpage/list/${talentListId}?talentId=${talentId}${extra}` : null;
|
|
5314
5508
|
const warnings = [...payload.warnings || []];
|
|
5315
5509
|
if (batchNote) warnings.push(batchNote);
|
|
5510
|
+
let detailsState = "complete";
|
|
5511
|
+
const expectedDetailRows = Object.values(payload.subStats || {}).reduce(
|
|
5512
|
+
(sum, n) => sum + Number(n || 0),
|
|
5513
|
+
0
|
|
5514
|
+
);
|
|
5515
|
+
if (expectedDetailRows > 0) {
|
|
5516
|
+
try {
|
|
5517
|
+
const snapshot = await env.host.request({
|
|
5518
|
+
path: "/api/ebuilder/form/form/core/getFormDataAndLayout",
|
|
5519
|
+
method: "POST",
|
|
5520
|
+
body: {
|
|
5521
|
+
terminalType: "PC",
|
|
5522
|
+
dataId: talentId,
|
|
5523
|
+
formId,
|
|
5524
|
+
module: "ebuilderform",
|
|
5525
|
+
newLayout: true,
|
|
5526
|
+
dataCrossLayout: false,
|
|
5527
|
+
permissionId: "",
|
|
5528
|
+
allReadOnly: true,
|
|
5529
|
+
initialDatas: [],
|
|
5530
|
+
dynamicData: false,
|
|
5531
|
+
cost: false,
|
|
5532
|
+
customParam: { objId, dataId: talentId }
|
|
5533
|
+
},
|
|
5534
|
+
operation: "ehr.recruit.candidate.import.apply"
|
|
5535
|
+
});
|
|
5536
|
+
const detailData = snapshot?.data?.formData?.dataDetails || [];
|
|
5537
|
+
const seenRows = {};
|
|
5538
|
+
for (const d of detailData) {
|
|
5539
|
+
if (!d?.subFormId) continue;
|
|
5540
|
+
const key = String(d.subFormId);
|
|
5541
|
+
(seenRows[key] = seenRows[key] || /* @__PURE__ */ new Set()).add(String(d.dataIndex));
|
|
5542
|
+
}
|
|
5543
|
+
const gotRows = Object.values(seenRows).reduce((sum, set) => sum + set.size, 0);
|
|
5544
|
+
if (gotRows < expectedDetailRows) {
|
|
5545
|
+
detailsState = "missing";
|
|
5546
|
+
warnings.push(
|
|
5547
|
+
`\u660E\u7EC6\u884C\u672A\u5B8C\u6574\u843D\u5E93\uFF08\u671F\u671B ${expectedDetailRows} \u884C\uFF0C\u8BFB\u56DE ${gotRows} \u884C\uFF09\uFF1A\u4E3B\u8868\u5DF2\u5199\u5165\uFF0C\u8BF7\u6838\u5BF9\u540E\u8865\u9F50\u660E\u7EC6`
|
|
5548
|
+
);
|
|
5549
|
+
}
|
|
5550
|
+
} catch (error) {
|
|
5551
|
+
detailsState = "unverified";
|
|
5552
|
+
warnings.push(`\u660E\u7EC6\u8BFB\u56DE\u6821\u9A8C\u5931\u8D25\uFF08\u65E0\u6CD5\u786E\u8BA4\u660E\u7EC6\u662F\u5426\u843D\u5E93\uFF09\uFF1A${error?.message || "\u672A\u77E5\u9519\u8BEF"}`);
|
|
5553
|
+
}
|
|
5554
|
+
}
|
|
5316
5555
|
return ehrSuccess("ehr.recruit.candidate.import.apply", {
|
|
5317
|
-
result: "success",
|
|
5556
|
+
result: detailsState === "complete" ? "success" : "partial",
|
|
5557
|
+
detailsState,
|
|
5318
5558
|
talentId,
|
|
5319
5559
|
candidateName: payload.candidateName,
|
|
5320
5560
|
telephone: payload.telephone,
|
|
5321
5561
|
mainTableFields: Object.keys(mainTable).length,
|
|
5322
5562
|
detailRows: payload.subStats || void 0,
|
|
5563
|
+
detailRowsExpected: expectedDetailRows || void 0,
|
|
5323
5564
|
attachment: uploaded ? { name: uploaded.name, size: uploaded.size } : null,
|
|
5324
5565
|
batch: { ok: batchOk, note: batchNote },
|
|
5325
5566
|
labelMatch,
|
|
@@ -5682,6 +5923,7 @@ async function executeAndPrint(ctx, operation, input) {
|
|
|
5682
5923
|
});
|
|
5683
5924
|
ctx.output.write(successEnvelope(operation, result), { json: true });
|
|
5684
5925
|
} catch (error) {
|
|
5926
|
+
reportPlatformError(error);
|
|
5685
5927
|
console.error(JSON.stringify(failureEnvelope(error), null, 2));
|
|
5686
5928
|
process.exitCode = isCliError(error) ? error.exitCode : 1 /* GeneralError */;
|
|
5687
5929
|
}
|
|
@@ -2,9 +2,9 @@ import { createRequire as __esbuildCreateRequire } from 'node:module';
|
|
|
2
2
|
const require = __esbuildCreateRequire(import.meta.url);
|
|
3
3
|
import {
|
|
4
4
|
hrmEmployeeOperations
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-D4ADSZ7H.js";
|
|
6
|
+
import "./chunk-56EZERK4.js";
|
|
7
|
+
import "./chunk-UG5G54VL.js";
|
|
8
8
|
import "./chunk-BUSC6UAE.js";
|
|
9
9
|
export {
|
|
10
10
|
hrmEmployeeOperations
|
|
@@ -6,9 +6,10 @@ import {
|
|
|
6
6
|
meetingStateDir,
|
|
7
7
|
readCache,
|
|
8
8
|
resolveMeetingEnvMode
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-GAMZLAG2.js";
|
|
10
|
+
import "./chunk-QVSWRLLU.js";
|
|
11
|
+
import "./chunk-7BDPM5ST.js";
|
|
12
|
+
import "./chunk-UG5G54VL.js";
|
|
12
13
|
import "./chunk-BUSC6UAE.js";
|
|
13
14
|
export {
|
|
14
15
|
degradeMeetingEnvToStandard,
|
|
@@ -2,26 +2,30 @@ import { createRequire as __esbuildCreateRequire } from 'node:module';
|
|
|
2
2
|
const require = __esbuildCreateRequire(import.meta.url);
|
|
3
3
|
import {
|
|
4
4
|
createEsbContinuationSigner
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-UL5XUQ25.js";
|
|
6
6
|
import {
|
|
7
7
|
asObject,
|
|
8
8
|
assertKnownKeys,
|
|
9
9
|
assertNoForbiddenKeys,
|
|
10
10
|
esbManifest,
|
|
11
11
|
getEsbOperation
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-TA7FXXJD.js";
|
|
13
13
|
import {
|
|
14
14
|
createEsbHost
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-F4E4EM35.js";
|
|
16
16
|
import {
|
|
17
17
|
esbValidationError
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import
|
|
20
|
-
|
|
18
|
+
} from "./chunk-TXUG266F.js";
|
|
19
|
+
import {
|
|
20
|
+
reportPlatformError
|
|
21
|
+
} from "./chunk-6N4JPNFL.js";
|
|
22
|
+
import "./chunk-7BDPM5ST.js";
|
|
23
|
+
import "./chunk-ETNJSKMM.js";
|
|
24
|
+
import "./chunk-UFIT2UU3.js";
|
|
21
25
|
import {
|
|
22
26
|
isCliError,
|
|
23
27
|
toErrorEnvelope
|
|
24
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-UG5G54VL.js";
|
|
25
29
|
import "./chunk-BUSC6UAE.js";
|
|
26
30
|
|
|
27
31
|
// src/shortcuts/esb/index.ts
|
|
@@ -116,6 +120,7 @@ async function executeAndPrint(ctx, operation, input) {
|
|
|
116
120
|
});
|
|
117
121
|
ctx.output.write(successEnvelope(operation, result), { json: true });
|
|
118
122
|
} catch (error) {
|
|
123
|
+
reportPlatformError(error);
|
|
119
124
|
console.error(JSON.stringify(failureEnvelope(error), null, 2));
|
|
120
125
|
process.exitCode = isCliError(error) ? error.exitCode : 1 /* GeneralError */;
|
|
121
126
|
}
|
|
@@ -12,8 +12,9 @@ import {
|
|
|
12
12
|
requireConfirm,
|
|
13
13
|
verifyLease,
|
|
14
14
|
writeBody
|
|
15
|
-
} from "./chunk-
|
|
16
|
-
import "./chunk-
|
|
15
|
+
} from "./chunk-QVSWRLLU.js";
|
|
16
|
+
import "./chunk-7BDPM5ST.js";
|
|
17
|
+
import "./chunk-UG5G54VL.js";
|
|
17
18
|
import "./chunk-BUSC6UAE.js";
|
|
18
19
|
export {
|
|
19
20
|
EB_BASE,
|
|
@@ -1,20 +1,27 @@
|
|
|
1
1
|
import { createRequire as __esbuildCreateRequire } from 'node:module';
|
|
2
2
|
const require = __esbuildCreateRequire(import.meta.url);
|
|
3
|
+
import {
|
|
4
|
+
reportPlatformError
|
|
5
|
+
} from "./chunk-6N4JPNFL.js";
|
|
6
|
+
import {
|
|
7
|
+
CONTINUATION_TTL_MS,
|
|
8
|
+
CONTINUATION_TTL_SECONDS
|
|
9
|
+
} from "./chunk-7BDPM5ST.js";
|
|
3
10
|
import {
|
|
4
11
|
E10ApiError,
|
|
5
12
|
createE10RequestRuntime,
|
|
6
13
|
isE10SessionExpiredResponse,
|
|
7
14
|
requireE10Session
|
|
8
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-ETNJSKMM.js";
|
|
9
16
|
import {
|
|
10
17
|
E10_SESSION_EXPIRED_MESSAGE,
|
|
11
18
|
getActiveProfile
|
|
12
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-UFIT2UU3.js";
|
|
13
20
|
import {
|
|
14
21
|
CliError,
|
|
15
22
|
isCliError,
|
|
16
23
|
toErrorEnvelope
|
|
17
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-UG5G54VL.js";
|
|
18
25
|
import "./chunk-BUSC6UAE.js";
|
|
19
26
|
|
|
20
27
|
// src/shortcuts/fna/index.ts
|
|
@@ -114,7 +121,7 @@ function signature(payload, key) {
|
|
|
114
121
|
}
|
|
115
122
|
function createFnaContinuationSigner(ctx) {
|
|
116
123
|
return {
|
|
117
|
-
async issue(payload, ttlMs =
|
|
124
|
+
async issue(payload, ttlMs = CONTINUATION_TTL_MS) {
|
|
118
125
|
const issuedAt = Date.now();
|
|
119
126
|
const body = encode({ ...payload, issuedAt, expiresAt: issuedAt + ttlMs });
|
|
120
127
|
const sig = signature(body, await loadKey(ctx));
|
|
@@ -865,7 +872,6 @@ var expenseChartOperations = [
|
|
|
865
872
|
];
|
|
866
873
|
|
|
867
874
|
// src/shortcuts/fna/operations/loan.ts
|
|
868
|
-
var CONTINUATION_TTL_SECONDS = 600;
|
|
869
875
|
var LOAN_MENU_FIELDS = {
|
|
870
876
|
menuCode: { ...SCHEMA_STRING_NONEMPTY, description: "\u83DC\u5355\u7F16\u7801\uFF0C\u5982 fesx_fna_borrowingManagement\uFF08\u4E0E\u73AF\u5883\u6838\u5BF9\uFF09" },
|
|
871
877
|
permissionSetCode: { ...SCHEMA_STRING_NONEMPTY, description: "\u6743\u9650\u96C6\u7F16\u7801\uFF0C\u5982 fesx_fna_borrowingManagement.default\uFF08\u4E0E\u73AF\u5883\u6838\u5BF9\uFF09" },
|
|
@@ -1057,7 +1063,6 @@ var loanOperations = [
|
|
|
1057
1063
|
];
|
|
1058
1064
|
|
|
1059
1065
|
// src/shortcuts/fna/operations/invoice-writeoff.ts
|
|
1060
|
-
var CONTINUATION_TTL_SECONDS2 = 600;
|
|
1061
1066
|
var WRITE_OFF_FILTER_FIELDS = {
|
|
1062
1067
|
invoiceStatus: {
|
|
1063
1068
|
type: "string",
|
|
@@ -1190,7 +1195,7 @@ var fnaInvoiceCallTicketPrepare = {
|
|
|
1190
1195
|
fingerprint: fingerprint(requestids),
|
|
1191
1196
|
count: requestids.length
|
|
1192
1197
|
},
|
|
1193
|
-
|
|
1198
|
+
CONTINUATION_TTL_SECONDS * 1e3
|
|
1194
1199
|
);
|
|
1195
1200
|
return fnaSuccess("fna.invoice.writeoff.callticket.prepare", {
|
|
1196
1201
|
status: "AWAITING_CONFIRMATION",
|
|
@@ -1201,7 +1206,7 @@ var fnaInvoiceCallTicketPrepare = {
|
|
|
1201
1206
|
hint: "\u5411\u7528\u6237\u5C55\u793A\u6761\u6570\u4E0E\u76EE\u6807\u6D41\u7A0B\uFF08\u5EFA\u8BAE\u540C\u65F6\u7528 fna.invoice.writeoff.list \u7684\u884C\u5C55\u793A\u7533\u8BF7\u540D\u79F0/\u672A\u6838\u9500\u91D1\u989D\uFF09\uFF0C\u83B7\u5F97\u660E\u786E\u786E\u8BA4\u540E\u518D\u8C03\u7528 fna.invoice.writeoff.callticket.apply"
|
|
1202
1207
|
},
|
|
1203
1208
|
continuation: token,
|
|
1204
|
-
expiresInSeconds:
|
|
1209
|
+
expiresInSeconds: CONTINUATION_TTL_SECONDS
|
|
1205
1210
|
});
|
|
1206
1211
|
}
|
|
1207
1212
|
};
|
|
@@ -1425,6 +1430,7 @@ async function executeAndPrint(ctx, operation, input) {
|
|
|
1425
1430
|
});
|
|
1426
1431
|
ctx.output.write(successEnvelope(operation, result), { json: true });
|
|
1427
1432
|
} catch (error) {
|
|
1433
|
+
reportPlatformError(error);
|
|
1428
1434
|
console.error(JSON.stringify(failureEnvelope(error), null, 2));
|
|
1429
1435
|
process.exitCode = isCliError(error) ? error.exitCode : 1 /* GeneralError */;
|
|
1430
1436
|
}
|