liminal 0.17.1 → 0.17.3

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 (109) hide show
  1. package/Accumulator.ts +16 -10
  2. package/Actor.ts +35 -29
  3. package/Audition.ts +17 -12
  4. package/CHANGELOG.md +12 -0
  5. package/Client.ts +260 -295
  6. package/ClientHandle.ts +17 -6
  7. package/F.ts +3 -9
  8. package/LICENSE +202 -0
  9. package/Method.ts +11 -13
  10. package/Protocol.ts +104 -126
  11. package/Send.ts +9 -5
  12. package/_util/Diagnostic.ts +16 -0
  13. package/_util/Mutex.ts +5 -5
  14. package/dist/Accumulator.d.ts +2 -2
  15. package/dist/Accumulator.js +12 -8
  16. package/dist/Accumulator.js.map +1 -1
  17. package/dist/Actor.d.ts +9 -10
  18. package/dist/Actor.js +6 -15
  19. package/dist/Actor.js.map +1 -1
  20. package/dist/Audition.d.ts +3 -4
  21. package/dist/Audition.js +7 -5
  22. package/dist/Audition.js.map +1 -1
  23. package/dist/Client.d.ts +20 -39
  24. package/dist/Client.js +119 -139
  25. package/dist/Client.js.map +1 -1
  26. package/dist/ClientHandle.d.ts +5 -6
  27. package/dist/ClientHandle.js +1 -1
  28. package/dist/ClientHandle.js.map +1 -1
  29. package/dist/F.d.ts +3 -12
  30. package/dist/F.js +1 -3
  31. package/dist/F.js.map +1 -1
  32. package/dist/Method.d.ts +11 -12
  33. package/dist/Method.js.map +1 -1
  34. package/dist/Protocol.d.ts +46 -89
  35. package/dist/Protocol.js +35 -11
  36. package/dist/Protocol.js.map +1 -1
  37. package/dist/Send.d.ts +2 -3
  38. package/dist/Send.js +1 -1
  39. package/dist/Send.js.map +1 -1
  40. package/dist/_util/Diagnostic.d.ts +5 -0
  41. package/dist/_util/Diagnostic.js +10 -0
  42. package/dist/_util/Diagnostic.js.map +1 -0
  43. package/dist/_util/Mutex.d.ts +2 -2
  44. package/dist/_util/Mutex.js +4 -4
  45. package/dist/_util/Mutex.js.map +1 -1
  46. package/dist/errors.d.ts +15 -12
  47. package/dist/errors.js +6 -4
  48. package/dist/errors.js.map +1 -1
  49. package/dist/experimental/BranchLive.d.ts +1 -1
  50. package/dist/experimental/BranchLive.js +1 -1
  51. package/dist/experimental/BranchLive.js.map +1 -1
  52. package/dist/experimental/L/append.d.ts +1 -1
  53. package/dist/experimental/L/append.js +2 -2
  54. package/dist/experimental/L/append.js.map +1 -1
  55. package/dist/experimental/L/assistant.d.ts +2 -2
  56. package/dist/experimental/L/assistant.js +1 -1
  57. package/dist/experimental/L/assistant.js.map +1 -1
  58. package/dist/experimental/L/assistantSchema.d.ts +2 -2
  59. package/dist/experimental/L/assistantSchema.js +1 -1
  60. package/dist/experimental/L/assistantSchema.js.map +1 -1
  61. package/dist/experimental/L/assistantStream.d.ts +2 -2
  62. package/dist/experimental/L/assistantStream.js +1 -1
  63. package/dist/experimental/L/assistantStream.js.map +1 -1
  64. package/dist/experimental/L/branch.d.ts +1 -1
  65. package/dist/experimental/L/clear.d.ts +1 -1
  66. package/dist/experimental/L/clear.js +1 -1
  67. package/dist/experimental/L/clear.js.map +1 -1
  68. package/dist/experimental/L/history.d.ts +2 -2
  69. package/dist/experimental/L/history.js +2 -2
  70. package/dist/experimental/L/history.js.map +1 -1
  71. package/dist/experimental/L/init.d.ts +1 -1
  72. package/dist/experimental/L/init.js +1 -1
  73. package/dist/experimental/L/init.js.map +1 -1
  74. package/dist/experimental/L/matrix.d.ts +2 -2
  75. package/dist/experimental/L/system.d.ts +1 -1
  76. package/dist/experimental/L/system.js +1 -1
  77. package/dist/experimental/L/system.js.map +1 -1
  78. package/dist/experimental/L/user.d.ts +1 -1
  79. package/dist/experimental/L/user.js +1 -1
  80. package/dist/experimental/L/user.js.map +1 -1
  81. package/dist/experimental/Loader.d.ts +3 -3
  82. package/dist/experimental/Loader.js +2 -2
  83. package/dist/experimental/Loader.js.map +1 -1
  84. package/dist/experimental/TaggedTemplateFunction.d.ts +2 -2
  85. package/dist/experimental/Template.d.ts +8 -12
  86. package/dist/experimental/Template.js +53 -51
  87. package/dist/experimental/Template.js.map +1 -1
  88. package/dist/tsconfig.tsbuildinfo +1 -1
  89. package/errors.ts +12 -4
  90. package/experimental/BranchLive.ts +1 -1
  91. package/experimental/L/append.ts +2 -2
  92. package/experimental/L/assistant.ts +1 -1
  93. package/experimental/L/assistantSchema.ts +3 -3
  94. package/experimental/L/assistantStream.ts +1 -1
  95. package/experimental/L/clear.ts +1 -1
  96. package/experimental/L/history.ts +2 -2
  97. package/experimental/L/init.ts +1 -1
  98. package/experimental/L/matrix.ts +3 -3
  99. package/experimental/L/system.ts +1 -1
  100. package/experimental/L/user.ts +1 -1
  101. package/experimental/Loader.ts +3 -3
  102. package/experimental/TaggedTemplateFunction.ts +2 -2
  103. package/experimental/Template.ts +62 -70
  104. package/package.json +2 -6
  105. package/tsconfig.json +1 -1
  106. package/_types.ts +0 -27
  107. package/dist/_types.d.ts +0 -22
  108. package/dist/_types.js +0 -2
  109. package/dist/_types.js.map +0 -1
