Configuration
/**
* Sidecar Config for middleware/dolater.ts
*/
module.exports = {
title: "dolater.ts",
description: "Auto-generated draft",
created: "2025-12-14T23:59:26.486Z",
modified: "2025-12-19T18:04:51.443Z",
};
---
title: "Route Flow: ssutil /src/middleware/dolater.ts "
---
flowchart TD
subgraph GET ["GET"]
getJobRoute["GET /job/{uuid}"]
style getJobRoute fill:#5E377B,color:#fff,stroke:#B4976A
getQueueRoute["GET /queue"]
style getQueueRoute fill:#5E377B,color:#fff,stroke:#B4976A
processJobsRoute["GET /jobs"]
style processJobsRoute fill:#5E377B,color:#fff,stroke:#B4976A
hono_get__ui["GET /ui"]
style hono_get__ui fill:#5E377B,color:#fff,stroke:#B4976A
end
subgraph POST ["POST"]
createJobRoute["POST /job/{delay}"]
style createJobRoute fill:#5E377B,color:#fff,stroke:#B4976A
createJobsRoute["POST /jobs"]
style createJobsRoute fill:#5E377B,color:#fff,stroke:#B4976A
end
subgraph DELETE ["DELETE"]
deleteJobRoute["DELETE /job/{uuid}"]
style deleteJobRoute fill:#5E377B,color:#fff,stroke:#B4976A
deleteJobsRoute["DELETE /jobs"]
style deleteJobsRoute fill:#5E377B,color:#fff,stroke:#B4976A
end
subgraph API ["API"]
openapi_createJobRoute["API createJobRoute"]
style openapi_createJobRoute fill:#5E377B,color:#fff,stroke:#B4976A
openapi_createJobsRoute["API createJobsRoute"]
style openapi_createJobsRoute fill:#5E377B,color:#fff,stroke:#B4976A
openapi_getJobRoute["API getJobRoute"]
style openapi_getJobRoute fill:#5E377B,color:#fff,stroke:#B4976A
openapi_deleteJobRoute["API deleteJobRoute"]
style openapi_deleteJobRoute fill:#5E377B,color:#fff,stroke:#B4976A
openapi_deleteJobsRoute["API deleteJobsRoute"]
style openapi_deleteJobsRoute fill:#5E377B,color:#fff,stroke:#B4976A
openapi_getQueueRoute["API getQueueRoute"]
style openapi_getQueueRoute fill:#5E377B,color:#fff,stroke:#B4976A
openapi_processJobsRoute["API processJobsRoute"]
style openapi_processJobsRoute fill:#5E377B,color:#fff,stroke:#B4976A
end
subgraph DOC ["DOC"]
hono_doc__doc["DOC /doc"]
style hono_doc__doc fill:#5E377B,color:#fff,stroke:#B4976A
end
subgraph ALL ["ALL"]
hono_all_processingPromises["ALL processingPromises"]
style hono_all_processingPromises fill:#5E377B,color:#fff,stroke:#B4976A
end
parseDelay{{"parseDelay"}}
style parseDelay fill:#161b22,color:#fff,stroke:#c2a35d
isUUID{{"isUUID"}}
style isUUID fill:#161b22,color:#fff,stroke:#c2a35d
createJobLogic{{"createJobLogic"}}
style createJobLogic fill:#161b22,color:#fff,stroke:#c2a35d
createJobRoute --> openapi_createJobRoute
createJobsRoute --> openapi_createJobsRoute
getJobRoute --> openapi_getJobRoute
deleteJobRoute --> openapi_deleteJobRoute
deleteJobsRoute --> openapi_deleteJobsRoute
getQueueRoute --> openapi_getQueueRoute
processJobsRoute --> openapi_processJobsRoute
D1_Database[("D1 Database")]
style D1_Database fill:#c2a35d,color:#0b0e14,stroke:#c2a35d
createJobLogic --> parseDelay
createJobLogic --> D1_Database
linkStyle default stroke:#c2a35d,stroke-width:2px,color:#fff
classDef default color:#fff
---
title: "AST Structure: ssutil /src/middleware/dolater.ts "
---
%%{init: { 'flowchart': { 'nodeSpacing': 20, 'rankSpacing': 30 }, 'themeVariables': { 'fontSize': '11px' } } }%%
graph LR
n0["SF"]
n2["@hono/zod-openapi"]
style n2 fill:#ffffff10,stroke:#ffffff33,color:#a1a1a1
n3["ID: OpenAPIHono"]
n0 --> n3
n3 --> n2
style n3 stroke-dasharray:5,stroke:#B4976A
n4["ID: createRoute"]
n0 --> n4
n4 --> n2
style n4 stroke-dasharray:5,stroke:#B4976A
n5["ID: z"]
n0 --> n5
n5 --> n2
style n5 stroke-dasharray:5,stroke:#B4976A
n7["@hono/swagger-ui"]
style n7 fill:#ffffff10,stroke:#ffffff33,color:#a1a1a1
n8["ID: swaggerUI"]
n0 --> n8
n8 --> n7
style n8 stroke-dasharray:5,stroke:#B4976A
n10["hono"]
style n10 fill:#ffffff10,stroke:#ffffff33,color:#a1a1a1
n11["ID: Context"]
n0 --> n11
n11 --> n10
style n11 stroke-dasharray:5,stroke:#B4976A
n13["./canon"]
style n13 fill:#ffffff10,stroke:#ffffff33,color:#a1a1a1
style n13 cursor:pointer,stroke-width:2px,stroke:#B4976A
n14["ID: canonAuthMiddleware"]
n0 --> n14
n14 --> n13
style n14 stroke-dasharray:5,stroke:#B4976A
n16["../utils/crypto.js"]
style n16 fill:#ffffff10,stroke:#ffffff33,color:#a1a1a1
style n16 cursor:pointer,stroke-width:2px,stroke:#B4976A
n17["ID: inspectToken"]
n0 --> n17
n17 --> n16
style n17 stroke-dasharray:5,stroke:#B4976A
n18["ID: encryptToken"]
n0 --> n18
n18 --> n16
style n18 stroke-dasharray:5,stroke:#B4976A
n60["FD: parseDelay"]
n0 --> n60
n109["FD: isUUID"]
n0 --> n109
n125["FD: createJobLogic"]
n0 --> n125
subgraph sub433 ["Safe Boundary"]
end
n753["CE: app.openAPIRegistry.registerComponent('securitySchemes')"]
n0 --> n753
n777["CE: createRoute(createJobRoute)"]
n0 --> n777
n874["CE: app.openapi(createJobRoute)"]
n0 --> n874
subgraph sub886 ["Safe Boundary"]
n925["CE: c.json(400)"]
n874 --> n925
n931["CE: c.json(result as any)"]
n874 --> n931
end
n941["CE: createRoute(createJobsRoute)"]
n0 --> n941
n988["CE: app.openapi(createJobsRoute)"]
n0 --> n988
n1047["CE: c.json"]
n988 --> n1047
n1063["CE: createRoute(getJobRoute)"]
n0 --> n1063
n1120["CE: app.openapi(getJobRoute)"]
n0 --> n1120
n1165["CE: c.json(404)"]
n1120 --> n1165
n1174["CE: c.json(job as any)"]
n1120 --> n1174
n1184["CE: createRoute(deleteJobRoute)"]
n0 --> n1184
n1235["CE: app.openapi(deleteJobRoute)"]
n0 --> n1235
n1278["CE: c.json(success)"]
n1235 --> n1278
n1296["CE: createRoute(deleteJobsRoute)"]
n0 --> n1296
n1371["CE: app.openapi(deleteJobsRoute)"]
n0 --> n1371
n1420["CE: c.json(400)"]
n1371 --> n1420
n1493["CE: c.json(success)"]
n1371 --> n1493
n1511["CE: createRoute(getQueueRoute)"]
n0 --> n1511
n1580["CE: app.openapi(getQueueRoute)"]
n0 --> n1580
n1751["CE: c.json"]
n1580 --> n1751
n1769["CE: createRoute(processJobsRoute)"]
n0 --> n1769
n1838["CE: app.openapi(processJobsRoute)"]
n0 --> n1838
n1941["CE: c.json"]
n1838 --> n1941
subgraph sub1964 ["Safe Boundary"]
end
n2294["CE: c.json"]
n1838 --> n2294
n2306["CE: app.doc('/doc')"]
n0 --> n2306
n2337["CE: app.get('/ui')"]
n0 --> n2337
n2342["CE: swaggerUI"]
n2337 --> n2342
style n0 fill:#5E377B,color:#fff,stroke:#B4976A
linkStyle default stroke:#c2a35d,stroke-width:1px,opacity:0.6
click n13 "../middleware/canon.html" "View Documentation"
click n16 "../utils/crypto.html" "View Documentation"
CE CallExpressionFD FunctionDeclarationID ImportDeclarationSF SourceFileTS TryStatement