@livestore/sync-cf 0.3.0-dev.9 → 0.3.0

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 (47) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/cf-worker/durable-object.d.ts +45 -28
  3. package/dist/cf-worker/durable-object.d.ts.map +1 -1
  4. package/dist/cf-worker/durable-object.js +214 -129
  5. package/dist/cf-worker/durable-object.js.map +1 -1
  6. package/dist/cf-worker/worker.d.ts +44 -1
  7. package/dist/cf-worker/worker.d.ts.map +1 -1
  8. package/dist/cf-worker/worker.js +83 -13
  9. package/dist/cf-worker/worker.js.map +1 -1
  10. package/dist/common/mod.d.ts +5 -0
  11. package/dist/common/mod.d.ts.map +1 -1
  12. package/dist/common/mod.js +5 -0
  13. package/dist/common/mod.js.map +1 -1
  14. package/dist/common/ws-message-types.d.ts +148 -98
  15. package/dist/common/ws-message-types.d.ts.map +1 -1
  16. package/dist/common/ws-message-types.js +19 -24
  17. package/dist/common/ws-message-types.js.map +1 -1
  18. package/dist/sync-impl/ws-impl.d.ts +2 -5
  19. package/dist/sync-impl/ws-impl.d.ts.map +1 -1
  20. package/dist/sync-impl/ws-impl.js +89 -37
  21. package/dist/sync-impl/ws-impl.js.map +1 -1
  22. package/package.json +4 -4
  23. package/src/cf-worker/durable-object.ts +253 -141
  24. package/src/cf-worker/worker.ts +125 -14
  25. package/src/common/mod.ts +7 -0
  26. package/src/common/ws-message-types.ts +22 -36
  27. package/src/sync-impl/ws-impl.ts +145 -91
  28. package/dist/cf-worker/index.d.ts +0 -3
  29. package/dist/cf-worker/index.d.ts.map +0 -1
  30. package/dist/cf-worker/index.js +0 -33
  31. package/dist/cf-worker/index.js.map +0 -1
  32. package/dist/cf-worker/make-worker.d.ts +0 -6
  33. package/dist/cf-worker/make-worker.d.ts.map +0 -1
  34. package/dist/cf-worker/make-worker.js +0 -31
  35. package/dist/cf-worker/make-worker.js.map +0 -1
  36. package/dist/cf-worker/types.d.ts +0 -2
  37. package/dist/cf-worker/types.d.ts.map +0 -1
  38. package/dist/cf-worker/types.js +0 -2
  39. package/dist/cf-worker/types.js.map +0 -1
  40. package/dist/common/index.d.ts +0 -2
  41. package/dist/common/index.d.ts.map +0 -1
  42. package/dist/common/index.js +0 -2
  43. package/dist/common/index.js.map +0 -1
  44. package/dist/sync-impl/index.d.ts +0 -2
  45. package/dist/sync-impl/index.d.ts.map +0 -1
  46. package/dist/sync-impl/index.js +0 -2
  47. package/dist/sync-impl/index.js.map +0 -1
@@ -1,6 +1,49 @@
1
+ import type { Schema } from '@livestore/utils/effect';
1
2
  import type { Env } from './durable-object.js';
2
3
  export type CFWorker = {
3
4
  fetch: (request: Request, env: Env, ctx: ExecutionContext) => Promise<Response>;
4
5
  };
