@ttctl/cli 0.0.0 → 0.1.0-rc.2
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 +44 -9
- package/dist/commands/applications/index.d.ts +21 -0
- package/dist/commands/applications/index.d.ts.map +1 -0
- package/dist/commands/applications/index.js +87 -0
- package/dist/commands/applications/index.js.map +1 -0
- package/dist/commands/applications/list.d.ts +55 -0
- package/dist/commands/applications/list.d.ts.map +1 -0
- package/dist/commands/applications/list.js +106 -0
- package/dist/commands/applications/list.js.map +1 -0
- package/dist/commands/applications/shared.d.ts +14 -0
- package/dist/commands/applications/shared.d.ts.map +1 -0
- package/dist/commands/applications/shared.js +19 -0
- package/dist/commands/applications/shared.js.map +1 -0
- package/dist/commands/applications/show.d.ts +51 -0
- package/dist/commands/applications/show.d.ts.map +1 -0
- package/dist/commands/applications/show.js +154 -0
- package/dist/commands/applications/show.js.map +1 -0
- package/dist/commands/applications/stats.d.ts +42 -0
- package/dist/commands/applications/stats.d.ts.map +1 -0
- package/dist/commands/applications/stats.js +69 -0
- package/dist/commands/applications/stats.js.map +1 -0
- package/dist/commands/auth/index.d.ts +17 -0
- package/dist/commands/auth/index.d.ts.map +1 -0
- package/dist/commands/auth/index.js +69 -0
- package/dist/commands/auth/index.js.map +1 -0
- package/dist/commands/auth/init.d.ts +98 -0
- package/dist/commands/auth/init.d.ts.map +1 -0
- package/dist/commands/auth/init.js +387 -0
- package/dist/commands/auth/init.js.map +1 -0
- package/dist/commands/auth/signin.d.ts +81 -0
- package/dist/commands/auth/signin.d.ts.map +1 -0
- package/dist/commands/auth/signin.js +145 -0
- package/dist/commands/auth/signin.js.map +1 -0
- package/dist/commands/auth/signout.d.ts +133 -0
- package/dist/commands/auth/signout.d.ts.map +1 -0
- package/dist/commands/auth/signout.js +172 -0
- package/dist/commands/auth/signout.js.map +1 -0
- package/dist/commands/auth/status.d.ts +62 -0
- package/dist/commands/auth/status.d.ts.map +1 -0
- package/dist/commands/auth/status.js +98 -0
- package/dist/commands/auth/status.js.map +1 -0
- package/dist/commands/availability/allocated-hours.d.ts +27 -0
- package/dist/commands/availability/allocated-hours.d.ts.map +1 -0
- package/dist/commands/availability/allocated-hours.js +61 -0
- package/dist/commands/availability/allocated-hours.js.map +1 -0
- package/dist/commands/availability/index.d.ts +30 -0
- package/dist/commands/availability/index.d.ts.map +1 -0
- package/dist/commands/availability/index.js +124 -0
- package/dist/commands/availability/index.js.map +1 -0
- package/dist/commands/availability/shared.d.ts +11 -0
- package/dist/commands/availability/shared.d.ts.map +1 -0
- package/dist/commands/availability/shared.js +30 -0
- package/dist/commands/availability/shared.js.map +1 -0
- package/dist/commands/availability/show.d.ts +32 -0
- package/dist/commands/availability/show.d.ts.map +1 -0
- package/dist/commands/availability/show.js +86 -0
- package/dist/commands/availability/show.js.map +1 -0
- package/dist/commands/availability/working-hours.d.ts +53 -0
- package/dist/commands/availability/working-hours.d.ts.map +1 -0
- package/dist/commands/availability/working-hours.js +151 -0
- package/dist/commands/availability/working-hours.js.map +1 -0
- package/dist/commands/contracts/index.d.ts +69 -0
- package/dist/commands/contracts/index.d.ts.map +1 -0
- package/dist/commands/contracts/index.js +198 -0
- package/dist/commands/contracts/index.js.map +1 -0
- package/dist/commands/engagements/breaks.d.ts +81 -0
- package/dist/commands/engagements/breaks.d.ts.map +1 -0
- package/dist/commands/engagements/breaks.js +229 -0
- package/dist/commands/engagements/breaks.js.map +1 -0
- package/dist/commands/engagements/index.d.ts +29 -0
- package/dist/commands/engagements/index.d.ts.map +1 -0
- package/dist/commands/engagements/index.js +172 -0
- package/dist/commands/engagements/index.js.map +1 -0
- package/dist/commands/engagements/list.d.ts +49 -0
- package/dist/commands/engagements/list.d.ts.map +1 -0
- package/dist/commands/engagements/list.js +95 -0
- package/dist/commands/engagements/list.js.map +1 -0
- package/dist/commands/engagements/shared.d.ts +10 -0
- package/dist/commands/engagements/shared.d.ts.map +1 -0
- package/dist/commands/engagements/shared.js +31 -0
- package/dist/commands/engagements/shared.js.map +1 -0
- package/dist/commands/engagements/show.d.ts +19 -0
- package/dist/commands/engagements/show.d.ts.map +1 -0
- package/dist/commands/engagements/show.js +150 -0
- package/dist/commands/engagements/show.js.map +1 -0
- package/dist/commands/engagements/stats.d.ts +24 -0
- package/dist/commands/engagements/stats.d.ts.map +1 -0
- package/dist/commands/engagements/stats.js +51 -0
- package/dist/commands/engagements/stats.js.map +1 -0
- package/dist/commands/jobs/index.d.ts +49 -0
- package/dist/commands/jobs/index.d.ts.map +1 -0
- package/dist/commands/jobs/index.js +304 -0
- package/dist/commands/jobs/index.js.map +1 -0
- package/dist/commands/jobs/interest.d.ts +65 -0
- package/dist/commands/jobs/interest.d.ts.map +1 -0
- package/dist/commands/jobs/interest.js +172 -0
- package/dist/commands/jobs/interest.js.map +1 -0
- package/dist/commands/jobs/list.d.ts +81 -0
- package/dist/commands/jobs/list.d.ts.map +1 -0
- package/dist/commands/jobs/list.js +157 -0
- package/dist/commands/jobs/list.js.map +1 -0
- package/dist/commands/jobs/search.d.ts +71 -0
- package/dist/commands/jobs/search.d.ts.map +1 -0
- package/dist/commands/jobs/search.js +163 -0
- package/dist/commands/jobs/search.js.map +1 -0
- package/dist/commands/jobs/shared.d.ts +79 -0
- package/dist/commands/jobs/shared.d.ts.map +1 -0
- package/dist/commands/jobs/shared.js +133 -0
- package/dist/commands/jobs/shared.js.map +1 -0
- package/dist/commands/jobs/show.d.ts +20 -0
- package/dist/commands/jobs/show.d.ts.map +1 -0
- package/dist/commands/jobs/show.js +135 -0
- package/dist/commands/jobs/show.js.map +1 -0
- package/dist/commands/payments/index.d.ts +34 -0
- package/dist/commands/payments/index.d.ts.map +1 -0
- package/dist/commands/payments/index.js +160 -0
- package/dist/commands/payments/index.js.map +1 -0
- package/dist/commands/payments/methods.d.ts +17 -0
- package/dist/commands/payments/methods.d.ts.map +1 -0
- package/dist/commands/payments/methods.js +79 -0
- package/dist/commands/payments/methods.js.map +1 -0
- package/dist/commands/payments/payouts.d.ts +44 -0
- package/dist/commands/payments/payouts.d.ts.map +1 -0
- package/dist/commands/payments/payouts.js +147 -0
- package/dist/commands/payments/payouts.js.map +1 -0
- package/dist/commands/payments/rate.d.ts +48 -0
- package/dist/commands/payments/rate.d.ts.map +1 -0
- package/dist/commands/payments/rate.js +229 -0
- package/dist/commands/payments/rate.js.map +1 -0
- package/dist/commands/payments/shared.d.ts +10 -0
- package/dist/commands/payments/shared.d.ts.map +1 -0
- package/dist/commands/payments/shared.js +27 -0
- package/dist/commands/payments/shared.js.map +1 -0
- package/dist/commands/profile/basic/index.d.ts +18 -0
- package/dist/commands/profile/basic/index.d.ts.map +1 -0
- package/dist/commands/profile/basic/index.js +79 -0
- package/dist/commands/profile/basic/index.js.map +1 -0
- package/dist/commands/profile/basic/photo-show.d.ts +28 -0
- package/dist/commands/profile/basic/photo-show.d.ts.map +1 -0
- package/dist/commands/profile/basic/photo-show.js +112 -0
- package/dist/commands/profile/basic/photo-show.js.map +1 -0
- package/dist/commands/profile/basic/photo-upload.d.ts +10 -0
- package/dist/commands/profile/basic/photo-upload.d.ts.map +1 -0
- package/dist/commands/profile/basic/photo-upload.js +61 -0
- package/dist/commands/profile/basic/photo-upload.js.map +1 -0
- package/dist/commands/profile/basic/set.d.ts +54 -0
- package/dist/commands/profile/basic/set.d.ts.map +1 -0
- package/dist/commands/profile/basic/set.js +174 -0
- package/dist/commands/profile/basic/set.js.map +1 -0
- package/dist/commands/profile/basic/show.d.ts +95 -0
- package/dist/commands/profile/basic/show.d.ts.map +1 -0
- package/dist/commands/profile/basic/show.js +310 -0
- package/dist/commands/profile/basic/show.js.map +1 -0
- package/dist/commands/profile/certifications/index.d.ts +40 -0
- package/dist/commands/profile/certifications/index.d.ts.map +1 -0
- package/dist/commands/profile/certifications/index.js +350 -0
- package/dist/commands/profile/certifications/index.js.map +1 -0
- package/dist/commands/profile/education/index.d.ts +37 -0
- package/dist/commands/profile/education/index.d.ts.map +1 -0
- package/dist/commands/profile/education/index.js +331 -0
- package/dist/commands/profile/education/index.js.map +1 -0
- package/dist/commands/profile/employment/index.d.ts +49 -0
- package/dist/commands/profile/employment/index.d.ts.map +1 -0
- package/dist/commands/profile/employment/index.js +425 -0
- package/dist/commands/profile/employment/index.js.map +1 -0
- package/dist/commands/profile/external/_shared.d.ts +35 -0
- package/dist/commands/profile/external/_shared.d.ts.map +1 -0
- package/dist/commands/profile/external/_shared.js +59 -0
- package/dist/commands/profile/external/_shared.js.map +1 -0
- package/dist/commands/profile/external/advanced-wizard-show.d.ts +15 -0
- package/dist/commands/profile/external/advanced-wizard-show.d.ts.map +1 -0
- package/dist/commands/profile/external/advanced-wizard-show.js +82 -0
- package/dist/commands/profile/external/advanced-wizard-show.js.map +1 -0
- package/dist/commands/profile/external/custom-requirements-set.d.ts +32 -0
- package/dist/commands/profile/external/custom-requirements-set.d.ts.map +1 -0
- package/dist/commands/profile/external/custom-requirements-set.js +116 -0
- package/dist/commands/profile/external/custom-requirements-set.js.map +1 -0
- package/dist/commands/profile/external/custom-requirements-show.d.ts +16 -0
- package/dist/commands/profile/external/custom-requirements-show.d.ts.map +1 -0
- package/dist/commands/profile/external/custom-requirements-show.js +84 -0
- package/dist/commands/profile/external/custom-requirements-show.js.map +1 -0
- package/dist/commands/profile/external/index.d.ts +21 -0
- package/dist/commands/profile/external/index.d.ts.map +1 -0
- package/dist/commands/profile/external/index.js +113 -0
- package/dist/commands/profile/external/index.js.map +1 -0
- package/dist/commands/profile/external/readiness.d.ts +15 -0
- package/dist/commands/profile/external/readiness.d.ts.map +1 -0
- package/dist/commands/profile/external/readiness.js +104 -0
- package/dist/commands/profile/external/readiness.js.map +1 -0
- package/dist/commands/profile/external/recommendations.d.ts +17 -0
- package/dist/commands/profile/external/recommendations.d.ts.map +1 -0
- package/dist/commands/profile/external/recommendations.js +97 -0
- package/dist/commands/profile/external/recommendations.js.map +1 -0
- package/dist/commands/profile/external/show.d.ts +22 -0
- package/dist/commands/profile/external/show.d.ts.map +1 -0
- package/dist/commands/profile/external/show.js +83 -0
- package/dist/commands/profile/external/show.js.map +1 -0
- package/dist/commands/profile/external/update.d.ts +37 -0
- package/dist/commands/profile/external/update.d.ts.map +1 -0
- package/dist/commands/profile/external/update.js +125 -0
- package/dist/commands/profile/external/update.js.map +1 -0
- package/dist/commands/profile/index.d.ts +16 -0
- package/dist/commands/profile/index.d.ts.map +1 -0
- package/dist/commands/profile/index.js +81 -0
- package/dist/commands/profile/index.js.map +1 -0
- package/dist/commands/profile/industries/index.d.ts +43 -0
- package/dist/commands/profile/industries/index.d.ts.map +1 -0
- package/dist/commands/profile/industries/index.js +258 -0
- package/dist/commands/profile/industries/index.js.map +1 -0
- package/dist/commands/profile/portfolio/add.d.ts +43 -0
- package/dist/commands/profile/portfolio/add.d.ts.map +1 -0
- package/dist/commands/profile/portfolio/add.js +181 -0
- package/dist/commands/profile/portfolio/add.js.map +1 -0
- package/dist/commands/profile/portfolio/highlight.d.ts +11 -0
- package/dist/commands/profile/portfolio/highlight.d.ts.map +1 -0
- package/dist/commands/profile/portfolio/highlight.js +31 -0
- package/dist/commands/profile/portfolio/highlight.js.map +1 -0
- package/dist/commands/profile/portfolio/index.d.ts +16 -0
- package/dist/commands/profile/portfolio/index.d.ts.map +1 -0
- package/dist/commands/profile/portfolio/index.js +121 -0
- package/dist/commands/profile/portfolio/index.js.map +1 -0
- package/dist/commands/profile/portfolio/list.d.ts +83 -0
- package/dist/commands/profile/portfolio/list.d.ts.map +1 -0
- package/dist/commands/profile/portfolio/list.js +189 -0
- package/dist/commands/profile/portfolio/list.js.map +1 -0
- package/dist/commands/profile/portfolio/remove.d.ts +9 -0
- package/dist/commands/profile/portfolio/remove.d.ts.map +1 -0
- package/dist/commands/profile/portfolio/remove.js +24 -0
- package/dist/commands/profile/portfolio/remove.js.map +1 -0
- package/dist/commands/profile/portfolio/reorder.d.ts +17 -0
- package/dist/commands/profile/portfolio/reorder.d.ts.map +1 -0
- package/dist/commands/profile/portfolio/reorder.js +135 -0
- package/dist/commands/profile/portfolio/reorder.js.map +1 -0
- package/dist/commands/profile/portfolio/shared.d.ts +8 -0
- package/dist/commands/profile/portfolio/shared.d.ts.map +1 -0
- package/dist/commands/profile/portfolio/shared.js +10 -0
- package/dist/commands/profile/portfolio/shared.js.map +1 -0
- package/dist/commands/profile/portfolio/update.d.ts +18 -0
- package/dist/commands/profile/portfolio/update.d.ts.map +1 -0
- package/dist/commands/profile/portfolio/update.js +77 -0
- package/dist/commands/profile/portfolio/update.js.map +1 -0
- package/dist/commands/profile/portfolio/upload.d.ts +8 -0
- package/dist/commands/profile/portfolio/upload.d.ts.map +1 -0
- package/dist/commands/profile/portfolio/upload.js +131 -0
- package/dist/commands/profile/portfolio/upload.js.map +1 -0
- package/dist/commands/profile/resume/cancel-upload.d.ts +9 -0
- package/dist/commands/profile/resume/cancel-upload.d.ts.map +1 -0
- package/dist/commands/profile/resume/cancel-upload.js +30 -0
- package/dist/commands/profile/resume/cancel-upload.js.map +1 -0
- package/dist/commands/profile/resume/index.d.ts +15 -0
- package/dist/commands/profile/resume/index.d.ts.map +1 -0
- package/dist/commands/profile/resume/index.js +42 -0
- package/dist/commands/profile/resume/index.js.map +1 -0
- package/dist/commands/profile/resume/upload.d.ts +16 -0
- package/dist/commands/profile/resume/upload.d.ts.map +1 -0
- package/dist/commands/profile/resume/upload.js +65 -0
- package/dist/commands/profile/resume/upload.js.map +1 -0
- package/dist/commands/profile/reviews/_shared.d.ts +9 -0
- package/dist/commands/profile/reviews/_shared.d.ts.map +1 -0
- package/dist/commands/profile/reviews/_shared.js +15 -0
- package/dist/commands/profile/reviews/_shared.js.map +1 -0
- package/dist/commands/profile/reviews/approve-item.d.ts +30 -0
- package/dist/commands/profile/reviews/approve-item.d.ts.map +1 -0
- package/dist/commands/profile/reviews/approve-item.js +82 -0
- package/dist/commands/profile/reviews/approve-item.js.map +1 -0
- package/dist/commands/profile/reviews/approve-section.d.ts +15 -0
- package/dist/commands/profile/reviews/approve-section.d.ts.map +1 -0
- package/dist/commands/profile/reviews/approve-section.js +67 -0
- package/dist/commands/profile/reviews/approve-section.js.map +1 -0
- package/dist/commands/profile/reviews/index.d.ts +19 -0
- package/dist/commands/profile/reviews/index.d.ts.map +1 -0
- package/dist/commands/profile/reviews/index.js +71 -0
- package/dist/commands/profile/reviews/index.js.map +1 -0
- package/dist/commands/profile/reviews/list.d.ts +17 -0
- package/dist/commands/profile/reviews/list.d.ts.map +1 -0
- package/dist/commands/profile/reviews/list.js +96 -0
- package/dist/commands/profile/reviews/list.js.map +1 -0
- package/dist/commands/profile/reviews/submit-for-review.d.ts +16 -0
- package/dist/commands/profile/reviews/submit-for-review.d.ts.map +1 -0
- package/dist/commands/profile/reviews/submit-for-review.js +65 -0
- package/dist/commands/profile/reviews/submit-for-review.js.map +1 -0
- package/dist/commands/profile/shared.d.ts +46 -0
- package/dist/commands/profile/shared.d.ts.map +1 -0
- package/dist/commands/profile/shared.js +111 -0
- package/dist/commands/profile/shared.js.map +1 -0
- package/dist/commands/profile/skills/index.d.ts +29 -0
- package/dist/commands/profile/skills/index.d.ts.map +1 -0
- package/dist/commands/profile/skills/index.js +475 -0
- package/dist/commands/profile/skills/index.js.map +1 -0
- package/dist/commands/profile/visas/add.d.ts +19 -0
- package/dist/commands/profile/visas/add.d.ts.map +1 -0
- package/dist/commands/profile/visas/add.js +37 -0
- package/dist/commands/profile/visas/add.js.map +1 -0
- package/dist/commands/profile/visas/index.d.ts +13 -0
- package/dist/commands/profile/visas/index.d.ts.map +1 -0
- package/dist/commands/profile/visas/index.js +69 -0
- package/dist/commands/profile/visas/index.js.map +1 -0
- package/dist/commands/profile/visas/list.d.ts +40 -0
- package/dist/commands/profile/visas/list.d.ts.map +1 -0
- package/dist/commands/profile/visas/list.js +115 -0
- package/dist/commands/profile/visas/list.js.map +1 -0
- package/dist/commands/profile/visas/remove.d.ts +8 -0
- package/dist/commands/profile/visas/remove.d.ts.map +1 -0
- package/dist/commands/profile/visas/remove.js +23 -0
- package/dist/commands/profile/visas/remove.js.map +1 -0
- package/dist/commands/profile/visas/shared.d.ts +11 -0
- package/dist/commands/profile/visas/shared.d.ts.map +1 -0
- package/dist/commands/profile/visas/shared.js +16 -0
- package/dist/commands/profile/visas/shared.js.map +1 -0
- package/dist/commands/profile/visas/update.d.ts +13 -0
- package/dist/commands/profile/visas/update.d.ts.map +1 -0
- package/dist/commands/profile/visas/update.js +44 -0
- package/dist/commands/profile/visas/update.js.map +1 -0
- package/dist/commands/timesheet/index.d.ts +24 -0
- package/dist/commands/timesheet/index.d.ts.map +1 -0
- package/dist/commands/timesheet/index.js +98 -0
- package/dist/commands/timesheet/index.js.map +1 -0
- package/dist/commands/timesheet/list.d.ts +40 -0
- package/dist/commands/timesheet/list.d.ts.map +1 -0
- package/dist/commands/timesheet/list.js +79 -0
- package/dist/commands/timesheet/list.js.map +1 -0
- package/dist/commands/timesheet/shared.d.ts +10 -0
- package/dist/commands/timesheet/shared.d.ts.map +1 -0
- package/dist/commands/timesheet/shared.js +35 -0
- package/dist/commands/timesheet/shared.js.map +1 -0
- package/dist/commands/timesheet/show.d.ts +19 -0
- package/dist/commands/timesheet/show.d.ts.map +1 -0
- package/dist/commands/timesheet/show.js +109 -0
- package/dist/commands/timesheet/show.js.map +1 -0
- package/dist/commands/timesheet/submit.d.ts +50 -0
- package/dist/commands/timesheet/submit.d.ts.map +1 -0
- package/dist/commands/timesheet/submit.js +151 -0
- package/dist/commands/timesheet/submit.js.map +1 -0
- package/dist/crash-handlers.d.ts +67 -0
- package/dist/crash-handlers.d.ts.map +1 -0
- package/dist/crash-handlers.js +78 -0
- package/dist/crash-handlers.js.map +1 -0
- package/dist/errors.d.ts +45 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +57 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/config-context.d.ts +41 -0
- package/dist/lib/config-context.d.ts.map +1 -0
- package/dist/lib/config-context.js +74 -0
- package/dist/lib/config-context.js.map +1 -0
- package/dist/lib/dry-run.d.ts +70 -0
- package/dist/lib/dry-run.d.ts.map +1 -0
- package/dist/lib/dry-run.js +114 -0
- package/dist/lib/dry-run.js.map +1 -0
- package/dist/lib/empty-state-cta.d.ts +63 -0
- package/dist/lib/empty-state-cta.d.ts.map +1 -0
- package/dist/lib/empty-state-cta.js +88 -0
- package/dist/lib/empty-state-cta.js.map +1 -0
- package/dist/lib/envelopes.d.ts +540 -0
- package/dist/lib/envelopes.d.ts.map +1 -0
- package/dist/lib/envelopes.js +598 -0
- package/dist/lib/envelopes.js.map +1 -0
- package/dist/lib/error-routing.d.ts +49 -0
- package/dist/lib/error-routing.d.ts.map +1 -0
- package/dist/lib/error-routing.js +72 -0
- package/dist/lib/error-routing.js.map +1 -0
- package/dist/lib/format-helpers.d.ts +65 -0
- package/dist/lib/format-helpers.d.ts.map +1 -0
- package/dist/lib/format-helpers.js +79 -0
- package/dist/lib/format-helpers.js.map +1 -0
- package/dist/lib/format-overrides.d.ts +81 -0
- package/dist/lib/format-overrides.d.ts.map +1 -0
- package/dist/lib/format-overrides.js +55 -0
- package/dist/lib/format-overrides.js.map +1 -0
- package/dist/lib/freetext.d.ts +83 -0
- package/dist/lib/freetext.d.ts.map +1 -0
- package/dist/lib/freetext.js +182 -0
- package/dist/lib/freetext.js.map +1 -0
- package/dist/lib/kill-switch-hook.d.ts +49 -0
- package/dist/lib/kill-switch-hook.d.ts.map +1 -0
- package/dist/lib/kill-switch-hook.js +34 -0
- package/dist/lib/kill-switch-hook.js.map +1 -0
- package/dist/lib/output.d.ts +173 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +177 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/pagination.d.ts +49 -0
- package/dist/lib/pagination.d.ts.map +1 -0
- package/dist/lib/pagination.js +36 -0
- package/dist/lib/pagination.js.map +1 -0
- package/dist/program.d.ts +80 -0
- package/dist/program.d.ts.map +1 -0
- package/dist/program.js +273 -0
- package/dist/program.js.map +1 -0
- package/package.json +35 -13
- package/index.js +0 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advanced-wizard-show.js","sourceRoot":"","sources":["../../../../src/commands/profile/external/advanced-wizard-show.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { profile } from "@ttctl/core";
|
|
2
|
+
import type { OutputFormat } from "../../../lib/output.js";
|
|
3
|
+
/**
|
|
4
|
+
* Action handler for `ttctl profile external custom-requirements set`.
|
|
5
|
+
*
|
|
6
|
+
* The issue spec described this as multi-paragraph free-text consuming the
|
|
7
|
+
* #70 helper. Empirically (per
|
|
8
|
+
* `research/captures/web/inputs/UpdateCustomRequirementsInput.json`) the
|
|
9
|
+
* underlying `CustomRequirementsInput` is in fact three booleans
|
|
10
|
+
* (`backgroundCheck`, `drugTest`, `timeTrackingTools`), no free-text field
|
|
11
|
+
* exists on the schema. We follow API ground truth: the leaf takes
|
|
12
|
+
* `--background-check / --drug-test / --time-tracking-tools <true|false>`.
|
|
13
|
+
*
|
|
14
|
+
* Caller-omitted booleans default to the current server state (the
|
|
15
|
+
* underlying mutation has no PATCH semantics — every call resubmits ALL
|
|
16
|
+
* three booleans, so the service module pre-fetches and merges).
|
|
17
|
+
*/
|
|
18
|
+
export declare function runProfileExternalCustomRequirementsSet(options: {
|
|
19
|
+
backgroundCheck?: string;
|
|
20
|
+
drugTest?: string;
|
|
21
|
+
timeTrackingTools?: string;
|
|
22
|
+
output: OutputFormat;
|
|
23
|
+
}): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Pretty entity preview for the custom-requirements-set envelope. Renders
|
|
26
|
+
* the post-update boolean trio. The notice (when present) flows through
|
|
27
|
+
* the envelope's `notice` field, NOT this body.
|
|
28
|
+
*
|
|
29
|
+
* Pure — directly unit-testable.
|
|
30
|
+
*/
|
|
31
|
+
export declare function formatSetPrettyEntity(result: profile.external.CustomRequirementsSetResult): string;
|
|
32
|
+
//# sourceMappingURL=custom-requirements-set.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-requirements-set.d.ts","sourceRoot":"","sources":["../../../../src/commands/profile/external/custom-requirements-set.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,OAAO,EAAE,MAAM,aAAa,CAAC;AAKlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAM3D;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,uCAAuC,CAAC,OAAO,EAAE;IACrE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,YAAY,CAAC;CACtB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0DhB;AAmCD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,2BAA2B,GAAG,MAAM,CAOlG"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
2
|
+
// Copyright (C) 2026 Oleksii PELYKH
|
|
3
|
+
import { TtctlError, profile } from "@ttctl/core";
|
|
4
|
+
import { presentTtctlError } from "../../../errors.js";
|
|
5
|
+
import { emitErrorAndExit, emitUpdateSuccess } from "../../../lib/envelopes.js";
|
|
6
|
+
import { loadAuthTokenOrExit, parseBooleanFlag } from "./_shared.js";
|
|
7
|
+
const COMMAND_LABEL = "profile external custom-requirements set";
|
|
8
|
+
const OPERATION = "profile.external.custom-requirements.set";
|
|
9
|
+
/**
|
|
10
|
+
* Action handler for `ttctl profile external custom-requirements set`.
|
|
11
|
+
*
|
|
12
|
+
* The issue spec described this as multi-paragraph free-text consuming the
|
|
13
|
+
* #70 helper. Empirically (per
|
|
14
|
+
* `research/captures/web/inputs/UpdateCustomRequirementsInput.json`) the
|
|
15
|
+
* underlying `CustomRequirementsInput` is in fact three booleans
|
|
16
|
+
* (`backgroundCheck`, `drugTest`, `timeTrackingTools`), no free-text field
|
|
17
|
+
* exists on the schema. We follow API ground truth: the leaf takes
|
|
18
|
+
* `--background-check / --drug-test / --time-tracking-tools <true|false>`.
|
|
19
|
+
*
|
|
20
|
+
* Caller-omitted booleans default to the current server state (the
|
|
21
|
+
* underlying mutation has no PATCH semantics — every call resubmits ALL
|
|
22
|
+
* three booleans, so the service module pre-fetches and merges).
|
|
23
|
+
*/
|
|
24
|
+
export async function runProfileExternalCustomRequirementsSet(options) {
|
|
25
|
+
const changes = {};
|
|
26
|
+
if (options.backgroundCheck !== undefined) {
|
|
27
|
+
changes.backgroundCheck = parseBooleanFlag(COMMAND_LABEL, OPERATION, "background-check", options.backgroundCheck, options.output);
|
|
28
|
+
}
|
|
29
|
+
if (options.drugTest !== undefined) {
|
|
30
|
+
changes.drugTest = parseBooleanFlag(COMMAND_LABEL, OPERATION, "drug-test", options.drugTest, options.output);
|
|
31
|
+
}
|
|
32
|
+
if (options.timeTrackingTools !== undefined) {
|
|
33
|
+
changes.timeTrackingTools = parseBooleanFlag(COMMAND_LABEL, OPERATION, "time-tracking-tools", options.timeTrackingTools, options.output);
|
|
34
|
+
}
|
|
35
|
+
if (Object.keys(changes).length === 0) {
|
|
36
|
+
emitErrorAndExit({
|
|
37
|
+
operation: OPERATION,
|
|
38
|
+
format: options.output,
|
|
39
|
+
errors: [
|
|
40
|
+
{
|
|
41
|
+
code: "VALIDATION_ERROR",
|
|
42
|
+
message: `${COMMAND_LABEL} requires at least one of --background-check, --drug-test, --time-tracking-tools.`,
|
|
43
|
+
hint: "ttctl profile external custom-requirements set --background-check true",
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
prettySummary: `${COMMAND_LABEL} requires at least one of --background-check, --drug-test, --time-tracking-tools.\n` +
|
|
47
|
+
"Example: ttctl profile external custom-requirements set --background-check true",
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
const token = await loadAuthTokenOrExit(COMMAND_LABEL, options.output);
|
|
51
|
+
let result;
|
|
52
|
+
try {
|
|
53
|
+
result = await profile.external.customRequirementsSet(token, changes);
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
handleError(err, options.output);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
emitUpdateSuccess({
|
|
60
|
+
operation: OPERATION,
|
|
61
|
+
format: options.output,
|
|
62
|
+
updated: result,
|
|
63
|
+
prettySummary: "Custom requirements updated.",
|
|
64
|
+
prettyEntity: formatSetPrettyEntity,
|
|
65
|
+
notice: result.notice ?? undefined,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
function handleError(err, format) {
|
|
69
|
+
if (err instanceof TtctlError) {
|
|
70
|
+
if (format === "pretty")
|
|
71
|
+
presentTtctlError(err);
|
|
72
|
+
const errors = [{ code: err.code, message: err.message, hint: err.recovery }];
|
|
73
|
+
emitErrorAndExit({
|
|
74
|
+
operation: OPERATION,
|
|
75
|
+
format,
|
|
76
|
+
errors,
|
|
77
|
+
exitCode: err.code === "CF_403_CLEARANCE" || err.code === "CF_403_PERSISTENT" ? 2 : 1,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
if (err instanceof profile.external.ProfileError) {
|
|
81
|
+
emitErrorAndExit({
|
|
82
|
+
operation: OPERATION,
|
|
83
|
+
format,
|
|
84
|
+
errors: [{ code: err.code, message: err.message }],
|
|
85
|
+
prettySummary: `${COMMAND_LABEL} failed (${err.code}): ${err.message}`,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
89
|
+
emitErrorAndExit({
|
|
90
|
+
operation: OPERATION,
|
|
91
|
+
format,
|
|
92
|
+
errors: [{ code: "INTERNAL_ERROR", message }],
|
|
93
|
+
prettySummary: `${COMMAND_LABEL} failed: ${message}`,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
function renderBoolean(value) {
|
|
97
|
+
if (value === null)
|
|
98
|
+
return "(unset)";
|
|
99
|
+
return value ? "yes" : "no";
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Pretty entity preview for the custom-requirements-set envelope. Renders
|
|
103
|
+
* the post-update boolean trio. The notice (when present) flows through
|
|
104
|
+
* the envelope's `notice` field, NOT this body.
|
|
105
|
+
*
|
|
106
|
+
* Pure — directly unit-testable.
|
|
107
|
+
*/
|
|
108
|
+
export function formatSetPrettyEntity(result) {
|
|
109
|
+
const cr = result.profile.customRequirements;
|
|
110
|
+
return [
|
|
111
|
+
`background-check: ${renderBoolean(cr.backgroundCheck)}`,
|
|
112
|
+
`drug-test: ${renderBoolean(cr.drugTest)}`,
|
|
113
|
+
`time-tracking-tools: ${renderBoolean(cr.timeTrackingTools)}`,
|
|
114
|
+
].join("\n");
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=custom-requirements-set.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-requirements-set.js","sourceRoot":"","sources":["../../../../src/commands/profile/external/custom-requirements-set.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { profile } from "@ttctl/core";
|
|
2
|
+
import type { OutputFormat } from "../../../lib/output.js";
|
|
3
|
+
/**
|
|
4
|
+
* Action handler for `ttctl profile external custom-requirements show`.
|
|
5
|
+
*
|
|
6
|
+
* Prints the three onboarding-readiness toggles (background-check,
|
|
7
|
+
* drug-test, time-tracking-tools). The boolean trio is intentionally
|
|
8
|
+
* NOT free-text despite the issue's language — see the module top-comment
|
|
9
|
+
* in `core/services/profile/external/index.ts` for the spec/API reconciliation.
|
|
10
|
+
*/
|
|
11
|
+
export declare function runProfileExternalCustomRequirementsShow(format: OutputFormat): Promise<void>;
|
|
12
|
+
/** Pure formatter — directly unit-testable. */
|
|
13
|
+
export declare function formatCustomRequirementsText(data: profile.external.CustomRequirements): string;
|
|
14
|
+
/** Pure formatter — directly unit-testable. */
|
|
15
|
+
export declare function formatCustomRequirementsTable(data: profile.external.CustomRequirements): string;
|
|
16
|
+
//# sourceMappingURL=custom-requirements-show.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-requirements-show.d.ts","sourceRoot":"","sources":["../../../../src/commands/profile/external/custom-requirements-show.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,OAAO,EAAE,MAAM,aAAa,CAAC;AAMlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAM3D;;;;;;;GAOG;AACH,wBAAsB,wCAAwC,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAelG;AAmCD,+CAA+C;AAC/C,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,GAAG,MAAM,CAO9F;AAED,+CAA+C;AAC/C,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,GAAG,MAAM,CAO/F"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
2
|
+
// Copyright (C) 2026 Oleksii PELYKH
|
|
3
|
+
import { TtctlError, profile } from "@ttctl/core";
|
|
4
|
+
import { presentTtctlError } from "../../../errors.js";
|
|
5
|
+
import { emitErrorAndExit } from "../../../lib/envelopes.js";
|
|
6
|
+
import { emitResult } from "../../../lib/output.js";
|
|
7
|
+
import { loadAuthTokenOrExit } from "./_shared.js";
|
|
8
|
+
const COMMAND_LABEL = "profile external custom-requirements show";
|
|
9
|
+
const OPERATION = "profile.external.custom-requirements.show";
|
|
10
|
+
/**
|
|
11
|
+
* Action handler for `ttctl profile external custom-requirements show`.
|
|
12
|
+
*
|
|
13
|
+
* Prints the three onboarding-readiness toggles (background-check,
|
|
14
|
+
* drug-test, time-tracking-tools). The boolean trio is intentionally
|
|
15
|
+
* NOT free-text despite the issue's language — see the module top-comment
|
|
16
|
+
* in `core/services/profile/external/index.ts` for the spec/API reconciliation.
|
|
17
|
+
*/
|
|
18
|
+
export async function runProfileExternalCustomRequirementsShow(format) {
|
|
19
|
+
const token = await loadAuthTokenOrExit(COMMAND_LABEL, format);
|
|
20
|
+
let result;
|
|
21
|
+
try {
|
|
22
|
+
result = await profile.external.customRequirementsShow(token);
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
handleError(err, format);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
emitResult(result, format, {
|
|
29
|
+
pretty: formatCustomRequirementsText,
|
|
30
|
+
table: formatCustomRequirementsTable,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
function handleError(err, format) {
|
|
34
|
+
if (err instanceof TtctlError) {
|
|
35
|
+
if (format === "pretty")
|
|
36
|
+
presentTtctlError(err);
|
|
37
|
+
const errors = [{ code: err.code, message: err.message, hint: err.recovery }];
|
|
38
|
+
emitErrorAndExit({
|
|
39
|
+
operation: OPERATION,
|
|
40
|
+
format,
|
|
41
|
+
errors,
|
|
42
|
+
exitCode: err.code === "CF_403_CLEARANCE" || err.code === "CF_403_PERSISTENT" ? 2 : 1,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
if (err instanceof profile.external.ProfileError) {
|
|
46
|
+
emitErrorAndExit({
|
|
47
|
+
operation: OPERATION,
|
|
48
|
+
format,
|
|
49
|
+
errors: [{ code: err.code, message: err.message }],
|
|
50
|
+
prettySummary: `${COMMAND_LABEL} failed (${err.code}): ${err.message}`,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
54
|
+
emitErrorAndExit({
|
|
55
|
+
operation: OPERATION,
|
|
56
|
+
format,
|
|
57
|
+
errors: [{ code: "INTERNAL_ERROR", message }],
|
|
58
|
+
prettySummary: `${COMMAND_LABEL} failed: ${message}`,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
function renderBoolean(value) {
|
|
62
|
+
if (value === null)
|
|
63
|
+
return "(unset)";
|
|
64
|
+
return value ? "yes" : "no";
|
|
65
|
+
}
|
|
66
|
+
/** Pure formatter — directly unit-testable. */
|
|
67
|
+
export function formatCustomRequirementsText(data) {
|
|
68
|
+
return [
|
|
69
|
+
"Custom requirements:",
|
|
70
|
+
` background-check: ${renderBoolean(data.backgroundCheck)}`,
|
|
71
|
+
` drug-test: ${renderBoolean(data.drugTest)}`,
|
|
72
|
+
` time-tracking-tools: ${renderBoolean(data.timeTrackingTools)}`,
|
|
73
|
+
].join("\n");
|
|
74
|
+
}
|
|
75
|
+
/** Pure formatter — directly unit-testable. */
|
|
76
|
+
export function formatCustomRequirementsTable(data) {
|
|
77
|
+
const rows = [
|
|
78
|
+
["background-check", renderBoolean(data.backgroundCheck)],
|
|
79
|
+
["drug-test", renderBoolean(data.drugTest)],
|
|
80
|
+
["time-tracking-tools", renderBoolean(data.timeTrackingTools)],
|
|
81
|
+
];
|
|
82
|
+
return rows.map(([k, v]) => `${k}\t${v}`).join("\n");
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=custom-requirements-show.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-requirements-show.js","sourceRoot":"","sources":["../../../../src/commands/profile/external/custom-requirements-show.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
/**
|
|
3
|
+
* Build the `ttctl profile external` command tree. The "external" sub-domain
|
|
4
|
+
* bundles operations that the operation catalog clusters under the umbrella
|
|
5
|
+
* names `external profile / advanced profile / wizard`. See
|
|
6
|
+
* `core/services/profile/external/index.ts` for the heterogeneity rationale,
|
|
7
|
+
* the deferred-ops list, and the spec/API divergences this PR documents
|
|
8
|
+
* (notably: the `customRequirementsSet` boolean trio that supersedes the
|
|
9
|
+
* issue's free-text-helper-#70 description).
|
|
10
|
+
*
|
|
11
|
+
* Seven leaves:
|
|
12
|
+
* - show
|
|
13
|
+
* - update
|
|
14
|
+
* - custom-requirements show
|
|
15
|
+
* - custom-requirements set
|
|
16
|
+
* - readiness
|
|
17
|
+
* - recommendations
|
|
18
|
+
* - advanced-wizard show
|
|
19
|
+
*/
|
|
20
|
+
export declare function buildProfileExternalCommand(): Command;
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/profile/external/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAY5C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,2BAA2B,IAAI,OAAO,CA+HrD"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
2
|
+
// Copyright (C) 2026 Oleksii PELYKH
|
|
3
|
+
import { Command, Option } from "commander";
|
|
4
|
+
import { OUTPUT_FORMATS } from "../../../lib/output.js";
|
|
5
|
+
import { runProfileExternalAdvancedWizardShow } from "./advanced-wizard-show.js";
|
|
6
|
+
import { runProfileExternalCustomRequirementsSet } from "./custom-requirements-set.js";
|
|
7
|
+
import { runProfileExternalCustomRequirementsShow } from "./custom-requirements-show.js";
|
|
8
|
+
import { runProfileExternalReadiness } from "./readiness.js";
|
|
9
|
+
import { runProfileExternalRecommendations } from "./recommendations.js";
|
|
10
|
+
import { runProfileExternalShow } from "./show.js";
|
|
11
|
+
import { runProfileExternalUpdate } from "./update.js";
|
|
12
|
+
/**
|
|
13
|
+
* Build the `ttctl profile external` command tree. The "external" sub-domain
|
|
14
|
+
* bundles operations that the operation catalog clusters under the umbrella
|
|
15
|
+
* names `external profile / advanced profile / wizard`. See
|
|
16
|
+
* `core/services/profile/external/index.ts` for the heterogeneity rationale,
|
|
17
|
+
* the deferred-ops list, and the spec/API divergences this PR documents
|
|
18
|
+
* (notably: the `customRequirementsSet` boolean trio that supersedes the
|
|
19
|
+
* issue's free-text-helper-#70 description).
|
|
20
|
+
*
|
|
21
|
+
* Seven leaves:
|
|
22
|
+
* - show
|
|
23
|
+
* - update
|
|
24
|
+
* - custom-requirements show
|
|
25
|
+
* - custom-requirements set
|
|
26
|
+
* - readiness
|
|
27
|
+
* - recommendations
|
|
28
|
+
* - advanced-wizard show
|
|
29
|
+
*/
|
|
30
|
+
export function buildProfileExternalCommand() {
|
|
31
|
+
const external = new Command("external").description("View and update external profile links, custom requirements, readiness, and the advanced-profile wizard");
|
|
32
|
+
external
|
|
33
|
+
.command("show")
|
|
34
|
+
.description("Show the stored external profile URLs (linkedin, github, website, twitter, behance, dribbble)")
|
|
35
|
+
.addOption(new Option("-o, --output <format>", "output format")
|
|
36
|
+
.choices(OUTPUT_FORMATS)
|
|
37
|
+
.default("pretty"))
|
|
38
|
+
.action(async (options) => {
|
|
39
|
+
await runProfileExternalShow(options.output);
|
|
40
|
+
});
|
|
41
|
+
external
|
|
42
|
+
.command("update")
|
|
43
|
+
.description("Update external profile URLs (linkedin, github, website, twitter, behance, dribbble)")
|
|
44
|
+
.option("--linkedin <url>", "LinkedIn profile URL")
|
|
45
|
+
.option("--github <url>", "GitHub profile URL")
|
|
46
|
+
.option("--website <url>", "Personal website URL")
|
|
47
|
+
.option("--twitter <url>", "Twitter / X profile URL")
|
|
48
|
+
.option("--behance <url>", "Behance profile URL")
|
|
49
|
+
.option("--dribbble <url>", "Dribbble profile URL")
|
|
50
|
+
.addOption(new Option("-o, --output <format>", "output format")
|
|
51
|
+
.choices(OUTPUT_FORMATS)
|
|
52
|
+
.default("pretty"))
|
|
53
|
+
.action(async (options) => {
|
|
54
|
+
await runProfileExternalUpdate(options);
|
|
55
|
+
});
|
|
56
|
+
const customRequirements = external
|
|
57
|
+
.command("custom-requirements")
|
|
58
|
+
.description("View and update onboarding-readiness toggles (background check, drug test, time-tracking tools)");
|
|
59
|
+
customRequirements
|
|
60
|
+
.command("show")
|
|
61
|
+
.description("Print the three onboarding-readiness toggles")
|
|
62
|
+
.addOption(new Option("-o, --output <format>", "output format")
|
|
63
|
+
.choices(OUTPUT_FORMATS)
|
|
64
|
+
.default("pretty"))
|
|
65
|
+
.action(async (options) => {
|
|
66
|
+
await runProfileExternalCustomRequirementsShow(options.output);
|
|
67
|
+
});
|
|
68
|
+
customRequirements
|
|
69
|
+
.command("set")
|
|
70
|
+
.description("Toggle onboarding-readiness booleans. " +
|
|
71
|
+
"Note: the underlying API is a three-boolean form (NOT free-text), so this leaf accepts " +
|
|
72
|
+
"--background-check / --drug-test / --time-tracking-tools <true|false>. " +
|
|
73
|
+
"See PR #76 for the spec/API reconciliation.")
|
|
74
|
+
.option("--background-check <bool>", "willing to undergo background check (true|false)")
|
|
75
|
+
.option("--drug-test <bool>", "willing to undergo drug test (true|false)")
|
|
76
|
+
.option("--time-tracking-tools <bool>", "willing to use time-tracking tools (true|false)")
|
|
77
|
+
.addOption(new Option("-o, --output <format>", "output format")
|
|
78
|
+
.choices(OUTPUT_FORMATS)
|
|
79
|
+
.default("pretty"))
|
|
80
|
+
.action(async (options) => {
|
|
81
|
+
await runProfileExternalCustomRequirementsSet(options);
|
|
82
|
+
});
|
|
83
|
+
external
|
|
84
|
+
.command("readiness")
|
|
85
|
+
.description("Show the per-section profile-readiness checklist and the rolled-up submit-available flag")
|
|
86
|
+
.addOption(new Option("-o, --output <format>", "output format")
|
|
87
|
+
.choices(OUTPUT_FORMATS)
|
|
88
|
+
.default("pretty"))
|
|
89
|
+
.action(async (options) => {
|
|
90
|
+
await runProfileExternalReadiness(options.output);
|
|
91
|
+
});
|
|
92
|
+
external
|
|
93
|
+
.command("recommendations")
|
|
94
|
+
.description("List the platform's per-section 'do this next' recommendations")
|
|
95
|
+
.addOption(new Option("-o, --output <format>", "output format")
|
|
96
|
+
.choices(OUTPUT_FORMATS)
|
|
97
|
+
.default("pretty"))
|
|
98
|
+
.action(async (options) => {
|
|
99
|
+
await runProfileExternalRecommendations(options.output);
|
|
100
|
+
});
|
|
101
|
+
const advancedWizard = external.command("advanced-wizard").description("View the advanced-profile-wizard status");
|
|
102
|
+
advancedWizard
|
|
103
|
+
.command("show")
|
|
104
|
+
.description("Show the advanced-profile-wizard status (and travel-visa summary)")
|
|
105
|
+
.addOption(new Option("-o, --output <format>", "output format")
|
|
106
|
+
.choices(OUTPUT_FORMATS)
|
|
107
|
+
.default("pretty"))
|
|
108
|
+
.action(async (options) => {
|
|
109
|
+
await runProfileExternalAdvancedWizardShow(options.output);
|
|
110
|
+
});
|
|
111
|
+
return external;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/profile/external/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { profile } from "@ttctl/core";
|
|
2
|
+
import type { OutputFormat } from "../../../lib/output.js";
|
|
3
|
+
/**
|
|
4
|
+
* Action handler for `ttctl profile external readiness`.
|
|
5
|
+
*
|
|
6
|
+
* Surfaces the per-section profile-readiness booleans plus the rolled-up
|
|
7
|
+
* `submit-available` flag. The user reads this to know which sections still
|
|
8
|
+
* need work before they can click "Submit profile for review".
|
|
9
|
+
*/
|
|
10
|
+
export declare function runProfileExternalReadiness(format: OutputFormat): Promise<void>;
|
|
11
|
+
/** Pure formatter — directly unit-testable. */
|
|
12
|
+
export declare function formatReadinessText(data: profile.external.ProfileReadiness): string;
|
|
13
|
+
/** Pure formatter — directly unit-testable. */
|
|
14
|
+
export declare function formatReadinessTable(data: profile.external.ProfileReadiness): string;
|
|
15
|
+
//# sourceMappingURL=readiness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../../../../src/commands/profile/external/readiness.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,OAAO,EAAE,MAAM,aAAa,CAAC;AAMlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAM3D;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAerF;AA+CD,+CAA+C;AAC/C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,GAAG,MAAM,CAYnF;AAED,+CAA+C;AAC/C,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,GAAG,MAAM,CAYpF"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
2
|
+
// Copyright (C) 2026 Oleksii PELYKH
|
|
3
|
+
import { TtctlError, profile } from "@ttctl/core";
|
|
4
|
+
import { presentTtctlError } from "../../../errors.js";
|
|
5
|
+
import { emitErrorAndExit } from "../../../lib/envelopes.js";
|
|
6
|
+
import { emitResult } from "../../../lib/output.js";
|
|
7
|
+
import { loadAuthTokenOrExit } from "./_shared.js";
|
|
8
|
+
const COMMAND_LABEL = "profile external readiness";
|
|
9
|
+
const OPERATION = "profile.external.readiness";
|
|
10
|
+
/**
|
|
11
|
+
* Action handler for `ttctl profile external readiness`.
|
|
12
|
+
*
|
|
13
|
+
* Surfaces the per-section profile-readiness booleans plus the rolled-up
|
|
14
|
+
* `submit-available` flag. The user reads this to know which sections still
|
|
15
|
+
* need work before they can click "Submit profile for review".
|
|
16
|
+
*/
|
|
17
|
+
export async function runProfileExternalReadiness(format) {
|
|
18
|
+
const token = await loadAuthTokenOrExit(COMMAND_LABEL, format);
|
|
19
|
+
let result;
|
|
20
|
+
try {
|
|
21
|
+
result = await profile.external.readiness(token);
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
handleError(err, format);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
emitResult(result, format, {
|
|
28
|
+
pretty: formatReadinessText,
|
|
29
|
+
table: formatReadinessTable,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
function handleError(err, format) {
|
|
33
|
+
if (err instanceof TtctlError) {
|
|
34
|
+
if (format === "pretty")
|
|
35
|
+
presentTtctlError(err);
|
|
36
|
+
const errors = [{ code: err.code, message: err.message, hint: err.recovery }];
|
|
37
|
+
emitErrorAndExit({
|
|
38
|
+
operation: OPERATION,
|
|
39
|
+
format,
|
|
40
|
+
errors,
|
|
41
|
+
exitCode: err.code === "CF_403_CLEARANCE" || err.code === "CF_403_PERSISTENT" ? 2 : 1,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
if (err instanceof profile.external.ProfileError) {
|
|
45
|
+
emitErrorAndExit({
|
|
46
|
+
operation: OPERATION,
|
|
47
|
+
format,
|
|
48
|
+
errors: [{ code: err.code, message: err.message }],
|
|
49
|
+
prettySummary: `${COMMAND_LABEL} failed (${err.code}): ${err.message}`,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
53
|
+
emitErrorAndExit({
|
|
54
|
+
operation: OPERATION,
|
|
55
|
+
format,
|
|
56
|
+
errors: [{ code: "INTERNAL_ERROR", message }],
|
|
57
|
+
prettySummary: `${COMMAND_LABEL} failed: ${message}`,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
function renderReadinessBoolean(value) {
|
|
61
|
+
if (value === null)
|
|
62
|
+
return "(unset)";
|
|
63
|
+
return value ? "✓" : "✗";
|
|
64
|
+
}
|
|
65
|
+
const READINESS_FIELDS = [
|
|
66
|
+
{ key: "isPhotoResolutionSatisfied", label: "photo-resolution" },
|
|
67
|
+
{ key: "isBasicInfoSatisfied", label: "basic-info" },
|
|
68
|
+
{ key: "isCertificationsSatisfied", label: "certifications" },
|
|
69
|
+
{ key: "isEmploymentsCountSatisfied", label: "employments-count" },
|
|
70
|
+
{ key: "isEmploymentConnectionsSatisfied", label: "employment-connections" },
|
|
71
|
+
{ key: "isSkillValidationsSatisfied", label: "skill-validations" },
|
|
72
|
+
{ key: "isPortfolioItemsCountSatisfied", label: "portfolio-items-count" },
|
|
73
|
+
{ key: "isPortfolioItemConnectionsSatisfied", label: "portfolio-item-connections" },
|
|
74
|
+
{ key: "isWorkingHoursSatisfied", label: "working-hours" },
|
|
75
|
+
];
|
|
76
|
+
/** Pure formatter — directly unit-testable. */
|
|
77
|
+
export function formatReadinessText(data) {
|
|
78
|
+
const lines = [`Profile readiness — submit-available: ${renderReadinessBoolean(data.submitAvailable)}`];
|
|
79
|
+
for (const { key, label } of READINESS_FIELDS) {
|
|
80
|
+
const v = data[key];
|
|
81
|
+
if (typeof v === "boolean" || v === null) {
|
|
82
|
+
lines.push(` ${label.padEnd(28)} ${renderReadinessBoolean(v)}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (data.updatedByTalentAt !== null) {
|
|
86
|
+
lines.push(` ${"updated-by-talent-at".padEnd(28)} ${data.updatedByTalentAt}`);
|
|
87
|
+
}
|
|
88
|
+
return lines.join("\n");
|
|
89
|
+
}
|
|
90
|
+
/** Pure formatter — directly unit-testable. */
|
|
91
|
+
export function formatReadinessTable(data) {
|
|
92
|
+
const rows = [["submit-available", renderReadinessBoolean(data.submitAvailable)]];
|
|
93
|
+
for (const { key, label } of READINESS_FIELDS) {
|
|
94
|
+
const v = data[key];
|
|
95
|
+
if (typeof v === "boolean" || v === null) {
|
|
96
|
+
rows.push([label, renderReadinessBoolean(v)]);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (data.updatedByTalentAt !== null) {
|
|
100
|
+
rows.push(["updated-by-talent-at", data.updatedByTalentAt]);
|
|
101
|
+
}
|
|
102
|
+
return rows.map(([k, v]) => `${k}\t${v}`).join("\n");
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=readiness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readiness.js","sourceRoot":"","sources":["../../../../src/commands/profile/external/readiness.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { profile } from "@ttctl/core";
|
|
2
|
+
import type { OutputFormat } from "../../../lib/output.js";
|
|
3
|
+
/**
|
|
4
|
+
* Action handler for `ttctl profile external recommendations`.
|
|
5
|
+
*
|
|
6
|
+
* Lists the per-section "do this next" recommendations the platform
|
|
7
|
+
* surfaces to nudge the talent towards a complete profile. Each
|
|
8
|
+
* recommendation is a discriminated union over multiple types (e.g.
|
|
9
|
+
* `EmploymentsCountRecommendation`, `PortfolioItemsCountRecommendation`);
|
|
10
|
+
* the CLI surfaces each as `type` + a stringified payload preview.
|
|
11
|
+
*/
|
|
12
|
+
export declare function runProfileExternalRecommendations(format: OutputFormat): Promise<void>;
|
|
13
|
+
/** Pure formatter — directly unit-testable. */
|
|
14
|
+
export declare function formatRecommendationsText(data: profile.external.ProfileRecommendation[]): string;
|
|
15
|
+
/** Pure formatter — directly unit-testable. */
|
|
16
|
+
export declare function formatRecommendationsTable(data: profile.external.ProfileRecommendation[]): string;
|
|
17
|
+
//# sourceMappingURL=recommendations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recommendations.d.ts","sourceRoot":"","sources":["../../../../src/commands/profile/external/recommendations.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,OAAO,EAAE,MAAM,aAAa,CAAC;AAMlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAM3D;;;;;;;;GAQG;AACH,wBAAsB,iCAAiC,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAe3F;AA6CD,+CAA+C;AAC/C,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,MAAM,CAQhG;AAED,+CAA+C;AAC/C,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,MAAM,CAIjG"}
|