package/dist/Client.js CHANGED
@@ -1,42 +1,25 @@
1
- import { Socket, Worker } from "@effect/platform";
2
- import { Context, Encoding, Deferred, Effect, Layer, Option, PubSub, RcRef, Record, Ref, Scope, Stream, Take, Schema as S, Array, Struct, } from "effect";
3
- import { AuditionError, ConnectionError } from "./errors.js";
4
- import { UnresolvedError } from "./F.js";
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";
2
+ import { Socket } from "effect/unstable/socket";
3
+ import { Worker } from "effect/unstable/workers";
4
+ import * as Diagnostic from "./_util/Diagnostic.js";
5
+ import { AuditionError, ConnectionError, UnresolvedError } from "./errors.js";
6
+ import {} from "./F.js";
5
7
  import * as Protocol from "./Protocol.js";
8
+ const { debug, span } = Diagnostic.module("Client");
6
9
  export const TypeId = "~liminal/Client";
7
10
  export const Service = () => (id, definition) => {
8
- const tag = Context.Tag(id)();
9
- const call = {
10
- payload: S.TaggedStruct("Call.Payload", {
11
- id: S.Int,
12
- payload: S.Union(...Record.toEntries(definition.methods).map(([_tag, { payload }]) => S.TaggedStruct(_tag, { value: S.Struct(payload) }))),
13
- }),
14
- success: S.TaggedStruct("Call.Success", {
15
- id: S.Int,
16
- value: S.Union(...Record.toEntries(definition.methods).map(([_tag, { success: value }]) => S.TaggedStruct(_tag, { value }))),
17
- }),
18
- failure: S.TaggedStruct("Call.Failure", {
19
- id: S.Int,
20
- cause: S.Union(...Record.toEntries(definition.methods).map(([_tag, { failure: value }]) => S.TaggedStruct(_tag, { value }))),
21
- }),
22
- };
23
- const event = S.TaggedStruct("Event", {
24
- event: S.Union(...Object.entries(definition.events).map(([_tag, fields]) => S.TaggedStruct(_tag, fields))),
25
- });
26
- const actor = S.Union(call.success, call.failure, event, Protocol.Audition.Success, Protocol.Audition.Failure, Protocol.Disconnect);
27
- const events = tag.pipe(Effect.flatMap(RcRef.get), Effect.map(Struct.get("events")), Stream.unwrapScoped);
11
+ const tag = Context.Service()(id);
12
+ const events = tag.asEffect().pipe(Effect.flatMap(RcRef.get), Effect.map(Struct.get("events")), Stream.unwrap);
28
13
  const f = (_tag) => Effect.fnUntraced(function* (value) {
29
- const { f } = yield* tag.pipe(Effect.flatMap(RcRef.get));
14
+ const { f } = yield* tag.asEffect().pipe(Effect.flatMap(RcRef.get));
30
15
  return yield* f(_tag)(value);
31
16
  }, Effect.scoped);
32
- const invalidate = tag.pipe(Effect.flatMap(RcRef.invalidate));
33
- const endEvents = tag.pipe(Effect.flatMap(RcRef.get), Effect.flatMap(({ endEvents }) => endEvents), Effect.scoped, Effect.ignore);
17
+ const invalidate = tag.asEffect().pipe(Effect.flatMap((rc) => RcRef.get(rc).pipe(Effect.flatMap(({ end }) => end), Effect.andThen(RcRef.invalidate(rc)))), Effect.scoped, Effect.ignore);
34
18
  return Object.assign(tag, {
35
19
  [TypeId]: TypeId,
36
20
  definition,
37
- schema: { call, event, actor },
21
+ schema: Protocol.ProtocolSchemas(definition.methods, definition.events),
38
22
  events,
39
- endEvents,
40
23
  f,
41
24
  invalidate,
42
25
  });
@@ -44,12 +27,12 @@ export const Service = () => (id, definition) => {
44
27
  const make = (client, build, replay) => Effect.gen(function* () {
45
28
  const rcr = yield* RcRef.make({
46
29
  acquire: Effect.gen(function* () {
30
+ yield* debug("AcquisitionStarted");
47
31
  const { listen, send } = yield* build;
48
32
  const audition = yield* Deferred.make();
49
33
  const inflights = {};
50
34
  let callId = 0;
51
35
  let takeCount = 0;
52
- let finalError;
53
36
  const pubsub = yield* PubSub.unbounded();
54
37
  const replayState = yield* Ref.make({
55
38
  startupOpen: true,
@@ -74,109 +57,115 @@ const make = (client, build, replay) => Effect.gen(function* () {
74
57
  }
75
58
  yield* PubSub.publish(pubsub, eventTake);
76
59
  });
77
- const events = Effect.gen(function* () {
78
- const queue = yield* PubSub.subscribe(pubsub);
79
- const live = (replayCount) => Stream.fromQueue(queue).pipe(Stream.filter((entry) => entry.seq > replayCount), Stream.map((entry) => entry.take), Stream.flattenTake);
80
- if (!replay) {
81
- return live(-1);
82
- }
83
- const buffer = replay.mode === "all-subscribers"
84
- ? (yield* Ref.get(replayState)).buffer
85
- : yield* Ref.modify(replayState, (state) => state.startupOpen
86
- ? [
87
- state.buffer,
88
- {
89
- startupOpen: false,
90
- buffer: [],
91
- },
92
- ]
93
- : [[], state]);
94
- const replayCount = Array.get(buffer, buffer.length - 1).pipe(Option.map(({ seq }) => seq), Option.getOrElse(() => -1));
95
- return buffer.length === 0
96
- ? live(replayCount)
97
- : Stream.concat(Stream.fromIterable(buffer).pipe(Stream.map((entry) => entry.take), Stream.flattenTake), live(replayCount));
98
- }).pipe(Stream.unwrapScoped);
99
- yield* listen(Effect.fnUntraced(function* (message) {
60
+ const outer = yield* Scope.Scope;
61
+ const scope = yield* Scope.fork(outer, "sequential");
62
+ const end = Scope.close(scope, Exit.void);
63
+ const fiber = yield* listen(Effect.fnUntraced(function* (message) {
100
64
  switch (message._tag) {
101
- case "Audition.Success": {
65
+ case "AuditionSuccess": {
66
+ yield* debug("AuditionSucceeded");
102
67
  yield* Deferred.succeed(audition, void 0);
103
- break;
68
+ return;
104
69
  }
105
70
  case "Event": {
106
71
  const { event } = message;
107
- yield* publishTake(Take.of(event), true);
108
- break;
72
+ yield* debug("EventEmitted", { event });
73
+ yield* publishTake([event], true);
74
+ return;
109
75
  }
110
- case "Call.Success":
111
- case "Call.Failure": {
76
+ case "FSuccess":
77
+ case "FFailure": {
112
78
  const { id } = message;
113
79
  const deferred = inflights[id];
114
80
  if (deferred) {
115
81
  delete inflights[id];
116
82
  switch (message._tag) {
117
- case "Call.Success": {
118
- yield* Deferred.succeed(deferred, message.value.value);
119
- break;
83
+ case "FSuccess": {
84
+ const { _tag, value } = message.success;
85
+ yield* debug("CallSucceeded", { id, _tag, value });
86
+ yield* Deferred.succeed(deferred, value);
87
+ return;
120
88
  }
121
- case "Call.Failure": {
122
- yield* Deferred.fail(deferred, message.cause.value);
123
- break;
89
+ case "FFailure": {
90
+ const { _tag, value } = message.failure;
91
+ yield* debug("CallFailed", { id, _tag, value });
92
+ yield* Deferred.fail(deferred, value);
93
+ return;
124
94
  }
125
95
  }
126
96
  }
127
- break;
97
+ return;
98
+ }
99
+ case "AuditionFailure": {
100
+ const { client, routed } = message;
101
+ yield* debug("AuditionFailed", { client, routed });
102
+ return yield* new AuditionError({ value: { client, routed } });
128
103
  }
129
- case "Audition.Failure": {
130
- const { actual, expected } = message;
131
- finalError = AuditionError.make({ value: { actual, expected } });
132
- yield* Deferred.fail(audition, finalError);
133
- break;
104
+ case "Disconnect": {
105
+ yield* debug("Disconnected");
106
+ return;
134
107
  }
135
- case "Disconnect":
136
108
  case "TransportFailure": {
137
- yield* Deferred.succeed(audition, void 0);
138
- switch (message._tag) {
139
- case "Disconnect": {
140
- finalError = UnresolvedError.make();
141
- yield* publishTake(Take.end);
142
- break;
143
- }
144
- case "TransportFailure": {
145
- const { cause } = message;
146
- yield* publishTake(Take.fail((finalError = ConnectionError.make({ cause }))));
147
- break;
148
- }
149
- }
150
- break;
109
+ const { cause } = message;
110
+ yield* debug("TransportFailed", { cause });
111
+ return yield* new ConnectionError({ cause });
151
112
  }
152
113
  }
153
114
  })).pipe(Effect.ensuring(Effect.all([
154
- PubSub.shutdown(pubsub),
155
- Effect.forEach(Record.values(inflights), (deferred) => Deferred.fail(deferred, finalError ?? UnresolvedError.make()), {
156
- concurrency: "unbounded",
157
- }),
115
+ debug("ClientClosed", { unresolved: Record.keys(inflights).length }),
116
+ Deferred.succeed(audition, void 0),
158
117
  RcRef.invalidate(rcr),
159
- ], { concurrency: "unbounded" })), Effect.forkScoped);
118
+ ], { concurrency: "unbounded" })), Effect.forkScoped, Effect.provideService(Scope.Scope, scope));
119
+ const events = Effect.gen(function* () {
120
+ const queue = yield* PubSub.subscribe(pubsub);
121
+ const live = (replayCount) => Stream.fromSubscription(queue).pipe(Stream.filter((entry) => entry.seq > replayCount), Stream.map((entry) => entry.take), Stream.flattenTake);
122
+ if (!replay) {
123
+ return live(-1);
124
+ }
125
+ const buffer = replay.mode === "all-subscribers"
126
+ ? (yield* Ref.get(replayState)).buffer
127
+ : yield* Ref.modify(replayState, (state) => state.startupOpen
128
+ ? [
129
+ state.buffer,
130
+ {
131
+ startupOpen: false,
132
+ buffer: [],
133
+ },
134
+ ]
135
+ : [[], state]);
136
+ const replayCount = Array.get(buffer, buffer.length - 1).pipe(Option.map(({ seq }) => seq), Option.getOrElse(() => -1));
137
+ return buffer.length === 0
138
+ ? live(replayCount)
139
+ : Stream.concat(Stream.fromIterable(buffer).pipe(Stream.map((entry) => entry.take), Stream.flattenTake), live(replayCount));
140
+ }).pipe(Stream.unwrap, Stream.interruptWhen(Fiber.join(fiber)));
160
141
  yield* Deferred.await(audition);
142
+ const encodingServices = yield* Effect.context();
161
143
  const f = (_tag) => Effect.fnUntraced(function* (value) {
162
- if (finalError)
163
- return yield* finalError;
144
+ const exit = fiber.pollUnsafe();
145
+ if (exit) {
146
+ return yield* Exit.match(exit, {
147
+ onSuccess: () => new UnresolvedError(),
148
+ onFailure: flow(Cause.findError, Result.match({
149
+ onSuccess: identity,
150
+ onFailure: () => new UnresolvedError(),
151
+ })),
152
+ });
153
+ }
164
154
  const id = callId++;
165
155
  const inflight = yield* Deferred.make();
166
156
  inflights[id] = inflight;
167
157
  yield* send({
168
- _tag: "Call.Payload",
158
+ _tag: "FPayload",
169
159
  id,
170
160
  payload: { _tag, value },
171
161
  });
172
- return yield* Deferred.await(inflight);
173
- }, Effect.scoped);
174
- const endEvents = publishTake(Take.end);
175
- return { events, f, endEvents };
176
- }),
162
+ return yield* Effect.raceFirst(Deferred.await(inflight), Fiber.join(fiber).pipe(Effect.andThen(() => new UnresolvedError().asEffect())));
163
+ }, span("f"), Effect.scoped, Effect.provide(encodingServices));
164
+ return { events, f, end };
165
+ }).pipe(span("acquire", { attributes: { client: client.key } }), Effect.annotateLogs("client", client.key)),
177
166
  });
178
167
  return rcr;
179
- }).pipe(Layer.scoped(client));
168
+ }).pipe(Layer.effect(client));
180
169
  export const layerSocket = ({ client, url, protocols, replay, }) => make(client, Effect.gen(function* () {
181
170
  const socket = yield* Socket.makeWebSocket(url ?? "/", {
182
171
  protocols: ["liminal", Encoding.encodeBase64Url(client.key), ...(protocols ? Array.ensure(protocols) : [])],
@@ -184,64 +173,55 @@ export const layerSocket = ({ client, url, protocols, replay, }) => make(client,
184
173
  return {
185
174
  listen: Effect.fnUntraced(function* (publish) {
186
175
  yield* socket
187
- .runRaw(Effect.fnUntraced(function* (raw) {
188
- const message = yield* S.decodeUnknown(S.parseJson(client.schema.actor))(raw instanceof Uint8Array ? new TextDecoder().decode(raw) : raw);
189
- yield* publish(message);
190
- }))
191
- .pipe(Effect.catchTag("ParseError", (cause) => publish({ _tag: "TransportFailure", cause })), Effect.catchTag("SocketError", Effect.fnUntraced(function* (cause) {
192
- switch (cause.reason) {
193
- case "Read":
194
- case "Write":
195
- case "Open":
196
- case "OpenTimeout": {
197
- // TODO
198
- console.log(cause);
176
+ .runRaw((raw) => pipe(raw instanceof Uint8Array ? new TextDecoder().decode(raw) : raw, S.decodeUnknownEffect(S.fromJsonString(client.schema.actor)), Effect.andThen(publish)))
177
+ .pipe(Effect.catchTag("SocketError", Effect.fnUntraced(function* (cause) {
178
+ const { reason } = cause;
179
+ switch (reason._tag) {
180
+ case "SocketReadError":
181
+ case "SocketWriteError":
182
+ case "SocketOpenError": {
183
+ yield* debug(reason._tag, { cause });
199
184
  return yield* publish({ _tag: "TransportFailure", cause });
200
185
  }
201
- case "Close": {
202
- const { code, closeReason } = cause;
186
+ case "SocketCloseError": {
187
+ const { code, closeReason } = reason;
203
188
  switch (code) {
204
189
  case 1000: {
205
190
  return yield* publish({ _tag: "Disconnect" });
206
191
  }
207
192
  case 4003: {
208
- const parsed = S.decodeUnknownOption(S.parseJson(Protocol.Audition.Failure))(closeReason);
209
- if (parsed._tag === "None") {
210
- return yield* publish({ _tag: "TransportFailure", cause });
211
- }
212
- const { actual, expected } = parsed.value;
213
- return yield* publish({
214
- _tag: "Audition.Failure",
215
- actual,
216
- expected,
217
- });
193
+ return yield* S.decodeUnknownEffect(S.fromJsonString(Protocol.AuditionFailure))(closeReason).pipe(Effect.andThen(publish));
218
194
  }
219
195
  }
196
+ yield* debug("SocketCloseError", { cause });
220
197
  return yield* publish({ _tag: "TransportFailure", cause });
221
198
  }
222
199
  }
223
- })));
224
- }),
200
+ })), Effect.catchTag("SchemaError", Effect.die));
201
+ }, span("listen")),
225
202
  send: Effect.fnUntraced(function* (v) {
226
203
  const write = yield* socket.writer;
227
- const message = yield* S.encode(S.parseJson(client.schema.call.payload))(v).pipe(Effect.mapError((cause) => ConnectionError.make({ cause })));
228
- yield* write(message).pipe(Effect.catchTag("SocketError", (cause) => ConnectionError.make({ cause })));
229
- }, Effect.scoped),
204
+ const message = yield* S.encodeEffect(S.fromJsonString(client.schema.f.payload))(v).pipe(Effect.mapError((cause) => new ConnectionError({ cause })));
205
+ yield* write(message).pipe(Effect.catchTag("SocketError", (cause) => new ConnectionError({ cause }).asEffect()));
206
+ }, span("send"), Effect.scoped),
230
207
  };
231
208
  }), replay);
232
209
  export const layerWorker = ({ client, replay, }) => make(client, Effect.gen(function* () {
233
- const manager = yield* Worker.makeManager;
234
- const worker = yield* manager
235
- .spawn({})
236
- .pipe(Effect.catchTag("WorkerError", (cause) => ConnectionError.make({ cause })));
237
- const send = (message) => worker.executeEffect(message).pipe(Effect.catchTag("WorkerError", (cause) => ConnectionError.make({ cause })));
210
+ const platform = yield* Worker.WorkerPlatform;
211
+ const backing = yield* platform
212
+ .spawn(0)
213
+ .pipe(Effect.catchTag("WorkerError", (cause) => new ConnectionError({ cause }).asEffect()));
214
+ const send = (message) => backing.send(message).pipe(Effect.catchTag("WorkerError", (cause) => new ConnectionError({ cause }).asEffect()), span("send"));
238
215
  return {
239
216
  listen: Effect.fnUntraced(function* (publish) {
240
- yield* worker.execute(client.key).pipe(Stream.catchTag("WorkerError", (cause) => Effect.gen(function* () {
241
- yield* publish({ _tag: "TransportFailure", cause });
242
- return Stream.empty;
243
- }).pipe(Stream.unwrap)), Stream.takeUntil((message) => message._tag === "Disconnect" || message._tag === "Audition.Failure"), Stream.runForEach(publish));
244
- }),
217
+ const stop = yield* Deferred.make();
218
+ yield* Effect.raceFirst(backing.run(Effect.fnUntraced(function* (message) {
219
+ yield* publish(message);
220
+ if (message._tag === "Disconnect" || message._tag === "AuditionFailure") {
221
+ yield* Deferred.succeed(stop, void 0);
222
+ }
223
+ }), { onSpawn: backing.send(client.key).pipe(Effect.orDie) }), Deferred.await(stop)).pipe(Effect.catchTag("WorkerError", (cause) => publish({ _tag: "TransportFailure", cause })));
224
+ }, span("listen")),
245
225
  send,
246
226
  };
247
227
  }), replay);
@@ -1 +1 @@
1
- {"version":3,"file":"Client.js","sourceRoot":"","sources":["../Client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Client.js","sourceRoot":"","sources":["../Client.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,17 @@
1
- import { Schema as S, Effect, ParseResult } from "effect";
2
- import type { Fields, FieldsRecord } from "./_types.ts";
1
+ import { Schema as S, Effect } from "effect";
3
2
  import type { Send } from "./Send.ts";
4
3
  declare const TypeId: "~liminal/ClientHandle";
5
- export interface ClientHandle<ActorSelf, AttachmentFields extends Fields, EventDefinitions extends FieldsRecord> {
4
+ export interface ClientHandle<ActorSelf, AttachmentFields extends S.Struct.Fields, EventDefinitions extends Record<string, S.Struct.Fields>> {
6
5
  readonly [TypeId]: typeof TypeId;
7
6
  readonly send: Send<ActorSelf, EventDefinitions>;
8
7
  readonly attachments: Effect.Effect<S.Struct<AttachmentFields>["Type"]>;
9
- readonly save: (attachments: S.Struct<AttachmentFields>["Type"]) => Effect.Effect<void, ParseResult.ParseError>;
8
+ readonly save: (attachments: S.Struct<AttachmentFields>["Type"]) => Effect.Effect<void, S.SchemaError, S.Struct<AttachmentFields>["EncodingServices"]>;
10
9
  readonly disconnect: Effect.Effect<void, never, ActorSelf>;
11
10
  }
12
- export declare const make: <ActorSelf, AttachmentFields extends Fields, EventDefinitions extends FieldsRecord>({ send, attachments, save, disconnect, }: {
11
+ export declare const make: <ActorSelf, AttachmentFields extends S.Struct.Fields, EventDefinitions extends Record<string, S.Struct.Fields>>({ send, attachments, save, disconnect, }: {
13
12
  readonly send: Send<ActorSelf, EventDefinitions>;
14
13
  readonly attachments: Effect.Effect<S.Struct<AttachmentFields>["Type"]>;
15
- readonly save: (attachments: S.Struct<AttachmentFields>["Type"]) => Effect.Effect<void, ParseResult.ParseError>;
14
+ readonly save: (attachments: S.Struct<AttachmentFields>["Type"]) => Effect.Effect<void, S.SchemaError, S.Struct<AttachmentFields>["EncodingServices"]>;
16
15
  readonly disconnect: Effect.Effect<void, never, ActorSelf>;
17
16
  }) => ClientHandle<ActorSelf, AttachmentFields, EventDefinitions>;
18
17
  export {};
@@ -1,4 +1,4 @@
1
- import { Schema as S, Effect, ParseResult } from "effect";
1
+ import { Schema as S, Effect } from "effect";
2
2
  const TypeId = "~liminal/ClientHandle";
3
3
  export const make = ({ send, attachments, save, disconnect, }) => ({
4
4
  [TypeId]: TypeId,
@@ -1 +1 @@
1
- {"version":3,"file":"ClientHandle.js","sourceRoot":"","sources":["../ClientHandle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAKzD,MAAM,MAAM,GAAG,uBAAgC,CAAA;AAc/C,MAAM,CAAC,MAAM,IAAI,GAAG,CAAoF,EACtG,IAAI,EACJ,WAAW,EACX,IAAI,EACJ,UAAU,GASX,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;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"}
package/dist/F.d.ts CHANGED
@@ -1,13 +1,4 @@
1
- import { Effect, Schema as S } from "effect";
2
- import type { ClientError } from "./errors.ts";
1
+ import { Effect } from "effect";
2
+ import type { FError } from "./errors.ts";
3
3
  import type { MethodDefinition } from "./Method.ts";
4
- declare const UnresolvedError_base: S.TaggedErrorClass<UnresolvedError, "UnresolvedError", {
5
- readonly _tag: S.tag<"UnresolvedError">;
6
- }>;
7
- export declare class UnresolvedError extends UnresolvedError_base {
8
- }
9
- export type FError<MethodDefinitions extends Record<string, MethodDefinition.Any>> = [
10
- MethodDefinitions[keyof MethodDefinitions]["failure"]["Type"] | ClientError | UnresolvedError
11
- ][0];
12
- export type F<ClientSelf, MethodDefinitions extends Record<string, MethodDefinition.Any>> = <Method extends keyof MethodDefinitions>(method: Method) => (payload: S.Struct<MethodDefinitions[Method]["payload"]>["Type"]) => Effect.Effect<MethodDefinitions[Method]["success"]["Type"], FError<MethodDefinitions>, ClientSelf>;
13
- export {};
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>;
package/dist/F.js CHANGED
@@ -1,4 +1,2 @@
1
- import { Record, Effect, Schema as S } from "effect";
2
- export class UnresolvedError extends S.TaggedError()("UnresolvedError", {}) {
3
- }
1
+ import { Record, Effect } from "effect";
4
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,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAKpD,MAAM,OAAO,eAAgB,SAAQ,CAAC,CAAC,WAAW,EAAmB,CAAC,iBAAiB,EAAE,EAAE,CAAC;CAAG"}
1
+ {"version":3,"file":"F.js","sourceRoot":"","sources":["../F.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA"}
package/dist/Method.d.ts CHANGED
@@ -1,22 +1,21 @@
1
1
  import { Schema as S, Effect } from "effect";
2
- import type { Fields } from "./_types.ts";
3
- export interface MethodDefinition<P extends Fields, AA, AI, EA, EI> {
4
- readonly payload: P;
5
- readonly success: S.Schema<AA, AI>;
6
- readonly failure: S.Schema<EA, EI>;
2
+ export interface MethodDefinition<Payload extends S.Top, Success extends S.Top, Failure extends S.Top> {
3
+ readonly payload: Payload;
4
+ readonly success: Success;
5
+ readonly failure: Failure;
7
6
  }
8
7
  export declare namespace MethodDefinition {
9
- type Any = MethodDefinition<Fields, any, any, any, any> | MethodDefinition<Fields, any, any, never, never>;
8
+ type Any = MethodDefinition<S.Top, S.Top, S.Top>;
10
9
  type Merge<T, U> = [T] extends [never] ? U : {
11
10
  [K in keyof T & keyof U]: T[K] extends U[K] ? (U[K] extends T[K] ? T[K] : never) : never;
12
11
  };
13
12
  }
14
- export declare const define: <const P extends Fields, AA, AI, EA, EI>({ payload, success, failure, }: {
15
- readonly payload: P;
16
- readonly success: S.Schema<AA, AI>;
17
- readonly failure: S.Schema<EA, EI>;
18
- }) => MethodDefinition<P, AA, AI, EA, EI>;
19
- export type Handler<MethodDefinition extends MethodDefinition.Any, R> = (payload: S.Struct<MethodDefinition["payload"]>["Type"]) => Effect.Effect<MethodDefinition["success"]["Type"], MethodDefinition["failure"]["Type"], R>;
13
+ export declare const define: <Payload extends S.Top, Success extends S.Top, Failure extends S.Top>({ payload, success, failure, }: {
14
+ readonly payload: Payload;
15
+ readonly success: Success;
16
+ readonly failure: Failure;
17
+ }) => 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>;
20
19
  export type Handlers<MethodDefinitions extends Record<string, MethodDefinition.Any>, R> = {
21
20
  [K in keyof MethodDefinitions]: Handler<MethodDefinitions[K], R>;
22
21
  };
@@ -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;AAoB5C,MAAM,CAAC,MAAM,MAAM,GAAG,CAAyC,EAC7D,OAAO,EACP,OAAO,EACP,OAAO,GAKR,EAAuC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;AAU1E,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;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"}