5
- export declare const makeWorker: () => CFWorker;
6
+ export type MakeWorkerOptions = {
7
+ validatePayload?: (payload: Schema.JsonValue | undefined) => void | Promise<void>;
8
+ /** @default false */
9
+ enableCORS?: boolean;
10
+ durableObject?: {
11
+ /**
12
+ * Needs to match the binding name from the wrangler config
13
+ *
14
+ * @default 'WEBSOCKET_SERVER'
15
+ */
16
+ name?: string;
17
+ };
18
+ };
19
+ export declare const makeWorker: (options?: MakeWorkerOptions) => CFWorker;
20
+ /**
21
+ * Handles `/websocket` endpoint.
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * const validatePayload = (payload: Schema.JsonValue | undefined) => {
26
+ * if (payload?.authToken !== 'insecure-token-change-me') {
27
+ * throw new Error('Invalid auth token')
28
+ * }
29
+ * }
30
+ *
31
+ * export default {
32
+ * fetch: async (request, env, ctx) => {
33
+ * if (request.url.endsWith('/websocket')) {
34
+ * return handleWebSocket(request, env, ctx, { headers: {}, validatePayload })
35
+ * }
36
+ *
37
+ * return new Response('Invalid path', { status: 400, headers: corsHeaders })
38
+ * }
39
+ * }
40
+ * ```
41
+ *
42
+ * @throws {UnexpectedError} If the payload is invalid
43
+ */
44
+ export declare const handleWebSocket: (request: Request, env: Env, _ctx: ExecutionContext, options: {
45
+ headers?: HeadersInit;
46
+ durableObject?: MakeWorkerOptions["durableObject"];
47
+ validatePayload?: (payload: Schema.JsonValue | undefined) => void | Promise<void>;
48
+ }) => Promise<Response>;
6
49
  //# sourceMappingURL=worker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/cf-worker/worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAE9C,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,gBAAgB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;CAChF,CAAA;AAED,eAAO,MAAM,UAAU,QAAO,QAgC7B,CAAA"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/cf-worker/worker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAIrD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAE9C,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,gBAAgB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;CAChF,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,GAAG,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjF,qBAAqB;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE;QACd;;;;WAIG;QACH,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;CACF,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,UAAS,iBAAsB,KAAG,QAiD5D,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,eAAe,GAC1B,SAAS,OAAO,EAChB,KAAK,GAAG,EACR,MAAM,gBAAgB,EACtB,SAAS;IACP,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,aAAa,CAAC,EAAE,iBAAiB,CAAC,eAAe,CAAC,CAAA;IAClD,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,GAAG,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAClF,KACA,OAAO,CAAC,QAAQ,CAwCmC,CAAA"}
