@typeb-digital/nucleus-sdk 0.0.6 → 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/CHANGELOG.md +80 -0
- package/README.md +32 -5
- package/dist/cjs/index.cjs +773 -4
- package/dist/cjs/index.d.cts +602 -23
- package/dist/cjs/index.d.cts.map +1 -1
- package/dist/es/index.d.ts +602 -23
- package/dist/es/index.d.ts.map +1 -1
- package/dist/es/index.js +773 -4
- package/package.json +3 -2
package/dist/es/index.d.ts
CHANGED
|
@@ -40,6 +40,7 @@ type EmployeeIdentity = {
|
|
|
40
40
|
jobTitle: string | null;
|
|
41
41
|
department: string | null;
|
|
42
42
|
employmentStatus: string;
|
|
43
|
+
employmentType: string | null;
|
|
43
44
|
isExternal: boolean;
|
|
44
45
|
};
|
|
45
46
|
type EmployeeContact = {
|
|
@@ -76,6 +77,7 @@ type EmployeeCompensation = {
|
|
|
76
77
|
hourlyBillableRate: number | null;
|
|
77
78
|
monthlyCostRate: number | null;
|
|
78
79
|
monthlyBillableRate: number | null;
|
|
80
|
+
salary: number | null;
|
|
79
81
|
currencyCode: string;
|
|
80
82
|
effectiveFrom: string;
|
|
81
83
|
} | null;
|
|
@@ -86,6 +88,7 @@ type EmployeeCompensationHistory = {
|
|
|
86
88
|
hourlyBillableRate: number | null;
|
|
87
89
|
monthlyCostRate: number | null;
|
|
88
90
|
monthlyBillableRate: number | null;
|
|
91
|
+
salary: number | null;
|
|
89
92
|
currencyCode: string;
|
|
90
93
|
effectiveFrom: string;
|
|
91
94
|
effectiveTo: string | null;
|
|
@@ -107,6 +110,9 @@ type ProjectCore = {
|
|
|
107
110
|
id: string;
|
|
108
111
|
name: string;
|
|
109
112
|
status: string;
|
|
113
|
+
/** Pipeline lifecycle: opportunity | proposal | won | active | closed. */
|
|
114
|
+
stage: string;
|
|
115
|
+
stageChangedAt: string | null;
|
|
110
116
|
colorTag: string | null;
|
|
111
117
|
iconName: string | null;
|
|
112
118
|
startDate: string | null;
|
|
@@ -119,12 +125,18 @@ type ProjectTeam = {
|
|
|
119
125
|
engagementLeadId: string | null;
|
|
120
126
|
memberships: ProjectMembership[];
|
|
121
127
|
};
|
|
122
|
-
type ProjectFinancials =
|
|
128
|
+
type ProjectFinancials = {
|
|
129
|
+
contractValue: number | null;
|
|
130
|
+
budget: number | null;
|
|
131
|
+
marginTarget: number | null;
|
|
132
|
+
financialsCurrency: string | null;
|
|
133
|
+
};
|
|
123
134
|
type ProjectIntegrations = {
|
|
124
135
|
source: string | null;
|
|
125
136
|
clockifyProjectId: string | null;
|
|
126
137
|
clockifyWorkspaceId: string | null;
|
|
127
138
|
apolloDealId: string | null;
|
|
139
|
+
twentyOpportunityId: string | null;
|
|
128
140
|
};
|
|
129
141
|
type ProjectBucketMap = {
|
|
130
142
|
core: ProjectCore;
|
|
@@ -216,25 +228,179 @@ type GenericRateBucketMap = {
|
|
|
216
228
|
core: GenericRateCore;
|
|
217
229
|
financials: GenericRateFinancials;
|
|
218
230
|
};
|
|
231
|
+
type JurisdictionCore = {
|
|
232
|
+
id: string;
|
|
233
|
+
name: string;
|
|
234
|
+
code: string;
|
|
235
|
+
country: string | null;
|
|
236
|
+
};
|
|
237
|
+
type JurisdictionBucketMap = {
|
|
238
|
+
core: JurisdictionCore;
|
|
239
|
+
};
|
|
240
|
+
type LeaveTypeCore = {
|
|
241
|
+
id: string;
|
|
242
|
+
name: string;
|
|
243
|
+
description: string | null;
|
|
244
|
+
color: string | null;
|
|
245
|
+
sortOrder: number;
|
|
246
|
+
};
|
|
247
|
+
type LeaveTypeBucketMap = {
|
|
248
|
+
core: LeaveTypeCore;
|
|
249
|
+
};
|
|
250
|
+
type LeaveCore = {
|
|
251
|
+
id: string;
|
|
252
|
+
employeeId: string;
|
|
253
|
+
leaveTypeId: string;
|
|
254
|
+
startDate: string;
|
|
255
|
+
endDate: string;
|
|
256
|
+
days: number;
|
|
257
|
+
status: string;
|
|
258
|
+
source: string;
|
|
259
|
+
};
|
|
260
|
+
type LeaveDetails = {
|
|
261
|
+
reason: string | null;
|
|
262
|
+
};
|
|
263
|
+
type LeaveBucketMap = {
|
|
264
|
+
core: LeaveCore;
|
|
265
|
+
details: LeaveDetails;
|
|
266
|
+
};
|
|
267
|
+
type LeaveBalanceCore = {
|
|
268
|
+
id: string;
|
|
269
|
+
employeeId: string;
|
|
270
|
+
leaveTypeId: string;
|
|
271
|
+
year: number;
|
|
272
|
+
balanceDays: number;
|
|
273
|
+
};
|
|
274
|
+
type LeaveBalanceBucketMap = {
|
|
275
|
+
core: LeaveBalanceCore;
|
|
276
|
+
};
|
|
277
|
+
type PolicyCore = {
|
|
278
|
+
id: string;
|
|
279
|
+
title: string;
|
|
280
|
+
code: string;
|
|
281
|
+
category: string | null;
|
|
282
|
+
description: string | null;
|
|
283
|
+
currentVersion: number;
|
|
284
|
+
requiresAcknowledgement: boolean;
|
|
285
|
+
isPublished: boolean;
|
|
286
|
+
};
|
|
287
|
+
type PolicyContent = {
|
|
288
|
+
body: string | null;
|
|
289
|
+
fileKey: string | null;
|
|
290
|
+
};
|
|
291
|
+
type PolicyBucketMap = {
|
|
292
|
+
core: PolicyCore;
|
|
293
|
+
content: PolicyContent;
|
|
294
|
+
};
|
|
295
|
+
type PolicyAcknowledgementCore = {
|
|
296
|
+
id: string;
|
|
297
|
+
policyId: string;
|
|
298
|
+
employeeId: string;
|
|
299
|
+
version: number;
|
|
300
|
+
acknowledgedAt: string;
|
|
301
|
+
};
|
|
302
|
+
type PolicyAcknowledgementBucketMap = {
|
|
303
|
+
core: PolicyAcknowledgementCore;
|
|
304
|
+
};
|
|
305
|
+
type CalendarEventCore = {
|
|
306
|
+
id: string;
|
|
307
|
+
title: string;
|
|
308
|
+
description: string | null;
|
|
309
|
+
startDate: string;
|
|
310
|
+
endDate: string | null;
|
|
311
|
+
allDay: boolean;
|
|
312
|
+
type: string;
|
|
313
|
+
location: string | null;
|
|
314
|
+
color: string | null;
|
|
315
|
+
isPublished: boolean;
|
|
316
|
+
};
|
|
317
|
+
type CalendarEventBucketMap = {
|
|
318
|
+
core: CalendarEventCore;
|
|
319
|
+
};
|
|
320
|
+
type TimesheetCore = {
|
|
321
|
+
id: string;
|
|
322
|
+
employeeId: string;
|
|
323
|
+
projectId: string | null;
|
|
324
|
+
/** Entry start (Kimai `begin`). ISO 8601. */
|
|
325
|
+
startTime: string;
|
|
326
|
+
/** Entry end (Kimai `end`); null while running. ISO 8601. */
|
|
327
|
+
endTime: string | null;
|
|
328
|
+
durationMinutes: number;
|
|
329
|
+
billable: boolean;
|
|
330
|
+
};
|
|
331
|
+
type TimesheetDetails = {
|
|
332
|
+
description: string | null;
|
|
333
|
+
activityName: string | null;
|
|
334
|
+
};
|
|
335
|
+
type TimesheetIntegrations = {
|
|
336
|
+
source: string;
|
|
337
|
+
kimaiId: string | null;
|
|
338
|
+
kimaiActivityId: string | null;
|
|
339
|
+
};
|
|
340
|
+
type TimesheetBucketMap = {
|
|
341
|
+
core: TimesheetCore;
|
|
342
|
+
details: TimesheetDetails;
|
|
343
|
+
integrations: TimesheetIntegrations;
|
|
344
|
+
};
|
|
345
|
+
/**
|
|
346
|
+
* Per-resource scope: which buckets the app may read / create / update, and
|
|
347
|
+
* whether it may delete (record-level). Mirrors the platform's per-(resource,
|
|
348
|
+
* bucket, action) authorization. `read` drives the accessor return types;
|
|
349
|
+
* `create`/`update`/`delete` gate the mutation methods at compile time.
|
|
350
|
+
*/
|
|
351
|
+
type ResourceScope<M> = {
|
|
352
|
+
read?: readonly (keyof M)[];
|
|
353
|
+
create?: readonly (keyof M)[];
|
|
354
|
+
update?: readonly (keyof M)[];
|
|
355
|
+
delete?: boolean;
|
|
356
|
+
};
|
|
219
357
|
type ScopeDeclaration = {
|
|
220
|
-
employees?:
|
|
221
|
-
projects?:
|
|
222
|
-
clients?:
|
|
223
|
-
partners?:
|
|
224
|
-
departments?:
|
|
225
|
-
projectTypes?:
|
|
226
|
-
currencies?:
|
|
227
|
-
genericRates?:
|
|
358
|
+
employees?: ResourceScope<EmployeeBucketMap>;
|
|
359
|
+
projects?: ResourceScope<ProjectBucketMap>;
|
|
360
|
+
clients?: ResourceScope<ClientBucketMap>;
|
|
361
|
+
partners?: ResourceScope<PartnerBucketMap>;
|
|
362
|
+
departments?: ResourceScope<DepartmentBucketMap>;
|
|
363
|
+
projectTypes?: ResourceScope<ProjectTypeBucketMap>;
|
|
364
|
+
currencies?: ResourceScope<CurrencyBucketMap>;
|
|
365
|
+
genericRates?: ResourceScope<GenericRateBucketMap>;
|
|
366
|
+
jurisdictions?: ResourceScope<JurisdictionBucketMap>;
|
|
367
|
+
leaveTypes?: ResourceScope<LeaveTypeBucketMap>;
|
|
368
|
+
leaves?: ResourceScope<LeaveBucketMap>;
|
|
369
|
+
leaveBalances?: ResourceScope<LeaveBalanceBucketMap>;
|
|
370
|
+
policies?: ResourceScope<PolicyBucketMap>;
|
|
371
|
+
policyAcknowledgements?: ResourceScope<PolicyAcknowledgementBucketMap>;
|
|
372
|
+
calendarEvents?: ResourceScope<CalendarEventBucketMap>;
|
|
373
|
+
timesheets?: ResourceScope<TimesheetBucketMap>;
|
|
228
374
|
};
|
|
375
|
+
type ReadOf<RS, M> = RS extends {
|
|
376
|
+
read: readonly (keyof M)[];
|
|
377
|
+
} ? RS['read'] : readonly [];
|
|
378
|
+
type IfCreate<RS, T> = RS extends {
|
|
379
|
+
create: readonly [unknown, ...unknown[]];
|
|
380
|
+
} ? T : never;
|
|
381
|
+
type IfUpdate<RS, T> = RS extends {
|
|
382
|
+
update: readonly [unknown, ...unknown[]];
|
|
383
|
+
} ? T : never;
|
|
384
|
+
type IfDelete<RS, T> = RS extends {
|
|
385
|
+
delete: true;
|
|
386
|
+
} ? T : never;
|
|
229
387
|
type ResolveBuckets<M, B> = B extends readonly (keyof M)[] ? [B[number]] extends [never] ? NoScope : UnionToIntersection<M[B[number]]> : NoScope;
|
|
230
|
-
type ResolveEmployee<S extends ScopeDeclaration> = ResolveBuckets<EmployeeBucketMap, S['employees']
|
|
231
|
-
type ResolveProject<S extends ScopeDeclaration> = ResolveBuckets<ProjectBucketMap, S['projects']
|
|
232
|
-
type ResolveClient<S extends ScopeDeclaration> = ResolveBuckets<ClientBucketMap, S['clients']
|
|
233
|
-
type ResolvePartner<S extends ScopeDeclaration> = ResolveBuckets<PartnerBucketMap, S['partners']
|
|
234
|
-
type ResolveDepartment<S extends ScopeDeclaration> = ResolveBuckets<DepartmentBucketMap, S['departments']
|
|
235
|
-
type ResolveProjectType<S extends ScopeDeclaration> = ResolveBuckets<ProjectTypeBucketMap, S['projectTypes']
|
|
236
|
-
type ResolveCurrency<S extends ScopeDeclaration> = ResolveBuckets<CurrencyBucketMap, S['currencies']
|
|
237
|
-
type ResolveGenericRate<S extends ScopeDeclaration> = ResolveBuckets<GenericRateBucketMap, S['genericRates']
|
|
388
|
+
type ResolveEmployee<S extends ScopeDeclaration> = ResolveBuckets<EmployeeBucketMap, ReadOf<S['employees'], EmployeeBucketMap>>;
|
|
389
|
+
type ResolveProject<S extends ScopeDeclaration> = ResolveBuckets<ProjectBucketMap, ReadOf<S['projects'], ProjectBucketMap>>;
|
|
390
|
+
type ResolveClient<S extends ScopeDeclaration> = ResolveBuckets<ClientBucketMap, ReadOf<S['clients'], ClientBucketMap>>;
|
|
391
|
+
type ResolvePartner<S extends ScopeDeclaration> = ResolveBuckets<PartnerBucketMap, ReadOf<S['partners'], PartnerBucketMap>>;
|
|
392
|
+
type ResolveDepartment<S extends ScopeDeclaration> = ResolveBuckets<DepartmentBucketMap, ReadOf<S['departments'], DepartmentBucketMap>>;
|
|
393
|
+
type ResolveProjectType<S extends ScopeDeclaration> = ResolveBuckets<ProjectTypeBucketMap, ReadOf<S['projectTypes'], ProjectTypeBucketMap>>;
|
|
394
|
+
type ResolveCurrency<S extends ScopeDeclaration> = ResolveBuckets<CurrencyBucketMap, ReadOf<S['currencies'], CurrencyBucketMap>>;
|
|
395
|
+
type ResolveGenericRate<S extends ScopeDeclaration> = ResolveBuckets<GenericRateBucketMap, ReadOf<S['genericRates'], GenericRateBucketMap>>;
|
|
396
|
+
type ResolveJurisdiction<S extends ScopeDeclaration> = ResolveBuckets<JurisdictionBucketMap, ReadOf<S['jurisdictions'], JurisdictionBucketMap>>;
|
|
397
|
+
type ResolveLeaveType<S extends ScopeDeclaration> = ResolveBuckets<LeaveTypeBucketMap, ReadOf<S['leaveTypes'], LeaveTypeBucketMap>>;
|
|
398
|
+
type ResolveLeave<S extends ScopeDeclaration> = ResolveBuckets<LeaveBucketMap, ReadOf<S['leaves'], LeaveBucketMap>>;
|
|
399
|
+
type ResolveLeaveBalance<S extends ScopeDeclaration> = ResolveBuckets<LeaveBalanceBucketMap, ReadOf<S['leaveBalances'], LeaveBalanceBucketMap>>;
|
|
400
|
+
type ResolvePolicy<S extends ScopeDeclaration> = ResolveBuckets<PolicyBucketMap, ReadOf<S['policies'], PolicyBucketMap>>;
|
|
401
|
+
type ResolvePolicyAcknowledgement<S extends ScopeDeclaration> = ResolveBuckets<PolicyAcknowledgementBucketMap, ReadOf<S['policyAcknowledgements'], PolicyAcknowledgementBucketMap>>;
|
|
402
|
+
type ResolveCalendarEvent<S extends ScopeDeclaration> = ResolveBuckets<CalendarEventBucketMap, ReadOf<S['calendarEvents'], CalendarEventBucketMap>>;
|
|
403
|
+
type ResolveTimesheet<S extends ScopeDeclaration> = ResolveBuckets<TimesheetBucketMap, ReadOf<S['timesheets'], TimesheetBucketMap>>;
|
|
238
404
|
type EmployeeExpandPath = 'manager' | 'partner';
|
|
239
405
|
type WithEmployeeExpand<T, E extends readonly EmployeeExpandPath[], S extends ScopeDeclaration> = T & ('manager' extends E[number] ? {
|
|
240
406
|
manager: ResolveEmployee<S> | null;
|
|
@@ -274,6 +440,173 @@ type PartnerExpandPath = 'employees';
|
|
|
274
440
|
type WithPartnerExpand<T, E extends readonly PartnerExpandPath[], S extends ScopeDeclaration> = T & ('employees' extends E[number] ? {
|
|
275
441
|
employees: Array<ResolveEmployee<S>>;
|
|
276
442
|
} : unknown);
|
|
443
|
+
type LeaveExpandPath = 'employee' | 'leaveType';
|
|
444
|
+
type WithLeaveExpand<T, E extends readonly LeaveExpandPath[], S extends ScopeDeclaration> = T & ('employee' extends E[number] ? {
|
|
445
|
+
employee: ResolveEmployee<S> | null;
|
|
446
|
+
} : unknown) & ('leaveType' extends E[number] ? {
|
|
447
|
+
leaveType: ResolveLeaveType<S> | null;
|
|
448
|
+
} : unknown);
|
|
449
|
+
type LeaveBalanceExpandPath = 'employee' | 'leaveType';
|
|
450
|
+
type WithLeaveBalanceExpand<T, E extends readonly LeaveBalanceExpandPath[], S extends ScopeDeclaration> = T & ('employee' extends E[number] ? {
|
|
451
|
+
employee: ResolveEmployee<S> | null;
|
|
452
|
+
} : unknown) & ('leaveType' extends E[number] ? {
|
|
453
|
+
leaveType: ResolveLeaveType<S> | null;
|
|
454
|
+
} : unknown);
|
|
455
|
+
type PolicyAcknowledgementExpandPath = 'employee' | 'policy';
|
|
456
|
+
type WithPolicyAcknowledgementExpand<T, E extends readonly PolicyAcknowledgementExpandPath[], S extends ScopeDeclaration> = T & ('employee' extends E[number] ? {
|
|
457
|
+
employee: ResolveEmployee<S> | null;
|
|
458
|
+
} : unknown) & ('policy' extends E[number] ? {
|
|
459
|
+
policy: ResolvePolicy<S> | null;
|
|
460
|
+
} : unknown);
|
|
461
|
+
type TimesheetExpandPath = 'employee' | 'project';
|
|
462
|
+
type WithTimesheetExpand<T, E extends readonly TimesheetExpandPath[], S extends ScopeDeclaration> = T & ('employee' extends E[number] ? {
|
|
463
|
+
employee: ResolveEmployee<S> | null;
|
|
464
|
+
} : unknown) & ('project' extends E[number] ? {
|
|
465
|
+
project: ResolveProject<S> | null;
|
|
466
|
+
} : unknown);
|
|
467
|
+
type LeaveCreateInput = {
|
|
468
|
+
employeeId: string;
|
|
469
|
+
leaveTypeId: string;
|
|
470
|
+
startDate: string;
|
|
471
|
+
endDate: string;
|
|
472
|
+
days: number;
|
|
473
|
+
reason?: string | null;
|
|
474
|
+
status?: string;
|
|
475
|
+
source?: string;
|
|
476
|
+
};
|
|
477
|
+
type LeaveUpdateInput = Partial<LeaveCreateInput>;
|
|
478
|
+
type EmployeeUpdateInput = {
|
|
479
|
+
managerId?: string | null;
|
|
480
|
+
timezone?: string | null;
|
|
481
|
+
};
|
|
482
|
+
type ProjectCreateInput = {
|
|
483
|
+
name: string;
|
|
484
|
+
status?: string | null;
|
|
485
|
+
source?: string | null;
|
|
486
|
+
startDate?: string | null;
|
|
487
|
+
endDate?: string | null;
|
|
488
|
+
colorTag?: string | null;
|
|
489
|
+
iconName?: string | null;
|
|
490
|
+
clientId: string;
|
|
491
|
+
projectTypeId?: string | null;
|
|
492
|
+
projectManagerId?: string | null;
|
|
493
|
+
engagementLeadId?: string | null;
|
|
494
|
+
};
|
|
495
|
+
type ProjectUpdateInput = Partial<ProjectCreateInput>;
|
|
496
|
+
type ClientCreateInput = {
|
|
497
|
+
name: string;
|
|
498
|
+
code: string;
|
|
499
|
+
industry?: string | null;
|
|
500
|
+
website?: string | null;
|
|
501
|
+
country?: string | null;
|
|
502
|
+
contactPhone?: string | null;
|
|
503
|
+
defaultCurrency?: string | null;
|
|
504
|
+
primaryContactName?: string | null;
|
|
505
|
+
primaryContactEmail?: string | null;
|
|
506
|
+
notes?: string | null;
|
|
507
|
+
};
|
|
508
|
+
type ClientUpdateInput = Partial<ClientCreateInput>;
|
|
509
|
+
type PartnerCreateInput = {
|
|
510
|
+
name: string;
|
|
511
|
+
contactName?: string | null;
|
|
512
|
+
contactEmail?: string | null;
|
|
513
|
+
contactPhone?: string | null;
|
|
514
|
+
notes?: string | null;
|
|
515
|
+
};
|
|
516
|
+
type PartnerUpdateInput = Partial<PartnerCreateInput>;
|
|
517
|
+
type DepartmentCreateInput = {
|
|
518
|
+
name: string;
|
|
519
|
+
titles?: string[];
|
|
520
|
+
sortOrder?: number;
|
|
521
|
+
};
|
|
522
|
+
type DepartmentUpdateInput = Partial<DepartmentCreateInput>;
|
|
523
|
+
type ProjectTypeCreateInput = {
|
|
524
|
+
name: string;
|
|
525
|
+
description?: string | null;
|
|
526
|
+
sortOrder?: number;
|
|
527
|
+
};
|
|
528
|
+
type ProjectTypeUpdateInput = Partial<ProjectTypeCreateInput>;
|
|
529
|
+
type CurrencyCreateInput = {
|
|
530
|
+
code: string;
|
|
531
|
+
name: string;
|
|
532
|
+
symbol?: string | null;
|
|
533
|
+
isDefault?: boolean;
|
|
534
|
+
sortOrder?: number;
|
|
535
|
+
};
|
|
536
|
+
type CurrencyUpdateInput = Partial<Omit<CurrencyCreateInput, 'code'>>;
|
|
537
|
+
type GenericRateCreateInput = {
|
|
538
|
+
title: string;
|
|
539
|
+
department: string;
|
|
540
|
+
costRate: number;
|
|
541
|
+
billableRate: number;
|
|
542
|
+
currencyCode?: string;
|
|
543
|
+
};
|
|
544
|
+
type GenericRateUpdateInput = Partial<GenericRateCreateInput>;
|
|
545
|
+
type JurisdictionCreateInput = {
|
|
546
|
+
name: string;
|
|
547
|
+
code: string;
|
|
548
|
+
country?: string | null;
|
|
549
|
+
};
|
|
550
|
+
type JurisdictionUpdateInput = Partial<JurisdictionCreateInput>;
|
|
551
|
+
type LeaveTypeCreateInput = {
|
|
552
|
+
name: string;
|
|
553
|
+
description?: string | null;
|
|
554
|
+
color?: string | null;
|
|
555
|
+
sortOrder?: number;
|
|
556
|
+
};
|
|
557
|
+
type LeaveTypeUpdateInput = Partial<LeaveTypeCreateInput>;
|
|
558
|
+
type LeaveBalanceCreateInput = {
|
|
559
|
+
employeeId: string;
|
|
560
|
+
leaveTypeId: string;
|
|
561
|
+
year: number;
|
|
562
|
+
balanceDays?: number;
|
|
563
|
+
};
|
|
564
|
+
type LeaveBalanceUpdateInput = Partial<LeaveBalanceCreateInput>;
|
|
565
|
+
type PolicyCreateInput = {
|
|
566
|
+
title: string;
|
|
567
|
+
code: string;
|
|
568
|
+
category?: string | null;
|
|
569
|
+
description?: string | null;
|
|
570
|
+
body?: string | null;
|
|
571
|
+
fileKey?: string | null;
|
|
572
|
+
currentVersion?: number;
|
|
573
|
+
requiresAcknowledgement?: boolean;
|
|
574
|
+
isPublished?: boolean;
|
|
575
|
+
};
|
|
576
|
+
type PolicyUpdateInput = Partial<PolicyCreateInput>;
|
|
577
|
+
type PolicyAcknowledgementCreateInput = {
|
|
578
|
+
policyId: string;
|
|
579
|
+
employeeId: string;
|
|
580
|
+
version: number;
|
|
581
|
+
acknowledgedAt?: string;
|
|
582
|
+
};
|
|
583
|
+
type PolicyAcknowledgementUpdateInput = Partial<PolicyAcknowledgementCreateInput>;
|
|
584
|
+
type CalendarEventCreateInput = {
|
|
585
|
+
title: string;
|
|
586
|
+
description?: string | null;
|
|
587
|
+
startDate: string;
|
|
588
|
+
endDate?: string | null;
|
|
589
|
+
allDay?: boolean;
|
|
590
|
+
type?: string;
|
|
591
|
+
location?: string | null;
|
|
592
|
+
color?: string | null;
|
|
593
|
+
isPublished?: boolean;
|
|
594
|
+
};
|
|
595
|
+
type CalendarEventUpdateInput = Partial<CalendarEventCreateInput>;
|
|
596
|
+
type TimesheetCreateInput = {
|
|
597
|
+
employeeId: string;
|
|
598
|
+
projectId?: string | null;
|
|
599
|
+
startTime: string;
|
|
600
|
+
endTime?: string | null;
|
|
601
|
+
durationMinutes: number;
|
|
602
|
+
description?: string | null;
|
|
603
|
+
activityName?: string | null;
|
|
604
|
+
billable?: boolean;
|
|
605
|
+
source?: string;
|
|
606
|
+
kimaiId?: string | null;
|
|
607
|
+
kimaiActivityId?: string | null;
|
|
608
|
+
};
|
|
609
|
+
type TimesheetUpdateInput = Partial<TimesheetCreateInput>;
|
|
277
610
|
type AppScopeInfo = {
|
|
278
611
|
id: string;
|
|
279
612
|
resource: string;
|
|
@@ -281,19 +614,34 @@ type AppScopeInfo = {
|
|
|
281
614
|
status: 'active' | 'pending' | 'rejected';
|
|
282
615
|
reviewNote: string | null;
|
|
283
616
|
};
|
|
617
|
+
type AppPermissionInfo = {
|
|
618
|
+
resource: string;
|
|
619
|
+
bucket: string | null;
|
|
620
|
+
action: 'read' | 'create' | 'update' | 'delete';
|
|
621
|
+
status: 'active' | 'pending' | 'rejected';
|
|
622
|
+
reviewNote: string | null;
|
|
623
|
+
};
|
|
284
624
|
type AppInfo = {
|
|
285
625
|
id: string;
|
|
286
626
|
appId: string;
|
|
287
627
|
name: string;
|
|
288
628
|
description: string | null;
|
|
289
629
|
icon: string | null;
|
|
290
|
-
|
|
630
|
+
/** Publish lifecycle: draft | submitted | published | changes_requested | suspended. */
|
|
291
631
|
status: string;
|
|
632
|
+
redirectUris: string[];
|
|
633
|
+
submittedAt: string | null;
|
|
634
|
+
publishedAt: string | null;
|
|
635
|
+
reviewNote: string | null;
|
|
636
|
+
/** Back-compat aggregate of permissions grouped by resource. */
|
|
292
637
|
scopes: AppScopeInfo[];
|
|
638
|
+
/** Normalized per-(resource, bucket, action) permission rows. */
|
|
639
|
+
permissions?: AppPermissionInfo[];
|
|
293
640
|
tokens: {
|
|
294
641
|
id: string;
|
|
295
642
|
tokenPrefix: string;
|
|
296
|
-
environment
|
|
643
|
+
/** 'live' | 'test' — replaces the removed `environment`. */
|
|
644
|
+
mode: string;
|
|
297
645
|
status: string;
|
|
298
646
|
lastUsedAt: string | null;
|
|
299
647
|
expiresAt: string | null;
|
|
@@ -313,6 +661,8 @@ declare class NucleusTransport {
|
|
|
313
661
|
constructor(token: string, baseUrl?: string);
|
|
314
662
|
get<T>(path: string, query?: Record<string, string | number | undefined>): Promise<SuccessResult<T> | ErrorResult>;
|
|
315
663
|
post<T>(path: string, body: unknown): Promise<SuccessResult<T> | ErrorResult>;
|
|
664
|
+
put<T>(path: string, body: unknown): Promise<SuccessResult<T> | ErrorResult>;
|
|
665
|
+
patch<T>(path: string, body: unknown): Promise<SuccessResult<T> | ErrorResult>;
|
|
316
666
|
del<T = null>(path: string, query?: Record<string, string | undefined>): Promise<SuccessResult<T> | ErrorResult>;
|
|
317
667
|
getList<T>(path: string, query?: Record<string, string | number | undefined>): Promise<ListResult<T> | ErrorResult>;
|
|
318
668
|
}
|
|
@@ -334,6 +684,10 @@ declare class EmployeesAccessor<S extends ScopeDeclaration> {
|
|
|
334
684
|
getById<E extends readonly EmployeeExpandPath[] = never[]>(id: string, options?: {
|
|
335
685
|
expand?: E;
|
|
336
686
|
}): Promise<SingleResult<WithEmployeeExpand<ResolveEmployee<S>, E, S>>>;
|
|
687
|
+
/** Update an employee (managerId / timezone overrides). Requires `employees.update` scope. */
|
|
688
|
+
update(id: string, data: IfUpdate<S['employees'], EmployeeUpdateInput>): Promise<SingleResult<ResolveEmployee<S>>>;
|
|
689
|
+
/** Soft-delete an employee. Requires `employees.delete` scope. */
|
|
690
|
+
delete(id: IfDelete<S['employees'], string>): Promise<SingleResult<null>>;
|
|
337
691
|
}
|
|
338
692
|
|
|
339
693
|
type ProjectListParams = {
|
|
@@ -353,6 +707,12 @@ declare class ProjectsAccessor<S extends ScopeDeclaration> {
|
|
|
353
707
|
getById<E extends readonly ProjectExpandPath[] = never[]>(id: string, options?: {
|
|
354
708
|
expand?: E;
|
|
355
709
|
}): Promise<SingleResult<WithProjectExpand<ResolveProject<S>, E, S>>>;
|
|
710
|
+
/** Create a project. Requires `projects.create` scope. */
|
|
711
|
+
create(data: IfCreate<S['projects'], ProjectCreateInput>): Promise<SingleResult<ResolveProject<S>>>;
|
|
712
|
+
/** Update a project. Requires `projects.update` scope. */
|
|
713
|
+
update(id: string, data: IfUpdate<S['projects'], ProjectUpdateInput>): Promise<SingleResult<ResolveProject<S>>>;
|
|
714
|
+
/** Soft-delete a project. Requires `projects.delete` scope. */
|
|
715
|
+
delete(id: IfDelete<S['projects'], string>): Promise<SingleResult<null>>;
|
|
356
716
|
}
|
|
357
717
|
|
|
358
718
|
type ClientListParams = {
|
|
@@ -372,6 +732,12 @@ declare class ClientsAccessor<S extends ScopeDeclaration> {
|
|
|
372
732
|
getById<E extends readonly ClientExpandPath[] = never[]>(id: string, options?: {
|
|
373
733
|
expand?: E;
|
|
374
734
|
}): Promise<SingleResult<WithClientExpand<ResolveClient<S>, E, S>>>;
|
|
735
|
+
/** Create a client. Requires `clients.create` scope. */
|
|
736
|
+
create(data: IfCreate<S['clients'], ClientCreateInput>): Promise<SingleResult<ResolveClient<S>>>;
|
|
737
|
+
/** Update a client. Requires `clients.update` scope. */
|
|
738
|
+
update(id: string, data: IfUpdate<S['clients'], ClientUpdateInput>): Promise<SingleResult<ResolveClient<S>>>;
|
|
739
|
+
/** Soft-delete a client. Requires `clients.delete` scope. */
|
|
740
|
+
delete(id: IfDelete<S['clients'], string>): Promise<SingleResult<null>>;
|
|
375
741
|
}
|
|
376
742
|
|
|
377
743
|
type PartnerListParams = {
|
|
@@ -389,6 +755,12 @@ declare class PartnersAccessor<S extends ScopeDeclaration> {
|
|
|
389
755
|
getById<E extends readonly PartnerExpandPath[] = never[]>(id: string, options?: {
|
|
390
756
|
expand?: E;
|
|
391
757
|
}): Promise<SingleResult<WithPartnerExpand<ResolvePartner<S>, E, S>>>;
|
|
758
|
+
/** Create a partner. Requires `partners.create` scope. */
|
|
759
|
+
create(data: IfCreate<S['partners'], PartnerCreateInput>): Promise<SingleResult<ResolvePartner<S>>>;
|
|
760
|
+
/** Update a partner. Requires `partners.update` scope. */
|
|
761
|
+
update(id: string, data: IfUpdate<S['partners'], PartnerUpdateInput>): Promise<SingleResult<ResolvePartner<S>>>;
|
|
762
|
+
/** Soft-delete a partner. Requires `partners.delete` scope. */
|
|
763
|
+
delete(id: IfDelete<S['partners'], string>): Promise<SingleResult<null>>;
|
|
392
764
|
}
|
|
393
765
|
|
|
394
766
|
type DepartmentListParams = {
|
|
@@ -401,6 +773,12 @@ declare class DepartmentsAccessor<S extends ScopeDeclaration> {
|
|
|
401
773
|
constructor(transport: NucleusTransport);
|
|
402
774
|
list(params?: DepartmentListParams): Promise<PaginatedResult<ResolveDepartment<S>>>;
|
|
403
775
|
getById(id: string): Promise<SingleResult<ResolveDepartment<S>>>;
|
|
776
|
+
/** Create a department. Requires `departments.create` scope. */
|
|
777
|
+
create(data: IfCreate<S['departments'], DepartmentCreateInput>): Promise<SingleResult<ResolveDepartment<S>>>;
|
|
778
|
+
/** Update a department. Requires `departments.update` scope. */
|
|
779
|
+
update(id: string, data: IfUpdate<S['departments'], DepartmentUpdateInput>): Promise<SingleResult<ResolveDepartment<S>>>;
|
|
780
|
+
/** Soft-delete a department. Requires `departments.delete` scope. */
|
|
781
|
+
delete(id: IfDelete<S['departments'], string>): Promise<SingleResult<null>>;
|
|
404
782
|
}
|
|
405
783
|
|
|
406
784
|
type ProjectTypeListParams = {
|
|
@@ -412,6 +790,12 @@ declare class ProjectTypesAccessor<S extends ScopeDeclaration> {
|
|
|
412
790
|
constructor(transport: NucleusTransport);
|
|
413
791
|
list(params?: ProjectTypeListParams): Promise<PaginatedResult<ResolveProjectType<S>>>;
|
|
414
792
|
getById(id: string): Promise<SingleResult<ResolveProjectType<S>>>;
|
|
793
|
+
/** Create a project type. Requires `projectTypes.create` scope. */
|
|
794
|
+
create(data: IfCreate<S['projectTypes'], ProjectTypeCreateInput>): Promise<SingleResult<ResolveProjectType<S>>>;
|
|
795
|
+
/** Update a project type. Requires `projectTypes.update` scope. */
|
|
796
|
+
update(id: string, data: IfUpdate<S['projectTypes'], ProjectTypeUpdateInput>): Promise<SingleResult<ResolveProjectType<S>>>;
|
|
797
|
+
/** Soft-delete a project type. Requires `projectTypes.delete` scope. */
|
|
798
|
+
delete(id: IfDelete<S['projectTypes'], string>): Promise<SingleResult<null>>;
|
|
415
799
|
}
|
|
416
800
|
|
|
417
801
|
type CurrencyListParams = {
|
|
@@ -423,6 +807,15 @@ declare class CurrenciesAccessor<S extends ScopeDeclaration> {
|
|
|
423
807
|
constructor(transport: NucleusTransport);
|
|
424
808
|
list(params?: CurrencyListParams): Promise<PaginatedResult<ResolveCurrency<S>>>;
|
|
425
809
|
getByCode(code: string): Promise<SingleResult<ResolveCurrency<S>>>;
|
|
810
|
+
/** Create a currency. Requires `currencies.create` scope. */
|
|
811
|
+
create(data: IfCreate<S['currencies'], CurrencyCreateInput>): Promise<SingleResult<ResolveCurrency<S>>>;
|
|
812
|
+
/**
|
|
813
|
+
* Update a currency (keyed by its ISO code; `code` itself is immutable).
|
|
814
|
+
* Requires `currencies.update` scope.
|
|
815
|
+
*/
|
|
816
|
+
update(code: string, data: IfUpdate<S['currencies'], CurrencyUpdateInput>): Promise<SingleResult<ResolveCurrency<S>>>;
|
|
817
|
+
/** Soft-delete a currency (keyed by its ISO code). Requires `currencies.delete` scope. */
|
|
818
|
+
delete(code: IfDelete<S['currencies'], string>): Promise<SingleResult<null>>;
|
|
426
819
|
}
|
|
427
820
|
|
|
428
821
|
type GenericRateListParams = {
|
|
@@ -435,6 +828,184 @@ declare class GenericRatesAccessor<S extends ScopeDeclaration> {
|
|
|
435
828
|
constructor(transport: NucleusTransport);
|
|
436
829
|
list(params?: GenericRateListParams): Promise<PaginatedResult<ResolveGenericRate<S>>>;
|
|
437
830
|
getById(id: string): Promise<SingleResult<ResolveGenericRate<S>>>;
|
|
831
|
+
/** Create a generic rate. Requires `genericRates.create` scope. */
|
|
832
|
+
create(data: IfCreate<S['genericRates'], GenericRateCreateInput>): Promise<SingleResult<ResolveGenericRate<S>>>;
|
|
833
|
+
/** Update a generic rate. Requires `genericRates.update` scope. */
|
|
834
|
+
update(id: string, data: IfUpdate<S['genericRates'], GenericRateUpdateInput>): Promise<SingleResult<ResolveGenericRate<S>>>;
|
|
835
|
+
/** Soft-delete a generic rate. Requires `genericRates.delete` scope. */
|
|
836
|
+
delete(id: IfDelete<S['genericRates'], string>): Promise<SingleResult<null>>;
|
|
837
|
+
}
|
|
838
|
+
|
|
839
|
+
type JurisdictionListParams = {
|
|
840
|
+
search?: string;
|
|
841
|
+
page?: number;
|
|
842
|
+
pageSize?: number;
|
|
843
|
+
};
|
|
844
|
+
declare class JurisdictionsAccessor<S extends ScopeDeclaration> {
|
|
845
|
+
private readonly transport;
|
|
846
|
+
constructor(transport: NucleusTransport);
|
|
847
|
+
list(params?: JurisdictionListParams): Promise<PaginatedResult<ResolveJurisdiction<S>>>;
|
|
848
|
+
getById(id: string): Promise<SingleResult<ResolveJurisdiction<S>>>;
|
|
849
|
+
/** Create a jurisdiction. Requires `jurisdictions.create` scope. */
|
|
850
|
+
create(data: IfCreate<S['jurisdictions'], JurisdictionCreateInput>): Promise<SingleResult<ResolveJurisdiction<S>>>;
|
|
851
|
+
/** Update a jurisdiction. Requires `jurisdictions.update` scope. */
|
|
852
|
+
update(id: string, data: IfUpdate<S['jurisdictions'], JurisdictionUpdateInput>): Promise<SingleResult<ResolveJurisdiction<S>>>;
|
|
853
|
+
/** Soft-delete a jurisdiction. Requires `jurisdictions.delete` scope. */
|
|
854
|
+
delete(id: IfDelete<S['jurisdictions'], string>): Promise<SingleResult<null>>;
|
|
855
|
+
}
|
|
856
|
+
|
|
857
|
+
type LeaveTypeListParams = {
|
|
858
|
+
search?: string;
|
|
859
|
+
page?: number;
|
|
860
|
+
pageSize?: number;
|
|
861
|
+
};
|
|
862
|
+
declare class LeaveTypesAccessor<S extends ScopeDeclaration> {
|
|
863
|
+
private readonly transport;
|
|
864
|
+
constructor(transport: NucleusTransport);
|
|
865
|
+
list(params?: LeaveTypeListParams): Promise<PaginatedResult<ResolveLeaveType<S>>>;
|
|
866
|
+
getById(id: string): Promise<SingleResult<ResolveLeaveType<S>>>;
|
|
867
|
+
/** Create a leave type. Requires `leaveTypes.create` scope. */
|
|
868
|
+
create(data: IfCreate<S['leaveTypes'], LeaveTypeCreateInput>): Promise<SingleResult<ResolveLeaveType<S>>>;
|
|
869
|
+
/** Update a leave type. Requires `leaveTypes.update` scope. */
|
|
870
|
+
update(id: string, data: IfUpdate<S['leaveTypes'], LeaveTypeUpdateInput>): Promise<SingleResult<ResolveLeaveType<S>>>;
|
|
871
|
+
/** Soft-delete a leave type. Requires `leaveTypes.delete` scope. */
|
|
872
|
+
delete(id: IfDelete<S['leaveTypes'], string>): Promise<SingleResult<null>>;
|
|
873
|
+
}
|
|
874
|
+
|
|
875
|
+
type LeaveListParams = {
|
|
876
|
+
employeeId?: string;
|
|
877
|
+
leaveTypeId?: string;
|
|
878
|
+
status?: string;
|
|
879
|
+
page?: number;
|
|
880
|
+
pageSize?: number;
|
|
881
|
+
expand?: readonly LeaveExpandPath[];
|
|
882
|
+
};
|
|
883
|
+
declare class LeavesAccessor<S extends ScopeDeclaration> {
|
|
884
|
+
private readonly transport;
|
|
885
|
+
constructor(transport: NucleusTransport);
|
|
886
|
+
list<E extends readonly LeaveExpandPath[] = never[]>(params?: LeaveListParams & {
|
|
887
|
+
expand?: E;
|
|
888
|
+
}): Promise<PaginatedResult<WithLeaveExpand<ResolveLeave<S>, E, S>>>;
|
|
889
|
+
getById<E extends readonly LeaveExpandPath[] = never[]>(id: string, options?: {
|
|
890
|
+
expand?: E;
|
|
891
|
+
}): Promise<SingleResult<WithLeaveExpand<ResolveLeave<S>, E, S>>>;
|
|
892
|
+
/** Create a leave record. Requires `leaves.create` scope. */
|
|
893
|
+
create(data: IfCreate<S['leaves'], LeaveCreateInput>): Promise<SingleResult<ResolveLeave<S>>>;
|
|
894
|
+
/** Update a leave record. Requires `leaves.update` scope. */
|
|
895
|
+
update(id: string, data: IfUpdate<S['leaves'], LeaveUpdateInput>): Promise<SingleResult<ResolveLeave<S>>>;
|
|
896
|
+
/** Soft-delete a leave record. Requires `leaves.delete` scope. */
|
|
897
|
+
delete(id: IfDelete<S['leaves'], string>): Promise<SingleResult<null>>;
|
|
898
|
+
}
|
|
899
|
+
|
|
900
|
+
type LeaveBalanceListParams = {
|
|
901
|
+
employeeId?: string;
|
|
902
|
+
leaveTypeId?: string;
|
|
903
|
+
year?: number;
|
|
904
|
+
page?: number;
|
|
905
|
+
pageSize?: number;
|
|
906
|
+
expand?: readonly LeaveBalanceExpandPath[];
|
|
907
|
+
};
|
|
908
|
+
declare class LeaveBalancesAccessor<S extends ScopeDeclaration> {
|
|
909
|
+
private readonly transport;
|
|
910
|
+
constructor(transport: NucleusTransport);
|
|
911
|
+
list<E extends readonly LeaveBalanceExpandPath[] = never[]>(params?: LeaveBalanceListParams & {
|
|
912
|
+
expand?: E;
|
|
913
|
+
}): Promise<PaginatedResult<WithLeaveBalanceExpand<ResolveLeaveBalance<S>, E, S>>>;
|
|
914
|
+
getById<E extends readonly LeaveBalanceExpandPath[] = never[]>(id: string, options?: {
|
|
915
|
+
expand?: E;
|
|
916
|
+
}): Promise<SingleResult<WithLeaveBalanceExpand<ResolveLeaveBalance<S>, E, S>>>;
|
|
917
|
+
/** Create a leave balance. Requires `leaveBalances.create` scope. */
|
|
918
|
+
create(data: IfCreate<S['leaveBalances'], LeaveBalanceCreateInput>): Promise<SingleResult<ResolveLeaveBalance<S>>>;
|
|
919
|
+
/** Update a leave balance. Requires `leaveBalances.update` scope. */
|
|
920
|
+
update(id: string, data: IfUpdate<S['leaveBalances'], LeaveBalanceUpdateInput>): Promise<SingleResult<ResolveLeaveBalance<S>>>;
|
|
921
|
+
/** Soft-delete a leave balance. Requires `leaveBalances.delete` scope. */
|
|
922
|
+
delete(id: IfDelete<S['leaveBalances'], string>): Promise<SingleResult<null>>;
|
|
923
|
+
}
|
|
924
|
+
|
|
925
|
+
type PolicyListParams = {
|
|
926
|
+
search?: string;
|
|
927
|
+
category?: string;
|
|
928
|
+
page?: number;
|
|
929
|
+
pageSize?: number;
|
|
930
|
+
};
|
|
931
|
+
declare class PoliciesAccessor<S extends ScopeDeclaration> {
|
|
932
|
+
private readonly transport;
|
|
933
|
+
constructor(transport: NucleusTransport);
|
|
934
|
+
list(params?: PolicyListParams): Promise<PaginatedResult<ResolvePolicy<S>>>;
|
|
935
|
+
getById(id: string): Promise<SingleResult<ResolvePolicy<S>>>;
|
|
936
|
+
/** Create a policy. Requires `policies.create` scope. */
|
|
937
|
+
create(data: IfCreate<S['policies'], PolicyCreateInput>): Promise<SingleResult<ResolvePolicy<S>>>;
|
|
938
|
+
/** Update a policy. Requires `policies.update` scope. */
|
|
939
|
+
update(id: string, data: IfUpdate<S['policies'], PolicyUpdateInput>): Promise<SingleResult<ResolvePolicy<S>>>;
|
|
940
|
+
/** Soft-delete a policy. Requires `policies.delete` scope. */
|
|
941
|
+
delete(id: IfDelete<S['policies'], string>): Promise<SingleResult<null>>;
|
|
942
|
+
}
|
|
943
|
+
|
|
944
|
+
type PolicyAcknowledgementListParams = {
|
|
945
|
+
policyId?: string;
|
|
946
|
+
employeeId?: string;
|
|
947
|
+
page?: number;
|
|
948
|
+
pageSize?: number;
|
|
949
|
+
expand?: readonly PolicyAcknowledgementExpandPath[];
|
|
950
|
+
};
|
|
951
|
+
declare class PolicyAcknowledgementsAccessor<S extends ScopeDeclaration> {
|
|
952
|
+
private readonly transport;
|
|
953
|
+
constructor(transport: NucleusTransport);
|
|
954
|
+
list<E extends readonly PolicyAcknowledgementExpandPath[] = never[]>(params?: PolicyAcknowledgementListParams & {
|
|
955
|
+
expand?: E;
|
|
956
|
+
}): Promise<PaginatedResult<WithPolicyAcknowledgementExpand<ResolvePolicyAcknowledgement<S>, E, S>>>;
|
|
957
|
+
getById<E extends readonly PolicyAcknowledgementExpandPath[] = never[]>(id: string, options?: {
|
|
958
|
+
expand?: E;
|
|
959
|
+
}): Promise<SingleResult<WithPolicyAcknowledgementExpand<ResolvePolicyAcknowledgement<S>, E, S>>>;
|
|
960
|
+
/** Create a policy acknowledgement. Requires `policyAcknowledgements.create` scope. */
|
|
961
|
+
create(data: IfCreate<S['policyAcknowledgements'], PolicyAcknowledgementCreateInput>): Promise<SingleResult<ResolvePolicyAcknowledgement<S>>>;
|
|
962
|
+
/** Update a policy acknowledgement. Requires `policyAcknowledgements.update` scope. */
|
|
963
|
+
update(id: string, data: IfUpdate<S['policyAcknowledgements'], PolicyAcknowledgementUpdateInput>): Promise<SingleResult<ResolvePolicyAcknowledgement<S>>>;
|
|
964
|
+
/** Soft-delete a policy acknowledgement. Requires `policyAcknowledgements.delete` scope. */
|
|
965
|
+
delete(id: IfDelete<S['policyAcknowledgements'], string>): Promise<SingleResult<null>>;
|
|
966
|
+
}
|
|
967
|
+
|
|
968
|
+
type CalendarEventListParams = {
|
|
969
|
+
search?: string;
|
|
970
|
+
type?: string;
|
|
971
|
+
page?: number;
|
|
972
|
+
pageSize?: number;
|
|
973
|
+
};
|
|
974
|
+
declare class CalendarEventsAccessor<S extends ScopeDeclaration> {
|
|
975
|
+
private readonly transport;
|
|
976
|
+
constructor(transport: NucleusTransport);
|
|
977
|
+
list(params?: CalendarEventListParams): Promise<PaginatedResult<ResolveCalendarEvent<S>>>;
|
|
978
|
+
getById(id: string): Promise<SingleResult<ResolveCalendarEvent<S>>>;
|
|
979
|
+
/** Create a calendar event. Requires `calendarEvents.create` scope. */
|
|
980
|
+
create(data: IfCreate<S['calendarEvents'], CalendarEventCreateInput>): Promise<SingleResult<ResolveCalendarEvent<S>>>;
|
|
981
|
+
/** Update a calendar event. Requires `calendarEvents.update` scope. */
|
|
982
|
+
update(id: string, data: IfUpdate<S['calendarEvents'], CalendarEventUpdateInput>): Promise<SingleResult<ResolveCalendarEvent<S>>>;
|
|
983
|
+
/** Soft-delete a calendar event. Requires `calendarEvents.delete` scope. */
|
|
984
|
+
delete(id: IfDelete<S['calendarEvents'], string>): Promise<SingleResult<null>>;
|
|
985
|
+
}
|
|
986
|
+
|
|
987
|
+
type TimesheetListParams = {
|
|
988
|
+
employeeId?: string;
|
|
989
|
+
projectId?: string;
|
|
990
|
+
page?: number;
|
|
991
|
+
pageSize?: number;
|
|
992
|
+
expand?: readonly TimesheetExpandPath[];
|
|
993
|
+
};
|
|
994
|
+
declare class TimesheetsAccessor<S extends ScopeDeclaration> {
|
|
995
|
+
private readonly transport;
|
|
996
|
+
constructor(transport: NucleusTransport);
|
|
997
|
+
list<E extends readonly TimesheetExpandPath[] = never[]>(params?: TimesheetListParams & {
|
|
998
|
+
expand?: E;
|
|
999
|
+
}): Promise<PaginatedResult<WithTimesheetExpand<ResolveTimesheet<S>, E, S>>>;
|
|
1000
|
+
getById<E extends readonly TimesheetExpandPath[] = never[]>(id: string, options?: {
|
|
1001
|
+
expand?: E;
|
|
1002
|
+
}): Promise<SingleResult<WithTimesheetExpand<ResolveTimesheet<S>, E, S>>>;
|
|
1003
|
+
/** Create a timesheet entry. Requires `timesheets.create` scope. */
|
|
1004
|
+
create(data: IfCreate<S['timesheets'], TimesheetCreateInput>): Promise<SingleResult<ResolveTimesheet<S>>>;
|
|
1005
|
+
/** Update a timesheet entry. Requires `timesheets.update` scope. */
|
|
1006
|
+
update(id: string, data: IfUpdate<S['timesheets'], TimesheetUpdateInput>): Promise<SingleResult<ResolveTimesheet<S>>>;
|
|
1007
|
+
/** Soft-delete a timesheet entry. Requires `timesheets.delete` scope. */
|
|
1008
|
+
delete(id: IfDelete<S['timesheets'], string>): Promise<SingleResult<null>>;
|
|
438
1009
|
}
|
|
439
1010
|
|
|
440
1011
|
/**
|
|
@@ -566,9 +1137,9 @@ type NucleusClientConfig<S extends ScopeDeclaration> = {
|
|
|
566
1137
|
* export const nucleus = new NucleusClient({
|
|
567
1138
|
* token: process.env.NUCLEUS_TOKEN!,
|
|
568
1139
|
* scopes: {
|
|
569
|
-
* employees: ['identity', 'employment'],
|
|
570
|
-
* projects: ['core'],
|
|
571
|
-
*
|
|
1140
|
+
* employees: { read: ['identity', 'employment'], update: ['contact'] },
|
|
1141
|
+
* projects: { read: ['core'] },
|
|
1142
|
+
* leaves: { read: ['core'], create: ['core'], delete: true },
|
|
572
1143
|
* },
|
|
573
1144
|
* });
|
|
574
1145
|
* ```
|
|
@@ -586,6 +1157,14 @@ declare class NucleusClient<const S extends ScopeDeclaration> {
|
|
|
586
1157
|
readonly projectTypes: ProjectTypesAccessor<S>;
|
|
587
1158
|
readonly currencies: CurrenciesAccessor<S>;
|
|
588
1159
|
readonly genericRates: GenericRatesAccessor<S>;
|
|
1160
|
+
readonly jurisdictions: JurisdictionsAccessor<S>;
|
|
1161
|
+
readonly leaveTypes: LeaveTypesAccessor<S>;
|
|
1162
|
+
readonly leaves: LeavesAccessor<S>;
|
|
1163
|
+
readonly leaveBalances: LeaveBalancesAccessor<S>;
|
|
1164
|
+
readonly policies: PoliciesAccessor<S>;
|
|
1165
|
+
readonly policyAcknowledgements: PolicyAcknowledgementsAccessor<S>;
|
|
1166
|
+
readonly calendarEvents: CalendarEventsAccessor<S>;
|
|
1167
|
+
readonly timesheets: TimesheetsAccessor<S>;
|
|
589
1168
|
readonly apps: AppsAccessor;
|
|
590
1169
|
readonly files: FilesAccessor;
|
|
591
1170
|
readonly auth: AuthAccessor;
|
|
@@ -593,5 +1172,5 @@ declare class NucleusClient<const S extends ScopeDeclaration> {
|
|
|
593
1172
|
}
|
|
594
1173
|
|
|
595
1174
|
export { FilesAccessor, NucleusClient, isError };
|
|
596
|
-
export type { AppInfo, AppScopeInfo, ClientContact, ClientExpandPath, ClientFinancials, ClientIdentity, ClientNotes, CurrencyCore, DepartmentCore, EmployeeCompensation, EmployeeCompensationHistory, EmployeeContact, EmployeeEmployment, EmployeeExpandPath, EmployeeIdentity, EmployeeSensitive, ErrorCode, ErrorResult, ListParams as FileListParams, FileRecord, FileUrlResult, FileVisibility, GenericRateCore, GenericRateFinancials, GetUrlOptions, ListMeta, ListResult, NucleusClientConfig, PaginatedResult, PartnerContact, PartnerExpandPath, PartnerIdentity, PartnerNotes, ProjectCore, ProjectExpandPath, ProjectFinancials, ProjectIntegrations, ProjectMembership, ProjectTeam, ProjectTypeCore, ResolveClient, ResolveCurrency, ResolveDepartment, ResolveEmployee, ResolveGenericRate, ResolvePartner, ResolveProject, ResolveProjectType, ScopeDeclaration, SingleResult, SuccessResult, UploadParams, VerifiedToken, WithClientExpand, WithEmployeeExpand, WithPartnerExpand, WithProjectExpand };
|
|
1175
|
+
export type { AppInfo, AppPermissionInfo, AppScopeInfo, CalendarEventCore, ClientContact, ClientExpandPath, ClientFinancials, ClientIdentity, ClientNotes, CurrencyCore, DepartmentCore, EmployeeCompensation, EmployeeCompensationHistory, EmployeeContact, EmployeeEmployment, EmployeeExpandPath, EmployeeIdentity, EmployeeSensitive, ErrorCode, ErrorResult, ListParams as FileListParams, FileRecord, FileUrlResult, FileVisibility, GenericRateCore, GenericRateFinancials, GetUrlOptions, JurisdictionCore, LeaveBalanceCore, LeaveBalanceExpandPath, LeaveCore, LeaveDetails, LeaveExpandPath, LeaveTypeCore, ListMeta, ListResult, NucleusClientConfig, PaginatedResult, PartnerContact, PartnerExpandPath, PartnerIdentity, PartnerNotes, PolicyAcknowledgementCore, PolicyAcknowledgementExpandPath, PolicyContent, PolicyCore, ProjectCore, ProjectExpandPath, ProjectFinancials, ProjectIntegrations, ProjectMembership, ProjectTeam, ProjectTypeCore, ResolveCalendarEvent, ResolveClient, ResolveCurrency, ResolveDepartment, ResolveEmployee, ResolveGenericRate, ResolveJurisdiction, ResolveLeave, ResolveLeaveBalance, ResolveLeaveType, ResolvePartner, ResolvePolicy, ResolvePolicyAcknowledgement, ResolveProject, ResolveProjectType, ResolveTimesheet, ScopeDeclaration, SingleResult, SuccessResult, TimesheetCore, TimesheetDetails, TimesheetExpandPath, TimesheetIntegrations, UploadParams, VerifiedToken, WithClientExpand, WithEmployeeExpand, WithLeaveBalanceExpand, WithLeaveExpand, WithPartnerExpand, WithPolicyAcknowledgementExpand, WithProjectExpand, WithTimesheetExpand };
|
|
597
1176
|
//# sourceMappingURL=index.d.ts.map
|