@dudousxd/nestjs-durable-core 0.62.0 → 0.62.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -5776,6 +5776,43 @@ __name(collectMetrics, "collectMetrics");
5776
5776
 
5777
5777
  // src/scheduler.ts
5778
5778
  var import_node_module = require("module");
5779
+
5780
+ // src/cron-compat.ts
5781
+ function isIndexable(value) {
5782
+ return typeof value === "object" && value !== null || typeof value === "function";
5783
+ }
5784
+ __name(isIndexable, "isIndexable");
5785
+ function unwrapDefault(module_) {
5786
+ if (!isIndexable(module_)) return module_;
5787
+ if (Reflect.get(module_, "parseExpression") !== void 0) return module_;
5788
+ if (Reflect.get(module_, "CronExpressionParser") !== void 0) return module_;
5789
+ const inner = Reflect.get(module_, "default");
5790
+ return inner === void 0 ? module_ : inner;
5791
+ }
5792
+ __name(unwrapDefault, "unwrapDefault");
5793
+ function v4Entry(module_) {
5794
+ if (!isIndexable(module_)) return void 0;
5795
+ const parse = Reflect.get(module_, "parseExpression");
5796
+ if (typeof parse !== "function") return void 0;
5797
+ return (expr, options) => parse.call(module_, expr, options);
5798
+ }
5799
+ __name(v4Entry, "v4Entry");
5800
+ function v5Entry(module_) {
5801
+ if (!isIndexable(module_)) return void 0;
5802
+ const parser = Reflect.get(module_, "CronExpressionParser");
5803
+ if (!isIndexable(parser)) return void 0;
5804
+ const parse = Reflect.get(parser, "parse");
5805
+ if (typeof parse !== "function") return void 0;
5806
+ return (expr, options) => parse.call(parser, expr, options);
5807
+ }
5808
+ __name(v5Entry, "v5Entry");
5809
+ function resolveCronParse(module_) {
5810
+ const resolved = unwrapDefault(module_);
5811
+ return v4Entry(resolved) ?? v5Entry(resolved);
5812
+ }
5813
+ __name(resolveCronParse, "resolveCronParse");
5814
+
5815
+ // src/scheduler.ts
5779
5816
  var nodeRequire = (0, import_node_module.createRequire)(__importMetaUrl);
5780
5817
  var defaultSleep = /* @__PURE__ */ __name((ms) => new Promise((r) => setTimeout(r, ms)), "defaultSleep");
5781
5818
  function scheduledRunId(key, everyMs, nowMs) {
@@ -5784,7 +5821,7 @@ function scheduledRunId(key, everyMs, nowMs) {
5784
5821
  __name(scheduledRunId, "scheduledRunId");
5785
5822
  var cronParser;
5786
5823
  function loadCronParser() {
5787
- if (cronParser) return cronParser;
5824
+ if (cronParser !== void 0) return cronParser;
5788
5825
  try {
5789
5826
  cronParser = nodeRequire("cron-parser");
5790
5827
  } catch {
@@ -5794,12 +5831,14 @@ function loadCronParser() {
5794
5831
  }
5795
5832
  __name(loadCronParser, "loadCronParser");
5796
5833
  function prevCronFireMs(expr, nowMs, timezone = "UTC") {
5797
- const parser = loadCronParser();
5798
- const it = parser.parseExpression(expr, {
5834
+ const parse = resolveCronParse(loadCronParser());
5835
+ if (!parse) {
5836
+ throw new Error(`the installed "cron-parser" exposes neither v4's parseExpression nor v5's CronExpressionParser.parse \u2014 the supported range is ^4.0.0 || ^5.0.0.`);
5837
+ }
5838
+ return parse(expr, {
5799
5839
  currentDate: new Date(nowMs + 1),
5800
5840
  tz: timezone
5801
- });
5802
- return it.prev().toDate().getTime();
5841
+ }).prev().toDate().getTime();
5803
5842
  }
5804
5843
  __name(prevCronFireMs, "prevCronFireMs");
5805
5844
  function scheduleRunIdAt(s, nowMs) {