@adonis-agora/durable 0.21.1 → 0.22.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/CHANGELOG.md +41 -0
- package/dist/assets/spa/assets/index-BpH1yTMa.js +81 -0
- package/dist/assets/spa/assets/index-BpH1yTMa.js.map +1 -0
- package/dist/assets/spa/assets/index-CTsYsi6p.css +1 -0
- package/dist/assets/spa/index.html +19 -0
- package/dist/providers/dashboard_provider.d.ts +51 -52
- package/dist/providers/dashboard_provider.d.ts.map +1 -1
- package/dist/providers/dashboard_provider.js +234 -121
- package/dist/providers/dashboard_provider.js.map +1 -1
- package/dist/src/dashboard/attr-filter.d.ts +8 -0
- package/dist/src/dashboard/attr-filter.d.ts.map +1 -0
- package/dist/src/dashboard/attr-filter.js +35 -0
- package/dist/src/dashboard/attr-filter.js.map +1 -0
- package/dist/src/dashboard/auth.d.ts +55 -10
- package/dist/src/dashboard/auth.d.ts.map +1 -1
- package/dist/src/dashboard/auth.js +50 -11
- package/dist/src/dashboard/auth.js.map +1 -1
- package/dist/src/dashboard/gateway-adapter.d.ts +52 -5
- package/dist/src/dashboard/gateway-adapter.d.ts.map +1 -1
- package/dist/src/dashboard/gateway-adapter.js +48 -6
- package/dist/src/dashboard/gateway-adapter.js.map +1 -1
- package/dist/src/dashboard/handlers.d.ts +56 -8
- package/dist/src/dashboard/handlers.d.ts.map +1 -1
- package/dist/src/dashboard/handlers.js +116 -14
- package/dist/src/dashboard/handlers.js.map +1 -1
- package/dist/src/dashboard/index.d.ts +4 -4
- package/dist/src/dashboard/index.d.ts.map +1 -1
- package/dist/src/dashboard/index.js +3 -3
- package/dist/src/dashboard/index.js.map +1 -1
- package/dist/src/dashboard/spa.d.ts +22 -0
- package/dist/src/dashboard/spa.d.ts.map +1 -0
- package/dist/src/dashboard/spa.js +43 -0
- package/dist/src/dashboard/spa.js.map +1 -0
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/transports/queue-mock-adapter.d.ts +1 -0
- package/dist/src/transports/queue-mock-adapter.d.ts.map +1 -1
- package/dist/src/transports/queue-mock-adapter.js +1 -0
- package/dist/src/transports/queue-mock-adapter.js.map +1 -1
- package/dist/stubs/config/durable_dashboard.stub +19 -0
- package/package.json +18 -17
|
@@ -1,13 +1,21 @@
|
|
|
1
|
+
import { parseAttrFilters } from './attr-filter.js';
|
|
1
2
|
/** A `200 OK` JSON response. Exported so sibling handlers (e.g. `compat`) share one convention. */
|
|
2
3
|
export const ok = (body) => ({ status: 200, body });
|
|
3
4
|
const notFound = (message) => ({
|
|
4
5
|
status: 404,
|
|
5
6
|
body: { error: message },
|
|
6
7
|
});
|
|
8
|
+
const badRequest = (message) => ({
|
|
9
|
+
status: 400,
|
|
10
|
+
body: { error: message },
|
|
11
|
+
});
|
|
12
|
+
/** The full status union (`interfaces.ts`'s `RunStatus`) — kept in sync so filters/facets never drop a
|
|
13
|
+
* state; a previous version of this list was missing `'blocked'`. */
|
|
7
14
|
const RUN_STATUSES = [
|
|
8
15
|
'pending',
|
|
9
16
|
'running',
|
|
10
17
|
'suspended',
|
|
18
|
+
'blocked',
|
|
11
19
|
'completed',
|
|
12
20
|
'failed',
|
|
13
21
|
'cancelled',
|
|
@@ -33,23 +41,35 @@ function parseStatus(value) {
|
|
|
33
41
|
}
|
|
34
42
|
return undefined;
|
|
35
43
|
}
|
|
36
|
-
/**
|
|
44
|
+
/** Build a {@link RunQuery} from the query params shared by `listRuns` and `bulkAction` — status, tag,
|
|
45
|
+
* attribute predicates (`attr=key:op:value`, repeatable/ANDed), namespace. `origin` is intentionally
|
|
46
|
+
* NOT a query predicate (the engine has no `origin` column — see `durable-client.ts`'s module doc);
|
|
47
|
+
* it is read but ignored, so a client that always sends it (parity with the NestJS API) never 400s. */
|
|
48
|
+
function runFilterFromQuery(query) {
|
|
49
|
+
const status = parseStatus(firstQuery(query.status));
|
|
50
|
+
const workflow = firstQuery(query.workflow);
|
|
51
|
+
const tag = firstQuery(query.tag);
|
|
52
|
+
const namespace = firstQuery(query.namespace);
|
|
53
|
+
const attributes = parseAttrFilters(query.attr);
|
|
54
|
+
const filter = {};
|
|
55
|
+
if (status)
|
|
56
|
+
filter.status = status;
|
|
57
|
+
if (workflow)
|
|
58
|
+
filter.workflow = workflow;
|
|
59
|
+
if (tag)
|
|
60
|
+
filter.tag = tag;
|
|
61
|
+
if (namespace)
|
|
62
|
+
filter.namespace = namespace;
|
|
63
|
+
if (attributes)
|
|
64
|
+
filter.attributes = attributes;
|
|
65
|
+
return filter;
|
|
66
|
+
}
|
|
67
|
+
/** `GET /runs` — list runs filtered by status/workflow/tag/namespace/search-attributes, paginated. */
|
|
37
68
|
export async function listRuns(deps, req) {
|
|
38
69
|
const { engine } = deps;
|
|
39
70
|
const limit = Math.min(intQuery(req.query.limit, 50), 200);
|
|
40
71
|
const offset = intQuery(req.query.offset, 0);
|
|
41
|
-
const
|
|
42
|
-
const workflow = firstQuery(req.query.workflow);
|
|
43
|
-
const tag = firstQuery(req.query.tag);
|
|
44
|
-
// Build the query with only the predicates that are set — exactOptionalPropertyTypes
|
|
45
|
-
// forbids passing an explicit `undefined`.
|
|
46
|
-
const query = { limit, offset };
|
|
47
|
-
if (status)
|
|
48
|
-
query.status = status;
|
|
49
|
-
if (workflow)
|
|
50
|
-
query.workflow = workflow;
|
|
51
|
-
if (tag)
|
|
52
|
-
query.tag = tag;
|
|
72
|
+
const query = { limit, offset, ...runFilterFromQuery(req.query) };
|
|
53
73
|
const runs = await engine.listRuns(query);
|
|
54
74
|
return ok({
|
|
55
75
|
runs: runs.map(summarizeRun),
|
|
@@ -118,7 +138,70 @@ export async function cancelRun(deps, req) {
|
|
|
118
138
|
return notFound(`run ${id} not found`);
|
|
119
139
|
return ok({ result });
|
|
120
140
|
}
|
|
121
|
-
/**
|
|
141
|
+
/**
|
|
142
|
+
* `POST /runs/:id/retry-with-input` — fix-and-replay: start a fresh linked run of `runId`'s workflow
|
|
143
|
+
* with a corrected `input`. Body: `{ input: unknown }`. Returns the new run's id; the ORIGINAL run is
|
|
144
|
+
* left untouched (mirrors `@dudousxd/nestjs-durable-dashboard`'s `retryWithInput`).
|
|
145
|
+
*/
|
|
146
|
+
export async function retryWithInputRun(deps, req) {
|
|
147
|
+
const id = req.params.id;
|
|
148
|
+
if (!id)
|
|
149
|
+
return notFound('run id is required');
|
|
150
|
+
const body = (req.body ?? {});
|
|
151
|
+
const result = await deps.engine.retryWithInput(id, body.input);
|
|
152
|
+
if (!result)
|
|
153
|
+
return notFound(`run ${id} not found`);
|
|
154
|
+
return ok({ result });
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* `POST /runs/:id/continue` — resume a run paused at a {@link import('../interfaces.js').WorkflowCtx}
|
|
158
|
+
* breakpoint (the dashboard's "continue" button). `404` if the run isn't paused at one.
|
|
159
|
+
*/
|
|
160
|
+
export async function continueRun(deps, req) {
|
|
161
|
+
const id = req.params.id;
|
|
162
|
+
if (!id)
|
|
163
|
+
return notFound('run id is required');
|
|
164
|
+
const result = await deps.engine.continue(id);
|
|
165
|
+
if (!result)
|
|
166
|
+
return notFound(`run ${id} is not paused at a breakpoint`);
|
|
167
|
+
return ok({ result });
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* `POST /bulk/:action` (`action` = `retry`|`cancel`) — apply an action to every run matching the same
|
|
171
|
+
* filter `listRuns` accepts (status/workflow/tag/namespace/attr), capped at 500 matches. Skips (does
|
|
172
|
+
* not abort on) a run that can't take the action (e.g. already terminal). Mirrors
|
|
173
|
+
* `@dudousxd/nestjs-durable-dashboard`'s `DashboardService.bulk`.
|
|
174
|
+
*/
|
|
175
|
+
export async function bulkAction(deps, req) {
|
|
176
|
+
const action = req.params.action;
|
|
177
|
+
if (action !== 'retry' && action !== 'cancel') {
|
|
178
|
+
return badRequest("action must be 'retry' or 'cancel'");
|
|
179
|
+
}
|
|
180
|
+
const compensate = firstQuery(req.query.compensate) === 'true';
|
|
181
|
+
const filter = runFilterFromQuery(req.query);
|
|
182
|
+
const runs = await deps.engine.listRuns({ ...filter, limit: 500 });
|
|
183
|
+
let applied = 0;
|
|
184
|
+
for (const run of runs) {
|
|
185
|
+
try {
|
|
186
|
+
if (action === 'retry') {
|
|
187
|
+
const result = await deps.engine.requeue(run.id);
|
|
188
|
+
if (result)
|
|
189
|
+
applied += 1;
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
const result = await deps.engine.cancel(run.id, compensate ? { compensate: true } : undefined);
|
|
193
|
+
if (result)
|
|
194
|
+
applied += 1;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
198
|
+
// Skip a run that can't take the action (e.g. already terminal) — matched still counts it.
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return ok({ matched: runs.length, applied });
|
|
202
|
+
}
|
|
203
|
+
/** `GET /health` — per-group worker health (queue backlog + live worker heartbeats), reduced to a
|
|
204
|
+
* compact shape. Kept for the legacy static dashboard (`assets/dashboard.html`, compat fallback). */
|
|
122
205
|
export async function health(deps) {
|
|
123
206
|
const groups = await deps.engine.workerHealth();
|
|
124
207
|
return ok({
|
|
@@ -131,6 +214,20 @@ export async function health(deps) {
|
|
|
131
214
|
})),
|
|
132
215
|
});
|
|
133
216
|
}
|
|
217
|
+
/** `GET /workers` — full per-group worker health (every live worker's heartbeat, not just a count),
|
|
218
|
+
* for the new SPA's Workers panel (`pivot-by-worker.ts`/`group-by-partition.ts` need per-instance
|
|
219
|
+
* `instanceId`/`lastBeatAt`). Raw `GroupHealth[]`, unwrapped — matches
|
|
220
|
+
* `@dudousxd/nestjs-durable-dashboard`'s `GET /workers` shape byte for byte (minus the `status`
|
|
221
|
+
* telemetry field, which the AdonisJS engine's heartbeat doesn't carry — see `durable-client.ts`). */
|
|
222
|
+
export async function workers(deps) {
|
|
223
|
+
const groups = await deps.engine.workerHealth();
|
|
224
|
+
return ok(groups);
|
|
225
|
+
}
|
|
226
|
+
/** `GET /topology` — this deployment's durable role, for the header badge. Pure/local (no engine
|
|
227
|
+
* round-trip): the role is already known by `dashboard_provider.ts` from `config/durable.ts`. */
|
|
228
|
+
export function topology(role, tenant) {
|
|
229
|
+
return ok(tenant !== undefined ? { role, tenant } : { role });
|
|
230
|
+
}
|
|
134
231
|
/** Compact run shape for the list view. */
|
|
135
232
|
function summarizeRun(run) {
|
|
136
233
|
return {
|
|
@@ -138,6 +235,7 @@ function summarizeRun(run) {
|
|
|
138
235
|
workflow: run.workflow,
|
|
139
236
|
workflowVersion: run.workflowVersion,
|
|
140
237
|
status: run.status,
|
|
238
|
+
namespace: run.namespace,
|
|
141
239
|
tags: run.tags ?? [],
|
|
142
240
|
createdAt: run.createdAt.toISOString(),
|
|
143
241
|
updatedAt: run.updatedAt.toISOString(),
|
|
@@ -174,9 +272,13 @@ function summarizeCheckpoint(cp) {
|
|
|
174
272
|
status: cp.status,
|
|
175
273
|
attempts: cp.attempts,
|
|
176
274
|
workerGroup: cp.workerGroup,
|
|
275
|
+
input: cp.input,
|
|
177
276
|
output: cp.output,
|
|
178
277
|
error: cp.error,
|
|
179
278
|
events: cp.events ?? [],
|
|
279
|
+
// Set only on parallel-fan siblings (`ctx.all`/`ctx.gather`) — the new SPA's `group-parallel-spans`
|
|
280
|
+
// helper needs this to collapse a fan-out into one timeline row.
|
|
281
|
+
parallelGroup: cp.parallelGroup,
|
|
180
282
|
enqueuedAt: cp.enqueuedAt.toISOString(),
|
|
181
283
|
startedAt: cp.startedAt.toISOString(),
|
|
182
284
|
finishedAt: cp.finishedAt.toISOString(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/dashboard/handlers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/dashboard/handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export declare const VERSION = "0.
|
|
2
|
+
export declare const VERSION = "0.22.0";
|
|
3
3
|
export { defineConfig, defaultAuthorize, resolveConfig } from './define_config.js';
|
|
4
4
|
export type { AuthorizeHook, DurableDashboardConfig, ResolvedDurableDashboardConfig, } from './define_config.js';
|
|
5
|
-
export { listRuns, getRun, retryRun, redispatchPendingRun, cancelRun, health, ok, } from './handlers.js';
|
|
5
|
+
export { listRuns, getRun, retryRun, retryWithInputRun, continueRun, redispatchPendingRun, cancelRun, bulkAction, health, workers, topology, ok, } from './handlers.js';
|
|
6
6
|
export type { ApiRequest, ApiResponse, Deps, DashboardEngine } from './handlers.js';
|
|
7
7
|
export { renderDashboard } from './html.js';
|
|
8
8
|
export { compat, enumerateLiveFleet, mergeFleets } from './compat.js';
|
|
@@ -12,8 +12,8 @@ export type { RecordedBlock, EngineEventSource } from './diagnostics-recorder.js
|
|
|
12
12
|
export { outcomeClass, outcomeLabel, formatProtocolRange } from './compat-view.js';
|
|
13
13
|
export { gatewayDashboardEngine, dashboardEngineForRole } from './gateway-adapter.js';
|
|
14
14
|
export type { DashboardContainer } from './gateway-adapter.js';
|
|
15
|
-
export { resolveDashboardAuth, performLogin, readSession, sanitizeReturnTo, SESSION_COOKIE_NAME, } from './auth.js';
|
|
16
|
-
export type { DashboardAuthOptions, ResolvedDashboardAuth, LoginHook, LoginOutcome, } from './auth.js';
|
|
15
|
+
export { resolveDashboardAuth, performLogin, performSession, readSession, sanitizeReturnTo, SESSION_COOKIE_NAME, } from './auth.js';
|
|
16
|
+
export type { AuthMode, DashboardAuthOptions, ResolvedDashboardAuth, LoginHook, LoginOutcome, SessionHook, SessionOutcome, } from './auth.js';
|
|
17
17
|
export { signSessionCookie, verifySessionCookie, } from './session_cookie.js';
|
|
18
18
|
export type { DashboardSession, DashboardSessionUser, SignOptions, VerifyOptions, } from './session_cookie.js';
|
|
19
19
|
export { renderLoginPage } from './login_page.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,eAAO,MAAM,OAAO,WAAW,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnF,YAAY,EACV,aAAa,EACb,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,oBAAoB,EACpB,SAAS,EACT,MAAM,EACN,EAAE,GACH,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGnF,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACtF,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,SAAS,EACT,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,eAAO,MAAM,OAAO,WAAW,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnF,YAAY,EACV,aAAa,EACb,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,iBAAiB,EACjB,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,UAAU,EACV,MAAM,EACN,OAAO,EACP,QAAQ,EACR,EAAE,GACH,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGnF,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACtF,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,QAAQ,EACR,oBAAoB,EACpB,qBAAqB,EACrB,SAAS,EACT,YAAY,EACZ,WAAW,EACX,cAAc,GACf,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,aAAa,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export const VERSION = '0.
|
|
2
|
+
export const VERSION = '0.22.0';
|
|
3
3
|
export { defineConfig, defaultAuthorize, resolveConfig } from './define_config.js';
|
|
4
|
-
export { listRuns, getRun, retryRun, redispatchPendingRun, cancelRun, health, ok, } from './handlers.js';
|
|
4
|
+
export { listRuns, getRun, retryRun, retryWithInputRun, continueRun, redispatchPendingRun, cancelRun, bulkAction, health, workers, topology, ok, } from './handlers.js';
|
|
5
5
|
export { renderDashboard } from './html.js';
|
|
6
6
|
// Fleet health / protocol-compatibility panel (design §7.6, §10).
|
|
7
7
|
export { compat, enumerateLiveFleet, mergeFleets } from './compat.js';
|
|
@@ -10,7 +10,7 @@ export { outcomeClass, outcomeLabel, formatProtocolRange } from './compat-view.j
|
|
|
10
10
|
// Store-less `tenant` dashboard: adapt the RunGateway to the handlers' read/control port (design §8).
|
|
11
11
|
export { gatewayDashboardEngine, dashboardEngineForRole } from './gateway-adapter.js';
|
|
12
12
|
// Built-in `dashboardAuth` login screen (optional; opt-in via `config/durable_dashboard.ts`).
|
|
13
|
-
export { resolveDashboardAuth, performLogin, readSession, sanitizeReturnTo, SESSION_COOKIE_NAME, } from './auth.js';
|
|
13
|
+
export { resolveDashboardAuth, performLogin, performSession, readSession, sanitizeReturnTo, SESSION_COOKIE_NAME, } from './auth.js';
|
|
14
14
|
export { signSessionCookie, verifySessionCookie, } from './session_cookie.js';
|
|
15
15
|
export { renderLoginPage } from './login_page.js';
|
|
16
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMnF,OAAO,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,oBAAoB,EACpB,SAAS,EACT,MAAM,EACN,EAAE,GACH,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,kEAAkE;AAClE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEnF,sGAAsG;AACtG,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAGtF,8FAA8F;AAC9F,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMnF,OAAO,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,iBAAiB,EACjB,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,UAAU,EACV,MAAM,EACN,OAAO,EACP,QAAQ,EACR,EAAE,GACH,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,kEAAkE;AAClE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEnF,sGAAsG;AACtG,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAGtF,8FAA8F;AAC9F,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAUnB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure helpers for mounting/serving the `@adonis-agora/durable-dashboard` React SPA — split out so
|
|
3
|
+
* they're unit-testable without booting AdonisJS. `dashboard_provider.ts` is a thin HTTP shell around
|
|
4
|
+
* these. Mirrors `@adonis-agora/media-dashboard`'s `provider/serve.ts` byte-for-byte in shape, so the
|
|
5
|
+
* two packages' "serve a Vite SPA from an AdonisJS provider" story stays one pattern across the Agora
|
|
6
|
+
* ecosystem.
|
|
7
|
+
*/
|
|
8
|
+
/** Placeholder base Vite bakes into asset URLs (`packages/dashboard/vite.config.ts`); rewritten to the
|
|
9
|
+
* configured dashboard `path` at serve time — the SAME built bundle mounts at any path with no rebuild. */
|
|
10
|
+
export declare const BASE_PLACEHOLDER = "/__DURABLE_DASHBOARD__/";
|
|
11
|
+
export declare const CONTENT_TYPES: Record<string, string>;
|
|
12
|
+
/** Content type for a served asset filename, defaulting to octet-stream. */
|
|
13
|
+
export declare function contentTypeFor(file: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* Rewrite the built `index.html` for serving: point Vite's placeholder base at the configured mount
|
|
16
|
+
* path, and inject the two globals `src/client/durable-client.ts` reads
|
|
17
|
+
* (`window.__DURABLE_BASE__`/`window.__DURABLE_API__`) — the SAME globals
|
|
18
|
+
* `@dudousxd/nestjs-durable-dashboard`'s own UI controller injects, so the SPA's client code (ported
|
|
19
|
+
* verbatim) needs no adaptation for which server it's running against.
|
|
20
|
+
*/
|
|
21
|
+
export declare function renderIndexHtml(html: string, basePath: string, apiBasePath: string): string;
|
|
22
|
+
//# sourceMappingURL=spa.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spa.d.ts","sourceRoot":"","sources":["../../../src/dashboard/spa.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;4GAC4G;AAC5G,eAAO,MAAM,gBAAgB,4BAA4B,CAAC;AAE1D,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAchD,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAI3F"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure helpers for mounting/serving the `@adonis-agora/durable-dashboard` React SPA — split out so
|
|
3
|
+
* they're unit-testable without booting AdonisJS. `dashboard_provider.ts` is a thin HTTP shell around
|
|
4
|
+
* these. Mirrors `@adonis-agora/media-dashboard`'s `provider/serve.ts` byte-for-byte in shape, so the
|
|
5
|
+
* two packages' "serve a Vite SPA from an AdonisJS provider" story stays one pattern across the Agora
|
|
6
|
+
* ecosystem.
|
|
7
|
+
*/
|
|
8
|
+
/** Placeholder base Vite bakes into asset URLs (`packages/dashboard/vite.config.ts`); rewritten to the
|
|
9
|
+
* configured dashboard `path` at serve time — the SAME built bundle mounts at any path with no rebuild. */
|
|
10
|
+
export const BASE_PLACEHOLDER = '/__DURABLE_DASHBOARD__/';
|
|
11
|
+
export const CONTENT_TYPES = {
|
|
12
|
+
'.js': 'text/javascript; charset=utf-8',
|
|
13
|
+
'.mjs': 'text/javascript; charset=utf-8',
|
|
14
|
+
'.css': 'text/css; charset=utf-8',
|
|
15
|
+
'.map': 'application/json; charset=utf-8',
|
|
16
|
+
'.json': 'application/json; charset=utf-8',
|
|
17
|
+
'.svg': 'image/svg+xml',
|
|
18
|
+
'.png': 'image/png',
|
|
19
|
+
'.jpg': 'image/jpeg',
|
|
20
|
+
'.jpeg': 'image/jpeg',
|
|
21
|
+
'.gif': 'image/gif',
|
|
22
|
+
'.ico': 'image/x-icon',
|
|
23
|
+
'.woff2': 'font/woff2',
|
|
24
|
+
'.woff': 'font/woff',
|
|
25
|
+
};
|
|
26
|
+
/** Content type for a served asset filename, defaulting to octet-stream. */
|
|
27
|
+
export function contentTypeFor(file) {
|
|
28
|
+
const ext = file.slice(file.lastIndexOf('.'));
|
|
29
|
+
return CONTENT_TYPES[ext] ?? 'application/octet-stream';
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Rewrite the built `index.html` for serving: point Vite's placeholder base at the configured mount
|
|
33
|
+
* path, and inject the two globals `src/client/durable-client.ts` reads
|
|
34
|
+
* (`window.__DURABLE_BASE__`/`window.__DURABLE_API__`) — the SAME globals
|
|
35
|
+
* `@dudousxd/nestjs-durable-dashboard`'s own UI controller injects, so the SPA's client code (ported
|
|
36
|
+
* verbatim) needs no adaptation for which server it's running against.
|
|
37
|
+
*/
|
|
38
|
+
export function renderIndexHtml(html, basePath, apiBasePath) {
|
|
39
|
+
const based = html.split(BASE_PLACEHOLDER).join(`${basePath}/`);
|
|
40
|
+
const inject = `<script>window.__DURABLE_BASE__=${JSON.stringify(basePath)};window.__DURABLE_API__=${JSON.stringify(apiBasePath)};</script>`;
|
|
41
|
+
return based.includes('</head>') ? based.replace('</head>', `${inject}</head>`) : inject + based;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=spa.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spa.js","sourceRoot":"","sources":["../../../src/dashboard/spa.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;4GAC4G;AAC5G,MAAM,CAAC,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AAE1D,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,KAAK,EAAE,gCAAgC;IACvC,MAAM,EAAE,gCAAgC;IACxC,MAAM,EAAE,yBAAyB;IACjC,MAAM,EAAE,iCAAiC;IACzC,OAAO,EAAE,iCAAiC;IAC1C,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,cAAc;IACtB,QAAQ,EAAE,YAAY;IACtB,OAAO,EAAE,WAAW;CACrB,CAAC;AAEF,4EAA4E;AAC5E,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC;AAC1D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,QAAgB,EAAE,WAAmB;IACjF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,mCAAmC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;IAC7I,OAAO,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;AACnG,CAAC"}
|
package/dist/src/index.d.ts
CHANGED
package/dist/src/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export const VERSION = '0.
|
|
2
|
+
export const VERSION = '0.22.0';
|
|
3
3
|
// --- engine + core primitives -----------------------------------------------
|
|
4
4
|
export * from './admission.js';
|
|
5
5
|
export * from './control-flow-signal.js';
|
|
@@ -50,6 +50,7 @@ export declare class MockAdapter implements Adapter {
|
|
|
50
50
|
pushMany: () => Promise<never>;
|
|
51
51
|
pushManyOn: () => Promise<never>;
|
|
52
52
|
getJob: () => Promise<never>;
|
|
53
|
+
renewJobs: () => Promise<never>;
|
|
53
54
|
upsertSchedule: () => Promise<never>;
|
|
54
55
|
createSchedule: () => Promise<never>;
|
|
55
56
|
getSchedule: () => Promise<never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue-mock-adapter.d.ts","sourceRoot":"","sources":["../../../src/transports/queue-mock-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAE3E;;;;;;GAMG;AACH,qBAAa,WAAY,YAAW,OAAO;;IACzC,QAAQ,CAAC,OAAO,yBAAgC;IAChD,QAAQ,CAAC,MAAM,2BAAkC;IACjD;8GAC0G;IAC1G,QAAQ,CAAC,WAAW,sBAA6B;IACjD;2FACuF;IACvF,QAAQ,CAAC,OAAO;aAA0B,OAAO;iBAAW,MAAM;SAAQ;IAC1E,QAAQ,SAAM;IACd,SAAS,UAAS;IAElB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIvB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtD,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAwBnD,GAAG,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAIlC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3C;;;;OAIG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB3E;;;;;;OAMG;IACG,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,CAAC;IAmCZ,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAItC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAIvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B,SAAS,
|
|
1
|
+
{"version":3,"file":"queue-mock-adapter.d.ts","sourceRoot":"","sources":["../../../src/transports/queue-mock-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAE3E;;;;;;GAMG;AACH,qBAAa,WAAY,YAAW,OAAO;;IACzC,QAAQ,CAAC,OAAO,yBAAgC;IAChD,QAAQ,CAAC,MAAM,2BAAkC;IACjD;8GAC0G;IAC1G,QAAQ,CAAC,WAAW,sBAA6B;IACjD;2FACuF;IACvF,QAAQ,CAAC,OAAO;aAA0B,OAAO;iBAAW,MAAM;SAAQ;IAC1E,QAAQ,SAAM;IACd,SAAS,UAAS;IAElB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIvB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtD,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAwBnD,GAAG,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAIlC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3C;;;;OAIG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB3E;;;;;;OAMG;IACG,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,CAAC;IAmCZ,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAItC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAIvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B,SAAS,QAeU,OAAO,CAAC,KAAK,CAAC,CAfU;IAC3C,WAAW,QAcQ,OAAO,CAAC,KAAK,CAAC,CAdc;IAC/C,QAAQ,QAaW,OAAO,CAAC,KAAK,CAAC,CAbQ;IACzC,UAAU,QAYS,OAAO,CAAC,KAAK,CAAC,CAZY;IAC7C,MAAM,QAWa,OAAO,CAAC,KAAK,CAAC,CAXI;IACrC,SAAS,QAUU,OAAO,CAAC,KAAK,CAAC,CAVU;IAC3C,cAAc,QASK,OAAO,CAAC,KAAK,CAAC,CAToB;IACrD,cAAc,QAQK,OAAO,CAAC,KAAK,CAAC,CARoB;IACrD,WAAW,QAOQ,OAAO,CAAC,KAAK,CAAC,CAPc;IAC/C,aAAa,QAMM,OAAO,CAAC,KAAK,CAAC,CANkB;IACnD,cAAc,QAKK,OAAO,CAAC,KAAK,CAAC,CALoB;IACrD,cAAc,QAIK,OAAO,CAAC,KAAK,CAAC,CAJoB;IACrD,gBAAgB,QAGG,OAAO,CAAC,KAAK,CAAC,CAHwB;CAQ1D"}
|
|
@@ -146,6 +146,7 @@ export class MockAdapter {
|
|
|
146
146
|
pushMany = this.#unsupported('pushMany');
|
|
147
147
|
pushManyOn = this.#unsupported('pushManyOn');
|
|
148
148
|
getJob = this.#unsupported('getJob');
|
|
149
|
+
renewJobs = this.#unsupported('renewJobs');
|
|
149
150
|
upsertSchedule = this.#unsupported('upsertSchedule');
|
|
150
151
|
createSchedule = this.#unsupported('createSchedule');
|
|
151
152
|
getSchedule = this.#unsupported('getSchedule');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue-mock-adapter.js","sourceRoot":"","sources":["../../../src/transports/queue-mock-adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"queue-mock-adapter.js","sourceRoot":"","sources":["../../../src/transports/queue-mock-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,9 +9,28 @@ import { defineConfig } from '@adonis-agora/durable/dashboard'
|
|
|
9
9
|
* By default the dashboard is open OUTSIDE production, and in production it
|
|
10
10
|
* requires a bearer token equal to `DURABLE_DASHBOARD_TOKEN` (deny if unset).
|
|
11
11
|
* Replace `authorize` with your own guard (session, role, IP allow-list, …).
|
|
12
|
+
*
|
|
13
|
+
* `dashboardAuth` is an ADDITIVE, optional session gate on top of `authorize` —
|
|
14
|
+
* a signed cookie minted via a built-in login page (Mode B: `login`) and/or a
|
|
15
|
+
* "open the console from your app" endpoint (Mode A: `session`). At least one
|
|
16
|
+
* of the two is required when `dashboardAuth` is set; either or both may be
|
|
17
|
+
* configured. See `docs/observability/dashboard-auth.mdx`.
|
|
12
18
|
*/
|
|
13
19
|
export default defineConfig({
|
|
14
20
|
// enabled: true,
|
|
15
21
|
// path: '/durable',
|
|
16
22
|
// authorize: (ctx) => ctx.auth.user?.isAdmin === true,
|
|
23
|
+
// dashboardAuth: {
|
|
24
|
+
// secret: env.get('DURABLE_DASHBOARD_SECRET'),
|
|
25
|
+
// ttl: '8h',
|
|
26
|
+
// // Mode B — standalone login page.
|
|
27
|
+
// login: async (username, password) => {
|
|
28
|
+
// if (username === 'admin' && password === env.get('DURABLE_DASHBOARD_PASSWORD')) {
|
|
29
|
+
// return { id: 'admin', name: 'Admin' }
|
|
30
|
+
// }
|
|
31
|
+
// return null
|
|
32
|
+
// },
|
|
33
|
+
// // Mode A — mint a session for an already-authenticated host request.
|
|
34
|
+
// // session: async (request) => (request.user?.isAdmin ? { id: request.user.id } : null),
|
|
35
|
+
// },
|
|
17
36
|
})
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adonis-agora/durable",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.0",
|
|
4
4
|
"description": "Durable cross-app workflows for AdonisJS — deterministic replay engine, AdonisJS binding, ace commands, dashboard, OpenTelemetry, Telescope, testing harness and Redis admission, all in one package. Part of the Agora ecosystem.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
],
|
|
107
107
|
"sideEffects": false,
|
|
108
108
|
"dependencies": {
|
|
109
|
-
"zod": "
|
|
109
|
+
"zod": "3.25.76"
|
|
110
110
|
},
|
|
111
111
|
"peerDependencies": {
|
|
112
112
|
"@adonisjs/assembler": "^8.4.0",
|
|
@@ -151,22 +151,23 @@
|
|
|
151
151
|
},
|
|
152
152
|
"devDependencies": {
|
|
153
153
|
"@adonisjs/assembler": "^8.4.0",
|
|
154
|
-
"@adonisjs/core": "
|
|
155
|
-
"@adonisjs/lucid": "
|
|
156
|
-
"@adonisjs/queue": "
|
|
154
|
+
"@adonisjs/core": "7.4.0",
|
|
155
|
+
"@adonisjs/lucid": "22.4.2",
|
|
156
|
+
"@adonisjs/queue": "0.6.2",
|
|
157
157
|
"@adonisjs/redis": "^9.2.0",
|
|
158
|
-
"@opentelemetry/api": "
|
|
159
|
-
"@opentelemetry/context-async-hooks": "
|
|
160
|
-
"@opentelemetry/sdk-trace-base": "
|
|
161
|
-
"@types/better-sqlite3": "
|
|
162
|
-
"@types/node": "
|
|
163
|
-
"better-sqlite3": "
|
|
164
|
-
"bullmq": "
|
|
158
|
+
"@opentelemetry/api": "1.9.1",
|
|
159
|
+
"@opentelemetry/context-async-hooks": "1.30.1",
|
|
160
|
+
"@opentelemetry/sdk-trace-base": "1.30.1",
|
|
161
|
+
"@types/better-sqlite3": "7.6.13",
|
|
162
|
+
"@types/node": "20.19.43",
|
|
163
|
+
"better-sqlite3": "11.10.0",
|
|
164
|
+
"bullmq": "5.81.3",
|
|
165
165
|
"cron-parser": "^4.9.0",
|
|
166
|
-
"ioredis": "
|
|
167
|
-
"typescript": "
|
|
168
|
-
"vitest": "
|
|
169
|
-
"zod": "
|
|
166
|
+
"ioredis": "5.11.1",
|
|
167
|
+
"typescript": "5.9.3",
|
|
168
|
+
"vitest": "3.2.7",
|
|
169
|
+
"zod": "3.25.76",
|
|
170
|
+
"@adonis-agora/durable-dashboard": "0.2.0"
|
|
170
171
|
},
|
|
171
172
|
"engines": {
|
|
172
173
|
"node": ">=20.6.0 <23"
|
|
@@ -188,7 +189,7 @@
|
|
|
188
189
|
"build": "pnpm run clean && tsc -p tsconfig.build.json && pnpm run copy:stubs && pnpm run check:dist",
|
|
189
190
|
"check:dist": "node ../../scripts/assert-build-output.mjs dist src/index.js",
|
|
190
191
|
"clean": "rm -rf dist",
|
|
191
|
-
"copy:stubs": "mkdir -p dist/stubs/config dist/stubs/database/migrations dist/stubs/make/workflow dist/assets && cp stubs/config/durable.stub dist/stubs/config/durable.stub && cp stubs/config/durable_dashboard.stub dist/stubs/config/durable_dashboard.stub && cp -r stubs/database/migrations/. dist/stubs/database/migrations/ && cp stubs/make/workflow/main.stub dist/stubs/make/workflow/main.stub && cp assets/dashboard.html dist/assets/dashboard.html",
|
|
192
|
+
"copy:stubs": "mkdir -p dist/stubs/config dist/stubs/database/migrations dist/stubs/make/workflow dist/assets && cp stubs/config/durable.stub dist/stubs/config/durable.stub && cp stubs/config/durable_dashboard.stub dist/stubs/config/durable_dashboard.stub && cp -r stubs/database/migrations/. dist/stubs/database/migrations/ && cp stubs/make/workflow/main.stub dist/stubs/make/workflow/main.stub && cp assets/dashboard.html dist/assets/dashboard.html && rm -rf dist/assets/spa && cp -r ../dashboard/dist/spa dist/assets/spa",
|
|
192
193
|
"test": "vitest run --passWithNoTests",
|
|
193
194
|
"test:watch": "vitest",
|
|
194
195
|
"typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.tests.json"
|