effect-app 4.0.0-beta.2 → 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.
Files changed (224) hide show
  1. package/CHANGELOG.md +960 -0
  2. package/dist/Array.d.ts +1 -1
  3. package/dist/Chunk.d.ts +1 -1
  4. package/dist/Chunk.d.ts.map +1 -1
  5. package/dist/Config/SecretURL.d.ts +1 -1
  6. package/dist/Config/SecretURL.d.ts.map +1 -1
  7. package/dist/Config/SecretURL.js +2 -2
  8. package/dist/Config/internal/configSecretURL.d.ts +1 -1
  9. package/dist/Config/internal/configSecretURL.d.ts.map +1 -1
  10. package/dist/Config.d.ts +7 -0
  11. package/dist/Config.d.ts.map +1 -0
  12. package/dist/Config.js +6 -0
  13. package/dist/ConfigProvider.d.ts +39 -0
  14. package/dist/ConfigProvider.d.ts.map +1 -0
  15. package/dist/ConfigProvider.js +42 -0
  16. package/dist/Context.d.ts +40 -0
  17. package/dist/Context.d.ts.map +1 -0
  18. package/dist/Context.js +67 -0
  19. package/dist/Effect.d.ts +9 -10
  20. package/dist/Effect.d.ts.map +1 -1
  21. package/dist/Effect.js +3 -6
  22. package/dist/Function.d.ts +1 -1
  23. package/dist/Function.d.ts.map +1 -1
  24. package/dist/Inputify.type.d.ts +1 -1
  25. package/dist/Layer.d.ts +7 -6
  26. package/dist/Layer.d.ts.map +1 -1
  27. package/dist/Layer.js +1 -1
  28. package/dist/NonEmptySet.d.ts +1 -1
  29. package/dist/NonEmptySet.d.ts.map +1 -1
  30. package/dist/Option.d.ts +1 -1
  31. package/dist/Option.d.ts.map +1 -1
  32. package/dist/Pure.d.ts +5 -5
  33. package/dist/Pure.d.ts.map +1 -1
  34. package/dist/Pure.js +13 -13
  35. package/dist/Schema/Class.d.ts +66 -20
  36. package/dist/Schema/Class.d.ts.map +1 -1
  37. package/dist/Schema/Class.js +189 -22
  38. package/dist/Schema/FastCheck.d.ts +1 -1
  39. package/dist/Schema/FastCheck.d.ts.map +1 -1
  40. package/dist/Schema/Methods.d.ts +1 -1
  41. package/dist/Schema/SchemaParser.d.ts +5 -0
  42. package/dist/Schema/SchemaParser.d.ts.map +1 -0
  43. package/dist/Schema/SchemaParser.js +6 -0
  44. package/dist/Schema/SpecialJsonSchema.d.ts +33 -0
  45. package/dist/Schema/SpecialJsonSchema.d.ts.map +1 -0
  46. package/dist/Schema/SpecialJsonSchema.js +122 -0
  47. package/dist/Schema/SpecialOpenApi.d.ts +32 -0
  48. package/dist/Schema/SpecialOpenApi.d.ts.map +1 -0
  49. package/dist/Schema/SpecialOpenApi.js +123 -0
  50. package/dist/Schema/brand.d.ts +14 -6
  51. package/dist/Schema/brand.d.ts.map +1 -1
  52. package/dist/Schema/brand.js +1 -1
  53. package/dist/Schema/email.d.ts +1 -1
  54. package/dist/Schema/email.d.ts.map +1 -1
  55. package/dist/Schema/email.js +9 -5
  56. package/dist/Schema/ext.d.ts +121 -48
  57. package/dist/Schema/ext.d.ts.map +1 -1
  58. package/dist/Schema/ext.js +134 -52
  59. package/dist/Schema/moreStrings.d.ts +117 -17
  60. package/dist/Schema/moreStrings.d.ts.map +1 -1
  61. package/dist/Schema/moreStrings.js +19 -18
  62. package/dist/Schema/numbers.d.ts +127 -15
  63. package/dist/Schema/numbers.d.ts.map +1 -1
  64. package/dist/Schema/numbers.js +10 -12
  65. package/dist/Schema/phoneNumber.d.ts +1 -1
  66. package/dist/Schema/phoneNumber.d.ts.map +1 -1
  67. package/dist/Schema/phoneNumber.js +8 -4
  68. package/dist/Schema/schema.d.ts +1 -1
  69. package/dist/Schema/strings.d.ts +37 -5
  70. package/dist/Schema/strings.d.ts.map +1 -1
  71. package/dist/Schema/strings.js +1 -5
  72. package/dist/Schema.d.ts +159 -58
  73. package/dist/Schema.d.ts.map +1 -1
  74. package/dist/Schema.js +136 -68
  75. package/dist/Set.d.ts +1 -1
  76. package/dist/Set.d.ts.map +1 -1
  77. package/dist/TypeTest.d.ts +1 -1
  78. package/dist/Types.d.ts +1 -1
  79. package/dist/Widen.type.d.ts +1 -1
  80. package/dist/_ext/Array.d.ts +1 -1
  81. package/dist/_ext/Array.d.ts.map +1 -1
  82. package/dist/_ext/date.d.ts +1 -1
  83. package/dist/_ext/misc.d.ts +1 -1
  84. package/dist/_ext/ord.ext.d.ts +1 -1
  85. package/dist/_ext/ord.ext.d.ts.map +1 -1
  86. package/dist/builtin.d.ts +1 -1
  87. package/dist/builtin.d.ts.map +1 -1
  88. package/dist/client/InvalidationKeys.d.ts +29 -0
  89. package/dist/client/InvalidationKeys.d.ts.map +1 -0
  90. package/dist/client/InvalidationKeys.js +33 -0
  91. package/dist/client/apiClientFactory.d.ts +18 -32
  92. package/dist/client/apiClientFactory.d.ts.map +1 -1
  93. package/dist/client/apiClientFactory.js +98 -36
  94. package/dist/client/clientFor.d.ts +51 -17
  95. package/dist/client/clientFor.d.ts.map +1 -1
  96. package/dist/client/clientFor.js +9 -1
  97. package/dist/client/errors.d.ts +49 -25
  98. package/dist/client/errors.d.ts.map +1 -1
  99. package/dist/client/errors.js +43 -17
  100. package/dist/client/makeClient.d.ts +468 -32
  101. package/dist/client/makeClient.d.ts.map +1 -1
  102. package/dist/client/makeClient.js +61 -34
  103. package/dist/client.d.ts +2 -1
  104. package/dist/client.d.ts.map +1 -1
  105. package/dist/client.js +2 -1
  106. package/dist/faker.d.ts +1 -1
  107. package/dist/faker.d.ts.map +1 -1
  108. package/dist/http/Request.d.ts +2 -2
  109. package/dist/http/Request.d.ts.map +1 -1
  110. package/dist/http/Request.js +5 -5
  111. package/dist/http/internal/lib.d.ts +1 -1
  112. package/dist/http.d.ts +1 -1
  113. package/dist/ids.d.ts +9 -9
  114. package/dist/ids.d.ts.map +1 -1
  115. package/dist/ids.js +3 -2
  116. package/dist/index.d.ts +5 -9
  117. package/dist/index.d.ts.map +1 -1
  118. package/dist/index.js +6 -9
  119. package/dist/logger.d.ts +1 -1
  120. package/dist/middleware.d.ts +16 -9
  121. package/dist/middleware.d.ts.map +1 -1
  122. package/dist/middleware.js +13 -9
  123. package/dist/rpc/Invalidation.d.ts +397 -0
  124. package/dist/rpc/Invalidation.d.ts.map +1 -0
  125. package/dist/rpc/Invalidation.js +150 -0
  126. package/dist/rpc/MiddlewareMaker.d.ts +6 -5
  127. package/dist/rpc/MiddlewareMaker.d.ts.map +1 -1
  128. package/dist/rpc/MiddlewareMaker.js +51 -28
  129. package/dist/rpc/RpcContextMap.d.ts +3 -3
  130. package/dist/rpc/RpcContextMap.d.ts.map +1 -1
  131. package/dist/rpc/RpcContextMap.js +4 -4
  132. package/dist/rpc/RpcMiddleware.d.ts +6 -5
  133. package/dist/rpc/RpcMiddleware.d.ts.map +1 -1
  134. package/dist/rpc/RpcMiddleware.js +1 -1
  135. package/dist/rpc.d.ts +2 -2
  136. package/dist/rpc.d.ts.map +1 -1
  137. package/dist/rpc.js +2 -2
  138. package/dist/transform.d.ts +1 -1
  139. package/dist/transform.d.ts.map +1 -1
  140. package/dist/transform.js +3 -3
  141. package/dist/utils/effectify.d.ts +1 -1
  142. package/dist/utils/extend.d.ts +1 -1
  143. package/dist/utils/extend.d.ts.map +1 -1
  144. package/dist/utils/gen.d.ts +2 -2
  145. package/dist/utils/gen.d.ts.map +1 -1
  146. package/dist/utils/logLevel.d.ts +2 -2
  147. package/dist/utils/logLevel.d.ts.map +1 -1
  148. package/dist/utils/logger.d.ts +3 -3
  149. package/dist/utils/logger.d.ts.map +1 -1
  150. package/dist/utils/logger.js +3 -3
  151. package/dist/utils.d.ts +48 -10
  152. package/dist/utils.d.ts.map +1 -1
  153. package/dist/utils.js +33 -8
  154. package/dist/validation/validators.d.ts +1 -1
  155. package/dist/validation/validators.d.ts.map +1 -1
  156. package/dist/validation.d.ts +1 -1
  157. package/dist/validation.d.ts.map +1 -1
  158. package/package.json +46 -28
  159. package/src/Config/SecretURL.ts +2 -1
  160. package/src/Config.ts +14 -0
  161. package/src/ConfigProvider.ts +48 -0
  162. package/src/{ServiceMap.ts → Context.ts} +58 -64
  163. package/src/Effect.ts +12 -14
  164. package/src/Layer.ts +6 -5
  165. package/src/Pure.ts +17 -18
  166. package/src/Schema/Class.ts +268 -62
  167. package/src/Schema/SchemaParser.ts +12 -0
  168. package/src/Schema/SpecialJsonSchema.ts +137 -0
  169. package/src/Schema/SpecialOpenApi.ts +130 -0
  170. package/src/Schema/brand.ts +21 -7
  171. package/src/Schema/email.ts +10 -3
  172. package/src/Schema/ext.ts +226 -86
  173. package/src/Schema/moreStrings.ts +37 -32
  174. package/src/Schema/numbers.ts +14 -16
  175. package/src/Schema/phoneNumber.ts +8 -2
  176. package/src/Schema/strings.ts +4 -8
  177. package/src/Schema.ts +350 -107
  178. package/src/client/InvalidationKeys.ts +50 -0
  179. package/src/client/apiClientFactory.ts +227 -136
  180. package/src/client/clientFor.ts +86 -29
  181. package/src/client/errors.ts +61 -26
  182. package/src/client/makeClient.ts +530 -80
  183. package/src/client.ts +1 -0
  184. package/src/http/Request.ts +7 -4
  185. package/src/ids.ts +3 -2
  186. package/src/index.ts +5 -11
  187. package/src/middleware.ts +12 -10
  188. package/src/rpc/Invalidation.ts +221 -0
  189. package/src/rpc/MiddlewareMaker.ts +61 -51
  190. package/src/rpc/README.md +2 -2
  191. package/src/rpc/RpcContextMap.ts +6 -5
  192. package/src/rpc/RpcMiddleware.ts +6 -5
  193. package/src/rpc.ts +1 -1
  194. package/src/transform.ts +2 -2
  195. package/src/utils/gen.ts +1 -1
  196. package/src/utils/logger.ts +2 -2
  197. package/src/utils.ts +73 -15
  198. package/test/dist/moreStrings.test.d.ts.map +1 -0
  199. package/test/dist/rpc.test.d.ts.map +1 -1
  200. package/test/dist/secretURL.test.d.ts.map +1 -0
  201. package/test/dist/special.test.d.ts.map +1 -0
  202. package/test/moreStrings.test.ts +17 -0
  203. package/test/rpc.test.ts +38 -6
  204. package/test/schema.test.ts +609 -4
  205. package/test/secretURL.test.ts +157 -0
  206. package/test/special.test.ts +1023 -0
  207. package/test/utils.test.ts +6 -6
  208. package/tsconfig.base.json +3 -4
  209. package/tsconfig.json +0 -1
  210. package/tsconfig.json.bak +2 -2
  211. package/tsconfig.src.json +29 -29
  212. package/tsconfig.test.json +2 -2
  213. package/dist/Operations.d.ts +0 -87
  214. package/dist/Operations.d.ts.map +0 -1
  215. package/dist/Operations.js +0 -29
  216. package/dist/ServiceMap.d.ts +0 -44
  217. package/dist/ServiceMap.d.ts.map +0 -1
  218. package/dist/ServiceMap.js +0 -91
  219. package/dist/Struct.d.ts +0 -44
  220. package/dist/Struct.d.ts.map +0 -1
  221. package/dist/Struct.js +0 -29
  222. package/eslint.config.mjs +0 -26
  223. package/src/Operations.ts +0 -55
  224. package/src/Struct.ts +0 -54
