effect-start 0.33.0 → 0.35.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/README.md +303 -36
- package/dist/Entity.d.ts +3 -1
- package/dist/Entity.d.ts.map +1 -1
- package/dist/Entity.js +23 -0
- package/dist/Entity.js.map +1 -1
- package/dist/Fetch.d.ts +1 -1
- package/dist/Fetch.js.map +1 -1
- package/dist/FileRouter.d.ts +1 -1
- package/dist/FileRouterCodegen.d.ts.map +1 -1
- package/dist/FileRouterCodegen.js +10 -4
- package/dist/FileRouterCodegen.js.map +1 -1
- package/dist/Job.d.ts +94 -0
- package/dist/Job.d.ts.map +1 -0
- package/dist/Job.js +157 -0
- package/dist/Job.js.map +1 -0
- package/dist/Password.d.ts +1 -1
- package/dist/Route.d.ts +20 -15
- package/dist/Route.d.ts.map +1 -1
- package/dist/Route.js +12 -0
- package/dist/Route.js.map +1 -1
- package/dist/RouteBody.d.ts +7 -7
- package/dist/RouteBody.d.ts.map +1 -1
- package/dist/RouteBody.js.map +1 -1
- package/dist/RouteHook.d.ts +1 -1
- package/dist/RouteHook.d.ts.map +1 -1
- package/dist/RouteHook.js.map +1 -1
- package/dist/RouteHttp.d.ts.map +1 -1
- package/dist/RouteHttp.js +55 -39
- package/dist/RouteHttp.js.map +1 -1
- package/dist/RouteLink.d.ts +16 -0
- package/dist/RouteLink.d.ts.map +1 -0
- package/dist/RouteLink.js +23 -0
- package/dist/RouteLink.js.map +1 -0
- package/dist/RouteMount.d.ts +37 -31
- package/dist/RouteMount.d.ts.map +1 -1
- package/dist/RouteMount.js.map +1 -1
- package/dist/RouteSchema.d.ts +81 -28
- package/dist/RouteSchema.d.ts.map +1 -1
- package/dist/RouteSchema.js +56 -101
- package/dist/RouteSchema.js.map +1 -1
- package/dist/RouteSse.d.ts +1 -1
- package/dist/RouteSse.d.ts.map +1 -1
- package/dist/RouteSse.js.map +1 -1
- package/dist/Socket.d.ts +1 -1
- package/dist/Start.js +1 -1
- package/dist/Start.js.map +1 -1
- package/dist/StaticFiles.d.ts +4 -10
- package/dist/StaticFiles.d.ts.map +1 -1
- package/dist/StaticFiles.js +10 -18
- package/dist/StaticFiles.js.map +1 -1
- package/dist/System.d.ts +1 -1
- package/dist/_Docker.d.ts +1 -1
- package/dist/_HtmlScanner.d.ts +42 -0
- package/dist/_HtmlScanner.d.ts.map +1 -0
- package/dist/_HtmlScanner.js +385 -0
- package/dist/_HtmlScanner.js.map +1 -0
- package/dist/_RouteLink.d.ts +16 -0
- package/dist/_RouteLink.d.ts.map +1 -0
- package/dist/_RouteLink.js +22 -0
- package/dist/_RouteLink.js.map +1 -0
- package/dist/bun/BunRoute.d.ts +4 -6
- package/dist/bun/BunRoute.d.ts.map +1 -1
- package/dist/bun/BunRoute.js +1 -1
- package/dist/bun/BunRoute.js.map +1 -1
- package/dist/bundler/Bundle.d.ts +1 -1
- package/dist/bundler/BundleRoute.d.ts +3 -4
- package/dist/bundler/BundleRoute.d.ts.map +1 -1
- package/dist/bundler/BundleRoute.js +5 -11
- package/dist/bundler/BundleRoute.js.map +1 -1
- package/dist/datastar/watchers/patchElements.js +1 -1
- package/dist/datastar/watchers/patchElements.js.map +1 -1
- package/dist/experimental/CsrfProtection.d.ts +67 -0
- package/dist/experimental/CsrfProtection.d.ts.map +1 -0
- package/dist/experimental/CsrfProtection.js +100 -0
- package/dist/experimental/CsrfProtection.js.map +1 -0
- package/dist/experimental/EncryptedCookies.d.ts +1 -1
- package/dist/experimental/KeyValueStore.d.ts +1 -1
- package/dist/lint/plugin.js +4 -0
- package/dist/lint/plugin.js.map +1 -1
- package/dist/sql/SqlClient.d.ts +1 -1
- package/dist/studio/Studio.d.ts +1 -1
- package/dist/studio/Studio.d.ts.map +1 -1
- package/dist/studio/Studio.js +4 -10
- package/dist/studio/Studio.js.map +1 -1
- package/dist/studio/routes/errors/route.d.ts +2 -2
- package/dist/studio/routes/errors/route.d.ts.map +1 -1
- package/dist/studio/routes/errors/route.js +3 -2
- package/dist/studio/routes/errors/route.js.map +1 -1
- package/dist/studio/routes/fiberDetail.d.ts +3 -7
- package/dist/studio/routes/fiberDetail.d.ts.map +1 -1
- package/dist/studio/routes/fibers/route.d.ts +2 -2
- package/dist/studio/routes/layout.d.ts +3 -3
- package/dist/studio/routes/logs/route.d.ts +2 -2
- package/dist/studio/routes/logs/route.d.ts.map +1 -1
- package/dist/studio/routes/logs/route.js +3 -2
- package/dist/studio/routes/logs/route.js.map +1 -1
- package/dist/studio/routes/metrics/route.d.ts +2 -2
- package/dist/studio/routes/route.d.ts +1 -1
- package/dist/studio/routes/routes/route.d.ts +1 -1
- package/dist/studio/routes/services/route.d.ts +1 -1
- package/dist/studio/routes/system/route.d.ts +2 -2
- package/dist/studio/routes/traceDetail.d.ts +3 -7
- package/dist/studio/routes/traceDetail.d.ts.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 +3 -2
- package/dist/studio/routes/traces/route.js.map +1 -1
- package/dist/studio/routes/tree.d.ts +43 -51
- package/dist/studio/routes/tree.d.ts.map +1 -1
- package/package.json +4 -3
- package/src/Entity.ts +34 -5
- package/src/Fetch.ts +1 -1
- package/src/FileRouterCodegen.ts +10 -4
- package/src/Route.ts +55 -34
- package/src/RouteBody.ts +15 -15
- package/src/RouteHook.ts +3 -3
- package/src/RouteHttp.ts +55 -51
- package/src/RouteLink.ts +56 -0
- package/src/RouteMount.ts +44 -37
- package/src/RouteSchema.ts +299 -166
- package/src/RouteSse.ts +3 -3
- package/src/Start.ts +1 -1
- package/src/StaticFiles.ts +17 -34
- package/src/_HtmlScanner.ts +415 -0
- package/src/bun/BunRoute.ts +11 -11
- package/src/bundler/BundleRoute.ts +8 -19
- package/src/datastar/watchers/patchElements.ts +1 -1
- package/src/dev.d.ts +3 -0
- package/src/experimental/CsrfProtection.ts +153 -0
- package/src/lint/plugin.js +2 -0
- package/src/studio/Studio.ts +4 -14
- package/src/studio/routes/errors/route.tsx +3 -2
- package/src/studio/routes/logs/route.tsx +3 -2
- package/src/studio/routes/traces/route.tsx +3 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as Route from "../../Route.ts";
|
|
2
|
-
declare const _default: import("../../RouteMount.ts").RouteMount.Builder<{}, [Route.Route
|
|
2
|
+
declare const _default: import("../../RouteMount.ts").RouteMount.Builder<{}, [Route.Route<{
|
|
3
3
|
method: "GET";
|
|
4
4
|
format: "*";
|
|
5
5
|
}, {}, import("../../RouteBody.ts").RenderValue, never, never>]>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as Route from "../../../Route.ts";
|
|
2
|
-
declare const _default: import("../../../RouteMount.ts").RouteMount.Builder<{}, [Route.Route
|
|
2
|
+
declare const _default: import("../../../RouteMount.ts").RouteMount.Builder<{}, [Route.Route<{
|
|
3
3
|
method: "GET";
|
|
4
4
|
format: "html";
|
|
5
5
|
}, {}, string, never, Route.Routes>]>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as Route from "../../../Route.ts";
|
|
2
|
-
declare const _default: import("../../../RouteMount.ts").RouteMount.Builder<{}, [Route.Route
|
|
2
|
+
declare const _default: import("../../../RouteMount.ts").RouteMount.Builder<{}, [Route.Route<{
|
|
3
3
|
method: "GET";
|
|
4
4
|
format: "html";
|
|
5
5
|
}, {}, string, never, never>]>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as Stream from "effect/Stream";
|
|
2
2
|
import * as Route from "../../../Route.ts";
|
|
3
|
-
declare const _default: import("../../../RouteMount.ts").RouteMount.Builder<{}, [Route.Route
|
|
3
|
+
declare const _default: import("../../../RouteMount.ts").RouteMount.Builder<{}, [Route.Route<{
|
|
4
4
|
method: "GET";
|
|
5
5
|
format: "html";
|
|
6
|
-
}, {}, string, never, never>, Route.Route
|
|
6
|
+
}, {}, string, never, never>, Route.Route<{
|
|
7
7
|
method: "GET";
|
|
8
8
|
format: "sse";
|
|
9
9
|
}, {}, Stream.Stream<string, never, never>, never, never>]>;
|
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
import * as Route from "../../Route.ts";
|
|
2
|
-
declare const _default: import("../../RouteMount.ts").RouteMount.Builder<{}, [Route.Route
|
|
2
|
+
declare const _default: import("../../RouteMount.ts").RouteMount.Builder<{}, [Route.Route<{
|
|
3
3
|
method: "GET";
|
|
4
4
|
}, {
|
|
5
5
|
pathParams: {
|
|
6
6
|
readonly id: string;
|
|
7
7
|
};
|
|
8
|
-
}, unknown, import("effect/ParseResult").ParseError,
|
|
8
|
+
}, unknown, import("effect/ParseResult").ParseError, Route.Request>, Route.Route<{
|
|
9
9
|
method: "GET";
|
|
10
10
|
format: "html";
|
|
11
|
-
}, {
|
|
12
|
-
pathParams: {
|
|
13
|
-
readonly id: string;
|
|
14
|
-
};
|
|
15
|
-
}, string, import("../../sql/SqlClient.ts").SqlError, import("../../sql/SqlClient.ts").SqlClient>]>;
|
|
11
|
+
}, {}, string, import("../../sql/SqlClient.ts").SqlError, import("../../sql/SqlClient.ts").SqlClient>]>;
|
|
16
12
|
export default _default;
|
|
17
13
|
//# sourceMappingURL=traceDetail.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traceDetail.d.ts","sourceRoot":"","sources":["../../../src/studio/routes/traceDetail.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA
|
|
1
|
+
{"version":3,"file":"traceDetail.d.ts","sourceRoot":"","sources":["../../../src/studio/routes/traceDetail.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;;;;;;;;;;;AAMvC,wBAqBC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as Stream from "effect/Stream";
|
|
2
2
|
import * as Route from "../../../Route.ts";
|
|
3
|
-
declare const _default: import("../../../RouteMount.ts").RouteMount.Builder<{}, [Route.Route
|
|
3
|
+
declare const _default: import("../../../RouteMount.ts").RouteMount.Builder<{}, [Route.Route<{
|
|
4
4
|
method: "GET";
|
|
5
5
|
format: "html";
|
|
6
|
-
}, {}, string, import("../../../sql/SqlClient.ts").SqlError, import("../../../sql/SqlClient.ts").SqlClient>, Route.Route
|
|
6
|
+
}, {}, string, import("../../../sql/SqlClient.ts").SqlError, Route.Request | import("../../../sql/SqlClient.ts").SqlClient>, Route.Route<{
|
|
7
7
|
method: "GET";
|
|
8
8
|
format: "sse";
|
|
9
9
|
}, {}, Stream.Stream<string, import("../../../sql/SqlClient.ts").SqlError, import("../../../sql/SqlClient.ts").SqlClient>, import("../../../sql/SqlClient.ts").SqlError, import("../../../sql/SqlClient.ts").SqlClient>]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../src/studio/routes/traces/route.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAA;;;;;;;;AAQ1C,
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../src/studio/routes/traces/route.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAA;;;;;;;;AAQ1C,wBAiEC"}
|
|
@@ -7,8 +7,9 @@ import * as StudioStore from "../../StudioStore.js";
|
|
|
7
7
|
import * as Shell from "../../ui/Shell.js";
|
|
8
8
|
import * as Traces from "../../ui/Traces.js";
|
|
9
9
|
const prefix = StudioStore.store.prefix;
|
|
10
|
-
export default Route.get(Route.html(function* (
|
|
11
|
-
const
|
|
10
|
+
export default Route.get(Route.html(function* (_ctx) {
|
|
11
|
+
const request = yield* Route.Request;
|
|
12
|
+
const url = new URL(request.url);
|
|
12
13
|
const search = url.searchParams.get("traceSearch") || "";
|
|
13
14
|
const allSpans = StudioStore.filterOutStudioSpans(yield* StudioStore.allSpans());
|
|
14
15
|
const names = Array.from(new Set(allSpans.map((s) => s.name))).sort();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../src/studio/routes/traces/route.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAC1C,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAA;AACxC,OAAO,KAAK,WAAW,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,KAAK,MAAM,mBAAoB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,oBAAqB,CAAA;AAE7C,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAA;AAEvC,eAAe,KAAK,CAAC,GAAG,CACtB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG;
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../src/studio/routes/traces/route.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,161 +1,153 @@
|
|
|
1
1
|
import * as Route from "../../Route.ts";
|
|
2
2
|
declare const _default: import("../../RouteTree.ts").RouteTree<{
|
|
3
|
-
"/": [Route.Route
|
|
3
|
+
"/": [Route.Route<{
|
|
4
4
|
method: "*";
|
|
5
|
-
}, {}, unknown, never, never>, Route.Route
|
|
5
|
+
}, {}, unknown, never, never>, Route.Route<{
|
|
6
6
|
method: "*";
|
|
7
7
|
bunPrefix: string;
|
|
8
8
|
bunLoad: () => Promise<Bun.HTMLBundle>;
|
|
9
9
|
format: "html";
|
|
10
|
-
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, import("../../bun/BunServer.ts").BunServer>, Route.Route
|
|
10
|
+
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, Route.Request | import("../../bun/BunServer.ts").BunServer>, Route.Route<{
|
|
11
11
|
method: "GET";
|
|
12
12
|
format: "*";
|
|
13
13
|
}, {}, import("../../RouteBody.ts").RenderValue, never, never>];
|
|
14
|
-
"/traces": [Route.Route
|
|
14
|
+
"/traces": [Route.Route<{
|
|
15
15
|
method: "*";
|
|
16
|
-
}, {}, unknown, never, never>, Route.Route
|
|
16
|
+
}, {}, unknown, never, never>, Route.Route<{
|
|
17
17
|
method: "*";
|
|
18
18
|
bunPrefix: string;
|
|
19
19
|
bunLoad: () => Promise<Bun.HTMLBundle>;
|
|
20
20
|
format: "html";
|
|
21
|
-
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, import("../../bun/BunServer.ts").BunServer>, Route.Route
|
|
21
|
+
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, Route.Request | import("../../bun/BunServer.ts").BunServer>, Route.Route<{
|
|
22
22
|
method: "GET";
|
|
23
23
|
format: "html";
|
|
24
|
-
}, {}, string, import("../../sql/SqlClient.ts").SqlError, import("../../sql/SqlClient.ts").SqlClient>, Route.Route
|
|
24
|
+
}, {}, string, import("../../sql/SqlClient.ts").SqlError, Route.Request | import("../../sql/SqlClient.ts").SqlClient>, Route.Route<{
|
|
25
25
|
method: "GET";
|
|
26
26
|
format: "sse";
|
|
27
27
|
}, {}, 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>];
|
|
28
|
-
"/traces/:id": [Route.Route
|
|
28
|
+
"/traces/:id": [Route.Route<{
|
|
29
29
|
method: "*";
|
|
30
|
-
}, {}, unknown, never, never>, Route.Route
|
|
30
|
+
}, {}, unknown, never, never>, Route.Route<{
|
|
31
31
|
method: "*";
|
|
32
32
|
bunPrefix: string;
|
|
33
33
|
bunLoad: () => Promise<Bun.HTMLBundle>;
|
|
34
34
|
format: "html";
|
|
35
|
-
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, import("../../bun/BunServer.ts").BunServer>, Route.Route
|
|
35
|
+
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, Route.Request | import("../../bun/BunServer.ts").BunServer>, Route.Route<{
|
|
36
36
|
method: "GET";
|
|
37
37
|
}, {
|
|
38
38
|
pathParams: {
|
|
39
39
|
readonly id: string;
|
|
40
40
|
};
|
|
41
|
-
}, unknown, import("effect/ParseResult").ParseError,
|
|
41
|
+
}, unknown, import("effect/ParseResult").ParseError, Route.Request>, Route.Route<{
|
|
42
42
|
method: "GET";
|
|
43
43
|
format: "html";
|
|
44
|
-
}, {
|
|
45
|
-
|
|
46
|
-
readonly id: string;
|
|
47
|
-
};
|
|
48
|
-
}, string, import("../../sql/SqlClient.ts").SqlError, import("../../sql/SqlClient.ts").SqlClient>];
|
|
49
|
-
"/metrics": [Route.Route.Route<{
|
|
44
|
+
}, {}, string, import("../../sql/SqlClient.ts").SqlError, import("../../sql/SqlClient.ts").SqlClient>];
|
|
45
|
+
"/metrics": [Route.Route<{
|
|
50
46
|
method: "*";
|
|
51
|
-
}, {}, unknown, never, never>, Route.Route
|
|
47
|
+
}, {}, unknown, never, never>, Route.Route<{
|
|
52
48
|
method: "*";
|
|
53
49
|
bunPrefix: string;
|
|
54
50
|
bunLoad: () => Promise<Bun.HTMLBundle>;
|
|
55
51
|
format: "html";
|
|
56
|
-
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, import("../../bun/BunServer.ts").BunServer>, Route.Route
|
|
52
|
+
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, Route.Request | import("../../bun/BunServer.ts").BunServer>, Route.Route<{
|
|
57
53
|
method: "GET";
|
|
58
54
|
format: "html";
|
|
59
|
-
}, {}, string, never, never>, Route.Route
|
|
55
|
+
}, {}, string, never, never>, Route.Route<{
|
|
60
56
|
method: "GET";
|
|
61
57
|
format: "sse";
|
|
62
58
|
}, {}, import("effect/Stream").Stream<string, never, never>, never, never>];
|
|
63
|
-
"/logs": [Route.Route
|
|
59
|
+
"/logs": [Route.Route<{
|
|
64
60
|
method: "*";
|
|
65
|
-
}, {}, unknown, never, never>, Route.Route
|
|
61
|
+
}, {}, unknown, never, never>, Route.Route<{
|
|
66
62
|
method: "*";
|
|
67
63
|
bunPrefix: string;
|
|
68
64
|
bunLoad: () => Promise<Bun.HTMLBundle>;
|
|
69
65
|
format: "html";
|
|
70
|
-
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, import("../../bun/BunServer.ts").BunServer>, Route.Route
|
|
66
|
+
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, Route.Request | import("../../bun/BunServer.ts").BunServer>, Route.Route<{
|
|
71
67
|
method: "GET";
|
|
72
68
|
format: "html";
|
|
73
|
-
}, {}, string, import("../../sql/SqlClient.ts").SqlError, import("../../sql/SqlClient.ts").SqlClient>, Route.Route
|
|
69
|
+
}, {}, string, import("../../sql/SqlClient.ts").SqlError, Route.Request | import("../../sql/SqlClient.ts").SqlClient>, Route.Route<{
|
|
74
70
|
method: "GET";
|
|
75
71
|
format: "sse";
|
|
76
72
|
}, {}, import("effect/Stream").Stream<string, never, never>, never, never>];
|
|
77
|
-
"/errors": [Route.Route
|
|
73
|
+
"/errors": [Route.Route<{
|
|
78
74
|
method: "*";
|
|
79
|
-
}, {}, unknown, never, never>, Route.Route
|
|
75
|
+
}, {}, unknown, never, never>, Route.Route<{
|
|
80
76
|
method: "*";
|
|
81
77
|
bunPrefix: string;
|
|
82
78
|
bunLoad: () => Promise<Bun.HTMLBundle>;
|
|
83
79
|
format: "html";
|
|
84
|
-
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, import("../../bun/BunServer.ts").BunServer>, Route.Route
|
|
80
|
+
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, Route.Request | import("../../bun/BunServer.ts").BunServer>, Route.Route<{
|
|
85
81
|
method: "GET";
|
|
86
82
|
format: "html";
|
|
87
|
-
}, {}, string, import("../../sql/SqlClient.ts").SqlError, import("../../sql/SqlClient.ts").SqlClient>, Route.Route
|
|
83
|
+
}, {}, string, import("../../sql/SqlClient.ts").SqlError, Route.Request | import("../../sql/SqlClient.ts").SqlClient>, Route.Route<{
|
|
88
84
|
method: "GET";
|
|
89
85
|
format: "sse";
|
|
90
86
|
}, {}, import("effect/Stream").Stream<string, never, never>, never, never>];
|
|
91
|
-
"/fibers": [Route.Route
|
|
87
|
+
"/fibers": [Route.Route<{
|
|
92
88
|
method: "*";
|
|
93
|
-
}, {}, unknown, never, never>, Route.Route
|
|
89
|
+
}, {}, unknown, never, never>, Route.Route<{
|
|
94
90
|
method: "*";
|
|
95
91
|
bunPrefix: string;
|
|
96
92
|
bunLoad: () => Promise<Bun.HTMLBundle>;
|
|
97
93
|
format: "html";
|
|
98
|
-
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, import("../../bun/BunServer.ts").BunServer>, Route.Route
|
|
94
|
+
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, Route.Request | import("../../bun/BunServer.ts").BunServer>, Route.Route<{
|
|
99
95
|
method: "GET";
|
|
100
96
|
format: "html";
|
|
101
|
-
}, {}, string, import("../../sql/SqlClient.ts").SqlError, import("../../sql/SqlClient.ts").SqlClient>, Route.Route
|
|
97
|
+
}, {}, string, import("../../sql/SqlClient.ts").SqlError, import("../../sql/SqlClient.ts").SqlClient>, Route.Route<{
|
|
102
98
|
method: "GET";
|
|
103
99
|
format: "sse";
|
|
104
100
|
}, {}, 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>];
|
|
105
|
-
"/fibers/:id": [Route.Route
|
|
101
|
+
"/fibers/:id": [Route.Route<{
|
|
106
102
|
method: "*";
|
|
107
|
-
}, {}, unknown, never, never>, Route.Route
|
|
103
|
+
}, {}, unknown, never, never>, Route.Route<{
|
|
108
104
|
method: "*";
|
|
109
105
|
bunPrefix: string;
|
|
110
106
|
bunLoad: () => Promise<Bun.HTMLBundle>;
|
|
111
107
|
format: "html";
|
|
112
|
-
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, import("../../bun/BunServer.ts").BunServer>, Route.Route
|
|
108
|
+
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, Route.Request | import("../../bun/BunServer.ts").BunServer>, Route.Route<{
|
|
113
109
|
method: "GET";
|
|
114
110
|
}, {
|
|
115
111
|
pathParams: {
|
|
116
112
|
readonly id: string;
|
|
117
113
|
};
|
|
118
|
-
}, unknown, import("effect/ParseResult").ParseError,
|
|
114
|
+
}, unknown, import("effect/ParseResult").ParseError, Route.Request>, Route.Route<{
|
|
119
115
|
method: "GET";
|
|
120
116
|
format: "html";
|
|
121
|
-
}, {
|
|
122
|
-
|
|
123
|
-
readonly id: string;
|
|
124
|
-
};
|
|
125
|
-
}, string, import("../../sql/SqlClient.ts").SqlError, import("../../sql/SqlClient.ts").SqlClient>];
|
|
126
|
-
"/routes": [Route.Route.Route<{
|
|
117
|
+
}, {}, string, import("../../sql/SqlClient.ts").SqlError, import("../../sql/SqlClient.ts").SqlClient>];
|
|
118
|
+
"/routes": [Route.Route<{
|
|
127
119
|
method: "*";
|
|
128
|
-
}, {}, unknown, never, never>, Route.Route
|
|
120
|
+
}, {}, unknown, never, never>, Route.Route<{
|
|
129
121
|
method: "*";
|
|
130
122
|
bunPrefix: string;
|
|
131
123
|
bunLoad: () => Promise<Bun.HTMLBundle>;
|
|
132
124
|
format: "html";
|
|
133
|
-
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, import("../../bun/BunServer.ts").BunServer>, Route.Route
|
|
125
|
+
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, Route.Request | import("../../bun/BunServer.ts").BunServer>, Route.Route<{
|
|
134
126
|
method: "GET";
|
|
135
127
|
format: "html";
|
|
136
128
|
}, {}, string, never, Route.Routes>];
|
|
137
|
-
"/system": [Route.Route
|
|
129
|
+
"/system": [Route.Route<{
|
|
138
130
|
method: "*";
|
|
139
|
-
}, {}, unknown, never, never>, Route.Route
|
|
131
|
+
}, {}, unknown, never, never>, Route.Route<{
|
|
140
132
|
method: "*";
|
|
141
133
|
bunPrefix: string;
|
|
142
134
|
bunLoad: () => Promise<Bun.HTMLBundle>;
|
|
143
135
|
format: "html";
|
|
144
|
-
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, import("../../bun/BunServer.ts").BunServer>, Route.Route
|
|
136
|
+
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, Route.Request | import("../../bun/BunServer.ts").BunServer>, Route.Route<{
|
|
145
137
|
method: "GET";
|
|
146
138
|
format: "html";
|
|
147
|
-
}, {}, string, never, never>, Route.Route
|
|
139
|
+
}, {}, string, never, never>, Route.Route<{
|
|
148
140
|
method: "GET";
|
|
149
141
|
format: "sse";
|
|
150
142
|
}, {}, import("effect/Stream").Stream<string, never, never>, never, never>];
|
|
151
|
-
"/services": [Route.Route
|
|
143
|
+
"/services": [Route.Route<{
|
|
152
144
|
method: "*";
|
|
153
|
-
}, {}, unknown, never, never>, Route.Route
|
|
145
|
+
}, {}, unknown, never, never>, Route.Route<{
|
|
154
146
|
method: "*";
|
|
155
147
|
bunPrefix: string;
|
|
156
148
|
bunLoad: () => Promise<Bun.HTMLBundle>;
|
|
157
149
|
format: "html";
|
|
158
|
-
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, import("../../bun/BunServer.ts").BunServer>, Route.Route
|
|
150
|
+
}, {}, string, import("../../bun/BunRoute.ts").BunRouteError, Route.Request | import("../../bun/BunServer.ts").BunServer>, Route.Route<{
|
|
159
151
|
method: "GET";
|
|
160
152
|
format: "html";
|
|
161
153
|
}, {}, string, never, never>];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../src/studio/routes/tree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA
|
|
1
|
+
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../src/studio/routes/tree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcvC,wBAaE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "effect-start",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.35.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"files": [
|
|
6
6
|
"src/",
|
|
@@ -118,6 +118,7 @@
|
|
|
118
118
|
"bun": "./src/Unique.ts",
|
|
119
119
|
"default": "./dist/Unique.js"
|
|
120
120
|
},
|
|
121
|
+
"./dev": "./src/dev.d.ts",
|
|
121
122
|
"./_*": null,
|
|
122
123
|
"./assets.d.ts": "./src/assets.d.ts",
|
|
123
124
|
"./jsx-runtime": {
|
|
@@ -205,11 +206,11 @@
|
|
|
205
206
|
"postgres": "^3.4.8",
|
|
206
207
|
"tailwindcss": "^4.1.18",
|
|
207
208
|
"ts-morph": "^27.0.2",
|
|
208
|
-
"typescript": "^
|
|
209
|
+
"typescript": "^6.0.2"
|
|
209
210
|
},
|
|
210
211
|
"peerDependencies": {
|
|
211
212
|
"@libsql/client": ">=0.17.0",
|
|
212
|
-
"effect": "^3.
|
|
213
|
+
"effect": "^3.21.0",
|
|
213
214
|
"mssql": ">=12.2.0"
|
|
214
215
|
},
|
|
215
216
|
"peerDependenciesMeta": {
|
package/src/Entity.ts
CHANGED
|
@@ -20,7 +20,10 @@ function isBinary(v: unknown): v is Uint8Array | ArrayBuffer {
|
|
|
20
20
|
* Header keys are guaranteed to be lowercase.
|
|
21
21
|
*/
|
|
22
22
|
export type Headers = {
|
|
23
|
-
|
|
23
|
+
// `set-cookie` is the only header that supports multiple values (as an array),
|
|
24
|
+
// since it requires separate `Set-Cookie` headers per cookie (RFC 6265).
|
|
25
|
+
readonly "set-cookie"?: string | ReadonlyArray<string> | null
|
|
26
|
+
readonly [header: string]: string | ReadonlyArray<string> | null | undefined
|
|
24
27
|
}
|
|
25
28
|
|
|
26
29
|
export interface Entity<T = unknown, E = never> extends Effect.Effect<Entity<T, E>, E> {
|
|
@@ -48,8 +51,8 @@ export interface Entity<T = unknown, E = never> extends Effect.Effect<Entity<T,
|
|
|
48
51
|
: [T] extends [string | Uint8Array | ArrayBuffer]
|
|
49
52
|
? Effect.Effect<unknown, ParseResult.ParseError | E>
|
|
50
53
|
: [T] extends [Values.Json]
|
|
51
|
-
|
|
52
|
-
|
|
54
|
+
? Effect.Effect<T, ParseResult.ParseError | E>
|
|
55
|
+
: Effect.Effect<unknown, ParseResult.ParseError | E>
|
|
53
56
|
readonly schemaJson: <A, I, R>(
|
|
54
57
|
schema: Schema.Schema<A, I, R>,
|
|
55
58
|
) => Effect.Effect<A, ParseResult.ParseError | E, R>
|
|
@@ -303,6 +306,32 @@ export function effect<A, E, R>(body: Effect.Effect<Entity<A> | A, E, R>): Entit
|
|
|
303
306
|
return make(body) as unknown as Entity<A, E>
|
|
304
307
|
}
|
|
305
308
|
|
|
309
|
+
function mergeSetCookie(
|
|
310
|
+
existing: string | ReadonlyArray<string> | null | undefined,
|
|
311
|
+
incoming: string | ReadonlyArray<string> | null | undefined,
|
|
312
|
+
): string | ReadonlyArray<string> | undefined {
|
|
313
|
+
if (incoming == null) return existing ?? undefined
|
|
314
|
+
if (existing == null) return incoming
|
|
315
|
+
const a = Array.isArray(existing) ? existing : [existing]
|
|
316
|
+
const b = Array.isArray(incoming) ? incoming : [incoming]
|
|
317
|
+
return [...a, ...b]
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
export function merge<T, E>(entity: Entity<T, E>, options: Options): Entity<T, E> {
|
|
321
|
+
const headers: Headers = options.headers
|
|
322
|
+
? {
|
|
323
|
+
...entity.headers,
|
|
324
|
+
...options.headers,
|
|
325
|
+
"set-cookie": mergeSetCookie(entity.headers["set-cookie"], options.headers["set-cookie"]),
|
|
326
|
+
}
|
|
327
|
+
: entity.headers
|
|
328
|
+
return make(entity.body, {
|
|
329
|
+
headers,
|
|
330
|
+
status: options.status ?? entity.status,
|
|
331
|
+
url: options.url ?? entity.url,
|
|
332
|
+
}) as Entity<T, E>
|
|
333
|
+
}
|
|
334
|
+
|
|
306
335
|
export function resolve<A, E>(entity: Entity<A, E>): Effect.Effect<Entity<A, E>, E, never> {
|
|
307
336
|
const body = entity.body
|
|
308
337
|
if (Effect.isEffect(body)) {
|
|
@@ -322,7 +351,7 @@ export function resolve<A, E>(entity: Entity<A, E>): Effect.Effect<Entity<A, E>,
|
|
|
322
351
|
export function type(self: Entity): string {
|
|
323
352
|
const h = self.headers
|
|
324
353
|
if (h["content-type"]) {
|
|
325
|
-
return h["content-type"]
|
|
354
|
+
return h["content-type"] as string
|
|
326
355
|
}
|
|
327
356
|
const v = self.body
|
|
328
357
|
if (typeof v === "string") {
|
|
@@ -337,7 +366,7 @@ export function type(self: Entity): string {
|
|
|
337
366
|
export function length(self: Entity): number | undefined {
|
|
338
367
|
const h = self.headers
|
|
339
368
|
if (h["content-length"]) {
|
|
340
|
-
return parseInt(h["content-length"], 10)
|
|
369
|
+
return parseInt(h["content-length"] as string, 10)
|
|
341
370
|
}
|
|
342
371
|
const v = self.body
|
|
343
372
|
if (typeof v === "string") {
|
package/src/Fetch.ts
CHANGED
|
@@ -232,7 +232,7 @@ export function followRedirects(options?: { readonly maxRedirects?: number }): M
|
|
|
232
232
|
return entity
|
|
233
233
|
}
|
|
234
234
|
|
|
235
|
-
const location = entity.headers["location"]
|
|
235
|
+
const location = entity.headers["location"] as string | undefined
|
|
236
236
|
if (!location) {
|
|
237
237
|
return entity
|
|
238
238
|
}
|
package/src/FileRouterCodegen.ts
CHANGED
|
@@ -137,10 +137,10 @@ export function generateCode(fileRoutes: FileRouter.OrderedFileRoutes): string |
|
|
|
137
137
|
currentPath = parentPath || "/"
|
|
138
138
|
}
|
|
139
139
|
|
|
140
|
-
// Order:
|
|
140
|
+
// Order: layers from outermost to innermost, then route
|
|
141
141
|
const loaders: Array<string> = [
|
|
142
|
+
...allLayers.map((layer) => `() => import(".${layer.modulePath}")`),
|
|
142
143
|
`() => import(".${route.modulePath}")`,
|
|
143
|
-
...allLayers.reverse().map((layer) => `() => import(".${layer.modulePath}")`),
|
|
144
144
|
]
|
|
145
145
|
|
|
146
146
|
entries.push({ path, loaders })
|
|
@@ -159,12 +159,18 @@ export function generateCode(fileRoutes: FileRouter.OrderedFileRoutes): string |
|
|
|
159
159
|
.join(",\n")
|
|
160
160
|
|
|
161
161
|
return `/**
|
|
162
|
-
*
|
|
162
|
+
* Generated by effect-start. DO NOT EDIT.
|
|
163
163
|
*/
|
|
164
164
|
|
|
165
|
-
|
|
165
|
+
const routes = {
|
|
166
166
|
${routeEntries},
|
|
167
167
|
} satisfies import("effect-start/FileRouter").FileRoutes
|
|
168
|
+
|
|
169
|
+
export default routes
|
|
170
|
+
|
|
171
|
+
declare module "effect-start/dev" {
|
|
172
|
+
export interface Routes extends Omit<typeof import("./.server.ts").default, never> {}
|
|
173
|
+
}
|
|
168
174
|
`
|
|
169
175
|
}
|
|
170
176
|
|