effect-start 0.23.1 → 0.26.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/package.json +18 -86
- package/src/Development.ts +3 -1
- package/src/Entity.ts +17 -0
- package/src/Fetch.ts +271 -0
- package/src/SqlIntrospect.ts +64 -70
- package/src/Start.ts +21 -24
- package/src/StartApp.ts +1 -1
- package/src/bun/BunServer.ts +42 -10
- package/src/hyper/HyperHtml.ts +0 -1
- package/src/sql/bun/index.ts +1 -1
- package/src/sql/index.ts +1 -0
- package/src/sql/libsql/index.ts +173 -0
- package/src/sql/libsql/libsql.d.ts +39 -0
- package/src/sql/mssql/index.ts +1 -1
- package/dist/BlobStore.d.ts +0 -80
- package/dist/BlobStore.js +0 -19
- package/dist/ChildProcess.d.ts +0 -60
- package/dist/ChildProcess.js +0 -30
- package/dist/Commander.d.ts +0 -100
- package/dist/Commander.js +0 -326
- package/dist/ContentNegotiation.d.ts +0 -12
- package/dist/ContentNegotiation.js +0 -359
- package/dist/Cookies.d.ts +0 -47
- package/dist/Cookies.js +0 -302
- package/dist/Development.d.ts +0 -39
- package/dist/Development.js +0 -58
- package/dist/Effectify.d.ts +0 -209
- package/dist/Effectify.js +0 -19
- package/dist/Entity.d.ts +0 -47
- package/dist/Entity.js +0 -224
- package/dist/FilePathPattern.d.ts +0 -29
- package/dist/FilePathPattern.js +0 -86
- package/dist/FileRouter.d.ts +0 -56
- package/dist/FileRouter.js +0 -148
- package/dist/FileRouterCodegen.d.ts +0 -18
- package/dist/FileRouterCodegen.js +0 -227
- package/dist/FileRouterPattern.d.ts +0 -9
- package/dist/FileRouterPattern.js +0 -35
- package/dist/FileSystem.d.ts +0 -158
- package/dist/FileSystem.js +0 -70
- package/dist/Http.d.ts +0 -37
- package/dist/Http.js +0 -88
- package/dist/HttpAppExtra.d.ts +0 -7
- package/dist/HttpAppExtra.js +0 -320
- package/dist/HttpUtils.d.ts +0 -3
- package/dist/HttpUtils.js +0 -11
- package/dist/PathPattern.d.ts +0 -134
- package/dist/PathPattern.js +0 -413
- package/dist/PlatformError.d.ts +0 -38
- package/dist/PlatformError.js +0 -25
- package/dist/PlatformRuntime.d.ts +0 -27
- package/dist/PlatformRuntime.js +0 -46
- package/dist/Route.d.ts +0 -97
- package/dist/Route.js +0 -100
- package/dist/RouteBody.d.ts +0 -47
- package/dist/RouteBody.js +0 -67
- package/dist/RouteError.d.ts +0 -98
- package/dist/RouteError.js +0 -55
- package/dist/RouteHook.d.ts +0 -12
- package/dist/RouteHook.js +0 -40
- package/dist/RouteHttp.d.ts +0 -21
- package/dist/RouteHttp.js +0 -258
- package/dist/RouteHttpTracer.d.ts +0 -10
- package/dist/RouteHttpTracer.js +0 -62
- package/dist/RouteMount.d.ts +0 -86
- package/dist/RouteMount.js +0 -63
- package/dist/RouteSchema.d.ts +0 -86
- package/dist/RouteSchema.js +0 -188
- package/dist/RouteSse.d.ts +0 -21
- package/dist/RouteSse.js +0 -79
- package/dist/RouteTree.d.ts +0 -57
- package/dist/RouteTree.js +0 -93
- package/dist/RouteTrie.d.ts +0 -20
- package/dist/RouteTrie.js +0 -152
- package/dist/RouterPattern.d.ts +0 -118
- package/dist/RouterPattern.js +0 -269
- package/dist/SchemaExtra.d.ts +0 -7
- package/dist/SchemaExtra.js +0 -74
- package/dist/Socket.d.ts +0 -27
- package/dist/Socket.js +0 -29
- package/dist/Sql.d.ts +0 -34
- package/dist/Sql.js +0 -5
- package/dist/SqlIntrospect.d.ts +0 -91
- package/dist/SqlIntrospect.js +0 -466
- package/dist/Start.d.ts +0 -44
- package/dist/Start.js +0 -49
- package/dist/StartApp.d.ts +0 -19
- package/dist/StartApp.js +0 -21
- package/dist/StreamExtra.d.ts +0 -28
- package/dist/StreamExtra.js +0 -100
- package/dist/System.d.ts +0 -7
- package/dist/System.js +0 -22
- package/dist/TuplePathPattern.d.ts +0 -9
- package/dist/TuplePathPattern.js +0 -68
- package/dist/Unique.d.ts +0 -50
- package/dist/Unique.js +0 -187
- package/dist/Values.d.ts +0 -27
- package/dist/Values.js +0 -36
- package/dist/bun/BunBlobStoreDisk.d.ts +0 -6
- package/dist/bun/BunBlobStoreDisk.js +0 -116
- package/dist/bun/BunBlobStoreS3.d.ts +0 -11
- package/dist/bun/BunBlobStoreS3.js +0 -89
- package/dist/bun/BunBlobWatcherDisk.d.ts +0 -6
- package/dist/bun/BunBlobWatcherDisk.js +0 -60
- package/dist/bun/BunBlobWatcherQueue.d.ts +0 -6
- package/dist/bun/BunBlobWatcherQueue.js +0 -17
- package/dist/bun/BunBundle.d.ts +0 -11
- package/dist/bun/BunBundle.js +0 -137
- package/dist/bun/BunChildProcessSpawner.d.ts +0 -3
- package/dist/bun/BunChildProcessSpawner.js +0 -103
- package/dist/bun/BunHttpServer.d.ts +0 -44
- package/dist/bun/BunHttpServer.js +0 -186
- package/dist/bun/BunHttpServer_web.d.ts +0 -60
- package/dist/bun/BunHttpServer_web.js +0 -252
- package/dist/bun/BunImportTrackerPlugin.d.ts +0 -13
- package/dist/bun/BunImportTrackerPlugin.js +0 -69
- package/dist/bun/BunPlatformHttpServer.d.ts +0 -10
- package/dist/bun/BunPlatformHttpServer.js +0 -53
- package/dist/bun/BunRoute.d.ts +0 -48
- package/dist/bun/BunRoute.js +0 -121
- package/dist/bun/BunRuntime.d.ts +0 -2
- package/dist/bun/BunRuntime.js +0 -31
- package/dist/bun/BunServer.d.ts +0 -40
- package/dist/bun/BunServer.js +0 -157
- package/dist/bun/BunServerRequest.d.ts +0 -60
- package/dist/bun/BunServerRequest.js +0 -252
- package/dist/bun/BunSql.d.ts +0 -4
- package/dist/bun/BunSql.js +0 -81
- package/dist/bun/BunVirtualFilesPlugin.d.ts +0 -4
- package/dist/bun/BunVirtualFilesPlugin.js +0 -40
- package/dist/bun/_BunEnhancedResolve.d.ts +0 -45
- package/dist/bun/_BunEnhancedResolve.js +0 -102
- package/dist/bun/index.d.ts +0 -5
- package/dist/bun/index.js +0 -5
- package/dist/bundler/Bundle.d.ts +0 -61
- package/dist/bundler/Bundle.js +0 -48
- package/dist/bundler/BundleFiles.d.ts +0 -13
- package/dist/bundler/BundleFiles.js +0 -96
- package/dist/bundler/BundleHttp.d.ts +0 -45
- package/dist/bundler/BundleHttp.js +0 -176
- package/dist/bundler/BundleRoute.d.ts +0 -27
- package/dist/bundler/BundleRoute.js +0 -51
- package/dist/client/Overlay.d.ts +0 -2
- package/dist/client/Overlay.js +0 -32
- package/dist/client/ScrollState.d.ts +0 -6
- package/dist/client/ScrollState.js +0 -94
- package/dist/client/index.d.ts +0 -6
- package/dist/client/index.js +0 -79
- package/dist/console/Console.d.ts +0 -6
- package/dist/console/Console.js +0 -26
- package/dist/console/ConsoleErrors.d.ts +0 -3
- package/dist/console/ConsoleErrors.js +0 -200
- package/dist/console/ConsoleLogger.d.ts +0 -3
- package/dist/console/ConsoleLogger.js +0 -47
- package/dist/console/ConsoleMetrics.d.ts +0 -3
- package/dist/console/ConsoleMetrics.js +0 -61
- package/dist/console/ConsoleProcess.d.ts +0 -3
- package/dist/console/ConsoleProcess.js +0 -49
- package/dist/console/ConsoleStore.d.ts +0 -144
- package/dist/console/ConsoleStore.js +0 -61
- package/dist/console/ConsoleTracer.d.ts +0 -3
- package/dist/console/ConsoleTracer.js +0 -94
- package/dist/console/Simulation.d.ts +0 -2
- package/dist/console/Simulation.js +0 -633
- package/dist/console/index.d.ts +0 -3
- package/dist/console/index.js +0 -3
- package/dist/console/routes/errors/route.d.ts +0 -10
- package/dist/console/routes/errors/route.js +0 -47
- package/dist/console/routes/fiberDetail.d.ts +0 -16
- package/dist/console/routes/fiberDetail.js +0 -38
- package/dist/console/routes/fibers/route.d.ts +0 -10
- package/dist/console/routes/fibers/route.js +0 -19
- package/dist/console/routes/git/route.d.ts +0 -11
- package/dist/console/routes/git/route.js +0 -33
- package/dist/console/routes/layout.d.ts +0 -9
- package/dist/console/routes/layout.js +0 -3
- package/dist/console/routes/logs/route.d.ts +0 -10
- package/dist/console/routes/logs/route.js +0 -32
- package/dist/console/routes/metrics/route.d.ts +0 -10
- package/dist/console/routes/metrics/route.js +0 -17
- package/dist/console/routes/route.d.ts +0 -6
- package/dist/console/routes/route.js +0 -5
- package/dist/console/routes/routes/route.d.ts +0 -6
- package/dist/console/routes/routes/route.js +0 -20
- package/dist/console/routes/services/route.d.ts +0 -6
- package/dist/console/routes/services/route.js +0 -12
- package/dist/console/routes/system/route.d.ts +0 -10
- package/dist/console/routes/system/route.js +0 -18
- package/dist/console/routes/traceDetail.d.ts +0 -16
- package/dist/console/routes/traceDetail.js +0 -14
- package/dist/console/routes/traces/route.d.ts +0 -10
- package/dist/console/routes/traces/route.js +0 -39
- package/dist/console/routes/tree.d.ts +0 -153
- package/dist/console/routes/tree.js +0 -29
- package/dist/console/ui/Errors.d.ts +0 -4
- package/dist/console/ui/Errors.js +0 -15
- package/dist/console/ui/Fibers.d.ts +0 -24
- package/dist/console/ui/Fibers.js +0 -121
- package/dist/console/ui/Git.d.ts +0 -20
- package/dist/console/ui/Git.js +0 -95
- package/dist/console/ui/Logs.d.ts +0 -4
- package/dist/console/ui/Logs.js +0 -25
- package/dist/console/ui/Metrics.d.ts +0 -4
- package/dist/console/ui/Metrics.js +0 -26
- package/dist/console/ui/Routes.d.ts +0 -8
- package/dist/console/ui/Routes.js +0 -70
- package/dist/console/ui/Services.d.ts +0 -10
- package/dist/console/ui/Services.js +0 -246
- package/dist/console/ui/Shell.d.ts +0 -10
- package/dist/console/ui/Shell.js +0 -7
- package/dist/console/ui/System.d.ts +0 -4
- package/dist/console/ui/System.js +0 -35
- package/dist/console/ui/Traces.d.ts +0 -12
- package/dist/console/ui/Traces.js +0 -179
- package/dist/datastar/actions/fetch.d.ts +0 -30
- package/dist/datastar/actions/fetch.js +0 -403
- package/dist/datastar/actions/peek.d.ts +0 -1
- package/dist/datastar/actions/peek.js +0 -13
- package/dist/datastar/actions/setAll.d.ts +0 -1
- package/dist/datastar/actions/setAll.js +0 -12
- package/dist/datastar/actions/toggleAll.d.ts +0 -1
- package/dist/datastar/actions/toggleAll.js +0 -12
- package/dist/datastar/attributes/attr.d.ts +0 -1
- package/dist/datastar/attributes/attr.js +0 -48
- package/dist/datastar/attributes/bind.d.ts +0 -1
- package/dist/datastar/attributes/bind.js +0 -175
- package/dist/datastar/attributes/class.d.ts +0 -1
- package/dist/datastar/attributes/class.js +0 -47
- package/dist/datastar/attributes/computed.d.ts +0 -1
- package/dist/datastar/attributes/computed.js +0 -26
- package/dist/datastar/attributes/effect.d.ts +0 -1
- package/dist/datastar/attributes/effect.js +0 -9
- package/dist/datastar/attributes/indicator.d.ts +0 -1
- package/dist/datastar/attributes/indicator.js +0 -30
- package/dist/datastar/attributes/init.d.ts +0 -1
- package/dist/datastar/attributes/init.js +0 -26
- package/dist/datastar/attributes/jsonSignals.d.ts +0 -1
- package/dist/datastar/attributes/jsonSignals.js +0 -30
- package/dist/datastar/attributes/on.d.ts +0 -1
- package/dist/datastar/attributes/on.js +0 -78
- package/dist/datastar/attributes/onIntersect.d.ts +0 -1
- package/dist/datastar/attributes/onIntersect.js +0 -53
- package/dist/datastar/attributes/onInterval.d.ts +0 -1
- package/dist/datastar/attributes/onInterval.js +0 -30
- package/dist/datastar/attributes/onSignalPatch.d.ts +0 -1
- package/dist/datastar/attributes/onSignalPatch.js +0 -42
- package/dist/datastar/attributes/ref.d.ts +0 -1
- package/dist/datastar/attributes/ref.js +0 -10
- package/dist/datastar/attributes/show.d.ts +0 -1
- package/dist/datastar/attributes/show.js +0 -31
- package/dist/datastar/attributes/signals.d.ts +0 -1
- package/dist/datastar/attributes/signals.js +0 -17
- package/dist/datastar/attributes/style.d.ts +0 -1
- package/dist/datastar/attributes/style.js +0 -50
- package/dist/datastar/attributes/text.d.ts +0 -1
- package/dist/datastar/attributes/text.js +0 -26
- package/dist/datastar/engine.d.ts +0 -162
- package/dist/datastar/engine.js +0 -999
- package/dist/datastar/happydom.d.ts +0 -1
- package/dist/datastar/happydom.js +0 -8
- package/dist/datastar/index.d.ts +0 -24
- package/dist/datastar/index.js +0 -24
- package/dist/datastar/load.d.ts +0 -24
- package/dist/datastar/load.js +0 -24
- package/dist/datastar/utils.d.ts +0 -51
- package/dist/datastar/utils.js +0 -202
- package/dist/datastar/watchers/patchElements.d.ts +0 -1
- package/dist/datastar/watchers/patchElements.js +0 -399
- package/dist/datastar/watchers/patchSignals.d.ts +0 -1
- package/dist/datastar/watchers/patchSignals.js +0 -14
- package/dist/experimental/EncryptedCookies.d.ts +0 -48
- package/dist/experimental/EncryptedCookies.js +0 -212
- package/dist/experimental/SseHttpResponse.d.ts +0 -7
- package/dist/experimental/SseHttpResponse.js +0 -28
- package/dist/experimental/index.d.ts +0 -1
- package/dist/experimental/index.js +0 -1
- package/dist/hyper/Hyper.d.ts +0 -25
- package/dist/hyper/Hyper.js +0 -23
- package/dist/hyper/HyperHtml.d.ts +0 -23
- package/dist/hyper/HyperHtml.js +0 -150
- package/dist/hyper/HyperHtml.test.d.ts +0 -1
- package/dist/hyper/HyperHtml.test.js +0 -197
- package/dist/hyper/HyperNode.d.ts +0 -14
- package/dist/hyper/HyperNode.js +0 -11
- package/dist/hyper/HyperRoute.d.ts +0 -8
- package/dist/hyper/HyperRoute.js +0 -32
- package/dist/hyper/HyperRoute.test.d.ts +0 -1
- package/dist/hyper/HyperRoute.test.js +0 -83
- package/dist/hyper/html.d.ts +0 -11
- package/dist/hyper/html.js +0 -30
- package/dist/hyper/index.d.ts +0 -6
- package/dist/hyper/index.js +0 -5
- package/dist/hyper/jsx-runtime.d.ts +0 -7
- package/dist/hyper/jsx-runtime.js +0 -8
- package/dist/index.d.ts +0 -8
- package/dist/index.js +0 -8
- package/dist/inference_check.d.ts +0 -1
- package/dist/inference_check.js +0 -15
- package/dist/lint/plugin.d.ts +0 -86
- package/dist/lint/plugin.js +0 -341
- package/dist/middlewares/BasicAuthMiddleware.d.ts +0 -8
- package/dist/middlewares/BasicAuthMiddleware.js +0 -22
- package/dist/middlewares/index.d.ts +0 -1
- package/dist/middlewares/index.js +0 -1
- package/dist/node/Effectify.d.ts +0 -209
- package/dist/node/Effectify.js +0 -19
- package/dist/node/FileSystem.d.ts +0 -7
- package/dist/node/FileSystem.js +0 -420
- package/dist/node/NodeFileSystem.d.ts +0 -7
- package/dist/node/NodeFileSystem.js +0 -410
- package/dist/node/NodeUtils.d.ts +0 -2
- package/dist/node/NodeUtils.js +0 -20
- package/dist/node/PlatformError.d.ts +0 -46
- package/dist/node/PlatformError.js +0 -43
- package/dist/node/Utils.d.ts +0 -1
- package/dist/node/Utils.js +0 -19
- package/dist/repro_fail.d.ts +0 -1
- package/dist/repro_fail.js +0 -14
- package/dist/sql/bun/index.d.ts +0 -3
- package/dist/sql/bun/index.js +0 -75
- package/dist/sql/mssql/docker.d.ts +0 -2
- package/dist/sql/mssql/docker.js +0 -67
- package/dist/sql/mssql/index.d.ts +0 -21
- package/dist/sql/mssql/index.js +0 -113
- package/dist/testing/TestHttpClient.d.ts +0 -13
- package/dist/testing/TestHttpClient.js +0 -68
- package/dist/testing/TestLogger.d.ts +0 -13
- package/dist/testing/TestLogger.js +0 -32
- package/dist/testing/index.d.ts +0 -2
- package/dist/testing/index.js +0 -2
- package/dist/testing/utils.d.ts +0 -9
- package/dist/testing/utils.js +0 -39
- package/dist/x/cloudflare/CloudflareTunnel.d.ts +0 -10
- package/dist/x/cloudflare/CloudflareTunnel.js +0 -30
- package/dist/x/cloudflare/index.d.ts +0 -1
- package/dist/x/cloudflare/index.js +0 -1
- package/dist/x/datastar/Datastar.d.ts +0 -6
- package/dist/x/datastar/Datastar.js +0 -47
- package/dist/x/datastar/index.d.ts +0 -1
- package/dist/x/datastar/index.js +0 -1
- package/dist/x/tailscale/TailscaleTunnel.d.ts +0 -15
- package/dist/x/tailscale/TailscaleTunnel.js +0 -68
- package/dist/x/tailscale/index.d.ts +0 -1
- package/dist/x/tailscale/index.js +0 -1
- package/dist/x/tailwind/TailwindPlugin.d.ts +0 -23
- package/dist/x/tailwind/TailwindPlugin.js +0 -219
- package/dist/x/tailwind/compile.d.ts +0 -19
- package/dist/x/tailwind/compile.js +0 -154
- package/dist/x/tailwind/plugin.d.ts +0 -2
- package/dist/x/tailwind/plugin.js +0 -15
- /package/src/{Sql.ts → sql/Sql.ts} +0 -0
package/dist/hyper/index.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export * as Hyper from "./Hyper.ts";
|
|
2
|
-
export { html } from "./html.ts";
|
|
3
|
-
export type { HtmlString, HtmlValue } from "./html.ts";
|
|
4
|
-
export * as HyperHtml from "./HyperHtml.ts";
|
|
5
|
-
export * as HyperNode from "./HyperNode.ts";
|
|
6
|
-
export * as HyperRoute from "./HyperRoute.ts";
|
package/dist/hyper/index.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import * as HyperNode from "./HyperNode.ts";
|
|
2
|
-
import type { JSX } from "./jsx.d.ts";
|
|
3
|
-
declare function Fragment(props: {
|
|
4
|
-
children: JSX.Element;
|
|
5
|
-
}): HyperNode.HyperNode;
|
|
6
|
-
declare function jsx<T extends HyperNode.Type>(type: T, props: T extends string ? HyperNode.Props : T extends (props: infer P) => any ? P : never): HyperNode.HyperNode;
|
|
7
|
-
export { Fragment, type JSX, jsx, jsx as jsxDEV, jsx as jsxs };
|
package/dist/index.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export * as Bundle from "./bundler/Bundle.ts";
|
|
2
|
-
export * as Development from "./Development.ts";
|
|
3
|
-
export * as Entity from "./Entity.ts";
|
|
4
|
-
export * as FileRouter from "./FileRouter.ts";
|
|
5
|
-
export * as Route from "./Route.ts";
|
|
6
|
-
export * as Start from "./Start.ts";
|
|
7
|
-
export * as System from "./System.ts";
|
|
8
|
-
export * as Unique from "./Unique.ts";
|
package/dist/index.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export * as Bundle from "./bundler/Bundle.js";
|
|
2
|
-
export * as Development from "./Development.js";
|
|
3
|
-
export * as Entity from "./Entity.js";
|
|
4
|
-
export * as FileRouter from "./FileRouter.js";
|
|
5
|
-
export * as Route from "./Route.js";
|
|
6
|
-
export * as Start from "./Start.js";
|
|
7
|
-
export * as System from "./System.js";
|
|
8
|
-
export * as Unique from "./Unique.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/inference_check.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Effect, Context } from "effect";
|
|
2
|
-
import * as Route from "./RouteBody";
|
|
3
|
-
const ServiceA = Context.GenericTag("ServiceA");
|
|
4
|
-
const ServiceB = Context.GenericTag("ServiceB");
|
|
5
|
-
const handler = function* () {
|
|
6
|
-
yield* ServiceA;
|
|
7
|
-
yield* ServiceB;
|
|
8
|
-
return "ok";
|
|
9
|
-
};
|
|
10
|
-
// Check 2: What does 'handle' infer?
|
|
11
|
-
const resultHandler = Route.handle(handler);
|
|
12
|
-
// Let's see if we can provide ServiceA and ServiceB and get a runnable effect (R=never)
|
|
13
|
-
const provided = Effect.provideService(Effect.provideService(resultHandler({}, () => null), ServiceA, { status: 200 }), ServiceB, { status: 200 });
|
|
14
|
-
const runnable = (e) => { };
|
|
15
|
-
runnable(provided);
|
package/dist/lint/plugin.d.ts
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
declare namespace _default {
|
|
2
|
-
namespace meta {
|
|
3
|
-
let name: string;
|
|
4
|
-
let version: string;
|
|
5
|
-
}
|
|
6
|
-
let rules: {
|
|
7
|
-
"prefer-namespace-import": {
|
|
8
|
-
meta: {
|
|
9
|
-
type: string;
|
|
10
|
-
docs: {
|
|
11
|
-
description: string;
|
|
12
|
-
};
|
|
13
|
-
fixable: string;
|
|
14
|
-
hasSuggestions: boolean;
|
|
15
|
-
schema: never[];
|
|
16
|
-
messages: {
|
|
17
|
-
preferNamespace: string;
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
create(context: any): {
|
|
21
|
-
ImportDeclaration(node: any): void;
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
"test-space-around": {
|
|
25
|
-
meta: {
|
|
26
|
-
type: string;
|
|
27
|
-
docs: {
|
|
28
|
-
description: string;
|
|
29
|
-
};
|
|
30
|
-
fixable: string;
|
|
31
|
-
schema: never[];
|
|
32
|
-
messages: {
|
|
33
|
-
requireBlankBefore: string;
|
|
34
|
-
requireBlankAfter: string;
|
|
35
|
-
};
|
|
36
|
-
};
|
|
37
|
-
create(context: any): {
|
|
38
|
-
Program?: undefined;
|
|
39
|
-
BlockStatement?: undefined;
|
|
40
|
-
} | {
|
|
41
|
-
Program(node: any): void;
|
|
42
|
-
BlockStatement(node: any): void;
|
|
43
|
-
};
|
|
44
|
-
};
|
|
45
|
-
"export-default-before-functions": {
|
|
46
|
-
meta: {
|
|
47
|
-
type: string;
|
|
48
|
-
docs: {
|
|
49
|
-
description: string;
|
|
50
|
-
};
|
|
51
|
-
schema: never[];
|
|
52
|
-
messages: {
|
|
53
|
-
defaultAfterFunction: string;
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
create(context: any): {
|
|
57
|
-
Program(node: any): void;
|
|
58
|
-
};
|
|
59
|
-
};
|
|
60
|
-
"test-assertion-newline": {
|
|
61
|
-
meta: {
|
|
62
|
-
type: string;
|
|
63
|
-
docs: {
|
|
64
|
-
description: string;
|
|
65
|
-
};
|
|
66
|
-
fixable: string;
|
|
67
|
-
schema: never[];
|
|
68
|
-
messages: {
|
|
69
|
-
requireNewline: string;
|
|
70
|
-
requireBlankBefore: string;
|
|
71
|
-
requireBlankAfter: string;
|
|
72
|
-
};
|
|
73
|
-
};
|
|
74
|
-
create(context: any): {
|
|
75
|
-
ExpressionStatement?: undefined;
|
|
76
|
-
Program?: undefined;
|
|
77
|
-
BlockStatement?: undefined;
|
|
78
|
-
} | {
|
|
79
|
-
ExpressionStatement(node: any): void;
|
|
80
|
-
Program(node: any): void;
|
|
81
|
-
BlockStatement(node: any): void;
|
|
82
|
-
};
|
|
83
|
-
};
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
export default _default;
|
package/dist/lint/plugin.js
DELETED
|
@@ -1,341 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @see https://oxc.rs/docs/guide/usage/linter/js-plugins.html#using-js-plugins
|
|
3
|
-
*/
|
|
4
|
-
const forceNamespace = new Set(["bun:test"]);
|
|
5
|
-
export default {
|
|
6
|
-
meta: {
|
|
7
|
-
name: "effect-start",
|
|
8
|
-
version: "0.1.0",
|
|
9
|
-
},
|
|
10
|
-
rules: {
|
|
11
|
-
"prefer-namespace-import": {
|
|
12
|
-
meta: {
|
|
13
|
-
type: "suggestion",
|
|
14
|
-
docs: {
|
|
15
|
-
description: "Enforce namespace imports for modules with capitalized base names or specific forced modules",
|
|
16
|
-
},
|
|
17
|
-
fixable: "code",
|
|
18
|
-
hasSuggestions: true,
|
|
19
|
-
schema: [],
|
|
20
|
-
messages: {
|
|
21
|
-
preferNamespace: 'Use namespace import for module "{{source}}": import {{typePrefix}}* as {{baseName}} from "{{source}}"',
|
|
22
|
-
},
|
|
23
|
-
},
|
|
24
|
-
create(context) {
|
|
25
|
-
return {
|
|
26
|
-
ImportDeclaration(node) {
|
|
27
|
-
const source = node.source.value;
|
|
28
|
-
if (typeof source !== "string")
|
|
29
|
-
return;
|
|
30
|
-
const baseName = getBaseName(source);
|
|
31
|
-
if (!baseName)
|
|
32
|
-
return;
|
|
33
|
-
const forced = forceNamespace.has(source);
|
|
34
|
-
if (!forced && !isCapitalized(baseName))
|
|
35
|
-
return;
|
|
36
|
-
// Already a namespace import (with or without type-only)
|
|
37
|
-
if (node.specifiers.length === 1 &&
|
|
38
|
-
node.specifiers[0].type === "ImportNamespaceSpecifier") {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
// Skip if there are no specifiers (side-effect import)
|
|
42
|
-
if (node.specifiers.length === 0)
|
|
43
|
-
return;
|
|
44
|
-
// Skip if it's only a default import (not applicable for forced modules)
|
|
45
|
-
if (!forced) {
|
|
46
|
-
const hasNamedImports = node.specifiers.some((s) => s.type === "ImportSpecifier");
|
|
47
|
-
if (!hasNamedImports)
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
const typePrefix = node.importKind === "type" ? "type " : "";
|
|
51
|
-
context.report({
|
|
52
|
-
node,
|
|
53
|
-
messageId: "preferNamespace",
|
|
54
|
-
data: { source, baseName, typePrefix },
|
|
55
|
-
fix(fixer) {
|
|
56
|
-
return fixer.replaceText(node, `import ${typePrefix}* as ${baseName} from "${source}"`);
|
|
57
|
-
},
|
|
58
|
-
});
|
|
59
|
-
},
|
|
60
|
-
};
|
|
61
|
-
},
|
|
62
|
-
},
|
|
63
|
-
"test-space-around": {
|
|
64
|
-
meta: {
|
|
65
|
-
type: "layout",
|
|
66
|
-
docs: {
|
|
67
|
-
description: "Enforce blank lines around test calls (test.describe, test.it, etc.)",
|
|
68
|
-
},
|
|
69
|
-
fixable: "whitespace",
|
|
70
|
-
schema: [],
|
|
71
|
-
messages: {
|
|
72
|
-
requireBlankBefore: "Test call should be preceded by a blank line",
|
|
73
|
-
requireBlankAfter: "Test call should be followed by a blank line",
|
|
74
|
-
},
|
|
75
|
-
},
|
|
76
|
-
create(context) {
|
|
77
|
-
const filename = context.filename || context.getFilename();
|
|
78
|
-
if (!filename.endsWith(".test.ts") && !filename.endsWith(".test.tsx")) {
|
|
79
|
-
return {};
|
|
80
|
-
}
|
|
81
|
-
function isTestCall(node) {
|
|
82
|
-
return (node &&
|
|
83
|
-
node.type === "ExpressionStatement" &&
|
|
84
|
-
node.expression.type === "CallExpression" &&
|
|
85
|
-
node.expression.callee.type === "MemberExpression" &&
|
|
86
|
-
node.expression.callee.object.type === "Identifier" &&
|
|
87
|
-
node.expression.callee.object.name === "test");
|
|
88
|
-
}
|
|
89
|
-
function checkBlankLines(siblings) {
|
|
90
|
-
const sourceCode = context.sourceCode || context.getSourceCode();
|
|
91
|
-
for (let i = 0; i < siblings.length; i++) {
|
|
92
|
-
const node = siblings[i];
|
|
93
|
-
if (!isTestCall(node))
|
|
94
|
-
continue;
|
|
95
|
-
const prev = siblings[i - 1];
|
|
96
|
-
const next = siblings[i + 1];
|
|
97
|
-
if (prev) {
|
|
98
|
-
if (node.loc.start.line - prev.loc.end.line < 2) {
|
|
99
|
-
context.report({
|
|
100
|
-
node,
|
|
101
|
-
messageId: "requireBlankBefore",
|
|
102
|
-
fix(fixer) {
|
|
103
|
-
return fixer.insertTextAfter(sourceCode.getLastToken(prev), "\n");
|
|
104
|
-
},
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
if (next) {
|
|
109
|
-
if (next.loc.start.line - node.loc.end.line < 2) {
|
|
110
|
-
context.report({
|
|
111
|
-
node,
|
|
112
|
-
messageId: "requireBlankAfter",
|
|
113
|
-
fix(fixer) {
|
|
114
|
-
return fixer.insertTextAfter(sourceCode.getLastToken(node), "\n");
|
|
115
|
-
},
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
return {
|
|
122
|
-
Program(node) {
|
|
123
|
-
checkBlankLines(node.body);
|
|
124
|
-
},
|
|
125
|
-
BlockStatement(node) {
|
|
126
|
-
checkBlankLines(node.body);
|
|
127
|
-
},
|
|
128
|
-
};
|
|
129
|
-
},
|
|
130
|
-
},
|
|
131
|
-
// this doens't work reliably and may cause runtime errors
|
|
132
|
-
"export-default-before-functions": {
|
|
133
|
-
meta: {
|
|
134
|
-
type: "suggestion",
|
|
135
|
-
docs: {
|
|
136
|
-
description: "Enforce export default appears before any function declarations",
|
|
137
|
-
},
|
|
138
|
-
schema: [],
|
|
139
|
-
messages: {
|
|
140
|
-
defaultAfterFunction: "export default should appear before function declarations",
|
|
141
|
-
},
|
|
142
|
-
},
|
|
143
|
-
create(context) {
|
|
144
|
-
return {
|
|
145
|
-
Program(node) {
|
|
146
|
-
let seenFunction = false;
|
|
147
|
-
for (const stmt of node.body) {
|
|
148
|
-
if (!seenFunction && isFunction(stmt)) {
|
|
149
|
-
seenFunction = true;
|
|
150
|
-
}
|
|
151
|
-
if (seenFunction && stmt.type === "ExportDefaultDeclaration") {
|
|
152
|
-
context.report({
|
|
153
|
-
node: stmt,
|
|
154
|
-
messageId: "defaultAfterFunction",
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
},
|
|
159
|
-
};
|
|
160
|
-
},
|
|
161
|
-
},
|
|
162
|
-
"test-assertion-newline": {
|
|
163
|
-
meta: {
|
|
164
|
-
type: "layout",
|
|
165
|
-
docs: {
|
|
166
|
-
description: "Enforce newlines between chained test assertion methods (test.expect().toBe())",
|
|
167
|
-
},
|
|
168
|
-
fixable: "whitespace",
|
|
169
|
-
schema: [],
|
|
170
|
-
messages: {
|
|
171
|
-
requireNewline: "Each chained method in a test assertion should be on its own line",
|
|
172
|
-
requireBlankBefore: "Test assertion should be preceded by an empty line (unless preceded by another assertion)",
|
|
173
|
-
requireBlankAfter: "Test assertion should be followed by an empty line (unless followed by another assertion)",
|
|
174
|
-
},
|
|
175
|
-
},
|
|
176
|
-
create(context) {
|
|
177
|
-
const filename = context.filename || context.getFilename();
|
|
178
|
-
if (!filename.endsWith(".test.ts") && !filename.endsWith(".test.tsx")) {
|
|
179
|
-
return {};
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Check if a call expression is rooted in test.expect or test.expectTypeOf
|
|
183
|
-
*/
|
|
184
|
-
function isTestAssertionChain(node) {
|
|
185
|
-
let current = node;
|
|
186
|
-
while (current) {
|
|
187
|
-
if (current.type === "CallExpression" && current.callee.type === "MemberExpression") {
|
|
188
|
-
const obj = current.callee.object;
|
|
189
|
-
// Check for test.expect(...) or test.expectTypeOf(...)
|
|
190
|
-
if (obj.type === "CallExpression" &&
|
|
191
|
-
obj.callee.type === "MemberExpression" &&
|
|
192
|
-
obj.callee.object.type === "Identifier" &&
|
|
193
|
-
obj.callee.object.name === "test" &&
|
|
194
|
-
obj.callee.property.type === "Identifier" &&
|
|
195
|
-
(obj.callee.property.name === "expect" ||
|
|
196
|
-
obj.callee.property.name === "expectTypeOf")) {
|
|
197
|
-
return true;
|
|
198
|
-
}
|
|
199
|
-
// Direct: test.expect(...) or test.expectTypeOf(...)
|
|
200
|
-
if (current.callee.object.type === "Identifier" &&
|
|
201
|
-
current.callee.object.name === "test" &&
|
|
202
|
-
current.callee.property.type === "Identifier" &&
|
|
203
|
-
(current.callee.property.name === "expect" ||
|
|
204
|
-
current.callee.property.name === "expectTypeOf")) {
|
|
205
|
-
return true;
|
|
206
|
-
}
|
|
207
|
-
// Walk up the chain
|
|
208
|
-
current = current.callee.object;
|
|
209
|
-
continue;
|
|
210
|
-
}
|
|
211
|
-
// Handle non-call member access like .not
|
|
212
|
-
if (current.type === "MemberExpression") {
|
|
213
|
-
current = current.object;
|
|
214
|
-
continue;
|
|
215
|
-
}
|
|
216
|
-
break;
|
|
217
|
-
}
|
|
218
|
-
return false;
|
|
219
|
-
}
|
|
220
|
-
/**
|
|
221
|
-
* Collect all member expressions in a chained call.
|
|
222
|
-
*/
|
|
223
|
-
function getChainedMembers(node) {
|
|
224
|
-
const members = [];
|
|
225
|
-
let current = node;
|
|
226
|
-
while (current.type === "CallExpression" && current.callee.type === "MemberExpression") {
|
|
227
|
-
members.push(current.callee);
|
|
228
|
-
current = current.callee.object;
|
|
229
|
-
}
|
|
230
|
-
return members;
|
|
231
|
-
}
|
|
232
|
-
function isAssertionStatement(stmt) {
|
|
233
|
-
return (stmt &&
|
|
234
|
-
stmt.type === "ExpressionStatement" &&
|
|
235
|
-
stmt.expression.type === "CallExpression" &&
|
|
236
|
-
isTestAssertionChain(stmt.expression));
|
|
237
|
-
}
|
|
238
|
-
function checkChainedNewlines(node) {
|
|
239
|
-
const members = getChainedMembers(node.expression);
|
|
240
|
-
for (const member of members) {
|
|
241
|
-
const objectEndLine = member.object.loc.end.line;
|
|
242
|
-
const propertyStartLine = member.property.loc.start.line;
|
|
243
|
-
if (objectEndLine === propertyStartLine) {
|
|
244
|
-
const sourceCode = context.sourceCode || context.getSourceCode();
|
|
245
|
-
const dot = sourceCode.getTokenBefore(member.property);
|
|
246
|
-
if (dot && dot.value === ".") {
|
|
247
|
-
context.report({
|
|
248
|
-
node: member.property,
|
|
249
|
-
messageId: "requireNewline",
|
|
250
|
-
fix(fixer) {
|
|
251
|
-
const stmtStartCol = node.loc.start.column;
|
|
252
|
-
const indent = " ".repeat(stmtStartCol + 2);
|
|
253
|
-
return fixer.replaceTextRange([member.object.range[1], member.property.range[0]], "\n" + indent + ".");
|
|
254
|
-
},
|
|
255
|
-
});
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
function checkBlankLines(siblings) {
|
|
261
|
-
const sourceCode = context.sourceCode || context.getSourceCode();
|
|
262
|
-
for (let i = 0; i < siblings.length; i++) {
|
|
263
|
-
const node = siblings[i];
|
|
264
|
-
if (!isAssertionStatement(node))
|
|
265
|
-
continue;
|
|
266
|
-
const prev = siblings[i - 1];
|
|
267
|
-
const next = siblings[i + 1];
|
|
268
|
-
if (prev && !isAssertionStatement(prev)) {
|
|
269
|
-
if (node.loc.start.line - prev.loc.end.line < 2) {
|
|
270
|
-
context.report({
|
|
271
|
-
node,
|
|
272
|
-
messageId: "requireBlankBefore",
|
|
273
|
-
fix(fixer) {
|
|
274
|
-
return fixer.insertTextAfter(sourceCode.getLastToken(prev), "\n");
|
|
275
|
-
},
|
|
276
|
-
});
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
if (next && !isAssertionStatement(next)) {
|
|
280
|
-
if (next.loc.start.line - node.loc.end.line < 2) {
|
|
281
|
-
context.report({
|
|
282
|
-
node,
|
|
283
|
-
messageId: "requireBlankAfter",
|
|
284
|
-
fix(fixer) {
|
|
285
|
-
return fixer.insertTextAfter(sourceCode.getLastToken(node), "\n");
|
|
286
|
-
},
|
|
287
|
-
});
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
return {
|
|
293
|
-
ExpressionStatement(node) {
|
|
294
|
-
if (node.expression.type !== "CallExpression")
|
|
295
|
-
return;
|
|
296
|
-
if (!isTestAssertionChain(node.expression))
|
|
297
|
-
return;
|
|
298
|
-
checkChainedNewlines(node);
|
|
299
|
-
},
|
|
300
|
-
Program(node) {
|
|
301
|
-
checkBlankLines(node.body);
|
|
302
|
-
},
|
|
303
|
-
BlockStatement(node) {
|
|
304
|
-
checkBlankLines(node.body);
|
|
305
|
-
},
|
|
306
|
-
};
|
|
307
|
-
},
|
|
308
|
-
},
|
|
309
|
-
},
|
|
310
|
-
};
|
|
311
|
-
function getBaseName(source) {
|
|
312
|
-
// Handle node: and bun: protocols
|
|
313
|
-
if (source.startsWith("node:")) {
|
|
314
|
-
return source.slice(5);
|
|
315
|
-
}
|
|
316
|
-
if (source.startsWith("bun:")) {
|
|
317
|
-
return source.slice(4);
|
|
318
|
-
}
|
|
319
|
-
// Get last path segment
|
|
320
|
-
const segments = source.split("/");
|
|
321
|
-
let last = segments[segments.length - 1];
|
|
322
|
-
// Strip file extension (.ts, .tsx, .js, .jsx, .mjs, .cjs)
|
|
323
|
-
last = last.replace(/\.(ts|tsx|js|jsx|mjs|cjs)$/, "");
|
|
324
|
-
return last;
|
|
325
|
-
}
|
|
326
|
-
function isCapitalized(name) {
|
|
327
|
-
return name.length > 0 && name[0] >= "A" && name[0] <= "Z";
|
|
328
|
-
}
|
|
329
|
-
function isFunction(stmt) {
|
|
330
|
-
const decl = stmt.type === "ExportNamedDeclaration" && stmt.declaration ? stmt.declaration : stmt;
|
|
331
|
-
if (decl.type === "FunctionDeclaration")
|
|
332
|
-
return true;
|
|
333
|
-
if (decl.type === "VariableDeclaration" &&
|
|
334
|
-
decl.declarations.length > 0 &&
|
|
335
|
-
decl.declarations[0].init &&
|
|
336
|
-
(decl.declarations[0].init.type === "ArrowFunctionExpression" ||
|
|
337
|
-
decl.declarations[0].init.type === "FunctionExpression")) {
|
|
338
|
-
return true;
|
|
339
|
-
}
|
|
340
|
-
return false;
|
|
341
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import * as HttpServerRequest from "@effect/platform/HttpServerRequest";
|
|
2
|
-
import * as HttpServerResponse from "@effect/platform/HttpServerResponse";
|
|
3
|
-
import * as Effect from "effect/Effect";
|
|
4
|
-
export interface BasicAuthConfig {
|
|
5
|
-
readonly username: string;
|
|
6
|
-
readonly password: string;
|
|
7
|
-
}
|
|
8
|
-
export declare const make: (config: BasicAuthConfig) => <E, R>(app: import("@effect/platform/HttpApp").Default<E, R>) => Effect.Effect<HttpServerResponse.HttpServerResponse, E, HttpServerRequest.HttpServerRequest | R>;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import * as HttpMiddleware from "@effect/platform/HttpMiddleware";
|
|
2
|
-
import * as HttpServerRequest from "@effect/platform/HttpServerRequest";
|
|
3
|
-
import * as HttpServerResponse from "@effect/platform/HttpServerResponse";
|
|
4
|
-
import * as Effect from "effect/Effect";
|
|
5
|
-
const unauthorizedResponse = HttpServerResponse.empty({
|
|
6
|
-
status: 401,
|
|
7
|
-
headers: { "WWW-Authenticate": "Basic" },
|
|
8
|
-
});
|
|
9
|
-
export const make = (config) => HttpMiddleware.make((app) => Effect.gen(function* () {
|
|
10
|
-
const request = yield* HttpServerRequest.HttpServerRequest;
|
|
11
|
-
const authHeader = request.headers.authorization;
|
|
12
|
-
if (!authHeader || !authHeader.startsWith("Basic ")) {
|
|
13
|
-
return unauthorizedResponse;
|
|
14
|
-
}
|
|
15
|
-
const base64Credentials = authHeader.slice(6);
|
|
16
|
-
const credentials = atob(base64Credentials);
|
|
17
|
-
const [username, password] = credentials.split(":");
|
|
18
|
-
if (username !== config.username || password !== config.password) {
|
|
19
|
-
return unauthorizedResponse;
|
|
20
|
-
}
|
|
21
|
-
return yield* app;
|
|
22
|
-
}));
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * as BasicAuthMiddleware from "./BasicAuthMiddleware.ts";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * as BasicAuthMiddleware from "./BasicAuthMiddleware.js";
|