@rpgjs/client 5.0.0-alpha.8 → 5.0.0-alpha.9

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index36.js","sources":["../../../node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-S74YV6PU.mjs"],"sourcesContent":["// src/ws.ts\nif (!globalThis.EventTarget || !globalThis.Event) {\n console.error(`\n PartySocket requires a global 'EventTarget' class to be available!\n You can polyfill this global by adding this to your code before any partysocket imports: \n \n \\`\\`\\`\n import 'partysocket/event-target-polyfill';\n \\`\\`\\`\n Please file an issue at https://github.com/partykit/partykit if you're still having trouble.\n`);\n}\nvar ErrorEvent = class extends Event {\n message;\n error;\n // biome-ignore lint/suspicious/noExplicitAny: vibes\n constructor(error, target) {\n super(\"error\", target);\n this.message = error.message;\n this.error = error;\n }\n};\nvar CloseEvent = class extends Event {\n code;\n reason;\n wasClean = true;\n // biome-ignore lint/style/useDefaultParameterLast: legacy\n // biome-ignore lint/suspicious/noExplicitAny: legacy\n constructor(code = 1e3, reason = \"\", target) {\n super(\"close\", target);\n this.code = code;\n this.reason = reason;\n }\n};\nvar Events = {\n Event,\n ErrorEvent,\n CloseEvent\n};\nfunction assert(condition, msg) {\n if (!condition) {\n throw new Error(msg);\n }\n}\nfunction cloneEventBrowser(e) {\n return new e.constructor(e.type, e);\n}\nfunction cloneEventNode(e) {\n if (\"data\" in e) {\n const evt2 = new MessageEvent(e.type, e);\n return evt2;\n }\n if (\"code\" in e || \"reason\" in e) {\n const evt2 = new CloseEvent(\n // @ts-expect-error we need to fix event/listener types\n e.code || 1999,\n // @ts-expect-error we need to fix event/listener types\n e.reason || \"unknown reason\",\n e\n );\n return evt2;\n }\n if (\"error\" in e) {\n const evt2 = new ErrorEvent(e.error, e);\n return evt2;\n }\n const evt = new Event(e.type, e);\n return evt;\n}\nvar _a;\nvar isNode =\n typeof process !== \"undefined\" &&\n typeof ((_a = process.versions) == null ? void 0 : _a.node) !== \"undefined\" &&\n typeof document === \"undefined\";\nvar cloneEvent = isNode ? cloneEventNode : cloneEventBrowser;\nvar DEFAULT = {\n maxReconnectionDelay: 1e4,\n minReconnectionDelay: 1e3 + Math.random() * 4e3,\n minUptime: 5e3,\n reconnectionDelayGrowFactor: 1.3,\n connectionTimeout: 4e3,\n maxRetries: Number.POSITIVE_INFINITY,\n maxEnqueuedMessages: Number.POSITIVE_INFINITY,\n startClosed: false,\n debug: false\n};\nvar didWarnAboutMissingWebSocket = false;\nvar ReconnectingWebSocket = class _ReconnectingWebSocket extends EventTarget {\n _ws;\n _retryCount = -1;\n _uptimeTimeout;\n _connectTimeout;\n _shouldReconnect = true;\n _connectLock = false;\n _binaryType = \"blob\";\n _closeCalled = false;\n _messageQueue = [];\n _debugLogger = console.log.bind(console);\n _url;\n _protocols;\n _options;\n constructor(url, protocols, options = {}) {\n super();\n this._url = url;\n this._protocols = protocols;\n this._options = options;\n if (this._options.startClosed) {\n this._shouldReconnect = false;\n }\n if (this._options.debugLogger) {\n this._debugLogger = this._options.debugLogger;\n }\n this._connect();\n }\n static get CONNECTING() {\n return 0;\n }\n static get OPEN() {\n return 1;\n }\n static get CLOSING() {\n return 2;\n }\n static get CLOSED() {\n return 3;\n }\n get CONNECTING() {\n return _ReconnectingWebSocket.CONNECTING;\n }\n get OPEN() {\n return _ReconnectingWebSocket.OPEN;\n }\n get CLOSING() {\n return _ReconnectingWebSocket.CLOSING;\n }\n get CLOSED() {\n return _ReconnectingWebSocket.CLOSED;\n }\n get binaryType() {\n return this._ws ? this._ws.binaryType : this._binaryType;\n }\n set binaryType(value) {\n this._binaryType = value;\n if (this._ws) {\n this._ws.binaryType = value;\n }\n }\n /**\n * Returns the number or connection retries\n */\n get retryCount() {\n return Math.max(this._retryCount, 0);\n }\n /**\n * The number of bytes of data that have been queued using calls to send() but not yet\n * transmitted to the network. This value resets to zero once all queued data has been sent.\n * This value does not reset to zero when the connection is closed; if you keep calling send(),\n * this will continue to climb. Read only\n */\n get bufferedAmount() {\n const bytes = this._messageQueue.reduce((acc, message) => {\n if (typeof message === \"string\") {\n acc += message.length;\n } else if (message instanceof Blob) {\n acc += message.size;\n } else {\n acc += message.byteLength;\n }\n return acc;\n }, 0);\n return bytes + (this._ws ? this._ws.bufferedAmount : 0);\n }\n /**\n * The extensions selected by the server. This is currently only the empty string or a list of\n * extensions as negotiated by the connection\n */\n get extensions() {\n return this._ws ? this._ws.extensions : \"\";\n }\n /**\n * A string indicating the name of the sub-protocol the server selected;\n * this will be one of the strings specified in the protocols parameter when creating the\n * WebSocket object\n */\n get protocol() {\n return this._ws ? this._ws.protocol : \"\";\n }\n /**\n * The current state of the connection; this is one of the Ready state constants\n */\n get readyState() {\n if (this._ws) {\n return this._ws.readyState;\n }\n return this._options.startClosed\n ? _ReconnectingWebSocket.CLOSED\n : _ReconnectingWebSocket.CONNECTING;\n }\n /**\n * The URL as resolved by the constructor\n */\n get url() {\n return this._ws ? this._ws.url : \"\";\n }\n /**\n * Whether the websocket object is now in reconnectable state\n */\n get shouldReconnect() {\n return this._shouldReconnect;\n }\n /**\n * An event listener to be called when the WebSocket connection's readyState changes to CLOSED\n */\n onclose = null;\n /**\n * An event listener to be called when an error occurs\n */\n onerror = null;\n /**\n * An event listener to be called when a message is received from the server\n */\n onmessage = null;\n /**\n * An event listener to be called when the WebSocket connection's readyState changes to OPEN;\n * this indicates that the connection is ready to send and receive data\n */\n onopen = null;\n /**\n * Closes the WebSocket connection or connection attempt, if any. If the connection is already\n * CLOSED, this method does nothing\n */\n close(code = 1e3, reason) {\n this._closeCalled = true;\n this._shouldReconnect = false;\n this._clearTimeouts();\n if (!this._ws) {\n this._debug(\"close enqueued: no ws instance\");\n return;\n }\n if (this._ws.readyState === this.CLOSED) {\n this._debug(\"close: already closed\");\n return;\n }\n this._ws.close(code, reason);\n }\n /**\n * Closes the WebSocket connection or connection attempt and connects again.\n * Resets retry counter;\n */\n reconnect(code, reason) {\n this._shouldReconnect = true;\n this._closeCalled = false;\n this._retryCount = -1;\n if (!this._ws || this._ws.readyState === this.CLOSED) {\n this._connect();\n } else {\n this._disconnect(code, reason);\n this._connect();\n }\n }\n /**\n * Enqueue specified data to be transmitted to the server over the WebSocket connection\n */\n send(data) {\n if (this._ws && this._ws.readyState === this.OPEN) {\n this._debug(\"send\", data);\n this._ws.send(data);\n } else {\n const { maxEnqueuedMessages = DEFAULT.maxEnqueuedMessages } =\n this._options;\n if (this._messageQueue.length < maxEnqueuedMessages) {\n this._debug(\"enqueue\", data);\n this._messageQueue.push(data);\n }\n }\n }\n _debug(...args) {\n if (this._options.debug) {\n this._debugLogger(\"RWS>\", ...args);\n }\n }\n _getNextDelay() {\n const {\n reconnectionDelayGrowFactor = DEFAULT.reconnectionDelayGrowFactor,\n minReconnectionDelay = DEFAULT.minReconnectionDelay,\n maxReconnectionDelay = DEFAULT.maxReconnectionDelay\n } = this._options;\n let delay = 0;\n if (this._retryCount > 0) {\n delay =\n minReconnectionDelay *\n reconnectionDelayGrowFactor ** (this._retryCount - 1);\n if (delay > maxReconnectionDelay) {\n delay = maxReconnectionDelay;\n }\n }\n this._debug(\"next delay\", delay);\n return delay;\n }\n _wait() {\n return new Promise((resolve) => {\n setTimeout(resolve, this._getNextDelay());\n });\n }\n _getNextProtocols(protocolsProvider) {\n if (!protocolsProvider) return Promise.resolve(null);\n if (\n typeof protocolsProvider === \"string\" ||\n Array.isArray(protocolsProvider)\n ) {\n return Promise.resolve(protocolsProvider);\n }\n if (typeof protocolsProvider === \"function\") {\n const protocols = protocolsProvider();\n if (!protocols) return Promise.resolve(null);\n if (typeof protocols === \"string\" || Array.isArray(protocols)) {\n return Promise.resolve(protocols);\n }\n if (protocols.then) {\n return protocols;\n }\n }\n throw Error(\"Invalid protocols\");\n }\n _getNextUrl(urlProvider) {\n if (typeof urlProvider === \"string\") {\n return Promise.resolve(urlProvider);\n }\n if (typeof urlProvider === \"function\") {\n const url = urlProvider();\n if (typeof url === \"string\") {\n return Promise.resolve(url);\n }\n if (url.then) {\n return url;\n }\n }\n throw Error(\"Invalid URL\");\n }\n _connect() {\n if (this._connectLock || !this._shouldReconnect) {\n return;\n }\n this._connectLock = true;\n const {\n maxRetries = DEFAULT.maxRetries,\n connectionTimeout = DEFAULT.connectionTimeout\n } = this._options;\n if (this._retryCount >= maxRetries) {\n this._debug(\"max retries reached\", this._retryCount, \">=\", maxRetries);\n return;\n }\n this._retryCount++;\n this._debug(\"connect\", this._retryCount);\n this._removeListeners();\n this._wait()\n .then(() =>\n Promise.all([\n this._getNextUrl(this._url),\n this._getNextProtocols(this._protocols || null)\n ])\n )\n .then(([url, protocols]) => {\n if (this._closeCalled) {\n this._connectLock = false;\n return;\n }\n if (\n !this._options.WebSocket &&\n typeof WebSocket === \"undefined\" &&\n !didWarnAboutMissingWebSocket\n ) {\n console.error(`\\u203C\\uFE0F No WebSocket implementation available. You should define options.WebSocket. \n\nFor example, if you're using node.js, run \\`npm install ws\\`, and then in your code:\n\nimport PartySocket from 'partysocket';\nimport WS from 'ws';\n\nconst partysocket = new PartySocket({\n host: \"127.0.0.1:1999\",\n room: \"test-room\",\n WebSocket: WS\n});\n\n`);\n didWarnAboutMissingWebSocket = true;\n }\n const WS = this._options.WebSocket || WebSocket;\n this._debug(\"connect\", { url, protocols });\n this._ws = protocols ? new WS(url, protocols) : new WS(url);\n this._ws.binaryType = this._binaryType;\n this._connectLock = false;\n this._addListeners();\n this._connectTimeout = setTimeout(\n () => this._handleTimeout(),\n connectionTimeout\n );\n })\n .catch((err) => {\n this._connectLock = false;\n this._handleError(new Events.ErrorEvent(Error(err.message), this));\n });\n }\n _handleTimeout() {\n this._debug(\"timeout event\");\n this._handleError(new Events.ErrorEvent(Error(\"TIMEOUT\"), this));\n }\n _disconnect(code = 1e3, reason) {\n this._clearTimeouts();\n if (!this._ws) {\n return;\n }\n this._removeListeners();\n try {\n if (this._ws.readyState === this.OPEN) {\n this._ws.close(code, reason);\n }\n this._handleClose(new Events.CloseEvent(code, reason, this));\n } catch (error) {}\n }\n _acceptOpen() {\n this._debug(\"accept open\");\n this._retryCount = 0;\n }\n _handleOpen = (event) => {\n this._debug(\"open event\");\n const { minUptime = DEFAULT.minUptime } = this._options;\n clearTimeout(this._connectTimeout);\n this._uptimeTimeout = setTimeout(() => this._acceptOpen(), minUptime);\n assert(this._ws, \"WebSocket is not defined\");\n this._ws.binaryType = this._binaryType;\n this._messageQueue.forEach((message) => {\n var _a2;\n return (_a2 = this._ws) == null ? void 0 : _a2.send(message);\n });\n this._messageQueue = [];\n if (this.onopen) {\n this.onopen(event);\n }\n this.dispatchEvent(cloneEvent(event));\n };\n _handleMessage = (event) => {\n this._debug(\"message event\");\n if (this.onmessage) {\n this.onmessage(event);\n }\n this.dispatchEvent(cloneEvent(event));\n };\n _handleError = (event) => {\n this._debug(\"error event\", event.message);\n this._disconnect(void 0, event.message === \"TIMEOUT\" ? \"timeout\" : void 0);\n if (this.onerror) {\n this.onerror(event);\n }\n this._debug(\"exec error listeners\");\n this.dispatchEvent(cloneEvent(event));\n this._connect();\n };\n _handleClose = (event) => {\n this._debug(\"close event\");\n this._clearTimeouts();\n if (this._shouldReconnect) {\n this._connect();\n }\n if (this.onclose) {\n this.onclose(event);\n }\n this.dispatchEvent(cloneEvent(event));\n };\n _removeListeners() {\n if (!this._ws) {\n return;\n }\n this._debug(\"removeListeners\");\n this._ws.removeEventListener(\"open\", this._handleOpen);\n this._ws.removeEventListener(\"close\", this._handleClose);\n this._ws.removeEventListener(\"message\", this._handleMessage);\n this._ws.removeEventListener(\"error\", this._handleError);\n }\n _addListeners() {\n if (!this._ws) {\n return;\n }\n this._debug(\"addListeners\");\n this._ws.addEventListener(\"open\", this._handleOpen);\n this._ws.addEventListener(\"close\", this._handleClose);\n this._ws.addEventListener(\"message\", this._handleMessage);\n this._ws.addEventListener(\"error\", this._handleError);\n }\n _clearTimeouts() {\n clearTimeout(this._connectTimeout);\n clearTimeout(this._uptimeTimeout);\n }\n};\n\nexport { ErrorEvent, CloseEvent, ReconnectingWebSocket };\n/*!\n * Reconnecting WebSocket\n * by Pedro Ladaria <pedro.ladaria@gmail.com>\n * https://github.com/pladaria/reconnecting-websocket\n * License MIT\n */\n//# sourceMappingURL=chunk-S74YV6PU.mjs.map\n"],"names":[],"mappings":"AAAA;AACA,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AAClD,EAAE,OAAO,CAAC,KAAK,CAAC;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF;AACG,IAAC,UAAU,GAAG,cAAc,KAAK,CAAC;AACrC,EAAE,OAAO;AACT,EAAE,KAAK;AACP;AACA,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE;AAC7B,IAAI,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC;AAC1B,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;AAChC,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK;AACtB;AACA;AACG,IAAC,UAAU,GAAG,cAAc,KAAK,CAAC;AACrC,EAAE,IAAI;AACN,EAAE,MAAM;AACR,EAAE,QAAQ,GAAG,IAAI;AACjB;AACA;AACA,EAAE,WAAW,CAAC,IAAI,GAAG,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,MAAM,EAAE;AAC/C,IAAI,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC;AAC1B,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI;AACpB,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM;AACxB;AACA;AACA,IAAI,MAAM,GAAG;AACb,EAAE,KAAK;AACP,EAAE,UAAU;AACZ,EAAE;AACF,CAAC;AACD,SAAS,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE;AAChC,EAAE,IAAI,CAAC,SAAS,EAAE;AAClB,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC;AACxB;AACA;AACA,SAAS,iBAAiB,CAAC,CAAC,EAAE;AAC9B,EAAE,OAAO,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACrC;AACA,SAAS,cAAc,CAAC,CAAC,EAAE;AAC3B,EAAE,IAAI,MAAM,IAAI,CAAC,EAAE;AACnB,IAAI,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5C,IAAI,OAAO,IAAI;AACf;AACA,EAAE,IAAI,MAAM,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE;AACpC,IAAI,MAAM,IAAI,GAAG,IAAI,UAAU;AAC/B;AACA,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI;AACpB;AACA,MAAM,CAAC,CAAC,MAAM,IAAI,gBAAgB;AAClC,MAAM;AACN,KAAK;AACL,IAAI,OAAO,IAAI;AACf;AACA,EAAE,IAAI,OAAO,IAAI,CAAC,EAAE;AACpB,IAAI,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAC3C,IAAI,OAAO,IAAI;AACf;AACA,EAAE,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAClC,EAAE,OAAO,GAAG;AACZ;AACA,IAAI,EAAE;AACN,IAAI,MAAM;AACV,EAAE,OAAO,OAAO,KAAK,WAAW;AAChC,EAAE,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,KAAK,IAAI,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,WAAW;AAC7E,EAAE,OAAO,QAAQ,KAAK,WAAW;AACjC,IAAI,UAAU,GAAG,MAAM,GAAG,cAAc,GAAG,iBAAiB;AAC5D,IAAI,OAAO,GAAG;AACd,EAAE,oBAAoB,EAAE,GAAG;AAC3B,EAAE,oBAAoB,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG;AACjD,EAAE,SAAS,EAAE,GAAG;AAChB,EAAE,2BAA2B,EAAE,GAAG;AAClC,EAAE,iBAAiB,EAAE,GAAG;AACxB,EAAE,UAAU,EAAE,MAAM,CAAC,iBAAiB;AACtC,EAAE,mBAAmB,EAAE,MAAM,CAAC,iBAG9B,CAAC;AACD,IAAI,4BAA4B,GAAG,KAAK;AACrC,IAAC,qBAAqB,GAAG,MAAM,sBAAsB,SAAS,WAAW,CAAC;AAC7E,EAAE,GAAG;AACL,EAAE,WAAW,GAAG,EAAE;AAClB,EAAE,cAAc;AAChB,EAAE,eAAe;AACjB,EAAE,gBAAgB,GAAG,IAAI;AACzB,EAAE,YAAY,GAAG,KAAK;AACtB,EAAE,WAAW,GAAG,MAAM;AACtB,EAAE,YAAY,GAAG,KAAK;AACtB,EAAE,aAAa,GAAG,EAAE;AACpB,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AAC1C,EAAE,IAAI;AACN,EAAE,UAAU;AACZ,EAAE,QAAQ;AACV,EAAE,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE,EAAE;AAC5C,IAAI,KAAK,EAAE;AACX,IAAI,IAAI,CAAC,IAAI,GAAG,GAAG;AACnB,IAAI,IAAI,CAAC,UAAU,GAAG,SAAS;AAC/B,IAAI,IAAI,CAAC,QAAQ,GAAG,OAAO;AAC3B,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AACnC,MAAM,IAAI,CAAC,gBAAgB,GAAG,KAAK;AACnC;AACA,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AACnC,MAAM,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW;AACnD;AACA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB;AACA,EAAE,WAAW,UAAU,GAAG;AAC1B,IAAI,OAAO,CAAC;AACZ;AACA,EAAE,WAAW,IAAI,GAAG;AACpB,IAAI,OAAO,CAAC;AACZ;AACA,EAAE,WAAW,OAAO,GAAG;AACvB,IAAI,OAAO,CAAC;AACZ;AACA,EAAE,WAAW,MAAM,GAAG;AACtB,IAAI,OAAO,CAAC;AACZ;AACA,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,sBAAsB,CAAC,UAAU;AAC5C;AACA,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,OAAO,sBAAsB,CAAC,IAAI;AACtC;AACA,EAAE,IAAI,OAAO,GAAG;AAChB,IAAI,OAAO,sBAAsB,CAAC,OAAO;AACzC;AACA,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,sBAAsB,CAAC,MAAM;AACxC;AACA,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW;AAC5D;AACA,EAAE,IAAI,UAAU,CAAC,KAAK,EAAE;AACxB,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK;AAC5B,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE;AAClB,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,KAAK;AACjC;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,cAAc,GAAG;AACvB,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK;AAC9D,MAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACvC,QAAQ,GAAG,IAAI,OAAO,CAAC,MAAM;AAC7B,OAAO,MAAM,IAAI,OAAO,YAAY,IAAI,EAAE;AAC1C,QAAQ,GAAG,IAAI,OAAO,CAAC,IAAI;AAC3B,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,CAAC,UAAU;AACjC;AACA,MAAM,OAAO,GAAG;AAChB,KAAK,EAAE,CAAC,CAAC;AACT,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC;AAC3D;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE;AAC5C;AACA;AACA;AACA;AACA,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE;AAClB,MAAM,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU;AAChC;AACA,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC;AACzB,QAAQ,sBAAsB,CAAC;AAC/B,QAAQ,sBAAsB,CAAC,UAAU;AACzC;AACA;AACA;AACA;AACA,EAAE,IAAI,GAAG,GAAG;AACZ,IAAI,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE;AACvC;AACA;AACA;AACA;AACA,EAAE,IAAI,eAAe,GAAG;AACxB,IAAI,OAAO,IAAI,CAAC,gBAAgB;AAChC;AACA;AACA;AACA;AACA,EAAE,OAAO,GAAG,IAAI;AAChB;AACA;AACA;AACA,EAAE,OAAO,GAAG,IAAI;AAChB;AACA;AACA;AACA,EAAE,SAAS,GAAG,IAAI;AAClB;AACA;AACA;AACA;AACA,EAAE,MAAM,GAAG,IAAI;AACf;AACA;AACA;AACA;AACA,EAAE,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE;AAC5B,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI;AAC5B,IAAI,IAAI,CAAC,gBAAgB,GAAG,KAAK;AACjC,IAAI,IAAI,CAAC,cAAc,EAAE;AACzB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACnB,MAAM,IAAI,CAAC,MAAM,CAAC,gCAAgC,CAAC;AACnD,MAAM;AACN;AACA,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,EAAE;AAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC;AAC1C,MAAM;AACN;AACA,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE;AAC1B,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI;AAChC,IAAI,IAAI,CAAC,YAAY,GAAG,KAAK;AAC7B,IAAI,IAAI,CAAC,WAAW,GAAG,EAAE;AACzB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,EAAE;AAC1D,MAAM,IAAI,CAAC,QAAQ,EAAE;AACrB,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC;AACpC,MAAM,IAAI,CAAC,QAAQ,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,CAAC,IAAI,EAAE;AACb,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,EAAE;AACvD,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;AAC/B,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACzB,KAAK,MAAM;AACX,MAAM,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,EAAE;AACjE,QAAQ,IAAI,CAAC,QAAQ;AACrB,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,mBAAmB,EAAE;AAC3D,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC;AACpC,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;AACrC;AACA;AACA;AACA,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE;AAClB,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC7B,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;AACxC;AACA;AACA,EAAE,aAAa,GAAG;AAClB,IAAI,MAAM;AACV,MAAM,2BAA2B,GAAG,OAAO,CAAC,2BAA2B;AACvE,MAAM,oBAAoB,GAAG,OAAO,CAAC,oBAAoB;AACzD,MAAM,oBAAoB,GAAG,OAAO,CAAC;AACrC,KAAK,GAAG,IAAI,CAAC,QAAQ;AACrB,IAAI,IAAI,KAAK,GAAG,CAAC;AACjB,IAAI,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;AAC9B,MAAM,KAAK;AACX,QAAQ,oBAAoB;AAC5B,QAAQ,2BAA2B,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AAC7D,MAAM,IAAI,KAAK,GAAG,oBAAoB,EAAE;AACxC,QAAQ,KAAK,GAAG,oBAAoB;AACpC;AACA;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC;AACpC,IAAI,OAAO,KAAK;AAChB;AACA,EAAE,KAAK,GAAG;AACV,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACpC,MAAM,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;AAC/C,KAAK,CAAC;AACN;AACA,EAAE,iBAAiB,CAAC,iBAAiB,EAAE;AACvC,IAAI,IAAI,CAAC,iBAAiB,EAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AACxD,IAAI;AACJ,MAAM,OAAO,iBAAiB,KAAK,QAAQ;AAC3C,MAAM,KAAK,CAAC,OAAO,CAAC,iBAAiB;AACrC,MAAM;AACN,MAAM,OAAO,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC;AAC/C;AACA,IAAI,IAAI,OAAO,iBAAiB,KAAK,UAAU,EAAE;AACjD,MAAM,MAAM,SAAS,GAAG,iBAAiB,EAAE;AAC3C,MAAM,IAAI,CAAC,SAAS,EAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AAClD,MAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACrE,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;AACzC;AACA,MAAM,IAAI,SAAS,CAAC,IAAI,EAAE;AAC1B,QAAQ,OAAO,SAAS;AACxB;AACA;AACA,IAAI,MAAM,KAAK,CAAC,mBAAmB,CAAC;AACpC;AACA,EAAE,WAAW,CAAC,WAAW,EAAE;AAC3B,IAAI,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;AACzC,MAAM,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;AACzC;AACA,IAAI,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;AAC3C,MAAM,MAAM,GAAG,GAAG,WAAW,EAAE;AAC/B,MAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACnC,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;AACnC;AACA,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE;AACpB,QAAQ,OAAO,GAAG;AAClB;AACA;AACA,IAAI,MAAM,KAAK,CAAC,aAAa,CAAC;AAC9B;AACA,EAAE,QAAQ,GAAG;AACb,IAAI,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACrD,MAAM;AACN;AACA,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI;AAC5B,IAAI,MAAM;AACV,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU;AACrC,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAClC,KAAK,GAAG,IAAI,CAAC,QAAQ;AACrB,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,UAAU,EAAE;AACxC,MAAM,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC;AAC5E,MAAM;AACN;AACA,IAAI,IAAI,CAAC,WAAW,EAAE;AACtB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC;AAC5C,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC3B,IAAI,IAAI,CAAC,KAAK;AACd,OAAO,IAAI,CAAC;AACZ,QAAQ,OAAO,CAAC,GAAG,CAAC;AACpB,UAAU,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;AACrC,UAAU,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI;AACxD,SAAS;AACT;AACA,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK;AAClC,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;AAC/B,UAAU,IAAI,CAAC,YAAY,GAAG,KAAK;AACnC,UAAU;AACV;AACA,QAAQ;AACR,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS;AAClC,UAAU,OAAO,SAAS,KAAK,WAAW;AAC1C,UAAU,CAAC;AACX,UAAU;AACV,UAAU,OAAO,CAAC,KAAK,CAAC,CAAC;;AAEzB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC,CAAC;AACF,UAAU,4BAA4B,GAAG,IAAI;AAC7C;AACA,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,SAAS;AACvD,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;AAClD,QAAQ,IAAI,CAAC,GAAG,GAAG,SAAS,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC;AACnE,QAAQ,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW;AAC9C,QAAQ,IAAI,CAAC,YAAY,GAAG,KAAK;AACjC,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,QAAQ,IAAI,CAAC,eAAe,GAAG,UAAU;AACzC,UAAU,MAAM,IAAI,CAAC,cAAc,EAAE;AACrC,UAAU;AACV,SAAS;AACT,OAAO;AACP,OAAO,KAAK,CAAC,CAAC,GAAG,KAAK;AACtB,QAAQ,IAAI,CAAC,YAAY,GAAG,KAAK;AACjC,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;AAC1E,OAAO,CAAC;AACR;AACA,EAAE,cAAc,GAAG;AACnB,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;AAChC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;AACpE;AACA,EAAE,WAAW,CAAC,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE;AAClC,IAAI,IAAI,CAAC,cAAc,EAAE;AACzB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACnB,MAAM;AACN;AACA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC3B,IAAI,IAAI;AACR,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,EAAE;AAC7C,QAAQ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;AACpC;AACA,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAClE,KAAK,CAAC,OAAO,KAAK,EAAE;AACpB;AACA,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;AAC9B,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC;AACxB;AACA,EAAE,WAAW,GAAG,CAAC,KAAK,KAAK;AAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;AAC7B,IAAI,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,QAAQ;AAC3D,IAAI,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;AACtC,IAAI,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC;AACzE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,0BAA0B,CAAC;AAChD,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW;AAC1C,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK;AAC5C,MAAM,IAAI,GAAG;AACb,MAAM,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,KAAK,IAAI,GAAG,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AAClE,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,aAAa,GAAG,EAAE;AAC3B,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACrB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACxB;AACA,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACzC,GAAG;AACH,EAAE,cAAc,GAAG,CAAC,KAAK,KAAK;AAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;AAChC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;AACxB,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC3B;AACA,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACzC,GAAG;AACH,EAAE,YAAY,GAAG,CAAC,KAAK,KAAK;AAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC;AAC7C,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,KAAK,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAC9E,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACzB;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC;AACvC,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACzC,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,GAAG;AACH,EAAE,YAAY,GAAG,CAAC,KAAK,KAAK;AAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;AAC9B,IAAI,IAAI,CAAC,cAAc,EAAE;AACzB,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC/B,MAAM,IAAI,CAAC,QAAQ,EAAE;AACrB;AACA,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACzB;AACA,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACzC,GAAG;AACH,EAAE,gBAAgB,GAAG;AACrB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACnB,MAAM;AACN;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;AAClC,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC;AAC1D,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;AAC5D,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC;AAChE,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;AAC5D;AACA,EAAE,aAAa,GAAG;AAClB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACnB,MAAM;AACN;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;AAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC;AACvD,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;AACzD,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC;AAC7D,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;AACzD;AACA,EAAE,cAAc,GAAG;AACnB,IAAI,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;AACtC,IAAI,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC;AACrC;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index36.js","sources":["../../../node_modules/.pnpm/@signe+reactive@2.3.1/node_modules/@signe/reactive/dist/index.js"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/ArraySubject.ts\nimport { BehaviorSubject } from \"rxjs\";\nvar ArraySubject = class extends BehaviorSubject {\n static {\n __name(this, \"ArraySubject\");\n }\n _items = [];\n constructor(items = []) {\n super({\n type: \"init\",\n items\n });\n this.createProxy(items);\n }\n createProxy(items) {\n this._items = new Proxy(items, {\n get: /* @__PURE__ */ __name((target, prop, receiver) => {\n const origMethod = target[prop];\n if (typeof origMethod === \"function\") {\n return (...args) => {\n let changeType = \"update\";\n let index = void 0;\n let isMutateFn = false;\n let itemsToEmit = [];\n let changeSplice = true;\n switch (prop) {\n case \"push\":\n index = target.length;\n changeType = \"add\";\n isMutateFn = true;\n break;\n case \"pop\":\n index = target.length - 1;\n changeType = \"remove\";\n isMutateFn = true;\n break;\n case \"unshift\":\n index = 0;\n changeType = \"add\";\n isMutateFn = true;\n break;\n case \"shift\":\n index = 0;\n changeType = \"remove\";\n isMutateFn = true;\n break;\n case \"splice\":\n index = args[0];\n const deleteCount = args[1];\n const newItems = args.slice(2);\n itemsToEmit = newItems;\n if (deleteCount > 0 && newItems.length === 0) {\n changeType = \"remove\";\n } else if (deleteCount === 0 && newItems.length > 0) {\n changeType = \"add\";\n } else if (deleteCount === 0 && newItems.length === 0) {\n changeSplice = false;\n } else {\n changeType = \"update\";\n }\n isMutateFn = true;\n break;\n }\n const result = origMethod.apply(target, args);\n if (isMutateFn && changeSplice) {\n if (prop === \"splice\") {\n this.next({\n type: changeType,\n index,\n items: itemsToEmit\n });\n } else {\n this.next({\n type: changeType,\n index,\n items: args\n });\n }\n }\n return result;\n };\n }\n return Reflect.get(target, prop, receiver);\n }, \"get\"),\n set: /* @__PURE__ */ __name((target, prop, value) => {\n const index = !isNaN(Number(prop)) ? Number(prop) : void 0;\n target[prop] = value;\n this.next({\n type: \"update\",\n index,\n items: [\n value\n ]\n });\n return true;\n }, \"set\")\n });\n }\n get items() {\n return this._items;\n }\n set items(newItems) {\n this.createProxy(newItems);\n this.next({\n type: \"reset\",\n items: newItems\n });\n }\n};\nvar isArraySubject = /* @__PURE__ */ __name((value) => {\n return \"_items\" in value;\n}, \"isArraySubject\");\n\n// src/ObjectSubject.ts\nimport { BehaviorSubject as BehaviorSubject2 } from \"rxjs\";\nvar ObjectSubject = class extends BehaviorSubject2 {\n static {\n __name(this, \"ObjectSubject\");\n }\n _obj;\n constructor(obj = {}) {\n super({\n type: \"init\",\n value: obj\n });\n this.createProxy(obj);\n }\n createProxy(obj) {\n this._obj = new Proxy(obj, {\n get: /* @__PURE__ */ __name((target, prop, receiver) => {\n return Reflect.get(target, prop, receiver);\n }, \"get\"),\n set: /* @__PURE__ */ __name((target, prop, value, receiver) => {\n const key = prop;\n const changeType = key in target ? \"update\" : \"add\";\n target[key] = value;\n this.next({\n type: changeType,\n key,\n value\n });\n return true;\n }, \"set\"),\n deleteProperty: /* @__PURE__ */ __name((target, prop) => {\n const key = prop;\n if (key in target) {\n const value = target[key];\n delete target[key];\n this.next({\n type: \"remove\",\n key,\n value\n });\n return true;\n }\n return false;\n }, \"deleteProperty\")\n });\n }\n get obj() {\n return this._obj;\n }\n set obj(newObj) {\n this.createProxy(newObj);\n this.next({\n type: \"reset\",\n value: newObj\n });\n }\n};\nvar isObjectSubject = /* @__PURE__ */ __name((value) => {\n return \"_obj\" in value;\n}, \"isObjectSubject\");\n\n// src/signal.ts\nimport { BehaviorSubject as BehaviorSubject3, combineLatest, filter, finalize, map } from \"rxjs\";\nvar getGlobalReactiveStore = /* @__PURE__ */ __name(() => {\n const globalKey = \"__REACTIVE_STORE__\";\n if (typeof globalThis !== \"undefined\") {\n if (!globalThis[globalKey]) {\n globalThis[globalKey] = {\n currentDependencyTracker: null,\n currentSubscriptionsTracker: null\n };\n }\n return globalThis[globalKey];\n }\n let globalObj;\n if (typeof window !== \"undefined\") {\n globalObj = window;\n } else if (typeof process !== \"undefined\" && process.versions && process.versions.node) {\n globalObj = Function(\"return this\")();\n } else if (typeof self !== \"undefined\") {\n globalObj = self;\n } else {\n console.warn(\"Unable to find global object, using local instance\");\n return {\n currentDependencyTracker: null,\n currentSubscriptionsTracker: null\n };\n }\n if (!globalObj[globalKey]) {\n globalObj[globalKey] = {\n currentDependencyTracker: null,\n currentSubscriptionsTracker: null\n };\n }\n return globalObj[globalKey];\n}, \"getGlobalReactiveStore\");\nvar reactiveStore = getGlobalReactiveStore();\nvar trackDependency = /* @__PURE__ */ __name((signal2) => {\n if (reactiveStore.currentDependencyTracker) {\n reactiveStore.currentDependencyTracker(signal2);\n }\n}, \"trackDependency\");\nfunction signal(defaultValue) {\n let subject;\n if (Array.isArray(defaultValue)) {\n subject = new ArraySubject(defaultValue);\n } else if (typeof defaultValue === \"object\" && defaultValue !== null) {\n subject = new ObjectSubject(defaultValue);\n } else {\n subject = new BehaviorSubject3(defaultValue);\n }\n const getValue = /* @__PURE__ */ __name(() => {\n if (subject instanceof ArraySubject) {\n return subject.items;\n } else if (subject instanceof ObjectSubject) {\n return subject.obj;\n }\n return subject.value;\n }, \"getValue\");\n const fn = /* @__PURE__ */ __name(function() {\n trackDependency(fn);\n return getValue();\n }, \"fn\");\n fn.set = (value) => {\n if (subject instanceof ArraySubject) {\n subject.items = value;\n } else if (subject instanceof ObjectSubject) {\n subject.obj = value;\n } else {\n subject.next(value);\n }\n };\n fn._isFrozen = false;\n fn.freeze = () => {\n fn._isFrozen = true;\n };\n fn.unfreeze = () => {\n fn._isFrozen = false;\n if (subject instanceof ArraySubject) {\n subject.next({\n type: \"init\",\n items: subject.items\n });\n } else if (subject instanceof ObjectSubject) {\n subject.next({\n type: \"init\",\n value: subject.obj\n });\n } else {\n subject.next(subject.value);\n }\n };\n fn.mutate = (mutateFn) => {\n const value = getValue();\n mutateFn(value);\n };\n fn.update = (updateFn) => {\n const updatedValue = updateFn(getValue());\n fn.set(updatedValue);\n };\n fn.observable = subject.asObservable().pipe(filter(() => !fn._isFrozen));\n fn._subject = subject;\n return fn;\n}\n__name(signal, \"signal\");\nfunction isSignal(value) {\n return !!(value && value.observable);\n}\n__name(isSignal, \"isSignal\");\nfunction isComputed(value) {\n return isSignal(value) && !!value.dependencies;\n}\n__name(isComputed, \"isComputed\");\nfunction computed(computeFunction, disposableFn) {\n const dependencies = /* @__PURE__ */ new Set();\n let init = true;\n let lastComputedValue;\n const previousTracker = reactiveStore.currentDependencyTracker;\n reactiveStore.currentDependencyTracker = (signal2) => {\n dependencies.add(signal2);\n };\n lastComputedValue = computeFunction();\n if (computeFunction[\"isEffect\"]) {\n disposableFn = lastComputedValue;\n }\n reactiveStore.currentDependencyTracker = previousTracker;\n const computedObservable = combineLatest([\n ...dependencies\n ].map((signal2) => signal2.observable)).pipe(filter(() => !init), map(() => computeFunction()), finalize(() => disposableFn?.()));\n const fn = /* @__PURE__ */ __name(function() {\n trackDependency(fn);\n return lastComputedValue;\n }, \"fn\");\n fn.observable = computedObservable;\n fn.subscription = computedObservable.subscribe((value) => {\n lastComputedValue = value;\n });\n fn.dependencies = dependencies;\n reactiveStore.currentSubscriptionsTracker?.(fn.subscription);\n init = false;\n return fn;\n}\n__name(computed, \"computed\");\n\n// src/effect.ts\nfunction effect(fn) {\n fn[\"isEffect\"] = true;\n return computed(fn);\n}\n__name(effect, \"effect\");\nexport {\n ArraySubject,\n ObjectSubject,\n computed,\n effect,\n isArraySubject,\n isComputed,\n isObjectSubject,\n isSignal,\n signal\n};\n//# sourceMappingURL=index.js.map"],"names":["BehaviorSubject2","BehaviorSubject3"],"mappings":"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","x_google_ignoreList":[0]}
package/dist/index37.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { useProps, useDefineProps, mount, signal, h, Container, loop, computed } from 'canvasengine';
2
- import component$1 from './index39.js';
2
+ import component$1 from './index38.js';
3
3
  import { RpgClientEngine } from './index2.js';
