@brandlift/payload-loggs 1.0.4 → 1.0.5
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/dist/core/automation/tasks/cleanup/cleanup.js.map +1 -1
- package/dist/core/buffer/bufferManager.js +1 -1
- package/dist/core/buffer/bufferManager.js.map +1 -1
- package/dist/core/log-builders/logBuilderManager/logBuilderManager.js.map +1 -1
- package/dist/plugin.js.map +1 -1
- package/dist/pluginUtils/attachCollectionConfig/attachCollectionConfig.js +3 -2
- package/dist/pluginUtils/attachCollectionConfig/attachCollectionConfig.js.map +1 -1
- package/dist/pluginUtils/attachGlobalConfig/attachGlobalConfig.js +3 -2
- package/dist/pluginUtils/attachGlobalConfig/attachGlobalConfig.js.map +1 -1
- package/dist/pluginUtils/getCollectionLabel.d.ts +2 -2
- package/dist/pluginUtils/getCollectionLabel.js.map +1 -1
- package/dist/types/config.d.ts +1 -2
- package/dist/types/config.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/core/automation/tasks/cleanup/cleanup.ts"],"sourcesContent":["import type { CollectionConfig, TaskConfig } from 'payload';\n\nimport type { PluginConfig } from '../../../../types/config.js';\n\nexport const DEFAULT_OLDER_THAN = 2592000000; // 30 days (30 * 24 * 60 * 60 * 1000)\nexport const DEFAULT_CRON_TIME = '1 0 * * *'; // At 00:01 AM daily\nexport const DEFAULT_QUEUE_NAME = 'payload-loggs-queue'; // default queue name\nexport const CLEANUP_TASK_SLUG = 'cleanup-site-activity-log';\nexport const CLEANUP_TASK_LABEL = 'payload loggs - cleanup site activities';\n\ntype CleanupLogsTaskParams = {\n pluginConfig: PluginConfig;\n internalCollectionConfig: CollectionConfig;\n};\nexport const cleanupLogsTask = (params: CleanupLogsTaskParams): TaskConfig<typeof CLEANUP_TASK_SLUG> => {\n const cronTime = params.pluginConfig.automation?.logCleanup?.cronTime ?? DEFAULT_CRON_TIME;\n const queueName = params.pluginConfig.automation?.logCleanup?.queueName ?? DEFAULT_QUEUE_NAME;\n const olderThan = params.pluginConfig.automation?.logCleanup?.olderThan ?? DEFAULT_OLDER_THAN;\n\n return {\n slug: CLEANUP_TASK_SLUG,\n label: CLEANUP_TASK_LABEL,\n schedule: [{ cron: cronTime, queue: queueName }],\n handler: async ({ req }) => {\n const millisecondsAgo = new Date(Date.now() - olderThan);\n try {\n await req.payload.delete({\n collection: params.internalCollectionConfig.slug as
|
|
1
|
+
{"version":3,"sources":["../../../../../src/core/automation/tasks/cleanup/cleanup.ts"],"sourcesContent":["import type { CollectionConfig, TaskConfig } from 'payload';\n\nimport type { PluginConfig } from '../../../../types/config.js';\n\nexport const DEFAULT_OLDER_THAN = 2592000000; // 30 days (30 * 24 * 60 * 60 * 1000)\nexport const DEFAULT_CRON_TIME = '1 0 * * *'; // At 00:01 AM daily\nexport const DEFAULT_QUEUE_NAME = 'payload-loggs-queue'; // default queue name\nexport const CLEANUP_TASK_SLUG = 'cleanup-site-activity-log';\nexport const CLEANUP_TASK_LABEL = 'payload loggs - cleanup site activities';\n\ntype CleanupLogsTaskParams = {\n pluginConfig: PluginConfig;\n internalCollectionConfig: CollectionConfig;\n};\nexport const cleanupLogsTask = (params: CleanupLogsTaskParams): TaskConfig<typeof CLEANUP_TASK_SLUG> => {\n const cronTime = params.pluginConfig.automation?.logCleanup?.cronTime ?? DEFAULT_CRON_TIME;\n const queueName = params.pluginConfig.automation?.logCleanup?.queueName ?? DEFAULT_QUEUE_NAME;\n const olderThan = params.pluginConfig.automation?.logCleanup?.olderThan ?? DEFAULT_OLDER_THAN;\n\n return {\n slug: CLEANUP_TASK_SLUG,\n label: CLEANUP_TASK_LABEL,\n schedule: [{ cron: cronTime, queue: queueName }],\n handler: async ({ req }) => {\n const millisecondsAgo = new Date(Date.now() - olderThan);\n try {\n await req.payload.delete({\n collection: params.internalCollectionConfig.slug as keyof typeof req.payload.collections,\n where: { createdAt: { less_than: millisecondsAgo.toISOString() } },\n });\n }\n // eslint-disable-next-line unused-imports/no-unused-vars\n catch (error) {\n req.payload.logger.error(`Error while cleaning old logs — task: ${CLEANUP_TASK_SLUG}`);\n }\n\n return { output: {} };\n },\n };\n};\n"],"names":["DEFAULT_OLDER_THAN","DEFAULT_CRON_TIME","DEFAULT_QUEUE_NAME","CLEANUP_TASK_SLUG","CLEANUP_TASK_LABEL","cleanupLogsTask","params","cronTime","pluginConfig","automation","logCleanup","queueName","olderThan","slug","label","schedule","cron","queue","handler","req","millisecondsAgo","Date","now","payload","delete","collection","internalCollectionConfig","where","createdAt","less_than","toISOString","error","logger","output"],"mappings":"AAIA,OAAO,MAAMA,qBAAqB,WAAW,CAAC,qCAAqC;AACnF,OAAO,MAAMC,oBAAoB,YAAY,CAAC,oBAAoB;AAClE,OAAO,MAAMC,qBAAqB,sBAAsB,CAAC,qBAAqB;AAC9E,OAAO,MAAMC,oBAAoB,4BAA4B;AAC7D,OAAO,MAAMC,qBAAqB,0CAA0C;AAM5E,OAAO,MAAMC,kBAAkB,CAACC;IAC9B,MAAMC,WAAWD,OAAOE,YAAY,CAACC,UAAU,EAAEC,YAAYH,YAAYN;IACzE,MAAMU,YAAYL,OAAOE,YAAY,CAACC,UAAU,EAAEC,YAAYC,aAAaT;IAC3E,MAAMU,YAAYN,OAAOE,YAAY,CAACC,UAAU,EAAEC,YAAYE,aAAaZ;IAE3E,OAAO;QACLa,MAAMV;QACNW,OAAOV;QACPW,UAAU;YAAC;gBAAEC,MAAMT;gBAAUU,OAAON;YAAU;SAAE;QAChDO,SAAS,OAAO,EAAEC,GAAG,EAAE;YACrB,MAAMC,kBAAkB,IAAIC,KAAKA,KAAKC,GAAG,KAAKV;YAC9C,IAAI;gBACF,MAAMO,IAAII,OAAO,CAACC,MAAM,CAAC;oBACvBC,YAAYnB,OAAOoB,wBAAwB,CAACb,IAAI;oBAChDc,OAAO;wBAAEC,WAAW;4BAAEC,WAAWT,gBAAgBU,WAAW;wBAAG;oBAAE;gBACnE;YACF,EACA,yDAAyD;YACzD,OAAOC,OAAO;gBACZZ,IAAII,OAAO,CAACS,MAAM,CAACD,KAAK,CAAC,CAAC,sCAAsC,EAAE5B,mBAAmB;YACvF;YAEA,OAAO;gBAAE8B,QAAQ,CAAC;YAAE;QACtB;IACF;AACF,EAAE"}
|
|
@@ -9,7 +9,7 @@ const flushBuffer = async (params)=>{
|
|
|
9
9
|
];
|
|
10
10
|
bufferStore.length = 0;
|
|
11
11
|
await Promise.all(logsToInsert.map((log)=>params.payload.create({
|
|
12
|
-
collection: params.internalCollectionConfig?.slug,
|
|
12
|
+
collection: params.internalCollectionConfig?.slug ?? 'site-activity',
|
|
13
13
|
data: log
|
|
14
14
|
})));
|
|
15
15
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/core/buffer/bufferManager.ts"],"sourcesContent":["import type { CollectionConfig, Payload } from 'payload';\n\nimport type { BufferConfig } from './types.js';\nimport { onEventLog } from './../../core/events/emitter.js';\nimport type { SiteActivityLog } from '../../collections/siteActivity.js';\n\nexport const DEFAULT_INTERVAL_BUFFER = 10000 as NonNullable<BufferConfig['time']>;\nexport const DEFAULT_BUFFER_SIZE = 10 as NonNullable<BufferConfig['size']>;\nexport const DEFAULT_BUFFER_STRATEGY = 'time' as NonNullable<BufferConfig['flushStrategy']>;\n\nexport const bufferStore: SiteActivityLog[] = [];\n\ntype FlushBufferParams = {\n payload: Payload;\n internalCollectionConfig: CollectionConfig;\n};\n\nconst flushBuffer = async (params: FlushBufferParams) => {\n const logsToInsert = [...bufferStore];\n bufferStore.length = 0;\n await Promise.all(\n logsToInsert.map(log =>\n params.payload.create({\n collection: params.internalCollectionConfig?.slug as
|
|
1
|
+
{"version":3,"sources":["../../../src/core/buffer/bufferManager.ts"],"sourcesContent":["import type { CollectionConfig, Payload } from 'payload';\n\nimport type { BufferConfig } from './types.js';\nimport { onEventLog } from './../../core/events/emitter.js';\nimport type { SiteActivityLog } from '../../collections/siteActivity.js';\n\nexport const DEFAULT_INTERVAL_BUFFER = 10000 as NonNullable<BufferConfig['time']>;\nexport const DEFAULT_BUFFER_SIZE = 10 as NonNullable<BufferConfig['size']>;\nexport const DEFAULT_BUFFER_STRATEGY = 'time' as NonNullable<BufferConfig['flushStrategy']>;\n\nexport const bufferStore: SiteActivityLog[] = [];\n\ntype FlushBufferParams = {\n payload: Payload;\n internalCollectionConfig: CollectionConfig;\n};\n\nconst flushBuffer = async (params: FlushBufferParams) => {\n const logsToInsert = [...bufferStore];\n bufferStore.length = 0;\n await Promise.all(\n logsToInsert.map(log =>\n params.payload.create({\n collection: (params.internalCollectionConfig?.slug ?? 'site-activity') as keyof typeof params.payload.collections,\n data: log,\n }),\n ),\n );\n};\n\ntype BufferConfigParams = {\n payload: Payload;\n bufferConfig?: BufferConfig;\n internalCollectionConfig: CollectionConfig;\n};\n\nexport const bufferManager = (params: BufferConfigParams) => {\n const bufferConfig = params.bufferConfig;\n const size = bufferConfig?.size ?? DEFAULT_BUFFER_SIZE;\n const interval = bufferConfig?.time ?? DEFAULT_INTERVAL_BUFFER;\n const flushStrategy = bufferConfig?.flushStrategy ?? DEFAULT_BUFFER_STRATEGY;\n\n onEventLog('logGenerated', async (log: SiteActivityLog) => {\n bufferStore.push(log);\n\n if (flushStrategy === 'size') {\n if (bufferStore.length >= size) {\n await flushBuffer(params);\n }\n }\n else if (flushStrategy === 'realtime') {\n await flushBuffer(params);\n }\n });\n\n if (flushStrategy === 'time') {\n // Every few seconds, empty the buffer (even if it's not full)\n setInterval(async () => {\n if (bufferStore.length > 0) {\n await flushBuffer(params);\n }\n }, interval);\n }\n};\n"],"names":["onEventLog","DEFAULT_INTERVAL_BUFFER","DEFAULT_BUFFER_SIZE","DEFAULT_BUFFER_STRATEGY","bufferStore","flushBuffer","params","logsToInsert","length","Promise","all","map","log","payload","create","collection","internalCollectionConfig","slug","data","bufferManager","bufferConfig","size","interval","time","flushStrategy","push","setInterval"],"mappings":"AAGA,SAASA,UAAU,QAAQ,iCAAiC;AAG5D,OAAO,MAAMC,0BAA0B,MAA2C;AAClF,OAAO,MAAMC,sBAAsB,GAAwC;AAC3E,OAAO,MAAMC,0BAA0B,OAAqD;AAE5F,OAAO,MAAMC,cAAiC,EAAE,CAAC;AAOjD,MAAMC,cAAc,OAAOC;IACzB,MAAMC,eAAe;WAAIH;KAAY;IACrCA,YAAYI,MAAM,GAAG;IACrB,MAAMC,QAAQC,GAAG,CACfH,aAAaI,GAAG,CAACC,CAAAA,MACfN,OAAOO,OAAO,CAACC,MAAM,CAAC;YACpBC,YAAaT,OAAOU,wBAAwB,EAAEC,QAAQ;YACtDC,MAAMN;QACR;AAGN;AAQA,OAAO,MAAMO,gBAAgB,CAACb;IAC5B,MAAMc,eAAed,OAAOc,YAAY;IACxC,MAAMC,OAAOD,cAAcC,QAAQnB;IACnC,MAAMoB,WAAWF,cAAcG,QAAQtB;IACvC,MAAMuB,gBAAgBJ,cAAcI,iBAAiBrB;IAErDH,WAAW,gBAAgB,OAAOY;QAChCR,YAAYqB,IAAI,CAACb;QAEjB,IAAIY,kBAAkB,QAAQ;YAC5B,IAAIpB,YAAYI,MAAM,IAAIa,MAAM;gBAC9B,MAAMhB,YAAYC;YACpB;QACF,OACK,IAAIkB,kBAAkB,YAAY;YACrC,MAAMnB,YAAYC;QACpB;IACF;IAEA,IAAIkB,kBAAkB,QAAQ;QAC5B,8DAA8D;QAC9DE,YAAY;YACV,IAAItB,YAAYI,MAAM,GAAG,GAAG;gBAC1B,MAAMH,YAAYC;YACpB;QACF,GAAGgB;IACL;AACF,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/core/log-builders/logBuilderManager/logBuilderManager.ts"],"sourcesContent":["import { emitEvent } from '../../events/emitter.js';\nimport type { PluginConfig } from '../../../types/config.js';\nimport { handleDebugMode } from '../helpers/handleDebugMode.js';\nimport type { SiteActivityLog } from '../../../collections/siteActivity.js';\nimport { extractOperation } from '../helpers/extractOperation/extractOperation.js';\nimport { checkIsOperationEnabled } from '../helpers/isOperationEnabled/isOperationEnabled.js';\nimport type { GlobalHookConfigForTracking, GlobalHooksArgsParameterUnion, GlobalHooksKeys, GlobalOperationLogConfig } from '../../../types/global.js';\nimport type { CollectionHooksArgsParameterUnion, CollectionHooksKeys, CollectionOperationLogConfig, CollectionsHookConfigForTracking } from '../../../types/collection.js';\n\nexport type LogBuilderManager = {\n hookArgs: CollectionHooksArgsParameterUnion | GlobalHooksArgsParameterUnion;\n pluginConfig: PluginConfig;\n targetHookName: CollectionHooksKeys;\n targetHookLevelConfig: CollectionsHookConfigForTracking[CollectionHooksKeys] | GlobalHookConfigForTracking[GlobalHooksKeys];\n scopeSlug: NonNullable<SiteActivityLog['scope']>;\n identifier: string;\n};\n\nexport const logBuilderManager = async (params: LogBuilderManager) => {\n const operation = extractOperation(params)
|
|
1
|
+
{"version":3,"sources":["../../../../src/core/log-builders/logBuilderManager/logBuilderManager.ts"],"sourcesContent":["import { emitEvent } from '../../events/emitter.js';\nimport type { PluginConfig } from '../../../types/config.js';\nimport { handleDebugMode } from '../helpers/handleDebugMode.js';\nimport type { SiteActivityLog } from '../../../collections/siteActivity.js';\nimport { extractOperation } from '../helpers/extractOperation/extractOperation.js';\nimport { checkIsOperationEnabled } from '../helpers/isOperationEnabled/isOperationEnabled.js';\nimport type { GlobalHookConfigForTracking, GlobalHooksArgsParameterUnion, GlobalHooksKeys, GlobalOperationLogConfig } from '../../../types/global.js';\nimport type { CollectionHooksArgsParameterUnion, CollectionHooksKeys, CollectionOperationLogConfig, CollectionsHookConfigForTracking } from '../../../types/collection.js';\n\nexport type LogBuilderManager = {\n hookArgs: CollectionHooksArgsParameterUnion | GlobalHooksArgsParameterUnion;\n pluginConfig: PluginConfig;\n targetHookName: CollectionHooksKeys;\n targetHookLevelConfig: CollectionsHookConfigForTracking[CollectionHooksKeys] | GlobalHookConfigForTracking[GlobalHooksKeys];\n scopeSlug: NonNullable<SiteActivityLog['scope']>;\n identifier: string;\n};\n\nexport const logBuilderManager = async (params: LogBuilderManager) => {\n const operation = extractOperation(params);\n\n // @ts-expect-error\n const hookOperationLevelConfig = params\n .targetHookLevelConfig?.[operation] as CollectionOperationLogConfig | GlobalOperationLogConfig | undefined;\n const hookLevelConfig = typeof params.targetHookLevelConfig === 'boolean'\n ? undefined\n : params.targetHookLevelConfig;\n const isOperationEnabled = checkIsOperationEnabled({\n hookLevelConfig: params.targetHookLevelConfig,\n hookOperationLevelConfig,\n });\n\n const baseLog: SiteActivityLog = {\n scope: params.scopeSlug,\n hook: params.targetHookName,\n identifier: params.identifier,\n operation,\n timestamp: new Date(),\n // @ts-expect-error\n userAgent: params.hookArgs.req.headers?.get?.('user-agent') || 'unknown',\n };\n\n if (isOperationEnabled) {\n const { hook, operation, ...otherLogData } = baseLog;\n const customLogData = {\n ...baseLog,\n ...(await hookLevelConfig?.customLogger?.(\n // @ts-expect-error\n params.hookArgs,\n otherLogData,\n )),\n ...(await hookOperationLevelConfig?.customLogger?.(\n // @ts-expect-error\n params.hookArgs,\n otherLogData,\n )),\n hook,\n operation,\n } as SiteActivityLog;\n\n const skipToDatabase = hookLevelConfig?.debug === true\n || hookLevelConfig?.debug?.skipDatabaseSave\n || hookOperationLevelConfig?.debug === true\n || hookOperationLevelConfig?.debug?.skipDatabaseSave;\n\n if (!skipToDatabase) {\n emitEvent<SiteActivityLog>('logGenerated', customLogData);\n }\n\n handleDebugMode({\n logData: customLogData,\n hookLevelConfig: params.targetHookLevelConfig,\n hookName: params.targetHookName,\n operation,\n // @ts-expect-error\n operationLevelConfig: hookOperationLevelConfig,\n });\n }\n};\n"],"names":["emitEvent","handleDebugMode","extractOperation","checkIsOperationEnabled","logBuilderManager","params","operation","hookOperationLevelConfig","targetHookLevelConfig","hookLevelConfig","undefined","isOperationEnabled","baseLog","scope","scopeSlug","hook","targetHookName","identifier","timestamp","Date","userAgent","hookArgs","req","headers","get","otherLogData","customLogData","customLogger","skipToDatabase","debug","skipDatabaseSave","logData","hookName","operationLevelConfig"],"mappings":"AAAA,SAASA,SAAS,QAAQ,0BAA0B;AAEpD,SAASC,eAAe,QAAQ,gCAAgC;AAEhE,SAASC,gBAAgB,QAAQ,kDAAkD;AACnF,SAASC,uBAAuB,QAAQ,sDAAsD;AAa9F,OAAO,MAAMC,oBAAoB,OAAOC;IACtC,MAAMC,YAAYJ,iBAAiBG;IAEnC,mBAAmB;IACnB,MAAME,2BAA2BF,OAC9BG,qBAAqB,EAAE,CAACF,UAAU;IACrC,MAAMG,kBAAkB,OAAOJ,OAAOG,qBAAqB,KAAK,YAC5DE,YACAL,OAAOG,qBAAqB;IAChC,MAAMG,qBAAqBR,wBAAwB;QACjDM,iBAAiBJ,OAAOG,qBAAqB;QAC7CD;IACF;IAEA,MAAMK,UAA2B;QAC/BC,OAAOR,OAAOS,SAAS;QACvBC,MAAMV,OAAOW,cAAc;QAC3BC,YAAYZ,OAAOY,UAAU;QAC7BX;QACAY,WAAW,IAAIC;QACf,mBAAmB;QACnBC,WAAWf,OAAOgB,QAAQ,CAACC,GAAG,CAACC,OAAO,EAAEC,MAAM,iBAAiB;IACjE;IAEA,IAAIb,oBAAoB;QACtB,MAAM,EAAEI,IAAI,EAAET,SAAS,EAAE,GAAGmB,cAAc,GAAGb;QAC7C,MAAMc,gBAAgB;YACpB,GAAGd,OAAO;YACV,GAAI,MAAMH,iBAAiBkB,eACzB,mBAAmB;YACnBtB,OAAOgB,QAAQ,EACfI,aACD;YACD,GAAI,MAAMlB,0BAA0BoB,eAClC,mBAAmB;YACnBtB,OAAOgB,QAAQ,EACfI,aACD;YACDV;YACAT;QACF;QAEA,MAAMsB,iBAAiBnB,iBAAiBoB,UAAU,QAC7CpB,iBAAiBoB,OAAOC,oBACxBvB,0BAA0BsB,UAAU,QACpCtB,0BAA0BsB,OAAOC;QAEtC,IAAI,CAACF,gBAAgB;YACnB5B,UAA2B,gBAAgB0B;QAC7C;QAEAzB,gBAAgB;YACd8B,SAASL;YACTjB,iBAAiBJ,OAAOG,qBAAqB;YAC7CwB,UAAU3B,OAAOW,cAAc;YAC/BV;YACA,mBAAmB;YACnB2B,sBAAsB1B;QACxB;IACF;AACF,EAAE"}
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugin.ts"],"sourcesContent":["import type { Config, Plugin } from 'payload';\n\nimport type { PluginConfig } from './types/config.js';\nimport { onInitManager } from './pluginUtils/configHelpers.js';\nimport { cleanupLogsTask } from './core/automation/tasks/cleanup/cleanup.js';\nimport { SiteActivityCollection } from './collections/SiteActivityCollection.js';\nimport { attachGlobalConfig } from './pluginUtils/attachGlobalConfig/attachGlobalConfig.js';\nimport { attachCollectionConfig } from './pluginUtils/attachCollectionConfig/attachCollectionConfig.js';\n\nexport const siteActivity = (\n pluginConfig: PluginConfig = {},\n): Plugin => {\n return async (payloadConfig: Config): Promise<Config> => {\n const config = { ...payloadConfig };\n\n const configuredCollection = pluginConfig.configureRootCollection?.(SiteActivityCollection
|
|
1
|
+
{"version":3,"sources":["../src/plugin.ts"],"sourcesContent":["import type { Config, Plugin } from 'payload';\n\nimport type { PluginConfig } from './types/config.js';\nimport { onInitManager } from './pluginUtils/configHelpers.js';\nimport { cleanupLogsTask } from './core/automation/tasks/cleanup/cleanup.js';\nimport { SiteActivityCollection } from './collections/SiteActivityCollection.js';\nimport { attachGlobalConfig } from './pluginUtils/attachGlobalConfig/attachGlobalConfig.js';\nimport { attachCollectionConfig } from './pluginUtils/attachCollectionConfig/attachCollectionConfig.js';\n\nexport const siteActivity = (\n pluginConfig: PluginConfig = {},\n): Plugin => {\n return async (payloadConfig: Config): Promise<Config> => {\n const config = { ...payloadConfig };\n\n const configuredCollection = pluginConfig.configureRootCollection?.(SiteActivityCollection) ?? SiteActivityCollection;\n\n const hasSiteActivityCollection = config.collections?.some(\n c => c.slug === configuredCollection.slug || c.slug === 'auditor-logs' || c.slug === 'Audit-log',\n );\n\n if (!hasSiteActivityCollection) {\n config.collections = [\n ...(config.collections ?? []),\n configuredCollection,\n ];\n }\n\n if (pluginConfig.disabled === true) {\n return config;\n }\n\n config.collections = attachCollectionConfig(config.collections, pluginConfig, config);\n config.globals = attachGlobalConfig(config.globals, pluginConfig, config);\n\n config.jobs = {\n ...config.jobs,\n tasks: [\n ...(config.jobs?.tasks ?? []),\n cleanupLogsTask({\n pluginConfig,\n internalCollectionConfig: configuredCollection,\n }),\n ],\n };\n\n config.onInit = onInitManager({\n payloadConfig: config,\n internalCollectionConfig: configuredCollection,\n pluginConfig,\n });\n\n return config;\n };\n};\n\nexport const siteActivityPlugin = siteActivity;\nexport const payloadLoggsPlugin = siteActivity;\n\nexport default siteActivity;\n"],"names":["onInitManager","cleanupLogsTask","SiteActivityCollection","attachGlobalConfig","attachCollectionConfig","siteActivity","pluginConfig","payloadConfig","config","configuredCollection","configureRootCollection","hasSiteActivityCollection","collections","some","c","slug","disabled","globals","jobs","tasks","internalCollectionConfig","onInit","siteActivityPlugin","payloadLoggsPlugin"],"mappings":"AAGA,SAASA,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,eAAe,QAAQ,6CAA6C;AAC7E,SAASC,sBAAsB,QAAQ,0CAA0C;AACjF,SAASC,kBAAkB,QAAQ,yDAAyD;AAC5F,SAASC,sBAAsB,QAAQ,iEAAiE;AAExG,OAAO,MAAMC,eAAe,CAC1BC,eAA6B,CAAC,CAAC;IAE/B,OAAO,OAAOC;QACZ,MAAMC,SAAS;YAAE,GAAGD,aAAa;QAAC;QAElC,MAAME,uBAAuBH,aAAaI,uBAAuB,GAAGR,2BAA2BA;QAE/F,MAAMS,4BAA4BH,OAAOI,WAAW,EAAEC,KACpDC,CAAAA,IAAKA,EAAEC,IAAI,KAAKN,qBAAqBM,IAAI,IAAID,EAAEC,IAAI,KAAK,kBAAkBD,EAAEC,IAAI,KAAK;QAGvF,IAAI,CAACJ,2BAA2B;YAC9BH,OAAOI,WAAW,GAAG;mBACfJ,OAAOI,WAAW,IAAI,EAAE;gBAC5BH;aACD;QACH;QAEA,IAAIH,aAAaU,QAAQ,KAAK,MAAM;YAClC,OAAOR;QACT;QAEAA,OAAOI,WAAW,GAAGR,uBAAuBI,OAAOI,WAAW,EAAEN,cAAcE;QAC9EA,OAAOS,OAAO,GAAGd,mBAAmBK,OAAOS,OAAO,EAAEX,cAAcE;QAElEA,OAAOU,IAAI,GAAG;YACZ,GAAGV,OAAOU,IAAI;YACdC,OAAO;mBACDX,OAAOU,IAAI,EAAEC,SAAS,EAAE;gBAC5BlB,gBAAgB;oBACdK;oBACAc,0BAA0BX;gBAC5B;aACD;QACH;QAEAD,OAAOa,MAAM,GAAGrB,cAAc;YAC5BO,eAAeC;YACfY,0BAA0BX;YAC1BH;QACF;QAEA,OAAOE;IACT;AACF,EAAE;AAEF,OAAO,MAAMc,qBAAqBjB,aAAa;AAC/C,OAAO,MAAMkB,qBAAqBlB,aAAa;AAE/C,eAAeA,aAAa"}
|
|
@@ -56,8 +56,9 @@ export const attachCollectionConfig = (userCollections, pluginOpts, payloadConfi
|
|
|
56
56
|
if (typedHookName === 'afterChange' || typedHookName === 'afterDelete' || typedHookName === 'afterLogin' || typedHookName === 'afterLogout' || typedHookName === 'beforeRead' || typedHookName === 'afterRead' || typedHookName === 'beforeValidate') {
|
|
57
57
|
continue;
|
|
58
58
|
}
|
|
59
|
-
const
|
|
60
|
-
|
|
59
|
+
const hooksObj = updatedCollection.hooks;
|
|
60
|
+
const existingHooks = hooksObj[typedHookName] || [];
|
|
61
|
+
hooksObj[typedHookName] = [
|
|
61
62
|
...existingHooks,
|
|
62
63
|
async (args)=>logBuilderManager({
|
|
63
64
|
scopeSlug: 'collection',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/pluginUtils/attachCollectionConfig/attachCollectionConfig.ts"],"sourcesContent":["import type { Config } from 'payload';\n\nimport type { PluginConfig } from '../../types/config.js';\nimport
|
|
1
|
+
{"version":3,"sources":["../../../src/pluginUtils/attachCollectionConfig/attachCollectionConfig.ts"],"sourcesContent":["import type { Config } from 'payload';\n\nimport type { PluginConfig } from '../../types/config.js';\nimport { SITE_ACTIVITY_SLUG } from '../../collections/SiteActivityCollection.js';\nimport { logBuilderManager } from '../../core/log-builders/logBuilderManager/logBuilderManager.js';\nimport type { CollectionHooksArgsParameterUnion, CollectionHooksKeys } from '../../types/collection.js';\nimport {\n createCollectionAfterChangeHook,\n createCollectionAfterDeleteHook,\n createCollectionAfterLoginHook,\n createCollectionAfterLogoutHook,\n} from '../../hooks/collectionHooks.js';\n\nexport const attachCollectionConfig = (\n userCollections: Config['collections'],\n pluginOpts: PluginConfig,\n payloadConfig: Config,\n): Config['collections'] => {\n if (!userCollections || !Array.isArray(userCollections)) {\n return userCollections;\n }\n\n const collectionsTrackConfig = pluginOpts.collections;\n const isZeroConfig = !collectionsTrackConfig || !collectionsTrackConfig.track;\n const trackedList = collectionsTrackConfig?.track ?? [];\n\n return userCollections.map((collection) => {\n // Never attach auditor hooks to the site-activity collection itself to prevent infinite loops\n if (collection.slug === SITE_ACTIVITY_SLUG || collection.slug === 'auditor-logs' || collection.slug === 'Audit-log') {\n return collection;\n }\n\n const trackedConfig = trackedList.find(tc => tc.slug === collection.slug);\n const shouldTrack = isZeroConfig || Boolean(trackedConfig);\n\n if (!shouldTrack) {\n return collection;\n }\n\n const updatedCollection = { ...collection };\n updatedCollection.hooks = { ...updatedCollection.hooks };\n\n // Attach high-level activity feed hooks\n const afterChangeHook = createCollectionAfterChangeHook(updatedCollection, payloadConfig, pluginOpts);\n const afterDeleteHook = createCollectionAfterDeleteHook(updatedCollection, payloadConfig, pluginOpts);\n\n updatedCollection.hooks.afterChange = [\n ...(updatedCollection.hooks.afterChange || []),\n afterChangeHook,\n ];\n\n updatedCollection.hooks.afterDelete = [\n ...(updatedCollection.hooks.afterDelete || []),\n afterDeleteHook,\n ];\n\n // Attach auth hooks for auth-enabled collections (e.g. users)\n if (collection.auth) {\n const afterLoginHook = createCollectionAfterLoginHook(updatedCollection, payloadConfig, pluginOpts);\n const afterLogoutHook = createCollectionAfterLogoutHook(updatedCollection, payloadConfig, pluginOpts);\n\n updatedCollection.hooks.afterLogin = [\n ...(updatedCollection.hooks.afterLogin || []),\n afterLoginHook,\n ];\n\n updatedCollection.hooks.afterLogout = [\n ...(updatedCollection.hooks.afterLogout || []),\n afterLogoutHook,\n ];\n }\n\n // Preserve legacy / granular custom hook configs if provided (filtering out read-only hooks)\n if (trackedConfig?.hooks) {\n for (const hookName in trackedConfig.hooks) {\n const typedHookName = hookName as CollectionHooksKeys;\n\n // Skip read operations and hooks already attached\n if (\n typedHookName === 'afterChange'\n || typedHookName === 'afterDelete'\n || typedHookName === 'afterLogin'\n || typedHookName === 'afterLogout'\n || typedHookName === 'beforeRead'\n || typedHookName === 'afterRead'\n || typedHookName === 'beforeValidate'\n ) {\n continue;\n }\n\n const hooksObj = updatedCollection.hooks as Record<string, unknown[] | undefined>;\n const existingHooks = hooksObj[typedHookName] || [];\n hooksObj[typedHookName] = [\n ...existingHooks,\n async (args: CollectionHooksArgsParameterUnion) => logBuilderManager({\n scopeSlug: 'collection',\n hookArgs: args,\n pluginConfig: pluginOpts,\n targetHookLevelConfig: trackedConfig.hooks?.[typedHookName],\n targetHookName: typedHookName,\n identifier: collection.slug,\n }),\n ];\n }\n }\n\n return updatedCollection;\n });\n};\n"],"names":["SITE_ACTIVITY_SLUG","logBuilderManager","createCollectionAfterChangeHook","createCollectionAfterDeleteHook","createCollectionAfterLoginHook","createCollectionAfterLogoutHook","attachCollectionConfig","userCollections","pluginOpts","payloadConfig","Array","isArray","collectionsTrackConfig","collections","isZeroConfig","track","trackedList","map","collection","slug","trackedConfig","find","tc","shouldTrack","Boolean","updatedCollection","hooks","afterChangeHook","afterDeleteHook","afterChange","afterDelete","auth","afterLoginHook","afterLogoutHook","afterLogin","afterLogout","hookName","typedHookName","hooksObj","existingHooks","args","scopeSlug","hookArgs","pluginConfig","targetHookLevelConfig","targetHookName","identifier"],"mappings":"AAGA,SAASA,kBAAkB,QAAQ,8CAA8C;AACjF,SAASC,iBAAiB,QAAQ,iEAAiE;AAEnG,SACEC,+BAA+B,EAC/BC,+BAA+B,EAC/BC,8BAA8B,EAC9BC,+BAA+B,QAC1B,iCAAiC;AAExC,OAAO,MAAMC,yBAAyB,CACpCC,iBACAC,YACAC;IAEA,IAAI,CAACF,mBAAmB,CAACG,MAAMC,OAAO,CAACJ,kBAAkB;QACvD,OAAOA;IACT;IAEA,MAAMK,yBAAyBJ,WAAWK,WAAW;IACrD,MAAMC,eAAe,CAACF,0BAA0B,CAACA,uBAAuBG,KAAK;IAC7E,MAAMC,cAAcJ,wBAAwBG,SAAS,EAAE;IAEvD,OAAOR,gBAAgBU,GAAG,CAAC,CAACC;QAC1B,8FAA8F;QAC9F,IAAIA,WAAWC,IAAI,KAAKnB,sBAAsBkB,WAAWC,IAAI,KAAK,kBAAkBD,WAAWC,IAAI,KAAK,aAAa;YACnH,OAAOD;QACT;QAEA,MAAME,gBAAgBJ,YAAYK,IAAI,CAACC,CAAAA,KAAMA,GAAGH,IAAI,KAAKD,WAAWC,IAAI;QACxE,MAAMI,cAAcT,gBAAgBU,QAAQJ;QAE5C,IAAI,CAACG,aAAa;YAChB,OAAOL;QACT;QAEA,MAAMO,oBAAoB;YAAE,GAAGP,UAAU;QAAC;QAC1CO,kBAAkBC,KAAK,GAAG;YAAE,GAAGD,kBAAkBC,KAAK;QAAC;QAEvD,wCAAwC;QACxC,MAAMC,kBAAkBzB,gCAAgCuB,mBAAmBhB,eAAeD;QAC1F,MAAMoB,kBAAkBzB,gCAAgCsB,mBAAmBhB,eAAeD;QAE1FiB,kBAAkBC,KAAK,CAACG,WAAW,GAAG;eAChCJ,kBAAkBC,KAAK,CAACG,WAAW,IAAI,EAAE;YAC7CF;SACD;QAEDF,kBAAkBC,KAAK,CAACI,WAAW,GAAG;eAChCL,kBAAkBC,KAAK,CAACI,WAAW,IAAI,EAAE;YAC7CF;SACD;QAED,8DAA8D;QAC9D,IAAIV,WAAWa,IAAI,EAAE;YACnB,MAAMC,iBAAiB5B,+BAA+BqB,mBAAmBhB,eAAeD;YACxF,MAAMyB,kBAAkB5B,gCAAgCoB,mBAAmBhB,eAAeD;YAE1FiB,kBAAkBC,KAAK,CAACQ,UAAU,GAAG;mBAC/BT,kBAAkBC,KAAK,CAACQ,UAAU,IAAI,EAAE;gBAC5CF;aACD;YAEDP,kBAAkBC,KAAK,CAACS,WAAW,GAAG;mBAChCV,kBAAkBC,KAAK,CAACS,WAAW,IAAI,EAAE;gBAC7CF;aACD;QACH;QAEA,6FAA6F;QAC7F,IAAIb,eAAeM,OAAO;YACxB,IAAK,MAAMU,YAAYhB,cAAcM,KAAK,CAAE;gBAC1C,MAAMW,gBAAgBD;gBAEtB,kDAAkD;gBAClD,IACEC,kBAAkB,iBACfA,kBAAkB,iBAClBA,kBAAkB,gBAClBA,kBAAkB,iBAClBA,kBAAkB,gBAClBA,kBAAkB,eAClBA,kBAAkB,kBACrB;oBACA;gBACF;gBAEA,MAAMC,WAAWb,kBAAkBC,KAAK;gBACxC,MAAMa,gBAAgBD,QAAQ,CAACD,cAAc,IAAI,EAAE;gBACnDC,QAAQ,CAACD,cAAc,GAAG;uBACrBE;oBACH,OAAOC,OAA4CvC,kBAAkB;4BACnEwC,WAAW;4BACXC,UAAUF;4BACVG,cAAcnC;4BACdoC,uBAAuBxB,cAAcM,KAAK,EAAE,CAACW,cAAc;4BAC3DQ,gBAAgBR;4BAChBS,YAAY5B,WAAWC,IAAI;wBAC7B;iBACD;YACH;QACF;QAEA,OAAOM;IACT;AACF,EAAE"}
|
|
@@ -33,8 +33,9 @@ export const attachGlobalConfig = (userGlobals, pluginOpts, payloadConfig)=>{
|
|
|
33
33
|
if (typedHookName === 'afterChange' || typedHookName === 'beforeRead' || typedHookName === 'afterRead' || typedHookName === 'beforeValidate') {
|
|
34
34
|
continue;
|
|
35
35
|
}
|
|
36
|
-
const
|
|
37
|
-
|
|
36
|
+
const hooksObj = updatedGlobal.hooks;
|
|
37
|
+
const existingHooks = hooksObj[typedHookName] || [];
|
|
38
|
+
hooksObj[typedHookName] = [
|
|
38
39
|
...existingHooks,
|
|
39
40
|
async (args)=>logBuilderManager({
|
|
40
41
|
scopeSlug: 'global',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/pluginUtils/attachGlobalConfig/attachGlobalConfig.ts"],"sourcesContent":["import type { Config } from 'payload';\n\nimport type { PluginConfig } from '../../types/config.js';\nimport
|
|
1
|
+
{"version":3,"sources":["../../../src/pluginUtils/attachGlobalConfig/attachGlobalConfig.ts"],"sourcesContent":["import type { Config } from 'payload';\n\nimport type { PluginConfig } from '../../types/config.js';\nimport { createGlobalAfterChangeHook } from '../../hooks/globalHooks.js';\nimport type { GlobalHooksArgsParameterUnion, GlobalHooksKeys } from '../../types/global.js';\nimport { logBuilderManager } from '../../core/log-builders/logBuilderManager/logBuilderManager.js';\n\nexport const attachGlobalConfig = (\n userGlobals: Config['globals'],\n pluginOpts: PluginConfig,\n payloadConfig: Config,\n): Config['globals'] => {\n if (!userGlobals || !Array.isArray(userGlobals)) {\n return userGlobals;\n }\n\n const globalsTrackConfig = pluginOpts.globals;\n const isZeroConfig = !globalsTrackConfig || !globalsTrackConfig.track;\n const trackedList = globalsTrackConfig?.track ?? [];\n\n return userGlobals.map((globalConfig) => {\n const tracked = trackedList.find(tg => tg.slug === globalConfig.slug);\n const shouldTrack = isZeroConfig || Boolean(tracked);\n\n if (!shouldTrack) {\n return globalConfig;\n }\n\n const updatedGlobal = { ...globalConfig };\n updatedGlobal.hooks = { ...updatedGlobal.hooks };\n\n // Attach high-level activity feed hook for global change\n const globalAfterChangeHook = createGlobalAfterChangeHook(updatedGlobal, payloadConfig, pluginOpts);\n\n updatedGlobal.hooks.afterChange = [\n ...(updatedGlobal.hooks.afterChange || []),\n globalAfterChangeHook,\n ];\n\n // Preserve legacy / granular custom hook configs if provided (filtering out read-only hooks)\n if (tracked?.hooks) {\n for (const hookName in tracked.hooks) {\n const typedHookName = hookName as GlobalHooksKeys;\n\n // Skip read operations and afterChange (already attached)\n if (typedHookName === 'afterChange' || typedHookName === 'beforeRead' || typedHookName === 'afterRead' || typedHookName === 'beforeValidate') {\n continue;\n }\n\n const hooksObj = updatedGlobal.hooks as Record<string, unknown[] | undefined>;\n const existingHooks = hooksObj[typedHookName] || [];\n hooksObj[typedHookName] = [\n ...existingHooks,\n async (args: GlobalHooksArgsParameterUnion) => logBuilderManager({\n scopeSlug: 'global',\n hookArgs: args,\n pluginConfig: pluginOpts,\n targetHookLevelConfig: tracked.hooks?.[typedHookName],\n targetHookName: typedHookName,\n identifier: globalConfig.slug,\n }),\n ];\n }\n }\n\n return updatedGlobal;\n });\n};\n"],"names":["createGlobalAfterChangeHook","logBuilderManager","attachGlobalConfig","userGlobals","pluginOpts","payloadConfig","Array","isArray","globalsTrackConfig","globals","isZeroConfig","track","trackedList","map","globalConfig","tracked","find","tg","slug","shouldTrack","Boolean","updatedGlobal","hooks","globalAfterChangeHook","afterChange","hookName","typedHookName","hooksObj","existingHooks","args","scopeSlug","hookArgs","pluginConfig","targetHookLevelConfig","targetHookName","identifier"],"mappings":"AAGA,SAASA,2BAA2B,QAAQ,6BAA6B;AAEzE,SAASC,iBAAiB,QAAQ,iEAAiE;AAEnG,OAAO,MAAMC,qBAAqB,CAChCC,aACAC,YACAC;IAEA,IAAI,CAACF,eAAe,CAACG,MAAMC,OAAO,CAACJ,cAAc;QAC/C,OAAOA;IACT;IAEA,MAAMK,qBAAqBJ,WAAWK,OAAO;IAC7C,MAAMC,eAAe,CAACF,sBAAsB,CAACA,mBAAmBG,KAAK;IACrE,MAAMC,cAAcJ,oBAAoBG,SAAS,EAAE;IAEnD,OAAOR,YAAYU,GAAG,CAAC,CAACC;QACtB,MAAMC,UAAUH,YAAYI,IAAI,CAACC,CAAAA,KAAMA,GAAGC,IAAI,KAAKJ,aAAaI,IAAI;QACpE,MAAMC,cAAcT,gBAAgBU,QAAQL;QAE5C,IAAI,CAACI,aAAa;YAChB,OAAOL;QACT;QAEA,MAAMO,gBAAgB;YAAE,GAAGP,YAAY;QAAC;QACxCO,cAAcC,KAAK,GAAG;YAAE,GAAGD,cAAcC,KAAK;QAAC;QAE/C,yDAAyD;QACzD,MAAMC,wBAAwBvB,4BAA4BqB,eAAehB,eAAeD;QAExFiB,cAAcC,KAAK,CAACE,WAAW,GAAG;eAC5BH,cAAcC,KAAK,CAACE,WAAW,IAAI,EAAE;YACzCD;SACD;QAED,6FAA6F;QAC7F,IAAIR,SAASO,OAAO;YAClB,IAAK,MAAMG,YAAYV,QAAQO,KAAK,CAAE;gBACpC,MAAMI,gBAAgBD;gBAEtB,0DAA0D;gBAC1D,IAAIC,kBAAkB,iBAAiBA,kBAAkB,gBAAgBA,kBAAkB,eAAeA,kBAAkB,kBAAkB;oBAC5I;gBACF;gBAEA,MAAMC,WAAWN,cAAcC,KAAK;gBACpC,MAAMM,gBAAgBD,QAAQ,CAACD,cAAc,IAAI,EAAE;gBACnDC,QAAQ,CAACD,cAAc,GAAG;uBACrBE;oBACH,OAAOC,OAAwC5B,kBAAkB;4BAC/D6B,WAAW;4BACXC,UAAUF;4BACVG,cAAc5B;4BACd6B,uBAAuBlB,QAAQO,KAAK,EAAE,CAACI,cAAc;4BACrDQ,gBAAgBR;4BAChBS,YAAYrB,aAAaI,IAAI;wBAC/B;iBACD;YACH;QACF;QAEA,OAAOG;IACT;AACF,EAAE"}
|
|
@@ -5,6 +5,6 @@ import type { CollectionConfig, GlobalConfig } from 'payload';
|
|
|
5
5
|
*/
|
|
6
6
|
export declare const getCollectionLabel: (entity: CollectionConfig | GlobalConfig | {
|
|
7
7
|
slug: string;
|
|
8
|
-
labels?:
|
|
9
|
-
label?:
|
|
8
|
+
labels?: Record<string, unknown> | string;
|
|
9
|
+
label?: Record<string, unknown> | string;
|
|
10
10
|
}) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/pluginUtils/getCollectionLabel.ts"],"sourcesContent":["import type { CollectionConfig, GlobalConfig } from 'payload';\n\n/**\n * Resolves a human-readable singular label for a collection or global.\n * Defaults to capitalizing the slug if labels are omitted.\n */\nexport const getCollectionLabel = (\n entity: CollectionConfig | GlobalConfig | { slug: string; labels?:
|
|
1
|
+
{"version":3,"sources":["../../src/pluginUtils/getCollectionLabel.ts"],"sourcesContent":["import type { CollectionConfig, GlobalConfig } from 'payload';\n\n/**\n * Resolves a human-readable singular label for a collection or global.\n * Defaults to capitalizing the slug if labels are omitted.\n */\nexport const getCollectionLabel = (\n entity: CollectionConfig | GlobalConfig | { slug: string; labels?: Record<string, unknown> | string; label?: Record<string, unknown> | string },\n): string => {\n if (!entity) {\n return 'Resource';\n }\n\n // Check collection singular label\n if ('labels' in entity && entity.labels) {\n const singular = typeof entity.labels === 'object' ? entity.labels.singular : entity.labels;\n if (typeof singular === 'string' && singular) {\n return singular;\n }\n if (typeof singular === 'object' && singular !== null) {\n const firstVal = Object.values(singular).find(v => typeof v === 'string' && v.trim() !== '');\n if (firstVal && typeof firstVal === 'string') {\n return firstVal;\n }\n }\n }\n\n // Check global label\n if ('label' in entity && entity.label) {\n if (typeof entity.label === 'string' && entity.label) {\n return entity.label;\n }\n if (typeof entity.label === 'object' && entity.label !== null) {\n const firstVal = Object.values(entity.label).find(v => typeof v === 'string' && v.trim() !== '');\n if (firstVal && typeof firstVal === 'string') {\n return firstVal;\n }\n }\n }\n\n // Fallback: capitalize slug\n const slug = entity.slug || '';\n if (!slug) {\n return 'Resource';\n }\n return slug\n .split('-')\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n};\n"],"names":["getCollectionLabel","entity","labels","singular","firstVal","Object","values","find","v","trim","label","slug","split","map","word","charAt","toUpperCase","slice","join"],"mappings":"AAEA;;;CAGC,GACD,OAAO,MAAMA,qBAAqB,CAChCC;IAEA,IAAI,CAACA,QAAQ;QACX,OAAO;IACT;IAEA,kCAAkC;IAClC,IAAI,YAAYA,UAAUA,OAAOC,MAAM,EAAE;QACvC,MAAMC,WAAW,OAAOF,OAAOC,MAAM,KAAK,WAAWD,OAAOC,MAAM,CAACC,QAAQ,GAAGF,OAAOC,MAAM;QAC3F,IAAI,OAAOC,aAAa,YAAYA,UAAU;YAC5C,OAAOA;QACT;QACA,IAAI,OAAOA,aAAa,YAAYA,aAAa,MAAM;YACrD,MAAMC,WAAWC,OAAOC,MAAM,CAACH,UAAUI,IAAI,CAACC,CAAAA,IAAK,OAAOA,MAAM,YAAYA,EAAEC,IAAI,OAAO;YACzF,IAAIL,YAAY,OAAOA,aAAa,UAAU;gBAC5C,OAAOA;YACT;QACF;IACF;IAEA,qBAAqB;IACrB,IAAI,WAAWH,UAAUA,OAAOS,KAAK,EAAE;QACrC,IAAI,OAAOT,OAAOS,KAAK,KAAK,YAAYT,OAAOS,KAAK,EAAE;YACpD,OAAOT,OAAOS,KAAK;QACrB;QACA,IAAI,OAAOT,OAAOS,KAAK,KAAK,YAAYT,OAAOS,KAAK,KAAK,MAAM;YAC7D,MAAMN,WAAWC,OAAOC,MAAM,CAACL,OAAOS,KAAK,EAAEH,IAAI,CAACC,CAAAA,IAAK,OAAOA,MAAM,YAAYA,EAAEC,IAAI,OAAO;YAC7F,IAAIL,YAAY,OAAOA,aAAa,UAAU;gBAC5C,OAAOA;YACT;QACF;IACF;IAEA,4BAA4B;IAC5B,MAAMO,OAAOV,OAAOU,IAAI,IAAI;IAC5B,IAAI,CAACA,MAAM;QACT,OAAO;IACT;IACA,OAAOA,KACJC,KAAK,CAAC,KACNC,GAAG,CAACC,CAAAA,OAAQA,KAAKC,MAAM,CAAC,GAAGC,WAAW,KAAKF,KAAKG,KAAK,CAAC,IACtDC,IAAI,CAAC;AACV,EAAE"}
|
package/dist/types/config.d.ts
CHANGED
|
@@ -2,7 +2,6 @@ import type { CollectionConfig } from 'payload';
|
|
|
2
2
|
import type { GlobalsTrackConfig } from './global.js';
|
|
3
3
|
import type { BufferConfig } from '../core/buffer/types.js';
|
|
4
4
|
import type { CollectionsTrackConfig } from './collection.js';
|
|
5
|
-
import type { siteActivity } from '../collections/siteActivity.js';
|
|
6
5
|
export interface AutomationConfig {
|
|
7
6
|
logCleanup?: {
|
|
8
7
|
/**
|
|
@@ -53,7 +52,7 @@ export interface PluginConfig {
|
|
|
53
52
|
/**
|
|
54
53
|
* @see {@link https://github.com/rushidshinde/payload-loggs#configurerootcollection}
|
|
55
54
|
*/
|
|
56
|
-
configureRootCollection?: (defaults:
|
|
55
|
+
configureRootCollection?: (defaults: CollectionConfig) => CollectionConfig;
|
|
57
56
|
/**
|
|
58
57
|
* @see {@link https://github.com/rushidshinde/payload-loggs#collectionsglobals}
|
|
59
58
|
*/
|
package/dist/types/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/types/config.ts"],"sourcesContent":["import type {\n CollectionConfig,\n} from 'payload';\n\nimport type { GlobalsTrackConfig } from './global.js';\nimport type { BufferConfig } from '../core/buffer/types.js';\nimport type { CollectionsTrackConfig } from './collection.js';\
|
|
1
|
+
{"version":3,"sources":["../../src/types/config.ts"],"sourcesContent":["import type {\n CollectionConfig,\n} from 'payload';\n\nimport type { GlobalsTrackConfig } from './global.js';\nimport type { BufferConfig } from '../core/buffer/types.js';\nimport type { CollectionsTrackConfig } from './collection.js';\n\nexport interface AutomationConfig {\n logCleanup?: {\n /**\n * @default 2592000000 // 30 days\n */\n olderThan?: number;\n /**\n * @default \"payload-loggs-queue\"\n */\n queueName?: string;\n /**\n * The cron for scheduling the job.\n *\n * @default '1 0 * * *' // At 00:01 AM daily\n *\n * @example\n * ┌───────────── (optional) second (0 - 59)\n * │ ┌───────────── minute (0 - 59)\n * │ │ ┌───────────── hour (0 - 23)\n * │ │ │ ┌───────────── day of the month (1 - 31)\n * │ │ │ │ ┌───────────── month (1 - 12)\n * │ │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday)\n * │ │ │ │ │ │\n * │ │ │ │ │ │\n * - '* 0 * * * *' every hour at minute 0\n * - '* 0 0 * * *' daily at midnight\n * - '* 0 0 * * 0' weekly at midnight on Sundays\n * - '* 0 0 1 * *' monthly at midnight on the 1st day of the month\n * - '* 0/5 * * * *' every 5 minutes\n * - '* * * * * *' every second\n */\n cronTime?: string;\n };\n}\n\nexport interface PluginConfig {\n /**\n * @see {@link https://github.com/rushidshinde/payload-loggs#automation}\n */\n automation?: AutomationConfig;\n /**\n * @see {@link https://github.com/rushidshinde/payload-loggs#collectionsglobals}\n */\n collections?: CollectionsTrackConfig;\n\n /**\n * @see {@link https://github.com/rushidshinde/payload-loggs#buffer}\n */\n buffer?: BufferConfig;\n\n /**\n * @see {@link https://github.com/rushidshinde/payload-loggs#configurerootcollection}\n */\n configureRootCollection?: (defaults: CollectionConfig) => CollectionConfig;\n\n /**\n * @see {@link https://github.com/rushidshinde/payload-loggs#collectionsglobals}\n */\n globals?: GlobalsTrackConfig;\n disabled?: boolean;\n}\n"],"names":[],"mappings":"AA2CA,WAyBC"}
|
package/package.json
CHANGED