@ampsec/platform-client 62.23.0 → 63.0.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.
Files changed (60) hide show
  1. package/build/src/dto/enums/category.d.ts +2 -1
  2. package/build/src/dto/enums/category.js +1 -0
  3. package/build/src/dto/enums/category.js.map +1 -1
  4. package/build/src/dto/enums/saasComponentKind.d.ts +2 -1
  5. package/build/src/dto/enums/saasComponentKind.js +2 -0
  6. package/build/src/dto/enums/saasComponentKind.js.map +1 -1
  7. package/build/src/dto/findings.dto.d.ts +27 -1
  8. package/build/src/dto/findings.dto.js +9 -1
  9. package/build/src/dto/findings.dto.js.map +1 -1
  10. package/build/src/dto/index.d.ts +1 -0
  11. package/build/src/dto/index.js +1 -0
  12. package/build/src/dto/index.js.map +1 -1
  13. package/build/src/dto/platform/index.d.ts +1 -0
  14. package/build/src/dto/platform/index.js +1 -0
  15. package/build/src/dto/platform/index.js.map +1 -1
  16. package/build/src/dto/platform/platform.findings.dto.d.ts +6 -0
  17. package/build/src/dto/platform/platform.tokens.dto.d.ts +53 -0
  18. package/build/src/dto/platform/platform.tokens.dto.js +8 -0
  19. package/build/src/dto/platform/platform.tokens.dto.js.map +1 -0
  20. package/build/src/dto/saasComponents.dto.d.ts +1 -1
  21. package/build/src/dto/tokens.dto.d.ts +47 -0
  22. package/build/src/dto/tokens.dto.js +11 -0
  23. package/build/src/dto/tokens.dto.js.map +1 -0
  24. package/build/src/services/AmpApi.d.ts +2 -1
  25. package/build/src/services/AmpApi.js +1 -0
  26. package/build/src/services/AmpApi.js.map +1 -1
  27. package/build/src/services/AmpSdk.d.ts +2 -1
  28. package/build/src/services/AmpSdk.js +1 -0
  29. package/build/src/services/AmpSdk.js.map +1 -1
  30. package/build/src/services/ContentTemplateService.d.ts +1 -0
  31. package/build/src/services/ContentTemplateService.js +25 -0
  32. package/build/src/services/ContentTemplateService.js.map +1 -0
  33. package/build/src/services/constants.d.ts +1 -0
  34. package/build/src/services/constants.js +1 -0
  35. package/build/src/services/constants.js.map +1 -1
  36. package/build/src/services/contentful.service.d.ts +272 -1
  37. package/build/src/services/contentful.service.js +197 -2
  38. package/build/src/services/contentful.service.js.map +1 -1
  39. package/build/src/services/index.d.ts +1 -0
  40. package/build/src/services/index.js +1 -0
  41. package/build/src/services/index.js.map +1 -1
  42. package/build/src/services/rest/RestClient.d.ts +1 -1
  43. package/build/src/services/rest/RestClient.js +1 -1
  44. package/build/src/services/rest/RestClient.js.map +1 -1
  45. package/package.json +2 -2
  46. package/src/dto/enums/category.ts +1 -0
  47. package/src/dto/enums/saasComponentKind.ts +3 -0
  48. package/src/dto/findings.dto.ts +11 -1
  49. package/src/dto/index.ts +1 -0
  50. package/src/dto/platform/index.ts +1 -0
  51. package/src/dto/platform/platform.tokens.dto.ts +9 -0
  52. package/src/dto/saasComponents.dto.ts +1 -1
  53. package/src/dto/tokens.dto.ts +11 -0
  54. package/src/services/AmpApi.ts +3 -0
  55. package/src/services/AmpSdk.ts +4 -0
  56. package/src/services/ContentTemplateService.ts +18 -0
  57. package/src/services/constants.ts +1 -0
  58. package/src/services/contentful.service.ts +238 -1
  59. package/src/services/index.ts +1 -0
  60. package/src/services/rest/RestClient.ts +2 -2
@@ -1,4 +1,8 @@
1
+ import { z } from 'zod';
1
2
  import type { Entry, EntrySkeletonType, EntryFieldTypes, EntryCollection, ContentfulClientApi } from 'contentful/dist/types';
