@sapphire/plugin-scheduled-tasks 10.0.4-next.e18dc27 → 10.0.4

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.
Files changed (30) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/cjs/index.cjs +1 -1
  3. package/dist/cjs/index.cjs.map +1 -1
  4. package/dist/cjs/lib/ScheduledTaskHandler.cjs +7 -2
  5. package/dist/cjs/lib/ScheduledTaskHandler.cjs.map +1 -1
  6. package/dist/cjs/lib/structures/ScheduledTask.cjs.map +1 -1
  7. package/dist/cjs/lib/structures/ScheduledTaskStore.cjs.map +1 -1
  8. package/dist/cjs/lib/types/ScheduledTaskEvents.cjs.map +1 -1
  9. package/dist/cjs/listeners/PluginScheduledTaskError.cjs.map +1 -1
  10. package/dist/cjs/listeners/PluginScheduledTaskNotFound.cjs.map +1 -1
  11. package/dist/cjs/listeners/PluginScheduledTaskStrategyClientError.cjs.map +1 -1
  12. package/dist/cjs/listeners/PluginScheduledTaskStrategyConnectError.cjs.map +1 -1
  13. package/dist/cjs/listeners/PluginScheduledTaskStrategyWorkerError.cjs.map +1 -1
  14. package/dist/cjs/listeners/_load.cjs.map +1 -1
  15. package/dist/cjs/register.cjs.map +1 -1
  16. package/dist/esm/index.mjs +1 -1
  17. package/dist/esm/index.mjs.map +1 -1
  18. package/dist/esm/lib/ScheduledTaskHandler.mjs +7 -2
  19. package/dist/esm/lib/ScheduledTaskHandler.mjs.map +1 -1
  20. package/dist/esm/lib/structures/ScheduledTask.mjs.map +1 -1
  21. package/dist/esm/lib/structures/ScheduledTaskStore.mjs.map +1 -1
  22. package/dist/esm/lib/types/ScheduledTaskEvents.mjs.map +1 -1
  23. package/dist/esm/listeners/PluginScheduledTaskError.mjs.map +1 -1
  24. package/dist/esm/listeners/PluginScheduledTaskNotFound.mjs.map +1 -1
  25. package/dist/esm/listeners/PluginScheduledTaskStrategyClientError.mjs.map +1 -1
  26. package/dist/esm/listeners/PluginScheduledTaskStrategyConnectError.mjs.map +1 -1
  27. package/dist/esm/listeners/PluginScheduledTaskStrategyWorkerError.mjs.map +1 -1
  28. package/dist/esm/listeners/_load.mjs.map +1 -1
  29. package/dist/esm/register.mjs.map +1 -1
  30. package/package.json +4 -4
