@tryfinch/finch-api 5.0.0 → 5.2.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 +51 -0
- package/README.md +61 -21
- package/_shims/MultipartBody.d.ts +9 -0
- package/_shims/MultipartBody.d.ts.map +1 -0
- package/_shims/MultipartBody.js +16 -0
- package/_shims/MultipartBody.js.map +1 -0
- package/_shims/MultipartBody.mjs +12 -0
- package/_shims/MultipartBody.mjs.map +1 -0
- package/_shims/README.md +46 -0
- package/{src/_shims/ReadableStream.node.ts → _shims/auto/runtime-bun.d.ts} +2 -3
- package/_shims/auto/runtime-bun.d.ts.map +1 -0
- package/_shims/auto/runtime-bun.js +21 -0
- package/_shims/auto/runtime-bun.js.map +1 -0
- package/_shims/auto/runtime-bun.mjs +2 -0
- package/_shims/auto/runtime-bun.mjs.map +1 -0
- package/_shims/auto/runtime-node.d.ts +5 -0
- package/_shims/auto/runtime-node.d.ts.map +1 -0
- package/_shims/auto/runtime-node.js +21 -0
- package/_shims/auto/runtime-node.js.map +1 -0
- package/_shims/auto/runtime-node.mjs +2 -0
- package/_shims/auto/runtime-node.mjs.map +1 -0
- package/_shims/auto/runtime.d.ts +5 -0
- package/_shims/auto/runtime.d.ts.map +1 -0
- package/_shims/auto/runtime.js +21 -0
- package/_shims/auto/runtime.js.map +1 -0
- package/_shims/auto/runtime.mjs +2 -0
- package/_shims/auto/runtime.mjs.map +1 -0
- package/_shims/auto/types-node.d.ts +5 -0
- package/_shims/auto/types-node.d.ts.map +1 -0
- package/_shims/auto/types-node.js +21 -0
- package/_shims/auto/types-node.js.map +1 -0
- package/_shims/auto/types-node.mjs +2 -0
- package/_shims/auto/types-node.mjs.map +1 -0
- package/_shims/auto/types.d.ts +99 -0
- package/{src/_shims/ReadableStream.js → _shims/auto/types.js} +0 -2
- package/_shims/{ReadableStream.js → auto/types.mjs} +0 -2
- package/_shims/bun-runtime.d.ts +6 -0
- package/_shims/bun-runtime.d.ts.map +1 -0
- package/_shims/bun-runtime.js +14 -0
- package/_shims/bun-runtime.js.map +1 -0
- package/_shims/bun-runtime.mjs +10 -0
- package/_shims/bun-runtime.mjs.map +1 -0
- package/_shims/index.d.ts +79 -0
- package/_shims/index.js +13 -0
- package/_shims/index.mjs +7 -0
- package/_shims/manual-types.d.ts +12 -0
- package/_shims/manual-types.js +3 -0
- package/_shims/manual-types.mjs +3 -0
- package/_shims/node-runtime.d.ts +3 -0
- package/_shims/node-runtime.d.ts.map +1 -0
- package/_shims/node-runtime.js +87 -0
- package/_shims/node-runtime.js.map +1 -0
- package/_shims/node-runtime.mjs +54 -0
- package/_shims/node-runtime.mjs.map +1 -0
- package/_shims/node-types.d.ts +42 -0
- package/_shims/node-types.js +3 -0
- package/_shims/node-types.mjs +3 -0
- package/_shims/registry.d.ts +35 -0
- package/_shims/registry.d.ts.map +1 -0
- package/_shims/registry.js +39 -0
- package/_shims/registry.js.map +1 -0
- package/_shims/registry.mjs +35 -0
- package/_shims/registry.mjs.map +1 -0
- package/_shims/web-runtime.d.ts +5 -0
- package/_shims/web-runtime.d.ts.map +1 -0
- package/_shims/web-runtime.js +70 -0
- package/_shims/web-runtime.js.map +1 -0
- package/_shims/web-runtime.mjs +63 -0
- package/_shims/web-runtime.mjs.map +1 -0
- package/_shims/web-types.d.ts +82 -0
- package/_shims/web-types.js +3 -0
- package/_shims/web-types.mjs +3 -0
- package/core.d.ts +171 -223
- package/core.d.ts.map +1 -1
- package/core.js +674 -728
- package/core.js.map +1 -1
- package/core.mjs +668 -681
- package/core.mjs.map +1 -1
- package/error.d.ts +29 -31
- package/error.d.ts.map +1 -1
- package/error.js +91 -105
- package/error.js.map +1 -1
- package/error.mjs +88 -90
- package/error.mjs.map +1 -1
- package/index.d.mts +144 -173
- package/index.d.ts +144 -173
- package/index.d.ts.map +1 -1
- package/index.js +144 -195
- package/index.js.map +1 -1
- package/index.mjs +122 -143
- package/index.mjs.map +1 -1
- package/package.json +33 -20
- package/pagination.d.ts +47 -167
- package/pagination.d.ts.map +1 -1
- package/pagination.js +72 -202
- package/pagination.js.map +1 -1
- package/pagination.mjs +68 -187
- package/pagination.mjs.map +1 -1
- package/resource.d.ts +10 -10
- package/resource.js +12 -12
- package/resource.mjs +10 -10
- package/resources/account.d.ts +44 -44
- package/resources/account.js +20 -19
- package/resources/account.mjs +17 -16
- package/resources/hris/benefits/benefits.d.ts +127 -154
- package/resources/hris/benefits/benefits.js +74 -89
- package/resources/hris/benefits/benefits.mjs +50 -48
- package/resources/hris/benefits/index.d.ts +3 -28
- package/resources/hris/benefits/index.js +13 -55
- package/resources/hris/benefits/index.mjs +3 -8
- package/resources/hris/benefits/individuals.d.ts +129 -147
- package/resources/hris/benefits/individuals.js +59 -59
- package/resources/hris/benefits/individuals.mjs +53 -49
- package/resources/hris/company.d.ts +80 -80
- package/resources/hris/company.js +12 -13
- package/resources/hris/company.mjs +9 -8
- package/resources/hris/directory.d.ts +53 -55
- package/resources/hris/directory.js +13 -12
- package/resources/hris/directory.mjs +8 -7
- package/resources/hris/employments.d.ts +124 -126
- package/resources/hris/employments.js +23 -21
- package/resources/hris/employments.mjs +19 -17
- package/resources/hris/hris.d.ts +113 -123
- package/resources/hris/hris.js +54 -71
- package/resources/hris/hris.mjs +32 -32
- package/resources/hris/index.d.ts +9 -41
- package/resources/hris/index.js +26 -110
- package/resources/hris/index.mjs +9 -9
- package/resources/hris/individuals.d.ts +65 -67
- package/resources/hris/individuals.js +19 -17
- package/resources/hris/individuals.mjs +14 -12
- package/resources/hris/pay-statements.d.ts +146 -162
- package/resources/hris/pay-statements.js +22 -20
- package/resources/hris/pay-statements.mjs +18 -16
- package/resources/hris/payments.d.ts +47 -49
- package/resources/hris/payments.js +15 -13
- package/resources/hris/payments.mjs +11 -9
- package/resources/index.d.ts +6 -6
- package/resources/index.d.ts.map +1 -1
- package/resources/index.js +13 -38
- package/resources/index.js.map +1 -1
- package/resources/index.mjs +5 -5
- package/resources/index.mjs.map +1 -1
- package/resources/providers.d.ts +43 -42
- package/resources/providers.js +15 -13
- package/resources/providers.mjs +11 -9
- package/resources/top-level.d.ts +1 -1
- package/resources/top-level.js +3 -3
- package/resources/top-level.mjs +1 -1
- package/resources/webhooks.d.ts +22 -0
- package/resources/webhooks.d.ts.map +1 -0
- package/resources/webhooks.js +114 -0
- package/resources/webhooks.js.map +1 -0
- package/resources/webhooks.mjs +110 -0
- package/resources/webhooks.mjs.map +1 -0
- package/shims/node.d.ts +29 -0
- package/shims/node.d.ts.map +1 -0
- package/shims/node.js +31 -0
- package/shims/node.js.map +1 -0
- package/shims/node.mjs +5 -0
- package/shims/node.mjs.map +1 -0
- package/shims/web.d.ts +26 -0
- package/shims/web.d.ts.map +1 -0
- package/shims/web.js +31 -0
- package/shims/web.js.map +1 -0
- package/shims/web.mjs +5 -0
- package/shims/web.mjs.map +1 -0
- package/src/_shims/MultipartBody.ts +9 -0
- package/src/_shims/README.md +46 -0
- package/src/_shims/auto/runtime-bun.ts +4 -0
- package/src/_shims/auto/runtime-node.ts +4 -0
- package/src/_shims/auto/runtime.ts +4 -0
- package/src/_shims/auto/types-node.ts +4 -0
- package/src/_shims/auto/types.d.ts +99 -0
- package/src/_shims/auto/types.js +3 -0
- package/src/_shims/auto/types.mjs +3 -0
- package/src/_shims/bun-runtime.ts +14 -0
- package/src/_shims/index.d.ts +79 -0
- package/src/_shims/index.js +13 -0
- package/src/_shims/index.mjs +7 -0
- package/src/_shims/manual-types.d.ts +12 -0
- package/src/_shims/manual-types.js +3 -0
- package/src/_shims/manual-types.mjs +3 -0
- package/src/_shims/node-runtime.ts +79 -0
- package/src/_shims/node-types.d.ts +42 -0
- package/src/_shims/node-types.js +3 -0
- package/src/_shims/node-types.mjs +3 -0
- package/src/_shims/registry.ts +64 -0
- package/src/_shims/web-runtime.ts +91 -0
- package/src/_shims/web-types.d.ts +82 -0
- package/src/_shims/web-types.js +3 -0
- package/src/_shims/web-types.mjs +3 -0
- package/src/core.ts +38 -17
- package/src/error.ts +4 -4
- package/src/index.ts +12 -21
- package/src/pagination.ts +0 -259
- package/src/resources/account.ts +2 -2
- package/src/resources/hris/benefits/benefits.ts +4 -4
- package/src/resources/hris/benefits/individuals.ts +5 -5
- package/src/resources/hris/company.ts +3 -3
- package/src/resources/hris/directory.ts +4 -4
- package/src/resources/hris/employments.ts +4 -4
- package/src/resources/hris/hris.ts +1 -1
- package/src/resources/hris/individuals.ts +5 -5
- package/src/resources/hris/pay-statements.ts +5 -5
- package/src/resources/hris/payments.ts +4 -4
- package/src/resources/index.ts +1 -1
- package/src/resources/providers.ts +3 -3
- package/src/resources/webhooks.ts +151 -0
- package/src/shims/node.ts +50 -0
- package/src/shims/web.ts +50 -0
- package/src/tsconfig.json +11 -0
- package/src/uploads.ts +11 -15
- package/src/version.ts +1 -1
- package/uploads.d.ts +23 -39
- package/uploads.d.ts.map +1 -1
- package/uploads.js +115 -157
- package/uploads.js.map +1 -1
- package/uploads.mjs +111 -133
- package/uploads.mjs.map +1 -1
- package/version.d.ts +2 -2
- package/version.js +4 -4
- package/version.mjs +2 -2
- package/_shims/ReadableStream.d.ts +0 -38
- package/_shims/ReadableStream.mjs +0 -7
- package/_shims/ReadableStream.node.d.ts +0 -6
- package/_shims/ReadableStream.node.d.ts.map +0 -1
- package/_shims/ReadableStream.node.js +0 -14
- package/_shims/ReadableStream.node.js.map +0 -1
- package/_shims/ReadableStream.node.mjs +0 -3
- package/_shims/ReadableStream.node.mjs.map +0 -1
- package/_shims/agent.d.ts +0 -9
- package/_shims/agent.d.ts.map +0 -1
- package/_shims/agent.js +0 -14
- package/_shims/agent.js.map +0 -1
- package/_shims/agent.mjs +0 -10
- package/_shims/agent.mjs.map +0 -1
- package/_shims/agent.node.d.ts +0 -7
- package/_shims/agent.node.d.ts.map +0 -1
- package/_shims/agent.node.js +0 -28
- package/_shims/agent.node.js.map +0 -1
- package/_shims/agent.node.mjs +0 -16
- package/_shims/agent.node.mjs.map +0 -1
- package/_shims/fetch.d.ts +0 -60
- package/_shims/fetch.js +0 -13
- package/_shims/fetch.mjs +0 -15
- package/_shims/fetch.node.d.ts +0 -64
- package/_shims/fetch.node.js +0 -12
- package/_shims/fetch.node.mjs +0 -14
- package/_shims/fileFromPath.d.ts +0 -22
- package/_shims/fileFromPath.d.ts.map +0 -1
- package/_shims/fileFromPath.js +0 -16
- package/_shims/fileFromPath.js.map +0 -1
- package/_shims/fileFromPath.mjs +0 -12
- package/_shims/fileFromPath.mjs.map +0 -1
- package/_shims/fileFromPath.node.d.ts +0 -17
- package/_shims/fileFromPath.node.d.ts.map +0 -1
- package/_shims/fileFromPath.node.js +0 -17
- package/_shims/fileFromPath.node.js.map +0 -1
- package/_shims/fileFromPath.node.mjs +0 -13
- package/_shims/fileFromPath.node.mjs.map +0 -1
- package/_shims/formdata.d.ts +0 -43
- package/_shims/formdata.js +0 -17
- package/_shims/formdata.mjs +0 -20
- package/_shims/formdata.node.d.ts +0 -45
- package/_shims/formdata.node.js +0 -11
- package/_shims/formdata.node.mjs +0 -9
- package/_shims/getMultipartRequestOptions.d.ts +0 -10
- package/_shims/getMultipartRequestOptions.d.ts.map +0 -1
- package/_shims/getMultipartRequestOptions.js +0 -12
- package/_shims/getMultipartRequestOptions.js.map +0 -1
- package/_shims/getMultipartRequestOptions.mjs +0 -8
- package/_shims/getMultipartRequestOptions.mjs.map +0 -1
- package/_shims/getMultipartRequestOptions.node.d.ts +0 -10
- package/_shims/getMultipartRequestOptions.node.d.ts.map +0 -1
- package/_shims/getMultipartRequestOptions.node.js +0 -22
- package/_shims/getMultipartRequestOptions.node.js.map +0 -1
- package/_shims/getMultipartRequestOptions.node.mjs +0 -18
- package/_shims/getMultipartRequestOptions.node.mjs.map +0 -1
- package/_shims/node-readable.d.ts +0 -23
- package/_shims/node-readable.d.ts.map +0 -1
- package/_shims/node-readable.js +0 -11
- package/_shims/node-readable.js.map +0 -1
- package/_shims/node-readable.mjs +0 -7
- package/_shims/node-readable.mjs.map +0 -1
- package/_shims/node-readable.node.d.ts +0 -8
- package/_shims/node-readable.node.d.ts.map +0 -1
- package/_shims/node-readable.node.js +0 -9
- package/_shims/node-readable.node.js.map +0 -1
- package/_shims/node-readable.node.mjs +0 -5
- package/_shims/node-readable.node.mjs.map +0 -1
- package/resources/ats/applications.d.ts +0 -39
- package/resources/ats/applications.d.ts.map +0 -1
- package/resources/ats/applications.js +0 -24
- package/resources/ats/applications.js.map +0 -1
- package/resources/ats/applications.mjs +0 -20
- package/resources/ats/applications.mjs.map +0 -1
- package/resources/ats/ats.d.ts +0 -32
- package/resources/ats/ats.d.ts.map +0 -1
- package/resources/ats/ats.js +0 -71
- package/resources/ats/ats.js.map +0 -1
- package/resources/ats/ats.mjs +0 -27
- package/resources/ats/ats.mjs.map +0 -1
- package/resources/ats/candidates.d.ts +0 -53
- package/resources/ats/candidates.d.ts.map +0 -1
- package/resources/ats/candidates.js +0 -25
- package/resources/ats/candidates.js.map +0 -1
- package/resources/ats/candidates.mjs +0 -21
- package/resources/ats/candidates.mjs.map +0 -1
- package/resources/ats/index.d.ts +0 -7
- package/resources/ats/index.d.ts.map +0 -1
- package/resources/ats/index.js +0 -60
- package/resources/ats/index.js.map +0 -1
- package/resources/ats/index.mjs +0 -8
- package/resources/ats/index.mjs.map +0 -1
- package/resources/ats/jobs.d.ts +0 -47
- package/resources/ats/jobs.d.ts.map +0 -1
- package/resources/ats/jobs.js +0 -24
- package/resources/ats/jobs.js.map +0 -1
- package/resources/ats/jobs.mjs +0 -20
- package/resources/ats/jobs.mjs.map +0 -1
- package/resources/ats/offers.d.ts +0 -39
- package/resources/ats/offers.d.ts.map +0 -1
- package/resources/ats/offers.js +0 -24
- package/resources/ats/offers.js.map +0 -1
- package/resources/ats/offers.mjs +0 -20
- package/resources/ats/offers.mjs.map +0 -1
- package/resources/ats/stages.d.ts +0 -30
- package/resources/ats/stages.d.ts.map +0 -1
- package/resources/ats/stages.js +0 -22
- package/resources/ats/stages.js.map +0 -1
- package/resources/ats/stages.mjs +0 -17
- package/resources/ats/stages.mjs.map +0 -1
- package/src/_shims/ReadableStream.d.ts +0 -38
- package/src/_shims/ReadableStream.mjs +0 -7
- package/src/_shims/agent.node.ts +0 -22
- package/src/_shims/agent.ts +0 -12
- package/src/_shims/fetch.d.ts +0 -60
- package/src/_shims/fetch.deno.ts +0 -23
- package/src/_shims/fetch.js +0 -13
- package/src/_shims/fetch.mjs +0 -15
- package/src/_shims/fetch.node.d.ts +0 -64
- package/src/_shims/fetch.node.js +0 -12
- package/src/_shims/fetch.node.mjs +0 -14
- package/src/_shims/fileFromPath.node.ts +0 -29
- package/src/_shims/fileFromPath.ts +0 -29
- package/src/_shims/formdata.d.ts +0 -43
- package/src/_shims/formdata.deno.ts +0 -16
- package/src/_shims/formdata.js +0 -17
- package/src/_shims/formdata.mjs +0 -20
- package/src/_shims/formdata.node.d.ts +0 -45
- package/src/_shims/formdata.node.js +0 -11
- package/src/_shims/formdata.node.mjs +0 -9
- package/src/_shims/getMultipartRequestOptions.node.ts +0 -25
- package/src/_shims/getMultipartRequestOptions.ts +0 -14
- package/src/_shims/node-readable.node.ts +0 -10
- package/src/_shims/node-readable.ts +0 -30
- package/src/resources/ats/applications.ts +0 -64
- package/src/resources/ats/ats.ts +0 -39
- package/src/resources/ats/candidates.ts +0 -83
- package/src/resources/ats/index.ts +0 -8
- package/src/resources/ats/jobs.ts +0 -76
- package/src/resources/ats/offers.ts +0 -63
- package/src/resources/ats/stages.ts +0 -39
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Disclaimer: modules in _shims aren't intended to be imported by SDK users.
|
|
3
|
+
*/
|
|
4
|
+
export type Agent = any;
|
|
5
|
+
|
|
6
|
+
declare const _fetch: typeof fetch;
|
|
7
|
+
export { _fetch as fetch };
|
|
8
|
+
|
|
9
|
+
type _Request = Request;
|
|
10
|
+
export { _Request as Request };
|
|
11
|
+
|
|
12
|
+
type _RequestInfo = RequestInfo;
|
|
13
|
+
export { type _RequestInfo as RequestInfo };
|
|
14
|
+
|
|
15
|
+
type _RequestInit = RequestInit;
|
|
16
|
+
export { type _RequestInit as RequestInit };
|
|
17
|
+
|
|
18
|
+
type _Response = Response;
|
|
19
|
+
export { _Response as Response };
|
|
20
|
+
|
|
21
|
+
type _ResponseInit = ResponseInit;
|
|
22
|
+
export { type _ResponseInit as ResponseInit };
|
|
23
|
+
|
|
24
|
+
type _ResponseType = ResponseType;
|
|
25
|
+
export { type _ResponseType as ResponseType };
|
|
26
|
+
|
|
27
|
+
type _BodyInit = BodyInit;
|
|
28
|
+
export { type _BodyInit as BodyInit };
|
|
29
|
+
|
|
30
|
+
type _Headers = Headers;
|
|
31
|
+
export { _Headers as Headers };
|
|
32
|
+
|
|
33
|
+
type _HeadersInit = HeadersInit;
|
|
34
|
+
export { type _HeadersInit as HeadersInit };
|
|
35
|
+
|
|
36
|
+
type EndingType = 'native' | 'transparent';
|
|
37
|
+
|
|
38
|
+
export interface BlobPropertyBag {
|
|
39
|
+
endings?: EndingType;
|
|
40
|
+
type?: string;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface FilePropertyBag extends BlobPropertyBag {
|
|
44
|
+
lastModified?: number;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export type FileFromPathOptions = Omit<FilePropertyBag, 'lastModified'>;
|
|
48
|
+
|
|
49
|
+
type _FormData = FormData;
|
|
50
|
+
declare const _FormData: typeof FormData;
|
|
51
|
+
export { _FormData as FormData };
|
|
52
|
+
|
|
53
|
+
type _File = File;
|
|
54
|
+
declare const _File: typeof File;
|
|
55
|
+
export { _File as File };
|
|
56
|
+
|
|
57
|
+
type _Blob = Blob;
|
|
58
|
+
declare const _Blob: typeof Blob;
|
|
59
|
+
export { _Blob as Blob };
|
|
60
|
+
|
|
61
|
+
export declare class Readable {
|
|
62
|
+
readable: boolean;
|
|
63
|
+
readonly readableEnded: boolean;
|
|
64
|
+
readonly readableFlowing: boolean | null;
|
|
65
|
+
readonly readableHighWaterMark: number;
|
|
66
|
+
readonly readableLength: number;
|
|
67
|
+
readonly readableObjectMode: boolean;
|
|
68
|
+
destroyed: boolean;
|
|
69
|
+
read(size?: number): any;
|
|
70
|
+
pause(): this;
|
|
71
|
+
resume(): this;
|
|
72
|
+
isPaused(): boolean;
|
|
73
|
+
destroy(error?: Error): this;
|
|
74
|
+
[Symbol.asyncIterator](): AsyncIterableIterator<any>;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export declare class FsReadStream extends Readable {
|
|
78
|
+
path: {}; // node type is string | Buffer
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
type _ReadableStream<R = any> = ReadableStream<R>;
|
|
82
|
+
export { type _ReadableStream as ReadableStream };
|
package/src/core.ts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { VERSION } from './version';
|
|
2
2
|
import { APIError, APIConnectionError, APIConnectionTimeoutError, APIUserAbortError } from './error';
|
|
3
|
-
import type { Readable } from './_shims/node-readable';
|
|
4
|
-
import { getDefaultAgent, type Agent } from './_shims/agent';
|
|
5
3
|
import {
|
|
4
|
+
kind as shimsKind,
|
|
5
|
+
type Readable,
|
|
6
|
+
getDefaultAgent,
|
|
7
|
+
type Agent,
|
|
6
8
|
fetch,
|
|
7
|
-
isPolyfilled as fetchIsPolyfilled,
|
|
8
9
|
type RequestInfo,
|
|
9
10
|
type RequestInit,
|
|
10
11
|
type Response,
|
|
11
12
|
type HeadersInit,
|
|
12
|
-
} from './_shims/
|
|
13
|
+
} from './_shims/index';
|
|
13
14
|
export { type Response };
|
|
14
15
|
import { isMultipartBody } from './uploads';
|
|
15
16
|
export {
|
|
@@ -45,7 +46,7 @@ async function defaultParseResponse<T>(props: APIResponseProps): Promise<T> {
|
|
|
45
46
|
// TODO handle blob, arraybuffer, other content types, etc.
|
|
46
47
|
const text = await response.text();
|
|
47
48
|
debug('response', response.status, response.url, response.headers, text);
|
|
48
|
-
return text as T;
|
|
49
|
+
return text as any as T;
|
|
49
50
|
}
|
|
50
51
|
|
|
51
52
|
/**
|
|
@@ -77,6 +78,12 @@ export class APIPromise<T> extends Promise<T> {
|
|
|
77
78
|
*
|
|
78
79
|
* If you want to parse the response body but still get the `Response`
|
|
79
80
|
* instance, you can use {@link withResponse()}.
|
|
81
|
+
*
|
|
82
|
+
* 👋 Getting the wrong TypeScript type for `Response`?
|
|
83
|
+
* Try setting `"moduleResolution": "NodeNext"` if you can,
|
|
84
|
+
* or add one of these imports before your first `import … from '@tryfinch/finch-api'`:
|
|
85
|
+
* - `import '@tryfinch/finch-api/shims/node'` (if you're running on Node)
|
|
86
|
+
* - `import '@tryfinch/finch-api/shims/web'` (otherwise)
|
|
80
87
|
*/
|
|
81
88
|
asResponse(): Promise<Response> {
|
|
82
89
|
return this.responsePromise.then((p) => p.response);
|
|
@@ -86,6 +93,13 @@ export class APIPromise<T> extends Promise<T> {
|
|
|
86
93
|
*
|
|
87
94
|
* If you just want to get the raw `Response` instance without parsing it,
|
|
88
95
|
* you can use {@link asResponse()}.
|
|
96
|
+
*
|
|
97
|
+
*
|
|
98
|
+
* 👋 Getting the wrong TypeScript type for `Response`?
|
|
99
|
+
* Try setting `"moduleResolution": "NodeNext"` if you can,
|
|
100
|
+
* or add one of these imports before your first `import … from '@tryfinch/finch-api'`:
|
|
101
|
+
* - `import '@tryfinch/finch-api/shims/node'` (if you're running on Node)
|
|
102
|
+
* - `import '@tryfinch/finch-api/shims/web'` (otherwise)
|
|
89
103
|
*/
|
|
90
104
|
async withResponse(): Promise<{ data: T; response: Response }> {
|
|
91
105
|
const [data, response] = await Promise.all([this.parse(), this.asResponse()]);
|
|
@@ -270,7 +284,7 @@ export abstract class APIClient {
|
|
|
270
284
|
...headers,
|
|
271
285
|
};
|
|
272
286
|
// let builtin fetch set the Content-Type for multipart bodies
|
|
273
|
-
if (isMultipartBody(options.body) &&
|
|
287
|
+
if (isMultipartBody(options.body) && shimsKind !== 'node') {
|
|
274
288
|
delete reqHeaders['Content-Type'];
|
|
275
289
|
}
|
|
276
290
|
|
|
@@ -306,7 +320,8 @@ export abstract class APIClient {
|
|
|
306
320
|
protected parseHeaders(headers: HeadersInit | null | undefined): Record<string, string> {
|
|
307
321
|
return (
|
|
308
322
|
!headers ? {}
|
|
309
|
-
: Symbol.iterator in headers ?
|
|
323
|
+
: Symbol.iterator in headers ?
|
|
324
|
+
Object.fromEntries(Array.from(headers as Iterable<string[]>).map((header) => [...header]))
|
|
310
325
|
: { ...headers }
|
|
311
326
|
);
|
|
312
327
|
}
|
|
@@ -369,7 +384,7 @@ export abstract class APIClient {
|
|
|
369
384
|
return this.retryRequest(options, retriesRemaining, responseHeaders);
|
|
370
385
|
}
|
|
371
386
|
|
|
372
|
-
const errText = await response.text().catch(() =>
|
|
387
|
+
const errText = await response.text().catch((e) => castToError(e).message);
|
|
373
388
|
const errJSON = safeJSON(errText);
|
|
374
389
|
const errMessage = errJSON ? undefined : errText;
|
|
375
390
|
|
|
@@ -390,7 +405,7 @@ export abstract class APIClient {
|
|
|
390
405
|
return new PagePromise<PageClass, Item>(this, request, Page);
|
|
391
406
|
}
|
|
392
407
|
|
|
393
|
-
buildURL<Req
|
|
408
|
+
buildURL<Req extends Record<string, unknown>>(path: string, query: Req | null | undefined): string {
|
|
394
409
|
const url =
|
|
395
410
|
isAbsoluteURL(path) ?
|
|
396
411
|
new URL(path)
|
|
@@ -436,11 +451,14 @@ export abstract class APIClient {
|
|
|
436
451
|
|
|
437
452
|
const timeout = setTimeout(() => controller.abort(), ms);
|
|
438
453
|
|
|
439
|
-
return
|
|
440
|
-
.
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
454
|
+
return (
|
|
455
|
+
this.getRequestClient()
|
|
456
|
+
// use undefined this binding; fetch errors if bound to something else in browser/cloudflare
|
|
457
|
+
.fetch.call(undefined, url, { signal: controller.signal as any, ...options })
|
|
458
|
+
.finally(() => {
|
|
459
|
+
clearTimeout(timeout);
|
|
460
|
+
})
|
|
461
|
+
);
|
|
444
462
|
}
|
|
445
463
|
|
|
446
464
|
protected getRequestClient(): RequestClient {
|
|
@@ -455,6 +473,9 @@ export abstract class APIClient {
|
|
|
455
473
|
if (shouldRetryHeader === 'true') return true;
|
|
456
474
|
if (shouldRetryHeader === 'false') return false;
|
|
457
475
|
|
|
476
|
+
// Retry on request timeouts.
|
|
477
|
+
if (response.status === 408) return true;
|
|
478
|
+
|
|
458
479
|
// Retry on lock timeouts.
|
|
459
480
|
if (response.status === 409) return true;
|
|
460
481
|
|
|
@@ -581,7 +602,7 @@ export abstract class AbstractPage<Item> implements AsyncIterable<Item> {
|
|
|
581
602
|
} else if ('url' in nextInfo) {
|
|
582
603
|
const params = [...Object.entries(nextOptions.query || {}), ...nextInfo.url.searchParams.entries()];
|
|
583
604
|
for (const [key, value] of params) {
|
|
584
|
-
nextInfo.url.searchParams.set(key, value);
|
|
605
|
+
nextInfo.url.searchParams.set(key, value as any);
|
|
585
606
|
}
|
|
586
607
|
nextOptions.query = undefined;
|
|
587
608
|
nextOptions.path = nextInfo.url.toString();
|
|
@@ -707,7 +728,7 @@ const requestOptionsKeys: KeysEnum<RequestOptions> = {
|
|
|
707
728
|
idempotencyKey: true,
|
|
708
729
|
};
|
|
709
730
|
|
|
710
|
-
export const isRequestOptions = (obj: unknown): obj is RequestOptions => {
|
|
731
|
+
export const isRequestOptions = (obj: unknown): obj is RequestOptions<Record<string, unknown> | Readable> => {
|
|
711
732
|
return (
|
|
712
733
|
typeof obj === 'object' &&
|
|
713
734
|
obj !== null &&
|
|
@@ -893,7 +914,7 @@ const isAbsoluteURL = (url: string): boolean => {
|
|
|
893
914
|
return startsWithSchemeRegexp.test(url);
|
|
894
915
|
};
|
|
895
916
|
|
|
896
|
-
const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
917
|
+
export const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
897
918
|
|
|
898
919
|
const validatePositiveInteger = (name: string, n: unknown): number => {
|
|
899
920
|
if (typeof n !== 'number' || !Number.isInteger(n)) {
|
package/src/error.ts
CHANGED
|
@@ -13,7 +13,7 @@ export class APIError extends Error {
|
|
|
13
13
|
message: string | undefined,
|
|
14
14
|
headers: Headers | undefined,
|
|
15
15
|
) {
|
|
16
|
-
super(APIError.makeMessage(error, message));
|
|
16
|
+
super(`${status} ${APIError.makeMessage(error, message)}`);
|
|
17
17
|
this.status = status;
|
|
18
18
|
this.headers = headers;
|
|
19
19
|
this.error = error;
|
|
@@ -25,7 +25,7 @@ export class APIError extends Error {
|
|
|
25
25
|
typeof error.message === 'string' ? error.message
|
|
26
26
|
: JSON.stringify(error.message)
|
|
27
27
|
: error ? JSON.stringify(error)
|
|
28
|
-
: message || '
|
|
28
|
+
: message || 'status code (no body)'
|
|
29
29
|
);
|
|
30
30
|
}
|
|
31
31
|
|
|
@@ -97,8 +97,8 @@ export class APIConnectionError extends APIError {
|
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
export class APIConnectionTimeoutError extends APIConnectionError {
|
|
100
|
-
constructor() {
|
|
101
|
-
super({ message: 'Request timed out.' });
|
|
100
|
+
constructor({ message }: { message?: string } = {}) {
|
|
101
|
+
super({ message: message ?? 'Request timed out.' });
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
|
package/src/index.ts
CHANGED
|
@@ -4,7 +4,7 @@ import * as Core from './core';
|
|
|
4
4
|
import * as Pagination from './pagination';
|
|
5
5
|
import * as API from './resources/index';
|
|
6
6
|
import * as Errors from './error';
|
|
7
|
-
import type
|
|
7
|
+
import { type Agent } from './_shims/index';
|
|
8
8
|
import * as Uploads from './uploads';
|
|
9
9
|
|
|
10
10
|
export interface ClientOptions {
|
|
@@ -70,6 +70,8 @@ export interface ClientOptions {
|
|
|
70
70
|
clientId?: string | null;
|
|
71
71
|
|
|
72
72
|
clientSecret?: string | null;
|
|
73
|
+
|
|
74
|
+
webhookSecret?: string | null;
|
|
73
75
|
}
|
|
74
76
|
|
|
75
77
|
/** API Client for interfacing with the Finch API. */
|
|
@@ -77,6 +79,7 @@ export class Finch extends Core.APIClient {
|
|
|
77
79
|
accessToken: string | null;
|
|
78
80
|
clientId?: string | null;
|
|
79
81
|
clientSecret?: string | null;
|
|
82
|
+
webhookSecret?: string | null;
|
|
80
83
|
|
|
81
84
|
private _options: ClientOptions;
|
|
82
85
|
|
|
@@ -93,19 +96,22 @@ export class Finch extends Core.APIClient {
|
|
|
93
96
|
* @param {Core.DefaultQuery} opts.defaultQuery - Default query parameters to include with every request to the API.
|
|
94
97
|
* @param {string | null} [opts.clientId]
|
|
95
98
|
* @param {string | null} [opts.clientSecret]
|
|
99
|
+
* @param {string | null} [opts.webhookSecret]
|
|
96
100
|
*/
|
|
97
101
|
constructor({
|
|
98
102
|
accessToken = null,
|
|
99
103
|
clientId = Core.readEnv('FINCH_CLIENT_ID') ?? null,
|
|
100
104
|
clientSecret = Core.readEnv('FINCH_CLIENT_SECRET') ?? null,
|
|
105
|
+
webhookSecret = Core.readEnv('FINCH_WEBHOOK_SECRET') ?? null,
|
|
101
106
|
...opts
|
|
102
107
|
}: ClientOptions = {}) {
|
|
103
108
|
const options: ClientOptions = {
|
|
104
109
|
accessToken,
|
|
105
110
|
clientId,
|
|
106
111
|
clientSecret,
|
|
107
|
-
|
|
112
|
+
webhookSecret,
|
|
108
113
|
...opts,
|
|
114
|
+
baseURL: opts.baseURL ?? `https://api.tryfinch.com`,
|
|
109
115
|
};
|
|
110
116
|
|
|
111
117
|
super({
|
|
@@ -120,12 +126,13 @@ export class Finch extends Core.APIClient {
|
|
|
120
126
|
this.accessToken = accessToken;
|
|
121
127
|
this.clientId = clientId;
|
|
122
128
|
this.clientSecret = clientSecret;
|
|
129
|
+
this.webhookSecret = webhookSecret;
|
|
123
130
|
}
|
|
124
131
|
|
|
125
132
|
hris: API.HRIS = new API.HRIS(this);
|
|
126
|
-
ats: API.ATS = new API.ATS(this);
|
|
127
133
|
providers: API.Providers = new API.Providers(this);
|
|
128
134
|
account: API.Account = new API.Account(this);
|
|
135
|
+
webhooks: API.Webhooks = new API.Webhooks(this);
|
|
129
136
|
|
|
130
137
|
/**
|
|
131
138
|
* Returns an access token for the Finch API given an authorization code. An
|
|
@@ -262,30 +269,12 @@ export namespace Finch {
|
|
|
262
269
|
export import IndividualsPageParams = Pagination.IndividualsPageParams;
|
|
263
270
|
export import IndividualsPageResponse = Pagination.IndividualsPageResponse;
|
|
264
271
|
|
|
265
|
-
export import CandidatesPage = Pagination.CandidatesPage;
|
|
266
|
-
export import CandidatesPageParams = Pagination.CandidatesPageParams;
|
|
267
|
-
export import CandidatesPageResponse = Pagination.CandidatesPageResponse;
|
|
268
|
-
|
|
269
|
-
export import ApplicationsPage = Pagination.ApplicationsPage;
|
|
270
|
-
export import ApplicationsPageParams = Pagination.ApplicationsPageParams;
|
|
271
|
-
export import ApplicationsPageResponse = Pagination.ApplicationsPageResponse;
|
|
272
|
-
|
|
273
|
-
export import JobsPage = Pagination.JobsPage;
|
|
274
|
-
export import JobsPageParams = Pagination.JobsPageParams;
|
|
275
|
-
export import JobsPageResponse = Pagination.JobsPageResponse;
|
|
276
|
-
|
|
277
|
-
export import OffersPage = Pagination.OffersPage;
|
|
278
|
-
export import OffersPageParams = Pagination.OffersPageParams;
|
|
279
|
-
export import OffersPageResponse = Pagination.OffersPageResponse;
|
|
280
|
-
|
|
281
272
|
export import HRIS = API.HRIS;
|
|
282
273
|
export import Income = API.Income;
|
|
283
274
|
export import Location = API.Location;
|
|
284
275
|
export import Money = API.Money;
|
|
285
276
|
export import Paging = API.Paging;
|
|
286
277
|
|
|
287
|
-
export import ATS = API.ATS;
|
|
288
|
-
|
|
289
278
|
export import Providers = API.Providers;
|
|
290
279
|
export import Provider = API.Provider;
|
|
291
280
|
export import ProvidersSinglePage = API.ProvidersSinglePage;
|
|
@@ -293,6 +282,8 @@ export namespace Finch {
|
|
|
293
282
|
export import Account = API.Account;
|
|
294
283
|
export import DisconnectResponse = API.DisconnectResponse;
|
|
295
284
|
export import Introspection = API.Introspection;
|
|
285
|
+
|
|
286
|
+
export import Webhooks = API.Webhooks;
|
|
296
287
|
}
|
|
297
288
|
|
|
298
289
|
export default Finch;
|
package/src/pagination.ts
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
import { AbstractPage, Response, APIClient, FinalRequestOptions, PageInfo } from './core';
|
|
4
4
|
import * as HRIS from './resources/hris/index';
|
|
5
|
-
import * as ATS from './resources/ats/index';
|
|
6
5
|
|
|
7
6
|
export type SinglePageResponse<Item> = Item[];
|
|
8
7
|
|
|
@@ -149,261 +148,3 @@ export class IndividualsPage
|
|
|
149
148
|
return null;
|
|
150
149
|
}
|
|
151
150
|
}
|
|
152
|
-
|
|
153
|
-
export interface CandidatesPageResponse {
|
|
154
|
-
candidates: Array<ATS.Candidate>;
|
|
155
|
-
|
|
156
|
-
paging: HRIS.Paging;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
export interface CandidatesPageParams {
|
|
160
|
-
/**
|
|
161
|
-
* Number of candidates to return (defaults to all)
|
|
162
|
-
*/
|
|
163
|
-
limit?: number;
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* Index to start from (defaults to 0)
|
|
167
|
-
*/
|
|
168
|
-
offset?: number;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
export class CandidatesPage extends AbstractPage<ATS.Candidate> implements CandidatesPageResponse {
|
|
172
|
-
paging: HRIS.Paging;
|
|
173
|
-
|
|
174
|
-
candidates: Array<ATS.Candidate>;
|
|
175
|
-
|
|
176
|
-
constructor(
|
|
177
|
-
client: APIClient,
|
|
178
|
-
response: Response,
|
|
179
|
-
body: CandidatesPageResponse,
|
|
180
|
-
options: FinalRequestOptions,
|
|
181
|
-
) {
|
|
182
|
-
super(client, response, body, options);
|
|
183
|
-
|
|
184
|
-
this.paging = body.paging;
|
|
185
|
-
this.candidates = body.candidates;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
getPaginatedItems(): ATS.Candidate[] {
|
|
189
|
-
return this.candidates;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
// @deprecated Please use `nextPageInfo()` instead
|
|
193
|
-
nextPageParams(): Partial<CandidatesPageParams> | null {
|
|
194
|
-
const info = this.nextPageInfo();
|
|
195
|
-
if (!info) return null;
|
|
196
|
-
if ('params' in info) return info.params;
|
|
197
|
-
const params = Object.fromEntries(info.url.searchParams);
|
|
198
|
-
if (!Object.keys(params).length) return null;
|
|
199
|
-
return params;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
nextPageInfo(): PageInfo | null {
|
|
203
|
-
const offset = this.paging.offset;
|
|
204
|
-
if (!offset) return null;
|
|
205
|
-
|
|
206
|
-
const length = this.candidates.length;
|
|
207
|
-
const currentCount = offset + length;
|
|
208
|
-
|
|
209
|
-
const totalCount = this.paging.count;
|
|
210
|
-
if (!totalCount) return null;
|
|
211
|
-
|
|
212
|
-
if (currentCount < totalCount) {
|
|
213
|
-
return { params: { offset: currentCount } };
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
return null;
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
export interface ApplicationsPageResponse {
|
|
221
|
-
applications: Array<ATS.Application>;
|
|
222
|
-
|
|
223
|
-
paging: HRIS.Paging;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
export interface ApplicationsPageParams {
|
|
227
|
-
/**
|
|
228
|
-
* Number of applications to return (defaults to all)
|
|
229
|
-
*/
|
|
230
|
-
limit?: number;
|
|
231
|
-
|
|
232
|
-
/**
|
|
233
|
-
* Index to start from (defaults to 0)
|
|
234
|
-
*/
|
|
235
|
-
offset?: number;
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
export class ApplicationsPage extends AbstractPage<ATS.Application> implements ApplicationsPageResponse {
|
|
239
|
-
paging: HRIS.Paging;
|
|
240
|
-
|
|
241
|
-
applications: Array<ATS.Application>;
|
|
242
|
-
|
|
243
|
-
constructor(
|
|
244
|
-
client: APIClient,
|
|
245
|
-
response: Response,
|
|
246
|
-
body: ApplicationsPageResponse,
|
|
247
|
-
options: FinalRequestOptions,
|
|
248
|
-
) {
|
|
249
|
-
super(client, response, body, options);
|
|
250
|
-
|
|
251
|
-
this.paging = body.paging;
|
|
252
|
-
this.applications = body.applications;
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
getPaginatedItems(): ATS.Application[] {
|
|
256
|
-
return this.applications;
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
// @deprecated Please use `nextPageInfo()` instead
|
|
260
|
-
nextPageParams(): Partial<ApplicationsPageParams> | null {
|
|
261
|
-
const info = this.nextPageInfo();
|
|
262
|
-
if (!info) return null;
|
|
263
|
-
if ('params' in info) return info.params;
|
|
264
|
-
const params = Object.fromEntries(info.url.searchParams);
|
|
265
|
-
if (!Object.keys(params).length) return null;
|
|
266
|
-
return params;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
nextPageInfo(): PageInfo | null {
|
|
270
|
-
const offset = this.paging.offset;
|
|
271
|
-
if (!offset) return null;
|
|
272
|
-
|
|
273
|
-
const length = this.applications.length;
|
|
274
|
-
const currentCount = offset + length;
|
|
275
|
-
|
|
276
|
-
const totalCount = this.paging.count;
|
|
277
|
-
if (!totalCount) return null;
|
|
278
|
-
|
|
279
|
-
if (currentCount < totalCount) {
|
|
280
|
-
return { params: { offset: currentCount } };
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
return null;
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
export interface JobsPageResponse {
|
|
288
|
-
jobs: Array<ATS.Job>;
|
|
289
|
-
|
|
290
|
-
paging: HRIS.Paging;
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
export interface JobsPageParams {
|
|
294
|
-
/**
|
|
295
|
-
* Number of jobs to return (defaults to all)
|
|
296
|
-
*/
|
|
297
|
-
limit?: number;
|
|
298
|
-
|
|
299
|
-
/**
|
|
300
|
-
* Index to start from (defaults to 0)
|
|
301
|
-
*/
|
|
302
|
-
offset?: number;
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
export class JobsPage extends AbstractPage<ATS.Job> implements JobsPageResponse {
|
|
306
|
-
paging: HRIS.Paging;
|
|
307
|
-
|
|
308
|
-
jobs: Array<ATS.Job>;
|
|
309
|
-
|
|
310
|
-
constructor(client: APIClient, response: Response, body: JobsPageResponse, options: FinalRequestOptions) {
|
|
311
|
-
super(client, response, body, options);
|
|
312
|
-
|
|
313
|
-
this.paging = body.paging;
|
|
314
|
-
this.jobs = body.jobs;
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
getPaginatedItems(): ATS.Job[] {
|
|
318
|
-
return this.jobs;
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
// @deprecated Please use `nextPageInfo()` instead
|
|
322
|
-
nextPageParams(): Partial<JobsPageParams> | null {
|
|
323
|
-
const info = this.nextPageInfo();
|
|
324
|
-
if (!info) return null;
|
|
325
|
-
if ('params' in info) return info.params;
|
|
326
|
-
const params = Object.fromEntries(info.url.searchParams);
|
|
327
|
-
if (!Object.keys(params).length) return null;
|
|
328
|
-
return params;
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
nextPageInfo(): PageInfo | null {
|
|
332
|
-
const offset = this.paging.offset;
|
|
333
|
-
if (!offset) return null;
|
|
334
|
-
|
|
335
|
-
const length = this.jobs.length;
|
|
336
|
-
const currentCount = offset + length;
|
|
337
|
-
|
|
338
|
-
const totalCount = this.paging.count;
|
|
339
|
-
if (!totalCount) return null;
|
|
340
|
-
|
|
341
|
-
if (currentCount < totalCount) {
|
|
342
|
-
return { params: { offset: currentCount } };
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
return null;
|
|
346
|
-
}
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
export interface OffersPageResponse {
|
|
350
|
-
offers: Array<ATS.Offer>;
|
|
351
|
-
|
|
352
|
-
paging: HRIS.Paging;
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
export interface OffersPageParams {
|
|
356
|
-
/**
|
|
357
|
-
* Number of offers to return (defaults to all)
|
|
358
|
-
*/
|
|
359
|
-
limit?: number;
|
|
360
|
-
|
|
361
|
-
/**
|
|
362
|
-
* Index to start from (defaults to 0)
|
|
363
|
-
*/
|
|
364
|
-
offset?: number;
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
export class OffersPage extends AbstractPage<ATS.Offer> implements OffersPageResponse {
|
|
368
|
-
paging: HRIS.Paging;
|
|
369
|
-
|
|
370
|
-
offers: Array<ATS.Offer>;
|
|
371
|
-
|
|
372
|
-
constructor(client: APIClient, response: Response, body: OffersPageResponse, options: FinalRequestOptions) {
|
|
373
|
-
super(client, response, body, options);
|
|
374
|
-
|
|
375
|
-
this.paging = body.paging;
|
|
376
|
-
this.offers = body.offers;
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
getPaginatedItems(): ATS.Offer[] {
|
|
380
|
-
return this.offers;
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
// @deprecated Please use `nextPageInfo()` instead
|
|
384
|
-
nextPageParams(): Partial<OffersPageParams> | null {
|
|
385
|
-
const info = this.nextPageInfo();
|
|
386
|
-
if (!info) return null;
|
|
387
|
-
if ('params' in info) return info.params;
|
|
388
|
-
const params = Object.fromEntries(info.url.searchParams);
|
|
389
|
-
if (!Object.keys(params).length) return null;
|
|
390
|
-
return params;
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
nextPageInfo(): PageInfo | null {
|
|
394
|
-
const offset = this.paging.offset;
|
|
395
|
-
if (!offset) return null;
|
|
396
|
-
|
|
397
|
-
const length = this.offers.length;
|
|
398
|
-
const currentCount = offset + length;
|
|
399
|
-
|
|
400
|
-
const totalCount = this.paging.count;
|
|
401
|
-
if (!totalCount) return null;
|
|
402
|
-
|
|
403
|
-
if (currentCount < totalCount) {
|
|
404
|
-
return { params: { offset: currentCount } };
|
|
405
|
-
}
|
|
406
|
-
|
|
407
|
-
return null;
|
|
408
|
-
}
|
|
409
|
-
}
|
package/src/resources/account.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// File generated from our OpenAPI spec by Stainless.
|
|
2
2
|
|
|
3
|
-
import * as Core from
|
|
4
|
-
import { APIResource } from
|
|
3
|
+
import * as Core from "../ch/finch-api/core";
|
|
4
|
+
import { APIResource } from "../ch/finch-api/resource";
|
|
5
5
|
import * as API from './index';
|
|
6
6
|
|
|
7
7
|
export class Account extends APIResource {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// File generated from our OpenAPI spec by Stainless.
|
|
2
2
|
|
|
3
|
-
import * as Core from
|
|
4
|
-
import { APIResource } from
|
|
5
|
-
import { isRequestOptions } from
|
|
3
|
+
import * as Core from "../../../ch/finch-api/core";
|
|
4
|
+
import { APIResource } from "../../../ch/finch-api/resource";
|
|
5
|
+
import { isRequestOptions } from "../../../ch/finch-api/core";
|
|
6
6
|
import { Individuals } from './individuals';
|
|
7
7
|
import * as API from './index';
|
|
8
|
-
import { SinglePage } from
|
|
8
|
+
import { SinglePage } from "../../../ch/finch-api/pagination";
|
|
9
9
|
|
|
10
10
|
export class Benefits extends APIResource {
|
|
11
11
|
individuals: Individuals = new Individuals(this.client);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// File generated from our OpenAPI spec by Stainless.
|
|
2
2
|
|
|
3
|
-
import * as Core from
|
|
4
|
-
import { APIResource } from
|
|
5
|
-
import { isRequestOptions } from
|
|
6
|
-
import * as Benefits from
|
|
3
|
+
import * as Core from "../../../ch/finch-api/core";
|
|
4
|
+
import { APIResource } from "../../../ch/finch-api/resource";
|
|
5
|
+
import { isRequestOptions } from "../../../ch/finch-api/core";
|
|
6
|
+
import * as Benefits from "../../../ch/finch-api/resources/hris/benefits/index";
|
|
7
7
|
import * as API from './index';
|
|
8
|
-
import { SinglePage } from
|
|
8
|
+
import { SinglePage } from "../../../ch/finch-api/pagination";
|
|
9
9
|
|
|
10
10
|
export class Individuals extends APIResource {
|
|
11
11
|
/**
|