@timesheet/sdk 1.0.4 → 1.0.6

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.
Files changed (138) hide show
  1. package/dist/auth/ApiKeyAuth.d.ts +13 -0
  2. package/dist/auth/ApiKeyAuth.d.ts.map +1 -0
  3. package/dist/auth/Authentication.d.ts +8 -0
  4. package/dist/auth/Authentication.d.ts.map +1 -0
  5. package/dist/auth/OAuth21Auth.d.ts +53 -0
  6. package/dist/auth/OAuth21Auth.d.ts.map +1 -0
  7. package/dist/auth/OAuth2Auth.d.ts +22 -0
  8. package/dist/auth/OAuth2Auth.d.ts.map +1 -0
  9. package/dist/auth/OAuthDiscovery.d.ts +30 -0
  10. package/dist/auth/OAuthDiscovery.d.ts.map +1 -0
  11. package/dist/auth/OAuthMetadata.d.ts +53 -0
  12. package/dist/auth/OAuthMetadata.d.ts.map +1 -0
  13. package/dist/auth/index.d.ts +8 -0
  14. package/dist/auth/index.d.ts.map +1 -0
  15. package/dist/auth/pkce.d.ts +11 -0
  16. package/dist/auth/pkce.d.ts.map +1 -0
  17. package/dist/config/ClientConfig.d.ts +10 -0
  18. package/dist/config/ClientConfig.d.ts.map +1 -0
  19. package/dist/config/RetryConfig.d.ts +17 -0
  20. package/dist/config/RetryConfig.d.ts.map +1 -0
  21. package/dist/config/index.d.ts +3 -0
  22. package/dist/config/index.d.ts.map +1 -0
  23. package/dist/exceptions/TimesheetApiError.d.ts +7 -0
  24. package/dist/exceptions/TimesheetApiError.d.ts.map +1 -0
  25. package/dist/exceptions/TimesheetAuthError.d.ts +5 -0
  26. package/dist/exceptions/TimesheetAuthError.d.ts.map +1 -0
  27. package/dist/exceptions/TimesheetRateLimitError.d.ts +7 -0
  28. package/dist/exceptions/TimesheetRateLimitError.d.ts.map +1 -0
  29. package/dist/exceptions/index.d.ts +4 -0
  30. package/dist/exceptions/index.d.ts.map +1 -0
  31. package/dist/http/ApiClient.d.ts +18 -0
  32. package/dist/http/ApiClient.d.ts.map +1 -0
  33. package/dist/http/index.d.ts +2 -0
  34. package/dist/http/index.d.ts.map +1 -0
  35. package/dist/index.d.ts +15 -1900
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +3 -2
  38. package/dist/index.js.map +7 -1
  39. package/dist/index.mjs +3 -2
  40. package/dist/index.mjs.map +7 -1
  41. package/dist/models/Automation.d.ts +51 -0
  42. package/dist/models/Automation.d.ts.map +1 -0
  43. package/dist/models/Document.d.ts +262 -0
  44. package/dist/models/Document.d.ts.map +1 -0
  45. package/dist/models/Event.d.ts +22 -0
  46. package/dist/models/Event.d.ts.map +1 -0
  47. package/dist/models/Expense.d.ts +62 -0
  48. package/dist/models/Expense.d.ts.map +1 -0
  49. package/dist/models/Note.d.ts +49 -0
  50. package/dist/models/Note.d.ts.map +1 -0
  51. package/dist/models/Organization.d.ts +31 -0
  52. package/dist/models/Organization.d.ts.map +1 -0
  53. package/dist/models/Page.d.ts +17 -0
  54. package/dist/models/Page.d.ts.map +1 -0
  55. package/dist/models/Pause.d.ts +35 -0
  56. package/dist/models/Pause.d.ts.map +1 -0
  57. package/dist/models/Profile.d.ts +42 -0
  58. package/dist/models/Profile.d.ts.map +1 -0
  59. package/dist/models/Project.d.ts +102 -0
  60. package/dist/models/Project.d.ts.map +1 -0
  61. package/dist/models/Rate.d.ts +43 -0
  62. package/dist/models/Rate.d.ts.map +1 -0
  63. package/dist/models/Reports.d.ts +326 -0
  64. package/dist/models/Reports.d.ts.map +1 -0
  65. package/dist/models/Settings.d.ts +31 -0
  66. package/dist/models/Settings.d.ts.map +1 -0
  67. package/dist/models/Tag.d.ts +33 -0
  68. package/dist/models/Tag.d.ts.map +1 -0
  69. package/dist/models/Task.d.ts +150 -0
  70. package/dist/models/Task.d.ts.map +1 -0
  71. package/dist/models/Team.d.ts +72 -0
  72. package/dist/models/Team.d.ts.map +1 -0
  73. package/dist/models/Timer.d.ts +37 -0
  74. package/dist/models/Timer.d.ts.map +1 -0
  75. package/dist/models/Todo.d.ts +57 -0
  76. package/dist/models/Todo.d.ts.map +1 -0
  77. package/dist/models/Webhook.d.ts +46 -0
  78. package/dist/models/Webhook.d.ts.map +1 -0
  79. package/dist/models/common.d.ts +38 -0
  80. package/dist/models/common.d.ts.map +1 -0
  81. package/dist/models/index.d.ts +21 -0
  82. package/dist/models/index.d.ts.map +1 -0
  83. package/dist/resources/AutomationResource.d.ts +14 -0
  84. package/dist/resources/AutomationResource.d.ts.map +1 -0
  85. package/dist/resources/DocumentResource.d.ts +14 -0
  86. package/dist/resources/DocumentResource.d.ts.map +1 -0
  87. package/dist/resources/EventResource.d.ts +18 -0
  88. package/dist/resources/EventResource.d.ts.map +1 -0
  89. package/dist/resources/ExpenseResource.d.ts +20 -0
  90. package/dist/resources/ExpenseResource.d.ts.map +1 -0
  91. package/dist/resources/NoteResource.d.ts +19 -0
  92. package/dist/resources/NoteResource.d.ts.map +1 -0
  93. package/dist/resources/OrganizationResource.d.ts +14 -0
  94. package/dist/resources/OrganizationResource.d.ts.map +1 -0
  95. package/dist/resources/PauseResource.d.ts +14 -0
  96. package/dist/resources/PauseResource.d.ts.map +1 -0
  97. package/dist/resources/ProfileResource.d.ts +9 -0
  98. package/dist/resources/ProfileResource.d.ts.map +1 -0
  99. package/dist/resources/ProjectResource.d.ts +14 -0
  100. package/dist/resources/ProjectResource.d.ts.map +1 -0
  101. package/dist/resources/RateResource.d.ts +14 -0
  102. package/dist/resources/RateResource.d.ts.map +1 -0
  103. package/dist/resources/Resource.d.ts +13 -0
  104. package/dist/resources/Resource.d.ts.map +1 -0
  105. package/dist/resources/SettingsResource.d.ts +9 -0
  106. package/dist/resources/SettingsResource.d.ts.map +1 -0
  107. package/dist/resources/TagResource.d.ts +14 -0
  108. package/dist/resources/TagResource.d.ts.map +1 -0
  109. package/dist/resources/TaskResource.d.ts +14 -0
  110. package/dist/resources/TaskResource.d.ts.map +1 -0
  111. package/dist/resources/TeamResource.d.ts +17 -0
  112. package/dist/resources/TeamResource.d.ts.map +1 -0
  113. package/dist/resources/TimerResource.d.ts +13 -0
  114. package/dist/resources/TimerResource.d.ts.map +1 -0
  115. package/dist/resources/TodoResource.d.ts +14 -0
  116. package/dist/resources/TodoResource.d.ts.map +1 -0
  117. package/dist/resources/WebhookResource.d.ts +14 -0
  118. package/dist/resources/WebhookResource.d.ts.map +1 -0
  119. package/dist/resources/index.d.ts +21 -0
  120. package/dist/resources/index.d.ts.map +1 -0
  121. package/dist/resources/reports/DocumentReportResource.d.ts +10 -0
  122. package/dist/resources/reports/DocumentReportResource.d.ts.map +1 -0
  123. package/dist/resources/reports/ExpenseReportResource.d.ts +9 -0
  124. package/dist/resources/reports/ExpenseReportResource.d.ts.map +1 -0
  125. package/dist/resources/reports/ExportResource.d.ts +24 -0
  126. package/dist/resources/reports/ExportResource.d.ts.map +1 -0
  127. package/dist/resources/reports/NoteReportResource.d.ts +9 -0
  128. package/dist/resources/reports/NoteReportResource.d.ts.map +1 -0
  129. package/dist/resources/reports/ReportsClient.d.ts +15 -0
  130. package/dist/resources/reports/ReportsClient.d.ts.map +1 -0
  131. package/dist/resources/reports/TaskReportResource.d.ts +9 -0
  132. package/dist/resources/reports/TaskReportResource.d.ts.map +1 -0
  133. package/dist/resources/reports/index.d.ts +7 -0
  134. package/dist/resources/reports/index.d.ts.map +1 -0
  135. package/dist/utils/date.d.ts +9 -0
  136. package/dist/utils/date.d.ts.map +1 -0
  137. package/package.json +6 -17
  138. package/dist/index.d.mts +0 -1936