@@ -1,43 +1,45 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import * as Config from "effect/Config";
3
- import { flow } from "effect/Function";
2
+ import { constant, flow } from "effect/Function";
4
3
  import * as Layer from "effect/Layer";
5
4
  import * as ManagedRuntime from "effect/ManagedRuntime";
5
+ import * as Option from "effect/Option";
6
6
  import * as Predicate from "effect/Predicate";
7
7
  import * as Schema from "effect/Schema";
8
+ import * as Stream from "effect/Stream";
8
9
  import * as Struct from "effect/Struct";
9
- import { Rpc, RpcClient, RpcGroup, RpcSerialization } from "effect/unstable/rpc";
10
+ import { Rpc, RpcClient, RpcGroup, RpcMiddleware, RpcSerialization } from "effect/unstable/rpc";
11
+ import * as Config from "../Config.js";
12
+ import * as Context from "../Context.js";
10
13
  import * as Effect from "../Effect.js";
11
14
  import { HttpClient, HttpClientRequest } from "../http.js";
12
- import * as Option from "../Option.js";
13
- import * as ServiceMap from "../ServiceMap.js";
15
+ import { Invalidation } from "../rpc.js";
14
16
  import { typedKeysOf, typedValuesOf } from "../utils.js";
17
+ import { InvalidationKeysFromServer } from "./InvalidationKeys.js";
15
18
  export const DefaultApiConfig = Config.all({
16
19
  url: Config.string("apiUrl").pipe(Config.withDefault("/api")),
17
20
  headers: Config
18
21
  .schema(Config.Record(Schema.String, Schema.String), "headers")
19
22
  .pipe(Config.option)
20
23
  });