4
4
  import { inject } from './index6.js';
5
5
 
package/dist/index38.js CHANGED
@@ -1,20 +1,20 @@
1
- import { RpgCommonPlayer } from '@rpgjs/common';
2
- import { trigger, signal } from 'canvasengine';
1
+ import { useProps, useDefineProps, animatedSignal, h, Container, Rect, Text } from 'canvasengine';
3
2
 
4
- class RpgClientObject extends RpgCommonPlayer {
5
- constructor() {
6
- super(...arguments);
7
- this.emitParticleTrigger = trigger();
8
- this.particleName = signal("");
9
- }
10
- flash(color, duration = 100) {
11
- const lastTint = this.tint();
12
- this.tint.set(color);
13
- setTimeout(() => {
14
- this.tint.set(lastTint);
15
- }, duration);
16
- }
17
- }
3
+ function component($$props) {
4
+ useProps($$props);
5
+ const defineProps = useDefineProps($$props);
6
+ var _a = defineProps(), text = _a.text, isSelected = _a.isSelected;
7
+ var alpha = animatedSignal(1, {
8
+ repeatType: "reverse",
9
+ duration: 500,
10
+ repeat: Infinity,
11
+ });
12
+ alpha.set(0.5);
13
+ var height = 40;
14
+ var width = 256;
15
+ let $this = h(Container, null, [h(Rect, { width, height, color: '#595971', alpha, visible: isSelected }), h(Container, { flexDirection: 'row', alignItems: 'center', justifyContent: 'center' }, h(Text, { text, color: '#fff', fontSize: 18, margin: 10 }))]);
16
+ return $this
17
+ }
18
18
 
