@colyseus/sdk 0.17.7 → 0.17.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 (70) hide show
  1. package/build/3rd_party/discord.cjs +1 -1
  2. package/build/3rd_party/discord.mjs +1 -1
  3. package/build/Auth.cjs +1 -2
  4. package/build/Auth.cjs.map +1 -1
  5. package/build/Auth.d.ts +27 -10
  6. package/build/Auth.mjs +1 -2
  7. package/build/Auth.mjs.map +1 -1
  8. package/build/Client.cjs +1 -1
  9. package/build/Client.cjs.map +1 -1
  10. package/build/Client.d.ts +3 -3
  11. package/build/Client.mjs +1 -1
  12. package/build/Client.mjs.map +1 -1
  13. package/build/Connection.cjs +1 -1
  14. package/build/Connection.mjs +1 -1
  15. package/build/HTTP.cjs +5 -1
  16. package/build/HTTP.cjs.map +1 -1
  17. package/build/HTTP.mjs +5 -1
  18. package/build/HTTP.mjs.map +1 -1
  19. package/build/Protocol.cjs +1 -1
  20. package/build/Protocol.mjs +1 -1
  21. package/build/Room.cjs +2 -2
  22. package/build/Room.cjs.map +1 -1
  23. package/build/Room.d.ts +1 -5
  24. package/build/Room.mjs +2 -2
  25. package/build/Room.mjs.map +1 -1
  26. package/build/Storage.cjs +1 -1
  27. package/build/Storage.mjs +1 -1
  28. package/build/core/nanoevents.cjs +1 -1
  29. package/build/core/nanoevents.cjs.map +1 -1
  30. package/build/core/nanoevents.d.ts +9 -5
  31. package/build/core/nanoevents.mjs +1 -1
  32. package/build/core/nanoevents.mjs.map +1 -1
  33. package/build/core/signal.cjs +1 -1
  34. package/build/core/signal.mjs +1 -1
  35. package/build/core/utils.cjs +1 -1
  36. package/build/core/utils.mjs +1 -1
  37. package/build/errors/Errors.cjs +1 -1
  38. package/build/errors/Errors.mjs +1 -1
  39. package/build/index.cjs +1 -1
  40. package/build/index.cjs.map +1 -1
  41. package/build/index.d.ts +1 -1
  42. package/build/index.mjs +1 -1
  43. package/build/index.mjs.map +1 -1
  44. package/build/legacy.cjs +1 -1
  45. package/build/legacy.mjs +1 -1
  46. package/build/serializer/NoneSerializer.cjs +1 -1
  47. package/build/serializer/NoneSerializer.mjs +1 -1
  48. package/build/serializer/SchemaSerializer.cjs +1 -1
  49. package/build/serializer/SchemaSerializer.mjs +1 -1
  50. package/build/serializer/Serializer.cjs +1 -1
  51. package/build/serializer/Serializer.mjs +1 -1
  52. package/build/transport/H3Transport.cjs +1 -1
  53. package/build/transport/H3Transport.mjs +1 -1
  54. package/build/transport/WebSocketTransport.cjs +2 -2
  55. package/build/transport/WebSocketTransport.cjs.map +1 -1
  56. package/build/transport/WebSocketTransport.mjs +2 -2
  57. package/build/transport/WebSocketTransport.mjs.map +1 -1
  58. package/dist/colyseus-cocos-creator.js +7 -4
  59. package/dist/colyseus-cocos-creator.js.map +1 -1
  60. package/dist/colyseus.js +7 -4
  61. package/dist/colyseus.js.map +1 -1
  62. package/dist/debug.js +1 -1
  63. package/package.json +2 -2
  64. package/src/Auth.ts +49 -18
  65. package/src/Client.ts +4 -4
  66. package/src/HTTP.ts +5 -0
  67. package/src/Room.ts +1 -1
  68. package/src/core/nanoevents.ts +11 -3
  69. package/src/index.ts +1 -1
  70. package/src/transport/WebSocketTransport.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Room.mjs","sources":["../src/Room.ts"],"sourcesContent":["import { type Room as ServerRoom, type ExtractMessageType } from '@colyseus/core';\nimport { decode, Decoder, encode, Iterator, schema, Schema, SchemaType } from '@colyseus/schema';\n\nimport { Packr, unpack } from '@colyseus/msgpackr';\n\nimport { Connection } from './Connection.ts';\nimport { Protocol } from './Protocol.ts';\nimport { getSerializer, Serializer } from './serializer/Serializer.ts';\n\n// The unused imports here are important for better `.d.ts` file generation\n// (Later merged with `dts-bundle-generator`)\nimport { createNanoEvents } from './core/nanoevents.ts';\nimport { createSignal } from './core/signal.ts';\n\nimport { SchemaConstructor, SchemaSerializer } from './serializer/SchemaSerializer.ts';\n\nimport { CloseCode } from './errors/Errors.ts';\nimport { now } from './core/utils.ts';\n\n// Infer serializer type based on State: SchemaSerializer for Schema types, Serializer otherwise\nexport type InferSerializer<State> = [State] extends [Schema]\n ? SchemaSerializer<State>\n : Serializer<State>;\n\nexport interface RoomAvailable<Metadata = any> {\n name: string;\n roomId: string;\n clients: number;\n maxClients: number;\n metadata?: Metadata;\n}\n\nexport interface ReconnectionOptions {\n /**\n * The maximum number of reconnection attempts.\n */\n maxRetries: number;\n\n /**\n * The minimum delay between reconnection attempts.\n */\n minDelay: number;\n\n /**\n * The maximum delay between reconnection attempts.\n */\n maxDelay: number;\n\n /**\n * The minimum uptime of the room before reconnection attempts can be made.\n */\n minUptime: number;\n\n /**\n * The current number of reconnection attempts.\n */\n retryCount: number;\n\n /**\n * The initial delay between reconnection attempts.\n */\n delay: number;\n\n /**\n * The function to calculate the delay between reconnection attempts.\n * @param attempt - The current attempt number.\n * @param delay - The initial delay between reconnection attempts.\n * @returns The delay between reconnection attempts.\n */\n backoff: (attempt: number, delay: number) => number;\n\n /**\n * The maximum number of enqueued messages to buffer.\n */\n maxEnqueuedMessages: number;\n\n /**\n * Buffer for messages sent while connection is not open.\n * These messages will be sent once the connection is re-established.\n */\n enqueuedMessages: Array<{ data: Uint8Array }>;\n\n /**\n * Whether the room is currently reconnecting.\n */\n isReconnecting: boolean;\n}\n\nexport class Room<\n RoomType extends typeof ServerRoom = any,\n State = RoomType['prototype']['state'],\n> {\n public roomId: string;\n public sessionId: string;\n public reconnectionToken: string;\n\n public name: string;\n public connection: Connection;\n\n // Public signals\n public onStateChange = createSignal<(state: State) => void>();\n public onError = createSignal<(code: number, message?: string) => void>();\n public onLeave = createSignal<(code: number, reason?: string) => void>();\n\n public onReconnect = createSignal<() => void>();\n public onDrop = createSignal<(code: number, reason?: string) => void>();\n\n protected onJoin = createSignal();\n\n public serializerId: string;\n public serializer: InferSerializer<State>;\n\n // reconnection logic\n public reconnection: ReconnectionOptions = {\n retryCount: 0,\n maxRetries: 8,\n delay: 100,\n minDelay: 100,\n maxDelay: 5000,\n minUptime: 5000,\n backoff: exponentialBackoff,\n maxEnqueuedMessages: 10,\n enqueuedMessages: [],\n isReconnecting: false,\n };\n\n protected joinedAtTime: number = 0;\n\n protected onMessageHandlers = createNanoEvents();\n\n protected packr: Packr;\n\n #lastPingTime: number = 0;\n #pingCallback: (ms: number) => void;\n\n constructor(name: string, rootSchema?: SchemaConstructor<State>) {\n this.name = name;\n\n this.packr = new Packr();\n\n // msgpackr workaround: force buffer to be created.\n this.packr.encode(undefined);\n\n if (rootSchema) {\n this.serializer = new (getSerializer(\"schema\"));\n (this.serializer as SchemaSerializer).state = new rootSchema();\n }\n\n this.onError((code, message) => console.warn?.(`colyseus.js - onError => (${code}) ${message}`));\n this.onLeave(() => this.removeAllListeners());\n }\n\n public connect(endpoint: string, options?: any, headers?: any) {\n this.connection = new Connection(options.protocol);\n this.connection.events.onmessage = this.onMessageCallback.bind(this);\n this.connection.events.onclose = (e: CloseEvent) => {\n if (this.joinedAtTime === 0) {\n console.warn?.(`Room connection was closed unexpectedly (${e.code}): ${e.reason}`);\n this.onError.invoke(e.code, e.reason);\n return;\n }\n\n if (\n e.code === CloseCode.NO_STATUS_RECEIVED ||\n e.code === CloseCode.ABNORMAL_CLOSURE ||\n e.code === CloseCode.GOING_AWAY ||\n e.code === CloseCode.DEVMODE_RESTART\n ) {\n this.onDrop.invoke(e.code, e.reason);\n this.handleReconnection();\n\n } else {\n this.onLeave.invoke(e.code, e.reason);\n this.destroy();\n }\n };\n\n this.connection.events.onerror = (e: CloseEvent) => {\n console.warn?.(`Room, onError (${e.code}): ${e.reason}`);\n this.onError.invoke(e.code, e.reason);\n };\n\n /**\n * if local serializer has state, it means we don't need to receive the\n * handshake from the server\n */\n const skipHandshake = (this.serializer?.getState() !== undefined);\n\n if (options.protocol === \"h3\") {\n // FIXME: refactor this.\n const url = new URL(endpoint);\n this.connection.connect(url.origin, { ...options, skipHandshake });\n\n } else {\n this.connection.connect(`${endpoint}${skipHandshake ? \"?skipHandshake=1\" : \"\"}`, headers);\n }\n\n }\n\n public leave(consented: boolean = true): Promise<number> {\n return new Promise((resolve) => {\n this.onLeave((code) => resolve(code));\n\n if (this.connection) {\n if (consented) {\n this.packr.buffer[0] = Protocol.LEAVE_ROOM;\n this.connection.send(this.packr.buffer.subarray(0, 1));\n\n } else {\n this.connection.close();\n }\n\n } else {\n this.onLeave.invoke(CloseCode.CONSENTED);\n }\n });\n }\n\n public onMessage<MessageType extends keyof RoomType['prototype']['~client']['~messages']>(\n message: MessageType,\n callback: (payload: RoomType['prototype']['~client']['~messages'][MessageType]) => void\n )\n public onMessage<T = any>(type: \"*\", callback: (messageType: string | number, payload: T) => void)\n public onMessage<T = any>(type: string | number, callback: (payload: T) => void)\n public onMessage(type: '*' | string | number, callback: (...args: any[]) => void) {\n return this.onMessageHandlers.on(this.getMessageHandlerKey(type), callback);\n }\n\n public ping(callback: (ms: number) => void) {\n this.#lastPingTime = now();\n this.#pingCallback = callback;\n this.packr.buffer[0] = Protocol.PING;\n this.connection.send(this.packr.buffer.subarray(0, 1));\n }\n\n public send<MessageType extends keyof RoomType['prototype']['messages']>(\n messageType: MessageType,\n payload?: ExtractMessageType<RoomType['prototype']['messages'][MessageType]>\n )\n public send<T = any>(messageType: string | number, payload?: T): void {\n const it: Iterator = { offset: 1 };\n this.packr.buffer[0] = Protocol.ROOM_DATA;\n\n if (typeof(messageType) === \"string\") {\n encode.string(this.packr.buffer as Buffer, messageType, it);\n\n } else {\n encode.number(this.packr.buffer as Buffer, messageType, it);\n }\n\n // force packr to use beginning of the buffer\n this.packr.position = 0;\n\n const data = (payload !== undefined)\n ? this.packr.pack(payload, 2048 + it.offset) // 2048 = RESERVE_START_SPACE\n : this.packr.buffer.subarray(0, it.offset);\n\n // If connection is not open, buffer the message\n if (!this.connection.isOpen) {\n enqueueMessage(this, new Uint8Array(data));\n } else {\n this.connection.send(data);\n }\n }\n\n public sendUnreliable<T = any>(type: string | number, message?: T): void {\n // If connection is not open, skip\n if (!this.connection.isOpen) { return; }\n\n const it: Iterator = { offset: 1 };\n this.packr.buffer[0] = Protocol.ROOM_DATA;\n\n if (typeof(type) === \"string\") {\n encode.string(this.packr.buffer as Buffer, type, it);\n\n } else {\n encode.number(this.packr.buffer as Buffer, type, it);\n }\n\n // force packr to use beginning of the buffer\n this.packr.position = 0;\n\n const data = (message !== undefined)\n ? this.packr.pack(message, 2048 + it.offset) // 2048 = RESERVE_START_SPACE\n : this.packr.buffer.subarray(0, it.offset);\n\n this.connection.sendUnreliable(data);\n }\n\n public sendBytes(type: string | number, bytes: Uint8Array) {\n const it: Iterator = { offset: 1 };\n this.packr.buffer[0] = Protocol.ROOM_DATA_BYTES;\n\n if (typeof(type) === \"string\") {\n encode.string(this.packr.buffer as Buffer, type, it);\n\n } else {\n encode.number(this.packr.buffer as Buffer, type, it);\n }\n\n // check if buffer needs to be resized\n // TODO: can we avoid this?\n if (bytes.byteLength + it.offset > this.packr.buffer.byteLength) {\n const newBuffer = new Uint8Array(it.offset + bytes.byteLength);\n newBuffer.set(this.packr.buffer);\n this.packr.useBuffer(newBuffer);\n }\n\n this.packr.buffer.set(bytes, it.offset);\n\n // If connection is not open, buffer the message\n if (!this.connection.isOpen) {\n enqueueMessage(this, this.packr.buffer.subarray(0, it.offset + bytes.byteLength));\n } else {\n this.connection.send(this.packr.buffer.subarray(0, it.offset + bytes.byteLength));\n }\n\n }\n\n public get state (): State {\n return this.serializer.getState();\n }\n\n public removeAllListeners() {\n this.onJoin.clear();\n this.onStateChange.clear();\n this.onError.clear();\n this.onLeave.clear();\n this.onMessageHandlers.events = {};\n\n if (this.serializer instanceof SchemaSerializer) {\n // Remove callback references\n this.serializer.decoder.root.callbacks = {};\n }\n }\n\n protected onMessageCallback(event: MessageEvent) {\n const buffer = new Uint8Array(event.data);\n\n const it: Iterator = { offset: 1 };\n const code = buffer[0];\n\n if (code === Protocol.JOIN_ROOM) {\n const reconnectionToken = decode.utf8Read(buffer as Buffer, it, buffer[it.offset++]);\n this.serializerId = decode.utf8Read(buffer as Buffer, it, buffer[it.offset++]);\n\n // Instantiate serializer if not locally available.\n if (!this.serializer) {\n const serializer = getSerializer(this.serializerId);\n this.serializer = new serializer();\n }\n\n // apply handshake on first join (no need to do this on reconnect)\n if (buffer.byteLength > it.offset && this.serializer.handshake) {\n this.serializer.handshake(buffer, it);\n }\n\n if (this.joinedAtTime === 0) {\n this.joinedAtTime = Date.now();\n this.onJoin.invoke();\n\n } else {\n console.info(`[Colyseus reconnection]: ${String.fromCodePoint(0x2705)} reconnection successful!`); // ✅\n this.reconnection.isReconnecting = false;\n this.onReconnect.invoke();\n }\n\n this.reconnectionToken = `${this.roomId}:${reconnectionToken}`;\n\n // acknowledge successfull JOIN_ROOM\n this.packr.buffer[0] = Protocol.JOIN_ROOM;\n this.connection.send(this.packr.buffer.subarray(0, 1));\n\n // Send any enqueued messages that were buffered while disconnected\n if (this.reconnection.enqueuedMessages.length > 0) {\n for (const message of this.reconnection.enqueuedMessages) {\n this.connection.send(message.data);\n }\n // Clear the buffer after sending\n this.reconnection.enqueuedMessages = [];\n }\n\n } else if (code === Protocol.ERROR) {\n const code = decode.number(buffer as Buffer, it);\n const message = decode.string(buffer as Buffer, it);\n\n this.onError.invoke(code, message);\n\n } else if (code === Protocol.LEAVE_ROOM) {\n this.leave();\n\n } else if (code === Protocol.ROOM_STATE) {\n this.serializer.setState(buffer, it);\n this.onStateChange.invoke(this.serializer.getState());\n\n } else if (code === Protocol.ROOM_STATE_PATCH) {\n this.serializer.patch(buffer, it);\n this.onStateChange.invoke(this.serializer.getState());\n\n } else if (code === Protocol.ROOM_DATA) {\n const type = (decode.stringCheck(buffer as Buffer, it))\n ? decode.string(buffer as Buffer, it)\n : decode.number(buffer as Buffer, it);\n\n const message = (buffer.byteLength > it.offset)\n ? unpack(buffer as Buffer, { start: it.offset })\n : undefined;\n\n this.dispatchMessage(type, message);\n\n } else if (code === Protocol.ROOM_DATA_BYTES) {\n const type = (decode.stringCheck(buffer as Buffer, it))\n ? decode.string(buffer as Buffer, it)\n : decode.number(buffer as Buffer, it);\n\n this.dispatchMessage(type, buffer.subarray(it.offset));\n } else if (code === Protocol.PING) {\n this.#pingCallback?.(now() - this.#lastPingTime);\n this.#pingCallback = undefined;\n }\n }\n\n private dispatchMessage(type: string | number, message: any) {\n const messageType = this.getMessageHandlerKey(type);\n\n if (this.onMessageHandlers.events[messageType]) {\n this.onMessageHandlers.emit(messageType, message);\n\n } else if (this.onMessageHandlers.events['*']) {\n this.onMessageHandlers.emit('*', type, message);\n\n } else if (!messageType.startsWith(\"__\")) { // ignore internal messages\n console.warn?.(`colyseus.js: onMessage() not registered for type '${type}'.`);\n }\n }\n\n private destroy () {\n if (this.serializer) {\n this.serializer.teardown();\n }\n }\n\n private getMessageHandlerKey(type: string | number): string {\n switch (typeof(type)) {\n // string\n case \"string\": return type;\n\n // number\n case \"number\": return `i${type}`;\n\n default: throw new Error(\"invalid message type.\");\n }\n }\n\n private handleReconnection() {\n if (Date.now() - this.joinedAtTime < this.reconnection.minUptime) {\n console.info(`[Colyseus reconnection]: ${String.fromCodePoint(0x274C)} Room has not been up for long enough for automatic reconnection. (min uptime: ${this.reconnection.minUptime}ms)`); // ❌\n return;\n }\n\n if (!this.reconnection.isReconnecting) {\n console.info(`[Colyseus reconnection]: ${String.fromCodePoint(0x1F504)} Re-establishing connection with roomId '${this.roomId}'...`); // 🔄\n this.reconnection.retryCount = 0;\n this.reconnection.isReconnecting = true;\n }\n\n this.retryReconnection();\n }\n\n private retryReconnection() {\n this.reconnection.retryCount++;\n\n const delay = Math.min(this.reconnection.maxDelay, Math.max(this.reconnection.minDelay, this.reconnection.backoff(this.reconnection.retryCount, this.reconnection.delay)));\n\n console.info(`[Colyseus reconnection]: ${String.fromCodePoint(0x1F504)} will retry in ${delay}ms... (${this.reconnection.retryCount} out of ${this.reconnection.maxRetries})`); // 🔄\n\n // Wait before attempting reconnection\n setTimeout(() => {\n try {\n this.connection.reconnect({\n reconnectionToken: this.reconnectionToken.split(\":\")[1],\n skipHandshake: true, // we already applied the handshake on first join\n });\n\n } catch (e) {\n if (this.reconnection.retryCount < this.reconnection.maxRetries) {\n this.retryReconnection();\n } else {\n console.info(`[Colyseus reconnection]: ${String.fromCodePoint(0x274C)} Failed to reconnect. Is your server running? Please check server logs.`); // ❌\n }\n }\n }, delay);\n }\n}\n\nconst exponentialBackoff = (attempt: number, delay: number) => {\n return Math.floor(Math.pow(2, attempt) * delay);\n}\n\nfunction enqueueMessage(room: Room, message: Uint8Array) {\n room.reconnection.enqueuedMessages.push({ data: message });\n if (room.reconnection.enqueuedMessages.length > room.reconnection.maxEnqueuedMessages) {\n room.reconnection.enqueuedMessages.shift();\n }\n}"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Room.mjs","sources":["../src/Room.ts"],"sourcesContent":["import { type Room as ServerRoom, type ExtractMessageType } from '@colyseus/core';\nimport { decode, Decoder, encode, Iterator, schema, Schema, SchemaType } from '@colyseus/schema';\n\nimport { Packr, unpack } from '@colyseus/msgpackr';\n\nimport { Connection } from './Connection.ts';\nimport { Protocol } from './Protocol.ts';\nimport { getSerializer, Serializer } from './serializer/Serializer.ts';\n\n// The unused imports here are important for better `.d.ts` file generation\n// (Later merged with `dts-bundle-generator`)\nimport { createNanoEvents } from './core/nanoevents.ts';\nimport { createSignal } from './core/signal.ts';\n\nimport { SchemaConstructor, SchemaSerializer } from './serializer/SchemaSerializer.ts';\n\nimport { CloseCode } from './errors/Errors.ts';\nimport { now } from './core/utils.ts';\n\n// Infer serializer type based on State: SchemaSerializer for Schema types, Serializer otherwise\nexport type InferSerializer<State> = [State] extends [Schema]\n ? SchemaSerializer<State>\n : Serializer<State>;\n\nexport interface RoomAvailable<Metadata = any> {\n name: string;\n roomId: string;\n clients: number;\n maxClients: number;\n metadata?: Metadata;\n}\n\nexport interface ReconnectionOptions {\n /**\n * The maximum number of reconnection attempts.\n */\n maxRetries: number;\n\n /**\n * The minimum delay between reconnection attempts.\n */\n minDelay: number;\n\n /**\n * The maximum delay between reconnection attempts.\n */\n maxDelay: number;\n\n /**\n * The minimum uptime of the room before reconnection attempts can be made.\n */\n minUptime: number;\n\n /**\n * The current number of reconnection attempts.\n */\n retryCount: number;\n\n /**\n * The initial delay between reconnection attempts.\n */\n delay: number;\n\n /**\n * The function to calculate the delay between reconnection attempts.\n * @param attempt - The current attempt number.\n * @param delay - The initial delay between reconnection attempts.\n * @returns The delay between reconnection attempts.\n */\n backoff: (attempt: number, delay: number) => number;\n\n /**\n * The maximum number of enqueued messages to buffer.\n */\n maxEnqueuedMessages: number;\n\n /**\n * Buffer for messages sent while connection is not open.\n * These messages will be sent once the connection is re-established.\n */\n enqueuedMessages: Array<{ data: Uint8Array }>;\n\n /**\n * Whether the room is currently reconnecting.\n */\n isReconnecting: boolean;\n}\n\nexport class Room<\n RoomType extends typeof ServerRoom = any,\n State = RoomType['prototype']['state'],\n> {\n public roomId: string;\n public sessionId: string;\n public reconnectionToken: string;\n\n public name: string;\n public connection: Connection;\n\n // Public signals\n public onStateChange = createSignal<(state: State) => void>();\n public onError = createSignal<(code: number, message?: string) => void>();\n public onLeave = createSignal<(code: number, reason?: string) => void>();\n\n public onReconnect = createSignal<() => void>();\n public onDrop = createSignal<(code: number, reason?: string) => void>();\n\n protected onJoin = createSignal();\n\n public serializerId: string;\n public serializer: InferSerializer<State>;\n\n // reconnection logic\n public reconnection: ReconnectionOptions = {\n retryCount: 0,\n maxRetries: 8,\n delay: 100,\n minDelay: 100,\n maxDelay: 5000,\n minUptime: 5000,\n backoff: exponentialBackoff,\n maxEnqueuedMessages: 10,\n enqueuedMessages: [],\n isReconnecting: false,\n };\n\n protected joinedAtTime: number = 0;\n\n protected onMessageHandlers = createNanoEvents();\n\n protected packr: Packr;\n\n #lastPingTime: number = 0;\n #pingCallback: (ms: number) => void;\n\n constructor(name: string, rootSchema?: SchemaConstructor<State>) {\n this.name = name;\n\n this.packr = new Packr();\n\n // msgpackr workaround: force buffer to be created.\n this.packr.encode(undefined);\n\n if (rootSchema) {\n this.serializer = new (getSerializer(\"schema\"));\n (this.serializer as SchemaSerializer).state = new rootSchema();\n }\n\n this.onError((code, message) => console.warn?.(`colyseus.js - onError => (${code}) ${message}`));\n this.onLeave(() => this.removeAllListeners());\n }\n\n public connect(endpoint: string, options?: any, headers?: any) {\n this.connection = new Connection(options.protocol);\n this.connection.events.onmessage = this.onMessageCallback.bind(this);\n this.connection.events.onclose = (e: CloseEvent) => {\n if (this.joinedAtTime === 0) {\n console.warn?.(`Room connection was closed unexpectedly (${e.code}): ${e.reason}`);\n this.onError.invoke(e.code, e.reason);\n return;\n }\n\n if (\n e.code === CloseCode.NO_STATUS_RECEIVED ||\n e.code === CloseCode.ABNORMAL_CLOSURE ||\n e.code === CloseCode.GOING_AWAY ||\n e.code === CloseCode.DEVMODE_RESTART\n ) {\n this.onDrop.invoke(e.code, e.reason);\n this.handleReconnection();\n\n } else {\n this.onLeave.invoke(e.code, e.reason);\n this.destroy();\n }\n };\n\n this.connection.events.onerror = (e: CloseEvent) => {\n console.warn?.(`Room, onError (${e.code}): ${e.reason}`);\n this.onError.invoke(e.code, e.reason);\n };\n\n /**\n * if local serializer has state, it means we don't need to receive the\n * handshake from the server\n */\n const skipHandshake = (this.serializer?.getState() !== undefined);\n\n if (options.protocol === \"h3\") {\n // FIXME: refactor this.\n const url = new URL(endpoint);\n this.connection.connect(url.origin, { ...options, skipHandshake });\n\n } else {\n this.connection.connect(`${endpoint}${skipHandshake ? \"?skipHandshake=1\" : \"\"}`, headers);\n }\n\n }\n\n public leave(consented: boolean = true): Promise<number> {\n return new Promise((resolve) => {\n this.onLeave((code) => resolve(code));\n\n if (this.connection) {\n if (consented) {\n this.packr.buffer[0] = Protocol.LEAVE_ROOM;\n this.connection.send(this.packr.buffer.subarray(0, 1));\n\n } else {\n this.connection.close();\n }\n\n } else {\n this.onLeave.invoke(CloseCode.CONSENTED);\n }\n });\n }\n\n public onMessage<MessageType extends keyof RoomType['prototype']['~client']['~messages']>(\n message: MessageType,\n callback: (payload: RoomType['prototype']['~client']['~messages'][MessageType]) => void\n )\n public onMessage<T = any>(type: \"*\", callback: (messageType: string | number, payload: T) => void)\n public onMessage<T = any>(type: string | number, callback: (payload: T) => void)\n public onMessage(type: '*' | string | number, callback: (...args: any[]) => void) {\n return this.onMessageHandlers.on(this.getMessageHandlerKey(type), callback);\n }\n\n public ping(callback: (ms: number) => void) {\n this.#lastPingTime = now();\n this.#pingCallback = callback;\n this.packr.buffer[0] = Protocol.PING;\n this.connection.send(this.packr.buffer.subarray(0, 1));\n }\n\n public send<MessageType extends keyof RoomType['prototype']['messages']>(\n messageType: MessageType,\n payload?: ExtractMessageType<RoomType['prototype']['messages'][MessageType]>\n )\n public send<T = any>(messageType: string | number, payload?: T): void {\n const it: Iterator = { offset: 1 };\n this.packr.buffer[0] = Protocol.ROOM_DATA;\n\n if (typeof(messageType) === \"string\") {\n encode.string(this.packr.buffer as Buffer, messageType, it);\n\n } else {\n encode.number(this.packr.buffer as Buffer, messageType, it);\n }\n\n // force packr to use beginning of the buffer\n this.packr.position = 0;\n\n const data = (payload !== undefined)\n ? this.packr.pack(payload, 2048 + it.offset) // 2048 = RESERVE_START_SPACE\n : this.packr.buffer.subarray(0, it.offset);\n\n // If connection is not open, buffer the message\n if (!this.connection.isOpen) {\n enqueueMessage(this, new Uint8Array(data));\n } else {\n this.connection.send(data);\n }\n }\n\n public sendUnreliable<T = any>(type: string | number, message?: T): void {\n // If connection is not open, skip\n if (!this.connection.isOpen) { return; }\n\n const it: Iterator = { offset: 1 };\n this.packr.buffer[0] = Protocol.ROOM_DATA;\n\n if (typeof(type) === \"string\") {\n encode.string(this.packr.buffer as Buffer, type, it);\n\n } else {\n encode.number(this.packr.buffer as Buffer, type, it);\n }\n\n // force packr to use beginning of the buffer\n this.packr.position = 0;\n\n const data = (message !== undefined)\n ? this.packr.pack(message, 2048 + it.offset) // 2048 = RESERVE_START_SPACE\n : this.packr.buffer.subarray(0, it.offset);\n\n this.connection.sendUnreliable(data);\n }\n\n public sendBytes(type: string | number, bytes: Uint8Array) {\n const it: Iterator = { offset: 1 };\n this.packr.buffer[0] = Protocol.ROOM_DATA_BYTES;\n\n if (typeof(type) === \"string\") {\n encode.string(this.packr.buffer as Buffer, type, it);\n\n } else {\n encode.number(this.packr.buffer as Buffer, type, it);\n }\n\n // check if buffer needs to be resized\n // TODO: can we avoid this?\n if (bytes.byteLength + it.offset > this.packr.buffer.byteLength) {\n const newBuffer = new Uint8Array(it.offset + bytes.byteLength);\n newBuffer.set(this.packr.buffer);\n this.packr.useBuffer(newBuffer);\n }\n\n this.packr.buffer.set(bytes, it.offset);\n\n // If connection is not open, buffer the message\n if (!this.connection.isOpen) {\n enqueueMessage(this, this.packr.buffer.subarray(0, it.offset + bytes.byteLength));\n } else {\n this.connection.send(this.packr.buffer.subarray(0, it.offset + bytes.byteLength));\n }\n\n }\n\n public get state (): State {\n return this.serializer.getState();\n }\n\n public removeAllListeners() {\n this.onJoin.clear();\n this.onStateChange.clear();\n this.onError.clear();\n this.onLeave.clear();\n this.onMessageHandlers.events = {};\n\n if (this.serializer instanceof SchemaSerializer) {\n // Remove callback references\n this.serializer.decoder.root.callbacks = {};\n }\n }\n\n protected onMessageCallback(event: MessageEvent) {\n const buffer = new Uint8Array(event.data);\n\n const it: Iterator = { offset: 1 };\n const code = buffer[0];\n\n if (code === Protocol.JOIN_ROOM) {\n const reconnectionToken = decode.utf8Read(buffer as Buffer, it, buffer[it.offset++]);\n this.serializerId = decode.utf8Read(buffer as Buffer, it, buffer[it.offset++]);\n\n // Instantiate serializer if not locally available.\n if (!this.serializer) {\n const serializer = getSerializer(this.serializerId);\n this.serializer = new serializer();\n }\n\n // apply handshake on first join (no need to do this on reconnect)\n if (buffer.byteLength > it.offset && this.serializer.handshake) {\n this.serializer.handshake(buffer, it);\n }\n\n if (this.joinedAtTime === 0) {\n this.joinedAtTime = Date.now();\n this.onJoin.invoke();\n\n } else {\n console.info(`[Colyseus reconnection]: ${String.fromCodePoint(0x2705)} reconnection successful!`); // ✅\n this.reconnection.isReconnecting = false;\n this.onReconnect.invoke();\n }\n\n this.reconnectionToken = `${this.roomId}:${reconnectionToken}`;\n\n // acknowledge successfull JOIN_ROOM\n this.packr.buffer[0] = Protocol.JOIN_ROOM;\n this.connection.send(this.packr.buffer.subarray(0, 1));\n\n // Send any enqueued messages that were buffered while disconnected\n if (this.reconnection.enqueuedMessages.length > 0) {\n for (const message of this.reconnection.enqueuedMessages) {\n this.connection.send(message.data);\n }\n // Clear the buffer after sending\n this.reconnection.enqueuedMessages = [];\n }\n\n } else if (code === Protocol.ERROR) {\n const code = decode.number(buffer as Buffer, it);\n const message = decode.string(buffer as Buffer, it);\n\n this.onError.invoke(code, message);\n\n } else if (code === Protocol.LEAVE_ROOM) {\n this.leave();\n\n } else if (code === Protocol.ROOM_STATE) {\n this.serializer.setState(buffer, it);\n this.onStateChange.invoke(this.serializer.getState());\n\n } else if (code === Protocol.ROOM_STATE_PATCH) {\n this.serializer.patch(buffer, it);\n this.onStateChange.invoke(this.serializer.getState());\n\n } else if (code === Protocol.ROOM_DATA) {\n const type = (decode.stringCheck(buffer as Buffer, it))\n ? decode.string(buffer as Buffer, it)\n : decode.number(buffer as Buffer, it);\n\n const message = (buffer.byteLength > it.offset)\n ? unpack(buffer as Buffer, { start: it.offset })\n : undefined;\n\n this.dispatchMessage(type, message);\n\n } else if (code === Protocol.ROOM_DATA_BYTES) {\n const type = (decode.stringCheck(buffer as Buffer, it))\n ? decode.string(buffer as Buffer, it)\n : decode.number(buffer as Buffer, it);\n\n this.dispatchMessage(type, buffer.subarray(it.offset));\n } else if (code === Protocol.PING) {\n this.#pingCallback?.(now() - this.#lastPingTime);\n this.#pingCallback = undefined;\n }\n }\n\n private dispatchMessage(type: string | number, message: any) {\n const messageType = this.getMessageHandlerKey(type);\n\n if (this.onMessageHandlers.events[messageType]) {\n this.onMessageHandlers.emit(messageType, message);\n\n } else if (this.onMessageHandlers.events['*']) {\n this.onMessageHandlers.emit('*', type, message);\n\n } else if (!messageType.startsWith(\"__\")) { // ignore internal messages\n console.warn?.(`@colyseus/sdk: onMessage() not registered for type '${type}'.`);\n }\n }\n\n private destroy () {\n if (this.serializer) {\n this.serializer.teardown();\n }\n }\n\n private getMessageHandlerKey(type: string | number): string {\n switch (typeof(type)) {\n // string\n case \"string\": return type;\n\n // number\n case \"number\": return `i${type}`;\n\n default: throw new Error(\"invalid message type.\");\n }\n }\n\n private handleReconnection() {\n if (Date.now() - this.joinedAtTime < this.reconnection.minUptime) {\n console.info(`[Colyseus reconnection]: ${String.fromCodePoint(0x274C)} Room has not been up for long enough for automatic reconnection. (min uptime: ${this.reconnection.minUptime}ms)`); // ❌\n return;\n }\n\n if (!this.reconnection.isReconnecting) {\n console.info(`[Colyseus reconnection]: ${String.fromCodePoint(0x1F504)} Re-establishing connection with roomId '${this.roomId}'...`); // 🔄\n this.reconnection.retryCount = 0;\n this.reconnection.isReconnecting = true;\n }\n\n this.retryReconnection();\n }\n\n private retryReconnection() {\n this.reconnection.retryCount++;\n\n const delay = Math.min(this.reconnection.maxDelay, Math.max(this.reconnection.minDelay, this.reconnection.backoff(this.reconnection.retryCount, this.reconnection.delay)));\n\n console.info(`[Colyseus reconnection]: ${String.fromCodePoint(0x1F504)} will retry in ${delay}ms... (${this.reconnection.retryCount} out of ${this.reconnection.maxRetries})`); // 🔄\n\n // Wait before attempting reconnection\n setTimeout(() => {\n try {\n this.connection.reconnect({\n reconnectionToken: this.reconnectionToken.split(\":\")[1],\n skipHandshake: true, // we already applied the handshake on first join\n });\n\n } catch (e) {\n if (this.reconnection.retryCount < this.reconnection.maxRetries) {\n this.retryReconnection();\n } else {\n console.info(`[Colyseus reconnection]: ${String.fromCodePoint(0x274C)} Failed to reconnect. Is your server running? Please check server logs.`); // ❌\n }\n }\n }, delay);\n }\n}\n\nconst exponentialBackoff = (attempt: number, delay: number) => {\n return Math.floor(Math.pow(2, attempt) * delay);\n}\n\nfunction enqueueMessage(room: Room, message: Uint8Array) {\n room.reconnection.enqueuedMessages.push({ data: message });\n if (room.reconnection.enqueuedMessages.length > room.reconnection.maxEnqueuedMessages) {\n room.reconnection.enqueuedMessages.shift();\n }\n}"],"names":[],"mappings":"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"}
