@ampsec/platform-client 3.0.0 → 4.0.1

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 (118) hide show
  1. package/build/src/FilterCriteria.d.ts +18 -0
  2. package/build/src/FilterCriteria.js +3 -0
  3. package/build/src/FilterCriteria.js.map +1 -0
  4. package/build/src/dto/enums/agent.status.js +1 -0
  5. package/build/src/dto/enums/agent.status.js.map +1 -1
  6. package/build/src/dto/enums/connector.status.js +1 -0
  7. package/build/src/dto/enums/connector.status.js.map +1 -1
  8. package/build/src/dto/enums/finding.severity.js +1 -0
  9. package/build/src/dto/enums/finding.severity.js.map +1 -1
  10. package/build/src/dto/enums/finding.status.js +1 -0
  11. package/build/src/dto/enums/finding.status.js.map +1 -1
  12. package/build/src/dto/page.dto.d.ts +8 -0
  13. package/build/src/dto/platform/platform.agents.dto.d.ts +2 -2
  14. package/build/src/dto/platform/platform.assets.dto.d.ts +2 -2
  15. package/build/src/dto/platform/platform.connectors.dto.d.ts +2 -2
  16. package/build/src/dto/platform/platform.findings.dto.d.ts +2 -2
  17. package/build/src/dto/platform/platform.metrics.dto.d.ts +2 -2
  18. package/build/src/dto/platform/platform.reportResults.dto.d.ts +2 -2
  19. package/build/src/dto/platform/platform.saasAssets.dto.d.ts +2 -2
  20. package/build/src/dto/platform/platform.saasComponents.dto.d.ts +2 -2
  21. package/build/src/dto/platform/platform.saasUsers.dto.d.ts +1 -1
  22. package/build/src/dto/platform/platform.users.dto.d.ts +2 -2
  23. package/build/src/etag.d.ts +3 -0
  24. package/build/src/etag.js +6 -1
  25. package/build/src/etag.js.map +1 -1
  26. package/build/src/index.d.ts +2 -0
  27. package/build/src/index.js +2 -0
  28. package/build/src/index.js.map +1 -1
  29. package/build/src/services/AmpApi.d.ts +32 -0
  30. package/build/src/services/AmpApi.js +39 -0
  31. package/build/src/services/AmpApi.js.map +1 -0
  32. package/build/src/services/AmpSdk.d.ts +31 -0
  33. package/build/src/services/AmpSdk.js +38 -0
  34. package/build/src/services/AmpSdk.js.map +1 -0
  35. package/build/src/services/data.service.d.ts +23 -0
  36. package/build/src/services/data.service.js +52 -0
  37. package/build/src/services/data.service.js.map +1 -0
  38. package/build/src/services/entity.service.d.ts +34 -0
  39. package/build/src/services/entity.service.js +78 -0
  40. package/build/src/services/entity.service.js.map +1 -0
  41. package/build/src/services/index.d.ts +5 -0
  42. package/build/src/services/index.js +22 -0
  43. package/build/src/services/index.js.map +1 -0
  44. package/build/src/services/rest/RestClient.d.ts +46 -0
  45. package/build/src/services/rest/RestClient.js +106 -0
  46. package/build/src/services/rest/RestClient.js.map +1 -0
  47. package/build/src/services/rest/RestRequest.d.ts +8 -0
  48. package/build/src/services/rest/RestRequest.js +3 -0
  49. package/build/src/services/rest/RestRequest.js.map +1 -0
  50. package/build/src/services/rest/RestResponse.d.ts +7 -0
  51. package/build/src/services/rest/RestResponse.js +3 -0
  52. package/build/src/services/rest/RestResponse.js.map +1 -0
  53. package/build/src/services/rest/index.d.ts +5 -0
  54. package/build/src/services/rest/index.js +22 -0
  55. package/build/src/services/rest/index.js.map +1 -0
  56. package/build/src/services/rest/rateLimit.rest.d.ts +11 -0
  57. package/build/src/services/rest/rateLimit.rest.js +25 -0
  58. package/build/src/services/rest/rateLimit.rest.js.map +1 -0
  59. package/build/src/services/rest/retry.rest.d.ts +7 -0
  60. package/build/src/services/rest/retry.rest.js +18 -0
  61. package/build/src/services/rest/retry.rest.js.map +1 -0
  62. package/build/src/services/rest/utils.d.ts +7 -0
  63. package/build/src/services/rest/utils.js +12 -0
  64. package/build/src/services/rest/utils.js.map +1 -0
  65. package/package.json +7 -3
  66. package/src/FilterCriteria.ts +18 -0
  67. package/src/dto/agents.dto.ts +15 -0
  68. package/src/dto/assets.dto.ts +10 -0
  69. package/src/dto/base.dto.ts +25 -0
  70. package/src/dto/connectors.dto.ts +13 -0
  71. package/src/dto/enums/agent.status.ts +6 -0
  72. package/src/dto/enums/connector.status.ts +7 -0
  73. package/src/dto/enums/finding.severity.ts +7 -0
  74. package/src/dto/enums/finding.status.ts +5 -0
  75. package/src/dto/enums/index.ts +4 -0
  76. package/src/dto/extKeyMap.dto.ts +6 -0
  77. package/src/dto/findings.dto.ts +26 -0
  78. package/src/dto/index.ts +19 -0
  79. package/src/dto/message.dto.ts +3 -0
  80. package/src/dto/metrics.dto.ts +10 -0
  81. package/src/dto/page.dto.ts +14 -0
  82. package/src/dto/platform/index.ts +13 -0
  83. package/src/dto/platform/multi.tenant.based.dto.ts +11 -0
  84. package/src/dto/platform/platform.agents.dto.ts +6 -0
  85. package/src/dto/platform/platform.assets.dto.ts +6 -0
  86. package/src/dto/platform/platform.connectors.dto.ts +6 -0
  87. package/src/dto/platform/platform.findings.dto.ts +6 -0
  88. package/src/dto/platform/platform.metrics.dto.ts +6 -0
  89. package/src/dto/platform/platform.providers.dto.ts +5 -0
  90. package/src/dto/platform/platform.reportResults.dto.ts +6 -0
  91. package/src/dto/platform/platform.saasAssets.dto.ts +5 -0
  92. package/src/dto/platform/platform.saasComponents.dto.ts +6 -0
  93. package/src/dto/platform/platform.saasUsers.dto.ts +6 -0
  94. package/src/dto/platform/platform.tenants.dto.ts +5 -0
  95. package/src/dto/platform/platform.users.dto.ts +6 -0
  96. package/src/dto/platform/tenant.based.dto.ts +11 -0
  97. package/src/dto/providers.dto.ts +8 -0
  98. package/src/dto/reportResults.dto.ts +12 -0
  99. package/src/dto/riskContributors.dto.ts +10 -0
  100. package/src/dto/saasAssets.dto.ts +16 -0
  101. package/src/dto/saasComponents.dto.ts +18 -0
  102. package/src/dto/saasUsers.dto.ts +14 -0
  103. package/src/dto/tenants.dto.ts +8 -0
  104. package/src/dto/users.dto.ts +28 -0
  105. package/src/etag.ts +17 -0
  106. package/src/index.ts +4 -0
  107. package/src/services/AmpApi.ts +66 -0
  108. package/src/services/AmpSdk.ts +72 -0
  109. package/src/services/data.service.ts +69 -0
  110. package/src/services/entity.service.ts +104 -0
  111. package/src/services/index.ts +5 -0
  112. package/src/services/rest/RestClient.ts +103 -0
  113. package/src/services/rest/RestRequest.ts +9 -0
  114. package/src/services/rest/RestResponse.ts +8 -0
  115. package/src/services/rest/index.ts +5 -0
  116. package/src/services/rest/rateLimit.rest.ts +31 -0
  117. package/src/services/rest/retry.rest.ts +21 -0
  118. package/src/services/rest/utils.ts +13 -0
