velocious 1.0.575 → 1.0.577

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 (66) hide show
  1. package/README.md +46 -1
  2. package/build/background-jobs/main.js +13 -2
  3. package/build/background-jobs/scheduler.js +11 -7
  4. package/build/background-jobs/store.js +18 -13
  5. package/build/environment-handlers/node/cli/commands/test.js +2 -0
  6. package/build/environment-handlers/node/source-peer-package.js +172 -0
  7. package/build/routes/resolver.js +3 -50
  8. package/build/src/background-jobs/main.d.ts.map +1 -1
  9. package/build/src/background-jobs/main.js +13 -3
  10. package/build/src/background-jobs/scheduler.d.ts +2 -2
  11. package/build/src/background-jobs/scheduler.d.ts.map +1 -1
  12. package/build/src/background-jobs/scheduler.js +11 -8
  13. package/build/src/background-jobs/store.d.ts +5 -4
  14. package/build/src/background-jobs/store.d.ts.map +1 -1
  15. package/build/src/background-jobs/store.js +17 -12
  16. package/build/src/environment-handlers/node/cli/commands/test.d.ts.map +1 -1
  17. package/build/src/environment-handlers/node/cli/commands/test.js +3 -1
  18. package/build/src/environment-handlers/node/source-peer-package.d.ts +46 -0
  19. package/build/src/environment-handlers/node/source-peer-package.d.ts.map +1 -0
  20. package/build/src/environment-handlers/node/source-peer-package.js +148 -0
  21. package/build/src/routes/resolver.d.ts.map +1 -1
  22. package/build/src/routes/resolver.js +4 -45
  23. package/build/src/sync/sync-envelope-replay-service.d.ts.map +1 -1
  24. package/build/src/sync/sync-envelope-replay-service.js +9 -2
  25. package/build/sync/sync-envelope-replay-service.js +10 -1
  26. package/build/tsconfig.tsbuildinfo +1 -1
  27. package/package.json +2 -1
  28. package/scripts/run-tests.js +61 -20
  29. package/scripts/test-browser.js +6 -1
  30. package/src/background-jobs/main.js +13 -2
  31. package/src/background-jobs/scheduler.js +11 -7
  32. package/src/background-jobs/store.js +18 -13
  33. package/src/environment-handlers/node/cli/commands/test.js +2 -0
  34. package/src/environment-handlers/node/source-peer-package.js +172 -0
  35. package/src/routes/resolver.js +3 -50
  36. package/src/sync/sync-envelope-replay-service.js +10 -1
  37. package/build/deployment-api/controller.js +0 -437
  38. package/build/deployment-api/index.js +0 -210
  39. package/build/deployment-api/path-matcher.js +0 -45
  40. package/build/deployment-api/registry.js +0 -84
  41. package/build/deployment-api/run-store.js +0 -798
  42. package/build/deployment-api/sanitize.js +0 -114
  43. package/build/src/deployment-api/controller.d.ts +0 -117
  44. package/build/src/deployment-api/controller.d.ts.map +0 -1
  45. package/build/src/deployment-api/controller.js +0 -384
  46. package/build/src/deployment-api/index.d.ts +0 -46
  47. package/build/src/deployment-api/index.d.ts.map +0 -1
  48. package/build/src/deployment-api/index.js +0 -178
  49. package/build/src/deployment-api/path-matcher.d.ts +0 -31
  50. package/build/src/deployment-api/path-matcher.d.ts.map +0 -1
  51. package/build/src/deployment-api/path-matcher.js +0 -39
  52. package/build/src/deployment-api/registry.d.ts +0 -106
  53. package/build/src/deployment-api/registry.d.ts.map +0 -1
  54. package/build/src/deployment-api/registry.js +0 -74
  55. package/build/src/deployment-api/run-store.d.ts +0 -402
  56. package/build/src/deployment-api/run-store.d.ts.map +0 -1
  57. package/build/src/deployment-api/run-store.js +0 -711
  58. package/build/src/deployment-api/sanitize.d.ts +0 -27
  59. package/build/src/deployment-api/sanitize.d.ts.map +0 -1
  60. package/build/src/deployment-api/sanitize.js +0 -100
  61. package/src/deployment-api/controller.js +0 -437
  62. package/src/deployment-api/index.js +0 -210
  63. package/src/deployment-api/path-matcher.js +0 -45
  64. package/src/deployment-api/registry.js +0 -84
  65. package/src/deployment-api/run-store.js +0 -798
  66. package/src/deployment-api/sanitize.js +0 -114
