solid-objects 0.14.6 → 0.14.8

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 (93) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +8 -6
  3. package/dist/actor-runtime.d.ts +36 -0
  4. package/dist/actor-runtime.d.ts.map +1 -0
  5. package/dist/actor-runtime.js +2 -0
  6. package/dist/actor-runtime.js.map +1 -0
  7. package/dist/browser/index.js +1 -1
  8. package/dist/browser/index.js.map +1 -1
  9. package/dist/cloudflare/configuration.d.ts +32 -0
  10. package/dist/cloudflare/configuration.d.ts.map +1 -0
  11. package/dist/cloudflare/configuration.js +46 -0
  12. package/dist/cloudflare/configuration.js.map +1 -0
  13. package/dist/cloudflare/engine.d.ts +43 -0
  14. package/dist/cloudflare/engine.d.ts.map +1 -0
  15. package/dist/cloudflare/engine.js +921 -0
  16. package/dist/cloudflare/engine.js.map +1 -0
  17. package/dist/cloudflare/host.d.ts +10 -0
  18. package/dist/cloudflare/host.d.ts.map +1 -0
  19. package/dist/cloudflare/host.js +44 -0
  20. package/dist/cloudflare/host.js.map +1 -0
  21. package/dist/cloudflare/index.d.ts +9 -0
  22. package/dist/cloudflare/index.d.ts.map +1 -0
  23. package/dist/cloudflare/index.js +8 -0
  24. package/dist/cloudflare/index.js.map +1 -0
  25. package/dist/cloudflare/platform.d.ts +2 -0
  26. package/dist/cloudflare/platform.d.ts.map +1 -0
  27. package/dist/cloudflare/platform.js +4 -0
  28. package/dist/cloudflare/platform.js.map +1 -0
  29. package/dist/cloudflare/protocol.d.ts +58 -0
  30. package/dist/cloudflare/protocol.d.ts.map +1 -0
  31. package/dist/cloudflare/protocol.js +77 -0
  32. package/dist/cloudflare/protocol.js.map +1 -0
  33. package/dist/cloudflare/records.d.ts +71 -0
  34. package/dist/cloudflare/records.d.ts.map +1 -0
  35. package/dist/cloudflare/records.js +2 -0
  36. package/dist/cloudflare/records.js.map +1 -0
  37. package/dist/cloudflare/runtime.d.ts +83 -0
  38. package/dist/cloudflare/runtime.d.ts.map +1 -0
  39. package/dist/cloudflare/runtime.js +321 -0
  40. package/dist/cloudflare/runtime.js.map +1 -0
  41. package/dist/cloudflare/session.d.ts +12 -0
  42. package/dist/cloudflare/session.d.ts.map +1 -0
  43. package/dist/cloudflare/session.js +332 -0
  44. package/dist/cloudflare/session.js.map +1 -0
  45. package/dist/cloudflare/storage.d.ts +25 -0
  46. package/dist/cloudflare/storage.d.ts.map +1 -0
  47. package/dist/cloudflare/storage.js +195 -0
  48. package/dist/cloudflare/storage.js.map +1 -0
  49. package/dist/context.d.ts +5 -4
  50. package/dist/context.d.ts.map +1 -1
  51. package/dist/context.js +3 -0
  52. package/dist/context.js.map +1 -1
  53. package/dist/core.d.ts +8 -0
  54. package/dist/core.d.ts.map +1 -0
  55. package/dist/core.js +4 -0
  56. package/dist/core.js.map +1 -0
  57. package/dist/default-runtime.d.ts +4 -4
  58. package/dist/default-runtime.d.ts.map +1 -1
  59. package/dist/default-runtime.js.map +1 -1
  60. package/dist/errors.d.ts +14 -0
  61. package/dist/errors.d.ts.map +1 -1
  62. package/dist/errors.js +9 -0
  63. package/dist/errors.js.map +1 -1
  64. package/dist/realtime.d.ts +18 -2
  65. package/dist/realtime.d.ts.map +1 -1
  66. package/dist/realtime.js.map +1 -1
  67. package/dist/reference.d.ts +5 -5
  68. package/dist/reference.d.ts.map +1 -1
  69. package/dist/reference.js.map +1 -1
  70. package/dist/repository.d.ts +8 -1
  71. package/dist/repository.d.ts.map +1 -1
  72. package/dist/repository.js +120 -24
  73. package/dist/repository.js.map +1 -1
  74. package/dist/runtime.d.ts.map +1 -1
  75. package/dist/runtime.js +18 -53
  76. package/dist/runtime.js.map +1 -1
  77. package/dist/turn.d.ts +34 -0
  78. package/dist/turn.d.ts.map +1 -0
  79. package/dist/turn.js +57 -0
  80. package/dist/turn.js.map +1 -0
  81. package/dist/version.d.ts +1 -1
  82. package/dist/version.js +1 -1
  83. package/docs/api.md +22 -0
  84. package/docs/architecture.md +5 -3
  85. package/docs/cloudflare.md +155 -0
  86. package/docs/parity.md +20 -1
  87. package/docs/support.md +12 -11
  88. package/examples/cloudflare/README.md +49 -0
  89. package/examples/cloudflare/environment.d.ts +14 -0
  90. package/examples/cloudflare/shopping-cart.ts +65 -0
  91. package/examples/cloudflare/worker.ts +87 -0
  92. package/examples/cloudflare/wrangler.jsonc +15 -0
  93. package/package.json +22 -7