21
- class RequestName extends ServiceMap.Reference("RequestName", {
24
+ class RequestName extends Context.Reference("RequestName", {
22
25
  defaultValue: () => ({ requestName: "Unspecified", moduleName: "Error" })
23
26
  }) {
24
27
  }
25
28
  export const HttpClientLayer = (config) => Layer.effect(HttpClient.HttpClient, Effect
26
29
  .gen(function* () {
27
30
  const baseClient = yield* HttpClient.HttpClient;
28
- const ctx = yield* RequestName;
29
- const client = baseClient.pipe(HttpClient.mapRequest(HttpClientRequest.prependUrl(config.url + "/rpc")), HttpClient.mapRequest(HttpClientRequest.setHeaders(config.headers.pipe(Option.getOrElse(() => ({}))))), HttpClient.mapRequest((req) => flow(HttpClientRequest.appendUrlParam("action", ctx.requestName), HttpClientRequest.appendUrl("/" + ctx.moduleName))(req)));
31
+ const client = baseClient.pipe(HttpClient.mapRequest(HttpClientRequest.prependUrl(config.url + "/rpc")), HttpClient.mapRequest(HttpClientRequest.setHeaders(config.headers.pipe(Option.getOrElse(() => ({}))))), HttpClient.mapRequestEffect((req) => Effect.map(RequestName.asEffect(), (ctx) => flow(HttpClientRequest.appendUrlParam("action", ctx.requestName), HttpClientRequest.appendUrl("/" + ctx.moduleName))(req))));
30
32
  return client;
31
33
  }));
32
34
  export const HttpClientFromConfigLayer = Layer.unwrap(Effect.gen(function* () {
33
35
  const config = yield* DefaultApiConfig;
34
36
  return HttpClientLayer(config);
35
37
  }));
36
- export const RpcSerializationLayer = (config) => Layer.mergeAll(RpcSerialization.layerJson, HttpClientLayer(config));
38
+ export const RpcSerializationLayer = (config) => Layer.mergeAll(RpcSerialization.layerNdjson, HttpClientLayer(config));
37
39
  const getFiltered = (resource) => {
38
40
  // TODO: Record.filter
39
41
  const filtered = typedKeysOf(resource).reduce((acc, cur) => {
40
- if (Predicate.isObject(resource[cur])
42
+ if (Predicate.isObjectKeyword(resource[cur])
41
43
  && (resource[cur].success)) {
42
44
  acc[cur] = resource[cur];
43
45
  }
@@ -46,35 +48,57 @@ const getFiltered = (resource) => {
46
48
  return filtered;
47
49
  };
48
50
  export const getMeta = (resource) => {
49
- const meta = resource.meta;
50
- if (!meta)
51
- throw new Error("No meta defined in Resource!");
52
- return meta;
51
+ const first = typedValuesOf(getFiltered(resource))[0];
52
+ if (first && "moduleName" in first)
53
+ return { moduleName: first.moduleName };
54
+ throw new Error("No moduleName on requests!");
53
55
  };
54
56
  export const makeRpcGroupFromRequestsAndModuleName = (resource, moduleName) => {
55
57
  const filtered = getFiltered(resource);
56
58
  const rpcs = RpcGroup
57
59
  .make(...typedValuesOf(filtered).map((_) => {
58
- return Rpc.make(_._tag, { payload: _, success: _.success, error: _.error });
60
+ const r = _;
61
+ const isStream = r.stream;
62
+ const isCommand = r.type === "command";
63
+ const rpc = (isCommand
64
+ ? isStream
65
+ ? Invalidation.makeStreamRpc(r._tag, {
66
+ payload: r,
67
+ success: r.success,
68
+ error: r.error,
69
+ stream: true
70
+ })
71
+ : Invalidation.makeCommandRpc(r._tag, { payload: r, success: r.success, error: r.error })
72
+ : Rpc.make(r._tag, { payload: r, success: r.success, error: r.error, stream: isStream }));
73
+ // Stream rpcs force `errorSchema = Never` in effect-rpc and bury the
74
+ // resource error union inside `StreamFailureChunk`. Middleware-thrown
75
+ // errors (e.g. `NotLoggedInError` from auth) reach the Cause un-wrapped
76
+ // and would fail client decode. Attach a synthetic schema-only middleware
77
+ // tag carrying the resource error union so `Rpc.exitSchema` includes it
78
+ // in the failure union via the `rpc.middlewares[*].error` channel.
79
+ if (isStream && r.error) {
80
+ const ErrorBag = RpcMiddleware.Service()(`${moduleName}.${r._tag}.ClientErrorBag`, { error: r.error });
81
+ return rpc.middleware(ErrorBag);
82
+ }
83
+ return rpc;
59
84
  }))
60
85
  .prefix(`${moduleName}.`);
61
86
  return rpcs;
62
87
  };
63
- export const makeRpcGroup = (resource) => makeRpcGroupFromRequestsAndModuleName(resource, resource.meta.moduleName);
64
88
  const makeRpcTag = (resource) => {
65
89
  const meta = getMeta(resource);
66
90
  const rpcs = makeRpcGroupFromRequestsAndModuleName(resource, meta.moduleName);
67
91
  // Use Object.assign instead of class extension to avoid TS2509 with complex generic return types.
68
92
  // The first type arg is `any` because this is a dynamically created tag — its identity is the string key.
69
- const TheClient = ServiceMap.Opaque()(`RpcClient.${meta.moduleName}`);
93
+ const TheClient = Context.Opaque()(`RpcClient.${meta.moduleName}`);
70
94
  // Use Layer.effect directly (not TheClient.toLayer) so TypeScript properly excludes Scope
71
- const layer = Layer.effect(TheClient, Effect.map(RpcClient.make(rpcs, { spanPrefix: "RpcClient." + meta.moduleName }), (cl) => cl[meta.moduleName]));
95
+ const layer = Layer.effect(TheClient, RpcClient.make(rpcs, { spanPrefix: "RpcClient." + meta.moduleName }));
72
96
  return Object.assign(TheClient, { layer });
73
97
  };
74
98
  const makeApiClientFactory = Effect
75
99
  .gen(function* () {
76
- const ctx = yield* Effect.services();
77
- const makeClientFor = (resource, requestLevelLayers = Layer.empty, options) => Effect.gen(function* () {
100
+ const ctx = yield* Effect.context();
101
+ const makeClientFor = Effect.fnUntraced(function* (resource, requestLevelLayers = Layer.empty, options) {
78
102
  const TheClient = makeRpcTag(resource);
79
103
  const meta = getMeta(resource);
80
104
  // TODO: somehow we need a protocol per REQUEST kind of it seems ...
@@ -83,15 +107,29 @@ const makeApiClientFactory = Effect
83
107
  // add ApiClientFactory for nested schemas
84
108
  // eslint-disable-next-line @typescript-eslint/no-use-before-define
85
109
  Layer.provide(Layer.succeed(ApiClientFactory, makeClientForCached)), Layer.provide(RpcClient
86
- .layerProtocolHttp({
87
- url: "" // why not here set meta.moduleName as root?
88
- })
89
- .pipe(Layer.provideMerge(Layer.succeedServices(ctx)))));
110
+ .layerProtocolHttp({ url: "" }) // why not here set meta.moduleName as root?
111
+ .pipe(Layer.provideMerge(Layer.succeedContext(ctx)))));
90
112
  const mr = ManagedRuntime.make(clientLayer);
91
113
  const filtered = getFiltered(resource);
114
+ const unwrapCommand = (eff) => eff.pipe(Effect.flatMap((result) => Effect.gen(function* () {
115
+ const keys = result?.metadata?.invalidateQueries ?? [];
116
+ const invalidationKeys = yield* InvalidationKeysFromServer;
117
+ yield* Effect.forEach(keys, (key) => invalidationKeys.add(key), { discard: true });
118
+ return result.payload;
119
+ })),
120
+ // V2: unwrap CommandFailureWithMetaData failures — forward keys, re-fail with the
121
+ // original error so callers see the unmodified error type.
122
+ Effect.catch((result) => result?._tag === "CommandFailureWithMetaData"
123
+ ? Effect.gen(function* () {
124
+ const keys = result.metadata?.invalidateQueries ?? [];
125
+ const invalidationKeys = yield* InvalidationKeysFromServer;
126
+ yield* Effect.forEach(keys, (key) => invalidationKeys.add(key), { discard: true });
127
+ return yield* Effect.fail(result.error);
128
+ })
129
+ : Effect.fail(result)));
92
130
  return {
93
131
  mr,
94
- client: (typedKeysOf(filtered)
132
+ client: typedKeysOf(filtered)
95
133
  .reduce((prev, cur) => {
96
134
  const h = filtered[cur];
97
135
  const Request = h;
@@ -108,23 +146,47 @@ const makeApiClientFactory = Effect
108
146
  });
109
147
  const layers = requestLevelLayers.pipe(Layer.provideMerge(requestNameLayer));
110
148
  const fields = Struct.omit(Request.fields, ["_tag"]);
111
- const requestAttr = h._tag;
149
+ const requestAttr = `${meta.moduleName}.${h._tag}`;
150
+ const isCommand = h.type === "command";
151
+ const isStream = h.stream;
152
+ const buildEffect = (input) => mr.contextEffect.pipe(Effect.flatMap((svcs) => {
153
+ const rpcEffect = TheClient
154
+ .use((client) => client[requestAttr](Request.make(input)))
155
+ .pipe(Effect.provide(layers), Effect.provide(svcs));
156
+ return isCommand ? unwrapCommand(rpcEffect) : rpcEffect;
157
+ }));
158
+ const buildStream = (input) => Stream.unwrap(mr.contextEffect.pipe(Effect.flatMap((svcs) => TheClient
159
+ .useSync((client) => {
160
+ const rpcStream = client[requestAttr](Request.make(input));
161
+ return rpcStream.pipe(
162
+ // Collect server invalidation keys from the "done" chunk, then discard it.
163
+ Stream.tap((item) => item._tag === "done" || item._tag === "metadata"
164
+ ? InvalidationKeysFromServer.use((svc) => Effect.forEach(item.metadata.invalidateQueries, svc.add, { discard: true }))
165
+ : Effect.void), Stream.filter((item) => item._tag === "value"), Stream.map((item) => item.value),
166
+ // V2: unwrap StreamFailureChunk — forward keys from failures too,
167
+ // then re-fail with the original error so callers see the unmodified
168
+ // error type.
169
+ Stream.catch((err) => err?._tag === "error" && err?.metadata
170
+ ? Stream.fromEffect(InvalidationKeysFromServer.use((svc) => Effect
171
+ .forEach(err.metadata.invalidateQueries, svc.add, { discard: true })
172
+ .pipe(Effect.flatMap(() => Effect.fail(err.error)))))
173
+ : Stream.fail(err)), Stream.provide(layers), Stream.provide(svcs));
174
+ })
175
+ .pipe(Effect.provide(svcs)))));
112
176
  // @ts-expect-error doc
113
177
  prev[cur] = Object.keys(fields).length === 0
114
178
  ? {
115
- handler: mr.servicesEffect.pipe(Effect.flatMap((svcs) => TheClient
116
- .use((client) => client[requestAttr](new Request()))
117
- .pipe(Effect.provide(layers), Effect.provide(svcs)))),
179
+ handler: isStream ? constant(buildStream({})) : constant(buildEffect({})),
118
180
  ...requestMeta
119
181
  }
120
182
  : {
121
- handler: (req) => mr.servicesEffect.pipe(Effect.flatMap((svcs) => TheClient
122
- .use((client) => client[requestAttr](new Request(req)))
123
- .pipe(Effect.provide(layers), Effect.provide(svcs)))),
183
+ handler: isStream
184
+ ? (req) => buildStream(req)
185
+ : (req) => buildEffect(req),
124
186
  ...requestMeta
125
187
  };
126
188
  return prev;
127
- }, {}))
189
+ }, {})
128
190
  };
129
191
  });
130
192
  const register = [];
@@ -136,7 +198,7 @@ const makeApiClientFactory = Effect
136
198
  cache = new Map();
137
199
  cacheL.set(requestLevelLayers, cache);
138
200
  }
139
- return (models) => Effect.gen(function* () {
201
+ return Effect.fnUntraced(function* (models) {
140
202
  const found = cache.get(models);
141
203
  if (found) {
142
204
  return found;
@@ -152,7 +214,7 @@ const makeApiClientFactory = Effect
152
214
  /**
153
215
  * Used to create clients for resource modules.
154
216
  */
155
- export class ApiClientFactory extends ServiceMap.Opaque()("ApiClientFactory") {
217
+ export class ApiClientFactory extends Context.Opaque()("ApiClientFactory") {
156
218
  static layer = (config) => ApiClientFactory.toLayer(makeApiClientFactory).pipe(Layer.provide(RpcSerializationLayer(config)));
157
219
  static layerFromConfig = Layer.unwrap(Effect.gen(function* () {
158
220
  const config = yield* DefaultApiConfig;
@@ -163,4 +225,4 @@ export class ApiClientFactory extends ServiceMap.Opaque()("ApiClientFactory") {
163
225
  return f(resource);
164
226
  });
165
227
  }
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpQ2xpZW50RmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvYXBpQ2xpZW50RmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFDdkMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ3RDLE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBQ3JDLE9BQU8sS0FBSyxjQUFjLE1BQU0sdUJBQXVCLENBQUE7QUFDdkQsT0FBTyxLQUFLLFNBQVMsTUFBTSxrQkFBa0IsQ0FBQTtBQUM3QyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNoRixPQUFPLEtBQUssTUFBTSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzFELE9BQU8sS0FBSyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBRXRDLE9BQU8sS0FBSyxVQUFVLE1BQU0sa0JBQWtCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFReEQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUN6QyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3RCxPQUFPLEVBQUUsTUFBTTtTQUNaLE1BQU0sQ0FDTCxNQUFNLENBQUMsTUFBTSxDQUFD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
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpQ2xpZW50RmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvYXBpQ2xpZW50RmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUNoRCxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEtBQUssY0FBYyxNQUFNLHVCQUF1QixDQUFBO0FBQ3ZELE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sS0FBSyxTQUFTLE1BQU0sa0JBQWtCLENBQUE7QUFDN0MsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFDdkMsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFDdkMsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFDdkMsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQy9GLE9BQU8sS0FBSyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBQ3RDLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sS0FBSyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUV4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUV4RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQU9sRSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQ3pDLEdBQUcs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
@@ -1,41 +1,75 @@
1
- import type * as Request from "effect/Request";
1
+ import type * as Stream from "effect/Stream";
2
2
  import type { Path } from "path-parser";
3
3
  import type * as Effect from "../Effect.js";
4
4
  import type * as S from "../Schema.js";
5
5
  import { type Req } from "./apiClientFactory.js";
6
6
  export declare function makePathWithQuery(path: Path, pars: Record<string, string | number | boolean | readonly string[] | readonly number[] | readonly boolean[] | null>): string;
7
7
  export declare function makePathWithBody(path: Path, pars: Record<string, string | number | boolean | readonly string[] | readonly number[] | readonly boolean[] | null>): string;
8
- export type Requests<ModuleName extends string = string> = {
9
- meta: {
10
- moduleName: ModuleName;
11
- };
12
- } & RequestsAny;
8
+ export type Requests = RequestsAny;
13
9
  export type RequestsAny = Record<string, any>;
10
+ export type ExtractModuleName<M extends RequestsAny> = {
11
+ [K in keyof M]: M[K] extends {
12
+ moduleName: infer N extends string;
13
+ } ? N : never;
14
+ }[keyof M] extends infer R extends string ? R : string;
14
15
  export type Client<M extends RequestsAny, ModuleName extends string> = RequestHandlers<never, never, M, ModuleName>;
15
16
  export type ExtractResponse<T> = T extends S.Codec<any> ? S.Schema.Type<T> : T extends unknown ? void : never;
16
17
  export type ExtractEResponse<T> = T extends S.Codec<any> ? S.Codec.Encoded<T> : T extends unknown ? void : never;
17
- type IsEmpty<T> = keyof T extends never ? true : false;
18
- type Cruft = "_tag" | keyof Request.Request<any, any, any>;
19
18
  export interface ClientForOptions {
20
19
  readonly skipQueryKey?: readonly string[];
21
20
  }
22
- export interface RequestHandler<A, E, R, Request extends Req, Id extends string> {
23
- handler: Effect.Effect<A, E, R>;
21
+ export declare const makeQueryKey: ({ id, options }: {
22
+ id: string;
23
+ options?: ClientForOptions;
24
+ }) => [string, ...string[]];
25
+ export interface RequestHandlerWithInput<I, A, E, R, Request extends Req, Id extends string> {
26
+ handler: (i: I) => Effect.Effect<A, E, R>;
24
27
  id: Id;
25
28
  options?: ClientForOptions;
26
29
  Request: Request;
27
30
  }
28
- export interface RequestHandlerWithInput<I, A, E, R, Request extends Req, Id extends string> {
29
- handler: (i: I) => Effect.Effect<A, E, R>;
31
+ /** Type alias: a no-input handler is simply `RequestHandlerWithInput<void, …>`. */
32
+ export type RequestHandler<A, E, R, Request extends Req, Id extends string> = RequestHandlerWithInput<void, A, E, R, Request, Id>;
33
+ export interface RequestStreamHandlerWithInput<I, A, E, R, Request extends Req, Id extends string, Final = A> {
34
+ handler: (i: I) => Stream.Stream<A, E, R>;
30
35
  id: Id;
31
36
  options?: ClientForOptions;
32
37
  Request: Request;
38
+ /**
39
+ * Phantom type property (never set at runtime) that carries the `Final` type to
40
+ * `StreamMutationWithExtensions`. The tilde prefix follows the Effect convention for
41
+ * phantom/virtual properties and prevents accidental runtime access.
42
+ * Stream failures bubble through the execute effect's typed error channel `E`;
43
+ * the reactive `AsyncResult` ref also mirrors the failure for live progress UI.
44
+ */
45
+ readonly "~final"?: Final;
33
46
  }
34
- type ReqDecodingServices<M> = M extends {
35
- readonly "~decodingServices": infer DS;
36
- } ? DS : never;
47
+ /** Type alias: a no-input stream handler is simply `RequestStreamHandlerWithInput<void, …>`. */
48
+ export type RequestStreamHandler<A, E, R, Request extends Req, Id extends string, Final = A> = RequestStreamHandlerWithInput<void, A, E, R, Request, Id, Final>;
49
+ export type RequestInputFromMake<I extends {
50
+ readonly make: (...args: any[]) => any;
51
+ }> = Parameters<I["make"]> extends [
52
+ ] ? void : Parameters<I["make"]>[0];
53
+ type HasNoFields<I> = I extends {
54
+ readonly fields: infer F extends S.Struct.Fields;
55
+ } ? [Exclude<keyof F, "_tag">] extends [never] ? true : false : false;
56
+ type RequestInput<I extends {
57
+ readonly make: (...args: any[]) => any;
58
+ }> = Parameters<I["make"]>[0];
59
+ /**
60
+ * Caller-facing input type for a request. `void` when the request schema has no fields;
61
+ * otherwise `make`'s first param type.
62
+ */
63
+ export type HandlerInput<I extends {
64
+ readonly make: (...args: any[]) => any;
65
+ }> = HasNoFields<I> extends true ? void : RequestInput<I>;
66
+ /** Extracts the final-value type from a stream request. Defaults to the success type when no `final` schema is set. */
67
+ type FinalTypeOf<T extends Req> = T extends {
68
+ readonly final: infer F extends S.Top;
69
+ } ? S.Schema.Type<F> : S.Schema.Type<T["success"]>;
70
+ type RequestHandlerFor<R, E, T extends Req, Id extends string> = T["stream"] extends true ? RequestStreamHandlerWithInput<HandlerInput<T>, S.Schema.Type<T["success"]>, S.Schema.Type<T["error"]> | E, R | S.Codec.DecodingServices<T["success"]> | S.Codec.DecodingServices<T["error"]>, T, Id, FinalTypeOf<T>> : RequestHandlerWithInput<HandlerInput<T>, S.Schema.Type<T["success"]>, S.Schema.Type<T["error"]> | E, R | S.Codec.DecodingServices<T["success"]> | S.Codec.DecodingServices<T["error"]>, T, Id>;
37
71
  export type RequestHandlers<R, E, M extends RequestsAny, ModuleName extends string> = {
38
- [K in keyof M as M[K] extends Req ? K : never]: IsEmpty<Omit<S.Schema.Type<M[K]>, Cruft>> extends true ? RequestHandler<S.Schema.Type<M[K]["success"]>, S.Schema.Type<M[K]["error"]> | E, R | ReqDecodingServices<M[K]>, M[K], `${ModuleName}.${K & string}`> : RequestHandlerWithInput<Omit<S.Schema.Type<M[K]>, Cruft>, S.Schema.Type<M[K]["success"]>, S.Schema.Type<M[K]["error"]> | E, R | ReqDecodingServices<M[K]>, M[K], `${ModuleName}.${K & string}`>;
72
+ [K in keyof M as M[K] extends Req ? K : never]: Extract<M[K], Req> extends infer T extends Req ? RequestHandlerFor<R, E, T, `${ModuleName}.${K & string}`> : never;
39
73
  };
40
74
  export {};
41
- //# sourceMappingURL=clientFor.d.ts.map
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50Rm9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2NsaWVudEZvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEtBQUssS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQzVDLE9BQU8sS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUV2QyxPQUFPLEtBQUssS0FBSyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBQzNDLE9BQU8sS0FBSyxLQUFLLENBQUMsTUFBTSxjQUFjLENBQUE7QUFDdEMsT0FBTyxFQUFFLEtBQUssR0FBRyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFFaEQsd0JBQWdCLGlCQUFpQixDQUMvQixJQUFJLEVBQUUsSUFBSSxFQUNWLElBQUksRUFBRSxNQUFNLENBQ1YsTUFBTSxFQUNKLE1BQU0sR0FDTixNQUFNLEdBQ04sT0FBTyxHQUNQLFNBQVMsTUFBTSxFQUFFLEdBQ2pCLFNBQVMsTUFBTSxFQUFFLEdBQ2pCLFNBQVMsT0FBTyxFQUFFLEdBQ2xCLElBQUksQ0FDUCxVQVVGO0FBRUQsd0JBQWdCLGdCQUFnQixDQUM5QixJQUFJLEVBQUUsSUFBSSxFQUNWLElBQUksRUFBRSxNQUFNLENBQ1YsTUFBTSxFQUNKLE1BQU0sR0FDTixNQUFNLEdBQ04sT0FBTyxHQUNQLFNBQVMsTUFBTSxFQUFFLEdBQ2pCLFNBQVMsTUFBTSxFQUFFLEdBQ2pCLFNBQVMsT0FBTyxFQUFFLEdBQ2xCLElBQUksQ0FDUCxVQUdGO0FBRUQsTUFBTSxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUE7QUFDbEMsTUFBTSxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFBO0FBRTdDLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQyxDQUFDLFNBQVMsV0FBVyxJQUNqRDtLQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNB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
@@ -1 +1 @@
1
- {"version":3,"file":"clientFor.d.ts","sourceRoot":"","sources":["../../src/client/clientFor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clientFor.d.ts","sourceRoot":"","sources":["../../src/client/clientFor.ts"],"names":[],"mappings":"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"}
@@ -13,4 +13,12 @@ export function makePathWithQuery(path, pars) {
13
13
  export function makePathWithBody(path, pars) {
14
14
  return path.build(pars, { ignoreSearch: true, ignoreConstraints: true });
15
15
  }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50Rm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9jbGllbnRGb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMERBQTBEO0FBQzFELHVEQUF1RDtBQUV2RCxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUd2QyxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFLN0IsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixJQUFVLEVBQ1YsSUFTQztJQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3JFLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQSxDQUFDLHFIQUFxSDtJQUNySSxPQUFPLENBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDO1VBQy9ELENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNO1lBQ3RCLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUNSLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixJQUFVLEVBQ1YsSUFTQztJQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7QUFDMUUsQ0FBQyJ9
16
+ // $Project/$Configuration.Index
17
+ // -> "$Project", "$Configuration", "Index"
18
+ export const makeQueryKey = ({ id, options }) => id
19
+ .split("/")
20
+ .filter((segment) => !options || !options.skipQueryKey?.includes(segment))
21
+ .map((segment) => "$" + segment)
22
+ .join(".")
23
+ .split(".");
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50Rm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9jbGllbnRGb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMERBQTBEO0FBQzFELHVEQUF1RDtBQUV2RCxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUd2QyxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFLN0IsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixJQUFVLEVBQ1YsSUFTQztJQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3JFLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQSxDQUFDLHFIQUFxSDtJQUNySSxPQUFPLENBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDO1VBQy9ELENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNO1lBQ3RCLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUNSLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixJQUFVLEVBQ1YsSUFTQztJQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7QUFDMUUsQ0FBQztBQTZCRCxnQ0FBZ0M7QUFDaEMsMkNBQTJDO0FBQzNDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBOEMsRUFBRSxFQUFFLENBQzFGLEVBQUU7S0FDQyxLQUFLLENBQUMsR0FBRyxDQUFDO0tBQ1YsTUFBTSxDQUFDLENBQUMsT0FBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ2pGLEdBQUcsQ0FBQyxDQUFDLE9BQWUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQztLQUN2QyxJQUFJLENBQUMsR0FBRyxDQUFDO0tBQ1QsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBIn0=
@@ -1,12 +1,13 @@
1
1
  import * as Cause from "effect/Cause";
2
2
  import * as S from "../Schema.js";
3
- export declare const tryToJson: (error: {
4
- toJSON(): unknown;
5
- toString(): string;
6
- }) => unknown;
7
- declare const NotFoundError_base: S.ErrorClass<NotFoundError<ItemType>, S.TaggedStruct<"NotFoundError", {
8
- readonly type: S.String;
9
- readonly id: S.Unknown;
3
+ export declare const tryToJson: (error: unknown) => Record<string, unknown> | {
4
+ error: any;
5
+ };
6
+ declare const NotFoundError_base: S.EnhancedClass<NotFoundError<ItemType>, import("effect/Schema").Struct<{
7
+ readonly _tag: S.tag<"NotFoundError">;
8
+ } & {
9
+ type: S.String;
10
+ id: S.Unknown;
10
11
  }>, Cause.YieldableError>;
11
12
  export declare class NotFoundError<ItemType = string> extends NotFoundError_base {
12
13
  constructor(props: {
@@ -15,28 +16,38 @@ export declare class NotFoundError<ItemType = string> extends NotFoundError_base
15
16
  cause?: unknown;
16
17
  }, disableValidation?: boolean);
17
18
  get message(): string;
19
+ toString(): string;
18
20
  }
19
- declare const InvalidStateError_base: S.ErrorClass<InvalidStateError, S.TaggedStruct<"InvalidStateError", {
20
- readonly message: S.String;
21
+ declare const InvalidStateError_base: S.EnhancedClass<InvalidStateError, import("effect/Schema").Struct<{
22
+ readonly _tag: S.tag<"InvalidStateError">;
23
+ } & {
24
+ message: S.String;
21
25
  }>, Cause.YieldableError>;
22
26
  export declare class InvalidStateError extends InvalidStateError_base {
23
27
  constructor(messageOrObject: string | {
24
28
  message: string;
25
29
  cause?: unknown;
26
30
  }, disableValidation?: boolean);
31
+ toString(): string;
27
32
  }
28
- declare const ServiceUnavailableError_base: S.ErrorClass<ServiceUnavailableError, S.TaggedStruct<"ServiceUnavailableError", {
29
- readonly message: S.String;
33
+ declare const ServiceUnavailableError_base: S.EnhancedClass<ServiceUnavailableError, import("effect/Schema").Struct<{
34
+ readonly _tag: S.tag<"ServiceUnavailableError">;
35
+ } & {
36
+ message: S.String;
30
37
  }>, Cause.YieldableError>;
31
38
  export declare class ServiceUnavailableError extends ServiceUnavailableError_base {
32
39
  constructor(messageOrObject: string | {
33
40
  message: string;
34
41
  cause?: unknown;
35
42
  }, disableValidation?: boolean);
43
+ toString(): string;
36
44
  }
37
- declare const ValidationError_base: S.ErrorClass<ValidationError, S.TaggedStruct<"ValidationError", {
38
- readonly errors: S.$Array<S.Unknown> & {
39
- withDefault: S.withConstructorDefault<S.$Array<S.Unknown> & S.WithoutConstructorDefault>;
45
+ declare const ValidationError_base: S.EnhancedClass<ValidationError, import("effect/Schema").Struct<{
46
+ readonly _tag: S.tag<"ValidationError">;
47
+ } & {
48
+ errors: S.$Array<S.Unknown> & {
49
+ withDefault: S.withConstructorDefault<S.$Array<S.Unknown>>;
50
+ withDecodingDefaultType: S.withDecodingDefaultType<S.$Array<S.Unknown>>;
40
51
  };
41
52
  }>, Cause.YieldableError>;
42
53
  export declare class ValidationError extends ValidationError_base {
@@ -45,18 +56,24 @@ export declare class ValidationError extends ValidationError_base {
45
56
  cause?: unknown;
46
57
  }, disableValidation?: boolean);
47
58
  get message(): string;
59
+ toString(): string;
48
60
  }
49
- declare const NotLoggedInError_base: S.ErrorClass<NotLoggedInError, S.TaggedStruct<"NotLoggedInError", {
50
- readonly message: S.String;
61
+ declare const NotLoggedInError_base: S.EnhancedClass<NotLoggedInError, import("effect/Schema").Struct<{
62
+ readonly _tag: S.tag<"NotLoggedInError">;
63
+ } & {
64
+ message: S.String;
51
65
  }>, Cause.YieldableError>;
52
66
  export declare class NotLoggedInError extends NotLoggedInError_base {
53
67
  constructor(messageOrObject?: string | {
54
68
  message: string;
55
69
  cause?: unknown;
56
70
  }, disableValidation?: boolean);
71
+ toString(): string;
57
72
  }
58
- declare const LoginError_base: S.ErrorClass<LoginError, S.TaggedStruct<"NotLoggedInError", {
59
- readonly message: S.String;
73
+ declare const LoginError_base: S.EnhancedClass<LoginError, import("effect/Schema").Struct<{
74
+ readonly _tag: S.tag<"NotLoggedInError">;
75
+ } & {
76
+ message: S.String;
60
77
  }>, Cause.YieldableError>;
61
78
  /**
62
79
  * The user carries a valid Userprofile, but there is a problem with the login none the less.
@@ -66,15 +83,19 @@ export declare class LoginError extends LoginError_base {
66
83
  message: string;
67
84
  cause?: unknown;
68
85
  }, disableValidation?: boolean);
86
+ toString(): string;
69
87
  }
70
- declare const UnauthorizedError_base: S.ErrorClass<UnauthorizedError, S.TaggedStruct<"UnauthorizedError", {
71
- readonly message: S.String;
88
+ declare const UnauthorizedError_base: S.EnhancedClass<UnauthorizedError, import("effect/Schema").Struct<{
89
+ readonly _tag: S.tag<"UnauthorizedError">;
90
+ } & {
91
+ message: S.String;
72
92
  }>, Cause.YieldableError>;
73
93
  export declare class UnauthorizedError extends UnauthorizedError_base {
74
94
  constructor(messageOrObject?: string | {
75
95
  message: string;
76
96
  cause?: unknown;
77
97
  }, disableValidation?: boolean);
98
+ toString(): string;
78
99
  }
79
100
  type OptimisticConcurrencyDetails = {
80
101
  readonly type: string;
@@ -83,8 +104,10 @@ type OptimisticConcurrencyDetails = {
83
104
  readonly current?: string | undefined;
84
105
  readonly found?: string | undefined;
85
106
  };
86
- declare const OptimisticConcurrencyException_base: S.ErrorClass<OptimisticConcurrencyException, S.TaggedStruct<"OptimisticConcurrencyException", {
87
- readonly message: S.String;
107
+ declare const OptimisticConcurrencyException_base: S.EnhancedClass<OptimisticConcurrencyException, import("effect/Schema").Struct<{
108
+ readonly _tag: S.tag<"OptimisticConcurrencyException">;
109
+ } & {
110
+ message: S.String;
88
111
  }>, Cause.YieldableError>;
89
112
  export declare class OptimisticConcurrencyException extends OptimisticConcurrencyException_base {
90
113
  readonly details?: OptimisticConcurrencyDetails;
@@ -94,6 +117,7 @@ export declare class OptimisticConcurrencyException extends OptimisticConcurrenc
94
117
  cause?: unknown;
95
118
  raw?: unknown;
96
119
  }), disableValidation?: boolean);
120
+ toString(): string;
97
121
  }
98
122
  export declare const SupportedErrors: S.Union<readonly [typeof InvalidStateError, typeof OptimisticConcurrencyException, typeof NotFoundError, typeof NotLoggedInError, typeof LoginError, typeof UnauthorizedError, typeof ValidationError, typeof ServiceUnavailableError]>;
99
123
  export type SupportedErrors = S.Schema.Type<typeof SupportedErrors>;
@@ -122,8 +146,8 @@ export declare class CauseException<E> extends Error {
122
146
  toString(): string;
123
147
  }
124
148
  export declare const tryToReport: (error: {
125
- toReport(): unknown;
149
+ toReport(): Record<string, unknown>;
126
150
  toString(): string;
127
- }) => unknown;
151
+ }) => Record<string, unknown>;
128
152
  export {};
129
- //# sourceMappingURL=errors.d.ts.map
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEtBQUssQ0FBQyxNQUFNLGNBQWMsQ0FBQTtBQUVqQyxlQUFPLE1BQU0sU0FBUyxVQUFXLE9BQU87O0NBZXZDLENBQUE7Ozs7Ozs7QUFJRCxxQkFBYSxhQUFhLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBRSxTQUFRLGtCQUdwRDtJQUNBLFlBQ0UsS0FBSyxFQUFFO1FBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQztRQUFDLEVBQUUsRUFBRSxPQUFPLENBQUM7UUFBQyxLQUFLLENBQUMsRUFBRSxPQUFPLENBQUE7S0FBRSxFQUNyRCxpQkFBaUIsQ0FBQyxFQUFFLE9BQU8sRUFHNUI7SUFDRCxJQUFhLE9BQU8sV0FFbkI7SUFDUSxRQUFRLFdBRWhCO0NBQ0Y7Ozs7OztBQUtELHFCQUFhLGlCQUFrQixTQUFRLHNCQUVyQztJQUNBLFlBQVksZUFBZSxFQUFFLE1BQU0sR0FBRztRQUFFLE9BQU8sRUFBRSxNQUFNLENBQUM7UUFBQyxLQUFLLENBQUMsRUFBRSxPQUFPLENBQUE7S0FBRSxFQUFFLGlCQUFpQixDQUFDLEVBQUUsT0FBTyxFQUt0RztJQUNRLFFBQVEsV0FFaEI7Q0FDRjs7Ozs7O0FBRUQscUJBQWEsdUJBQXdCLFNBQVEsNEJBRTNDO0lBQ0EsWUFBWSxlQUFlLEVBQUUsTUFBTSxHQUFHO1FBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQztRQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQTtLQUFFLEVBQUUsaUJBQWlCLENBQUMsRUFBRSxPQUFPLEVBS3RHO0lBQ1EsUUFBUSxXQUVoQjtDQUNGOzs7Ozs7Ozs7QUFFRCxxQkFBYSxlQUFnQixTQUFRLG9CQUVuQztJQUNBLFlBQ0UsS0FBSyxFQUFFO1FBQUUsTUFBTSxFQUFFLGFB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