liminal 0.17.4 → 0.17.6

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/dist/Client.js CHANGED
@@ -1,14 +1,15 @@
1
- import { Context, Encoding, Deferred, Effect, Layer, Option, PubSub, RcRef, Record, pipe, Ref, Scope, Stream, Take, Schema as S, Array, Struct, Fiber, Exit, Cause, Result, flow, identity, } from "effect";
1
+ import { Context, Encoding, Deferred, Effect, Layer, Option, PubSub, RcRef, Record, pipe, Ref, Scope, Stream, Take, Schema as S, Array, Struct, Fiber, Exit, Cause, Result, flow, } from "effect";
2
2
  import { Socket } from "effect/unstable/socket";
3
3
  import { Worker } from "effect/unstable/workers";
4
4
  import * as Diagnostic from "./_util/Diagnostic.js";
5
5
  import { AuditionError, ConnectionError, UnresolvedError } from "./errors.js";
6
6
  import {} from "./F.js";
7
- import * as Protocol from "./Protocol.js";
7
+ import { Protocol } from "./Protocol.js";
8
8
  const { debug, span } = Diagnostic.module("Client");
9
9
  export const TypeId = "~liminal/Client";
10
10
  export const Service = () => (id, definition) => {
11
11
  const tag = Context.Service()(id);
12
+ const protocol = Protocol(definition);
12
13
  const events = tag.asEffect().pipe(Effect.flatMap(RcRef.get), Effect.map(Struct.get("events")), Stream.unwrap);
13
14
  const f = (_tag) => Effect.fnUntraced(function* (value) {
14
15
  const { f } = yield* tag.asEffect().pipe(Effect.flatMap(RcRef.get));
@@ -18,7 +19,7 @@ export const Service = () => (id, definition) => {
18
19
  return Object.assign(tag, {
19
20
  [TypeId]: TypeId,
20
21
  definition,
21
- schema: Protocol.ProtocolSchemas(definition.methods, definition.events),
22
+ protocol,
22
23
  events,
23
24
  f,
24
25
  invalidate,
@@ -62,33 +63,38 @@ const make = (client, build, replay) => Effect.gen(function* () {
62
63
  const end = Scope.close(scope, Exit.void);
63
64
  const fiber = yield* listen(Effect.fnUntraced(function* (message) {
64
65
  switch (message._tag) {
65
- case "AuditionSuccess": {
66
- yield* debug("AuditionSucceeded");
66
+ case "Audition.Success": {
67
+ yield* debug("Audition.Succeeded");
67
68
  yield* Deferred.succeed(audition, void 0);
68
69
  return;
69
70
  }
71
+ case "Audition.Failure": {
72
+ const { client, routed } = message;
73
+ yield* debug("Audition.Failed", { client, routed });
74
+ return yield* new AuditionError({ value: { client, routed } });
75
+ }
70
76
  case "Event": {
71
77
  const { event } = message;
72
- yield* debug("EventEmitted", { event });
78
+ yield* debug("Event.Emitted", { event });
73
79
  yield* publishTake([event], true);
74
80
  return;
75
81
  }
76
- case "FSuccess":
77
- case "FFailure": {
82
+ case "F.Success":
83
+ case "F.Failure": {
78
84
  const { id } = message;
79
85
  const deferred = inflights[id];
80
86
  if (deferred) {
81
87
  delete inflights[id];
82
88
  switch (message._tag) {
83
- case "FSuccess": {
89
+ case "F.Success": {
84
90
  const { _tag, value } = message.success;
85
- yield* debug("CallSucceeded", { id, _tag, value });
91
+ yield* debug("Call.Succeeded", { id, _tag, value });
86
92
  yield* Deferred.succeed(deferred, value);
87
93
  return;
88
94
  }
89
- case "FFailure": {
95
+ case "F.Failure": {
90
96
  const { _tag, value } = message.failure;
91
- yield* debug("CallFailed", { id, _tag, value });
97
+ yield* debug("Call.Failed", { id, _tag, value });
92
98
  yield* Deferred.fail(deferred, value);
93
99
  return;
94
100
  }
@@ -96,23 +102,13 @@ const make = (client, build, replay) => Effect.gen(function* () {
96
102
  }
97
103
  return;
98
104
  }
99
- case "AuditionFailure": {
100
- const { client, routed } = message;
101
- yield* debug("AuditionFailed", { client, routed });
102
- return yield* new AuditionError({ value: { client, routed } });
103
- }
104
105
  case "Disconnect": {
105
106
  yield* debug("Disconnected");
106
107
  return;
107
108
  }
108
- case "TransportFailure": {
109
- const { cause } = message;
110
- yield* debug("TransportFailed", { cause });
111
- return yield* new ConnectionError({ cause });
112
- }
113
109
  }
114
110
  })).pipe(Effect.ensuring(Effect.all([
115
- debug("ClientClosed", { unresolved: Record.keys(inflights).length }),
111
+ debug("Client.Closed", { unresolved: Record.keys(inflights).length }),
116
112
  Deferred.succeed(audition, void 0),
117
113
  RcRef.invalidate(rcr),
118
114
  ], { concurrency: "unbounded" })), Effect.forkScoped, Effect.provideService(Scope.Scope, scope));
@@ -137,7 +133,13 @@ const make = (client, build, replay) => Effect.gen(function* () {
137
133
  return buffer.length === 0
138
134
  ? live(replayCount)
139
135
  : Stream.concat(Stream.fromIterable(buffer).pipe(Stream.map((entry) => entry.take), Stream.flattenTake), live(replayCount));
140
- }).pipe(Stream.unwrap, Stream.interruptWhen(Fiber.join(fiber)));
136
+ }).pipe(Stream.unwrap, Stream.interruptWhen(Fiber.await(fiber).pipe(Effect.flatMap(Exit.match({
137
+ onSuccess: () => Effect.void,
138
+ onFailure: flow(Cause.findError, Result.match({
139
+ onSuccess: Effect.fail,
140
+ onFailure: () => Effect.void,
141
+ })),
142
+ })))));
141
143
  yield* Deferred.await(audition);
142
144
  const encodingServices = yield* Effect.context();
143
145
  const f = (_tag) => Effect.fnUntraced(function* (value) {
@@ -146,7 +148,7 @@ const make = (client, build, replay) => Effect.gen(function* () {
146
148
  return yield* Exit.match(exit, {
147
149
  onSuccess: () => new UnresolvedError(),
148
150
  onFailure: flow(Cause.findError, Result.match({
149
- onSuccess: identity,
151
+ onSuccess: Effect.fail,
150
152
  onFailure: () => new UnresolvedError(),
151
153
  })),
152
154
  });
@@ -155,11 +157,17 @@ const make = (client, build, replay) => Effect.gen(function* () {
155
157
  const inflight = yield* Deferred.make();
156
158
  inflights[id] = inflight;
157
159
  yield* send({
158
- _tag: "FPayload",
160
+ _tag: "F.Payload",
159
161
  id,
160
162
  payload: { _tag, value },
161
163
  });
162
- return yield* Effect.raceFirst(Deferred.await(inflight), Fiber.join(fiber).pipe(Effect.andThen(() => new UnresolvedError().asEffect())));
164
+ return yield* Effect.raceFirst(Deferred.await(inflight), Fiber.await(fiber).pipe(Effect.flatMap((exit) => Exit.match(exit, {
165
+ onSuccess: () => new UnresolvedError().asEffect(),
166
+ onFailure: flow(Cause.findError, Result.match({
167
+ onSuccess: Effect.fail,
168
+ onFailure: () => new UnresolvedError().asEffect(),
169
+ })),
170
+ }))));
163
171
  }, span("f"), Effect.scoped, Effect.provide(encodingServices));
164
172
  return { events, f, end };
165
173
  }).pipe(span("acquire", { attributes: { client: client.key } }), Effect.annotateLogs("client", client.key)),
@@ -167,41 +175,27 @@ const make = (client, build, replay) => Effect.gen(function* () {
167
175
  return rcr;
168
176
  }).pipe(Layer.effect(client));
169
177
  export const layerSocket = ({ client, url, protocols, replay, }) => make(client, Effect.gen(function* () {
178
+ const { protocol } = client;
170
179
  const socket = yield* Socket.makeWebSocket(url ?? "/", {
171
180
  protocols: ["liminal", Encoding.encodeBase64Url(client.key), ...(protocols ? Array.ensure(protocols) : [])],
172
181
  });
173
182
  return {
174
183
  listen: Effect.fnUntraced(function* (publish) {
175
184
  yield* socket
176
- .runRaw((raw) => pipe(raw instanceof Uint8Array ? new TextDecoder().decode(raw) : raw, S.decodeUnknownEffect(S.fromJsonString(S.toCodecJson(client.schema.actor))), Effect.andThen(publish)))
177
- .pipe(Effect.catchTag("SocketError", Effect.fnUntraced(function* (cause) {
185
+ .runRaw((raw) => pipe(raw instanceof Uint8Array ? new TextDecoder().decode(raw) : raw, protocol.decodeActor, Effect.andThen(publish)))
186
+ .pipe(Effect.catchIf(Socket.isSocketError, Effect.fnUntraced(function* (cause) {
178
187
  const { reason } = cause;
179
- switch (reason._tag) {
180
- case "SocketReadError":
181
- case "SocketWriteError":
182
- case "SocketOpenError": {
183
- yield* debug(reason._tag, { cause });
184
- return yield* publish({ _tag: "TransportFailure", cause });
185
- }
186
- case "SocketCloseError": {
187
- const { code, closeReason } = reason;
188
- switch (code) {
189
- case 1000: {
190
- return yield* publish({ _tag: "Disconnect" });
191
- }
192
- case 4003: {
193
- return yield* S.decodeUnknownEffect(S.fromJsonString(Protocol.AuditionFailure))(closeReason).pipe(Effect.andThen(publish));
194
- }
195
- }
196
- yield* debug("SocketCloseError", { cause });
197
- return yield* publish({ _tag: "TransportFailure", cause });
198
- }
188
+ if (reason._tag === "SocketCloseError" && reason.code === 1000) {
189
+ yield* debug("Socket.Disconnected");
190
+ return yield* publish({ _tag: "Disconnect" });
199
191
  }
200
- })), Effect.catchTag("SchemaError", Effect.die));
192
+ yield* debug(`SocketErrored.${reason._tag}`, { cause });
193
+ return yield* new ConnectionError({ cause });
194
+ })));
201
195
  }, span("listen")),
202
196
  send: Effect.fnUntraced(function* (v) {
203
197
  const write = yield* socket.writer;
204
- const message = yield* S.encodeEffect(S.fromJsonString(S.toCodecJson(client.schema.f.payload)))(v).pipe(Effect.mapError((cause) => new ConnectionError({ cause })));
198
+ const message = yield* protocol.encodeFPayload(v);
205
199
  yield* write(message).pipe(Effect.catchTag("SocketError", (cause) => new ConnectionError({ cause }).asEffect()));
206
200
  }, span("send"), Effect.scoped),
207
201
  };
@@ -217,10 +211,10 @@ export const layerWorker = ({ client, replay, }) => make(client, Effect.gen(func
217
211
  const stop = yield* Deferred.make();
218
212
  yield* Effect.raceFirst(backing.run(Effect.fnUntraced(function* (message) {
219
213
  yield* publish(message);
220
- if (message._tag === "Disconnect" || message._tag === "AuditionFailure") {
214
+ if (message._tag === "Disconnect" || message._tag === "Audition.Failure") {
221
215
  yield* Deferred.succeed(stop, void 0);
222
216
  }
223
- }), { onSpawn: backing.send(client.key).pipe(Effect.orDie) }), Deferred.await(stop)).pipe(Effect.catchTag("WorkerError", (cause) => publish({ _tag: "TransportFailure", cause })));
217
+ }), { onSpawn: backing.send(client.key).pipe(Effect.orDie) }), Deferred.await(stop)).pipe(Effect.catchTag("WorkerError", (cause) => new ConnectionError({ cause }).asEffect()));
224
218
  }, span("listen")),
225
219
  send,
226
220
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Client.js","sourceRoot":"","sources":["../Client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,EACN,IAAI,EACJ,GAAG,EACH,KAAK,EACL,MAAM,EACN,IAAI,EACJ,MAAM,IAAI,CAAC,EACX,KAAK,EACL,MAAM,EACN,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,IAAI,EACJ,QAAQ,GACT,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAIhD,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAoB,aAAa,EAAE,eAAe,EAAe,eAAe,EAAE,MAAM,aAAa,CAAA;AAC5G,OAAO,EAAU,MAAM,QAAQ,CAAA;AAC/B,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;AAEnD,MAAM,CAAC,MAAM,MAAM,GAAG,iBAA0B,CAAA;AA8DhD,MAAM,CAAC,MAAM,OAAO,GAClB,GAAe,EAAE,CACjB,CAKE,EAAY,EACZ,UAAiE,EACE,EAAE;IACrE,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,EAAwE,CAAC,EAAE,CAAC,CAAA;IAEvG,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAE9G,MAAM,CAAC,GAAqC,CAAC,IAAI,EAAE,EAAE,CACnD,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,KAAK;QAChC,MAAM,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;QACnE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAEnB,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,CACpC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CACpB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAChB,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAChC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CACrC,CACF,EACD,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,MAAM,CACd,CAAA;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;QACxB,CAAC,MAAM,CAAC,EAAE,MAAM;QAChB,UAAU;QACV,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC;QACvE,MAAM;QACN,CAAC;QACD,UAAU;KACX,CAAC,CAAA;AACJ,CAAC,CAAA;AA2BH,MAAM,IAAI,GAAG,CAOX,MAAyE,EACzE,KAAkG,EAClG,MAAiC,EACjC,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,GAAG,GAAuF,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QAChH,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAI3B,KAAK,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;YAElC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,CAAA;YAErC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAQ,CAAA;YAE7C,MAAM,SAAS,GAA4F,EAAE,CAAA;YAC7G,IAAI,MAAM,GAAG,CAAC,CAAA;YACd,IAAI,SAAS,GAAG,CAAC,CAAA;YACjB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,EAAiC,CAAA;YAEvE,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAGhC;gBACD,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,EAAE;aACX,CAAC,CAAA;YAEF,MAAM,WAAW,GAAG,CAAC,IAAmC,EAAE,UAAgC,EAAE,EAAE,CAC5F,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAClB,MAAM,SAAS,GAAkC;oBAC/C,GAAG,EAAE,SAAS,EAAE;oBAChB,IAAI;iBACL,CAAA;gBACD,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;oBACzB,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;wBACvC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;4BACpD,OAAO,KAAK,CAAA;wBACd,CAAC;wBACD,MAAM,MAAM,GACV,MAAM,CAAC,KAAK,KAAK,SAAS;4BACxB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC;4BAC9B,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAA;wBAClG,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;wBAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAA;oBAChC,CAAC,CAAC,CAAA;gBACJ,CAAC;gBACD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;YAC1C,CAAC,CAAC,CAAA;YAEJ,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAA;YAChC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;YACpD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;YAEzC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CACzB,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,OAAO;gBAClC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;oBACrB,KAAK,iBAAiB,CAAC,CAAC,CAAC;wBACvB,KAAK,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;wBACjC,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;wBACzC,OAAM;oBACR,CAAC;oBACD,KAAK,OAAO,CAAC,CAAC,CAAC;wBACb,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;wBACzB,KAAK,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;wBACvC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,KAAc,CAAC,EAAE,IAAI,CAAC,CAAA;wBAC1C,OAAM;oBACR,CAAC;oBACD,KAAK,UAAU,CAAC;oBAChB,KAAK,UAAU,CAAC,CAAC,CAAC;wBAChB,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAA;wBACtB,MAAM,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,CAAA;wBAC9B,IAAI,QAAQ,EAAE,CAAC;4BACb,OAAO,SAAS,CAAC,EAAE,CAAC,CAAA;4BACpB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;gCACrB,KAAK,UAAU,CAAC,CAAC,CAAC;oCAChB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,OAAgB,CAAA;oCAChD,KAAK,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;oCAClD,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;oCACxC,OAAM;gCACR,CAAC;gCACD,KAAK,UAAU,CAAC,CAAC,CAAC;oCAChB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,OAAgB,CAAA;oCAChD,KAAK,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;oCAC/C,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;oCACrC,OAAM;gCACR,CAAC;4BACH,CAAC;wBACH,CAAC;wBACD,OAAM;oBACR,CAAC;oBACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;wBACvB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;wBAClC,KAAK,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;wBAClD,OAAO,KAAK,CAAC,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;oBAChE,CAAC;oBACD,KAAK,YAAY,CAAC,CAAC,CAAC;wBAClB,KAAK,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;wBAC5B,OAAM;oBACR,CAAC;oBACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;wBACxB,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;wBACzB,KAAK,CAAC,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;wBAC1C,OAAO,KAAK,CAAC,CAAC,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;oBAC9C,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CACH,CAAC,IAAI,CACJ,MAAM,CAAC,QAAQ,CACb,MAAM,CAAC,GAAG,CACR;gBACE,KAAK,CAAC,cAAc,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;gBACpE,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAClC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;aACtB,EACD,EAAE,WAAW,EAAE,WAAW,EAAE,CAC7B,CACF,EACD,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAC1C,CAAA;YAED,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACjC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;gBAC7C,MAAM,IAAI,GAAG,CAAC,WAAmB,EAAE,EAAE,CACnC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,CACjC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,WAAW,CAAC,EACjD,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EACjC,MAAM,CAAC,WAAW,CACnB,CAAA;gBACH,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;gBACjB,CAAC;gBACD,MAAM,MAAM,GACV,MAAM,CAAC,IAAI,KAAK,iBAAiB;oBAC/B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM;oBACtC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CACvC,KAAK,CAAC,WAAW;wBACf,CAAC,CAAC;4BACE,KAAK,CAAC,MAAM;4BACZ;gCACE,WAAW,EAAE,KAAK;gCAClB,MAAM,EAAE,EAAE;6BACX;yBACF;wBACH,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAChB,CAAA;gBACP,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAC3D,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAC5B,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAC3B,CAAA;gBACD,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC;oBACxB,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;oBACnB,CAAC,CAAC,MAAM,CAAC,MAAM,CACX,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EACjC,MAAM,CAAC,WAAW,CACnB,EACD,IAAI,CAAC,WAAW,CAAC,CAClB,CAAA;YACP,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAE/D,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YAE/B,MAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAyC,CAAA;YAEvF,MAAM,CAAC,GAAqC,CAAC,IAAI,EAAE,EAAE,CACnD,MAAM,CAAC,UAAU,CACf,QAAQ,CAAC,EAAE,KAAK;gBACd,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,EAAE,CAAA;gBAC/B,IAAI,IAAI,EAAE,CAAC;oBACT,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;wBAC7B,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,eAAe,EAAE;wBACtC,SAAS,EAAE,IAAI,CACb,KAAK,CAAC,SAAS,EACf,MAAM,CAAC,KAAK,CAAC;4BACX,SAAS,EAAE,QAAQ;4BACnB,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,eAAe,EAAE;yBACvC,CAAC,CACH;qBACF,CAAC,CAAA;gBACJ,CAAC;gBACD,MAAM,EAAE,GAAG,MAAM,EAAE,CAAA;gBACnB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAwD,CAAA;gBAC7F,SAAS,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAA;gBACxB,KAAK,CAAC,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,UAAU;oBAChB,EAAE;oBACF,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAW;iBAClC,CAAC,CAAA;gBACF,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAC5B,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EACxB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,eAAe,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAC/E,CAAA;YACH,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,EACT,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CACjC,CAAA;YAEH,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAA;QAC3B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;KAC5G,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;AAE/B,MAAM,CAAC,MAAM,WAAW,GAAG,CAKzB,EACA,MAAM,EACN,GAAG,EACH,SAAS,EACT,MAAM,GAMP,EAMC,EAAE,CACF,IAAI,CACF,MAAM,EACN,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,GAAG,EAAE;QACrD,SAAS,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KAC5G,CAAC,CAAA;IACF,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,OAAO;YAC1C,KAAK,CAAC,CAAC,MAAM;iBACV,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CACd,IAAI,CACF,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAC/D,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAC3E,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CACxB,CACF;iBACA,IAAI,CACH,MAAM,CAAC,QAAQ,CACb,aAAa,EACb,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,KAAK;gBAChC,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;gBACxB,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;oBACpB,KAAK,iBAAiB,CAAC;oBACvB,KAAK,kBAAkB,CAAC;oBACxB,KAAK,iBAAiB,CAAC,CAAC,CAAC;wBACvB,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;wBACpC,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAA;oBAC5D,CAAC;oBACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;wBACxB,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,CAAA;wBACpC,QAAQ,IAAI,EAAE,CAAC;4BACb,KAAK,IAAI,CAAC,CAAC,CAAC;gCACV,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAA;4BAC/C,CAAC;4BACD,KAAK,IAAI,CAAC,CAAC,CAAC;gCACV,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAC7E,WAAW,CACZ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;4BACjC,CAAC;wBACH,CAAC;wBACD,KAAK,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;wBAC3C,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAA;oBAC5D,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CACH,EACD,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,CAC3C,CAAA;QACL,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC,UAAU,CACrB,QAAQ,CAAC,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAA;YAClC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CACrG,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAC3D,CAAA;YACD,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CACxB,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CACrF,CAAA;QACH,CAAC,EACD,IAAI,CAAC,MAAM,CAAC,EACZ,MAAM,CAAC,MAAM,CACd;KACF,CAAA;AACH,CAAC,CAAC,EACF,MAAM,CACP,CAAA;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,CAKzB,EACA,MAAM,EACN,MAAM,GAIP,EAOC,EAAE,CACF,IAAI,CACF,MAAM,EACN,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAGlB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAAA;IAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,QAAQ;SAC5B,KAAK,CAAyD,CAAC,CAAC;SAChE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IAE7F,MAAM,IAAI,GAAG,CAAC,OAAkC,EAAE,EAAE,CAClD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CACxB,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,EACpF,IAAI,CAAC,MAAM,CAAC,CACb,CAAA;IAEH,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,OAAO;YAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAQ,CAAA;YACzC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CACrB,OAAO,CAAC,GAAG,CACT,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,OAAO;gBAClC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;gBACvB,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;oBACxE,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;gBACvC,CAAC;YACH,CAAC,CAAC,EACF,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACzD,EACD,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CACrB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;QACjG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClB,IAAI;KACL,CAAA;AACH,CAAC,CAAC,EACF,MAAM,CACP,CAAA"}
1
+ {"version":3,"file":"Client.js","sourceRoot":"","sources":["../Client.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,18 @@
1
1
  import { Schema as S, Effect } from "effect";
2
+ import type { ProtocolDefinition } from "./Protocol.ts";
2
3
  import type { Send } from "./Send.ts";
3
4
  declare const TypeId: "~liminal/ClientHandle";
4
- export interface ClientHandle<ActorSelf, AttachmentFields extends S.Struct.Fields, EventDefinitions extends Record<string, S.Struct.Fields>> {
5
+ export interface ClientHandle<ActorSelf, AttachmentFields extends S.Struct.Fields, D extends ProtocolDefinition> {
5
6
  readonly [TypeId]: typeof TypeId;
6
- readonly send: Send<ActorSelf, EventDefinitions>;
7
+ readonly send: Send<ActorSelf, D>;
7
8
  readonly attachments: Effect.Effect<S.Struct<AttachmentFields>["Type"]>;
8
9
  readonly save: (attachments: S.Struct<AttachmentFields>["Type"]) => Effect.Effect<void, S.SchemaError, S.Struct<AttachmentFields>["EncodingServices"]>;
9
10
  readonly disconnect: Effect.Effect<void, never, ActorSelf>;
10
11
  }
11
- export declare const make: <ActorSelf, AttachmentFields extends S.Struct.Fields, EventDefinitions extends Record<string, S.Struct.Fields>>({ send, attachments, save, disconnect, }: {
12
- readonly send: Send<ActorSelf, EventDefinitions>;
12
+ export declare const make: <ActorSelf, AttachmentFields extends S.Struct.Fields, D extends ProtocolDefinition>({ send, attachments, save, disconnect, }: {
13
+ readonly send: Send<ActorSelf, D>;
13
14
  readonly attachments: Effect.Effect<S.Struct<AttachmentFields>["Type"]>;
14
15
  readonly save: (attachments: S.Struct<AttachmentFields>["Type"]) => Effect.Effect<void, S.SchemaError, S.Struct<AttachmentFields>["EncodingServices"]>;
15
16
  readonly disconnect: Effect.Effect<void, never, ActorSelf>;
16
- }) => ClientHandle<ActorSelf, AttachmentFields, EventDefinitions>;
17
+ }) => ClientHandle<ActorSelf, AttachmentFields, D>;
17
18
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"ClientHandle.js","sourceRoot":"","sources":["../ClientHandle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAI5C,MAAM,MAAM,GAAG,uBAAgC,CAAA;AAoB/C,MAAM,CAAC,MAAM,IAAI,GAAG,CAIlB,EACA,IAAI,EACJ,WAAW,EACX,IAAI,EACJ,UAAU,GAWX,EAA+D,EAAE,CAAC,CAAC;IAClE,CAAC,MAAM,CAAC,EAAE,MAAM;IAChB,IAAI;IACJ,WAAW;IACX,IAAI;IACJ,UAAU;CACX,CAAC,CAAA"}
1
+ {"version":3,"file":"ClientHandle.js","sourceRoot":"","sources":["../ClientHandle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAK5C,MAAM,MAAM,GAAG,uBAAgC,CAAA;AAgB/C,MAAM,CAAC,MAAM,IAAI,GAAG,CAAoF,EACtG,IAAI,EACJ,WAAW,EACX,IAAI,EACJ,UAAU,GAWX,EAAgD,EAAE,CAAC,CAAC;IACnD,CAAC,MAAM,CAAC,EAAE,MAAM;IAChB,IAAI;IACJ,WAAW;IACX,IAAI;IACJ,UAAU;CACX,CAAC,CAAA"}
package/dist/F.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  import { Effect } from "effect";
2
2
  import type { FError } from "./errors.ts";
3
- import type { MethodDefinition } from "./Method.ts";
4
- export type F<ClientSelf, MethodDefinitions extends Record<string, MethodDefinition.Any>> = <Method extends keyof MethodDefinitions>(method: Method) => (payload: MethodDefinitions[Method]["payload"]["Type"]) => Effect.Effect<MethodDefinitions[Method]["success"]["Type"], FError<MethodDefinitions>, ClientSelf>;
3
+ import type { ProtocolDefinition } from "./Protocol.ts";
4
+ export type F<Self, D extends ProtocolDefinition> = <Method extends keyof D["methods"]>(method: Method) => (payload: D["methods"][Method]["payload"]["Type"]) => Effect.Effect<D["methods"][Method]["success"]["Type"], FError<D>, Self>;
package/dist/F.js CHANGED
@@ -1,2 +1,2 @@
1
- import { Record, Effect } from "effect";
1
+ import { Effect } from "effect";
2
2
  //# sourceMappingURL=F.js.map
package/dist/F.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"F.js","sourceRoot":"","sources":["../F.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA"}
1
+ {"version":3,"file":"F.js","sourceRoot":"","sources":["../F.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA"}
package/dist/Method.d.ts CHANGED
@@ -4,19 +4,14 @@ export interface MethodDefinition<Payload extends S.Top, Success extends S.Top,
4
4
  readonly success: Success;
5
5
  readonly failure: Failure;
6
6
  }
7
- export declare namespace MethodDefinition {
8
- type Any = MethodDefinition<S.Top, S.Top, S.Top>;
9
- type Merge<T, U> = [T] extends [never] ? U : {
10
- [K in keyof T & keyof U]: T[K] extends U[K] ? (U[K] extends T[K] ? T[K] : never) : never;
11
- };
12
- }
13
- export declare const define: <Payload extends S.Top, Success extends S.Top, Failure extends S.Top>({ payload, success, failure, }: {
7
+ export type Any = MethodDefinition<S.Top, S.Top, S.Top>;
8
+ export declare const make: <Payload extends S.Top, Success extends S.Top, Failure extends S.Top>({ payload, success, failure, }: {
14
9
  readonly payload: Payload;
15
10
  readonly success: Success;
16
11
  readonly failure: Failure;
17
12
  }) => MethodDefinition<Payload, Success, Failure>;
18
- export type Handler<MethodDefinition extends MethodDefinition.Any, R> = (payload: MethodDefinition["payload"]["Type"]) => Effect.Effect<MethodDefinition["success"]["Type"], MethodDefinition["failure"]["Type"], R>;
19
- export type Handlers<MethodDefinitions extends Record<string, MethodDefinition.Any>, R> = {
13
+ export type Handler<MethodDefinition extends Any, R> = (payload: MethodDefinition["payload"]["Type"]) => Effect.Effect<MethodDefinition["success"]["Type"], MethodDefinition["failure"]["Type"], R>;
14
+ export type Handlers<MethodDefinitions extends Record<string, Any>, R> = {
20
15
  [K in keyof MethodDefinitions]: Handler<MethodDefinitions[K], R>;
21
16
  };
22
- export declare const handler: <M extends MethodDefinition.Any, R>(_method: M, f: Handler<M, R>) => Handler<M, R>;
17
+ export declare const handler: <M extends Any, R>(_method: M, f: Handler<M, R>) => Handler<M, R>;
package/dist/Method.js CHANGED
@@ -1,4 +1,4 @@
1
1
  import { Schema as S, Effect } from "effect";
2
- export const define = ({ payload, success, failure, }) => ({ payload, success, failure });
2
+ export const make = ({ payload, success, failure, }) => ({ payload, success, failure });
3
3
  export const handler = (_method, f) => f;
4
4
  //# sourceMappingURL=Method.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Method.js","sourceRoot":"","sources":["../Method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAkB5C,MAAM,CAAC,MAAM,MAAM,GAAG,CAAsE,EAC1F,OAAO,EACP,OAAO,EACP,OAAO,GAKR,EAA+C,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;AAUlF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAoC,OAAU,EAAE,CAAgB,EAAiB,EAAE,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"Method.js","sourceRoot":"","sources":["../Method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAU5C,MAAM,CAAC,MAAM,IAAI,GAAG,CAAsE,EACxF,OAAO,EACP,OAAO,EACP,OAAO,GAKR,EAA+C,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;AAUlF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAmB,OAAU,EAAE,CAAgB,EAAiB,EAAE,CAAC,CAAC,CAAA"}
@@ -1,53 +1,68 @@
1
- import { Schema as S } from "effect";
2
- import type { MethodDefinition } from "./Method.ts";
3
- export declare const AuditionSuccess: S.TaggedStruct<"AuditionSuccess", {}>;
4
- export declare const AuditionFailure: S.TaggedStruct<"AuditionFailure", {
5
- readonly client: S.String;
6
- readonly routed: S.String;
7
- }>;
8
- export interface ProtocolSchemas<MethodDefinitions extends Record<string, MethodDefinition.Any>, EventDefinitions extends Record<string, S.Struct.Fields>> {
9
- readonly f: {
10
- readonly payload: S.TaggedStruct<"FPayload", {
1
+ import { Schema as S, Types, Effect, SchemaAST } from "effect";
2
+ import type * as Method from "./Method.ts";
3
+ export interface ProtocolDefinition<Methods extends Record<string, Method.Any> = Record<string, Method.Any>, Events extends Record<string, S.Struct.Fields> = Record<string, S.Struct.Fields>> {
4
+ readonly methods: Methods;
5
+ readonly events: Events;
6
+ }
7
+ export declare namespace ProtocolDefinition {
8
+ type Merge<T extends ProtocolDefinition, U extends ProtocolDefinition> = ProtocolDefinition<[
9
+ T
10
+ ] extends [never] ? U["methods"] : {
11
+ [K in keyof T["methods"] & keyof U["methods"] as Types.Equals<T["methods"][K], U["methods"][K]> extends true ? K : never]: T["methods"][K];
12
+ }, [
13
+ T
14
+ ] extends [never] ? U["events"] : T["events"] & U["events"]>;
15
+ }
16
+ export interface Protocol<D extends ProtocolDefinition> {
17
+ readonly Audition: {
18
+ readonly Success: S.TaggedStruct<"Audition.Success", {}>;
19
+ readonly Failure: S.TaggedStruct<"Audition.Failure", {
20
+ client: S.String;
21
+ routed: S.String;
22
+ }>;
23
+ };
24
+ readonly Event: S.TaggedStruct<"Event", {
25
+ readonly event: S.TaggedUnion<{
26
+ readonly [K in keyof D["events"] & string]: S.TaggedStruct<K, D["events"][K]>;
27
+ }>;
28
+ }>;
29
+ readonly F: {
30
+ readonly Payload: S.TaggedStruct<"F.Payload", {
11
31
  readonly id: S.Int;
12
32
  readonly payload: S.TaggedUnion<{
13
- readonly [K in keyof MethodDefinitions & string]: S.TaggedStruct<K, {
14
- readonly value: MethodDefinitions[K]["payload"];
33
+ readonly [K in keyof D["methods"] & string]: S.TaggedStruct<K, {
34
+ readonly value: D["methods"][K]["payload"];
15
35
  }>;
16
36
  }>;
17
37
  }>;
18
- readonly success: S.TaggedStruct<"FSuccess", {
38
+ readonly Success: S.TaggedStruct<"F.Success", {
19
39
  readonly id: S.Int;
20
40
  readonly success: S.TaggedUnion<{
21
- readonly [K in keyof MethodDefinitions & string]: S.TaggedStruct<K, {
22
- readonly value: MethodDefinitions[K]["success"];
41
+ readonly [K in keyof D["methods"] & string]: S.TaggedStruct<K, {
42
+ readonly value: D["methods"][K]["success"];
23
43
  }>;
24
44
  }>;
25
45
  }>;
26
- readonly failure: S.TaggedStruct<"FFailure", {
46
+ readonly Failure: S.TaggedStruct<"F.Failure", {
27
47
  readonly id: S.Int;
28
48
  readonly failure: S.TaggedUnion<{
29
- readonly [K in keyof MethodDefinitions & string]: S.TaggedStruct<K, {
30
- readonly value: MethodDefinitions[K]["failure"];
49
+ readonly [K in keyof D["methods"] & string]: S.TaggedStruct<K, {
50
+ readonly value: D["methods"][K]["failure"];
31
51
  }>;
32
52
  }>;
33
53
  }>;
34
54
  };
35
- readonly event: S.TaggedStruct<"Event", {
36
- readonly event: S.TaggedUnion<{
37
- readonly [K in keyof EventDefinitions & string]: S.TaggedStruct<K, EventDefinitions[K]>;
38
- }>;
39
- }>;
40
- readonly actor: S.Union<[
41
- typeof AuditionSuccess,
42
- typeof AuditionFailure,
43
- this["f"]["success"],
44
- this["f"]["failure"],
45
- this["event"],
46
- typeof Disconnect
55
+ readonly Disconnect: S.TaggedStruct<"Disconnect", {}>;
56
+ readonly Actor: S.Union<[
57
+ this["Audition"]["Success"],
58
+ this["Audition"]["Failure"],
59
+ this["F"]["Success"],
60
+ this["F"]["Failure"],
61
+ this["Event"],
62
+ this["Disconnect"]
47
63
  ]>;
64
+ readonly encodeFPayload: (input: this["F"]["Payload"]["Type"], options?: SchemaAST.ParseOptions) => Effect.Effect<string, S.SchemaError, this["F"]["Payload"]["EncodingServices"]>;
65
+ readonly decodeEvent: (input: unknown, options?: SchemaAST.ParseOptions) => Effect.Effect<this["Event"]["Type"], S.SchemaError, this["Event"]["DecodingServices"]>;
66
+ readonly decodeActor: (input: unknown, options?: SchemaAST.ParseOptions) => Effect.Effect<this["Actor"]["Type"], S.SchemaError, this["Actor"]["DecodingServices"]>;
48
67
  }
49
- export declare const Disconnect: S.TaggedStruct<"Disconnect", {}>;
50
- export declare const TransportFailure: S.TaggedStruct<"TransportFailure", {
51
- readonly cause: S.Unknown;
52
- }>;
53
- export declare const ProtocolSchemas: <MethodDefinitions extends Record<string, MethodDefinition.Any>, EventDefinitions extends Record<string, S.Struct.Fields>>(methods: MethodDefinitions, events: EventDefinitions) => ProtocolSchemas<MethodDefinitions, EventDefinitions>;
68
+ export declare const Protocol: <D extends ProtocolDefinition>({ events, methods }: D) => Protocol<D>;
package/dist/Protocol.js CHANGED
@@ -1,37 +1,46 @@
1
- import { Schema as S, Record } from "effect";
2
- export const AuditionSuccess = S.TaggedStruct("AuditionSuccess", {});
3
- export const AuditionFailure = S.TaggedStruct("AuditionFailure", {
4
- client: S.String,
5
- routed: S.String,
6
- });
7
- export const Disconnect = S.TaggedStruct("Disconnect", {});
8
- export const TransportFailure = S.TaggedStruct("TransportFailure", { cause: S.Unknown });
9
- export const ProtocolSchemas = (methods, events) => {
10
- const f = {
11
- payload: S.TaggedStruct("FPayload", {
1
+ import { flow, Schema as S, Record, Types, Effect, SchemaAST } from "effect";
2
+ const parseJson = flow(S.toCodecJson, S.fromJsonString);
3
+ const decode = flow(parseJson, S.decodeUnknownEffect);
4
+ const encode = flow(parseJson, S.encodeEffect);
5
+ const Disconnect = S.TaggedStruct("Disconnect", {});
6
+ const Audition = {
7
+ Success: S.TaggedStruct("Audition.Success", {}),
8
+ Failure: S.TaggedStruct("Audition.Failure", {
9
+ client: S.String,
10
+ routed: S.String,
11
+ }),
12
+ };
13
+ export const Protocol = ({ events, methods }) => {
14
+ const F = {
15
+ Payload: S.TaggedStruct("F.Payload", {
12
16
  id: S.Int,
13
17
  payload: S.TaggedUnion(Record.map(methods, ({ payload: value }) => ({ value }))),
14
18
  }),
15
- success: S.TaggedStruct("FSuccess", {
19
+ Success: S.TaggedStruct("F.Success", {
16
20
  id: S.Int,
17
21
  success: S.TaggedUnion(Record.map(methods, ({ success: value }) => ({ value }))),
18
22
  }),
19
- failure: S.TaggedStruct("FFailure", {
23
+ Failure: S.TaggedStruct("F.Failure", {
20
24
  id: S.Int,
21
25
  failure: S.TaggedUnion(Record.map(methods, ({ failure: value }) => ({ value }))),
22
26
  }),
23
27
  };
24
- const event = S.TaggedStruct("Event", {
28
+ const Event = S.TaggedStruct("Event", {
25
29
  event: S.TaggedUnion(events),
26
30
  });
27
- const actor = S.Union([
28
- AuditionSuccess,
29
- AuditionFailure,
30
- f.success,
31
- f.failure,
32
- event,
31
+ const Actor = S.Union([Audition.Success, Audition.Failure, F.Success, F.Failure, Event, Disconnect]);
32
+ const encodeFPayload = encode(F.Payload);
33
+ const decodeEvent = decode(Event);
34
+ const decodeActor = decode(Actor);
35
+ return {
36
+ Audition,
37
+ Event,
38
+ F,
39
+ Actor,
33
40
  Disconnect,
34
- ]);
35
- return { f, event, actor };
41
+ encodeFPayload,
42
+ decodeEvent,
43
+ decodeActor,
44
+ };
36
45
  };
37
46
  //# sourceMappingURL=Protocol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Protocol.js","sourceRoot":"","sources":["../Protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAI5C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,YAAY,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAA;AAEpE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,YAAY,CAAC,iBAAiB,EAAE;IAC/D,MAAM,EAAE,CAAC,CAAC,MAAM;IAChB,MAAM,EAAE,CAAC,CAAC,MAAM;CACjB,CAAC,CAAA;AAoEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;AAE1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,YAAY,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAExF,MAAM,CAAC,MAAM,eAAe,GAAG,CAI7B,OAA0B,EAC1B,MAAwB,EAC8B,EAAE;IAGxD,MAAM,CAAC,GAAW;QAChB,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE;YAClC,EAAE,EAAE,CAAC,CAAC,GAAG;YACT,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;SACjF,CAAU;QACX,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE;YAClC,EAAE,EAAE,CAAC,CAAC,GAAG;YACT,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;SACjF,CAAU;QACX,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE;YAClC,EAAE,EAAE,CAAC,CAAC,GAAG;YACT,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;SACjF,CAAU;KACZ,CAAA;IAED,MAAM,KAAK,GAAe,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE;QAChD,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC;KAC7B,CAAU,CAAA;IAEX,MAAM,KAAK,GAAe,CAAC,CAAC,KAAK,CAAC;QAChC,eAAe;QACf,eAAe;QACf,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,OAAO;QACT,KAAK;QACL,UAAU;KACX,CAAU,CAAA;IAEX,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;AAC5B,CAAC,CAAA"}
1
+ {"version":3,"file":"Protocol.js","sourceRoot":"","sources":["../Protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AA0B5E,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,cAAc,CAAC,CAAA;AACvD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAA;AACrD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,CAAA;AAoF9C,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;AAEnD,MAAM,QAAQ,GAAG;IACf,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,kBAAkB,EAAE,EAAE,CAAC;IAC/C,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,kBAAkB,EAAE;QAC1C,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM;KACjB,CAAC;CACH,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CAA+B,EAAE,MAAM,EAAE,OAAO,EAAK,EAAe,EAAE;IAG5F,MAAM,CAAC,GAAW;QAChB,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE;YACnC,EAAE,EAAE,CAAC,CAAC,GAAG;YACT,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;SACjF,CAAU;QACX,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE;YACnC,EAAE,EAAE,CAAC,CAAC,GAAG;YACT,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;SACjF,CAAU;QACX,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE;YACnC,EAAE,EAAE,CAAC,CAAC,GAAG;YACT,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;SACjF,CAAU;KACZ,CAAA;IAED,MAAM,KAAK,GAAe,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE;QAChD,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC;KAC7B,CAAU,CAAA;IAEX,MAAM,KAAK,GAAe,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAA;IAEhH,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACxC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACjC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAEjC,OAAO;QACL,QAAQ;QACR,KAAK;QACL,CAAC;QACD,KAAK;QACL,UAAU;QACV,cAAc;QACd,WAAW;QACX,WAAW;KACZ,CAAA;AACH,CAAC,CAAA"}
package/dist/Send.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  import { Schema as S, Effect } from "effect";
2
- export type Send<ActorSelf, EventDefinitions extends Record<string, S.Struct.Fields>> = <K extends keyof EventDefinitions>(tag: K, payload: S.Struct<EventDefinitions[K]>["Type"]) => Effect.Effect<void, S.SchemaError, ActorSelf | ReturnType<typeof S.TaggedUnion<EventDefinitions>>["EncodingServices"]>;
2
+ import type { ProtocolDefinition } from "./Protocol.ts";
3
+ export type Send<ActorSelf, D extends ProtocolDefinition> = <K extends keyof D["events"]>(tag: K, payload: S.Struct<D["events"][K]>["Type"]) => Effect.Effect<void, S.SchemaError, ActorSelf | ReturnType<typeof S.TaggedUnion<D["events"]>>["EncodingServices"]>;
@@ -0,0 +1,2 @@
1
+ import { Layer } from "effect";
2
+ export declare const boundLayer: (boundary: string) => <RIn2, E2, ROut2>(self: Layer.Layer<ROut2, E2, RIn2>) => Layer.Layer<ROut2, E2, Exclude<RIn2, never>>;
@@ -0,0 +1,4 @@
1
+ import { References, Effect, Layer } from "effect";
2
+ import { logCause } from "./logCause.js";
3
+ export const boundLayer = (boundary) => Layer.provideMerge(Layer.effect(References.CurrentLogAnnotations, Effect.map(References.CurrentLogAnnotations.asEffect(), (existing) => ({ ...existing, _boundary: boundary }))).pipe(Layer.tapCause(logCause), Layer.provideMerge(Layer.succeed(References.MinimumLogLevel, "All"))));
4
+ //# sourceMappingURL=boundLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boundLayer.js","sourceRoot":"","sources":["../../_util/boundLayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAE,EAAE,CAC7C,KAAK,CAAC,YAAY,CAChB,KAAK,CAAC,MAAM,CACV,UAAU,CAAC,qBAAqB,EAChC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,qBAAqB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAC9G,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC,CACvG,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { Cause, Effect } from "effect";
2
+ export declare const logCause: <E>(cause: Cause.Cause<E>) => Effect.Effect<void[], never, never>;
@@ -0,0 +1,7 @@
1
+ import { Cause, Effect, Schema as S, flow } from "effect";
2
+ const formatReason = (reason) => {
3
+ const value = Cause.isFailReason(reason) ? reason.error : Cause.isDieReason(reason) ? reason.defect : reason;
4
+ return S.isSchemaError(value) ? value.toString() : value;
5
+ };
6
+ export const logCause = (cause) => Effect.forEach(cause.reasons, flow(formatReason, Effect.logError));
7
+ //# sourceMappingURL=logCause.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logCause.js","sourceRoot":"","sources":["../../_util/logCause.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAEzD,MAAM,YAAY,GAAG,CAAI,MAAuB,EAAW,EAAE;IAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;IAC5G,OAAO,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;AAC1D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAI,KAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA"}
package/dist/errors.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Schema as S } from "effect";
2
- import type { MethodDefinition } from "./Method.ts";
2
+ import type { ProtocolDefinition } from "./Protocol.ts";
3
3
  declare const AuditionError_base: S.Class<AuditionError, S.TaggedStruct<"AuditionError", {
4
4
  readonly value: S.optional<S.Struct<{
5
5
  readonly client: S.String;
@@ -17,7 +17,7 @@ export type ClientError = AuditionError | ConnectionError;
17
17
  declare const UnresolvedError_base: S.Class<UnresolvedError, S.TaggedStruct<"UnresolvedError", {}>, import("effect/Cause").YieldableError>;
18
18
  export declare class UnresolvedError extends UnresolvedError_base {
19
19
  }
20
- export type FError<MethodDefinitions extends Record<string, MethodDefinition.Any>> = [
21
- MethodDefinitions[keyof MethodDefinitions]["failure"]["Type"] | ClientError | UnresolvedError
20
+ export type FError<D extends ProtocolDefinition> = [
21
+ D["methods"][keyof D["methods"]]["failure"]["Type"] | ClientError | S.SchemaError | UnresolvedError
22
22
  ][0];
23
23
  export {};