@@ -0,0 +1,321 @@
1
+ import "./platform.js";
2
+ import { currentActor } from "../context.js";
3
+ import { validateDefinition } from "../definition.js";
4
+ import { ActorCallCycle, ActorSetupFailed, EnqueueOutcomeUnknown, MessageFailed, Rejected, SyncTimeout, UnsupportedCapability, } from "../errors.js";
5
+ import { ActorReferenceCore, createActorReference, MessageReference, } from "../reference.js";
6
+ import { jsonObject, normalizeJson, readonlyCopy } from "../serialization.js";
7
+ import { consoleLogger } from "./configuration.js";
8
+ import { actorName, callHost, unwrapReply, } from "./protocol.js";
9
+ export function createRuntime(options) {
10
+ return new CloudflareRuntime(options.backend);
11
+ }
12
+ export class CloudflareRuntime {
13
+ backend;
14
+ settings = { logger: consoleLogger };
15
+ realtime = {
16
+ connect: () => unsupported("process-local realtime; use the session Durable Object WebSocket"),
17
+ };
18
+ capabilities = Object.freeze({
19
+ actors: true,
20
+ realtime: true,
21
+ sharedTransactions: false,
22
+ fleetAdministration: false,
23
+ });
24
+ constructor(backend) {
25
+ this.backend = backend;
26
+ }
27
+ ref(actorClass, actorId) {
28
+ const definition = validateDefinition(actorClass);
29
+ return createActorReference({
30
+ runtime: this,
31
+ actorClass,
32
+ actorType: definition.type,
33
+ actorId: String(actorId),
34
+ operations: new Set(definition.operations),
35
+ queries: new Set(definition.queries),
36
+ });
37
+ }
38
+ async invoke(options) {
39
+ assertOutsideActor();
40
+ const timeoutMilliseconds = timeout(options.options);
41
+ const deadline = Date.now() + timeoutMilliseconds;
42
+ const message = await this.enqueue({
43
+ reference: options.reference,
44
+ operation: options.operation,
45
+ argumentsValue: options.argumentsValue ?? {},
46
+ options: options.options ?? {},
47
+ deliveryMode: "sync",
48
+ timeoutMilliseconds,
49
+ });
50
+ return this.wait(message, {
51
+ ...options.options,
52
+ timeoutMilliseconds: Math.max(0, deadline - Date.now()),
53
+ });
54
+ }
55
+ async sendMessage(options) {
56
+ assertOutsideActor();
57
+ return this.enqueue({
58
+ reference: options.reference,
59
+ operation: options.operation,
60
+ argumentsValue: options.argumentsValue ?? {},
61
+ options: options.options ?? {},
62
+ deliveryMode: "async",
63
+ timeoutMilliseconds: 5_000,
64
+ });
65
+ }
66
+ async lookupMessage(options) {
67
+ const value = await this.call({
68
+ ...identity(options),
69
+ method: "lookup",
70
+ authorizationContext: context(options.authorizationContext),
71
+ payload: { requestId: options.requestId },
72
+ });
73
+ return value === null ? undefined : this.reference(options, jsonObject(value));
74
+ }
75
+ async messageStatus(message, options = {}) {
76
+ const record = await this.readMessage(message, options);
77
+ return record.status;
78
+ }
79
+ async messageResult(message, options = {}) {
80
+ const record = await this.readMessage(message, options);
81
+ return resultFromRecord(record);
82
+ }
83
+ async wait(message, options = {}) {
84
+ assertOutsideActor();
85
+ const timeoutMilliseconds = timeout(options);
86
+ const deadline = Date.now() + timeoutMilliseconds;
87
+ let record = { status: "unknown", operation: "unknown" };
88
+ do {
89
+ try {
90
+ record = await beforeDeadline(this.readMessage(message, options), Math.max(0, deadline - Date.now()));
91
+ }
92
+ catch (error) {
93
+ if (!(error instanceof RpcDeadline))
94
+ throw error;
95
+ break;
96
+ }
97
+ const result = resultFromRecord(record);
98
+ if (record.status === "completed")
99
+ return result;
100
+ const remaining = deadline - Date.now();
101
+ if (remaining <= 0)
102
+ break;
103
+ await new Promise((resolve) => setTimeout(resolve, Math.min(50, remaining)));
104
+ } while (Date.now() < deadline);
105
+ throw new SyncTimeout({
106
+ messageReference: message,
107
+ details: {
108
+ ...identity(message),
109
+ timeoutMilliseconds,
110
+ operation: String(record.operation),
111
+ messageId: message.id,
112
+ requestId: message.requestId,
113
+ sequence: message.sequence,
114
+ status: String(record.status),
115
+ waitingOn: "unknown",
116
+ activation: { ownerId: null, generation: 0n, expiresAt: null, process: null },
117
+ blocker: null,
118
+ },
119
+ });
120
+ }
121
+ async snapshot(reference, options = {}) {
122
+ return (await this.snapshotWithIncarnation(reference, options)).snapshot;
123
+ }
124
+ async snapshotWithIncarnation(reference, options = {}) {
125
+ const value = jsonObject(await this.call({
126
+ ...identity(reference),
127
+ method: "snapshot",
128
+ authorizationContext: context(options.authorizationContext),
129
+ payload: {},
130
+ }));
131
+ return {
132
+ snapshot: readonlyCopy(jsonObject(value.snapshot)),
133
+ instanceId: String(value.instanceId),
134
+ revision: String(value.revision),
135
+ createdAtMs: Number(value.createdAtMs),
136
+ };
137
+ }
138
+ async destroy(reference, options = {}) {
139
+ assertOutsideActor();
140
+ return ((await this.call({
141
+ ...identity(reference),
142
+ method: "destroy",
143
+ authorizationContext: context(options.authorizationContext),
144
+ payload: {},
145
+ })) === true);
146
+ }
147
+ actorAdministration(options) {
148
+ const call = (payload) => this.call({
149
+ ...identity(options),
150
+ method: "administration",
151
+ authorizationContext: context(options.authorizationContext),
152
+ payload,
153
+ });
154
+ return {
155
+ deadLetters: () => call({ action: "deadLetters" }),
156
+ retryDeadLetter: (id) => call({ action: "retryDeadLetter", id }),
157
+ reminders: () => call({ action: "reminders" }),
158
+ resumeReminder: (request) => call({
159
+ action: "resumeReminder",
160
+ name: request.name,
161
+ runAt: request.runAt?.getTime() ?? Date.now(),
162
+ }),
163
+ };
164
+ }
165
+ async openWebSocket(options) {
166
+ if (!this.backend.sessions)
167
+ return unsupported("realtime without a sessions binding");
168
+ if (!Number.isFinite(options.expiresAt.getTime()) ||
169
+ options.expiresAt.getTime() <= Date.now()) {
170
+ throw new TypeError("session expiry must be in the future");
171
+ }
172
+ const sessionName = crypto.randomUUID();
173
+ return this.backend.sessions
174
+ .getByName(sessionName)
175
+ .fetch("https://solid-objects.internal/session", {
176
+ headers: {
177
+ Upgrade: "websocket",
178
+ "X-Solid-Session-Name": sessionName,
179
+ "X-Solid-Session-Id": options.sessionId,
180
+ "X-Solid-Session-Expiry": String(options.expiresAt.getTime()),
181
+ },
182
+ });
183
+ }
184
+ install() {
185
+ return unsupported("install; storage initializes inside each Durable Object");
186
+ }
187
+ run() {
188
+ return unsupported("process workers; Durable Objects run on requests and alarms");
189
+ }
190
+ registerCommitAction() {
191
+ return unsupported("commitAction and shared SQL transactions");
192
+ }
193
+ get repository() {
194
+ return unsupported("the shared SQL repository");
195
+ }
196
+ get administration() {
197
+ return unsupported("fleet administration; use actorAdministration");
198
+ }
199
+ get reconciliation() {
200
+ return unsupported("fleet reconciliation");
201
+ }
202
+ get processes() {
203
+ return unsupported("process administration");
204
+ }
205
+ get doctor() {
206
+ return unsupported("SQL diagnostics");
207
+ }
208
+ get retention() {
209
+ return unsupported("fleet retention; each object prunes its own records");
210
+ }
211
+ async enqueue(options) {
212
+ const requestId = crypto.randomUUID();
213
+ const availableAt = options.options.availableAt?.getTime() ?? Date.now();
214
+ if (!Number.isFinite(availableAt))
215
+ throw new TypeError("availableAt must be a valid date");
216
+ const request = {
217
+ ...identity(options.reference),
218
+ method: "enqueue",
219
+ authorizationContext: context(options.options.authorizationContext),
220
+ payload: {
221
+ requestId,
222
+ operation: options.operation,
223
+ arguments: jsonObject(options.argumentsValue),
224
+ deliveryMode: options.deliveryMode,
225
+ idempotencyKey: options.options.idempotencyKey ?? null,
226
+ availableAt,
227
+ },
228
+ };
229
+ let reply;
230
+ try {
231
+ reply = await beforeDeadline(this.backend.namespace.getByName(actorName(request)).request(request), options.timeoutMilliseconds);
232
+ }
233
+ catch (error) {
234
+ throw new EnqueueOutcomeUnknown({ ...identity(request), requestId }, { cause: error });
235
+ }
236
+ return this.reference(request, jsonObject(unwrapReply(reply)));
237
+ }
238
+ reference(actor, value) {
239
+ return new MessageReference({
240
+ runtime: this,
241
+ ...identity(actor),
242
+ id: String(value.id),
243
+ requestId: String(value.requestId),
244
+ sequence: BigInt(String(value.sequence)),
245
+ operation: String(value.operation),
246
+ });
247
+ }
248
+ async readMessage(message, options) {
249
+ return jsonObject(await this.call({
250
+ ...identity(message),
251
+ method: "message",
252
+ authorizationContext: context(options.authorizationContext),
253
+ payload: {
254
+ id: message.id,
255
+ requestId: message.requestId,
256
+ sequence: String(message.sequence),
257
+ },
258
+ }));
259
+ }
260
+ call(request) {
261
+ return callHost({ backend: this.backend, request });
262
+ }
263
+ }
264
+ function resultFromRecord(record) {
265
+ if (record.status === "ready" &&
266
+ record.error &&
267
+ jsonObject(record.error).name === "ActorSetupFailed")
268
+ throw new ActorSetupFailed(jsonObject(record.error).cause);
269
+ if (record.status === "rejected") {
270
+ const rejection = jsonObject(record.rejection);
271
+ const error = new Rejected({
272
+ code: String(rejection.code),
273
+ message: String(rejection.message),
274
+ details: jsonObject(rejection.details),
275
+ });
276
+ error.messageId = String(record.id);
277
+ throw error;
278
+ }
279
+ if (record.status === "dead")
280
+ throw new MessageFailed({ messageId: String(record.id), details: jsonObject(record.error) });
281
+ return record.status === "completed"
282
+ ? readonlyCopy(record.result)
283
+ : undefined;
284
+ }
285
+ function assertOutsideActor() {
286
+ if (currentActor())
287
+ throw new ActorCallCycle("actors must use this.sendTo(reference) for transactional delivery");
288
+ }
289
+ function identity(value) {
290
+ return { actorType: value.actorType, actorId: String(value.actorId) };
291
+ }
292
+ function context(value) {
293
+ return normalizeJson(value === undefined ? null : value);
294
+ }
295
+ function timeout(options = {}) {
296
+ const value = options.timeoutMilliseconds ?? 5_000;
297
+ if (!Number.isFinite(value) || value < 0)
298
+ throw new TypeError("timeoutMilliseconds must be a non-negative number");
299
+ return value;
300
+ }
301
+ function unsupported(capability) {
302
+ throw new UnsupportedCapability(`the Durable Objects backend does not support ${capability}`);
303
+ }
304
+ class RpcDeadline extends Error {
305
+ }
306
+ export async function beforeDeadline(promise, milliseconds) {
307
+ let timer;
308
+ try {
309
+ return await Promise.race([
310
+ promise,
311
+ new Promise((_resolve, reject) => {
312
+ timer = setTimeout(() => reject(new RpcDeadline()), milliseconds);
313
+ }),
314
+ ]);
315
+ }
316
+ finally {
317
+ if (timer !== undefined)
318
+ clearTimeout(timer);
319
+ }
320
+ }
321
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/cloudflare/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAA;AAGtB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,QAAQ,EACR,WAAW,EACX,qBAAqB,GACtB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,GAGjB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAY7E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EACL,SAAS,EACT,QAAQ,EACR,WAAW,GAIZ,MAAM,eAAe,CAAA;AAEtB,MAAM,UAAU,aAAa,CAAC,OAA2C;IACvE,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AAC/C,CAAC;AAED,MAAM,OAAO,iBAAiB;IAaP;IAZZ,QAAQ,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,CAAA;IACpC,QAAQ,GAAG;QAClB,OAAO,EAAE,GAAU,EAAE,CACnB,WAAW,CAAC,kEAAkE,CAAC;KAClF,CAAA;IACQ,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;QACpC,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,kBAAkB,EAAE,KAAK;QACzB,mBAAmB,EAAE,KAAK;KAC3B,CAAC,CAAA;IAEF,YAAqB,OAA8B;QAA9B,YAAO,GAAP,OAAO,CAAuB;IAAG,CAAC;IAEvD,GAAG,CACD,UAAiC,EACjC,OAAwB;QAExB,MAAM,UAAU,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAA;QACjD,OAAO,oBAAoB,CAAC;YAC1B,OAAO,EAAE,IAAI;YACb,UAAU;YACV,SAAS,EAAE,UAAU,CAAC,IAAI;YAC1B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;YACxB,UAAU,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC;YAC1C,OAAO,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;SACrC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAqB,OAKhC;QACC,kBAAkB,EAAE,CAAA;QACpB,MAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,mBAAmB,CAAA;QACjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAS;YACzC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE;YAC5C,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,YAAY,EAAE,MAAM;YACpB,mBAAmB;SACpB,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACxB,GAAG,OAAO,CAAC,OAAO;YAClB,mBAAmB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;SACxD,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAqB,OAKrC;QACC,kBAAkB,EAAE,CAAA;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE;YAC5C,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,YAAY,EAAE,OAAO;YACrB,mBAAmB,EAAE,KAAK;SAC3B,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,OAAgF;QAEhF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;YAC5B,GAAG,QAAQ,CAAC,OAAO,CAAC;YACpB,MAAM,EAAE,QAAQ;YAChB,oBAAoB,EAAE,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC;YAC3D,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE;SAC1C,CAAC,CAAA;QACF,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAS,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;IACxF,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,OAAyB,EACzB,UAA2B,EAAE;QAE7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACvD,OAAO,MAAM,CAAC,MAAuB,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,OAAiC,EACjC,UAA2B,EAAE;QAE7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACvD,OAAO,gBAAgB,CAAS,MAAM,CAAC,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,IAAI,CACR,OAAiC,EACjC,UAA6B,EAAE;QAE/B,kBAAkB,EAAE,CAAA;QACpB,MAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,mBAAmB,CAAA;QACjD,IAAI,MAAM,GAAe,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA;QACpE,GAAG,CAAC;YACF,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,cAAc,CAC3B,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,EAClC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CACnC,CAAA;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,KAAK,YAAY,WAAW,CAAC;oBAAE,MAAM,KAAK,CAAA;gBAChD,MAAK;YACP,CAAC;YACD,MAAM,MAAM,GAAG,gBAAgB,CAAS,MAAM,CAAC,CAAA;YAC/C,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW;gBAAE,OAAO,MAA8B,CAAA;YACxE,MAAM,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACvC,IAAI,SAAS,IAAI,CAAC;gBAAE,MAAK;YACzB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;QACpF,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAC;QAC/B,MAAM,IAAI,WAAW,CAAC;YACpB,gBAAgB,EAAE,OAAO;YACzB,OAAO,EAAE;gBACP,GAAG,QAAQ,CAAC,OAAO,CAAC;gBACpB,mBAAmB;gBACnB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;gBACnC,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC7B,SAAS,EAAE,SAAS;gBACpB,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;gBAC7E,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,SAAwC,EACxC,UAA2B,EAAE;QAE7B,OAAO,CAAC,MAAM,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAA;IAC1E,CAAC;IAED,KAAK,CAAC,uBAAuB,CAC3B,SAAwC,EACxC,UAA2B,EAAE;QAE7B,MAAM,KAAK,GAAG,UAAU,CACtB,MAAM,IAAI,CAAC,IAAI,CAAC;YACd,GAAG,QAAQ,CAAC,SAAS,CAAC;YACtB,MAAM,EAAE,UAAU;YAClB,oBAAoB,EAAE,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC;YAC3D,OAAO,EAAE,EAAE;SACZ,CAAC,CACH,CAAA;QACD,OAAO;YACL,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAA6B;YAC9E,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;YACpC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;YAChC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;SACvC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CACX,SAAoC,EACpC,UAA0B,EAAE;QAE5B,kBAAkB,EAAE,CAAA;QACpB,OAAO,CACL,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC;YACf,GAAG,QAAQ,CAAC,SAAS,CAAC;YACtB,MAAM,EAAE,SAAS;YACjB,oBAAoB,EAAE,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC;YAC3D,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC,KAAK,IAAI,CACb,CAAA;IACH,CAAC;IAED,mBAAmB,CAAC,OAA6D;QAC/E,MAAM,IAAI,GAAG,CAAC,OAAmB,EAAE,EAAE,CACnC,IAAI,CAAC,IAAI,CAAC;YACR,GAAG,QAAQ,CAAC,OAAO,CAAC;YACpB,MAAM,EAAE,gBAAgB;YACxB,oBAAoB,EAAE,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC;YAC3D,OAAO;SACR,CAAC,CAAA;QACJ,OAAO;YACL,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;YAClD,eAAe,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC;YACxE,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;YAC9C,cAAc,EAAE,CAAC,OAAuC,EAAE,EAAE,CAC1D,IAAI,CAAC;gBACH,MAAM,EAAE,gBAAgB;gBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE;aAC9C,CAAC;SACL,CAAA;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAA+C;QACjE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;YAAE,OAAO,WAAW,CAAC,qCAAqC,CAAC,CAAA;QACrF,IACE,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAC7C,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EACzC,CAAC;YACD,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAA;QAC7D,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ;aACzB,SAAS,CAAC,WAAW,CAAC;aACtB,KAAK,CAAC,wCAAwC,EAAE;YAC/C,OAAO,EAAE;gBACP,OAAO,EAAE,WAAW;gBACpB,sBAAsB,EAAE,WAAW;gBACnC,oBAAoB,EAAE,OAAO,CAAC,SAAS;gBACvC,wBAAwB,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aAC9D;SACF,CAAC,CAAA;IACN,CAAC;IAED,OAAO;QACL,OAAO,WAAW,CAAC,yDAAyD,CAAC,CAAA;IAC/E,CAAC;IACD,GAAG;QACD,OAAO,WAAW,CAAC,6DAA6D,CAAC,CAAA;IACnF,CAAC;IACD,oBAAoB;QAClB,OAAO,WAAW,CAAC,0CAA0C,CAAC,CAAA;IAChE,CAAC;IACD,IAAI,UAAU;QACZ,OAAO,WAAW,CAAC,2BAA2B,CAAC,CAAA;IACjD,CAAC;IACD,IAAI,cAAc;QAChB,OAAO,WAAW,CAAC,+CAA+C,CAAC,CAAA;IACrE,CAAC;IACD,IAAI,cAAc;QAChB,OAAO,WAAW,CAAC,sBAAsB,CAAC,CAAA;IAC5C,CAAC;IACD,IAAI,SAAS;QACX,OAAO,WAAW,CAAC,wBAAwB,CAAC,CAAA;IAC9C,CAAC;IACD,IAAI,MAAM;QACR,OAAO,WAAW,CAAC,iBAAiB,CAAC,CAAA;IACvC,CAAC;IACD,IAAI,SAAS;QACX,OAAO,WAAW,CAAC,qDAAqD,CAAC,CAAA;IAC3E,CAAC;IAEO,KAAK,CAAC,OAAO,CAAS,OAO7B;QACC,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;QACrC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;QACxE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAA;QAC1F,MAAM,OAAO,GAAgB;YAC3B,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;YAC9B,MAAM,EAAE,SAAS;YACjB,oBAAoB,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC;YACnE,OAAO,EAAE;gBACP,SAAS;gBACT,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC;gBAC7C,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI;gBACtD,WAAW;aACZ;SACF,CAAA;QACD,IAAI,KAAK,CAAA;QACT,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,cAAc,CAC1B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EACrE,OAAO,CAAC,mBAAmB,CAC5B,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,qBAAqB,CAAC,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;QACxF,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAS,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACxE,CAAC;IAEO,SAAS,CAAS,KAAoB,EAAE,KAAiB;QAC/D,OAAO,IAAI,gBAAgB,CAAC;YAC1B,OAAO,EAAE,IAAI;YACb,GAAG,QAAQ,CAAC,KAAK,CAAC;YAClB,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;YAClC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACxC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,OAAyB,EACzB,OAAwB;QAExB,OAAO,UAAU,CACf,MAAM,IAAI,CAAC,IAAI,CAAC;YACd,GAAG,QAAQ,CAAC,OAAO,CAAC;YACpB,MAAM,EAAE,SAAS;YACjB,oBAAoB,EAAE,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC;YAC3D,OAAO,EAAE;gBACP,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;aACnC;SACF,CAAC,CACH,CAAA;IACH,CAAC;IAEO,IAAI,CAAC,OAAoB;QAC/B,OAAO,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;IACrD,CAAC;CACF;AAED,SAAS,gBAAgB,CAAS,MAAkB;IAClD,IACE,MAAM,CAAC,MAAM,KAAK,OAAO;QACzB,MAAM,CAAC,KAAK;QACZ,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,kBAAkB;QAEpD,MAAM,IAAI,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAA;IAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC;YACzB,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YAC5B,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;YAClC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC;SACvC,CAAC,CAAA;QACF,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACnC,MAAM,KAAK,CAAA;IACb,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM;QAC1B,MAAM,IAAI,aAAa,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC9F,OAAO,MAAM,CAAC,MAAM,KAAK,WAAW;QAClC,CAAC,CAAE,YAAY,CAAC,MAAM,CAAC,MAAM,CAA0B;QACvD,CAAC,CAAC,SAAS,CAAA;AACf,CAAC;AAED,SAAS,kBAAkB;IACzB,IAAI,YAAY,EAAE;QAChB,MAAM,IAAI,cAAc,CAAC,mEAAmE,CAAC,CAAA;AACjG,CAAC;AAED,SAAS,QAAQ,CAAC,KAAoB;IACpC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA;AACvE,CAAC;AAED,SAAS,OAAO,CAAuB,KAAuC;IAC5E,OAAO,aAAa,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AAC1D,CAAC;AAED,SAAS,OAAO,CAAC,UAA6B,EAAE;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,mBAAmB,IAAI,KAAK,CAAA;IAClD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QACtC,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAA;IAC1E,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,WAAW,CAAC,UAAkB;IACrC,MAAM,IAAI,qBAAqB,CAAC,gDAAgD,UAAU,EAAE,CAAC,CAAA;AAC/F,CAAC;AAED,MAAM,WAAY,SAAQ,KAAK;CAAG;AAElC,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAuB,EACvB,YAAoB;IAEpB,IAAI,KAAgD,CAAA;IACpD,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC;YACxB,OAAO;YACP,IAAI,OAAO,CAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;gBACtC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,EAAE,YAAY,CAAC,CAAA;YACnE,CAAC,CAAC;SACH,CAAC,CAAA;IACJ,CAAC;YAAS,CAAC;QACT,IAAI,KAAK,KAAK,SAAS;YAAE,YAAY,CAAC,KAAK,CAAC,CAAA;IAC9C,CAAC;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { DurableObject } from "cloudflare:workers";
2
+ import type { JsonValue } from "../types.js";
3
+ import { type DurableObjectsBackend, type SessionHost } from "./protocol.js";
4
+ export declare function createDurableObjectsSessionHost<Environment>(options: {
5
+ backend: (environment: Environment) => DurableObjectsBackend;
6
+ resolveAuthorizationContext: (input: {
7
+ sessionId: string;
8
+ environment: Environment;
9
+ }) => JsonValue | null | Promise<JsonValue | null>;
10
+ maxSubscriptions?: number;
11
+ }): new (context: DurableObjectState, environment: Environment) => DurableObject<Environment> & Pick<SessionHost, "publish">;
12
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/cloudflare/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAIlD,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAIL,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EACjB,MAAM,eAAe,CAAA;AAiBtB,wBAAgB,+BAA+B,CAAC,WAAW,EAAE,OAAO,EAAE;IACpE,OAAO,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,qBAAqB,CAAA;IAC5D,2BAA2B,EAAE,CAAC,KAAK,EAAE;QACnC,SAAS,EAAE,MAAM,CAAA;QACjB,WAAW,EAAE,WAAW,CAAA;KACzB,KAAK,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IAClD,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,GAAG,KACF,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EAAE,WAAW,KACrB,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAgW7D"}