19
- export { RpgClientObject };
19
+ export { component as default };
20
20
  //# sourceMappingURL=index38.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index38.js","sources":["../src/Game/Object.ts"],"sourcesContent":["import { RpgCommonPlayer } from \"@rpgjs/common\";\nimport { trigger, signal } from \"canvasengine\";\n\nexport abstract class RpgClientObject extends RpgCommonPlayer {\n abstract type: string;\n emitParticleTrigger = trigger()\n particleName = signal('')\n\n flash(color: string, duration: number = 100) {\n const lastTint = this.tint()\n this.tint.set(color);\n setTimeout(() => {\n this.tint.set(lastTint)\n }, duration)\n }\n} "],"names":[],"mappings":";;;AAGO,MAAe,wBAAwB,eAAgB,CAAA;AAAA,EAAvD,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AAEL,IAAA,IAAA,CAAA,mBAAA,GAAsB,OAAQ,EAAA;AAC9B,IAAA,IAAA,CAAA,YAAA,GAAe,OAAO,EAAE,CAAA;AAAA;AAAA,EAExB,KAAA,CAAM,KAAe,EAAA,QAAA,GAAmB,GAAK,EAAA;AAC3C,IAAM,MAAA,QAAA,GAAW,KAAK,IAAK,EAAA;AAC3B,IAAK,IAAA,CAAA,IAAA,CAAK,IAAI,KAAK,CAAA;AACnB,IAAA,UAAA,CAAW,MAAM;AACf,MAAK,IAAA,CAAA,IAAA,CAAK,IAAI,QAAQ,CAAA;AAAA,OACrB,QAAQ,CAAA;AAAA;AAEf;;;;"}
