velocious 1.0.666 → 1.0.667

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 (103) hide show
  1. package/README.md +13 -4
  2. package/build/background-jobs/adapter-client.js +22 -0
  3. package/build/background-jobs/adapter.js +15 -0
  4. package/build/background-jobs/client.js +147 -1
  5. package/build/background-jobs/job-semantics.js +30 -0
  6. package/build/background-jobs/job.js +26 -1
  7. package/build/background-jobs/local-adapter.js +36 -8
  8. package/build/background-jobs/local-store.js +410 -39
  9. package/build/background-jobs/main.js +69 -2
  10. package/build/background-jobs/platform-job.js +26 -1
  11. package/build/background-jobs/runtime.js +58 -0
  12. package/build/background-jobs/store.js +374 -6
  13. package/build/background-jobs/types.js +27 -2
  14. package/build/background-jobs/web/controller.js +1 -0
  15. package/build/configuration.js +7 -5
  16. package/build/database/drivers/mssql/column.js +2 -2
  17. package/build/database/drivers/mssql/table.js +19 -5
  18. package/build/database/pool/async-tracked-multi-connection.js +2 -1
  19. package/build/database/query/alter-table-base.js +8 -1
  20. package/build/database/record/attachments/store.js +2 -2
  21. package/build/frontend-model-controller.js +22 -2
  22. package/build/http-server/websocket-events-host.js +3 -1
  23. package/build/src/background-jobs/adapter-client.d.ts +17 -0
  24. package/build/src/background-jobs/adapter-client.d.ts.map +1 -1
  25. package/build/src/background-jobs/adapter-client.js +19 -1
  26. package/build/src/background-jobs/adapter.d.ts +15 -0
  27. package/build/src/background-jobs/adapter.d.ts.map +1 -1
  28. package/build/src/background-jobs/adapter.js +14 -1
  29. package/build/src/background-jobs/client.d.ts +17 -0
  30. package/build/src/background-jobs/client.d.ts.map +1 -1
  31. package/build/src/background-jobs/client.js +129 -1
  32. package/build/src/background-jobs/job-semantics.d.ts +18 -0
  33. package/build/src/background-jobs/job-semantics.d.ts.map +1 -1
  34. package/build/src/background-jobs/job-semantics.js +28 -1
  35. package/build/src/background-jobs/job.d.ts +15 -0
  36. package/build/src/background-jobs/job.d.ts.map +1 -1
  37. package/build/src/background-jobs/job.js +21 -2
  38. package/build/src/background-jobs/local-adapter.d.ts +23 -8
  39. package/build/src/background-jobs/local-adapter.d.ts.map +1 -1
  40. package/build/src/background-jobs/local-adapter.js +35 -9
  41. package/build/src/background-jobs/local-store.d.ts +120 -5
  42. package/build/src/background-jobs/local-store.d.ts.map +1 -1
  43. package/build/src/background-jobs/local-store.js +366 -40
  44. package/build/src/background-jobs/main.d.ts +24 -2
  45. package/build/src/background-jobs/main.d.ts.map +1 -1
  46. package/build/src/background-jobs/main.js +68 -3
  47. package/build/src/background-jobs/platform-job.d.ts +15 -0
  48. package/build/src/background-jobs/platform-job.d.ts.map +1 -1
  49. package/build/src/background-jobs/platform-job.js +19 -2
  50. package/build/src/background-jobs/runtime.d.ts +39 -0
  51. package/build/src/background-jobs/runtime.d.ts.map +1 -1
  52. package/build/src/background-jobs/runtime.js +49 -1
  53. package/build/src/background-jobs/store.d.ts +100 -1
  54. package/build/src/background-jobs/store.d.ts.map +1 -1
  55. package/build/src/background-jobs/store.js +334 -8
  56. package/build/src/background-jobs/types.d.ts +97 -4
  57. package/build/src/background-jobs/types.d.ts.map +1 -1
  58. package/build/src/background-jobs/types.js +28 -3
  59. package/build/src/background-jobs/web/controller.d.ts.map +1 -1
  60. package/build/src/background-jobs/web/controller.js +2 -1
  61. package/build/src/configuration.d.ts.map +1 -1
  62. package/build/src/configuration.js +7 -5
  63. package/build/src/database/drivers/mssql/column.d.ts.map +1 -1
  64. package/build/src/database/drivers/mssql/column.js +2 -2
  65. package/build/src/database/drivers/mssql/table.d.ts.map +1 -1
  66. package/build/src/database/drivers/mssql/table.js +19 -5
  67. package/build/src/database/pool/async-tracked-multi-connection.d.ts.map +1 -1
  68. package/build/src/database/pool/async-tracked-multi-connection.js +3 -2
  69. package/build/src/database/query/alter-table-base.d.ts.map +1 -1
  70. package/build/src/database/query/alter-table-base.js +9 -2
  71. package/build/src/database/record/attachments/store.js +3 -3
  72. package/build/src/frontend-model-controller.d.ts.map +1 -1
  73. package/build/src/frontend-model-controller.js +18 -3
  74. package/build/src/http-server/websocket-events-host.d.ts.map +1 -1
  75. package/build/src/http-server/websocket-events-host.js +4 -2
  76. package/build/src/testing/test-files-finder.d.ts +4 -1
  77. package/build/src/testing/test-files-finder.d.ts.map +1 -1
  78. package/build/src/testing/test-files-finder.js +8 -3
  79. package/build/testing/test-files-finder.js +6 -1
  80. package/package.json +1 -1
  81. package/scripts/test-browser.js +1 -0
  82. package/src/background-jobs/adapter-client.js +22 -0
  83. package/src/background-jobs/adapter.js +15 -0
  84. package/src/background-jobs/client.js +147 -1
  85. package/src/background-jobs/job-semantics.js +30 -0
  86. package/src/background-jobs/job.js +26 -1
  87. package/src/background-jobs/local-adapter.js +36 -8
  88. package/src/background-jobs/local-store.js +410 -39
  89. package/src/background-jobs/main.js +69 -2
  90. package/src/background-jobs/platform-job.js +26 -1
  91. package/src/background-jobs/runtime.js +58 -0
  92. package/src/background-jobs/store.js +374 -6
  93. package/src/background-jobs/types.js +27 -2
  94. package/src/background-jobs/web/controller.js +1 -0
  95. package/src/configuration.js +7 -5
  96. package/src/database/drivers/mssql/column.js +2 -2
  97. package/src/database/drivers/mssql/table.js +19 -5
  98. package/src/database/pool/async-tracked-multi-connection.js +2 -1
  99. package/src/database/query/alter-table-base.js +8 -1
  100. package/src/database/record/attachments/store.js +2 -2
  101. package/src/frontend-model-controller.js +22 -2
  102. package/src/http-server/websocket-events-host.js +3 -1
  103. package/src/testing/test-files-finder.js +6 -1
