liminal 0.17.14 → 0.17.16

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 (126) hide show
  1. package/Actor.ts +22 -34
  2. package/ActorHandle.ts +34 -0
  3. package/ActorNamespace.ts +188 -0
  4. package/ActorRuntime.ts +449 -0
  5. package/ActorTransport.ts +8 -6
  6. package/Audition.ts +87 -40
  7. package/BrowserActorNamespace.ts +257 -0
  8. package/CHANGELOG.md +17 -0
  9. package/Client.ts +374 -197
  10. package/ClientDirectory.ts +71 -49
  11. package/ClientHandle.ts +9 -7
  12. package/ClientHandleEncoders.ts +15 -0
  13. package/Fn.ts +94 -0
  14. package/Method.ts +11 -21
  15. package/Protocol.ts +44 -36
  16. package/Reducer.ts +22 -0
  17. package/Tracing.ts +45 -0
  18. package/dist/Actor.d.ts +3 -5
  19. package/dist/Actor.js +5 -9
  20. package/dist/Actor.js.map +1 -1
  21. package/dist/ActorHandle.d.ts +12 -0
  22. package/dist/ActorHandle.js +4 -0
  23. package/dist/ActorHandle.js.map +1 -0
  24. package/dist/ActorNamespace.d.ts +25 -0
  25. package/dist/ActorNamespace.js +60 -0
  26. package/dist/ActorNamespace.js.map +1 -0
  27. package/dist/ActorRuntime.d.ts +20 -0
  28. package/dist/ActorRuntime.js +210 -0
  29. package/dist/ActorRuntime.js.map +1 -0
  30. package/dist/ActorTransport.d.ts +5 -4
  31. package/dist/Audition.d.ts +16 -9
  32. package/dist/Audition.js +25 -9
  33. package/dist/Audition.js.map +1 -1
  34. package/dist/BrowserActorNamespace.d.ts +39 -0
  35. package/dist/BrowserActorNamespace.js +134 -0
  36. package/dist/BrowserActorNamespace.js.map +1 -0
  37. package/dist/Client.d.ts +26 -16
  38. package/dist/Client.js +186 -109
  39. package/dist/Client.js.map +1 -1
  40. package/dist/ClientDirectory.d.ts +15 -7
  41. package/dist/ClientDirectory.js +32 -23
  42. package/dist/ClientDirectory.js.map +1 -1
  43. package/dist/ClientHandle.d.ts +5 -4
  44. package/dist/ClientHandleEncoders.d.ts +7 -0
  45. package/dist/ClientHandleEncoders.js +2 -0
  46. package/dist/ClientHandleEncoders.js.map +1 -0
  47. package/dist/Fn.d.ts +24 -0
  48. package/dist/Fn.js +2 -0
  49. package/dist/Fn.js.map +1 -0
  50. package/dist/Method.d.ts +9 -14
  51. package/dist/Method.js +0 -1
  52. package/dist/Method.js.map +1 -1
  53. package/dist/Protocol.d.ts +19 -22
  54. package/dist/Protocol.js +20 -15
  55. package/dist/Protocol.js.map +1 -1
  56. package/dist/Reducer.d.ts +11 -0
  57. package/dist/Reducer.js +2 -0
  58. package/dist/Reducer.js.map +1 -0
  59. package/dist/Tracing.d.ts +37 -0
  60. package/dist/Tracing.js +33 -0
  61. package/dist/Tracing.js.map +1 -0
  62. package/dist/errors.d.ts +0 -4
  63. package/dist/errors.js.map +1 -1
  64. package/dist/experimental/L/append.js +1 -1
  65. package/dist/experimental/L/append.js.map +1 -1
  66. package/dist/experimental/L/history.js +1 -1
  67. package/dist/experimental/L/history.js.map +1 -1
  68. package/dist/experimental/TaggedTemplateFunction.js +1 -1
  69. package/dist/experimental/TaggedTemplateFunction.js.map +1 -1
  70. package/dist/index.common.d.ts +12 -0
  71. package/dist/index.common.js +13 -0
  72. package/dist/index.common.js.map +1 -0
  73. package/dist/index.d.ts +4 -11
  74. package/dist/index.js +4 -11
  75. package/dist/index.js.map +1 -1
  76. package/dist/index.non-workerd.d.ts +1 -0
  77. package/dist/index.non-workerd.js +2 -0
  78. package/dist/index.non-workerd.js.map +1 -0
  79. package/dist/package.json +20 -19
  80. package/dist/tsconfig.tsbuildinfo +1 -1
  81. package/errors.ts +0 -6
  82. package/experimental/L/append.ts +1 -1
  83. package/experimental/L/history.ts +1 -1
  84. package/experimental/TaggedTemplateFunction.ts +1 -1
  85. package/index.common.ts +12 -0
  86. package/index.non-workerd.ts +1 -0
  87. package/index.ts +4 -11
  88. package/package.json +11 -23
  89. package/tsconfig.json +1 -1
  90. package/vitest.config.ts +7 -0
  91. package/Accumulator.ts +0 -103
  92. package/F.ts +0 -10
  93. package/_diagnostic.ts +0 -3
  94. package/_util/Mutex.ts +0 -13
  95. package/_util/schema.ts +0 -7
  96. package/browser/BrowserActorNamespace.ts +0 -213
  97. package/browser/index.ts +0 -1
  98. package/dist/Accumulator.d.ts +0 -22
  99. package/dist/Accumulator.js +0 -37
  100. package/dist/Accumulator.js.map +0 -1
  101. package/dist/F.d.ts +0 -4
  102. package/dist/F.js +0 -2
  103. package/dist/F.js.map +0 -1
  104. package/dist/_diagnostic.d.ts +0 -4
  105. package/dist/_diagnostic.js +0 -3
  106. package/dist/_diagnostic.js.map +0 -1
  107. package/dist/_util/Mutex.d.ts +0 -7
  108. package/dist/_util/Mutex.js +0 -9
  109. package/dist/_util/Mutex.js.map +0 -1
  110. package/dist/_util/schema.d.ts +0 -4
  111. package/dist/_util/schema.js +0 -5
  112. package/dist/_util/schema.js.map +0 -1
  113. package/dist/browser/BrowserActorNamespace.d.ts +0 -16
  114. package/dist/browser/BrowserActorNamespace.js +0 -112
  115. package/dist/browser/BrowserActorNamespace.js.map +0 -1
  116. package/dist/browser/index.d.ts +0 -1
  117. package/dist/browser/index.js +0 -2
  118. package/dist/browser/index.js.map +0 -1
  119. package/dist/workerd/WorkerdActorNamespace.d.ts +0 -25
  120. package/dist/workerd/WorkerdActorNamespace.js +0 -146
  121. package/dist/workerd/WorkerdActorNamespace.js.map +0 -1
  122. package/dist/workerd/index.d.ts +0 -1
  123. package/dist/workerd/index.js +0 -2
  124. package/dist/workerd/index.js.map +0 -1
  125. package/workerd/WorkerdActorNamespace.ts +0 -362
  126. package/workerd/index.ts +0 -1