3
+ /**
4
+ * @deprecated Use ContentService and MessageTemplateContent instead
5
+ */
2
6
  export type MessageTemplate = EntrySkeletonType & {
3
7
  contentTypeId: 'messageTemplate';
4
8
  fields: {
@@ -9,6 +13,8 @@ export type MessageTemplate = EntrySkeletonType & {
9
13
  };
10
14
  };
11
15
  /**
16
+ * @deprecated Use ContentService instead
17
+ *
12
18
  * ContentfulService
13
19
  *
14
20
  * This client is a wrapper around the Contentful REST API meant to be used by
@@ -30,6 +36,271 @@ export declare class ContentfulService {
30
36
  */
31
37
  constructor();
32
38
  getMessageTemplates: () => Promise<EntryCollection<MessageTemplate>>;
33
- getContentfulEntries: <T extends EntrySkeletonType>(contentType: string, include?: number) => Promise<EntryCollection<T>>;
39
+ getContentfulEntries: <T extends EntrySkeletonType>(contentType: string, include?: number, skip?: number, limit?: number) => Promise<EntryCollection<T>>;
34
40
  getContentfulEntry: <T extends EntrySkeletonType>(entryId: string) => Promise<Entry<T>>;
35
41
  }
42
+ export declare enum ContentType {
43
+ MESSAGE_TEMPLATE = "messageTemplate",
44
+ BACKEND_CONTENT = "backendContent",
45
+ SERVICE_PROFILE = "serviceProfile",
46
+ INTEGRATION = "integration",
47
+ INTEGRATION_DOMAIN = "integrationDomain",
48
+ FINDING = "finding",
49
+ SECURITY_HUB_I18N = "securityHubI18n"
50
+ }
51
+ export type ContentOptions = {
52
+ include?: number;
53
+ serviceFilter?: string | string[];
54
+ useCaseFilter?: string | string[];
55
+ };
56
+ declare const _BackendContent: z.ZodObject<{
57
+ key: z.ZodString;
58
+ value: z.ZodString;
59
+ serviceFilter: z.ZodArray<z.ZodString, "many">;
60
+ useCaseFilter: z.ZodArray<z.ZodString, "many">;
61
+ }, "strip", z.ZodTypeAny, {
62
+ value: string;
63
+ key: string;
64
+ serviceFilter: string[];
65
+ useCaseFilter: string[];
66
+ }, {
67
+ value: string;
68
+ key: string;
69
+ serviceFilter: string[];
70
+ useCaseFilter: string[];
71
+ }>;
72
+ export type BackendContent = z.infer<typeof _BackendContent>;
73
+ declare const _ServiceProfile: z.ZodObject<{
74
+ serviceKey: z.ZodString;
75
+ displayValue: z.ZodString;
76
+ logo: z.ZodString;
77
+ aliases: z.ZodArray<z.ZodString, "many">;
78
+ }, "strip", z.ZodTypeAny, {
79
+ displayValue: string;
80
+ serviceKey: string;
81
+ logo: string;
82
+ aliases: string[];
83
+ }, {
84
+ displayValue: string;
85
+ serviceKey: string;
86
+ logo: string;
87
+ aliases: string[];
88
+ }>;
89
+ export type ServiceProfile = z.infer<typeof _ServiceProfile>;
90
+ declare const _IntegrationDomain: z.ZodObject<{
91
+ name: z.ZodString;
92
+ domain: z.ZodString;
93
+ }, "strip", z.ZodTypeAny, {
94
+ name: string;
95
+ domain: string;
96
+ }, {
97
+ name: string;
98
+ domain: string;
99
+ }>;
100
+ export type IntegrationDomain = z.infer<typeof _IntegrationDomain>;
101
+ declare const _FindingContent: z.ZodObject<{
102
+ kind: z.ZodString;
103
+ title: z.ZodString;
104
+ displayText: z.ZodOptional<z.ZodString>;
105
+ timeToComplete: z.ZodOptional<z.ZodString>;
106
+ instructions: z.ZodType<EntryFieldTypes.RichText, z.ZodTypeDef, EntryFieldTypes.RichText>;
107
+ }, "strip", z.ZodTypeAny, {
108
+ title: string;
109
+ kind: string;
110
+ instructions: EntryFieldTypes.RichText;
111
+ displayText?: string | undefined;
112
+ timeToComplete?: string | undefined;
113
+ }, {
114
+ title: string;
115
+ kind: string;
116
+ instructions: EntryFieldTypes.RichText;
117
+ displayText?: string | undefined;
118
+ timeToComplete?: string | undefined;
119
+ }>;
120
+ export type FindingContent = z.infer<typeof _FindingContent>;
121
+ declare const _Integration: z.ZodObject<{
122
+ name: z.ZodString;
123
+ providerKey: z.ZodString;
124
+ logo: z.ZodString;
125
+ icon: z.ZodOptional<z.ZodString>;
126
+ tileDescription: z.ZodString;
127
+ overview: z.ZodString;
128
+ installationInstructions: z.ZodType<EntryFieldTypes.RichText, z.ZodTypeDef, EntryFieldTypes.RichText>;
129
+ termsOfUseLink: z.ZodOptional<z.ZodString>;
130
+ privacyStatementLink: z.ZodOptional<z.ZodString>;
131
+ supportLink: z.ZodOptional<z.ZodString>;
132
+ formTextKeys: z.ZodUnknown;
133
+ tags: z.ZodDefault<z.ZodArray<z.ZodOptional<z.ZodString>, "many">>;
134
+ overviewLong: z.ZodString;
135
+ installModalDynamicTabs: z.ZodUnknown;
136
+ overviewRichText: z.ZodType<EntryFieldTypes.RichText, z.ZodTypeDef, EntryFieldTypes.RichText>;
137
+ findings: z.ZodObject<{
138
+ kind: z.ZodString;
139
+ title: z.ZodString;
140
+ displayText: z.ZodOptional<z.ZodString>;
141
+ timeToComplete: z.ZodOptional<z.ZodString>;
142
+ instructions: z.ZodType<EntryFieldTypes.RichText, z.ZodTypeDef, EntryFieldTypes.RichText>;
143
+ }, "strip", z.ZodTypeAny, {
144
+ title: string;
145
+ kind: string;
146
+ instructions: EntryFieldTypes.RichText;
147
+ displayText?: string | undefined;
148
+ timeToComplete?: string | undefined;
149
+ }, {
150
+ title: string;
151
+ kind: string;
152
+ instructions: EntryFieldTypes.RichText;
153
+ displayText?: string | undefined;
154
+ timeToComplete?: string | undefined;
155
+ }>;
156
+ domains: z.ZodArray<z.ZodObject<{
157
+ name: z.ZodString;
158
+ domain: z.ZodString;
159
+ }, "strip", z.ZodTypeAny, {
160
+ name: string;
161
+ domain: string;
162
+ }, {
163
+ name: string;
164
+ domain: string;
165
+ }>, "many">;
166
+ }, "strip", z.ZodTypeAny, {
167
+ name: string;
168
+ findings: {
169
+ title: string;
170
+ kind: string;
171
+ instructions: EntryFieldTypes.RichText;
172
+ displayText?: string | undefined;
173
+ timeToComplete?: string | undefined;
174
+ };
175
+ tags: (string | undefined)[];
176
+ logo: string;
177
+ providerKey: string;
178
+ tileDescription: string;
179
+ overview: string;
180
+ installationInstructions: EntryFieldTypes.RichText;
181
+ overviewLong: string;
182
+ overviewRichText: EntryFieldTypes.RichText;
183
+ domains: {
184
+ name: string;
185
+ domain: string;
186
+ }[];
187
+ icon?: string | undefined;
188
+ termsOfUseLink?: string | undefined;
189
+ privacyStatementLink?: string | undefined;
190
+ supportLink?: string | undefined;
191
+ formTextKeys?: unknown;
192
+ installModalDynamicTabs?: unknown;
193
+ }, {
194
+ name: string;
195
+ findings: {
196
+ title: string;
197
+ kind: string;
198
+ instructions: EntryFieldTypes.RichText;
199
+ displayText?: string | undefined;
200
+ timeToComplete?: string | undefined;
201
+ };
202
+ logo: string;
203
+ providerKey: string;
204
+ tileDescription: string;
205
+ overview: string;
206
+ installationInstructions: EntryFieldTypes.RichText;
207
+ overviewLong: string;
208
+ overviewRichText: EntryFieldTypes.RichText;
209
+ domains: {
210
+ name: string;
211
+ domain: string;
212
+ }[];
213
+ icon?: string | undefined;
214
+ termsOfUseLink?: string | undefined;
215
+ privacyStatementLink?: string | undefined;
216
+ supportLink?: string | undefined;
217
+ formTextKeys?: unknown;
218
+ tags?: (string | undefined)[] | undefined;
219
+ installModalDynamicTabs?: unknown;
220
+ }>;
221
+ export type Integration = z.infer<typeof _Integration>;
222
+ declare const _I18nContent: z.ZodObject<{
223
+ key: z.ZodString;
224
+ value: z.ZodString;
225
+ useCaseFilter: z.ZodArray<z.ZodString, "many">;
226
+ }, "strip", z.ZodTypeAny, {
227
+ value: string;
228
+ key: string;
229
+ useCaseFilter: string[];
230
+ }, {
231
+ value: string;
232
+ key: string;
233
+ useCaseFilter: string[];
234
+ }>;
235
+ export type I18nContent = z.infer<typeof _I18nContent>;
236
+ declare const _MessageTemplateContent: z.ZodObject<{
237
+ id: z.ZodString;
238
+ body: z.ZodString;
239
+ subject: z.ZodOptional<z.ZodString>;
240
+ }, "strip", z.ZodTypeAny, {
241
+ id: string;
242
+ body: string;
243
+ subject?: string | undefined;
244
+ }, {
245
+ id: string;
246
+ body: string;
247
+ subject?: string | undefined;
248
+ }>;
249
+ export type MessageTemplateContent = z.infer<typeof _MessageTemplateContent>;
250
+ export declare class ContentService {
251
+ private readonly contentfulService;
252
+ private constructor();
253
+ getEntries: (contentType: ContentType, options: ContentOptions) => Promise<unknown[]>;
254
+ getBackendContent: (options?: ContentOptions) => Promise<BackendContent[]>;
255
+ getMessageTemplates: () => Promise<MessageTemplateContent[]>;
256
+ getIntegrationDomains: (options?: ContentOptions) => Promise<IntegrationDomain[]>;
257
+ private mapIntegrationDomain;
258
+ getFindings: (options?: ContentOptions) => Promise<FindingContent[]>;
259
+ private mapFindings;
260
+ getIntegrations: (options?: ContentOptions) => Promise<Integration[]>;
261
+ getServiceProfiles: (options?: ContentOptions) => Promise<ServiceProfile[]>;
262
+ getI18nContent: (options?: ContentOptions) => Promise<I18nContent[]>;
263
+ static instance(): ContentService;
264
+ }
265
+ export declare class I18nContentService {
266
+ private readonly contentService;
267
+ private content;
268
+ private isInitialized;
269
+ private constructor();
270
+ init: () => Promise<I18nContentService>;
271
+ refresh: () => Promise<I18nContentService>;
272
+ /**
273
+ * Example Usage:
274
+ * ```ts
275
+ * const i18n = await i18nContentService.instance();
276
+ * await i18n.init();
277
+ * const value = i18n.g('LOADING', 'Loading...');
278
+ * ```
279
+ * @param key
280
+ * @param defaultValue
281
+ * @returns
282
+ */
283
+ g: (key: string, defaultValue?: string) => string;
284
+ /**
285
+ * Example Usage:
286
+ * ```ts
287
+ * const i18n = await I18nContentService.instance();
288
+ * await i18n.init();
289
+ * const t = i18n.getLookupFunction();
290
+ * const value = t('LOADING', 'Loading...');
291
+ * // or more simply
292
+ * return <div>{t('Loading...')}</div>
293
+ * // Note this can be use to extend functionality of a Typography component, e.g.
294
+ * const MyTypography = (props: {children: string}) => <Typography>{t(props.children)}</Typography>
295
+ * return <MyTypography>Loading...</MyTypography>
296
+ * ```
297
+ * @returns
298
+ */
299
+ getLookupFunction: () => (key: string, defaultValue?: string) => string;
300
+ private static _instance;
301
+ static instance(_options?: {
302
+ locale?: 'en';
303
+ useCaseFilter?: string | string[];
304
+ }): I18nContentService;
305
+ }
306
+ export {};
@@ -22,10 +22,17 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
25
28
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.ContentfulService = void 0;
29
+ exports.I18nContentService = exports.ContentService = exports.ContentType = exports.ContentfulService = void 0;
30
+ const zod_1 = require("zod");
27
31
  const contentful = __importStar(require("contentful"));
