@rvoh/psychic-workers 2.8.1 → 2.9.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/dist/cjs/src/background/BaseBackgroundedModel.js +36 -32
- package/dist/cjs/src/background/BaseBackgroundedService.js +18 -16
- package/dist/cjs/src/background/BaseScheduledService.js +9 -7
- package/dist/cjs/src/psychic-app-workers/index.js +11 -5
- package/dist/esm/src/background/BaseBackgroundedModel.js +36 -32
- package/dist/esm/src/background/BaseBackgroundedService.js +18 -16
- package/dist/esm/src/background/BaseScheduledService.js +9 -7
- package/dist/esm/src/psychic-app-workers/index.js +11 -5
- package/dist/types/src/background/BaseBackgroundedModel.d.ts +36 -32
- package/dist/types/src/background/BaseBackgroundedService.d.ts +18 -16
- package/dist/types/src/background/BaseScheduledService.d.ts +9 -7
- package/dist/types/src/helpers/EnvInternal.d.ts +1 -2
- package/dist/types/src/psychic-app-workers/index.d.ts +39 -6
- package/package.json +20 -19
|
@@ -36,13 +36,13 @@ export default class BaseBackgroundedModel extends Dream {
|
|
|
36
36
|
* ```ts
|
|
37
37
|
* await User.background('myMethod', 'abc', 123)
|
|
38
38
|
* ```
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
* completed.
|
|
39
|
+
* Outside automatic test invocation, awaiting `background` confirms that
|
|
40
|
+
* a run is queued or pending, not that the method has completed.
|
|
42
41
|
*
|
|
43
|
-
*
|
|
44
|
-
* method
|
|
45
|
-
*
|
|
42
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
43
|
+
* the method immediately and awaits its completion.
|
|
44
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
45
|
+
* with `WorkerTestUtils.work()`.
|
|
46
46
|
*
|
|
47
47
|
* @param methodName - the name of the static method you wish to run in the background
|
|
48
48
|
* @param args - a variadic list of arguments to be sent to your method
|
|
@@ -71,12 +71,13 @@ export default class BaseBackgroundedModel extends Dream {
|
|
|
71
71
|
* ```ts
|
|
72
72
|
* await User.backgroundWithDelay({ minutes: 5 }, 'myMethod', 'abc', 123)
|
|
73
73
|
* ```
|
|
74
|
-
*
|
|
75
|
-
*
|
|
74
|
+
* Outside automatic test invocation, awaiting `backgroundWithDelay` confirms that
|
|
75
|
+
* a run is queued or pending, not that the method has completed.
|
|
76
76
|
*
|
|
77
|
-
*
|
|
78
|
-
* method
|
|
79
|
-
*
|
|
77
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
78
|
+
* the method immediately and awaits its completion, ignoring the delay.
|
|
79
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
80
|
+
* with `WorkerTestUtils.work()`, or `WorkerTestUtils.workScheduled()` when delayed.
|
|
80
81
|
*
|
|
81
82
|
* @deprecated use `backgroundWith({ delay }, methodName, ...args)` instead. This method will be removed in a future major version.
|
|
82
83
|
*
|
|
@@ -110,12 +111,13 @@ export default class BaseBackgroundedModel extends Dream {
|
|
|
110
111
|
* ```ts
|
|
111
112
|
* await User.backgroundWith({ delay: { seconds: 30, jobId: 'my-unique-job-id' }, priority: 'urgent' }, 'myMethod', 'abc', 123)
|
|
112
113
|
* ```
|
|
113
|
-
*
|
|
114
|
-
*
|
|
114
|
+
* Outside automatic test invocation, awaiting `backgroundWith` confirms that
|
|
115
|
+
* a run is queued or pending, not that the method has completed.
|
|
115
116
|
*
|
|
116
|
-
*
|
|
117
|
-
* method
|
|
118
|
-
*
|
|
117
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
118
|
+
* the method immediately and awaits its completion, ignoring the delay.
|
|
119
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
120
|
+
* with `WorkerTestUtils.work()`, or `WorkerTestUtils.workScheduled()` when delayed.
|
|
119
121
|
*
|
|
120
122
|
* @param opts - options for backgrounding this job
|
|
121
123
|
* @param opts.delay - (optional) how long you want to hold off before allowing the job to run, given as at least one of `seconds`, `minutes`, `hours` or `days`, plus an optional `jobId` (a deduplication key) which debounces repeated calls into a single run
|
|
@@ -150,13 +152,13 @@ export default class BaseBackgroundedModel extends Dream {
|
|
|
150
152
|
* const user = await User.lastOrFail()
|
|
151
153
|
* await user.background('myMethod', 'abc', 123)
|
|
152
154
|
* ```
|
|
153
|
-
*
|
|
154
|
-
*
|
|
155
|
-
* completed.
|
|
155
|
+
* Outside automatic test invocation, awaiting `background` confirms that
|
|
156
|
+
* a run is queued or pending, not that the method has completed.
|
|
156
157
|
*
|
|
157
|
-
*
|
|
158
|
-
* method
|
|
159
|
-
*
|
|
158
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
159
|
+
* the method immediately and awaits its completion.
|
|
160
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
161
|
+
* with `WorkerTestUtils.work()`.
|
|
160
162
|
*
|
|
161
163
|
* @param methodName - the name of the instance method you wish to run in the background
|
|
162
164
|
* @param args - a variadic list of arguments to be sent to your method
|
|
@@ -185,12 +187,13 @@ export default class BaseBackgroundedModel extends Dream {
|
|
|
185
187
|
* const user = await User.lastOrFail()
|
|
186
188
|
* await user.backgroundWithDelay({ minutes: 5 }, 'myMethod', 'abc', 123)
|
|
187
189
|
* ```
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
+
* Outside automatic test invocation, awaiting `backgroundWithDelay` confirms that
|
|
191
|
+
* a run is queued or pending, not that the method has completed.
|
|
190
192
|
*
|
|
191
|
-
*
|
|
192
|
-
* method
|
|
193
|
-
*
|
|
193
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
194
|
+
* the method immediately and awaits its completion, ignoring the delay.
|
|
195
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
196
|
+
* with `WorkerTestUtils.work()`, or `WorkerTestUtils.workScheduled()` when delayed.
|
|
194
197
|
*
|
|
195
198
|
* @deprecated use `backgroundWith({ delay }, methodName, ...args)` instead. This method will be removed in a future major version.
|
|
196
199
|
*
|
|
@@ -224,12 +227,13 @@ export default class BaseBackgroundedModel extends Dream {
|
|
|
224
227
|
* const user = await User.lastOrFail()
|
|
225
228
|
* await user.backgroundWith({ delay: { seconds: 30, jobId: 'my-unique-job-id' }, priority: 'urgent' }, 'myMethod', 'abc', 123)
|
|
226
229
|
* ```
|
|
227
|
-
*
|
|
228
|
-
*
|
|
230
|
+
* Outside automatic test invocation, awaiting `backgroundWith` confirms that
|
|
231
|
+
* a run is queued or pending, not that the method has completed.
|
|
229
232
|
*
|
|
230
|
-
*
|
|
231
|
-
* method
|
|
232
|
-
*
|
|
233
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
234
|
+
* the method immediately and awaits its completion, ignoring the delay.
|
|
235
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
236
|
+
* with `WorkerTestUtils.work()`, or `WorkerTestUtils.workScheduled()` when delayed.
|
|
233
237
|
*
|
|
234
238
|
* @param opts - options for backgrounding this job
|
|
235
239
|
* @param opts.delay - (optional) how long you want to hold off before allowing the job to run, given as at least one of `seconds`, `minutes`, `hours` or `days`, plus an optional `jobId` (a deduplication key) which debounces repeated calls into a single run
|
|
@@ -47,13 +47,13 @@ export default class BaseBackgroundedService {
|
|
|
47
47
|
* ```ts
|
|
48
48
|
* await MyBackgroundableClass.background('myMethod', 'abc', 123)
|
|
49
49
|
* ```
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
* completed.
|
|
50
|
+
* Outside automatic test invocation, awaiting `background` confirms that
|
|
51
|
+
* a run is queued or pending, not that the method has completed.
|
|
53
52
|
*
|
|
54
|
-
*
|
|
55
|
-
* method
|
|
56
|
-
*
|
|
53
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
54
|
+
* the method immediately and awaits its completion.
|
|
55
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
56
|
+
* with `WorkerTestUtils.work()`.
|
|
57
57
|
*
|
|
58
58
|
* @param methodName - the name of the static method you wish to run in the background
|
|
59
59
|
* @param args - a variadic list of arguments to be sent to your method
|
|
@@ -82,12 +82,13 @@ export default class BaseBackgroundedService {
|
|
|
82
82
|
* ```ts
|
|
83
83
|
* await MyBackgroundableClass.backgroundWithDelay({ minutes: 5 }, 'myMethod', 'abc', 123)
|
|
84
84
|
* ```
|
|
85
|
-
*
|
|
86
|
-
*
|
|
85
|
+
* Outside automatic test invocation, awaiting `backgroundWithDelay` confirms that
|
|
86
|
+
* a run is queued or pending, not that the method has completed.
|
|
87
87
|
*
|
|
88
|
-
*
|
|
89
|
-
* method
|
|
90
|
-
*
|
|
88
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
89
|
+
* the method immediately and awaits its completion, ignoring the delay.
|
|
90
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
91
|
+
* with `WorkerTestUtils.work()`, or `WorkerTestUtils.workScheduled()` when delayed.
|
|
91
92
|
*
|
|
92
93
|
* @deprecated use `backgroundWith({ delay }, methodName, ...args)` instead. This method will be removed in a future major version.
|
|
93
94
|
*
|
|
@@ -126,12 +127,13 @@ export default class BaseBackgroundedService {
|
|
|
126
127
|
* 123,
|
|
127
128
|
* )
|
|
128
129
|
* ```
|
|
129
|
-
*
|
|
130
|
-
*
|
|
130
|
+
* Outside automatic test invocation, awaiting `backgroundWith` confirms that
|
|
131
|
+
* a run is queued or pending, not that the method has completed.
|
|
131
132
|
*
|
|
132
|
-
*
|
|
133
|
-
* method
|
|
134
|
-
*
|
|
133
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
134
|
+
* the method immediately and awaits its completion, ignoring the delay.
|
|
135
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
136
|
+
* with `WorkerTestUtils.work()`, or `WorkerTestUtils.workScheduled()` when delayed.
|
|
135
137
|
*
|
|
136
138
|
* @param opts - options for backgrounding this job
|
|
137
139
|
* @param opts.delay - (optional) how long you want to hold off before allowing the job to run, given as at least one of `seconds`, `minutes`, `hours` or `days`, plus an optional `jobId` (a deduplication key) which debounces repeated calls into a single run
|
|
@@ -46,13 +46,15 @@ export default class BaseScheduledService {
|
|
|
46
46
|
* ```ts
|
|
47
47
|
* await MySchedulableClass.schedule('0 * * * *', 'myHourlyMethod', 'abc', 123)
|
|
48
48
|
* ```
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
49
|
+
* Awaiting `schedule` confirms that the BullMQ job scheduler has been
|
|
50
|
+
* registered or updated in Redis. It does not invoke the method inline or
|
|
51
|
+
* wait for any scheduled run to complete. Independent queue workers may
|
|
52
|
+
* still execute scheduled runs asynchronously.
|
|
53
|
+
*
|
|
54
|
+
* In tests, this registration behavior is the same under both
|
|
55
|
+
* `testInvocation: 'automatic'` and `testInvocation: 'manual'`. To exercise
|
|
56
|
+
* the scheduled job, call `WorkerTestUtils.workScheduled()`, or invoke the
|
|
57
|
+
* method directly to test its body.
|
|
56
58
|
*
|
|
57
59
|
* @param pattern - A cron string representing the time interval you wish this to run on
|
|
58
60
|
* @param methodName - the name of the static method you wish to run in the background
|
|
@@ -43,12 +43,18 @@ export default class PsychicAppWorkers {
|
|
|
43
43
|
/**
|
|
44
44
|
* Returns the testInvocation option provided by the user
|
|
45
45
|
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
46
|
+
* With "automatic" (the default), one-off backgrounded jobs invoke their
|
|
47
|
+
* methods immediately during tests, ignoring delays. The backgrounding call
|
|
48
|
+
* awaits the method's completion.
|
|
48
49
|
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
50
|
+
* With "manual", one-off jobs are queued for explicit processing with
|
|
51
|
+
* `WorkerTestUtils.work()`, or `WorkerTestUtils.workScheduled()` for delayed
|
|
52
|
+
* jobs, so tests can choose when to invoke them.
|
|
53
|
+
*
|
|
54
|
+
* Under either mode, `schedule()` registers or updates a scheduler in Redis
|
|
55
|
+
* without invoking the scheduled method inline. Use
|
|
56
|
+
* `WorkerTestUtils.workScheduled()` to exercise its dispatch, or invoke the
|
|
57
|
+
* method directly to test its body.
|
|
52
58
|
*/
|
|
53
59
|
get testInvocation() {
|
|
54
60
|
return this._testInvocation;
|
|
@@ -36,13 +36,13 @@ export default class BaseBackgroundedModel extends Dream {
|
|
|
36
36
|
* ```ts
|
|
37
37
|
* await User.background('myMethod', 'abc', 123)
|
|
38
38
|
* ```
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
* completed.
|
|
39
|
+
* Outside automatic test invocation, awaiting `background` confirms that
|
|
40
|
+
* a run is queued or pending, not that the method has completed.
|
|
42
41
|
*
|
|
43
|
-
*
|
|
44
|
-
* method
|
|
45
|
-
*
|
|
42
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
43
|
+
* the method immediately and awaits its completion.
|
|
44
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
45
|
+
* with `WorkerTestUtils.work()`.
|
|
46
46
|
*
|
|
47
47
|
* @param methodName - the name of the static method you wish to run in the background
|
|
48
48
|
* @param args - a variadic list of arguments to be sent to your method
|
|
@@ -71,12 +71,13 @@ export default class BaseBackgroundedModel extends Dream {
|
|
|
71
71
|
* ```ts
|
|
72
72
|
* await User.backgroundWithDelay({ minutes: 5 }, 'myMethod', 'abc', 123)
|
|
73
73
|
* ```
|
|
74
|
-
*
|
|
75
|
-
*
|
|
74
|
+
* Outside automatic test invocation, awaiting `backgroundWithDelay` confirms that
|
|
75
|
+
* a run is queued or pending, not that the method has completed.
|
|
76
76
|
*
|
|
77
|
-
*
|
|
78
|
-
* method
|
|
79
|
-
*
|
|
77
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
78
|
+
* the method immediately and awaits its completion, ignoring the delay.
|
|
79
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
80
|
+
* with `WorkerTestUtils.work()`, or `WorkerTestUtils.workScheduled()` when delayed.
|
|
80
81
|
*
|
|
81
82
|
* @deprecated use `backgroundWith({ delay }, methodName, ...args)` instead. This method will be removed in a future major version.
|
|
82
83
|
*
|
|
@@ -110,12 +111,13 @@ export default class BaseBackgroundedModel extends Dream {
|
|
|
110
111
|
* ```ts
|
|
111
112
|
* await User.backgroundWith({ delay: { seconds: 30, jobId: 'my-unique-job-id' }, priority: 'urgent' }, 'myMethod', 'abc', 123)
|
|
112
113
|
* ```
|
|
113
|
-
*
|
|
114
|
-
*
|
|
114
|
+
* Outside automatic test invocation, awaiting `backgroundWith` confirms that
|
|
115
|
+
* a run is queued or pending, not that the method has completed.
|
|
115
116
|
*
|
|
116
|
-
*
|
|
117
|
-
* method
|
|
118
|
-
*
|
|
117
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
118
|
+
* the method immediately and awaits its completion, ignoring the delay.
|
|
119
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
120
|
+
* with `WorkerTestUtils.work()`, or `WorkerTestUtils.workScheduled()` when delayed.
|
|
119
121
|
*
|
|
120
122
|
* @param opts - options for backgrounding this job
|
|
121
123
|
* @param opts.delay - (optional) how long you want to hold off before allowing the job to run, given as at least one of `seconds`, `minutes`, `hours` or `days`, plus an optional `jobId` (a deduplication key) which debounces repeated calls into a single run
|
|
@@ -150,13 +152,13 @@ export default class BaseBackgroundedModel extends Dream {
|
|
|
150
152
|
* const user = await User.lastOrFail()
|
|
151
153
|
* await user.background('myMethod', 'abc', 123)
|
|
152
154
|
* ```
|
|
153
|
-
*
|
|
154
|
-
*
|
|
155
|
-
* completed.
|
|
155
|
+
* Outside automatic test invocation, awaiting `background` confirms that
|
|
156
|
+
* a run is queued or pending, not that the method has completed.
|
|
156
157
|
*
|
|
157
|
-
*
|
|
158
|
-
* method
|
|
159
|
-
*
|
|
158
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
159
|
+
* the method immediately and awaits its completion.
|
|
160
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
161
|
+
* with `WorkerTestUtils.work()`.
|
|
160
162
|
*
|
|
161
163
|
* @param methodName - the name of the instance method you wish to run in the background
|
|
162
164
|
* @param args - a variadic list of arguments to be sent to your method
|
|
@@ -185,12 +187,13 @@ export default class BaseBackgroundedModel extends Dream {
|
|
|
185
187
|
* const user = await User.lastOrFail()
|
|
186
188
|
* await user.backgroundWithDelay({ minutes: 5 }, 'myMethod', 'abc', 123)
|
|
187
189
|
* ```
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
+
* Outside automatic test invocation, awaiting `backgroundWithDelay` confirms that
|
|
191
|
+
* a run is queued or pending, not that the method has completed.
|
|
190
192
|
*
|
|
191
|
-
*
|
|
192
|
-
* method
|
|
193
|
-
*
|
|
193
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
194
|
+
* the method immediately and awaits its completion, ignoring the delay.
|
|
195
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
196
|
+
* with `WorkerTestUtils.work()`, or `WorkerTestUtils.workScheduled()` when delayed.
|
|
194
197
|
*
|
|
195
198
|
* @deprecated use `backgroundWith({ delay }, methodName, ...args)` instead. This method will be removed in a future major version.
|
|
196
199
|
*
|
|
@@ -224,12 +227,13 @@ export default class BaseBackgroundedModel extends Dream {
|
|
|
224
227
|
* const user = await User.lastOrFail()
|
|
225
228
|
* await user.backgroundWith({ delay: { seconds: 30, jobId: 'my-unique-job-id' }, priority: 'urgent' }, 'myMethod', 'abc', 123)
|
|
226
229
|
* ```
|
|
227
|
-
*
|
|
228
|
-
*
|
|
230
|
+
* Outside automatic test invocation, awaiting `backgroundWith` confirms that
|
|
231
|
+
* a run is queued or pending, not that the method has completed.
|
|
229
232
|
*
|
|
230
|
-
*
|
|
231
|
-
* method
|
|
232
|
-
*
|
|
233
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
234
|
+
* the method immediately and awaits its completion, ignoring the delay.
|
|
235
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
236
|
+
* with `WorkerTestUtils.work()`, or `WorkerTestUtils.workScheduled()` when delayed.
|
|
233
237
|
*
|
|
234
238
|
* @param opts - options for backgrounding this job
|
|
235
239
|
* @param opts.delay - (optional) how long you want to hold off before allowing the job to run, given as at least one of `seconds`, `minutes`, `hours` or `days`, plus an optional `jobId` (a deduplication key) which debounces repeated calls into a single run
|
|
@@ -47,13 +47,13 @@ export default class BaseBackgroundedService {
|
|
|
47
47
|
* ```ts
|
|
48
48
|
* await MyBackgroundableClass.background('myMethod', 'abc', 123)
|
|
49
49
|
* ```
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
* completed.
|
|
50
|
+
* Outside automatic test invocation, awaiting `background` confirms that
|
|
51
|
+
* a run is queued or pending, not that the method has completed.
|
|
53
52
|
*
|
|
54
|
-
*
|
|
55
|
-
* method
|
|
56
|
-
*
|
|
53
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
54
|
+
* the method immediately and awaits its completion.
|
|
55
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
56
|
+
* with `WorkerTestUtils.work()`.
|
|
57
57
|
*
|
|
58
58
|
* @param methodName - the name of the static method you wish to run in the background
|
|
59
59
|
* @param args - a variadic list of arguments to be sent to your method
|
|
@@ -82,12 +82,13 @@ export default class BaseBackgroundedService {
|
|
|
82
82
|
* ```ts
|
|
83
83
|
* await MyBackgroundableClass.backgroundWithDelay({ minutes: 5 }, 'myMethod', 'abc', 123)
|
|
84
84
|
* ```
|
|
85
|
-
*
|
|
86
|
-
*
|
|
85
|
+
* Outside automatic test invocation, awaiting `backgroundWithDelay` confirms that
|
|
86
|
+
* a run is queued or pending, not that the method has completed.
|
|
87
87
|
*
|
|
88
|
-
*
|
|
89
|
-
* method
|
|
90
|
-
*
|
|
88
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
89
|
+
* the method immediately and awaits its completion, ignoring the delay.
|
|
90
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
91
|
+
* with `WorkerTestUtils.work()`, or `WorkerTestUtils.workScheduled()` when delayed.
|
|
91
92
|
*
|
|
92
93
|
* @deprecated use `backgroundWith({ delay }, methodName, ...args)` instead. This method will be removed in a future major version.
|
|
93
94
|
*
|
|
@@ -126,12 +127,13 @@ export default class BaseBackgroundedService {
|
|
|
126
127
|
* 123,
|
|
127
128
|
* )
|
|
128
129
|
* ```
|
|
129
|
-
*
|
|
130
|
-
*
|
|
130
|
+
* Outside automatic test invocation, awaiting `backgroundWith` confirms that
|
|
131
|
+
* a run is queued or pending, not that the method has completed.
|
|
131
132
|
*
|
|
132
|
-
*
|
|
133
|
-
* method
|
|
134
|
-
*
|
|
133
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
134
|
+
* the method immediately and awaits its completion, ignoring the delay.
|
|
135
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
136
|
+
* with `WorkerTestUtils.work()`, or `WorkerTestUtils.workScheduled()` when delayed.
|
|
135
137
|
*
|
|
136
138
|
* @param opts - options for backgrounding this job
|
|
137
139
|
* @param opts.delay - (optional) how long you want to hold off before allowing the job to run, given as at least one of `seconds`, `minutes`, `hours` or `days`, plus an optional `jobId` (a deduplication key) which debounces repeated calls into a single run
|
|
@@ -46,13 +46,15 @@ export default class BaseScheduledService {
|
|
|
46
46
|
* ```ts
|
|
47
47
|
* await MySchedulableClass.schedule('0 * * * *', 'myHourlyMethod', 'abc', 123)
|
|
48
48
|
* ```
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
49
|
+
* Awaiting `schedule` confirms that the BullMQ job scheduler has been
|
|
50
|
+
* registered or updated in Redis. It does not invoke the method inline or
|
|
51
|
+
* wait for any scheduled run to complete. Independent queue workers may
|
|
52
|
+
* still execute scheduled runs asynchronously.
|
|
53
|
+
*
|
|
54
|
+
* In tests, this registration behavior is the same under both
|
|
55
|
+
* `testInvocation: 'automatic'` and `testInvocation: 'manual'`. To exercise
|
|
56
|
+
* the scheduled job, call `WorkerTestUtils.workScheduled()`, or invoke the
|
|
57
|
+
* method directly to test its body.
|
|
56
58
|
*
|
|
57
59
|
* @param pattern - A cron string representing the time interval you wish this to run on
|
|
58
60
|
* @param methodName - the name of the static method you wish to run in the background
|
|
@@ -43,12 +43,18 @@ export default class PsychicAppWorkers {
|
|
|
43
43
|
/**
|
|
44
44
|
* Returns the testInvocation option provided by the user
|
|
45
45
|
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
46
|
+
* With "automatic" (the default), one-off backgrounded jobs invoke their
|
|
47
|
+
* methods immediately during tests, ignoring delays. The backgrounding call
|
|
48
|
+
* awaits the method's completion.
|
|
48
49
|
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
50
|
+
* With "manual", one-off jobs are queued for explicit processing with
|
|
51
|
+
* `WorkerTestUtils.work()`, or `WorkerTestUtils.workScheduled()` for delayed
|
|
52
|
+
* jobs, so tests can choose when to invoke them.
|
|
53
|
+
*
|
|
54
|
+
* Under either mode, `schedule()` registers or updates a scheduler in Redis
|
|
55
|
+
* without invoking the scheduled method inline. Use
|
|
56
|
+
* `WorkerTestUtils.workScheduled()` to exercise its dispatch, or invoke the
|
|
57
|
+
* method directly to test its body.
|
|
52
58
|
*/
|
|
53
59
|
get testInvocation() {
|
|
54
60
|
return this._testInvocation;
|
|
@@ -31,13 +31,13 @@ export default class BaseBackgroundedModel extends Dream {
|
|
|
31
31
|
* ```ts
|
|
32
32
|
* await User.background('myMethod', 'abc', 123)
|
|
33
33
|
* ```
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* completed.
|
|
34
|
+
* Outside automatic test invocation, awaiting `background` confirms that
|
|
35
|
+
* a run is queued or pending, not that the method has completed.
|
|
37
36
|
*
|
|
38
|
-
*
|
|
39
|
-
* method
|
|
40
|
-
*
|
|
37
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
38
|
+
* the method immediately and awaits its completion.
|
|
39
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
40
|
+
* with `WorkerTestUtils.work()`.
|
|
41
41
|
*
|
|
42
42
|
* @param methodName - the name of the static method you wish to run in the background
|
|
43
43
|
* @param args - a variadic list of arguments to be sent to your method
|
|
@@ -59,12 +59,13 @@ export default class BaseBackgroundedModel extends Dream {
|
|
|
59
59
|
* ```ts
|
|
60
60
|
* await User.backgroundWithDelay({ minutes: 5 }, 'myMethod', 'abc', 123)
|
|
61
61
|
* ```
|
|
62
|
-
*
|
|
63
|
-
*
|
|
62
|
+
* Outside automatic test invocation, awaiting `backgroundWithDelay` confirms that
|
|
63
|
+
* a run is queued or pending, not that the method has completed.
|
|
64
64
|
*
|
|
65
|
-
*
|
|
66
|
-
* method
|
|
67
|
-
*
|
|
65
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
66
|
+
* the method immediately and awaits its completion, ignoring the delay.
|
|
67
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
68
|
+
* with `WorkerTestUtils.work()`, or `WorkerTestUtils.workScheduled()` when delayed.
|
|
68
69
|
*
|
|
69
70
|
* @deprecated use `backgroundWith({ delay }, methodName, ...args)` instead. This method will be removed in a future major version.
|
|
70
71
|
*
|
|
@@ -89,12 +90,13 @@ export default class BaseBackgroundedModel extends Dream {
|
|
|
89
90
|
* ```ts
|
|
90
91
|
* await User.backgroundWith({ delay: { seconds: 30, jobId: 'my-unique-job-id' }, priority: 'urgent' }, 'myMethod', 'abc', 123)
|
|
91
92
|
* ```
|
|
92
|
-
*
|
|
93
|
-
*
|
|
93
|
+
* Outside automatic test invocation, awaiting `backgroundWith` confirms that
|
|
94
|
+
* a run is queued or pending, not that the method has completed.
|
|
94
95
|
*
|
|
95
|
-
*
|
|
96
|
-
* method
|
|
97
|
-
*
|
|
96
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
97
|
+
* the method immediately and awaits its completion, ignoring the delay.
|
|
98
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
99
|
+
* with `WorkerTestUtils.work()`, or `WorkerTestUtils.workScheduled()` when delayed.
|
|
98
100
|
*
|
|
99
101
|
* @param opts - options for backgrounding this job
|
|
100
102
|
* @param opts.delay - (optional) how long you want to hold off before allowing the job to run, given as at least one of `seconds`, `minutes`, `hours` or `days`, plus an optional `jobId` (a deduplication key) which debounces repeated calls into a single run
|
|
@@ -118,13 +120,13 @@ export default class BaseBackgroundedModel extends Dream {
|
|
|
118
120
|
* const user = await User.lastOrFail()
|
|
119
121
|
* await user.background('myMethod', 'abc', 123)
|
|
120
122
|
* ```
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
* completed.
|
|
123
|
+
* Outside automatic test invocation, awaiting `background` confirms that
|
|
124
|
+
* a run is queued or pending, not that the method has completed.
|
|
124
125
|
*
|
|
125
|
-
*
|
|
126
|
-
* method
|
|
127
|
-
*
|
|
126
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
127
|
+
* the method immediately and awaits its completion.
|
|
128
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
129
|
+
* with `WorkerTestUtils.work()`.
|
|
128
130
|
*
|
|
129
131
|
* @param methodName - the name of the instance method you wish to run in the background
|
|
130
132
|
* @param args - a variadic list of arguments to be sent to your method
|
|
@@ -147,12 +149,13 @@ export default class BaseBackgroundedModel extends Dream {
|
|
|
147
149
|
* const user = await User.lastOrFail()
|
|
148
150
|
* await user.backgroundWithDelay({ minutes: 5 }, 'myMethod', 'abc', 123)
|
|
149
151
|
* ```
|
|
150
|
-
*
|
|
151
|
-
*
|
|
152
|
+
* Outside automatic test invocation, awaiting `backgroundWithDelay` confirms that
|
|
153
|
+
* a run is queued or pending, not that the method has completed.
|
|
152
154
|
*
|
|
153
|
-
*
|
|
154
|
-
* method
|
|
155
|
-
*
|
|
155
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
156
|
+
* the method immediately and awaits its completion, ignoring the delay.
|
|
157
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
158
|
+
* with `WorkerTestUtils.work()`, or `WorkerTestUtils.workScheduled()` when delayed.
|
|
156
159
|
*
|
|
157
160
|
* @deprecated use `backgroundWith({ delay }, methodName, ...args)` instead. This method will be removed in a future major version.
|
|
158
161
|
*
|
|
@@ -178,12 +181,13 @@ export default class BaseBackgroundedModel extends Dream {
|
|
|
178
181
|
* const user = await User.lastOrFail()
|
|
179
182
|
* await user.backgroundWith({ delay: { seconds: 30, jobId: 'my-unique-job-id' }, priority: 'urgent' }, 'myMethod', 'abc', 123)
|
|
180
183
|
* ```
|
|
181
|
-
*
|
|
182
|
-
*
|
|
184
|
+
* Outside automatic test invocation, awaiting `backgroundWith` confirms that
|
|
185
|
+
* a run is queued or pending, not that the method has completed.
|
|
183
186
|
*
|
|
184
|
-
*
|
|
185
|
-
* method
|
|
186
|
-
*
|
|
187
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
188
|
+
* the method immediately and awaits its completion, ignoring the delay.
|
|
189
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
190
|
+
* with `WorkerTestUtils.work()`, or `WorkerTestUtils.workScheduled()` when delayed.
|
|
187
191
|
*
|
|
188
192
|
* @param opts - options for backgrounding this job
|
|
189
193
|
* @param opts.delay - (optional) how long you want to hold off before allowing the job to run, given as at least one of `seconds`, `minutes`, `hours` or `days`, plus an optional `jobId` (a deduplication key) which debounces repeated calls into a single run
|
|
@@ -39,13 +39,13 @@ export default class BaseBackgroundedService {
|
|
|
39
39
|
* ```ts
|
|
40
40
|
* await MyBackgroundableClass.background('myMethod', 'abc', 123)
|
|
41
41
|
* ```
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
* completed.
|
|
42
|
+
* Outside automatic test invocation, awaiting `background` confirms that
|
|
43
|
+
* a run is queued or pending, not that the method has completed.
|
|
45
44
|
*
|
|
46
|
-
*
|
|
47
|
-
* method
|
|
48
|
-
*
|
|
45
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
46
|
+
* the method immediately and awaits its completion.
|
|
47
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
48
|
+
* with `WorkerTestUtils.work()`.
|
|
49
49
|
*
|
|
50
50
|
* @param methodName - the name of the static method you wish to run in the background
|
|
51
51
|
* @param args - a variadic list of arguments to be sent to your method
|
|
@@ -67,12 +67,13 @@ export default class BaseBackgroundedService {
|
|
|
67
67
|
* ```ts
|
|
68
68
|
* await MyBackgroundableClass.backgroundWithDelay({ minutes: 5 }, 'myMethod', 'abc', 123)
|
|
69
69
|
* ```
|
|
70
|
-
*
|
|
71
|
-
*
|
|
70
|
+
* Outside automatic test invocation, awaiting `backgroundWithDelay` confirms that
|
|
71
|
+
* a run is queued or pending, not that the method has completed.
|
|
72
72
|
*
|
|
73
|
-
*
|
|
74
|
-
* method
|
|
75
|
-
*
|
|
73
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
74
|
+
* the method immediately and awaits its completion, ignoring the delay.
|
|
75
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
76
|
+
* with `WorkerTestUtils.work()`, or `WorkerTestUtils.workScheduled()` when delayed.
|
|
76
77
|
*
|
|
77
78
|
* @deprecated use `backgroundWith({ delay }, methodName, ...args)` instead. This method will be removed in a future major version.
|
|
78
79
|
*
|
|
@@ -102,12 +103,13 @@ export default class BaseBackgroundedService {
|
|
|
102
103
|
* 123,
|
|
103
104
|
* )
|
|
104
105
|
* ```
|
|
105
|
-
*
|
|
106
|
-
*
|
|
106
|
+
* Outside automatic test invocation, awaiting `backgroundWith` confirms that
|
|
107
|
+
* a run is queued or pending, not that the method has completed.
|
|
107
108
|
*
|
|
108
|
-
*
|
|
109
|
-
* method
|
|
110
|
-
*
|
|
109
|
+
* In tests with `testInvocation: 'automatic'` (the default), Psychic invokes
|
|
110
|
+
* the method immediately and awaits its completion, ignoring the delay.
|
|
111
|
+
* With `testInvocation: 'manual'`, the job is queued for explicit processing
|
|
112
|
+
* with `WorkerTestUtils.work()`, or `WorkerTestUtils.workScheduled()` when delayed.
|
|
111
113
|
*
|
|
112
114
|
* @param opts - options for backgrounding this job
|
|
113
115
|
* @param opts.delay - (optional) how long you want to hold off before allowing the job to run, given as at least one of `seconds`, `minutes`, `hours` or `days`, plus an optional `jobId` (a deduplication key) which debounces repeated calls into a single run
|
|
@@ -38,13 +38,15 @@ export default class BaseScheduledService {
|
|
|
38
38
|
* ```ts
|
|
39
39
|
* await MySchedulableClass.schedule('0 * * * *', 'myHourlyMethod', 'abc', 123)
|
|
40
40
|
* ```
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
41
|
+
* Awaiting `schedule` confirms that the BullMQ job scheduler has been
|
|
42
|
+
* registered or updated in Redis. It does not invoke the method inline or
|
|
43
|
+
* wait for any scheduled run to complete. Independent queue workers may
|
|
44
|
+
* still execute scheduled runs asynchronously.
|
|
45
|
+
*
|
|
46
|
+
* In tests, this registration behavior is the same under both
|
|
47
|
+
* `testInvocation: 'automatic'` and `testInvocation: 'manual'`. To exercise
|
|
48
|
+
* the scheduled job, call `WorkerTestUtils.workScheduled()`, or invoke the
|
|
49
|
+
* method directly to test its body.
|
|
48
50
|
*
|
|
49
51
|
* @param pattern - A cron string representing the time interval you wish this to run on
|
|
50
52
|
* @param methodName - the name of the static method you wish to run in the background
|
|
@@ -2,6 +2,5 @@ import { Env } from '@rvoh/dream';
|
|
|
2
2
|
declare const EnvInternal: Env<{
|
|
3
3
|
string: "NODE_ENV" | "PSYCHIC_CORE_DEVELOPMENT";
|
|
4
4
|
integer: "VITEST_POOL_ID";
|
|
5
|
-
|
|
6
|
-
}, "NODE_ENV" | "PSYCHIC_CORE_DEVELOPMENT", "VITEST_POOL_ID", "REALLY_TEST_BACKGROUND_QUEUE">;
|
|
5
|
+
}, "NODE_ENV" | "PSYCHIC_CORE_DEVELOPMENT", "VITEST_POOL_ID", never>;
|
|
7
6
|
export default EnvInternal;
|
|
@@ -21,12 +21,18 @@ export default class PsychicAppWorkers {
|
|
|
21
21
|
/**
|
|
22
22
|
* Returns the testInvocation option provided by the user
|
|
23
23
|
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
24
|
+
* With "automatic" (the default), one-off backgrounded jobs invoke their
|
|
25
|
+
* methods immediately during tests, ignoring delays. The backgrounding call
|
|
26
|
+
* awaits the method's completion.
|
|
26
27
|
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
28
|
+
* With "manual", one-off jobs are queued for explicit processing with
|
|
29
|
+
* `WorkerTestUtils.work()`, or `WorkerTestUtils.workScheduled()` for delayed
|
|
30
|
+
* jobs, so tests can choose when to invoke them.
|
|
31
|
+
*
|
|
32
|
+
* Under either mode, `schedule()` registers or updates a scheduler in Redis
|
|
33
|
+
* without invoking the scheduled method inline. Use
|
|
34
|
+
* `WorkerTestUtils.workScheduled()` to exercise its dispatch, or invoke the
|
|
35
|
+
* method directly to test its body.
|
|
30
36
|
*/
|
|
31
37
|
get testInvocation(): PsychicWorkersAppTestInvocationType;
|
|
32
38
|
private _testInvocation;
|
|
@@ -53,7 +59,17 @@ export type PsychicWorkersHookEventType = 'workers:shutdown';
|
|
|
53
59
|
export interface PsychicWorkersAppHooks {
|
|
54
60
|
workerShutdown: (() => void | Promise<void>)[];
|
|
55
61
|
}
|
|
56
|
-
|
|
62
|
+
/**
|
|
63
|
+
* Native worker options omit `connection`: Psychic supplies the resolved
|
|
64
|
+
* queue-side worker connection when constructing each worker. A `connection`
|
|
65
|
+
* previously supplied here was ignored; deleting it preserves runtime behavior.
|
|
66
|
+
*
|
|
67
|
+
* To deliberately configure a worker's Redis/Cluster instance, use
|
|
68
|
+
* `nativeBullMQ.defaultQueueOptions.workerConnection`,
|
|
69
|
+
* `nativeBullMQ.namedQueueOptions[name].workerConnection`, or the app-wide
|
|
70
|
+
* `defaultWorkerConnection`. See {@link QueueOptionsWithConnectionInstance}.
|
|
71
|
+
*/
|
|
72
|
+
export interface BullMQNativeWorkerOptions extends Omit<WorkerOptions, 'connection'> {
|
|
57
73
|
group?: {
|
|
58
74
|
id?: string;
|
|
59
75
|
maxSize?: number;
|
|
@@ -91,6 +107,12 @@ export interface PsychicBackgroundNativeBullMQOptions extends PsychicBackgroundS
|
|
|
91
107
|
* queue and worker connections.
|
|
92
108
|
*/
|
|
93
109
|
defaultQueueConnection?: RedisOrRedisClusterConnection | undefined;
|
|
110
|
+
/**
|
|
111
|
+
* App-wide worker Redis/Cluster instance, used when
|
|
112
|
+
* `nativeBullMQ.defaultQueueOptions.workerConnection` is omitted. Named queues
|
|
113
|
+
* inherit that resolved default unless their own queue options provide a
|
|
114
|
+
* `workerConnection`. Worker-entry `connection` options are never used.
|
|
115
|
+
*/
|
|
94
116
|
defaultWorkerConnection?: RedisOrRedisClusterConnection | undefined;
|
|
95
117
|
nativeBullMQ: {
|
|
96
118
|
defaultQueueOptions?: QueueOptionsWithConnectionInstance;
|
|
@@ -141,6 +163,17 @@ export type QueueOptionsWithConnectionInstance = Omit<QueueOptions, 'connection'
|
|
|
141
163
|
* queue and worker connections.
|
|
142
164
|
*/
|
|
143
165
|
queueConnection?: RedisOrRedisClusterConnection | undefined;
|
|
166
|
+
/**
|
|
167
|
+
* Worker Redis/Cluster instance for this queue, not a plain BullMQ connection
|
|
168
|
+
* options object. In native mode a named queue's value takes precedence over
|
|
169
|
+
* `nativeBullMQ.defaultQueueOptions.workerConnection`, which takes precedence
|
|
170
|
+
* over the app-wide `defaultWorkerConnection`.
|
|
171
|
+
*
|
|
172
|
+
* This deliberately configures topology; do not move a formerly ignored
|
|
173
|
+
* worker-entry `connection` here just to migrate its literal. Delete that
|
|
174
|
+
* property to preserve behavior. Omit worker connections on producer-only
|
|
175
|
+
* processes; activating workers still requires a resolved instance.
|
|
176
|
+
*/
|
|
144
177
|
workerConnection?: RedisOrRedisClusterConnection | undefined;
|
|
145
178
|
};
|
|
146
179
|
export interface PsychicBackgroundSimpleOptions extends PsychicBackgroundSharedOptions {
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@rvoh/psychic-workers",
|
|
4
4
|
"description": "Background job system for Psychic applications",
|
|
5
|
-
"version": "2.
|
|
5
|
+
"version": "2.9.0",
|
|
6
6
|
"author": "RVO Health",
|
|
7
7
|
"publishConfig": {
|
|
8
8
|
"access": "public"
|
|
@@ -68,40 +68,41 @@
|
|
|
68
68
|
"@koa/cors": "^5.0.0",
|
|
69
69
|
"@koa/etag": "^5.0.2",
|
|
70
70
|
"@koa/router": "^15.7.0",
|
|
71
|
-
"@rvoh/dream": "^2.
|
|
72
|
-
"@rvoh/dream-spec-helpers": "^2.
|
|
73
|
-
"@rvoh/psychic": "^3.
|
|
74
|
-
"@rvoh/psychic-spec-helpers": "^3.4.
|
|
71
|
+
"@rvoh/dream": "^2.41.0",
|
|
72
|
+
"@rvoh/dream-spec-helpers": "^2.4.0",
|
|
73
|
+
"@rvoh/psychic": "^3.18.1",
|
|
74
|
+
"@rvoh/psychic-spec-helpers": "^3.4.2",
|
|
75
75
|
"@types/koa": "^3.0.3",
|
|
76
76
|
"@types/koa-bodyparser": "^4.3.13",
|
|
77
77
|
"@types/koa-conditional-get": "^2.0.4",
|
|
78
78
|
"@types/koa-etag": "^3.0.4",
|
|
79
79
|
"@types/koa__cors": "^5.0.1",
|
|
80
80
|
"@types/koa__router": "^12.0.5",
|
|
81
|
-
"@types/node": "^26.6.
|
|
82
|
-
"@types/pg": "^8",
|
|
81
|
+
"@types/node": "^26.6.5",
|
|
82
|
+
"@types/pg": "^8.23.1",
|
|
83
83
|
"@types/supertest": "^7.2.1",
|
|
84
|
-
"@typescript-eslint/parser": "^8.
|
|
85
|
-
"bullmq": "^5.
|
|
86
|
-
"eslint": "^10.
|
|
87
|
-
"ioredis": "^5.
|
|
84
|
+
"@typescript-eslint/parser": "^8.72.0",
|
|
85
|
+
"bullmq": "^5.81.5",
|
|
86
|
+
"eslint": "^10.13.0",
|
|
87
|
+
"ioredis": "^5.11.1",
|
|
88
88
|
"koa": "^3.2.1",
|
|
89
89
|
"koa-bodyparser": "^4.4.1",
|
|
90
90
|
"koa-conditional-get": "^3.0.0",
|
|
91
|
-
"kysely": "^0.29.
|
|
91
|
+
"kysely": "^0.29.7",
|
|
92
92
|
"kysely-codegen": "~0.20.0",
|
|
93
93
|
"luxon-jest-matchers": "^0.1.14",
|
|
94
94
|
"openapi-typescript": "^7.13.0",
|
|
95
|
-
"pg": "^8.23.
|
|
96
|
-
"prettier": "^3.9.
|
|
97
|
-
"
|
|
98
|
-
"
|
|
95
|
+
"pg": "^8.23.1",
|
|
96
|
+
"prettier": "^3.9.10",
|
|
97
|
+
"puppeteer": "^25.16.0",
|
|
98
|
+
"supertest": "^7.3.1",
|
|
99
|
+
"tslib": "^2.8.1",
|
|
99
100
|
"tsx": "^4.23.15",
|
|
100
101
|
"typedoc": "^0.28.20",
|
|
101
102
|
"typescript": "^5.9.3",
|
|
102
|
-
"typescript-eslint": "^8.
|
|
103
|
-
"vite": "^8.3.
|
|
104
|
-
"vitest": "^5.0.
|
|
103
|
+
"typescript-eslint": "^8.72.0",
|
|
104
|
+
"vite": "^8.3.5",
|
|
105
|
+
"vitest": "^5.0.5"
|
|
105
106
|
},
|
|
106
107
|
"packageManager": "pnpm@12.14.0+sha512.c18ba6d87993d3d164cb5e8948f32b2c06ee854487e06cd8d86781342fb3e5bb4634367034711e86802baa9c37bea906ce1929ad08d70884c97d801df13389a6",
|
|
107
108
|
"dependencies": {
|