@memberjunction/scheduling-engine-base 3.4.0 → 4.1.0

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/README.md ADDED
@@ -0,0 +1,161 @@
1
+ # @memberjunction/scheduling-engine-base
2
+
3
+ Base scheduling engine providing metadata caching for MemberJunction's scheduled jobs system. Loads and caches job types, scheduled jobs, and recent runs. Can be used on both client and server.
4
+
5
+ ## Architecture
6
+
7
+ ```mermaid
8
+ graph TD
9
+ subgraph "@memberjunction/scheduling-engine-base"
10
+ A[SchedulingEngineBase] --> B[Job Types Cache]
11
+ A --> C[Scheduled Jobs Cache]
12
+ A --> D[Job Runs Cache]
13
+ A --> E[Polling Interval<br/>Calculator]
14
+ F[ScheduledJobEntityExtended] --> A
15
+ end
16
+
17
+ subgraph "Data Sources"
18
+ G["MJ: Scheduled Job Types"]
19
+ H["MJ: Scheduled Jobs"]
20
+ I["MJ: Scheduled Job Runs"]
21
+ end
22
+
23
+ G --> B
24
+ H --> C
25
+ I --> D
26
+
27
+ J["@memberjunction/scheduling-engine<br/>(Server Execution)"] -->|extends| A
28
+
29
+ style A fill:#2d6a9f,stroke:#1a4971,color:#fff
30
+ style B fill:#2d8659,stroke:#1a5c3a,color:#fff
31
+ style C fill:#2d8659,stroke:#1a5c3a,color:#fff
32
+ style D fill:#2d8659,stroke:#1a5c3a,color:#fff
33
+ style E fill:#7c5295,stroke:#563a6b,color:#fff
34
+ style F fill:#b8762f,stroke:#8a5722,color:#fff
35
+ style J fill:#7c5295,stroke:#563a6b,color:#fff
36
+ ```
37
+
38
+ ## Overview
39
+
40
+ This package provides two main components:
41
+
42
+ ### SchedulingEngineBase
43
+
44
+ A singleton engine that extends `BaseEngine` to load and cache scheduling metadata:
45
+
46
+ - **Job Types**: Plugin registry mapping job type names to driver classes
47
+ - **Scheduled Jobs**: Active (or all) scheduled jobs with their configurations
48
+ - **Job Runs**: Recent execution history (last 7 days, optional)
49
+ - **Polling Interval**: Adaptive polling interval calculation based on next run times
50
+ - **Lookup Methods**: Find job types by name or driver class, get jobs by type, get runs for a job
51
+
52
+ ### ScheduledJobEntityExtended
53
+
54
+ An extended entity class registered via `@RegisterClass` that adds helper properties and methods to `ScheduledJobEntity`:
55
+
56
+ - **Lock Management**: `IsLocked`, `IsLockStale`, `CurrentLockHolder` properties
57
+ - **Concurrency**: `AllowsConcurrent`, `QueuesOverlappingRuns`, `SkipsOverlappingRuns`
58
+ - **Statistics**: `SuccessRate`, `FailureRate` percentage calculations
59
+ - **Timing**: `GetTimeUntilNextRun()` millisecond calculation
60
+ - **Auto-Notifications**: Overrides `Save()` and `Delete()` to auto-refresh engine metadata and recalculate polling intervals
61
+
62
+ ## Installation
63
+
64
+ ```bash
65
+ npm install @memberjunction/scheduling-engine-base
66
+ ```
67
+
68
+ ## Usage
69
+
70
+ ### Loading Metadata
71
+
72
+ ```typescript
73
+ import { SchedulingEngineBase } from '@memberjunction/scheduling-engine-base';
74
+
75
+ const engine = SchedulingEngineBase.Instance;
76
+
77
+ // Load active jobs only (default)
78
+ await engine.Config(false, contextUser);
79
+
80
+ // Load all jobs with recent runs
81
+ await engine.Config(false, contextUser, undefined, true, true);
82
+ ```
83
+
84
+ ### Accessing Cached Data
85
+
86
+ ```typescript
87
+ // Job types (plugin registry)
88
+ const jobTypes = engine.ScheduledJobTypes;
89
+ const agentType = engine.GetJobTypeByName('Agent');
90
+ const byDriver = engine.GetJobTypeByDriverClass('ScheduledJobAgent');
91
+
92
+ // Scheduled jobs
93
+ const activeJobs = engine.ScheduledJobs;
94
+ const agentJobs = engine.GetJobsByType(agentType.ID);
95
+
96
+ // Job runs
97
+ const runs = engine.GetRunsForJob(jobId);
98
+
99
+ // Adaptive polling
100
+ engine.UpdatePollingInterval();
101
+ const interval = engine.ActivePollingInterval; // ms, or null if no jobs
102
+ ```
103
+
104
+ ### Using Extended Entity
105
+
106
+ ```typescript
107
+ import { ScheduledJobEntityExtended } from '@memberjunction/scheduling-engine-base';
108
+
109
+ const job = activeJobs[0] as ScheduledJobEntityExtended;
110
+
111
+ console.log(job.IsLocked); // Is currently being executed?
112
+ console.log(job.IsLockStale); // Has the lock expired?
113
+ console.log(job.SuccessRate); // e.g., 95.5
114
+ console.log(job.AllowsConcurrent); // Can run in parallel?
115
+ console.log(job.GetTimeUntilNextRun()); // ms until next execution
116
+ ```
117
+
118
+ ## API Reference
119
+
120
+ ### SchedulingEngineBase
121
+
122
+ | Member | Type | Description |
123
+ |--------|------|-------------|
124
+ | `Instance` | static getter | Singleton instance |
125
+ | `Config()` | method | Load scheduling metadata with options |
126
+ | `ScheduledJobTypes` | getter | All job type definitions |
127
+ | `ScheduledJobs` | getter | Active (or all) scheduled jobs |
128
+ | `ScheduledJobRuns` | getter | Recent job runs (if loaded) |
129
+ | `GetJobTypeByName()` | method | Find job type by name |
130
+ | `GetJobTypeByDriverClass()` | method | Find job type by driver class |
131
+ | `GetJobsByType()` | method | Get all jobs of a specific type |
132
+ | `GetRunsForJob()` | method | Get runs for a specific job |
133
+ | `ActivePollingInterval` | getter | Current polling interval (ms) or null |
134
+ | `UpdatePollingInterval()` | method | Recalculate optimal polling interval |
135
+
136
+ ## Relationship to Other Scheduling Packages
137
+
138
+ ```mermaid
139
+ graph LR
140
+ A["base-types<br/>(Interfaces)"] --> B["base-engine<br/>(Metadata Cache)"]
141
+ B --> C["engine<br/>(Execution)"]
142
+ A --> D["actions<br/>(Agentic Tools)"]
143
+
144
+ style A fill:#2d6a9f,stroke:#1a4971,color:#fff
145
+ style B fill:#2d8659,stroke:#1a5c3a,color:#fff
146
+ style C fill:#7c5295,stroke:#563a6b,color:#fff
147
+ style D fill:#b8762f,stroke:#8a5722,color:#fff
148
+ ```
149
+
150
+ ## Dependencies
151
+
152
+ | Package | Purpose |
153
+ |---------|---------|
154
+ | `@memberjunction/core` | BaseEngine, UserInfo, IMetadataProvider |
155
+ | `@memberjunction/core-entities` | ScheduledJobEntity, ScheduledJobTypeEntity, ScheduledJobRunEntity |
156
+ | `@memberjunction/global` | RegisterClass decorator |
157
+ | `@memberjunction/scheduling-base-types` | Shared type definitions |
158
+
159
+ ## License
160
+
161
+ ISC
@@ -65,9 +65,4 @@ export declare class ScheduledJobEntityExtended extends ScheduledJobEntity {
65
65
  */
66
66
  private notifyEngineOfChange;
67
67
  }
