@effect-app/infra 4.0.0-beta.20 → 4.0.0-beta.200
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/CHANGELOG.md +1378 -0
- package/_check.sh +1 -1
- package/dist/CUPS.d.ts +15 -7
- package/dist/CUPS.d.ts.map +1 -1
- package/dist/CUPS.js +10 -12
- package/dist/Emailer/Sendgrid.d.ts +14 -14
- package/dist/Emailer/Sendgrid.d.ts.map +1 -1
- package/dist/Emailer/Sendgrid.js +16 -15
- package/dist/Emailer/fake.d.ts +1 -1
- package/dist/Emailer/service.d.ts +10 -4
- package/dist/Emailer/service.d.ts.map +1 -1
- package/dist/Emailer/service.js +3 -3
- package/dist/Emailer.d.ts +1 -1
- package/dist/MainFiberSet.d.ts +9 -9
- package/dist/MainFiberSet.d.ts.map +1 -1
- package/dist/MainFiberSet.js +3 -3
- package/dist/Model/Repository/Registry.d.ts +20 -0
- package/dist/Model/Repository/Registry.d.ts.map +1 -0
- package/dist/Model/Repository/Registry.js +17 -0
- package/dist/Model/Repository/ext.d.ts +33 -15
- package/dist/Model/Repository/ext.d.ts.map +1 -1
- package/dist/Model/Repository/ext.js +54 -2
- package/dist/Model/Repository/internal/internal.d.ts +6 -6
- package/dist/Model/Repository/internal/internal.d.ts.map +1 -1
- package/dist/Model/Repository/internal/internal.js +43 -32
- package/dist/Model/Repository/legacy.d.ts +1 -1
- package/dist/Model/Repository/makeRepo.d.ts +7 -6
- package/dist/Model/Repository/makeRepo.d.ts.map +1 -1
- package/dist/Model/Repository/makeRepo.js +5 -1
- package/dist/Model/Repository/service.d.ts +28 -23
- package/dist/Model/Repository/service.d.ts.map +1 -1
- package/dist/Model/Repository/validation.d.ts +142 -17
- package/dist/Model/Repository/validation.d.ts.map +1 -1
- package/dist/Model/Repository/validation.js +5 -5
- package/dist/Model/Repository.d.ts +2 -1
- package/dist/Model/Repository.d.ts.map +1 -1
- package/dist/Model/Repository.js +2 -1
- package/dist/Model/dsl.d.ts +4 -4
- package/dist/Model/dsl.d.ts.map +1 -1
- package/dist/Model/filter/filterApi.d.ts +5 -5
- package/dist/Model/filter/filterApi.d.ts.map +1 -1
- package/dist/Model/filter/types/errors.d.ts +1 -1
- package/dist/Model/filter/types/fields.d.ts +1 -1
- package/dist/Model/filter/types/path/common.d.ts +1 -1
- package/dist/Model/filter/types/path/eager.d.ts +1 -1
- package/dist/Model/filter/types/path/eager.d.ts.map +1 -1
- package/dist/Model/filter/types/path/eager.js +1 -1
- package/dist/Model/filter/types/path/index.d.ts +1 -1
- package/dist/Model/filter/types/utils.d.ts +1 -1
- package/dist/Model/filter/types/validator.d.ts +1 -1
- package/dist/Model/filter/types.d.ts +1 -1
- package/dist/Model/query/dsl.d.ts +16 -16
- package/dist/Model/query/dsl.d.ts.map +1 -1
- package/dist/Model/query/new-kid-interpreter.d.ts +6 -6
- package/dist/Model/query/new-kid-interpreter.d.ts.map +1 -1
- package/dist/Model/query/new-kid-interpreter.js +3 -3
- package/dist/Model/query.d.ts +1 -1
- package/dist/Model.d.ts +2 -1
- package/dist/Model.d.ts.map +1 -1
- package/dist/Model.js +2 -1
- package/dist/QueueMaker/SQLQueue.d.ts +5 -7
- package/dist/QueueMaker/SQLQueue.d.ts.map +1 -1
- package/dist/QueueMaker/SQLQueue.js +105 -114
- package/dist/QueueMaker/errors.d.ts +2 -2
- package/dist/QueueMaker/errors.d.ts.map +1 -1
- package/dist/QueueMaker/memQueue.d.ts +7 -4
- package/dist/QueueMaker/memQueue.d.ts.map +1 -1
- package/dist/QueueMaker/memQueue.js +51 -62
- package/dist/QueueMaker/sbqueue.d.ts +6 -3
- package/dist/QueueMaker/sbqueue.d.ts.map +1 -1
- package/dist/QueueMaker/sbqueue.js +37 -53
- package/dist/QueueMaker/service.d.ts +1 -1
- package/dist/RequestContext.d.ts +112 -26
- package/dist/RequestContext.d.ts.map +1 -1
- package/dist/RequestContext.js +7 -8
- package/dist/RequestFiberSet.d.ts +7 -7
- package/dist/RequestFiberSet.d.ts.map +1 -1
- package/dist/RequestFiberSet.js +5 -5
- package/dist/Store/ContextMapContainer.d.ts +19 -3
- package/dist/Store/ContextMapContainer.d.ts.map +1 -1
- package/dist/Store/ContextMapContainer.js +13 -3
- package/dist/Store/Cosmos/query.d.ts +1 -1
- package/dist/Store/Cosmos/query.d.ts.map +1 -1
- package/dist/Store/Cosmos/query.js +10 -12
- package/dist/Store/Cosmos.d.ts +1 -1
- package/dist/Store/Cosmos.d.ts.map +1 -1
- package/dist/Store/Cosmos.js +318 -240
- package/dist/Store/Disk.d.ts +2 -2
- package/dist/Store/Disk.d.ts.map +1 -1
- package/dist/Store/Disk.js +25 -22
- package/dist/Store/Memory.d.ts +4 -4
- package/dist/Store/Memory.d.ts.map +1 -1
- package/dist/Store/Memory.js +27 -22
- package/dist/Store/SQL/Pg.d.ts +4 -0
- package/dist/Store/SQL/Pg.d.ts.map +1 -0
- package/dist/Store/SQL/Pg.js +189 -0
- package/dist/Store/SQL/query.d.ts +38 -0
- package/dist/Store/SQL/query.d.ts.map +1 -0
- package/dist/Store/SQL/query.js +367 -0
- package/dist/Store/SQL.d.ts +20 -0
- package/dist/Store/SQL.d.ts.map +1 -0
- package/dist/Store/SQL.js +381 -0
- package/dist/Store/codeFilter.d.ts +1 -1
- package/dist/Store/codeFilter.d.ts.map +1 -1
- package/dist/Store/codeFilter.js +2 -1
- package/dist/Store/index.d.ts +5 -2
- package/dist/Store/index.d.ts.map +1 -1
- package/dist/Store/index.js +15 -3
- package/dist/Store/service.d.ts +18 -7
- package/dist/Store/service.d.ts.map +1 -1
- package/dist/Store/service.js +24 -6
- package/dist/Store/utils.d.ts +1 -1
- package/dist/Store/utils.d.ts.map +1 -1
- package/dist/Store/utils.js +3 -4
- package/dist/Store.d.ts +1 -1
- package/dist/adapters/SQL/Model.d.ts +28 -42
- package/dist/adapters/SQL/Model.d.ts.map +1 -1
- package/dist/adapters/SQL/Model.js +2 -2
- package/dist/adapters/SQL.d.ts +1 -1
- package/dist/adapters/ServiceBus.d.ts +11 -11
- package/dist/adapters/ServiceBus.d.ts.map +1 -1
- package/dist/adapters/ServiceBus.js +13 -15
- package/dist/adapters/cosmos-client.d.ts +3 -3
- package/dist/adapters/cosmos-client.d.ts.map +1 -1
- package/dist/adapters/cosmos-client.js +3 -3
- package/dist/adapters/index.d.ts +8 -2
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +8 -2
- package/dist/adapters/logger.d.ts +2 -2
- package/dist/adapters/logger.d.ts.map +1 -1
- package/dist/adapters/memQueue.d.ts +3 -3
- package/dist/adapters/memQueue.d.ts.map +1 -1
- package/dist/adapters/memQueue.js +3 -3
- package/dist/adapters/mongo-client.d.ts +3 -3
- package/dist/adapters/mongo-client.d.ts.map +1 -1
- package/dist/adapters/mongo-client.js +3 -3
- package/dist/adapters/redis-client.d.ts +3 -3
- package/dist/adapters/redis-client.d.ts.map +1 -1
- package/dist/adapters/redis-client.js +3 -3
- package/dist/api/ContextProvider.d.ts +8 -8
- package/dist/api/ContextProvider.d.ts.map +1 -1
- package/dist/api/ContextProvider.js +6 -6
- package/dist/api/codec.d.ts +1 -1
- package/dist/api/internal/RequestContextMiddleware.d.ts +2 -2
- package/dist/api/internal/RequestContextMiddleware.d.ts.map +1 -1
- package/dist/api/internal/RequestContextMiddleware.js +2 -2
- package/dist/api/internal/auth.d.ts +44 -6
- package/dist/api/internal/auth.d.ts.map +1 -1
- package/dist/api/internal/auth.js +160 -29
- package/dist/api/internal/events.d.ts +3 -3
- package/dist/api/internal/events.d.ts.map +1 -1
- package/dist/api/internal/events.js +9 -7
- package/dist/api/internal/health.d.ts +1 -1
- package/dist/api/layerUtils.d.ts +6 -6
- package/dist/api/layerUtils.d.ts.map +1 -1
- package/dist/api/layerUtils.js +5 -5
- package/dist/api/middlewares.d.ts +1 -1
- package/dist/api/reportError.d.ts +1 -1
- package/dist/api/routing/middleware/RouterMiddleware.d.ts +4 -4
- package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +1 -1
- package/dist/api/routing/middleware/middleware.d.ts +50 -4
- package/dist/api/routing/middleware/middleware.d.ts.map +1 -1
- package/dist/api/routing/middleware/middleware.js +79 -17
- package/dist/api/routing/middleware.d.ts +1 -2
- package/dist/api/routing/middleware.d.ts.map +1 -1
- package/dist/api/routing/middleware.js +1 -2
- package/dist/api/routing/schema/jwt.d.ts +1 -1
- package/dist/api/routing/schema/jwt.d.ts.map +1 -1
- package/dist/api/routing/tsort.d.ts +1 -1
- package/dist/api/routing/tsort.d.ts.map +1 -1
- package/dist/api/routing/utils.d.ts +3 -3
- package/dist/api/routing/utils.d.ts.map +1 -1
- package/dist/api/routing.d.ts +25 -26
- package/dist/api/routing.d.ts.map +1 -1
- package/dist/api/routing.js +83 -35
- package/dist/api/setupRequest.d.ts +8 -5
- package/dist/api/setupRequest.d.ts.map +1 -1
- package/dist/api/setupRequest.js +12 -7
- package/dist/api/util.d.ts +1 -1
- package/dist/arbs.d.ts +1 -1
- package/dist/arbs.d.ts.map +1 -1
- package/dist/arbs.js +5 -3
- package/dist/errorReporter.d.ts +4 -4
- package/dist/errorReporter.d.ts.map +1 -1
- package/dist/errorReporter.js +20 -25
- package/dist/errors.d.ts +1 -1
- package/dist/fileUtil.d.ts +1 -1
- package/dist/fileUtil.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/logger/jsonLogger.d.ts +1 -1
- package/dist/logger/logFmtLogger.d.ts +1 -1
- package/dist/logger/shared.d.ts +1 -1
- package/dist/logger/shared.js +2 -2
- package/dist/logger.d.ts +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/rateLimit.d.ts +9 -3
- package/dist/rateLimit.d.ts.map +1 -1
- package/dist/rateLimit.js +5 -11
- package/dist/test.d.ts +2 -2
- package/dist/test.d.ts.map +1 -1
- package/dist/test.js +1 -1
- package/dist/vitest.d.ts +1 -1
- package/examples/query.ts +39 -35
- package/package.json +41 -37
- package/src/CUPS.ts +9 -11
- package/src/Emailer/Sendgrid.ts +17 -14
- package/src/Emailer/service.ts +9 -3
- package/src/MainFiberSet.ts +5 -6
- package/src/Model/Repository/Registry.ts +33 -0
- package/src/Model/Repository/ext.ts +96 -10
- package/src/Model/Repository/internal/internal.ts +97 -88
- package/src/Model/Repository/makeRepo.ts +12 -10
- package/src/Model/Repository/service.ts +31 -22
- package/src/Model/Repository/validation.ts +4 -4
- package/src/Model/Repository.ts +1 -0
- package/src/Model/dsl.ts +3 -3
- package/src/Model/filter/types/path/eager.ts +1 -2
- package/src/Model/query/dsl.ts +18 -18
- package/src/Model/query/new-kid-interpreter.ts +2 -2
- package/src/Model.ts +1 -0
- package/src/QueueMaker/SQLQueue.ts +121 -151
- package/src/QueueMaker/memQueue.ts +82 -103
- package/src/QueueMaker/sbqueue.ts +56 -86
- package/src/RequestContext.ts +8 -10
- package/src/RequestFiberSet.ts +4 -4
- package/src/Store/ContextMapContainer.ts +41 -2
- package/src/Store/Cosmos/query.ts +16 -20
- package/src/Store/Cosmos.ts +452 -342
- package/src/Store/Disk.ts +52 -49
- package/src/Store/Memory.ts +54 -48
- package/src/Store/SQL/Pg.ts +318 -0
- package/src/Store/SQL/query.ts +409 -0
- package/src/Store/SQL.ts +668 -0
- package/src/Store/codeFilter.ts +1 -0
- package/src/Store/index.ts +17 -2
- package/src/Store/service.ts +32 -8
- package/src/Store/utils.ts +23 -22
- package/src/adapters/SQL/Model.ts +10 -4
- package/src/adapters/ServiceBus.ts +112 -116
- package/src/adapters/cosmos-client.ts +2 -2
- package/src/adapters/index.ts +7 -0
- package/src/adapters/memQueue.ts +2 -2
- package/src/adapters/mongo-client.ts +2 -2
- package/src/adapters/redis-client.ts +2 -2
- package/src/api/ContextProvider.ts +12 -13
- package/src/api/internal/RequestContextMiddleware.ts +1 -1
- package/src/api/internal/auth.ts +246 -44
- package/src/api/internal/events.ts +12 -8
- package/src/api/layerUtils.ts +8 -8
- package/src/api/routing/middleware/RouterMiddleware.ts +4 -4
- package/src/api/routing/middleware/middleware.ts +112 -15
- package/src/api/routing/middleware.ts +0 -2
- package/src/api/routing.ts +142 -63
- package/src/api/setupRequest.ts +28 -8
- package/src/arbs.ts +4 -2
- package/src/errorReporter.ts +62 -74
- package/src/logger/shared.ts +1 -1
- package/src/rateLimit.ts +30 -22
- package/src/test.ts +1 -1
- package/test/auth.test.ts +101 -0
- package/test/contextProvider.test.ts +11 -11
- package/test/controller.test.ts +18 -16
- package/test/dist/auth.test.d.ts.map +1 -0
- package/test/dist/contextProvider.test.d.ts.map +1 -1
- package/test/dist/controller.test.d.ts.map +1 -1
- package/test/dist/fixtures.d.ts +26 -12
- package/test/dist/fixtures.d.ts.map +1 -1
- package/test/dist/fixtures.js +12 -10
- package/test/dist/query.test.d.ts.map +1 -1
- package/test/dist/rawQuery.test.d.ts.map +1 -1
- package/test/dist/repository-ext.test.d.ts.map +1 -0
- package/test/dist/requires.test.d.ts.map +1 -1
- package/test/dist/router-generator.test.d.ts.map +1 -0
- package/test/dist/routing-interruptibility.test.d.ts.map +1 -0
- package/test/dist/rpc-e2e-invalidation.test.d.ts.map +1 -0
- package/test/dist/rpc-multi-middleware.test.d.ts.map +1 -1
- package/test/dist/rpc-stream-fullstack.test.d.ts.map +1 -0
- package/test/dist/sql-store.test.d.ts.map +1 -0
- package/test/fixtures.ts +11 -9
- package/test/query.test.ts +216 -34
- package/test/rawQuery.test.ts +23 -19
- package/test/repository-ext.test.ts +60 -0
- package/test/requires.test.ts +6 -6
- package/test/router-generator.test.ts +180 -0
- package/test/routing-interruptibility.test.ts +63 -0
- package/test/rpc-e2e-invalidation.test.ts +507 -0
- package/test/rpc-multi-middleware.test.ts +78 -9
- package/test/rpc-stream-fullstack.test.ts +325 -0
- package/test/sql-store.test.ts +1064 -0
- package/test/validateSample.test.ts +15 -12
- package/tsconfig.examples.json +1 -1
- package/tsconfig.json +0 -1
- package/tsconfig.json.bak +2 -2
- package/tsconfig.src.json +35 -35
- package/tsconfig.test.json +2 -2
- package/dist/Operations.d.ts +0 -55
- package/dist/Operations.d.ts.map +0 -1
- package/dist/Operations.js +0 -102
- package/dist/OperationsRepo.d.ts +0 -41
- package/dist/OperationsRepo.d.ts.map +0 -1
- package/dist/OperationsRepo.js +0 -14
- package/eslint.config.mjs +0 -24
- package/src/Operations.ts +0 -235
- package/src/OperationsRepo.ts +0 -16
package/src/rateLimit.ts
CHANGED
|
@@ -21,7 +21,9 @@
|
|
|
21
21
|
// }
|
|
22
22
|
|
|
23
23
|
import { Array, type Duration, Effect, type NonEmptyArray } from "effect-app"
|
|
24
|
+
import { dual } from "effect-app/Function"
|
|
24
25
|
import type { Semaphore } from "effect/Semaphore"
|
|
26
|
+
import type { Concurrency } from "effect/Types"
|
|
25
27
|
|
|
26
28
|
/**
|
|
27
29
|
* Executes the specified effect, acquiring the specified number of permits
|
|
@@ -45,36 +47,42 @@ export function SEM_withPermitsDuration(permits: number, duration: Duration.Dura
|
|
|
45
47
|
}
|
|
46
48
|
}
|
|
47
49
|
|
|
48
|
-
export
|
|
49
|
-
|
|
50
|
-
forEachItem: (item: T, iWithinBatch: number, batchI: number) => Effect.Effect<A, E, R>,
|
|
51
|
-
forEachBatch: (a: NonEmptyArray<A>, i: number) => Effect.Effect<A2, E2, R2>
|
|
52
|
-
) {
|
|
53
|
-
return (items: Iterable<T>) =>
|
|
54
|
-
Effect.forEach(
|
|
55
|
-
Array.chunksOf(items, n),
|
|
56
|
-
(_, i) =>
|
|
57
|
-
Effect
|
|
58
|
-
.forEach(_, (_, j) => forEachItem(_, j, i), { concurrency: "inherit" })
|
|
59
|
-
.pipe(Effect.flatMap((_) => forEachBatch(_, i))),
|
|
60
|
-
{ concurrency: "inherit" }
|
|
61
|
-
)
|
|
50
|
+
export interface BatchOptions {
|
|
51
|
+
readonly concurrency?: Concurrency | undefined
|
|
62
52
|
}
|
|
63
53
|
|
|
64
|
-
export
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
)
|
|
69
|
-
|
|
54
|
+
export const batch: {
|
|
55
|
+
<T, A, E, R, A2, E2, R2>(
|
|
56
|
+
n: number,
|
|
57
|
+
forEachItem: (item: T, iWithinBatch: number, batchI: number) => Effect.Effect<A, E, R>,
|
|
58
|
+
forEachBatch: (a: NonEmptyArray<A>, i: number) => Effect.Effect<A2, E2, R2>,
|
|
59
|
+
options?: BatchOptions
|
|
60
|
+
): (items: Iterable<T>) => Effect.Effect<Array<A2>, E | E2, R | R2>
|
|
61
|
+
<T, A, E, R, A2, E2, R2>(
|
|
62
|
+
items: Iterable<T>,
|
|
63
|
+
n: number,
|
|
64
|
+
forEachItem: (item: T, iWithinBatch: number, batchI: number) => Effect.Effect<A, E, R>,
|
|
65
|
+
forEachBatch: (a: NonEmptyArray<A>, i: number) => Effect.Effect<A2, E2, R2>,
|
|
66
|
+
options?: BatchOptions
|
|
67
|
+
): Effect.Effect<Array<A2>, E | E2, R | R2>
|
|
68
|
+
} = dual(
|
|
69
|
+
(args) => typeof args[0] !== "number",
|
|
70
|
+
<T, A, E, R, A2, E2, R2>(
|
|
71
|
+
items: Iterable<T>,
|
|
72
|
+
n: number,
|
|
73
|
+
forEachItem: (item: T, iWithinBatch: number, batchI: number) => Effect.Effect<A, E, R>,
|
|
74
|
+
forEachBatch: (a: NonEmptyArray<A>, i: number) => Effect.Effect<A2, E2, R2>,
|
|
75
|
+
options?: BatchOptions
|
|
76
|
+
) =>
|
|
70
77
|
Effect.forEach(
|
|
71
78
|
Array.chunksOf(items, n),
|
|
72
79
|
(_, i) =>
|
|
73
80
|
Effect
|
|
74
81
|
.forEach(_, (_, j) => forEachItem(_, j, i), { concurrency: "inherit" })
|
|
75
|
-
.pipe(Effect.flatMap((_) => forEachBatch(_, i)))
|
|
82
|
+
.pipe(Effect.flatMap((_) => forEachBatch(_, i))),
|
|
83
|
+
{ concurrency: options?.concurrency }
|
|
76
84
|
)
|
|
77
|
-
|
|
85
|
+
)
|
|
78
86
|
|
|
79
87
|
// export function rateLimit(
|
|
80
88
|
// n: number,
|
package/src/test.ts
CHANGED
|
@@ -16,7 +16,7 @@ export const createRandomInstance = <A extends object, I, R>(s: S.Codec<A, I, R>
|
|
|
16
16
|
/**
|
|
17
17
|
* Like `createRandomInstance`, but takes encoded values rather than decoded ones.
|
|
18
18
|
*/
|
|
19
|
-
export const createRandomInstanceI = <A extends object, I>(s: S.Codec<A, I
|
|
19
|
+
export const createRandomInstanceI = <A extends object, I>(s: S.Codec<A, I> & { fields: S.Struct.Fields }) => {
|
|
20
20
|
const gen = generate(S.toArbitrary(s))
|
|
21
21
|
const encode = S.encodeSync(s)
|
|
22
22
|
const decode = S.decodeSync(s)
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { describe, expect, it } from "@effect/vitest"
|
|
2
|
+
import { Effect } from "effect-app"
|
|
3
|
+
import { HttpHeaders } from "effect-app/http"
|
|
4
|
+
import { SignJWT } from "jose"
|
|
5
|
+
import { checkJWTI, InvalidRequestError, InvalidTokenError, UnauthorizedError } from "../src/api/internal/auth.js"
|
|
6
|
+
|
|
7
|
+
const issuer = "https://issuer.example.com/"
|
|
8
|
+
const audience = "effect-app"
|
|
9
|
+
const secret = "test-secret-test-secret-test-secret"
|
|
10
|
+
|
|
11
|
+
const makeToken = () =>
|
|
12
|
+
new SignJWT({ scope: "read:all" })
|
|
13
|
+
.setProtectedHeader({ alg: "HS256", typ: "at+jwt" })
|
|
14
|
+
.setIssuer(issuer)
|
|
15
|
+
.setAudience(audience)
|
|
16
|
+
.setIssuedAt()
|
|
17
|
+
.setExpirationTime("10m")
|
|
18
|
+
.sign(new TextEncoder().encode(secret))
|
|
19
|
+
|
|
20
|
+
describe("checkJWTI", () => {
|
|
21
|
+
it.effect(
|
|
22
|
+
"validates a bearer token from headers",
|
|
23
|
+
Effect.fnUntraced(function*() {
|
|
24
|
+
const token = yield* Effect.promise(() => makeToken())
|
|
25
|
+
|
|
26
|
+
yield* checkJWTI({
|
|
27
|
+
audience,
|
|
28
|
+
issuer,
|
|
29
|
+
secret,
|
|
30
|
+
strict: true,
|
|
31
|
+
tokenSigningAlg: "HS256"
|
|
32
|
+
})(HttpHeaders.fromRecordUnsafe({ authorization: `Bearer ${token}` }))
|
|
33
|
+
})
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
it.effect(
|
|
37
|
+
"fails on malformed authorization headers",
|
|
38
|
+
Effect.fnUntraced(function*() {
|
|
39
|
+
const error = yield* Effect.flip(
|
|
40
|
+
checkJWTI({
|
|
41
|
+
audience,
|
|
42
|
+
issuer,
|
|
43
|
+
secret,
|
|
44
|
+
tokenSigningAlg: "HS256"
|
|
45
|
+
})(HttpHeaders.fromRecordUnsafe({ authorization: "Basic abc" }))
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
expect(error).toBeInstanceOf(InvalidRequestError)
|
|
49
|
+
expect(error.status).toBe(400)
|
|
50
|
+
})
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
it.effect(
|
|
54
|
+
"fails when the token is missing",
|
|
55
|
+
Effect.fnUntraced(function*() {
|
|
56
|
+
const error = yield* Effect.flip(
|
|
57
|
+
checkJWTI({
|
|
58
|
+
audience,
|
|
59
|
+
issuer,
|
|
60
|
+
secret,
|
|
61
|
+
tokenSigningAlg: "HS256"
|
|
62
|
+
})(HttpHeaders.empty)
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
expect(error).toBeInstanceOf(UnauthorizedError)
|
|
66
|
+
expect(error.status).toBe(401)
|
|
67
|
+
})
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
it.effect(
|
|
71
|
+
"allows missing tokens when auth is optional",
|
|
72
|
+
Effect.fnUntraced(function*() {
|
|
73
|
+
yield* checkJWTI({
|
|
74
|
+
audience,
|
|
75
|
+
authRequired: false,
|
|
76
|
+
issuer,
|
|
77
|
+
secret,
|
|
78
|
+
tokenSigningAlg: "HS256"
|
|
79
|
+
})(HttpHeaders.empty)
|
|
80
|
+
})
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
it.effect(
|
|
84
|
+
"fails when the token signature is invalid",
|
|
85
|
+
Effect.fnUntraced(function*() {
|
|
86
|
+
const token = yield* Effect.promise(() => makeToken())
|
|
87
|
+
|
|
88
|
+
const error = yield* Effect.flip(
|
|
89
|
+
checkJWTI({
|
|
90
|
+
audience,
|
|
91
|
+
issuer,
|
|
92
|
+
secret: "wrong-secret-wrong-secret-wrong-secret",
|
|
93
|
+
tokenSigningAlg: "HS256"
|
|
94
|
+
})(HttpHeaders.fromRecordUnsafe({ authorization: `Bearer ${token}` }))
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
expect(error).toBeInstanceOf(InvalidTokenError)
|
|
98
|
+
expect(error.status).toBe(401)
|
|
99
|
+
})
|
|
100
|
+
)
|
|
101
|
+
})
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
3
3
|
import { expectTypeOf, it } from "@effect/vitest"
|
|
4
|
-
import { Effect, Layer, Scope
|
|
4
|
+
import { Context, Effect, Layer, Scope } from "effect-app"
|
|
5
5
|
import { ContextProvider, mergeContextProviders, MergedContextProvider } from "../src/api/ContextProvider.js"
|
|
6
6
|
import { CustomError1, Some, SomeElse, SomeService } from "./fixtures.js"
|
|
7
7
|
|
|
8
8
|
// @effect-diagnostics-next-line missingEffectServiceDependency:off
|
|
9
|
-
class MyContextProvider extends
|
|
9
|
+
class MyContextProvider extends Context.Service<MyContextProvider>()(
|
|
10
10
|
"MyContextProvider",
|
|
11
11
|
{
|
|
12
12
|
make: Effect.gen(function*() {
|
|
@@ -20,7 +20,7 @@ class MyContextProvider extends ServiceMap.Service<MyContextProvider>()(
|
|
|
20
20
|
yield* Effect.logInfo("MyContextProviderGen", "this is a generator")
|
|
21
21
|
yield* Effect.succeed("this is a generator")
|
|
22
22
|
|
|
23
|
-
return Some.
|
|
23
|
+
return Some.context({ a: 1 })
|
|
24
24
|
})
|
|
25
25
|
})
|
|
26
26
|
}
|
|
@@ -28,7 +28,7 @@ class MyContextProvider extends ServiceMap.Service<MyContextProvider>()(
|
|
|
28
28
|
static readonly Default = Layer.effect(this, this.make)
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
class MyContextProvider2 extends
|
|
31
|
+
class MyContextProvider2 extends Context.Service<MyContextProvider2>()(
|
|
32
32
|
"MyContextProvider2",
|
|
33
33
|
{
|
|
34
34
|
make: Effect.gen(function*() {
|
|
@@ -37,7 +37,7 @@ class MyContextProvider2 extends ServiceMap.Service<MyContextProvider2>()(
|
|
|
37
37
|
return Effect.gen(function*() {
|
|
38
38
|
// we test without dependencies, so that we end up with an R of never.
|
|
39
39
|
|
|
40
|
-
return SomeElse.
|
|
40
|
+
return SomeElse.context({ b: 2 })
|
|
41
41
|
})
|
|
42
42
|
})
|
|
43
43
|
}
|
|
@@ -45,7 +45,7 @@ class MyContextProvider2 extends ServiceMap.Service<MyContextProvider2>()(
|
|
|
45
45
|
static readonly Default = Layer.effect(this, this.make)
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
class MyContextProvider2Gen extends
|
|
48
|
+
class MyContextProvider2Gen extends Context.Service<MyContextProvider2Gen>()(
|
|
49
49
|
"MyContextProvider2Gen",
|
|
50
50
|
{
|
|
51
51
|
make: Effect.gen(function*() {
|
|
@@ -54,7 +54,7 @@ class MyContextProvider2Gen extends ServiceMap.Service<MyContextProvider2Gen>()(
|
|
|
54
54
|
return function*() {
|
|
55
55
|
// we test without dependencies, so that we end up with an R of never
|
|
56
56
|
|
|
57
|
-
return SomeElse.
|
|
57
|
+
return SomeElse.context({ b: 2 })
|
|
58
58
|
}
|
|
59
59
|
})
|
|
60
60
|
}
|
|
@@ -63,7 +63,7 @@ class MyContextProvider2Gen extends ServiceMap.Service<MyContextProvider2Gen>()(
|
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
// @effect-diagnostics-next-line missingEffectServiceDependency:off
|
|
66
|
-
class MyContextProviderGen extends
|
|
66
|
+
class MyContextProviderGen extends Context.Service<MyContextProviderGen>()(
|
|
67
67
|
"MyContextProviderGen",
|
|
68
68
|
{
|
|
69
69
|
make: Effect.gen(function*() {
|
|
@@ -77,7 +77,7 @@ class MyContextProviderGen extends ServiceMap.Service<MyContextProviderGen>()(
|
|
|
77
77
|
yield* Effect.logInfo("MyContextProviderGen", "this is a generator")
|
|
78
78
|
yield* Effect.succeed("this is a generator")
|
|
79
79
|
|
|
80
|
-
return Some.
|
|
80
|
+
return Some.context({ a: 1 })
|
|
81
81
|
}
|
|
82
82
|
})
|
|
83
83
|
}
|
|
@@ -100,7 +100,7 @@ export const someContextProvider = ContextProvider({
|
|
|
100
100
|
// currently the effectful context provider cannot trigger an error when building the per request context
|
|
101
101
|
// if (Math.random() > 0.5) return yield* new CustomError2()
|
|
102
102
|
|
|
103
|
-
return Some.
|
|
103
|
+
return Some.context({ a: 1 })
|
|
104
104
|
})
|
|
105
105
|
})
|
|
106
106
|
})
|
|
@@ -119,7 +119,7 @@ export const someContextProviderGen = ContextProvider({
|
|
|
119
119
|
// currently the effectful context provider cannot trigger an error when building the per request context
|
|
120
120
|
// if (Math.random() > 0.5) return yield* new CustomError2()
|
|
121
121
|
|
|
122
|
-
return Some.
|
|
122
|
+
return Some.context({ a: 1 })
|
|
123
123
|
}
|
|
124
124
|
})
|
|
125
125
|
})
|
package/test/controller.test.ts
CHANGED
|
@@ -2,10 +2,9 @@
|
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
3
3
|
import { type MakeContext, type MakeErrors, makeRouter } from "@effect-app/infra/api/routing"
|
|
4
4
|
import { expect, expectTypeOf, it } from "@effect/vitest"
|
|
5
|
-
import { Effect, Layer, S, Scope
|
|
5
|
+
import { Context, Effect, Layer, RpcX, S, Scope } from "effect-app"
|
|
6
6
|
import { InvalidStateError, makeRpcClient, UnauthorizedError } from "effect-app/client"
|
|
7
7
|
import { DefaultGenericMiddlewares } from "effect-app/middleware"
|
|
8
|
-
import * as RpcX from "effect-app/rpc"
|
|
9
8
|
import { MiddlewareMaker } from "effect-app/rpc"
|
|
10
9
|
import { TypeTestId } from "effect-app/TypeTest"
|
|
11
10
|
import { type RpcSerialization } from "effect/unstable/rpc"
|
|
@@ -99,7 +98,7 @@ class MyContextProvider2
|
|
|
99
98
|
|
|
100
99
|
//
|
|
101
100
|
|
|
102
|
-
class Str extends
|
|
101
|
+
class Str extends Context.Service<Str, "str">()("str") {}
|
|
103
102
|
|
|
104
103
|
export class BogusMiddleware extends RpcX.RpcMiddleware.Tag<BogusMiddleware>()("BogusMiddleware") {
|
|
105
104
|
static Default = Layer.make(this, {
|
|
@@ -202,14 +201,17 @@ export const middleware3 = MiddlewareMaker
|
|
|
202
201
|
.middleware(Test)
|
|
203
202
|
.middleware(BogusMiddleware)
|
|
204
203
|
|
|
205
|
-
export const {
|
|
204
|
+
export const { TaggedRequestFor } = makeRpcClient(RequestContextMap)
|
|
205
|
+
const Req = TaggedRequestFor("Something")
|
|
206
|
+
const Command = Req.Command
|
|
207
|
+
const Query = Req.Query
|
|
206
208
|
|
|
207
|
-
export class Eff extends
|
|
208
|
-
export class Gen extends
|
|
209
|
+
export class Eff extends Command<Eff>()("Eff", {}, { success: S.Void }) {}
|
|
210
|
+
export class Gen extends Command<Gen>()("Gen", {}) {}
|
|
209
211
|
|
|
210
212
|
expectTypeOf(Eff.error).toEqualTypeOf<typeof Gen.error>()
|
|
211
213
|
|
|
212
|
-
export class DoSomething extends
|
|
214
|
+
export class DoSomething extends Command<DoSomething>()("DoSomething", {
|
|
213
215
|
id: S.String
|
|
214
216
|
}, { success: S.Void }) {}
|
|
215
217
|
|
|
@@ -227,20 +229,20 @@ export class DoSomething extends Req<DoSomething>()("DoSomething", {
|
|
|
227
229
|
// )
|
|
228
230
|
// )
|
|
229
231
|
|
|
230
|
-
export class GetSomething extends
|
|
232
|
+
export class GetSomething extends Query<GetSomething>()("GetSomething", {
|
|
231
233
|
id: S.String
|
|
232
234
|
}, { success: S.String }) {}
|
|
233
235
|
|
|
234
|
-
export class GetSomething2 extends
|
|
236
|
+
export class GetSomething2 extends Query<GetSomething2>()("GetSomething2", {
|
|
235
237
|
id: S.String
|
|
236
|
-
}, { success: S.
|
|
238
|
+
}, { success: S.FiniteFromString }) {}
|
|
237
239
|
|
|
238
|
-
const Something = { Eff, Gen, DoSomething, GetSomething, GetSomething2
|
|
240
|
+
const Something = { Eff, Gen, DoSomething, GetSomething, GetSomething2 }
|
|
239
241
|
|
|
240
242
|
// const client = ApiClientFactory.makeFor(Layer.empty)(Something)
|
|
241
243
|
// client.pipe(Effect.map(c => c.DoSomething.name))
|
|
242
244
|
|
|
243
|
-
export class SomethingService extends
|
|
245
|
+
export class SomethingService extends Context.Service<SomethingService>()(
|
|
244
246
|
"SomethingService",
|
|
245
247
|
{
|
|
246
248
|
make: Effect.gen(function*() {
|
|
@@ -260,7 +262,7 @@ declare const a: {
|
|
|
260
262
|
(opt: { b: 3 }): void
|
|
261
263
|
}
|
|
262
264
|
|
|
263
|
-
export class SomethingRepo extends
|
|
265
|
+
export class SomethingRepo extends Context.Service<SomethingRepo>()(
|
|
264
266
|
"SomethingRepo",
|
|
265
267
|
{
|
|
266
268
|
make: Effect.gen(function*() {
|
|
@@ -273,7 +275,7 @@ export class SomethingRepo extends ServiceMap.Service<SomethingRepo>()(
|
|
|
273
275
|
static Default = Layer.effect(this, this.make).pipe(Layer.provide(SomethingService.Default))
|
|
274
276
|
}
|
|
275
277
|
|
|
276
|
-
export class SomethingService2 extends
|
|
278
|
+
export class SomethingService2 extends Context.Service<SomethingService2>()(
|
|
277
279
|
"SomethingService2",
|
|
278
280
|
{
|
|
279
281
|
make: Effect.gen(function*() {
|
|
@@ -348,7 +350,7 @@ const router = Router(Something)({
|
|
|
348
350
|
}
|
|
349
351
|
},
|
|
350
352
|
GetSomething2: {
|
|
351
|
-
raw: Some.use(() => Effect.succeed("12"))
|
|
353
|
+
raw: () => Some.use(() => Effect.succeed("12"))
|
|
352
354
|
}
|
|
353
355
|
})
|
|
354
356
|
}
|
|
@@ -413,7 +415,7 @@ const router2 = r2.Router(Something)({
|
|
|
413
415
|
}
|
|
414
416
|
},
|
|
415
417
|
GetSomething2: {
|
|
416
|
-
raw: Some.use(() => Effect.succeed("12"))
|
|
418
|
+
raw: () => Some.use(() => Effect.succeed("12"))
|
|
417
419
|
}
|
|
418
420
|
})
|
|
419
421
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.test.d.ts","sourceRoot":"","sources":["../auth.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextProvider.test.d.ts","sourceRoot":"","sources":["../contextProvider.test.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"contextProvider.test.d.ts","sourceRoot":"","sources":["../contextProvider.test.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAE1D,OAAO,EAAE,YAAY,EAAE,IAAI,EAAY,WAAW,EAAE,MAAM,eAAe,CAAA;AAkFzE,eAAO,MAAM,mBAAmB;;CAkB9B,CAAA;AACF,eAAO,MAAM,sBAAsB;;CAkBjC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.test.d.ts","sourceRoot":"","sources":["../controller.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAc,MAAM,+BAA+B,CAAA;AAE7F,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"controller.test.d.ts","sourceRoot":"","sources":["../controller.test.ts"],"names":[],"mappings":"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"}
|
package/test/dist/fixtures.d.ts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import { Effect, Layer,
|
|
1
|
+
import { Context, Effect, Layer, RpcX, S } from "effect-app";
|
|
2
2
|
import { NotLoggedInError, UnauthorizedError } from "effect-app/client";
|
|
3
|
-
import { RpcContextMap
|
|
4
|
-
declare const UserProfile_base: S.EnhancedClass<UserProfile,
|
|
3
|
+
import { RpcContextMap } from "effect-app/rpc";
|
|
4
|
+
declare const UserProfile_base: S.EnhancedClass<UserProfile, import("effect/Schema").Struct<{
|
|
5
5
|
id: S.String;
|
|
6
6
|
roles: S.$Array<S.String> & {
|
|
7
|
-
withDefault: S.withConstructorDefault<S.$Array<S.String
|
|
7
|
+
withDefault: S.withConstructorDefault<S.$Array<S.String>>;
|
|
8
|
+
withDecodingDefaultType: S.withDecodingDefaultType<S.$Array<S.String>>;
|
|
8
9
|
};
|
|
9
|
-
}>, {}> &
|
|
10
|
+
}>, {}> & Context.Opaque<UserProfile, UserProfile>;
|
|
10
11
|
export declare class UserProfile extends UserProfile_base {
|
|
11
12
|
}
|
|
12
|
-
declare const Some_base:
|
|
13
|
+
declare const Some_base: Context.OpaqueClass<Some, "Some", {
|
|
13
14
|
a: number;
|
|
14
15
|
}> & {
|
|
15
16
|
readonly make: Effect.Effect<{
|
|
@@ -18,7 +19,7 @@ declare const Some_base: ServiceMap.OpaqueClass<Some, "Some", {
|
|
|
18
19
|
};
|
|
19
20
|
export declare class Some extends Some_base {
|
|
20
21
|
}
|
|
21
|
-
declare const SomeElse_base:
|
|
22
|
+
declare const SomeElse_base: Context.OpaqueClass<SomeElse, "SomeElse", {
|
|
22
23
|
b: number;
|
|
23
24
|
}> & {
|
|
24
25
|
readonly make: Effect.Effect<{
|
|
@@ -27,7 +28,7 @@ declare const SomeElse_base: ServiceMap.OpaqueClass<SomeElse, "SomeElse", {
|
|
|
27
28
|
};
|
|
28
29
|
export declare class SomeElse extends SomeElse_base {
|
|
29
30
|
}
|
|
30
|
-
declare const SomeService_base:
|
|
31
|
+
declare const SomeService_base: Context.OpaqueClass<SomeService, "SomeService", {
|
|
31
32
|
a: number;
|
|
32
33
|
}> & {
|
|
33
34
|
readonly make: Effect.Effect<{
|
|
@@ -66,7 +67,7 @@ declare const RequestContextMap_base: (new () => {
|
|
|
66
67
|
readonly requireRoles: RpcContextMap.RpcContextMap.Custom<never, typeof UnauthorizedError, string[]>;
|
|
67
68
|
readonly test: RpcContextMap.RpcContextMap<never, S.Never>;
|
|
68
69
|
}>;
|
|
69
|
-
get: <Key extends "allowAnonymous" | "requireRoles" | "test">(key: Key) => RpcX.RpcMiddleware.RpcDynamic<Key, {
|
|
70
|
+
get: <Key extends ("allowAnonymous" | "requireRoles" | "test") & string>(key: Key) => RpcX.RpcMiddleware.RpcDynamic<Key, {
|
|
70
71
|
readonly allowAnonymous: RpcContextMap.RpcContextMap.Inverted<UserProfile, typeof NotLoggedInError>;
|
|
71
72
|
readonly requireRoles: RpcContextMap.RpcContextMap.Custom<never, typeof UnauthorizedError, string[]>;
|
|
72
73
|
readonly test: RpcContextMap.RpcContextMap<never, S.Never>;
|
|
@@ -101,11 +102,24 @@ declare const Test_base: RpcX.RpcMiddleware.TagClass<Test, "Test", {
|
|
|
101
102
|
export declare class Test extends Test_base {
|
|
102
103
|
}
|
|
103
104
|
export declare const TestLive: Layer.Layer<Test, never, never>;
|
|
104
|
-
declare const
|
|
105
|
+
declare const Counter_base: Context.OpaqueClass<Counter, "Counter", {
|
|
106
|
+
a: number;
|
|
107
|
+
}> & {
|
|
108
|
+
readonly make: Effect.Effect<{
|
|
109
|
+
a: number;
|
|
110
|
+
}, never, never>;
|
|
111
|
+
};
|
|
112
|
+
export declare class Counter extends Counter_base {
|
|
113
|
+
}
|
|
114
|
+
declare const CustomError1_base: S.EnhancedClass<CustomError1, import("effect/Schema").Struct<{
|
|
115
|
+
readonly _tag: S.tag<"CustomError1">;
|
|
116
|
+
}>, import("effect/Cause").YieldableError>;
|
|
105
117
|
export declare class CustomError1 extends CustomError1_base {
|
|
106
118
|
}
|
|
107
|
-
declare const CustomError2_base: S.
|
|
119
|
+
declare const CustomError2_base: S.EnhancedClass<CustomError2, import("effect/Schema").Struct<{
|
|
120
|
+
readonly _tag: S.tag<"CustomError2">;
|
|
121
|
+
}>, import("effect/Cause").YieldableError>;
|
|
108
122
|
export declare class CustomError2 extends CustomError2_base {
|
|
109
123
|
}
|
|
110
124
|
export {};
|
|
111
|
-
//# sourceMappingURL=
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2ZpeHR1cmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFTLE1BQU0sWUFBWSxDQUFBO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTs7Ozs7Ozs7QUFHOUMscUJBQWEsV0FBWSxTQUFRLGdCQUtoQztDQUNBOzs7Ozs7OztBQUVELHFCQUFhLElBQUssU0FBUSxTQUFrRTtDQUFHOzs7Ozs7OztBQUMvRixxQkFBYSxRQUFTLFNBQVEsYUFBMEU7Q0FBRzs7Ozs7Ozs7QUFFM0cscUJBQWEsV0FBWSxTQUFRLGdCQUF1RTtJQUN0RyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8seUNBQTBCO0NBQ2xEOztjQUdzRixJQUFJOztBQUEzRixxQkFBYSxjQUFlLFNBQVEsbUJBQThFO0NBQ2pIO0FBRUQsZUFBTyxNQUFNLGtCQUFrQiwyQ0FNOUIsQ0FBQTs7Y0FHZ0UsUUFBUTs7QUFEekUscUJBQWEsa0JBQ1gsU0FBUSx1QkFBMEY7Q0FDbEc7QUFFRixlQUFPLE1BQU0sc0JBQXNCLCtDQVVsQyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFRCxxQkFBYSxpQkFBa0IsU0FBUSxzQkFJckM7Q0FBRzs7OztjQUVrRixRQUFROztBQUEvRixxQkFBYSxjQUFlLFNBQVEsbUJBRWxDO0NBQUc7QUFFTCxlQUFPLE1BQU0sa0JBQWtCLDJDQXlCOUIsQ0FBQTs7Ozs7Ozs7QUFFRCxxQkFBYSxZQUFhLFNBQVEsaUJBS2hDO0NBQUc7QUFFTCxlQUFPLE1BQU0sZ0JBQWdCLCtDQXVCNUIsQ0FBQTs7Ozs7OztBQUVELHFCQUFhLElBQUssU0FBUSxTQUV4QjtDQUFHO0FBRUwsZUFBTyxNQUFNLFFBQVEsaUNBT3BCLENBQUE7Ozs7Ozs7O0FBRUQscUJBQWEsT0FBUSxTQUFRLFlBQXdFO0NBQUc7Ozs7QUFFeEcscUJBQWEsWUFBYSxTQUFRLGlCQUFvRDtDQUFHOzs7O0FBQ3pGLHFCQUFhLFlBQWEsU0FBUSxpQkFBb0Q7Q0FBRyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAS,
|
|
1
|
+
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAS,MAAM,YAAY,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;;;;;;;;AAG9C,qBAAa,WAAY,SAAQ,gBAKhC;CACA;;;;;;;;AAED,qBAAa,IAAK,SAAQ,SAAkE;CAAG;;;;;;;;AAC/F,qBAAa,QAAS,SAAQ,aAA0E;CAAG;;;;;;;;AAE3G,qBAAa,WAAY,SAAQ,gBAAuE;IACtG,MAAM,CAAC,QAAQ,CAAC,OAAO,yCAA0B;CAClD;;cAGsF,IAAI;;AAA3F,qBAAa,cAAe,SAAQ,mBAA8E;CACjH;AAED,eAAO,MAAM,kBAAkB,2CAM9B,CAAA;;cAGgE,QAAQ;;AADzE,qBAAa,kBACX,SAAQ,uBAA0F;CAClG;AAEF,eAAO,MAAM,sBAAsB,+CAUlC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,iBAAkB,SAAQ,sBAIrC;CAAG;;;;cAEkF,QAAQ;;AAA/F,qBAAa,cAAe,SAAQ,mBAElC;CAAG;AAEL,eAAO,MAAM,kBAAkB,2CAyB9B,CAAA;;;;;;;;AAED,qBAAa,YAAa,SAAQ,iBAKhC;CAAG;AAEL,eAAO,MAAM,gBAAgB,+CAuB5B,CAAA;;;;;;;AAED,qBAAa,IAAK,SAAQ,SAExB;CAAG;AAEL,eAAO,MAAM,QAAQ,iCAOpB,CAAA;;;;;;;;AAED,qBAAa,OAAQ,SAAQ,YAAwE;CAAG;;;;AAExG,qBAAa,YAAa,SAAQ,iBAAoD;CAAG;;;;AACzF,qBAAa,YAAa,SAAQ,iBAAoD;CAAG"}
|
package/test/dist/fixtures.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { Effect, Layer, S, Scope
|
|
1
|
+
import { Context, Effect, Layer, RpcX, S, Scope } from "effect-app";
|
|
2
2
|
import { NotLoggedInError, UnauthorizedError } from "effect-app/client";
|
|
3
|
-
import { RpcContextMap
|
|
4
|
-
import {
|
|
5
|
-
export class UserProfile extends
|
|
3
|
+
import { RpcContextMap } from "effect-app/rpc";
|
|
4
|
+
import { TaggedErrorClass } from "effect-app/Schema";
|
|
5
|
+
export class UserProfile extends Context.assignTag("UserProfile")(S.Class("UserProfile")({
|
|
6
6
|
id: S.String,
|
|
7
7
|
roles: S.Array(S.String)
|
|
8
8
|
})) {
|
|
9
9
|
}
|
|
10
|
-
export class Some extends
|
|
10
|
+
export class Some extends Context.Opaque()("Some", { make: Effect.succeed({ a: 1 }) }) {
|
|
11
11
|
}
|
|
12
|
-
export class SomeElse extends
|
|
12
|
+
export class SomeElse extends Context.Opaque()("SomeElse", { make: Effect.succeed({ b: 2 }) }) {
|
|
13
13
|
}
|
|
14
14
|
const MakeSomeService = Effect.succeed({ a: 1 });
|
|
15
|
-
export class SomeService extends
|
|
15
|
+
export class SomeService extends Context.Opaque()("SomeService", { make: MakeSomeService }) {
|
|
16
16
|
static Default = this.toLayer(this.make);
|
|
17
17
|
}
|
|
18
18
|
// functionally equivalent to the one above
|
|
@@ -90,8 +90,10 @@ export const TestLive = Layer.effect(Test, Effect.gen(function* () {
|
|
|
90
90
|
return yield* effect;
|
|
91
91
|
});
|
|
92
92
|
}));
|
|
93
|
-
export class
|
|
93
|
+
export class Counter extends Context.Opaque()("Counter", { make: Effect.succeed({ a: 0 }) }) {
|
|
94
94
|
}
|
|
95
|
-
export class
|
|
95
|
+
export class CustomError1 extends TaggedErrorClass()("CustomError1", {}) {
|
|
96
96
|
}
|
|
97
|
-
|
|
97
|
+
export class CustomError2 extends TaggedErrorClass()("CustomError2", {}) {
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9maXh0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRXBELE1BQU0sT0FBTyxXQUFZLFNBQVEsT0FBTyxDQUFDLFNBQVMsQ0FBMkIsYUFBYSxDQUFDLENBQ3pGLENBQUMsQ0FBQyxLQUFLLENBQWMsYUFBYSxDQUFDLENBQUM7SUFDbEMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNO0lBQ1osS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztDQUN6QixDQUFDLENBQ0g7Q0FDQTtBQUVELE1BQU0sT0FBTyxJQUFLLFNBQVEsT0FBTyxDQUFDLE1BQU0sRUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztDQUFHO0FBQy9GLE1BQU0sT0FBTyxRQUFTLFNBQVEsT0FBTyxDQUFDLE1BQU0sRUFBWSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztDQUFHO0FBQzNHLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.test.d.ts","sourceRoot":"","sources":["../query.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"query.test.d.ts","sourceRoot":"","sources":["../query.test.ts"],"names":[],"mappings":"AAIA,OAAO,EAA8C,CAAC,EAAU,MAAM,YAAY,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBlF,qBAAa,SAAU,SAAQ,cAM7B;CAAG;AACL,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC,CAAC;IAElC,UAAiB,OAAQ,SAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,SAAS,CAAC;KAAG;CACtE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rawQuery.test.d.ts","sourceRoot":"","sources":["../rawQuery.test.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"rawQuery.test.d.ts","sourceRoot":"","sources":["../rawQuery.test.ts"],"names":[],"mappings":"AACA,OAAO,EAA+C,cAAc,EAAmC,MAAM,YAAY,CAAA;AASzH,eAAO,MAAM,EAAE,6CAWb,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository-ext.test.d.ts","sourceRoot":"","sources":["../repository-ext.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requires.test.d.ts","sourceRoot":"","sources":["../requires.test.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"requires.test.d.ts","sourceRoot":"","sources":["../requires.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,EAAU,IAAI,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAIhD,OAAO,EAAE,cAAc,EAAyC,YAAY,EAAoB,IAAI,EAAE,kBAAkB,EAA0B,cAAc,EAAmC,IAAI,EAAY,MAAM,eAAe,CAAA;;cAGnK,IAAI;;AADzE,qBAAa,sBACX,SAAQ,2BAA8F;IAEtG,MAAM,CAAC,OAAO,oDASZ;CACH;AAqBD,eAAO,MAAM,eAAe;;;;;;;;;;SAMK,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router-generator.test.d.ts","sourceRoot":"","sources":["../router-generator.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routing-interruptibility.test.d.ts","sourceRoot":"","sources":["../routing-interruptibility.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc-e2e-invalidation.test.d.ts","sourceRoot":"","sources":["../rpc-e2e-invalidation.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-multi-middleware.test.d.ts","sourceRoot":"","sources":["../rpc-multi-middleware.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,
|
|
1
|
+
{"version":3,"file":"rpc-multi-middleware.test.d.ts","sourceRoot":"","sources":["../rpc-multi-middleware.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,EAAe,MAAM,QAAQ,CAAA;AAC5D,OAAO,EAAW,IAAI,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAIpD,OAAO,EAAE,GAAG,EAAE,SAAS,EAAkD,MAAM,qBAAqB,CAAA;AAGpG,OAAO,EAAE,cAAc,EAAyC,YAAY,EAA0B,kBAAkB,EAA0B,cAAc,EAAmC,IAAI,EAAY,WAAW,EAAE,MAAM,eAAe,CAAA;AAErP,QAAA,MAAM,UAAU;;;;;;;;;;oCAImB,CAAA;AAGnC,qBAAa,oBAAqB,SAAQ,UAAU;CAAG;;;;;;;;;;;;AAEvD,cAAM,UAAW,SAAQ,eAMkB;CACzC;AAsCF,eAAO,MAAM,OAAO,iEAMhB,CAAA;AAgBJ,eAAO,MAAM,YAAY,2HAItB,CAAA;AAEH,eAAO,MAAM,YAAY,yIAgB2B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc-stream-fullstack.test.d.ts","sourceRoot":"","sources":["../rpc-stream-fullstack.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-store.test.d.ts","sourceRoot":"","sources":["../sql-store.test.ts"],"names":[],"mappings":""}
|