32
+ const lodash_1 = __importDefault(require("lodash"));
28
33
  /**
34
+ * @deprecated Use ContentService instead
35
+ *
29
36
  * ContentfulService
30
37
  *
31
38
  * This client is a wrapper around the Contentful REST API meant to be used by
@@ -49,12 +56,14 @@ class ContentfulService {
49
56
  const messageTemplates = await this.getContentfulEntries('messageTemplate', 0);
50
57
  return messageTemplates;
51
58
  };
52
- this.getContentfulEntries = async (contentType, include) => {
59
+ this.getContentfulEntries = async (contentType, include, skip, limit) => {
53
60
  if (!this.contentfulClient) {
54
61
  throw new Error('Contenful client not initialized because of missing configurations: CONTENTFUL_SPACE_ID and CONTENTFUL_ACCESS_TOKEN must be set in the environment');
55
62
  }
56
63
  const entries = await this.contentfulClient.getEntries({
57
64
  content_type: contentType,
65
+ skip,
66
+ limit,
58
67
  ...(include ? { include } : {}),
59
68
  });
60
69
  return entries;
@@ -78,4 +87,190 @@ class ContentfulService {
78
87
  }
79
88
  }
80
89
  exports.ContentfulService = ContentfulService;
90
+ var ContentType;
91
+ (function (ContentType) {
92
+ ContentType["MESSAGE_TEMPLATE"] = "messageTemplate";
93
+ ContentType["BACKEND_CONTENT"] = "backendContent";
94
+ ContentType["SERVICE_PROFILE"] = "serviceProfile";
95
+ ContentType["INTEGRATION"] = "integration";
96
+ ContentType["INTEGRATION_DOMAIN"] = "integrationDomain";
97
+ ContentType["FINDING"] = "finding";
98
+ ContentType["SECURITY_HUB_I18N"] = "securityHubI18n";
99
+ })(ContentType || (exports.ContentType = ContentType = {}));
100
+ const ContentfulRichText = zod_1.z.any();
101
+ const _BackendContent = zod_1.z.object({
102
+ key: zod_1.z.string(),
103
+ value: zod_1.z.string(),
104
+ serviceFilter: zod_1.z.array(zod_1.z.string()),
105
+ useCaseFilter: zod_1.z.array(zod_1.z.string()),
106
+ });
107
+ const _ServiceProfile = zod_1.z.object({
108
+ serviceKey: zod_1.z.string(),
109
+ displayValue: zod_1.z.string(),
110
+ logo: zod_1.z.string(),
111
+ aliases: zod_1.z.array(zod_1.z.string()),
112
+ });
113
+ const _IntegrationDomain = zod_1.z.object({
114
+ name: zod_1.z.string(),
115
+ domain: zod_1.z.string(),
116
+ });
117
+ const _FindingContent = zod_1.z.object({
118
+ kind: zod_1.z.string(),
119
+ title: zod_1.z.string(),
120
+ displayText: zod_1.z.string().optional(),
121
+ timeToComplete: zod_1.z.string().optional(),
122
+ instructions: ContentfulRichText,
123
+ });
124
+ const _Integration = zod_1.z.object({
125
+ name: zod_1.z.string(),
126
+ providerKey: zod_1.z.string(),
127
+ logo: zod_1.z.string(),
128
+ icon: zod_1.z.string().optional(),
129
+ tileDescription: zod_1.z.string(),
130
+ overview: zod_1.z.string(),
131
+ installationInstructions: ContentfulRichText,
132
+ termsOfUseLink: zod_1.z.string().optional(),
133
+ privacyStatementLink: zod_1.z.string().optional(),
134
+ supportLink: zod_1.z.string().optional(),
135
+ formTextKeys: zod_1.z.unknown(),
136
+ tags: zod_1.z.array(zod_1.z.string().optional()).default([]),
137
+ overviewLong: zod_1.z.string(),
138
+ installModalDynamicTabs: zod_1.z.unknown(),
139
+ overviewRichText: ContentfulRichText,
140
+ findings: _FindingContent,
141
+ domains: zod_1.z.array(_IntegrationDomain),
142
+ });
143
+ const _I18nContent = zod_1.z.object({
144
+ key: zod_1.z.string(),
145
+ value: zod_1.z.string(),
146
+ useCaseFilter: zod_1.z.array(zod_1.z.string()),
147
+ });
148
+ const _MessageTemplateContent = zod_1.z.object({
149
+ id: zod_1.z.string(),
150
+ body: zod_1.z.string(),
151
+ subject: zod_1.z.string().optional(),
152
+ });
153
+ class ContentService {
154
+ constructor(contentfulService) {
155
+ this.contentfulService = contentfulService;
156
+ this.getEntries = async (contentType, options) => {
157
+ const entries = [];
158
+ let hasMore = true;
159
+ let skip = 0;
160
+ while (hasMore) {
161
+ const rawEntries = await this.contentfulService.getContentfulEntries(contentType, options.include, skip, 100);
162
+ entries.push(...rawEntries.items.map(entry => entry.fields));
163
+ skip += 100;
164
+ hasMore = rawEntries.skip + rawEntries.limit < rawEntries.total;
165
+ }
166
+ return entries;
167
+ };
168
+ this.getBackendContent = async (options) => {
169
+ const rawEntries = await this.getEntries(ContentType.BACKEND_CONTENT, options || {});
170
+ const entries = rawEntries.map(entry => _BackendContent.parse(entry));
171
+ return entries;
172
+ };
173
+ this.getMessageTemplates = async () => {
174
+ const rawEntries = await this.contentfulService.getMessageTemplates();
175
+ const entries = rawEntries.items.map(entry => _MessageTemplateContent.parse(entry.fields));
176
+ return entries;
177
+ };
178
+ this.getIntegrationDomains = async (options) => {
179
+ const rawEntries = await this.getEntries(ContentType.INTEGRATION_DOMAIN, options || {});
180
+ const entries = rawEntries.map(this.mapIntegrationDomain);
181
+ return entries;
182
+ };
183
+ this.mapIntegrationDomain = (entry) => _IntegrationDomain.parse(entry);
184
+ this.getFindings = async (options) => {
185
+ const rawEntries = await this.getEntries(ContentType.FINDING, options || {});
186
+ const entries = rawEntries.map(this.mapFindings);
187
+ return entries;
188
+ };
189
+ this.mapFindings = (entry) => _FindingContent.parse(entry);
190
+ this.getIntegrations = async (options) => {
191
+ const rawEntries = await this.getEntries(ContentType.INTEGRATION, options || {});
192
+ const entries = rawEntries.map(entry => {
193
+ const logoUrl = lodash_1.default.get(entry, 'logo.fields.file.url');
194
+ lodash_1.default.set(entry, 'logo', logoUrl ? 'https:' + logoUrl : '');
195
+ const iconUrl = lodash_1.default.get(entry, 'icon.fields.file.url');
196
+ lodash_1.default.set(entry, 'icon', iconUrl ? 'https:' + iconUrl : '');
197
+ lodash_1.default.set(entry, 'domains', lodash_1.default.get(entry, 'domains', []).map(e => this.mapIntegrationDomain(lodash_1.default.get(e, 'fields'))));
198
+ lodash_1.default.set(entry, 'findings', lodash_1.default.get(entry, 'findings', []).map(e => this.mapFindings(lodash_1.default.get(e, 'fields'))));
199
+ return _Integration.parse(entry);
200
+ });
201
+ return entries;
202
+ };
203
+ this.getServiceProfiles = async (options) => {
204
+ const rawEntries = await this.getEntries(ContentType.SERVICE_PROFILE, options || {});
205
+ const entries = rawEntries.map(entry => {
206
+ const logoUrl = lodash_1.default.get(entry, 'logo.fields.file.url');
207
+ lodash_1.default.set(entry, 'logo', logoUrl ? 'https:' + logoUrl : '');
208
+ return _ServiceProfile.parse(entry);
209
+ });
210
+ return entries;
211
+ };
212
+ this.getI18nContent = async (options) => {
213
+ const rawEntries = await this.getEntries(ContentType.SECURITY_HUB_I18N, options || {});
214
+ const entries = rawEntries.map(entry => _I18nContent.parse(entry));
215
+ return entries;
216
+ };
217
+ }
218
+ static instance() {
219
+ return new ContentService(new ContentfulService());
220
+ }
221
+ }
222
+ exports.ContentService = ContentService;
223
+ class I18nContentService {
224
+ constructor(contentService) {
225
+ this.contentService = contentService;
226
+ this.content = {};
227
+ this.init = async () => this.isInitialized;
228
+ this.refresh = async () => {
229
+ const content = await this.contentService.getI18nContent();
230
+ this.content = lodash_1.default.keyBy(content, 'key');
231
+ return this;
232
+ };
233
+ /**
234
+ * Example Usage:
235
+ * ```ts
236
+ * const i18n = await i18nContentService.instance();
237
+ * await i18n.init();
238
+ * const value = i18n.g('LOADING', 'Loading...');
239
+ * ```
240
+ * @param key
241
+ * @param defaultValue
242
+ * @returns
243
+ */
244
+ this.g = (key, defaultValue) => {
245
+ return lodash_1.default.get(this.content, [key, 'value'], defaultValue || key);
246
+ };
247
+ /**
248
+ * Example Usage:
249
+ * ```ts
250
+ * const i18n = await I18nContentService.instance();
251
+ * await i18n.init();
252
+ * const t = i18n.getLookupFunction();
253
+ * const value = t('LOADING', 'Loading...');
254
+ * // or more simply
255
+ * return <div>{t('Loading...')}</div>
256
+ * // Note this can be use to extend functionality of a Typography component, e.g.
257
+ * const MyTypography = (props: {children: string}) => <Typography>{t(props.children)}</Typography>
258
+ * return <MyTypography>Loading...</MyTypography>
259
+ * ```
260
+ * @returns
261
+ */
262
+ this.getLookupFunction = () => this.g;
263
+ this.isInitialized = this.refresh().then(service => {
264
+ console.debug('i18nContentService initialized');
265
+ return service;
266
+ });
267
+ }
268
+ static instance(_options) {
269
+ if (!I18nContentService._instance) {
270
+ I18nContentService._instance = new I18nContentService(ContentService.instance());
271
+ }
272
+ return I18nContentService._instance;
273
+ }
274
+ }
275
+ exports.I18nContentService = I18nContentService;
81
276
  //# sourceMappingURL=contentful.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contentful.service.js","sourceRoot":"","sources":["../../../src/services/contentful.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uDAAyC;AAYzC;;;;;;;;;IASI;AACJ,MAAa,iBAAiB;IAE5B;;;;;;;OAOG;IACH;QAWA,wBAAmB,GAAG,KAAK,IAA+C,EAAE;YAC1E,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAkB,iBAAiB,EAAE,CAAC,CAAC,CAAC;YAChG,OAAO,gBAAgB,CAAC;QAC1B,CAAC,CAAC;QAEF,yBAAoB,GAAG,KAAK,EAA+B,WAAmB,EAAE,OAAgB,EAA+B,EAAE;YAC/H,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,oJAAoJ,CAAC,CAAC;YACxK,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAI;gBACxD,YAAY,EAAE,WAAW;gBACzB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAC,OAAO,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9B,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QAEF,uBAAkB,GAAG,KAAK,EAA+B,OAAe,EAAqB,EAAE;YAC7F,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,oJAAoJ,CAAC,CAAC;YACxK,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAI,OAAO,CAAC,CAAC;YAC/D,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAhCA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC;YAC7E,OAAO,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;QACjG,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,YAAY,CAAC;gBAC9C,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE;gBAC5C,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE;aACvD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CAyBF;AA5CD,8CA4CC"}