package/build/Storage.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7
6
+ // colyseus.js@0.17.8
7
7
  'use strict';
8
8
 
9
9
  var tslib = require('tslib');
package/build/Storage.mjs CHANGED
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7
6
+ // colyseus.js@0.17.8
7
7
  /// <reference path="../typings/cocos-creator.d.ts" />
8
8
  /**
9
9
  * We do not assign 'storage' to window.localStorage immediatelly for React
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7
6
+ // colyseus.js@0.17.8
7
7
  'use strict';
8
8
 
9
9
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"nanoevents.cjs","sources":["../../src/core/nanoevents.ts"],"sourcesContent":["/**\n * The MIT License (MIT)\n *\n * Copyright 2016 Andrey Sitnik <andrey@sitnik.ru>\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\nexport const createNanoEvents = () => ({\n emit(event: string, ...args: any[]) {\n let callbacks = this.events[event] || []\n for (let i = 0, length = callbacks.length; i < length; i++) {\n callbacks[i](...args)\n }\n },\n events: {},\n on(event: string, cb: (...args: any[]) => void) {\n this.events[event]?.push(cb) || (this.events[event] = [cb])\n return () => {\n this.events[event] = this.events[event]?.filter(i => cb !== i)\n }\n }\n});"],"names":[],"mappings":";;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;AAqBG;AAEI,MAAM,gBAAgB,GAAG,OAAO;AACnC,IAAA,IAAI,CAAC,KAAa,EAAE,GAAG,IAAW,EAAA;QAC9B,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;AACxC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACxD,YAAA,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACzB;IACJ,CAAC;AACD,IAAA,MAAM,EAAE,EAAE;IACV,EAAE,CAAC,KAAa,EAAE,EAA4B,EAAA;;QAC1C,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,IAAI,CAAC,EAAE,CAAC,MAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC3D,QAAA,OAAO,MAAK;;YACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAClE,QAAA,CAAC;IACL;AACH,CAAA;;;;"}
1
+ {"version":3,"file":"nanoevents.cjs","sources":["../../src/core/nanoevents.ts"],"sourcesContent":["/**\n * The MIT License (MIT)\n *\n * Copyright 2016 Andrey Sitnik <andrey@sitnik.ru>\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\nexport type EventsMap = Record<string, (...args: any[]) => void>;\n\nexport interface Emitter<Events extends EventsMap> {\n events: { [K in keyof Events]?: Array<Events[K]> };\n emit<K extends keyof Events>(event: K, ...args: Parameters<Events[K]>): void;\n on<K extends keyof Events>(event: K, cb: Events[K]): () => void;\n}\n\nexport const createNanoEvents = <Events extends EventsMap = EventsMap>(): Emitter<Events> => ({\n emit(event, ...args) {\n let callbacks = this.events[event] || []\n for (let i = 0, length = callbacks.length; i < length; i++) {\n callbacks[i](...args)\n }\n },\n events: {},\n on(event, cb) {\n this.events[event]?.push(cb) || (this.events[event] = [cb])\n return () => {\n this.events[event] = this.events[event]?.filter(i => cb !== i)\n }\n }\n});"],"names":[],"mappings":";;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;AAqBG;AAUI,MAAM,gBAAgB,GAAG,OAA8D;AAC1F,IAAA,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,EAAA;QACf,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;AACxC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACxD,YAAA,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACzB;IACJ,CAAC;AACD,IAAA,MAAM,EAAE,EAAE;IACV,EAAE,CAAC,KAAK,EAAE,EAAE,EAAA;;QACR,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,IAAI,CAAC,EAAE,CAAC,MAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC3D,QAAA,OAAO,MAAK;;YACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAClE,QAAA,CAAC;IACL;AACH,CAAA;;;;"}
@@ -20,8 +20,12 @@
20
20
  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21
21
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
22
  */
