@lokiplay/protocol 0.1.2 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -57,27 +57,41 @@ export declare const CapabilitySchema: z.ZodEnum<{
57
57
  presence: "presence";
58
58
  chat: "chat";
59
59
  private_leaderboards: "private_leaderboards";
60
+ synchronized_rooms: "synchronized_rooms";
60
61
  }>;
62
+ export declare const ActionIdSchema: z.ZodString;
63
+ export declare const ActionRejectionOutcomeSchema: z.ZodEnum<{
64
+ rejected: "rejected";
65
+ invalid: "invalid";
66
+ }>;
67
+ export declare const ProtocolLimitsSchema: z.ZodObject<{
68
+ maxPlayersPerRoom: z.ZodNumber;
69
+ maxMessageBytes: z.ZodNumber;
70
+ maxChatBytes: z.ZodNumber;
71
+ messagesPerSecond: z.ZodNumber;
72
+ }, z.core.$loose>;
73
+ export declare const RuntimeCapabilityBlockSchema: z.ZodObject<{
74
+ synchronized_rooms: z.ZodOptional<z.ZodBoolean>;
75
+ limits: z.ZodOptional<z.ZodObject<{
76
+ maxPlayersPerRoom: z.ZodNumber;
77
+ maxMessageBytes: z.ZodNumber;
78
+ maxChatBytes: z.ZodNumber;
79
+ messagesPerSecond: z.ZodNumber;
80
+ }, z.core.$loose>>;
81
+ minimumProtocolVersion: z.ZodOptional<z.ZodNumber>;
82
+ }, z.core.$loose>;
61
83
  export declare const ProtocolHelloSchema: z.ZodObject<{
62
84
  protocolVersion: z.ZodLiteral<1>;
63
85
  minimumProtocolVersion: z.ZodLiteral<1>;
64
- capabilities: z.ZodArray<z.ZodEnum<{
65
- matchmaking: "matchmaking";
66
- rooms: "rooms";
67
- invites: "invites";
68
- host_migration: "host_migration";
69
- reconnect: "reconnect";
70
- presence: "presence";
71
- chat: "chat";
72
- private_leaderboards: "private_leaderboards";
73
- }>>;
86
+ capabilities: z.ZodArray<z.ZodString>;
74
87
  limits: z.ZodObject<{
75
88
  maxPlayersPerRoom: z.ZodNumber;
76
89
  maxMessageBytes: z.ZodNumber;
77
90
  maxChatBytes: z.ZodNumber;
78
91
  messagesPerSecond: z.ZodNumber;
79
- }, z.core.$strip>;
80
- }, z.core.$strict>;
92
+ }, z.core.$loose>;
93
+ }, z.core.$loose>;
94
+ export declare const ActionSenderIdSchema: z.ZodString;
81
95
  export declare const PresenceSchema: z.ZodObject<{
82
96
  playerId: z.ZodString;
83
97
  sessionId: z.ZodString;
@@ -88,6 +102,7 @@ export declare const PresenceSchema: z.ZodObject<{
88
102
  export declare const ClientEnvelopeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
89
103
  type: z.ZodLiteral<"action">;
90
104
  payload: z.ZodUnknown;
105
+ actionId: z.ZodOptional<z.ZodString>;
91
106
  protocolVersion: z.ZodLiteral<1>;
92
107
  roomId: z.ZodString;
93
108
  sequence: z.ZodNumber;
@@ -101,10 +116,25 @@ export declare const ClientEnvelopeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
101
116
  }, z.core.$strip>, z.ZodObject<{
102
117
  type: z.ZodLiteral<"host_state">;
103
118
  expectedVersion: z.ZodNumber;
119
+ expectedStateVersion: z.ZodOptional<z.ZodNumber>;
120
+ actionId: z.ZodOptional<z.ZodString>;
121
+ senderId: z.ZodOptional<z.ZodString>;
104
122
  state: z.ZodUnknown;
105
123
  protocolVersion: z.ZodLiteral<1>;
106
124
  roomId: z.ZodString;
107
125
  sequence: z.ZodNumber;
126
+ }, z.core.$strip>, z.ZodObject<{
127
+ type: z.ZodLiteral<"action_reject">;
128
+ actionId: z.ZodString;
129
+ senderId: z.ZodOptional<z.ZodString>;
130
+ outcome: z.ZodEnum<{
131
+ rejected: "rejected";
132
+ invalid: "invalid";
133
+ }>;
134
+ message: z.ZodString;
135
+ protocolVersion: z.ZodLiteral<1>;
136
+ roomId: z.ZodString;
137
+ sequence: z.ZodNumber;
108
138
  }, z.core.$strip>, z.ZodObject<{
109
139
  type: z.ZodLiteral<"snapshot_request">;
110
140
  protocolVersion: z.ZodLiteral<1>;
@@ -133,6 +163,26 @@ export declare const ServerEnvelopeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
133
163
  type: z.ZodLiteral<"snapshot">;
134
164
  hostId: z.ZodString;
135
165
  state: z.ZodUnknown;
166
+ stateVersion: z.ZodOptional<z.ZodNumber>;
167
+ actionId: z.ZodOptional<z.ZodString>;
168
+ senderId: z.ZodOptional<z.ZodString>;
169
+ members: z.ZodOptional<z.ZodArray<z.ZodObject<{
170
+ playerId: z.ZodString;
171
+ sessionId: z.ZodString;
172
+ joinedAt: z.ZodNumber;
173
+ team: z.ZodOptional<z.ZodNumber>;
174
+ host: z.ZodBoolean;
175
+ }, z.core.$strict>>>;
176
+ capabilities: z.ZodOptional<z.ZodObject<{
177
+ synchronized_rooms: z.ZodOptional<z.ZodBoolean>;
178
+ limits: z.ZodOptional<z.ZodObject<{
179
+ maxPlayersPerRoom: z.ZodNumber;
180
+ maxMessageBytes: z.ZodNumber;
181
+ maxChatBytes: z.ZodNumber;
182
+ messagesPerSecond: z.ZodNumber;
183
+ }, z.core.$loose>>;
184
+ minimumProtocolVersion: z.ZodOptional<z.ZodNumber>;
185
+ }, z.core.$loose>>;
136
186
  protocolVersion: z.ZodLiteral<1>;
137
187
  roomId: z.ZodString;
138
188
  sequence: z.ZodNumber;
@@ -140,6 +190,9 @@ export declare const ServerEnvelopeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
140
190
  type: z.ZodLiteral<"state">;
141
191
  hostId: z.ZodString;
142
192
  state: z.ZodUnknown;
193
+ stateVersion: z.ZodOptional<z.ZodNumber>;
194
+ actionId: z.ZodOptional<z.ZodString>;
195
+ senderId: z.ZodOptional<z.ZodString>;
143
196
  protocolVersion: z.ZodLiteral<1>;
144
197
  roomId: z.ZodString;
145
198
  sequence: z.ZodNumber;
@@ -147,6 +200,7 @@ export declare const ServerEnvelopeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
147
200
  type: z.ZodLiteral<"action">;
148
201
  senderId: z.ZodString;
149
202
  payload: z.ZodUnknown;
203
+ actionId: z.ZodOptional<z.ZodString>;
150
204
  protocolVersion: z.ZodLiteral<1>;
151
205
  roomId: z.ZodString;
152
206
  sequence: z.ZodNumber;
@@ -249,6 +303,12 @@ export declare const ServerEnvelopeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
249
303
  }>;
250
304
  message: z.ZodString;
251
305
  retryAfterMs: z.ZodOptional<z.ZodNumber>;
306
+ actionId: z.ZodOptional<z.ZodString>;
307
+ senderId: z.ZodOptional<z.ZodString>;
308
+ actionOutcome: z.ZodOptional<z.ZodEnum<{
309
+ rejected: "rejected";
310
+ invalid: "invalid";
311
+ }>>;
252
312
  protocolVersion: z.ZodLiteral<1>;
253
313
  roomId: z.ZodString;
254
314
  sequence: z.ZodNumber;
@@ -269,11 +329,26 @@ export type GameManifest = z.infer<typeof GameManifestSchema>;
269
329
  export type RoomConfig = z.infer<typeof RoomConfigSchema>;
270
330
  export type ErrorCode = z.infer<typeof ErrorCodeSchema>;
271
331
  export type Capability = z.infer<typeof CapabilitySchema>;
332
+ export type ActionId = z.infer<typeof ActionIdSchema>;
333
+ export type ActionRejectionOutcome = z.infer<typeof ActionRejectionOutcomeSchema>;
334
+ export type ProtocolLimits = z.infer<typeof ProtocolLimitsSchema>;
335
+ export type RuntimeCapabilityBlock = z.infer<typeof RuntimeCapabilityBlockSchema>;
272
336
  export type ProtocolHello = z.infer<typeof ProtocolHelloSchema>;
273
337
  export type Presence = z.infer<typeof PresenceSchema>;
274
338
  export type ClientEnvelope = z.infer<typeof ClientEnvelopeSchema>;
275
339
  export type ServerEnvelope = z.infer<typeof ServerEnvelopeSchema>;
276
340
  export type PlayerSessionClaims = z.infer<typeof PlayerSessionClaimsSchema>;
341
+ export declare function actionIdentityKey(senderId: string, actionId: string): string;
342
+ export declare const DEFAULT_RUNTIME_CAPABILITIES: {
343
+ readonly synchronized_rooms: true;
344
+ readonly minimumProtocolVersion: 1;
345
+ readonly limits: {
346
+ readonly maxPlayersPerRoom: 16;
347
+ readonly maxMessageBytes: 16384;
348
+ readonly maxChatBytes: 500;
349
+ readonly messagesPerSecond: 20;
350
+ };
351
+ };
277
352
  export declare function canonicalJson(value: unknown): string;
278
353
  export declare function stateHash(value: unknown): string;
279
354
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;;;;;;;EAO7B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;kBAiBpB,CAAC;AAEZ,eAAO,MAAM,gBAAgB;;;;;;;;;;kBAY1B,CAAC;AAEJ,eAAO,MAAM,gBAAgB,EAAG,CAAU,CAAC;AAE3C,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;EAgB1B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;EAS3B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;kBAYrB,CAAC;AAEZ,eAAO,MAAM,cAAc;;;;;;kBAQhB,CAAC;AAQZ,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAmC/B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BA0E/B,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;kBAY3B,CAAC;AAEZ,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAqBpD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEhD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;;;;;;;EAO7B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;kBAiBpB,CAAC;AAEZ,eAAO,MAAM,gBAAgB;;;;;;;;;;kBAY1B,CAAC;AAEJ,eAAO,MAAM,gBAAgB,EAAG,CAAU,CAAC;AAE3C,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;EAgB1B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;EAU3B,CAAC;AAEH,eAAO,MAAM,cAAc,aAEO,CAAC;AAEnC,eAAO,MAAM,4BAA4B;;;EAAkC,CAAC;AAE5E,eAAO,MAAM,oBAAoB;;;;;iBAOjB,CAAC;AAEjB,eAAO,MAAM,4BAA4B;;;;;;;;;iBAMzB,CAAC;AAEjB,eAAO,MAAM,mBAAmB;;;;;;;;;;iBAOhB,CAAC;AAEjB,eAAO,MAAM,oBAAoB,aAA6B,CAAC;AAE/D,eAAO,MAAM,cAAc;;;;;;kBAQhB,CAAC;AAQZ,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BA+C/B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAsF/B,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;kBAY3B,CAAC;AAEZ,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED,eAAO,MAAM,4BAA4B;;;;;;;;;CAS/B,CAAC;AAEX,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAqBpD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEhD"}
package/dist/index.js CHANGED
@@ -63,20 +63,36 @@ export const CapabilitySchema = z.enum([
63
63
  "presence",
64
64
  "chat",
65
65
  "private_leaderboards",
66
+ "synchronized_rooms",
66
67
  ]);
68
+ export const ActionIdSchema = z
69
+ .string()
70
+ .regex(/^[A-Za-z0-9_-]{8,128}$/);
71
+ export const ActionRejectionOutcomeSchema = z.enum(["rejected", "invalid"]);
72
+ export const ProtocolLimitsSchema = z
73
+ .object({
74
+ maxPlayersPerRoom: z.number().int().min(1).max(16),
75
+ maxMessageBytes: z.number().int().positive(),
76
+ maxChatBytes: z.number().int().positive(),
77
+ messagesPerSecond: z.number().int().positive(),
78
+ })
79
+ .passthrough();
80
+ export const RuntimeCapabilityBlockSchema = z
81
+ .object({
82
+ synchronized_rooms: z.boolean().optional(),
83
+ limits: ProtocolLimitsSchema.optional(),
84
+ minimumProtocolVersion: z.number().int().positive().optional(),
85
+ })
86
+ .passthrough();
67
87
  export const ProtocolHelloSchema = z
68
88
  .object({
69
89
  protocolVersion: z.literal(PROTOCOL_VERSION),
70
90
  minimumProtocolVersion: z.literal(PROTOCOL_VERSION),
71
- capabilities: z.array(CapabilitySchema),
72
- limits: z.object({
73
- maxPlayersPerRoom: z.number().int().min(1).max(16),
74
- maxMessageBytes: z.number().int().positive(),
75
- maxChatBytes: z.number().int().positive(),
76
- messagesPerSecond: z.number().int().positive(),
77
- }),
91
+ capabilities: z.array(z.string().min(1)),
92
+ limits: ProtocolLimitsSchema,
78
93
  })
79
- .strict();
94
+ .passthrough();
95
+ export const ActionSenderIdSchema = z.string().min(1).max(128);
80
96
  export const PresenceSchema = z
81
97
  .object({
82
98
  playerId: z.string().min(1).max(128),
@@ -96,6 +112,7 @@ export const ClientEnvelopeSchema = z.discriminatedUnion("type", [
96
112
  ...EnvelopeBase,
97
113
  type: z.literal("action"),
98
114
  payload: z.unknown(),
115
+ actionId: ActionIdSchema.optional(),
99
116
  }),
100
117
  z.object({
101
118
  ...EnvelopeBase,
@@ -107,8 +124,19 @@ export const ClientEnvelopeSchema = z.discriminatedUnion("type", [
107
124
  ...EnvelopeBase,
108
125
  type: z.literal("host_state"),
109
126
  expectedVersion: z.number().int().nonnegative(),
127
+ expectedStateVersion: z.number().int().nonnegative().optional(),
128
+ actionId: ActionIdSchema.optional(),
129
+ senderId: ActionSenderIdSchema.optional(),
110
130
  state: z.unknown(),
111
131
  }),
132
+ z.object({
133
+ ...EnvelopeBase,
134
+ type: z.literal("action_reject"),
135
+ actionId: ActionIdSchema,
136
+ senderId: ActionSenderIdSchema.optional(),
137
+ outcome: ActionRejectionOutcomeSchema,
138
+ message: z.string().min(1).max(200),
139
+ }),
112
140
  z.object({
113
141
  ...EnvelopeBase,
114
142
  type: z.literal("snapshot_request"),
@@ -133,18 +161,27 @@ export const ServerEnvelopeSchema = z.discriminatedUnion("type", [
133
161
  type: z.literal("snapshot"),
134
162
  hostId: z.string().uuid(),
135
163
  state: z.unknown(),
164
+ stateVersion: z.number().int().nonnegative().optional(),
165
+ actionId: ActionIdSchema.optional(),
166
+ senderId: ActionSenderIdSchema.optional(),
167
+ members: z.array(PresenceSchema).optional(),
168
+ capabilities: RuntimeCapabilityBlockSchema.optional(),
136
169
  }),
137
170
  z.object({
138
171
  ...EnvelopeBase,
139
172
  type: z.literal("state"),
140
173
  hostId: z.string().uuid(),
141
174
  state: z.unknown(),
175
+ stateVersion: z.number().int().nonnegative().optional(),
176
+ actionId: ActionIdSchema.optional(),
177
+ senderId: ActionSenderIdSchema.optional(),
142
178
  }),
143
179
  z.object({
144
180
  ...EnvelopeBase,
145
181
  type: z.literal("action"),
146
182
  senderId: z.string().min(1).max(128),
147
183
  payload: z.unknown(),
184
+ actionId: ActionIdSchema.optional(),
148
185
  }),
149
186
  z.object({
150
187
  ...EnvelopeBase,
@@ -198,6 +235,9 @@ export const ServerEnvelopeSchema = z.discriminatedUnion("type", [
198
235
  code: ErrorCodeSchema,
199
236
  message: z.string().max(200),
200
237
  retryAfterMs: z.number().int().positive().optional(),
238
+ actionId: ActionIdSchema.optional(),
239
+ senderId: ActionSenderIdSchema.optional(),
240
+ actionOutcome: ActionRejectionOutcomeSchema.optional(),
201
241
  }),
202
242
  ]);
203
243
  export const PlayerSessionClaimsSchema = z
@@ -213,6 +253,19 @@ export const PlayerSessionClaimsSchema = z
213
253
  nonce: z.string().uuid(),
214
254
  })
215
255
  .strict();
256
+ export function actionIdentityKey(senderId, actionId) {
257
+ return `${senderId}\u001f${actionId}`;
258
+ }
259
+ export const DEFAULT_RUNTIME_CAPABILITIES = {
260
+ synchronized_rooms: true,
261
+ minimumProtocolVersion: PROTOCOL_VERSION,
262
+ limits: {
263
+ maxPlayersPerRoom: 16,
264
+ maxMessageBytes: 16_384,
265
+ maxChatBytes: 500,
266
+ messagesPerSecond: 20,
267
+ },
268
+ };
216
269
  export function canonicalJson(value) {
217
270
  if (value === null || typeof value === "boolean" || typeof value === "string") {
218
271
  return JSON.stringify(value);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC;IACvC,OAAO;IACP,SAAS;IACT,UAAU;IACV,kBAAkB;IAClB,WAAW;IACX,WAAW;CACZ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC;IACN,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IACtC,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,KAAK,CAAC,0DAA0D,CAAC;IACpE,WAAW,EAAE,CAAC;SACX,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;QACpB,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QAC5B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;KAC1C,CAAC;SACD,QAAQ,EAAE;IACb,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAChE,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC;IAC9C,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IAC1D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAC3C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;CAC1C,CAAC;KACD,MAAM,EAAE;KACR,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ,KAAK,CAAC,EACrE,iCAAiC,CAClC,CAAC;AAEJ,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAU,CAAC;AAE3C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC;IACpC,cAAc;IACd,WAAW;IACX,iBAAiB;IACjB,mBAAmB;IACnB,gBAAgB;IAChB,WAAW;IACX,gBAAgB;IAChB,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,qBAAqB;IACrB,qBAAqB;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC;IACrC,OAAO;IACP,SAAS;IACT,aAAa;IACb,gBAAgB;IAChB,WAAW;IACX,UAAU;IACV,MAAM;IACN,sBAAsB;IACtB,oBAAoB;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,EAAE;KACR,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAEnC,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,CAAC;IACN,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAClD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC5C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACzC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CAC/C,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,MAAM,CAAC;IACN,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC1C,MAAM,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IACvC,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC/D,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC;KACjC,MAAM,CAAC;IACN,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;IAC5C,sBAAsB,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACnD,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,EAAE,oBAAoB;CAC7B,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE/D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACpC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IAC/C,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;CAClB,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,YAAY,GAAG;IACnB,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;CACzC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC/D,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,YAAY;QACf,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACzB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;QACpB,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE;KACpC,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,YAAY;QACf,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACxB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;QACpB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;KACpC,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,YAAY;QACf,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;QAC7B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;QAC/C,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;QAC/D,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE;QACnC,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE;QACzC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;KACnB,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,YAAY;QACf,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;QAChC,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE;QACzC,OAAO,EAAE,4BAA4B;QACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;KACpC,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,YAAY;QACf,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;KACpC,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,YAAY;QACf,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACvB,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;KACxC,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,YAAY;QACf,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;QAC/B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC;QACpD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;QACvB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;KACtC,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC/D,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,YAAY;QACf,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;QACzB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;QAClB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;QACvD,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE;QACnC,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE;QACzC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;QAC3C,YAAY,EAAE,4BAA4B,CAAC,QAAQ,EAAE;KACtD,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,YAAY;QACf,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACxB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;QACzB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;QAClB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;QACvD,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE;QACnC,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE;KAC1C,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,YAAY;QACf,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACzB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACpC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;QACpB,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE;KACpC,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,YAAY;QACf,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACxB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACpC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;QACrB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;KACrB,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,YAAY;QACf,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QAC3B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;QAC9B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;QAC/B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;KACjC,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,YAAY;QACf,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;QAC/B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;QACrD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QAClC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;KAC7C,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,YAAY;QACf,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACvB,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACnC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;KACvC,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,YAAY;QACf,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;QAC9B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC;QACpD,OAAO,EAAE,CAAC,CAAC,KAAK,CACd,CAAC,CAAC,MAAM,CAAC;YACP,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;YACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;YACvB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;YAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SAClC,CAAC,CACH;KACF,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,YAAY;QACf,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;QAC9B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;KAC5D,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,YAAY;QACf,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACxB,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;QAC5B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACpD,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE;QACnC,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE;QACzC,aAAa,EAAE,4BAA4B,CAAC,QAAQ,EAAE;KACvD,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC;KACvC,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC7B,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC5B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACjC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;IAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;CACzB,CAAC;KACD,MAAM,EAAE,CAAC;AAiBZ,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,QAAgB;IAClE,OAAO,GAAG,QAAQ,SAAS,QAAQ,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,kBAAkB,EAAE,IAAI;IACxB,sBAAsB,EAAE,gBAAgB;IACxC,MAAM,EAAE;QACN,iBAAiB,EAAE,EAAE;QACrB,eAAe,EAAE,MAAM;QACvB,YAAY,EAAE,GAAG;QACjB,iBAAiB,EAAE,EAAE;KACtB;CACO,CAAC;AAEX,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9E,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACnD,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;aAC3B,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;aACpE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzE,CAAC"}
@@ -19,7 +19,7 @@
19
19
  "hello": {
20
20
  "protocolVersion": 1,
21
21
  "minimumProtocolVersion": 1,
22
- "capabilities": ["rooms", "invites", "matchmaking", "host_migration", "reconnect", "presence", "chat", "private_leaderboards"],
22
+ "capabilities": ["rooms", "invites", "matchmaking", "host_migration", "reconnect", "presence", "chat", "private_leaderboards", "synchronized_rooms"],
23
23
  "limits": {
24
24
  "maxPlayersPerRoom": 16,
25
25
  "maxMessageBytes": 16384,
@@ -40,6 +40,7 @@
40
40
  "roomId": "00000000-0000-4000-8000-000000000001",
41
41
  "sequence": 1,
42
42
  "type": "action",
43
+ "actionId": "fixture_action_1",
43
44
  "payload": { "move": 1 }
44
45
  },
45
46
  {
@@ -48,6 +49,9 @@
48
49
  "sequence": 2,
49
50
  "type": "host_state",
50
51
  "expectedVersion": 0,
52
+ "expectedStateVersion": 0,
53
+ "actionId": "fixture_action_1",
54
+ "senderId": "00000000-0000-4000-8000-000000000003",
51
55
  "state": { "tick": 1 }
52
56
  },
53
57
  {
@@ -57,6 +61,16 @@
57
61
  "type": "chat",
58
62
  "channel": "match",
59
63
  "text": "ready"
64
+ },
65
+ {
66
+ "protocolVersion": 1,
67
+ "roomId": "00000000-0000-4000-8000-000000000001",
68
+ "sequence": 4,
69
+ "type": "action_reject",
70
+ "actionId": "fixture_action_2",
71
+ "senderId": "00000000-0000-4000-8000-000000000003",
72
+ "outcome": "rejected",
73
+ "message": "action rejected"
60
74
  }
61
75
  ],
62
76
  "serverReplay": [
@@ -66,7 +80,18 @@
66
80
  "sequence": 0,
67
81
  "type": "snapshot",
68
82
  "hostId": "00000000-0000-4000-8000-000000000002",
69
- "state": { "tick": 0 }
83
+ "state": { "tick": 0 },
84
+ "stateVersion": 0,
85
+ "capabilities": {
86
+ "synchronized_rooms": true,
87
+ "minimumProtocolVersion": 1,
88
+ "limits": {
89
+ "maxPlayersPerRoom": 16,
90
+ "maxMessageBytes": 16384,
91
+ "maxChatBytes": 500,
92
+ "messagesPerSecond": 10
93
+ }
94
+ }
70
95
  },
71
96
  {
72
97
  "protocolVersion": 1,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lokiplay/protocol",
3
- "version": "0.1.2",
3
+ "version": "0.2.1",
4
4
  "description": "Shared schemas, message types, and hashing utilities for Loki.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -53,8 +53,36 @@
53
53
  "reconnect",
54
54
  "presence",
55
55
  "chat",
56
- "private_leaderboards"
56
+ "private_leaderboards",
57
+ "synchronized_rooms"
57
58
  ]
59
+ },
60
+ "actionId": {
61
+ "type": "string",
62
+ "pattern": "^[A-Za-z0-9_-]{8,128}$"
63
+ },
64
+ "actionSenderId": {
65
+ "type": "string",
66
+ "minLength": 1,
67
+ "maxLength": 128
68
+ },
69
+ "runtimeCapabilities": {
70
+ "type": "object",
71
+ "additionalProperties": true,
72
+ "properties": {
73
+ "synchronized_rooms": { "type": "boolean" },
74
+ "minimumProtocolVersion": { "type": "integer", "minimum": 1 },
75
+ "limits": {
76
+ "type": "object",
77
+ "additionalProperties": true,
78
+ "properties": {
79
+ "maxPlayersPerRoom": { "type": "integer", "minimum": 1, "maximum": 16 },
80
+ "maxMessageBytes": { "type": "integer", "minimum": 1 },
81
+ "maxChatBytes": { "type": "integer", "minimum": 1 },
82
+ "messagesPerSecond": { "type": "integer", "minimum": 1 }
83
+ }
84
+ }
85
+ }
58
86
  }
59
87
  },
60
88
  "type": "object",