@tinyrack/tinyauth-server 0.0.14 → 0.0.16

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 (172) hide show
  1. package/dist/entities/background-job.entity.d.ts +111 -0
  2. package/dist/entities/background-job.entity.d.ts.map +1 -0
  3. package/dist/entities/background-job.entity.js +41 -0
  4. package/dist/entities/background-job.entity.js.map +1 -0
  5. package/dist/entities/scheduler-job.entity.d.ts +134 -0
  6. package/dist/entities/scheduler-job.entity.d.ts.map +1 -0
  7. package/dist/entities/scheduler-job.entity.js +48 -0
  8. package/dist/entities/scheduler-job.entity.js.map +1 -0
  9. package/dist/entrypoints/app.d.ts +42 -2
  10. package/dist/entrypoints/app.d.ts.map +1 -1
  11. package/dist/entrypoints/database/postgres/compiled-functions.d.ts +280 -170
  12. package/dist/entrypoints/database/postgres/compiled-functions.d.ts.map +1 -1
  13. package/dist/entrypoints/database/postgres/compiled-functions.js +3442 -2124
  14. package/dist/entrypoints/database/postgres/compiled-functions.js.map +1 -1
  15. package/dist/entrypoints/database/postgres/postgres.d.ts +7 -2
  16. package/dist/entrypoints/database/postgres/postgres.d.ts.map +1 -1
  17. package/dist/entrypoints/database/postgres/postgres.js +3 -2
  18. package/dist/entrypoints/database/postgres/postgres.js.map +1 -1
  19. package/dist/entrypoints/database/sqlite/compiled-functions.d.ts +280 -170
  20. package/dist/entrypoints/database/sqlite/compiled-functions.d.ts.map +1 -1
  21. package/dist/entrypoints/database/sqlite/compiled-functions.js +3442 -2124
  22. package/dist/entrypoints/database/sqlite/compiled-functions.js.map +1 -1
  23. package/dist/entrypoints/database/sqlite/sqlite.d.ts +6 -2
  24. package/dist/entrypoints/database/sqlite/sqlite.d.ts.map +1 -1
  25. package/dist/entrypoints/database/sqlite/sqlite.js +2 -1
  26. package/dist/entrypoints/database/sqlite/sqlite.js.map +1 -1
  27. package/dist/entrypoints/identity-providers/apple.d.ts +1 -0
  28. package/dist/entrypoints/identity-providers/apple.d.ts.map +1 -1
  29. package/dist/entrypoints/identity-providers/apple.js +1 -0
  30. package/dist/entrypoints/identity-providers/apple.js.map +1 -1
  31. package/dist/entrypoints/identity-providers/generic-oauth.d.ts +2 -0
  32. package/dist/entrypoints/identity-providers/generic-oauth.d.ts.map +1 -1
  33. package/dist/entrypoints/identity-providers/generic-oauth.js +2 -0
  34. package/dist/entrypoints/identity-providers/generic-oauth.js.map +1 -1
  35. package/dist/entrypoints/scheduler/cron.d.ts +3 -0
  36. package/dist/entrypoints/scheduler/cron.d.ts.map +1 -0
  37. package/dist/entrypoints/scheduler/cron.js +34 -0
  38. package/dist/entrypoints/scheduler/cron.js.map +1 -0
  39. package/dist/entrypoints/scheduler/croner.d.ts +1 -1
  40. package/dist/entrypoints/scheduler/croner.d.ts.map +1 -1
  41. package/dist/entrypoints/scheduler/croner.js +27 -7
  42. package/dist/entrypoints/scheduler/croner.js.map +1 -1
  43. package/dist/entrypoints/scheduler/database.d.ts +38 -0
  44. package/dist/entrypoints/scheduler/database.d.ts.map +1 -0
  45. package/dist/entrypoints/scheduler/database.js +444 -0
  46. package/dist/entrypoints/scheduler/database.js.map +1 -0
  47. package/dist/entrypoints/scheduler/distributed-runner.d.ts +134 -0
  48. package/dist/entrypoints/scheduler/distributed-runner.d.ts.map +1 -0
  49. package/dist/entrypoints/scheduler/distributed-runner.js +327 -0
  50. package/dist/entrypoints/scheduler/distributed-runner.js.map +1 -0
  51. package/dist/lib/config/identity-providers.d.ts +4 -0
  52. package/dist/lib/config/identity-providers.d.ts.map +1 -1
  53. package/dist/lib/config/identity-providers.js +40 -0
  54. package/dist/lib/config/identity-providers.js.map +1 -1
  55. package/dist/lib/config/index.d.ts +2 -2
  56. package/dist/lib/config/index.d.ts.map +1 -1
  57. package/dist/lib/config/index.js +1 -1
  58. package/dist/lib/config/index.js.map +1 -1
  59. package/dist/lib/config/resolved.d.ts +3 -1
  60. package/dist/lib/config/resolved.d.ts.map +1 -1
  61. package/dist/lib/config/resolved.js +1 -1
  62. package/dist/lib/config/resolved.js.map +1 -1
  63. package/dist/lib/config/scheduler.d.ts +41 -2
  64. package/dist/lib/config/scheduler.d.ts.map +1 -1
  65. package/dist/lib/config/scheduler.js +9 -3
  66. package/dist/lib/config/scheduler.js.map +1 -1
  67. package/dist/lib/database/entities.d.ts.map +1 -1
  68. package/dist/lib/database/entities.js +4 -0
  69. package/dist/lib/database/entities.js.map +1 -1
  70. package/dist/lib/pkce.d.ts.map +1 -1
  71. package/dist/lib/pkce.js +5 -1
  72. package/dist/lib/pkce.js.map +1 -1
  73. package/dist/middleware/session.d.ts.map +1 -1
  74. package/dist/middleware/session.js +2 -0
  75. package/dist/middleware/session.js.map +1 -1
  76. package/dist/migrations/postgres/Migration20260512120000_add_scheduler_jobs.d.ts +5 -0
  77. package/dist/migrations/postgres/Migration20260512120000_add_scheduler_jobs.d.ts.map +1 -0
  78. package/dist/migrations/postgres/Migration20260512120000_add_scheduler_jobs.js +15 -0
  79. package/dist/migrations/postgres/Migration20260512120000_add_scheduler_jobs.js.map +1 -0
  80. package/dist/migrations/postgres/index.d.ts.map +1 -1
  81. package/dist/migrations/postgres/index.js +5 -1
  82. package/dist/migrations/postgres/index.js.map +1 -1
  83. package/dist/migrations/sqlite/Migration20260512120000_add_scheduler_jobs.d.ts +5 -0
  84. package/dist/migrations/sqlite/Migration20260512120000_add_scheduler_jobs.d.ts.map +1 -0
  85. package/dist/migrations/sqlite/Migration20260512120000_add_scheduler_jobs.js +13 -0
  86. package/dist/migrations/sqlite/Migration20260512120000_add_scheduler_jobs.js.map +1 -0
  87. package/dist/migrations/sqlite/index.d.ts.map +1 -1
  88. package/dist/migrations/sqlite/index.js +5 -1
  89. package/dist/migrations/sqlite/index.js.map +1 -1
  90. package/dist/repositories/background-job.repository.d.ts +5 -0
  91. package/dist/repositories/background-job.repository.d.ts.map +1 -0
  92. package/dist/repositories/background-job.repository.js +4 -0
  93. package/dist/repositories/background-job.repository.js.map +1 -0
  94. package/dist/repositories/scheduler-job.repository.d.ts +5 -0
  95. package/dist/repositories/scheduler-job.repository.d.ts.map +1 -0
  96. package/dist/repositories/scheduler-job.repository.js +4 -0
  97. package/dist/repositories/scheduler-job.repository.js.map +1 -0
  98. package/dist/routes/api/auth/passkey/verify/post.d.ts.map +1 -1
  99. package/dist/routes/api/auth/passkey/verify/post.js +1 -1
  100. package/dist/routes/api/auth/passkey/verify/post.js.map +1 -1
  101. package/dist/routes/api/index.d.ts +38 -0
  102. package/dist/routes/api/index.d.ts.map +1 -1
  103. package/dist/routes/api/oauth/_provider/callback/get.d.ts +19 -0
  104. package/dist/routes/api/oauth/_provider/callback/get.d.ts.map +1 -1
  105. package/dist/routes/api/oauth/_provider/callback/get.js +19 -10
  106. package/dist/routes/api/oauth/_provider/callback/get.js.map +1 -1
  107. package/dist/routes/api/oauth/_provider/callback/post.d.ts +19 -0
  108. package/dist/routes/api/oauth/_provider/callback/post.d.ts.map +1 -1
  109. package/dist/routes/api/oauth/_provider/callback/post.js +19 -10
  110. package/dist/routes/api/oauth/_provider/callback/post.js.map +1 -1
  111. package/dist/routes/api/oauth/index.d.ts +38 -0
  112. package/dist/routes/api/oauth/index.d.ts.map +1 -1
  113. package/dist/routes/index.d.ts +39 -1
  114. package/dist/routes/index.d.ts.map +1 -1
  115. package/dist/routes/oauth/client-auth.d.ts +10 -0
  116. package/dist/routes/oauth/client-auth.d.ts.map +1 -0
  117. package/dist/routes/oauth/client-auth.js +57 -0
  118. package/dist/routes/oauth/client-auth.js.map +1 -0
  119. package/dist/routes/oauth/index.d.ts +1 -1
  120. package/dist/routes/oauth/introspect/post.d.ts.map +1 -1
  121. package/dist/routes/oauth/introspect/post.js +36 -12
  122. package/dist/routes/oauth/introspect/post.js.map +1 -1
  123. package/dist/routes/oauth/revoke/post.d.ts.map +1 -1
  124. package/dist/routes/oauth/revoke/post.js +30 -12
  125. package/dist/routes/oauth/revoke/post.js.map +1 -1
  126. package/dist/routes/oauth/token/post.d.ts +1 -1
  127. package/dist/routes/oauth/token/post.d.ts.map +1 -1
  128. package/dist/routes/oauth/token/post.js +31 -9
  129. package/dist/routes/oauth/token/post.js.map +1 -1
  130. package/dist/schemas/field.d.ts.map +1 -1
  131. package/dist/schemas/field.js +4 -0
  132. package/dist/schemas/field.js.map +1 -1
  133. package/dist/services/container.d.ts +4 -2
  134. package/dist/services/container.d.ts.map +1 -1
  135. package/dist/services/container.js +7 -1
  136. package/dist/services/container.js.map +1 -1
  137. package/dist/services/jwt.service.d.ts +1 -0
  138. package/dist/services/jwt.service.d.ts.map +1 -1
  139. package/dist/services/jwt.service.js +29 -18
  140. package/dist/services/jwt.service.js.map +1 -1
  141. package/dist/services/mikro.service.d.ts +4 -0
  142. package/dist/services/mikro.service.d.ts.map +1 -1
  143. package/dist/services/mikro.service.js +6 -0
  144. package/dist/services/mikro.service.js.map +1 -1
  145. package/dist/services/oauth-authorize.service.d.ts +1 -0
  146. package/dist/services/oauth-authorize.service.d.ts.map +1 -1
  147. package/dist/services/oauth-authorize.service.js +10 -1
  148. package/dist/services/oauth-authorize.service.js.map +1 -1
  149. package/dist/services/oauth-client.service.d.ts +2 -0
  150. package/dist/services/oauth-client.service.d.ts.map +1 -1
  151. package/dist/services/oauth-client.service.js +26 -0
  152. package/dist/services/oauth-client.service.js.map +1 -1
  153. package/dist/services/oauth-connect.service.d.ts +5 -8
  154. package/dist/services/oauth-connect.service.d.ts.map +1 -1
  155. package/dist/services/oauth-connect.service.js +99 -15
  156. package/dist/services/oauth-connect.service.js.map +1 -1
  157. package/dist/services/oauth-token.service.d.ts +3 -2
  158. package/dist/services/oauth-token.service.d.ts.map +1 -1
  159. package/dist/services/oauth-token.service.js +44 -22
  160. package/dist/services/oauth-token.service.js.map +1 -1
  161. package/dist/services/passkey.service.d.ts +1 -1
  162. package/dist/services/passkey.service.d.ts.map +1 -1
  163. package/dist/services/passkey.service.js +11 -3
  164. package/dist/services/passkey.service.js.map +1 -1
  165. package/dist/services/scheduler.service.d.ts +6 -1
  166. package/dist/services/scheduler.service.d.ts.map +1 -1
  167. package/dist/services/scheduler.service.js +44 -11
  168. package/dist/services/scheduler.service.js.map +1 -1
  169. package/package.json +5 -1
  170. package/public/assets/{index-KMvNrUPy.js → index-CLq6d6iO.js} +22 -22
  171. package/public/assets/{index-KMvNrUPy.js.map → index-CLq6d6iO.js.map} +1 -1
  172. package/public/index.html +1 -1