@@ -0,0 +1,13 @@
1
+ import type { AxiosRequestConfig } from 'axios';
2
+ import type { Authentication } from './Authentication';
3
+ export declare class ApiKeyAuth implements Authentication {
4
+ private readonly apiKey;
5
+ constructor(apiKey: string);
6
+ private isValidFormat;
7
+ applyAuth(config: AxiosRequestConfig): void;
8
+ needsRefresh(): boolean;
9
+ refresh(): Promise<void>;
10
+ getAuthHeaders(): Promise<Record<string, string>>;
11
+ isValid(): boolean;
12
+ }
13
+ //# sourceMappingURL=ApiKeyAuth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiKeyAuth.d.ts","sourceRoot":"","sources":["../../src/auth/ApiKeyAuth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAQvD,qBAAa,UAAW,YAAW,cAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAuB3C,OAAO,CAAC,aAAa;IAMrB,SAAS,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAO3C,YAAY,IAAI,OAAO;IAMjB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAMvD,OAAO,IAAI,OAAO;CAOnB"}
@@ -0,0 +1,8 @@
1
+ import type { AxiosRequestConfig } from 'axios';
2
+ export interface Authentication {
3
+ applyAuth(config: AxiosRequestConfig): void;
4
+ needsRefresh(): boolean;
5
+ refresh(): Promise<void>;
6
+ getAuthHeaders(): Promise<Record<string, string>>;
7
+ }
8
+ //# sourceMappingURL=Authentication.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Authentication.d.ts","sourceRoot":"","sources":["../../src/auth/Authentication.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAKhD,MAAM,WAAW,cAAc;IAM7B,SAAS,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAO5C,YAAY,IAAI,OAAO,CAAC;IAOxB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAKzB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACnD"}
@@ -0,0 +1,53 @@
1
+ import type { AxiosRequestConfig } from 'axios';
2
+ import type { Authentication } from './Authentication';
3
+ import { type CodeChallengeMethod, type PkceCodePair } from './pkce';
4
+ export interface AuthorizationUrlOptions {
5
+ clientId: string;
6
+ redirectUri: string;
7
+ codeChallenge: string;
8
+ codeChallengeMethod?: CodeChallengeMethod;
9
+ state?: string;
10
+ scope?: string;
11
+ resource?: string;
12
+ authorizationEndpoint?: string;
13
+ }
14
+ export interface TokenExchangeOptions {
15
+ clientId: string;
16
+ clientSecret?: string;
17
+ authorizationCode: string;
18
+ redirectUri: string;
19
+ codeVerifier: string;
20
+ resource?: string;
21
+ tokenEndpoint?: string;
22
+ }
23
+ export interface OAuth21RefreshOptions {
24
+ clientId: string;
25
+ clientSecret?: string;
26
+ refreshToken: string;
27
+ resource?: string;
28
+ tokenEndpoint?: string;
29
+ }
30
+ export declare class OAuth21Auth implements Authentication {
31
+ private static readonly DEFAULT_TOKEN_ENDPOINT;
32
+ private static readonly DEFAULT_AUTH_ENDPOINT;
33
+ private accessToken;
34
+ private refreshToken?;
35
+ private readonly clientId?;
36
+ private readonly clientSecret?;
37
+ private readonly resource?;
38
+ private readonly tokenEndpoint;
39
+ private tokenExpiry?;
40
+ private refreshPromise?;
41
+ constructor(accessToken: string);
42
+ constructor(options: OAuth21RefreshOptions);
43
+ applyAuth(config: AxiosRequestConfig): void;
44
+ needsRefresh(): boolean;
45
+ refresh(): Promise<void>;
46
+ private performRefresh;
47
+ getAuthHeaders(): Promise<Record<string, string>>;
48
+ static fromAuthorizationCode(options: TokenExchangeOptions): Promise<OAuth21Auth>;
49
+ static buildAuthorizationUrl(options: AuthorizationUrlOptions): string;
50
+ static generatePkce(method?: CodeChallengeMethod): PkceCodePair;
51
+ private parseTokenExpiry;
52
+ }
53
+ //# sourceMappingURL=OAuth21Auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OAuth21Auth.d.ts","sourceRoot":"","sources":["../../src/auth/OAuth21Auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAGhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAClB,MAAM,QAAQ,CAAC;AAKhB,MAAM,WAAW,uBAAuB;IAEtC,QAAQ,EAAE,MAAM,CAAC;IAEjB,WAAW,EAAE,MAAM,CAAC;IAEpB,aAAa,EAAE,MAAM,CAAC;IAEtB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAE1C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAKD,MAAM,WAAW,oBAAoB;IAEnC,QAAQ,EAAE,MAAM,CAAC;IAEjB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,iBAAiB,EAAE,MAAM,CAAC;IAE1B,WAAW,EAAE,MAAM,CAAC;IAEpB,YAAY,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAKD,MAAM,WAAW,qBAAqB;IAEpC,QAAQ,EAAE,MAAM,CAAC;IAEjB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,YAAY,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAsDD,qBAAa,WAAY,YAAW,cAAc;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAA2C;IACzF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAA0C;IAEvF,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,WAAW,CAAC,CAAO;IAC3B,OAAO,CAAC,cAAc,CAAC,CAAgB;gBAQ3B,WAAW,EAAE,MAAM;gBAOnB,OAAO,EAAE,qBAAqB;IAoB1C,SAAS,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAO3C,YAAY,IAAI,OAAO;IAcjB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAkBhB,cAAc;IAqCtB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;WAkB1C,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC;IAuEvF,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM;IA6DtE,MAAM,CAAC,YAAY,CAAC,MAAM,GAAE,mBAA4B,GAAG,YAAY;IAIvE,OAAO,CAAC,gBAAgB;CAkBzB"}
@@ -0,0 +1,22 @@
1
+ import type { AxiosRequestConfig } from 'axios';
2
+ import type { Authentication } from './Authentication';
3
+ export declare class OAuth2Auth implements Authentication {
4
+ private static readonly TOKEN_ENDPOINT;
5
+ private accessToken;
6
+ private refreshToken?;
7
+ private readonly clientId?;
8
+ private readonly clientSecret?;
9
+ private tokenExpiry?;
10
+ private refreshPromise?;
11
+ constructor(accessToken: string);
12
+ constructor(clientId: string, clientSecret: string, refreshToken: string);
13
+ applyAuth(config: AxiosRequestConfig): void;
14
+ needsRefresh(): boolean;
15
+ refresh(): Promise<void>;
16
+ private performRefresh;
17
+ getAuthHeaders(): Promise<Record<string, string>>;
18
+ static fromAuthorizationCode(clientId: string, clientSecret: string, authorizationCode: string, redirectUri: string): Promise<OAuth2Auth>;
19
+ static buildAuthorizationUrl(clientId: string, redirectUri: string, state?: string): string;
20
+ private parseTokenExpiry;
21
+ }
22
+ //# sourceMappingURL=OAuth2Auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OAuth2Auth.d.ts","sourceRoot":"","sources":["../../src/auth/OAuth2Auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAGhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOvD,qBAAa,UAAW,YAAW,cAAc;IAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAA2C;IAEjF,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAS;IACvC,OAAO,CAAC,WAAW,CAAC,CAAO;IAC3B,OAAO,CAAC,cAAc,CAAC,CAAgB;gBAO3B,WAAW,EAAE,MAAM;gBASnB,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAiBxE,SAAS,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAO3C,YAAY,IAAI,OAAO;IAcjB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAkBhB,cAAc;IAqCtB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;WAoB1C,qBAAqB,CAChC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,MAAM,EACzB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,UAAU,CAAC;IA+CtB,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAc3F,OAAO,CAAC,gBAAgB;CAkBzB"}
@@ -0,0 +1,30 @@
1
+ import type { AuthorizationServerMetadata, OpenIdConfiguration, ProtectedResourceMetadata, OAuthDiscoveryResult } from './OAuthMetadata';
2
+ export interface OAuthDiscoveryOptions {
3
+ cacheTtl?: number;
4
+ timeout?: number;
5
+ fetchOpenIdConfig?: boolean;
6
+ fetchProtectedResource?: boolean;
7
+ }
8
+ export declare class OAuthDiscovery {
9
+ private static readonly DEFAULT_CACHE_TTL;
10
+ private static readonly DEFAULT_TIMEOUT;
11
+ private readonly cache;
12
+ private readonly options;
13
+ constructor(options?: OAuthDiscoveryOptions);
14
+ discover(issuerUrl: string): Promise<OAuthDiscoveryResult>;
15
+ fetchAuthorizationServerMetadata(issuerUrl: string): Promise<AuthorizationServerMetadata>;
16
+ fetchOpenIdConfiguration(issuerUrl: string): Promise<OpenIdConfiguration>;
17
+ fetchProtectedResourceMetadata(resourceUrl: string): Promise<ProtectedResourceMetadata>;
18
+ clearCache(): void;
19
+ clearCacheForIssuer(issuerUrl: string): void;
20
+ isCached(issuerUrl: string): boolean;
21
+ private normalizeIssuerUrl;
22
+ private getCached;
23
+ private setCache;
24
+ private validateAuthorizationServerMetadata;
25
+ private validateOpenIdConfiguration;
26
+ private validateProtectedResourceMetadata;
27
+ }
28
+ export declare function getDefaultDiscovery(): OAuthDiscovery;
29
+ export declare function discoverOAuth(issuerUrl: string, options?: OAuthDiscoveryOptions): Promise<OAuthDiscoveryResult>;
30
+ //# sourceMappingURL=OAuthDiscovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OAuthDiscovery.d.ts","sourceRoot":"","sources":["../../src/auth/OAuthDiscovery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,2BAA2B,EAC3B,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAKzB,MAAM,WAAW,qBAAqB;IAEpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAG5B,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AA+BD,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAkB;IAC3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAS;IAEhD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsC;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;gBAE9C,OAAO,GAAE,qBAA0B;IA0BzC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAgD1D,gCAAgC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAyBzF,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAyBzE,8BAA8B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAsB7F,UAAU,IAAI,IAAI;IAOlB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAO5C,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAKpC,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,mCAAmC;IAmB3C,OAAO,CAAC,2BAA2B;IAenC,OAAO,CAAC,iCAAiC;CAQ1C;AAUD,wBAAgB,mBAAmB,IAAI,cAAc,CAKpD;AAiBD,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,oBAAoB,CAAC,CAG/B"}
@@ -0,0 +1,53 @@
1
+ export interface AuthorizationServerMetadata {
2
+ issuer: string;
3
+ authorization_endpoint: string;
4
+ token_endpoint: string;
5
+ registration_endpoint?: string;
6
+ scopes_supported?: string[];
7
+ response_types_supported: string[];
8
+ grant_types_supported?: string[];
9
+ token_endpoint_auth_methods_supported?: string[];
10
+ code_challenge_methods_supported?: string[];
11
+ revocation_endpoint?: string;
12
+ revocation_endpoint_auth_methods_supported?: string[];
13
+ introspection_endpoint?: string;
14
+ introspection_endpoint_auth_methods_supported?: string[];
15
+ service_documentation?: string;
16
+ }
17
+ export interface ProtectedResourceMetadata {
18
+ resource: string;
19
+ authorization_servers: string[];
20
+ scopes_supported?: string[];
21
+ bearer_methods_supported?: string[];
22
+ resource_documentation?: string;
23
+ resource_signing_alg_values_supported?: string[];
24
+ }
25
+ export interface OpenIdConfiguration {
26
+ issuer: string;
27
+ authorization_endpoint: string;
28
+ token_endpoint: string;
29
+ userinfo_endpoint?: string;
30
+ jwks_uri: string;
31
+ registration_endpoint?: string;
32
+ scopes_supported?: string[];
33
+ response_types_supported: string[];
34
+ response_modes_supported?: string[];
35
+ grant_types_supported?: string[];
36
+ token_endpoint_auth_methods_supported?: string[];
37
+ token_endpoint_auth_signing_alg_values_supported?: string[];
38
+ service_documentation?: string;
39
+ ui_locales_supported?: string[];
40
+ op_policy_uri?: string;
41
+ op_tos_uri?: string;
42
+ revocation_endpoint?: string;
43
+ introspection_endpoint?: string;
44
+ code_challenge_methods_supported?: string[];
45
+ }
46
+ export interface OAuthDiscoveryResult {
47
+ issuer: string;
48
+ authorizationServer: AuthorizationServerMetadata;
49
+ protectedResource?: ProtectedResourceMetadata;
50
+ openIdConfiguration?: OpenIdConfiguration;
51
+ fetchedAt: Date;
52
+ }
53
+ //# sourceMappingURL=OAuthMetadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OAuthMetadata.d.ts","sourceRoot":"","sources":["../../src/auth/OAuthMetadata.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,2BAA2B;IAE1C,MAAM,EAAE,MAAM,CAAC;IAGf,sBAAsB,EAAE,MAAM,CAAC;IAG/B,cAAc,EAAE,MAAM,CAAC;IAGvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAG/B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAG5B,wBAAwB,EAAE,MAAM,EAAE,CAAC;IAGnC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IAGjC,qCAAqC,CAAC,EAAE,MAAM,EAAE,CAAC;IAGjD,gCAAgC,CAAC,EAAE,MAAM,EAAE,CAAC;IAG5C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAG7B,0CAA0C,CAAC,EAAE,MAAM,EAAE,CAAC;IAGtD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAGhC,6CAA6C,CAAC,EAAE,MAAM,EAAE,CAAC;IAGzD,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAMD,MAAM,WAAW,yBAAyB;IAExC,QAAQ,EAAE,MAAM,CAAC;IAGjB,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAGhC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAG5B,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IAGpC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAGhC,qCAAqC,CAAC,EAAE,MAAM,EAAE,CAAC;CAClD;AAMD,MAAM,WAAW,mBAAmB;IAElC,MAAM,EAAE,MAAM,CAAC;IAGf,sBAAsB,EAAE,MAAM,CAAC;IAG/B,cAAc,EAAE,MAAM,CAAC;IAGvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,QAAQ,EAAE,MAAM,CAAC;IAGjB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAG/B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAG5B,wBAAwB,EAAE,MAAM,EAAE,CAAC;IAGnC,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IAGpC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IAGjC,qCAAqC,CAAC,EAAE,MAAM,EAAE,CAAC;IAGjD,gDAAgD,CAAC,EAAE,MAAM,EAAE,CAAC;IAG5D,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAG/B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAGhC,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAG7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAGhC,gCAAgC,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7C;AAKD,MAAM,WAAW,oBAAoB;IAEnC,MAAM,EAAE,MAAM,CAAC;IAGf,mBAAmB,EAAE,2BAA2B,CAAC;IAGjD,iBAAiB,CAAC,EAAE,yBAAyB,CAAC;IAG9C,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAG1C,SAAS,EAAE,IAAI,CAAC;CACjB"}
@@ -0,0 +1,8 @@
1
+ export * from './Authentication';
2
+ export * from './ApiKeyAuth';
3
+ export * from './OAuth2Auth';
4
+ export * from './OAuth21Auth';
5
+ export * from './pkce';
6
+ export * from './OAuthMetadata';
7
+ export * from './OAuthDiscovery';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,11 @@
1
+ export type CodeChallengeMethod = 'S256' | 'plain';
2
+ export interface PkceCodePair {
3
+ codeVerifier: string;
4
+ codeChallenge: string;
5
+ codeChallengeMethod: CodeChallengeMethod;
6
+ }
7
+ export declare function generateCodeVerifier(length?: number): string;
8
+ export declare function generateCodeChallenge(codeVerifier: string, method?: CodeChallengeMethod): string;
9
+ export declare function generatePkceCodePair(method?: CodeChallengeMethod, verifierLength?: number): PkceCodePair;
10
+ export declare function isValidCodeVerifier(codeVerifier: string): boolean;
11
+ //# sourceMappingURL=pkce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pkce.d.ts","sourceRoot":"","sources":["../../src/auth/pkce.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,OAAO,CAAC;AAKnD,MAAM,WAAW,YAAY;IAE3B,YAAY,EAAE,MAAM,CAAC;IAErB,aAAa,EAAE,MAAM,CAAC;IAEtB,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C;AAWD,wBAAgB,oBAAoB,CAAC,MAAM,GAAE,MAAW,GAAG,MAAM,CAQhE;AAeD,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EACpB,MAAM,GAAE,mBAA4B,GACnC,MAAM,CAQR;AAgCD,wBAAgB,oBAAoB,CAClC,MAAM,GAAE,mBAA4B,EACpC,cAAc,GAAE,MAAW,GAC1B,YAAY,CASd;AAQD,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAQjE"}
@@ -0,0 +1,10 @@
1
+ import type { AxiosInstance } from 'axios';
2
+ import type { Authentication } from '../auth/Authentication';
3
+ import type { RetryConfig } from './RetryConfig';
4
+ export interface ClientConfig {
5
+ baseUrl: string;
6
+ authentication: Authentication;
7
+ retryConfig: RetryConfig;
8
+ httpClient?: AxiosInstance;
9
+ }
10
+ //# sourceMappingURL=ClientConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientConfig.d.ts","sourceRoot":"","sources":["../../src/config/ClientConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAKjD,MAAM,WAAW,YAAY;IAI3B,OAAO,EAAE,MAAM,CAAC;IAKhB,cAAc,EAAE,cAAc,CAAC;IAK/B,WAAW,EAAE,WAAW,CAAC;IAKzB,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B"}
@@ -0,0 +1,17 @@
1
+ export declare class RetryConfig {
2
+ readonly maxRetries: number;
3
+ readonly initialDelay: number;
4
+ readonly maxDelay: number;
5
+ readonly backoffMultiplier: number;
6
+ readonly retryableStatusCodes: number[];
7
+ constructor(options?: Partial<RetryConfigOptions>);
8
+ static default(): RetryConfig;
9
+ }
10
+ export interface RetryConfigOptions {
11
+ maxRetries: number;
12
+ initialDelay: number;
13
+ maxDelay: number;
14
+ backoffMultiplier: number;
15
+ retryableStatusCodes: number[];
16
+ }
17
+ //# sourceMappingURL=RetryConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RetryConfig.d.ts","sourceRoot":"","sources":["../../src/config/RetryConfig.ts"],"names":[],"mappings":"AAGA,qBAAa,WAAW;IACtB,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,iBAAiB,EAAE,MAAM,CAAC;IAC1C,SAAgB,oBAAoB,EAAE,MAAM,EAAE,CAAC;gBAEnC,OAAO,GAAE,OAAO,CAAC,kBAAkB,CAAM;IAWrD,MAAM,CAAC,OAAO,IAAI,WAAW;CAG9B;AAKD,MAAM,WAAW,kBAAkB;IAKjC,UAAU,EAAE,MAAM,CAAC;IAMnB,YAAY,EAAE,MAAM,CAAC;IAMrB,QAAQ,EAAE,MAAM,CAAC;IAMjB,iBAAiB,EAAE,MAAM,CAAC;IAM1B,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC"}
@@ -0,0 +1,3 @@
1
+ export * from './ClientConfig';
2
+ export * from './RetryConfig';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare class TimesheetApiError extends Error {
2
+ readonly statusCode?: number;
3
+ readonly responseBody?: string;
4
+ readonly errorCode?: string;
5
+ constructor(message: string, statusCode?: number, responseBody?: string, errorCode?: string);
6
+ }
7
+ //# sourceMappingURL=TimesheetApiError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimesheetApiError.d.ts","sourceRoot":"","sources":["../../src/exceptions/TimesheetApiError.ts"],"names":[],"mappings":"AAGA,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpC,SAAgB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtC,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAUvB,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;CAmB5F"}
@@ -0,0 +1,5 @@
1
+ import { TimesheetApiError } from './TimesheetApiError';
2
+ export declare class TimesheetAuthError extends TimesheetApiError {
3
+ constructor(message: string, statusCode?: number, responseBody?: string);
4
+ }
5
+ //# sourceMappingURL=TimesheetAuthError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimesheetAuthError.d.ts","sourceRoot":"","sources":["../../src/exceptions/TimesheetAuthError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAKxD,qBAAa,kBAAmB,SAAQ,iBAAiB;gBAQ3C,OAAO,EAAE,MAAM,EAAE,UAAU,GAAE,MAAY,EAAE,YAAY,CAAC,EAAE,MAAM;CAI7E"}
@@ -0,0 +1,7 @@
1
+ import { TimesheetApiError } from './TimesheetApiError';
2
+ export declare class TimesheetRateLimitError extends TimesheetApiError {
3
+ readonly retryAfter?: string;
4
+ constructor(message: string, retryAfter?: string);
5
+ getRetryAfterDate(): Date | null;
6
+ }
7
+ //# sourceMappingURL=TimesheetRateLimitError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimesheetRateLimitError.d.ts","sourceRoot":"","sources":["../../src/exceptions/TimesheetRateLimitError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAKxD,qBAAa,uBAAwB,SAAQ,iBAAiB;IAC5D,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;gBAQxB,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;IAWhD,iBAAiB,IAAI,IAAI,GAAG,IAAI;CAmBjC"}
@@ -0,0 +1,4 @@
1
+ export * from './TimesheetApiError';
2
+ export * from './TimesheetAuthError';
3
+ export * from './TimesheetRateLimitError';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exceptions/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,18 @@
1
+ /// <reference types="node" />
2
+ import type { AxiosRequestConfig } from 'axios';
3
+ import type { ClientConfig } from '../config';
4
+ export declare class ApiClient {
5
+ private readonly config;
6
+ private readonly httpClient;
7
+ constructor(config: ClientConfig);
8
+ request<T>(config: AxiosRequestConfig): Promise<T>;
9
+ get<T, P = Record<string, unknown>>(path: string, params?: P): Promise<T>;
10
+ post<T, P = Record<string, unknown>>(path: string, data?: unknown, params?: P): Promise<T>;
11
+ put<T, P = Record<string, unknown>>(path: string, data?: unknown, params?: P): Promise<T>;
12
+ delete<T, P = Record<string, unknown>>(path: string, params?: P): Promise<T>;
13
+ postMultipart<T>(path: string, formData: FormData): Promise<T>;
14
+ private sleep;
15
+ getBaseUrl(): string;
16
+ getAuthHeaders(): Promise<Record<string, string> | undefined>;
17
+ }
18
+ //# sourceMappingURL=ApiClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiClient.d.ts","sourceRoot":"","sources":["../../src/http/ApiClient.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAiB,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAW9C,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;gBAE/B,MAAM,EAAE,YAAY;IAiC1B,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAoElD,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAWzE,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAY1F,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAYzF,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAa5E,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;IAcpE,OAAO,CAAC,KAAK;IAOb,UAAU,IAAI,MAAM;IAQd,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;CAMpE"}
@@ -0,0 +1,2 @@
1
+ export * from './ApiClient';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}