@@ -1,112 +0,0 @@
1
- import { BrowserWorkerRunner } from "@effect/platform-browser";
2
- import { Cause, Effect, Exit, Layer, Option, Ref, Schema as S, Scope, Semaphore, Stream } from "effect";
3
- import { WorkerRunner } from "effect/unstable/workers";
4
- import { logCause } from "liminal-util/logCause";
5
- import { diagnostic } from "../_diagnostic.js";
6
- import * as ClientDirectory from "../ClientDirectory.js";
7
- import * as Method from "../Method.js";
8
- const { debug, span } = diagnostic("browser.BrowserActorNamespace");
9
- export const make = Effect.fnUntraced(function* ({ actor, handlers, onConnect, introductions, }) {
10
- const { definition: { client: { protocol: { Client: ClientM, Actor }, key: expected, }, name: Name, }, } = actor;
11
- const validateClientMessage = S.decodeUnknownEffect(S.toType(ClientM));
12
- const encodeName = S.encodeEffect(Name);
13
- const entries = {};
14
- const runners = new Map();
15
- const transport = {
16
- send: (port, event) => runners.get(port)?.send(0, event) ?? Effect.void,
17
- close: () => Effect.void,
18
- snapshot: () => Effect.void,
19
- };
20
- const useEntries = yield* Semaphore.make(1).pipe(Effect.map((v) => v.withPermits(1)));
21
- const getEntry = Effect.fnUntraced(function* (key) {
22
- const existing = entries[key];
23
- if (existing)
24
- return existing;
25
- const directory = ClientDirectory.make(actor, transport);
26
- const semaphore = yield* Semaphore.make(1);
27
- const fresh = {
28
- directory,
29
- mutex: semaphore.withPermits(1),
30
- };
31
- entries[key] = fresh;
32
- return fresh;
33
- }, useEntries);
34
- const outerScope = yield* Scope.Scope;
35
- yield* introductions.pipe(Stream.runForEach(Effect.fnUntraced(function* ({ name, port, attachments }) {
36
- yield* debug("IntroductionReceived", { name });
37
- const stateRef = yield* Ref.make(Option.none());
38
- const scope = yield* Scope.fork(outerScope, "sequential");
39
- const closeScope = Scope.close(scope, Exit.void);
40
- const backing = yield* BrowserWorkerRunner.make(port).start();
41
- runners.set(port, backing);
42
- yield* Scope.addFinalizer(scope, Effect.gen(function* () {
43
- runners.delete(port);
44
- const state = yield* Ref.get(stateRef);
45
- if (Option.isSome(state)) {
46
- const { key, entry: { directory }, } = state.value;
47
- yield* directory.unregister(port);
48
- if (directory.handles.size === 0) {
49
- delete entries[key];
50
- }
51
- }
52
- }).pipe(useEntries));
53
- yield* backing
54
- .run(Effect.fnUntraced(function* (_portId, raw) {
55
- const state = yield* Ref.get(stateRef);
56
- yield* Effect.gen(function* () {
57
- const message = yield* validateClientMessage(raw);
58
- yield* debug("MessageReceived", { message });
59
- if (Option.isNone(state)) {
60
- if (message._tag !== "Audition.Payload") {
61
- return yield* Effect.die(undefined);
62
- }
63
- const { client: actual } = message;
64
- if (actual !== expected) {
65
- yield* backing.send(0, {
66
- _tag: "Audition.Failure",
67
- expected,
68
- actual,
69
- });
70
- return yield* closeScope;
71
- }
72
- const key = yield* encodeName(name);
73
- const entry = yield* getEntry(key);
74
- const currentClient = Object.assign(yield* entry.directory.register(port, attachments), {
75
- disconnect: closeScope,
76
- });
77
- const ActorLive = Layer.succeed(actor, {
78
- name,
79
- clients: entry.directory.handles,
80
- currentClient,
81
- });
82
- yield* Ref.set(stateRef, Option.some({ key, entry, currentClient, ActorLive }));
83
- yield* backing.send(0, { _tag: "Audition.Success" });
84
- return yield* onConnect.pipe(entry.mutex, Effect.scoped, span("onConnect"), Effect.provide(ActorLive));
85
- }
86
- const { entry, ActorLive } = state.value;
87
- if (message._tag === "Audition.Payload") {
88
- return yield* Effect.die(undefined);
89
- }
90
- if (message._tag === "Disconnect") {
91
- return yield* closeScope;
92
- }
93
- const { id, payload } = message;
94
- const { _tag, value } = payload;
95
- yield* handlers[_tag](value).pipe(Effect.match({
96
- onSuccess: (value) => ({
97
- _tag: "F.Success",
98
- id,
99
- success: { _tag, value },
100
- }),
101
- onFailure: (value) => ({
102
- _tag: "F.Failure",
103
- id,
104
- failure: { _tag, value },
105
- }),
106
- }), Effect.andThen((v) => backing.send(0, v)), span("handler", { attributes: { _tag } }), Effect.scoped, Effect.provide(ActorLive), entry.mutex);
107
- });
108
- }, span("message")))
109
- .pipe(Effect.andThen(closeScope), Effect.catchCause((cause) => Cause.hasInterruptsOnly(cause) ? Effect.void : logCause(cause).pipe(Effect.andThen(closeScope))), Effect.forkScoped, Scope.provide(scope));
110
- })), Effect.tapCause(logCause));
111
- }, span("make"));
112
- //# sourceMappingURL=BrowserActorNamespace.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BrowserActorNamespace.js","sourceRoot":"","sources":["../../browser/BrowserActorNamespace.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export * as BrowserActorNamespace from "./BrowserActorNamespace.ts";
@@ -1,2 +0,0 @@
1
- export * as BrowserActorNamespace from "./BrowserActorNamespace.js";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAA"}
@@ -1,25 +0,0 @@
1
- import { DurableObject } from "cloudflare:workers";
2
- import { Layer, Effect, Scope, Schema as S, Context, Duration, Encoding, Cause } from "effect";
3
- import { NativeRequest } from "effect-workerd";
4
- import { HttpServerResponse, HttpClient } from "effect/unstable/http";
5
- import type { Actor } from "../Actor.ts";
6
- import type { ProtocolDefinition } from "../Protocol.ts";
7
- import { type TopFromString } from "../_util/schema.ts";
8
- import * as Method from "../Method.ts";
9
- export interface ActorNamespaceDefinition<ActorSelf, ActorId extends string, Name extends TopFromString, AttachmentFields extends S.Struct.Fields, ClientSelf, ClientId extends string, D extends ProtocolDefinition, PreludeROut, PreludeE, RunROut, RunE> {
10
- readonly ""?: this["actor"]["definition"]["client"]["protocol"];
11
- readonly actor: Actor<ActorSelf, ActorId, Name, AttachmentFields, ClientSelf, ClientId, D>;
12
- readonly prelude: Layer.Layer<PreludeROut | NonNullable<this[""]>["F"]["Payload"]["DecodingServices"] | NonNullable<this[""]>["F"]["Success"]["EncodingServices"] | NonNullable<this[""]>["F"]["Failure"]["EncodingServices"] | NonNullable<this[""]>["Event"]["EncodingServices"] | S.Struct<AttachmentFields>["DecodingServices"] | S.Struct<AttachmentFields>["EncodingServices"] | Name["EncodingServices"] | Name["DecodingServices"], PreludeE>;
13
- readonly layer: Layer.Layer<RunROut, RunE, ActorSelf | HttpClient.HttpClient | PreludeROut>;
14
- readonly handlers: Method.Handlers<D["methods"], ActorSelf | HttpClient.HttpClient | PreludeROut | RunROut | Scope.Scope>;
15
- readonly onConnect: Effect.Effect<void, never, ActorSelf | HttpClient.HttpClient | PreludeROut | RunROut | Scope.Scope>;
16
- readonly hibernation?: Duration.Input | undefined;
17
- }
18
- export interface ActorNamespace<NamespaceSelf, NamespaceId extends string, ActorSelf, ActorId extends string, Name extends TopFromString, AttachmentFields extends S.Struct.Fields, ClientSelf, ClientId extends string, D extends ProtocolDefinition, PreludeROut, PreludeE, RunROut, RunE> {
19
- new (state: DurableObjectState<{}>, env: Cloudflare.Env): DurableObject;
20
- readonly service: Context.ServiceClass<NamespaceSelf, NamespaceId, DurableObjectNamespace>;
21
- readonly definition: ActorNamespaceDefinition<ActorSelf, ActorId, Name, AttachmentFields, ClientSelf, ClientId, D, PreludeROut, PreludeE, RunROut, RunE>;
22
- readonly upgrade: (name: Name["Type"], attachments: S.Struct<AttachmentFields>["Type"]) => Effect.Effect<HttpServerResponse.HttpServerResponse, S.SchemaError | Encoding.EncodingError | Cause.NoSuchElementError, NamespaceSelf | NativeRequest.NativeRequest | Name["EncodingServices"] | S.Struct<AttachmentFields>["EncodingServices"]>;
23
- readonly layer: (binding: string) => Layer.Layer<NamespaceSelf, S.SchemaError, never>;
24
- }
25
- export declare const Service: <NamespaceSelf>() => <NamespaceId extends string, ActorSelf, ActorId extends string, Name extends TopFromString, AttachmentFields extends S.Struct.Fields, ClientSelf, ClientId extends string, D extends ProtocolDefinition, PreludeROut, PreludeE, RunROut, RunE>(id: NamespaceId, definition: ActorNamespaceDefinition<ActorSelf, ActorId, Name, AttachmentFields, ClientSelf, ClientId, D, PreludeROut, PreludeE, RunROut, RunE>) => ActorNamespace<NamespaceSelf, NamespaceId, ActorSelf, ActorId, Name, AttachmentFields, ClientSelf, ClientId, D, PreludeROut, PreludeE, RunROut, RunE>;
@@ -1,146 +0,0 @@
1
- import { DurableObject } from "cloudflare:workers";
2
- import { Layer, Effect, Scope, Schema as S, Context, ManagedRuntime, ConfigProvider, Duration, flow, String, Array, Encoding, Option, Cause, } from "effect";
3
- import { Binding, DoState, NativeRequest } from "effect-workerd";
4
- import { SecWebSocketProtocol, close } from "effect-workerd/socket_util";
5
- import { HttpServerResponse, HttpClient, FetchHttpClient } from "effect/unstable/http";
6
- import { boundLayer } from "liminal-util/boundLayer";
7
- import { logCause } from "liminal-util/logCause";
8
- import { diagnostic } from "../_diagnostic.js";
9
- import * as Mutex from "../_util/Mutex.js";
10
- import { encodeJsonString, decodeJsonString } from "../_util/schema.js";
11
- import * as ClientDirectory from "../ClientDirectory.js";
12
- import * as Method from "../Method.js";
13
- const { debug, span } = diagnostic("workerd.WorkerdActorNamespace");
14
- export const Service = () => (id, definition) => {
15
- const { hibernation, actor, prelude, handlers, layer, onConnect } = definition;
16
- const { definition: { name: Name, client: { key: clientId, protocol: P }, attachments: AttachmentFields, }, } = actor;
17
- const encodeName = S.encodeEffect(Name);
18
- const Attachments = S.Struct(AttachmentFields);
19
- const encodeAttachments = S.encodeEffect(S.toCodecJson(Attachments));
20
- const decodeAttachments = S.decodeUnknownEffect(S.toCodecJson(Attachments));
21
- const encodeAttachmentsString = encodeJsonString(Attachments);
22
- const decodeAttachmentsString = decodeJsonString(Attachments);
23
- const encodeAuditionSuccess = encodeJsonString(P.Audition.Success);
24
- const encodeAuditionFailure = encodeJsonString(P.Audition.Failure);
25
- const decodeClientM = decodeJsonString(P.Client);
26
- const encodeFSuccess = encodeJsonString(P.F.Success);
27
- const encodeFFailure = encodeJsonString(P.F.Failure);
28
- const encodeEvent = encodeJsonString(P.Event);
29
- const transport = {
30
- send: (socket, event) => encodeEvent(event).pipe(Effect.andThen((v) => Effect.sync(() => socket.send(v)))),
31
- close: (socket) => Effect.sync(() => socket.close(1000)),
32
- snapshot: (socket, attachments) => encodeAttachments(attachments).pipe(Effect.andThen((v) => Effect.sync(() => socket.serializeAttachment(v)))),
33
- };
34
- class NameDecoded extends Context.Service()("liminal/WorkerdActorNamespace/NameDecoded") {
35
- }
36
- return class extends DurableObject {
37
- static definition = definition;
38
- static service = Context.Service()(id);
39
- static layer = Binding.layer(this.service, ["idFromName", "idFromString", "newUniqueId", "get"]);
40
- runtime;
41
- directory = ClientDirectory.make(actor, transport);
42
- constructor(state, env) {
43
- super(state, env);
44
- if (hibernation) {
45
- Option.andThen(Duration.fromInput(hibernation), flow(Duration.toMillis, state.setHibernatableWebSocketEventTimeout));
46
- }
47
- const Live = Layer.mergeAll(FetchHttpClient.layer, Layer.succeed(DoState.DoState, state), Mutex.layer, Layer.effect(NameDecoded, S.decodeUnknownEffect(Name)(state.id.name)).pipe(Layer.provideMerge(prelude.pipe(Layer.provideMerge(ConfigProvider.layer(ConfigProvider.fromUnknown(env))))))).pipe(boundLayer("actor"));
48
- const hydrateAttachments = Effect.gen({ self: this }, function* () {
49
- for (const socket of state.getWebSockets()) {
50
- const attachments = yield* decodeAttachments(socket.deserializeAttachment());
51
- yield* this.directory.register(socket, attachments);
52
- }
53
- }).pipe(span("hydrateAttachments"), Effect.tapCause(logCause));
54
- this.runtime = hydrateAttachments.pipe(Layer.effectDiscard, Layer.provideMerge(Live), ManagedRuntime.make);
55
- }
56
- fetch(request) {
57
- return Effect.gen({ self: this }, function* () {
58
- const url = new URL(request.url);
59
- const attachments = yield* decodeAttachmentsString(url.searchParams.get("__liminal_attachments"));
60
- const { 0: webSocket, 1: server } = new WebSocketPair();
61
- const state = yield* DoState.DoState;
62
- state.acceptWebSocket(server);
63
- server.send(yield* encodeAuditionSuccess({ _tag: "Audition.Success" }));
64
- const currentClient = yield* this.directory.register(server, attachments);
65
- const name = yield* NameDecoded;
66
- const ActorLive = Layer.succeed(actor, {
67
- name,
68
- clients: this.directory.handles,
69
- currentClient,
70
- });
71
- yield* onConnect.pipe(Effect.scoped, span("onConnect"), Effect.scoped, Effect.provide(Layer.provideMerge(layer, ActorLive)));
72
- yield* debug("ClientRegistered");
73
- return new Response(null, {
74
- status: 101,
75
- webSocket,
76
- headers: { [SecWebSocketProtocol]: "liminal" },
77
- });
78
- }).pipe(Effect.tapCause(logCause), span("fetch"), this.runtime.runPromise);
79
- }
80
- webSocketMessage(socket, raw) {
81
- Effect.gen({ self: this }, function* () {
82
- const currentClient = yield* this.directory.get(socket);
83
- const name = yield* NameDecoded;
84
- const ActorLive = Layer.succeed(actor, {
85
- name,
86
- clients: this.directory.handles,
87
- currentClient,
88
- });
89
- const message = yield* decodeClientM(raw instanceof ArrayBuffer ? new TextDecoder().decode(raw) : raw);
90
- yield* debug("MessageReceived", { message });
91
- if (message._tag === "Audition.Payload") {
92
- return yield* Effect.die(undefined);
93
- }
94
- if (message._tag === "Disconnect") {
95
- return yield* currentClient.disconnect;
96
- }
97
- const { id, payload } = message;
98
- const { _tag, value } = payload;
99
- yield* handlers[_tag](value).pipe(Effect.matchEffect({
100
- onSuccess: (value) => encodeFSuccess({
101
- _tag: "F.Success",
102
- id,
103
- success: { _tag, value },
104
- }),
105
- onFailure: (value) => encodeFFailure({
106
- _tag: "F.Failure",
107
- id,
108
- failure: { _tag, value },
109
- }),
110
- }), span("handler", { attributes: { _tag } }), Effect.andThen((v) => Effect.sync(() => socket.send(v))), Effect.scoped, Effect.provide(Layer.provideMerge(layer, ActorLive)));
111
- }).pipe(Effect.scoped, Mutex.task, Effect.tapCause(logCause), span("webSocketMessage"), this.runtime.runFork);
112
- }
113
- webSocketClose(socket, _code, _reason, _wasClean) {
114
- this.directory
115
- .unregister(socket)
116
- .pipe(Effect.tap(debug("SocketClosed")), Effect.tapCause(logCause), this.runtime.runFork);
117
- }
118
- webSocketError(socket, cause) {
119
- Effect.gen({ self: this }, function* () {
120
- yield* debug("SocketErrored", { cause });
121
- yield* this.directory.unregister(socket);
122
- }).pipe(Effect.tapCause(logCause), span("SocketErrored", { attributes: { cause } }), this.runtime.runFork);
123
- }
124
- static upgrade = (name, attachments) => Effect.gen({ self: this }, function* () {
125
- yield* debug("UpgradeInitiated", { attachments });
126
- const namespace = yield* this.service;
127
- const nameEncoded = yield* encodeName(name);
128
- const stub = namespace.getByName(nameEncoded);
129
- const request = yield* NativeRequest.NativeRequest;
130
- const protocols = yield* Effect.fromNullishOr(request.headers.get(SecWebSocketProtocol)).pipe(Effect.map(flow(String.split(","), Array.map(String.trim))));
131
- const liminalTokenI = yield* Array.findFirstIndex(protocols, (v) => v === "liminal");
132
- const requestClientId = yield* Effect.fromNullishOr(protocols[liminalTokenI + 1]).pipe(Effect.flatMap((v) => Encoding.decodeBase64UrlString(v).asEffect()));
133
- if (requestClientId !== clientId) {
134
- return close(yield* encodeAuditionFailure({
135
- _tag: "Audition.Failure",
136
- expected: clientId,
137
- actual: requestClientId,
138
- }));
139
- }
140
- const url = new URL(request.url);
141
- url.searchParams.set("__liminal_attachments", yield* encodeAttachmentsString(attachments));
142
- return yield* Effect.promise(() => stub.fetch(new Request(url, request))).pipe(Effect.map(HttpServerResponse.raw));
143
- }).pipe(span("upgrade"));
144
- };
145
- };
146
- //# sourceMappingURL=WorkerdActorNamespace.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WorkerdActorNamespace.js","sourceRoot":"","sources":["../../workerd/WorkerdActorNamespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EACL,KAAK,EACL,MAAM,EACN,KAAK,EACL,MAAM,IAAI,CAAC,EACX,OAAO,EACP,cAAc,EACd,cAAc,EACd,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,KAAK,EACL,QAAQ,EACR,MAAM,EACN,KAAK,GACN,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAChE,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AACxE,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAMhD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAsB,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC3F,OAAO,KAAK,eAAe,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAEtC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,+BAA+B,CAAC,CAAA;AAgGnE,MAAM,CAAC,MAAM,OAAO,GAClB,GAAkB,EAAE,CACpB,CAcE,EAAe,EACf,UAYC,EAeD,EAAE;IACF,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,UAAU,CAAA;IAC9E,MAAM,EACJ,UAAU,EAAE,EACV,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,EACtC,WAAW,EAAE,gBAAgB,GAC9B,GACF,GAAG,KAAK,CAAA;IAET,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IAEvC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAC9C,MAAM,iBAAiB,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAA;IACpE,MAAM,iBAAiB,GAAG,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAA;IAC3E,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAA;IAC7D,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAA;IAE7D,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAClE,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAClE,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAChD,MAAM,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACpD,MAAM,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IAEpD,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAE7C,MAAM,SAAS,GAAmD;QAChE,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1G,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxD,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAChC,iBAAiB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/G,CAAA;IAED,MAAM,WAAY,SAAQ,OAAO,CAAC,OAAO,EAA6B,CACpE,2CAA2C,CAC5C;KAAG;IAEJ,OAAO,KAAM,SAAQ,aAAa;QAChC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAA;QAC9B,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,EAAyC,CAAC,EAAE,CAAC,CAAA;QAC7E,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,CAAA;QAEvF,OAAO,CAAA;QACP,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QAE3D,YAAY,KAA6B,EAAE,GAAmB;YAC5D,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YACjB,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,CAAC,OAAO,CACZ,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,EAC/B,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,oCAAoC,CAAC,CACpE,CAAA;YACH,CAAC;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CACzB,eAAe,CAAC,KAAK,EACrB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EACrC,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CACxE,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAC5G,CACF,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAA;YAE3B,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;gBAC7D,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC;oBAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAA;oBAC5E,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;gBACrD,CAAC;YACH,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;YAE9D,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAA;QAC5G,CAAC;QAEQ,KAAK,CAAC,OAAgB;YAC7B,OAAO,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;gBACzC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;gBAChC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAA;gBACjG,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,aAAa,EAAE,CAAA;gBACvD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAA;gBACpC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;gBAC7B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAA;gBACvE,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;gBACzE,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,WAAW,CAAA;gBAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE;oBACrC,IAAI;oBACJ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO;oBAC/B,aAAa;iBACd,CAAC,CAAA;gBACF,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CACnB,MAAM,CAAC,MAAM,EACb,IAAI,CAAC,WAAW,CAAC,EACjB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CACrD,CAAA;gBACD,KAAK,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;gBAChC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;oBACxB,MAAM,EAAE,GAAG;oBACX,SAAS;oBACT,OAAO,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE;iBAC/C,CAAC,CAAA;YACJ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAC5E,CAAC;QAEQ,gBAAgB,CAAC,MAAiB,EAAE,GAAyB;YACpE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;gBAClC,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;gBACvD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,WAAW,CAAA;gBAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE;oBACrC,IAAI;oBACJ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO;oBAC/B,aAAa;iBACd,CAAC,CAAA;gBACF,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,YAAY,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;gBACtG,KAAK,CAAC,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;gBAC5C,IAAI,OAAO,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;oBACxC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBACrC,CAAC;gBACD,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAClC,OAAO,KAAK,CAAC,CAAC,aAAa,CAAC,UAAU,CAAA;gBACxC,CAAC;gBACD,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;gBAC/B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAgB,CAAA;gBACxC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAChC,MAAM,CAAC,WAAW,CAAC;oBACjB,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CACnB,cAAc,CAAC;wBACb,IAAI,EAAE,WAAW;wBACjB,EAAE;wBACF,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAW;qBAClC,CAAC;oBACJ,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CACnB,cAAc,CAAC;wBACb,IAAI,EAAE,WAAW;wBACjB,EAAE;wBACF,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAW;qBAClC,CAAC;iBACL,CAAC,EACF,IAAI,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,EACzC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EACxD,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CACrD,CAAA;YACH,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC/G,CAAC;QAEQ,cAAc,CAAC,MAAiB,EAAE,KAAa,EAAE,OAAe,EAAE,SAAkB;YAC3F,IAAI,CAAC,SAAS;iBACX,UAAU,CAAC,MAAM,CAAC;iBAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC7F,CAAC;QAEQ,cAAc,CAAC,MAAiB,EAAE,KAAc;YACvD,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;gBAClC,KAAK,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;gBACxC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YAC1C,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC5G,CAAC;QAED,MAAM,CAAU,OAAO,GAAG,CAAC,IAAkB,EAAE,WAAyC,EAAE,EAAE,CAC1F,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;YAClC,KAAK,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAA;YACjD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAA;YACrC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YAC3C,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;YAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,aAAa,CAAA;YAClD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAC3F,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAC5D,CAAA;YACD,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAA;YACpF,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CACpF,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CACpE,CAAA;YACD,IAAI,eAAe,KAAK,QAAQ,EAAE,CAAC;gBACjC,OAAO,KAAK,CACV,KAAK,CAAC,CAAC,qBAAqB,CAAC;oBAC3B,IAAI,EAAE,kBAAkB;oBACxB,QAAQ,EAAE,QAAQ;oBAClB,MAAM,EAAE,eAAe;iBACxB,CAAC,CACH,CAAA;YACH,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAChC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAA;YAC1F,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAC5E,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CACnC,CAAA;QACH,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;KAC3B,CAAA;AACH,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- export * as WorkerdActorNamespace from "./WorkerdActorNamespace.ts";
@@ -1,2 +0,0 @@
1
- export * as WorkerdActorNamespace from "./WorkerdActorNamespace.js";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../workerd/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAA"}