@@ -1,29 +1,99 @@
1
- export const makeWorker = () => {
1
+ import { UnexpectedError } from '@livestore/common';
2
+ import { Effect, UrlParams } from '@livestore/utils/effect';
3
+ import { SearchParamsSchema } from '../common/mod.js';
4
+ export const makeWorker = (options = {}) => {
2
5
  return {
3
6
  fetch: async (request, env, _ctx) => {
4
7
  const url = new URL(request.url);
5
- const searchParams = url.searchParams;
6
- const storeId = searchParams.get('storeId');
7
- if (storeId === null) {
8
- return new Response('storeId search param is required', { status: 400 });
8
+ await new Promise((resolve) => setTimeout(resolve, 500));
9
+ if (request.method === 'GET' && url.pathname === '/') {
10
+ return new Response('Info: WebSocket sync backend endpoint for @livestore/sync-cf.', {
11
+ status: 200,
12
+ headers: { 'Content-Type': 'text/plain' },
13
+ });
9
14
  }
10
- const id = env.WEBSOCKET_SERVER.idFromName(storeId);
11
- const durableObject = env.WEBSOCKET_SERVER.get(id);
12
- if (url.pathname.endsWith('/websocket')) {
13
- const upgradeHeader = request.headers.get('Upgrade');
14
- if (!upgradeHeader || upgradeHeader !== 'websocket') {
15
- return new Response('Durable Object expected Upgrade: websocket', { status: 426 });
15
+ const corsHeaders = options.enableCORS
16
+ ? {
17
+ 'Access-Control-Allow-Origin': '*',
18
+ 'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',
19
+ 'Access-Control-Allow-Headers': request.headers.get('Access-Control-Request-Headers') ?? '*',
16
20
  }
17
- return durableObject.fetch(request);
21
+ : {};
22
+ if (request.method === 'OPTIONS' && options.enableCORS) {
23
+ return new Response(null, {
24
+ status: 204,
25
+ headers: corsHeaders,
26
+ });
27
+ }
28
+ if (url.pathname.endsWith('/websocket')) {
29
+ return handleWebSocket(request, env, _ctx, {
30
+ headers: corsHeaders,
31
+ validatePayload: options.validatePayload,
32
+ durableObject: options.durableObject,
33
+ });
18
34
  }
19
- return new Response(null, {
35
+ console.error('Invalid path', url.pathname);
36
+ return new Response('Invalid path', {
20
37
  status: 400,
21
38
  statusText: 'Bad Request',
22
39
  headers: {
40
+ ...corsHeaders,
23
41
  'Content-Type': 'text/plain',
24
42
  },
25
43
  });
26
44
  },
27
45
  };
28
46
  };
47
+ /**
48
+ * Handles `/websocket` endpoint.
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * const validatePayload = (payload: Schema.JsonValue | undefined) => {
53
+ * if (payload?.authToken !== 'insecure-token-change-me') {
54
+ * throw new Error('Invalid auth token')
55
+ * }
56
+ * }
57
+ *
58
+ * export default {
59
+ * fetch: async (request, env, ctx) => {
60
+ * if (request.url.endsWith('/websocket')) {
61
+ * return handleWebSocket(request, env, ctx, { headers: {}, validatePayload })
62
+ * }
63
+ *
64
+ * return new Response('Invalid path', { status: 400, headers: corsHeaders })
65
+ * }
66
+ * }
67
+ * ```
68
+ *
69
+ * @throws {UnexpectedError} If the payload is invalid
70
+ */
71
+ export const handleWebSocket = (request, env, _ctx, options) => Effect.gen(function* () {
72
+ const url = new URL(request.url);
73
+ const urlParams = UrlParams.fromInput(url.searchParams);
74
+ const paramsResult = yield* UrlParams.schemaStruct(SearchParamsSchema)(urlParams).pipe(Effect.either);
75
+ if (paramsResult._tag === 'Left') {
76
+ return new Response(`Invalid search params: ${paramsResult.left.toString()}`, {
77
+ status: 500,
78
+ headers: options?.headers,
79
+ });
80
+ }
81
+ const { storeId, payload } = paramsResult.right;
82
+ if (options.validatePayload !== undefined) {
83
+ const result = yield* Effect.promise(async () => options.validatePayload(payload)).pipe(UnexpectedError.mapToUnexpectedError, Effect.either);
84
+ if (result._tag === 'Left') {
85
+ console.error('Invalid payload', result.left);
86
+ return new Response(result.left.toString(), { status: 400, headers: options.headers });
87
+ }
88
+ }
89
+ const durableObjectName = options.durableObject?.name ?? 'WEBSOCKET_SERVER';
90
+ const durableObjectNamespace = env[durableObjectName];
91
+ const id = durableObjectNamespace.idFromName(storeId);
92
+ const durableObject = durableObjectNamespace.get(id);
93
+ const upgradeHeader = request.headers.get('Upgrade');
94
+ if (!upgradeHeader || upgradeHeader !== 'websocket') {
95
+ return new Response('Durable Object expected Upgrade: websocket', { status: 426, headers: options?.headers });
96
+ }
97
+ return yield* Effect.promise(() => durableObject.fetch(request));
98
+ }).pipe(Effect.tapCauseLogPretty, Effect.runPromise);
29
99
  //# sourceMappingURL=worker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/cf-worker/worker.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,UAAU,GAAG,GAAa,EAAE;IACvC,OAAO;QACL,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAClC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAChC,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAA;YACrC,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YAE3C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,OAAO,IAAI,QAAQ,CAAC,kCAAkC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;YAC1E,CAAC;YAED,MAAM,EAAE,GAAG,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;YACnD,MAAM,aAAa,GAAG,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAElD,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBACxC,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBACpD,IAAI,CAAC,aAAa,IAAI,aAAa,KAAK,WAAW,EAAE,CAAC;oBACpD,OAAO,IAAI,QAAQ,CAAC,4CAA4C,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;gBACpF,CAAC;gBAED,OAAO,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACrC,CAAC;YAED,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;gBACxB,MAAM,EAAE,GAAG;gBACX,UAAU,EAAE,aAAa;gBACzB,OAAO,EAAE;oBACP,cAAc,EAAE,YAAY;iBAC7B;aACF,CAAC,CAAA;QACJ,CAAC;KACF,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/cf-worker/worker.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,7 @@
1
+ import { Schema } from '@livestore/utils/effect';
1
2
  export * as WSMessage from './ws-message-types.js';
3
+ export declare const SearchParamsSchema: Schema.Struct<{
4
+ storeId: typeof Schema.String;
5
+ payload: Schema.UndefinedOr<Schema.transform<Schema.transformOrFail<Schema.SchemaClass<string, string, never>, typeof Schema.String, never>, Schema.transform<Schema.SchemaClass<unknown, string, never>, Schema.Schema<Schema.JsonValue, Schema.JsonValue, never>>>>;
6
+ }>;
2
7
  //# sourceMappingURL=mod.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/common/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/common/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAElD,eAAO,MAAM,kBAAkB;;;EAG7B,CAAA"}
@@ -1,2 +1,7 @@
1
+ import { Schema } from '@livestore/utils/effect';
1
2
  export * as WSMessage from './ws-message-types.js';
3
+ export const SearchParamsSchema = Schema.Struct({
4
+ storeId: Schema.String,
5
+ payload: Schema.compose(Schema.StringFromUriComponent, Schema.parseJson(Schema.JsonValue)).pipe(Schema.UndefinedOr),
6
+ });
2
7
  //# sourceMappingURL=mod.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/common/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/common/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAElD,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9C,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;CACpH,CAAC,CAAA"}
@@ -1,5 +1,7 @@
1
1
  import { Schema } from '@livestore/utils/effect';
2
- export declare const PullReq: Schema.TaggedStruct<"WSMessage.PullReq", {
2
+ export declare const PullReq: Schema.Struct<{
3
+ _tag: Schema.tag<"WSMessage.PullReq">;
4
+ } & {
3
5
  requestId: typeof Schema.String;
4
6
  /** Omitting the cursor will start from the beginning */
5
7
  cursor: Schema.optional<typeof Schema.Number>;
@@ -10,141 +12,172 @@ export declare const SyncMetadata: Schema.Struct<{
10
12
  createdAt: typeof Schema.String;
11
13
  }>;
12
14
  export type SyncMetadata = typeof SyncMetadata.Type;
13
- export declare const PullRes: Schema.TaggedStruct<"WSMessage.PullRes", {
14
- requestId: typeof Schema.String;
15
- events: Schema.Array$<Schema.Struct<{
16
- mutationEventEncoded: Schema.Struct<{
17
- mutation: typeof Schema.String;
15
+ export declare const PullRes: Schema.Struct<{
16
+ _tag: Schema.tag<"WSMessage.PullRes">;
17
+ } & {
18
+ batch: Schema.Array$<Schema.Struct<{
19
+ eventEncoded: Schema.Struct<{
20
+ name: typeof Schema.String;
18
21
  args: typeof Schema.Any;
19
- id: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
20
- parentId: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
22
+ seqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
23
+ parentSeqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
24
+ clientId: typeof Schema.String;
25
+ sessionId: typeof Schema.String;
21
26
  }>;
22
27
  metadata: Schema.Option<Schema.Struct<{
23
28
  /** ISO date format */
24
29
  createdAt: typeof Schema.String;
25
30
  }>>;
26
31
  }>>;
32
+ requestId: Schema.Struct<{
33
+ context: Schema.Literal<["pull", "push"]>;
34
+ requestId: typeof Schema.String;
35
+ }>;
27
36
  remaining: typeof Schema.Number;
28
37
  }>;
29
38
  export type PullRes = typeof PullRes.Type;
30
- export declare const PushBroadcast: Schema.TaggedStruct<"WSMessage.PushBroadcast", {
31
- mutationEventEncoded: Schema.Struct<{
32
- mutation: typeof Schema.String;
33
- args: typeof Schema.Any;
34
- id: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
35
- parentId: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
36
- }>;
37
- metadata: Schema.Option<Schema.Struct<{
38
- /** ISO date format */
39
- createdAt: typeof Schema.String;
40
- }>>;
41
- }>;
42
- export type PushBroadcast = typeof PushBroadcast.Type;
43
- export declare const PushReq: Schema.TaggedStruct<"WSMessage.PushReq", {
39
+ export declare const PushReq: Schema.Struct<{
40
+ _tag: Schema.tag<"WSMessage.PushReq">;
41
+ } & {
44
42
  requestId: typeof Schema.String;
45
43
  batch: Schema.Array$<Schema.Struct<{
46
- mutation: typeof Schema.String;
44
+ name: typeof Schema.String;
47
45
  args: typeof Schema.Any;
48
- id: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
49
- parentId: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
46
+ seqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
47
+ parentSeqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
48
+ clientId: typeof Schema.String;
49
+ sessionId: typeof Schema.String;
50
50
  }>>;
51
51
  }>;
52
52
  export type PushReq = typeof PushReq.Type;
53
- export declare const PushAck: Schema.TaggedStruct<"WSMessage.PushAck", {
53
+ export declare const PushAck: Schema.Struct<{
54
+ _tag: Schema.tag<"WSMessage.PushAck">;
55
+ } & {
54
56
  requestId: typeof Schema.String;
55
- mutationId: typeof Schema.Number;
56
57
  }>;
57
58
  export type PushAck = typeof PushAck.Type;
58
- export declare const Error: Schema.TaggedStruct<"WSMessage.Error", {
59
+ export declare const Error: Schema.Struct<{
60
+ _tag: Schema.tag<"WSMessage.Error">;
61
+ } & {
59
62
  requestId: typeof Schema.String;
60
63
  message: typeof Schema.String;
61
64
  }>;
62
- export declare const Ping: Schema.TaggedStruct<"WSMessage.Ping", {
65
+ export type Error = typeof Error.Type;
66
+ export declare const Ping: Schema.Struct<{
67
+ _tag: Schema.tag<"WSMessage.Ping">;
68
+ } & {
63
69
  requestId: Schema.Literal<["ping"]>;
64
70
  }>;
65
71
  export type Ping = typeof Ping.Type;
66
- export declare const Pong: Schema.TaggedStruct<"WSMessage.Pong", {
72
+ export declare const Pong: Schema.Struct<{
73
+ _tag: Schema.tag<"WSMessage.Pong">;
74
+ } & {
67
75
  requestId: Schema.Literal<["ping"]>;
68
76
  }>;
69
77
  export type Pong = typeof Pong.Type;
70
- export declare const AdminResetRoomReq: Schema.TaggedStruct<"WSMessage.AdminResetRoomReq", {
78
+ export declare const AdminResetRoomReq: Schema.Struct<{
79
+ _tag: Schema.tag<"WSMessage.AdminResetRoomReq">;
80
+ } & {
71
81
  requestId: typeof Schema.String;
72
82
  adminSecret: typeof Schema.String;
73
83
  }>;
74
84
  export type AdminResetRoomReq = typeof AdminResetRoomReq.Type;
75
- export declare const AdminResetRoomRes: Schema.TaggedStruct<"WSMessage.AdminResetRoomRes", {
85
+ export declare const AdminResetRoomRes: Schema.Struct<{
86
+ _tag: Schema.tag<"WSMessage.AdminResetRoomRes">;
87
+ } & {
76
88
  requestId: typeof Schema.String;
77
89
  }>;
78
90
  export type AdminResetRoomRes = typeof AdminResetRoomRes.Type;
79
- export declare const AdminInfoReq: Schema.TaggedStruct<"WSMessage.AdminInfoReq", {
91
+ export declare const AdminInfoReq: Schema.Struct<{
92
+ _tag: Schema.tag<"WSMessage.AdminInfoReq">;
93
+ } & {
80
94
  requestId: typeof Schema.String;
81
95
  adminSecret: typeof Schema.String;
82
96
  }>;
83
97
  export type AdminInfoReq = typeof AdminInfoReq.Type;
84
- export declare const AdminInfoRes: Schema.TaggedStruct<"WSMessage.AdminInfoRes", {
98
+ export declare const AdminInfoRes: Schema.Struct<{
99
+ _tag: Schema.tag<"WSMessage.AdminInfoRes">;
100
+ } & {
85
101
  requestId: typeof Schema.String;
86
102
  info: Schema.Struct<{
87
103
  durableObjectId: typeof Schema.String;
88
104
  }>;
89
105
  }>;
90
106
  export type AdminInfoRes = typeof AdminInfoRes.Type;
91
- export declare const Message: Schema.Union<[Schema.TaggedStruct<"WSMessage.PullReq", {
107
+ export declare const Message: Schema.Union<[Schema.Struct<{
108
+ _tag: Schema.tag<"WSMessage.PullReq">;
109
+ } & {
92
110
  requestId: typeof Schema.String;
93
111
  /** Omitting the cursor will start from the beginning */
94
112
  cursor: Schema.optional<typeof Schema.Number>;
95
- }>, Schema.TaggedStruct<"WSMessage.PullRes", {
96
- requestId: typeof Schema.String;
97
- events: Schema.Array$<Schema.Struct<{
98
- mutationEventEncoded: Schema.Struct<{
99
- mutation: typeof Schema.String;
113
+ }>, Schema.Struct<{
114
+ _tag: Schema.tag<"WSMessage.PullRes">;
115
+ } & {
116
+ batch: Schema.Array$<Schema.Struct<{
117
+ eventEncoded: Schema.Struct<{
118
+ name: typeof Schema.String;
100
119
  args: typeof Schema.Any;
101
- id: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
102
- parentId: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
120
+ seqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
121
+ parentSeqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
122
+ clientId: typeof Schema.String;
123
+ sessionId: typeof Schema.String;
103
124
  }>;
104
125
  metadata: Schema.Option<Schema.Struct<{
105
126
  /** ISO date format */
106
127
  createdAt: typeof Schema.String;
107
128
  }>>;
108
129
  }>>;
109
- remaining: typeof Schema.Number;
110
- }>, Schema.TaggedStruct<"WSMessage.PushBroadcast", {
111
- mutationEventEncoded: Schema.Struct<{
112
- mutation: typeof Schema.String;
113
- args: typeof Schema.Any;
114
- id: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
115
- parentId: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
130
+ requestId: Schema.Struct<{
131
+ context: Schema.Literal<["pull", "push"]>;
132
+ requestId: typeof Schema.String;
116
133
  }>;
117
- metadata: Schema.Option<Schema.Struct<{
118
- /** ISO date format */
119
- createdAt: typeof Schema.String;
120
- }>>;
121
- }>, Schema.TaggedStruct<"WSMessage.PushReq", {
134
+ remaining: typeof Schema.Number;
135
+ }>, Schema.Struct<{
136
+ _tag: Schema.tag<"WSMessage.PushReq">;
137
+ } & {
122
138
  requestId: typeof Schema.String;
123
139
  batch: Schema.Array$<Schema.Struct<{
124
- mutation: typeof Schema.String;
140
+ name: typeof Schema.String;
125
141
  args: typeof Schema.Any;
126
- id: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
127
- parentId: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
142
+ seqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
143
+ parentSeqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
144
+ clientId: typeof Schema.String;
145
+ sessionId: typeof Schema.String;
128
146
  }>>;
129
- }>, Schema.TaggedStruct<"WSMessage.PushAck", {
147
+ }>, Schema.Struct<{
148
+ _tag: Schema.tag<"WSMessage.PushAck">;
149
+ } & {
130
150
  requestId: typeof Schema.String;
131
- mutationId: typeof Schema.Number;
132
- }>, Schema.TaggedStruct<"WSMessage.Error", {
151
+ }>, Schema.Struct<{
152
+ _tag: Schema.tag<"WSMessage.Error">;
153
+ } & {
133
154
  requestId: typeof Schema.String;
134
155
  message: typeof Schema.String;
135
- }>, Schema.TaggedStruct<"WSMessage.Ping", {
156
+ }>, Schema.Struct<{
157
+ _tag: Schema.tag<"WSMessage.Ping">;
158
+ } & {
136
159
  requestId: Schema.Literal<["ping"]>;
137
- }>, Schema.TaggedStruct<"WSMessage.Pong", {
160
+ }>, Schema.Struct<{
161
+ _tag: Schema.tag<"WSMessage.Pong">;
162
+ } & {
138
163
  requestId: Schema.Literal<["ping"]>;
139
- }>, Schema.TaggedStruct<"WSMessage.AdminResetRoomReq", {
164
+ }>, Schema.Struct<{
165
+ _tag: Schema.tag<"WSMessage.AdminResetRoomReq">;
166
+ } & {
140
167
  requestId: typeof Schema.String;
141
168
  adminSecret: typeof Schema.String;
142
- }>, Schema.TaggedStruct<"WSMessage.AdminResetRoomRes", {
169
+ }>, Schema.Struct<{
170
+ _tag: Schema.tag<"WSMessage.AdminResetRoomRes">;
171
+ } & {
143
172
  requestId: typeof Schema.String;
144
- }>, Schema.TaggedStruct<"WSMessage.AdminInfoReq", {
173
+ }>, Schema.Struct<{
174
+ _tag: Schema.tag<"WSMessage.AdminInfoReq">;
175
+ } & {
145
176
  requestId: typeof Schema.String;
146
177
  adminSecret: typeof Schema.String;
147
- }>, Schema.TaggedStruct<"WSMessage.AdminInfoRes", {
178
+ }>, Schema.Struct<{
179
+ _tag: Schema.tag<"WSMessage.AdminInfoRes">;
180
+ } & {
148
181
  requestId: typeof Schema.String;
149
182
  info: Schema.Struct<{
150
183
  durableObjectId: typeof Schema.String;
@@ -152,68 +185,85 @@ export declare const Message: Schema.Union<[Schema.TaggedStruct<"WSMessage.PullR
152
185
  }>]>;
153
186
  export type Message = typeof Message.Type;
154
187
  export type MessageEncoded = typeof Message.Encoded;
155
- export declare const BackendToClientMessage: Schema.Union<[Schema.TaggedStruct<"WSMessage.PullRes", {
156
- requestId: typeof Schema.String;
157
- events: Schema.Array$<Schema.Struct<{
158
- mutationEventEncoded: Schema.Struct<{
159
- mutation: typeof Schema.String;
188
+ export declare const BackendToClientMessage: Schema.Union<[Schema.Struct<{
189
+ _tag: Schema.tag<"WSMessage.PullRes">;
190
+ } & {
191
+ batch: Schema.Array$<Schema.Struct<{
192
+ eventEncoded: Schema.Struct<{
193
+ name: typeof Schema.String;
160
194
  args: typeof Schema.Any;
161
- id: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
162
- parentId: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
195
+ seqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
196
+ parentSeqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
197
+ clientId: typeof Schema.String;
198
+ sessionId: typeof Schema.String;
163
199
  }>;
164
200
  metadata: Schema.Option<Schema.Struct<{
165
201
  /** ISO date format */
166
202
  createdAt: typeof Schema.String;
167
203
  }>>;
168
204
  }>>;
169
- remaining: typeof Schema.Number;
170
- }>, Schema.TaggedStruct<"WSMessage.PushBroadcast", {
171
- mutationEventEncoded: Schema.Struct<{
172
- mutation: typeof Schema.String;
173
- args: typeof Schema.Any;
174
- id: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
175
- parentId: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
205
+ requestId: Schema.Struct<{
206
+ context: Schema.Literal<["pull", "push"]>;
207
+ requestId: typeof Schema.String;
176
208
  }>;
177
- metadata: Schema.Option<Schema.Struct<{
178
- /** ISO date format */
179
- createdAt: typeof Schema.String;
180
- }>>;
181
- }>, Schema.TaggedStruct<"WSMessage.PushAck", {
209
+ remaining: typeof Schema.Number;
210
+ }>, Schema.Struct<{
211
+ _tag: Schema.tag<"WSMessage.PushAck">;
212
+ } & {
182
213
  requestId: typeof Schema.String;
183
- mutationId: typeof Schema.Number;
184
- }>, Schema.TaggedStruct<"WSMessage.AdminResetRoomRes", {
214
+ }>, Schema.Struct<{
215
+ _tag: Schema.tag<"WSMessage.AdminResetRoomRes">;
216
+ } & {
185
217
  requestId: typeof Schema.String;
186
- }>, Schema.TaggedStruct<"WSMessage.AdminInfoRes", {
218
+ }>, Schema.Struct<{
219
+ _tag: Schema.tag<"WSMessage.AdminInfoRes">;
220
+ } & {
187
221
  requestId: typeof Schema.String;
188
222
  info: Schema.Struct<{
189
223
  durableObjectId: typeof Schema.String;
190
224
  }>;
191
- }>, Schema.TaggedStruct<"WSMessage.Error", {
225
+ }>, Schema.Struct<{
226
+ _tag: Schema.tag<"WSMessage.Error">;
227
+ } & {
192
228
  requestId: typeof Schema.String;
193
229
  message: typeof Schema.String;
194
- }>, Schema.TaggedStruct<"WSMessage.Pong", {
230
+ }>, Schema.Struct<{
231
+ _tag: Schema.tag<"WSMessage.Pong">;
232
+ } & {
195
233
  requestId: Schema.Literal<["ping"]>;
196
234
  }>]>;
197
235
  export type BackendToClientMessage = typeof BackendToClientMessage.Type;
198
- export declare const ClientToBackendMessage: Schema.Union<[Schema.TaggedStruct<"WSMessage.PullReq", {
236
+ export declare const ClientToBackendMessage: Schema.Union<[Schema.Struct<{
237
+ _tag: Schema.tag<"WSMessage.PullReq">;
238
+ } & {
199
239
  requestId: typeof Schema.String;
200
240
  /** Omitting the cursor will start from the beginning */
201
241
  cursor: Schema.optional<typeof Schema.Number>;
202
- }>, Schema.TaggedStruct<"WSMessage.PushReq", {
242
+ }>, Schema.Struct<{
243
+ _tag: Schema.tag<"WSMessage.PushReq">;
244
+ } & {
203
245
  requestId: typeof Schema.String;
204
246
  batch: Schema.Array$<Schema.Struct<{
205
- mutation: typeof Schema.String;
247
+ name: typeof Schema.String;
206
248
  args: typeof Schema.Any;
207
- id: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
208
- parentId: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
249
+ seqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
250
+ parentSeqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
251
+ clientId: typeof Schema.String;
252
+ sessionId: typeof Schema.String;
209
253
  }>>;
210
- }>, Schema.TaggedStruct<"WSMessage.AdminResetRoomReq", {
254
+ }>, Schema.Struct<{
255
+ _tag: Schema.tag<"WSMessage.AdminResetRoomReq">;
256
+ } & {
211
257
  requestId: typeof Schema.String;
212
258
  adminSecret: typeof Schema.String;
213
- }>, Schema.TaggedStruct<"WSMessage.AdminInfoReq", {
259
+ }>, Schema.Struct<{
260
+ _tag: Schema.tag<"WSMessage.AdminInfoReq">;
261
+ } & {
214
262
  requestId: typeof Schema.String;
215
263
  adminSecret: typeof Schema.String;
216
- }>, Schema.TaggedStruct<"WSMessage.Ping", {
264
+ }>, Schema.Struct<{
265
+ _tag: Schema.tag<"WSMessage.Ping">;
266
+ } & {
217
267
  requestId: Schema.Literal<["ping"]>;
218
268
  }>]>;
219
269
  export type ClientToBackendMessage = typeof ClientToBackendMessage.Type;
@@ -1 +1 @@
1
- {"version":3,"file":"ws-message-types.d.ts","sourceRoot":"","sources":["../../src/common/ws-message-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws-message-types.d.ts","sourceRoot":"","sources":["../../src/common/ws-message-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,eAAO,MAAM,OAAO;;;;IAElB,wDAAwD;;EAEH,CAAA;AAEvD,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAEzC,eAAO,MAAM,YAAY;IACvB,sBAAsB;;EAEoC,CAAA;AAE5D,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AAEnD,eAAO,MAAM,OAAO;;;;;;;;;;;;;YANlB,sBAAsB;;;;;;;;;EAe+B,CAAA;AAEvD,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAEzC,eAAO,MAAM,OAAO;;;;;;;;;;;;EAGmC,CAAA;AAEvD,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAEzC,eAAO,MAAM,OAAO;;;;EAEmC,CAAA;AAEvD,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAEzC,eAAO,MAAM,KAAK;;;;;EAGmC,CAAA;AAErD,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAErC,eAAO,MAAM,IAAI;;;;EAEmC,CAAA;AAEpD,MAAM,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,CAAA;AAEnC,eAAO,MAAM,IAAI;;;;EAEmC,CAAA;AAEpD,MAAM,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,CAAA;AAEnC,eAAO,MAAM,iBAAiB;;;;;EAGmC,CAAA;AAEjE,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAA;AAE7D,eAAO,MAAM,iBAAiB;;;;EAEmC,CAAA;AAEjE,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAA;AAE7D,eAAO,MAAM,YAAY;;;;;EAGmC,CAAA;AAE5D,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AAEnD,eAAO,MAAM,YAAY;;;;;;;EAKmC,CAAA;AAE5D,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AAEnD,eAAO,MAAM,OAAO;;;;IAvFlB,wDAAwD;;;;;;;;;;;;;;;YAOxD,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4F8B,CAAA;AAEtD,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AACzC,MAAM,MAAM,cAAc,GAAG,OAAO,OAAO,CAAC,OAAO,CAAA;AAEnD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;YAjGjC,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiG0F,CAAA;AAClH,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAC,IAAI,CAAA;AAEvE,eAAO,MAAM,sBAAsB;;;;IA3GjC,wDAAwD;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2GiD,CAAA;AAC3G,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAC,IAAI,CAAA"}