23
- export declare const createNanoEvents: () => {
24
- emit(event: string, ...args: any[]): void;
25
- events: {};
26
- on(event: string, cb: (...args: any[]) => void): () => void;
27
- };
23
+ export type EventsMap = Record<string, (...args: any[]) => void>;
24
+ export interface Emitter<Events extends EventsMap> {
25
+ events: {
26
+ [K in keyof Events]?: Array<Events[K]>;
27
+ };
28
+ emit<K extends keyof Events>(event: K, ...args: Parameters<Events[K]>): void;
29
+ on<K extends keyof Events>(event: K, cb: Events[K]): () => void;
30
+ }
31
+ export declare const createNanoEvents: <Events extends EventsMap = EventsMap>() => Emitter<Events>;
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7
6
+ // colyseus.js@0.17.8
7
7
  /**
8
8
  * The MIT License (MIT)
9
9
  *
@@ -1 +1 @@
1
- {"version":3,"file":"nanoevents.mjs","sources":["../../src/core/nanoevents.ts"],"sourcesContent":["/**\n * The MIT License (MIT)\n *\n * Copyright 2016 Andrey Sitnik <andrey@sitnik.ru>\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\nexport const createNanoEvents = () => ({\n emit(event: string, ...args: any[]) {\n let callbacks = this.events[event] || []\n for (let i = 0, length = callbacks.length; i < length; i++) {\n callbacks[i](...args)\n }\n },\n events: {},\n on(event: string, cb: (...args: any[]) => void) {\n this.events[event]?.push(cb) || (this.events[event] = [cb])\n return () => {\n this.events[event] = this.events[event]?.filter(i => cb !== i)\n }\n }\n});"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;AAqBG;AAEI,MAAM,gBAAgB,GAAG,OAAO;AACnC,IAAA,IAAI,CAAC,KAAa,EAAE,GAAG,IAAW,EAAA;QAC9B,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;AACxC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACxD,YAAA,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACzB;IACJ,CAAC;AACD,IAAA,MAAM,EAAE,EAAE;IACV,EAAE,CAAC,KAAa,EAAE,EAA4B,EAAA;QAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC3D,QAAA,OAAO,MAAK;YACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAClE,QAAA,CAAC;IACL;AACH,CAAA;;;;"}
1
+ {"version":3,"file":"nanoevents.mjs","sources":["../../src/core/nanoevents.ts"],"sourcesContent":["/**\n * The MIT License (MIT)\n *\n * Copyright 2016 Andrey Sitnik <andrey@sitnik.ru>\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\nexport type EventsMap = Record<string, (...args: any[]) => void>;\n\nexport interface Emitter<Events extends EventsMap> {\n events: { [K in keyof Events]?: Array<Events[K]> };\n emit<K extends keyof Events>(event: K, ...args: Parameters<Events[K]>): void;\n on<K extends keyof Events>(event: K, cb: Events[K]): () => void;\n}\n\nexport const createNanoEvents = <Events extends EventsMap = EventsMap>(): Emitter<Events> => ({\n emit(event, ...args) {\n let callbacks = this.events[event] || []\n for (let i = 0, length = callbacks.length; i < length; i++) {\n callbacks[i](...args)\n }\n },\n events: {},\n on(event, cb) {\n this.events[event]?.push(cb) || (this.events[event] = [cb])\n return () => {\n this.events[event] = this.events[event]?.filter(i => cb !== i)\n }\n }\n});"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;AAqBG;AAUI,MAAM,gBAAgB,GAAG,OAA8D;AAC1F,IAAA,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,EAAA;QACf,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;AACxC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACxD,YAAA,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACzB;IACJ,CAAC;AACD,IAAA,MAAM,EAAE,EAAE;IACV,EAAE,CAAC,KAAK,EAAE,EAAE,EAAA;QACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC3D,QAAA,OAAO,MAAK;YACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAClE,QAAA,CAAC;IACL;AACH,CAAA;;;;"}
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7
6
+ // colyseus.js@0.17.8
7
7
  'use strict';
8
8
 
9
9
  class EventEmitter {
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7
6
+ // colyseus.js@0.17.8
7
7
  class EventEmitter {
8
8
  handlers = [];
9
9
  register(cb, once = false) {
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7
6
+ // colyseus.js@0.17.8
7
7
  'use strict';
8
8
 
9
9
  function now() {
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7
6
+ // colyseus.js@0.17.8
7
7
  function now() {
8
8
  return typeof (performance) !== 'undefined' ? performance.now() : Date.now();
9
9
  }
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7
6
+ // colyseus.js@0.17.8
7
7
  'use strict';
8
8
 
9
9
  exports.CloseCode = void 0;
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7
6
+ // colyseus.js@0.17.8
7
7
  var CloseCode;
8
8
  (function (CloseCode) {
9
9
  CloseCode[CloseCode["NORMAL_CLOSURE"] = 1000] = "NORMAL_CLOSURE";
package/build/index.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7
6
+ // colyseus.js@0.17.8
7
7
  'use strict';
8
8
 
9
9
  require('./legacy.cjs');
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["import './legacy';\n\nexport { ColyseusSDK, Client, MatchMakeError, type JoinOptions, type EndpointSettings, type ClientOptions, type ISeatReservation as SeatReservation } from './Client.ts';\nexport { Protocol, ErrorCode } from './Protocol.ts';\nexport { Room, type RoomAvailable } from './Room.ts';\nexport { Auth, type AuthSettings, type PopupSettings } from \"./Auth.ts\";\nexport { ServerError, CloseCode } from './errors/Errors.ts';\n\n/*\n * Serializers\n */\nimport { SchemaSerializer, getStateCallbacks } from \"./serializer/SchemaSerializer.ts\";\nimport { NoneSerializer } from \"./serializer/NoneSerializer.ts\";\nimport { registerSerializer } from './serializer/Serializer.ts';\nexport { Callbacks } from \"@colyseus/schema\";\n\nexport { registerSerializer, SchemaSerializer, getStateCallbacks };\nregisterSerializer('schema', SchemaSerializer);\nregisterSerializer('none', NoneSerializer);\n"],"names":["registerSerializer","SchemaSerializer","NoneSerializer"],"mappings":";;;;;;;;;;;;;;;;;;;AAiBAA,6BAAkB,CAAC,QAAQ,EAAEC,iCAAgB,CAAC;AAC9CD,6BAAkB,CAAC,MAAM,EAAEE,6BAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["import './legacy';\n\nexport { ColyseusSDK, Client, MatchMakeError, type JoinOptions, type EndpointSettings, type ClientOptions, type ISeatReservation as SeatReservation } from './Client.ts';\nexport { Protocol, ErrorCode } from './Protocol.ts';\nexport { Room, type RoomAvailable } from './Room.ts';\nexport { Auth, type AuthSettings, type PopupSettings, type AuthResponse, type UserDataResponse, type ForgotPasswordResponse, type AuthData } from \"./Auth.ts\";\nexport { ServerError, CloseCode } from './errors/Errors.ts';\n\n/*\n * Serializers\n */\nimport { SchemaSerializer, getStateCallbacks } from \"./serializer/SchemaSerializer.ts\";\nimport { NoneSerializer } from \"./serializer/NoneSerializer.ts\";\nimport { registerSerializer } from './serializer/Serializer.ts';\nexport { Callbacks } from \"@colyseus/schema\";\n\nexport { registerSerializer, SchemaSerializer, getStateCallbacks };\nregisterSerializer('schema', SchemaSerializer);\nregisterSerializer('none', NoneSerializer);\n"],"names":["registerSerializer","SchemaSerializer","NoneSerializer"],"mappings":";;;;;;;;;;;;;;;;;;;AAiBAA,6BAAkB,CAAC,QAAQ,EAAEC,iCAAgB,CAAC;AAC9CD,6BAAkB,CAAC,MAAM,EAAEE,6BAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/build/index.d.ts CHANGED
@@ -2,7 +2,7 @@ import './legacy';
2
2
  export { ColyseusSDK, Client, MatchMakeError, type JoinOptions, type EndpointSettings, type ClientOptions, type ISeatReservation as SeatReservation } from './Client.ts';