1
+ {"version":3,"file":"index38.js","sources":["../src/components/gui/dialogbox/itemMenu.ce"],"sourcesContent":["<Container>\n <Rect width height color=\"#595971\" alpha visible={isSelected} />\n <Container flexDirection=\"row\" alignItems=\"center\" justifyContent=\"center\">\n <Text text color=\"#fff\" fontSize={18} margin={10} />\n </Container>\n</Container>\n\n<script>\nimport { animatedSignal } from \"canvasengine\";\n\nconst { text, isSelected } = defineProps();\n\nconst alpha = animatedSignal(1, {\n repeatType: \"reverse\",\n duration: 500,\n repeat: Infinity,\n});\n\nalpha.set(0.5);\n\nconst height = 40;\nconst width = 256;\n</script>"],"names":[],"mappings":";;AAQqB,SAAS,SAAS,CAAC,OAAO,EAAE;AACjD,QAAuB,QAAQ,CAAC,OAAO;AACvC,QAAQ,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO;AAClD,QAAQ,IAAI,EAAE,GAAG,WAAW,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,EAAE,CAAC,UAAU;AAC1E,IAAI,KAAK,GAAG,cAAc,CAAC,CAAC,EAAE;AAC9B,IAAI,UAAU,EAAE,SAAS;AACzB,IAAI,QAAQ,EAAE,GAAG;AACjB,IAAI,MAAM,EAAE,QAAQ;AACpB,CAAC,CAAC;AACF,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AACd,IAAI,MAAM,GAAG,EAAE;AACf,IAAI,KAAK,GAAG,GAAG;AACf,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACrQ,QAAQ,OAAO;AACf;;;;"}
package/dist/index39.js CHANGED
@@ -1,20 +1,20 @@
1
- import { useProps, useDefineProps, animatedSignal, h, Container, Rect, Text } from 'canvasengine';
1
+ import { RpgCommonPlayer } from '@rpgjs/common';
2
+ import { trigger, signal } from 'canvasengine';
2
3
 