package/CHANGELOG.md CHANGED
@@ -2,6 +2,30 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ # [@sapphire/plugin-scheduled-tasks@10.0.4](https://github.com/sapphiredev/plugins/compare/@sapphire/plugin-scheduled-tasks@10.0.3...@sapphire/plugin-scheduled-tasks@10.0.4) - (2025-09-24)
6
+
7
+ ## 🐛 Bug Fixes
8
+
9
+ - **ScheduledTaskHandler:** Throw task error on run if present ([1753289](https://github.com/sapphiredev/plugins/commit/1753289ea744691116c006bc3687667a6c2d8d7d)) ([#773](https://github.com/sapphiredev/plugins/pull/773) by @DemonWayne)
10
+ - **deps:** Update all non-major dependencies ([e6f8e31](https://github.com/sapphiredev/plugins/commit/e6f8e3115cca722c508899edbf7d02b008a3907f)) ([#772](https://github.com/sapphiredev/plugins/pull/772) by @renovate[bot])
11
+ - **deps:** Update all non-major dependencies ([58d318a](https://github.com/sapphiredev/plugins/commit/58d318a5566f9ee6072b17adb6b4476e2b4fd5c7)) ([#768](https://github.com/sapphiredev/plugins/pull/768) by @renovate[bot])
12
+ - **deps:** Update all non-major dependencies ([8db2053](https://github.com/sapphiredev/plugins/commit/8db2053a156b94574167fbe6f1a74f41cd33b65a)) ([#767](https://github.com/sapphiredev/plugins/pull/767) by @renovate[bot])
13
+ - **deps:** Update all non-major dependencies ([3024e3e](https://github.com/sapphiredev/plugins/commit/3024e3ef4e11bd15ee72ef0d2e55d6158f3e5526)) ([#765](https://github.com/sapphiredev/plugins/pull/765) by @renovate[bot])
14
+ - **deps:** Update all non-major dependencies ([f9d9e4d](https://github.com/sapphiredev/plugins/commit/f9d9e4db412d00f04fc1bd9777d53b421a6e1691)) ([#764](https://github.com/sapphiredev/plugins/pull/764) by @renovate[bot])
15
+ - **deps:** Update all non-major dependencies ([8bfa062](https://github.com/sapphiredev/plugins/commit/8bfa0621ac00351e51a496abb27b836b2e7d5355)) ([#763](https://github.com/sapphiredev/plugins/pull/763) by @renovate[bot])
16
+ - **deps:** Update dependency bullmq to v5.56.8 ([83a86a1](https://github.com/sapphiredev/plugins/commit/83a86a15ec5ad8af750da73ebfb2e879e7e5e793)) ([#762](https://github.com/sapphiredev/plugins/pull/762) by @renovate[bot])
17
+ - **deps:** Update all non-major dependencies ([29d9fa9](https://github.com/sapphiredev/plugins/commit/29d9fa9661c574e8c20483fa0ab501851ad4846b)) ([#761](https://github.com/sapphiredev/plugins/pull/761) by @renovate[bot])
18
+ - **deps:** Update all non-major dependencies ([46b6c27](https://github.com/sapphiredev/plugins/commit/46b6c27f69dd178a62e39883e45af8d1e9c367b6)) ([#760](https://github.com/sapphiredev/plugins/pull/760) by @renovate[bot])
19
+ - **deps:** Update all non-major dependencies ([4c40aed](https://github.com/sapphiredev/plugins/commit/4c40aedfff7d4ba0aeb96cf19335b27ad012858e)) ([#759](https://github.com/sapphiredev/plugins/pull/759) by @renovate[bot])
20
+ - **deps:** Update all non-major dependencies ([276da8c](https://github.com/sapphiredev/plugins/commit/276da8c06afa992133f0f57587575b0e008481e7)) ([#758](https://github.com/sapphiredev/plugins/pull/758) by @renovate[bot])
21
+ - **deps:** Update all non-major dependencies ([4c42df2](https://github.com/sapphiredev/plugins/commit/4c42df2a7ec779aa20b039ead15a7a5e586a2211)) ([#756](https://github.com/sapphiredev/plugins/pull/756) by @renovate[bot])
22
+ - **deps:** Update all non-major dependencies ([ae08934](https://github.com/sapphiredev/plugins/commit/ae089340f9e923b9e1d3a8373d703dfcfaff0183)) ([#754](https://github.com/sapphiredev/plugins/pull/754) by @renovate[bot])
23
+ - **deps:** Update all non-major dependencies ([d23894e](https://github.com/sapphiredev/plugins/commit/d23894e01c8ca84f8ff06b6921cbdc350b668f21)) ([#752](https://github.com/sapphiredev/plugins/pull/752) by @renovate[bot])
24
+ - **deps:** Update all non-major dependencies ([e18dc27](https://github.com/sapphiredev/plugins/commit/e18dc277f008fdb1935c24f549e5347bb3f79872)) ([#750](https://github.com/sapphiredev/plugins/pull/750) by @renovate[bot])
25
+ - **deps:** Update all non-major dependencies ([ae90958](https://github.com/sapphiredev/plugins/commit/ae90958bcead612768260afdb49ac1730f4c9186)) ([#748](https://github.com/sapphiredev/plugins/pull/748) by @renovate[bot])
26
+ - **deps:** Update all non-major dependencies ([0d9024f](https://github.com/sapphiredev/plugins/commit/0d9024f61a8eb43f6af9d3fbaec4a1271f9e919a)) ([#744](https://github.com/sapphiredev/plugins/pull/744) by @renovate[bot])
27
+ - **deps:** Update all non-major dependencies ([5106865](https://github.com/sapphiredev/plugins/commit/5106865eadcdece085cc00003100845d1e3a372a)) ([#742](https://github.com/sapphiredev/plugins/pull/742) by @renovate[bot])
28
+
5
29
  # [@sapphire/plugin-scheduled-tasks@10.0.3](https://github.com/sapphiredev/plugins/compare/@sapphire/plugin-scheduled-tasks@10.0.2...@sapphire/plugin-scheduled-tasks@10.0.3) - (2025-05-12)
6
30
 
7
31
  ## 🐛 Bug Fixes
@@ -7,7 +7,7 @@ var ScheduledTaskEvents_cjs = require('./lib/types/ScheduledTaskEvents.cjs');
7
7
  var _load_cjs = require('./listeners/_load.cjs');
8
8
 
9
9
  // src/index.ts
10
- var version = "10.0.4-next.e18dc27";
10
+ var version = "10.0.4";
11
11
 
12
12
  Object.defineProperty(exports, "loadListeners", {
13
13
  enumerable: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;AAwCO,IAAM,OAAkB,GAAA","file":"index.cjs","sourcesContent":["import type { ScheduledTaskHandler } from './lib/ScheduledTaskHandler';\nimport type { ScheduledTaskStore } from './lib/structures/ScheduledTaskStore';\nimport type { ScheduledTaskHandlerOptions } from './lib/types/ScheduledTaskTypes';\n\nexport * from './lib/ScheduledTaskHandler';\nexport * from './lib/structures/ScheduledTask';\nexport * from './lib/structures/ScheduledTaskStore';\nexport * from './lib/types/ScheduledTaskEvents';\nexport type * from './lib/types/ScheduledTaskTypes';\n\nexport { loadListeners } from './listeners/_load';\n\ndeclare module '@sapphire/pieces' {\n\tinterface Container {\n\t\ttasks: ScheduledTaskHandler;\n\t}\n\n\tinterface StoreRegistryEntries {\n\t\t'scheduled-tasks': ScheduledTaskStore;\n\t}\n}\n\ndeclare module 'discord.js' {\n\texport interface ClientOptions {\n\t\ttasks: ScheduledTaskHandlerOptions;\n\t\t/**\n\t\t * If the the pre-included scheduled task error listeners should be loaded\n\t\t * @default true\n\t\t */\n\t\tloadScheduledTaskErrorListeners?: boolean;\n\t}\n}\n\n/**\n * The [@sapphire/plugin-scheduled-tasks](https://github.com/sapphiredev/plugins/blob/main/packages/scheduled-tasks) version that you are currently using.\n * An example use of this is showing it of in a bot information command.\n *\n * Note to Sapphire developers: This needs to explicitly be `string` so it is not typed as the string that gets replaced by esbuild\n */\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\nexport const version: string = '10.0.4-next.e18dc27';\n"]}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;AAwCO,IAAM,OAAA,GAAkB","file":"index.cjs","sourcesContent":["import type { ScheduledTaskHandler } from './lib/ScheduledTaskHandler';\nimport type { ScheduledTaskStore } from './lib/structures/ScheduledTaskStore';\nimport type { ScheduledTaskHandlerOptions } from './lib/types/ScheduledTaskTypes';\n\nexport * from './lib/ScheduledTaskHandler';\nexport * from './lib/structures/ScheduledTask';\nexport * from './lib/structures/ScheduledTaskStore';\nexport * from './lib/types/ScheduledTaskEvents';\nexport type * from './lib/types/ScheduledTaskTypes';\n\nexport { loadListeners } from './listeners/_load';\n\ndeclare module '@sapphire/pieces' {\n\tinterface Container {\n\t\ttasks: ScheduledTaskHandler;\n\t}\n\n\tinterface StoreRegistryEntries {\n\t\t'scheduled-tasks': ScheduledTaskStore;\n\t}\n}\n\ndeclare module 'discord.js' {\n\texport interface ClientOptions {\n\t\ttasks: ScheduledTaskHandlerOptions;\n\t\t/**\n\t\t * If the the pre-included scheduled task error listeners should be loaded\n\t\t * @default true\n\t\t */\n\t\tloadScheduledTaskErrorListeners?: boolean;\n\t}\n}\n\n/**\n * The [@sapphire/plugin-scheduled-tasks](https://github.com/sapphiredev/plugins/blob/main/packages/scheduled-tasks) version that you are currently using.\n * An example use of this is showing it of in a bot information command.\n *\n * Note to Sapphire developers: This needs to explicitly be `string` so it is not typed as the string that gets replaced by esbuild\n */\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\nexport const version: string = '10.0.4';\n"]}
@@ -183,8 +183,13 @@ var _ScheduledTaskHandler = class _ScheduledTaskHandler {
183
183
  framework.container.client.emit(ScheduledTaskEvents_cjs.ScheduledTaskEvents.ScheduledTaskSuccess, piece, payload, taskRunResult, duration);
184
184
  return duration;
185
185
  });
186
- result.inspectErr((error) => framework.container.client.emit(ScheduledTaskEvents_cjs.ScheduledTaskEvents.ScheduledTaskError, error, piece, payload));
187
- const value = result.unwrapOr(null);
186
+ const value = result.match({
187
+ ok: /* @__PURE__ */ __name((value2) => value2, "ok"),
188
+ err(error) {
189
+ framework.container.client.emit(ScheduledTaskEvents_cjs.ScheduledTaskEvents.ScheduledTaskError, error, piece, payload);
190
+ throw error;
191
+ }
192
+ });
188
193
  framework.container.client.emit(ScheduledTaskEvents_cjs.ScheduledTaskEvents.ScheduledTaskFinished, piece, value, payload);
189
194
  return value;
190
195
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/ScheduledTaskHandler.ts"],"names":["Queue","Worker","isNotConnectionError","container","ScheduledTaskEvents","isNullish","Result","stopwatch","Stopwatch"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAA,OAAA,EAAA,OAAA;AAsBO,IAAM,qBAAA,GAAN,MAAM,qBAAqB,CAAA;AAAA,EAc1B,YAAY,OAAsC,EAAA;AAVzD;AAAA;AAAA;AAAA,IAAgB,aAAA,CAAA,IAAA,EAAA,SAAA,CAAA;AAKhB;AAAA;AAAA;AAAA,IAAgB,aAAA,CAAA,IAAA,EAAA,OAAA,CAAA;AAEhB,IAAA,YAAA,CAAA,IAAA,EAAA,OAAA,CAAA;AACA,IAAA,YAAA,CAAA,IAAA,EAAA,OAAA,CAAA;AAGC,IAAK,IAAA,CAAA,KAAA,GAAQ,QAAQ,KAAS,IAAA,iBAAA;AAC9B,IAAA,IAAA,CAAK,UAAU,OAAQ,CAAA,IAAA;AAEvB,IAAA,YAAA,CAAA,IAAA,EAAK,SAAU,IAAIA,YAAA,CAAM,IAAK,CAAA,KAAA,EAAO,KAAK,OAAO,CAAA,CAAA;AACjD,IAAA,YAAA,CAAA,IAAA,EAAK,SAAU,IAAIC,aAAA;AAAA,MAClB,IAAK,CAAA,KAAA;AAAA;AAAA,MACL,OAAO,GAAQ,KAAA,IAAA,CAAK,GAAI,CAAA,EAAE,IAAM,EAAA,GAAA,CAAI,IAA4B,EAAA,OAAA,EAAS,GAAI,CAAA,IAAA,EAAM,CAAA;AAAA,MACnF,EAAE,UAAA,EAAY,IAAK,CAAA,OAAA,CAAQ,UAAW;AAAA,KACvC,CAAA;AAEA,IAAA,YAAA,CAAA,IAAA,EAAK,OAAQ,CAAA,CAAA,EAAA,CAAG,OAAS,EAAA,CAAC,KAAU,KAAA;AACnC,MAAI,IAAAC,2BAAA,CAAqB,KAAK,CAAG,EAAA;AAChC,QAAAC,mBAAA,CAAU,MAAO,CAAA,IAAA,CAAKC,2CAAoB,CAAA,gCAAA,EAAkC,KAAK,CAAA;AAAA,OAC3E,MAAA;AACN,QAAAD,mBAAA,CAAU,MAAO,CAAA,IAAA,CAAKC,2CAAoB,CAAA,iCAAA,EAAmC,KAAK,CAAA;AAAA;AACnF,KACA,CAAA;AACD,IAAA,YAAA,CAAA,IAAA,EAAK,OAAQ,CAAA,CAAA,EAAA,CAAG,OAAS,EAAA,CAAC,KAAU,KAAA;AACnC,MAAI,IAAAF,2BAAA,CAAqB,KAAK,CAAG,EAAA;AAChC,QAAAC,mBAAA,CAAU,MAAO,CAAA,IAAA,CAAKC,2CAAoB,CAAA,gCAAA,EAAkC,KAAK,CAAA;AAAA,OAC3E,MAAA;AACN,QAAAD,mBAAA,CAAU,MAAO,CAAA,IAAA,CAAKC,2CAAoB,CAAA,iCAAA,EAAmC,KAAK,CAAA;AAAA;AACnF,KACA,CAAA;AAAA;AACF,EAEA,IAAW,MAAqB,GAAA;AAC/B,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA;AAAA;AACb;AAAA;AAAA;AAAA,EAKA,MAAa,KAAuB,GAAA;AACnC,IAAA,MAAM,QAAQ,GAAI,CAAA;AAAA,MACjB,YAAA,CAAA,IAAA,EAAK,SAAQ,KAAM,EAAA;AAAA;AAAA,MACnB,YAAA,CAAA,IAAA,EAAK,SAAQ,KAAM;AAAA,KACnB,CAAA;AAAA;AACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAa,MACZ,CAAA,IAAA,EACA,OACgC,EAAA;AAChC,IAAA,MAAM,EAAE,IAAM,EAAA,QAAA,EAAU,SAAY,GAAA,IAAA,CAAK,YAAY,IAAI,CAAA;AAEzD,IAAI,IAAAC,mBAAA,CAAU,OAAO,CAAG,EAAA;AACvB,MAAA,OAAO,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA,CAAQ,GAAI,CAAA,QAAA,EAAU,OAAO,CAAA;AAAA;AAG1C,IAAI,IAAA,OAAO,YAAY,QAAU,EAAA;AAChC,MAAU,OAAA,GAAA;AAAA,QACT,QAAU,EAAA,KAAA;AAAA,QACV,KAAO,EAAA;AAAA,OACR;AAAA;AAGD,IAAA,MAAM,EAAE,QAAU,EAAA,OAAA,EAAS,UAAU,KAAO,EAAA,gBAAA,EAAkB,UAAa,GAAA,OAAA;AAC3E,IAAA,IAAI,UAA0B,GAAA;AAAA,MAC7B,KAAA;AAAA,MACA,GAAG;AAAA,KACJ;AAEA,IAAA,IAAI,QAAU,EAAA;AACb,MAAa,UAAA,GAAA;AAAA,QACZ,GAAG,UAAA;AAAA,QACH,MAAA,EAAQ,WACL,EAAE,KAAA,EAAO,UACT,GAAA,EAAE,OAAS,EAAA,EAAA,EAAI,QAAS;AAAA,OAC5B;AAAA;AAGD,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA,CAAQ,GAAI,CAAA,QAAA,EAAU,SAAS,UAAU,CAAA;AAAA;AACtD;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAa,eAAe,KAA0D,EAAA;AACrF,IAAA,IAAI,UAAU,MAAW,EAAA;AACxB,MAAA,MAAM,gBAAmD,IAAK,CAAA,KAAA,CAAM,aAAc,CAAA,GAAA,CAAI,CAAC,KAAW,MAAA;AAAA,QACjG,MAAM,KAAM,CAAA,IAAA;AAAA,QACZ,OAAS,EAAA;AAAA,UACR,QAAU,EAAA,IAAA;AAAA,UACV,GAAI,MAAM,QACP,GAAA;AAAA,YACA,UAAU,KAAM,CAAA,QAAA;AAAA,YAChB,kBAAkB,KAAM,CAAA;AAAA,WAExB,GAAA;AAAA,YACA,SAAS,KAAM,CAAA,OAAA;AAAA,YACf,UAAU,KAAM,CAAA,QAAA;AAAA,YAChB,kBAAkB,KAAM,CAAA;AAAA;AACzB;AACH,OACC,CAAA,CAAA;AAEF,MAAQ,KAAA,GAAA,aAAA;AAAA;AAGT,IAAA,KAAA,MAAW,QAAQ,KAAO,EAAA;AACzB,MAAA,MAAM,IAAK,CAAA,MAAA,CAAO,IAAK,CAAA,IAAA,EAAM,KAAK,OAAO,CAAA;AAAA;AAC1C;AACD;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAa,OAAO,EAA2B,EAAA;AAC9C,IAAA,MAAM,GAAO,GAAA,MAAM,IAAK,CAAA,GAAA,CAAI,EAAwB,CAAA;AACpD,IAAA,OAAO,KAAK,MAAO,EAAA;AAAA;AACpB;AAAA;AAAA;AAAA;AAAA;AAAA,EAOO,KAAK,OAA4D,EAAA;AACvE,IAAA,MAAM,EAAE,KAAA,EAAO,KAAO,EAAA,GAAA,EAAK,KAAQ,GAAA,OAAA;AAEnC,IAAA,OAAO,mBAAK,OAAQ,CAAA,CAAA,OAAA,CAAQ,KAAO,EAAA,KAAA,EAAO,KAAK,GAAG,CAAA;AAAA;AACnD;AAAA;AAAA;AAAA;AAAA;AAAA,EAOO,aAAa,OAAyF,EAAA;AAC5G,IAAA,MAAM,EAAE,KAAA,EAAO,GAAK,EAAA,GAAA,EAAQ,GAAA,OAAA;AAE5B,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA,CAAQ,iBAAkB,CAAA,KAAA,EAAO,KAAK,GAAG,CAAA;AAAA;AACtD;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAa,IAAkC,EAA2D,EAAA;AACzG,IAAA,MAAM,GAAM,GAAA,MAAM,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA,CAAQ,OAAO,EAAE,CAAA;AACxC,IAAI,IAAAA,mBAAA,CAAU,GAAG,CAAA,EAAU,OAAA,MAAA;AAE3B,IAAO,OAAA,GAAA;AAAA;AACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAa,IAAI,IAAoE,EAAA;AACpF,IAAA,MAAM,EAAE,IAAM,EAAA,QAAA,EAAU,SAAY,GAAA,IAAA,CAAK,YAAY,IAAI,CAAA;AACzD,IAAA,MAAM,KAAQ,GAAA,IAAA,CAAK,KAAM,CAAA,GAAA,CAAI,KAAK,IAAI,CAAA;AAEtC,IAAA,IAAI,CAAC,KAAO,EAAA;AACX,MAAAF,mBAAA,CAAU,MAAO,CAAA,IAAA,CAAKC,2CAAoB,CAAA,qBAAA,EAAuB,UAAU,OAAO,CAAA;AAElF,MAAO,OAAA,MAAA;AAAA;AAGR,IAAA,MAAM,MAAS,GAAA,MAAME,gBAAO,CAAA,SAAA,CAAU,YAAY;AACjD,MAAAH,mBAAA,CAAU,MAAO,CAAA,IAAA,CAAKC,2CAAoB,CAAA,gBAAA,EAAkB,OAAO,OAAO,CAAA;AAE1E,MAAM,MAAAG,WAAA,GAAY,IAAIC,mBAAU,EAAA;AAChC,MAAA,MAAM,aAAgB,GAAA,MAAM,KAAM,CAAA,GAAA,CAAI,OAAO,CAAA;AAC7C,MAAA,MAAM,EAAE,QAAA,EAAa,GAAAD,WAAA,CAAU,IAAK,EAAA;AAEpC,MAAAJ,mBAAA,CAAU,OAAO,IAAK,CAAAC,2CAAA,CAAoB,sBAAsB,KAAO,EAAA,OAAA,EAAS,eAAe,QAAQ,CAAA;AAEvG,MAAO,OAAA,QAAA;AAAA,KACP,CAAA;AAED,IAAO,MAAA,CAAA,UAAA,CAAW,CAAC,KAAA,KAAUD,mBAAU,CAAA,MAAA,CAAO,IAAK,CAAAC,2CAAA,CAAoB,kBAAoB,EAAA,KAAA,EAAO,KAAO,EAAA,OAAO,CAAC,CAAA;AAEjH,IAAM,MAAA,KAAA,GAAQ,MAAO,CAAA,QAAA,CAAS,IAAI,CAAA;AAElC,IAAAD,mBAAA,CAAU,OAAO,IAAK,CAAAC,2CAAA,CAAoB,qBAAuB,EAAA,KAAA,EAAO,OAAO,OAAO,CAAA;AAEtF,IAAO,OAAA,KAAA;AAAA;AACR,EAEA,IAAY,KAA4B,GAAA;AACvC,IAAA,OAAOD,mBAAU,CAAA,MAAA,CAAO,MAAO,CAAA,GAAA,CAAI,iBAAiB,CAAA;AAAA;AACrD,EAEQ,YAAY,IAAiE,EAAA;AACpF,IAAI,IAAA,OAAO,SAAS,QAAU,EAAA;AAC7B,MAAA,OAAO,EAAE,IAAA,EAAM,IAAM,EAAA,OAAA,EAAS,MAAU,EAAA;AAAA;AAGzC,IAAA,IAAI,aAAa,IAAM,EAAA;AACtB,MAAA,OAAO,EAAE,IAAM,EAAA,IAAA,CAAK,IAAM,EAAA,OAAA,EAAS,KAAK,OAAQ,EAAA;AAAA;AAGjD,IAAA,OAAO,EAAE,IAAA,EAAM,IAAK,CAAA,IAAA,EAAM,SAAS,MAAU,EAAA;AAAA;AAE/C,CAAA;AAtNC,OAAA,GAAA,IAAA,OAAA,EAAA;AACA,OAAA,GAAA,IAAA,OAAA,EAAA;AAZiC,MAAA,CAAA,qBAAA,EAAA,sBAAA,CAAA;AAA3B,IAAM,oBAAN,GAAA","file":"ScheduledTaskHandler.cjs","sourcesContent":["import { container, Result } from '@sapphire/framework';\nimport { Stopwatch } from '@sapphire/stopwatch';\nimport { Job, Queue, Worker, type JobsOptions, type QueueOptions, isNotConnectionError } from 'bullmq';\nimport type { ScheduledTaskStore } from './structures/ScheduledTaskStore';\nimport { ScheduledTaskEvents } from './types/ScheduledTaskEvents';\nimport type {\n\tBullClient,\n\tScheduledTaskCreateRepeatedTask,\n\tScheduledTaskHandlerOptions,\n\tScheduledTaskListOptions,\n\tScheduledTaskListRepeatedOptions,\n\tScheduledTaskListRepeatedReturnType,\n\tScheduledTasksResolvable,\n\tScheduledTasksKeys,\n\tScheduledTasksTaskOptions,\n\tScheduledTasksKeysNoPayload,\n\tScheduledTasksJob,\n\tScheduledTasksResolvablePayload,\n\tScheduledTasksPayload\n} from './types/ScheduledTaskTypes';\nimport { isNullish } from '@sapphire/utilities';\n\nexport class ScheduledTaskHandler {\n\t/**\n\t * The queue options for the scheduled task handler.\n\t */\n\tpublic readonly options: QueueOptions;\n\n\t/**\n\t * The name of the queue associated with the scheduled task handler.\n\t */\n\tpublic readonly queue: string;\n\n\t#client: BullClient;\n\t#worker: Worker;\n\n\tpublic constructor(options: ScheduledTaskHandlerOptions) {\n\t\tthis.queue = options.queue ?? 'scheduled-tasks';\n\t\tthis.options = options.bull;\n\n\t\tthis.#client = new Queue(this.queue, this.options);\n\t\tthis.#worker = new Worker(\n\t\t\tthis.queue, //\n\t\t\tasync (job) => this.run({ name: job.name as ScheduledTasksKeys, payload: job.data }),\n\t\t\t{ connection: this.options.connection }\n\t\t);\n\n\t\tthis.#client.on('error', (error) => {\n\t\t\tif (isNotConnectionError(error)) {\n\t\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskStrategyClientError, error);\n\t\t\t} else {\n\t\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskStrategyConnectError, error);\n\t\t\t}\n\t\t});\n\t\tthis.#worker.on('error', (error) => {\n\t\t\tif (isNotConnectionError(error)) {\n\t\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskStrategyWorkerError, error);\n\t\t\t} else {\n\t\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskStrategyConnectError, error);\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic get client(): BullClient {\n\t\treturn this.#client;\n\t}\n\n\t/**\n\t * Closes the internal client and worker.\n\t */\n\tpublic async close(): Promise<void> {\n\t\tawait Promise.all([\n\t\t\tthis.#client.close(), //\n\t\t\tthis.#worker.close()\n\t\t]);\n\t}\n\n\t/**\n\t * Creates a scheduled task.\n\t *\n\t * @param task - The task to be scheduled.\n\t * @param options - The options for the task.\n\t */\n\tpublic async create<T extends ScheduledTasksResolvable>(\n\t\ttask: T, //\n\t\toptions?: ScheduledTasksTaskOptions | number\n\t): Promise<ScheduledTasksJob<T>> {\n\t\tconst { name: taskName, payload } = this.resolveTask(task);\n\n\t\tif (isNullish(options)) {\n\t\t\treturn this.#client.add(taskName, payload) as Promise<ScheduledTasksJob<T>>;\n\t\t}\n\n\t\tif (typeof options === 'number') {\n\t\t\toptions = {\n\t\t\t\trepeated: false,\n\t\t\t\tdelay: options\n\t\t\t};\n\t\t}\n\n\t\tconst { repeated, pattern, interval, delay, customJobOptions, timezone } = options;\n\t\tlet jobOptions: JobsOptions = {\n\t\t\tdelay,\n\t\t\t...customJobOptions\n\t\t};\n\n\t\tif (repeated) {\n\t\t\tjobOptions = {\n\t\t\t\t...jobOptions,\n\t\t\t\trepeat: interval //\n\t\t\t\t\t? { every: interval }\n\t\t\t\t\t: { pattern, tz: timezone }\n\t\t\t};\n\t\t}\n\n\t\treturn this.#client.add(taskName, payload, jobOptions) as Promise<ScheduledTasksJob<T>>;\n\t}\n\n\t/**\n\t * Creates repeated tasks.\n\t *\n\t * @param tasks - An optional array of tasks to create. If not provided, it will create tasks based on the stored repeated tasks.\n\t */\n\tpublic async createRepeated(tasks?: ScheduledTaskCreateRepeatedTask[]): Promise<void> {\n\t\tif (tasks === undefined) {\n\t\t\tconst repeatedTasks: ScheduledTaskCreateRepeatedTask[] = this.store.repeatedTasks.map((piece) => ({\n\t\t\t\tname: piece.name as ScheduledTasksKeysNoPayload,\n\t\t\t\toptions: {\n\t\t\t\t\trepeated: true,\n\t\t\t\t\t...(piece.interval\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tinterval: piece.interval,\n\t\t\t\t\t\t\t\tcustomJobOptions: piece.customJobOptions\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tpattern: piece.pattern!,\n\t\t\t\t\t\t\t\ttimezone: piece.timezone,\n\t\t\t\t\t\t\t\tcustomJobOptions: piece.customJobOptions\n\t\t\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}));\n\n\t\t\ttasks = repeatedTasks;\n\t\t}\n\n\t\tfor (const task of tasks) {\n\t\t\tawait this.create(task.name, task.options);\n\t\t}\n\t}\n\n\t/**\n\t * Deletes a scheduled task by its ID.\n\t *\n\t * @param id - The ID of the task to delete.\n\t */\n\tpublic async delete(id: string): Promise<void> {\n\t\tconst job = (await this.get(id as ScheduledTasksKeys)) as unknown as Job<unknown> | undefined;\n\t\treturn job?.remove();\n\t}\n\n\t/**\n\t * Retrieves a list of scheduled tasks based on the provided options.\n\t *\n\t * @param options - The options for filtering the list of scheduled tasks.\n\t */\n\tpublic list(options: ScheduledTaskListOptions): Promise<Job<unknown>[]> {\n\t\tconst { types, start, end, asc } = options;\n\n\t\treturn this.#client.getJobs(types, start, end, asc);\n\t}\n\n\t/**\n\t * Retrieves a list of repeated scheduled tasks based on the provided options.\n\t *\n\t * @param options - The options for filtering the list of repeated scheduled tasks.\n\t */\n\tpublic listRepeated(options: ScheduledTaskListRepeatedOptions): Promise<ScheduledTaskListRepeatedReturnType> {\n\t\tconst { start, end, asc } = options;\n\n\t\treturn this.#client.getRepeatableJobs(start, end, asc);\n\t}\n\n\t/**\n\t * Retrieves a scheduled task by its ID.\n\t *\n\t * @param id - The ID of the scheduled task to retrieve.\n\t */\n\tpublic async get<T extends ScheduledTasksKeys>(id: T): Promise<Job<ScheduledTasksPayload<T>> | undefined> {\n\t\tconst job = await this.#client.getJob(id);\n\t\tif (isNullish(job)) return undefined;\n\n\t\treturn job as Job<ScheduledTasksPayload<T>>;\n\t}\n\n\t/**\n\t * Runs a scheduled task with the given name and payload.\n\t *\n\t * @param task - The name of the scheduled task to run.\n\t *\n\t * @remarks `undefined` will be returned if the task was not found.\n\t */\n\tpublic async run(task: ScheduledTasksResolvable): Promise<number | null | undefined> {\n\t\tconst { name: taskName, payload } = this.resolveTask(task);\n\t\tconst piece = this.store.get(task.name);\n\n\t\tif (!piece) {\n\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskNotFound, taskName, payload);\n\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst result = await Result.fromAsync(async () => {\n\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskRun, piece, payload);\n\n\t\t\tconst stopwatch = new Stopwatch();\n\t\t\tconst taskRunResult = await piece.run(payload);\n\t\t\tconst { duration } = stopwatch.stop();\n\n\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskSuccess, piece, payload, taskRunResult, duration);\n\n\t\t\treturn duration;\n\t\t});\n\n\t\tresult.inspectErr((error) => container.client.emit(ScheduledTaskEvents.ScheduledTaskError, error, piece, payload));\n\n\t\tconst value = result.unwrapOr(null);\n\n\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskFinished, piece, value, payload);\n\n\t\treturn value;\n\t}\n\n\tprivate get store(): ScheduledTaskStore {\n\t\treturn container.client.stores.get('scheduled-tasks');\n\t}\n\n\tprivate resolveTask(task: ScheduledTasksResolvable): ScheduledTasksResolvablePayload {\n\t\tif (typeof task === 'string') {\n\t\t\treturn { name: task, payload: undefined };\n\t\t}\n\n\t\tif ('payload' in task) {\n\t\t\treturn { name: task.name, payload: task.payload };\n\t\t}\n\n\t\treturn { name: task.name, payload: undefined };\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/lib/ScheduledTaskHandler.ts"],"names":["Queue","Worker","isNotConnectionError","container","ScheduledTaskEvents","isNullish","Result","stopwatch","Stopwatch","value"],"mappings":"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","file":"ScheduledTaskHandler.cjs","sourcesContent":["import { container, Result } from '@sapphire/framework';\nimport { Stopwatch } from '@sapphire/stopwatch';\nimport { Job, Queue, Worker, type JobsOptions, type QueueOptions, isNotConnectionError } from 'bullmq';\nimport type { ScheduledTaskStore } from './structures/ScheduledTaskStore';\nimport { ScheduledTaskEvents } from './types/ScheduledTaskEvents';\nimport type {\n\tBullClient,\n\tScheduledTaskCreateRepeatedTask,\n\tScheduledTaskHandlerOptions,\n\tScheduledTaskListOptions,\n\tScheduledTaskListRepeatedOptions,\n\tScheduledTaskListRepeatedReturnType,\n\tScheduledTasksResolvable,\n\tScheduledTasksKeys,\n\tScheduledTasksTaskOptions,\n\tScheduledTasksKeysNoPayload,\n\tScheduledTasksJob,\n\tScheduledTasksResolvablePayload,\n\tScheduledTasksPayload\n} from './types/ScheduledTaskTypes';\nimport { isNullish } from '@sapphire/utilities';\n\nexport class ScheduledTaskHandler {\n\t/**\n\t * The queue options for the scheduled task handler.\n\t */\n\tpublic readonly options: QueueOptions;\n\n\t/**\n\t * The name of the queue associated with the scheduled task handler.\n\t */\n\tpublic readonly queue: string;\n\n\t#client: BullClient;\n\t#worker: Worker;\n\n\tpublic constructor(options: ScheduledTaskHandlerOptions) {\n\t\tthis.queue = options.queue ?? 'scheduled-tasks';\n\t\tthis.options = options.bull;\n\n\t\tthis.#client = new Queue(this.queue, this.options);\n\t\tthis.#worker = new Worker(\n\t\t\tthis.queue, //\n\t\t\tasync (job) => this.run({ name: job.name as ScheduledTasksKeys, payload: job.data }),\n\t\t\t{ connection: this.options.connection }\n\t\t);\n\n\t\tthis.#client.on('error', (error) => {\n\t\t\tif (isNotConnectionError(error)) {\n\t\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskStrategyClientError, error);\n\t\t\t} else {\n\t\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskStrategyConnectError, error);\n\t\t\t}\n\t\t});\n\t\tthis.#worker.on('error', (error) => {\n\t\t\tif (isNotConnectionError(error)) {\n\t\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskStrategyWorkerError, error);\n\t\t\t} else {\n\t\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskStrategyConnectError, error);\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic get client(): BullClient {\n\t\treturn this.#client;\n\t}\n\n\t/**\n\t * Closes the internal client and worker.\n\t */\n\tpublic async close(): Promise<void> {\n\t\tawait Promise.all([\n\t\t\tthis.#client.close(), //\n\t\t\tthis.#worker.close()\n\t\t]);\n\t}\n\n\t/**\n\t * Creates a scheduled task.\n\t *\n\t * @param task - The task to be scheduled.\n\t * @param options - The options for the task.\n\t */\n\tpublic async create<T extends ScheduledTasksResolvable>(\n\t\ttask: T, //\n\t\toptions?: ScheduledTasksTaskOptions | number\n\t): Promise<ScheduledTasksJob<T>> {\n\t\tconst { name: taskName, payload } = this.resolveTask(task);\n\n\t\tif (isNullish(options)) {\n\t\t\treturn this.#client.add(taskName, payload) as Promise<ScheduledTasksJob<T>>;\n\t\t}\n\n\t\tif (typeof options === 'number') {\n\t\t\toptions = {\n\t\t\t\trepeated: false,\n\t\t\t\tdelay: options\n\t\t\t};\n\t\t}\n\n\t\tconst { repeated, pattern, interval, delay, customJobOptions, timezone } = options;\n\t\tlet jobOptions: JobsOptions = {\n\t\t\tdelay,\n\t\t\t...customJobOptions\n\t\t};\n\n\t\tif (repeated) {\n\t\t\tjobOptions = {\n\t\t\t\t...jobOptions,\n\t\t\t\trepeat: interval //\n\t\t\t\t\t? { every: interval }\n\t\t\t\t\t: { pattern, tz: timezone }\n\t\t\t};\n\t\t}\n\n\t\treturn this.#client.add(taskName, payload, jobOptions) as Promise<ScheduledTasksJob<T>>;\n\t}\n\n\t/**\n\t * Creates repeated tasks.\n\t *\n\t * @param tasks - An optional array of tasks to create. If not provided, it will create tasks based on the stored repeated tasks.\n\t */\n\tpublic async createRepeated(tasks?: ScheduledTaskCreateRepeatedTask[]): Promise<void> {\n\t\tif (tasks === undefined) {\n\t\t\tconst repeatedTasks: ScheduledTaskCreateRepeatedTask[] = this.store.repeatedTasks.map((piece) => ({\n\t\t\t\tname: piece.name as ScheduledTasksKeysNoPayload,\n\t\t\t\toptions: {\n\t\t\t\t\trepeated: true,\n\t\t\t\t\t...(piece.interval\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tinterval: piece.interval,\n\t\t\t\t\t\t\t\tcustomJobOptions: piece.customJobOptions\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tpattern: piece.pattern!,\n\t\t\t\t\t\t\t\ttimezone: piece.timezone,\n\t\t\t\t\t\t\t\tcustomJobOptions: piece.customJobOptions\n\t\t\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}));\n\n\t\t\ttasks = repeatedTasks;\n\t\t}\n\n\t\tfor (const task of tasks) {\n\t\t\tawait this.create(task.name, task.options);\n\t\t}\n\t}\n\n\t/**\n\t * Deletes a scheduled task by its ID.\n\t *\n\t * @param id - The ID of the task to delete.\n\t */\n\tpublic async delete(id: string): Promise<void> {\n\t\tconst job = (await this.get(id as ScheduledTasksKeys)) as unknown as Job<unknown> | undefined;\n\t\treturn job?.remove();\n\t}\n\n\t/**\n\t * Retrieves a list of scheduled tasks based on the provided options.\n\t *\n\t * @param options - The options for filtering the list of scheduled tasks.\n\t */\n\tpublic list(options: ScheduledTaskListOptions): Promise<Job<unknown>[]> {\n\t\tconst { types, start, end, asc } = options;\n\n\t\treturn this.#client.getJobs(types, start, end, asc);\n\t}\n\n\t/**\n\t * Retrieves a list of repeated scheduled tasks based on the provided options.\n\t *\n\t * @param options - The options for filtering the list of repeated scheduled tasks.\n\t */\n\tpublic listRepeated(options: ScheduledTaskListRepeatedOptions): Promise<ScheduledTaskListRepeatedReturnType> {\n\t\tconst { start, end, asc } = options;\n\n\t\treturn this.#client.getRepeatableJobs(start, end, asc);\n\t}\n\n\t/**\n\t * Retrieves a scheduled task by its ID.\n\t *\n\t * @param id - The ID of the scheduled task to retrieve.\n\t */\n\tpublic async get<T extends ScheduledTasksKeys>(id: T): Promise<Job<ScheduledTasksPayload<T>> | undefined> {\n\t\tconst job = await this.#client.getJob(id);\n\t\tif (isNullish(job)) return undefined;\n\n\t\treturn job as Job<ScheduledTasksPayload<T>>;\n\t}\n\n\t/**\n\t * Runs a scheduled task with the given name and payload.\n\t *\n\t * @param task - The name of the scheduled task to run.\n\t *\n\t * @remarks `undefined` will be returned if the task was not found.\n\t */\n\tpublic async run(task: ScheduledTasksResolvable): Promise<number | null | undefined> {\n\t\tconst { name: taskName, payload } = this.resolveTask(task);\n\t\tconst piece = this.store.get(task.name);\n\n\t\tif (!piece) {\n\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskNotFound, taskName, payload);\n\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst result = await Result.fromAsync(async () => {\n\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskRun, piece, payload);\n\n\t\t\tconst stopwatch = new Stopwatch();\n\t\t\tconst taskRunResult = await piece.run(payload);\n\t\t\tconst { duration } = stopwatch.stop();\n\n\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskSuccess, piece, payload, taskRunResult, duration);\n\n\t\t\treturn duration;\n\t\t});\n\n\t\tconst value = result.match({\n\t\t\tok: (value) => value,\n\t\t\terr(error) {\n\t\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskError, error, piece, payload);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t});\n\n\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskFinished, piece, value, payload);\n\n\t\treturn value;\n\t}\n\n\tprivate get store(): ScheduledTaskStore {\n\t\treturn container.client.stores.get('scheduled-tasks');\n\t}\n\n\tprivate resolveTask(task: ScheduledTasksResolvable): ScheduledTasksResolvablePayload {\n\t\tif (typeof task === 'string') {\n\t\t\treturn { name: task, payload: undefined };\n\t\t}\n\n\t\tif ('payload' in task) {\n\t\t\treturn { name: task.name, payload: task.payload };\n\t\t}\n\n\t\treturn { name: task.name, payload: undefined };\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/structures/ScheduledTask.ts"],"names":["Piece"],"mappings":";;;;;;;;AASO,IAAe,cAAA,GAAf,MAAe,cAAA,SAGZA,YAAkC,CAAA;AAAA,EAMpC,WAAA,CAAY,SAAsC,OAA+B,EAAA;AACvF,IAAA,KAAA,CAAM,SAAS,OAAO,CAAA;AANvB,IAAgB,aAAA,CAAA,IAAA,EAAA,UAAA,CAAA;AAChB,IAAgB,aAAA,CAAA,IAAA,EAAA,SAAA,CAAA;AAChB,IAAgB,aAAA,CAAA,IAAA,EAAA,UAAA,CAAA;AAChB,IAAgB,aAAA,CAAA,IAAA,EAAA,kBAAA,CAAA;AAIf,IAAK,IAAA,CAAA,QAAA,GAAW,QAAQ,QAAY,IAAA,IAAA;AACpC,IAAK,IAAA,CAAA,OAAA,GAAU,QAAQ,OAAW,IAAA,IAAA;AAClC,IAAA,IAAA,CAAK,mBAAmB,OAAQ,CAAA,gBAAA;AAChC,IAAK,IAAA,CAAA,QAAA,GAAW,QAAQ,QAAY,IAAA,KAAA;AAAA;AAItC,CAAA;AAf4C,MAAA,CAAA,cAAA,EAAA,eAAA,CAAA;AAHrC,IAAe,aAAf,GAAA","file":"ScheduledTask.cjs","sourcesContent":["import { Piece } from '@sapphire/pieces';\nimport type { Awaitable } from '@sapphire/utilities';\nimport type { JobsOptions } from 'bullmq';\nimport type { ScheduledTasksKeys, ScheduledTasksPayload } from '../types/ScheduledTaskTypes';\n\n/**\n * Represents a scheduled task that can be run at a specified interval or pattern.\n * @abstract\n */\nexport abstract class ScheduledTask<\n\tTask extends ScheduledTasksKeys = ScheduledTasksKeys, //\n\tOptions extends ScheduledTask.Options = ScheduledTask.Options\n> extends Piece<Options, 'scheduled-tasks'> {\n\tpublic readonly interval: number | null;\n\tpublic readonly pattern: string | null;\n\tpublic readonly timezone: string;\n\tpublic readonly customJobOptions?: ScheduledTaskCustomJobOptions;\n\n\tpublic constructor(context: ScheduledTask.LoaderContext, options: ScheduledTaskOptions) {\n\t\tsuper(context, options);\n\t\tthis.interval = options.interval ?? null;\n\t\tthis.pattern = options.pattern ?? null;\n\t\tthis.customJobOptions = options.customJobOptions;\n\t\tthis.timezone = options.timezone ?? 'UTC';\n\t}\n\n\tpublic abstract run(payload: ScheduledTasksPayload<Task>): Awaitable<unknown>;\n}\n\n/**\n * Options for configuring a scheduled task.\n */\nexport interface ScheduledTaskOptions extends Piece.Options {\n\t/**\n\t * The interval (in milliseconds) at which the task should run.\n\t */\n\tinterval?: number | null;\n\t/**\n\t * A cron pattern specifying when the task should run.\n\t */\n\tpattern?: string | null;\n\t/**\n\t * Custom options to pass to the job scheduler.\n\t */\n\tcustomJobOptions?: ScheduledTaskCustomJobOptions;\n\n\t/**\n\t * The timezone to use for the task.\n\t * @default 'UTC'\n\t */\n\ttimezone?: string | null;\n}\n\n/**\n * Custom options for a job in a scheduled task.\n */\nexport type ScheduledTaskCustomJobOptions = Omit<JobsOptions, 'repeat'>;\n\n/**\n * The namespace for {@link ScheduledTask}.\n */\nexport namespace ScheduledTask {\n\t/**\n\t * The options for a {@link ScheduledTask}.\n\t */\n\texport type Options = ScheduledTaskOptions;\n\n\t/**\n\t * The context for a {@link ScheduledTask}.\n\t * @deprecated Use {@linkcode LoaderContext} instead.\n\t */\n\texport type Context = LoaderContext;\n\texport type LoaderContext = Piece.LoaderContext<'scheduled-tasks'>;\n\texport type JSON = Piece.JSON;\n\texport type LocationJSON = Piece.LocationJSON;\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/lib/structures/ScheduledTask.ts"],"names":["Piece"],"mappings":";;;;;;;;AASO,IAAe,cAAA,GAAf,MAAe,cAAA,SAGZA,YAAA,CAAkC;AAAA,EAMpC,WAAA,CAAY,SAAsC,OAAA,EAA+B;AACvF,IAAA,KAAA,CAAM,SAAS,OAAO,CAAA;AANvB,IAAA,aAAA,CAAA,IAAA,EAAgB,UAAA,CAAA;AAChB,IAAA,aAAA,CAAA,IAAA,EAAgB,SAAA,CAAA;AAChB,IAAA,aAAA,CAAA,IAAA,EAAgB,UAAA,CAAA;AAChB,IAAA,aAAA,CAAA,IAAA,EAAgB,kBAAA,CAAA;AAIf,IAAA,IAAA,CAAK,QAAA,GAAW,QAAQ,QAAA,IAAY,IAAA;AACpC,IAAA,IAAA,CAAK,OAAA,GAAU,QAAQ,OAAA,IAAW,IAAA;AAClC,IAAA,IAAA,CAAK,mBAAmB,OAAA,CAAQ,gBAAA;AAChC,IAAA,IAAA,CAAK,QAAA,GAAW,QAAQ,QAAA,IAAY,KAAA;AAAA,EACrC;AAGD,CAAA;AAf4C,MAAA,CAAA,cAAA,EAAA,eAAA,CAAA;AAHrC,IAAe,aAAA,GAAf","file":"ScheduledTask.cjs","sourcesContent":["import { Piece } from '@sapphire/pieces';\nimport type { Awaitable } from '@sapphire/utilities';\nimport type { JobsOptions } from 'bullmq';\nimport type { ScheduledTasksKeys, ScheduledTasksPayload } from '../types/ScheduledTaskTypes';\n\n/**\n * Represents a scheduled task that can be run at a specified interval or pattern.\n * @abstract\n */\nexport abstract class ScheduledTask<\n\tTask extends ScheduledTasksKeys = ScheduledTasksKeys, //\n\tOptions extends ScheduledTask.Options = ScheduledTask.Options\n> extends Piece<Options, 'scheduled-tasks'> {\n\tpublic readonly interval: number | null;\n\tpublic readonly pattern: string | null;\n\tpublic readonly timezone: string;\n\tpublic readonly customJobOptions?: ScheduledTaskCustomJobOptions;\n\n\tpublic constructor(context: ScheduledTask.LoaderContext, options: ScheduledTaskOptions) {\n\t\tsuper(context, options);\n\t\tthis.interval = options.interval ?? null;\n\t\tthis.pattern = options.pattern ?? null;\n\t\tthis.customJobOptions = options.customJobOptions;\n\t\tthis.timezone = options.timezone ?? 'UTC';\n\t}\n\n\tpublic abstract run(payload: ScheduledTasksPayload<Task>): Awaitable<unknown>;\n}\n\n/**\n * Options for configuring a scheduled task.\n */\nexport interface ScheduledTaskOptions extends Piece.Options {\n\t/**\n\t * The interval (in milliseconds) at which the task should run.\n\t */\n\tinterval?: number | null;\n\t/**\n\t * A cron pattern specifying when the task should run.\n\t */\n\tpattern?: string | null;\n\t/**\n\t * Custom options to pass to the job scheduler.\n\t */\n\tcustomJobOptions?: ScheduledTaskCustomJobOptions;\n\n\t/**\n\t * The timezone to use for the task.\n\t * @default 'UTC'\n\t */\n\ttimezone?: string | null;\n}\n\n/**\n * Custom options for a job in a scheduled task.\n */\nexport type ScheduledTaskCustomJobOptions = Omit<JobsOptions, 'repeat'>;\n\n/**\n * The namespace for {@link ScheduledTask}.\n */\nexport namespace ScheduledTask {\n\t/**\n\t * The options for a {@link ScheduledTask}.\n\t */\n\texport type Options = ScheduledTaskOptions;\n\n\t/**\n\t * The context for a {@link ScheduledTask}.\n\t * @deprecated Use {@linkcode LoaderContext} instead.\n\t */\n\texport type Context = LoaderContext;\n\texport type LoaderContext = Piece.LoaderContext<'scheduled-tasks'>;\n\texport type JSON = Piece.JSON;\n\texport type LocationJSON = Piece.LocationJSON;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/structures/ScheduledTaskStore.ts"],"names":["Store","ScheduledTask"],"mappings":";;;;;;;;;AAMO,IAAM,mBAAA,GAAN,MAAM,mBAAA,SAA2BA,YAAwC,CAAA;AAAA,EAGxE,WAAc,GAAA;AACpB,IAAA,KAAA,CAAMC,+BAAe,EAAA,EAAE,IAAM,EAAA,iBAAA,EAAmB,CAAA;AAHjD,IAAA,aAAA,CAAA,IAAA,EAAgB,iBAAiC,EAAC,CAAA;AAAA;AAIlD,EAEgB,GAAA,CAAI,KAAa,KAA4B,EAAA;AAC5D,IAAA,IAAI,KAAM,CAAA,QAAA,KAAa,IAAQ,IAAA,KAAA,CAAM,YAAY,IAAM,EAAA;AACtD,MAAK,IAAA,CAAA,aAAA,CAAc,KAAK,KAAK,CAAA;AAAA;AAG9B,IAAO,OAAA,KAAA,CAAM,GAAI,CAAA,GAAA,EAAK,KAAK,CAAA;AAAA;AAC5B,EAEgB,OAAO,GAAsB,EAAA;AAC5C,IAAM,MAAA,KAAA,GAAQ,KAAK,aAAc,CAAA,SAAA,CAAU,CAAC,IAAS,KAAA,IAAA,CAAK,SAAS,GAAG,CAAA;AAGtE,IAAA,IAAI,UAAU,EAAI,EAAA,IAAA,CAAK,aAAc,CAAA,MAAA,CAAO,OAAO,CAAC,CAAA;AAEpD,IAAO,OAAA,KAAA,CAAM,OAAO,GAAG,CAAA;AAAA;AACxB,EAEgB,KAAc,GAAA;AAC7B,IAAA,IAAA,CAAK,cAAc,MAAS,GAAA,CAAA;AAC5B,IAAA,OAAO,MAAM,KAAM,EAAA;AAAA;AAErB,CAAA;AA5BgF,MAAA,CAAA,mBAAA,EAAA,oBAAA,CAAA;AAAzE,IAAM,kBAAN,GAAA","file":"ScheduledTaskStore.cjs","sourcesContent":["import { Store } from '@sapphire/pieces';\nimport { ScheduledTask } from './ScheduledTask';\n\n/**\n * A store for managing scheduled tasks.\n */\nexport class ScheduledTaskStore extends Store<ScheduledTask, 'scheduled-tasks'> {\n\tpublic readonly repeatedTasks: ScheduledTask[] = [];\n\n\tpublic constructor() {\n\t\tsuper(ScheduledTask, { name: 'scheduled-tasks' });\n\t}\n\n\tpublic override set(key: string, value: ScheduledTask): this {\n\t\tif (value.interval !== null || value.pattern !== null) {\n\t\t\tthis.repeatedTasks.push(value);\n\t\t}\n\n\t\treturn super.set(key, value);\n\t}\n\n\tpublic override delete(key: string): boolean {\n\t\tconst index = this.repeatedTasks.findIndex((task) => task.name === key);\n\n\t\t// If the scheduled task was found, remove it\n\t\tif (index !== -1) this.repeatedTasks.splice(index, 1);\n\n\t\treturn super.delete(key);\n\t}\n\n\tpublic override clear(): void {\n\t\tthis.repeatedTasks.length = 0;\n\t\treturn super.clear();\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/lib/structures/ScheduledTaskStore.ts"],"names":["Store","ScheduledTask"],"mappings":";;;;;;;;;AAMO,IAAM,mBAAA,GAAN,MAAM,mBAAA,SAA2BA,YAAA,CAAwC;AAAA,EAGxE,WAAA,GAAc;AACpB,IAAA,KAAA,CAAMC,+BAAA,EAAe,EAAE,IAAA,EAAM,iBAAA,EAAmB,CAAA;AAHjD,IAAA,aAAA,CAAA,IAAA,EAAgB,iBAAiC,EAAC,CAAA;AAAA,EAIlD;AAAA,EAEgB,GAAA,CAAI,KAAa,KAAA,EAA4B;AAC5D,IAAA,IAAI,KAAA,CAAM,QAAA,KAAa,IAAA,IAAQ,KAAA,CAAM,YAAY,IAAA,EAAM;AACtD,MAAA,IAAA,CAAK,aAAA,CAAc,KAAK,KAAK,CAAA;AAAA,IAC9B;AAEA,IAAA,OAAO,KAAA,CAAM,GAAA,CAAI,GAAA,EAAK,KAAK,CAAA;AAAA,EAC5B;AAAA,EAEgB,OAAO,GAAA,EAAsB;AAC5C,IAAA,MAAM,KAAA,GAAQ,KAAK,aAAA,CAAc,SAAA,CAAU,CAAC,IAAA,KAAS,IAAA,CAAK,SAAS,GAAG,CAAA;AAGtE,IAAA,IAAI,UAAU,EAAA,EAAI,IAAA,CAAK,aAAA,CAAc,MAAA,CAAO,OAAO,CAAC,CAAA;AAEpD,IAAA,OAAO,KAAA,CAAM,OAAO,GAAG,CAAA;AAAA,EACxB;AAAA,EAEgB,KAAA,GAAc;AAC7B,IAAA,IAAA,CAAK,cAAc,MAAA,GAAS,CAAA;AAC5B,IAAA,OAAO,MAAM,KAAA,EAAM;AAAA,EACpB;AACD,CAAA;AA5BgF,MAAA,CAAA,mBAAA,EAAA,oBAAA,CAAA;AAAzE,IAAM,kBAAA,GAAN","file":"ScheduledTaskStore.cjs","sourcesContent":["import { Store } from '@sapphire/pieces';\nimport { ScheduledTask } from './ScheduledTask';\n\n/**\n * A store for managing scheduled tasks.\n */\nexport class ScheduledTaskStore extends Store<ScheduledTask, 'scheduled-tasks'> {\n\tpublic readonly repeatedTasks: ScheduledTask[] = [];\n\n\tpublic constructor() {\n\t\tsuper(ScheduledTask, { name: 'scheduled-tasks' });\n\t}\n\n\tpublic override set(key: string, value: ScheduledTask): this {\n\t\tif (value.interval !== null || value.pattern !== null) {\n\t\t\tthis.repeatedTasks.push(value);\n\t\t}\n\n\t\treturn super.set(key, value);\n\t}\n\n\tpublic override delete(key: string): boolean {\n\t\tconst index = this.repeatedTasks.findIndex((task) => task.name === key);\n\n\t\t// If the scheduled task was found, remove it\n\t\tif (index !== -1) this.repeatedTasks.splice(index, 1);\n\n\t\treturn super.delete(key);\n\t}\n\n\tpublic override clear(): void {\n\t\tthis.repeatedTasks.length = 0;\n\t\treturn super.clear();\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/types/ScheduledTaskEvents.ts"],"names":[],"mappings":";;;;;AAMO,IAAM,mBAAsB,GAAA;AAAA;AAAA;AAAA;AAAA,EAIlC,qBAAuB,EAAA,uBAAA;AAAA;AAAA;AAAA;AAAA,EAIvB,gBAAkB,EAAA,kBAAA;AAAA;AAAA;AAAA;AAAA,EAIlB,kBAAoB,EAAA,oBAAA;AAAA;AAAA;AAAA;AAAA,EAIpB,oBAAsB,EAAA,sBAAA;AAAA;AAAA;AAAA;AAAA,EAItB,qBAAuB,EAAA,uBAAA;AAAA;AAAA;AAAA;AAAA,EAIvB,iCAAmC,EAAA,mCAAA;AAAA;AAAA;AAAA;AAAA,EAInC,gCAAkC,EAAA,kCAAA;AAAA;AAAA;AAAA;AAAA,EAIlC,gCAAkC,EAAA;AACnC","file":"ScheduledTaskEvents.cjs","sourcesContent":["import { ScheduledTask } from '../structures/ScheduledTask';\n\n/**\n * Events emitted during the process setting up the scheduler and running a task.\n * You can use these events to trace the progress for debugging purposes.\n */\nexport const ScheduledTaskEvents = {\n\t/**\n\t * Event that is emitted if a task piece is not found in the store\n\t */\n\tScheduledTaskNotFound: 'scheduledTaskNotFound' as const,\n\t/**\n\t * Event that is emitted before a task's \"run\" method is called\n\t */\n\tScheduledTaskRun: 'scheduledTaskRun' as const,\n\t/**\n\t * Event that is emitted when a task's \"run\" method throws an error\n\t */\n\tScheduledTaskError: 'scheduledTaskError' as const,\n\t/**\n\t * Event that is emitted when a tasks's \"run\" method is successful\n\t */\n\tScheduledTaskSuccess: 'scheduledTaskSuccess' as const,\n\t/**\n\t * Event that is emitted when a task's \"run\" method finishes, regardless of whether an error occurred or not\n\t */\n\tScheduledTaskFinished: 'scheduledTaskFinished' as const,\n\t/**\n\t * Event that is emitted when the scheduler fails to connect to the server (i.e. redis)\n\t */\n\tScheduledTaskStrategyConnectError: 'scheduledTaskStrategyConnectError' as const,\n\t/**\n\t * Event that is emitted when the scheduled task client encounters an error.\n\t */\n\tScheduledTaskStrategyClientError: 'scheduledTaskStrategyClientError' as const,\n\t/**\n\t * Event that is emitted when the scheduled task worker encounters an error.\n\t */\n\tScheduledTaskStrategyWorkerError: 'scheduledTaskStrategyWorkerError' as const\n};\n\ndeclare module 'discord.js' {\n\tinterface ClientEvents {\n\t\t[ScheduledTaskEvents.ScheduledTaskNotFound]: [\n\t\t\ttask: string, //\n\t\t\tpayload: unknown\n\t\t];\n\t\t[ScheduledTaskEvents.ScheduledTaskRun]: [\n\t\t\ttask: ScheduledTask, //\n\t\t\tpayload: unknown\n\t\t];\n\t\t[ScheduledTaskEvents.ScheduledTaskError]: [\n\t\t\terror: unknown, //\n\t\t\ttask: ScheduledTask,\n\t\t\tpayload: unknown\n\t\t];\n\t\t[ScheduledTaskEvents.ScheduledTaskSuccess]: [\n\t\t\ttask: ScheduledTask, //\n\t\t\tpayload: unknown,\n\t\t\tresult: unknown,\n\t\t\tduration: number\n\t\t];\n\t\t[ScheduledTaskEvents.ScheduledTaskFinished]: [\n\t\t\ttask: ScheduledTask, //\n\t\t\tduration: number | null,\n\t\t\tpayload: unknown\n\t\t];\n\t\t[ScheduledTaskEvents.ScheduledTaskStrategyConnectError]: [error: unknown];\n\t\t[ScheduledTaskEvents.ScheduledTaskStrategyClientError]: [error: unknown];\n\t\t[ScheduledTaskEvents.ScheduledTaskStrategyWorkerError]: [error: unknown];\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/lib/types/ScheduledTaskEvents.ts"],"names":[],"mappings":";;;;;AAMO,IAAM,mBAAA,GAAsB;AAAA;AAAA;AAAA;AAAA,EAIlC,qBAAA,EAAuB,uBAAA;AAAA;AAAA;AAAA;AAAA,EAIvB,gBAAA,EAAkB,kBAAA;AAAA;AAAA;AAAA;AAAA,EAIlB,kBAAA,EAAoB,oBAAA;AAAA;AAAA;AAAA;AAAA,EAIpB,oBAAA,EAAsB,sBAAA;AAAA;AAAA;AAAA;AAAA,EAItB,qBAAA,EAAuB,uBAAA;AAAA;AAAA;AAAA;AAAA,EAIvB,iCAAA,EAAmC,mCAAA;AAAA;AAAA;AAAA;AAAA,EAInC,gCAAA,EAAkC,kCAAA;AAAA;AAAA;AAAA;AAAA,EAIlC,gCAAA,EAAkC;AACnC","file":"ScheduledTaskEvents.cjs","sourcesContent":["import { ScheduledTask } from '../structures/ScheduledTask';\n\n/**\n * Events emitted during the process setting up the scheduler and running a task.\n * You can use these events to trace the progress for debugging purposes.\n */\nexport const ScheduledTaskEvents = {\n\t/**\n\t * Event that is emitted if a task piece is not found in the store\n\t */\n\tScheduledTaskNotFound: 'scheduledTaskNotFound' as const,\n\t/**\n\t * Event that is emitted before a task's \"run\" method is called\n\t */\n\tScheduledTaskRun: 'scheduledTaskRun' as const,\n\t/**\n\t * Event that is emitted when a task's \"run\" method throws an error\n\t */\n\tScheduledTaskError: 'scheduledTaskError' as const,\n\t/**\n\t * Event that is emitted when a tasks's \"run\" method is successful\n\t */\n\tScheduledTaskSuccess: 'scheduledTaskSuccess' as const,\n\t/**\n\t * Event that is emitted when a task's \"run\" method finishes, regardless of whether an error occurred or not\n\t */\n\tScheduledTaskFinished: 'scheduledTaskFinished' as const,\n\t/**\n\t * Event that is emitted when the scheduler fails to connect to the server (i.e. redis)\n\t */\n\tScheduledTaskStrategyConnectError: 'scheduledTaskStrategyConnectError' as const,\n\t/**\n\t * Event that is emitted when the scheduled task client encounters an error.\n\t */\n\tScheduledTaskStrategyClientError: 'scheduledTaskStrategyClientError' as const,\n\t/**\n\t * Event that is emitted when the scheduled task worker encounters an error.\n\t */\n\tScheduledTaskStrategyWorkerError: 'scheduledTaskStrategyWorkerError' as const\n};\n\ndeclare module 'discord.js' {\n\tinterface ClientEvents {\n\t\t[ScheduledTaskEvents.ScheduledTaskNotFound]: [\n\t\t\ttask: string, //\n\t\t\tpayload: unknown\n\t\t];\n\t\t[ScheduledTaskEvents.ScheduledTaskRun]: [\n\t\t\ttask: ScheduledTask, //\n\t\t\tpayload: unknown\n\t\t];\n\t\t[ScheduledTaskEvents.ScheduledTaskError]: [\n\t\t\terror: unknown, //\n\t\t\ttask: ScheduledTask,\n\t\t\tpayload: unknown\n\t\t];\n\t\t[ScheduledTaskEvents.ScheduledTaskSuccess]: [\n\t\t\ttask: ScheduledTask, //\n\t\t\tpayload: unknown,\n\t\t\tresult: unknown,\n\t\t\tduration: number\n\t\t];\n\t\t[ScheduledTaskEvents.ScheduledTaskFinished]: [\n\t\t\ttask: ScheduledTask, //\n\t\t\tduration: number | null,\n\t\t\tpayload: unknown\n\t\t];\n\t\t[ScheduledTaskEvents.ScheduledTaskStrategyConnectError]: [error: unknown];\n\t\t[ScheduledTaskEvents.ScheduledTaskStrategyClientError]: [error: unknown];\n\t\t[ScheduledTaskEvents.ScheduledTaskStrategyWorkerError]: [error: unknown];\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/listeners/PluginScheduledTaskError.ts"],"names":["Listener","ScheduledTaskEvents"],"mappings":";;;;;;;;AAIO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuBA,kBAAwD,CAAA;AAAA,EACpF,YAAY,OAAiC,EAAA;AACnD,IAAA,KAAA,CAAM,OAAS,EAAA;AAAA,MACd,MAAMC,2CAAoB,CAAA,kBAAA;AAAA,MAC1B,OAAOA,2CAAoB,CAAA;AAAA,KAC3B,CAAA;AAAA;AACF,EAEgB,GAAA,CAAI,OAAgB,IAAqB,EAAA;AACxD,IAAM,MAAA,EAAE,IAAM,EAAA,QAAA,EAAa,GAAA,IAAA;AAC3B,IAAK,IAAA,CAAA,SAAA,CAAU,OAAO,KAAM,CAAA,CAAA,qCAAA,EAAwC,IAAI,CAAc,WAAA,EAAA,QAAA,CAAS,IAAI,CAAA,CAAA,CAAA,EAAK,KAAK,CAAA;AAAA;AAE/G,CAAA;AAZ4F,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA;AAArF,IAAM,cAAN,GAAA","file":"PluginScheduledTaskError.cjs","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport { ScheduledTaskEvents } from '../lib/types/ScheduledTaskEvents';\nimport { ScheduledTask } from '../lib/structures/ScheduledTask';\n\nexport class PluginListener extends Listener<typeof ScheduledTaskEvents.ScheduledTaskError> {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, {\n\t\t\tname: ScheduledTaskEvents.ScheduledTaskError,\n\t\t\tevent: ScheduledTaskEvents.ScheduledTaskError\n\t\t});\n\t}\n\n\tpublic override run(error: unknown, task: ScheduledTask) {\n\t\tconst { name, location } = task;\n\t\tthis.container.logger.error(`Encountered error on scheduled task \"${name}\" at path \"${location.full}\"`, error);\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/listeners/PluginScheduledTaskError.ts"],"names":["Listener","ScheduledTaskEvents"],"mappings":";;;;;;;;AAIO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuBA,kBAAA,CAAwD;AAAA,EACpF,YAAY,OAAA,EAAiC;AACnD,IAAA,KAAA,CAAM,OAAA,EAAS;AAAA,MACd,MAAMC,2CAAA,CAAoB,kBAAA;AAAA,MAC1B,OAAOA,2CAAA,CAAoB;AAAA,KAC3B,CAAA;AAAA,EACF;AAAA,EAEgB,GAAA,CAAI,OAAgB,IAAA,EAAqB;AACxD,IAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAS,GAAI,IAAA;AAC3B,IAAA,IAAA,CAAK,SAAA,CAAU,OAAO,KAAA,CAAM,CAAA,qCAAA,EAAwC,IAAI,CAAA,WAAA,EAAc,QAAA,CAAS,IAAI,CAAA,CAAA,CAAA,EAAK,KAAK,CAAA;AAAA,EAC9G;AACD,CAAA;AAZ4F,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA;AAArF,IAAM,cAAA,GAAN","file":"PluginScheduledTaskError.cjs","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport { ScheduledTaskEvents } from '../lib/types/ScheduledTaskEvents';\nimport { ScheduledTask } from '../lib/structures/ScheduledTask';\n\nexport class PluginListener extends Listener<typeof ScheduledTaskEvents.ScheduledTaskError> {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, {\n\t\t\tname: ScheduledTaskEvents.ScheduledTaskError,\n\t\t\tevent: ScheduledTaskEvents.ScheduledTaskError\n\t\t});\n\t}\n\n\tpublic override run(error: unknown, task: ScheduledTask) {\n\t\tconst { name, location } = task;\n\t\tthis.container.logger.error(`Encountered error on scheduled task \"${name}\" at path \"${location.full}\"`, error);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/listeners/PluginScheduledTaskNotFound.ts"],"names":["Listener","ScheduledTaskEvents"],"mappings":";;;;;;;AAGO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuBA,kBAA2D,CAAA;AAAA,EACvF,YAAY,OAAiC,EAAA;AACnD,IAAA,KAAA,CAAM,OAAS,EAAA;AAAA,MACd,MAAMC,2CAAoB,CAAA,qBAAA;AAAA,MAC1B,OAAOA,2CAAoB,CAAA;AAAA,KAC3B,CAAA;AAAA;AACF,EAEgB,IAAI,IAAc,EAAA;AACjC,IAAA,IAAA,CAAK,SAAU,CAAA,MAAA,CAAO,KAAM,CAAA,CAAA,mDAAA,EAAsD,IAAI,CAAG,CAAA,CAAA,CAAA;AAAA;AAE3F,CAAA;AAX+F,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA;AAAxF,IAAM,cAAN,GAAA","file":"PluginScheduledTaskNotFound.cjs","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport { ScheduledTaskEvents } from '../lib/types/ScheduledTaskEvents';\n\nexport class PluginListener extends Listener<typeof ScheduledTaskEvents.ScheduledTaskNotFound> {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, {\n\t\t\tname: ScheduledTaskEvents.ScheduledTaskNotFound,\n\t\t\tevent: ScheduledTaskEvents.ScheduledTaskNotFound\n\t\t});\n\t}\n\n\tpublic override run(task: string) {\n\t\tthis.container.logger.error(`[ScheduledTaskPlugin] There was no task found for \"${task}\"`);\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/listeners/PluginScheduledTaskNotFound.ts"],"names":["Listener","ScheduledTaskEvents"],"mappings":";;;;;;;AAGO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuBA,kBAAA,CAA2D;AAAA,EACvF,YAAY,OAAA,EAAiC;AACnD,IAAA,KAAA,CAAM,OAAA,EAAS;AAAA,MACd,MAAMC,2CAAA,CAAoB,qBAAA;AAAA,MAC1B,OAAOA,2CAAA,CAAoB;AAAA,KAC3B,CAAA;AAAA,EACF;AAAA,EAEgB,IAAI,IAAA,EAAc;AACjC,IAAA,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,KAAA,CAAM,CAAA,mDAAA,EAAsD,IAAI,CAAA,CAAA,CAAG,CAAA;AAAA,EAC1F;AACD,CAAA;AAX+F,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA;AAAxF,IAAM,cAAA,GAAN","file":"PluginScheduledTaskNotFound.cjs","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport { ScheduledTaskEvents } from '../lib/types/ScheduledTaskEvents';\n\nexport class PluginListener extends Listener<typeof ScheduledTaskEvents.ScheduledTaskNotFound> {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, {\n\t\t\tname: ScheduledTaskEvents.ScheduledTaskNotFound,\n\t\t\tevent: ScheduledTaskEvents.ScheduledTaskNotFound\n\t\t});\n\t}\n\n\tpublic override run(task: string) {\n\t\tthis.container.logger.error(`[ScheduledTaskPlugin] There was no task found for \"${task}\"`);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/listeners/PluginScheduledTaskStrategyClientError.ts"],"names":["Listener","ScheduledTaskEvents"],"mappings":";;;;;;;AAGO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuBA,kBAAsE,CAAA;AAAA,EAClG,YAAY,OAAiC,EAAA;AACnD,IAAA,KAAA,CAAM,OAAS,EAAA;AAAA,MACd,MAAMC,2CAAoB,CAAA,gCAAA;AAAA,MAC1B,OAAOA,2CAAoB,CAAA;AAAA,KAC3B,CAAA;AAAA;AACF,EAEgB,IAAI,KAAgB,EAAA;AACnC,IAAA,IAAA,CAAK,SAAU,CAAA,MAAA,CAAO,KAAM,CAAA,CAAA,iEAAA,CAAA,EAAqE,KAAK,CAAA;AAAA;AAExG,CAAA;AAX0G,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA;AAAnG,IAAM,cAAN,GAAA","file":"PluginScheduledTaskStrategyClientError.cjs","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport { ScheduledTaskEvents } from '../lib/types/ScheduledTaskEvents';\n\nexport class PluginListener extends Listener<typeof ScheduledTaskEvents.ScheduledTaskStrategyClientError> {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, {\n\t\t\tname: ScheduledTaskEvents.ScheduledTaskStrategyClientError,\n\t\t\tevent: ScheduledTaskEvents.ScheduledTaskStrategyClientError\n\t\t});\n\t}\n\n\tpublic override run(error: unknown) {\n\t\tthis.container.logger.error(`[ScheduledTaskPlugin] Scheduled Task handler encountered an error`, error);\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/listeners/PluginScheduledTaskStrategyClientError.ts"],"names":["Listener","ScheduledTaskEvents"],"mappings":";;;;;;;AAGO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuBA,kBAAA,CAAsE;AAAA,EAClG,YAAY,OAAA,EAAiC;AACnD,IAAA,KAAA,CAAM,OAAA,EAAS;AAAA,MACd,MAAMC,2CAAA,CAAoB,gCAAA;AAAA,MAC1B,OAAOA,2CAAA,CAAoB;AAAA,KAC3B,CAAA;AAAA,EACF;AAAA,EAEgB,IAAI,KAAA,EAAgB;AACnC,IAAA,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,KAAA,CAAM,CAAA,iEAAA,CAAA,EAAqE,KAAK,CAAA;AAAA,EACvG;AACD,CAAA;AAX0G,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA;AAAnG,IAAM,cAAA,GAAN","file":"PluginScheduledTaskStrategyClientError.cjs","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport { ScheduledTaskEvents } from '../lib/types/ScheduledTaskEvents';\n\nexport class PluginListener extends Listener<typeof ScheduledTaskEvents.ScheduledTaskStrategyClientError> {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, {\n\t\t\tname: ScheduledTaskEvents.ScheduledTaskStrategyClientError,\n\t\t\tevent: ScheduledTaskEvents.ScheduledTaskStrategyClientError\n\t\t});\n\t}\n\n\tpublic override run(error: unknown) {\n\t\tthis.container.logger.error(`[ScheduledTaskPlugin] Scheduled Task handler encountered an error`, error);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/listeners/PluginScheduledTaskStrategyConnectError.ts"],"names":["Listener","ScheduledTaskEvents"],"mappings":";;;;;;;AAGO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuBA,kBAAuE,CAAA;AAAA,EACnG,YAAY,OAAiC,EAAA;AACnD,IAAA,KAAA,CAAM,OAAS,EAAA;AAAA,MACd,MAAMC,2CAAoB,CAAA,iCAAA;AAAA,MAC1B,OAAOA,2CAAoB,CAAA;AAAA,KAC3B,CAAA;AAAA;AACF,EAEgB,IAAI,KAAgB,EAAA;AACnC,IAAA,IAAA,CAAK,SAAU,CAAA,MAAA,CAAO,KAAM,CAAA,CAAA,uFAAA,CAAA,EAA2F,KAAK,CAAA;AAAA;AAE9H,CAAA;AAX2G,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA;AAApG,IAAM,cAAN,GAAA","file":"PluginScheduledTaskStrategyConnectError.cjs","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport { ScheduledTaskEvents } from '../lib/types/ScheduledTaskEvents';\n\nexport class PluginListener extends Listener<typeof ScheduledTaskEvents.ScheduledTaskStrategyConnectError> {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, {\n\t\t\tname: ScheduledTaskEvents.ScheduledTaskStrategyConnectError,\n\t\t\tevent: ScheduledTaskEvents.ScheduledTaskStrategyConnectError\n\t\t});\n\t}\n\n\tpublic override run(error: unknown) {\n\t\tthis.container.logger.error(`[ScheduledTaskPlugin] Encountered an error when trying to connect to the Redis instance`, error);\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/listeners/PluginScheduledTaskStrategyConnectError.ts"],"names":["Listener","ScheduledTaskEvents"],"mappings":";;;;;;;AAGO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuBA,kBAAA,CAAuE;AAAA,EACnG,YAAY,OAAA,EAAiC;AACnD,IAAA,KAAA,CAAM,OAAA,EAAS;AAAA,MACd,MAAMC,2CAAA,CAAoB,iCAAA;AAAA,MAC1B,OAAOA,2CAAA,CAAoB;AAAA,KAC3B,CAAA;AAAA,EACF;AAAA,EAEgB,IAAI,KAAA,EAAgB;AACnC,IAAA,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,KAAA,CAAM,CAAA,uFAAA,CAAA,EAA2F,KAAK,CAAA;AAAA,EAC7H;AACD,CAAA;AAX2G,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA;AAApG,IAAM,cAAA,GAAN","file":"PluginScheduledTaskStrategyConnectError.cjs","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport { ScheduledTaskEvents } from '../lib/types/ScheduledTaskEvents';\n\nexport class PluginListener extends Listener<typeof ScheduledTaskEvents.ScheduledTaskStrategyConnectError> {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, {\n\t\t\tname: ScheduledTaskEvents.ScheduledTaskStrategyConnectError,\n\t\t\tevent: ScheduledTaskEvents.ScheduledTaskStrategyConnectError\n\t\t});\n\t}\n\n\tpublic override run(error: unknown) {\n\t\tthis.container.logger.error(`[ScheduledTaskPlugin] Encountered an error when trying to connect to the Redis instance`, error);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/listeners/PluginScheduledTaskStrategyWorkerError.ts"],"names":["Listener","ScheduledTaskEvents"],"mappings":";;;;;;;AAGO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuBA,kBAAsE,CAAA;AAAA,EAClG,YAAY,OAAiC,EAAA;AACnD,IAAA,KAAA,CAAM,OAAS,EAAA;AAAA,MACd,MAAMC,2CAAoB,CAAA,gCAAA;AAAA,MAC1B,OAAOA,2CAAoB,CAAA;AAAA,KAC3B,CAAA;AAAA;AACF,EAEgB,IAAI,KAAgB,EAAA;AACnC,IAAA,IAAA,CAAK,SAAU,CAAA,MAAA,CAAO,KAAM,CAAA,CAAA,4DAAA,CAAA,EAAgE,KAAK,CAAA;AAAA;AAEnG,CAAA;AAX0G,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA;AAAnG,IAAM,cAAN,GAAA","file":"PluginScheduledTaskStrategyWorkerError.cjs","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport { ScheduledTaskEvents } from '../lib/types/ScheduledTaskEvents';\n\nexport class PluginListener extends Listener<typeof ScheduledTaskEvents.ScheduledTaskStrategyWorkerError> {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, {\n\t\t\tname: ScheduledTaskEvents.ScheduledTaskStrategyWorkerError,\n\t\t\tevent: ScheduledTaskEvents.ScheduledTaskStrategyWorkerError\n\t\t});\n\t}\n\n\tpublic override run(error: unknown) {\n\t\tthis.container.logger.error(`[ScheduledTaskPlugin] The BullMQ worker encountered an error`, error);\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/listeners/PluginScheduledTaskStrategyWorkerError.ts"],"names":["Listener","ScheduledTaskEvents"],"mappings":";;;;;;;AAGO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuBA,kBAAA,CAAsE;AAAA,EAClG,YAAY,OAAA,EAAiC;AACnD,IAAA,KAAA,CAAM,OAAA,EAAS;AAAA,MACd,MAAMC,2CAAA,CAAoB,gCAAA;AAAA,MAC1B,OAAOA,2CAAA,CAAoB;AAAA,KAC3B,CAAA;AAAA,EACF;AAAA,EAEgB,IAAI,KAAA,EAAgB;AACnC,IAAA,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,KAAA,CAAM,CAAA,4DAAA,CAAA,EAAgE,KAAK,CAAA;AAAA,EAClG;AACD,CAAA;AAX0G,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA;AAAnG,IAAM,cAAA,GAAN","file":"PluginScheduledTaskStrategyWorkerError.cjs","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport { ScheduledTaskEvents } from '../lib/types/ScheduledTaskEvents';\n\nexport class PluginListener extends Listener<typeof ScheduledTaskEvents.ScheduledTaskStrategyWorkerError> {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, {\n\t\t\tname: ScheduledTaskEvents.ScheduledTaskStrategyWorkerError,\n\t\t\tevent: ScheduledTaskEvents.ScheduledTaskStrategyWorkerError\n\t\t});\n\t}\n\n\tpublic override run(error: unknown) {\n\t\tthis.container.logger.error(`[ScheduledTaskPlugin] The BullMQ worker encountered an error`, error);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/listeners/_load.ts"],"names":["container","PluginScheduledTaskError","PluginScheduledTaskNotFound","PluginScheduledTaskStrategyConnectError","PluginScheduledTaskStrategyClientError","PluginScheduledTaskStrategyWorkerError"],"mappings":";;;;;;;;;;;AAOO,SAAS,aAAgB,GAAA;AAC/B,EAAA,MAAM,KAAQ,GAAA,WAAA;AACd,EAAK,KAAAA,gBAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,0BAA4B,EAAA,KAAA,EAAOC,2CAA0B,EAAA,KAAA,EAAO,CAAA;AAC5G,EAAK,KAAAD,gBAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,6BAA+B,EAAA,KAAA,EAAOE,8CAA6B,EAAA,KAAA,EAAO,CAAA;AAClH,EAAK,KAAAF,gBAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,yCAA2C,EAAA,KAAA,EAAOG,0DAAyC,EAAA,KAAA,EAAO,CAAA;AAC1I,EAAK,KAAAH,gBAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,wCAA0C,EAAA,KAAA,EAAOI,yDAAwC,EAAA,KAAA,EAAO,CAAA;AACxI,EAAK,KAAAJ,gBAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,wCAA0C,EAAA,KAAA,EAAOK,yDAAwC,EAAA,KAAA,EAAO,CAAA;AACzI;AAPgB,MAAA,CAAA,aAAA,EAAA,eAAA,CAAA","file":"_load.cjs","sourcesContent":["import { container } from '@sapphire/pieces';\nimport { PluginListener as PluginScheduledTaskError } from './PluginScheduledTaskError';\nimport { PluginListener as PluginScheduledTaskNotFound } from './PluginScheduledTaskNotFound';\nimport { PluginListener as PluginScheduledTaskStrategyConnectError } from './PluginScheduledTaskStrategyConnectError';\nimport { PluginListener as PluginScheduledTaskStrategyClientError } from './PluginScheduledTaskStrategyClientError';\nimport { PluginListener as PluginScheduledTaskStrategyWorkerError } from './PluginScheduledTaskStrategyWorkerError';\n\nexport function loadListeners() {\n\tconst store = 'listeners' as const;\n\tvoid container.stores.loadPiece({ name: 'PluginScheduledTaskError', piece: PluginScheduledTaskError, store });\n\tvoid container.stores.loadPiece({ name: 'PluginScheduledTaskNotFound', piece: PluginScheduledTaskNotFound, store });\n\tvoid container.stores.loadPiece({ name: 'PluginScheduledTaskStrategyConnectError', piece: PluginScheduledTaskStrategyConnectError, store });\n\tvoid container.stores.loadPiece({ name: 'PluginScheduledTaskStrategyClientError', piece: PluginScheduledTaskStrategyClientError, store });\n\tvoid container.stores.loadPiece({ name: 'PluginScheduledTaskStrategyWorkerError', piece: PluginScheduledTaskStrategyWorkerError, store });\n}\n"]}
1
+ {"version":3,"sources":["../../../src/listeners/_load.ts"],"names":["container","PluginScheduledTaskError","PluginScheduledTaskNotFound","PluginScheduledTaskStrategyConnectError","PluginScheduledTaskStrategyClientError","PluginScheduledTaskStrategyWorkerError"],"mappings":";;;;;;;;;;;AAOO,SAAS,aAAA,GAAgB;AAC/B,EAAA,MAAM,KAAA,GAAQ,WAAA;AACd,EAAA,KAAKA,gBAAA,CAAU,OAAO,SAAA,CAAU,EAAE,MAAM,0BAAA,EAA4B,KAAA,EAAOC,2CAAA,EAA0B,KAAA,EAAO,CAAA;AAC5G,EAAA,KAAKD,gBAAA,CAAU,OAAO,SAAA,CAAU,EAAE,MAAM,6BAAA,EAA+B,KAAA,EAAOE,8CAAA,EAA6B,KAAA,EAAO,CAAA;AAClH,EAAA,KAAKF,gBAAA,CAAU,OAAO,SAAA,CAAU,EAAE,MAAM,yCAAA,EAA2C,KAAA,EAAOG,0DAAA,EAAyC,KAAA,EAAO,CAAA;AAC1I,EAAA,KAAKH,gBAAA,CAAU,OAAO,SAAA,CAAU,EAAE,MAAM,wCAAA,EAA0C,KAAA,EAAOI,yDAAA,EAAwC,KAAA,EAAO,CAAA;AACxI,EAAA,KAAKJ,gBAAA,CAAU,OAAO,SAAA,CAAU,EAAE,MAAM,wCAAA,EAA0C,KAAA,EAAOK,yDAAA,EAAwC,KAAA,EAAO,CAAA;AACzI;AAPgB,MAAA,CAAA,aAAA,EAAA,eAAA,CAAA","file":"_load.cjs","sourcesContent":["import { container } from '@sapphire/pieces';\nimport { PluginListener as PluginScheduledTaskError } from './PluginScheduledTaskError';\nimport { PluginListener as PluginScheduledTaskNotFound } from './PluginScheduledTaskNotFound';\nimport { PluginListener as PluginScheduledTaskStrategyConnectError } from './PluginScheduledTaskStrategyConnectError';\nimport { PluginListener as PluginScheduledTaskStrategyClientError } from './PluginScheduledTaskStrategyClientError';\nimport { PluginListener as PluginScheduledTaskStrategyWorkerError } from './PluginScheduledTaskStrategyWorkerError';\n\nexport function loadListeners() {\n\tconst store = 'listeners' as const;\n\tvoid container.stores.loadPiece({ name: 'PluginScheduledTaskError', piece: PluginScheduledTaskError, store });\n\tvoid container.stores.loadPiece({ name: 'PluginScheduledTaskNotFound', piece: PluginScheduledTaskNotFound, store });\n\tvoid container.stores.loadPiece({ name: 'PluginScheduledTaskStrategyConnectError', piece: PluginScheduledTaskStrategyConnectError, store });\n\tvoid container.stores.loadPiece({ name: 'PluginScheduledTaskStrategyClientError', piece: PluginScheduledTaskStrategyClientError, store });\n\tvoid container.stores.loadPiece({ name: 'PluginScheduledTaskStrategyWorkerError', piece: PluginScheduledTaskStrategyWorkerError, store });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/register.ts"],"names":["Plugin","preGenericsInitialization","container","ScheduledTaskHandler","postInitialization","ScheduledTaskStore","loadListeners","postLogin","SapphireClient"],"mappings":";;;;;;;;;AAUO,IAAM,qBAAA,GAAN,MAAM,qBAAA,SAA6BA,gBAAO,CAAA;AAAA,EAA1C,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACN,IAAO,aAAA,CAAA,IAAA,EAAA,SAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAIP,QAAeC,mCAAyB,CAAA,CAAwB,OAA8B,EAAA;AAC7F,IAAAC,mBAAA,CAAU,KAAQ,GAAA,IAAIC,8BAAqB,CAAA,OAAA,CAAQ,KAAK,CAAA;AAAA;AACzD;AAAA;AAAA;AAAA,EAKA,QAAeC,4BAAkB,CAAA,CAAwB,OAA8B,EAAA;AACtF,IAAA,IAAA,CAAK,MAAO,CAAA,QAAA,CAAS,IAAIC,4BAAA,EAAoB,CAAA;AAE7C,IAAI,IAAA,OAAA,CAAQ,oCAAoC,KAAO,EAAA;AACtD,MAAcC,uBAAA,EAAA;AAAA;AACf;AACD;AAAA;AAAA;AAAA,EAKA,QAAeC,mBAAS,CAA8B,GAAA;AACrD,IAAK,KAAAL,mBAAA,CAAU,MAAM,cAAe,EAAA;AAAA;AAEtC,CAAA;AA1BiD,MAAA,CAAA,qBAAA,EAAA,sBAAA,CAAA;AAA1C,IAAM,oBAAN,GAAA;AA4BPM,wBAAA,CAAe,OAAQ,CAAA,qCAAA;AAAA,EACtB,qBAAqBP,mCAAyB,CAAA;AAAA,EAC9C;AACD,CAAA;AAEAO,wBAAA,CAAe,OAAQ,CAAA,8BAAA,CAA+B,oBAAqB,CAAAJ,4BAAkB,GAAG,mCAAmC,CAAA;AAEnII,wBAAA,CAAe,OAAQ,CAAA,qBAAA,CAAsB,oBAAqB,CAAAD,mBAAS,GAAG,0BAA0B,CAAA","file":"register.cjs","sourcesContent":["import './index';\n\nimport { container, Plugin, postInitialization, postLogin, preGenericsInitialization, SapphireClient } from '@sapphire/framework';\nimport type { ClientOptions } from 'discord.js';\nimport { loadListeners, ScheduledTaskHandler, ScheduledTaskStore } from './index';\n\n/**\n * A plugin for scheduling tasks in a SapphireClient.\n * @since 1.0.0\n */\nexport class ScheduledTasksPlugin extends Plugin {\n\tpublic service: string | undefined;\n\t/**\n\t * @since 1.0.0\n\t */\n\tpublic static [preGenericsInitialization](this: SapphireClient, options: ClientOptions): void {\n\t\tcontainer.tasks = new ScheduledTaskHandler(options.tasks);\n\t}\n\n\t/**\n\t * @since 1.0.0\n\t */\n\tpublic static [postInitialization](this: SapphireClient, options: ClientOptions): void {\n\t\tthis.stores.register(new ScheduledTaskStore());\n\n\t\tif (options.loadScheduledTaskErrorListeners !== false) {\n\t\t\tloadListeners();\n\t\t}\n\t}\n\n\t/**\n\t * @since 1.0.0\n\t */\n\tpublic static [postLogin](this: SapphireClient): void {\n\t\tvoid container.tasks.createRepeated();\n\t}\n}\n\nSapphireClient.plugins.registerPreGenericsInitializationHook(\n\tScheduledTasksPlugin[preGenericsInitialization],\n\t'Scheduled-Task-PreGenericsInitialization'\n);\n\nSapphireClient.plugins.registerPostInitializationHook(ScheduledTasksPlugin[postInitialization], 'Scheduled-Task-PostInitialization');\n\nSapphireClient.plugins.registerPostLoginHook(ScheduledTasksPlugin[postLogin], 'Scheduled-Task-PostLogin');\n"]}
1
+ {"version":3,"sources":["../../src/register.ts"],"names":["Plugin","preGenericsInitialization","container","ScheduledTaskHandler","postInitialization","ScheduledTaskStore","loadListeners","postLogin","SapphireClient"],"mappings":";;;;;;;;;AAUO,IAAM,qBAAA,GAAN,MAAM,qBAAA,SAA6BA,gBAAA,CAAO;AAAA,EAA1C,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACN,IAAA,aAAA,CAAA,IAAA,EAAO,SAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAIP,QAAeC,mCAAyB,CAAA,CAAwB,OAAA,EAA8B;AAC7F,IAAAC,mBAAA,CAAU,KAAA,GAAQ,IAAIC,8BAAA,CAAqB,OAAA,CAAQ,KAAK,CAAA;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA,EAKA,QAAeC,4BAAkB,CAAA,CAAwB,OAAA,EAA8B;AACtF,IAAA,IAAA,CAAK,MAAA,CAAO,QAAA,CAAS,IAAIC,4BAAA,EAAoB,CAAA;AAE7C,IAAA,IAAI,OAAA,CAAQ,oCAAoC,KAAA,EAAO;AACtD,MAAAC,uBAAA,EAAc;AAAA,IACf;AAAA,EACD;AAAA;AAAA;AAAA;AAAA,EAKA,QAAeC,mBAAS,CAAA,GAA8B;AACrD,IAAA,KAAKL,mBAAA,CAAU,MAAM,cAAA,EAAe;AAAA,EACrC;AACD,CAAA;AA1BiD,MAAA,CAAA,qBAAA,EAAA,sBAAA,CAAA;AAA1C,IAAM,oBAAA,GAAN;AA4BPM,wBAAA,CAAe,OAAA,CAAQ,qCAAA;AAAA,EACtB,qBAAqBP,mCAAyB,CAAA;AAAA,EAC9C;AACD,CAAA;AAEAO,wBAAA,CAAe,OAAA,CAAQ,8BAAA,CAA+B,oBAAA,CAAqBJ,4BAAkB,GAAG,mCAAmC,CAAA;AAEnII,wBAAA,CAAe,OAAA,CAAQ,qBAAA,CAAsB,oBAAA,CAAqBD,mBAAS,GAAG,0BAA0B,CAAA","file":"register.cjs","sourcesContent":["import './index';\n\nimport { container, Plugin, postInitialization, postLogin, preGenericsInitialization, SapphireClient } from '@sapphire/framework';\nimport type { ClientOptions } from 'discord.js';\nimport { loadListeners, ScheduledTaskHandler, ScheduledTaskStore } from './index';\n\n/**\n * A plugin for scheduling tasks in a SapphireClient.\n * @since 1.0.0\n */\nexport class ScheduledTasksPlugin extends Plugin {\n\tpublic service: string | undefined;\n\t/**\n\t * @since 1.0.0\n\t */\n\tpublic static [preGenericsInitialization](this: SapphireClient, options: ClientOptions): void {\n\t\tcontainer.tasks = new ScheduledTaskHandler(options.tasks);\n\t}\n\n\t/**\n\t * @since 1.0.0\n\t */\n\tpublic static [postInitialization](this: SapphireClient, options: ClientOptions): void {\n\t\tthis.stores.register(new ScheduledTaskStore());\n\n\t\tif (options.loadScheduledTaskErrorListeners !== false) {\n\t\t\tloadListeners();\n\t\t}\n\t}\n\n\t/**\n\t * @since 1.0.0\n\t */\n\tpublic static [postLogin](this: SapphireClient): void {\n\t\tvoid container.tasks.createRepeated();\n\t}\n}\n\nSapphireClient.plugins.registerPreGenericsInitializationHook(\n\tScheduledTasksPlugin[preGenericsInitialization],\n\t'Scheduled-Task-PreGenericsInitialization'\n);\n\nSapphireClient.plugins.registerPostInitializationHook(ScheduledTasksPlugin[postInitialization], 'Scheduled-Task-PostInitialization');\n\nSapphireClient.plugins.registerPostLoginHook(ScheduledTasksPlugin[postLogin], 'Scheduled-Task-PostLogin');\n"]}
@@ -5,7 +5,7 @@ export * from './lib/structures/ScheduledTaskStore.mjs';
5
5
  export * from './lib/types/ScheduledTaskEvents.mjs';
6
6
  export { loadListeners } from './listeners/_load.mjs';
7
7
 
8
- var version = "10.0.4-next.e18dc27";
8
+ var version = "10.0.4";
9
9
 
10
10
  export { version };
11
11
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;AAwCO,IAAM,OAAkB,GAAA","file":"index.mjs","sourcesContent":["import type { ScheduledTaskHandler } from './lib/ScheduledTaskHandler';\nimport type { ScheduledTaskStore } from './lib/structures/ScheduledTaskStore';\nimport type { ScheduledTaskHandlerOptions } from './lib/types/ScheduledTaskTypes';\n\nexport * from './lib/ScheduledTaskHandler';\nexport * from './lib/structures/ScheduledTask';\nexport * from './lib/structures/ScheduledTaskStore';\nexport * from './lib/types/ScheduledTaskEvents';\nexport type * from './lib/types/ScheduledTaskTypes';\n\nexport { loadListeners } from './listeners/_load';\n\ndeclare module '@sapphire/pieces' {\n\tinterface Container {\n\t\ttasks: ScheduledTaskHandler;\n\t}\n\n\tinterface StoreRegistryEntries {\n\t\t'scheduled-tasks': ScheduledTaskStore;\n\t}\n}\n\ndeclare module 'discord.js' {\n\texport interface ClientOptions {\n\t\ttasks: ScheduledTaskHandlerOptions;\n\t\t/**\n\t\t * If the the pre-included scheduled task error listeners should be loaded\n\t\t * @default true\n\t\t */\n\t\tloadScheduledTaskErrorListeners?: boolean;\n\t}\n}\n\n/**\n * The [@sapphire/plugin-scheduled-tasks](https://github.com/sapphiredev/plugins/blob/main/packages/scheduled-tasks) version that you are currently using.\n * An example use of this is showing it of in a bot information command.\n *\n * Note to Sapphire developers: This needs to explicitly be `string` so it is not typed as the string that gets replaced by esbuild\n */\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\nexport const version: string = '10.0.4-next.e18dc27';\n"]}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;AAwCO,IAAM,OAAA,GAAkB","file":"index.mjs","sourcesContent":["import type { ScheduledTaskHandler } from './lib/ScheduledTaskHandler';\nimport type { ScheduledTaskStore } from './lib/structures/ScheduledTaskStore';\nimport type { ScheduledTaskHandlerOptions } from './lib/types/ScheduledTaskTypes';\n\nexport * from './lib/ScheduledTaskHandler';\nexport * from './lib/structures/ScheduledTask';\nexport * from './lib/structures/ScheduledTaskStore';\nexport * from './lib/types/ScheduledTaskEvents';\nexport type * from './lib/types/ScheduledTaskTypes';\n\nexport { loadListeners } from './listeners/_load';\n\ndeclare module '@sapphire/pieces' {\n\tinterface Container {\n\t\ttasks: ScheduledTaskHandler;\n\t}\n\n\tinterface StoreRegistryEntries {\n\t\t'scheduled-tasks': ScheduledTaskStore;\n\t}\n}\n\ndeclare module 'discord.js' {\n\texport interface ClientOptions {\n\t\ttasks: ScheduledTaskHandlerOptions;\n\t\t/**\n\t\t * If the the pre-included scheduled task error listeners should be loaded\n\t\t * @default true\n\t\t */\n\t\tloadScheduledTaskErrorListeners?: boolean;\n\t}\n}\n\n/**\n * The [@sapphire/plugin-scheduled-tasks](https://github.com/sapphiredev/plugins/blob/main/packages/scheduled-tasks) version that you are currently using.\n * An example use of this is showing it of in a bot information command.\n *\n * Note to Sapphire developers: This needs to explicitly be `string` so it is not typed as the string that gets replaced by esbuild\n */\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\nexport const version: string = '10.0.4';\n"]}
@@ -171,8 +171,13 @@ var _ScheduledTaskHandler = class _ScheduledTaskHandler {
171
171
  container.client.emit(ScheduledTaskEvents.ScheduledTaskSuccess, piece, payload, taskRunResult, duration);
172
172
  return duration;
173
173
  });
174
- result.inspectErr((error) => container.client.emit(ScheduledTaskEvents.ScheduledTaskError, error, piece, payload));
175
- const value = result.unwrapOr(null);
174
+ const value = result.match({
175
+ ok: /* @__PURE__ */ __name((value2) => value2, "ok"),
176
+ err(error) {
177
+ container.client.emit(ScheduledTaskEvents.ScheduledTaskError, error, piece, payload);
178
+ throw error;
179
+ }
180
+ });
176
181
  container.client.emit(ScheduledTaskEvents.ScheduledTaskFinished, piece, value, payload);
177
182
  return value;
178
183
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/ScheduledTaskHandler.ts"],"names":[],"mappings":"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","file":"ScheduledTaskHandler.mjs","sourcesContent":["import { container, Result } from '@sapphire/framework';\nimport { Stopwatch } from '@sapphire/stopwatch';\nimport { Job, Queue, Worker, type JobsOptions, type QueueOptions, isNotConnectionError } from 'bullmq';\nimport type { ScheduledTaskStore } from './structures/ScheduledTaskStore';\nimport { ScheduledTaskEvents } from './types/ScheduledTaskEvents';\nimport type {\n\tBullClient,\n\tScheduledTaskCreateRepeatedTask,\n\tScheduledTaskHandlerOptions,\n\tScheduledTaskListOptions,\n\tScheduledTaskListRepeatedOptions,\n\tScheduledTaskListRepeatedReturnType,\n\tScheduledTasksResolvable,\n\tScheduledTasksKeys,\n\tScheduledTasksTaskOptions,\n\tScheduledTasksKeysNoPayload,\n\tScheduledTasksJob,\n\tScheduledTasksResolvablePayload,\n\tScheduledTasksPayload\n} from './types/ScheduledTaskTypes';\nimport { isNullish } from '@sapphire/utilities';\n\nexport class ScheduledTaskHandler {\n\t/**\n\t * The queue options for the scheduled task handler.\n\t */\n\tpublic readonly options: QueueOptions;\n\n\t/**\n\t * The name of the queue associated with the scheduled task handler.\n\t */\n\tpublic readonly queue: string;\n\n\t#client: BullClient;\n\t#worker: Worker;\n\n\tpublic constructor(options: ScheduledTaskHandlerOptions) {\n\t\tthis.queue = options.queue ?? 'scheduled-tasks';\n\t\tthis.options = options.bull;\n\n\t\tthis.#client = new Queue(this.queue, this.options);\n\t\tthis.#worker = new Worker(\n\t\t\tthis.queue, //\n\t\t\tasync (job) => this.run({ name: job.name as ScheduledTasksKeys, payload: job.data }),\n\t\t\t{ connection: this.options.connection }\n\t\t);\n\n\t\tthis.#client.on('error', (error) => {\n\t\t\tif (isNotConnectionError(error)) {\n\t\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskStrategyClientError, error);\n\t\t\t} else {\n\t\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskStrategyConnectError, error);\n\t\t\t}\n\t\t});\n\t\tthis.#worker.on('error', (error) => {\n\t\t\tif (isNotConnectionError(error)) {\n\t\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskStrategyWorkerError, error);\n\t\t\t} else {\n\t\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskStrategyConnectError, error);\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic get client(): BullClient {\n\t\treturn this.#client;\n\t}\n\n\t/**\n\t * Closes the internal client and worker.\n\t */\n\tpublic async close(): Promise<void> {\n\t\tawait Promise.all([\n\t\t\tthis.#client.close(), //\n\t\t\tthis.#worker.close()\n\t\t]);\n\t}\n\n\t/**\n\t * Creates a scheduled task.\n\t *\n\t * @param task - The task to be scheduled.\n\t * @param options - The options for the task.\n\t */\n\tpublic async create<T extends ScheduledTasksResolvable>(\n\t\ttask: T, //\n\t\toptions?: ScheduledTasksTaskOptions | number\n\t): Promise<ScheduledTasksJob<T>> {\n\t\tconst { name: taskName, payload } = this.resolveTask(task);\n\n\t\tif (isNullish(options)) {\n\t\t\treturn this.#client.add(taskName, payload) as Promise<ScheduledTasksJob<T>>;\n\t\t}\n\n\t\tif (typeof options === 'number') {\n\t\t\toptions = {\n\t\t\t\trepeated: false,\n\t\t\t\tdelay: options\n\t\t\t};\n\t\t}\n\n\t\tconst { repeated, pattern, interval, delay, customJobOptions, timezone } = options;\n\t\tlet jobOptions: JobsOptions = {\n\t\t\tdelay,\n\t\t\t...customJobOptions\n\t\t};\n\n\t\tif (repeated) {\n\t\t\tjobOptions = {\n\t\t\t\t...jobOptions,\n\t\t\t\trepeat: interval //\n\t\t\t\t\t? { every: interval }\n\t\t\t\t\t: { pattern, tz: timezone }\n\t\t\t};\n\t\t}\n\n\t\treturn this.#client.add(taskName, payload, jobOptions) as Promise<ScheduledTasksJob<T>>;\n\t}\n\n\t/**\n\t * Creates repeated tasks.\n\t *\n\t * @param tasks - An optional array of tasks to create. If not provided, it will create tasks based on the stored repeated tasks.\n\t */\n\tpublic async createRepeated(tasks?: ScheduledTaskCreateRepeatedTask[]): Promise<void> {\n\t\tif (tasks === undefined) {\n\t\t\tconst repeatedTasks: ScheduledTaskCreateRepeatedTask[] = this.store.repeatedTasks.map((piece) => ({\n\t\t\t\tname: piece.name as ScheduledTasksKeysNoPayload,\n\t\t\t\toptions: {\n\t\t\t\t\trepeated: true,\n\t\t\t\t\t...(piece.interval\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tinterval: piece.interval,\n\t\t\t\t\t\t\t\tcustomJobOptions: piece.customJobOptions\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tpattern: piece.pattern!,\n\t\t\t\t\t\t\t\ttimezone: piece.timezone,\n\t\t\t\t\t\t\t\tcustomJobOptions: piece.customJobOptions\n\t\t\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}));\n\n\t\t\ttasks = repeatedTasks;\n\t\t}\n\n\t\tfor (const task of tasks) {\n\t\t\tawait this.create(task.name, task.options);\n\t\t}\n\t}\n\n\t/**\n\t * Deletes a scheduled task by its ID.\n\t *\n\t * @param id - The ID of the task to delete.\n\t */\n\tpublic async delete(id: string): Promise<void> {\n\t\tconst job = (await this.get(id as ScheduledTasksKeys)) as unknown as Job<unknown> | undefined;\n\t\treturn job?.remove();\n\t}\n\n\t/**\n\t * Retrieves a list of scheduled tasks based on the provided options.\n\t *\n\t * @param options - The options for filtering the list of scheduled tasks.\n\t */\n\tpublic list(options: ScheduledTaskListOptions): Promise<Job<unknown>[]> {\n\t\tconst { types, start, end, asc } = options;\n\n\t\treturn this.#client.getJobs(types, start, end, asc);\n\t}\n\n\t/**\n\t * Retrieves a list of repeated scheduled tasks based on the provided options.\n\t *\n\t * @param options - The options for filtering the list of repeated scheduled tasks.\n\t */\n\tpublic listRepeated(options: ScheduledTaskListRepeatedOptions): Promise<ScheduledTaskListRepeatedReturnType> {\n\t\tconst { start, end, asc } = options;\n\n\t\treturn this.#client.getRepeatableJobs(start, end, asc);\n\t}\n\n\t/**\n\t * Retrieves a scheduled task by its ID.\n\t *\n\t * @param id - The ID of the scheduled task to retrieve.\n\t */\n\tpublic async get<T extends ScheduledTasksKeys>(id: T): Promise<Job<ScheduledTasksPayload<T>> | undefined> {\n\t\tconst job = await this.#client.getJob(id);\n\t\tif (isNullish(job)) return undefined;\n\n\t\treturn job as Job<ScheduledTasksPayload<T>>;\n\t}\n\n\t/**\n\t * Runs a scheduled task with the given name and payload.\n\t *\n\t * @param task - The name of the scheduled task to run.\n\t *\n\t * @remarks `undefined` will be returned if the task was not found.\n\t */\n\tpublic async run(task: ScheduledTasksResolvable): Promise<number | null | undefined> {\n\t\tconst { name: taskName, payload } = this.resolveTask(task);\n\t\tconst piece = this.store.get(task.name);\n\n\t\tif (!piece) {\n\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskNotFound, taskName, payload);\n\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst result = await Result.fromAsync(async () => {\n\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskRun, piece, payload);\n\n\t\t\tconst stopwatch = new Stopwatch();\n\t\t\tconst taskRunResult = await piece.run(payload);\n\t\t\tconst { duration } = stopwatch.stop();\n\n\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskSuccess, piece, payload, taskRunResult, duration);\n\n\t\t\treturn duration;\n\t\t});\n\n\t\tresult.inspectErr((error) => container.client.emit(ScheduledTaskEvents.ScheduledTaskError, error, piece, payload));\n\n\t\tconst value = result.unwrapOr(null);\n\n\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskFinished, piece, value, payload);\n\n\t\treturn value;\n\t}\n\n\tprivate get store(): ScheduledTaskStore {\n\t\treturn container.client.stores.get('scheduled-tasks');\n\t}\n\n\tprivate resolveTask(task: ScheduledTasksResolvable): ScheduledTasksResolvablePayload {\n\t\tif (typeof task === 'string') {\n\t\t\treturn { name: task, payload: undefined };\n\t\t}\n\n\t\tif ('payload' in task) {\n\t\t\treturn { name: task.name, payload: task.payload };\n\t\t}\n\n\t\treturn { name: task.name, payload: undefined };\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/lib/ScheduledTaskHandler.ts"],"names":["value"],"mappings":"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","file":"ScheduledTaskHandler.mjs","sourcesContent":["import { container, Result } from '@sapphire/framework';\nimport { Stopwatch } from '@sapphire/stopwatch';\nimport { Job, Queue, Worker, type JobsOptions, type QueueOptions, isNotConnectionError } from 'bullmq';\nimport type { ScheduledTaskStore } from './structures/ScheduledTaskStore';\nimport { ScheduledTaskEvents } from './types/ScheduledTaskEvents';\nimport type {\n\tBullClient,\n\tScheduledTaskCreateRepeatedTask,\n\tScheduledTaskHandlerOptions,\n\tScheduledTaskListOptions,\n\tScheduledTaskListRepeatedOptions,\n\tScheduledTaskListRepeatedReturnType,\n\tScheduledTasksResolvable,\n\tScheduledTasksKeys,\n\tScheduledTasksTaskOptions,\n\tScheduledTasksKeysNoPayload,\n\tScheduledTasksJob,\n\tScheduledTasksResolvablePayload,\n\tScheduledTasksPayload\n} from './types/ScheduledTaskTypes';\nimport { isNullish } from '@sapphire/utilities';\n\nexport class ScheduledTaskHandler {\n\t/**\n\t * The queue options for the scheduled task handler.\n\t */\n\tpublic readonly options: QueueOptions;\n\n\t/**\n\t * The name of the queue associated with the scheduled task handler.\n\t */\n\tpublic readonly queue: string;\n\n\t#client: BullClient;\n\t#worker: Worker;\n\n\tpublic constructor(options: ScheduledTaskHandlerOptions) {\n\t\tthis.queue = options.queue ?? 'scheduled-tasks';\n\t\tthis.options = options.bull;\n\n\t\tthis.#client = new Queue(this.queue, this.options);\n\t\tthis.#worker = new Worker(\n\t\t\tthis.queue, //\n\t\t\tasync (job) => this.run({ name: job.name as ScheduledTasksKeys, payload: job.data }),\n\t\t\t{ connection: this.options.connection }\n\t\t);\n\n\t\tthis.#client.on('error', (error) => {\n\t\t\tif (isNotConnectionError(error)) {\n\t\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskStrategyClientError, error);\n\t\t\t} else {\n\t\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskStrategyConnectError, error);\n\t\t\t}\n\t\t});\n\t\tthis.#worker.on('error', (error) => {\n\t\t\tif (isNotConnectionError(error)) {\n\t\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskStrategyWorkerError, error);\n\t\t\t} else {\n\t\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskStrategyConnectError, error);\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic get client(): BullClient {\n\t\treturn this.#client;\n\t}\n\n\t/**\n\t * Closes the internal client and worker.\n\t */\n\tpublic async close(): Promise<void> {\n\t\tawait Promise.all([\n\t\t\tthis.#client.close(), //\n\t\t\tthis.#worker.close()\n\t\t]);\n\t}\n\n\t/**\n\t * Creates a scheduled task.\n\t *\n\t * @param task - The task to be scheduled.\n\t * @param options - The options for the task.\n\t */\n\tpublic async create<T extends ScheduledTasksResolvable>(\n\t\ttask: T, //\n\t\toptions?: ScheduledTasksTaskOptions | number\n\t): Promise<ScheduledTasksJob<T>> {\n\t\tconst { name: taskName, payload } = this.resolveTask(task);\n\n\t\tif (isNullish(options)) {\n\t\t\treturn this.#client.add(taskName, payload) as Promise<ScheduledTasksJob<T>>;\n\t\t}\n\n\t\tif (typeof options === 'number') {\n\t\t\toptions = {\n\t\t\t\trepeated: false,\n\t\t\t\tdelay: options\n\t\t\t};\n\t\t}\n\n\t\tconst { repeated, pattern, interval, delay, customJobOptions, timezone } = options;\n\t\tlet jobOptions: JobsOptions = {\n\t\t\tdelay,\n\t\t\t...customJobOptions\n\t\t};\n\n\t\tif (repeated) {\n\t\t\tjobOptions = {\n\t\t\t\t...jobOptions,\n\t\t\t\trepeat: interval //\n\t\t\t\t\t? { every: interval }\n\t\t\t\t\t: { pattern, tz: timezone }\n\t\t\t};\n\t\t}\n\n\t\treturn this.#client.add(taskName, payload, jobOptions) as Promise<ScheduledTasksJob<T>>;\n\t}\n\n\t/**\n\t * Creates repeated tasks.\n\t *\n\t * @param tasks - An optional array of tasks to create. If not provided, it will create tasks based on the stored repeated tasks.\n\t */\n\tpublic async createRepeated(tasks?: ScheduledTaskCreateRepeatedTask[]): Promise<void> {\n\t\tif (tasks === undefined) {\n\t\t\tconst repeatedTasks: ScheduledTaskCreateRepeatedTask[] = this.store.repeatedTasks.map((piece) => ({\n\t\t\t\tname: piece.name as ScheduledTasksKeysNoPayload,\n\t\t\t\toptions: {\n\t\t\t\t\trepeated: true,\n\t\t\t\t\t...(piece.interval\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tinterval: piece.interval,\n\t\t\t\t\t\t\t\tcustomJobOptions: piece.customJobOptions\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tpattern: piece.pattern!,\n\t\t\t\t\t\t\t\ttimezone: piece.timezone,\n\t\t\t\t\t\t\t\tcustomJobOptions: piece.customJobOptions\n\t\t\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}));\n\n\t\t\ttasks = repeatedTasks;\n\t\t}\n\n\t\tfor (const task of tasks) {\n\t\t\tawait this.create(task.name, task.options);\n\t\t}\n\t}\n\n\t/**\n\t * Deletes a scheduled task by its ID.\n\t *\n\t * @param id - The ID of the task to delete.\n\t */\n\tpublic async delete(id: string): Promise<void> {\n\t\tconst job = (await this.get(id as ScheduledTasksKeys)) as unknown as Job<unknown> | undefined;\n\t\treturn job?.remove();\n\t}\n\n\t/**\n\t * Retrieves a list of scheduled tasks based on the provided options.\n\t *\n\t * @param options - The options for filtering the list of scheduled tasks.\n\t */\n\tpublic list(options: ScheduledTaskListOptions): Promise<Job<unknown>[]> {\n\t\tconst { types, start, end, asc } = options;\n\n\t\treturn this.#client.getJobs(types, start, end, asc);\n\t}\n\n\t/**\n\t * Retrieves a list of repeated scheduled tasks based on the provided options.\n\t *\n\t * @param options - The options for filtering the list of repeated scheduled tasks.\n\t */\n\tpublic listRepeated(options: ScheduledTaskListRepeatedOptions): Promise<ScheduledTaskListRepeatedReturnType> {\n\t\tconst { start, end, asc } = options;\n\n\t\treturn this.#client.getRepeatableJobs(start, end, asc);\n\t}\n\n\t/**\n\t * Retrieves a scheduled task by its ID.\n\t *\n\t * @param id - The ID of the scheduled task to retrieve.\n\t */\n\tpublic async get<T extends ScheduledTasksKeys>(id: T): Promise<Job<ScheduledTasksPayload<T>> | undefined> {\n\t\tconst job = await this.#client.getJob(id);\n\t\tif (isNullish(job)) return undefined;\n\n\t\treturn job as Job<ScheduledTasksPayload<T>>;\n\t}\n\n\t/**\n\t * Runs a scheduled task with the given name and payload.\n\t *\n\t * @param task - The name of the scheduled task to run.\n\t *\n\t * @remarks `undefined` will be returned if the task was not found.\n\t */\n\tpublic async run(task: ScheduledTasksResolvable): Promise<number | null | undefined> {\n\t\tconst { name: taskName, payload } = this.resolveTask(task);\n\t\tconst piece = this.store.get(task.name);\n\n\t\tif (!piece) {\n\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskNotFound, taskName, payload);\n\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst result = await Result.fromAsync(async () => {\n\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskRun, piece, payload);\n\n\t\t\tconst stopwatch = new Stopwatch();\n\t\t\tconst taskRunResult = await piece.run(payload);\n\t\t\tconst { duration } = stopwatch.stop();\n\n\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskSuccess, piece, payload, taskRunResult, duration);\n\n\t\t\treturn duration;\n\t\t});\n\n\t\tconst value = result.match({\n\t\t\tok: (value) => value,\n\t\t\terr(error) {\n\t\t\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskError, error, piece, payload);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t});\n\n\t\tcontainer.client.emit(ScheduledTaskEvents.ScheduledTaskFinished, piece, value, payload);\n\n\t\treturn value;\n\t}\n\n\tprivate get store(): ScheduledTaskStore {\n\t\treturn container.client.stores.get('scheduled-tasks');\n\t}\n\n\tprivate resolveTask(task: ScheduledTasksResolvable): ScheduledTasksResolvablePayload {\n\t\tif (typeof task === 'string') {\n\t\t\treturn { name: task, payload: undefined };\n\t\t}\n\n\t\tif ('payload' in task) {\n\t\t\treturn { name: task.name, payload: task.payload };\n\t\t}\n\n\t\treturn { name: task.name, payload: undefined };\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/structures/ScheduledTask.ts"],"names":[],"mappings":";;;AASO,IAAe,cAAA,GAAf,MAAe,cAAA,SAGZ,KAAkC,CAAA;AAAA,EAMpC,WAAA,CAAY,SAAsC,OAA+B,EAAA;AACvF,IAAA,KAAA,CAAM,SAAS,OAAO,CAAA;AANvB,IAAgB,aAAA,CAAA,IAAA,EAAA,UAAA,CAAA;AAChB,IAAgB,aAAA,CAAA,IAAA,EAAA,SAAA,CAAA;AAChB,IAAgB,aAAA,CAAA,IAAA,EAAA,UAAA,CAAA;AAChB,IAAgB,aAAA,CAAA,IAAA,EAAA,kBAAA,CAAA;AAIf,IAAK,IAAA,CAAA,QAAA,GAAW,QAAQ,QAAY,IAAA,IAAA;AACpC,IAAK,IAAA,CAAA,OAAA,GAAU,QAAQ,OAAW,IAAA,IAAA;AAClC,IAAA,IAAA,CAAK,mBAAmB,OAAQ,CAAA,gBAAA;AAChC,IAAK,IAAA,CAAA,QAAA,GAAW,QAAQ,QAAY,IAAA,KAAA;AAAA;AAItC,CAAA;AAf4C,MAAA,CAAA,cAAA,EAAA,eAAA,CAAA;AAHrC,IAAe,aAAf,GAAA","file":"ScheduledTask.mjs","sourcesContent":["import { Piece } from '@sapphire/pieces';\nimport type { Awaitable } from '@sapphire/utilities';\nimport type { JobsOptions } from 'bullmq';\nimport type { ScheduledTasksKeys, ScheduledTasksPayload } from '../types/ScheduledTaskTypes';\n\n/**\n * Represents a scheduled task that can be run at a specified interval or pattern.\n * @abstract\n */\nexport abstract class ScheduledTask<\n\tTask extends ScheduledTasksKeys = ScheduledTasksKeys, //\n\tOptions extends ScheduledTask.Options = ScheduledTask.Options\n> extends Piece<Options, 'scheduled-tasks'> {\n\tpublic readonly interval: number | null;\n\tpublic readonly pattern: string | null;\n\tpublic readonly timezone: string;\n\tpublic readonly customJobOptions?: ScheduledTaskCustomJobOptions;\n\n\tpublic constructor(context: ScheduledTask.LoaderContext, options: ScheduledTaskOptions) {\n\t\tsuper(context, options);\n\t\tthis.interval = options.interval ?? null;\n\t\tthis.pattern = options.pattern ?? null;\n\t\tthis.customJobOptions = options.customJobOptions;\n\t\tthis.timezone = options.timezone ?? 'UTC';\n\t}\n\n\tpublic abstract run(payload: ScheduledTasksPayload<Task>): Awaitable<unknown>;\n}\n\n/**\n * Options for configuring a scheduled task.\n */\nexport interface ScheduledTaskOptions extends Piece.Options {\n\t/**\n\t * The interval (in milliseconds) at which the task should run.\n\t */\n\tinterval?: number | null;\n\t/**\n\t * A cron pattern specifying when the task should run.\n\t */\n\tpattern?: string | null;\n\t/**\n\t * Custom options to pass to the job scheduler.\n\t */\n\tcustomJobOptions?: ScheduledTaskCustomJobOptions;\n\n\t/**\n\t * The timezone to use for the task.\n\t * @default 'UTC'\n\t */\n\ttimezone?: string | null;\n}\n\n/**\n * Custom options for a job in a scheduled task.\n */\nexport type ScheduledTaskCustomJobOptions = Omit<JobsOptions, 'repeat'>;\n\n/**\n * The namespace for {@link ScheduledTask}.\n */\nexport namespace ScheduledTask {\n\t/**\n\t * The options for a {@link ScheduledTask}.\n\t */\n\texport type Options = ScheduledTaskOptions;\n\n\t/**\n\t * The context for a {@link ScheduledTask}.\n\t * @deprecated Use {@linkcode LoaderContext} instead.\n\t */\n\texport type Context = LoaderContext;\n\texport type LoaderContext = Piece.LoaderContext<'scheduled-tasks'>;\n\texport type JSON = Piece.JSON;\n\texport type LocationJSON = Piece.LocationJSON;\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/lib/structures/ScheduledTask.ts"],"names":[],"mappings":";;;AASO,IAAe,cAAA,GAAf,MAAe,cAAA,SAGZ,KAAA,CAAkC;AAAA,EAMpC,WAAA,CAAY,SAAsC,OAAA,EAA+B;AACvF,IAAA,KAAA,CAAM,SAAS,OAAO,CAAA;AANvB,IAAA,aAAA,CAAA,IAAA,EAAgB,UAAA,CAAA;AAChB,IAAA,aAAA,CAAA,IAAA,EAAgB,SAAA,CAAA;AAChB,IAAA,aAAA,CAAA,IAAA,EAAgB,UAAA,CAAA;AAChB,IAAA,aAAA,CAAA,IAAA,EAAgB,kBAAA,CAAA;AAIf,IAAA,IAAA,CAAK,QAAA,GAAW,QAAQ,QAAA,IAAY,IAAA;AACpC,IAAA,IAAA,CAAK,OAAA,GAAU,QAAQ,OAAA,IAAW,IAAA;AAClC,IAAA,IAAA,CAAK,mBAAmB,OAAA,CAAQ,gBAAA;AAChC,IAAA,IAAA,CAAK,QAAA,GAAW,QAAQ,QAAA,IAAY,KAAA;AAAA,EACrC;AAGD,CAAA;AAf4C,MAAA,CAAA,cAAA,EAAA,eAAA,CAAA;AAHrC,IAAe,aAAA,GAAf","file":"ScheduledTask.mjs","sourcesContent":["import { Piece } from '@sapphire/pieces';\nimport type { Awaitable } from '@sapphire/utilities';\nimport type { JobsOptions } from 'bullmq';\nimport type { ScheduledTasksKeys, ScheduledTasksPayload } from '../types/ScheduledTaskTypes';\n\n/**\n * Represents a scheduled task that can be run at a specified interval or pattern.\n * @abstract\n */\nexport abstract class ScheduledTask<\n\tTask extends ScheduledTasksKeys = ScheduledTasksKeys, //\n\tOptions extends ScheduledTask.Options = ScheduledTask.Options\n> extends Piece<Options, 'scheduled-tasks'> {\n\tpublic readonly interval: number | null;\n\tpublic readonly pattern: string | null;\n\tpublic readonly timezone: string;\n\tpublic readonly customJobOptions?: ScheduledTaskCustomJobOptions;\n\n\tpublic constructor(context: ScheduledTask.LoaderContext, options: ScheduledTaskOptions) {\n\t\tsuper(context, options);\n\t\tthis.interval = options.interval ?? null;\n\t\tthis.pattern = options.pattern ?? null;\n\t\tthis.customJobOptions = options.customJobOptions;\n\t\tthis.timezone = options.timezone ?? 'UTC';\n\t}\n\n\tpublic abstract run(payload: ScheduledTasksPayload<Task>): Awaitable<unknown>;\n}\n\n/**\n * Options for configuring a scheduled task.\n */\nexport interface ScheduledTaskOptions extends Piece.Options {\n\t/**\n\t * The interval (in milliseconds) at which the task should run.\n\t */\n\tinterval?: number | null;\n\t/**\n\t * A cron pattern specifying when the task should run.\n\t */\n\tpattern?: string | null;\n\t/**\n\t * Custom options to pass to the job scheduler.\n\t */\n\tcustomJobOptions?: ScheduledTaskCustomJobOptions;\n\n\t/**\n\t * The timezone to use for the task.\n\t * @default 'UTC'\n\t */\n\ttimezone?: string | null;\n}\n\n/**\n * Custom options for a job in a scheduled task.\n */\nexport type ScheduledTaskCustomJobOptions = Omit<JobsOptions, 'repeat'>;\n\n/**\n * The namespace for {@link ScheduledTask}.\n */\nexport namespace ScheduledTask {\n\t/**\n\t * The options for a {@link ScheduledTask}.\n\t */\n\texport type Options = ScheduledTaskOptions;\n\n\t/**\n\t * The context for a {@link ScheduledTask}.\n\t * @deprecated Use {@linkcode LoaderContext} instead.\n\t */\n\texport type Context = LoaderContext;\n\texport type LoaderContext = Piece.LoaderContext<'scheduled-tasks'>;\n\texport type JSON = Piece.JSON;\n\texport type LocationJSON = Piece.LocationJSON;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/structures/ScheduledTaskStore.ts"],"names":[],"mappings":";;;;AAMO,IAAM,mBAAA,GAAN,MAAM,mBAAA,SAA2B,KAAwC,CAAA;AAAA,EAGxE,WAAc,GAAA;AACpB,IAAA,KAAA,CAAM,aAAe,EAAA,EAAE,IAAM,EAAA,iBAAA,EAAmB,CAAA;AAHjD,IAAA,aAAA,CAAA,IAAA,EAAgB,iBAAiC,EAAC,CAAA;AAAA;AAIlD,EAEgB,GAAA,CAAI,KAAa,KAA4B,EAAA;AAC5D,IAAA,IAAI,KAAM,CAAA,QAAA,KAAa,IAAQ,IAAA,KAAA,CAAM,YAAY,IAAM,EAAA;AACtD,MAAK,IAAA,CAAA,aAAA,CAAc,KAAK,KAAK,CAAA;AAAA;AAG9B,IAAO,OAAA,KAAA,CAAM,GAAI,CAAA,GAAA,EAAK,KAAK,CAAA;AAAA;AAC5B,EAEgB,OAAO,GAAsB,EAAA;AAC5C,IAAM,MAAA,KAAA,GAAQ,KAAK,aAAc,CAAA,SAAA,CAAU,CAAC,IAAS,KAAA,IAAA,CAAK,SAAS,GAAG,CAAA;AAGtE,IAAA,IAAI,UAAU,EAAI,EAAA,IAAA,CAAK,aAAc,CAAA,MAAA,CAAO,OAAO,CAAC,CAAA;AAEpD,IAAO,OAAA,KAAA,CAAM,OAAO,GAAG,CAAA;AAAA;AACxB,EAEgB,KAAc,GAAA;AAC7B,IAAA,IAAA,CAAK,cAAc,MAAS,GAAA,CAAA;AAC5B,IAAA,OAAO,MAAM,KAAM,EAAA;AAAA;AAErB,CAAA;AA5BgF,MAAA,CAAA,mBAAA,EAAA,oBAAA,CAAA;AAAzE,IAAM,kBAAN,GAAA","file":"ScheduledTaskStore.mjs","sourcesContent":["import { Store } from '@sapphire/pieces';\nimport { ScheduledTask } from './ScheduledTask';\n\n/**\n * A store for managing scheduled tasks.\n */\nexport class ScheduledTaskStore extends Store<ScheduledTask, 'scheduled-tasks'> {\n\tpublic readonly repeatedTasks: ScheduledTask[] = [];\n\n\tpublic constructor() {\n\t\tsuper(ScheduledTask, { name: 'scheduled-tasks' });\n\t}\n\n\tpublic override set(key: string, value: ScheduledTask): this {\n\t\tif (value.interval !== null || value.pattern !== null) {\n\t\t\tthis.repeatedTasks.push(value);\n\t\t}\n\n\t\treturn super.set(key, value);\n\t}\n\n\tpublic override delete(key: string): boolean {\n\t\tconst index = this.repeatedTasks.findIndex((task) => task.name === key);\n\n\t\t// If the scheduled task was found, remove it\n\t\tif (index !== -1) this.repeatedTasks.splice(index, 1);\n\n\t\treturn super.delete(key);\n\t}\n\n\tpublic override clear(): void {\n\t\tthis.repeatedTasks.length = 0;\n\t\treturn super.clear();\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/lib/structures/ScheduledTaskStore.ts"],"names":[],"mappings":";;;;AAMO,IAAM,mBAAA,GAAN,MAAM,mBAAA,SAA2B,KAAA,CAAwC;AAAA,EAGxE,WAAA,GAAc;AACpB,IAAA,KAAA,CAAM,aAAA,EAAe,EAAE,IAAA,EAAM,iBAAA,EAAmB,CAAA;AAHjD,IAAA,aAAA,CAAA,IAAA,EAAgB,iBAAiC,EAAC,CAAA;AAAA,EAIlD;AAAA,EAEgB,GAAA,CAAI,KAAa,KAAA,EAA4B;AAC5D,IAAA,IAAI,KAAA,CAAM,QAAA,KAAa,IAAA,IAAQ,KAAA,CAAM,YAAY,IAAA,EAAM;AACtD,MAAA,IAAA,CAAK,aAAA,CAAc,KAAK,KAAK,CAAA;AAAA,IAC9B;AAEA,IAAA,OAAO,KAAA,CAAM,GAAA,CAAI,GAAA,EAAK,KAAK,CAAA;AAAA,EAC5B;AAAA,EAEgB,OAAO,GAAA,EAAsB;AAC5C,IAAA,MAAM,KAAA,GAAQ,KAAK,aAAA,CAAc,SAAA,CAAU,CAAC,IAAA,KAAS,IAAA,CAAK,SAAS,GAAG,CAAA;AAGtE,IAAA,IAAI,UAAU,EAAA,EAAI,IAAA,CAAK,aAAA,CAAc,MAAA,CAAO,OAAO,CAAC,CAAA;AAEpD,IAAA,OAAO,KAAA,CAAM,OAAO,GAAG,CAAA;AAAA,EACxB;AAAA,EAEgB,KAAA,GAAc;AAC7B,IAAA,IAAA,CAAK,cAAc,MAAA,GAAS,CAAA;AAC5B,IAAA,OAAO,MAAM,KAAA,EAAM;AAAA,EACpB;AACD,CAAA;AA5BgF,MAAA,CAAA,mBAAA,EAAA,oBAAA,CAAA;AAAzE,IAAM,kBAAA,GAAN","file":"ScheduledTaskStore.mjs","sourcesContent":["import { Store } from '@sapphire/pieces';\nimport { ScheduledTask } from './ScheduledTask';\n\n/**\n * A store for managing scheduled tasks.\n */\nexport class ScheduledTaskStore extends Store<ScheduledTask, 'scheduled-tasks'> {\n\tpublic readonly repeatedTasks: ScheduledTask[] = [];\n\n\tpublic constructor() {\n\t\tsuper(ScheduledTask, { name: 'scheduled-tasks' });\n\t}\n\n\tpublic override set(key: string, value: ScheduledTask): this {\n\t\tif (value.interval !== null || value.pattern !== null) {\n\t\t\tthis.repeatedTasks.push(value);\n\t\t}\n\n\t\treturn super.set(key, value);\n\t}\n\n\tpublic override delete(key: string): boolean {\n\t\tconst index = this.repeatedTasks.findIndex((task) => task.name === key);\n\n\t\t// If the scheduled task was found, remove it\n\t\tif (index !== -1) this.repeatedTasks.splice(index, 1);\n\n\t\treturn super.delete(key);\n\t}\n\n\tpublic override clear(): void {\n\t\tthis.repeatedTasks.length = 0;\n\t\treturn super.clear();\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/types/ScheduledTaskEvents.ts"],"names":[],"mappings":";;;AAMO,IAAM,mBAAsB,GAAA;AAAA;AAAA;AAAA;AAAA,EAIlC,qBAAuB,EAAA,uBAAA;AAAA;AAAA;AAAA;AAAA,EAIvB,gBAAkB,EAAA,kBAAA;AAAA;AAAA;AAAA;AAAA,EAIlB,kBAAoB,EAAA,oBAAA;AAAA;AAAA;AAAA;AAAA,EAIpB,oBAAsB,EAAA,sBAAA;AAAA;AAAA;AAAA;AAAA,EAItB,qBAAuB,EAAA,uBAAA;AAAA;AAAA;AAAA;AAAA,EAIvB,iCAAmC,EAAA,mCAAA;AAAA;AAAA;AAAA;AAAA,EAInC,gCAAkC,EAAA,kCAAA;AAAA;AAAA;AAAA;AAAA,EAIlC,gCAAkC,EAAA;AACnC","file":"ScheduledTaskEvents.mjs","sourcesContent":["import { ScheduledTask } from '../structures/ScheduledTask';\n\n/**\n * Events emitted during the process setting up the scheduler and running a task.\n * You can use these events to trace the progress for debugging purposes.\n */\nexport const ScheduledTaskEvents = {\n\t/**\n\t * Event that is emitted if a task piece is not found in the store\n\t */\n\tScheduledTaskNotFound: 'scheduledTaskNotFound' as const,\n\t/**\n\t * Event that is emitted before a task's \"run\" method is called\n\t */\n\tScheduledTaskRun: 'scheduledTaskRun' as const,\n\t/**\n\t * Event that is emitted when a task's \"run\" method throws an error\n\t */\n\tScheduledTaskError: 'scheduledTaskError' as const,\n\t/**\n\t * Event that is emitted when a tasks's \"run\" method is successful\n\t */\n\tScheduledTaskSuccess: 'scheduledTaskSuccess' as const,\n\t/**\n\t * Event that is emitted when a task's \"run\" method finishes, regardless of whether an error occurred or not\n\t */\n\tScheduledTaskFinished: 'scheduledTaskFinished' as const,\n\t/**\n\t * Event that is emitted when the scheduler fails to connect to the server (i.e. redis)\n\t */\n\tScheduledTaskStrategyConnectError: 'scheduledTaskStrategyConnectError' as const,\n\t/**\n\t * Event that is emitted when the scheduled task client encounters an error.\n\t */\n\tScheduledTaskStrategyClientError: 'scheduledTaskStrategyClientError' as const,\n\t/**\n\t * Event that is emitted when the scheduled task worker encounters an error.\n\t */\n\tScheduledTaskStrategyWorkerError: 'scheduledTaskStrategyWorkerError' as const\n};\n\ndeclare module 'discord.js' {\n\tinterface ClientEvents {\n\t\t[ScheduledTaskEvents.ScheduledTaskNotFound]: [\n\t\t\ttask: string, //\n\t\t\tpayload: unknown\n\t\t];\n\t\t[ScheduledTaskEvents.ScheduledTaskRun]: [\n\t\t\ttask: ScheduledTask, //\n\t\t\tpayload: unknown\n\t\t];\n\t\t[ScheduledTaskEvents.ScheduledTaskError]: [\n\t\t\terror: unknown, //\n\t\t\ttask: ScheduledTask,\n\t\t\tpayload: unknown\n\t\t];\n\t\t[ScheduledTaskEvents.ScheduledTaskSuccess]: [\n\t\t\ttask: ScheduledTask, //\n\t\t\tpayload: unknown,\n\t\t\tresult: unknown,\n\t\t\tduration: number\n\t\t];\n\t\t[ScheduledTaskEvents.ScheduledTaskFinished]: [\n\t\t\ttask: ScheduledTask, //\n\t\t\tduration: number | null,\n\t\t\tpayload: unknown\n\t\t];\n\t\t[ScheduledTaskEvents.ScheduledTaskStrategyConnectError]: [error: unknown];\n\t\t[ScheduledTaskEvents.ScheduledTaskStrategyClientError]: [error: unknown];\n\t\t[ScheduledTaskEvents.ScheduledTaskStrategyWorkerError]: [error: unknown];\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/lib/types/ScheduledTaskEvents.ts"],"names":[],"mappings":";;;AAMO,IAAM,mBAAA,GAAsB;AAAA;AAAA;AAAA;AAAA,EAIlC,qBAAA,EAAuB,uBAAA;AAAA;AAAA;AAAA;AAAA,EAIvB,gBAAA,EAAkB,kBAAA;AAAA;AAAA;AAAA;AAAA,EAIlB,kBAAA,EAAoB,oBAAA;AAAA;AAAA;AAAA;AAAA,EAIpB,oBAAA,EAAsB,sBAAA;AAAA;AAAA;AAAA;AAAA,EAItB,qBAAA,EAAuB,uBAAA;AAAA;AAAA;AAAA;AAAA,EAIvB,iCAAA,EAAmC,mCAAA;AAAA;AAAA;AAAA;AAAA,EAInC,gCAAA,EAAkC,kCAAA;AAAA;AAAA;AAAA;AAAA,EAIlC,gCAAA,EAAkC;AACnC","file":"ScheduledTaskEvents.mjs","sourcesContent":["import { ScheduledTask } from '../structures/ScheduledTask';\n\n/**\n * Events emitted during the process setting up the scheduler and running a task.\n * You can use these events to trace the progress for debugging purposes.\n */\nexport const ScheduledTaskEvents = {\n\t/**\n\t * Event that is emitted if a task piece is not found in the store\n\t */\n\tScheduledTaskNotFound: 'scheduledTaskNotFound' as const,\n\t/**\n\t * Event that is emitted before a task's \"run\" method is called\n\t */\n\tScheduledTaskRun: 'scheduledTaskRun' as const,\n\t/**\n\t * Event that is emitted when a task's \"run\" method throws an error\n\t */\n\tScheduledTaskError: 'scheduledTaskError' as const,\n\t/**\n\t * Event that is emitted when a tasks's \"run\" method is successful\n\t */\n\tScheduledTaskSuccess: 'scheduledTaskSuccess' as const,\n\t/**\n\t * Event that is emitted when a task's \"run\" method finishes, regardless of whether an error occurred or not\n\t */\n\tScheduledTaskFinished: 'scheduledTaskFinished' as const,\n\t/**\n\t * Event that is emitted when the scheduler fails to connect to the server (i.e. redis)\n\t */\n\tScheduledTaskStrategyConnectError: 'scheduledTaskStrategyConnectError' as const,\n\t/**\n\t * Event that is emitted when the scheduled task client encounters an error.\n\t */\n\tScheduledTaskStrategyClientError: 'scheduledTaskStrategyClientError' as const,\n\t/**\n\t * Event that is emitted when the scheduled task worker encounters an error.\n\t */\n\tScheduledTaskStrategyWorkerError: 'scheduledTaskStrategyWorkerError' as const\n};\n\ndeclare module 'discord.js' {\n\tinterface ClientEvents {\n\t\t[ScheduledTaskEvents.ScheduledTaskNotFound]: [\n\t\t\ttask: string, //\n\t\t\tpayload: unknown\n\t\t];\n\t\t[ScheduledTaskEvents.ScheduledTaskRun]: [\n\t\t\ttask: ScheduledTask, //\n\t\t\tpayload: unknown\n\t\t];\n\t\t[ScheduledTaskEvents.ScheduledTaskError]: [\n\t\t\terror: unknown, //\n\t\t\ttask: ScheduledTask,\n\t\t\tpayload: unknown\n\t\t];\n\t\t[ScheduledTaskEvents.ScheduledTaskSuccess]: [\n\t\t\ttask: ScheduledTask, //\n\t\t\tpayload: unknown,\n\t\t\tresult: unknown,\n\t\t\tduration: number\n\t\t];\n\t\t[ScheduledTaskEvents.ScheduledTaskFinished]: [\n\t\t\ttask: ScheduledTask, //\n\t\t\tduration: number | null,\n\t\t\tpayload: unknown\n\t\t];\n\t\t[ScheduledTaskEvents.ScheduledTaskStrategyConnectError]: [error: unknown];\n\t\t[ScheduledTaskEvents.ScheduledTaskStrategyClientError]: [error: unknown];\n\t\t[ScheduledTaskEvents.ScheduledTaskStrategyWorkerError]: [error: unknown];\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/listeners/PluginScheduledTaskError.ts"],"names":[],"mappings":";;;;;AAIO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuB,QAAwD,CAAA;AAAA,EACpF,YAAY,OAAiC,EAAA;AACnD,IAAA,KAAA,CAAM,OAAS,EAAA;AAAA,MACd,MAAM,mBAAoB,CAAA,kBAAA;AAAA,MAC1B,OAAO,mBAAoB,CAAA;AAAA,KAC3B,CAAA;AAAA;AACF,EAEgB,GAAA,CAAI,OAAgB,IAAqB,EAAA;AACxD,IAAM,MAAA,EAAE,IAAM,EAAA,QAAA,EAAa,GAAA,IAAA;AAC3B,IAAK,IAAA,CAAA,SAAA,CAAU,OAAO,KAAM,CAAA,CAAA,qCAAA,EAAwC,IAAI,CAAc,WAAA,EAAA,QAAA,CAAS,IAAI,CAAA,CAAA,CAAA,EAAK,KAAK,CAAA;AAAA;AAE/G,CAAA;AAZ4F,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA;AAArF,IAAM,cAAN,GAAA","file":"PluginScheduledTaskError.mjs","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport { ScheduledTaskEvents } from '../lib/types/ScheduledTaskEvents';\nimport { ScheduledTask } from '../lib/structures/ScheduledTask';\n\nexport class PluginListener extends Listener<typeof ScheduledTaskEvents.ScheduledTaskError> {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, {\n\t\t\tname: ScheduledTaskEvents.ScheduledTaskError,\n\t\t\tevent: ScheduledTaskEvents.ScheduledTaskError\n\t\t});\n\t}\n\n\tpublic override run(error: unknown, task: ScheduledTask) {\n\t\tconst { name, location } = task;\n\t\tthis.container.logger.error(`Encountered error on scheduled task \"${name}\" at path \"${location.full}\"`, error);\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/listeners/PluginScheduledTaskError.ts"],"names":[],"mappings":";;;;;AAIO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuB,QAAA,CAAwD;AAAA,EACpF,YAAY,OAAA,EAAiC;AACnD,IAAA,KAAA,CAAM,OAAA,EAAS;AAAA,MACd,MAAM,mBAAA,CAAoB,kBAAA;AAAA,MAC1B,OAAO,mBAAA,CAAoB;AAAA,KAC3B,CAAA;AAAA,EACF;AAAA,EAEgB,GAAA,CAAI,OAAgB,IAAA,EAAqB;AACxD,IAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAS,GAAI,IAAA;AAC3B,IAAA,IAAA,CAAK,SAAA,CAAU,OAAO,KAAA,CAAM,CAAA,qCAAA,EAAwC,IAAI,CAAA,WAAA,EAAc,QAAA,CAAS,IAAI,CAAA,CAAA,CAAA,EAAK,KAAK,CAAA;AAAA,EAC9G;AACD,CAAA;AAZ4F,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA;AAArF,IAAM,cAAA,GAAN","file":"PluginScheduledTaskError.mjs","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport { ScheduledTaskEvents } from '../lib/types/ScheduledTaskEvents';\nimport { ScheduledTask } from '../lib/structures/ScheduledTask';\n\nexport class PluginListener extends Listener<typeof ScheduledTaskEvents.ScheduledTaskError> {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, {\n\t\t\tname: ScheduledTaskEvents.ScheduledTaskError,\n\t\t\tevent: ScheduledTaskEvents.ScheduledTaskError\n\t\t});\n\t}\n\n\tpublic override run(error: unknown, task: ScheduledTask) {\n\t\tconst { name, location } = task;\n\t\tthis.container.logger.error(`Encountered error on scheduled task \"${name}\" at path \"${location.full}\"`, error);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/listeners/PluginScheduledTaskNotFound.ts"],"names":[],"mappings":";;;;AAGO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuB,QAA2D,CAAA;AAAA,EACvF,YAAY,OAAiC,EAAA;AACnD,IAAA,KAAA,CAAM,OAAS,EAAA;AAAA,MACd,MAAM,mBAAoB,CAAA,qBAAA;AAAA,MAC1B,OAAO,mBAAoB,CAAA;AAAA,KAC3B,CAAA;AAAA;AACF,EAEgB,IAAI,IAAc,EAAA;AACjC,IAAA,IAAA,CAAK,SAAU,CAAA,MAAA,CAAO,KAAM,CAAA,CAAA,mDAAA,EAAsD,IAAI,CAAG,CAAA,CAAA,CAAA;AAAA;AAE3F,CAAA;AAX+F,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA;AAAxF,IAAM,cAAN,GAAA","file":"PluginScheduledTaskNotFound.mjs","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport { ScheduledTaskEvents } from '../lib/types/ScheduledTaskEvents';\n\nexport class PluginListener extends Listener<typeof ScheduledTaskEvents.ScheduledTaskNotFound> {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, {\n\t\t\tname: ScheduledTaskEvents.ScheduledTaskNotFound,\n\t\t\tevent: ScheduledTaskEvents.ScheduledTaskNotFound\n\t\t});\n\t}\n\n\tpublic override run(task: string) {\n\t\tthis.container.logger.error(`[ScheduledTaskPlugin] There was no task found for \"${task}\"`);\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/listeners/PluginScheduledTaskNotFound.ts"],"names":[],"mappings":";;;;AAGO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuB,QAAA,CAA2D;AAAA,EACvF,YAAY,OAAA,EAAiC;AACnD,IAAA,KAAA,CAAM,OAAA,EAAS;AAAA,MACd,MAAM,mBAAA,CAAoB,qBAAA;AAAA,MAC1B,OAAO,mBAAA,CAAoB;AAAA,KAC3B,CAAA;AAAA,EACF;AAAA,EAEgB,IAAI,IAAA,EAAc;AACjC,IAAA,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,KAAA,CAAM,CAAA,mDAAA,EAAsD,IAAI,CAAA,CAAA,CAAG,CAAA;AAAA,EAC1F;AACD,CAAA;AAX+F,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA;AAAxF,IAAM,cAAA,GAAN","file":"PluginScheduledTaskNotFound.mjs","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport { ScheduledTaskEvents } from '../lib/types/ScheduledTaskEvents';\n\nexport class PluginListener extends Listener<typeof ScheduledTaskEvents.ScheduledTaskNotFound> {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, {\n\t\t\tname: ScheduledTaskEvents.ScheduledTaskNotFound,\n\t\t\tevent: ScheduledTaskEvents.ScheduledTaskNotFound\n\t\t});\n\t}\n\n\tpublic override run(task: string) {\n\t\tthis.container.logger.error(`[ScheduledTaskPlugin] There was no task found for \"${task}\"`);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/listeners/PluginScheduledTaskStrategyClientError.ts"],"names":[],"mappings":";;;;AAGO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuB,QAAsE,CAAA;AAAA,EAClG,YAAY,OAAiC,EAAA;AACnD,IAAA,KAAA,CAAM,OAAS,EAAA;AAAA,MACd,MAAM,mBAAoB,CAAA,gCAAA;AAAA,MAC1B,OAAO,mBAAoB,CAAA;AAAA,KAC3B,CAAA;AAAA;AACF,EAEgB,IAAI,KAAgB,EAAA;AACnC,IAAA,IAAA,CAAK,SAAU,CAAA,MAAA,CAAO,KAAM,CAAA,CAAA,iEAAA,CAAA,EAAqE,KAAK,CAAA;AAAA;AAExG,CAAA;AAX0G,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA;AAAnG,IAAM,cAAN,GAAA","file":"PluginScheduledTaskStrategyClientError.mjs","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport { ScheduledTaskEvents } from '../lib/types/ScheduledTaskEvents';\n\nexport class PluginListener extends Listener<typeof ScheduledTaskEvents.ScheduledTaskStrategyClientError> {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, {\n\t\t\tname: ScheduledTaskEvents.ScheduledTaskStrategyClientError,\n\t\t\tevent: ScheduledTaskEvents.ScheduledTaskStrategyClientError\n\t\t});\n\t}\n\n\tpublic override run(error: unknown) {\n\t\tthis.container.logger.error(`[ScheduledTaskPlugin] Scheduled Task handler encountered an error`, error);\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/listeners/PluginScheduledTaskStrategyClientError.ts"],"names":[],"mappings":";;;;AAGO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuB,QAAA,CAAsE;AAAA,EAClG,YAAY,OAAA,EAAiC;AACnD,IAAA,KAAA,CAAM,OAAA,EAAS;AAAA,MACd,MAAM,mBAAA,CAAoB,gCAAA;AAAA,MAC1B,OAAO,mBAAA,CAAoB;AAAA,KAC3B,CAAA;AAAA,EACF;AAAA,EAEgB,IAAI,KAAA,EAAgB;AACnC,IAAA,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,KAAA,CAAM,CAAA,iEAAA,CAAA,EAAqE,KAAK,CAAA;AAAA,EACvG;AACD,CAAA;AAX0G,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA;AAAnG,IAAM,cAAA,GAAN","file":"PluginScheduledTaskStrategyClientError.mjs","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport { ScheduledTaskEvents } from '../lib/types/ScheduledTaskEvents';\n\nexport class PluginListener extends Listener<typeof ScheduledTaskEvents.ScheduledTaskStrategyClientError> {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, {\n\t\t\tname: ScheduledTaskEvents.ScheduledTaskStrategyClientError,\n\t\t\tevent: ScheduledTaskEvents.ScheduledTaskStrategyClientError\n\t\t});\n\t}\n\n\tpublic override run(error: unknown) {\n\t\tthis.container.logger.error(`[ScheduledTaskPlugin] Scheduled Task handler encountered an error`, error);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/listeners/PluginScheduledTaskStrategyConnectError.ts"],"names":[],"mappings":";;;;AAGO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuB,QAAuE,CAAA;AAAA,EACnG,YAAY,OAAiC,EAAA;AACnD,IAAA,KAAA,CAAM,OAAS,EAAA;AAAA,MACd,MAAM,mBAAoB,CAAA,iCAAA;AAAA,MAC1B,OAAO,mBAAoB,CAAA;AAAA,KAC3B,CAAA;AAAA;AACF,EAEgB,IAAI,KAAgB,EAAA;AACnC,IAAA,IAAA,CAAK,SAAU,CAAA,MAAA,CAAO,KAAM,CAAA,CAAA,uFAAA,CAAA,EAA2F,KAAK,CAAA;AAAA;AAE9H,CAAA;AAX2G,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA;AAApG,IAAM,cAAN,GAAA","file":"PluginScheduledTaskStrategyConnectError.mjs","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport { ScheduledTaskEvents } from '../lib/types/ScheduledTaskEvents';\n\nexport class PluginListener extends Listener<typeof ScheduledTaskEvents.ScheduledTaskStrategyConnectError> {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, {\n\t\t\tname: ScheduledTaskEvents.ScheduledTaskStrategyConnectError,\n\t\t\tevent: ScheduledTaskEvents.ScheduledTaskStrategyConnectError\n\t\t});\n\t}\n\n\tpublic override run(error: unknown) {\n\t\tthis.container.logger.error(`[ScheduledTaskPlugin] Encountered an error when trying to connect to the Redis instance`, error);\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/listeners/PluginScheduledTaskStrategyConnectError.ts"],"names":[],"mappings":";;;;AAGO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuB,QAAA,CAAuE;AAAA,EACnG,YAAY,OAAA,EAAiC;AACnD,IAAA,KAAA,CAAM,OAAA,EAAS;AAAA,MACd,MAAM,mBAAA,CAAoB,iCAAA;AAAA,MAC1B,OAAO,mBAAA,CAAoB;AAAA,KAC3B,CAAA;AAAA,EACF;AAAA,EAEgB,IAAI,KAAA,EAAgB;AACnC,IAAA,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,KAAA,CAAM,CAAA,uFAAA,CAAA,EAA2F,KAAK,CAAA;AAAA,EAC7H;AACD,CAAA;AAX2G,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA;AAApG,IAAM,cAAA,GAAN","file":"PluginScheduledTaskStrategyConnectError.mjs","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport { ScheduledTaskEvents } from '../lib/types/ScheduledTaskEvents';\n\nexport class PluginListener extends Listener<typeof ScheduledTaskEvents.ScheduledTaskStrategyConnectError> {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, {\n\t\t\tname: ScheduledTaskEvents.ScheduledTaskStrategyConnectError,\n\t\t\tevent: ScheduledTaskEvents.ScheduledTaskStrategyConnectError\n\t\t});\n\t}\n\n\tpublic override run(error: unknown) {\n\t\tthis.container.logger.error(`[ScheduledTaskPlugin] Encountered an error when trying to connect to the Redis instance`, error);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/listeners/PluginScheduledTaskStrategyWorkerError.ts"],"names":[],"mappings":";;;;AAGO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuB,QAAsE,CAAA;AAAA,EAClG,YAAY,OAAiC,EAAA;AACnD,IAAA,KAAA,CAAM,OAAS,EAAA;AAAA,MACd,MAAM,mBAAoB,CAAA,gCAAA;AAAA,MAC1B,OAAO,mBAAoB,CAAA;AAAA,KAC3B,CAAA;AAAA;AACF,EAEgB,IAAI,KAAgB,EAAA;AACnC,IAAA,IAAA,CAAK,SAAU,CAAA,MAAA,CAAO,KAAM,CAAA,CAAA,4DAAA,CAAA,EAAgE,KAAK,CAAA;AAAA;AAEnG,CAAA;AAX0G,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA;AAAnG,IAAM,cAAN,GAAA","file":"PluginScheduledTaskStrategyWorkerError.mjs","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport { ScheduledTaskEvents } from '../lib/types/ScheduledTaskEvents';\n\nexport class PluginListener extends Listener<typeof ScheduledTaskEvents.ScheduledTaskStrategyWorkerError> {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, {\n\t\t\tname: ScheduledTaskEvents.ScheduledTaskStrategyWorkerError,\n\t\t\tevent: ScheduledTaskEvents.ScheduledTaskStrategyWorkerError\n\t\t});\n\t}\n\n\tpublic override run(error: unknown) {\n\t\tthis.container.logger.error(`[ScheduledTaskPlugin] The BullMQ worker encountered an error`, error);\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/listeners/PluginScheduledTaskStrategyWorkerError.ts"],"names":[],"mappings":";;;;AAGO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuB,QAAA,CAAsE;AAAA,EAClG,YAAY,OAAA,EAAiC;AACnD,IAAA,KAAA,CAAM,OAAA,EAAS;AAAA,MACd,MAAM,mBAAA,CAAoB,gCAAA;AAAA,MAC1B,OAAO,mBAAA,CAAoB;AAAA,KAC3B,CAAA;AAAA,EACF;AAAA,EAEgB,IAAI,KAAA,EAAgB;AACnC,IAAA,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,KAAA,CAAM,CAAA,4DAAA,CAAA,EAAgE,KAAK,CAAA;AAAA,EAClG;AACD,CAAA;AAX0G,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA;AAAnG,IAAM,cAAA,GAAN","file":"PluginScheduledTaskStrategyWorkerError.mjs","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport { ScheduledTaskEvents } from '../lib/types/ScheduledTaskEvents';\n\nexport class PluginListener extends Listener<typeof ScheduledTaskEvents.ScheduledTaskStrategyWorkerError> {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, {\n\t\t\tname: ScheduledTaskEvents.ScheduledTaskStrategyWorkerError,\n\t\t\tevent: ScheduledTaskEvents.ScheduledTaskStrategyWorkerError\n\t\t});\n\t}\n\n\tpublic override run(error: unknown) {\n\t\tthis.container.logger.error(`[ScheduledTaskPlugin] The BullMQ worker encountered an error`, error);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/listeners/_load.ts"],"names":["PluginScheduledTaskError","PluginScheduledTaskNotFound","PluginScheduledTaskStrategyConnectError","PluginScheduledTaskStrategyClientError","PluginScheduledTaskStrategyWorkerError"],"mappings":";;;;;;;;AAOO,SAAS,aAAgB,GAAA;AAC/B,EAAA,MAAM,KAAQ,GAAA,WAAA;AACd,EAAK,KAAA,SAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,0BAA4B,EAAA,KAAA,EAAOA,cAA0B,EAAA,KAAA,EAAO,CAAA;AAC5G,EAAK,KAAA,SAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,6BAA+B,EAAA,KAAA,EAAOC,gBAA6B,EAAA,KAAA,EAAO,CAAA;AAClH,EAAK,KAAA,SAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,yCAA2C,EAAA,KAAA,EAAOC,gBAAyC,EAAA,KAAA,EAAO,CAAA;AAC1I,EAAK,KAAA,SAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,wCAA0C,EAAA,KAAA,EAAOC,gBAAwC,EAAA,KAAA,EAAO,CAAA;AACxI,EAAK,KAAA,SAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,wCAA0C,EAAA,KAAA,EAAOC,gBAAwC,EAAA,KAAA,EAAO,CAAA;AACzI;AAPgB,MAAA,CAAA,aAAA,EAAA,eAAA,CAAA","file":"_load.mjs","sourcesContent":["import { container } from '@sapphire/pieces';\nimport { PluginListener as PluginScheduledTaskError } from './PluginScheduledTaskError';\nimport { PluginListener as PluginScheduledTaskNotFound } from './PluginScheduledTaskNotFound';\nimport { PluginListener as PluginScheduledTaskStrategyConnectError } from './PluginScheduledTaskStrategyConnectError';\nimport { PluginListener as PluginScheduledTaskStrategyClientError } from './PluginScheduledTaskStrategyClientError';\nimport { PluginListener as PluginScheduledTaskStrategyWorkerError } from './PluginScheduledTaskStrategyWorkerError';\n\nexport function loadListeners() {\n\tconst store = 'listeners' as const;\n\tvoid container.stores.loadPiece({ name: 'PluginScheduledTaskError', piece: PluginScheduledTaskError, store });\n\tvoid container.stores.loadPiece({ name: 'PluginScheduledTaskNotFound', piece: PluginScheduledTaskNotFound, store });\n\tvoid container.stores.loadPiece({ name: 'PluginScheduledTaskStrategyConnectError', piece: PluginScheduledTaskStrategyConnectError, store });\n\tvoid container.stores.loadPiece({ name: 'PluginScheduledTaskStrategyClientError', piece: PluginScheduledTaskStrategyClientError, store });\n\tvoid container.stores.loadPiece({ name: 'PluginScheduledTaskStrategyWorkerError', piece: PluginScheduledTaskStrategyWorkerError, store });\n}\n"]}
1
+ {"version":3,"sources":["../../../src/listeners/_load.ts"],"names":["PluginScheduledTaskError","PluginScheduledTaskNotFound","PluginScheduledTaskStrategyConnectError","PluginScheduledTaskStrategyClientError","PluginScheduledTaskStrategyWorkerError"],"mappings":";;;;;;;;AAOO,SAAS,aAAA,GAAgB;AAC/B,EAAA,MAAM,KAAA,GAAQ,WAAA;AACd,EAAA,KAAK,SAAA,CAAU,OAAO,SAAA,CAAU,EAAE,MAAM,0BAAA,EAA4B,KAAA,EAAOA,cAAA,EAA0B,KAAA,EAAO,CAAA;AAC5G,EAAA,KAAK,SAAA,CAAU,OAAO,SAAA,CAAU,EAAE,MAAM,6BAAA,EAA+B,KAAA,EAAOC,gBAAA,EAA6B,KAAA,EAAO,CAAA;AAClH,EAAA,KAAK,SAAA,CAAU,OAAO,SAAA,CAAU,EAAE,MAAM,yCAAA,EAA2C,KAAA,EAAOC,gBAAA,EAAyC,KAAA,EAAO,CAAA;AAC1I,EAAA,KAAK,SAAA,CAAU,OAAO,SAAA,CAAU,EAAE,MAAM,wCAAA,EAA0C,KAAA,EAAOC,gBAAA,EAAwC,KAAA,EAAO,CAAA;AACxI,EAAA,KAAK,SAAA,CAAU,OAAO,SAAA,CAAU,EAAE,MAAM,wCAAA,EAA0C,KAAA,EAAOC,gBAAA,EAAwC,KAAA,EAAO,CAAA;AACzI;AAPgB,MAAA,CAAA,aAAA,EAAA,eAAA,CAAA","file":"_load.mjs","sourcesContent":["import { container } from '@sapphire/pieces';\nimport { PluginListener as PluginScheduledTaskError } from './PluginScheduledTaskError';\nimport { PluginListener as PluginScheduledTaskNotFound } from './PluginScheduledTaskNotFound';\nimport { PluginListener as PluginScheduledTaskStrategyConnectError } from './PluginScheduledTaskStrategyConnectError';\nimport { PluginListener as PluginScheduledTaskStrategyClientError } from './PluginScheduledTaskStrategyClientError';\nimport { PluginListener as PluginScheduledTaskStrategyWorkerError } from './PluginScheduledTaskStrategyWorkerError';\n\nexport function loadListeners() {\n\tconst store = 'listeners' as const;\n\tvoid container.stores.loadPiece({ name: 'PluginScheduledTaskError', piece: PluginScheduledTaskError, store });\n\tvoid container.stores.loadPiece({ name: 'PluginScheduledTaskNotFound', piece: PluginScheduledTaskNotFound, store });\n\tvoid container.stores.loadPiece({ name: 'PluginScheduledTaskStrategyConnectError', piece: PluginScheduledTaskStrategyConnectError, store });\n\tvoid container.stores.loadPiece({ name: 'PluginScheduledTaskStrategyClientError', piece: PluginScheduledTaskStrategyClientError, store });\n\tvoid container.stores.loadPiece({ name: 'PluginScheduledTaskStrategyWorkerError', piece: PluginScheduledTaskStrategyWorkerError, store });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/register.ts"],"names":[],"mappings":";;;;AAUO,IAAM,qBAAA,GAAN,MAAM,qBAAA,SAA6B,MAAO,CAAA;AAAA,EAA1C,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACN,IAAO,aAAA,CAAA,IAAA,EAAA,SAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAIP,QAAe,yBAAyB,CAAA,CAAwB,OAA8B,EAAA;AAC7F,IAAA,SAAA,CAAU,KAAQ,GAAA,IAAI,oBAAqB,CAAA,OAAA,CAAQ,KAAK,CAAA;AAAA;AACzD;AAAA;AAAA;AAAA,EAKA,QAAe,kBAAkB,CAAA,CAAwB,OAA8B,EAAA;AACtF,IAAA,IAAA,CAAK,MAAO,CAAA,QAAA,CAAS,IAAI,kBAAA,EAAoB,CAAA;AAE7C,IAAI,IAAA,OAAA,CAAQ,oCAAoC,KAAO,EAAA;AACtD,MAAc,aAAA,EAAA;AAAA;AACf;AACD;AAAA;AAAA;AAAA,EAKA,QAAe,SAAS,CAA8B,GAAA;AACrD,IAAK,KAAA,SAAA,CAAU,MAAM,cAAe,EAAA;AAAA;AAEtC,CAAA;AA1BiD,MAAA,CAAA,qBAAA,EAAA,sBAAA,CAAA;AAA1C,IAAM,oBAAN,GAAA;AA4BP,cAAA,CAAe,OAAQ,CAAA,qCAAA;AAAA,EACtB,qBAAqB,yBAAyB,CAAA;AAAA,EAC9C;AACD,CAAA;AAEA,cAAA,CAAe,OAAQ,CAAA,8BAAA,CAA+B,oBAAqB,CAAA,kBAAkB,GAAG,mCAAmC,CAAA;AAEnI,cAAA,CAAe,OAAQ,CAAA,qBAAA,CAAsB,oBAAqB,CAAA,SAAS,GAAG,0BAA0B,CAAA","file":"register.mjs","sourcesContent":["import './index';\n\nimport { container, Plugin, postInitialization, postLogin, preGenericsInitialization, SapphireClient } from '@sapphire/framework';\nimport type { ClientOptions } from 'discord.js';\nimport { loadListeners, ScheduledTaskHandler, ScheduledTaskStore } from './index';\n\n/**\n * A plugin for scheduling tasks in a SapphireClient.\n * @since 1.0.0\n */\nexport class ScheduledTasksPlugin extends Plugin {\n\tpublic service: string | undefined;\n\t/**\n\t * @since 1.0.0\n\t */\n\tpublic static [preGenericsInitialization](this: SapphireClient, options: ClientOptions): void {\n\t\tcontainer.tasks = new ScheduledTaskHandler(options.tasks);\n\t}\n\n\t/**\n\t * @since 1.0.0\n\t */\n\tpublic static [postInitialization](this: SapphireClient, options: ClientOptions): void {\n\t\tthis.stores.register(new ScheduledTaskStore());\n\n\t\tif (options.loadScheduledTaskErrorListeners !== false) {\n\t\t\tloadListeners();\n\t\t}\n\t}\n\n\t/**\n\t * @since 1.0.0\n\t */\n\tpublic static [postLogin](this: SapphireClient): void {\n\t\tvoid container.tasks.createRepeated();\n\t}\n}\n\nSapphireClient.plugins.registerPreGenericsInitializationHook(\n\tScheduledTasksPlugin[preGenericsInitialization],\n\t'Scheduled-Task-PreGenericsInitialization'\n);\n\nSapphireClient.plugins.registerPostInitializationHook(ScheduledTasksPlugin[postInitialization], 'Scheduled-Task-PostInitialization');\n\nSapphireClient.plugins.registerPostLoginHook(ScheduledTasksPlugin[postLogin], 'Scheduled-Task-PostLogin');\n"]}
1
+ {"version":3,"sources":["../../src/register.ts"],"names":[],"mappings":";;;;AAUO,IAAM,qBAAA,GAAN,MAAM,qBAAA,SAA6B,MAAA,CAAO;AAAA,EAA1C,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACN,IAAA,aAAA,CAAA,IAAA,EAAO,SAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAIP,QAAe,yBAAyB,CAAA,CAAwB,OAAA,EAA8B;AAC7F,IAAA,SAAA,CAAU,KAAA,GAAQ,IAAI,oBAAA,CAAqB,OAAA,CAAQ,KAAK,CAAA;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA,EAKA,QAAe,kBAAkB,CAAA,CAAwB,OAAA,EAA8B;AACtF,IAAA,IAAA,CAAK,MAAA,CAAO,QAAA,CAAS,IAAI,kBAAA,EAAoB,CAAA;AAE7C,IAAA,IAAI,OAAA,CAAQ,oCAAoC,KAAA,EAAO;AACtD,MAAA,aAAA,EAAc;AAAA,IACf;AAAA,EACD;AAAA;AAAA;AAAA;AAAA,EAKA,QAAe,SAAS,CAAA,GAA8B;AACrD,IAAA,KAAK,SAAA,CAAU,MAAM,cAAA,EAAe;AAAA,EACrC;AACD,CAAA;AA1BiD,MAAA,CAAA,qBAAA,EAAA,sBAAA,CAAA;AAA1C,IAAM,oBAAA,GAAN;AA4BP,cAAA,CAAe,OAAA,CAAQ,qCAAA;AAAA,EACtB,qBAAqB,yBAAyB,CAAA;AAAA,EAC9C;AACD,CAAA;AAEA,cAAA,CAAe,OAAA,CAAQ,8BAAA,CAA+B,oBAAA,CAAqB,kBAAkB,GAAG,mCAAmC,CAAA;AAEnI,cAAA,CAAe,OAAA,CAAQ,qBAAA,CAAsB,oBAAA,CAAqB,SAAS,GAAG,0BAA0B,CAAA","file":"register.mjs","sourcesContent":["import './index';\n\nimport { container, Plugin, postInitialization, postLogin, preGenericsInitialization, SapphireClient } from '@sapphire/framework';\nimport type { ClientOptions } from 'discord.js';\nimport { loadListeners, ScheduledTaskHandler, ScheduledTaskStore } from './index';\n\n/**\n * A plugin for scheduling tasks in a SapphireClient.\n * @since 1.0.0\n */\nexport class ScheduledTasksPlugin extends Plugin {\n\tpublic service: string | undefined;\n\t/**\n\t * @since 1.0.0\n\t */\n\tpublic static [preGenericsInitialization](this: SapphireClient, options: ClientOptions): void {\n\t\tcontainer.tasks = new ScheduledTaskHandler(options.tasks);\n\t}\n\n\t/**\n\t * @since 1.0.0\n\t */\n\tpublic static [postInitialization](this: SapphireClient, options: ClientOptions): void {\n\t\tthis.stores.register(new ScheduledTaskStore());\n\n\t\tif (options.loadScheduledTaskErrorListeners !== false) {\n\t\t\tloadListeners();\n\t\t}\n\t}\n\n\t/**\n\t * @since 1.0.0\n\t */\n\tpublic static [postLogin](this: SapphireClient): void {\n\t\tvoid container.tasks.createRepeated();\n\t}\n}\n\nSapphireClient.plugins.registerPreGenericsInitializationHook(\n\tScheduledTasksPlugin[preGenericsInitialization],\n\t'Scheduled-Task-PreGenericsInitialization'\n);\n\nSapphireClient.plugins.registerPostInitializationHook(ScheduledTasksPlugin[postInitialization], 'Scheduled-Task-PostInitialization');\n\nSapphireClient.plugins.registerPostLoginHook(ScheduledTasksPlugin[postLogin], 'Scheduled-Task-PostLogin');\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapphire/plugin-scheduled-tasks",
3
- "version": "10.0.4-next.e18dc27",
3
+ "version": "10.0.4",
4
4
  "description": "Plugin for @sapphire/framework to have scheduled tasks",
5
5
  "author": "@sapphire",
6
6
  "license": "MIT",
@@ -51,14 +51,14 @@
51
51
  "dependencies": {
52
52
  "@sapphire/stopwatch": "^1.5.4",
53
53
  "@sapphire/utilities": "^3.18.2",
54
- "bullmq": "5.53.2"
54
+ "bullmq": "5.58.7"
55
55
  },
56
56
  "devDependencies": {
57
57
  "@favware/cliff-jumper": "^6.0.0",
58
58
  "@favware/rollup-type-bundler": "^4.0.0",
59
- "concurrently": "^9.1.2",
59
+ "concurrently": "^9.2.1",
60
60
  "tsup": "^8.5.0",
61
- "tsx": "^4.19.4",
61
+ "tsx": "^4.20.5",
62
62
  "typedoc": "^0.26.11",
63
63
  "typedoc-json-parser": "^10.2.0",
64
64
  "typescript": "~5.4.5"