UNPKG

@strapi/provider-audit-logs-local

Version:

Local provider for strapi audit logs

1 lines 4.15 kB
{"version":3,"file":"index.mjs","sources":["../src/content-types/audit-log/schema.ts","../src/content-types/audit-log/index.ts","../src/index.ts"],"sourcesContent":["export default {\n kind: 'collectionType',\n collectionName: 'strapi_audit_logs',\n info: {\n singularName: 'audit-log',\n pluralName: 'audit-logs',\n displayName: 'Audit Log',\n },\n options: {\n draftAndPublish: false,\n timestamps: false,\n },\n pluginOptions: {\n 'content-manager': {\n visible: false,\n },\n 'content-type-builder': {\n visible: false,\n },\n },\n attributes: {\n action: {\n type: 'string',\n required: true,\n },\n date: {\n type: 'datetime',\n required: true,\n },\n user: {\n type: 'relation',\n relation: 'oneToOne',\n target: 'admin::user',\n },\n payload: {\n type: 'json',\n },\n },\n};\n","import schema from './schema';\n\nexport default {\n schema,\n};\n","import type { Strapi } from '@strapi/types';\nimport auditLogContentType from './content-types/audit-log';\n\ninterface Event {\n action: string;\n date: Date;\n userId: string | number;\n payload: Record<string, unknown>;\n}\n\ninterface Log extends Omit<Event, 'userId'> {\n user: string | number;\n}\n\nexport default {\n async register({ strapi }: { strapi: Strapi }) {\n const contentTypes = strapi.container.get('content-types');\n if (!contentTypes.keys().includes('admin::audit-log')) {\n strapi.container.get('content-types').add('admin::', { 'audit-log': auditLogContentType });\n }\n\n // Return the provider object\n return {\n async saveEvent(event: Event) {\n const { userId, ...rest } = event;\n\n const auditLog: Log = { ...rest, user: userId };\n\n // Save to database\n await strapi.entityService?.create('admin::audit-log', { data: auditLog });\n\n return this;\n },\n\n findMany(query: Record<string, unknown>) {\n return strapi.entityService?.findPage('admin::audit-log', {\n populate: ['user'],\n fields: ['action', 'date', 'payload'],\n ...query,\n });\n },\n\n findOne(id: `${number}` | number) {\n return strapi.entityService?.findOne('admin::audit-log', id, {\n populate: ['user'],\n fields: ['action', 'date', 'payload'],\n });\n },\n\n deleteExpiredEvents(expirationDate: Date) {\n return strapi.entityService?.deleteMany('admin::audit-log', {\n filters: {\n date: {\n $lt: expirationDate.toISOString(),\n },\n },\n });\n },\n };\n },\n};\n"],"names":[],"mappings":"AAAA,MAAe,SAAA;AAAA,EACb,MAAM;AAAA,EACN,gBAAgB;AAAA,EAChB,MAAM;AAAA,IACJ,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,aAAa;AAAA,EACf;AAAA,EACA,SAAS;AAAA,IACP,iBAAiB;AAAA,IACjB,YAAY;AAAA,EACd;AAAA,EACA,eAAe;AAAA,IACb,mBAAmB;AAAA,MACjB,SAAS;AAAA,IACX;AAAA,IACA,wBAAwB;AAAA,MACtB,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,MACV,QAAQ;AAAA,IACV;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AACF;ACpCA,MAAe,sBAAA;AAAA,EACb;AACF;ACUA,MAAe,QAAA;AAAA,EACb,MAAM,SAAS,EAAE,UAA8B;AAC7C,UAAM,eAAe,OAAO,UAAU,IAAI,eAAe;AACzD,QAAI,CAAC,aAAa,KAAO,EAAA,SAAS,kBAAkB,GAAG;AAC9C,aAAA,UAAU,IAAI,eAAe,EAAE,IAAI,WAAW,EAAE,aAAa,oBAAA,CAAqB;AAAA,IAC3F;AAGO,WAAA;AAAA,MACL,MAAM,UAAU,OAAc;AAC5B,cAAM,EAAE,QAAQ,GAAG,KAAA,IAAS;AAE5B,cAAM,WAAgB,EAAE,GAAG,MAAM,MAAM,OAAO;AAG9C,cAAM,OAAO,eAAe,OAAO,oBAAoB,EAAE,MAAM,UAAU;AAElE,eAAA;AAAA,MACT;AAAA,MAEA,SAAS,OAAgC;AAChC,eAAA,OAAO,eAAe,SAAS,oBAAoB;AAAA,UACxD,UAAU,CAAC,MAAM;AAAA,UACjB,QAAQ,CAAC,UAAU,QAAQ,SAAS;AAAA,UACpC,GAAG;AAAA,QAAA,CACJ;AAAA,MACH;AAAA,MAEA,QAAQ,IAA0B;AAChC,eAAO,OAAO,eAAe,QAAQ,oBAAoB,IAAI;AAAA,UAC3D,UAAU,CAAC,MAAM;AAAA,UACjB,QAAQ,CAAC,UAAU,QAAQ,SAAS;AAAA,QAAA,CACrC;AAAA,MACH;AAAA,MAEA,oBAAoB,gBAAsB;AACjC,eAAA,OAAO,eAAe,WAAW,oBAAoB;AAAA,UAC1D,SAAS;AAAA,YACP,MAAM;AAAA,cACJ,KAAK,eAAe,YAAY;AAAA,YAClC;AAAA,UACF;AAAA,QAAA,CACD;AAAA,MACH;AAAA,IAAA;AAAA,EAEJ;AACF;"}