68
- /**
69
- * Loader function to ensure this class is registered
70
- * Prevents tree-shaking from removing the class
71
- */
72
- export declare function LoadScheduledJobEntityExtended(): void;
73
68
  //# sourceMappingURL=ScheduledJobEntityExtended.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScheduledJobEntityExtended.d.ts","sourceRoot":"","sources":["../src/ScheduledJobEntityExtended.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAInE;;;;;;;GAOG;AACH,qBACa,0BAA2B,SAAQ,kBAAkB;IAC9D;;;;OAIG;IACI,mBAAmB,IAAI,MAAM;IAOpC;;OAEG;IACH,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED;;OAEG;IACH,IAAW,WAAW,IAAI,OAAO,CAKhC;IAED;;OAEG;IACH,IAAW,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAE5C;IAED;;OAEG;IACH,IAAW,gBAAgB,IAAI,OAAO,CAErC;IAED;;OAEG;IACH,IAAW,qBAAqB,IAAI,OAAO,CAE1C;IAED;;OAEG;IACH,IAAW,oBAAoB,IAAI,OAAO,CAEzC;IAED;;OAEG;IACH,IAAW,WAAW,IAAI,MAAM,CAK/B;IAED;;OAEG;IACH,IAAW,WAAW,IAAI,MAAM,CAK/B;IAED;;OAEG;IACmB,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB3D;;OAEG;IACmB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAgBhD;;;;OAIG;YACW,oBAAoB;CASrC;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,IAAI,IAAI,CAErD"}
