effect-start 0.31.0 → 0.32.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/dist/Fetch.d.ts +1 -1
- package/dist/Fetch.d.ts.map +1 -1
- package/dist/Fetch.js +1 -1
- package/dist/Fetch.js.map +1 -1
- package/dist/Password.d.ts +26 -0
- package/dist/Password.d.ts.map +1 -0
- package/dist/Password.js +83 -0
- package/dist/Password.js.map +1 -0
- package/dist/RouteSse.d.ts +1 -2
- package/dist/RouteSse.d.ts.map +1 -1
- package/dist/RouteSse.js +2 -2
- package/dist/RouteSse.js.map +1 -1
- package/dist/_StreamExtra.d.ts.map +1 -1
- package/dist/_StreamExtra.js +0 -1
- package/dist/_StreamExtra.js.map +1 -1
- package/dist/studio/Studio.d.ts +1 -1
- package/dist/studio/Studio.d.ts.map +1 -1
- package/dist/studio/Studio.js +5 -4
- package/dist/studio/Studio.js.map +1 -1
- package/dist/studio/StudioErrors.d.ts.map +1 -1
- package/dist/studio/StudioErrors.js +2 -2
- package/dist/studio/StudioErrors.js.map +1 -1
- package/dist/studio/StudioLogger.d.ts.map +1 -1
- package/dist/studio/StudioLogger.js +1 -3
- package/dist/studio/StudioLogger.js.map +1 -1
- package/dist/studio/StudioStore.d.ts +23 -17
- package/dist/studio/StudioStore.d.ts.map +1 -1
- package/dist/studio/StudioStore.js +48 -44
- package/dist/studio/StudioStore.js.map +1 -1
- package/dist/studio/StudioTracer.d.ts.map +1 -1
- package/dist/studio/StudioTracer.js +10 -4
- package/dist/studio/StudioTracer.js.map +1 -1
- package/dist/studio/routes/errors/route.d.ts +1 -1
- package/dist/studio/routes/errors/route.d.ts.map +1 -1
- package/dist/studio/routes/errors/route.js +2 -2
- package/dist/studio/routes/errors/route.js.map +1 -1
- package/dist/studio/routes/fiberDetail.d.ts +1 -1
- package/dist/studio/routes/fiberDetail.js +4 -4
- package/dist/studio/routes/fiberDetail.js.map +1 -1
- package/dist/studio/routes/fibers/route.d.ts +2 -2
- package/dist/studio/routes/fibers/route.js +4 -4
- package/dist/studio/routes/fibers/route.js.map +1 -1
- package/dist/studio/routes/logs/route.d.ts +1 -1
- package/dist/studio/routes/logs/route.d.ts.map +1 -1
- package/dist/studio/routes/logs/route.js +2 -2
- package/dist/studio/routes/logs/route.js.map +1 -1
- package/dist/studio/routes/traceDetail.d.ts +1 -1
- package/dist/studio/routes/traceDetail.js +1 -1
- package/dist/studio/routes/traceDetail.js.map +1 -1
- package/dist/studio/routes/traces/route.d.ts +2 -2
- package/dist/studio/routes/traces/route.d.ts.map +1 -1
- package/dist/studio/routes/traces/route.js +5 -5
- package/dist/studio/routes/traces/route.js.map +1 -1
- package/dist/studio/routes/tree.d.ts +8 -8
- package/dist/studio/ui/Traces.d.ts +1 -0
- package/dist/studio/ui/Traces.d.ts.map +1 -1
- package/dist/studio/ui/Traces.js +32 -11
- package/dist/studio/ui/Traces.js.map +1 -1
- package/package.json +1 -1
- package/src/Fetch.ts +2 -2
- package/src/Password.ts +130 -0
- package/src/RouteSse.ts +4 -4
- package/src/_StreamExtra.ts +0 -1
- package/src/studio/Studio.ts +6 -5
- package/src/studio/StudioErrors.ts +2 -3
- package/src/studio/StudioLogger.ts +2 -3
- package/src/studio/StudioStore.ts +159 -115
- package/src/studio/StudioTracer.ts +11 -5
- package/src/studio/routes/errors/route.tsx +3 -1
- package/src/studio/routes/fiberDetail.tsx +4 -4
- package/src/studio/routes/fibers/route.tsx +4 -4
- package/src/studio/routes/logs/route.tsx +3 -1
- package/src/studio/routes/traceDetail.tsx +1 -1
- package/src/studio/routes/traces/route.tsx +9 -6
- package/src/studio/ui/Traces.tsx +41 -13
|
@@ -17,10 +17,10 @@ declare const _default: import("../../RouteTree.ts").RouteTree<{
|
|
|
17
17
|
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, import("../../bun/BunServer.ts").BunServer>, Route.Route.Route<{
|
|
18
18
|
method: "GET";
|
|
19
19
|
format: "html";
|
|
20
|
-
}, {}, string, import("../../sql/SqlClient.ts").SqlError,
|
|
20
|
+
}, {}, string, import("../../sql/SqlClient.ts").SqlError, import("../../sql/SqlClient.ts").SqlClient>, Route.Route.Route<{
|
|
21
21
|
method: "GET";
|
|
22
22
|
format: "sse";
|
|
23
|
-
}, {}, import("effect/Stream").Stream<string, import("../../sql/SqlClient.ts").SqlError,
|
|
23
|
+
}, {}, import("effect/Stream").Stream<string, import("../../sql/SqlClient.ts").SqlError, import("../../sql/SqlClient.ts").SqlClient>, import("../../sql/SqlClient.ts").SqlError, import("../../sql/SqlClient.ts").SqlClient>];
|
|
24
24
|
"/traces/:id": [Route.Route.Route<{
|
|
25
25
|
method: "*";
|
|
26
26
|
bunPrefix: string;
|
|
@@ -39,7 +39,7 @@ declare const _default: import("../../RouteTree.ts").RouteTree<{
|
|
|
39
39
|
pathParams: {
|
|
40
40
|
readonly id: string;
|
|
41
41
|
};
|
|
42
|
-
}, string, import("../../sql/SqlClient.ts").SqlError,
|
|
42
|
+
}, string, import("../../sql/SqlClient.ts").SqlError, import("../../sql/SqlClient.ts").SqlClient>];
|
|
43
43
|
"/metrics": [Route.Route.Route<{
|
|
44
44
|
method: "*";
|
|
45
45
|
bunPrefix: string;
|
|
@@ -60,7 +60,7 @@ declare const _default: import("../../RouteTree.ts").RouteTree<{
|
|
|
60
60
|
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, import("../../bun/BunServer.ts").BunServer>, Route.Route.Route<{
|
|
61
61
|
method: "GET";
|
|
62
62
|
format: "html";
|
|
63
|
-
}, {}, string, import("../../sql/SqlClient.ts").SqlError,
|
|
63
|
+
}, {}, string, import("../../sql/SqlClient.ts").SqlError, import("../../sql/SqlClient.ts").SqlClient>, Route.Route.Route<{
|
|
64
64
|
method: "GET";
|
|
65
65
|
format: "sse";
|
|
66
66
|
}, {}, import("effect/Stream").Stream<string, never, never>, never, never>];
|
|
@@ -72,7 +72,7 @@ declare const _default: import("../../RouteTree.ts").RouteTree<{
|
|
|
72
72
|
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, import("../../bun/BunServer.ts").BunServer>, Route.Route.Route<{
|
|
73
73
|
method: "GET";
|
|
74
74
|
format: "html";
|
|
75
|
-
}, {}, string, import("../../sql/SqlClient.ts").SqlError,
|
|
75
|
+
}, {}, string, import("../../sql/SqlClient.ts").SqlError, import("../../sql/SqlClient.ts").SqlClient>, Route.Route.Route<{
|
|
76
76
|
method: "GET";
|
|
77
77
|
format: "sse";
|
|
78
78
|
}, {}, import("effect/Stream").Stream<string, never, never>, never, never>];
|
|
@@ -84,10 +84,10 @@ declare const _default: import("../../RouteTree.ts").RouteTree<{
|
|
|
84
84
|
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, import("../../bun/BunServer.ts").BunServer>, Route.Route.Route<{
|
|
85
85
|
method: "GET";
|
|
86
86
|
format: "html";
|
|
87
|
-
}, {}, string, import("../../sql/SqlClient.ts").SqlError,
|
|
87
|
+
}, {}, string, import("../../sql/SqlClient.ts").SqlError, import("../../sql/SqlClient.ts").SqlClient>, Route.Route.Route<{
|
|
88
88
|
method: "GET";
|
|
89
89
|
format: "sse";
|
|
90
|
-
}, {}, import("effect/Stream").Stream<string, import("../../sql/SqlClient.ts").SqlError,
|
|
90
|
+
}, {}, import("effect/Stream").Stream<string, import("../../sql/SqlClient.ts").SqlError, import("../../sql/SqlClient.ts").SqlClient>, import("../../sql/SqlClient.ts").SqlError, import("../../sql/SqlClient.ts").SqlClient>];
|
|
91
91
|
"/fibers/:id": [Route.Route.Route<{
|
|
92
92
|
method: "*";
|
|
93
93
|
bunPrefix: string;
|
|
@@ -106,7 +106,7 @@ declare const _default: import("../../RouteTree.ts").RouteTree<{
|
|
|
106
106
|
pathParams: {
|
|
107
107
|
readonly id: string;
|
|
108
108
|
};
|
|
109
|
-
}, string, import("../../sql/SqlClient.ts").SqlError,
|
|
109
|
+
}, string, import("../../sql/SqlClient.ts").SqlError, import("../../sql/SqlClient.ts").SqlClient>];
|
|
110
110
|
"/routes": [Route.Route.Route<{
|
|
111
111
|
method: "*";
|
|
112
112
|
bunPrefix: string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as StudioStore from "../StudioStore.ts";
|
|
2
2
|
export declare function groupByTraceId(spans: Array<StudioStore.StudioSpan>): Map<bigint, Array<StudioStore.StudioSpan>>;
|
|
3
3
|
export declare function TraceGroup(options: {
|
|
4
|
+
id?: bigint;
|
|
4
5
|
spans: Array<StudioStore.StudioSpan>;
|
|
5
6
|
}): import("../../Html.ts").Element | null;
|
|
6
7
|
export declare function TraceGroups(options: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Traces.d.ts","sourceRoot":"","sources":["../../../src/studio/ui/Traces.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"Traces.d.ts","sourceRoot":"","sources":["../../../src/studio/ui/Traces.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAA;AAgPhD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,GACnC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAW5C;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;CAAE,0CAoExF;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE;IAAE,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;CAAE,mCAuB5E;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;CAAE,mCAgG5F"}
|
package/dist/studio/ui/Traces.js
CHANGED
|
@@ -26,6 +26,18 @@ function StatusBadge(options) {
|
|
|
26
26
|
const fg = options.status === "ok" ? "#4ade80" : options.status === "error" ? "#fca5a5" : "#fde047";
|
|
27
27
|
return (_jsx("span", { style: `font-size:11px;padding:2px 8px;border-radius:4px;background:${bg};color:${fg}`, children: options.status }));
|
|
28
28
|
}
|
|
29
|
+
function sortByStartTime(a, b) {
|
|
30
|
+
if (a.startTime < b.startTime)
|
|
31
|
+
return -1;
|
|
32
|
+
if (a.startTime > b.startTime)
|
|
33
|
+
return 1;
|
|
34
|
+
return 0;
|
|
35
|
+
}
|
|
36
|
+
function pickRootSpan(spans) {
|
|
37
|
+
const spanIds = new Set(spans.map((span) => span.spanId));
|
|
38
|
+
return (spans.find((span) => !span.parentSpanId || !spanIds.has(span.parentSpanId)) ??
|
|
39
|
+
spans.slice().sort(sortByStartTime)[0]);
|
|
40
|
+
}
|
|
29
41
|
function buildSpanTree(spans) {
|
|
30
42
|
const byId = new Map();
|
|
31
43
|
const childrenOf = new Map();
|
|
@@ -46,14 +58,19 @@ function buildSpanTree(spans) {
|
|
|
46
58
|
roots.push(s);
|
|
47
59
|
}
|
|
48
60
|
}
|
|
49
|
-
|
|
50
|
-
roots.sort(sortByStart);
|
|
61
|
+
roots.sort(sortByStartTime);
|
|
51
62
|
for (const children of childrenOf.values()) {
|
|
52
|
-
children.sort(
|
|
63
|
+
children.sort(sortByStartTime);
|
|
53
64
|
}
|
|
54
65
|
const result = [];
|
|
55
|
-
|
|
56
|
-
|
|
66
|
+
const visited = new Set();
|
|
67
|
+
function walk(span, depth, isLast, ancestors, lineage) {
|
|
68
|
+
if (lineage.has(span.spanId) || visited.has(span.spanId))
|
|
69
|
+
return;
|
|
70
|
+
const nextLineage = new Set(lineage);
|
|
71
|
+
nextLineage.add(span.spanId);
|
|
72
|
+
const children = (childrenOf.get(span.spanId) ?? []).filter((child) => !nextLineage.has(child.spanId) && !visited.has(child.spanId));
|
|
73
|
+
visited.add(span.spanId);
|
|
57
74
|
result.push({
|
|
58
75
|
span,
|
|
59
76
|
depth,
|
|
@@ -62,11 +79,15 @@ function buildSpanTree(spans) {
|
|
|
62
79
|
ancestorHasNextSibling: [...ancestors],
|
|
63
80
|
});
|
|
64
81
|
for (let i = 0; i < children.length; i++) {
|
|
65
|
-
walk(children[i], depth + 1, i === children.length - 1, [...ancestors, !isLast]);
|
|
82
|
+
walk(children[i], depth + 1, i === children.length - 1, [...ancestors, !isLast], nextLineage);
|
|
66
83
|
}
|
|
67
84
|
}
|
|
68
85
|
for (let i = 0; i < roots.length; i++) {
|
|
69
|
-
walk(roots[i], 0, i === roots.length - 1, []);
|
|
86
|
+
walk(roots[i], 0, i === roots.length - 1, [], new Set());
|
|
87
|
+
}
|
|
88
|
+
const remaining = spans.filter((span) => !visited.has(span.spanId)).sort(sortByStartTime);
|
|
89
|
+
for (let i = 0; i < remaining.length; i++) {
|
|
90
|
+
walk(remaining[i], 0, i === remaining.length - 1, [], new Set());
|
|
70
91
|
}
|
|
71
92
|
return result;
|
|
72
93
|
}
|
|
@@ -137,13 +158,13 @@ export function groupByTraceId(spans) {
|
|
|
137
158
|
export function TraceGroup(options) {
|
|
138
159
|
if (options.spans.length === 0)
|
|
139
160
|
return null;
|
|
140
|
-
const root = options.spans
|
|
141
|
-
const traceId = root.traceId;
|
|
161
|
+
const root = pickRootSpan(options.spans);
|
|
162
|
+
const traceId = options.id ?? root.traceId;
|
|
142
163
|
const totalMs = root.durationMs ?? 0;
|
|
143
164
|
const rootStart = root.startTime;
|
|
144
165
|
const hasError = options.spans.some((s) => s.status === "error");
|
|
145
166
|
const status = hasError ? "error" : root.status;
|
|
146
|
-
return (_jsxs("details", { class: "tl-row", children: [_jsxs("summary", { class: "tl-summary tl-cols", children: [_jsx("span", { class: "tl-cell tl-cell-status", children: _jsx("span", { style: `width:8px;height:8px;border-radius:50%;background:${statusColor(status)};display:block` }) }), _jsx("span", { class: "tl-cell tl-cell-name", children: root.name }), _jsx("span", { class: "tl-cell tl-cell-spans", children: options.spans.length }), _jsx("span", { class: "tl-cell tl-cell-dur", children: formatDuration(totalMs) }), _jsx("span", { class: "tl-cell tl-cell-id", children: String(traceId).slice(0, 12) })] }), _jsxs("div", { class: "tl-body", children: [_jsxs("div", { style: "display:flex;gap:12px;align-items:center;margin-bottom:8px", children: [_jsx("a", { href: `${StudioStore.store.prefix}/traces/${traceId}`, style: "color:#38bdf8;font-size:12px;text-decoration:none", children: "Full trace view" }), _jsx(StatusBadge, { status: status }), _jsxs("span", { style: "color:#64748b;font-size:11px", children: [options.spans.length, " span", options.spans.length !== 1 ? "s" : ""] }), _jsx("span", { style: "color:#64748b;font-size:11px;font-family:monospace", children: formatDuration(totalMs) }), _jsx("span", { style: "color:#475569;font-size:10px;font-family:monospace", children: traceId })] }), options.spans.map((s) => {
|
|
167
|
+
return (_jsxs("details", { id: `trace-${traceId}`, class: "tl-row", children: [_jsxs("summary", { class: "tl-summary tl-cols", children: [_jsx("span", { class: "tl-cell tl-cell-status", children: _jsx("span", { style: `width:8px;height:8px;border-radius:50%;background:${statusColor(status)};display:block` }) }), _jsx("span", { class: "tl-cell tl-cell-name", children: root.name }), _jsx("span", { class: "tl-cell tl-cell-spans", children: options.spans.length }), _jsx("span", { class: "tl-cell tl-cell-dur", children: formatDuration(totalMs) }), _jsx("span", { class: "tl-cell tl-cell-id", children: String(traceId).slice(0, 12) })] }), _jsxs("div", { class: "tl-body", children: [_jsxs("div", { style: "display:flex;gap:12px;align-items:center;margin-bottom:8px", children: [_jsx("a", { href: `${StudioStore.store.prefix}/traces/${traceId}`, style: "color:#38bdf8;font-size:12px;text-decoration:none", children: "Full trace view" }), _jsx(StatusBadge, { status: status }), _jsxs("span", { style: "color:#64748b;font-size:11px", children: [options.spans.length, " span", options.spans.length !== 1 ? "s" : ""] }), _jsx("span", { style: "color:#64748b;font-size:11px;font-family:monospace", children: formatDuration(totalMs) }), _jsx("span", { style: "color:#475569;font-size:10px;font-family:monospace", children: traceId })] }), options.spans.map((s) => {
|
|
147
168
|
const offsetMs = Number(s.startTime - rootStart) / 1_000_000;
|
|
148
169
|
const leftPct = totalMs > 0 ? Math.min(100, (offsetMs / totalMs) * 100) : 0;
|
|
149
170
|
const widthPct = totalMs > 0
|
|
@@ -166,7 +187,7 @@ export function TraceDetail(options) {
|
|
|
166
187
|
if (options.spans.length === 0) {
|
|
167
188
|
return _jsx("div", { class: "empty", children: "Trace not found" });
|
|
168
189
|
}
|
|
169
|
-
const root = options.spans
|
|
190
|
+
const root = pickRootSpan(options.spans);
|
|
170
191
|
const traceId = root.traceId;
|
|
171
192
|
const totalMs = root.durationMs ?? 0;
|
|
172
193
|
const rootStart = root.startTime;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Traces.js","sourceRoot":"","sources":["../../../src/studio/ui/Traces.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Traces.js","sourceRoot":"","sources":["../../../src/studio/ui/Traces.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Fetch.ts
CHANGED
|
@@ -286,7 +286,7 @@ export function retry(options: {
|
|
|
286
286
|
|
|
287
287
|
interface SseEvent {
|
|
288
288
|
data?: string | undefined
|
|
289
|
-
|
|
289
|
+
event?: string
|
|
290
290
|
retry?: number
|
|
291
291
|
id?: string
|
|
292
292
|
}
|
|
@@ -330,7 +330,7 @@ export function sse(_options?: {
|
|
|
330
330
|
if (line === "") {
|
|
331
331
|
if (acc.dataLines.length > 0) {
|
|
332
332
|
const event: SseEvent = { data: acc.dataLines.join("\n") }
|
|
333
|
-
if (acc.eventType !== undefined) event.
|
|
333
|
+
if (acc.eventType !== undefined) event.event = acc.eventType
|
|
334
334
|
if (acc.retryMs !== undefined) event.retry = acc.retryMs
|
|
335
335
|
if (acc.lastEventId !== undefined) event.id = acc.lastEventId
|
|
336
336
|
return [{ ...empty, lastEventId: acc.lastEventId }, event]
|
package/src/Password.ts
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import * as Data from "effect/Data"
|
|
2
|
+
import * as Effect from "effect/Effect"
|
|
3
|
+
import * as ParseResult from "effect/ParseResult"
|
|
4
|
+
import * as Schema from "effect/Schema"
|
|
5
|
+
|
|
6
|
+
export class PasswordError extends Data.TaggedError("PasswordError")<{
|
|
7
|
+
readonly reason: "HashFailure" | "UnsupportedAlgorithm"
|
|
8
|
+
readonly algorithm?: string
|
|
9
|
+
readonly cause?: unknown
|
|
10
|
+
}> {}
|
|
11
|
+
|
|
12
|
+
const bunAlgorithms = ["argon2d", "argon2i", "argon2id", "bcrypt"] as const
|
|
13
|
+
const defaultAlgorithm = "bcrypt" as const
|
|
14
|
+
const defaultBcryptCost = 10
|
|
15
|
+
|
|
16
|
+
type PasswordAlgorithm = (typeof bunAlgorithms)[number]
|
|
17
|
+
|
|
18
|
+
type HashOptions = {
|
|
19
|
+
readonly algorithm?: PasswordAlgorithm
|
|
20
|
+
readonly cost?: number
|
|
21
|
+
readonly memoryCost?: number
|
|
22
|
+
readonly timeCost?: number
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export const PasswordStored = Schema.NonEmptyString.annotations({
|
|
26
|
+
identifier: "PasswordStored",
|
|
27
|
+
description: "A stored password hash string.",
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
export type PasswordStored = typeof PasswordStored.Type
|
|
31
|
+
|
|
32
|
+
const PlainTextPassword = Schema.NonEmptyString.annotations({
|
|
33
|
+
identifier: "PasswordPlainText",
|
|
34
|
+
description: "A plain-text password that will be hashed when decoded.",
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
function makePasswordSchema(options?: HashOptions) {
|
|
38
|
+
return Schema.transformOrFail(PlainTextPassword, PasswordStored, {
|
|
39
|
+
strict: true,
|
|
40
|
+
decode: (input, _, ast) =>
|
|
41
|
+
hash(input, options).pipe(
|
|
42
|
+
Effect.mapError((error) => new ParseResult.Type(ast, input, formatError(error))),
|
|
43
|
+
),
|
|
44
|
+
encode: (stored, _, ast) =>
|
|
45
|
+
Effect.fail(
|
|
46
|
+
new ParseResult.Forbidden(
|
|
47
|
+
ast,
|
|
48
|
+
stored,
|
|
49
|
+
"Password hashes are write-only and cannot be encoded back to plain text.",
|
|
50
|
+
),
|
|
51
|
+
),
|
|
52
|
+
}).annotations({
|
|
53
|
+
identifier: "Password",
|
|
54
|
+
description: "A write-only password schema that decodes plain text into a password hash.",
|
|
55
|
+
})
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export function schemaPassword(options?: HashOptions) {
|
|
59
|
+
return makePasswordSchema(options)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export function hash(
|
|
63
|
+
password: string,
|
|
64
|
+
options?: HashOptions,
|
|
65
|
+
): Effect.Effect<PasswordStored, PasswordError> {
|
|
66
|
+
return Effect.gen(function* () {
|
|
67
|
+
const algorithm = options?.algorithm ?? defaultAlgorithm
|
|
68
|
+
|
|
69
|
+
const digest = yield* Effect.tryPromise({
|
|
70
|
+
try: () => Bun.password.hash(password, toBunAlgorithm(options)),
|
|
71
|
+
catch: (cause) =>
|
|
72
|
+
new PasswordError({
|
|
73
|
+
reason: isSupportedAlgorithm(algorithm) ? "HashFailure" : "UnsupportedAlgorithm",
|
|
74
|
+
algorithm,
|
|
75
|
+
cause,
|
|
76
|
+
}),
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
return digest
|
|
80
|
+
})
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export function verify(
|
|
84
|
+
password: string,
|
|
85
|
+
stored: PasswordStored,
|
|
86
|
+
): Effect.Effect<boolean, PasswordError> {
|
|
87
|
+
return Effect.tryPromise({
|
|
88
|
+
try: () => Bun.password.verify(password, stored),
|
|
89
|
+
catch: (cause) =>
|
|
90
|
+
new PasswordError({
|
|
91
|
+
reason: "HashFailure",
|
|
92
|
+
cause,
|
|
93
|
+
}),
|
|
94
|
+
})
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function toBunAlgorithm(
|
|
98
|
+
options?: HashOptions,
|
|
99
|
+
): Bun.Password.AlgorithmLabel | Bun.Password.Argon2Algorithm | Bun.Password.BCryptAlgorithm {
|
|
100
|
+
const algorithm = options?.algorithm ?? defaultAlgorithm
|
|
101
|
+
|
|
102
|
+
switch (algorithm) {
|
|
103
|
+
case "bcrypt":
|
|
104
|
+
return {
|
|
105
|
+
algorithm,
|
|
106
|
+
cost: options?.cost ?? defaultBcryptCost,
|
|
107
|
+
}
|
|
108
|
+
case "argon2d":
|
|
109
|
+
case "argon2i":
|
|
110
|
+
case "argon2id":
|
|
111
|
+
return {
|
|
112
|
+
algorithm,
|
|
113
|
+
memoryCost: options?.memoryCost,
|
|
114
|
+
timeCost: options?.timeCost,
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
function isSupportedAlgorithm(algorithm: string): algorithm is PasswordAlgorithm {
|
|
120
|
+
return bunAlgorithms.includes(algorithm as PasswordAlgorithm)
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function formatError(error: PasswordError): string {
|
|
124
|
+
switch (error.reason) {
|
|
125
|
+
case "UnsupportedAlgorithm":
|
|
126
|
+
return `Unsupported password hash algorithm: ${error.algorithm ?? "unknown"}`
|
|
127
|
+
case "HashFailure":
|
|
128
|
+
return `Failed to hash password with ${error.algorithm ?? "unknown"}`
|
|
129
|
+
}
|
|
130
|
+
}
|
package/src/RouteSse.ts
CHANGED
|
@@ -12,10 +12,9 @@ const HEARTBEAT_INTERVAL = Duration.seconds(5)
|
|
|
12
12
|
const HEARTBEAT = ": <3\n\n"
|
|
13
13
|
|
|
14
14
|
interface SseEvent {
|
|
15
|
-
readonly [key: string]: unknown
|
|
16
15
|
readonly _tag?: string
|
|
17
16
|
readonly data?: string | undefined
|
|
18
|
-
readonly
|
|
17
|
+
readonly event?: string
|
|
19
18
|
readonly retry?: number
|
|
20
19
|
}
|
|
21
20
|
|
|
@@ -26,8 +25,8 @@ function formatSseEvent(event: SseEvent): string {
|
|
|
26
25
|
}
|
|
27
26
|
|
|
28
27
|
let result = ""
|
|
29
|
-
if (event.
|
|
30
|
-
result += `event: ${event.
|
|
28
|
+
if (event.event) {
|
|
29
|
+
result += `event: ${event.event}\n`
|
|
31
30
|
}
|
|
32
31
|
if (typeof event.data === "string") {
|
|
33
32
|
for (const line of event.data.split("\n")) {
|
|
@@ -48,6 +47,7 @@ type SseHandlerInput<B, E, R> =
|
|
|
48
47
|
| Effect.Effect<Stream.Stream<SseEvent, E, R>, E, R>
|
|
49
48
|
| ((
|
|
50
49
|
context: Values.Simplify<B>,
|
|
50
|
+
// TODO: typing is super loose here
|
|
51
51
|
next: (context?: Partial<B> & Record<string, unknown>) => Entity.Entity<string>,
|
|
52
52
|
) =>
|
|
53
53
|
| Stream.Stream<SseEvent, E, R>
|
package/src/_StreamExtra.ts
CHANGED
package/src/studio/Studio.ts
CHANGED
|
@@ -10,16 +10,17 @@ import * as StudioMetrics from "./StudioMetrics.ts"
|
|
|
10
10
|
import * as StudioProcess from "./StudioProcess.ts"
|
|
11
11
|
import * as StudioStore from "./StudioStore.ts"
|
|
12
12
|
import * as StudioTracer from "./StudioTracer.ts"
|
|
13
|
-
import
|
|
13
|
+
import routes from "./routes/tree.ts"
|
|
14
14
|
|
|
15
15
|
export function layer(
|
|
16
16
|
options?: StudioStore.StudioStoreOptions & {
|
|
17
17
|
readonly sqlLayer?: Layer.Layer<SqlClient.SqlClient, SqlClient.SqlError>
|
|
18
18
|
},
|
|
19
|
-
): Layer.Layer<StudioStore.StudioStore> {
|
|
19
|
+
): Layer.Layer<StudioStore.StudioStore | SqlClient.SqlClient> {
|
|
20
20
|
const sqlLayer =
|
|
21
21
|
options?.sqlLayer ?? sqlBun.layer({ adapter: "sqlite" as const, filename: ":memory:" })
|
|
22
|
-
const
|
|
22
|
+
const providedSqlLayer = sqlLayer.pipe(Layer.orDie)
|
|
23
|
+
const store = StudioStore.layer(options).pipe(Layer.provide(providedSqlLayer), Layer.orDie)
|
|
23
24
|
const features = Layer.mergeAll(
|
|
24
25
|
StudioTracer.layer,
|
|
25
26
|
StudioLogger.layer,
|
|
@@ -27,7 +28,7 @@ export function layer(
|
|
|
27
28
|
StudioErrors.layer,
|
|
28
29
|
StudioProcess.layer,
|
|
29
30
|
).pipe(Layer.provide(store))
|
|
30
|
-
return Layer.
|
|
31
|
+
return Layer.mergeAll(providedSqlLayer, store, features)
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
export function layerRoutes(options?: { prefix?: string }) {
|
|
@@ -39,7 +40,7 @@ export function layerRoutes(options?: { prefix?: string }) {
|
|
|
39
40
|
const existing = yield* Route.Routes
|
|
40
41
|
StudioStore.store.prefix = prefix
|
|
41
42
|
const tree = Route.tree({
|
|
42
|
-
[prefix as "/"]:
|
|
43
|
+
[prefix as "/"]: routes,
|
|
43
44
|
})
|
|
44
45
|
return RouteTree.merge(existing, tree)
|
|
45
46
|
}),
|
|
@@ -185,7 +185,6 @@ function make(store: StudioStore.StudioStoreShape): Supervisor.Supervisor<void>
|
|
|
185
185
|
|
|
186
186
|
StudioStore.runWrite(
|
|
187
187
|
StudioStore.upsertFiber(
|
|
188
|
-
store.sql,
|
|
189
188
|
childId,
|
|
190
189
|
parentId !== childId ? parentId : undefined,
|
|
191
190
|
span?._tag === "Span" ? span.name : undefined,
|
|
@@ -206,8 +205,8 @@ function make(store: StudioStore.StudioStoreShape): Supervisor.Supervisor<void>
|
|
|
206
205
|
}
|
|
207
206
|
StudioStore.runWrite(
|
|
208
207
|
Effect.zipRight(
|
|
209
|
-
StudioStore.insertError(
|
|
210
|
-
StudioStore.evict(
|
|
208
|
+
StudioStore.insertError(error),
|
|
209
|
+
StudioStore.evict("Error", store.errorCapacity),
|
|
211
210
|
),
|
|
212
211
|
)
|
|
213
212
|
Effect.runSync(PubSub.publish(store.events, { _tag: "Error", error }))
|
|
@@ -9,7 +9,6 @@ import * as StudioStore from "./StudioStore.ts"
|
|
|
9
9
|
|
|
10
10
|
const studioLogger = Logger.make((options) => {
|
|
11
11
|
const store = StudioStore.store
|
|
12
|
-
if (!store.sql) return
|
|
13
12
|
|
|
14
13
|
try {
|
|
15
14
|
const levelMap: Record<string, StudioStore.StudioLog["level"]> = {
|
|
@@ -41,8 +40,8 @@ const studioLogger = Logger.make((options) => {
|
|
|
41
40
|
}
|
|
42
41
|
StudioStore.runWrite(
|
|
43
42
|
Effect.zipRight(
|
|
44
|
-
StudioStore.insertLog(
|
|
45
|
-
StudioStore.evict(
|
|
43
|
+
StudioStore.insertLog(log),
|
|
44
|
+
StudioStore.evict("Log", store.logCapacity),
|
|
46
45
|
),
|
|
47
46
|
)
|
|
48
47
|
Effect.runSync(PubSub.publish(store.events, { _tag: "Log", log }))
|