hunter-mate 0.1.2 → 0.1.3
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/assets/extension/_locales/en_US/messages.json +5 -0
- package/dist/assets/extension/_locales/zh_CN/messages.json +5 -0
- package/dist/assets/extension/background/service-worker.js +3253 -0
- package/dist/assets/extension/content/index.js +13660 -0
- package/dist/assets/extension/manifest.json +49 -0
- package/dist/assets/extension/package.json +24 -0
- package/dist/assets/extension/sidepanel/index.html +400 -0
- package/dist/assets/extension/sidepanel/index.js +852 -0
- package/dist/assets/server/agent-session/agent-session.controller.d.ts +32 -0
- package/dist/assets/server/agent-session/agent-session.controller.js +83 -0
- package/dist/assets/server/agent-session/agent-session.controller.js.map +1 -0
- package/dist/assets/server/agent-session/agent-session.guard.d.ts +4 -0
- package/dist/assets/server/agent-session/agent-session.guard.js +32 -0
- package/dist/assets/server/agent-session/agent-session.guard.js.map +1 -0
- package/dist/assets/server/agent-session/agent-session.module.d.ts +2 -0
- package/dist/assets/server/agent-session/agent-session.module.js +28 -0
- package/dist/assets/server/agent-session/agent-session.module.js.map +1 -0
- package/dist/assets/server/agent-session/agent-session.service.d.ts +54 -0
- package/dist/assets/server/agent-session/agent-session.service.js +431 -0
- package/dist/assets/server/agent-session/agent-session.service.js.map +1 -0
- package/dist/assets/server/agent-session/agent-session.types.d.ts +56 -0
- package/dist/assets/server/agent-session/agent-session.types.js +3 -0
- package/dist/assets/server/agent-session/agent-session.types.js.map +1 -0
- package/dist/assets/server/agent-session/entities/agent-event.entity.d.ts +12 -0
- package/dist/assets/server/agent-session/entities/agent-event.entity.js +73 -0
- package/dist/assets/server/agent-session/entities/agent-event.entity.js.map +1 -0
- package/dist/assets/server/agent-session/entities/agent-message.entity.d.ts +13 -0
- package/dist/assets/server/agent-session/entities/agent-message.entity.js +77 -0
- package/dist/assets/server/agent-session/entities/agent-message.entity.js.map +1 -0
- package/dist/assets/server/agent-session/entities/agent-session.entity.d.ts +14 -0
- package/dist/assets/server/agent-session/entities/agent-session.entity.js +83 -0
- package/dist/assets/server/agent-session/entities/agent-session.entity.js.map +1 -0
- package/dist/assets/server/app.module.d.ts +4 -0
- package/dist/assets/server/app.module.js +125 -0
- package/dist/assets/server/app.module.js.map +1 -0
- package/dist/assets/server/auth/auth.controller.d.ts +22 -0
- package/dist/assets/server/auth/auth.controller.js +88 -0
- package/dist/assets/server/auth/auth.controller.js.map +1 -0
- package/dist/assets/server/auth/auth.middleware.d.ts +5 -0
- package/dist/assets/server/auth/auth.middleware.js +34 -0
- package/dist/assets/server/auth/auth.middleware.js.map +1 -0
- package/dist/assets/server/auth/auth.module.d.ts +2 -0
- package/dist/assets/server/auth/auth.module.js +24 -0
- package/dist/assets/server/auth/auth.module.js.map +1 -0
- package/dist/assets/server/auth/auth.service.d.ts +30 -0
- package/dist/assets/server/auth/auth.service.js +183 -0
- package/dist/assets/server/auth/auth.service.js.map +1 -0
- package/dist/assets/server/auth/auth.types.d.ts +28 -0
- package/dist/assets/server/auth/auth.types.js +3 -0
- package/dist/assets/server/auth/auth.types.js.map +1 -0
- package/dist/assets/server/build-info.json +4 -0
- package/dist/assets/server/common/common.module.d.ts +2 -0
- package/dist/assets/server/common/common.module.js +22 -0
- package/dist/assets/server/common/common.module.js.map +1 -0
- package/dist/assets/server/common/crypto.service.d.ts +11 -0
- package/dist/assets/server/common/crypto.service.js +73 -0
- package/dist/assets/server/common/crypto.service.js.map +1 -0
- package/dist/assets/server/communication/communication-record.entity.d.ts +15 -0
- package/dist/assets/server/communication/communication-record.entity.js +80 -0
- package/dist/assets/server/communication/communication-record.entity.js.map +1 -0
- package/dist/assets/server/communication/communication.controller.d.ts +12 -0
- package/dist/assets/server/communication/communication.controller.js +61 -0
- package/dist/assets/server/communication/communication.controller.js.map +1 -0
- package/dist/assets/server/communication/communication.module.d.ts +2 -0
- package/dist/assets/server/communication/communication.module.js +25 -0
- package/dist/assets/server/communication/communication.module.js.map +1 -0
- package/dist/assets/server/communication/communication.service.d.ts +23 -0
- package/dist/assets/server/communication/communication.service.js +51 -0
- package/dist/assets/server/communication/communication.service.js.map +1 -0
- package/dist/assets/server/db/schema-validator.service.d.ts +25 -0
- package/dist/assets/server/db/schema-validator.service.js +107 -0
- package/dist/assets/server/db/schema-validator.service.js.map +1 -0
- package/dist/assets/server/db/schema-version.entity.d.ts +5 -0
- package/dist/assets/server/db/schema-version.entity.js +35 -0
- package/dist/assets/server/db/schema-version.entity.js.map +1 -0
- package/dist/assets/server/db/sqlite.module.d.ts +2 -0
- package/dist/assets/server/db/sqlite.module.js +79 -0
- package/dist/assets/server/db/sqlite.module.js.map +1 -0
- package/dist/assets/server/devops/devops-sink-init.d.ts +10 -0
- package/dist/assets/server/devops/devops-sink-init.js +96 -0
- package/dist/assets/server/devops/devops-sink-init.js.map +1 -0
- package/dist/assets/server/devops/devops-sink-init.spec.d.ts +1 -0
- package/dist/assets/server/devops/devops-sink-init.spec.js +71 -0
- package/dist/assets/server/devops/devops-sink-init.spec.js.map +1 -0
- package/dist/assets/server/devops/devops-sink.module.d.ts +2 -0
- package/dist/assets/server/devops/devops-sink.module.js +22 -0
- package/dist/assets/server/devops/devops-sink.module.js.map +1 -0
- package/dist/assets/server/extension/extension-control.controller.d.ts +67 -0
- package/dist/assets/server/extension/extension-control.controller.js +173 -0
- package/dist/assets/server/extension/extension-control.controller.js.map +1 -0
- package/dist/assets/server/extension/extension-control.service.d.ts +46 -0
- package/dist/assets/server/extension/extension-control.service.js +212 -0
- package/dist/assets/server/extension/extension-control.service.js.map +1 -0
- package/dist/assets/server/extension/extension-core.module.d.ts +2 -0
- package/dist/assets/server/extension/extension-core.module.js +21 -0
- package/dist/assets/server/extension/extension-core.module.js.map +1 -0
- package/dist/assets/server/extension/extension-version.controller.d.ts +6 -0
- package/dist/assets/server/extension/extension-version.controller.js +41 -0
- package/dist/assets/server/extension/extension-version.controller.js.map +1 -0
- package/dist/assets/server/extension/extension.module.d.ts +2 -0
- package/dist/assets/server/extension/extension.module.js +25 -0
- package/dist/assets/server/extension/extension.module.js.map +1 -0
- package/dist/assets/server/extraction/adapter.service.d.ts +41 -0
- package/dist/assets/server/extraction/adapter.service.js +161 -0
- package/dist/assets/server/extraction/adapter.service.js.map +1 -0
- package/dist/assets/server/extraction/entities/company-profile.entity.d.ts +14 -0
- package/dist/assets/server/extraction/entities/company-profile.entity.js +81 -0
- package/dist/assets/server/extraction/entities/company-profile.entity.js.map +1 -0
- package/dist/assets/server/extraction/entities/job-posting.entity.d.ts +15 -0
- package/dist/assets/server/extraction/entities/job-posting.entity.js +86 -0
- package/dist/assets/server/extraction/entities/job-posting.entity.js.map +1 -0
- package/dist/assets/server/extraction/entities/parse-log.entity.d.ts +15 -0
- package/dist/assets/server/extraction/entities/parse-log.entity.js +87 -0
- package/dist/assets/server/extraction/entities/parse-log.entity.js.map +1 -0
- package/dist/assets/server/extraction/entities/talent-profile.entity.d.ts +15 -0
- package/dist/assets/server/extraction/entities/talent-profile.entity.js +86 -0
- package/dist/assets/server/extraction/entities/talent-profile.entity.js.map +1 -0
- package/dist/assets/server/extraction/extraction-entity.controller.d.ts +100 -0
- package/dist/assets/server/extraction/extraction-entity.controller.js +310 -0
- package/dist/assets/server/extraction/extraction-entity.controller.js.map +1 -0
- package/dist/assets/server/extraction/extraction-rule.controller.d.ts +7 -0
- package/dist/assets/server/extraction/extraction-rule.controller.js +48 -0
- package/dist/assets/server/extraction/extraction-rule.controller.js.map +1 -0
- package/dist/assets/server/extraction/extraction-rule.entity.d.ts +15 -0
- package/dist/assets/server/extraction/extraction-rule.entity.js +80 -0
- package/dist/assets/server/extraction/extraction-rule.entity.js.map +1 -0
- package/dist/assets/server/extraction/extraction-rule.service.d.ts +24 -0
- package/dist/assets/server/extraction/extraction-rule.service.js +81 -0
- package/dist/assets/server/extraction/extraction-rule.service.js.map +1 -0
- package/dist/assets/server/extraction/extraction.module.d.ts +2 -0
- package/dist/assets/server/extraction/extraction.module.js +43 -0
- package/dist/assets/server/extraction/extraction.module.js.map +1 -0
- package/dist/assets/server/extraction/extraction.service.d.ts +62 -0
- package/dist/assets/server/extraction/extraction.service.js +347 -0
- package/dist/assets/server/extraction/extraction.service.js.map +1 -0
- package/dist/assets/server/extraction/script-rule.d.ts +13 -0
- package/dist/assets/server/extraction/script-rule.js +45 -0
- package/dist/assets/server/extraction/script-rule.js.map +1 -0
- package/dist/assets/server/extraction/structured-data.d.ts +7 -0
- package/dist/assets/server/extraction/structured-data.js +96 -0
- package/dist/assets/server/extraction/structured-data.js.map +1 -0
- package/dist/assets/server/hcapi/hcapi.module.d.ts +2 -0
- package/dist/assets/server/hcapi/hcapi.module.js +23 -0
- package/dist/assets/server/hcapi/hcapi.module.js.map +1 -0
- package/dist/assets/server/hcapi/hcapi.service.d.ts +28 -0
- package/dist/assets/server/hcapi/hcapi.service.js +81 -0
- package/dist/assets/server/hcapi/hcapi.service.js.map +1 -0
- package/dist/assets/server/health/health.controller.d.ts +19 -0
- package/dist/assets/server/health/health.controller.js +59 -0
- package/dist/assets/server/health/health.controller.js.map +1 -0
- package/dist/assets/server/jobcase/jobcase.controller.d.ts +12 -0
- package/dist/assets/server/jobcase/jobcase.controller.js +61 -0
- package/dist/assets/server/jobcase/jobcase.controller.js.map +1 -0
- package/dist/assets/server/jobcase/jobcase.entity.d.ts +13 -0
- package/dist/assets/server/jobcase/jobcase.entity.js +71 -0
- package/dist/assets/server/jobcase/jobcase.entity.js.map +1 -0
- package/dist/assets/server/jobcase/jobcase.module.d.ts +2 -0
- package/dist/assets/server/jobcase/jobcase.module.js +26 -0
- package/dist/assets/server/jobcase/jobcase.module.js.map +1 -0
- package/dist/assets/server/jobcase/jobcase.service.d.ts +21 -0
- package/dist/assets/server/jobcase/jobcase.service.js +56 -0
- package/dist/assets/server/jobcase/jobcase.service.js.map +1 -0
- package/dist/assets/server/llm/llm.module.d.ts +2 -0
- package/dist/assets/server/llm/llm.module.js +21 -0
- package/dist/assets/server/llm/llm.module.js.map +1 -0
- package/dist/assets/server/llm/llm.service.d.ts +18 -0
- package/dist/assets/server/llm/llm.service.js +65 -0
- package/dist/assets/server/llm/llm.service.js.map +1 -0
- package/dist/assets/server/main.d.ts +1 -0
- package/dist/assets/server/main.js +30 -0
- package/dist/assets/server/main.js.map +1 -0
- package/dist/assets/server/matching/matching.controller.d.ts +16 -0
- package/dist/assets/server/matching/matching.controller.js +97 -0
- package/dist/assets/server/matching/matching.controller.js.map +1 -0
- package/dist/assets/server/matching/matching.module.d.ts +2 -0
- package/dist/assets/server/matching/matching.module.js +36 -0
- package/dist/assets/server/matching/matching.module.js.map +1 -0
- package/dist/assets/server/matching/matching.service.d.ts +55 -0
- package/dist/assets/server/matching/matching.service.js +409 -0
- package/dist/assets/server/matching/matching.service.js.map +1 -0
- package/dist/assets/server/package.json +57 -0
- package/dist/assets/server/parsed-resume/parsed-resume.controller.d.ts +6 -0
- package/dist/assets/server/parsed-resume/parsed-resume.controller.js +42 -0
- package/dist/assets/server/parsed-resume/parsed-resume.controller.js.map +1 -0
- package/dist/assets/server/parsed-resume/parsed-resume.entity.d.ts +124 -0
- package/dist/assets/server/parsed-resume/parsed-resume.entity.js +72 -0
- package/dist/assets/server/parsed-resume/parsed-resume.entity.js.map +1 -0
- package/dist/assets/server/parsed-resume/parsed-resume.module.d.ts +2 -0
- package/dist/assets/server/parsed-resume/parsed-resume.module.js +26 -0
- package/dist/assets/server/parsed-resume/parsed-resume.module.js.map +1 -0
- package/dist/assets/server/parsed-resume/parsed-resume.service.d.ts +10 -0
- package/dist/assets/server/parsed-resume/parsed-resume.service.js +45 -0
- package/dist/assets/server/parsed-resume/parsed-resume.service.js.map +1 -0
- package/dist/assets/server/parsing/parse-error-report.entity.d.ts +11 -0
- package/dist/assets/server/parsing/parse-error-report.entity.js +66 -0
- package/dist/assets/server/parsing/parse-error-report.entity.js.map +1 -0
- package/dist/assets/server/parsing/parsing.controller.d.ts +19 -0
- package/dist/assets/server/parsing/parsing.controller.js +97 -0
- package/dist/assets/server/parsing/parsing.controller.js.map +1 -0
- package/dist/assets/server/parsing/parsing.module.d.ts +2 -0
- package/dist/assets/server/parsing/parsing.module.js +38 -0
- package/dist/assets/server/parsing/parsing.module.js.map +1 -0
- package/dist/assets/server/parsing/parsing.service.d.ts +38 -0
- package/dist/assets/server/parsing/parsing.service.js +263 -0
- package/dist/assets/server/parsing/parsing.service.js.map +1 -0
- package/dist/assets/server/query/fields-meta.controller.d.ts +28 -0
- package/dist/assets/server/query/fields-meta.controller.js +57 -0
- package/dist/assets/server/query/fields-meta.controller.js.map +1 -0
- package/dist/assets/server/query/query-builder.controller.d.ts +11 -0
- package/dist/assets/server/query/query-builder.controller.js +40 -0
- package/dist/assets/server/query/query-builder.controller.js.map +1 -0
- package/dist/assets/server/query/query-builder.service.d.ts +8 -0
- package/dist/assets/server/query/query-builder.service.js +41 -0
- package/dist/assets/server/query/query-builder.service.js.map +1 -0
- package/dist/assets/server/query/query.module.d.ts +2 -0
- package/dist/assets/server/query/query.module.js +23 -0
- package/dist/assets/server/query/query.module.js.map +1 -0
- package/dist/assets/server/recording/entities/recording-event.entity.d.ts +9 -0
- package/dist/assets/server/recording/entities/recording-event.entity.js +56 -0
- package/dist/assets/server/recording/entities/recording-event.entity.js.map +1 -0
- package/dist/assets/server/recording/recording.controller.d.ts +52 -0
- package/dist/assets/server/recording/recording.controller.js +73 -0
- package/dist/assets/server/recording/recording.controller.js.map +1 -0
- package/dist/assets/server/recording/recording.gateway.d.ts +15 -0
- package/dist/assets/server/recording/recording.gateway.js +117 -0
- package/dist/assets/server/recording/recording.gateway.js.map +1 -0
- package/dist/assets/server/recording/recording.module.d.ts +2 -0
- package/dist/assets/server/recording/recording.module.js +29 -0
- package/dist/assets/server/recording/recording.module.js.map +1 -0
- package/dist/assets/server/recording/recording.service.d.ts +59 -0
- package/dist/assets/server/recording/recording.service.js +111 -0
- package/dist/assets/server/recording/recording.service.js.map +1 -0
- package/dist/assets/server/remark/remark.controller.d.ts +21 -0
- package/dist/assets/server/remark/remark.controller.js +59 -0
- package/dist/assets/server/remark/remark.controller.js.map +1 -0
- package/dist/assets/server/remark/remark.entity.d.ts +18 -0
- package/dist/assets/server/remark/remark.entity.js +67 -0
- package/dist/assets/server/remark/remark.entity.js.map +1 -0
- package/dist/assets/server/remark/remark.module.d.ts +2 -0
- package/dist/assets/server/remark/remark.module.js +26 -0
- package/dist/assets/server/remark/remark.module.js.map +1 -0
- package/dist/assets/server/remark/remark.service.d.ts +8 -0
- package/dist/assets/server/remark/remark.service.js +39 -0
- package/dist/assets/server/remark/remark.service.js.map +1 -0
- package/dist/assets/server/report/report.controller.d.ts +18 -0
- package/dist/assets/server/report/report.controller.js +41 -0
- package/dist/assets/server/report/report.controller.js.map +1 -0
- package/dist/assets/server/report/report.module.d.ts +2 -0
- package/dist/assets/server/report/report.module.js +24 -0
- package/dist/assets/server/report/report.module.js.map +1 -0
- package/dist/assets/server/report/report.service.d.ts +23 -0
- package/dist/assets/server/report/report.service.js +54 -0
- package/dist/assets/server/report/report.service.js.map +1 -0
- package/dist/assets/server/rules/rules.controller.d.ts +6 -0
- package/dist/assets/server/rules/rules.controller.js +35 -0
- package/dist/assets/server/rules/rules.controller.js.map +1 -0
- package/dist/assets/server/rules/rules.module.d.ts +2 -0
- package/dist/assets/server/rules/rules.module.js +23 -0
- package/dist/assets/server/rules/rules.module.js.map +1 -0
- package/dist/assets/server/rules/rules.service.d.ts +10 -0
- package/dist/assets/server/rules/rules.service.js +26 -0
- package/dist/assets/server/rules/rules.service.js.map +1 -0
- package/dist/assets/server/search/search.controller.d.ts +6 -0
- package/dist/assets/server/search/search.controller.js +53 -0
- package/dist/assets/server/search/search.controller.js.map +1 -0
- package/dist/assets/server/search/search.module.d.ts +2 -0
- package/dist/assets/server/search/search.module.js +24 -0
- package/dist/assets/server/search/search.module.js.map +1 -0
- package/dist/assets/server/search/search.service.d.ts +6 -0
- package/dist/assets/server/search/search.service.js +46 -0
- package/dist/assets/server/search/search.service.js.map +1 -0
- package/dist/assets/server/sentry.d.ts +3 -0
- package/dist/assets/server/sentry.js +10 -0
- package/dist/assets/server/sentry.js.map +1 -0
- package/dist/assets/server/site/entities/site-registry.entity.d.ts +11 -0
- package/dist/assets/server/site/entities/site-registry.entity.js +66 -0
- package/dist/assets/server/site/entities/site-registry.entity.js.map +1 -0
- package/dist/assets/server/site/site.controller.d.ts +36 -0
- package/dist/assets/server/site/site.controller.js +60 -0
- package/dist/assets/server/site/site.controller.js.map +1 -0
- package/dist/assets/server/site/site.module.d.ts +2 -0
- package/dist/assets/server/site/site.module.js +26 -0
- package/dist/assets/server/site/site.module.js.map +1 -0
- package/dist/assets/server/site/site.service.d.ts +37 -0
- package/dist/assets/server/site/site.service.js +134 -0
- package/dist/assets/server/site/site.service.js.map +1 -0
- package/dist/assets/server/snapshot/raw-snapshot.entity.d.ts +35 -0
- package/dist/assets/server/snapshot/raw-snapshot.entity.js +62 -0
- package/dist/assets/server/snapshot/raw-snapshot.entity.js.map +1 -0
- package/dist/assets/server/snapshot/snapshot.controller.d.ts +18 -0
- package/dist/assets/server/snapshot/snapshot.controller.js +76 -0
- package/dist/assets/server/snapshot/snapshot.controller.js.map +1 -0
- package/dist/assets/server/snapshot/snapshot.module.d.ts +2 -0
- package/dist/assets/server/snapshot/snapshot.module.js +26 -0
- package/dist/assets/server/snapshot/snapshot.module.js.map +1 -0
- package/dist/assets/server/snapshot/snapshot.service.d.ts +10 -0
- package/dist/assets/server/snapshot/snapshot.service.js +48 -0
- package/dist/assets/server/snapshot/snapshot.service.js.map +1 -0
- package/dist/assets/server/system/system.controller.d.ts +39 -0
- package/dist/assets/server/system/system.controller.js +93 -0
- package/dist/assets/server/system/system.controller.js.map +1 -0
- package/dist/assets/server/system/system.module.d.ts +2 -0
- package/dist/assets/server/system/system.module.js +26 -0
- package/dist/assets/server/system/system.module.js.map +1 -0
- package/dist/assets/server/system/system.service.d.ts +86 -0
- package/dist/assets/server/system/system.service.js +433 -0
- package/dist/assets/server/system/system.service.js.map +1 -0
- package/dist/assets/server/talent-fingerprint/fingerprint-match.service.d.ts +28 -0
- package/dist/assets/server/talent-fingerprint/fingerprint-match.service.js +186 -0
- package/dist/assets/server/talent-fingerprint/fingerprint-match.service.js.map +1 -0
- package/dist/assets/server/talent-fingerprint/talent-fingerprint.entity.d.ts +30 -0
- package/dist/assets/server/talent-fingerprint/talent-fingerprint.entity.js +55 -0
- package/dist/assets/server/talent-fingerprint/talent-fingerprint.entity.js.map +1 -0
- package/dist/assets/server/talent-fingerprint/talent-fingerprint.module.d.ts +2 -0
- package/dist/assets/server/talent-fingerprint/talent-fingerprint.module.js +25 -0
- package/dist/assets/server/talent-fingerprint/talent-fingerprint.module.js.map +1 -0
- package/dist/assets/server/talent-fingerprint/talent-fingerprint.service.d.ts +8 -0
- package/dist/assets/server/talent-fingerprint/talent-fingerprint.service.js +44 -0
- package/dist/assets/server/talent-fingerprint/talent-fingerprint.service.js.map +1 -0
- package/dist/assets/server/talent-job-match/talent-job-match.controller.d.ts +6 -0
- package/dist/assets/server/talent-job-match/talent-job-match.controller.js +42 -0
- package/dist/assets/server/talent-job-match/talent-job-match.controller.js.map +1 -0
- package/dist/assets/server/talent-job-match/talent-job-match.entity.d.ts +33 -0
- package/dist/assets/server/talent-job-match/talent-job-match.entity.js +73 -0
- package/dist/assets/server/talent-job-match/talent-job-match.entity.js.map +1 -0
- package/dist/assets/server/talent-job-match/talent-job-match.module.d.ts +2 -0
- package/dist/assets/server/talent-job-match/talent-job-match.module.js +26 -0
- package/dist/assets/server/talent-job-match/talent-job-match.module.js.map +1 -0
- package/dist/assets/server/talent-job-match/talent-job-match.service.d.ts +9 -0
- package/dist/assets/server/talent-job-match/talent-job-match.service.js +42 -0
- package/dist/assets/server/talent-job-match/talent-job-match.service.js.map +1 -0
- package/dist/assets/server/talent-portrait/portrait-merge.service.d.ts +17 -0
- package/dist/assets/server/talent-portrait/portrait-merge.service.js +200 -0
- package/dist/assets/server/talent-portrait/portrait-merge.service.js.map +1 -0
- package/dist/assets/server/talent-portrait/talent-portrait.controller.d.ts +7 -0
- package/dist/assets/server/talent-portrait/talent-portrait.controller.js +52 -0
- package/dist/assets/server/talent-portrait/talent-portrait.controller.js.map +1 -0
- package/dist/assets/server/talent-portrait/talent-portrait.entity.d.ts +91 -0
- package/dist/assets/server/talent-portrait/talent-portrait.entity.js +71 -0
- package/dist/assets/server/talent-portrait/talent-portrait.entity.js.map +1 -0
- package/dist/assets/server/talent-portrait/talent-portrait.module.d.ts +2 -0
- package/dist/assets/server/talent-portrait/talent-portrait.module.js +27 -0
- package/dist/assets/server/talent-portrait/talent-portrait.module.js.map +1 -0
- package/dist/assets/server/talent-portrait/talent-portrait.service.d.ts +10 -0
- package/dist/assets/server/talent-portrait/talent-portrait.service.js +46 -0
- package/dist/assets/server/talent-portrait/talent-portrait.service.js.map +1 -0
- package/dist/assets/server/telemetry/telemetry.module.d.ts +2 -0
- package/dist/assets/server/telemetry/telemetry.module.js +24 -0
- package/dist/assets/server/telemetry/telemetry.module.js.map +1 -0
- package/dist/assets/server/telemetry/telemetry.service.d.ts +29 -0
- package/dist/assets/server/telemetry/telemetry.service.js +116 -0
- package/dist/assets/server/telemetry/telemetry.service.js.map +1 -0
- package/dist/bundled-assets.d.ts +22 -0
- package/dist/bundled-assets.js +80 -0
- package/dist/cache/db.js +10 -54
- package/dist/commands/addons.js +46 -71
- package/dist/commands/cache.js +29 -27
- package/dist/commands/config.d.ts +1 -1
- package/dist/commands/config.js +8 -12
- package/dist/commands/doctor.d.ts +0 -1
- package/dist/commands/doctor.js +52 -67
- package/dist/commands/extension.js +82 -96
- package/dist/commands/extras.d.ts +31 -1
- package/dist/commands/extras.js +248 -61
- package/dist/commands/init.js +18 -46
- package/dist/commands/install.js +20 -52
- package/dist/commands/job.js +27 -65
- package/dist/commands/login.js +50 -37
- package/dist/commands/logout.js +8 -12
- package/dist/commands/ops.js +94 -67
- package/dist/commands/record.js +21 -59
- package/dist/commands/report.js +14 -18
- package/dist/commands/search.js +14 -21
- package/dist/commands/server.d.ts +1 -1
- package/dist/commands/server.js +126 -112
- package/dist/commands/status.js +23 -27
- package/dist/commands/update.js +44 -79
- package/dist/config.d.ts +3 -0
- package/dist/config.js +12 -46
- package/dist/i18n/index.js +5 -11
- package/dist/i18n/locales/en-US.json +24 -1
- package/dist/i18n/locales/zh-CN.json +24 -1
- package/dist/index.cmd +3 -0
- package/dist/index.js +83 -98
- package/dist/index.ps1 +3 -0
- package/dist/keychain.js +9 -44
- package/dist/logger.d.ts +7 -0
- package/dist/logger.js +80 -0
- package/dist/native-check.d.ts +6 -0
- package/dist/native-check.js +23 -0
- package/dist/sentry.js +4 -8
- package/dist/updater.js +15 -52
- package/dist/utils/proc.d.ts +35 -0
- package/dist/utils/proc.js +81 -0
- package/dist/utils/spawn.d.ts +19 -0
- package/dist/utils/spawn.js +60 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +183 -81
- package/dist/watchdog.d.ts +1 -0
- package/dist/watchdog.js +128 -0
- package/package.json +5 -4
- package/dist/commands/native-check.d.ts +0 -22
- package/dist/commands/native-check.js +0 -93
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.CommunicationService = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
18
|
+
const typeorm_2 = require("typeorm");
|
|
19
|
+
const communication_record_entity_1 = require("./communication-record.entity");
|
|
20
|
+
let CommunicationService = class CommunicationService {
|
|
21
|
+
repo;
|
|
22
|
+
constructor(repo) {
|
|
23
|
+
this.repo = repo;
|
|
24
|
+
}
|
|
25
|
+
async create(dto) {
|
|
26
|
+
const entity = this.repo.create({
|
|
27
|
+
...dto,
|
|
28
|
+
status: 'draft',
|
|
29
|
+
});
|
|
30
|
+
const saved = await this.repo.save(entity);
|
|
31
|
+
return { id: saved.id, externalId: saved.externalId, status: saved.status };
|
|
32
|
+
}
|
|
33
|
+
async findAll(ownerId) {
|
|
34
|
+
const where = ownerId ? { ownerId } : {};
|
|
35
|
+
return this.repo.find({ where, order: { createdAt: 'DESC' } });
|
|
36
|
+
}
|
|
37
|
+
async findOne(id) {
|
|
38
|
+
const record = await this.repo.findOne({ where: { id } });
|
|
39
|
+
if (!record) {
|
|
40
|
+
throw new common_1.NotFoundException(`CommunicationRecord ${id} not found`);
|
|
41
|
+
}
|
|
42
|
+
return record;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
exports.CommunicationService = CommunicationService;
|
|
46
|
+
exports.CommunicationService = CommunicationService = __decorate([
|
|
47
|
+
(0, common_1.Injectable)(),
|
|
48
|
+
__param(0, (0, typeorm_1.InjectRepository)(communication_record_entity_1.CommunicationRecord)),
|
|
49
|
+
__metadata("design:paramtypes", [typeorm_2.Repository])
|
|
50
|
+
], CommunicationService);
|
|
51
|
+
//# sourceMappingURL=communication.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"communication.service.js","sourceRoot":"","sources":["../../src/communication/communication.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA+D;AAC/D,6CAAmD;AACnD,qCAAqC;AACrC,+EAAuF;AAchF,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAGZ;IAFnB,YAEmB,IAAqC;QAArC,SAAI,GAAJ,IAAI,CAAiC;IACrD,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,GAA2B;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAC9B,GAAG,GAAG;YACN,MAAM,EAAE,OAAO;SAChB,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAgB;QAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,0BAAiB,CAAC,uBAAuB,EAAE,YAAY,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AA3BY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,iDAAmB,CAAC,CAAA;qCACf,oBAAU;GAHxB,oBAAoB,CA2BhC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { OnModuleInit } from '@nestjs/common';
|
|
2
|
+
import { Repository, DataSource } from 'typeorm';
|
|
3
|
+
import { SchemaVersion } from './schema-version.entity';
|
|
4
|
+
export declare class SchemaValidatorService implements OnModuleInit {
|
|
5
|
+
private readonly repo;
|
|
6
|
+
private readonly dataSource;
|
|
7
|
+
private readonly logger;
|
|
8
|
+
private schemaHealthy;
|
|
9
|
+
private schemaError;
|
|
10
|
+
constructor(repo: Repository<SchemaVersion>, dataSource: DataSource);
|
|
11
|
+
onModuleInit(): Promise<void>;
|
|
12
|
+
isHealthy(): boolean;
|
|
13
|
+
getError(): string | null;
|
|
14
|
+
getStatus(): {
|
|
15
|
+
status: string;
|
|
16
|
+
schemaVersion: string;
|
|
17
|
+
error: string | null;
|
|
18
|
+
};
|
|
19
|
+
private validateOrRepair;
|
|
20
|
+
private computeExpectedSchemaChecksum;
|
|
21
|
+
private getDbPath;
|
|
22
|
+
private backupDb;
|
|
23
|
+
private runBaseline;
|
|
24
|
+
private repair;
|
|
25
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var SchemaValidatorService_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.SchemaValidatorService = void 0;
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
19
|
+
const typeorm_2 = require("typeorm");
|
|
20
|
+
const fs = require("fs");
|
|
21
|
+
const path = require("path");
|
|
22
|
+
const crypto_1 = require("crypto");
|
|
23
|
+
const schema_version_entity_1 = require("./schema-version.entity");
|
|
24
|
+
let SchemaValidatorService = SchemaValidatorService_1 = class SchemaValidatorService {
|
|
25
|
+
repo;
|
|
26
|
+
dataSource;
|
|
27
|
+
logger = new common_1.Logger(SchemaValidatorService_1.name);
|
|
28
|
+
schemaHealthy = false;
|
|
29
|
+
schemaError = null;
|
|
30
|
+
constructor(repo, dataSource) {
|
|
31
|
+
this.repo = repo;
|
|
32
|
+
this.dataSource = dataSource;
|
|
33
|
+
}
|
|
34
|
+
async onModuleInit() {
|
|
35
|
+
await this.validateOrRepair();
|
|
36
|
+
}
|
|
37
|
+
isHealthy() {
|
|
38
|
+
return this.schemaHealthy;
|
|
39
|
+
}
|
|
40
|
+
getError() {
|
|
41
|
+
return this.schemaError;
|
|
42
|
+
}
|
|
43
|
+
getStatus() {
|
|
44
|
+
return {
|
|
45
|
+
status: this.schemaHealthy ? 'ok' : 'degraded',
|
|
46
|
+
schemaVersion: '1',
|
|
47
|
+
error: this.schemaError,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
async validateOrRepair() {
|
|
51
|
+
try {
|
|
52
|
+
const expected = this.computeExpectedSchemaChecksum();
|
|
53
|
+
const current = await this.repo.findOne({ where: { version: '1' } });
|
|
54
|
+
if (!current) {
|
|
55
|
+
await this.runBaseline(expected);
|
|
56
|
+
}
|
|
57
|
+
else if (current.checksum !== expected) {
|
|
58
|
+
await this.repair(expected, current.checksum);
|
|
59
|
+
}
|
|
60
|
+
this.schemaHealthy = true;
|
|
61
|
+
this.schemaError = null;
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
this.schemaHealthy = false;
|
|
65
|
+
this.schemaError = err.message ?? String(err);
|
|
66
|
+
this.logger.error('schema validation/repair failed', err);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
computeExpectedSchemaChecksum() {
|
|
70
|
+
const meta = this.dataSource.entityMetadatas
|
|
71
|
+
.map((m) => `${m.name}:${m.columns.map((c) => c.propertyName).sort().join(',')}`)
|
|
72
|
+
.sort()
|
|
73
|
+
.join('\n');
|
|
74
|
+
return (0, crypto_1.createHash)('sha256').update(meta).digest('hex').slice(0, 16);
|
|
75
|
+
}
|
|
76
|
+
getDbPath() {
|
|
77
|
+
const opts = this.dataSource.options;
|
|
78
|
+
if (opts.database)
|
|
79
|
+
return opts.database;
|
|
80
|
+
return path.join(process.env.HUNTER_MATE_HOME || process.env.HOME || process.env.USERPROFILE || '.', '.hunter-mate', 'hunter-mate.db');
|
|
81
|
+
}
|
|
82
|
+
backupDb(suffix) {
|
|
83
|
+
const dbPath = this.getDbPath();
|
|
84
|
+
const backup = `${dbPath}.${suffix}-${Date.now()}`;
|
|
85
|
+
fs.copyFileSync(dbPath, backup);
|
|
86
|
+
return backup;
|
|
87
|
+
}
|
|
88
|
+
async runBaseline(checksum) {
|
|
89
|
+
const backup = this.backupDb('baseline');
|
|
90
|
+
await this.repo.save({ version: '1', checksum });
|
|
91
|
+
this.logger.log(`schema baseline created: ${checksum}, backup=${backup}`);
|
|
92
|
+
}
|
|
93
|
+
async repair(newChecksum, oldChecksum) {
|
|
94
|
+
const backup = this.backupDb('repair');
|
|
95
|
+
this.logger.warn(`schema drift detected ${oldChecksum} -> ${newChecksum}, backup=${backup}`);
|
|
96
|
+
await this.repo.update({ version: '1' }, { checksum: newChecksum });
|
|
97
|
+
this.logger.log('schema checksum updated after synchronize');
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
exports.SchemaValidatorService = SchemaValidatorService;
|
|
101
|
+
exports.SchemaValidatorService = SchemaValidatorService = SchemaValidatorService_1 = __decorate([
|
|
102
|
+
(0, common_1.Injectable)(),
|
|
103
|
+
__param(0, (0, typeorm_1.InjectRepository)(schema_version_entity_1.SchemaVersion)),
|
|
104
|
+
__metadata("design:paramtypes", [typeorm_2.Repository,
|
|
105
|
+
typeorm_2.DataSource])
|
|
106
|
+
], SchemaValidatorService);
|
|
107
|
+
//# sourceMappingURL=schema-validator.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-validator.service.js","sourceRoot":"","sources":["../../src/db/schema-validator.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.SchemaVersion = void 0;
|
|
13
|
+
const typeorm_1 = require("typeorm");
|
|
14
|
+
let SchemaVersion = class SchemaVersion {
|
|
15
|
+
version;
|
|
16
|
+
checksum;
|
|
17
|
+
appliedAt;
|
|
18
|
+
};
|
|
19
|
+
exports.SchemaVersion = SchemaVersion;
|
|
20
|
+
__decorate([
|
|
21
|
+
(0, typeorm_1.PrimaryColumn)({ type: 'varchar', length: 32 }),
|
|
22
|
+
__metadata("design:type", String)
|
|
23
|
+
], SchemaVersion.prototype, "version", void 0);
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 64 }),
|
|
26
|
+
__metadata("design:type", String)
|
|
27
|
+
], SchemaVersion.prototype, "checksum", void 0);
|
|
28
|
+
__decorate([
|
|
29
|
+
(0, typeorm_1.CreateDateColumn)(),
|
|
30
|
+
__metadata("design:type", Date)
|
|
31
|
+
], SchemaVersion.prototype, "appliedAt", void 0);
|
|
32
|
+
exports.SchemaVersion = SchemaVersion = __decorate([
|
|
33
|
+
(0, typeorm_1.Entity)('schema_versions')
|
|
34
|
+
], SchemaVersion);
|
|
35
|
+
//# sourceMappingURL=schema-version.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-version.entity.js","sourceRoot":"","sources":["../../src/db/schema-version.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAA0E;AAGnE,IAAM,aAAa,GAAnB,MAAM,aAAa;IAExB,OAAO,CAAS;IAGhB,QAAQ,CAAS;IAGjB,SAAS,CAAO;CACjB,CAAA;AATY,sCAAa;AAExB;IADC,IAAA,uBAAa,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;;8CAC/B;AAGhB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;;+CACvB;AAGjB;IADC,IAAA,0BAAgB,GAAE;8BACR,IAAI;gDAAC;wBARL,aAAa;IADzB,IAAA,gBAAM,EAAC,iBAAiB,CAAC;GACb,aAAa,CASzB"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.SqliteModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
12
|
+
const config_1 = require("@nestjs/config");
|
|
13
|
+
const fs = require("fs");
|
|
14
|
+
const path = require("path");
|
|
15
|
+
const recording_event_entity_1 = require("../recording/entities/recording-event.entity");
|
|
16
|
+
const jobcase_entity_1 = require("../jobcase/jobcase.entity");
|
|
17
|
+
const extraction_rule_entity_1 = require("../extraction/extraction-rule.entity");
|
|
18
|
+
const communication_record_entity_1 = require("../communication/communication-record.entity");
|
|
19
|
+
const raw_snapshot_entity_1 = require("../snapshot/raw-snapshot.entity");
|
|
20
|
+
const parsed_resume_entity_1 = require("../parsed-resume/parsed-resume.entity");
|
|
21
|
+
const talent_portrait_entity_1 = require("../talent-portrait/talent-portrait.entity");
|
|
22
|
+
const talent_fingerprint_entity_1 = require("../talent-fingerprint/talent-fingerprint.entity");
|
|
23
|
+
const talent_job_match_entity_1 = require("../talent-job-match/talent-job-match.entity");
|
|
24
|
+
const remark_entity_1 = require("../remark/remark.entity");
|
|
25
|
+
const parse_error_report_entity_1 = require("../parsing/parse-error-report.entity");
|
|
26
|
+
const site_registry_entity_1 = require("../site/entities/site-registry.entity");
|
|
27
|
+
const parse_log_entity_1 = require("../extraction/entities/parse-log.entity");
|
|
28
|
+
const talent_profile_entity_1 = require("../extraction/entities/talent-profile.entity");
|
|
29
|
+
const job_posting_entity_1 = require("../extraction/entities/job-posting.entity");
|
|
30
|
+
const company_profile_entity_1 = require("../extraction/entities/company-profile.entity");
|
|
31
|
+
const schema_version_entity_1 = require("./schema-version.entity");
|
|
32
|
+
const schema_validator_service_1 = require("./schema-validator.service");
|
|
33
|
+
const HOME = () => process.env.HUNTER_MATE_HOME || process.env.HOME || process.env.USERPROFILE || '.';
|
|
34
|
+
let SqliteModule = class SqliteModule {
|
|
35
|
+
};
|
|
36
|
+
exports.SqliteModule = SqliteModule;
|
|
37
|
+
exports.SqliteModule = SqliteModule = __decorate([
|
|
38
|
+
(0, common_1.Module)({
|
|
39
|
+
imports: [
|
|
40
|
+
typeorm_1.TypeOrmModule.forRootAsync({
|
|
41
|
+
imports: [config_1.ConfigModule],
|
|
42
|
+
inject: [config_1.ConfigService],
|
|
43
|
+
useFactory: (config) => {
|
|
44
|
+
const dbFile = config.get('SQLITE_PATH') ||
|
|
45
|
+
path.join(HOME(), '.hunter-mate', 'hunter-mate.db');
|
|
46
|
+
fs.mkdirSync(path.dirname(dbFile), { recursive: true });
|
|
47
|
+
return {
|
|
48
|
+
type: 'better-sqlite3',
|
|
49
|
+
database: dbFile,
|
|
50
|
+
synchronize: config.get('SQLITE_SYNCHRONIZE', 'true') !== 'false',
|
|
51
|
+
entities: [
|
|
52
|
+
recording_event_entity_1.RecordingEvent,
|
|
53
|
+
jobcase_entity_1.JobCase,
|
|
54
|
+
extraction_rule_entity_1.ExtractionRule,
|
|
55
|
+
communication_record_entity_1.CommunicationRecord,
|
|
56
|
+
raw_snapshot_entity_1.RawSnapshot,
|
|
57
|
+
parsed_resume_entity_1.ParsedResume,
|
|
58
|
+
talent_portrait_entity_1.TalentPortrait,
|
|
59
|
+
talent_fingerprint_entity_1.TalentFingerprint,
|
|
60
|
+
talent_job_match_entity_1.TalentJobMatch,
|
|
61
|
+
remark_entity_1.Remark,
|
|
62
|
+
parse_error_report_entity_1.ParseErrorReport,
|
|
63
|
+
site_registry_entity_1.SiteRegistry,
|
|
64
|
+
parse_log_entity_1.ParseLog,
|
|
65
|
+
talent_profile_entity_1.TalentProfile,
|
|
66
|
+
job_posting_entity_1.JobPosting,
|
|
67
|
+
company_profile_entity_1.CompanyProfile,
|
|
68
|
+
schema_version_entity_1.SchemaVersion,
|
|
69
|
+
],
|
|
70
|
+
};
|
|
71
|
+
},
|
|
72
|
+
}),
|
|
73
|
+
typeorm_1.TypeOrmModule.forFeature([schema_version_entity_1.SchemaVersion]),
|
|
74
|
+
],
|
|
75
|
+
providers: [schema_validator_service_1.SchemaValidatorService],
|
|
76
|
+
exports: [schema_validator_service_1.SchemaValidatorService],
|
|
77
|
+
})
|
|
78
|
+
], SqliteModule);
|
|
79
|
+
//# sourceMappingURL=sqlite.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite.module.js","sourceRoot":"","sources":["../../src/db/sqlite.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,6CAAgD;AAChD,2CAA6D;AAC7D,yBAAyB;AACzB,6BAA6B;AAC7B,yFAA8E;AAC9E,8DAAoD;AACpD,iFAAsE;AACtE,8FAAmF;AACnF,yEAA8D;AAC9D,gFAAqE;AACrE,sFAA2E;AAC3E,+FAAoF;AACpF,yFAA6E;AAC7E,2DAAiD;AACjD,oFAAwE;AACxE,gFAAqE;AACrE,8EAAmE;AACnE,wFAA6E;AAC7E,kFAAuE;AACvE,0FAA+E;AAC/E,mEAAwD;AACxD,yEAAoE;AAEpE,MAAM,IAAI,GAAG,GAAG,EAAE,CAChB,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC;AAoD9E,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,oCAAY;uBAAZ,YAAY;IAzCxB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,YAAY,CAAC;gBACzB,OAAO,EAAE,CAAC,qBAAY,CAAC;gBACvB,MAAM,EAAE,CAAC,sBAAa,CAAC;gBACvB,UAAU,EAAE,CAAC,MAAqB,EAAE,EAAE;oBACpC,MAAM,MAAM,GACV,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;wBACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;oBACtD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBACxD,OAAO;wBACL,IAAI,EAAE,gBAAyB;wBAC/B,QAAQ,EAAE,MAAM;wBAChB,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,KAAK,OAAO;wBACjE,QAAQ,EAAE;4BACR,uCAAc;4BACd,wBAAO;4BACP,uCAAc;4BACd,iDAAmB;4BACnB,iCAAW;4BACX,mCAAY;4BACZ,uCAAc;4BACd,6CAAiB;4BACjB,wCAAc;4BACd,sBAAM;4BACN,4CAAgB;4BAChB,mCAAY;4BACZ,2BAAQ;4BACR,qCAAa;4BACb,+BAAU;4BACV,uCAAc;4BACd,qCAAa;yBACd;qBACF,CAAC;gBACJ,CAAC;aACF,CAAC;YACF,uBAAa,CAAC,UAAU,CAAC,CAAC,qCAAa,CAAC,CAAC;SAC1C;QACD,SAAS,EAAE,CAAC,iDAAsB,CAAC;QACnC,OAAO,EAAE,CAAC,iDAAsB,CAAC;KAClC,CAAC;GACW,YAAY,CAAG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { OnModuleInit } from '@nestjs/common';
|
|
2
|
+
import { type UsageSink, type LogSink } from '@chromepilot/logger-kit';
|
|
3
|
+
export declare class DevopsSinkInit implements OnModuleInit {
|
|
4
|
+
private readonly logger;
|
|
5
|
+
usage: UsageSink | null;
|
|
6
|
+
log: LogSink | null;
|
|
7
|
+
installId: string | null;
|
|
8
|
+
onModuleInit(): Promise<void>;
|
|
9
|
+
private loadOrRegister;
|
|
10
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var DevopsSinkInit_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.DevopsSinkInit = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const fs_1 = require("fs");
|
|
13
|
+
const os_1 = require("os");
|
|
14
|
+
const path_1 = require("path");
|
|
15
|
+
const logger_kit_1 = require("@chromepilot/logger-kit");
|
|
16
|
+
const INSTALL_FILE = (0, path_1.join)((0, os_1.homedir)(), '.config', 'dev-ops', 'hunter-mate.json');
|
|
17
|
+
let DevopsSinkInit = DevopsSinkInit_1 = class DevopsSinkInit {
|
|
18
|
+
logger = new common_1.Logger(DevopsSinkInit_1.name);
|
|
19
|
+
usage = null;
|
|
20
|
+
log = null;
|
|
21
|
+
installId = null;
|
|
22
|
+
async onModuleInit() {
|
|
23
|
+
const enabled = process.env.HUNTER_MATE_DEVOPS_ENABLED === 'true';
|
|
24
|
+
if (!enabled)
|
|
25
|
+
return;
|
|
26
|
+
const endpoint = process.env.HUNTER_MATE_DEVOPS_ENDPOINT || 'https://dev-ops.hiredchina.com';
|
|
27
|
+
const apiKey = process.env.HUNTER_MATE_DEVOPS_API_KEY || process.env.AGENT_TELEMETRY_API_KEY || '';
|
|
28
|
+
if (!apiKey) {
|
|
29
|
+
this.logger.warn('HUNTER_MATE_DEVOPS_ENABLED=true but no API key; skip');
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
this.installId = await this.loadOrRegister(endpoint, apiKey);
|
|
33
|
+
if (!this.installId)
|
|
34
|
+
return;
|
|
35
|
+
this.usage = (0, logger_kit_1.createUsageSink)({
|
|
36
|
+
endpoint,
|
|
37
|
+
product: 'hunter-mate',
|
|
38
|
+
apiKey,
|
|
39
|
+
installId: this.installId,
|
|
40
|
+
});
|
|
41
|
+
this.log = (0, logger_kit_1.createLogSink)({
|
|
42
|
+
endpoint,
|
|
43
|
+
product: 'hunter-mate',
|
|
44
|
+
apiKey,
|
|
45
|
+
installId: this.installId,
|
|
46
|
+
level: 'info',
|
|
47
|
+
});
|
|
48
|
+
this.usage.capture({ feature: 'server', event: 'boot.success' });
|
|
49
|
+
this.log.log({ level: 'info', message: 'devops sinks ready', context: { installId: this.installId } });
|
|
50
|
+
this.logger.log(`devops-sink init: installId=${this.installId}`);
|
|
51
|
+
}
|
|
52
|
+
async loadOrRegister(endpoint, apiKey) {
|
|
53
|
+
try {
|
|
54
|
+
const raw = await fs_1.promises.readFile(INSTALL_FILE, 'utf8');
|
|
55
|
+
const m = /"install_id"\s*:\s*"([^"]+)"/.exec(raw);
|
|
56
|
+
if (m)
|
|
57
|
+
return m[1];
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
}
|
|
61
|
+
try {
|
|
62
|
+
const machineId = process.env.HOSTNAME || (0, os_1.hostname)() || 'unknown';
|
|
63
|
+
const user = process.env.USER || (0, os_1.userInfo)().username || 'unknown';
|
|
64
|
+
const res = await fetch(`${endpoint}/v1/register`, {
|
|
65
|
+
method: 'POST',
|
|
66
|
+
headers: { 'Content-Type': 'application/json' },
|
|
67
|
+
body: JSON.stringify({
|
|
68
|
+
product: 'hunter-mate',
|
|
69
|
+
machine_id: machineId,
|
|
70
|
+
hostname: machineId,
|
|
71
|
+
version: process.env.npm_package_version || 'unknown',
|
|
72
|
+
user,
|
|
73
|
+
}),
|
|
74
|
+
});
|
|
75
|
+
if (!res.ok) {
|
|
76
|
+
this.logger.warn(`register failed: http=${res.status}`);
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
const data = (await res.json());
|
|
80
|
+
if (!data.install_id)
|
|
81
|
+
return null;
|
|
82
|
+
await fs_1.promises.mkdir((0, path_1.join)((0, os_1.homedir)(), '.config', 'dev-ops'), { recursive: true });
|
|
83
|
+
await fs_1.promises.writeFile(INSTALL_FILE, JSON.stringify({ install_id: data.install_id, product: 'hunter-mate', registered_at: new Date().toISOString() }, null, 2), { mode: 0o600 });
|
|
84
|
+
return data.install_id;
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
this.logger.warn(`register error: ${err instanceof Error ? err.message : String(err)}`);
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
exports.DevopsSinkInit = DevopsSinkInit;
|
|
93
|
+
exports.DevopsSinkInit = DevopsSinkInit = DevopsSinkInit_1 = __decorate([
|
|
94
|
+
(0, common_1.Injectable)()
|
|
95
|
+
], DevopsSinkInit);
|
|
96
|
+
//# sourceMappingURL=devops-sink-init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devops-sink-init.js","sourceRoot":"","sources":["../../src/devops/devops-sink-init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const os_1 = require("os");
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
const devops_sink_init_1 = require("./devops-sink-init");
|
|
8
|
+
(0, vitest_1.describe)('DevopsSinkInit', () => {
|
|
9
|
+
let originalEnv;
|
|
10
|
+
const INSTALL_FILE = (0, path_1.join)((0, os_1.homedir)(), '.config', 'dev-ops', 'hunter-mate.json');
|
|
11
|
+
(0, vitest_1.beforeEach)(async () => {
|
|
12
|
+
originalEnv = { ...process.env };
|
|
13
|
+
try {
|
|
14
|
+
await fs_1.promises.rm(INSTALL_FILE, { force: true });
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
(0, vitest_1.it)('默认 disabled:不调 register,usage/log 为 null', async () => {
|
|
20
|
+
delete process.env.HUNTER_MATE_DEVOPS_ENABLED;
|
|
21
|
+
const init = new devops_sink_init_1.DevopsSinkInit();
|
|
22
|
+
await init.onModuleInit();
|
|
23
|
+
(0, vitest_1.expect)(init.usage).toBeNull();
|
|
24
|
+
(0, vitest_1.expect)(init.log).toBeNull();
|
|
25
|
+
(0, vitest_1.expect)(init.installId).toBeNull();
|
|
26
|
+
});
|
|
27
|
+
(0, vitest_1.it)('enabled 但缺 API key:静默跳过', async () => {
|
|
28
|
+
process.env.HUNTER_MATE_DEVOPS_ENABLED = 'true';
|
|
29
|
+
delete process.env.HUNTER_MATE_DEVOPS_API_KEY;
|
|
30
|
+
delete process.env.AGENT_TELEMETRY_API_KEY;
|
|
31
|
+
const init = new devops_sink_init_1.DevopsSinkInit();
|
|
32
|
+
await init.onModuleInit();
|
|
33
|
+
(0, vitest_1.expect)(init.installId).toBeNull();
|
|
34
|
+
});
|
|
35
|
+
(0, vitest_1.it)('enabled=true 触发 register 路径', async () => {
|
|
36
|
+
process.env.HUNTER_MATE_DEVOPS_ENABLED = 'true';
|
|
37
|
+
process.env.HUNTER_MATE_DEVOPS_ENDPOINT = 'https://dev-ops.example.com';
|
|
38
|
+
process.env.HUNTER_MATE_DEVOPS_API_KEY = 'k1';
|
|
39
|
+
const originalFetch = globalThis.fetch;
|
|
40
|
+
globalThis.fetch = vitest_1.vi.fn(async () => new Response(JSON.stringify({ install_id: 'uuid-1' }), { status: 200 }));
|
|
41
|
+
try {
|
|
42
|
+
const init = new devops_sink_init_1.DevopsSinkInit();
|
|
43
|
+
await init.onModuleInit();
|
|
44
|
+
(0, vitest_1.expect)(globalThis.fetch).toHaveBeenCalledTimes(1);
|
|
45
|
+
const [url, init2] = globalThis.fetch.mock.calls[0];
|
|
46
|
+
(0, vitest_1.expect)(url).toBe('https://dev-ops.example.com/v1/register');
|
|
47
|
+
const body = JSON.parse(init2.body);
|
|
48
|
+
(0, vitest_1.expect)(body.product).toBe('hunter-mate');
|
|
49
|
+
}
|
|
50
|
+
finally {
|
|
51
|
+
globalThis.fetch = originalFetch;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
(0, vitest_1.it)('register 失败(http 非 200)→ installId 仍 null', async () => {
|
|
55
|
+
process.env.HUNTER_MATE_DEVOPS_ENABLED = 'true';
|
|
56
|
+
process.env.HUNTER_MATE_DEVOPS_ENDPOINT = 'https://dev-ops.example.com';
|
|
57
|
+
process.env.HUNTER_MATE_DEVOPS_API_KEY = 'k1';
|
|
58
|
+
const originalFetch = globalThis.fetch;
|
|
59
|
+
globalThis.fetch = vitest_1.vi.fn(async () => new Response('bad', { status: 500 }));
|
|
60
|
+
try {
|
|
61
|
+
const init = new devops_sink_init_1.DevopsSinkInit();
|
|
62
|
+
await init.onModuleInit();
|
|
63
|
+
(0, vitest_1.expect)(init.installId).toBeNull();
|
|
64
|
+
(0, vitest_1.expect)(init.usage).toBeNull();
|
|
65
|
+
}
|
|
66
|
+
finally {
|
|
67
|
+
globalThis.fetch = originalFetch;
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=devops-sink-init.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devops-sink-init.spec.js","sourceRoot":"","sources":["../../src/devops/devops-sink-init.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.DevopsSinkModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const devops_sink_init_1 = require("./devops-sink-init");
|
|
12
|
+
let DevopsSinkModule = class DevopsSinkModule {
|
|
13
|
+
};
|
|
14
|
+
exports.DevopsSinkModule = DevopsSinkModule;
|
|
15
|
+
exports.DevopsSinkModule = DevopsSinkModule = __decorate([
|
|
16
|
+
(0, common_1.Global)(),
|
|
17
|
+
(0, common_1.Module)({
|
|
18
|
+
providers: [devops_sink_init_1.DevopsSinkInit],
|
|
19
|
+
exports: [devops_sink_init_1.DevopsSinkInit],
|
|
20
|
+
})
|
|
21
|
+
], DevopsSinkModule);
|
|
22
|
+
//# sourceMappingURL=devops-sink.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devops-sink.module.js","sourceRoot":"","sources":["../../src/devops/devops-sink.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAChD,yDAAoD;AAgB7C,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAAG,CAAA;AAAnB,4CAAgB;2BAAhB,gBAAgB;IAL5B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,iCAAc,CAAC;QAC3B,OAAO,EAAE,CAAC,iCAAc,CAAC;KAC1B,CAAC;GACW,gBAAgB,CAAG"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { ExtensionControlService } from './extension-control.service';
|
|
2
|
+
import { ControlCommandName } from '@hunter-mate/shared';
|
|
3
|
+
export declare class ExtensionControlController {
|
|
4
|
+
private readonly service;
|
|
5
|
+
constructor(service: ExtensionControlService);
|
|
6
|
+
list(): {
|
|
7
|
+
extensionId: string;
|
|
8
|
+
userId: string | undefined;
|
|
9
|
+
version: string;
|
|
10
|
+
capabilities: string[];
|
|
11
|
+
connectedAt: number;
|
|
12
|
+
readyState: 0 | 2 | 1 | 3;
|
|
13
|
+
}[];
|
|
14
|
+
control(body: {
|
|
15
|
+
command: ControlCommandName;
|
|
16
|
+
params?: Record<string, unknown>;
|
|
17
|
+
timeoutMs?: number;
|
|
18
|
+
extensionId?: string;
|
|
19
|
+
sessionId?: string;
|
|
20
|
+
taskId?: string;
|
|
21
|
+
}): Promise<import("@hunter-mate/shared").ControlResponse>;
|
|
22
|
+
goto(body: {
|
|
23
|
+
url: string;
|
|
24
|
+
waitUntil?: string;
|
|
25
|
+
extensionId?: string;
|
|
26
|
+
timeoutMs?: number;
|
|
27
|
+
sessionId?: string;
|
|
28
|
+
taskId?: string;
|
|
29
|
+
}): Promise<import("@hunter-mate/shared").ControlResponse>;
|
|
30
|
+
screenshot(body: {
|
|
31
|
+
fullPage?: boolean;
|
|
32
|
+
selector?: string;
|
|
33
|
+
format?: 'png' | 'jpeg';
|
|
34
|
+
extensionId?: string;
|
|
35
|
+
timeoutMs?: number;
|
|
36
|
+
}): Promise<import("@hunter-mate/shared").ControlResponse>;
|
|
37
|
+
evalJs(body: {
|
|
38
|
+
expression: string;
|
|
39
|
+
extensionId?: string;
|
|
40
|
+
timeoutMs?: number;
|
|
41
|
+
}): Promise<import("@hunter-mate/shared").ControlResponse>;
|
|
42
|
+
linkedinSearch(body: {
|
|
43
|
+
keywords: string;
|
|
44
|
+
filters?: Record<string, unknown>;
|
|
45
|
+
maxPages?: number;
|
|
46
|
+
extensionId?: string;
|
|
47
|
+
timeoutMs?: number;
|
|
48
|
+
}): Promise<import("@hunter-mate/shared").ControlResponse>;
|
|
49
|
+
linkedinExtract(body: {
|
|
50
|
+
scope?: 'card' | 'profile' | 'page';
|
|
51
|
+
extensionId?: string;
|
|
52
|
+
timeoutMs?: number;
|
|
53
|
+
}): Promise<import("@hunter-mate/shared").ControlResponse>;
|
|
54
|
+
linkedinInvite(body: {
|
|
55
|
+
profileUrl: string;
|
|
56
|
+
message?: string;
|
|
57
|
+
withNote?: boolean;
|
|
58
|
+
extensionId?: string;
|
|
59
|
+
timeoutMs?: number;
|
|
60
|
+
}): Promise<import("@hunter-mate/shared").ControlResponse>;
|
|
61
|
+
resumeExtract(body: {
|
|
62
|
+
url?: string;
|
|
63
|
+
source?: string;
|
|
64
|
+
extensionId?: string;
|
|
65
|
+
timeoutMs?: number;
|
|
66
|
+
}): Promise<import("@hunter-mate/shared").ControlResponse>;
|
|
67
|
+
}
|