1
+ {"version":3,"file":"ScheduledJobEntityExtended.d.ts","sourceRoot":"","sources":["../src/ScheduledJobEntityExtended.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAInE;;;;;;;GAOG;AACH,qBACa,0BAA2B,SAAQ,kBAAkB;IAC9D;;;;OAIG;IACI,mBAAmB,IAAI,MAAM;IAOpC;;OAEG;IACH,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED;;OAEG;IACH,IAAW,WAAW,IAAI,OAAO,CAKhC;IAED;;OAEG;IACH,IAAW,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAE5C;IAED;;OAEG;IACH,IAAW,gBAAgB,IAAI,OAAO,CAErC;IAED;;OAEG;IACH,IAAW,qBAAqB,IAAI,OAAO,CAE1C;IAED;;OAEG;IACH,IAAW,oBAAoB,IAAI,OAAO,CAEzC;IAED;;OAEG;IACH,IAAW,WAAW,IAAI,MAAM,CAK/B;IAED;;OAEG;IACH,IAAW,WAAW,IAAI,MAAM,CAK/B;IAED;;OAEG;IACmB,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB3D;;OAEG;IACmB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAgBhD;;;;OAIG;YACW,oBAAoB;CASrC"}
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /**
3
2
  * @fileoverview Extended ScheduledJob entity with helper methods
4
3
  * @module @memberjunction/scheduling-engine-base
@@ -9,11 +8,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
9
8
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
10
9
  return c > 3 && r && Object.defineProperty(target, key, r), r;
11
10
  };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.LoadScheduledJobEntityExtended = exports.ScheduledJobEntityExtended = void 0;
14
- const core_entities_1 = require("@memberjunction/core-entities");
15
- const global_1 = require("@memberjunction/global");
16
- const SchedulingEngineBase_1 = require("./SchedulingEngineBase");
11
+ import { ScheduledJobEntity } from '@memberjunction/core-entities';
12
+ import { RegisterClass } from '@memberjunction/global';
13
+ import { SchedulingEngineBase } from './SchedulingEngineBase.js';
17
14
  /**
18
15
  * Extended ScheduledJob entity with scheduling helper methods
19
16
  *
@@ -22,7 +19,7 @@ const SchedulingEngineBase_1 = require("./SchedulingEngineBase");
22
19
  * - Determining minimum intervals
23
20
  * - Validating cron expressions
24
21
  */
25
- let ScheduledJobEntityExtended = class ScheduledJobEntityExtended extends core_entities_1.ScheduledJobEntity {
22
+ let ScheduledJobEntityExtended = class ScheduledJobEntityExtended extends ScheduledJobEntity {
26
23
  /**
27
24
  * Calculate time in milliseconds until next execution
28
25
  * Note: Requires cron-parser, which is not available in base-engine
@@ -131,23 +128,15 @@ let ScheduledJobEntityExtended = class ScheduledJobEntityExtended extends core_e
131
128
  * @private
132
129
  */
133
130
  async notifyEngineOfChange() {
134
- const engine = SchedulingEngineBase_1.SchedulingEngineBase.Instance;
131
+ const engine = SchedulingEngineBase.Instance;
135
132
  // Force reload of job metadata
136
133
  await engine.Config(true, this.ContextCurrentUser);
137
134
  // Recalculate polling interval (will set to null if no jobs)
138
135
  engine.UpdatePollingInterval();
139
136
  }
140
137
  };
141
- exports.ScheduledJobEntityExtended = ScheduledJobEntityExtended;
142
- exports.ScheduledJobEntityExtended = ScheduledJobEntityExtended = __decorate([
143
- (0, global_1.RegisterClass)(core_entities_1.ScheduledJobEntity, 'ScheduledJobEntityExtended')
138
+ ScheduledJobEntityExtended = __decorate([
139
+ RegisterClass(ScheduledJobEntity, 'ScheduledJobEntityExtended')
144
140
  ], ScheduledJobEntityExtended);
145
- /**
146
- * Loader function to ensure this class is registered
147
- * Prevents tree-shaking from removing the class
148
- */
149
- function LoadScheduledJobEntityExtended() {
150
- // No-op function, just ensures class is loaded
151
- }
152
- exports.LoadScheduledJobEntityExtended = LoadScheduledJobEntityExtended;
141
+ export { ScheduledJobEntityExtended };
153
142
  //# sourceMappingURL=ScheduledJobEntityExtended.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScheduledJobEntityExtended.js","sourceRoot":"","sources":["../src/ScheduledJobEntityExtended.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScheduledJobEntityExtended.js","sourceRoot":"","sources":["../src/ScheduledJobEntityExtended.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,8 @@
1
- "use strict";
2
1
  /**
3
2
  * @fileoverview Base scheduling engine with metadata caching
4
3
  * @module @memberjunction/scheduling-engine-base
5
4
  */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.SchedulingEngineBase = void 0;
8
- const core_1 = require("@memberjunction/core");
5
+ import { BaseEngine } from '@memberjunction/core';
9
6
  /**
10
7
  * Base engine for scheduling system with metadata caching
11
8
  *
@@ -17,7 +14,7 @@ const core_1 = require("@memberjunction/core");
17
14
  * Can be used anywhere (client or server) for accessing scheduling metadata.
18
15
  * For actual job execution, use SchedulingEngine from @memberjunction/scheduling-engine.
19
16
  */
20
- class SchedulingEngineBase extends core_1.BaseEngine {
17
+ export class SchedulingEngineBase extends BaseEngine {
21
18
  constructor() {
22
19
  super(...arguments);
23
20
  this._scheduledJobTypes = [];
@@ -155,5 +152,4 @@ class SchedulingEngineBase extends core_1.BaseEngine {
155
152
  return super.getInstance();
156
153
  }
157
154
  }
158
- exports.SchedulingEngineBase = SchedulingEngineBase;
159
155
  //# sourceMappingURL=SchedulingEngineBase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SchedulingEngineBase.js","sourceRoot":"","sources":["../src/SchedulingEngineBase.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+CAAyG;AAGzG;;;;;;;;;;GAUG;AACH,MAAa,oBAAqB,SAAQ,iBAAgC;IAA1E;;QACY,uBAAkB,GAA6B,EAAE,CAAC;QAClD,mBAAc,GAAyB,EAAE,CAAC;QAC1C,sBAAiB,GAA4B,EAAE,CAAC;QAChD,2BAAsB,GAAkB,KAAK,CAAC,CAAC,wCAAwC;IA2JnG,CAAC;IAzJG;;;;;;;;OAQG;IACI,KAAK,CAAC,MAAM,CACf,YAAsB,EACtB,WAAsB,EACtB,QAA4B,EAC5B,cAAuB,KAAK,EAC5B,iBAA0B,KAAK;QAE/B,MAAM,OAAO,GAAwC;YACjD;gBACI,UAAU,EAAE,yBAAyB;gBACrC,YAAY,EAAE,oBAAoB;gBAClC,UAAU,EAAE,IAAI;aACnB;YACD;gBACI,UAAU,EAAE,oBAAoB;gBAChC,YAAY,EAAE,gBAAgB;gBAC9B,UAAU,EAAE,IAAI;aACnB;SACJ,CAAC;QAEF,8BAA8B;QAC9B,IAAI,WAAW,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC;gBACT,UAAU,EAAE,wBAAwB;gBACpC,YAAY,EAAE,mBAAmB;aACpC,CAAC,CAAC;QACP,CAAC;QAED,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAE9D,0CAA0C;QAC1C,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;QACjF,CAAC;QAED,uCAAuC;QACvC,IAAI,WAAW,EAAE,CAAC;YACd,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;YAChC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YACjD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,YAAY,CAAC,CAAC;QAC7F,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,IAAW,iBAAiB;QACxB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAED;;OAEG;IACI,gBAAgB,CAAC,IAAY;QAChC,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACI,uBAAuB,CAAC,WAAmB;QAC9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,SAAiB;QAClC,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,KAAa;QAC9B,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC;IAC1E,CAAC;IAED;;;OAGG;IACH,IAAW,qBAAqB;QAC5B,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACvC,CAAC;IAED;;;OAGG;IACI,qBAAqB;QACxB,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,+BAA+B;YAC/B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;YACnC,OAAO;QACX,CAAC;QAED,8DAA8D;QAC9D,IAAI,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACpC,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;gBAC5C,SAAS;YACb,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,CAAC;YACjE,IAAI,aAAa,GAAG,WAAW,EAAE,CAAC;gBAC9B,WAAW,GAAG,aAAa,CAAC;YAChC,CAAC;QACL,CAAC;QAED,iEAAiE;QACjE,uDAAuD;QACvD,IAAI,WAAW,KAAK,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC1C,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,CAAC,qBAAqB;QAC9D,CAAC;aAAM,CAAC;YACJ,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;YACjD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;QACrF,CAAC;IACL,CAAC;IAED;;OAEG;IACI,MAAM,KAAK,QAAQ;QACtB,OAAO,KAAK,CAAC,WAAW,EAAwB,CAAC;IACrD,CAAC;CACJ;AA/JD,oDA+JC"}
1
+ {"version":3,"file":"SchedulingEngineBase.js","sourceRoot":"","sources":["../src/SchedulingEngineBase.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,10 +2,6 @@
2
2
  * @fileoverview Main export for Scheduling Engine Base
3
3
  * @module @memberjunction/scheduling-engine-base
4
4
  */
5
- export * from './SchedulingEngineBase';
6
- export * from './ScheduledJobEntityExtended';
7
- /**
8
- * Loader function to ensure all extended classes are registered
9
- */
10
- export declare function LoadBaseSchedulingEngine(): void;
5
+ export * from './SchedulingEngineBase.js';
6
+ export * from './ScheduledJobEntityExtended.js';
11
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAE7C;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC"}
package/dist/index.js CHANGED
@@ -1,32 +1,7 @@
1
- "use strict";
2
1
  /**
3
2
  * @fileoverview Main export for Scheduling Engine Base
4
3
  * @module @memberjunction/scheduling-engine-base
5
4
  */
6
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
- if (k2 === undefined) k2 = k;
8
- var desc = Object.getOwnPropertyDescriptor(m, k);
9
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
- desc = { enumerable: true, get: function() { return m[k]; } };
11
- }
12
- Object.defineProperty(o, k2, desc);
13
- }) : (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- o[k2] = m[k];
16
- }));
17
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
- };
20
- Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.LoadBaseSchedulingEngine = void 0;
22
- const ScheduledJobEntityExtended_1 = require("./ScheduledJobEntityExtended");
23
- __exportStar(require("./SchedulingEngineBase"), exports);
24
- __exportStar(require("./ScheduledJobEntityExtended"), exports);
25
- /**
26
- * Loader function to ensure all extended classes are registered
27
- */
28
- function LoadBaseSchedulingEngine() {
29
- (0, ScheduledJobEntityExtended_1.LoadScheduledJobEntityExtended)();
30
- }
31
- exports.LoadBaseSchedulingEngine = LoadBaseSchedulingEngine;
5
+ export * from './SchedulingEngineBase.js';
6
+ export * from './ScheduledJobEntityExtended.js';
32
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,6EAA8E;AAE9E,yDAAuC;AACvC,+DAA6C;AAE7C;;GAEG;AACH,SAAgB,wBAAwB;IACpC,IAAA,2DAA8B,GAAE,CAAC;AACrC,CAAC;AAFD,4DAEC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@memberjunction/scheduling-engine-base",
3
- "version": "3.4.0",
3
+ "type": "module",
4
+ "version": "4.1.0",
4
5
  "description": "MemberJunction: Base Scheduling Engine Package - extended entity types and metadata caching, can be used anywhere.",
5
6
  "main": "dist/index.js",
6
7
  "types": "dist/index.d.ts",
@@ -8,20 +9,20 @@
8
9
  "/dist"
9
10
  ],
10
11
  "scripts": {
11
- "build": "tsc",
12
+ "build": "tsc && tsc-alias -f",
12
13
  "watch": "tsc --watch"
13
14
  },
14
15
  "author": "MemberJunction.com",
15
16
  "license": "ISC",
16
17
  "dependencies": {
17
- "@memberjunction/core": "3.4.0",
18
- "@memberjunction/global": "3.4.0",
19
- "@memberjunction/core-entities": "3.4.0",
20
- "@memberjunction/scheduling-base-types": "3.4.0"
18
+ "@memberjunction/core": "4.1.0",
19
+ "@memberjunction/global": "4.1.0",
20
+ "@memberjunction/core-entities": "4.1.0",
21
+ "@memberjunction/scheduling-base-types": "4.1.0"
21
22
  },
22
23
  "devDependencies": {
23
- "@types/node": "20.14.2",
24
- "typescript": "^5.4.5"
24
+ "@types/node": "24.10.11",
25
+ "typescript": "^5.9.3"
25
26
  },
26
27
  "repository": {
27
28
  "type": "git",