@@ -0,0 +1,8 @@
1
+ import {HeadersMap} from './utils';
2
+
3
+ export type RestResponse = {
4
+ status: number;
5
+ headers: HeadersMap;
6
+ data: unknown;
7
+ error: unknown;
8
+ };
@@ -0,0 +1,5 @@
1
+ export * from './RestClient';
2
+ export * from './RestRequest';
3
+ export * from './RestResponse';
4
+ export * from './rateLimit.rest';
5
+ export * from './retry.rest';
@@ -0,0 +1,31 @@
1
+ import {RestRequest} from './RestRequest';
2
+
3
+ export interface RestClientRateLimitStrategy {
4
+ reserve(_req: RestRequest): Promise<void>;
5
+ }
6
+
7
+ export const noopRestClientRateLimitStrategy: RestClientRateLimitStrategy = {
8
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
9
+ reserve(_req: RestRequest): Promise<void> {
10
+ return Promise.resolve();
11
+ },
12
+ };
13
+
14
+ const sleep = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));
15
+
16
+ export class StaticRestClientRateLimitStrategy implements RestClientRateLimitStrategy {
17
+ private readonly delay: number;
18
+ private lastRequest: number;
19
+
20
+ constructor(delay: number) {
21
+ this.delay = delay;
22
+ this.lastRequest = 0;
23
+ }
24
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
25
+ async reserve(_req: RestRequest): Promise<void> {
26
+ while (Date.now() - this.lastRequest < this.delay) {
27
+ await sleep(this.delay);
28
+ }
29
+ this.lastRequest = Date.now();
30
+ }
31
+ }
@@ -0,0 +1,21 @@
1
+ import {AxiosError} from 'axios';
2
+ import {convertHeaders} from './utils';
3
+ import {RestRequest} from './RestRequest';
4
+ import {RestResponse} from './RestResponse';
5
+
6
+ export interface RestClientRetryStrategy {
7
+ onError(_req: RestRequest, _err: AxiosError): Promise<RestResponse>;
8
+ }
9
+
10
+ export const noopRestRetryStrategy: RestClientRetryStrategy = {
11
+ onError(req: RestRequest, err: AxiosError): Promise<RestResponse> {
12
+ const axiosError = err as AxiosError;
13
+ const res: RestResponse = {
14
+ status: axiosError.response?.status ?? 500,
15
+ headers: axiosError.response ? convertHeaders(axiosError.response) : {},
16
+ data: null,
17
+ error: err,
18
+ };
19
+ return Promise.resolve(res);
20
+ },
21
+ };
@@ -0,0 +1,13 @@
1
+ import {AxiosResponse} from 'axios';
2
+
3
+ export type StringMap<T> = {[key: string]: T};
4
+ export type HeadersMap = StringMap<string>;
5
+ export type QueryMap = StringMap<unknown>;
6
+
7
+ export function convertHeaders(res: AxiosResponse): HeadersMap {
8
+ const headers: HeadersMap = {};
9
+ for (const [key, value] of Object.entries(res.headers)) {
10
+ headers[key] = value as string;
11
+ }
12
+ return headers;
13
+ }