@webiny/api-audit-logs 5.43.0-beta.0 → 5.43.0-beta.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.
package/app/app.js CHANGED
@@ -17,7 +17,7 @@ const toDate = value => {
17
17
  return value;
18
18
  }
19
19
  };
20
- const decompressData = entry => {
20
+ const decompressData = async entry => {
21
21
  if (!entry.data?.data) {
22
22
  return entry;
23
23
  }
@@ -26,7 +26,7 @@ const decompressData = entry => {
26
26
  data: {
27
27
  ...entry.data,
28
28
  timestamp: toDate(entry.data.timestamp),
29
- data: _compressor.compressor.decompress(entry.data.data)
29
+ data: await _compressor.compressor.decompress(entry.data.data)
30
30
  }
31
31
  };
32
32
  };
@@ -96,7 +96,7 @@ const createApp = () => {
96
96
  return decompressData(entry);
97
97
  },
98
98
  onEntryList: async entries => {
99
- return Promise.all(entries.map(entry => {
99
+ return await Promise.all(entries.map(async entry => {
100
100
  return decompressData(entry);
101
101
  }));
102
102
  },
package/app/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_contants","require","_compressor","_apiSecurity","toDate","value","Date","decompressData","entry","data","timestamp","compressor","decompress","createApp","name","AUDIT_LOGS_TYPE","apiName","fields","id","fieldId","type","storageId","label","settings","onEntry","onEntryList","entries","Promise","all","map","onAnyRequest","context","action","permissions","security","getPermissions","permission","NotAuthorizedError","message","exports"],"sources":["app.ts"],"sourcesContent":["import { IAcoAppRegisterParams, SearchRecord } from \"@webiny/api-aco/types\";\nimport { AUDIT_LOGS_TYPE } from \"./contants\";\nimport { compressor } from \"~/utils/compressor\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\n\nconst toDate = (value: string | Date) => {\n if (value instanceof Date) {\n return value;\n }\n try {\n return new Date(value);\n } catch {\n return value;\n }\n};\n\nconst decompressData = (entry: SearchRecord<any>): SearchRecord<any> => {\n if (!entry.data?.data) {\n return entry;\n }\n return {\n ...entry,\n data: {\n ...entry.data,\n timestamp: toDate(entry.data.timestamp),\n data: compressor.decompress(entry.data.data)\n }\n };\n};\n\nexport const createApp = (): IAcoAppRegisterParams => {\n return {\n name: AUDIT_LOGS_TYPE,\n apiName: \"AuditLogs\",\n fields: [\n {\n id: \"id\",\n fieldId: \"id\",\n type: \"text\",\n storageId: \"text@id\",\n label: \"ID\"\n },\n {\n id: \"message\",\n fieldId: \"message\",\n type: \"text\",\n storageId: \"text@message\",\n label: \"Message\"\n },\n {\n id: \"app\",\n fieldId: \"app\",\n type: \"text\",\n storageId: \"text@app\",\n label: \"App\"\n },\n {\n id: \"entity\",\n fieldId: \"entity\",\n type: \"text\",\n storageId: \"text@entity\",\n label: \"Entity\"\n },\n {\n id: \"entityId\",\n fieldId: \"entityId\",\n type: \"text\",\n storageId: \"text@entityId\",\n label: \"Entity ID\"\n },\n {\n id: \"action\",\n fieldId: \"action\",\n type: \"text\",\n storageId: \"text@action\",\n label: \"Action\"\n },\n {\n id: \"data\",\n fieldId: \"data\",\n type: \"text\",\n storageId: \"text@data\",\n label: \"Data\"\n },\n {\n id: \"timestamp\",\n fieldId: \"timestamp\",\n type: \"datetime\",\n settings: {\n type: \"dateTimeWithoutTimezone\"\n },\n storageId: \"datetime@timestamp\",\n label: \"Timestamp\"\n },\n {\n id: \"initiator\",\n fieldId: \"initiator\",\n type: \"text\",\n storageId: \"text@initiator\",\n label: \"Initiator\"\n }\n ],\n onEntry: async entry => {\n return decompressData(entry);\n },\n onEntryList: async entries => {\n return Promise.all(\n entries.map(entry => {\n return decompressData(entry);\n })\n );\n },\n onAnyRequest: async (context, action) => {\n const permissions = await context.security.getPermissions(\"al.*\");\n for (const permission of permissions) {\n if (permission.name === \"al.*\") {\n return;\n } else if (permission.name === `al.${action}`) {\n return;\n }\n }\n\n throw new NotAuthorizedError({\n message: \"You cannot access audit logs.\"\n });\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_contants","require","_compressor","_apiSecurity","toDate","value","Date","decompressData","entry","data","timestamp","compressor","decompress","createApp","name","AUDIT_LOGS_TYPE","apiName","fields","id","fieldId","type","storageId","label","settings","onEntry","onEntryList","entries","Promise","all","map","onAnyRequest","context","action","permissions","security","getPermissions","permission","NotAuthorizedError","message","exports"],"sources":["app.ts"],"sourcesContent":["import { IAcoAppRegisterParams, SearchRecord } from \"@webiny/api-aco/types\";\nimport { AUDIT_LOGS_TYPE } from \"./contants\";\nimport { compressor } from \"~/utils/compressor\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\n\nconst toDate = (value: string | Date) => {\n if (value instanceof Date) {\n return value;\n }\n try {\n return new Date(value);\n } catch {\n return value;\n }\n};\n\nconst decompressData = async (entry: SearchRecord<any>): Promise<SearchRecord<any>> => {\n if (!entry.data?.data) {\n return entry;\n }\n return {\n ...entry,\n data: {\n ...entry.data,\n timestamp: toDate(entry.data.timestamp),\n data: await compressor.decompress(entry.data.data)\n }\n };\n};\n\nexport const createApp = (): IAcoAppRegisterParams => {\n return {\n name: AUDIT_LOGS_TYPE,\n apiName: \"AuditLogs\",\n fields: [\n {\n id: \"id\",\n fieldId: \"id\",\n type: \"text\",\n storageId: \"text@id\",\n label: \"ID\"\n },\n {\n id: \"message\",\n fieldId: \"message\",\n type: \"text\",\n storageId: \"text@message\",\n label: \"Message\"\n },\n {\n id: \"app\",\n fieldId: \"app\",\n type: \"text\",\n storageId: \"text@app\",\n label: \"App\"\n },\n {\n id: \"entity\",\n fieldId: \"entity\",\n type: \"text\",\n storageId: \"text@entity\",\n label: \"Entity\"\n },\n {\n id: \"entityId\",\n fieldId: \"entityId\",\n type: \"text\",\n storageId: \"text@entityId\",\n label: \"Entity ID\"\n },\n {\n id: \"action\",\n fieldId: \"action\",\n type: \"text\",\n storageId: \"text@action\",\n label: \"Action\"\n },\n {\n id: \"data\",\n fieldId: \"data\",\n type: \"text\",\n storageId: \"text@data\",\n label: \"Data\"\n },\n {\n id: \"timestamp\",\n fieldId: \"timestamp\",\n type: \"datetime\",\n settings: {\n type: \"dateTimeWithoutTimezone\"\n },\n storageId: \"datetime@timestamp\",\n label: \"Timestamp\"\n },\n {\n id: \"initiator\",\n fieldId: \"initiator\",\n type: \"text\",\n storageId: \"text@initiator\",\n label: \"Initiator\"\n }\n ],\n onEntry: async entry => {\n return decompressData(entry);\n },\n onEntryList: async entries => {\n return await Promise.all(\n entries.map(async entry => {\n return decompressData(entry);\n })\n );\n },\n onAnyRequest: async (context, action) => {\n const permissions = await context.security.getPermissions(\"al.*\");\n for (const permission of permissions) {\n if (permission.name === \"al.*\") {\n return;\n } else if (permission.name === `al.${action}`) {\n return;\n }\n }\n\n throw new NotAuthorizedError({\n message: \"You cannot access audit logs.\"\n });\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-audit-logs",
3
- "version": "5.43.0-beta.0",
3
+ "version": "5.43.0-beta.1",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -19,33 +19,32 @@
19
19
  "directory": "dist"
20
20
  },
21
21
  "devDependencies": {
22
- "@webiny/api-admin-users": "5.43.0-beta.0",
23
- "@webiny/api-file-manager": "5.43.0-beta.0",
24
- "@webiny/api-headless-cms": "5.43.0-beta.0",
25
- "@webiny/api-i18n": "5.43.0-beta.0",
26
- "@webiny/api-security": "5.43.0-beta.0",
27
- "@webiny/api-tenancy": "5.43.0-beta.0",
28
- "@webiny/api-wcp": "5.43.0-beta.0",
29
- "@webiny/handler-aws": "5.43.0-beta.0",
30
- "@webiny/handler-graphql": "5.43.0-beta.0",
31
- "@webiny/plugins": "5.43.0-beta.0",
32
- "@webiny/project-utils": "5.43.0-beta.0",
22
+ "@webiny/api-admin-users": "5.43.0-beta.1",
23
+ "@webiny/api-file-manager": "5.43.0-beta.1",
24
+ "@webiny/api-headless-cms": "5.43.0-beta.1",
25
+ "@webiny/api-i18n": "5.43.0-beta.1",
26
+ "@webiny/api-security": "5.43.0-beta.1",
27
+ "@webiny/api-tenancy": "5.43.0-beta.1",
28
+ "@webiny/api-wcp": "5.43.0-beta.1",
29
+ "@webiny/handler-aws": "5.43.0-beta.1",
30
+ "@webiny/handler-graphql": "5.43.0-beta.1",
31
+ "@webiny/plugins": "5.43.0-beta.1",
32
+ "@webiny/project-utils": "5.43.0-beta.1",
33
33
  "graphql": "15.9.0",
34
- "ttypescript": "1.5.15",
35
- "typescript": "4.9.5"
34
+ "typescript": "5.3.3"
36
35
  },
37
36
  "dependencies": {
38
- "@webiny/api": "5.43.0-beta.0",
39
- "@webiny/api-aco": "5.43.0-beta.0",
40
- "@webiny/api-apw": "5.43.0-beta.0",
41
- "@webiny/api-form-builder": "5.43.0-beta.0",
42
- "@webiny/api-mailer": "5.43.0-beta.0",
43
- "@webiny/api-page-builder": "5.43.0-beta.0",
44
- "@webiny/api-page-builder-import-export": "5.43.0-beta.0",
45
- "@webiny/error": "5.43.0-beta.0",
46
- "@webiny/handler": "5.43.0-beta.0",
47
- "@webiny/utils": "5.43.0-beta.0",
48
- "@webiny/wcp": "5.43.0-beta.0"
37
+ "@webiny/api": "5.43.0-beta.1",
38
+ "@webiny/api-aco": "5.43.0-beta.1",
39
+ "@webiny/api-apw": "5.43.0-beta.1",
40
+ "@webiny/api-form-builder": "5.43.0-beta.1",
41
+ "@webiny/api-mailer": "5.43.0-beta.1",
42
+ "@webiny/api-page-builder": "5.43.0-beta.1",
43
+ "@webiny/api-page-builder-import-export": "5.43.0-beta.1",
44
+ "@webiny/error": "5.43.0-beta.1",
45
+ "@webiny/handler": "5.43.0-beta.1",
46
+ "@webiny/utils": "5.43.0-beta.1",
47
+ "@webiny/wcp": "5.43.0-beta.1"
49
48
  },
50
- "gitHead": "abfb4ec7b4391f2414cd22f2c5539c84b6c8abbf"
49
+ "gitHead": "d47a234b09383cb7ab2d9907300b8eaa89aa64d6"
51
50
  }
@@ -20,11 +20,11 @@ class GzipCompression {
20
20
  try {
21
21
  const result = JSON.parse(data);
22
22
  if (!result?.compression) {
23
- return false;
23
+ return true;
24
24
  }
25
25
  compression = result.compression;
26
26
  } catch {
27
- return false;
27
+ return true;
28
28
  }
29
29
  /**
30
30
  * If already compressed, skip this.
@@ -1 +1 @@
1
- {"version":3,"names":["_gzip","require","GZIP","TO_STORAGE_ENCODING","FROM_STORAGE_ENCODING","convertToBuffer","value","Buffer","from","GzipCompression","canCompress","data","compression","result","JSON","parse","console","log","compress","gzip","stringify","toString","ex","message","canDecompress","decompress","compressedValue","buf","ungzip","createCompressor","instance","compressor","exports"],"sources":["compressor.ts"],"sourcesContent":["import { compress as gzip, decompress as ungzip } from \"@webiny/utils/compression/gzip\";\n\nconst GZIP = \"gzip\";\nconst TO_STORAGE_ENCODING = \"base64\";\nconst FROM_STORAGE_ENCODING = \"utf8\";\n\nconst convertToBuffer = (value: string | Buffer) => {\n if (typeof value === \"string\") {\n return Buffer.from(value, TO_STORAGE_ENCODING);\n }\n return value;\n};\n\nexport interface OriginalData {\n [key: string]: any;\n}\n\nexport interface Compressor {\n canCompress(data: any): boolean;\n compress(data: any): Promise<string>;\n canDecompress(data: string): boolean;\n decompress(data: string): Promise<OriginalData | null>;\n}\n\nclass GzipCompression implements Compressor {\n public canCompress(data: any): boolean {\n let compression: string | undefined;\n try {\n const result = JSON.parse(data);\n if (!result?.compression) {\n return false;\n }\n compression = result.compression;\n } catch {\n return false;\n }\n /**\n * If already compressed, skip this.\n */\n if (compression) {\n if (compression !== \"GZIP\") {\n console.log(`Data is compressed with \"${compression}\". Cannot compress again.`);\n }\n return false;\n }\n return true;\n }\n public async compress(data: any) {\n try {\n const value = await gzip(JSON.stringify(data));\n\n return JSON.stringify({\n compression: GZIP,\n value: value.toString(TO_STORAGE_ENCODING)\n });\n } catch (ex) {\n console.log(`Could not compress given data.`, ex.message);\n return data;\n }\n }\n\n public canDecompress(data: string): boolean {\n let compression: string;\n try {\n const result = JSON.parse(data);\n if (!result?.compression) {\n return false;\n }\n compression = result.compression;\n } catch {\n return false;\n }\n if (compression !== GZIP) {\n console.log(\n `Could not decompress given data since its compression is not \"${GZIP}\". It is \"${compression}\".`\n );\n return false;\n }\n return true;\n }\n\n public async decompress(data: string): Promise<OriginalData | null> {\n let compressedValue: string;\n try {\n const result = JSON.parse(data);\n if (!result.value) {\n return null;\n }\n compressedValue = result.value;\n } catch {\n return null;\n }\n try {\n const buf = await ungzip(convertToBuffer(compressedValue));\n const value = buf.toString(FROM_STORAGE_ENCODING);\n return JSON.parse(value);\n } catch (ex) {\n console.log(`Could not decompress given data.`, ex.message);\n return null;\n }\n }\n}\n\nconst createCompressor = (): Pick<Compressor, \"compress\" | \"decompress\"> => {\n const instance = new GzipCompression();\n\n return {\n compress: async (data: any) => {\n if (!instance.canCompress(data)) {\n return data;\n }\n return instance.compress(data);\n },\n decompress(data: any) {\n if (!instance.canDecompress(data)) {\n return data;\n }\n return instance.decompress(data);\n }\n };\n};\n\nconst compressor = createCompressor();\n\nexport { compressor };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_gzip","require","GZIP","TO_STORAGE_ENCODING","FROM_STORAGE_ENCODING","convertToBuffer","value","Buffer","from","GzipCompression","canCompress","data","compression","result","JSON","parse","console","log","compress","gzip","stringify","toString","ex","message","canDecompress","decompress","compressedValue","buf","ungzip","createCompressor","instance","compressor","exports"],"sources":["compressor.ts"],"sourcesContent":["import { compress as gzip, decompress as ungzip } from \"@webiny/utils/compression/gzip\";\n\nconst GZIP = \"gzip\";\nconst TO_STORAGE_ENCODING = \"base64\";\nconst FROM_STORAGE_ENCODING = \"utf8\";\n\nconst convertToBuffer = (value: string | Buffer) => {\n if (typeof value === \"string\") {\n return Buffer.from(value, TO_STORAGE_ENCODING);\n }\n return value;\n};\n\nexport interface OriginalData {\n [key: string]: any;\n}\n\nexport interface Compressor {\n canCompress(data: any): boolean;\n compress(data: any): Promise<string>;\n canDecompress(data: string): boolean;\n decompress(data: string): Promise<OriginalData | null>;\n}\n\nclass GzipCompression implements Compressor {\n public canCompress(data: any): boolean {\n let compression: string | undefined;\n try {\n const result = JSON.parse(data);\n if (!result?.compression) {\n return true;\n }\n compression = result.compression;\n } catch {\n return true;\n }\n /**\n * If already compressed, skip this.\n */\n if (compression) {\n if (compression !== \"GZIP\") {\n console.log(`Data is compressed with \"${compression}\". Cannot compress again.`);\n }\n return false;\n }\n return true;\n }\n public async compress(data: any) {\n try {\n const value = await gzip(JSON.stringify(data));\n\n return JSON.stringify({\n compression: GZIP,\n value: value.toString(TO_STORAGE_ENCODING)\n });\n } catch (ex) {\n console.log(`Could not compress given data.`, ex.message);\n return data;\n }\n }\n\n public canDecompress(data: string): boolean {\n let compression: string;\n try {\n const result = JSON.parse(data);\n if (!result?.compression) {\n return false;\n }\n compression = result.compression;\n } catch {\n return false;\n }\n if (compression !== GZIP) {\n console.log(\n `Could not decompress given data since its compression is not \"${GZIP}\". It is \"${compression}\".`\n );\n return false;\n }\n return true;\n }\n\n public async decompress(data: string): Promise<OriginalData | null> {\n let compressedValue: string;\n try {\n const result = JSON.parse(data);\n if (!result.value) {\n return null;\n }\n compressedValue = result.value;\n } catch {\n return null;\n }\n try {\n const buf = await ungzip(convertToBuffer(compressedValue));\n const value = buf.toString(FROM_STORAGE_ENCODING);\n return JSON.parse(value);\n } catch (ex) {\n console.log(`Could not decompress given data.`, ex.message);\n return null;\n }\n }\n}\n\nconst createCompressor = (): Pick<Compressor, \"compress\" | \"decompress\"> => {\n const instance = new GzipCompression();\n\n return {\n compress: async (data: any) => {\n if (!instance.canCompress(data)) {\n return data;\n }\n return instance.compress(data);\n },\n decompress(data: any) {\n if (!instance.canDecompress(data)) {\n return data;\n }\n return instance.decompress(data);\n }\n };\n};\n\nconst compressor = createCompressor();\n\nexport { compressor };\n"],"mappings":"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","ignoreList":[]}