bamboohr-cli 1.0.8 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +601 -31
- package/package.json +6 -5
- package/dist/commands/employee/directory.d.ts +0 -3
- package/dist/commands/employee/directory.d.ts.map +0 -1
- package/dist/commands/employee/directory.js +0 -15
- package/dist/commands/employee/directory.js.map +0 -1
- package/dist/commands/employee/get.d.ts +0 -3
- package/dist/commands/employee/get.d.ts.map +0 -1
- package/dist/commands/employee/get.js +0 -25
- package/dist/commands/employee/get.js.map +0 -1
- package/dist/commands/employee/goals.d.ts +0 -3
- package/dist/commands/employee/goals.d.ts.map +0 -1
- package/dist/commands/employee/goals.js +0 -22
- package/dist/commands/employee/goals.js.map +0 -1
- package/dist/commands/employee/index.d.ts +0 -3
- package/dist/commands/employee/index.d.ts.map +0 -1
- package/dist/commands/employee/index.js +0 -24
- package/dist/commands/employee/index.js.map +0 -1
- package/dist/commands/employee/photo.d.ts +0 -3
- package/dist/commands/employee/photo.d.ts.map +0 -1
- package/dist/commands/employee/photo.js +0 -27
- package/dist/commands/employee/photo.js.map +0 -1
- package/dist/commands/employee/search.d.ts +0 -3
- package/dist/commands/employee/search.d.ts.map +0 -1
- package/dist/commands/employee/search.js +0 -59
- package/dist/commands/employee/search.js.map +0 -1
- package/dist/commands/file/get.d.ts +0 -3
- package/dist/commands/file/get.d.ts.map +0 -1
- package/dist/commands/file/get.js +0 -19
- package/dist/commands/file/get.js.map +0 -1
- package/dist/commands/file/index.d.ts +0 -3
- package/dist/commands/file/index.d.ts.map +0 -1
- package/dist/commands/file/index.js +0 -15
- package/dist/commands/file/index.js.map +0 -1
- package/dist/commands/file/list.d.ts +0 -3
- package/dist/commands/file/list.d.ts.map +0 -1
- package/dist/commands/file/list.js +0 -14
- package/dist/commands/file/list.js.map +0 -1
- package/dist/commands/meta/departments.d.ts +0 -3
- package/dist/commands/meta/departments.d.ts.map +0 -1
- package/dist/commands/meta/departments.js +0 -16
- package/dist/commands/meta/departments.js.map +0 -1
- package/dist/commands/meta/divisions.d.ts +0 -3
- package/dist/commands/meta/divisions.d.ts.map +0 -1
- package/dist/commands/meta/divisions.js +0 -16
- package/dist/commands/meta/divisions.js.map +0 -1
- package/dist/commands/meta/fields.d.ts +0 -3
- package/dist/commands/meta/fields.d.ts.map +0 -1
- package/dist/commands/meta/fields.js +0 -15
- package/dist/commands/meta/fields.js.map +0 -1
- package/dist/commands/meta/index.d.ts +0 -3
- package/dist/commands/meta/index.d.ts.map +0 -1
- package/dist/commands/meta/index.js +0 -21
- package/dist/commands/meta/index.js.map +0 -1
- package/dist/commands/meta/locations.d.ts +0 -3
- package/dist/commands/meta/locations.d.ts.map +0 -1
- package/dist/commands/meta/locations.js +0 -16
- package/dist/commands/meta/locations.js.map +0 -1
- package/dist/commands/timeoff/balance.d.ts +0 -3
- package/dist/commands/timeoff/balance.d.ts.map +0 -1
- package/dist/commands/timeoff/balance.js +0 -21
- package/dist/commands/timeoff/balance.js.map +0 -1
- package/dist/commands/timeoff/create.d.ts +0 -3
- package/dist/commands/timeoff/create.d.ts.map +0 -1
- package/dist/commands/timeoff/create.js +0 -36
- package/dist/commands/timeoff/create.js.map +0 -1
- package/dist/commands/timeoff/index.d.ts +0 -3
- package/dist/commands/timeoff/index.d.ts.map +0 -1
- package/dist/commands/timeoff/index.js +0 -27
- package/dist/commands/timeoff/index.js.map +0 -1
- package/dist/commands/timeoff/requests.d.ts +0 -3
- package/dist/commands/timeoff/requests.d.ts.map +0 -1
- package/dist/commands/timeoff/requests.js +0 -51
- package/dist/commands/timeoff/requests.js.map +0 -1
- package/dist/commands/timeoff/types.d.ts +0 -3
- package/dist/commands/timeoff/types.d.ts.map +0 -1
- package/dist/commands/timeoff/types.js +0 -21
- package/dist/commands/timeoff/types.js.map +0 -1
- package/dist/commands/timeoff/update-status.d.ts +0 -3
- package/dist/commands/timeoff/update-status.d.ts.map +0 -1
- package/dist/commands/timeoff/update-status.js +0 -25
- package/dist/commands/timeoff/update-status.js.map +0 -1
- package/dist/commands/timeoff/whos-out.d.ts +0 -3
- package/dist/commands/timeoff/whos-out.d.ts.map +0 -1
- package/dist/commands/timeoff/whos-out.js +0 -22
- package/dist/commands/timeoff/whos-out.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/utils/cached.d.ts +0 -8
- package/dist/utils/cached.d.ts.map +0 -1
- package/dist/utils/cached.js +0 -17
- package/dist/utils/cached.js.map +0 -1
- package/dist/utils/client.d.ts +0 -3
- package/dist/utils/client.d.ts.map +0 -1
- package/dist/utils/client.js +0 -19
- package/dist/utils/client.js.map +0 -1
- package/dist/utils/output.d.ts +0 -3
- package/dist/utils/output.d.ts.map +0 -1
- package/dist/utils/output.js +0 -49
- package/dist/utils/output.js.map +0 -1
- package/dist/utils/resolve-employee.d.ts +0 -6
- package/dist/utils/resolve-employee.d.ts.map +0 -1
- package/dist/utils/resolve-employee.js +0 -10
- package/dist/utils/resolve-employee.js.map +0 -1
- package/dist/utils/strip-response.d.ts +0 -6
- package/dist/utils/strip-response.d.ts.map +0 -1
- package/dist/utils/strip-response.js +0 -29
- package/dist/utils/strip-response.js.map +0 -1
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { balance } from './balance.js';
|
|
2
|
-
import { create } from './create.js';
|
|
3
|
-
import { requests } from './requests.js';
|
|
4
|
-
import { types } from './types.js';
|
|
5
|
-
import { updateStatus } from './update-status.js';
|
|
6
|
-
import { whosOut } from './whos-out.js';
|
|
7
|
-
export function registerTimeoffCommands(program) {
|
|
8
|
-
const timeoff = program
|
|
9
|
-
.command('timeoff')
|
|
10
|
-
.description('Time off operations')
|
|
11
|
-
.addHelpText('after', `
|
|
12
|
-
Examples:
|
|
13
|
-
$ bamboohr timeoff types --requestable
|
|
14
|
-
$ bamboohr timeoff create 504 --start 2026-04-01 --end 2026-04-01 --type-id 83 --amount 1
|
|
15
|
-
$ bamboohr timeoff requests --status requested --start 2026-01-01 --end 2026-12-31
|
|
16
|
-
$ bamboohr timeoff balance 504
|
|
17
|
-
$ bamboohr timeoff whos-out
|
|
18
|
-
$ bamboohr timeoff update-status 7890 --status approved
|
|
19
|
-
`);
|
|
20
|
-
types(timeoff);
|
|
21
|
-
create(timeoff);
|
|
22
|
-
requests(timeoff);
|
|
23
|
-
balance(timeoff);
|
|
24
|
-
whosOut(timeoff);
|
|
25
|
-
updateStatus(timeoff);
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/timeoff/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,OAAO,GAAG,OAAO;SACpB,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,qBAAqB,CAAC;SAClC,WAAW,CACV,OAAO,EACP;;;;;;;;CAQL,CACI,CAAC;IACJ,KAAK,CAAC,OAAO,CAAC,CAAC;IACf,MAAM,CAAC,OAAO,CAAC,CAAC;IAChB,QAAQ,CAAC,OAAO,CAAC,CAAC;IAClB,OAAO,CAAC,OAAO,CAAC,CAAC;IACjB,OAAO,CAAC,OAAO,CAAC,CAAC;IACjB,YAAY,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../../src/commands/timeoff/requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAK5C,wBAAgB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAgE9C"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { Option } from 'commander';
|
|
2
|
-
import { getClient } from '../../utils/client.js';
|
|
3
|
-
import { output } from '../../utils/output.js';
|
|
4
|
-
import { resolveEmployeeId } from '../../utils/resolve-employee.js';
|
|
5
|
-
export function requests(parent) {
|
|
6
|
-
parent
|
|
7
|
-
.command('requests')
|
|
8
|
-
.description('Get time off requests (defaults to current user)')
|
|
9
|
-
.option('--id <id>', 'Specific request ID', parseInt)
|
|
10
|
-
.addOption(new Option('--action <action>', 'Access level filter').choices(['view', 'approve']))
|
|
11
|
-
.option('--employee <id>', 'Filter by employee ID')
|
|
12
|
-
.option('--all', 'Show all visible requests instead of just current user')
|
|
13
|
-
.option('--start <date>', 'Start date (YYYY-MM-DD)')
|
|
14
|
-
.option('--end <date>', 'End date (YYYY-MM-DD)')
|
|
15
|
-
.addOption(new Option('--status <status>', 'Filter by request status').choices([
|
|
16
|
-
'approved',
|
|
17
|
-
'denied',
|
|
18
|
-
'superceded',
|
|
19
|
-
'requested',
|
|
20
|
-
'canceled',
|
|
21
|
-
]))
|
|
22
|
-
.option('--type <typeId>', 'Filter by time off type ID')
|
|
23
|
-
.addHelpText('after', `
|
|
24
|
-
Examples:
|
|
25
|
-
$ bamboohr timeoff requests
|
|
26
|
-
$ bamboohr timeoff requests --status requested
|
|
27
|
-
$ bamboohr timeoff requests --all --action approve --status requested
|
|
28
|
-
$ bamboohr timeoff requests --employee 123 --start 2026-01-01 --end 2026-03-31`)
|
|
29
|
-
.action(async (opts) => {
|
|
30
|
-
const year = new Date().getFullYear();
|
|
31
|
-
const start = opts.start ?? `${year}-01-01`;
|
|
32
|
-
const end = opts.end ?? `${year}-12-31`;
|
|
33
|
-
const client = getClient();
|
|
34
|
-
// Default to current user unless --all or --employee is specified
|
|
35
|
-
let employeeId = opts.employee;
|
|
36
|
-
if (!employeeId && !opts.all) {
|
|
37
|
-
employeeId = await resolveEmployeeId(client);
|
|
38
|
-
}
|
|
39
|
-
const result = await client.timeOff.getRequests({
|
|
40
|
-
id: opts.id,
|
|
41
|
-
action: opts.action,
|
|
42
|
-
employeeId,
|
|
43
|
-
start,
|
|
44
|
-
end,
|
|
45
|
-
status: opts.status,
|
|
46
|
-
type: opts.type,
|
|
47
|
-
});
|
|
48
|
-
output(result);
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=requests.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"requests.js","sourceRoot":"","sources":["../../../src/commands/timeoff/requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,MAAM,UAAU,QAAQ,CAAC,MAAe;IACtC,MAAM;SACH,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,kDAAkD,CAAC;SAC/D,MAAM,CAAC,WAAW,EAAE,qBAAqB,EAAE,QAAQ,CAAC;SACpD,SAAS,CAAC,IAAI,MAAM,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;SAC9F,MAAM,CAAC,iBAAiB,EAAE,uBAAuB,CAAC;SAClD,MAAM,CAAC,OAAO,EAAE,wDAAwD,CAAC;SACzE,MAAM,CAAC,gBAAgB,EAAE,yBAAyB,CAAC;SACnD,MAAM,CAAC,cAAc,EAAE,uBAAuB,CAAC;SAC/C,SAAS,CACR,IAAI,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,CAAC,CAAC,OAAO,CAAC;QAClE,UAAU;QACV,QAAQ;QACR,YAAY;QACZ,WAAW;QACX,UAAU;KACX,CAAC,CACH;SACA,MAAM,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;SACvD,WAAW,CACV,OAAO,EACP;;;;;iFAK2E,CAC5E;SACA,MAAM,CACL,KAAK,EAAE,IASN,EAAE,EAAE;QACH,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,GAAG,IAAI,QAAQ,CAAC;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,QAAQ,CAAC;QAExC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAE3B,kEAAkE;QAClE,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,UAAU,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;YAC9C,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,IAAI,CAAC,MAAwC;YACrD,UAAU;YACV,KAAK;YACL,GAAG;YACH,MAAM,EAAE,IAAI,CAAC,MAAqF;YAClG,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC,CACF,CAAC;AACN,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/commands/timeoff/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAmB3C"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { getTimeOffTypes } from '../../utils/cached.js';
|
|
2
|
-
import { getClient } from '../../utils/client.js';
|
|
3
|
-
import { output } from '../../utils/output.js';
|
|
4
|
-
export function types(parent) {
|
|
5
|
-
parent
|
|
6
|
-
.command('types')
|
|
7
|
-
.description('List available time off types')
|
|
8
|
-
.option('--requestable', 'Only show types the user can request')
|
|
9
|
-
.addHelpText('after', `
|
|
10
|
-
Examples:
|
|
11
|
-
$ bamboohr timeoff types
|
|
12
|
-
$ bamboohr timeoff types --requestable`)
|
|
13
|
-
.action(async (opts) => {
|
|
14
|
-
const client = getClient();
|
|
15
|
-
const result = opts.requestable
|
|
16
|
-
? await client.timeOff.getTypes({ mode: 'request' })
|
|
17
|
-
: await getTimeOffTypes(client);
|
|
18
|
-
output(result);
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/commands/timeoff/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,UAAU,KAAK,CAAC,MAAe;IACnC,MAAM;SACH,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,+BAA+B,CAAC;SAC5C,MAAM,CAAC,eAAe,EAAE,sCAAsC,CAAC;SAC/D,WAAW,CACV,OAAO,EACP;;;yCAGmC,CACpC;SACA,MAAM,CAAC,KAAK,EAAE,IAA+B,EAAE,EAAE;QAChD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW;YAC7B,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YACpD,CAAC,CAAC,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update-status.d.ts","sourceRoot":"","sources":["../../../src/commands/timeoff/update-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAI5C,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAyBlD"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Option } from 'commander';
|
|
2
|
-
import { getClient } from '../../utils/client.js';
|
|
3
|
-
import { output } from '../../utils/output.js';
|
|
4
|
-
export function updateStatus(parent) {
|
|
5
|
-
parent
|
|
6
|
-
.command('update-status <requestId>')
|
|
7
|
-
.description('Update time off request status (approve, deny, cancel)')
|
|
8
|
-
.addOption(new Option('--status <status>', 'New status').choices(['approved', 'denied', 'canceled']).makeOptionMandatory())
|
|
9
|
-
.option('--note <text>', 'Note to attach to the status change')
|
|
10
|
-
.addHelpText('after', `
|
|
11
|
-
Examples:
|
|
12
|
-
$ bamboohr timeoff update-status 7890 --status approved
|
|
13
|
-
$ bamboohr timeoff update-status 7890 --status denied --note "Team at capacity that week"
|
|
14
|
-
$ bamboohr timeoff update-status 7890 --status canceled`)
|
|
15
|
-
.action(async (requestId, opts) => {
|
|
16
|
-
const client = getClient();
|
|
17
|
-
const result = await client.timeOff.updateRequestStatus({
|
|
18
|
-
requestId,
|
|
19
|
-
status: opts.status,
|
|
20
|
-
note: opts.note,
|
|
21
|
-
});
|
|
22
|
-
output(result || { updated: true, requestId, status: opts.status });
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=update-status.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update-status.js","sourceRoot":"","sources":["../../../src/commands/timeoff/update-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,UAAU,YAAY,CAAC,MAAe;IAC1C,MAAM;SACH,OAAO,CAAC,2BAA2B,CAAC;SACpC,WAAW,CAAC,wDAAwD,CAAC;SACrE,SAAS,CACR,IAAI,MAAM,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAChH;SACA,MAAM,CAAC,eAAe,EAAE,qCAAqC,CAAC;SAC9D,WAAW,CACV,OAAO,EACP;;;;0DAIoD,CACrD;SACA,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,IAAuC,EAAE,EAAE;QAC3E,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC;YACtD,SAAS;YACT,MAAM,EAAE,IAAI,CAAC,MAA4C;YACzD,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"whos-out.d.ts","sourceRoot":"","sources":["../../../src/commands/timeoff/whos-out.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAqB7C"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { getClient } from '../../utils/client.js';
|
|
2
|
-
import { output } from '../../utils/output.js';
|
|
3
|
-
export function whosOut(parent) {
|
|
4
|
-
parent
|
|
5
|
-
.command('whos-out')
|
|
6
|
-
.description("View who's out — upcoming time off and holidays")
|
|
7
|
-
.option('--start <date>', 'Start date (YYYY-MM-DD, defaults to today)')
|
|
8
|
-
.option('--end <date>', 'End date (YYYY-MM-DD, defaults to 14 days from start)')
|
|
9
|
-
.addHelpText('after', `
|
|
10
|
-
Examples:
|
|
11
|
-
$ bamboohr timeoff whos-out
|
|
12
|
-
$ bamboohr timeoff whos-out --start 2026-03-20 --end 2026-04-03`)
|
|
13
|
-
.action(async (opts) => {
|
|
14
|
-
const client = getClient();
|
|
15
|
-
const result = await client.timeOff.getWhosOut({
|
|
16
|
-
start: opts.start,
|
|
17
|
-
end: opts.end,
|
|
18
|
-
});
|
|
19
|
-
output(result);
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=whos-out.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"whos-out.js","sourceRoot":"","sources":["../../../src/commands/timeoff/whos-out.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,UAAU,OAAO,CAAC,MAAe;IACrC,MAAM;SACH,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,iDAAiD,CAAC;SAC9D,MAAM,CAAC,gBAAgB,EAAE,4CAA4C,CAAC;SACtE,MAAM,CAAC,cAAc,EAAE,uDAAuD,CAAC;SAC/E,WAAW,CACV,OAAO,EACP;;;kEAG4D,CAC7D;SACA,MAAM,CAAC,KAAK,EAAE,IAAsC,EAAE,EAAE;QACvD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;YAC7C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/index.d.ts
DELETED
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,GAAG,GAAG,SAAS,CAAC;AACtB,MAAM,KAAK,GAAG,SAAS,CAAC;AAExB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,cAAc,CAAC;KAC3B,OAAO,CAAC,OAAO,CAAC;KAChB,aAAa,CAAC;IACb,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;IAC3C,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC;IAC1C,uBAAuB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC;IACvD,sBAAsB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC;IACtD,0BAA0B,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC;CAC3D,CAAC;KACD,WAAW,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,GAAG,iBAAiB,KAAK,IAAI,CAAC;KAC7F,WAAW,CACV,OAAO,EACP;EACF,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC;+CACY,GAAG,+CAA+C,KAAK;8CACxD,GAAG,iDAAiD,KAAK;;EAErG,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC5B,GAAG,IAAI,KAAK;IACZ,GAAG,IAAI,KAAK;IACZ,GAAG,IAAI,KAAK;IACZ,GAAG,IAAI,KAAK;IACZ,GAAG,IAAI,KAAK;IACZ,GAAG,IAAI,KAAK;IACZ,GAAG,IAAI,KAAK;IACZ,GAAG,IAAI,KAAK;IACZ,GAAG,IAAI,KAAK;IACZ,GAAG,IAAI,KAAK;IACZ,GAAG,IAAI,KAAK;IACZ,GAAG,IAAI,KAAK;CACf,CACE,CAAC;AAEJ,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAClC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAE9B,IAAI,CAAC;IACH,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;AAC7B,CAAC;AAAC,OAAO,GAAG,EAAE,CAAC;IACb,WAAW,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC"}
|
package/dist/utils/cached.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { BambooHRClient, EmployeeDirectory, TimeOffTypesResponse } from 'bamboohr-client';
|
|
2
|
-
/** Employee directory — cached 12 hours */
|
|
3
|
-
export declare function getDirectory(client: BambooHRClient): Promise<EmployeeDirectory>;
|
|
4
|
-
/** Time off types — cached 7 days */
|
|
5
|
-
export declare function getTimeOffTypes(client: BambooHRClient): Promise<TimeOffTypesResponse>;
|
|
6
|
-
/** Meta fields — cached 7 days */
|
|
7
|
-
export declare function getMetaFields(client: BambooHRClient): Promise<unknown>;
|
|
8
|
-
//# sourceMappingURL=cached.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cached.d.ts","sourceRoot":"","sources":["../../src/utils/cached.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAM/F,2CAA2C;AAC3C,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAE/E;AAED,qCAAqC;AACrC,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAErF;AAED,kCAAkC;AAClC,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAEtE"}
|
package/dist/utils/cached.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { cacheGetOrFetch } from 'cli-utils';
|
|
2
|
-
const CACHE_NAME = 'bamboohr';
|
|
3
|
-
const TWELVE_HOURS = 43_200_000;
|
|
4
|
-
const SEVEN_DAYS = 604_800_000;
|
|
5
|
-
/** Employee directory — cached 12 hours */
|
|
6
|
-
export function getDirectory(client) {
|
|
7
|
-
return cacheGetOrFetch({ name: CACHE_NAME, ttl: TWELVE_HOURS }, 'directory', () => client.employees.getDirectory());
|
|
8
|
-
}
|
|
9
|
-
/** Time off types — cached 7 days */
|
|
10
|
-
export function getTimeOffTypes(client) {
|
|
11
|
-
return cacheGetOrFetch({ name: CACHE_NAME, ttl: SEVEN_DAYS }, 'timeoff-types', () => client.timeOff.getTypes());
|
|
12
|
-
}
|
|
13
|
-
/** Meta fields — cached 7 days */
|
|
14
|
-
export function getMetaFields(client) {
|
|
15
|
-
return cacheGetOrFetch({ name: CACHE_NAME, ttl: SEVEN_DAYS }, 'meta-fields', () => client.meta.getFields());
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=cached.js.map
|
package/dist/utils/cached.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cached.js","sourceRoot":"","sources":["../../src/utils/cached.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,MAAM,UAAU,GAAG,UAAU,CAAC;AAC9B,MAAM,YAAY,GAAG,UAAU,CAAC;AAChC,MAAM,UAAU,GAAG,WAAW,CAAC;AAE/B,2CAA2C;AAC3C,MAAM,UAAU,YAAY,CAAC,MAAsB;IACjD,OAAO,eAAe,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;AACtH,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,eAAe,CAAC,MAAsB;IACpD,OAAO,eAAe,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClH,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,aAAa,CAAC,MAAsB;IAClD,OAAO,eAAe,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;AAC9G,CAAC"}
|
package/dist/utils/client.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/utils/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,wBAAgB,SAAS,IAAI,cAAc,CAoB1C"}
|
package/dist/utils/client.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { BambooHRClient } from 'bamboohr-client';
|
|
2
|
-
export function getClient() {
|
|
3
|
-
const apiToken = process.env.BAMBOO_TOKEN;
|
|
4
|
-
const companyDomain = process.env.BAMBOO_COMPANY_DOMAIN;
|
|
5
|
-
if (!apiToken || !companyDomain) {
|
|
6
|
-
const missing = [...(!apiToken ? ['BAMBOO_TOKEN'] : []), ...(!companyDomain ? ['BAMBOO_COMPANY_DOMAIN'] : [])];
|
|
7
|
-
process.stderr.write(`${JSON.stringify({
|
|
8
|
-
error: `Missing required environment variables: ${missing.join(', ')}`,
|
|
9
|
-
setup: {
|
|
10
|
-
BAMBOO_TOKEN: 'BambooHR API token — generate in BambooHR > Settings > API Keys',
|
|
11
|
-
BAMBOO_COMPANY_DOMAIN: 'Company subdomain (e.g., "mycompany" for mycompany.bamboohr.com)',
|
|
12
|
-
},
|
|
13
|
-
hint: 'Export these in your shell profile (e.g., ~/.zshrc).',
|
|
14
|
-
})}\n`);
|
|
15
|
-
process.exit(1);
|
|
16
|
-
}
|
|
17
|
-
return new BambooHRClient({ apiToken, companyDomain });
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=client.js.map
|
package/dist/utils/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/utils/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,UAAU,SAAS;IACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAC1C,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAExD,IAAI,CAAC,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/G,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,IAAI,CAAC,SAAS,CAAC;YAChB,KAAK,EAAE,2CAA2C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACtE,KAAK,EAAE;gBACL,YAAY,EAAE,iEAAiE;gBAC/E,qBAAqB,EAAE,kEAAkE;aAC1F;YACD,IAAI,EAAE,sDAAsD;SAC7D,CAAC,IAAI,CACP,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,IAAI,cAAc,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;AACzD,CAAC"}
|
package/dist/utils/output.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"AAEA,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAE1C;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAkD9C"}
|
package/dist/utils/output.js
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { stripResponse } from './strip-response.js';
|
|
2
|
-
export function output(data) {
|
|
3
|
-
process.stdout.write(`${JSON.stringify(stripResponse(data), null, 2)}\n`);
|
|
4
|
-
}
|
|
5
|
-
export function handleError(err) {
|
|
6
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
7
|
-
const axiosStatus = err?.response?.status;
|
|
8
|
-
if (axiosStatus === 400) {
|
|
9
|
-
const responseData = err?.response?.data;
|
|
10
|
-
const apiErrors = responseData && typeof responseData === 'object' ? responseData : undefined;
|
|
11
|
-
process.stderr.write(`${JSON.stringify({
|
|
12
|
-
error: 'Bad request (HTTP 400)',
|
|
13
|
-
detail: apiErrors ?? message,
|
|
14
|
-
hint: 'Check that all parameters are valid (employee IDs, field names, date formats, etc.).',
|
|
15
|
-
})}\n`);
|
|
16
|
-
}
|
|
17
|
-
else if (axiosStatus === 401) {
|
|
18
|
-
process.stderr.write(`${JSON.stringify({
|
|
19
|
-
error: 'Authentication failed (HTTP 401)',
|
|
20
|
-
hint: 'Verify that BAMBOO_TOKEN and BAMBOO_COMPANY_DOMAIN are set correctly. The token may be expired or invalid.',
|
|
21
|
-
})}\n`);
|
|
22
|
-
}
|
|
23
|
-
else if (axiosStatus === 403) {
|
|
24
|
-
const responseData = err?.response?.data;
|
|
25
|
-
process.stderr.write(`${JSON.stringify({
|
|
26
|
-
error: 'Forbidden (HTTP 403)',
|
|
27
|
-
detail: responseData && typeof responseData === 'object' ? responseData : message,
|
|
28
|
-
hint: 'Your account does not have permission for this operation. Check your BambooHR access level.',
|
|
29
|
-
})}\n`);
|
|
30
|
-
}
|
|
31
|
-
else if (axiosStatus === 404) {
|
|
32
|
-
// BambooHR returns 404 for invalid tokens instead of 401
|
|
33
|
-
process.stderr.write(`${JSON.stringify({
|
|
34
|
-
error: 'Not found (HTTP 404)',
|
|
35
|
-
hint: 'Resource not found. Note: BambooHR also returns 404 for invalid credentials — verify that BAMBOO_TOKEN and BAMBOO_COMPANY_DOMAIN are correct.',
|
|
36
|
-
})}\n`);
|
|
37
|
-
}
|
|
38
|
-
else if (message.includes('ENOTFOUND') || message.includes('ECONNREFUSED') || message.includes('ECONNRESET')) {
|
|
39
|
-
process.stderr.write(`${JSON.stringify({
|
|
40
|
-
error: `Cannot connect to BambooHR API: ${message}`,
|
|
41
|
-
hint: 'Verify that BAMBOO_COMPANY_DOMAIN is correct and you have internet connectivity.',
|
|
42
|
-
})}\n`);
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
process.stderr.write(`${JSON.stringify({ error: message })}\n`);
|
|
46
|
-
}
|
|
47
|
-
process.exit(1);
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=output.js.map
|
package/dist/utils/output.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,UAAU,MAAM,CAAC,IAAa;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,MAAM,WAAW,GAAI,GAA0C,EAAE,QAAQ,EAAE,MAAM,CAAC;IAElF,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;QACxB,MAAM,YAAY,GAAI,GAAyC,EAAE,QAAQ,EAAE,IAAI,CAAC;QAChF,MAAM,SAAS,GAAG,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9F,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,IAAI,CAAC,SAAS,CAAC;YAChB,KAAK,EAAE,wBAAwB;YAC/B,MAAM,EAAE,SAAS,IAAI,OAAO;YAC5B,IAAI,EAAE,sFAAsF;SAC7F,CAAC,IAAI,CACP,CAAC;IACJ,CAAC;SAAM,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;QAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,IAAI,CAAC,SAAS,CAAC;YAChB,KAAK,EAAE,kCAAkC;YACzC,IAAI,EAAE,4GAA4G;SACnH,CAAC,IAAI,CACP,CAAC;IACJ,CAAC;SAAM,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAI,GAAyC,EAAE,QAAQ,EAAE,IAAI,CAAC;QAChF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,IAAI,CAAC,SAAS,CAAC;YAChB,KAAK,EAAE,sBAAsB;YAC7B,MAAM,EAAE,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO;YACjF,IAAI,EAAE,6FAA6F;SACpG,CAAC,IAAI,CACP,CAAC;IACJ,CAAC;SAAM,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;QAC/B,yDAAyD;QACzD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,IAAI,CAAC,SAAS,CAAC;YAChB,KAAK,EAAE,sBAAsB;YAC7B,IAAI,EAAE,+IAA+I;SACtJ,CAAC,IAAI,CACP,CAAC;IACJ,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/G,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,IAAI,CAAC,SAAS,CAAC;YAChB,KAAK,EAAE,mCAAmC,OAAO,EAAE;YACnD,IAAI,EAAE,kFAAkF;SACzF,CAAC,IAAI,CACP,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { BambooHRClient } from 'bamboohr-client';
|
|
2
|
-
/**
|
|
3
|
-
* Resolve employee ID — returns the given ID, or fetches the current user's ID if omitted.
|
|
4
|
-
*/
|
|
5
|
-
export declare function resolveEmployeeId(client: BambooHRClient, employeeId?: string): Promise<string>;
|
|
6
|
-
//# sourceMappingURL=resolve-employee.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-employee.d.ts","sourceRoot":"","sources":["../../src/utils/resolve-employee.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIpG"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolve employee ID — returns the given ID, or fetches the current user's ID if omitted.
|
|
3
|
-
*/
|
|
4
|
-
export async function resolveEmployeeId(client, employeeId) {
|
|
5
|
-
if (employeeId)
|
|
6
|
-
return employeeId;
|
|
7
|
-
const me = await client.employees.get({ id: '0', fields: 'id' });
|
|
8
|
-
return me.id;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=resolve-employee.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-employee.js","sourceRoot":"","sources":["../../src/utils/resolve-employee.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAsB,EAAE,UAAmB;IACjF,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAClC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,OAAO,EAAE,CAAC,EAAE,CAAC;AACf,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Recursively strip verbose fields from API responses to reduce token usage.
|
|
3
|
-
* Removes: self URLs, avatar URL dicts, _links, _expandable, expand metadata.
|
|
4
|
-
*/
|
|
5
|
-
export declare function stripResponse(obj: unknown): unknown;
|
|
6
|
-
//# sourceMappingURL=strip-response.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"strip-response.d.ts","sourceRoot":"","sources":["../../src/utils/strip-response.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CA8BnD"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Recursively strip verbose fields from API responses to reduce token usage.
|
|
3
|
-
* Removes: self URLs, avatar URL dicts, _links, _expandable, expand metadata.
|
|
4
|
-
*/
|
|
5
|
-
export function stripResponse(obj) {
|
|
6
|
-
if (Array.isArray(obj)) {
|
|
7
|
-
return obj.map(stripResponse);
|
|
8
|
-
}
|
|
9
|
-
if (obj === null || typeof obj !== 'object') {
|
|
10
|
-
return obj;
|
|
11
|
-
}
|
|
12
|
-
const record = obj;
|
|
13
|
-
const result = {};
|
|
14
|
-
for (const [key, value] of Object.entries(record)) {
|
|
15
|
-
// Skip noisy fields
|
|
16
|
-
if (key === 'self' ||
|
|
17
|
-
key === '_links' ||
|
|
18
|
-
key === '_expandable' ||
|
|
19
|
-
key === 'expand' ||
|
|
20
|
-
key === 'avatarUrls' ||
|
|
21
|
-
key === 'avatarId' ||
|
|
22
|
-
key === 'iconUrl') {
|
|
23
|
-
continue;
|
|
24
|
-
}
|
|
25
|
-
result[key] = stripResponse(value);
|
|
26
|
-
}
|
|
27
|
-
return result;
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=strip-response.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"strip-response.js","sourceRoot":"","sources":["../../src/utils/strip-response.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,MAAM,GAAG,GAA8B,CAAC;IAC9C,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,oBAAoB;QACpB,IACE,GAAG,KAAK,MAAM;YACd,GAAG,KAAK,QAAQ;YAChB,GAAG,KAAK,aAAa;YACrB,GAAG,KAAK,QAAQ;YAChB,GAAG,KAAK,YAAY;YACpB,GAAG,KAAK,UAAU;YAClB,GAAG,KAAK,SAAS,EACjB,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|