3
3
  export { Protocol, ErrorCode } from './Protocol.ts';
4
4
  export { Room, type RoomAvailable } from './Room.ts';
5
- export { Auth, type AuthSettings, type PopupSettings } from "./Auth.ts";
5
+ export { Auth, type AuthSettings, type PopupSettings, type AuthResponse, type UserDataResponse, type ForgotPasswordResponse, type AuthData } from "./Auth.ts";
6
6
  export { ServerError, CloseCode } from './errors/Errors.ts';
7
7
  import { SchemaSerializer, getStateCallbacks } from "./serializer/SchemaSerializer.ts";
8
8
  import { registerSerializer } from './serializer/Serializer.ts';
package/build/index.mjs CHANGED
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7
6
+ // colyseus.js@0.17.8
7
7
  import './legacy.mjs';
8
8
  export { Client, ColyseusSDK, MatchMakeError } from './Client.mjs';
9
9
  export { ErrorCode, Protocol } from './Protocol.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import './legacy';\n\nexport { ColyseusSDK, Client, MatchMakeError, type JoinOptions, type EndpointSettings, type ClientOptions, type ISeatReservation as SeatReservation } from './Client.ts';\nexport { Protocol, ErrorCode } from './Protocol.ts';\nexport { Room, type RoomAvailable } from './Room.ts';\nexport { Auth, type AuthSettings, type PopupSettings } from \"./Auth.ts\";\nexport { ServerError, CloseCode } from './errors/Errors.ts';\n\n/*\n * Serializers\n */\nimport { SchemaSerializer, getStateCallbacks } from \"./serializer/SchemaSerializer.ts\";\nimport { NoneSerializer } from \"./serializer/NoneSerializer.ts\";\nimport { registerSerializer } from './serializer/Serializer.ts';\nexport { Callbacks } from \"@colyseus/schema\";\n\nexport { registerSerializer, SchemaSerializer, getStateCallbacks };\nregisterSerializer('schema', SchemaSerializer);\nregisterSerializer('none', NoneSerializer);\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAiBA,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,CAAC;AAC9C,kBAAkB,CAAC,MAAM,EAAE,cAAc,CAAC;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import './legacy';\n\nexport { ColyseusSDK, Client, MatchMakeError, type JoinOptions, type EndpointSettings, type ClientOptions, type ISeatReservation as SeatReservation } from './Client.ts';\nexport { Protocol, ErrorCode } from './Protocol.ts';\nexport { Room, type RoomAvailable } from './Room.ts';\nexport { Auth, type AuthSettings, type PopupSettings, type AuthResponse, type UserDataResponse, type ForgotPasswordResponse, type AuthData } from \"./Auth.ts\";\nexport { ServerError, CloseCode } from './errors/Errors.ts';\n\n/*\n * Serializers\n */\nimport { SchemaSerializer, getStateCallbacks } from \"./serializer/SchemaSerializer.ts\";\nimport { NoneSerializer } from \"./serializer/NoneSerializer.ts\";\nimport { registerSerializer } from './serializer/Serializer.ts';\nexport { Callbacks } from \"@colyseus/schema\";\n\nexport { registerSerializer, SchemaSerializer, getStateCallbacks };\nregisterSerializer('schema', SchemaSerializer);\nregisterSerializer('none', NoneSerializer);\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAiBA,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,CAAC;AAC9C,kBAAkB,CAAC,MAAM,EAAE,cAAc,CAAC;;;;"}
