@jackie-chan/jobtrack 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +133 -0
- package/dist/commands/company.command.d.ts +3 -0
- package/dist/commands/company.command.d.ts.map +1 -0
- package/dist/commands/company.command.js +29 -0
- package/dist/commands/company.command.js.map +1 -0
- package/dist/commands/db.command.d.ts +3 -0
- package/dist/commands/db.command.d.ts.map +1 -0
- package/dist/commands/db.command.js +17 -0
- package/dist/commands/db.command.js.map +1 -0
- package/dist/commands/job.command.d.ts +8 -0
- package/dist/commands/job.command.d.ts.map +1 -0
- package/dist/commands/job.command.js +91 -0
- package/dist/commands/job.command.js.map +1 -0
- package/dist/commands/location.command.d.ts +3 -0
- package/dist/commands/location.command.d.ts.map +1 -0
- package/dist/commands/location.command.js +21 -0
- package/dist/commands/location.command.js.map +1 -0
- package/dist/commands/profile.command.d.ts +3 -0
- package/dist/commands/profile.command.d.ts.map +1 -0
- package/dist/commands/profile.command.js +29 -0
- package/dist/commands/profile.command.js.map +1 -0
- package/dist/commands/serve.command.d.ts +3 -0
- package/dist/commands/serve.command.d.ts.map +1 -0
- package/dist/commands/serve.command.js +9 -0
- package/dist/commands/serve.command.js.map +1 -0
- package/dist/controllers/cli/companyController.d.ts +11 -0
- package/dist/controllers/cli/companyController.d.ts.map +1 -0
- package/dist/controllers/cli/companyController.js +57 -0
- package/dist/controllers/cli/companyController.js.map +1 -0
- package/dist/controllers/cli/db.controller.d.ts +4 -0
- package/dist/controllers/cli/db.controller.d.ts.map +1 -0
- package/dist/controllers/cli/db.controller.js +71 -0
- package/dist/controllers/cli/db.controller.js.map +1 -0
- package/dist/controllers/cli/job.controller.d.ts +8 -0
- package/dist/controllers/cli/job.controller.d.ts.map +1 -0
- package/dist/controllers/cli/job.controller.js +68 -0
- package/dist/controllers/cli/job.controller.js.map +1 -0
- package/dist/controllers/cli/locationController.d.ts +5 -0
- package/dist/controllers/cli/locationController.d.ts.map +1 -0
- package/dist/controllers/cli/locationController.js +57 -0
- package/dist/controllers/cli/locationController.js.map +1 -0
- package/dist/controllers/cli/profile.controller.d.ts +6 -0
- package/dist/controllers/cli/profile.controller.d.ts.map +1 -0
- package/dist/controllers/cli/profile.controller.js +42 -0
- package/dist/controllers/cli/profile.controller.js.map +1 -0
- package/dist/controllers/httpController.d.ts +8 -0
- package/dist/controllers/httpController.d.ts.map +1 -0
- package/dist/controllers/httpController.js +76 -0
- package/dist/controllers/httpController.js.map +1 -0
- package/dist/database/database.d.ts +4 -0
- package/dist/database/database.d.ts.map +1 -0
- package/dist/database/database.js +203 -0
- package/dist/database/database.js.map +1 -0
- package/dist/database/types/companies.type.d.ts +10 -0
- package/dist/database/types/companies.type.d.ts.map +1 -0
- package/dist/database/types/companies.type.js +2 -0
- package/dist/database/types/companies.type.js.map +1 -0
- package/dist/database/types/contacts.type.d.ts +13 -0
- package/dist/database/types/contacts.type.d.ts.map +1 -0
- package/dist/database/types/contacts.type.js +2 -0
- package/dist/database/types/contacts.type.js.map +1 -0
- package/dist/database/types/interviews.type.d.ts +11 -0
- package/dist/database/types/interviews.type.d.ts.map +1 -0
- package/dist/database/types/interviews.type.js +2 -0
- package/dist/database/types/interviews.type.js.map +1 -0
- package/dist/database/types/jobactivity.type.d.ts +7 -0
- package/dist/database/types/jobactivity.type.d.ts.map +1 -0
- package/dist/database/types/jobactivity.type.js +2 -0
- package/dist/database/types/jobactivity.type.js.map +1 -0
- package/dist/database/types/jobcontacts.type.d.ts +5 -0
- package/dist/database/types/jobcontacts.type.d.ts.map +1 -0
- package/dist/database/types/jobcontacts.type.js +2 -0
- package/dist/database/types/jobcontacts.type.js.map +1 -0
- package/dist/database/types/jobdocs.type.d.ts +9 -0
- package/dist/database/types/jobdocs.type.d.ts.map +1 -0
- package/dist/database/types/jobdocs.type.js +2 -0
- package/dist/database/types/jobdocs.type.js.map +1 -0
- package/dist/database/types/joblocation.type.d.ts +5 -0
- package/dist/database/types/joblocation.type.d.ts.map +1 -0
- package/dist/database/types/joblocation.type.js +2 -0
- package/dist/database/types/joblocation.type.js.map +1 -0
- package/dist/database/types/jobpriority.type.d.ts +6 -0
- package/dist/database/types/jobpriority.type.d.ts.map +1 -0
- package/dist/database/types/jobpriority.type.js +2 -0
- package/dist/database/types/jobpriority.type.js.map +1 -0
- package/dist/database/types/jobs.type.d.ts +37 -0
- package/dist/database/types/jobs.type.d.ts.map +1 -0
- package/dist/database/types/jobs.type.js +2 -0
- package/dist/database/types/jobs.type.js.map +1 -0
- package/dist/database/types/jobsource.type.d.ts +5 -0
- package/dist/database/types/jobsource.type.d.ts.map +1 -0
- package/dist/database/types/jobsource.type.js +2 -0
- package/dist/database/types/jobsource.type.js.map +1 -0
- package/dist/database/types/jobstatuses.type.d.ts +6 -0
- package/dist/database/types/jobstatuses.type.d.ts.map +1 -0
- package/dist/database/types/jobstatuses.type.js +2 -0
- package/dist/database/types/jobstatuses.type.js.map +1 -0
- package/dist/database/types/jobstatushistory.type.d.ts +8 -0
- package/dist/database/types/jobstatushistory.type.d.ts.map +1 -0
- package/dist/database/types/jobstatushistory.type.js +2 -0
- package/dist/database/types/jobstatushistory.type.js.map +1 -0
- package/dist/database/types/jobtags.type.d.ts +6 -0
- package/dist/database/types/jobtags.type.d.ts.map +1 -0
- package/dist/database/types/jobtags.type.js +2 -0
- package/dist/database/types/jobtags.type.js.map +1 -0
- package/dist/database/types/jobtasks.type.d.ts +10 -0
- package/dist/database/types/jobtasks.type.d.ts.map +1 -0
- package/dist/database/types/jobtasks.type.js +2 -0
- package/dist/database/types/jobtasks.type.js.map +1 -0
- package/dist/database/types/profile.type.d.ts +7 -0
- package/dist/database/types/profile.type.d.ts.map +1 -0
- package/dist/database/types/profile.type.js +2 -0
- package/dist/database/types/profile.type.js.map +1 -0
- package/dist/database/types/settings.type.d.ts +7 -0
- package/dist/database/types/settings.type.d.ts.map +1 -0
- package/dist/database/types/settings.type.js +2 -0
- package/dist/database/types/settings.type.js.map +1 -0
- package/dist/database/types/tags.type.d.ts +7 -0
- package/dist/database/types/tags.type.d.ts.map +1 -0
- package/dist/database/types/tags.type.js +2 -0
- package/dist/database/types/tags.type.js.map +1 -0
- package/dist/database/types.d.ts +79 -0
- package/dist/database/types.d.ts.map +1 -0
- package/dist/database/types.js +18 -0
- package/dist/database/types.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/repository/companyRepository.d.ts +8 -0
- package/dist/repository/companyRepository.d.ts.map +1 -0
- package/dist/repository/companyRepository.js +53 -0
- package/dist/repository/companyRepository.js.map +1 -0
- package/dist/repository/core.repository.d.ts +16 -0
- package/dist/repository/core.repository.d.ts.map +1 -0
- package/dist/repository/core.repository.js +57 -0
- package/dist/repository/core.repository.js.map +1 -0
- package/dist/repository/jobsRepository.d.ts +14 -0
- package/dist/repository/jobsRepository.d.ts.map +1 -0
- package/dist/repository/jobsRepository.js +186 -0
- package/dist/repository/jobsRepository.js.map +1 -0
- package/dist/repository/locationRepository.d.ts +11 -0
- package/dist/repository/locationRepository.d.ts.map +1 -0
- package/dist/repository/locationRepository.js +33 -0
- package/dist/repository/locationRepository.js.map +1 -0
- package/dist/repository/profileRepository.d.ts +7 -0
- package/dist/repository/profileRepository.d.ts.map +1 -0
- package/dist/repository/profileRepository.js +25 -0
- package/dist/repository/profileRepository.js.map +1 -0
- package/dist/server.d.ts +2 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +16 -0
- package/dist/server.js.map +1 -0
- package/dist/service/companyService.d.ts +6 -0
- package/dist/service/companyService.d.ts.map +1 -0
- package/dist/service/companyService.js +32 -0
- package/dist/service/companyService.js.map +1 -0
- package/dist/service/jobService.d.ts +18 -0
- package/dist/service/jobService.d.ts.map +1 -0
- package/dist/service/jobService.js +48 -0
- package/dist/service/jobService.js.map +1 -0
- package/dist/service/locationService.d.ts +6 -0
- package/dist/service/locationService.d.ts.map +1 -0
- package/dist/service/locationService.js +31 -0
- package/dist/service/locationService.js.map +1 -0
- package/dist/service/profileService.d.ts +10 -0
- package/dist/service/profileService.d.ts.map +1 -0
- package/dist/service/profileService.js +42 -0
- package/dist/service/profileService.js.map +1 -0
- package/dist/session/session.d.ts +12 -0
- package/dist/session/session.d.ts.map +1 -0
- package/dist/session/session.js +22 -0
- package/dist/session/session.js.map +1 -0
- package/dist/transformers/output.d.ts +10 -0
- package/dist/transformers/output.d.ts.map +1 -0
- package/dist/transformers/output.js +67 -0
- package/dist/transformers/output.js.map +1 -0
- package/package.json +44 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) [year] [fullname]
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# jobtrack
|
|
2
|
+
|
|
3
|
+
A blazing-fast, local command-line interface (CLI) for tracking your job applications.
|
|
4
|
+
|
|
5
|
+
Built with **Node.js** and **SQLite**, `jobtrack` keeps your career data entirely on your own machine.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
Install `jobtrack` globally using npm:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install -g jobtrack
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Getting Started
|
|
16
|
+
|
|
17
|
+
Initialize your local database and create your first active profile:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
jobtrack profile create <username>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
For example:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
jobtrack profile create developer
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Core Commands
|
|
30
|
+
|
|
31
|
+
### Profiles
|
|
32
|
+
|
|
33
|
+
Create, list, and switch between profiles.
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
jobtrack profile create <username>
|
|
37
|
+
jobtrack profile list
|
|
38
|
+
jobtrack profile switch <username>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Jobs
|
|
42
|
+
|
|
43
|
+
Add and list your job applications.
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
jobtrack add -c "Company" -r "Role"
|
|
47
|
+
jobtrack list
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Example:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
jobtrack add -c "Google" -r "Software Engineer"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Companies
|
|
57
|
+
|
|
58
|
+
Manage companies in your job tracker.
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
jobtrack company add <name>
|
|
62
|
+
jobtrack company list
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Example:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
jobtrack company add "Google"
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Locations
|
|
72
|
+
|
|
73
|
+
Manage job locations.
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
jobtrack location add <name>
|
|
77
|
+
jobtrack location list
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Example:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
jobtrack location add "Bangalore"
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Database
|
|
87
|
+
|
|
88
|
+
View and query your local job tracking database.
|
|
89
|
+
|
|
90
|
+
View jobs:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
jobtrack db view jobs
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Run a custom SQL query:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
jobtrack db query "<sql>"
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Example:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
jobtrack db query "SELECT * FROM jobs;"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Local Data & Architecture
|
|
109
|
+
|
|
110
|
+
`jobtrack` is designed as a **local-first CLI application**. Your career data stays on your machine and does not require a remote database.
|
|
111
|
+
|
|
112
|
+
The application stores its data under:
|
|
113
|
+
|
|
114
|
+
```text
|
|
115
|
+
~/.jobtrack/
|
|
116
|
+
├── jobtrack.db
|
|
117
|
+
└── session.json
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
* **`jobtrack.db`** — Local SQLite database containing your job tracking data.
|
|
121
|
+
* **`session.json`** — Stores the active profile/session information.
|
|
122
|
+
|
|
123
|
+
## Why jobtrack?
|
|
124
|
+
|
|
125
|
+
* ⚡ **Fast** — Lightweight CLI built with Node.js.
|
|
126
|
+
* 🔒 **Private** — Your career data stays locally on your machine.
|
|
127
|
+
* 💾 **SQLite-powered** — No external database server required.
|
|
128
|
+
* 👤 **Multi-profile support** — Manage multiple job-search profiles.
|
|
129
|
+
* 🖥️ **CLI-first** — Track applications directly from your terminal.
|
|
130
|
+
|
|
131
|
+
## License
|
|
132
|
+
|
|
133
|
+
MIT
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"company.command.d.ts","sourceRoot":"","sources":["../../src/commands/company.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,eAAO,MAAM,cAAc,SAC6B,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { handleCompanyList, handleCompanyUpdate, handleCompanyDelete, handleCompanyAdd } from "../controllers/cli/companyController.js";
|
|
3
|
+
export const companyCommand = new Command("company")
|
|
4
|
+
.description("Manage companies you have applied to");
|
|
5
|
+
companyCommand
|
|
6
|
+
.command("add <name>")
|
|
7
|
+
.description("Add a new company manually")
|
|
8
|
+
.option("--industry <industry>", "Set the company's industry")
|
|
9
|
+
.option("--website <url>", "Set the company's website URL")
|
|
10
|
+
.action((name, options) => {
|
|
11
|
+
handleCompanyAdd(name, options);
|
|
12
|
+
});
|
|
13
|
+
companyCommand
|
|
14
|
+
.command("list")
|
|
15
|
+
.description("List all companies for the active profile")
|
|
16
|
+
.action(() => handleCompanyList());
|
|
17
|
+
companyCommand
|
|
18
|
+
.command("update <id>")
|
|
19
|
+
.description("Update company details like industry or website")
|
|
20
|
+
.option("--industry <industry>", "Set the company's industry")
|
|
21
|
+
.option("--website <url>", "Set the company's website URL")
|
|
22
|
+
.action((id, options) => {
|
|
23
|
+
handleCompanyUpdate(id, options);
|
|
24
|
+
});
|
|
25
|
+
companyCommand
|
|
26
|
+
.command("delete <id>")
|
|
27
|
+
.description("Delete a company (Warning: this deletes all jobs tied to it)")
|
|
28
|
+
.action((id) => handleCompanyDelete(id));
|
|
29
|
+
//# sourceMappingURL=company.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"company.command.js","sourceRoot":"","sources":["../../src/commands/company.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAExI,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KAC/C,WAAW,CAAC,sCAAsC,CAAC,CAAC;AAEzD,cAAc;KACT,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,uBAAuB,EAAE,4BAA4B,CAAC;KAC7D,MAAM,CAAC,iBAAiB,EAAE,+BAA+B,CAAC;KAC1D,MAAM,CAAC,CAAC,IAAY,EAAE,OAAgD,EAAE,EAAE;IACvE,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEP,cAAc;KACT,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAEvC,cAAc;KACT,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,iDAAiD,CAAC;KAC9D,MAAM,CAAC,uBAAuB,EAAE,4BAA4B,CAAC;KAC7D,MAAM,CAAC,iBAAiB,EAAE,+BAA+B,CAAC;KAC1D,MAAM,CAAC,CAAC,EAAU,EAAE,OAAgD,EAAE,EAAE;IACrE,mBAAmB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC;AAEP,cAAc;KACT,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,8DAA8D,CAAC;KAC3E,MAAM,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.command.d.ts","sourceRoot":"","sources":["../../src/commands/db.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,eAAO,MAAM,SAAS,SACkC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { handleDbPath, handleDbView, handleDbDelete } from "../controllers/cli/db.controller.js";
|
|
3
|
+
export const dbCommand = new Command("db")
|
|
4
|
+
.description("Inspect the underlying SQLite database");
|
|
5
|
+
dbCommand
|
|
6
|
+
.command("path")
|
|
7
|
+
.description("Print the absolute path to the SQLite database file")
|
|
8
|
+
.action(() => handleDbPath());
|
|
9
|
+
dbCommand
|
|
10
|
+
.command("view <table_name>")
|
|
11
|
+
.description("Print all rows from a specific database table")
|
|
12
|
+
.action((tableName) => handleDbView(tableName));
|
|
13
|
+
dbCommand
|
|
14
|
+
.command("delete <table_name> <id>")
|
|
15
|
+
.description("Delete a specific record from a table by its ID")
|
|
16
|
+
.action((tableName, id) => handleDbDelete(tableName, id));
|
|
17
|
+
//# sourceMappingURL=db.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.command.js","sourceRoot":"","sources":["../../src/commands/db.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAEjG,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;KACvC,WAAW,CAAC,wCAAwC,CAAC,CAAC;AAEzD,SAAS;KACN,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,qDAAqD,CAAC;KAClE,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;AAEhC,SAAS;KACN,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,CAAC,SAAiB,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;AAE1D,SAAS;KACN,OAAO,CAAC,0BAA0B,CAAC;KACnC,WAAW,CAAC,iDAAiD,CAAC;KAC9D,MAAM,CAAC,CAAC,SAAiB,EAAE,EAAU,EAAE,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
export declare const addCommand: Command;
|
|
3
|
+
export declare const listCommand: Command;
|
|
4
|
+
export declare const viewCommand: Command;
|
|
5
|
+
export declare const updateCommand: Command;
|
|
6
|
+
export declare const statusCommand: Command;
|
|
7
|
+
export declare const deleteCommand: Command;
|
|
8
|
+
//# sourceMappingURL=job.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job.command.d.ts","sourceRoot":"","sources":["../../src/commands/job.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,eAAO,MAAM,UAAU,SAiCnB,CAAC;AAEL,eAAO,MAAM,WAAW,SAEK,CAAC;AAE9B,eAAO,MAAM,WAAW,SAGiB,CAAC;AAE1C,eAAO,MAAM,aAAa,SAkCtB,CAAC;AAEL,eAAO,MAAM,aAAa,SAOtB,CAAC;AAEL,eAAO,MAAM,aAAa,SAGiB,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { handleAdd, handleList, handleView, handleUpdate, handleStatus, handleDelete, } from "../controllers/cli/job.controller.js";
|
|
3
|
+
export const addCommand = new Command("add")
|
|
4
|
+
.description("Add a new job application")
|
|
5
|
+
.requiredOption("-c, --company <company>", "Company name")
|
|
6
|
+
.requiredOption("-r, --role <role>", "Job title / role")
|
|
7
|
+
.option("-s, --status <status>", "Application status", "applied")
|
|
8
|
+
.option("-d, --date <date>", "Date applied (YYYY-MM-DD)", new Date().toISOString().split("T")[0])
|
|
9
|
+
.option("-l, --link <link>", "Job posting URL")
|
|
10
|
+
.option("-n, --notes <notes>", "Notes")
|
|
11
|
+
.option("--source <source>", "Where you found this (e.g. LinkedIn, Referral)")
|
|
12
|
+
.option("--location <location>", "City/region (e.g. New York)")
|
|
13
|
+
.option("--mode <mode>", "Remote, Onsite, or Hybrid")
|
|
14
|
+
.option("--priority <priority>", "low, medium, or high")
|
|
15
|
+
.option("--salary-min <min>", "Minimum salary")
|
|
16
|
+
.option("--salary-max <max>", "Maximum salary")
|
|
17
|
+
.option("--salary-currency <currency>", "Salary currency", "USD")
|
|
18
|
+
.option("--salary-period <period>", "per year, per month, or per hour")
|
|
19
|
+
.action((opts) => {
|
|
20
|
+
handleAdd({
|
|
21
|
+
company_name: opts.company,
|
|
22
|
+
role: opts.role,
|
|
23
|
+
status: opts.status,
|
|
24
|
+
date_applied: opts.date,
|
|
25
|
+
link: opts.link,
|
|
26
|
+
notes: opts.notes,
|
|
27
|
+
source_name: opts.source,
|
|
28
|
+
location_name: opts.location,
|
|
29
|
+
mode_name: opts.mode,
|
|
30
|
+
priority_name: opts.priority,
|
|
31
|
+
salary_min: opts.salaryMin ? Number(opts.salaryMin) : null,
|
|
32
|
+
salary_max: opts.salaryMax ? Number(opts.salaryMax) : null,
|
|
33
|
+
salary_currency: opts.salaryCurrency,
|
|
34
|
+
salary_period_name: opts.salaryPeriod,
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
export const listCommand = new Command("list")
|
|
38
|
+
.description("List all job applications")
|
|
39
|
+
.action(() => handleList());
|
|
40
|
+
export const viewCommand = new Command("view")
|
|
41
|
+
.description("View full details of a single job application")
|
|
42
|
+
.argument("<id>", "Job application ID")
|
|
43
|
+
.action((id) => handleView(id));
|
|
44
|
+
export const updateCommand = new Command("update")
|
|
45
|
+
.description("Update fields on an existing job application")
|
|
46
|
+
.argument("<id>", "Job application ID")
|
|
47
|
+
.option("-c, --company <company>", "Company name")
|
|
48
|
+
.option("-r, --role <role>", "Job title / role")
|
|
49
|
+
.option("-s, --status <status>", "Application status")
|
|
50
|
+
.option("-d, --date <date>", "Date applied (YYYY-MM-DD)")
|
|
51
|
+
.option("-l, --link <link>", "Job posting URL")
|
|
52
|
+
.option("-n, --notes <notes>", "Notes")
|
|
53
|
+
.option("--source <source>", "Where you found this (e.g. LinkedIn, Referral)")
|
|
54
|
+
.option("--location <location>", "City/region (e.g. New York)")
|
|
55
|
+
.option("--mode <mode>", "Remote, Onsite, or Hybrid")
|
|
56
|
+
.option("--priority <priority>", "low, medium, or high")
|
|
57
|
+
.option("--salary-min <min>", "Minimum salary")
|
|
58
|
+
.option("--salary-max <max>", "Maximum salary")
|
|
59
|
+
.option("--salary-currency <currency>", "Salary currency")
|
|
60
|
+
.option("--salary-period <period>", "per year, per month, or per hour")
|
|
61
|
+
.action((id, opts) => {
|
|
62
|
+
handleUpdate(id, {
|
|
63
|
+
company_name: opts.company,
|
|
64
|
+
role: opts.role,
|
|
65
|
+
status: opts.status,
|
|
66
|
+
date_applied: opts.date,
|
|
67
|
+
link: opts.link,
|
|
68
|
+
notes: opts.notes,
|
|
69
|
+
source_name: opts.source,
|
|
70
|
+
location_name: opts.location,
|
|
71
|
+
mode_name: opts.mode,
|
|
72
|
+
priority_name: opts.priority,
|
|
73
|
+
salary_currency: opts.salaryCurrency,
|
|
74
|
+
salary_period_name: opts.salaryPeriod,
|
|
75
|
+
...(opts.salaryMin !== undefined ? { salary_min: Number(opts.salaryMin) } : {}),
|
|
76
|
+
...(opts.salaryMax !== undefined ? { salary_max: Number(opts.salaryMax) } : {}),
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
export const statusCommand = new Command("status")
|
|
80
|
+
.description("Change the status of a job application (keeps a history entry)")
|
|
81
|
+
.argument("<id>", "Job application ID")
|
|
82
|
+
.argument("<status>", "New status (applied, screening, interview, offer, rejected, ghosted, withdrawn)")
|
|
83
|
+
.option("-n, --note <note>", "Note to attach to this status change")
|
|
84
|
+
.action((id, status, opts) => {
|
|
85
|
+
handleStatus(id, status, opts.note);
|
|
86
|
+
});
|
|
87
|
+
export const deleteCommand = new Command("delete")
|
|
88
|
+
.description("Delete a job application")
|
|
89
|
+
.argument("<id>", "Job application ID")
|
|
90
|
+
.action((id) => handleDelete(id));
|
|
91
|
+
//# sourceMappingURL=job.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job.command.js","sourceRoot":"","sources":["../../src/commands/job.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"location.command.d.ts","sourceRoot":"","sources":["../../src/commands/location.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,eAAe,SACkD,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { handleLocationList, handleLocationAdd, handleLocationUpdate, handleLocationDelete, } from "../controllers/cli/locationController.js";
|
|
3
|
+
export const locationCommand = new Command("location")
|
|
4
|
+
.description("Manage job application locations (e.g., Madurai, Coimbatore)");
|
|
5
|
+
locationCommand
|
|
6
|
+
.command("list")
|
|
7
|
+
.description("List all available locations")
|
|
8
|
+
.action(() => handleLocationList());
|
|
9
|
+
locationCommand
|
|
10
|
+
.command("add <name>")
|
|
11
|
+
.description("Add a new geographical location")
|
|
12
|
+
.action((name) => handleLocationAdd(name));
|
|
13
|
+
locationCommand
|
|
14
|
+
.command("update <id> <name>")
|
|
15
|
+
.description("Update an existing location name")
|
|
16
|
+
.action((id, name) => handleLocationUpdate(id, name));
|
|
17
|
+
locationCommand
|
|
18
|
+
.command("delete <id>")
|
|
19
|
+
.description("Delete a location by its ID")
|
|
20
|
+
.action((id) => handleLocationDelete(id));
|
|
21
|
+
//# sourceMappingURL=location.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"location.command.js","sourceRoot":"","sources":["../../src/commands/location.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,0CAA0C,CAAC;AAElD,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;KACnD,WAAW,CAAC,8DAA8D,CAAC,CAAC;AAE/E,eAAe;KACZ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,8BAA8B,CAAC;KAC3C,MAAM,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;AAEtC,eAAe;KACZ,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AAErD,eAAe;KACZ,OAAO,CAAC,oBAAoB,CAAC;KAC7B,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,CAAC,EAAU,EAAE,IAAY,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AAExE,eAAe;KACZ,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.command.d.ts","sourceRoot":"","sources":["../../src/commands/profile.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,eAAO,MAAM,cAAc,SACa,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { handleProfileCreate, handleProfileSwitch, handleProfileList, handleProfileWhoami, handleProfileUpdate, } from "../controllers/cli/profile.controller.js";
|
|
3
|
+
export const profileCommand = new Command("profile")
|
|
4
|
+
.description("Manage user profiles");
|
|
5
|
+
profileCommand
|
|
6
|
+
.command("create <username>")
|
|
7
|
+
.description("Create a new profile and make it active")
|
|
8
|
+
.option("-n, --name <display_name>", "Set an optional display name for the profile")
|
|
9
|
+
.action((username, options) => { handleProfileCreate(username, options.name); });
|
|
10
|
+
profileCommand
|
|
11
|
+
.command("switch <username>")
|
|
12
|
+
.description("Switch the active profile")
|
|
13
|
+
.action((username) => handleProfileSwitch(username));
|
|
14
|
+
profileCommand
|
|
15
|
+
.command("list")
|
|
16
|
+
.description("List all profiles on this machine")
|
|
17
|
+
.action(() => handleProfileList());
|
|
18
|
+
profileCommand
|
|
19
|
+
.command("whoami")
|
|
20
|
+
.description("Show the currently active profile")
|
|
21
|
+
.action(() => handleProfileWhoami());
|
|
22
|
+
profileCommand
|
|
23
|
+
.command("update")
|
|
24
|
+
.description("Update the active profile's details")
|
|
25
|
+
.requiredOption("-n, --name <display_name>", "The new display name")
|
|
26
|
+
.action((options) => {
|
|
27
|
+
handleProfileUpdate(options.name);
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=profile.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.command.js","sourceRoot":"","sources":["../../src/commands/profile.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACH,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,GACtB,MAAM,0CAA0C,CAAC;AAElD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KAC/C,WAAW,CAAC,sBAAsB,CAAC,CAAC;AAEzC,cAAc;KACT,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,2BAA2B,EAAE,8CAA8C,CAAC;KACnF,MAAM,CAAC,CAAC,QAAgB,EAAE,OAA0B,EAAE,EAAE,GAAG,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC;AAE/G,cAAc;KACT,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CAAC,CAAC,QAAgB,EAAE,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEjE,cAAc;KACT,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAEvC,cAAc;KACT,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAEzC,cAAc;KACT,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,qCAAqC,CAAC;KAClD,cAAc,CAAC,2BAA2B,EAAE,sBAAsB,CAAC;KACnE,MAAM,CAAC,CAAC,OAAyB,EAAE,EAAE;IAClC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve.command.d.ts","sourceRoot":"","sources":["../../src/commands/serve.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,eAAO,MAAM,YAAY,SAKrB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { startServer } from "../server.js";
|
|
3
|
+
export const serveCommand = new Command("serve")
|
|
4
|
+
.description("Start jobtrack as a local HTTP server")
|
|
5
|
+
.option("-p, --port <port>", "Port to listen on", "3000")
|
|
6
|
+
.action((opts) => {
|
|
7
|
+
startServer(Number(opts.port));
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=serve.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve.command.js","sourceRoot":"","sources":["../../src/commands/serve.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,CAAC;KACxD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;IACf,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare function handleCompanyAdd(name: string, options: {
|
|
2
|
+
industry?: string;
|
|
3
|
+
website?: string;
|
|
4
|
+
}): void;
|
|
5
|
+
export declare function handleCompanyList(): void;
|
|
6
|
+
export declare function handleCompanyUpdate(idStr: string, options: {
|
|
7
|
+
industry?: string;
|
|
8
|
+
website?: string;
|
|
9
|
+
}): void;
|
|
10
|
+
export declare function handleCompanyDelete(idStr: string): void;
|
|
11
|
+
//# sourceMappingURL=companyController.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"companyController.d.ts","sourceRoot":"","sources":["../../../src/controllers/cli/companyController.ts"],"names":[],"mappings":"AAIA,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,QAO9F;AAED,wBAAgB,iBAAiB,SAqBhC;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,QAUlG;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,QAUhD"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { listCompaniesService, updateCompanyService, deleteCompanyService, addCompanyService } from "../../service/companyService.js";
|
|
2
|
+
import { printSuccess, printError, printEmptyState } from "../../transformers/output.js";
|
|
3
|
+
import Table from "cli-table3";
|
|
4
|
+
export function handleCompanyAdd(name, options) {
|
|
5
|
+
try {
|
|
6
|
+
const company = addCompanyService(name, options.industry, options.website);
|
|
7
|
+
printSuccess(`Added company #${company.id}: ${company.name}`);
|
|
8
|
+
}
|
|
9
|
+
catch (err) {
|
|
10
|
+
printError(err.message);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export function handleCompanyList() {
|
|
14
|
+
try {
|
|
15
|
+
const companies = listCompaniesService();
|
|
16
|
+
if (companies.length === 0) {
|
|
17
|
+
printEmptyState("No companies found. They are added automatically when you add a job.");
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const table = new Table({
|
|
21
|
+
head: ["ID", "Name", "Industry", "Website"],
|
|
22
|
+
style: { head: ["cyan"] },
|
|
23
|
+
});
|
|
24
|
+
for (const c of companies) {
|
|
25
|
+
table.push([c.id, c.name, c.industry || "-", c.website || "-"]);
|
|
26
|
+
}
|
|
27
|
+
console.log(table.toString());
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
printError(err.message);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export function handleCompanyUpdate(idStr, options) {
|
|
34
|
+
try {
|
|
35
|
+
const id = Number(idStr);
|
|
36
|
+
if (isNaN(id))
|
|
37
|
+
throw new Error("Company ID must be a valid number.");
|
|
38
|
+
const company = updateCompanyService(id, options.industry, options.website);
|
|
39
|
+
printSuccess(`Updated company #${company.id}: ${company.name}`);
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
printError(err.message);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export function handleCompanyDelete(idStr) {
|
|
46
|
+
try {
|
|
47
|
+
const id = Number(idStr);
|
|
48
|
+
if (isNaN(id))
|
|
49
|
+
throw new Error("Company ID must be a valid number.");
|
|
50
|
+
deleteCompanyService(id);
|
|
51
|
+
printSuccess(`Deleted company #${id}. Note: All associated job applications were also removed due to cascade deletion.`);
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
printError(err.message);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=companyController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"companyController.js","sourceRoot":"","sources":["../../../src/controllers/cli/companyController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACtI,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,OAAgD;IAC7F,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3E,YAAY,CAAC,kBAAkB,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,UAAU,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,oBAAoB,EAAE,CAAC;QACzC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,eAAe,CAAC,sEAAsE,CAAC,CAAC;YACxF,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;YACtB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC;YAC3C,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;SAC1B,CAAC,CAAC;QAEH,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,IAAI,GAAG,EAAE,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,UAAU,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,OAAgD;IACjG,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,KAAK,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAErE,MAAM,OAAO,GAAG,oBAAoB,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5E,YAAY,CAAC,oBAAoB,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,UAAU,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,KAAK,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAErE,oBAAoB,CAAC,EAAE,CAAC,CAAC;QACzB,YAAY,CAAC,oBAAoB,EAAE,oFAAoF,CAAC,CAAC;IAC3H,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,UAAU,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/cli/db.controller.ts"],"names":[],"mappings":"AAQA,wBAAgB,YAAY,SAE3B;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,QA0C7C;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAiC3D"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// This file is the initial version of the interactive database section
|
|
2
|
+
// Used for directly executing raw queries
|
|
3
|
+
import { raw, rawRun } from "../../repository/core.repository.js";
|
|
4
|
+
import { getDbPath } from "../../database/database.js";
|
|
5
|
+
import Table from "cli-table3";
|
|
6
|
+
import chalk from "chalk";
|
|
7
|
+
export function handleDbPath() {
|
|
8
|
+
console.log(chalk.green("Database path: ") + getDbPath());
|
|
9
|
+
}
|
|
10
|
+
export function handleDbView(tableName) {
|
|
11
|
+
try {
|
|
12
|
+
// 1. Verify the table exists to prevent basic SQL errors
|
|
13
|
+
const check = raw("SELECT name FROM sqlite_master WHERE type='table' AND name=@name", { name: tableName });
|
|
14
|
+
if (check.length === 0) {
|
|
15
|
+
console.log(chalk.red(`Table "${tableName}" does not exist.`));
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
// 2. Fetch all raw rows
|
|
19
|
+
const rows = raw(`SELECT * FROM ${tableName}`);
|
|
20
|
+
if (rows.length === 0) {
|
|
21
|
+
console.log(chalk.gray(`Table "${tableName}" is empty.`));
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
// 3. Dynamically generate a CLI table based on the row keys
|
|
25
|
+
const firstRow = rows[0];
|
|
26
|
+
if (!firstRow) {
|
|
27
|
+
console.log(chalk.gray(`Table "${tableName}" is empty.`));
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const headers = Object.keys(firstRow);
|
|
31
|
+
const table = new Table({
|
|
32
|
+
head: headers,
|
|
33
|
+
style: { head: ["cyan"] },
|
|
34
|
+
});
|
|
35
|
+
for (const row of rows) {
|
|
36
|
+
table.push(Object.values(row).map(val => (val === null ? "NULL" : String(val))));
|
|
37
|
+
}
|
|
38
|
+
console.log(table.toString());
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
console.log(chalk.red("Error reading table: " + err.message));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export function handleDbDelete(tableName, id) {
|
|
45
|
+
try {
|
|
46
|
+
const numericId = Number(id);
|
|
47
|
+
if (isNaN(numericId)) {
|
|
48
|
+
console.log(chalk.red(" Error: ID must be a valid number."));
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
// 1. Verify table exists to prevent SQL injection on table names
|
|
52
|
+
const check = raw("SELECT name FROM sqlite_master WHERE type='table' AND name=@name", { name: tableName });
|
|
53
|
+
if (check.length === 0) {
|
|
54
|
+
console.log(chalk.red(` Error: Table "${tableName}" does not exist.`));
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
// 2. Check if the record actually exists before deleting (better UX)
|
|
58
|
+
const record = raw(`SELECT id FROM ${tableName} WHERE id = @id`, { id: numericId });
|
|
59
|
+
if (record.length === 0) {
|
|
60
|
+
console.log(chalk.gray(`No record found with ID ${numericId} in table "${tableName}".`));
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
// 3. Execute the delete operation safely
|
|
64
|
+
rawRun(`DELETE FROM ${tableName} WHERE id = @id`, { id: numericId });
|
|
65
|
+
console.log(chalk.green(` Successfully deleted record #${numericId} from ${tableName}.`));
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
console.log(chalk.red("Error deleting record: " + err.message));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=db.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.controller.js","sourceRoot":"","sources":["../../../src/controllers/cli/db.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { NewJob, UpdateJob, Status } from "../../database/types.js";
|
|
2
|
+
export declare function handleAdd(data: NewJob): void;
|
|
3
|
+
export declare function handleList(): void;
|
|
4
|
+
export declare function handleView(idStr: string): void;
|
|
5
|
+
export declare function handleUpdate(idStr: string, data: UpdateJob): void;
|
|
6
|
+
export declare function handleStatus(idStr: string, status: Status, note?: string): void;
|
|
7
|
+
export declare function handleDelete(idStr: string): void;
|
|
8
|
+
//# sourceMappingURL=job.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job.controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/cli/job.controller.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAQzE,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,QAOrC;AAED,wBAAgB,UAAU,SAWzB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,QAOvC;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,QAO1D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,QAOxE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,QAQzC"}
|