@acpus/web 0.1.0-alpha.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/LICENSE +21 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/client/api.d.ts +398 -0
- package/dist/client/api.d.ts.map +1 -0
- package/dist/client/api.js +73 -0
- package/dist/client/api.js.map +1 -0
- package/dist/client/assets/index-Cn1qpJ2F.css +1 -0
- package/dist/client/assets/index-DVV3hISu.js +2 -0
- package/dist/client/assets/vendor-B7fc3-WT.js +69 -0
- package/dist/client/assets/vendor-icons-BQrCRas_.js +241 -0
- package/dist/client/assets/vendor-json-view-B9Z7D9kT.css +1 -0
- package/dist/client/assets/vendor-json-view-uYZpLE5K.js +1 -0
- package/dist/client/assets/vendor-query-Co8PPx4J.js +1 -0
- package/dist/client/assets/vendor-radix-C9JUg2bE.js +1 -0
- package/dist/client/assets/vendor-react-BRGuIgbw.js +49 -0
- package/dist/client/index.html +26 -0
- package/dist/client/lib/utils.d.ts +3 -0
- package/dist/client/lib/utils.d.ts.map +1 -0
- package/dist/client/lib/utils.js +6 -0
- package/dist/client/lib/utils.js.map +1 -0
- package/dist/client/main.d.ts +2 -0
- package/dist/client/main.d.ts.map +1 -0
- package/dist/client/main.js +18 -0
- package/dist/client/main.js.map +1 -0
- package/dist/client/static-viz.d.ts +8 -0
- package/dist/client/static-viz.d.ts.map +1 -0
- package/dist/client/static-viz.js +10 -0
- package/dist/client/static-viz.js.map +1 -0
- package/dist/client/ui/App.d.ts +40 -0
- package/dist/client/ui/App.d.ts.map +1 -0
- package/dist/client/ui/App.js +742 -0
- package/dist/client/ui/App.js.map +1 -0
- package/dist/client/ui/RunGraph.d.ts +9 -0
- package/dist/client/ui/RunGraph.d.ts.map +1 -0
- package/dist/client/ui/RunGraph.js +294 -0
- package/dist/client/ui/RunGraph.js.map +1 -0
- package/dist/client/ui/StaticGraphApp.d.ts +22 -0
- package/dist/client/ui/StaticGraphApp.d.ts.map +1 -0
- package/dist/client/ui/StaticGraphApp.js +102 -0
- package/dist/client/ui/StaticGraphApp.js.map +1 -0
- package/dist/client/ui/Toast.d.ts +16 -0
- package/dist/client/ui/Toast.d.ts.map +1 -0
- package/dist/client/ui/Toast.js +41 -0
- package/dist/client/ui/Toast.js.map +1 -0
- package/dist/client/ui/shadcn/alert.d.ts +3 -0
- package/dist/client/ui/shadcn/alert.d.ts.map +1 -0
- package/dist/client/ui/shadcn/alert.js +6 -0
- package/dist/client/ui/shadcn/alert.js.map +1 -0
- package/dist/client/ui/shadcn/badge.d.ts +10 -0
- package/dist/client/ui/shadcn/badge.d.ts.map +1 -0
- package/dist/client/ui/shadcn/badge.js +19 -0
- package/dist/client/ui/shadcn/badge.js.map +1 -0
- package/dist/client/ui/shadcn/breadcrumb.d.ts +9 -0
- package/dist/client/ui/shadcn/breadcrumb.d.ts.map +1 -0
- package/dist/client/ui/shadcn/breadcrumb.js +15 -0
- package/dist/client/ui/shadcn/breadcrumb.js.map +1 -0
- package/dist/client/ui/shadcn/button.d.ts +12 -0
- package/dist/client/ui/shadcn/button.d.ts.map +1 -0
- package/dist/client/ui/shadcn/button.js +37 -0
- package/dist/client/ui/shadcn/button.js.map +1 -0
- package/dist/client/ui/shadcn/card.d.ts +6 -0
- package/dist/client/ui/shadcn/card.d.ts.map +1 -0
- package/dist/client/ui/shadcn/card.js +10 -0
- package/dist/client/ui/shadcn/card.js.map +1 -0
- package/dist/client/ui/shadcn/dialog.d.ts +11 -0
- package/dist/client/ui/shadcn/dialog.d.ts.map +1 -0
- package/dist/client/ui/shadcn/dialog.js +15 -0
- package/dist/client/ui/shadcn/dialog.js.map +1 -0
- package/dist/client/ui/shadcn/input.d.ts +5 -0
- package/dist/client/ui/shadcn/input.d.ts.map +1 -0
- package/dist/client/ui/shadcn/input.js +6 -0
- package/dist/client/ui/shadcn/input.js.map +1 -0
- package/dist/client/ui/shadcn/list.d.ts +8 -0
- package/dist/client/ui/shadcn/list.d.ts.map +1 -0
- package/dist/client/ui/shadcn/list.js +8 -0
- package/dist/client/ui/shadcn/list.js.map +1 -0
- package/dist/client/ui/shadcn/popover.d.ts +8 -0
- package/dist/client/ui/shadcn/popover.d.ts.map +1 -0
- package/dist/client/ui/shadcn/popover.js +11 -0
- package/dist/client/ui/shadcn/popover.js.map +1 -0
- package/dist/client/ui/shadcn/select.d.ts +9 -0
- package/dist/client/ui/shadcn/select.d.ts.map +1 -0
- package/dist/client/ui/shadcn/select.js +17 -0
- package/dist/client/ui/shadcn/select.js.map +1 -0
- package/dist/client/ui/shadcn/tabs.d.ts +7 -0
- package/dist/client/ui/shadcn/tabs.d.ts.map +1 -0
- package/dist/client/ui/shadcn/tabs.js +12 -0
- package/dist/client/ui/shadcn/tabs.js.map +1 -0
- package/dist/client/ui/shadcn/textarea.d.ts +3 -0
- package/dist/client/ui/shadcn/textarea.d.ts.map +1 -0
- package/dist/client/ui/shadcn/textarea.js +6 -0
- package/dist/client/ui/shadcn/textarea.js.map +1 -0
- package/dist/graph-renderer.d.ts +114 -0
- package/dist/graph-renderer.d.ts.map +1 -0
- package/dist/graph-renderer.js +673 -0
- package/dist/graph-renderer.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/runtime-status.d.ts +10 -0
- package/dist/runtime-status.d.ts.map +1 -0
- package/dist/runtime-status.js +45 -0
- package/dist/runtime-status.js.map +1 -0
- package/dist/server/app.d.ts +11 -0
- package/dist/server/app.d.ts.map +1 -0
- package/dist/server/app.js +244 -0
- package/dist/server/app.js.map +1 -0
- package/dist/server/assets.d.ts +3 -0
- package/dist/server/assets.d.ts.map +1 -0
- package/dist/server/assets.js +45 -0
- package/dist/server/assets.js.map +1 -0
- package/dist/server/errors.d.ts +14 -0
- package/dist/server/errors.d.ts.map +1 -0
- package/dist/server/errors.js +13 -0
- package/dist/server/errors.js.map +1 -0
- package/dist/server/graph.d.ts +137 -0
- package/dist/server/graph.d.ts.map +1 -0
- package/dist/server/graph.js +592 -0
- package/dist/server/graph.js.map +1 -0
- package/dist/server/launcher.d.ts +15 -0
- package/dist/server/launcher.d.ts.map +1 -0
- package/dist/server/launcher.js +30 -0
- package/dist/server/launcher.js.map +1 -0
- package/dist/server/node-inspection.d.ts +108 -0
- package/dist/server/node-inspection.d.ts.map +1 -0
- package/dist/server/node-inspection.js +435 -0
- package/dist/server/node-inspection.js.map +1 -0
- package/dist/server/security.d.ts +12 -0
- package/dist/server/security.d.ts.map +1 -0
- package/dist/server/security.js +43 -0
- package/dist/server/security.js.map +1 -0
- package/dist/server/static-viz-assets.generated.d.ts +3 -0
- package/dist/server/static-viz-assets.generated.d.ts.map +1 -0
- package/dist/server/static-viz-assets.generated.js +4 -0
- package/dist/server/static-viz-assets.generated.js.map +1 -0
- package/dist/server/workflows.d.ts +75 -0
- package/dist/server/workflows.d.ts.map +1 -0
- package/dist/server/workflows.js +205 -0
- package/dist/server/workflows.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { randomBytes, createHash } from "node:crypto";
|
|
2
|
+
import { apiError } from "./errors.js";
|
|
3
|
+
export function createAccessPolicy(options = {}) {
|
|
4
|
+
if (!options.enabled)
|
|
5
|
+
return {};
|
|
6
|
+
const token = options.token ?? randomBytes(24).toString("base64url");
|
|
7
|
+
return { token, tokenHash: sha256(token) };
|
|
8
|
+
}
|
|
9
|
+
export function requireToken(policy) {
|
|
10
|
+
return async (context, next) => {
|
|
11
|
+
if (!policy.tokenHash) {
|
|
12
|
+
await next();
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const header = context.req.header("authorization") ?? "";
|
|
16
|
+
const token = [
|
|
17
|
+
header.startsWith("Bearer ") ? header.slice("Bearer ".length) : undefined,
|
|
18
|
+
context.req.query("token"),
|
|
19
|
+
cookieToken(context.req.header("cookie")),
|
|
20
|
+
].find(value => value !== undefined);
|
|
21
|
+
if (token === undefined || sha256(token) !== policy.tokenHash)
|
|
22
|
+
apiError(401, "unauthorized", "Bearer token is required.");
|
|
23
|
+
const shouldSetCookie = context.req.query("token") === token;
|
|
24
|
+
await next();
|
|
25
|
+
if (shouldSetCookie) {
|
|
26
|
+
context.header("set-cookie", `acpus_web_token=${encodeURIComponent(token)}; HttpOnly; SameSite=Lax; Path=/; Max-Age=86400`);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function sha256(value) {
|
|
31
|
+
return createHash("sha256").update(value).digest("hex");
|
|
32
|
+
}
|
|
33
|
+
function cookieToken(cookie) {
|
|
34
|
+
if (!cookie)
|
|
35
|
+
return undefined;
|
|
36
|
+
for (const entry of cookie.split(";")) {
|
|
37
|
+
const [name, ...rest] = entry.trim().split("=");
|
|
38
|
+
if (name === "acpus_web_token")
|
|
39
|
+
return decodeURIComponent(rest.join("="));
|
|
40
|
+
}
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=security.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/server/security.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAYvC,MAAM,UAAU,kBAAkB,CAAC,UAA+B,EAAE;IAClE,IAAI,CAAC,OAAO,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACrE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAoB;IAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG;YACZ,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;YACzE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;YAC1B,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SAC1C,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QAErC,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS;YAC3D,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,2BAA2B,CAAC,CAAC;QAE7D,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC;QAC7D,MAAM,IAAI,EAAE,CAAC;QACb,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,mBAAmB,kBAAkB,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAC9H,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,KAAa;IAC3B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,WAAW,CAAC,MAA0B;IAC7C,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,IAAI,KAAK,iBAAiB;YAAE,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|