@@ -1,402 +0,0 @@
1
- /**
2
- * Marks a run as executing in this process so lease reconciliation never
3
- * reclaims it.
4
- * @param {string} id - Run id.
5
- * @returns {void} - No return value.
6
- */
7
- export function registerActiveDeploymentRun(id: string): void;
8
- /**
9
- * Removes a run from the in-process execution registry.
10
- * @param {string} id - Run id.
11
- * @returns {void} - No return value.
12
- */
13
- export function unregisterActiveDeploymentRun(id: string): void;
14
- /**
15
- * Persistence for deployment API runs and audit events. Owns its schema
16
- * lazily (the record-attachments store precedent) so the tables exist in the
17
- * consuming app's database without app-side migrations.
18
- */
19
- export default class DeploymentRunStore {
20
- /**
21
- * Runs constructor.
22
- * @param {object} args - Options.
23
- * @param {import("../configuration.js").default} args.configuration - Configuration instance.
24
- * @param {string} [args.databaseIdentifier] - Database identifier; defaults to the primary database.
25
- * @param {string} args.mountIdentifier - Stable identifier of the authenticated API mount.
26
- * @param {number} [args.staleRunTimeoutMs] - Lease timeout after which an active run without a heartbeat counts as interrupted.
27
- */
28
- constructor({ configuration, databaseIdentifier, mountIdentifier, staleRunTimeoutMs }: {
29
- configuration: import("../configuration.js").default;
30
- databaseIdentifier?: string | undefined;
31
- mountIdentifier: string;
32
- staleRunTimeoutMs?: number | undefined;
33
- });
34
- configuration: import("../configuration.js").default;
35
- databaseIdentifier: string;
36
- mountIdentifier: string;
37
- staleRunTimeoutMs: number;
38
- /** @type {Promise<void> | null} */
39
- _readyPromise: Promise<void> | null;
40
- /**
41
- * Ensures the run and audit tables exist.
42
- * @returns {Promise<void>} - Resolves when the schema is ready.
43
- */
44
- ensureReady(): Promise<void>;
45
- /**
46
- * Finds a run by id.
47
- * @param {string} id - Run id.
48
- * @returns {Promise<DeploymentRunRow | null>} - The run or null.
49
- */
50
- findRunById(id: string): Promise<DeploymentRunRow | null>;
51
- /**
52
- * Finds a run by idempotency key.
53
- * @param {string} idempotencyKey - Idempotency key.
54
- * @returns {Promise<DeploymentRunRow | null>} - The run or null.
55
- */
56
- findRunByKey(idempotencyKey: string): Promise<DeploymentRunRow | null>;
57
- /**
58
- * Creates a run fenced by two advisory locks taken in a consistent global
59
- * order — first the project/stage deployment lock, then the idempotency-key
60
- * lock — so concurrent requests get a deterministic outcome instead of
61
- * duplicate deployments or unique-constraint errors: an identical existing
62
- * key replays, a different payload for an existing key conflicts, and an
63
- * active run for the same project/stage blocks unless its ownership lease
64
- * expired, in which case it is terminally reconciled as interrupted first.
65
- * @param {object} args - Options.
66
- * @param {string} args.idempotencyKey - Idempotency key.
67
- * @param {string} args.project - Project identifier.
68
- * @param {string} args.revision - Requested revision.
69
- * @param {string} args.stage - Stage identifier.
70
- * @returns {Promise<CreateRunOutcome>} - The outcome and the relevant run.
71
- */
72
- createRunIfPossible({ idempotencyKey, project, revision, stage }: {
73
- idempotencyKey: string;
74
- project: string;
75
- revision: string;
76
- stage: string;
77
- }): Promise<CreateRunOutcome>;
78
- /**
79
- * Marks a run as running.
80
- * @param {object} args - Options.
81
- * @param {string} args.id - Run id.
82
- * @param {number} args.startedAtMs - Start time in ms epoch.
83
- * @returns {Promise<void>} - Resolves when updated.
84
- */
85
- markRunning({ id, startedAtMs }: {
86
- id: string;
87
- startedAtMs: number;
88
- }): Promise<void>;
89
- /**
90
- * Renews the ownership lease of a run executing in this process. A no-op
91
- * when the run already reached a terminal state.
92
- * @param {object} args - Options.
93
- * @param {string} args.id - Run id.
94
- * @param {number} args.heartbeatAtMs - Heartbeat time in ms epoch.
95
- * @returns {Promise<void>} - Resolves when updated.
96
- */
97
- heartbeat({ heartbeatAtMs, id }: {
98
- id: string;
99
- heartbeatAtMs: number;
100
- }): Promise<void>;
101
- /**
102
- * Marks a run as succeeded with its sanitized result.
103
- * @param {object} args - Options.
104
- * @param {string} args.id - Run id.
105
- * @param {string} args.ownerToken - Expected execution owner token.
106
- * @param {number} args.finishedAtMs - Finish time in ms epoch.
107
- * @param {?} args.result - Sanitized adapter report.
108
- * @returns {Promise<void>} - Resolves when updated.
109
- */
110
- markSucceeded({ finishedAtMs, id, ownerToken, result }: {
111
- id: string;
112
- ownerToken: string;
113
- finishedAtMs: number;
114
- result: unknown;
115
- }): Promise<void>;
116
- /**
117
- * Marks a run as failed with its sanitized failure payload.
118
- * @param {object} args - Options.
119
- * @param {string} args.id - Run id.
120
- * @param {string} args.ownerToken - Expected execution owner token.
121
- * @param {number} args.finishedAtMs - Finish time in ms epoch.
122
- * @param {?} args.error - Sanitized failure payload.
123
- * @returns {Promise<void>} - Resolves when updated.
124
- */
125
- markFailed({ error, finishedAtMs, id, ownerToken }: {
126
- id: string;
127
- ownerToken: string;
128
- finishedAtMs: number;
129
- error: unknown;
130
- }): Promise<void>;
131
- /**
132
- * Fences a run after the adapter may have activated externally but its
133
- * successful result could not be durably recorded. This state blocks future
134
- * deployments until an operator reconciles the external outcome.
135
- * @param {object} args - Options.
136
- * @param {string} args.id - Run id.
137
- * @param {string} args.ownerToken - Expected execution owner token.
138
- * @param {number} args.finishedAtMs - Time reconciliation became necessary in ms epoch.
139
- * @param {?} args.error - Sanitized operator-facing explanation.
140
- * @returns {Promise<void>} - Resolves when updated.
141
- */
142
- markReconciliationRequired({ error, finishedAtMs, id, ownerToken }: {
143
- id: string;
144
- ownerToken: string;
145
- finishedAtMs: number;
146
- error: unknown;
147
- }): Promise<void>;
148
- /**
149
- * Records a sanitized audit event.
150
- * @param {object} args - Options.
151
- * @param {string} args.event - Event name.
152
- * @param {?} args.payload - Sanitized payload.
153
- * @param {string | null} args.runId - Owning run id.
154
- * @returns {Promise<void>} - Resolves when recorded.
155
- */
156
- addAuditEvent({ event, payload, runId }: {
157
- event: string;
158
- payload: unknown;
159
- runId: string | null;
160
- }): Promise<void>;
161
- /**
162
- * Lists audit events for a run in creation order.
163
- * @param {object} args - Options.
164
- * @param {string} args.runId - Run id.
165
- * @returns {Promise<DeploymentAuditEventRow[]>} - Audit events.
166
- */
167
- listAuditEvents({ runId }: {
168
- runId: string;
169
- }): Promise<DeploymentAuditEventRow[]>;
170
- /**
171
- * Builds the advisory-lock name for a project/stage pair. Hashed so the name
172
- * stays within driver limits (MySQL/MariaDB cap lock names at 64 chars)
173
- * regardless of identifier length.
174
- * @param {object} args - Options.
175
- * @param {string} args.project - Project identifier.
176
- * @param {string} args.stage - Stage identifier.
177
- * @returns {string} - Bounded advisory-lock name.
178
- */
179
- _deploymentLockName({ project, stage }: {
180
- project: string;
181
- stage: string;
182
- }): string;
183
- /**
184
- * Builds the advisory-lock name serializing one idempotency key within this mount.
185
- * @param {string} idempotencyKey - Idempotency key.
186
- * @returns {string} - Bounded advisory-lock name.
187
- */
188
- _idempotencyLockName(idempotencyKey: string): string;
189
- /**
190
- * Decides whether an active run counts as interrupted: its owner lease
191
- * (heartbeat, or the request time when it never started) is older than the
192
- * configured timeout and it is not executing in this process. A run with a
193
- * fresh lease owned by another worker is genuinely active and must never be
194
- * reclaimed here.
195
- * @param {DeploymentRunRow} run - Active run.
196
- * @returns {boolean} - Whether the run is interrupted.
197
- */
198
- _isRunInterrupted(run: DeploymentRunRow): boolean;
199
- /**
200
- * Reconciles an expired ownership lease. Pending work is safely interrupted
201
- * because external activation never began. Running work requires operator
202
- * reconciliation because the external outcome may already have changed.
203
- * Runs inside the project/stage deployment lock, so exactly one reconciler
204
- * wins.
205
- * @param {import("../database/drivers/base.js").default} db - Database connection.
206
- * @param {DeploymentRunRow} run - Interrupted run.
207
- * @returns {Promise<void>} - Resolves when reconciled.
208
- */
209
- _reconcileExpiredRun(db: import("../database/drivers/base.js").default, run: DeploymentRunRow): Promise<void>;
210
- /**
211
- * Adds the ownership lease columns to a runs table created before they
212
- * existed (the background-jobs store column-upgrade precedent).
213
- * @param {import("../database/drivers/base.js").default} db - Database connection.
214
- * @returns {Promise<void>} - Resolves when the columns exist.
215
- */
216
- _ensureRunColumns(db: import("../database/drivers/base.js").default): Promise<void>;
217
- /**
218
- * Adds and safely backfills a mount identifier on an existing lazily-owned table.
219
- * Legacy rows were not attributable to an authenticated mount, so they are
220
- * quarantined in an unreachable scope instead of being exposed to whichever
221
- * mount happens to initialize first.
222
- * @param {import("../database/drivers/base.js").default} db - Database connection.
223
- * @param {string} tableName - Lazily-owned table name.
224
- * @returns {Promise<void>} - Resolves when the column exists.
225
- */
226
- _ensureMountIdentifierColumn(db: import("../database/drivers/base.js").default, tableName: string): Promise<void>;
227
- /**
228
- * Assigns pre-scope rows to a reserved identifier no real mount can use.
229
- * @param {import("../database/drivers/base.js").default} db - Database connection.
230
- * @param {string} tableName - Table containing legacy rows.
231
- * @returns {Promise<void>} - Resolves when legacy rows are quarantined.
232
- */
233
- _quarantineLegacyRows(db: import("../database/drivers/base.js").default, tableName: string): Promise<void>;
234
- /**
235
- * Replaces the legacy global idempotency-key uniqueness with mount-scoped
236
- * uniqueness. The scoped index is created before the old one is removed, so
237
- * an interrupted lazy upgrade never leaves idempotency keys unfenced.
238
- * @param {import("../database/drivers/base.js").default} db - Database connection.
239
- * @returns {Promise<void>} - Resolves when index ownership is scoped.
240
- */
241
- _ensureScopedIdempotencyIndex(db: import("../database/drivers/base.js").default): Promise<void>;
242
- /**
243
- * Applies a terminal transition only while the expected execution owner
244
- * still owns a running row. A stale worker therefore cannot overwrite a
245
- * state already written by lease reconciliation.
246
- * @param {object} args - Options.
247
- * @param {Record<string, ?>} args.data - Terminal column values.
248
- * @param {string} args.id - Run id.
249
- * @param {string} args.ownerToken - Expected execution owner token.
250
- * @returns {Promise<void>} - Resolves when updated.
251
- */
252
- _transitionRunningRun({ data, id, ownerToken }: {
253
- data: Record<string, unknown>;
254
- id: string;
255
- ownerToken: string;
256
- }): Promise<void>;
257
- /**
258
- * Finds a run by id on an open connection.
259
- * @param {import("../database/drivers/base.js").default} db - Database connection.
260
- * @param {string} id - Run id.
261
- * @returns {Promise<DeploymentRunRow | null>} - The run or null.
262
- */
263
- _findRunById(db: import("../database/drivers/base.js").default, id: string): Promise<DeploymentRunRow | null>;
264
- /**
265
- * Finds a run by idempotency key on an open connection.
266
- * @param {import("../database/drivers/base.js").default} db - Database connection.
267
- * @param {string} idempotencyKey - Idempotency key.
268
- * @returns {Promise<DeploymentRunRow | null>} - The run or null.
269
- */
270
- _findRunByKey(db: import("../database/drivers/base.js").default, idempotencyKey: string): Promise<DeploymentRunRow | null>;
271
- /**
272
- * Finds the run blocking another deployment for a project/stage.
273
- * @param {import("../database/drivers/base.js").default} db - Database connection.
274
- * @param {object} args - Options.
275
- * @param {string} args.project - Project identifier.
276
- * @param {string} args.stage - Stage identifier.
277
- * @returns {Promise<DeploymentRunRow | null>} - The blocking run or null.
278
- */
279
- _findBlockingRun(db: import("../database/drivers/base.js").default, { project, stage }: {
280
- project: string;
281
- stage: string;
282
- }): Promise<DeploymentRunRow | null>;
283
- /**
284
- * Normalizes a raw run row.
285
- * @param {?} row - Raw database row.
286
- * @returns {DeploymentRunRow} - Normalized run row.
287
- */
288
- _runRowFromDb(row: unknown): DeploymentRunRow;
289
- /**
290
- * Normalizes a raw audit event row.
291
- * @param {?} row - Raw database row.
292
- * @returns {DeploymentAuditEventRow} - Normalized audit event row.
293
- */
294
- _auditRowFromDb(row: unknown): DeploymentAuditEventRow;
295
- /**
296
- * Runs a callback with a pooled connection.
297
- * @template T
298
- * @param {(db: import("../database/drivers/base.js").default) => Promise<T>} callback - Callback.
299
- * @returns {Promise<T>} - Callback result.
300
- */
301
- _withDb<T>(callback: (db: import("../database/drivers/base.js").default) => Promise<T>): Promise<T>;
302
- }
303
- /**
304
- * DeploymentRunRow type.
305
- */
306
- export type DeploymentRunRow = {
307
- /**
308
- * - Run id (UUID).
309
- */
310
- id: string;
311
- /**
312
- * - Stable identifier of the authenticated API mount that owns the run.
313
- */
314
- mountIdentifier: string;
315
- /**
316
- * - Allowlisted project identifier.
317
- */
318
- project: string;
319
- /**
320
- * - Allowlisted stage identifier.
321
- */
322
- stage: string;
323
- /**
324
- * - Full immutable requested Git revision.
325
- */
326
- revision: string;
327
- /**
328
- * - Caller-supplied idempotency key.
329
- */
330
- idempotencyKey: string;
331
- /**
332
- * - Run status: pending, running, succeeded, failed, interrupted, or reconciliation_required.
333
- */
334
- status: string;
335
- /**
336
- * - Sanitized adapter report, or null while unset.
337
- */
338
- result: unknown;
339
- /**
340
- * - Sanitized failure payload, or null while unset.
341
- */
342
- error: unknown;
343
- /**
344
- * - Creation time in ms epoch.
345
- */
346
- requestedAtMs: number;
347
- /**
348
- * - Execution start in ms epoch.
349
- */
350
- startedAtMs: number | null;
351
- /**
352
- * - Terminal time in ms epoch.
353
- */
354
- finishedAtMs: number | null;
355
- /**
356
- * - Ownership token of the executing process.
357
- */
358
- ownerToken: string | null;
359
- /**
360
- * - Last ownership lease heartbeat in ms epoch.
361
- */
362
- heartbeatAtMs: number | null;
363
- };
364
- /**
365
- * DeploymentAuditEventRow type.
366
- */
367
- export type DeploymentAuditEventRow = {
368
- /**
369
- * - Event id (UUID).
370
- */
371
- id: string;
372
- /**
373
- * - Owning run id.
374
- */
375
- runId: string | null;
376
- /**
377
- * - Event name (e.g. run_requested, run_started, run_succeeded, run_failed).
378
- */
379
- event: string;
380
- /**
381
- * - Sanitized JSON payload.
382
- */
383
- payload: unknown;
384
- /**
385
- * - Creation time in ms epoch.
386
- */
387
- createdAtMs: number;
388
- };
389
- /**
390
- * CreateRunOutcome type.
391
- */
392
- export type CreateRunOutcome = {
393
- /**
394
- * - What happened.
395
- */
396
- outcome: "created" | "replay" | "conflict" | "in_progress" | "reconciliation_required";
397
- /**
398
- * - The created, replayed, conflicting, or active run; null when the deployment lock was held mid-creation by another process.
399
- */
400
- run: DeploymentRunRow | null;
401
- };
402
- //# sourceMappingURL=run-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-store.d.ts","sourceRoot":"","sources":["../../../src/deployment-api/run-store.js"],"names":[],"mappings":"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"}