3
- function component($$props) {
4
- useProps($$props);
5
- const defineProps = useDefineProps($$props);
6
- var _a = defineProps(), text = _a.text, isSelected = _a.isSelected;
7
- var alpha = animatedSignal(1, {
8
- repeatType: "reverse",
9
- duration: 500,
10
- repeat: Infinity,
11
- });
12
- alpha.set(0.5);
13
- var height = 40;
14
- var width = 256;
15
- let $this = h(Container, null, [h(Rect, { width, height, color: '#595971', alpha, visible: isSelected }), h(Container, { flexDirection: 'row', alignItems: 'center', justifyContent: 'center' }, h(Text, { text, color: '#fff', fontSize: 18, margin: 10 }))]);
16
- return $this
17
- }
4
+ class RpgClientObject extends RpgCommonPlayer {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.emitParticleTrigger = trigger();
8
+ this.particleName = signal("");
9
+ }
10
+ flash(color, duration = 100) {
11
+ const lastTint = this.tint();
12
+ this.tint.set(color);
13
+ setTimeout(() => {
14
+ this.tint.set(lastTint);
15
+ }, duration);
16
+ }
17
+ }
18
18
 
19
- export { component as default };
19
+ export { RpgClientObject };
20
20
  //# sourceMappingURL=index39.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index39.js","sources":["../src/components/gui/dialogbox/itemMenu.ce"],"sourcesContent":["<Container>\n <Rect width height color=\"#595971\" alpha visible={isSelected} />\n <Container flexDirection=\"row\" alignItems=\"center\" justifyContent=\"center\">\n <Text text color=\"#fff\" fontSize={18} margin={10} />\n </Container>\n</Container>\n\n<script>\nimport { animatedSignal } from \"canvasengine\";\n\nconst { text, isSelected } = defineProps();\n\nconst alpha = animatedSignal(1, {\n repeatType: \"reverse\",\n duration: 500,\n repeat: Infinity,\n});\n\nalpha.set(0.5);\n\nconst height = 40;\nconst width = 256;\n</script>"],"names":[],"mappings":";;AAQqB,SAAS,SAAS,CAAC,OAAO,EAAE;AACjD,QAAuB,QAAQ,CAAC,OAAO;AACvC,QAAQ,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO;AAClD,QAAQ,IAAI,EAAE,GAAG,WAAW,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,EAAE,CAAC,UAAU;AAC1E,IAAI,KAAK,GAAG,cAAc,CAAC,CAAC,EAAE;AAC9B,IAAI,UAAU,EAAE,SAAS;AACzB,IAAI,QAAQ,EAAE,GAAG;AACjB,IAAI,MAAM,EAAE,QAAQ;AACpB,CAAC,CAAC;AACF,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AACd,IAAI,MAAM,GAAG,EAAE;AACf,IAAI,KAAK,GAAG,GAAG;AACf,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACrQ,QAAQ,OAAO;AACf;;;;"}