@@ -0,0 +1,327 @@
1
+ import { getNextCronRunAt } from "./cron.js";
2
+ const MAX_ERROR_LENGTH = 2000;
3
+ const MAX_CLEANUP_INTERVAL_MS = 24 * 60 * 60 * 1000;
4
+ function errorToMessage(err) {
5
+ const message = err instanceof Error ? err.message : String(err);
6
+ return message.slice(0, MAX_ERROR_LENGTH);
7
+ }
8
+ export class DistributedSchedulerRunner {
9
+ name;
10
+ pollIntervalMs;
11
+ lockTtlMs;
12
+ instanceId;
13
+ jobs;
14
+ logger;
15
+ store;
16
+ interval = null;
17
+ runningTick = null;
18
+ nextRunAt = null;
19
+ stopped = false;
20
+ constructor(options) {
21
+ this.name = options.name;
22
+ this.pollIntervalMs = options.pollIntervalMs;
23
+ this.lockTtlMs = options.lockTtlMs;
24
+ this.instanceId = options.instanceId;
25
+ this.jobs = new Map(options.jobs.map((job) => [job.id, job]));
26
+ this.logger = options.logger;
27
+ this.store = options.store;
28
+ }
29
+ async start() {
30
+ await this.reconcileJobs();
31
+ this.queueTick();
32
+ this.interval = setInterval(() => this.queueTick(), this.pollIntervalMs);
33
+ return {
34
+ stop: async () => {
35
+ this.stopped = true;
36
+ if (this.interval) {
37
+ clearInterval(this.interval);
38
+ this.interval = null;
39
+ }
40
+ if (this.runningTick) {
41
+ await this.runningTick;
42
+ }
43
+ },
44
+ getNextRunAt: () => this.nextRunAt,
45
+ };
46
+ }
47
+ queueTick() {
48
+ if (this.runningTick || this.stopped) {
49
+ return;
50
+ }
51
+ this.runningTick = this.runTick()
52
+ .catch((err) => {
53
+ this.logger?.error({ err }, `${this.name} scheduler tick failed`);
54
+ })
55
+ .finally(() => {
56
+ this.runningTick = null;
57
+ });
58
+ }
59
+ async reconcileJobs() {
60
+ const now = new Date();
61
+ const definitions = [...this.jobs.values()].map((job) => ({
62
+ id: job.id,
63
+ name: job.name,
64
+ cron: job.schedule.expression,
65
+ }));
66
+ await this.store.reconcileJobs(definitions, now);
67
+ this.nextRunAt = await this.store.findNextRunAt();
68
+ }
69
+ async runTick() {
70
+ while (!this.stopped) {
71
+ const now = new Date();
72
+ const lockedUntil = new Date(now.getTime() + this.lockTtlMs);
73
+ const acquired = await this.store.acquireDueJob(now, lockedUntil, this.instanceId);
74
+ if (!acquired) {
75
+ this.nextRunAt = await this.store.findNextRunAt();
76
+ return;
77
+ }
78
+ const job = this.jobs.get(acquired.id);
79
+ if (!job) {
80
+ await this.completeJob(acquired, new Error(`Missing scheduler handler: ${acquired.id}`));
81
+ continue;
82
+ }
83
+ const abortController = new AbortController();
84
+ const stopLeaseRenewal = this.startLeaseRenewal(acquired.id, () => {
85
+ abortController.abort();
86
+ });
87
+ try {
88
+ await job.handler({
89
+ logger: this.logger,
90
+ signal: abortController.signal,
91
+ });
92
+ await this.completeJob(acquired);
93
+ }
94
+ catch (err) {
95
+ await this.completeJob(acquired, err);
96
+ }
97
+ finally {
98
+ stopLeaseRenewal();
99
+ }
100
+ }
101
+ }
102
+ startLeaseRenewal(jobId, onLeaseLost) {
103
+ const renewIntervalMs = Math.max(1, Math.floor(this.lockTtlMs / 2));
104
+ let renewInFlight = false;
105
+ const interval = setInterval(() => {
106
+ if (renewInFlight) {
107
+ return;
108
+ }
109
+ renewInFlight = true;
110
+ const now = new Date();
111
+ const lockedUntil = new Date(now.getTime() + this.lockTtlMs);
112
+ void this.store
113
+ .renewLease(jobId, this.instanceId, lockedUntil, now)
114
+ .then((renewed) => {
115
+ if (!renewed) {
116
+ this.logger?.warn({ jobId, instanceId: this.instanceId }, `${this.name} scheduler lease renewal skipped because lease was lost`);
117
+ onLeaseLost();
118
+ }
119
+ })
120
+ .catch((err) => {
121
+ this.logger?.error({ err, jobId }, `${this.name} scheduler lease renewal failed`);
122
+ })
123
+ .finally(() => {
124
+ renewInFlight = false;
125
+ });
126
+ }, renewIntervalMs);
127
+ return () => clearInterval(interval);
128
+ }
129
+ async completeJob(job, err) {
130
+ const now = new Date();
131
+ const nextRunAt = getNextCronRunAt(job.cron, now);
132
+ const runCount = job.runCount + 1;
133
+ const completed = err === undefined
134
+ ? await this.store.completeJobSuccess({
135
+ jobId: job.id,
136
+ cron: job.cron,
137
+ instanceId: this.instanceId,
138
+ nextRunAt,
139
+ now,
140
+ runCount,
141
+ })
142
+ : await this.store.completeJobFailure({
143
+ jobId: job.id,
144
+ cron: job.cron,
145
+ instanceId: this.instanceId,
146
+ nextRunAt,
147
+ now,
148
+ runCount,
149
+ failureCount: job.failureCount + 1,
150
+ error: errorToMessage(err),
151
+ });
152
+ if (!completed) {
153
+ this.logger?.warn({ jobId: job.id, instanceId: this.instanceId }, `${this.name} scheduler completion skipped because lease was lost`);
154
+ }
155
+ this.nextRunAt = await this.store.findNextRunAt();
156
+ }
157
+ }
158
+ export class DistributedBackgroundJobRunner {
159
+ name;
160
+ pollIntervalMs;
161
+ lockTtlMs;
162
+ retryDelayMs;
163
+ maxAttempts;
164
+ retentionMs;
165
+ cleanupIntervalMs;
166
+ instanceId;
167
+ jobs;
168
+ logger;
169
+ store;
170
+ interval = null;
171
+ runningTick = null;
172
+ nextCleanupAt = 0;
173
+ stopped = false;
174
+ constructor(options) {
175
+ this.name = options.name;
176
+ this.pollIntervalMs = options.pollIntervalMs;
177
+ this.lockTtlMs = options.lockTtlMs;
178
+ this.retryDelayMs = options.retryDelayMs;
179
+ this.maxAttempts = options.maxAttempts;
180
+ this.retentionMs = options.retentionMs;
181
+ this.cleanupIntervalMs = Math.min(this.retentionMs, MAX_CLEANUP_INTERVAL_MS);
182
+ this.instanceId = options.instanceId;
183
+ this.jobs = new Map(options.jobs.map((job) => [job.id, job]));
184
+ this.logger = options.logger;
185
+ this.store = options.store;
186
+ }
187
+ start() {
188
+ this.queueTick();
189
+ this.interval = setInterval(() => this.queueTick(), this.pollIntervalMs);
190
+ return {
191
+ stop: async () => {
192
+ this.stopped = true;
193
+ if (this.interval) {
194
+ clearInterval(this.interval);
195
+ this.interval = null;
196
+ }
197
+ if (this.runningTick) {
198
+ await this.runningTick;
199
+ }
200
+ },
201
+ enqueue: async (options) => this.enqueue(options),
202
+ };
203
+ }
204
+ async enqueue(options) {
205
+ if (!this.jobs.has(options.jobId)) {
206
+ throw new Error(`Unknown background job: ${options.jobId}`);
207
+ }
208
+ const now = new Date();
209
+ return this.store.enqueue({
210
+ jobId: options.jobId,
211
+ payload: options.payload,
212
+ availableAt: options.runAt ?? now,
213
+ maxAttempts: this.maxAttempts,
214
+ now,
215
+ });
216
+ }
217
+ queueTick() {
218
+ if (this.runningTick || this.stopped) {
219
+ return;
220
+ }
221
+ this.runningTick = this.runTick()
222
+ .catch((err) => {
223
+ this.logger?.error({ err }, `${this.name} background job tick failed`);
224
+ })
225
+ .finally(() => {
226
+ this.runningTick = null;
227
+ });
228
+ }
229
+ async runTick() {
230
+ await this.cleanupCompletedJobs();
231
+ while (!this.stopped) {
232
+ const now = new Date();
233
+ const lockedUntil = new Date(now.getTime() + this.lockTtlMs);
234
+ const acquired = await this.store.acquireDueJob(now, lockedUntil, this.instanceId);
235
+ if (!acquired) {
236
+ return;
237
+ }
238
+ const job = this.jobs.get(acquired.jobId);
239
+ if (!job) {
240
+ await this.completeJob(acquired, new Error(`Missing background job handler: ${acquired.jobId}`));
241
+ continue;
242
+ }
243
+ const abortController = new AbortController();
244
+ const stopLeaseRenewal = this.startLeaseRenewal(acquired.id, () => {
245
+ abortController.abort();
246
+ });
247
+ try {
248
+ await job.handler(acquired.payload, {
249
+ logger: this.logger,
250
+ signal: abortController.signal,
251
+ });
252
+ await this.completeJob(acquired);
253
+ }
254
+ catch (err) {
255
+ await this.completeJob(acquired, err);
256
+ }
257
+ finally {
258
+ stopLeaseRenewal();
259
+ }
260
+ }
261
+ }
262
+ async cleanupCompletedJobs() {
263
+ if (!this.store.cleanupCompletedJobs) {
264
+ return;
265
+ }
266
+ const now = new Date();
267
+ if (now.getTime() < this.nextCleanupAt) {
268
+ return;
269
+ }
270
+ const before = new Date(now.getTime() - this.retentionMs);
271
+ await this.store.cleanupCompletedJobs(before);
272
+ this.nextCleanupAt = now.getTime() + this.cleanupIntervalMs;
273
+ }
274
+ startLeaseRenewal(id, onLeaseLost) {
275
+ const renewIntervalMs = Math.max(1, Math.floor(this.lockTtlMs / 2));
276
+ let renewInFlight = false;
277
+ const interval = setInterval(() => {
278
+ if (renewInFlight) {
279
+ return;
280
+ }
281
+ renewInFlight = true;
282
+ const now = new Date();
283
+ const lockedUntil = new Date(now.getTime() + this.lockTtlMs);
284
+ void this.store
285
+ .renewLease(id, this.instanceId, lockedUntil, now)
286
+ .then((renewed) => {
287
+ if (!renewed) {
288
+ this.logger?.warn({ id, instanceId: this.instanceId }, `${this.name} background job lease renewal skipped because lease was lost`);
289
+ onLeaseLost();
290
+ }
291
+ })
292
+ .catch((err) => {
293
+ this.logger?.error({ err, id }, `${this.name} background job lease renewal failed`);
294
+ })
295
+ .finally(() => {
296
+ renewInFlight = false;
297
+ });
298
+ }, renewIntervalMs);
299
+ return () => clearInterval(interval);
300
+ }
301
+ async completeJob(job, err) {
302
+ const now = new Date();
303
+ const completed = err === undefined
304
+ ? await this.store.completeJobSuccess({
305
+ id: job.id,
306
+ instanceId: this.instanceId,
307
+ now,
308
+ })
309
+ : await this.store.completeJobFailure({
310
+ id: job.id,
311
+ instanceId: this.instanceId,
312
+ now,
313
+ attemptCount: job.attemptCount,
314
+ retryAt: job.attemptCount < job.maxAttempts
315
+ ? new Date(now.getTime() + this.retryDelayMs)
316
+ : null,
317
+ error: errorToMessage(err),
318
+ });
319
+ if (!completed) {
320
+ this.logger?.warn({ id: job.id, instanceId: this.instanceId }, `${this.name} background job completion skipped because lease was lost`);
321
+ }
322
+ }
323
+ }
324
+ export function getDistributedSchedulerNextRunAt(cron, from) {
325
+ return getNextCronRunAt(cron, from);
326
+ }
327
+ //# sourceMappingURL=distributed-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"distributed-runner.js","sourceRoot":"","sources":["../../../src/entrypoints/scheduler/distributed-runner.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,uBAAuB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AA6HpD,SAAS,cAAc,CAAC,GAAY;IAClC,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,OAAO,0BAA0B;IACpB,IAAI,CAAS;IACb,cAAc,CAAS;IACvB,SAAS,CAAS;IAClB,UAAU,CAAS;IACnB,IAAI,CAA0C;IAC9C,MAAM,CAAqB;IAC3B,KAAK,CAA4B;IAE1C,QAAQ,GAA0C,IAAI,CAAC;IACvD,WAAW,GAAyB,IAAI,CAAC;IACzC,SAAS,GAAgB,IAAI,CAAC;IAC9B,OAAO,GAAG,KAAK,CAAC;IAExB,YAAY,OAA0C;QACpD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAEzE,OAAO;YACL,IAAI,EAAE,KAAK,IAAI,EAAE;gBACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACvB,CAAC;gBACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrB,MAAM,IAAI,CAAC,WAAW,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS;SACnC,CAAC;IACJ,CAAC;IAEO,SAAS;QACf,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE;aAC9B,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,wBAAwB,CAAC,CAAC;QACpE,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxD,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,UAAU;SAC9B,CAAC,CAAC,CAAC;QAEJ,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IACpD,CAAC;IAEO,KAAK,CAAC,OAAO;QACnB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAC7C,GAAG,EACH,WAAW,EACX,IAAI,CAAC,UAAU,CAChB,CAAC;YACF,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAClD,OAAO;YACT,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,IAAI,CAAC,WAAW,CACpB,QAAQ,EACR,IAAI,KAAK,CAAC,8BAA8B,QAAQ,CAAC,EAAE,EAAE,CAAC,CACvD,CAAC;gBACF,SAAS;YACX,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;YAC9C,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE;gBAChE,eAAe,CAAC,KAAK,EAAE,CAAC;YAC1B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,OAAO,CAAC;oBAChB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,eAAe,CAAC,MAAM;iBAC/B,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACxC,CAAC;oBAAS,CAAC;gBACT,gBAAgB,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,iBAAiB,CACvB,KAAa,EACb,WAAuB;QAEvB,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;QACpE,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO;YACT,CAAC;YACD,aAAa,GAAG,IAAI,CAAC;YACrB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7D,KAAK,IAAI,CAAC,KAAK;iBACZ,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,GAAG,CAAC;iBACpD,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;gBAChB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,EACtC,GAAG,IAAI,CAAC,IAAI,yDAAyD,CACtE,CAAC;oBACF,WAAW,EAAE,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,IAAI,CAAC,MAAM,EAAE,KAAK,CAChB,EAAE,GAAG,EAAE,KAAK,EAAE,EACd,GAAG,IAAI,CAAC,IAAI,iCAAiC,CAC9C,CAAC;YACJ,CAAC,CAAC;iBACD,OAAO,CAAC,GAAG,EAAE;gBACZ,aAAa,GAAG,KAAK,CAAC;YACxB,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,eAAe,CAAC,CAAC;QAEpB,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,GAAyB,EACzB,GAAa;QAEb,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;QAElC,MAAM,SAAS,GACb,GAAG,KAAK,SAAS;YACf,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;gBAClC,KAAK,EAAE,GAAG,CAAC,EAAE;gBACb,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,SAAS;gBACT,GAAG;gBACH,QAAQ;aACT,CAAC;YACJ,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;gBAClC,KAAK,EAAE,GAAG,CAAC,EAAE;gBACb,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,SAAS;gBACT,GAAG;gBACH,QAAQ;gBACR,YAAY,EAAE,GAAG,CAAC,YAAY,GAAG,CAAC;gBAClC,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC;aAC3B,CAAC,CAAC;QAET,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,EAC9C,GAAG,IAAI,CAAC,IAAI,sDAAsD,CACnE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IACpD,CAAC;CACF;AAED,MAAM,OAAO,8BAA8B;IACxB,IAAI,CAAS;IACb,cAAc,CAAS;IACvB,SAAS,CAAS;IAClB,YAAY,CAAS;IACrB,WAAW,CAAS;IACpB,WAAW,CAAS;IACpB,iBAAiB,CAAS;IAC1B,UAAU,CAAS;IACnB,IAAI,CAA2C;IAC/C,MAAM,CAAqB;IAC3B,KAAK,CAAgC;IAE9C,QAAQ,GAA0C,IAAI,CAAC;IACvD,WAAW,GAAyB,IAAI,CAAC;IACzC,aAAa,GAAG,CAAC,CAAC;IAClB,OAAO,GAAG,KAAK,CAAC;IAExB,YAAY,OAA8C;QACxD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAC/B,IAAI,CAAC,WAAW,EAChB,uBAAuB,CACxB,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC7B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAEzE,OAAO;YACL,IAAI,EAAE,KAAK,IAAI,EAAE;gBACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACvB,CAAC;gBACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrB,MAAM,IAAI,CAAC,WAAW,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;SAClD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CACX,OAA8C;QAE9C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG;YACjC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;IAEO,SAAS;QACf,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE;aAC9B,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,6BAA6B,CAAC,CAAC;QACzE,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,OAAO;QACnB,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAElC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAC7C,GAAG,EACH,WAAW,EACX,IAAI,CAAC,UAAU,CAChB,CAAC;YACF,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO;YACT,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,IAAI,CAAC,WAAW,CACpB,QAAQ,EACR,IAAI,KAAK,CAAC,mCAAmC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAC/D,CAAC;gBACF,SAAS;YACX,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;YAC9C,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE;gBAChE,eAAe,CAAC,KAAK,EAAE,CAAC;YAC1B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE;oBAClC,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,eAAe,CAAC,MAAM;iBAC/B,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACxC,CAAC;oBAAS,CAAC;gBACT,gBAAgB,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAChC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC;IAC9D,CAAC;IAEO,iBAAiB,CAAC,EAAU,EAAE,WAAuB;QAC3D,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;QACpE,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO;YACT,CAAC;YACD,aAAa,GAAG,IAAI,CAAC;YACrB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7D,KAAK,IAAI,CAAC,KAAK;iBACZ,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,GAAG,CAAC;iBACjD,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;gBAChB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,EACnC,GAAG,IAAI,CAAC,IAAI,8DAA8D,CAC3E,CAAC;oBACF,WAAW,EAAE,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,IAAI,CAAC,MAAM,EAAE,KAAK,CAChB,EAAE,GAAG,EAAE,EAAE,EAAE,EACX,GAAG,IAAI,CAAC,IAAI,sCAAsC,CACnD,CAAC;YACJ,CAAC,CAAC;iBACD,OAAO,CAAC,GAAG,EAAE;gBACZ,aAAa,GAAG,KAAK,CAAC;YACxB,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,eAAe,CAAC,CAAC;QAEpB,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,GAA0B,EAC1B,GAAa;QAEb,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,SAAS,GACb,GAAG,KAAK,SAAS;YACf,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;gBAClC,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,GAAG;aACJ,CAAC;YACJ,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;gBAClC,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,GAAG;gBACH,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,OAAO,EACL,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,WAAW;oBAChC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC7C,CAAC,CAAC,IAAI;gBACV,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC;aAC3B,CAAC,CAAC;QAET,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,EAC3C,GAAG,IAAI,CAAC,IAAI,2DAA2D,CACxE,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,gCAAgC,CAC9C,IAAY,EACZ,IAAU;IAEV,OAAO,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC"}
@@ -15,6 +15,8 @@ export declare const IdentityProviderConfigSchema: z.ZodObject<{
15
15
  authorization_url: z.ZodString;
16
16
  token_url: z.ZodString;
17
17
  userinfo_url: z.ZodNullable<z.ZodString>;
18
+ jwks_url: z.ZodOptional<z.ZodString>;
19
+ issuer: z.ZodOptional<z.ZodString>;
18
20
  email_url: z.ZodOptional<z.ZodString>;
19
21
  scopes: z.ZodArray<z.ZodString>;
20
22
  response_mode: z.ZodOptional<z.ZodString>;
@@ -48,6 +50,8 @@ export declare const IdentityProviderConfigsSchema: z.ZodDefault<z.ZodArray<z.Zo
48
50
  authorization_url: z.ZodString;
49
51
  token_url: z.ZodString;
50
52
  userinfo_url: z.ZodNullable<z.ZodString>;
53
+ jwks_url: z.ZodOptional<z.ZodString>;
54
+ issuer: z.ZodOptional<z.ZodString>;
51
55
  email_url: z.ZodOptional<z.ZodString>;
52
56
  scopes: z.ZodArray<z.ZodString>;
53
57
  response_mode: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"identity-providers.d.ts","sourceRoot":"","sources":["../../../src/lib/config/identity-providers.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AA8BpB,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA0Ce,CAAC;AAEzD,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAC1C,OAAO,4BAA4B,CACpC,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,sBAAsB,EAAO,CAAC;AAE9E,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAGuB,CAAC"}
1
+ {"version":3,"file":"identity-providers.d.ts","sourceRoot":"","sources":["../../../src/lib/config/identity-providers.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AA4DpB,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAiEe,CAAC;AAEzD,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAC1C,OAAO,4BAA4B,CACpC,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,sBAAsB,EAAO,CAAC;AAE9E,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAGuB,CAAC"}
@@ -1,4 +1,26 @@
1
1
  import z from 'zod';
2
+ const JwksUrlSchema = z
3
+ .string()
4
+ .url()
5
+ .refine((value) => {
6
+ try {
7
+ const { hostname, protocol } = new URL(value);
8
+ if (protocol === 'https:') {
9
+ return true;
10
+ }
11
+ return protocol === 'http:' && isLocalHttpHostname(hostname);
12
+ }
13
+ catch {
14
+ return false;
15
+ }
16
+ }, { message: 'JWKS URL must use HTTPS or local HTTP.' });
17
+ function isLocalHttpHostname(hostname) {
18
+ return (hostname === 'localhost' ||
19
+ hostname.endsWith('.localhost') ||
20
+ hostname === '127.0.0.1' ||
21
+ hostname === '[::1]' ||
22
+ hostname === '::1');
23
+ }
2
24
  const UserinfoMappingConfigSchema = z
3
25
  .object({
4
26
  id: z
@@ -44,6 +66,12 @@ export const IdentityProviderConfigSchema = z
44
66
  .string()
45
67
  .nullable()
46
68
  .describe('OAuth userinfo endpoint URL.'),
69
+ jwks_url: JwksUrlSchema.optional().describe('JWKS endpoint URL for providers that verify ID tokens.'),
70
+ issuer: z
71
+ .string()
72
+ .url()
73
+ .optional()
74
+ .describe('Expected issuer for ID tokens verified with JWKS.'),
47
75
  email_url: z
48
76
  .string()
49
77
  .optional()
@@ -60,6 +88,18 @@ export const IdentityProviderConfigSchema = z
60
88
  .describe('Strategy when a matching email already exists. ' +
61
89
  '"auto_link" links automatically, "require_link" requires user confirmation.'),
62
90
  userinfo_mapping: UserinfoMappingConfigSchema,
91
+ })
92
+ .superRefine((provider, ctx) => {
93
+ if (provider.type === 'generic_oauth' &&
94
+ provider.userinfo_url === null &&
95
+ provider.jwks_url &&
96
+ !provider.issuer) {
97
+ ctx.addIssue({
98
+ code: 'custom',
99
+ path: ['issuer'],
100
+ message: 'Issuer is required for generic ID-token-only providers with JWKS.',
101
+ });
102
+ }
63
103
  })
64
104
  .strict()
65
105
  .describe('Resolved identity provider configuration.');
@@ -1 +1 @@
1
- {"version":3,"file":"identity-providers.js","sourceRoot":"","sources":["../../../src/lib/config/identity-providers.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,2BAA2B,GAAG,CAAC;KAClC,MAAM,CAAC;IACN,EAAE,EAAE,CAAC;SACF,MAAM,EAAE;SACR,QAAQ,CAAC,sDAAsD,CAAC;IACnE,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,CAAC,oDAAoD,CAAC;IACjE,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,kEAAkE,CACnE;IACH,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,2DAA2D,CAAC;IACxE,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,kEAAkE,CACnE;CACJ,CAAC;KACD,MAAM,EAAE;KACR,QAAQ,CAAC,yDAAyD,CAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IAC/D,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;SACpD,QAAQ,CAAC,yBAAyB,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IAC3E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IAC1E,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mDAAmD,CAAC;IAChE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IACpE,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,CAAC,wCAAwC,CAAC;IACrD,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAC3E,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC3D,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8BAA8B,CAAC;IAC3C,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gDAAgD,CAAC;IAC7D,MAAM,EAAE,CAAC;SACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,CAAC,4CAA4C,CAAC;IACzD,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qDAAqD,CAAC;IAClE,uBAAuB,EAAE,CAAC;SACvB,IAAI,CAAC,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;SACnC,QAAQ,CACP,iDAAiD;QAC/C,6EAA6E,CAChF;IACH,gBAAgB,EAAE,2BAA2B;CAC9C,CAAC;KACD,MAAM,EAAE;KACR,QAAQ,CAAC,2CAA2C,CAAC,CAAC;AAMzD,MAAM,CAAC,MAAM,iCAAiC,GAA6B,EAAE,CAAC;AAE9E,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC;KAC3C,KAAK,CAAC,4BAA4B,CAAC;KACnC,OAAO,CAAC,iCAAiC,CAAC;KAC1C,QAAQ,CAAC,oDAAoD,CAAC,CAAC"}
1
+ {"version":3,"file":"identity-providers.js","sourceRoot":"","sources":["../../../src/lib/config/identity-providers.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,aAAa,GAAG,CAAC;KACpB,MAAM,EAAE;KACR,GAAG,EAAE;KACL,MAAM,CACL,CAAC,KAAK,EAAE,EAAE;IACR,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAE9C,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,QAAQ,KAAK,OAAO,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,EACD,EAAE,OAAO,EAAE,wCAAwC,EAAE,CACtD,CAAC;AAEJ,SAAS,mBAAmB,CAAC,QAAgB;IAC3C,OAAO,CACL,QAAQ,KAAK,WAAW;QACxB,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC/B,QAAQ,KAAK,WAAW;QACxB,QAAQ,KAAK,OAAO;QACpB,QAAQ,KAAK,KAAK,CACnB,CAAC;AACJ,CAAC;AAED,MAAM,2BAA2B,GAAG,CAAC;KAClC,MAAM,CAAC;IACN,EAAE,EAAE,CAAC;SACF,MAAM,EAAE;SACR,QAAQ,CAAC,sDAAsD,CAAC;IACnE,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,CAAC,oDAAoD,CAAC;IACjE,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,kEAAkE,CACnE;IACH,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,2DAA2D,CAAC;IACxE,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,kEAAkE,CACnE;CACJ,CAAC;KACD,MAAM,EAAE;KACR,QAAQ,CAAC,yDAAyD,CAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IAC/D,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;SACpD,QAAQ,CAAC,yBAAyB,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IAC3E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IAC1E,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mDAAmD,CAAC;IAChE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IACpE,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,CAAC,wCAAwC,CAAC;IACrD,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAC3E,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC3D,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8BAA8B,CAAC;IAC3C,QAAQ,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACzC,wDAAwD,CACzD;IACD,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,QAAQ,CAAC,mDAAmD,CAAC;IAChE,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gDAAgD,CAAC;IAC7D,MAAM,EAAE,CAAC;SACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,CAAC,4CAA4C,CAAC;IACzD,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qDAAqD,CAAC;IAClE,uBAAuB,EAAE,CAAC;SACvB,IAAI,CAAC,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;SACnC,QAAQ,CACP,iDAAiD;QAC/C,6EAA6E,CAChF;IACH,gBAAgB,EAAE,2BAA2B;CAC9C,CAAC;KACD,WAAW,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE;IAC7B,IACE,QAAQ,CAAC,IAAI,KAAK,eAAe;QACjC,QAAQ,CAAC,YAAY,KAAK,IAAI;QAC9B,QAAQ,CAAC,QAAQ;QACjB,CAAC,QAAQ,CAAC,MAAM,EAChB,CAAC;QACD,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,QAAQ,CAAC;YAChB,OAAO,EACL,mEAAmE;SACtE,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC;KACD,MAAM,EAAE;KACR,QAAQ,CAAC,2CAA2C,CAAC,CAAC;AAMzD,MAAM,CAAC,MAAM,iCAAiC,GAA6B,EAAE,CAAC;AAE9E,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC;KAC3C,KAAK,CAAC,4BAA4B,CAAC;KACnC,OAAO,CAAC,iCAAiC,CAAC;KAC1C,QAAQ,CAAC,oDAAoD,CAAC,CAAC"}
@@ -26,8 +26,8 @@ export type { RegistrationConfig } from './registration.ts';
26
26
  export { RegistrationConfigSchema } from './registration.ts';
27
27
  export type { TinyAuthRuntimeConfig, TinyAuthRuntimeConfigInput, } from './resolved.ts';
28
28
  export { TinyAuthRuntimeConfigSchema } from './resolved.ts';
29
- export type { SchedulerConfig, SchedulerHandle, SchedulerStartOptions, } from './scheduler.ts';
30
- export { SchedulerConfigSchema } from './scheduler.ts';
29
+ export type { BackgroundJobConfig, EnqueueBackgroundJobOptions, JobPayload, JobRunContext, ScheduledJobConfig, SchedulerConfig, SchedulerConfigResolver, SchedulerHandle, SchedulerRuntimeConfig, SchedulerRuntimeContext, SchedulerStartOptions, } from './scheduler.ts';
30
+ export { isSchedulerConfigResolver, SchedulerConfigSchema, } from './scheduler.ts';
31
31
  export type { SecurityConfig } from './security.ts';
32
32
  export { SecurityConfigSchema } from './security.ts';
33
33
  export type { ServerConfig } from './server.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/config/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC3E,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACtE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,YAAY,EACV,WAAW,EACX,kBAAkB,EAClB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EACV,cAAc,EACd,eAAe,EACf,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC3D,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC3E,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,YAAY,EACV,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAC5D,YAAY,EACV,eAAe,EACf,eAAe,EACf,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAChE,YAAY,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC/E,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/config/index.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ export { LoggingConfigSchema } from "./logging.js";
12
12
  export { OPENAPI_CONFIG_DEFAULT, OpenApiConfigSchema } from "./openapi.js";
13
13
  export { RegistrationConfigSchema } from "./registration.js";
14
14
  export { TinyAuthRuntimeConfigSchema } from "./resolved.js";
15
- export { SchedulerConfigSchema } from "./scheduler.js";
15
+ export { isSchedulerConfigResolver, SchedulerConfigSchema, } from "./scheduler.js";
16
16
  export { SecurityConfigSchema } from "./security.js";
17
17
  export { ServerConfigSchema } from "./server.js";
18
18
  export { TermsConfigSchema, TermsItemSchema } from "./terms.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/config/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAQpE,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErE,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE3E,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAMrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAM/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE3D,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAK7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAM5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEhE,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE/E,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/config/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAQpE,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErE,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE3E,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAMrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAM/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE3D,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAK7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAc5D,OAAO,EACL,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEhE,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE/E,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC"}
@@ -195,7 +195,7 @@ export declare const TinyAuthRuntimeConfigSchema: z.ZodObject<{
195
195
  retention: z.ZodDefault<z.ZodString>;
196
196
  }, z.z.core.$strip>>;
197
197
  }, z.z.core.$strict>>;
198
- scheduler: z.ZodOptional<z.ZodCustom<import("./scheduler.ts").SchedulerConfig, import("./scheduler.ts").SchedulerConfig>>;
198
+ scheduler: z.ZodOptional<z.ZodCustom<import("./scheduler.ts").SchedulerRuntimeConfig, import("./scheduler.ts").SchedulerRuntimeConfig>>;
199
199
  terms: z.ZodDefault<z.ZodArray<z.ZodObject<{
200
200
  id: z.ZodString;
201
201
  required: z.ZodDefault<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>, z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>, z.ZodTransform<boolean, string | boolean>>>>;
@@ -253,6 +253,8 @@ export declare const TinyAuthRuntimeConfigSchema: z.ZodObject<{
253
253
  authorization_url: z.ZodString;
254
254
  token_url: z.ZodString;
255
255
  userinfo_url: z.ZodNullable<z.ZodString>;
256
+ jwks_url: z.ZodOptional<z.ZodString>;
257
+ issuer: z.ZodOptional<z.ZodString>;
256
258
  email_url: z.ZodOptional<z.ZodString>;
257
259
  scopes: z.ZodArray<z.ZodString>;
258
260
  response_mode: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"resolved.d.ts","sourceRoot":"","sources":["../../../src/lib/config/resolved.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAqBpB,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA2CM,CAAC;AAE/C,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,2BAA2B,CACnC,CAAC;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAC1C,OAAO,2BAA2B,CACnC,CAAC"}
1
+ {"version":3,"file":"resolved.d.ts","sourceRoot":"","sources":["../../../src/lib/config/resolved.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAqBpB,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAyCM,CAAC;AAE/C,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,2BAA2B,CACnC,CAAC;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAC1C,OAAO,2BAA2B,CACnC,CAAC"}
@@ -31,7 +31,7 @@ export const TinyAuthRuntimeConfigSchema = z
31
31
  auth: AuthConfigSchema.describe('Authentication methods settings.'),
32
32
  security: SecurityConfigSchema.describe('Security and cryptographic settings.'),
33
33
  cleanup: CleanupConfigSchema.describe('Data cleanup settings.'),
34
- scheduler: SchedulerConfigSchema.describe('In-process cleanup scheduler adapter.'),
34
+ scheduler: SchedulerConfigSchema.describe('Cleanup scheduler adapter.'),
35
35
  terms: TermsConfigSchema.describe('Terms of service settings.'),
36
36
  clients: ClientConfigsSchema.describe('Registered OAuth/OIDC client applications.'),
37
37
  users: UserConfigsSchema.describe('Pre-provisioned user accounts.'),
@@ -1 +1 @@
1
- {"version":3,"file":"resolved.js","sourceRoot":"","sources":["../../../src/lib/config/resolved.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC;KACzC,MAAM,CAAC;IACN,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAC5D,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CACjC,0CAA0C,CAC3C;IACD,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IACjE,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CACrC,6CAA6C,CAC9C;IACD,YAAY,EAAE,wBAAwB,CAAC,QAAQ,CAC7C,kCAAkC,CACnC;IACD,gBAAgB,EAAE,2BAA2B,CAAC,QAAQ,CACpD,4BAA4B,CAC7B;IACD,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC1D,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CACnC,qCAAqC,CACtC;IACD,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACnE,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CACrC,sCAAsC,CACvC;IACD,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC/D,SAAS,EAAE,qBAAqB,CAAC,QAAQ,CACvC,uCAAuC,CACxC;IACD,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAC/D,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CACnC,4CAA4C,CAC7C;IACD,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IACnE,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACrE,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CACrC,sCAAsC,CACvC;IACD,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACtE,kBAAkB,EAAE,6BAA6B,CAAC,QAAQ,CACxD,sCAAsC,CACvC;CACF,CAAC;KACD,MAAM,EAAE;KACR,QAAQ,CAAC,iCAAiC,CAAC,CAAC"}
1
+ {"version":3,"file":"resolved.js","sourceRoot":"","sources":["../../../src/lib/config/resolved.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC;KACzC,MAAM,CAAC;IACN,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAC5D,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CACjC,0CAA0C,CAC3C;IACD,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IACjE,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CACrC,6CAA6C,CAC9C;IACD,YAAY,EAAE,wBAAwB,CAAC,QAAQ,CAC7C,kCAAkC,CACnC;IACD,gBAAgB,EAAE,2BAA2B,CAAC,QAAQ,CACpD,4BAA4B,CAC7B;IACD,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC1D,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CACnC,qCAAqC,CACtC;IACD,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACnE,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CACrC,sCAAsC,CACvC;IACD,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC/D,SAAS,EAAE,qBAAqB,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACvE,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAC/D,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CACnC,4CAA4C,CAC7C;IACD,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IACnE,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACrE,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CACrC,sCAAsC,CACvC;IACD,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACtE,kBAAkB,EAAE,6BAA6B,CAAC,QAAQ,CACxD,sCAAsC,CACvC;CACF,CAAC;KACD,MAAM,EAAE;KACR,QAAQ,CAAC,iCAAiC,CAAC,CAAC"}
@@ -1,13 +1,52 @@
1
1
  import z from 'zod';
2
+ import type { MikroService } from '../../services/mikro.service.ts';
3
+ import type { Logger } from '../logger.ts';
4
+ export type JobPayload = null | boolean | number | string | readonly JobPayload[] | {
5
+ readonly [key: string]: JobPayload;
6
+ };
7
+ export interface JobRunContext {
8
+ logger?: Logger | undefined;
9
+ signal?: AbortSignal | undefined;
10
+ }
11
+ export interface CronJobSchedule {
12
+ type: 'cron';
13
+ expression: string;
14
+ }
15
+ export interface ScheduledJobConfig {
16
+ id: string;
17
+ name: string;
18
+ schedule: CronJobSchedule;
19
+ handler: (context: JobRunContext) => Promise<void>;
20
+ }
21
+ export interface BackgroundJobConfig<TPayload extends JobPayload = JobPayload> {
22
+ id: string;
23
+ name: string;
24
+ handler: (payload: TPayload, context: JobRunContext) => Promise<void>;
25
+ }
26
+ export interface EnqueueBackgroundJobOptions<TPayload extends JobPayload = JobPayload> {
27
+ jobId: string;
28
+ payload: TPayload;
29
+ runAt?: Date | undefined;
30
+ }
2
31
  export interface SchedulerStartOptions {
3
- runCleanup: () => Promise<void>;
32
+ scheduledJobs: readonly ScheduledJobConfig[];
33
+ backgroundJobs: readonly BackgroundJobConfig[];
34
+ logger?: Logger;
4
35
  }
5
36
  export interface SchedulerHandle {
6
37
  stop: () => void | Promise<void>;
7
38
  getNextRunAt?: () => Date | null;
39
+ enqueue?: <TPayload extends JobPayload>(options: EnqueueBackgroundJobOptions<TPayload>) => Promise<string>;
8
40
  }
9
41
  export interface SchedulerConfig {
42
+ cleanupCron?: string | undefined;
10
43
  start: (options: SchedulerStartOptions) => SchedulerHandle | Promise<SchedulerHandle>;
11
44
  }
12
- export declare const SchedulerConfigSchema: z.ZodOptional<z.ZodCustom<SchedulerConfig, SchedulerConfig>>;
45
+ export interface SchedulerRuntimeContext {
46
+ mikro: MikroService;
47
+ }
48
+ export type SchedulerConfigResolver = (context: SchedulerRuntimeContext) => SchedulerConfig;
49
+ export type SchedulerRuntimeConfig = SchedulerConfig | SchedulerConfigResolver;
50
+ export declare function isSchedulerConfigResolver(value: SchedulerRuntimeConfig): value is SchedulerConfigResolver;
51
+ export declare const SchedulerConfigSchema: z.ZodOptional<z.ZodCustom<SchedulerRuntimeConfig, SchedulerRuntimeConfig>>;
13
52
  //# sourceMappingURL=scheduler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../src/lib/config/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,CACL,OAAO,EAAE,qBAAqB,KAC3B,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CACjD;AAUD,eAAO,MAAM,qBAAqB,8DAKkB,CAAC"}
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../src/lib/config/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,MAAM,UAAU,GAClB,IAAI,GACJ,OAAO,GACP,MAAM,GACN,MAAM,GACN,SAAS,UAAU,EAAE,GACrB;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE,CAAC;AAE3C,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,mBAAmB,CAAC,QAAQ,SAAS,UAAU,GAAG,UAAU;IAC3E,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvE;AAED,MAAM,WAAW,2BAA2B,CAC1C,QAAQ,SAAS,UAAU,GAAG,UAAU;IAExC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,QAAQ,CAAC;IAClB,KAAK,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC7C,cAAc,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,CAAC,QAAQ,SAAS,UAAU,EACpC,OAAO,EAAE,2BAA2B,CAAC,QAAQ,CAAC,KAC3C,OAAO,CAAC,MAAM,CAAC,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,KAAK,EAAE,CACL,OAAO,EAAE,qBAAqB,KAC3B,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,MAAM,uBAAuB,GAAG,CACpC,OAAO,EAAE,uBAAuB,KAC7B,eAAe,CAAC;AAErB,MAAM,MAAM,sBAAsB,GAAG,eAAe,GAAG,uBAAuB,CAAC;AAU/E,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,sBAAsB,GAC5B,KAAK,IAAI,uBAAuB,CAElC;AAQD,eAAO,MAAM,qBAAqB,4EAKD,CAAC"}
@@ -5,10 +5,16 @@ function isSchedulerConfig(value) {
5
5
  }
6
6
  return 'start' in value && typeof value.start === 'function';
7
7
  }
8
+ export function isSchedulerConfigResolver(value) {
9
+ return typeof value === 'function';
10
+ }
11
+ function isSchedulerRuntimeConfig(value) {
12
+ return isSchedulerConfig(value) || typeof value === 'function';
13
+ }
8
14
  export const SchedulerConfigSchema = z
9
- .custom(isSchedulerConfig, {
10
- message: 'Invalid SchedulerConfig: must have a start function',
15
+ .custom(isSchedulerRuntimeConfig, {
16
+ message: 'Invalid SchedulerConfig: must have a start function or resolver',
11
17
  })
12
18
  .optional()
13
- .describe('In-process cleanup scheduler adapter.');
19
+ .describe('Scheduler adapter.');
14
20
  //# sourceMappingURL=scheduler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/lib/config/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAiBpB,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,OAAO,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,MAAM,CAAkB,iBAAiB,EAAE;IAC1C,OAAO,EAAE,qDAAqD;CAC/D,CAAC;KACD,QAAQ,EAAE;KACV,QAAQ,CAAC,uCAAuC,CAAC,CAAC"}
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/lib/config/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AA0EpB,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,OAAO,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,KAA6B;IAE7B,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACrC,CAAC;AAED,SAAS,wBAAwB,CAC/B,KAAc;IAEd,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,MAAM,CAAyB,wBAAwB,EAAE;IACxD,OAAO,EAAE,iEAAiE;CAC3E,CAAC;KACD,QAAQ,EAAE;KACV,QAAQ,CAAC,oBAAoB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../../src/lib/database/entities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAmBlD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAwBD,wBAAgB,mBAAmB,IAAI,SAAS,UAAU,EAAE,CAE3D;AAED,wBAAgB,+BAA+B,IAAI,SAAS,qBAAqB,EAAE,CAElF"}
1
+ {"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../../src/lib/database/entities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAqBlD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AA0BD,wBAAgB,mBAAmB,IAAI,SAAS,UAAU,EAAE,CAE3D;AAED,wBAAgB,+BAA+B,IAAI,SAAS,qBAAqB,EAAE,CAElF"}