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
package/src/RouteMount.ts
CHANGED
|
@@ -7,10 +7,7 @@ import type * as RouteBody from "./RouteBody.ts"
|
|
|
7
7
|
|
|
8
8
|
const RouteSetTypeId = "~effect-start/RouteSet" as const
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
type Module = typeof import("./RouteMount.ts")
|
|
12
|
-
|
|
13
|
-
export type Self = RouteMount.Builder | Module
|
|
10
|
+
export type Self = RouteMount.Builder<any, any> | typeof import("./RouteMount.ts")
|
|
14
11
|
|
|
15
12
|
export const use = makeMethodDescriber("*")
|
|
16
13
|
export const get = makeMethodDescriber("GET")
|
|
@@ -65,7 +62,7 @@ function makeMethodDescriber<M extends RouteMount.Method>(method: M): RouteMount
|
|
|
65
62
|
const itemDescriptor = Route.descriptor(item)
|
|
66
63
|
const newDescriptor = { method, ...itemDescriptor }
|
|
67
64
|
return Route.make(
|
|
68
|
-
(item as Route.Route
|
|
65
|
+
(item as Route.Route).handler as Route.Route.Handler<any, any, any, any>,
|
|
69
66
|
newDescriptor,
|
|
70
67
|
)
|
|
71
68
|
})
|
|
@@ -75,7 +72,7 @@ function makeMethodDescriber<M extends RouteMount.Method>(method: M): RouteMount
|
|
|
75
72
|
return describeMethod as RouteMount.Describer<M>
|
|
76
73
|
}
|
|
77
74
|
|
|
78
|
-
export type MountedRoute = Route.Route
|
|
75
|
+
export type MountedRoute = Route.Route<
|
|
79
76
|
{
|
|
80
77
|
method: RouteMount.Method
|
|
81
78
|
path: PathPattern.PathPattern
|
|
@@ -90,22 +87,43 @@ export type MountedRoute = Route.Route.Route<
|
|
|
90
87
|
export namespace RouteMount {
|
|
91
88
|
export type Method = "*" | Http.Method
|
|
92
89
|
|
|
93
|
-
export type MountSet = Route.RouteSet
|
|
90
|
+
export type MountSet = Route.RouteSet<{ method: Method }, {}, Route.Route.Tuple>
|
|
91
|
+
|
|
92
|
+
export type Builder<D extends {} = {}, I extends Route.Route.Tuple = []> = Route.RouteSet<
|
|
93
|
+
D,
|
|
94
|
+
{},
|
|
95
|
+
I
|
|
96
|
+
> &
|
|
97
|
+
(HasMethod<I> extends true ? {} : { use: Describer<"*"> }) & {
|
|
98
|
+
get: Describer<"GET">
|
|
99
|
+
post: Describer<"POST">
|
|
100
|
+
put: Describer<"PUT">
|
|
101
|
+
del: Describer<"DELETE">
|
|
102
|
+
patch: Describer<"PATCH">
|
|
103
|
+
head: Describer<"HEAD">
|
|
104
|
+
options: Describer<"OPTIONS">
|
|
105
|
+
}
|
|
94
106
|
|
|
95
|
-
|
|
96
|
-
|
|
107
|
+
type HasMethod<I extends Route.Route.Tuple> = I extends [
|
|
108
|
+
infer Head,
|
|
109
|
+
...infer Tail extends Route.Route.Tuple,
|
|
110
|
+
]
|
|
111
|
+
? Head extends Route.Route<{ method: infer M }, any, any, any, any>
|
|
112
|
+
? M extends Http.Method
|
|
113
|
+
? true
|
|
114
|
+
: HasMethod<Tail>
|
|
115
|
+
: HasMethod<Tail>
|
|
116
|
+
: false
|
|
97
117
|
|
|
98
|
-
export type EmptySet<M extends Method, B = {}> = Route.RouteSet
|
|
118
|
+
export type EmptySet<M extends Method, B = {}> = Route.RouteSet<{ method: M }, B, []>
|
|
99
119
|
|
|
100
120
|
export type Items<S> = S extends Builder<any, infer I> ? I : []
|
|
101
121
|
|
|
102
122
|
export type BuilderBindings<S> =
|
|
103
|
-
S extends Builder<any, infer I>
|
|
104
|
-
? Types.Simplify<WildcardBindings<I>> & { request: Request }
|
|
105
|
-
: { request: Request }
|
|
123
|
+
S extends Builder<any, infer I> ? Types.Simplify<WildcardBindings<I>> : {}
|
|
106
124
|
|
|
107
125
|
type WildcardBindingsItem<T> =
|
|
108
|
-
T extends Route.Route
|
|
126
|
+
T extends Route.Route<{ method: "*" }, infer B, any, any, any> ? B : {}
|
|
109
127
|
|
|
110
128
|
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (
|
|
111
129
|
k: infer I,
|
|
@@ -119,35 +137,24 @@ export namespace RouteMount {
|
|
|
119
137
|
}[number]
|
|
120
138
|
>
|
|
121
139
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
export type FlattenItems<M extends Method, B, I extends Route.Route.Tuple> = I extends [
|
|
125
|
-
Route.Route.Route<infer D, infer RB, infer A, infer E, infer R>,
|
|
140
|
+
export type FlattenItems<M extends Method, I extends Route.Route.Tuple> = I extends [
|
|
141
|
+
Route.Route<infer D, infer RB, infer A, infer E, infer R>,
|
|
126
142
|
...infer Tail extends Route.Route.Tuple,
|
|
127
143
|
]
|
|
128
|
-
? [
|
|
129
|
-
Route.Route.Route<
|
|
130
|
-
Types.Simplify<{ method: M } & D> & {},
|
|
131
|
-
Types.Simplify<Omit<B & RB, "request">>,
|
|
132
|
-
A,
|
|
133
|
-
E,
|
|
134
|
-
R
|
|
135
|
-
>,
|
|
136
|
-
...FlattenItems<M, Types.Simplify<B & RB>, Tail>,
|
|
137
|
-
]
|
|
144
|
+
? [Route.Route<Types.Simplify<{ method: M } & D> & {}, RB, A, E, R>, ...FlattenItems<M, Tail>]
|
|
138
145
|
: []
|
|
139
146
|
|
|
140
147
|
export interface Describer<M extends Method> {
|
|
141
148
|
<S extends Self, A extends Route.RouteSet.Any>(
|
|
142
149
|
this: S,
|
|
143
150
|
ab: (a: EmptySet<M, BuilderBindings<S>>) => A,
|
|
144
|
-
): Builder<{}, [...Items<S>, ...FlattenItems<M,
|
|
151
|
+
): Builder<{}, [...Items<S>, ...FlattenItems<M, Route.RouteSet.Items<A>>]>
|
|
145
152
|
|
|
146
153
|
<S extends Self, A extends Route.RouteSet.Any, B extends Route.RouteSet.Any>(
|
|
147
154
|
this: S,
|
|
148
155
|
ab: (a: EmptySet<M, BuilderBindings<S>>) => A,
|
|
149
156
|
bc: (b: A) => B,
|
|
150
|
-
): Builder<{}, [...Items<S>, ...FlattenItems<M,
|
|
157
|
+
): Builder<{}, [...Items<S>, ...FlattenItems<M, Route.RouteSet.Items<B>>]>
|
|
151
158
|
|
|
152
159
|
<
|
|
153
160
|
S extends Self,
|
|
@@ -159,7 +166,7 @@ export namespace RouteMount {
|
|
|
159
166
|
ab: (a: EmptySet<M, BuilderBindings<S>>) => A,
|
|
160
167
|
bc: (b: A) => B,
|
|
161
168
|
cd: (c: B) => C,
|
|
162
|
-
): Builder<{}, [...Items<S>, ...FlattenItems<M,
|
|
169
|
+
): Builder<{}, [...Items<S>, ...FlattenItems<M, Route.RouteSet.Items<C>>]>
|
|
163
170
|
|
|
164
171
|
<
|
|
165
172
|
S extends Self,
|
|
@@ -173,7 +180,7 @@ export namespace RouteMount {
|
|
|
173
180
|
bc: (b: A) => B,
|
|
174
181
|
cd: (c: B) => C,
|
|
175
182
|
de: (d: C) => D,
|
|
176
|
-
): Builder<{}, [...Items<S>, ...FlattenItems<M,
|
|
183
|
+
): Builder<{}, [...Items<S>, ...FlattenItems<M, Route.RouteSet.Items<D>>]>
|
|
177
184
|
|
|
178
185
|
<
|
|
179
186
|
S extends Self,
|
|
@@ -189,7 +196,7 @@ export namespace RouteMount {
|
|
|
189
196
|
cd: (c: B) => C,
|
|
190
197
|
de: (d: C) => D,
|
|
191
198
|
ef: (e: D) => E,
|
|
192
|
-
): Builder<{}, [...Items<S>, ...FlattenItems<M,
|
|
199
|
+
): Builder<{}, [...Items<S>, ...FlattenItems<M, Route.RouteSet.Items<E>>]>
|
|
193
200
|
|
|
194
201
|
<
|
|
195
202
|
S extends Self,
|
|
@@ -207,7 +214,7 @@ export namespace RouteMount {
|
|
|
207
214
|
de: (d: C) => D,
|
|
208
215
|
ef: (e: D) => E,
|
|
209
216
|
fg: (f: E) => F,
|
|
210
|
-
): Builder<{}, [...Items<S>, ...FlattenItems<M,
|
|
217
|
+
): Builder<{}, [...Items<S>, ...FlattenItems<M, Route.RouteSet.Items<F>>]>
|
|
211
218
|
|
|
212
219
|
<
|
|
213
220
|
S extends Self,
|
|
@@ -227,7 +234,7 @@ export namespace RouteMount {
|
|
|
227
234
|
ef: (e: D) => E,
|
|
228
235
|
fg: (f: E) => F,
|
|
229
236
|
gh: (g: F) => G,
|
|
230
|
-
): Builder<{}, [...Items<S>, ...FlattenItems<M,
|
|
237
|
+
): Builder<{}, [...Items<S>, ...FlattenItems<M, Route.RouteSet.Items<G>>]>
|
|
231
238
|
|
|
232
239
|
<
|
|
233
240
|
S extends Self,
|
|
@@ -249,7 +256,7 @@ export namespace RouteMount {
|
|
|
249
256
|
fg: (f: E) => F,
|
|
250
257
|
gh: (g: F) => G,
|
|
251
258
|
hi: (h: G) => H,
|
|
252
|
-
): Builder<{}, [...Items<S>, ...FlattenItems<M,
|
|
259
|
+
): Builder<{}, [...Items<S>, ...FlattenItems<M, Route.RouteSet.Items<H>>]>
|
|
253
260
|
|
|
254
261
|
<
|
|
255
262
|
S extends Self,
|
|
@@ -273,6 +280,6 @@ export namespace RouteMount {
|
|
|
273
280
|
gh: (g: F) => G,
|
|
274
281
|
hi: (h: G) => H,
|
|
275
282
|
ij: (i: H) => I,
|
|
276
|
-
): Builder<{}, [...Items<S>, ...FlattenItems<M,
|
|
283
|
+
): Builder<{}, [...Items<S>, ...FlattenItems<M, Route.RouteSet.Items<I>>]>
|
|
277
284
|
}
|
|
278
285
|
}
|