1
+ {"version":3,"file":"contentful.service.js","sourceRoot":"","sources":["../../../src/services/contentful.service.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ export * from './AmpApi';
2
2
  export * from './EngageApi';
3
3
  export * from './AmpSdk';
4
4
  export * from './constants';
5
+ export * from './ContentTemplateService';
5
6
  export * from './data.service';
6
7
  export * from './entity.service';
7
8
  export * from './findingsInsights.service';
@@ -18,6 +18,7 @@ __exportStar(require("./AmpApi"), exports);
18
18
  __exportStar(require("./EngageApi"), exports);
19
19
  __exportStar(require("./AmpSdk"), exports);
20
20
  __exportStar(require("./constants"), exports);
21
+ __exportStar(require("./ContentTemplateService"), exports);
21
22
  __exportStar(require("./data.service"), exports);
22
23
  __exportStar(require("./entity.service"), exports);
23
24
  __exportStar(require("./findingsInsights.service"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,8CAA4B;AAC5B,2CAAyB;AACzB,8CAA4B;AAC5B,iDAA+B;AAC/B,mDAAiC;AACjC,6DAA2C;AAC3C,qDAAmC;AACnC,mDAAiC;AACjC,yCAAuB;AACvB,uDAAqC;AACrC,qDAAmC;AACnC,0CAAwB;AACxB,uDAAqC;AACrC,yDAAuC;AACvC,oDAAkC;AAClC,uDAAqC;AACrC,uDAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,8CAA4B;AAC5B,2CAAyB;AACzB,8CAA4B;AAC5B,2DAAyC;AACzC,iDAA+B;AAC/B,mDAAiC;AACjC,6DAA2C;AAC3C,qDAAmC;AACnC,mDAAiC;AACjC,yCAAuB;AACvB,uDAAqC;AACrC,qDAAmC;AACnC,0CAAwB;AACxB,uDAAqC;AACrC,yDAAuC;AACvC,oDAAkC;AAClC,uDAAqC;AACrC,uDAAqC"}
@@ -13,7 +13,7 @@ export type AmpRestClientOptions = {
13
13
  rateLimitStrategy?: RestClientRateLimitStrategy;
14
14
  logger?: AmpLogger;
15
15
  client?: AxiosStatic;
16
- /** Throws errors on non-200 responses if `true`. Default `false` */
16
+ /** Throws errors on non-200 responses if `true`*/
17
17
  strict?: boolean;
18
18
  };
19
19
  export type RestClientOptions = {
@@ -113,7 +113,7 @@ const getAmpRestClient = (options) => {
113
113
  rateLimitStrategy: new rateLimit_rest_1.StaticRestClientRateLimitStrategy(50),
114
114
  logger: options.logger,
115
115
  client: options.client,
116
- strict: options.strict,
116
+ strict: lodash_1.default.isUndefined(options.strict) ? true : options.strict,
117
117
  });
118
118
  return ampClient;
119
119
  };
@@ -1 +1 @@
1
- {"version":3,"file":"RestClient.js","sourceRoot":"","sources":["../../../../src/services/rest/RestClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RestClient.js","sourceRoot":"","sources":["../../../../src/services/rest/RestClient.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ampsec/platform-client",
3
- "version": "62.23.0",
3
+ "version": "63.0.0",
4
4
  "description": "",
5
5
  "main": "build/src/index.js",
6
6
  "runkitExampleFilename": "example/main.js",
@@ -53,4 +53,4 @@
53
53
  "/src",
54
54
  "/example"
55
55
  ]
56
- }
56
+ }
@@ -9,4 +9,5 @@ export enum Category {
9
9
  NOTIFICATION = 'NOTIFICATION',
10
10
  TRAINING = 'TRAINING',
11
11
  WEB_GATEWAY = 'WEB_GATEWAY',
12
+ CUSTOM = 'CUSTOM',
12
13
  }
@@ -14,4 +14,7 @@ export enum SaasComponentKind {
14
14
 
15
15
  // WEB_GATEWAY
16
16
  WEB_GATEWAY_SESSION = 'WEB_GATEWAY_SESSION',
17
+
18
+ // CUSTOM (for custom findings)
19
+ CUSTOM = 'CUSTOM',
17
20
  }
@@ -20,7 +20,7 @@ export type FindingUpsertDto = BaseUpsertDto & {
20
20
  /** Category of finding */
21
21
  category: Category;
22
22
  /** Type of finding */
23
- kind: FindingKind;
23
+ kind: FindingKind | string;
24
24
  /** Status of the finding, e.g. OPEN */
25
25
  status: FindingStatus;
26
26
  /** Severity of the finding, e.g. CRITICAL, HIGH, etc... */
@@ -97,6 +97,7 @@ export const _FindingSpecDto = _BaseDto.extend({
97
97
  })
98
98
  .optional(),
99
99
  expireAfterDays: z.nullable(z.number()).optional(),
100
+ outcome: z.nativeEnum(FindingOutcome).optional(), // TODO add column and form field??? Or just default to REMEDIATION?
100
101
  });
101
102
  export type FindingSpecDto = z.infer<typeof _FindingSpecDto>;
102
103
 
@@ -115,3 +116,12 @@ export const _FindingSummaryDto = z.object({
115
116
  eventType: z.string(),
116
117
  });
117
118
  export type FindingSummaryDto = z.infer<typeof _FindingSummaryDto>;
119
+
120
+ export const _CustomFindingPayload = z.object({
121
+ eventType: z.string(),
122
+ correlationId: z.string().optional(),
123
+ email: z.string().optional(),
124
+ serialNumber: z.string().optional(),
125
+ context: z.unknown().optional(),
126
+ });
127
+ export type CustomFindingPayload = z.infer<typeof _CustomFindingPayload>;
package/src/dto/index.ts CHANGED
@@ -28,6 +28,7 @@ export * from './saasComponents.dto';
28
28
  export * from './saasUsers.dto';
29
29
  export * from './ampSetting.dto';
30
30
  export * from './tenants.dto';
31
+ export * from './tokens.dto';
31
32
  export * from './users.dto';
32
33
  export * from './messagingChannels';
33
34
  export * from './cohort.dto';