@webiny/api-audit-logs 5.39.0-beta.1 → 5.39.0-beta.3

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
@@ -1,11 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.createApp = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
7
  var _contants = require("./contants");
10
8
  var _compressor = require("../utils/compressor");
11
9
  var _apiSecurity = require("@webiny/api-security");
@@ -20,16 +18,17 @@ const toDate = value => {
20
18
  }
21
19
  };
22
20
  const decompressData = entry => {
23
- var _entry$data;
24
- if (!((_entry$data = entry.data) !== null && _entry$data !== void 0 && _entry$data.data)) {
21
+ if (!entry.data?.data) {
25
22
  return entry;
26
23
  }
27
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, entry), {}, {
28
- data: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, entry.data), {}, {
24
+ return {
25
+ ...entry,
26
+ data: {
27
+ ...entry.data,
29
28
  timestamp: toDate(entry.data.timestamp),
30
29
  data: _compressor.compressor.decompress(entry.data.data)
31
- })
32
- });
30
+ }
31
+ };
33
32
  };
34
33
  const createApp = () => {
35
34
  return {
package/app/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_contants","require","_compressor","_apiSecurity","toDate","value","Date","decompressData","entry","_entry$data","data","_objectSpread2","default","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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"}
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":";;;;;;AACA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAEA,MAAMG,MAAM,GAAIC,KAAoB,IAAK;EACrC,IAAIA,KAAK,YAAYC,IAAI,EAAE;IACvB,OAAOD,KAAK;EAChB;EACA,IAAI;IACA,OAAO,IAAIC,IAAI,CAACD,KAAK,CAAC;EAC1B,CAAC,CAAC,MAAM;IACJ,OAAOA,KAAK;EAChB;AACJ,CAAC;AAED,MAAME,cAAc,GAAIC,KAAwB,IAAwB;EACpE,IAAI,CAACA,KAAK,CAACC,IAAI,EAAEA,IAAI,EAAE;IACnB,OAAOD,KAAK;EAChB;EACA,OAAO;IACH,GAAGA,KAAK;IACRC,IAAI,EAAE;MACF,GAAGD,KAAK,CAACC,IAAI;MACbC,SAAS,EAAEN,MAAM,CAACI,KAAK,CAACC,IAAI,CAACC,SAAS,CAAC;MACvCD,IAAI,EAAEE,sBAAU,CAACC,UAAU,CAACJ,KAAK,CAACC,IAAI,CAACA,IAAI;IAC/C;EACJ,CAAC;AACL,CAAC;AAEM,MAAMI,SAAS,GAAGA,CAAA,KAA6B;EAClD,OAAO;IACHC,IAAI,EAAEC,yBAAe;IACrBC,OAAO,EAAE,WAAW;IACpBC,MAAM,EAAE,CACJ;MACIC,EAAE,EAAE,IAAI;MACRC,OAAO,EAAE,IAAI;MACbC,IAAI,EAAE,MAAM;MACZC,SAAS,EAAE,SAAS;MACpBC,KAAK,EAAE;IACX,CAAC,EACD;MACIJ,EAAE,EAAE,SAAS;MACbC,OAAO,EAAE,SAAS;MAClBC,IAAI,EAAE,MAAM;MACZC,SAAS,EAAE,cAAc;MACzBC,KAAK,EAAE;IACX,CAAC,EACD;MACIJ,EAAE,EAAE,KAAK;MACTC,OAAO,EAAE,KAAK;MACdC,IAAI,EAAE,MAAM;MACZC,SAAS,EAAE,UAAU;MACrBC,KAAK,EAAE;IACX,CAAC,EACD;MACIJ,EAAE,EAAE,QAAQ;MACZC,OAAO,EAAE,QAAQ;MACjBC,IAAI,EAAE,MAAM;MACZC,SAAS,EAAE,aAAa;MACxBC,KAAK,EAAE;IACX,CAAC,EACD;MACIJ,EAAE,EAAE,UAAU;MACdC,OAAO,EAAE,UAAU;MACnBC,IAAI,EAAE,MAAM;MACZC,SAAS,EAAE,eAAe;MAC1BC,KAAK,EAAE;IACX,CAAC,EACD;MACIJ,EAAE,EAAE,QAAQ;MACZC,OAAO,EAAE,QAAQ;MACjBC,IAAI,EAAE,MAAM;MACZC,SAAS,EAAE,aAAa;MACxBC,KAAK,EAAE;IACX,CAAC,EACD;MACIJ,EAAE,EAAE,MAAM;MACVC,OAAO,EAAE,MAAM;MACfC,IAAI,EAAE,MAAM;MACZC,SAAS,EAAE,WAAW;MACtBC,KAAK,EAAE;IACX,CAAC,EACD;MACIJ,EAAE,EAAE,WAAW;MACfC,OAAO,EAAE,WAAW;MACpBC,IAAI,EAAE,UAAU;MAChBG,QAAQ,EAAE;QACNH,IAAI,EAAE;MACV,CAAC;MACDC,SAAS,EAAE,oBAAoB;MAC/BC,KAAK,EAAE;IACX,CAAC,EACD;MACIJ,EAAE,EAAE,WAAW;MACfC,OAAO,EAAE,WAAW;MACpBC,IAAI,EAAE,MAAM;MACZC,SAAS,EAAE,gBAAgB;MAC3BC,KAAK,EAAE;IACX,CAAC,CACJ;IACDE,OAAO,EAAE,MAAMhB,KAAK,IAAI;MACpB,OAAOD,cAAc,CAACC,KAAK,CAAC;IAChC,CAAC;IACDiB,WAAW,EAAE,MAAMC,OAAO,IAAI;MAC1B,OAAOC,OAAO,CAACC,GAAG,CACdF,OAAO,CAACG,GAAG,CAACrB,KAAK,IAAI;QACjB,OAAOD,cAAc,CAACC,KAAK,CAAC;MAChC,CAAC,CACL,CAAC;IACL,CAAC;IACDsB,YAAY,EAAE,MAAAA,CAAOC,OAAO,EAAEC,MAAM,KAAK;MACrC,MAAMC,WAAW,GAAG,MAAMF,OAAO,CAACG,QAAQ,CAACC,cAAc,CAAC,MAAM,CAAC;MACjE,KAAK,MAAMC,UAAU,IAAIH,WAAW,EAAE;QAClC,IAAIG,UAAU,CAACtB,IAAI,KAAK,MAAM,EAAE;UAC5B;QACJ,CAAC,MAAM,IAAIsB,UAAU,CAACtB,IAAI,KAAM,MAAKkB,MAAO,EAAC,EAAE;UAC3C;QACJ;MACJ;MAEA,MAAM,IAAIK,+BAAkB,CAAC;QACzBC,OAAO,EAAE;MACb,CAAC,CAAC;IACN;EACJ,CAAC;AACL,CAAC;AAACC,OAAA,CAAA1B,SAAA,GAAAA,SAAA"}
package/config.js CHANGED
@@ -1,11 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.auditLogsApps = exports.ActionType = exports.AUDIT = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
7
  var _getAuditObject = require("./utils/getAuditObject");
10
8
  let ActionType = /*#__PURE__*/function (ActionType) {
11
9
  ActionType["CREATE"] = "CREATE";
@@ -230,9 +228,10 @@ const auditLogsApps = [{
230
228
  linkToEntity(id) {
231
229
  return `/page-builder/editor/${id}`;
232
230
  },
233
- actions: [commonActions.CREATE, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, commonActions.UPDATE), {}, {
231
+ actions: [commonActions.CREATE, {
232
+ ...commonActions.UPDATE,
234
233
  newEntryDelay: 60
235
- }), commonActions.DELETE, publishActions.PUBLISH, publishActions.UNPUBLISH]
234
+ }, commonActions.DELETE, publishActions.PUBLISH, publishActions.UNPUBLISH]
236
235
  }, {
237
236
  type: "SETTINGS",
238
237
  displayName: "Settings",
package/config.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_getAuditObject","require","ActionType","exports","commonActions","CREATE","type","displayName","UPDATE","DELETE","publishActions","PUBLISH","UNPUBLISH","importExportActions","IMPORT","EXPORT","auditLogsApps","app","entities","actions","linkToEntity","id","modelId","slug","_objectSpread2","default","newEntryDelay","AUDIT","getAuditObject"],"sources":["config.ts"],"sourcesContent":["import { getAuditObject } from \"~/utils/getAuditObject\";\nimport { App } from \"~/types\";\n\nexport enum ActionType {\n CREATE = \"CREATE\",\n UPDATE = \"UPDATE\",\n DELETE = \"DELETE\",\n PUBLISH = \"PUBLISH\",\n UNPUBLISH = \"UNPUBLISH\",\n IMPORT = \"IMPORT\",\n EXPORT = \"EXPORT\"\n}\n\nconst commonActions = {\n CREATE: { type: ActionType.CREATE, displayName: \"Create\" },\n UPDATE: { type: ActionType.UPDATE, displayName: \"Update\" },\n DELETE: { type: ActionType.DELETE, displayName: \"Delete\" }\n};\n\nconst publishActions = {\n PUBLISH: { type: ActionType.PUBLISH, displayName: \"Publish\" },\n UNPUBLISH: { type: ActionType.UNPUBLISH, displayName: \"Unpublish\" }\n};\n\nconst importExportActions = {\n IMPORT: { type: ActionType.IMPORT, displayName: \"Import\" },\n EXPORT: { type: ActionType.EXPORT, displayName: \"Export\" }\n};\n\nexport const auditLogsApps: App[] = [\n {\n app: \"APW\",\n displayName: \"APW\",\n entities: [\n {\n type: \"CHANGE_REQUEST\",\n displayName: \"Change Request\",\n actions: [\n commonActions.CREATE,\n commonActions.UPDATE,\n commonActions.DELETE,\n { type: \"MARK_RESOLVED\", displayName: \"Mark resolved\" },\n { type: \"MARK_UNRESOLVED\", displayName: \"Mark unresolved\" }\n ]\n },\n {\n type: \"COMMENT\",\n displayName: \"Comment\",\n actions: [commonActions.CREATE]\n },\n {\n type: \"CONTENT_REVIEW\",\n displayName: \"Content Review\",\n linkToEntity(id) {\n return `/apw/content-reviews/${id}`;\n },\n actions: [commonActions.CREATE]\n },\n {\n type: \"WORKFLOW\",\n displayName: \"Workflow\",\n linkToEntity(id) {\n return `/apw/publishing-workflows?id=${id}`;\n },\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n }\n ]\n },\n {\n app: \"FILE_MANAGER\",\n displayName: \"File Manager\",\n entities: [\n {\n type: \"FILE\",\n displayName: \"File\",\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n },\n {\n type: \"FILE_FOLDER\",\n displayName: \"File folder\",\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n },\n {\n type: \"SETTINGS\",\n displayName: \"Settings\",\n actions: [commonActions.UPDATE]\n }\n ]\n },\n {\n app: \"FORM_BUILDER\",\n displayName: \"Form Builder\",\n entities: [\n {\n type: \"FORM\",\n displayName: \"Form\",\n linkToEntity(id) {\n return `/form-builder/forms?id=${id}`;\n },\n actions: [\n commonActions.CREATE,\n commonActions.DELETE,\n importExportActions.EXPORT,\n importExportActions.IMPORT\n ]\n },\n {\n type: \"FORM_REVISION\",\n displayName: \"Form revision\",\n linkToEntity(id) {\n return `/form-builder/forms?id=${id}`;\n },\n actions: [\n commonActions.CREATE,\n commonActions.UPDATE,\n commonActions.DELETE,\n publishActions.PUBLISH,\n publishActions.UNPUBLISH\n ]\n },\n {\n type: \"FORM_SUBMISSION\",\n displayName: \"Form submission\",\n actions: [importExportActions.EXPORT]\n },\n {\n type: \"SETTINGS\",\n displayName: \"Settings\",\n actions: [commonActions.UPDATE]\n }\n ]\n },\n {\n app: \"HEADLESS_CMS\",\n displayName: \"Headless CMS\",\n entities: [\n {\n type: \"ENTRY\",\n displayName: \"Entry\",\n actions: [commonActions.CREATE, commonActions.DELETE]\n },\n {\n type: \"ENTRY_REVISION\",\n displayName: \"Entry revision\",\n actions: [\n commonActions.CREATE,\n commonActions.UPDATE,\n commonActions.DELETE,\n publishActions.PUBLISH,\n publishActions.UNPUBLISH\n ]\n },\n {\n type: \"GROUP\",\n displayName: \"Group\",\n linkToEntity(id) {\n return `/cms/content-model-groups?id=${id}`;\n },\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n },\n {\n type: \"MODEL\",\n displayName: \"Model\",\n linkToEntity(modelId) {\n return `/cms/content-models/${modelId}`;\n },\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n },\n {\n type: \"MODEL_FOLDER\",\n displayName: \"Model folder\",\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n }\n ]\n },\n {\n app: \"I18N\",\n displayName: \"i18n\",\n entities: [\n {\n type: \"LOCALE\",\n displayName: \"Locale\",\n linkToEntity(id) {\n return `/i18n/locales?code=${id}`;\n },\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n }\n ]\n },\n {\n app: \"MAILER\",\n displayName: \"Mailer\",\n entities: [\n {\n type: \"SETTINGS\",\n displayName: \"Settings\",\n actions: [commonActions.UPDATE]\n }\n ]\n },\n {\n app: \"PAGE_BUILDER\",\n displayName: \"Page Builder\",\n entities: [\n {\n type: \"BLOCK\",\n displayName: \"Block\",\n linkToEntity(id) {\n return `/page-builder/block-editor/${id}`;\n },\n actions: [\n commonActions.CREATE,\n commonActions.UPDATE,\n commonActions.DELETE,\n importExportActions.EXPORT,\n importExportActions.IMPORT\n ]\n },\n {\n type: \"BLOCK_CATEGORY\",\n displayName: \"Block category\",\n linkToEntity(slug) {\n return `/page-builder/block-categories?slug=${slug}`;\n },\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n },\n {\n type: \"CATEGORY\",\n displayName: \"Category\",\n linkToEntity(slug) {\n return `/page-builder/categories?slug=${slug}`;\n },\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n },\n {\n type: \"MENU\",\n displayName: \"Menu\",\n linkToEntity(slug) {\n return `/page-builder/menus?slug=${slug}`;\n },\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n },\n {\n type: \"PAGE\",\n displayName: \"Page\",\n linkToEntity(id) {\n return `/page-builder/editor/${id}`;\n },\n actions: [\n commonActions.CREATE,\n commonActions.DELETE,\n importExportActions.EXPORT,\n importExportActions.IMPORT\n ]\n },\n {\n type: \"PAGE_ELEMENT\",\n displayName: \"Page element\",\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n },\n {\n type: \"PAGE_FOLDER\",\n displayName: \"Page folder\",\n linkToEntity(id) {\n return `/page-builder/pages?folderId=${id}`;\n },\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n },\n {\n type: \"PAGE_REVISION\",\n displayName: \"Page revision\",\n linkToEntity(id) {\n return `/page-builder/editor/${id}`;\n },\n actions: [\n commonActions.CREATE,\n { ...commonActions.UPDATE, newEntryDelay: 60 },\n commonActions.DELETE,\n publishActions.PUBLISH,\n publishActions.UNPUBLISH\n ]\n },\n {\n type: \"SETTINGS\",\n displayName: \"Settings\",\n actions: [commonActions.UPDATE]\n },\n {\n type: \"TEMPLATE\",\n displayName: \"Template\",\n linkToEntity(id) {\n return `/page-builder/page-templates?id=${id}`;\n },\n actions: [\n commonActions.CREATE,\n commonActions.UPDATE,\n commonActions.DELETE,\n importExportActions.EXPORT,\n importExportActions.IMPORT\n ]\n }\n ]\n },\n {\n app: \"SECURITY\",\n displayName: \"Security\",\n entities: [\n {\n type: \"API_KEY\",\n displayName: \"API Key\",\n linkToEntity(id) {\n return `/access-management/api-keys?id=${id}`;\n },\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n },\n {\n type: \"ROLE\",\n displayName: \"Role\",\n linkToEntity(id) {\n return `/access-management/roles?id=${id}`;\n },\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n },\n {\n type: \"TEAM\",\n displayName: \"Team\",\n linkToEntity(id) {\n return `/access-management/teams?id=${id}`;\n },\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n },\n {\n type: \"USER\",\n displayName: \"User\",\n linkToEntity(id) {\n return `/admin-users?id=${id}`;\n },\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n }\n ]\n }\n];\n\nexport const AUDIT = getAuditObject(auditLogsApps);\n"],"mappings":";;;;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAAwD,IAG5CC,UAAU,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAAAC,OAAA,CAAAD,UAAA,GAAAA,UAAA;AAUtB,MAAME,aAAa,GAAG;EAClBC,MAAM,EAAE;IAAEC,IAAI,EAAEJ,UAAU,CAACG,MAAM;IAAEE,WAAW,EAAE;EAAS,CAAC;EAC1DC,MAAM,EAAE;IAAEF,IAAI,EAAEJ,UAAU,CAACM,MAAM;IAAED,WAAW,EAAE;EAAS,CAAC;EAC1DE,MAAM,EAAE;IAAEH,IAAI,EAAEJ,UAAU,CAACO,MAAM;IAAEF,WAAW,EAAE;EAAS;AAC7D,CAAC;AAED,MAAMG,cAAc,GAAG;EACnBC,OAAO,EAAE;IAAEL,IAAI,EAAEJ,UAAU,CAACS,OAAO;IAAEJ,WAAW,EAAE;EAAU,CAAC;EAC7DK,SAAS,EAAE;IAAEN,IAAI,EAAEJ,UAAU,CAACU,SAAS;IAAEL,WAAW,EAAE;EAAY;AACtE,CAAC;AAED,MAAMM,mBAAmB,GAAG;EACxBC,MAAM,EAAE;IAAER,IAAI,EAAEJ,UAAU,CAACY,MAAM;IAAEP,WAAW,EAAE;EAAS,CAAC;EAC1DQ,MAAM,EAAE;IAAET,IAAI,EAAEJ,UAAU,CAACa,MAAM;IAAER,WAAW,EAAE;EAAS;AAC7D,CAAC;AAEM,MAAMS,aAAoB,GAAG,CAChC;EACIC,GAAG,EAAE,KAAK;EACVV,WAAW,EAAE,KAAK;EAClBW,QAAQ,EAAE,CACN;IACIZ,IAAI,EAAE,gBAAgB;IACtBC,WAAW,EAAE,gBAAgB;IAC7BY,OAAO,EAAE,CACLf,aAAa,CAACC,MAAM,EACpBD,aAAa,CAACI,MAAM,EACpBJ,aAAa,CAACK,MAAM,EACpB;MAAEH,IAAI,EAAE,eAAe;MAAEC,WAAW,EAAE;IAAgB,CAAC,EACvD;MAAED,IAAI,EAAE,iBAAiB;MAAEC,WAAW,EAAE;IAAkB,CAAC;EAEnE,CAAC,EACD;IACID,IAAI,EAAE,SAAS;IACfC,WAAW,EAAE,SAAS;IACtBY,OAAO,EAAE,CAACf,aAAa,CAACC,MAAM;EAClC,CAAC,EACD;IACIC,IAAI,EAAE,gBAAgB;IACtBC,WAAW,EAAE,gBAAgB;IAC7Ba,YAAYA,CAACC,EAAE,EAAE;MACb,OAAQ,wBAAuBA,EAAG,EAAC;IACvC,CAAC;IACDF,OAAO,EAAE,CAACf,aAAa,CAACC,MAAM;EAClC,CAAC,EACD;IACIC,IAAI,EAAE,UAAU;IAChBC,WAAW,EAAE,UAAU;IACvBa,YAAYA,CAACC,EAAE,EAAE;MACb,OAAQ,gCAA+BA,EAAG,EAAC;IAC/C,CAAC;IACDF,OAAO,EAAE,CAACf,aAAa,CAACC,MAAM,EAAED,aAAa,CAACI,MAAM,EAAEJ,aAAa,CAACK,MAAM;EAC9E,CAAC;AAET,CAAC,EACD;EACIQ,GAAG,EAAE,cAAc;EACnBV,WAAW,EAAE,cAAc;EAC3BW,QAAQ,EAAE,CACN;IACIZ,IAAI,EAAE,MAAM;IACZC,WAAW,EAAE,MAAM;IACnBY,OAAO,EAAE,CAACf,aAAa,CAACC,MAAM,EAAED,aAAa,CAACI,MAAM,EAAEJ,aAAa,CAACK,MAAM;EAC9E,CAAC,EACD;IACIH,IAAI,EAAE,aAAa;IACnBC,WAAW,EAAE,aAAa;IAC1BY,OAAO,EAAE,CAACf,aAAa,CAACC,MAAM,EAAED,aAAa,CAACI,MAAM,EAAEJ,aAAa,CAACK,MAAM;EAC9E,CAAC,EACD;IACIH,IAAI,EAAE,UAAU;IAChBC,WAAW,EAAE,UAAU;IACvBY,OAAO,EAAE,CAACf,aAAa,CAACI,MAAM;EAClC,CAAC;AAET,CAAC,EACD;EACIS,GAAG,EAAE,cAAc;EACnBV,WAAW,EAAE,cAAc;EAC3BW,QAAQ,EAAE,CACN;IACIZ,IAAI,EAAE,MAAM;IACZC,WAAW,EAAE,MAAM;IACnBa,YAAYA,CAACC,EAAE,EAAE;MACb,OAAQ,0BAAyBA,EAAG,EAAC;IACzC,CAAC;IACDF,OAAO,EAAE,CACLf,aAAa,CAACC,MAAM,EACpBD,aAAa,CAACK,MAAM,EACpBI,mBAAmB,CAACE,MAAM,EAC1BF,mBAAmB,CAACC,MAAM;EAElC,CAAC,EACD;IACIR,IAAI,EAAE,eAAe;IACrBC,WAAW,EAAE,eAAe;IAC5Ba,YAAYA,CAACC,EAAE,EAAE;MACb,OAAQ,0BAAyBA,EAAG,EAAC;IACzC,CAAC;IACDF,OAAO,EAAE,CACLf,aAAa,CAACC,MAAM,EACpBD,aAAa,CAACI,MAAM,EACpBJ,aAAa,CAACK,MAAM,EACpBC,cAAc,CAACC,OAAO,EACtBD,cAAc,CAACE,SAAS;EAEhC,CAAC,EACD;IACIN,IAAI,EAAE,iBAAiB;IACvBC,WAAW,EAAE,iBAAiB;IAC9BY,OAAO,EAAE,CAACN,mBAAmB,CAACE,MAAM;EACxC,CAAC,EACD;IACIT,IAAI,EAAE,UAAU;IAChBC,WAAW,EAAE,UAAU;IACvBY,OAAO,EAAE,CAACf,aAAa,CAACI,MAAM;EAClC,CAAC;AAET,CAAC,EACD;EACIS,GAAG,EAAE,cAAc;EACnBV,WAAW,EAAE,cAAc;EAC3BW,QAAQ,EAAE,CACN;IACIZ,IAAI,EAAE,OAAO;IACbC,WAAW,EAAE,OAAO;IACpBY,OAAO,EAAE,CAACf,aAAa,CAACC,MAAM,EAAED,aAAa,CAACK,MAAM;EACxD,CAAC,EACD;IACIH,IAAI,EAAE,gBAAgB;IACtBC,WAAW,EAAE,gBAAgB;IAC7BY,OAAO,EAAE,CACLf,aAAa,CAACC,MAAM,EACpBD,aAAa,CAACI,MAAM,EACpBJ,aAAa,CAACK,MAAM,EACpBC,cAAc,CAACC,OAAO,EACtBD,cAAc,CAACE,SAAS;EAEhC,CAAC,EACD;IACIN,IAAI,EAAE,OAAO;IACbC,WAAW,EAAE,OAAO;IACpBa,YAAYA,CAACC,EAAE,EAAE;MACb,OAAQ,gCAA+BA,EAAG,EAAC;IAC/C,CAAC;IACDF,OAAO,EAAE,CAACf,aAAa,CAACC,MAAM,EAAED,aAAa,CAACI,MAAM,EAAEJ,aAAa,CAACK,MAAM;EAC9E,CAAC,EACD;IACIH,IAAI,EAAE,OAAO;IACbC,WAAW,EAAE,OAAO;IACpBa,YAAYA,CAACE,OAAO,EAAE;MAClB,OAAQ,uBAAsBA,OAAQ,EAAC;IAC3C,CAAC;IACDH,OAAO,EAAE,CAACf,aAAa,CAACC,MAAM,EAAED,aAAa,CAACI,MAAM,EAAEJ,aAAa,CAACK,MAAM;EAC9E,CAAC,EACD;IACIH,IAAI,EAAE,cAAc;IACpBC,WAAW,EAAE,cAAc;IAC3BY,OAAO,EAAE,CAACf,aAAa,CAACC,MAAM,EAAED,aAAa,CAACI,MAAM,EAAEJ,aAAa,CAACK,MAAM;EAC9E,CAAC;AAET,CAAC,EACD;EACIQ,GAAG,EAAE,MAAM;EACXV,WAAW,EAAE,MAAM;EACnBW,QAAQ,EAAE,CACN;IACIZ,IAAI,EAAE,QAAQ;IACdC,WAAW,EAAE,QAAQ;IACrBa,YAAYA,CAACC,EAAE,EAAE;MACb,OAAQ,sBAAqBA,EAAG,EAAC;IACrC,CAAC;IACDF,OAAO,EAAE,CAACf,aAAa,CAACC,MAAM,EAAED,aAAa,CAACI,MAAM,EAAEJ,aAAa,CAACK,MAAM;EAC9E,CAAC;AAET,CAAC,EACD;EACIQ,GAAG,EAAE,QAAQ;EACbV,WAAW,EAAE,QAAQ;EACrBW,QAAQ,EAAE,CACN;IACIZ,IAAI,EAAE,UAAU;IAChBC,WAAW,EAAE,UAAU;IACvBY,OAAO,EAAE,CAACf,aAAa,CAACI,MAAM;EAClC,CAAC;AAET,CAAC,EACD;EACIS,GAAG,EAAE,cAAc;EACnBV,WAAW,EAAE,cAAc;EAC3BW,QAAQ,EAAE,CACN;IACIZ,IAAI,EAAE,OAAO;IACbC,WAAW,EAAE,OAAO;IACpBa,YAAYA,CAACC,EAAE,EAAE;MACb,OAAQ,8BAA6BA,EAAG,EAAC;IAC7C,CAAC;IACDF,OAAO,EAAE,CACLf,aAAa,CAACC,MAAM,EACpBD,aAAa,CAACI,MAAM,EACpBJ,aAAa,CAACK,MAAM,EACpBI,mBAAmB,CAACE,MAAM,EAC1BF,mBAAmB,CAACC,MAAM;EAElC,CAAC,EACD;IACIR,IAAI,EAAE,gBAAgB;IACtBC,WAAW,EAAE,gBAAgB;IAC7Ba,YAAYA,CAACG,IAAI,EAAE;MACf,OAAQ,uCAAsCA,IAAK,EAAC;IACxD,CAAC;IACDJ,OAAO,EAAE,CAACf,aAAa,CAACC,MAAM,EAAED,aAAa,CAACI,MAAM,EAAEJ,aAAa,CAACK,MAAM;EAC9E,CAAC,EACD;IACIH,IAAI,EAAE,UAAU;IAChBC,WAAW,EAAE,UAAU;IACvBa,YAAYA,CAACG,IAAI,EAAE;MACf,OAAQ,iCAAgCA,IAAK,EAAC;IAClD,CAAC;IACDJ,OAAO,EAAE,CAACf,aAAa,CAACC,MAAM,EAAED,aAAa,CAACI,MAAM,EAAEJ,aAAa,CAACK,MAAM;EAC9E,CAAC,EACD;IACIH,IAAI,EAAE,MAAM;IACZC,WAAW,EAAE,MAAM;IACnBa,YAAYA,CAACG,IAAI,EAAE;MACf,OAAQ,4BAA2BA,IAAK,EAAC;IAC7C,CAAC;IACDJ,OAAO,EAAE,CAACf,aAAa,CAACC,MAAM,EAAED,aAAa,CAACI,MAAM,EAAEJ,aAAa,CAACK,MAAM;EAC9E,CAAC,EACD;IACIH,IAAI,EAAE,MAAM;IACZC,WAAW,EAAE,MAAM;IACnBa,YAAYA,CAACC,EAAE,EAAE;MACb,OAAQ,wBAAuBA,EAAG,EAAC;IACvC,CAAC;IACDF,OAAO,EAAE,CACLf,aAAa,CAACC,MAAM,EACpBD,aAAa,CAACK,MAAM,EACpBI,mBAAmB,CAACE,MAAM,EAC1BF,mBAAmB,CAACC,MAAM;EAElC,CAAC,EACD;IACIR,IAAI,EAAE,cAAc;IACpBC,WAAW,EAAE,cAAc;IAC3BY,OAAO,EAAE,CAACf,aAAa,CAACC,MAAM,EAAED,aAAa,CAACI,MAAM,EAAEJ,aAAa,CAACK,MAAM;EAC9E,CAAC,EACD;IACIH,IAAI,EAAE,aAAa;IACnBC,WAAW,EAAE,aAAa;IAC1Ba,YAAYA,CAACC,EAAE,EAAE;MACb,OAAQ,gCAA+BA,EAAG,EAAC;IAC/C,CAAC;IACDF,OAAO,EAAE,CAACf,aAAa,CAACC,MAAM,EAAED,aAAa,CAACI,MAAM,EAAEJ,aAAa,CAACK,MAAM;EAC9E,CAAC,EACD;IACIH,IAAI,EAAE,eAAe;IACrBC,WAAW,EAAE,eAAe;IAC5Ba,YAAYA,CAACC,EAAE,EAAE;MACb,OAAQ,wBAAuBA,EAAG,EAAC;IACvC,CAAC;IACDF,OAAO,EAAE,CACLf,aAAa,CAACC,MAAM,MAAAmB,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACfrB,aAAa,CAACI,MAAM;MAAEkB,aAAa,EAAE;IAAE,IAC5CtB,aAAa,CAACK,MAAM,EACpBC,cAAc,CAACC,OAAO,EACtBD,cAAc,CAACE,SAAS;EAEhC,CAAC,EACD;IACIN,IAAI,EAAE,UAAU;IAChBC,WAAW,EAAE,UAAU;IACvBY,OAAO,EAAE,CAACf,aAAa,CAACI,MAAM;EAClC,CAAC,EACD;IACIF,IAAI,EAAE,UAAU;IAChBC,WAAW,EAAE,UAAU;IACvBa,YAAYA,CAACC,EAAE,EAAE;MACb,OAAQ,mCAAkCA,EAAG,EAAC;IAClD,CAAC;IACDF,OAAO,EAAE,CACLf,aAAa,CAACC,MAAM,EACpBD,aAAa,CAACI,MAAM,EACpBJ,aAAa,CAACK,MAAM,EACpBI,mBAAmB,CAACE,MAAM,EAC1BF,mBAAmB,CAACC,MAAM;EAElC,CAAC;AAET,CAAC,EACD;EACIG,GAAG,EAAE,UAAU;EACfV,WAAW,EAAE,UAAU;EACvBW,QAAQ,EAAE,CACN;IACIZ,IAAI,EAAE,SAAS;IACfC,WAAW,EAAE,SAAS;IACtBa,YAAYA,CAACC,EAAE,EAAE;MACb,OAAQ,kCAAiCA,EAAG,EAAC;IACjD,CAAC;IACDF,OAAO,EAAE,CAACf,aAAa,CAACC,MAAM,EAAED,aAAa,CAACI,MAAM,EAAEJ,aAAa,CAACK,MAAM;EAC9E,CAAC,EACD;IACIH,IAAI,EAAE,MAAM;IACZC,WAAW,EAAE,MAAM;IACnBa,YAAYA,CAACC,EAAE,EAAE;MACb,OAAQ,+BAA8BA,EAAG,EAAC;IAC9C,CAAC;IACDF,OAAO,EAAE,CAACf,aAAa,CAACC,MAAM,EAAED,aAAa,CAACI,MAAM,EAAEJ,aAAa,CAACK,MAAM;EAC9E,CAAC,EACD;IACIH,IAAI,EAAE,MAAM;IACZC,WAAW,EAAE,MAAM;IACnBa,YAAYA,CAACC,EAAE,EAAE;MACb,OAAQ,+BAA8BA,EAAG,EAAC;IAC9C,CAAC;IACDF,OAAO,EAAE,CAACf,aAAa,CAACC,MAAM,EAAED,aAAa,CAACI,MAAM,EAAEJ,aAAa,CAACK,MAAM;EAC9E,CAAC,EACD;IACIH,IAAI,EAAE,MAAM;IACZC,WAAW,EAAE,MAAM;IACnBa,YAAYA,CAACC,EAAE,EAAE;MACb,OAAQ,mBAAkBA,EAAG,EAAC;IAClC,CAAC;IACDF,OAAO,EAAE,CAACf,aAAa,CAACC,MAAM,EAAED,aAAa,CAACI,MAAM,EAAEJ,aAAa,CAACK,MAAM;EAC9E,CAAC;AAET,CAAC,CACJ;AAACN,OAAA,CAAAa,aAAA,GAAAA,aAAA;AAEK,MAAMW,KAAK,GAAG,IAAAC,8BAAc,EAACZ,aAAa,CAAC;AAACb,OAAA,CAAAwB,KAAA,GAAAA,KAAA"}
1
+ {"version":3,"names":["_getAuditObject","require","ActionType","exports","commonActions","CREATE","type","displayName","UPDATE","DELETE","publishActions","PUBLISH","UNPUBLISH","importExportActions","IMPORT","EXPORT","auditLogsApps","app","entities","actions","linkToEntity","id","modelId","slug","newEntryDelay","AUDIT","getAuditObject"],"sources":["config.ts"],"sourcesContent":["import { getAuditObject } from \"~/utils/getAuditObject\";\nimport { App } from \"~/types\";\n\nexport enum ActionType {\n CREATE = \"CREATE\",\n UPDATE = \"UPDATE\",\n DELETE = \"DELETE\",\n PUBLISH = \"PUBLISH\",\n UNPUBLISH = \"UNPUBLISH\",\n IMPORT = \"IMPORT\",\n EXPORT = \"EXPORT\"\n}\n\nconst commonActions = {\n CREATE: { type: ActionType.CREATE, displayName: \"Create\" },\n UPDATE: { type: ActionType.UPDATE, displayName: \"Update\" },\n DELETE: { type: ActionType.DELETE, displayName: \"Delete\" }\n};\n\nconst publishActions = {\n PUBLISH: { type: ActionType.PUBLISH, displayName: \"Publish\" },\n UNPUBLISH: { type: ActionType.UNPUBLISH, displayName: \"Unpublish\" }\n};\n\nconst importExportActions = {\n IMPORT: { type: ActionType.IMPORT, displayName: \"Import\" },\n EXPORT: { type: ActionType.EXPORT, displayName: \"Export\" }\n};\n\nexport const auditLogsApps: App[] = [\n {\n app: \"APW\",\n displayName: \"APW\",\n entities: [\n {\n type: \"CHANGE_REQUEST\",\n displayName: \"Change Request\",\n actions: [\n commonActions.CREATE,\n commonActions.UPDATE,\n commonActions.DELETE,\n { type: \"MARK_RESOLVED\", displayName: \"Mark resolved\" },\n { type: \"MARK_UNRESOLVED\", displayName: \"Mark unresolved\" }\n ]\n },\n {\n type: \"COMMENT\",\n displayName: \"Comment\",\n actions: [commonActions.CREATE]\n },\n {\n type: \"CONTENT_REVIEW\",\n displayName: \"Content Review\",\n linkToEntity(id) {\n return `/apw/content-reviews/${id}`;\n },\n actions: [commonActions.CREATE]\n },\n {\n type: \"WORKFLOW\",\n displayName: \"Workflow\",\n linkToEntity(id) {\n return `/apw/publishing-workflows?id=${id}`;\n },\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n }\n ]\n },\n {\n app: \"FILE_MANAGER\",\n displayName: \"File Manager\",\n entities: [\n {\n type: \"FILE\",\n displayName: \"File\",\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n },\n {\n type: \"FILE_FOLDER\",\n displayName: \"File folder\",\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n },\n {\n type: \"SETTINGS\",\n displayName: \"Settings\",\n actions: [commonActions.UPDATE]\n }\n ]\n },\n {\n app: \"FORM_BUILDER\",\n displayName: \"Form Builder\",\n entities: [\n {\n type: \"FORM\",\n displayName: \"Form\",\n linkToEntity(id) {\n return `/form-builder/forms?id=${id}`;\n },\n actions: [\n commonActions.CREATE,\n commonActions.DELETE,\n importExportActions.EXPORT,\n importExportActions.IMPORT\n ]\n },\n {\n type: \"FORM_REVISION\",\n displayName: \"Form revision\",\n linkToEntity(id) {\n return `/form-builder/forms?id=${id}`;\n },\n actions: [\n commonActions.CREATE,\n commonActions.UPDATE,\n commonActions.DELETE,\n publishActions.PUBLISH,\n publishActions.UNPUBLISH\n ]\n },\n {\n type: \"FORM_SUBMISSION\",\n displayName: \"Form submission\",\n actions: [importExportActions.EXPORT]\n },\n {\n type: \"SETTINGS\",\n displayName: \"Settings\",\n actions: [commonActions.UPDATE]\n }\n ]\n },\n {\n app: \"HEADLESS_CMS\",\n displayName: \"Headless CMS\",\n entities: [\n {\n type: \"ENTRY\",\n displayName: \"Entry\",\n actions: [commonActions.CREATE, commonActions.DELETE]\n },\n {\n type: \"ENTRY_REVISION\",\n displayName: \"Entry revision\",\n actions: [\n commonActions.CREATE,\n commonActions.UPDATE,\n commonActions.DELETE,\n publishActions.PUBLISH,\n publishActions.UNPUBLISH\n ]\n },\n {\n type: \"GROUP\",\n displayName: \"Group\",\n linkToEntity(id) {\n return `/cms/content-model-groups?id=${id}`;\n },\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n },\n {\n type: \"MODEL\",\n displayName: \"Model\",\n linkToEntity(modelId) {\n return `/cms/content-models/${modelId}`;\n },\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n },\n {\n type: \"MODEL_FOLDER\",\n displayName: \"Model folder\",\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n }\n ]\n },\n {\n app: \"I18N\",\n displayName: \"i18n\",\n entities: [\n {\n type: \"LOCALE\",\n displayName: \"Locale\",\n linkToEntity(id) {\n return `/i18n/locales?code=${id}`;\n },\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n }\n ]\n },\n {\n app: \"MAILER\",\n displayName: \"Mailer\",\n entities: [\n {\n type: \"SETTINGS\",\n displayName: \"Settings\",\n actions: [commonActions.UPDATE]\n }\n ]\n },\n {\n app: \"PAGE_BUILDER\",\n displayName: \"Page Builder\",\n entities: [\n {\n type: \"BLOCK\",\n displayName: \"Block\",\n linkToEntity(id) {\n return `/page-builder/block-editor/${id}`;\n },\n actions: [\n commonActions.CREATE,\n commonActions.UPDATE,\n commonActions.DELETE,\n importExportActions.EXPORT,\n importExportActions.IMPORT\n ]\n },\n {\n type: \"BLOCK_CATEGORY\",\n displayName: \"Block category\",\n linkToEntity(slug) {\n return `/page-builder/block-categories?slug=${slug}`;\n },\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n },\n {\n type: \"CATEGORY\",\n displayName: \"Category\",\n linkToEntity(slug) {\n return `/page-builder/categories?slug=${slug}`;\n },\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n },\n {\n type: \"MENU\",\n displayName: \"Menu\",\n linkToEntity(slug) {\n return `/page-builder/menus?slug=${slug}`;\n },\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n },\n {\n type: \"PAGE\",\n displayName: \"Page\",\n linkToEntity(id) {\n return `/page-builder/editor/${id}`;\n },\n actions: [\n commonActions.CREATE,\n commonActions.DELETE,\n importExportActions.EXPORT,\n importExportActions.IMPORT\n ]\n },\n {\n type: \"PAGE_ELEMENT\",\n displayName: \"Page element\",\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n },\n {\n type: \"PAGE_FOLDER\",\n displayName: \"Page folder\",\n linkToEntity(id) {\n return `/page-builder/pages?folderId=${id}`;\n },\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n },\n {\n type: \"PAGE_REVISION\",\n displayName: \"Page revision\",\n linkToEntity(id) {\n return `/page-builder/editor/${id}`;\n },\n actions: [\n commonActions.CREATE,\n { ...commonActions.UPDATE, newEntryDelay: 60 },\n commonActions.DELETE,\n publishActions.PUBLISH,\n publishActions.UNPUBLISH\n ]\n },\n {\n type: \"SETTINGS\",\n displayName: \"Settings\",\n actions: [commonActions.UPDATE]\n },\n {\n type: \"TEMPLATE\",\n displayName: \"Template\",\n linkToEntity(id) {\n return `/page-builder/page-templates?id=${id}`;\n },\n actions: [\n commonActions.CREATE,\n commonActions.UPDATE,\n commonActions.DELETE,\n importExportActions.EXPORT,\n importExportActions.IMPORT\n ]\n }\n ]\n },\n {\n app: \"SECURITY\",\n displayName: \"Security\",\n entities: [\n {\n type: \"API_KEY\",\n displayName: \"API Key\",\n linkToEntity(id) {\n return `/access-management/api-keys?id=${id}`;\n },\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n },\n {\n type: \"ROLE\",\n displayName: \"Role\",\n linkToEntity(id) {\n return `/access-management/roles?id=${id}`;\n },\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n },\n {\n type: \"TEAM\",\n displayName: \"Team\",\n linkToEntity(id) {\n return `/access-management/teams?id=${id}`;\n },\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n },\n {\n type: \"USER\",\n displayName: \"User\",\n linkToEntity(id) {\n return `/admin-users?id=${id}`;\n },\n actions: [commonActions.CREATE, commonActions.UPDATE, commonActions.DELETE]\n }\n ]\n }\n];\n\nexport const AUDIT = getAuditObject(auditLogsApps);\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-audit-logs",
3
- "version": "5.39.0-beta.1",
3
+ "version": "5.39.0-beta.3",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,33 +24,33 @@
24
24
  "@babel/preset-env": "7.22.7",
25
25
  "@babel/preset-typescript": "7.22.5",
26
26
  "@babel/runtime": "7.22.6",
27
- "@webiny/api-admin-users": "5.39.0-beta.1",
28
- "@webiny/api-file-manager": "5.39.0-beta.1",
29
- "@webiny/api-headless-cms": "5.39.0-beta.1",
30
- "@webiny/api-i18n": "5.39.0-beta.1",
31
- "@webiny/api-security": "5.39.0-beta.1",
32
- "@webiny/api-tenancy": "5.39.0-beta.1",
33
- "@webiny/api-wcp": "5.39.0-beta.1",
34
- "@webiny/cli": "5.39.0-beta.1",
35
- "@webiny/handler-aws": "5.39.0-beta.1",
36
- "@webiny/handler-graphql": "5.39.0-beta.1",
37
- "@webiny/plugins": "5.39.0-beta.1",
38
- "@webiny/project-utils": "5.39.0-beta.1",
27
+ "@webiny/api-admin-users": "5.39.0-beta.3",
28
+ "@webiny/api-file-manager": "5.39.0-beta.3",
29
+ "@webiny/api-headless-cms": "5.39.0-beta.3",
30
+ "@webiny/api-i18n": "5.39.0-beta.3",
31
+ "@webiny/api-security": "5.39.0-beta.3",
32
+ "@webiny/api-tenancy": "5.39.0-beta.3",
33
+ "@webiny/api-wcp": "5.39.0-beta.3",
34
+ "@webiny/cli": "5.39.0-beta.3",
35
+ "@webiny/handler-aws": "5.39.0-beta.3",
36
+ "@webiny/handler-graphql": "5.39.0-beta.3",
37
+ "@webiny/plugins": "5.39.0-beta.3",
38
+ "@webiny/project-utils": "5.39.0-beta.3",
39
39
  "graphql": "15.8.0",
40
40
  "ttypescript": "1.5.15",
41
41
  "typescript": "4.7.4"
42
42
  },
43
43
  "dependencies": {
44
- "@webiny/api": "5.39.0-beta.1",
45
- "@webiny/api-aco": "5.39.0-beta.1",
46
- "@webiny/api-apw": "5.39.0-beta.1",
47
- "@webiny/api-form-builder": "5.39.0-beta.1",
48
- "@webiny/api-mailer": "5.39.0-beta.1",
49
- "@webiny/api-page-builder": "5.39.0-beta.1",
50
- "@webiny/api-page-builder-import-export": "5.39.0-beta.1",
51
- "@webiny/error": "5.39.0-beta.1",
52
- "@webiny/handler": "5.39.0-beta.1",
53
- "@webiny/utils": "5.39.0-beta.1"
44
+ "@webiny/api": "5.39.0-beta.3",
45
+ "@webiny/api-aco": "5.39.0-beta.3",
46
+ "@webiny/api-apw": "5.39.0-beta.3",
47
+ "@webiny/api-form-builder": "5.39.0-beta.3",
48
+ "@webiny/api-mailer": "5.39.0-beta.3",
49
+ "@webiny/api-page-builder": "5.39.0-beta.3",
50
+ "@webiny/api-page-builder-import-export": "5.39.0-beta.3",
51
+ "@webiny/error": "5.39.0-beta.3",
52
+ "@webiny/handler": "5.39.0-beta.3",
53
+ "@webiny/utils": "5.39.0-beta.3"
54
54
  },
55
- "gitHead": "a22d4ab9fbb4ad35106687cbe17b51a84afd4976"
55
+ "gitHead": "3846541fd9c1764e6a8041f0b4208d720eb9c314"
56
56
  }
@@ -31,8 +31,7 @@ const onChangeRequestAfterUpdateHook = context => {
31
31
  input
32
32
  }) => {
33
33
  try {
34
- var _input$data;
35
- const resolved = (_input$data = input.data) === null || _input$data === void 0 ? void 0 : _input$data.resolved;
34
+ const resolved = input.data?.resolved;
36
35
  if (resolved === true) {
37
36
  const createAuditLog = (0, _getAuditConfig.getAuditConfig)(_config.AUDIT.APW.CHANGE_REQUEST.MARK_RESOLVED);
38
37
  await createAuditLog("Change request marked as resolved", {
@@ -1 +1 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","_config","_getAuditConfig","onChangeRequestAfterCreateHook","context","apw","changeRequest","onChangeRequestAfterCreate","subscribe","createAuditLog","getAuditConfig","AUDIT","APW","CHANGE_REQUEST","CREATE","id","error","WebinyError","from","message","code","exports","onChangeRequestAfterUpdateHook","onChangeRequestAfterUpdate","original","input","_input$data","resolved","data","MARK_RESOLVED","before","after","MARK_UNRESOLVED","UPDATE","onChangeRequestAfterDeleteHook","onChangeRequestAfterDelete","DELETE"],"sources":["changeRequests.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\n\nimport { AUDIT } from \"~/config\";\nimport { getAuditConfig } from \"~/utils/getAuditConfig\";\nimport { AuditLogsContext } from \"~/types\";\n\nexport const onChangeRequestAfterCreateHook = (context: AuditLogsContext) => {\n context.apw.changeRequest.onChangeRequestAfterCreate.subscribe(async ({ changeRequest }) => {\n try {\n const createAuditLog = getAuditConfig(AUDIT.APW.CHANGE_REQUEST.CREATE);\n\n await createAuditLog(\n \"Change request created\",\n changeRequest,\n changeRequest.id,\n context\n );\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing onChangeRequestAfterCreateHook hook\",\n code: \"AUDIT_LOGS_AFTER_CHANGE_REQUEST_CREATE_HOOK\"\n });\n }\n });\n};\n\nexport const onChangeRequestAfterUpdateHook = (context: AuditLogsContext) => {\n context.apw.changeRequest.onChangeRequestAfterUpdate.subscribe(\n async ({ changeRequest, original, input }) => {\n try {\n const resolved = input.data?.resolved;\n\n if (resolved === true) {\n const createAuditLog = getAuditConfig(AUDIT.APW.CHANGE_REQUEST.MARK_RESOLVED);\n\n await createAuditLog(\n \"Change request marked as resolved\",\n { before: original, after: changeRequest },\n changeRequest.id,\n context\n );\n } else if (typeof resolved === \"boolean\" && resolved === false) {\n const createAuditLog = getAuditConfig(AUDIT.APW.CHANGE_REQUEST.MARK_UNRESOLVED);\n\n await createAuditLog(\n \"Change request marked as unresolved\",\n { before: original, after: changeRequest },\n changeRequest.id,\n context\n );\n } else {\n const createAuditLog = getAuditConfig(AUDIT.APW.CHANGE_REQUEST.UPDATE);\n\n await createAuditLog(\n \"Change request updated\",\n { before: original, after: changeRequest },\n changeRequest.id,\n context\n );\n }\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing onChangeRequestAfterUpdateHook hook\",\n code: \"AUDIT_LOGS_AFTER_CHANGE_REQUEST_UPDATE_HOOK\"\n });\n }\n }\n );\n};\n\nexport const onChangeRequestAfterDeleteHook = (context: AuditLogsContext) => {\n context.apw.changeRequest.onChangeRequestAfterDelete.subscribe(async ({ changeRequest }) => {\n try {\n const createAuditLog = getAuditConfig(AUDIT.APW.CHANGE_REQUEST.DELETE);\n\n await createAuditLog(\n \"Change request deleted\",\n changeRequest,\n changeRequest.id,\n context\n );\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing onChangeRequestAfterDeleteHook hook\",\n code: \"AUDIT_LOGS_AFTER_CHANGE_REQUEST_DELETE_HOOK\"\n });\n }\n });\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_config","_getAuditConfig","onChangeRequestAfterCreateHook","context","apw","changeRequest","onChangeRequestAfterCreate","subscribe","createAuditLog","getAuditConfig","AUDIT","APW","CHANGE_REQUEST","CREATE","id","error","WebinyError","from","message","code","exports","onChangeRequestAfterUpdateHook","onChangeRequestAfterUpdate","original","input","resolved","data","MARK_RESOLVED","before","after","MARK_UNRESOLVED","UPDATE","onChangeRequestAfterDeleteHook","onChangeRequestAfterDelete","DELETE"],"sources":["changeRequests.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\n\nimport { AUDIT } from \"~/config\";\nimport { getAuditConfig } from \"~/utils/getAuditConfig\";\nimport { AuditLogsContext } from \"~/types\";\n\nexport const onChangeRequestAfterCreateHook = (context: AuditLogsContext) => {\n context.apw.changeRequest.onChangeRequestAfterCreate.subscribe(async ({ changeRequest }) => {\n try {\n const createAuditLog = getAuditConfig(AUDIT.APW.CHANGE_REQUEST.CREATE);\n\n await createAuditLog(\n \"Change request created\",\n changeRequest,\n changeRequest.id,\n context\n );\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing onChangeRequestAfterCreateHook hook\",\n code: \"AUDIT_LOGS_AFTER_CHANGE_REQUEST_CREATE_HOOK\"\n });\n }\n });\n};\n\nexport const onChangeRequestAfterUpdateHook = (context: AuditLogsContext) => {\n context.apw.changeRequest.onChangeRequestAfterUpdate.subscribe(\n async ({ changeRequest, original, input }) => {\n try {\n const resolved = input.data?.resolved;\n\n if (resolved === true) {\n const createAuditLog = getAuditConfig(AUDIT.APW.CHANGE_REQUEST.MARK_RESOLVED);\n\n await createAuditLog(\n \"Change request marked as resolved\",\n { before: original, after: changeRequest },\n changeRequest.id,\n context\n );\n } else if (typeof resolved === \"boolean\" && resolved === false) {\n const createAuditLog = getAuditConfig(AUDIT.APW.CHANGE_REQUEST.MARK_UNRESOLVED);\n\n await createAuditLog(\n \"Change request marked as unresolved\",\n { before: original, after: changeRequest },\n changeRequest.id,\n context\n );\n } else {\n const createAuditLog = getAuditConfig(AUDIT.APW.CHANGE_REQUEST.UPDATE);\n\n await createAuditLog(\n \"Change request updated\",\n { before: original, after: changeRequest },\n changeRequest.id,\n context\n );\n }\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing onChangeRequestAfterUpdateHook hook\",\n code: \"AUDIT_LOGS_AFTER_CHANGE_REQUEST_UPDATE_HOOK\"\n });\n }\n }\n );\n};\n\nexport const onChangeRequestAfterDeleteHook = (context: AuditLogsContext) => {\n context.apw.changeRequest.onChangeRequestAfterDelete.subscribe(async ({ changeRequest }) => {\n try {\n const createAuditLog = getAuditConfig(AUDIT.APW.CHANGE_REQUEST.DELETE);\n\n await createAuditLog(\n \"Change request deleted\",\n changeRequest,\n changeRequest.id,\n context\n );\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing onChangeRequestAfterDeleteHook hook\",\n code: \"AUDIT_LOGS_AFTER_CHANGE_REQUEST_DELETE_HOOK\"\n });\n }\n });\n};\n"],"mappings":"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"}
@@ -19,7 +19,7 @@ class GzipCompression {
19
19
  let compression;
20
20
  try {
21
21
  const result = JSON.parse(data);
22
- if (!(result !== null && result !== void 0 && result.compression)) {
22
+ if (!result?.compression) {
23
23
  return false;
24
24
  }
25
25
  compression = result.compression;
@@ -53,7 +53,7 @@ class GzipCompression {
53
53
  let compression;
54
54
  try {
55
55
  const result = JSON.parse(data);
56
- if (!(result !== null && result !== void 0 && result.compression)) {
56
+ if (!result?.compression) {
57
57
  return false;
58
58
  }
59
59
  compression = result.compression;
@@ -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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"}
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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"}
@@ -11,11 +11,11 @@ export declare const getAuditConfig: (audit: AuditAction) => (message: string, d
11
11
  data: {
12
12
  data: string;
13
13
  message: string;
14
+ action: string;
15
+ timestamp: Date;
14
16
  app: string;
15
17
  entity: string;
16
18
  entityId: string;
17
- action: string;
18
- timestamp: Date;
19
19
  initiator: string;
20
20
  };
21
21
  } | {
@@ -28,6 +28,9 @@ export declare const getAuditConfig: (audit: AuditAction) => (message: string, d
28
28
  id: string;
29
29
  entryId: string;
30
30
  createdOn: string;
31
- createdBy: import("@webiny/api-aco/types").User;
31
+ modifiedOn: string | null;
32
32
  savedOn: string;
33
+ createdBy: import("@webiny/api-aco/types").User;
34
+ modifiedBy: import("@webiny/api-aco/types").User | null;
35
+ savedBy: import("@webiny/api-aco/types").User;
33
36
  } | undefined>;
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.getAuditConfig = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
8
  var _error = _interopRequireDefault(require("@webiny/error"));
10
9
  var _utils = require("@webiny/utils");
11
10
  var _compressor = require("./compressor");
@@ -25,15 +24,18 @@ const createAuditLog = async params => {
25
24
  location: {
26
25
  folderId: "root"
27
26
  },
28
- data: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, payload), {}, {
27
+ data: {
28
+ ...payload,
29
29
  data: payloadData
30
- })
30
+ }
31
31
  };
32
- await app.search.create((0, _objectSpread2.default)((0, _objectSpread2.default)({}, entry), {}, {
33
- data: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, entry.data), {}, {
32
+ await app.search.create({
33
+ ...entry,
34
+ data: {
35
+ ...entry.data,
34
36
  data: await _compressor.compressor.compress(entry.data.data)
35
- })
36
- }));
37
+ }
38
+ });
37
39
  return entry;
38
40
  } catch (error) {
39
41
  throw _error.default.from(error, {
@@ -59,18 +61,17 @@ const createOrMergeAuditLog = async params => {
59
61
  },
60
62
  limit: 1
61
63
  });
62
- const existingLog = records === null || records === void 0 ? void 0 : records[0];
64
+ const existingLog = records?.[0];
63
65
  if (existingLog) {
64
66
  const existingLogDate = Date.parse(existingLog.savedOn);
65
67
  const newLogDate = payload.timestamp.getTime();
66
68
 
67
69
  // Check if the latest audit log is saved within delay range.
68
70
  if (newLogDate - existingLogDate < delay * 1000) {
69
- var _JSON$parse, _payload$data;
70
71
  const existingLogData = await _compressor.compressor.decompress(existingLog.data);
71
72
  // Update latest audit log with new "after" payload.
72
- const beforePayloadData = (_JSON$parse = JSON.parse(existingLogData === null || existingLogData === void 0 ? void 0 : existingLogData.data.data)) === null || _JSON$parse === void 0 ? void 0 : _JSON$parse.before;
73
- const afterPayloadData = (_payload$data = payload.data) === null || _payload$data === void 0 ? void 0 : _payload$data.after;
73
+ const beforePayloadData = JSON.parse(existingLogData?.data.data)?.before;
74
+ const afterPayloadData = payload.data?.after;
74
75
  const updatedPayloadData = beforePayloadData ? JSON.stringify({
75
76
  before: beforePayloadData,
76
77
  after: afterPayloadData
@@ -78,13 +79,15 @@ const createOrMergeAuditLog = async params => {
78
79
  const data = await _compressor.compressor.compress(updatedPayloadData);
79
80
  try {
80
81
  await app.search.update(existingLog.id, {
81
- data: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, payload), {}, {
82
+ data: {
83
+ ...payload,
82
84
  data
83
- })
85
+ }
84
86
  });
85
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, existingLog), {}, {
87
+ return {
88
+ ...existingLog,
86
89
  data: updatedPayloadData
87
- });
90
+ };
88
91
  } catch (error) {
89
92
  throw _error.default.from(error, {
90
93
  message: "Error while updating audit log",
@@ -114,7 +117,7 @@ const getAuditConfig = audit => {
114
117
  action: audit.action.type,
115
118
  data,
116
119
  timestamp: new Date(),
117
- initiator: identity === null || identity === void 0 ? void 0 : identity.id
120
+ initiator: identity?.id
118
121
  };
119
122
  const app = aco.getApp("AuditLogs");
120
123
  const delay = audit.action.newEntryDelay;
@@ -1 +1 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","_utils","_compressor","createAuditLog","params","app","payload","payloadData","JSON","stringify","data","entry","id","mdbid","title","message","content","tags","type","location","folderId","_objectSpread2","default","search","create","compressor","compress","error","WebinyError","from","code","createOrMergeAuditLog","delay","records","list","where","entityId","initiator","limit","existingLog","existingLogDate","Date","parse","savedOn","newLogDate","timestamp","getTime","_JSON$parse","_payload$data","existingLogData","decompress","beforePayloadData","before","afterPayloadData","after","updatedPayloadData","update","getAuditConfig","audit","context","aco","security","console","log","identity","getIdentity","auditLogPayload","entity","action","getApp","newEntryDelay","exports"],"sources":["getAuditConfig.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { mdbid } from \"@webiny/utils\";\nimport { IAcoApp } from \"@webiny/api-aco/types\";\nimport { AuditAction, AuditLog, AuditLogsContext } from \"~/types\";\nimport { compressor } from \"~/utils/compressor\";\n\ninterface AuditLogPayload extends Omit<AuditLog, \"id\" | \"data\"> {\n data: Record<string, any>;\n}\n\ninterface CreateAuditLogParams {\n app: IAcoApp;\n payload: AuditLogPayload;\n}\n\nconst createAuditLog = async (params: CreateAuditLogParams) => {\n const { app, payload } = params;\n\n const payloadData = JSON.stringify(payload.data);\n\n try {\n const entry = {\n id: mdbid(),\n title: payload.message,\n content: payload.message,\n tags: [],\n type: \"AuditLogs\",\n location: { folderId: \"root\" },\n data: {\n ...payload,\n data: payloadData\n }\n };\n await app.search.create({\n ...entry,\n data: {\n ...entry.data,\n data: await compressor.compress(entry.data.data)\n }\n });\n return entry;\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while creating new audit log\",\n code: \"CREATE_AUDIT_LOG\"\n });\n }\n};\n\ninterface CreateOrMergeAuditLogParams {\n app: IAcoApp;\n payload: AuditLogPayload;\n delay: number;\n}\n\nconst createOrMergeAuditLog = async (params: CreateOrMergeAuditLogParams) => {\n const { app, payload, delay } = params;\n // Get the latest audit log of this entry.\n const [records] = await app.search.list({\n where: {\n type: \"AuditLogs\",\n data: {\n entityId: payload.entityId,\n initiator: payload.initiator\n }\n },\n limit: 1\n });\n const existingLog = records?.[0];\n\n if (existingLog) {\n const existingLogDate = Date.parse(existingLog.savedOn);\n const newLogDate = payload.timestamp.getTime();\n\n // Check if the latest audit log is saved within delay range.\n if (newLogDate - existingLogDate < delay * 1000) {\n const existingLogData = await compressor.decompress(existingLog.data as any);\n // Update latest audit log with new \"after\" payload.\n const beforePayloadData = JSON.parse(existingLogData?.data.data)?.before;\n const afterPayloadData = payload.data?.after;\n const updatedPayloadData = beforePayloadData\n ? JSON.stringify({ before: beforePayloadData, after: afterPayloadData })\n : JSON.stringify(payload.data);\n\n const data = await compressor.compress(updatedPayloadData);\n try {\n await app.search.update(existingLog.id, {\n data: {\n ...payload,\n data\n }\n });\n\n return {\n ...existingLog,\n data: updatedPayloadData\n };\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while updating audit log\",\n code: \"UPDATE_AUDIT_LOG\"\n });\n }\n }\n }\n\n return createAuditLog(params);\n};\n\nexport const getAuditConfig = (audit: AuditAction) => {\n return async (\n message: string,\n data: Record<string, any>,\n entityId: string,\n context: AuditLogsContext\n ) => {\n const { aco, security } = context;\n\n if (!aco) {\n console.log(\"No ACO defined.\");\n return;\n }\n\n const identity = security.getIdentity();\n\n const auditLogPayload = {\n message,\n app: audit.app.app,\n entity: audit.entity.type,\n entityId,\n action: audit.action.type,\n data,\n timestamp: new Date(),\n initiator: identity?.id\n };\n\n const app = aco.getApp(\"AuditLogs\");\n const delay = audit.action.newEntryDelay;\n\n // Check if there is delay on audit log creation for this action.\n if (delay) {\n return await createOrMergeAuditLog({\n app,\n payload: auditLogPayload,\n delay\n });\n }\n return await createAuditLog({\n app,\n payload: auditLogPayload\n });\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_utils","_compressor","createAuditLog","params","app","payload","payloadData","JSON","stringify","data","entry","id","mdbid","title","message","content","tags","type","location","folderId","search","create","compressor","compress","error","WebinyError","from","code","createOrMergeAuditLog","delay","records","list","where","entityId","initiator","limit","existingLog","existingLogDate","Date","parse","savedOn","newLogDate","timestamp","getTime","existingLogData","decompress","beforePayloadData","before","afterPayloadData","after","updatedPayloadData","update","getAuditConfig","audit","context","aco","security","console","log","identity","getIdentity","auditLogPayload","entity","action","getApp","newEntryDelay","exports"],"sources":["getAuditConfig.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { mdbid } from \"@webiny/utils\";\nimport { IAcoApp } from \"@webiny/api-aco/types\";\nimport { AuditAction, AuditLog, AuditLogsContext } from \"~/types\";\nimport { compressor } from \"~/utils/compressor\";\n\ninterface AuditLogPayload extends Omit<AuditLog, \"id\" | \"data\"> {\n data: Record<string, any>;\n}\n\ninterface CreateAuditLogParams {\n app: IAcoApp;\n payload: AuditLogPayload;\n}\n\nconst createAuditLog = async (params: CreateAuditLogParams) => {\n const { app, payload } = params;\n\n const payloadData = JSON.stringify(payload.data);\n\n try {\n const entry = {\n id: mdbid(),\n title: payload.message,\n content: payload.message,\n tags: [],\n type: \"AuditLogs\",\n location: { folderId: \"root\" },\n data: {\n ...payload,\n data: payloadData\n }\n };\n await app.search.create({\n ...entry,\n data: {\n ...entry.data,\n data: await compressor.compress(entry.data.data)\n }\n });\n return entry;\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while creating new audit log\",\n code: \"CREATE_AUDIT_LOG\"\n });\n }\n};\n\ninterface CreateOrMergeAuditLogParams {\n app: IAcoApp;\n payload: AuditLogPayload;\n delay: number;\n}\n\nconst createOrMergeAuditLog = async (params: CreateOrMergeAuditLogParams) => {\n const { app, payload, delay } = params;\n // Get the latest audit log of this entry.\n const [records] = await app.search.list({\n where: {\n type: \"AuditLogs\",\n data: {\n entityId: payload.entityId,\n initiator: payload.initiator\n }\n },\n limit: 1\n });\n const existingLog = records?.[0];\n\n if (existingLog) {\n const existingLogDate = Date.parse(existingLog.savedOn);\n const newLogDate = payload.timestamp.getTime();\n\n // Check if the latest audit log is saved within delay range.\n if (newLogDate - existingLogDate < delay * 1000) {\n const existingLogData = await compressor.decompress(\n existingLog.data as unknown as string\n );\n // Update latest audit log with new \"after\" payload.\n const beforePayloadData = JSON.parse(existingLogData?.data.data)?.before;\n const afterPayloadData = payload.data?.after;\n const updatedPayloadData = beforePayloadData\n ? JSON.stringify({ before: beforePayloadData, after: afterPayloadData })\n : JSON.stringify(payload.data);\n\n const data = await compressor.compress(updatedPayloadData);\n try {\n await app.search.update(existingLog.id, {\n data: {\n ...payload,\n data\n }\n });\n\n return {\n ...existingLog,\n data: updatedPayloadData\n };\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while updating audit log\",\n code: \"UPDATE_AUDIT_LOG\"\n });\n }\n }\n }\n\n return createAuditLog(params);\n};\n\nexport const getAuditConfig = (audit: AuditAction) => {\n return async (\n message: string,\n data: Record<string, any>,\n entityId: string,\n context: AuditLogsContext\n ) => {\n const { aco, security } = context;\n\n if (!aco) {\n console.log(\"No ACO defined.\");\n return;\n }\n\n const identity = security.getIdentity();\n\n const auditLogPayload = {\n message,\n app: audit.app.app,\n entity: audit.entity.type,\n entityId,\n action: audit.action.type,\n data,\n timestamp: new Date(),\n initiator: identity?.id\n };\n\n const app = aco.getApp(\"AuditLogs\");\n const delay = audit.action.newEntryDelay;\n\n // Check if there is delay on audit log creation for this action.\n if (delay) {\n return await createOrMergeAuditLog({\n app,\n payload: auditLogPayload,\n delay\n });\n }\n return await createAuditLog({\n app,\n payload: auditLogPayload\n });\n };\n};\n"],"mappings":"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"}