@things-factory/scheduler 10.0.0-beta.3 → 10.0.0-beta.35

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.
@@ -7,7 +7,7 @@ const scheduler_client_1 = require("@things-factory/scheduler-client");
7
7
  const schedule_type_1 = require("./schedule-type");
8
8
  let ScheduleMutation = class ScheduleMutation {
9
9
  async registerSchedule(schedule) {
10
- var handle = await (0, scheduler_client_1.registerSchedule)(schedule);
10
+ const handle = await (0, scheduler_client_1.registerSchedule)(schedule);
11
11
  return handle;
12
12
  }
13
13
  async updateSchedule(schedule) {
@@ -18,7 +18,7 @@ let ScheduleMutation = class ScheduleMutation {
18
18
  await (0, scheduler_client_1.unregisterSchedule)(handle);
19
19
  }
20
20
  catch (error) {
21
- console.error(error);
21
+ console.error('Failed to unregister schedule:', error);
22
22
  return false;
23
23
  }
24
24
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-mutation.js","sourceRoot":"","sources":["../../../server/service/schedule/schedule-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAqE;AAErE,uEAAuG;AACvG,mDAAsE;AAG/D,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAGrB,AAAN,KAAK,CAAC,gBAAgB,CAAkB,QAAqB;QAC3D,IAAI,MAAM,GAAG,MAAM,IAAA,mCAAgB,EAAC,QAAQ,CAAC,CAAA;QAE7C,OAAO,MAAM,CAAA;IACf,CAAC;IAIK,AAAN,KAAK,CAAC,cAAc,CAAkB,QAAuB;QAC3D,OAAO,MAAM,IAAA,iCAAc,EAAC,QAAQ,CAAC,CAAA;IACvC,CAAC;IAIK,AAAN,KAAK,CAAC,kBAAkB,CAA0B,MAAc;QAC9D,IAAI,CAAC;YACH,MAAM,IAAA,qCAAkB,EAAC,MAAM,CAAC,CAAA;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACpB,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AA3BY,4CAAgB;AAGrB;IAFL,IAAA,wBAAS,EAAC,oCAAoC,CAAC;IAC/C,IAAA,uBAAQ,EAAC,GAAG,EAAE,CAAC,iBAAE,EAAE,EAAE,WAAW,EAAE,qDAAqD,EAAE,CAAC;IACnE,mBAAA,IAAA,kBAAG,EAAC,UAAU,CAAC,CAAA;;6CAAW,2BAAW;;wDAI5D;AAIK;IAFL,IAAA,wBAAS,EAAC,oCAAoC,CAAC;IAC/C,IAAA,uBAAQ,EAAC,GAAG,EAAE,CAAC,iBAAE,EAAE,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;IAC5D,mBAAA,IAAA,kBAAG,EAAC,UAAU,CAAC,CAAA;;6CAAW,6BAAa;;sDAE5D;AAIK;IAFL,IAAA,wBAAS,EAAC,oCAAoC,CAAC;IAC/C,IAAA,uBAAQ,EAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,8DAA8D,EAAE,CAAC;IAC/E,mBAAA,IAAA,kBAAG,EAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,iBAAE,CAAC,CAAA;;;;0DAShD;2BA1BU,gBAAgB;IAD5B,IAAA,uBAAQ,EAAC,wBAAQ,CAAC;GACN,gBAAgB,CA2B5B","sourcesContent":["import { Resolver, Directive, Mutation, Arg, ID } from 'type-graphql'\n\nimport { registerSchedule, updateSchedule, unregisterSchedule } from '@things-factory/scheduler-client'\nimport { Schedule, NewSchedule, SchedulePatch } from './schedule-type'\n\n@Resolver(Schedule)\nexport class ScheduleMutation {\n @Directive('@privilege(superUserGranted: true)')\n @Mutation(() => ID, { description: 'Register a new schedule with the scheduler service.' })\n async registerSchedule(@Arg('schedule') schedule: NewSchedule): Promise<string> {\n var handle = await registerSchedule(schedule)\n\n return handle\n }\n\n @Directive('@privilege(superUserGranted: true)')\n @Mutation(() => ID, { description: 'Update an existing schedule configuration.' })\n async updateSchedule(@Arg('schedule') schedule: SchedulePatch): Promise<string> {\n return await updateSchedule(schedule)\n }\n\n @Directive('@privilege(superUserGranted: true)')\n @Mutation(() => Boolean, { description: 'Unregister and remove a schedule from the scheduler service.' })\n async unregisterSchedule(@Arg('handle', () => ID) handle: string): Promise<boolean> {\n try {\n await unregisterSchedule(handle)\n } catch (error) {\n console.error(error)\n return false\n }\n\n return true\n }\n}\n"]}
1
+ {"version":3,"file":"schedule-mutation.js","sourceRoot":"","sources":["../../../server/service/schedule/schedule-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAqE;AAErE,uEAAuG;AACvG,mDAAsE;AAG/D,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAGrB,AAAN,KAAK,CAAC,gBAAgB,CAAkB,QAAqB;QAC3D,MAAM,MAAM,GAAG,MAAM,IAAA,mCAAgB,EAAC,QAAQ,CAAC,CAAA;QAE/C,OAAO,MAAM,CAAA;IACf,CAAC;IAIK,AAAN,KAAK,CAAC,cAAc,CAAkB,QAAuB;QAC3D,OAAO,MAAM,IAAA,iCAAc,EAAC,QAAQ,CAAC,CAAA;IACvC,CAAC;IAIK,AAAN,KAAK,CAAC,kBAAkB,CAA0B,MAAc;QAC9D,IAAI,CAAC;YACH,MAAM,IAAA,qCAAkB,EAAC,MAAM,CAAC,CAAA;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAA;YACtD,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AA3BY,4CAAgB;AAGrB;IAFL,IAAA,wBAAS,EAAC,oCAAoC,CAAC;IAC/C,IAAA,uBAAQ,EAAC,GAAG,EAAE,CAAC,iBAAE,EAAE,EAAE,WAAW,EAAE,qDAAqD,EAAE,CAAC;IACnE,mBAAA,IAAA,kBAAG,EAAC,UAAU,CAAC,CAAA;;6CAAW,2BAAW;;wDAI5D;AAIK;IAFL,IAAA,wBAAS,EAAC,oCAAoC,CAAC;IAC/C,IAAA,uBAAQ,EAAC,GAAG,EAAE,CAAC,iBAAE,EAAE,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;IAC5D,mBAAA,IAAA,kBAAG,EAAC,UAAU,CAAC,CAAA;;6CAAW,6BAAa;;sDAE5D;AAIK;IAFL,IAAA,wBAAS,EAAC,oCAAoC,CAAC;IAC/C,IAAA,uBAAQ,EAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,8DAA8D,EAAE,CAAC;IAC/E,mBAAA,IAAA,kBAAG,EAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,iBAAE,CAAC,CAAA;;;;0DAShD;2BA1BU,gBAAgB;IAD5B,IAAA,uBAAQ,EAAC,wBAAQ,CAAC;GACN,gBAAgB,CA2B5B","sourcesContent":["import { Resolver, Directive, Mutation, Arg, ID } from 'type-graphql'\n\nimport { registerSchedule, updateSchedule, unregisterSchedule } from '@things-factory/scheduler-client'\nimport { Schedule, NewSchedule, SchedulePatch } from './schedule-type'\n\n@Resolver(Schedule)\nexport class ScheduleMutation {\n @Directive('@privilege(superUserGranted: true)')\n @Mutation(() => ID, { description: 'Register a new schedule with the scheduler service.' })\n async registerSchedule(@Arg('schedule') schedule: NewSchedule): Promise<string> {\n const handle = await registerSchedule(schedule)\n\n return handle\n }\n\n @Directive('@privilege(superUserGranted: true)')\n @Mutation(() => ID, { description: 'Update an existing schedule configuration.' })\n async updateSchedule(@Arg('schedule') schedule: SchedulePatch): Promise<string> {\n return await updateSchedule(schedule)\n }\n\n @Directive('@privilege(superUserGranted: true)')\n @Mutation(() => Boolean, { description: 'Unregister and remove a schedule from the scheduler service.' })\n async unregisterSchedule(@Arg('handle', () => ID) handle: string): Promise<boolean> {\n try {\n await unregisterSchedule(handle)\n } catch (error) {\n console.error('Failed to unregister schedule:', error)\n return false\n }\n\n return true\n }\n}\n"]}
@@ -2,5 +2,5 @@ import { ListParam } from '@things-factory/shell';
2
2
  import { Schedule, ScheduleList } from './schedule-type';
3
3
  export declare class ScheduleQuery {
4
4
  schedule(id: string): Promise<Schedule | null>;
5
- schedules(params: ListParam, context: ResolverContext): Promise<ScheduleList>;
5
+ schedules(params: ListParam): Promise<ScheduleList>;
6
6
  }
@@ -10,15 +10,15 @@ let ScheduleQuery = class ScheduleQuery {
10
10
  async schedule(id) {
11
11
  return await (0, scheduler_client_1.getSchedule)(id);
12
12
  }
13
- async schedules(params, context) {
13
+ async schedules(params) {
14
14
  const filters = params.filters || [];
15
- const name = filters.find(filter => filter.name == 'name')?.value;
16
- const application = filters.find(filter => filter.name == 'application')?.value;
17
- const group = filters.find(filter => filter.name == 'group')?.value;
18
- const type = filters.find(filter => filter.name == 'type')?.value;
19
- const key = filters.find(filter => filter.name == 'key')?.value;
20
- const operation = filters.find(filter => filter.name == 'operation')?.value;
21
- var schedules = await (0, scheduler_client_1.getSchedules)({});
15
+ const name = filters.find(filter => filter.name === 'name')?.value;
16
+ const application = filters.find(filter => filter.name === 'application')?.value;
17
+ const group = filters.find(filter => filter.name === 'group')?.value;
18
+ const type = filters.find(filter => filter.name === 'type')?.value;
19
+ const key = filters.find(filter => filter.name === 'key')?.value;
20
+ const operation = filters.find(filter => filter.name === 'operation')?.value;
21
+ let schedules = await (0, scheduler_client_1.getSchedules)({});
22
22
  if (name) {
23
23
  schedules = schedules.filter(schedule => (schedule.name || '').toLowerCase().includes(name.toLowerCase()));
24
24
  }
@@ -60,9 +60,8 @@ tslib_1.__decorate([
60
60
  description: 'Retrieve a paginated list of schedules with filtering capabilities by name, application, group, type, key, and operation.'
61
61
  }),
62
62
  tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
63
- tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
64
63
  tslib_1.__metadata("design:type", Function),
65
- tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
64
+ tslib_1.__metadata("design:paramtypes", [shell_1.ListParam]),
66
65
  tslib_1.__metadata("design:returntype", Promise)
67
66
  ], ScheduleQuery.prototype, "schedules", null);
68
67
  exports.ScheduleQuery = ScheduleQuery = tslib_1.__decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-query.js","sourceRoot":"","sources":["../../../server/service/schedule/schedule-query.ts"],"names":[],"mappings":";;;;AAAA,+CAA6E;AAC7E,iDAAiD;AAEjD,uEAA4E;AAC5E,mDAAwD;AAGjD,IAAM,aAAa,GAAnB,MAAM,aAAa;IAGlB,AAAN,KAAK,CAAC,QAAQ,CAAsB,EAAU;QAC5C,OAAO,MAAM,IAAA,8BAAW,EAAC,EAAE,CAAC,CAAA;IAC9B,CAAC;IAOK,AAAN,KAAK,CAAC,SAAS,CAA0B,MAAiB,EAAS,OAAwB;QACzF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;QAEpC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,KAAK,CAAA;QAEjE,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,aAAa,CAAC,EAAE,KAAK,CAAA;QAC/E,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,KAAK,CAAA;QACnE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,KAAK,CAAA;QACjE,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,KAAK,CAAA;QAC/D,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,EAAE,KAAK,CAAA;QAE3E,IAAI,SAAS,GAAG,MAAM,IAAA,+BAAY,EAAC,EAAE,CAAC,CAAA;QAEtC,IAAI,IAAI,EAAE,CAAC;YACT,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;QAC5G,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YAChB,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CACtC,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CACvF,CAAA;QACH,CAAC;QACD,IAAI,KAAK,EAAE,CAAC;YACV,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CACtC,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAC3E,CAAA;QACH,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACT,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;QACpH,CAAC;QACD,IAAI,GAAG,EAAE,CAAC;YACR,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;QAClH,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CACtC,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CACnF,CAAA;QACH,CAAC;QAED,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAA;QAExD,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA;QAChC,MAAM,GAAG,GAAG,KAAK,GAAG,KAAK,CAAA;QACzB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACzC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAA;QAE9B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA;AA3DY,sCAAa;AAGlB;IAFL,IAAA,wBAAS,EAAC,oCAAoC,CAAC;IAC/C,IAAA,oBAAK,EAAC,GAAG,EAAE,CAAC,wBAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,sDAAsD,EAAE,CAAC;IAC/F,mBAAA,IAAA,kBAAG,EAAC,IAAI,EAAE,GAAG,EAAE,CAAC,iBAAE,CAAC,CAAA;;;;6CAElC;AAOK;IALL,IAAA,wBAAS,EAAC,oCAAoC,CAAC;IAC/C,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,4BAAY,EAAE;QAC9B,WAAW,EACT,2HAA2H;KAC9H,CAAC;IACe,mBAAA,IAAA,mBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC,CAAA;IAAqB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAAjB,iBAAS;;8CA8CzD;wBA1DU,aAAa;IADzB,IAAA,uBAAQ,EAAC,wBAAQ,CAAC;GACN,aAAa,CA2DzB","sourcesContent":["import { Resolver, Query, Args, Arg, Ctx, Directive, ID } from 'type-graphql'\nimport { ListParam } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { getSchedules, getSchedule } from '@things-factory/scheduler-client'\nimport { Schedule, ScheduleList } from './schedule-type'\n\n@Resolver(Schedule)\nexport class ScheduleQuery {\n @Directive('@privilege(superUserGranted: true)')\n @Query(() => Schedule, { nullable: true, description: 'Retrieve a single schedule by its unique identifier.' })\n async schedule(@Arg('id', () => ID) id: string): Promise<Schedule | null> {\n return await getSchedule(id)\n }\n\n @Directive('@privilege(superUserGranted: true)')\n @Query(returns => ScheduleList, {\n description:\n 'Retrieve a paginated list of schedules with filtering capabilities by name, application, group, type, key, and operation.'\n })\n async schedules(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<ScheduleList> {\n const filters = params.filters || []\n\n const name = filters.find(filter => filter.name == 'name')?.value\n\n const application = filters.find(filter => filter.name == 'application')?.value\n const group = filters.find(filter => filter.name == 'group')?.value\n const type = filters.find(filter => filter.name == 'type')?.value\n const key = filters.find(filter => filter.name == 'key')?.value\n const operation = filters.find(filter => filter.name == 'operation')?.value\n\n var schedules = await getSchedules({})\n\n if (name) {\n schedules = schedules.filter(schedule => (schedule.name || '').toLowerCase().includes(name.toLowerCase()))\n }\n if (application) {\n schedules = schedules.filter(schedule =>\n (schedule.client?.application || '').toLowerCase().includes(application.toLowerCase())\n )\n }\n if (group) {\n schedules = schedules.filter(schedule =>\n (schedule.client?.group || '').toLowerCase().includes(group.toLowerCase())\n )\n }\n if (type) {\n schedules = schedules.filter(schedule => (schedule.client?.type || '').toLowerCase().includes(type.toLowerCase()))\n }\n if (key) {\n schedules = schedules.filter(schedule => (schedule.client?.key || '').toLowerCase().includes(key.toLowerCase()))\n }\n if (operation) {\n schedules = schedules.filter(schedule =>\n (schedule.client?.operation || '').toLowerCase().includes(operation.toLowerCase())\n )\n }\n\n const { page = 1, limit = 20 } = params.pagination || {}\n\n const start = (page - 1) * limit\n const end = start + limit\n const items = schedules.slice(start, end)\n const total = schedules.length\n\n return { items, total }\n }\n}\n"]}
1
+ {"version":3,"file":"schedule-query.js","sourceRoot":"","sources":["../../../server/service/schedule/schedule-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Query, Args, Arg, Directive, ID } from 'type-graphql'\nimport { ListParam } from '@things-factory/shell'\nimport { getSchedules, getSchedule } from '@things-factory/scheduler-client'\nimport { Schedule, ScheduleList } from './schedule-type'\n\n@Resolver(Schedule)\nexport class ScheduleQuery {\n @Directive('@privilege(superUserGranted: true)')\n @Query(() => Schedule, { nullable: true, description: 'Retrieve a single schedule by its unique identifier.' })\n async schedule(@Arg('id', () => ID) id: string): Promise<Schedule | null> {\n return await getSchedule(id)\n }\n\n @Directive('@privilege(superUserGranted: true)')\n @Query(returns => ScheduleList, {\n description:\n 'Retrieve a paginated list of schedules with filtering capabilities by name, application, group, type, key, and operation.'\n })\n async schedules(@Args(type => ListParam) params: ListParam): Promise<ScheduleList> {\n const filters = params.filters || []\n\n const name = filters.find(filter => filter.name === 'name')?.value\n\n const application = filters.find(filter => filter.name === 'application')?.value\n const group = filters.find(filter => filter.name === 'group')?.value\n const type = filters.find(filter => filter.name === 'type')?.value\n const key = filters.find(filter => filter.name === 'key')?.value\n const operation = filters.find(filter => filter.name === 'operation')?.value\n\n let schedules = await getSchedules({})\n\n if (name) {\n schedules = schedules.filter(schedule => (schedule.name || '').toLowerCase().includes(name.toLowerCase()))\n }\n if (application) {\n schedules = schedules.filter(schedule =>\n (schedule.client?.application || '').toLowerCase().includes(application.toLowerCase())\n )\n }\n if (group) {\n schedules = schedules.filter(schedule =>\n (schedule.client?.group || '').toLowerCase().includes(group.toLowerCase())\n )\n }\n if (type) {\n schedules = schedules.filter(schedule => (schedule.client?.type || '').toLowerCase().includes(type.toLowerCase()))\n }\n if (key) {\n schedules = schedules.filter(schedule => (schedule.client?.key || '').toLowerCase().includes(key.toLowerCase()))\n }\n if (operation) {\n schedules = schedules.filter(schedule =>\n (schedule.client?.operation || '').toLowerCase().includes(operation.toLowerCase())\n )\n }\n\n const { page = 1, limit = 20 } = params.pagination || {}\n\n const start = (page - 1) * limit\n const end = start + limit\n const items = schedules.slice(start, end)\n const total = schedules.length\n\n return { items, total }\n }\n}\n"]}