1
+ {"version":3,"file":"index39.js","sources":["../src/Game/Object.ts"],"sourcesContent":["import { RpgCommonPlayer } from \"@rpgjs/common\";\nimport { trigger, signal } from \"canvasengine\";\n\nexport abstract class RpgClientObject extends RpgCommonPlayer {\n abstract type: string;\n emitParticleTrigger = trigger()\n particleName = signal('')\n\n flash(color: string, duration: number = 100) {\n const lastTint = this.tint()\n this.tint.set(color);\n setTimeout(() => {\n this.tint.set(lastTint)\n }, duration)\n }\n} "],"names":[],"mappings":";;;AAGO,MAAe,wBAAwB,eAAgB,CAAA;AAAA,EAAvD,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AAEL,IAAA,IAAA,CAAA,mBAAA,GAAsB,OAAQ,EAAA;AAC9B,IAAA,IAAA,CAAA,YAAA,GAAe,OAAO,EAAE,CAAA;AAAA;AAAA,EAExB,KAAA,CAAM,KAAe,EAAA,QAAA,GAAmB,GAAK,EAAA;AAC3C,IAAM,MAAA,QAAA,GAAW,KAAK,IAAK,EAAA;AAC3B,IAAK,IAAA,CAAA,IAAA,CAAK,IAAI,KAAK,CAAA;AACnB,IAAA,UAAA,CAAW,MAAM;AACf,MAAK,IAAA,CAAA,IAAA,CAAK,IAAI,QAAQ,CAAA;AAAA,OACrB,QAAQ,CAAA;AAAA;AAEf;;;;"}
package/dist/index8.js CHANGED
@@ -61,6 +61,24 @@ function provideClientModules(modules) {
61
61
  }