@@ -8,7 +8,9 @@ import PlatformVelociousJob from "./platform-job.js"
8
8
  import {
9
9
  cancelScheduledBackgroundJobForConfiguration,
10
10
  enqueueBackgroundJobForConfiguration,
11
- replaceScheduledBackgroundJobForConfiguration
11
+ getScheduledBackgroundJobForConfiguration,
12
+ replaceScheduledBackgroundJobForConfiguration,
13
+ wakeScheduledBackgroundJobForConfiguration
12
14
  } from "./runtime.js"
13
15
 
14
16
  /**
@@ -84,4 +86,27 @@ export default class VelociousJob extends PlatformVelociousJob {
84
86
 
85
87
  return await cancelScheduledBackgroundJobForConfiguration({configuration, scheduleKey})
86
88
  }
89
+
90
+ /**
91
+ * Reads current ownership and optional terminal history for a stable key.
92
+ * @param {string} scheduleKey - Stable logical schedule key.
93
+ * @param {{includeLatestTerminal?: boolean}} [options] - Lookup options.
94
+ * @returns {Promise<import("./types.js").BackgroundJobScheduledLookupResult>} - Normalized stable schedule jobs.
95
+ */
96
+ static async getScheduledJob(scheduleKey, options = {}) {
97
+ const configuration = await configurationResolver()
98
+
99
+ return await getScheduledBackgroundJobForConfiguration({configuration, scheduleKey, ...options})
100
+ }
101
+
102
+ /**
103
+ * Expedites a future queued owner without creating another job.
104
+ * @param {string} scheduleKey - Stable logical schedule key.
105
+ * @returns {Promise<import("./types.js").BackgroundJobWakeResult>} - Wake result.
106
+ */
107
+ static async wakeScheduled(scheduleKey) {
108
+ const configuration = await configurationResolver()
109
+
110
+ return await wakeScheduledBackgroundJobForConfiguration({configuration, scheduleKey})
111
+ }
87
112
  }