package/build/legacy.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7
6
+ // colyseus.js@0.17.8
7
7
  'use strict';
8
8
 
9
9
  //
package/build/legacy.mjs CHANGED
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7
6
+ // colyseus.js@0.17.8
7
7
  //
8
8
  // Polyfills for legacy environments
9
9
  //
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7
6
+ // colyseus.js@0.17.8
7
7
  'use strict';
8
8
 
9
9
  class NoneSerializer {
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7
6
+ // colyseus.js@0.17.8
7
7
  class NoneSerializer {
8
8
  setState(rawState) { }
9
9
  getState() { return null; }
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7
6
+ // colyseus.js@0.17.8
7
7
  'use strict';
8
8
 
9
9
  var schema = require('@colyseus/schema');
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7
6
+ // colyseus.js@0.17.8
7
7
  import { Reflection, Decoder, getDecoderStateCallbacks } from '@colyseus/schema';
8
8
 
9
9
  //
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7
6
+ // colyseus.js@0.17.8
7
7
  'use strict';
8
8
 
9
9
  const serializers = {};
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7
6
+ // colyseus.js@0.17.8
7
7
  const serializers = {};
8
8
  function registerSerializer(id, serializer) {
9
9
  serializers[id] = serializer;
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7
6
+ // colyseus.js@0.17.8
7
7
  'use strict';
8
8
 
9
9
  var tslib = require('tslib');
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7
6
+ // colyseus.js@0.17.8
7
7
  import { encode, decode } from '@colyseus/schema';
8
8
 
9
9
  class H3TransportTransport {
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7
6
+ // colyseus.js@0.17.8
7
7
  'use strict';
8
8
 
9
9
  var NodeWebSocket = require('ws');
@@ -17,7 +17,7 @@ class WebSocketTransport {
17
17
  this.ws.send(data);
18
18
  }
19
19
  sendUnreliable(data) {
20
- console.warn("colyseus.js: The WebSocket transport does not support unreliable messages");
20
+ console.warn("@colyseus/sdk: The WebSocket transport does not support unreliable messages");
21
21
  }
22
22
  /**
23
23
  * @param url URL to connect to
@@ -1 +1 @@
1
- {"version":3,"file":"WebSocketTransport.cjs","sources":["../../src/transport/WebSocketTransport.ts"],"sourcesContent":["import NodeWebSocket from \"ws\";\nimport type { ITransport, ITransportEventMap } from \"./ITransport.ts\";\n\nconst WebSocket = globalThis.WebSocket || NodeWebSocket;\n\nexport class WebSocketTransport implements ITransport {\n ws: WebSocket | NodeWebSocket;\n protocols?: string | string[];\n\n events: ITransportEventMap;\n\n constructor(events: ITransportEventMap) {\n this.events = events;\n }\n\n public send(data: Buffer | Uint8Array): void {\n this.ws.send(data);\n }\n\n public sendUnreliable(data: Uint8Array): void {\n console.warn(\"colyseus.js: The WebSocket transport does not support unreliable messages\");\n }\n\n /**\n * @param url URL to connect to\n * @param headers custom headers to send with the connection (only supported in Node.js. Web Browsers do not allow setting custom headers)\n */\n public connect(url: string, headers?: any): void {\n try {\n // Node or Bun environments (supports custom headers)\n this.ws = new WebSocket(url, { headers, protocols: this.protocols });\n\n } catch (e) {\n // browser environment (custom headers not supported)\n this.ws = new WebSocket(url, this.protocols);\n }\n\n this.ws.binaryType = 'arraybuffer';\n this.ws.onopen = this.events.onopen;\n this.ws.onmessage = this.events.onmessage;\n this.ws.onclose = this.events.onclose;\n this.ws.onerror = this.events.onerror;\n }\n\n public close(code?: number, reason?: string) {\n this.ws.close(code, reason);\n }\n\n get isOpen() {\n return this.ws.readyState === WebSocket.OPEN;\n }\n\n}\n"],"names":[],"mappings":";;;;;;;;;;AAGA,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,IAAI,aAAa;MAE1C,kBAAkB,CAAA;AAM3B,IAAA,WAAA,CAAY,MAA0B,EAAA;AAClC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACxB;AAEO,IAAA,IAAI,CAAC,IAAyB,EAAA;AACjC,QAAA,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;IACtB;AAEO,IAAA,cAAc,CAAC,IAAgB,EAAA;AAClC,QAAA,OAAO,CAAC,IAAI,CAAC,2EAA2E,CAAC;IAC7F;AAEA;;;AAGG;IACI,OAAO,CAAC,GAAW,EAAE,OAAa,EAAA;AACrC,QAAA,IAAI;;AAEA,YAAA,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QAExE;QAAE,OAAO,CAAC,EAAE;;AAER,YAAA,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC;QAChD;AAEA,QAAA,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,aAAa;QAClC,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;QACnC,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS;QACzC,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;QACrC,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;IACzC;IAEO,KAAK,CAAC,IAAa,EAAE,MAAe,EAAA;QACvC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B;AAEA,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI;IAChD;AAEH;;;;"}
1
+ {"version":3,"file":"WebSocketTransport.cjs","sources":["../../src/transport/WebSocketTransport.ts"],"sourcesContent":["import NodeWebSocket from \"ws\";\nimport type { ITransport, ITransportEventMap } from \"./ITransport.ts\";\n\nconst WebSocket = globalThis.WebSocket || NodeWebSocket;\n\nexport class WebSocketTransport implements ITransport {\n ws: WebSocket | NodeWebSocket;\n protocols?: string | string[];\n\n events: ITransportEventMap;\n\n constructor(events: ITransportEventMap) {\n this.events = events;\n }\n\n public send(data: Buffer | Uint8Array): void {\n this.ws.send(data);\n }\n\n public sendUnreliable(data: Uint8Array): void {\n console.warn(\"@colyseus/sdk: The WebSocket transport does not support unreliable messages\");\n }\n\n /**\n * @param url URL to connect to\n * @param headers custom headers to send with the connection (only supported in Node.js. Web Browsers do not allow setting custom headers)\n */\n public connect(url: string, headers?: any): void {\n try {\n // Node or Bun environments (supports custom headers)\n this.ws = new WebSocket(url, { headers, protocols: this.protocols });\n\n } catch (e) {\n // browser environment (custom headers not supported)\n this.ws = new WebSocket(url, this.protocols);\n }\n\n this.ws.binaryType = 'arraybuffer';\n this.ws.onopen = this.events.onopen;\n this.ws.onmessage = this.events.onmessage;\n this.ws.onclose = this.events.onclose;\n this.ws.onerror = this.events.onerror;\n }\n\n public close(code?: number, reason?: string) {\n this.ws.close(code, reason);\n }\n\n get isOpen() {\n return this.ws.readyState === WebSocket.OPEN;\n }\n\n}\n"],"names":[],"mappings":";;;;;;;;;;AAGA,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,IAAI,aAAa;MAE1C,kBAAkB,CAAA;AAM3B,IAAA,WAAA,CAAY,MAA0B,EAAA;AAClC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACxB;AAEO,IAAA,IAAI,CAAC,IAAyB,EAAA;AACjC,QAAA,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;IACtB;AAEO,IAAA,cAAc,CAAC,IAAgB,EAAA;AAClC,QAAA,OAAO,CAAC,IAAI,CAAC,6EAA6E,CAAC;IAC/F;AAEA;;;AAGG;IACI,OAAO,CAAC,GAAW,EAAE,OAAa,EAAA;AACrC,QAAA,IAAI;;AAEA,YAAA,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QAExE;QAAE,OAAO,CAAC,EAAE;;AAER,YAAA,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC;QAChD;AAEA,QAAA,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,aAAa;QAClC,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;QACnC,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS;QACzC,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;QACrC,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;IACzC;IAEO,KAAK,CAAC,IAAa,EAAE,MAAe,EAAA;QACvC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B;AAEA,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI;IAChD;AAEH;;;;"}
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7
6
+ // colyseus.js@0.17.8
7
7
  import NodeWebSocket from 'ws';
8
8
 
9
9
  const WebSocket = globalThis.WebSocket || NodeWebSocket;
@@ -18,7 +18,7 @@ class WebSocketTransport {
18
18
  this.ws.send(data);
19
19
  }
20
20
  sendUnreliable(data) {
21
- console.warn("colyseus.js: The WebSocket transport does not support unreliable messages");
21
+ console.warn("@colyseus/sdk: The WebSocket transport does not support unreliable messages");
22
22
  }
23
23
  /**
24
24
  * @param url URL to connect to
@@ -1 +1 @@
1
- {"version":3,"file":"WebSocketTransport.mjs","sources":["../../src/transport/WebSocketTransport.ts"],"sourcesContent":["import NodeWebSocket from \"ws\";\nimport type { ITransport, ITransportEventMap } from \"./ITransport.ts\";\n\nconst WebSocket = globalThis.WebSocket || NodeWebSocket;\n\nexport class WebSocketTransport implements ITransport {\n ws: WebSocket | NodeWebSocket;\n protocols?: string | string[];\n\n events: ITransportEventMap;\n\n constructor(events: ITransportEventMap) {\n this.events = events;\n }\n\n public send(data: Buffer | Uint8Array): void {\n this.ws.send(data);\n }\n\n public sendUnreliable(data: Uint8Array): void {\n console.warn(\"colyseus.js: The WebSocket transport does not support unreliable messages\");\n }\n\n /**\n * @param url URL to connect to\n * @param headers custom headers to send with the connection (only supported in Node.js. Web Browsers do not allow setting custom headers)\n */\n public connect(url: string, headers?: any): void {\n try {\n // Node or Bun environments (supports custom headers)\n this.ws = new WebSocket(url, { headers, protocols: this.protocols });\n\n } catch (e) {\n // browser environment (custom headers not supported)\n this.ws = new WebSocket(url, this.protocols);\n }\n\n this.ws.binaryType = 'arraybuffer';\n this.ws.onopen = this.events.onopen;\n this.ws.onmessage = this.events.onmessage;\n this.ws.onclose = this.events.onclose;\n this.ws.onerror = this.events.onerror;\n }\n\n public close(code?: number, reason?: string) {\n this.ws.close(code, reason);\n }\n\n get isOpen() {\n return this.ws.readyState === WebSocket.OPEN;\n }\n\n}\n"],"names":[],"mappings":";;;;;;;;AAGA,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,IAAI,aAAa;MAE1C,kBAAkB,CAAA;AAC3B,IAAA,EAAE;AACF,IAAA,SAAS;AAET,IAAA,MAAM;AAEN,IAAA,WAAA,CAAY,MAA0B,EAAA;AAClC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACxB;AAEO,IAAA,IAAI,CAAC,IAAyB,EAAA;AACjC,QAAA,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;IACtB;AAEO,IAAA,cAAc,CAAC,IAAgB,EAAA;AAClC,QAAA,OAAO,CAAC,IAAI,CAAC,2EAA2E,CAAC;IAC7F;AAEA;;;AAGG;IACI,OAAO,CAAC,GAAW,EAAE,OAAa,EAAA;AACrC,QAAA,IAAI;;AAEA,YAAA,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QAExE;QAAE,OAAO,CAAC,EAAE;;AAER,YAAA,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC;QAChD;AAEA,QAAA,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,aAAa;QAClC,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;QACnC,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS;QACzC,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;QACrC,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;IACzC;IAEO,KAAK,CAAC,IAAa,EAAE,MAAe,EAAA;QACvC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B;AAEA,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI;IAChD;AAEH;;;;"}
1
+ {"version":3,"file":"WebSocketTransport.mjs","sources":["../../src/transport/WebSocketTransport.ts"],"sourcesContent":["import NodeWebSocket from \"ws\";\nimport type { ITransport, ITransportEventMap } from \"./ITransport.ts\";\n\nconst WebSocket = globalThis.WebSocket || NodeWebSocket;\n\nexport class WebSocketTransport implements ITransport {\n ws: WebSocket | NodeWebSocket;\n protocols?: string | string[];\n\n events: ITransportEventMap;\n\n constructor(events: ITransportEventMap) {\n this.events = events;\n }\n\n public send(data: Buffer | Uint8Array): void {\n this.ws.send(data);\n }\n\n public sendUnreliable(data: Uint8Array): void {\n console.warn(\"@colyseus/sdk: The WebSocket transport does not support unreliable messages\");\n }\n\n /**\n * @param url URL to connect to\n * @param headers custom headers to send with the connection (only supported in Node.js. Web Browsers do not allow setting custom headers)\n */\n public connect(url: string, headers?: any): void {\n try {\n // Node or Bun environments (supports custom headers)\n this.ws = new WebSocket(url, { headers, protocols: this.protocols });\n\n } catch (e) {\n // browser environment (custom headers not supported)\n this.ws = new WebSocket(url, this.protocols);\n }\n\n this.ws.binaryType = 'arraybuffer';\n this.ws.onopen = this.events.onopen;\n this.ws.onmessage = this.events.onmessage;\n this.ws.onclose = this.events.onclose;\n this.ws.onerror = this.events.onerror;\n }\n\n public close(code?: number, reason?: string) {\n this.ws.close(code, reason);\n }\n\n get isOpen() {\n return this.ws.readyState === WebSocket.OPEN;\n }\n\n}\n"],"names":[],"mappings":";;;;;;;;AAGA,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,IAAI,aAAa;MAE1C,kBAAkB,CAAA;AAC3B,IAAA,EAAE;AACF,IAAA,SAAS;AAET,IAAA,MAAM;AAEN,IAAA,WAAA,CAAY,MAA0B,EAAA;AAClC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACxB;AAEO,IAAA,IAAI,CAAC,IAAyB,EAAA;AACjC,QAAA,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;IACtB;AAEO,IAAA,cAAc,CAAC,IAAgB,EAAA;AAClC,QAAA,OAAO,CAAC,IAAI,CAAC,6EAA6E,CAAC;IAC/F;AAEA;;;AAGG;IACI,OAAO,CAAC,GAAW,EAAE,OAAa,EAAA;AACrC,QAAA,IAAI;;AAEA,YAAA,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QAExE;QAAE,OAAO,CAAC,EAAE;;AAER,YAAA,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC;QAChD;AAEA,QAAA,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,aAAa;QAClC,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;QACnC,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS;QACzC,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;QACrC,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;IACzC;IAEO,KAAK,CAAC,IAAa,EAAE,MAAe,EAAA;QACvC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B;AAEA,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI;IAChD;AAEH;;;;"}
@@ -3,7 +3,7 @@
3
3
  // This software is released under the MIT License.
4
4
  // https://opensource.org/license/MIT
5
5
  //
6
- // colyseus.js@0.17.7 - @colyseus/schema 4.0.1
6
+ // colyseus.js@0.17.8 - @colyseus/schema 4.0.1
7
7
  // THIS VERSION USES "XMLHttpRequest" INSTEAD OF "fetch" FOR COMPATIBILITY WITH COCOS CREATOR
8
8
  (function (global, factory) {
9
9
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
@@ -8266,7 +8266,7 @@
8266
8266
  this.ws.send(data);
8267
8267
  }
8268
8268
  sendUnreliable(data) {
8269
- console.warn("colyseus.js: The WebSocket transport does not support unreliable messages");
8269
+ console.warn("@colyseus/sdk: The WebSocket transport does not support unreliable messages");
8270
8270
  }
8271
8271
  /**
8272
8272
  * @param url URL to connect to
@@ -8774,7 +8774,7 @@
8774
8774
  this.onMessageHandlers.emit('*', type, message);
8775
8775
  }
8776
8776
  else if (!messageType.startsWith("__")) { // ignore internal messages
8777
- (_a = console.warn) === null || _a === void 0 ? void 0 : _a.call(console, `colyseus.js: onMessage() not registered for type '${type}'.`);
8777
+ (_a = console.warn) === null || _a === void 0 ? void 0 : _a.call(console, `@colyseus/sdk: onMessage() not registered for type '${type}'.`);
8778
8778
  }
8779
8779
  }
8780
8780
  destroy() {
@@ -8930,6 +8930,10 @@
8930
8930
  ? Object.assign(Object.assign({}, this.options.params), ((requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.params) || {})) : requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.params;
8931
8931
  const headers = new Headers((this.options.headers)
8932
8932
  ? Object.assign(Object.assign({}, this.options.headers), ((requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers) || {})) : requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
8933
+ // Add Authorization header if authToken is set
8934
+ if (this.authToken && !headers.has("authorization")) {
8935
+ headers.set("authorization", `Bearer ${this.authToken}`);
8936
+ }
8933
8937
  // Stringify JSON-serializable objects for fetch() body
8934
8938
  if (isJSONSerializable(body) && typeof body === 'object' && body !== null) {
8935
8939
  if (!headers.has("content-type")) {
@@ -9186,7 +9190,6 @@
9186
9190
  }
9187
9191
  signOut() {
9188
9192
  return __awaiter(this, void 0, void 0, function* () {
9189
- // @ts-ignore
9190
9193
  this.emitChange({ user: null, token: null });
9191
9194
  });
9192
9195
  }