62
62
  };
63
63
  }
64
+ if (module.sprite) {
65
+ const sprite = { ...module.sprite };
66
+ module.sprite = {
67
+ ...sprite,
68
+ load: (engine) => {
69
+ if (sprite.componentsBehind) {
70
+ sprite.componentsBehind.forEach((component) => {
71
+ engine.addSpriteComponentBehind(component);
72
+ });
73
+ }
74
+ if (sprite.componentsInFront) {
75
+ sprite.componentsInFront.forEach((component) => {
76
+ engine.addSpriteComponentInFront(component);
77
+ });
78
+ }
79
+ }
80
+ };
81
+ }
64
82
  return module;
65
83
  });
66
84
  return modules2;
@@ -1 +1 @@
1
- {"version":3,"file":"index8.js","sources":["../src/module.ts"],"sourcesContent":["import { findModules, provideModules } from \"@rpgjs/common\";\nimport { RpgClientEngine } from \"./RpgClientEngine\";\nimport { RpgClient } from \"./RpgClient\";\nimport { inject } from \"@signe/di\";\nimport { RpgGui } from \"./Gui/Gui\";\n\nexport function provideClientModules(modules: RpgClient[]) {\n return provideModules(modules, \"client\", (modules, context) => {\n const mainModuleClient = findModules(context, 'Client')\n modules = [...mainModuleClient, ...modules]\n modules = modules.map((module) => {\n if ('client' in module) {\n module = module.client as any;\n }\n if (module.spritesheets) {\n const spritesheets = [...module.spritesheets];\n module.spritesheets = {\n load: (engine: RpgClientEngine) => {\n spritesheets.forEach((spritesheet) => {\n engine.addSpriteSheet(spritesheet);\n });\n },\n };\n }\n if (module.sounds) {\n const sounds = [...module.sounds];\n module.sounds = {\n load: (engine: RpgClientEngine) => {\n sounds.forEach((sound) => {\n engine.addSound(sound);\n });\n },\n };\n }\n if (module.gui) {\n const gui = [...module.gui];\n module.gui = {\n load: (engine: RpgClientEngine) => {\n const guiService = inject(engine.context, RpgGui);\n gui.forEach((gui) => {\n guiService.add(gui);\n });\n },\n };\n }\n if (module.effects) {\n const effects = [...module.effects];\n module.effects = {\n load: (engine: RpgClientEngine) => {\n effects.forEach((effect) => {\n engine.addEffect(effect);\n });\n },\n };\n }\n if (module.particles) {\n const particles = [...module.particles];\n module.particles = {\n load: (engine: RpgClientEngine) => {\n particles.forEach((particle) => {\n engine.addParticle(particle);\n });\n },\n };\n }\n return module;\n });\n return modules\n });\n}\n\nexport const GlobalConfigToken = \"GlobalConfigToken\";\n\nexport function provideGlobalConfig(config: any) {\n return {\n provide: GlobalConfigToken,\n useValue: config ?? {},\n };\n}\n\nexport function provideClientGlobalConfig(config: any = {}) {\n if (!config.keyboardControls) {\n config.keyboardControls = {\n up: 'up',\n down: 'down',\n left: 'left',\n right: 'right',\n action: 'space'\n }\n }\n return provideGlobalConfig(config)\n}\n\n"],"names":["modules","gui"],"mappings":"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"}
1
+ {"version":3,"file":"index8.js","sources":["../src/module.ts"],"sourcesContent":["import { findModules, provideModules } from \"@rpgjs/common\";\nimport { RpgClientEngine } from \"./RpgClientEngine\";\nimport { RpgClient } from \"./RpgClient\";\nimport { inject } from \"@signe/di\";\nimport { RpgGui } from \"./Gui/Gui\";\n\nexport function provideClientModules(modules: RpgClient[]) {\n return provideModules(modules, \"client\", (modules, context) => {\n const mainModuleClient = findModules(context, 'Client')\n modules = [...mainModuleClient, ...modules]\n modules = modules.map((module) => {\n if ('client' in module) {\n module = module.client as any;\n }\n if (module.spritesheets) {\n const spritesheets = [...module.spritesheets];\n module.spritesheets = {\n load: (engine: RpgClientEngine) => {\n spritesheets.forEach((spritesheet) => {\n engine.addSpriteSheet(spritesheet);\n });\n },\n };\n }\n if (module.sounds) {\n const sounds = [...module.sounds];\n module.sounds = {\n load: (engine: RpgClientEngine) => {\n sounds.forEach((sound) => {\n engine.addSound(sound);\n });\n },\n };\n }\n if (module.gui) {\n const gui = [...module.gui];\n module.gui = {\n load: (engine: RpgClientEngine) => {\n const guiService = inject(engine.context, RpgGui);\n gui.forEach((gui) => {\n guiService.add(gui);\n });\n },\n };\n }\n if (module.effects) {\n const effects = [...module.effects];\n module.effects = {\n load: (engine: RpgClientEngine) => {\n effects.forEach((effect) => {\n engine.addEffect(effect);\n });\n },\n };\n }\n if (module.particles) {\n const particles = [...module.particles];\n module.particles = {\n load: (engine: RpgClientEngine) => {\n particles.forEach((particle) => {\n engine.addParticle(particle);\n });\n },\n };\n }\n if (module.sprite) {\n const sprite = {...module.sprite};\n module.sprite = {\n ...sprite,\n load: (engine: RpgClientEngine) => {\n if (sprite.componentsBehind) {\n sprite.componentsBehind.forEach((component) => {\n engine.addSpriteComponentBehind(component);\n });\n }\n if (sprite.componentsInFront) {\n sprite.componentsInFront.forEach((component) => {\n engine.addSpriteComponentInFront(component);\n });\n }\n },\n };\n }\n return module;\n });\n return modules\n });\n}\n\nexport const GlobalConfigToken = \"GlobalConfigToken\";\n\nexport function provideGlobalConfig(config: any) {\n return {\n provide: GlobalConfigToken,\n useValue: config ?? {},\n };\n}\n\nexport function provideClientGlobalConfig(config: any = {}) {\n if (!config.keyboardControls) {\n config.keyboardControls = {\n up: 'up',\n down: 'down',\n left: 'left',\n right: 'right',\n action: 'space'\n }\n }\n return provideGlobalConfig(config)\n}\n\n"],"names":["modules","gui"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rpgjs/client",
3
- "version": "5.0.0-alpha.8",
3
+ "version": "5.0.0-alpha.9",
4
4
  "description": "RPGJS is a framework for creating RPG/MMORPG games",
5
5
  "main": "dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -22,7 +22,7 @@
22
22
  "pixi.js": "^8.9.2"
23
23
  },
24
24
  "dependencies": {
25
- "@rpgjs/common": "5.0.0-alpha.8",
25
+ "@rpgjs/common": "5.0.0-alpha.9",
26
26
  "@signe/di": "^2.3.3",
27
27
  "@signe/room": "^2.3.3",
28
28
  "@signe/sync": "^2.3.3",
package/src/RpgClient.ts CHANGED
@@ -1,9 +1,10 @@
1
+ import { ComponentFunction } from 'canvasengine'
1
2
  import { RpgClientEngine } from './RpgClientEngine'
2
- import { Loader } from 'pixi.js'
3
+ import { Loader, Container } from 'pixi.js'
3
4
 
4
5
  type RpgClass<T = any> = new (...args: any[]) => T
5
- type RpgComponent = any
6
- type SceneMap = any
6
+ type RpgComponent = Container
7
+ type SceneMap = Container
7
8
 
8
9
  export interface RpgClientEngineHooks {
9
10
  /**
@@ -65,6 +66,36 @@ export interface RpgClientEngineHooks {
65
66
  }
66
67
 
67
68
  export interface RpgSpriteHooks {
69
+ /**
70
+ * Array of components to render behind the sprite
71
+ * These components will be displayed with a lower z-index than the sprite itself
72
+ *
73
+ * @prop { ComponentFunction[] } [componentsBehind]
74
+ * @memberof RpgSpriteHooks
75
+ * @example
76
+ * ```ts
77
+ * const sprite: RpgSpriteHooks = {
78
+ * componentsBehind: [ShadowComponent, AuraComponent]
79
+ * }
80
+ * ```
81
+ */
82
+ componentsBehind?: ComponentFunction[]
83
+
84
+ /**
85
+ * Array of components to render in front of the sprite
86
+ * These components will be displayed with a higher z-index than the sprite itself
87
+ *
88
+ * @prop { ComponentFunction[] } [componentsInFront]
89
+ * @memberof RpgSpriteHooks
90
+ * @example
91
+ * ```ts
92
+ * const sprite: RpgSpriteHooks = {
93
+ * componentsInFront: [HealthBarComponent, StatusEffectComponent]
94
+ * }
95
+ * ```
96
+ */
97
+ componentsInFront?: ComponentFunction[]
98
+
68
99
  /**
69
100
  * As soon as the sprite is initialized
70
101
  *
@@ -178,14 +209,13 @@ export interface RpgClient {
178
209
  * @example
179
210
  *
180
211
  * ```ts
181
- * import { RpgClient, RpgModule } from '@rpgjs/client'
212
+ * import { RpgClient, defineModule } from '@rpgjs/client'
182
213
  *
183
- * @RpgModule<RpgClient>({
214
+ * defineModule<RpgClient>({
184
215
  * hooks: {
185
216
  * player: ['onAuth']
186
217
  * }
187
218
  * })
188
- * class RpgClientEngine { }
189
219
  * ```
190
220
  *
191
221
  * Emit the hook:
@@ -224,7 +254,7 @@ export interface RpgClient {
224
254
  * Object containing the hooks concerning the engine
225
255
  *
226
256
  * ```ts
227
- * import { RpgClientEngine, RpgClientEngineHooks, RpgModule, RpgClient } from '@rpgjs/client'
257
+ * import { RpgClientEngine, RpgClientEngineHooks, defineModule, RpgClient } from '@rpgjs/client'
228
258
  *
229
259
  * const engine: RpgClientEngineHooks = {
230
260
  * onConnected(engine: RpgClientEngine) {
@@ -232,10 +262,9 @@ export interface RpgClient {
232
262
  * }
233
263
  * }
234
264
  *
235
- * @RpgModule<RpgClient>({
265
+ * defineModule<RpgClient>({
236
266
  * engine
237
267
  * })
238
- * class RpgClientModule {}
239
268
  * ```
240
269
  *
241
270
  * @prop {RpgClientEngineHooks} [engine]
@@ -245,29 +274,32 @@ export interface RpgClient {
245
274
 
246
275
  /**
247
276
  * Array containing the list of spritesheets
248
- * An element contains a class with the `@Spritesheet` decorator
277
+ * Each element is a simple object containing spritesheet definitions
249
278
  *
250
279
  * ```ts
251
- * import { Spritesheet, Animation, Direction, RpgClient, RpgModule } from '@rpgjs/client'
252
- *
253
- * @Spritesheet({
254
- * id: 'chest',
255
- * image: require('./assets/chest.png'),
256
- * // other options
257
- * })
258
- * class Chest { }
280
+ * import { defineModule, RpgClient } from '@rpgjs/client'
259
281
  *
260
- * @RpgModule<RpgClient>({
282
+ * defineModule<RpgClient>({
261
283
  * spritesheets: [
262
- * Chest
284
+ * {
285
+ * id: 'chest',
286
+ * image: require('./assets/chest.png'),
287
+ * framesWidth: 32,
288
+ * framesHeight: 32,
289
+ * animations: {
290
+ * default: {
291
+ * frames: [0, 1, 2],
292
+ * duration: 1000
293
+ * }
294
+ * }
295
+ * }
263
296
  * ]
264
297
  * })
265
- * class RpgClientEngine {}
266
298
  * ```
267
299
  *
268
300
  * [Guide: Create Sprite](/guide/create-sprite.html)
269
301
  *
270
- * @prop {Array<Class>} [spritesheets]
302
+ * @prop {Array<Object>} [spritesheets]
271
303
  * @memberof RpgClient
272
304
  * */
273
305
  spritesheets?: any[],
@@ -275,72 +307,49 @@ export interface RpgClient {
275
307
  /**
276
308
  * Array containing the list of VueJS components
277
309
  *
278
- * ```ts
279
- * import { RpgClient, RpgModule } from '@rpgjs/client'
280
- *
281
- * const component = {
282
- * name: 'my-gui',
283
- * template: `
284
- * <div>
285
- * Component
286
- * </div>
287
- * `
288
- * }
289
- *
290
- * @RpgModule<RpgClient>({
291
- * gui: [
292
- * component
293
- * ]
294
- * })
295
- * class RpgClientEngine {}
296
- * ```
297
310
  *
298
311
  * [Guide: Create GUI](/guide/create-gui.html)
299
312
  *
300
- * @prop {Array<Component of VueJS>} [gui]
313
+ * @prop {Array<Component of CanvasEngine>} [gui]
301
314
  * @memberof RpgClient
302
315
  * */
303
- gui?: any[],
316
+ gui?: ComponentFunction[],
304
317
 
305
318
  /**
306
319
  * Array containing the list of sounds
307
- * An element contains a class with the `@Sound` decorator
320
+ * Each element is a simple object containing sound definitions
308
321
  *
309
322
  * ```ts
310
- * import { Sound, RpgModule, RpgClient } from '@rpgjs/client'
311
- *
312
- * @Sound({
313
- * sounds: {
314
- * town: require('./assets/Town_Theme.ogg')
315
- * }
316
- * })
317
- * class Sounds {}
318
- *
319
- * @RpgModule<RpgClient>({
320
- * sounds: [ Sounds ]
323
+ * import { defineModule, RpgClient } from '@rpgjs/client'
324
+ *
325
+ * defineModule<RpgClient>({
326
+ * sounds: [
327
+ * {
328
+ * town: require('./assets/Town_Theme.ogg'),
329
+ * battle: require('./assets/Battle_Theme.ogg')
330
+ * }
331
+ * ]
321
332
  * })
322
- * class RpgClientEngine {}
323
333
  * ```
324
334
  *
325
- * @prop {Array<Class>} [sounds]
335
+ * @prop {Array<Object>} [sounds]
326
336
  * @memberof RpgClient
327
337
  * */
328
- sounds?: RpgClass[],
338
+ sounds?: any[],
329
339
 
330
340
  /**
331
341
  * Give the `RpgSprite` class. A Sprite represents a player or an event
332
342
  *
333
343
  * ```ts
334
- * import { RpgSprite, RpgSpriteHooks, RpgClient, RpgModule } from '@rpgjs/client'
344
+ * import { RpgSprite, RpgSpriteHooks, RpgClient, defineModule } from '@rpgjs/client'
335
345
  *
336
346
  * export const sprite: RpgSpriteHooks = {
337
347
  * onInit(sprite: RpgSprite) {}
338
348
  * }
339
349
  *
340
- * @RpgModule<RpgClient>({
350
+ * defineModule<RpgClient>({
341
351
  * sprite
342
352
  * })
343
- * class RpgClientEngine {}
344
353
  * ```
345
354
  *
346
355
  * @prop {RpgSpriteHooks} [sprite]
@@ -352,19 +361,18 @@ export interface RpgClient {
352
361
  * Reference the scenes of the game. Here you can put your own class that inherits RpgSceneMap
353
362
  *
354
363
  * ```ts
355
- * import { RpgSceneMapHooks, RpgClient, RpgModule } from '@rpgjs/client'
364
+ * import { RpgSceneMapHooks, RpgClient, defineModule } from '@rpgjs/client'
356
365
  *
357
366
  * export const sceneMap: RpgSceneMapHooks = {
358
367
  *
359
368
  * }
360
369
  *
361
- * @RpgModule<RpgClient>({
370
+ * defineModule<RpgClient>({
362
371
  * scenes: {
363
372
  * // If you put the RpgSceneMap scene, Thhe key is called mandatory `map`
364
373
  * map: sceneMap
365
374
  * }
366
375
  * })
367
- * class RpgClientEngine {}
368
376
  * ```
369
377
  *
370
378
  * @prop { [sceneName: string]: RpgSceneMapHooks } [scenes]
@@ -376,6 +384,6 @@ export interface RpgClient {
376
384
 
377
385
  effects?: {
378
386
  id: string,
379
- component: any
387
+ component: ComponentFunction
380
388
  }[]
381
389
  }