@@ -67,18 +67,46 @@ export default class LocalBackgroundJobsAdapter extends BackgroundJobsAdapter {
67
67
  }
68
68
 
69
69
  /**
70
- * Rejects stable-key cancellation, which is outside the local adapter contract.
71
- * @param {string} _scheduleKey - Unsupported stable key.
72
- * @returns {Promise<import("./types.js").BackgroundJobCancellationResult>} - Never resolves.
70
+ * Cancels or detaches the current owner of a stable schedule key.
71
+ * @param {string} scheduleKey - Stable schedule key.
72
+ * @returns {Promise<import("./types.js").BackgroundJobCancellationResult>} - Cancellation result.
73
73
  */
74
- async cancelScheduled(_scheduleKey) { throw new Error("cancelScheduled is not supported by the local background-jobs adapter") }
74
+ async cancelScheduled(scheduleKey) {
75
+ await this.ensureReady()
76
+ return await this.store.cancelScheduled(scheduleKey)
77
+ }
78
+
79
+ /**
80
+ * Replaces the current owner of a stable schedule key.
81
+ * @param {{scheduleKey: string, jobName: string, args: Array<ReturnType<typeof JSON.parse>>, options?: import("./types.js").BackgroundJobOptions}} args - Replacement request.
82
+ * @returns {Promise<import("./types.js").BackgroundJobReplacementResult>} - Replacement result.
83
+ */
84
+ async replaceScheduled(args) {
85
+ await this.ensureReady()
86
+ this.registry.resolve(args.jobName)
87
+ return await this.store.replaceScheduled(args)
88
+ }
75
89
 
76
90
  /**
77
- * Rejects stable-key replacement, which is outside the local adapter contract.
78
- * @param {{scheduleKey: string, jobName: string, args: Array<ReturnType<typeof JSON.parse>>, options?: import("./types.js").BackgroundJobOptions}} _args - Unsupported request.
79
- * @returns {Promise<import("./types.js").BackgroundJobReplacementResult>} - Never resolves.
91
+ * Reads stable ownership and optional terminal history.
92
+ * @param {string} scheduleKey - Stable schedule key.
93
+ * @param {{includeLatestTerminal?: boolean}} [options] - Lookup options.
94
+ * @returns {Promise<import("./types.js").BackgroundJobScheduledLookupResult>} - Normalized local jobs.
80
95
  */
81
- async replaceScheduled(_args) { throw new Error("replaceScheduled is not supported by the local background-jobs adapter") }
96
+ async getScheduledJob(scheduleKey, options) {
97
+ await this.ensureReady()
98
+ return await this.store.getScheduledJob(scheduleKey, options)
99
+ }
100
+
101
+ /**
102
+ * Makes a future queued stable owner due without replacing it.
103
+ * @param {string} scheduleKey - Stable schedule key.
104
+ * @returns {Promise<import("./types.js").BackgroundJobWakeResult>} - Exact wake result.
105
+ */
106
+ async wakeScheduled(scheduleKey) {
107
+ await this.ensureReady()
108
+ return await this.store.wakeScheduled(scheduleKey)
109
+ }
82
110
 
83
111
  /**
84
112
  * Finds the next eligible local job.