@rpgjs/client 5.0.0-beta.2 → 5.0.0-beta.3

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 (75) hide show
  1. package/dist/Game/Map.js +2 -2
  2. package/dist/Game/Object.js.map +1 -1
  3. package/dist/Gui/Gui.js.map +1 -1
  4. package/dist/Gui/NotificationManager.js.map +1 -1
  5. package/dist/RpgClientEngine.js +2 -1
  6. package/dist/RpgClientEngine.js.map +1 -1
  7. package/dist/Sound.js.map +1 -1
  8. package/dist/_virtual/{_@oxc-project_runtime@0.122.0 → _@oxc-project_runtime@0.127.0}/helpers/decorate.js +1 -1
  9. package/dist/_virtual/{_@oxc-project_runtime@0.122.0 → _@oxc-project_runtime@0.127.0}/helpers/decorateMetadata.js +1 -1
  10. package/dist/components/animations/animation.ce.js +2 -4
  11. package/dist/components/animations/animation.ce.js.map +1 -1
  12. package/dist/components/animations/hit.ce.js +17 -24
  13. package/dist/components/animations/hit.ce.js.map +1 -1
  14. package/dist/components/character.ce.js +75 -222
  15. package/dist/components/character.ce.js.map +1 -1
  16. package/dist/components/dynamics/text.ce.js +14 -25
  17. package/dist/components/dynamics/text.ce.js.map +1 -1
  18. package/dist/components/gui/box.ce.js +4 -7
  19. package/dist/components/gui/box.ce.js.map +1 -1
  20. package/dist/components/gui/dialogbox/index.ce.js +37 -54
  21. package/dist/components/gui/dialogbox/index.ce.js.map +1 -1
  22. package/dist/components/gui/gameover.ce.js +36 -61
  23. package/dist/components/gui/gameover.ce.js.map +1 -1
  24. package/dist/components/gui/hud/hud.ce.js +18 -28
  25. package/dist/components/gui/hud/hud.ce.js.map +1 -1
  26. package/dist/components/gui/menu/equip-menu.ce.js +108 -163
  27. package/dist/components/gui/menu/equip-menu.ce.js.map +1 -1
  28. package/dist/components/gui/menu/exit-menu.ce.js +4 -4
  29. package/dist/components/gui/menu/exit-menu.ce.js.map +1 -1
  30. package/dist/components/gui/menu/items-menu.ce.js +47 -66
  31. package/dist/components/gui/menu/items-menu.ce.js.map +1 -1
  32. package/dist/components/gui/menu/main-menu.ce.js +58 -77
  33. package/dist/components/gui/menu/main-menu.ce.js.map +1 -1
  34. package/dist/components/gui/menu/options-menu.ce.js +3 -3
  35. package/dist/components/gui/menu/options-menu.ce.js.map +1 -1
  36. package/dist/components/gui/menu/skills-menu.ce.js +10 -16
  37. package/dist/components/gui/menu/skills-menu.ce.js.map +1 -1
  38. package/dist/components/gui/mobile/mobile.ce.js +3 -3
  39. package/dist/components/gui/mobile/mobile.ce.js.map +1 -1
  40. package/dist/components/gui/notification/notification.ce.js +13 -19
  41. package/dist/components/gui/notification/notification.ce.js.map +1 -1
  42. package/dist/components/gui/save-load.ce.js +68 -247
  43. package/dist/components/gui/save-load.ce.js.map +1 -1
  44. package/dist/components/gui/shop/shop.ce.js +84 -123
  45. package/dist/components/gui/shop/shop.ce.js.map +1 -1
  46. package/dist/components/gui/title-screen.ce.js +38 -65
  47. package/dist/components/gui/title-screen.ce.js.map +1 -1
  48. package/dist/components/prebuilt/hp-bar.ce.js +39 -43
  49. package/dist/components/prebuilt/hp-bar.ce.js.map +1 -1
  50. package/dist/components/prebuilt/light-halo.ce.js +33 -58
  51. package/dist/components/prebuilt/light-halo.ce.js.map +1 -1
  52. package/dist/components/scenes/canvas.ce.js +11 -19
  53. package/dist/components/scenes/canvas.ce.js.map +1 -1
  54. package/dist/components/scenes/draw-map.ce.js +20 -25
  55. package/dist/components/scenes/draw-map.ce.js.map +1 -1
  56. package/dist/components/scenes/event-layer.ce.js +4 -4
  57. package/dist/components/scenes/event-layer.ce.js.map +1 -1
  58. package/dist/core/setup.js.map +1 -1
  59. package/dist/module.js.map +1 -1
  60. package/dist/node_modules/.pnpm/@signe_di@2.9.0/node_modules/@signe/di/dist/index.js.map +1 -1
  61. package/dist/node_modules/.pnpm/@signe_reactive@2.9.0/node_modules/@signe/reactive/dist/index.js +1 -1
  62. package/dist/node_modules/.pnpm/@signe_reactive@2.9.0/node_modules/@signe/reactive/dist/index.js.map +1 -1
  63. package/dist/node_modules/.pnpm/@signe_room@2.9.0/node_modules/@signe/room/dist/index.js +1 -1
  64. package/dist/node_modules/.pnpm/@signe_room@2.9.0/node_modules/@signe/room/dist/index.js.map +1 -1
  65. package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/client/index.js.map +1 -1
  66. package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/index.js.map +1 -1
  67. package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-S74YV6PU.js.map +1 -1
  68. package/dist/node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/index.js +27 -27
  69. package/dist/node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/index.js.map +1 -1
  70. package/dist/services/keyboardControls.js.map +1 -1
  71. package/dist/services/mmorpg.js +2 -1
  72. package/dist/services/mmorpg.js.map +1 -1
  73. package/package.json +7 -7
  74. package/dist/node_modules/.pnpm/@signe_reactive@2.8.3/node_modules/@signe/reactive/dist/index.js +0 -457
  75. package/dist/node_modules/.pnpm/@signe_reactive@2.8.3/node_modules/@signe/reactive/dist/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../../../../../../../../node_modules/.pnpm/@signe+sync@2.9.0/node_modules/@signe/sync/dist/client/index.js"],"sourcesContent":["import {\n __name\n} from \"../chunk-7QVYU63E.js\";\n\n// src/client/index.ts\nimport { load } from \"@signe/sync\";\nimport PartySocket from \"partysocket\";\nfunction createConnection(options, roomInstance) {\n const conn = new PartySocket(options);\n conn.addEventListener(\"message\", (event) => {\n const object = JSON.parse(event.data);\n switch (object.type) {\n case \"sync\":\n load(roomInstance, object.value, true);\n break;\n }\n });\n return {\n emit: /* @__PURE__ */ __name((key, value) => {\n conn.send(JSON.stringify({\n action: key,\n value\n }));\n }, \"emit\"),\n on: /* @__PURE__ */ __name((key, cb) => {\n conn.addEventListener(\"message\", (event) => {\n const object = JSON.parse(event.data);\n if (object.type === key) {\n cb(object.value);\n }\n });\n }, \"on\"),\n off: /* @__PURE__ */ __name((key, cb) => {\n conn.removeEventListener(\"message\", (event) => {\n const object = JSON.parse(event.data);\n if (object.type === key) {\n cb(object.value);\n }\n });\n }, \"off\"),\n close: /* @__PURE__ */ __name(() => conn.close(), \"close\"),\n conn\n };\n}\n__name(createConnection, \"createConnection\");\nasync function connectionRoom(options, roomInstance) {\n return createConnection(options, roomInstance);\n}\n__name(connectionRoom, \"connectionRoom\");\nasync function connectionWorld(options, roomInstance) {\n const shardInfo = await getOptimalShard(options);\n const result = createConnection({\n ...options,\n party: \"shard\",\n room: shardInfo.url\n }, roomInstance);\n return {\n ...result,\n shardInfo\n };\n}\n__name(connectionWorld, \"connectionWorld\");\nasync function getOptimalShard(worldOptions) {\n const {\n host,\n room,\n worldId = \"world-default\",\n retryCount = 3,\n retryDelay = 1e3,\n autoCreate = true\n // Default to true for auto-creation\n } = worldOptions;\n let attempts = 0;\n const url = new URL(`${host}/parties/world/${encodeURIComponent(worldId)}/connect`);\n const requestUrl = url.toString();\n while (attempts < retryCount) {\n try {\n const response = await fetch(requestUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n roomId: room,\n autoCreate\n })\n });\n if (!response.ok) {\n const errorData = await response.json().catch(() => ({\n error: \"Unknown error\"\n }));\n throw new Error(`World service returned ${response.status}: ${errorData.error || \"Unknown error\"}`);\n }\n const data = await response.json();\n if (!data.url || !data.shardId) {\n throw new Error(\"Invalid response from World service: missing url or shardId\");\n }\n return {\n shardId: data.shardId,\n url: data.url\n };\n } catch (error) {\n attempts++;\n if (attempts >= retryCount) {\n throw error;\n }\n console.warn(`Failed to get shard (attempt ${attempts}/${retryCount}). Retrying in ${retryDelay}ms...`);\n await new Promise((resolve) => setTimeout(resolve, retryDelay));\n }\n }\n throw new Error(\"Failed to get shard after all retry attempts\");\n}\n__name(getOptimalShard, \"getOptimalShard\");\nexport {\n PartySocket,\n connectionRoom,\n connectionWorld\n};\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0],"mappings":";;;;;AAOA,SAAS,iBAAiB,SAAS,cAAc;CAC/C,MAAM,OAAO,IAAI,YAAY,QAAQ;AACrC,MAAK,iBAAiB,YAAY,UAAU;EAC1C,MAAM,SAAS,KAAK,MAAM,MAAM,KAAK;AACrC,UAAQ,OAAO,MAAf;GACE,KAAK;AACH,SAAK,cAAc,OAAO,OAAO,KAAK;AACtC;;GAEJ;AACF,QAAO;EACL,MAAsB,wBAAQ,KAAK,UAAU;AAC3C,QAAK,KAAK,KAAK,UAAU;IACvB,QAAQ;IACR;IACD,CAAC,CAAC;KACF,OAAO;EACV,IAAoB,wBAAQ,KAAK,OAAO;AACtC,QAAK,iBAAiB,YAAY,UAAU;IAC1C,MAAM,SAAS,KAAK,MAAM,MAAM,KAAK;AACrC,QAAI,OAAO,SAAS,IAClB,IAAG,OAAO,MAAM;KAElB;KACD,KAAK;EACR,KAAqB,wBAAQ,KAAK,OAAO;AACvC,QAAK,oBAAoB,YAAY,UAAU;IAC7C,MAAM,SAAS,KAAK,MAAM,MAAM,KAAK;AACrC,QAAI,OAAO,SAAS,IAClB,IAAG,OAAO,MAAM;KAElB;KACD,MAAM;EACT,OAAuB,6BAAa,KAAK,OAAO,EAAE,QAAQ;EAC1D;EACD;;AAEH,OAAO,kBAAkB,mBAAmB;AAC5C,eAAe,eAAe,SAAS,cAAc;AACnD,QAAO,iBAAiB,SAAS,aAAa;;AAEhD,OAAO,gBAAgB,iBAAiB;AACxC,eAAe,gBAAgB,SAAS,cAAc;CACpD,MAAM,YAAY,MAAM,gBAAgB,QAAQ;AAMhD,QAAO;EACL,GANa,iBAAiB;GAC9B,GAAG;GACH,OAAO;GACP,MAAM,UAAU;GACjB,EAAE,aAAa;EAGd;EACD;;AAEH,OAAO,iBAAiB,kBAAkB;AAC1C,eAAe,gBAAgB,cAAc;CAC3C,MAAM,EACJ,MACA,MACA,UAAU,iBACV,aAAa,GACb,aAAa,KACb,aAAa,SAEX;CACJ,IAAI,WAAW;CAEf,MAAM,aADM,IAAI,IAAI,GAAG,KAAK,iBAAiB,mBAAmB,QAAQ,CAAC,UAAU,CAC5D,UAAU;AACjC,QAAO,WAAW,WAChB,KAAI;EACF,MAAM,WAAW,MAAM,MAAM,YAAY;GACvC,QAAQ;GACR,SAAS,EACP,gBAAgB,oBACjB;GACD,MAAM,KAAK,UAAU;IACnB,QAAQ;IACR;IACD,CAAC;GACH,CAAC;AACF,MAAI,CAAC,SAAS,IAAI;GAChB,MAAM,YAAY,MAAM,SAAS,MAAM,CAAC,aAAa,EACnD,OAAO,iBACR,EAAE;AACH,SAAM,IAAI,MAAM,0BAA0B,SAAS,OAAO,IAAI,UAAU,SAAS,kBAAkB;;EAErG,MAAM,OAAO,MAAM,SAAS,MAAM;AAClC,MAAI,CAAC,KAAK,OAAO,CAAC,KAAK,QACrB,OAAM,IAAI,MAAM,8DAA8D;AAEhF,SAAO;GACL,SAAS,KAAK;GACd,KAAK,KAAK;GACX;UACM,OAAO;AACd;AACA,MAAI,YAAY,WACd,OAAM;AAER,UAAQ,KAAK,gCAAgC,SAAS,GAAG,WAAW,iBAAiB,WAAW,OAAO;AACvG,QAAM,IAAI,SAAS,YAAY,WAAW,SAAS,WAAW,CAAC;;AAGnE,OAAM,IAAI,MAAM,+CAA+C;;AAEjE,OAAO,iBAAiB,kBAAkB"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../../../../../../../node_modules/.pnpm/@signe+sync@2.9.0/node_modules/@signe/sync/dist/client/index.js"],"sourcesContent":["import {\n __name\n} from \"../chunk-7QVYU63E.js\";\n\n// src/client/index.ts\nimport { load } from \"@signe/sync\";\nimport PartySocket from \"partysocket\";\nfunction createConnection(options, roomInstance) {\n const conn = new PartySocket(options);\n conn.addEventListener(\"message\", (event) => {\n const object = JSON.parse(event.data);\n switch (object.type) {\n case \"sync\":\n load(roomInstance, object.value, true);\n break;\n }\n });\n return {\n emit: /* @__PURE__ */ __name((key, value) => {\n conn.send(JSON.stringify({\n action: key,\n value\n }));\n }, \"emit\"),\n on: /* @__PURE__ */ __name((key, cb) => {\n conn.addEventListener(\"message\", (event) => {\n const object = JSON.parse(event.data);\n if (object.type === key) {\n cb(object.value);\n }\n });\n }, \"on\"),\n off: /* @__PURE__ */ __name((key, cb) => {\n conn.removeEventListener(\"message\", (event) => {\n const object = JSON.parse(event.data);\n if (object.type === key) {\n cb(object.value);\n }\n });\n }, \"off\"),\n close: /* @__PURE__ */ __name(() => conn.close(), \"close\"),\n conn\n };\n}\n__name(createConnection, \"createConnection\");\nasync function connectionRoom(options, roomInstance) {\n return createConnection(options, roomInstance);\n}\n__name(connectionRoom, \"connectionRoom\");\nasync function connectionWorld(options, roomInstance) {\n const shardInfo = await getOptimalShard(options);\n const result = createConnection({\n ...options,\n party: \"shard\",\n room: shardInfo.url\n }, roomInstance);\n return {\n ...result,\n shardInfo\n };\n}\n__name(connectionWorld, \"connectionWorld\");\nasync function getOptimalShard(worldOptions) {\n const {\n host,\n room,\n worldId = \"world-default\",\n retryCount = 3,\n retryDelay = 1e3,\n autoCreate = true\n // Default to true for auto-creation\n } = worldOptions;\n let attempts = 0;\n const url = new URL(`${host}/parties/world/${encodeURIComponent(worldId)}/connect`);\n const requestUrl = url.toString();\n while (attempts < retryCount) {\n try {\n const response = await fetch(requestUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n roomId: room,\n autoCreate\n })\n });\n if (!response.ok) {\n const errorData = await response.json().catch(() => ({\n error: \"Unknown error\"\n }));\n throw new Error(`World service returned ${response.status}: ${errorData.error || \"Unknown error\"}`);\n }\n const data = await response.json();\n if (!data.url || !data.shardId) {\n throw new Error(\"Invalid response from World service: missing url or shardId\");\n }\n return {\n shardId: data.shardId,\n url: data.url\n };\n } catch (error) {\n attempts++;\n if (attempts >= retryCount) {\n throw error;\n }\n console.warn(`Failed to get shard (attempt ${attempts}/${retryCount}). Retrying in ${retryDelay}ms...`);\n await new Promise((resolve) => setTimeout(resolve, retryDelay));\n }\n }\n throw new Error(\"Failed to get shard after all retry attempts\");\n}\n__name(getOptimalShard, \"getOptimalShard\");\nexport {\n PartySocket,\n connectionRoom,\n connectionWorld\n};\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0],"mappings":";;;;;AAOA,SAAS,iBAAiB,SAAS,cAAc;CAC/C,MAAM,OAAO,IAAI,YAAY,QAAQ;AACrC,MAAK,iBAAiB,YAAY,UAAU;EAC1C,MAAM,SAAS,KAAK,MAAM,MAAM,KAAK;AACrC,UAAQ,OAAO,MAAf;GACE,KAAK;AACH,SAAK,cAAc,OAAO,OAAO,KAAK;AACtC;;GAEJ;AACF,QAAO;EACL,MAAsB,wBAAQ,KAAK,UAAU;AAC3C,QAAK,KAAK,KAAK,UAAU;IACvB,QAAQ;IACR;IACD,CAAC,CAAC;KACF,OAAO;EACV,IAAoB,wBAAQ,KAAK,OAAO;AACtC,QAAK,iBAAiB,YAAY,UAAU;IAC1C,MAAM,SAAS,KAAK,MAAM,MAAM,KAAK;AACrC,QAAI,OAAO,SAAS,IAClB,IAAG,OAAO,MAAM;KAElB;KACD,KAAK;EACR,KAAqB,wBAAQ,KAAK,OAAO;AACvC,QAAK,oBAAoB,YAAY,UAAU;IAC7C,MAAM,SAAS,KAAK,MAAM,MAAM,KAAK;AACrC,QAAI,OAAO,SAAS,IAClB,IAAG,OAAO,MAAM;KAElB;KACD,MAAM;EACT,OAAuB,6BAAa,KAAK,OAAO,EAAE,QAAQ;EAC1D;EACD;;AAEH,OAAO,kBAAkB,mBAAmB;AAC5C,eAAe,eAAe,SAAS,cAAc;AACnD,QAAO,iBAAiB,SAAS,aAAa;;AAEhD,OAAO,gBAAgB,iBAAiB;AACxC,eAAe,gBAAgB,SAAS,cAAc;CACpD,MAAM,YAAY,MAAM,gBAAgB,QAAQ;AAMhD,QAAO;EACL,GANa,iBAAiB;GAC9B,GAAG;GACH,OAAO;GACP,MAAM,UAAU;GACjB,EAAE,aAEQ;EACT;EACD;;AAEH,OAAO,iBAAiB,kBAAkB;AAC1C,eAAe,gBAAgB,cAAc;CAC3C,MAAM,EACJ,MACA,MACA,UAAU,iBACV,aAAa,GACb,aAAa,KACb,aAAa,SAEX;CACJ,IAAI,WAAW;CAEf,MAAM,aAAa,IADH,IAAI,GAAG,KAAK,iBAAiB,mBAAmB,QAAQ,CAAC,UACnD,CAAC,UAAU;AACjC,QAAO,WAAW,WAChB,KAAI;EACF,MAAM,WAAW,MAAM,MAAM,YAAY;GACvC,QAAQ;GACR,SAAS,EACP,gBAAgB,oBACjB;GACD,MAAM,KAAK,UAAU;IACnB,QAAQ;IACR;IACD,CAAC;GACH,CAAC;AACF,MAAI,CAAC,SAAS,IAAI;GAChB,MAAM,YAAY,MAAM,SAAS,MAAM,CAAC,aAAa,EACnD,OAAO,iBACR,EAAE;AACH,SAAM,IAAI,MAAM,0BAA0B,SAAS,OAAO,IAAI,UAAU,SAAS,kBAAkB;;EAErG,MAAM,OAAO,MAAM,SAAS,MAAM;AAClC,MAAI,CAAC,KAAK,OAAO,CAAC,KAAK,QACrB,OAAM,IAAI,MAAM,8DAA8D;AAEhF,SAAO;GACL,SAAS,KAAK;GACd,KAAK,KAAK;GACX;UACM,OAAO;AACd;AACA,MAAI,YAAY,WACd,OAAM;AAER,UAAQ,KAAK,gCAAgC,SAAS,GAAG,WAAW,iBAAiB,WAAW,OAAO;AACvG,QAAM,IAAI,SAAS,YAAY,WAAW,SAAS,WAAW,CAAC;;AAGnE,OAAM,IAAI,MAAM,+CAA+C;;AAEjE,OAAO,iBAAiB,kBAAkB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["isSignal2"],"sources":["../../../../../../../../../../node_modules/.pnpm/@signe+sync@2.9.0/node_modules/@signe/sync/dist/index.js"],"sourcesContent":["import {\n __name\n} from \"./chunk-7QVYU63E.js\";\n\n// src/core.ts\nimport { isArraySubject, isObjectSubject, isSignal, isComputed } from \"@signe/reactive\";\n\n// src/utils.ts\nfunction isFunction(val) {\n return {}.toString.call(val) === \"[object Function]\";\n}\n__name(isFunction, \"isFunction\");\nfunction isClass(obj) {\n return typeof obj === \"function\" && obj.prototype && obj.prototype.constructor === obj;\n}\n__name(isClass, \"isClass\");\nvar isObject = /* @__PURE__ */ __name((item) => item && typeof item === \"object\" && !Array.isArray(item) && item !== null, \"isObject\");\nfunction isInstanceOfClass(value) {\n if (value === null || typeof value !== \"object\" || value === void 0 || Array.isArray(value)) {\n return false;\n }\n return Object.getPrototypeOf(value) !== Object.prototype;\n}\n__name(isInstanceOfClass, \"isInstanceOfClass\");\nfunction generateShortUUID() {\n const chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n let uuid = \"\";\n for (let i = 0; i < 8; i++) {\n const randomIndex = Math.floor(Math.random() * chars.length);\n uuid += chars[randomIndex];\n }\n return uuid;\n}\n__name(generateShortUUID, \"generateShortUUID\");\n\n// src/core.ts\nvar DELETE_TOKEN = \"$delete\";\nvar syncClass = /* @__PURE__ */ __name((instance, options = {}) => {\n const cacheSync = /* @__PURE__ */ new Map();\n const cachePersist = /* @__PURE__ */ new Map();\n instance.$valuesChanges = {\n set: /* @__PURE__ */ __name((path, value) => {\n cacheSync.set(path, value);\n options.onSync?.(cacheSync);\n }, \"set\"),\n setPersist: /* @__PURE__ */ __name((path, value) => {\n if (path == \"\") path = \".\";\n cachePersist.set(path, value);\n options.onPersist?.(cachePersist);\n }, \"setPersist\"),\n has: /* @__PURE__ */ __name((path) => {\n return cacheSync.has(path);\n }, \"has\"),\n get: /* @__PURE__ */ __name((path) => {\n return cacheSync.get(path);\n }, \"get\")\n };\n createSyncClass(instance);\n}, \"syncClass\");\nfunction createStatesSnapshot(instance) {\n let persistObject = {};\n if (instance?.$snapshot) {\n for (const key of instance.$snapshot.keys()) {\n const signal = instance.$snapshot.get(key);\n const persist2 = signal.options.persist ?? true;\n let value = signal();\n if (isObject(value) || Array.isArray(value)) {\n continue;\n }\n if (persist2) {\n persistObject[key] = value;\n }\n }\n }\n return persistObject;\n}\n__name(createStatesSnapshot, \"createStatesSnapshot\");\nvar SNAPSHOT_SKIP = Symbol(\"snapshot-skip\");\nvar serializeSnapshotDeep = /* @__PURE__ */ __name((value, path, options, seen) => {\n if (isSignal(value)) {\n return serializeSnapshotDeep(value(), path, options, seen);\n }\n if (value instanceof Map) {\n return SNAPSHOT_SKIP;\n }\n if (options.filter && !options.filter(value, path)) {\n return SNAPSHOT_SKIP;\n }\n if (value instanceof Date) {\n return options.dateToString ? options.dateToString(value) : value.toISOString();\n }\n if (value && typeof value === \"object\") {\n if (seen.has(value)) {\n return SNAPSHOT_SKIP;\n }\n seen.add(value);\n if (Array.isArray(value)) {\n const result2 = [];\n value.forEach((item, index) => {\n const itemPath = path ? `${path}.${index}` : String(index);\n const serialized = serializeSnapshotDeep(item, itemPath, options, seen);\n if (serialized !== SNAPSHOT_SKIP) {\n result2.push(serialized);\n }\n });\n return result2;\n }\n const result = {};\n const idKey = isInstanceOfClass(value) ? value.constructor?._propertyMetadata?.get(\"id\") : void 0;\n const entries = Object.entries(value).filter(([key]) => isInstanceOfClass(value) ? key.startsWith(\"__\") || (idKey ? key === idKey : false) : true);\n for (const [key, childValue] of entries) {\n const normalizedKey = key.startsWith(\"__\") ? key.slice(2) : key;\n const childPath = path ? `${path}.${normalizedKey}` : normalizedKey;\n const serialized = serializeSnapshotDeep(childValue, childPath, options, seen);\n if (serialized !== SNAPSHOT_SKIP) {\n result[normalizedKey] = serialized;\n }\n }\n return result;\n }\n return value;\n}, \"serializeSnapshotDeep\");\nfunction createStatesSnapshotDeep(instance, options = {}) {\n const persistObject = {};\n if (instance?.$snapshot) {\n for (const key of instance.$snapshot.keys()) {\n const signal = instance.$snapshot.get(key);\n const persist2 = signal.options.persist ?? true;\n if (!persist2) {\n continue;\n }\n const value = signal();\n const serialized = serializeSnapshotDeep(value, key, options, /* @__PURE__ */ new WeakSet());\n if (serialized !== SNAPSHOT_SKIP) {\n persistObject[key] = serialized;\n }\n }\n }\n return persistObject;\n}\n__name(createStatesSnapshotDeep, \"createStatesSnapshotDeep\");\nfunction setMetadata(target, key, value) {\n const meta = target.constructor._propertyMetadata;\n const propId = meta?.get(key);\n if (propId) {\n if (isSignal(target[propId])) {\n target[propId].set(value);\n } else {\n target[propId] = value;\n }\n }\n}\n__name(setMetadata, \"setMetadata\");\nvar createSyncClass = /* @__PURE__ */ __name((currentClass, parentKey = null, parentClass = null, path = \"\") => {\n currentClass.$path = path;\n if (parentClass) {\n currentClass.$valuesChanges = parentClass.$valuesChanges;\n }\n if (parentKey) {\n setMetadata(currentClass, \"id\", parentKey);\n }\n if (currentClass.$snapshot) {\n for (const key of currentClass.$snapshot.keys()) {\n const signal = currentClass.$snapshot.get(key);\n const syncToClient = signal.options?.syncToClient ?? true;\n const persist2 = signal.options?.persist ?? true;\n const transform = signal.options?.transform;\n let signalValue = signal();\n if (transform) {\n signalValue = transform(signalValue);\n }\n if (isObject(signalValue) || Array.isArray(signalValue)) {\n signalValue = {\n ...signalValue\n };\n }\n const transformedValue = signalValue;\n const newPath = (path ? path + \".\" : \"\") + key;\n if (syncToClient) {\n currentClass.$valuesChanges.set(newPath, transformedValue);\n }\n if (persist2) {\n if (parentClass) currentClass.$valuesChanges.setPersist(path, transformedValue);\n }\n if (isComputed(signal)) {\n signal.observable.subscribe((newValue) => {\n if (syncToClient) {\n const transformedNewValue = transform ? transform(newValue) : newValue;\n currentClass.$valuesChanges.set(newPath, transformedNewValue);\n }\n });\n }\n }\n }\n}, \"createSyncClass\");\nvar type = /* @__PURE__ */ __name((_signal, path, options = {}, currentInstance) => {\n const { syncToClient = true, persist: persist2 = true, transform } = options;\n let init = true;\n const handleObjectSubject = /* @__PURE__ */ __name((value, propPath) => {\n const newPath = `${propPath}${value.key ? `.${value.key}` : \"\"}`;\n if ([\n \"add\",\n \"reset\",\n \"update\"\n ].includes(value.type)) {\n if (isInstanceOfClass(value.value)) {\n createSyncClass(value.value, value.key, currentInstance, newPath);\n } else if (value.type === \"update\" && (isObject(value.value) || Array.isArray(value.value))) {\n createSyncClass(value.value, value.key, currentInstance, newPath);\n } else {\n savePath(newPath, value.value);\n }\n } else if (value.type === \"remove\") {\n savePath(newPath, DELETE_TOKEN);\n }\n }, \"handleObjectSubject\");\n const handleArraySubject = /* @__PURE__ */ __name((value, propPath) => {\n if (value.type === \"reset\" && Array.isArray(value.items)) {\n value.items.forEach((item, index) => {\n const newPath2 = `${propPath}.${index}`;\n if (isInstanceOfClass(item)) {\n createSyncClass(item, value.key, currentInstance, newPath2);\n } else {\n savePath(newPath2, item);\n }\n });\n return;\n }\n const newPath = `${propPath}.${value.index}`;\n const firstItem = value.items?.[0];\n if ([\n \"add\",\n \"update\"\n ].includes(value.type) && firstItem !== void 0) {\n if (isInstanceOfClass(firstItem)) {\n createSyncClass(firstItem, value.key, currentInstance, newPath);\n } else if (value.type === \"update\" && (isObject(firstItem) || Array.isArray(firstItem))) {\n createSyncClass(firstItem, value.key, currentInstance, newPath);\n } else {\n savePath(newPath, firstItem);\n }\n } else if (value.type === \"remove\") {\n savePath(newPath, DELETE_TOKEN);\n }\n }, \"handleArraySubject\");\n const savePath = /* @__PURE__ */ __name((propPath, value) => {\n const transformedValue = transform && value !== DELETE_TOKEN ? transform(value) : value;\n if (syncToClient) {\n currentInstance.$valuesChanges.set(propPath, transformedValue);\n }\n if (persist2 && currentInstance.$path !== void 0) {\n currentInstance.$valuesChanges.setPersist(transformedValue == DELETE_TOKEN ? propPath : currentInstance.$path, transformedValue);\n }\n }, \"savePath\");\n const setupSubscription = /* @__PURE__ */ __name((signal, signalPath) => {\n if (!isSignal(signal)) return;\n if (syncToClient && currentInstance.$valuesChanges) {\n const initialValue = signal();\n const transformedInitialValue = transform ? transform(initialValue) : initialValue;\n currentInstance.$valuesChanges.set(signalPath, transformedInitialValue);\n }\n signal.options = options;\n signal.observable.subscribe((value) => {\n if (init) return;\n if (currentInstance.$path !== void 0) {\n const fullPath = `${currentInstance.$path ? currentInstance.$path + \".\" : \"\"}${signalPath}`;\n if (isComputed(signal)) {\n savePath(fullPath, value);\n } else if (isObjectSubject(signal._subject)) {\n handleObjectSubject(value, fullPath);\n } else if (isArraySubject(signal._subject)) {\n handleArraySubject(value, fullPath);\n } else {\n savePath(fullPath, value);\n }\n }\n });\n if (!currentInstance.$snapshot) {\n currentInstance.$snapshot = /* @__PURE__ */ new Map();\n }\n currentInstance.$snapshot.set(path, signal);\n }, \"setupSubscription\");\n if (!isSignal(_signal)) {\n if (_signal && typeof _signal === \"object\" && !Array.isArray(_signal)) {\n for (const key in _signal) {\n if (Object.prototype.hasOwnProperty.call(_signal, key)) {\n const value = _signal[key];\n const propertyPath = `${path}.${key}`;\n if (isSignal(value)) {\n setupSubscription(value, propertyPath);\n } else if (value && typeof value === \"object\" && !Array.isArray(value)) {\n type(value, propertyPath, options, currentInstance);\n }\n }\n }\n init = false;\n }\n return _signal;\n }\n setupSubscription(_signal, path);\n init = false;\n return _signal;\n}, \"type\");\n\n// src/decorators.ts\nfunction sync(options) {\n let classType;\n let persist2 = true;\n let syncToClient = true;\n let transform;\n if (typeof options === \"function\") {\n classType = options;\n } else if (typeof options === \"object\") {\n classType = options.classType;\n if (options.hasOwnProperty(\"persist\")) {\n persist2 = options.persist;\n }\n if (options.hasOwnProperty(\"syncToClient\")) {\n syncToClient = options.syncToClient;\n }\n if (options.hasOwnProperty(\"transform\")) {\n transform = options.transform;\n }\n }\n return function(target, propertyKey) {\n const privatePropertyKey = `__${propertyKey}`;\n const getter = /* @__PURE__ */ __name(function() {\n return this[privatePropertyKey];\n }, \"getter\");\n const setter = /* @__PURE__ */ __name(function(newVal) {\n this[privatePropertyKey] = type(newVal, propertyKey, {\n classType,\n persist: persist2,\n syncToClient,\n transform\n }, this);\n }, \"setter\");\n Object.defineProperty(target, propertyKey, {\n get: getter,\n set: setter,\n enumerable: true,\n configurable: true\n });\n };\n}\n__name(sync, \"sync\");\nfunction id() {\n return function(target, propertyKey) {\n if (!target.constructor._propertyMetadata) {\n target.constructor._propertyMetadata = /* @__PURE__ */ new Map();\n }\n target.constructor._propertyMetadata.set(\"id\", propertyKey);\n };\n}\n__name(id, \"id\");\nfunction users(options) {\n return function(target, propertyKey) {\n if (!target.constructor._propertyMetadata) {\n target.constructor._propertyMetadata = /* @__PURE__ */ new Map();\n }\n target.constructor._propertyMetadata.set(\"users\", propertyKey);\n sync(options)(target, propertyKey);\n };\n}\n__name(users, \"users\");\nfunction persist() {\n return sync({\n persist: true,\n syncToClient: false\n });\n}\n__name(persist, \"persist\");\nfunction connected() {\n return function(target, propertyKey) {\n if (!target.constructor._propertyMetadata) {\n target.constructor._propertyMetadata = /* @__PURE__ */ new Map();\n }\n target.constructor._propertyMetadata.set(\"connected\", propertyKey);\n sync({\n persist: false\n })(target, propertyKey);\n };\n}\n__name(connected, \"connected\");\n\n// src/load.ts\nimport { isSignal as isSignal2 } from \"@signe/reactive\";\nfunction load(rootInstance, values, valueIsObject) {\n if (valueIsObject) {\n loadFromObject(rootInstance, values);\n } else {\n loadFromPaths(rootInstance, values);\n }\n}\n__name(load, \"load\");\nfunction loadFromPaths(rootInstance, values) {\n for (const [path, value] of Object.entries(values)) {\n const parts = path.split(\".\");\n loadValue(rootInstance, parts, value);\n }\n}\n__name(loadFromPaths, \"loadFromPaths\");\nfunction loadFromObject(rootInstance, values, currentPath = \"\") {\n for (let key in values) {\n const value = values[key];\n const newPath = currentPath ? `${currentPath}.${key}` : key;\n if (typeof value === \"object\" && !Array.isArray(value) && value !== null) {\n loadFromObject(rootInstance, value, newPath);\n } else {\n const parts = newPath.split(\".\");\n loadValue(rootInstance, parts, value);\n }\n }\n}\n__name(loadFromObject, \"loadFromObject\");\nfunction loadValue(rootInstance, parts, value) {\n let current = rootInstance;\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n if (i === parts.length - 1) {\n if (value == DELETE_TOKEN) {\n if (isSignal2(current)) {\n current = current();\n }\n Reflect.deleteProperty(current, part);\n } else if (current[part]?._subject) {\n current[part].set(value);\n } else if (isSignal2(current) && Array.isArray(current()) && !isNaN(Number(part))) {\n current()[Number(part)] = value;\n } else {\n current[part] = value;\n }\n } else {\n if (isSignal2(current)) {\n current = current();\n }\n const currentValue = current[part];\n if (currentValue === void 0) {\n const parentInstance = getByPath(rootInstance, parts.slice(0, i).join(\".\"));\n const classType = parentInstance?.options?.classType;\n if (classType) {\n current[part] = !isClass(classType) ? classType(part) : new classType();\n setMetadata(current[part], \"id\", part);\n } else {\n current[part] = {};\n }\n }\n current = current[part];\n }\n }\n}\n__name(loadValue, \"loadValue\");\nfunction getByPath(root, path) {\n const parts = path.split(\".\");\n let current = root;\n for (const part of parts) {\n if (isSignal2(current)) {\n current = current();\n }\n if (current[part]) {\n current = current[part];\n } else {\n return void 0;\n }\n }\n return current;\n}\n__name(getByPath, \"getByPath\");\nexport {\n DELETE_TOKEN,\n connected,\n createStatesSnapshot,\n createStatesSnapshotDeep,\n createSyncClass,\n generateShortUUID,\n getByPath,\n id,\n isClass,\n isFunction,\n isInstanceOfClass,\n isObject,\n load,\n persist,\n setMetadata,\n sync,\n syncClass,\n type,\n users\n};\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["isSignal2"],"sources":["../../../../../../../../../../node_modules/.pnpm/@signe+sync@2.9.0/node_modules/@signe/sync/dist/index.js"],"sourcesContent":["import {\n __name\n} from \"./chunk-7QVYU63E.js\";\n\n// src/core.ts\nimport { isArraySubject, isObjectSubject, isSignal, isComputed } from \"@signe/reactive\";\n\n// src/utils.ts\nfunction isFunction(val) {\n return {}.toString.call(val) === \"[object Function]\";\n}\n__name(isFunction, \"isFunction\");\nfunction isClass(obj) {\n return typeof obj === \"function\" && obj.prototype && obj.prototype.constructor === obj;\n}\n__name(isClass, \"isClass\");\nvar isObject = /* @__PURE__ */ __name((item) => item && typeof item === \"object\" && !Array.isArray(item) && item !== null, \"isObject\");\nfunction isInstanceOfClass(value) {\n if (value === null || typeof value !== \"object\" || value === void 0 || Array.isArray(value)) {\n return false;\n }\n return Object.getPrototypeOf(value) !== Object.prototype;\n}\n__name(isInstanceOfClass, \"isInstanceOfClass\");\nfunction generateShortUUID() {\n const chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n let uuid = \"\";\n for (let i = 0; i < 8; i++) {\n const randomIndex = Math.floor(Math.random() * chars.length);\n uuid += chars[randomIndex];\n }\n return uuid;\n}\n__name(generateShortUUID, \"generateShortUUID\");\n\n// src/core.ts\nvar DELETE_TOKEN = \"$delete\";\nvar syncClass = /* @__PURE__ */ __name((instance, options = {}) => {\n const cacheSync = /* @__PURE__ */ new Map();\n const cachePersist = /* @__PURE__ */ new Map();\n instance.$valuesChanges = {\n set: /* @__PURE__ */ __name((path, value) => {\n cacheSync.set(path, value);\n options.onSync?.(cacheSync);\n }, \"set\"),\n setPersist: /* @__PURE__ */ __name((path, value) => {\n if (path == \"\") path = \".\";\n cachePersist.set(path, value);\n options.onPersist?.(cachePersist);\n }, \"setPersist\"),\n has: /* @__PURE__ */ __name((path) => {\n return cacheSync.has(path);\n }, \"has\"),\n get: /* @__PURE__ */ __name((path) => {\n return cacheSync.get(path);\n }, \"get\")\n };\n createSyncClass(instance);\n}, \"syncClass\");\nfunction createStatesSnapshot(instance) {\n let persistObject = {};\n if (instance?.$snapshot) {\n for (const key of instance.$snapshot.keys()) {\n const signal = instance.$snapshot.get(key);\n const persist2 = signal.options.persist ?? true;\n let value = signal();\n if (isObject(value) || Array.isArray(value)) {\n continue;\n }\n if (persist2) {\n persistObject[key] = value;\n }\n }\n }\n return persistObject;\n}\n__name(createStatesSnapshot, \"createStatesSnapshot\");\nvar SNAPSHOT_SKIP = Symbol(\"snapshot-skip\");\nvar serializeSnapshotDeep = /* @__PURE__ */ __name((value, path, options, seen) => {\n if (isSignal(value)) {\n return serializeSnapshotDeep(value(), path, options, seen);\n }\n if (value instanceof Map) {\n return SNAPSHOT_SKIP;\n }\n if (options.filter && !options.filter(value, path)) {\n return SNAPSHOT_SKIP;\n }\n if (value instanceof Date) {\n return options.dateToString ? options.dateToString(value) : value.toISOString();\n }\n if (value && typeof value === \"object\") {\n if (seen.has(value)) {\n return SNAPSHOT_SKIP;\n }\n seen.add(value);\n if (Array.isArray(value)) {\n const result2 = [];\n value.forEach((item, index) => {\n const itemPath = path ? `${path}.${index}` : String(index);\n const serialized = serializeSnapshotDeep(item, itemPath, options, seen);\n if (serialized !== SNAPSHOT_SKIP) {\n result2.push(serialized);\n }\n });\n return result2;\n }\n const result = {};\n const idKey = isInstanceOfClass(value) ? value.constructor?._propertyMetadata?.get(\"id\") : void 0;\n const entries = Object.entries(value).filter(([key]) => isInstanceOfClass(value) ? key.startsWith(\"__\") || (idKey ? key === idKey : false) : true);\n for (const [key, childValue] of entries) {\n const normalizedKey = key.startsWith(\"__\") ? key.slice(2) : key;\n const childPath = path ? `${path}.${normalizedKey}` : normalizedKey;\n const serialized = serializeSnapshotDeep(childValue, childPath, options, seen);\n if (serialized !== SNAPSHOT_SKIP) {\n result[normalizedKey] = serialized;\n }\n }\n return result;\n }\n return value;\n}, \"serializeSnapshotDeep\");\nfunction createStatesSnapshotDeep(instance, options = {}) {\n const persistObject = {};\n if (instance?.$snapshot) {\n for (const key of instance.$snapshot.keys()) {\n const signal = instance.$snapshot.get(key);\n const persist2 = signal.options.persist ?? true;\n if (!persist2) {\n continue;\n }\n const value = signal();\n const serialized = serializeSnapshotDeep(value, key, options, /* @__PURE__ */ new WeakSet());\n if (serialized !== SNAPSHOT_SKIP) {\n persistObject[key] = serialized;\n }\n }\n }\n return persistObject;\n}\n__name(createStatesSnapshotDeep, \"createStatesSnapshotDeep\");\nfunction setMetadata(target, key, value) {\n const meta = target.constructor._propertyMetadata;\n const propId = meta?.get(key);\n if (propId) {\n if (isSignal(target[propId])) {\n target[propId].set(value);\n } else {\n target[propId] = value;\n }\n }\n}\n__name(setMetadata, \"setMetadata\");\nvar createSyncClass = /* @__PURE__ */ __name((currentClass, parentKey = null, parentClass = null, path = \"\") => {\n currentClass.$path = path;\n if (parentClass) {\n currentClass.$valuesChanges = parentClass.$valuesChanges;\n }\n if (parentKey) {\n setMetadata(currentClass, \"id\", parentKey);\n }\n if (currentClass.$snapshot) {\n for (const key of currentClass.$snapshot.keys()) {\n const signal = currentClass.$snapshot.get(key);\n const syncToClient = signal.options?.syncToClient ?? true;\n const persist2 = signal.options?.persist ?? true;\n const transform = signal.options?.transform;\n let signalValue = signal();\n if (transform) {\n signalValue = transform(signalValue);\n }\n if (isObject(signalValue) || Array.isArray(signalValue)) {\n signalValue = {\n ...signalValue\n };\n }\n const transformedValue = signalValue;\n const newPath = (path ? path + \".\" : \"\") + key;\n if (syncToClient) {\n currentClass.$valuesChanges.set(newPath, transformedValue);\n }\n if (persist2) {\n if (parentClass) currentClass.$valuesChanges.setPersist(path, transformedValue);\n }\n if (isComputed(signal)) {\n signal.observable.subscribe((newValue) => {\n if (syncToClient) {\n const transformedNewValue = transform ? transform(newValue) : newValue;\n currentClass.$valuesChanges.set(newPath, transformedNewValue);\n }\n });\n }\n }\n }\n}, \"createSyncClass\");\nvar type = /* @__PURE__ */ __name((_signal, path, options = {}, currentInstance) => {\n const { syncToClient = true, persist: persist2 = true, transform } = options;\n let init = true;\n const handleObjectSubject = /* @__PURE__ */ __name((value, propPath) => {\n const newPath = `${propPath}${value.key ? `.${value.key}` : \"\"}`;\n if ([\n \"add\",\n \"reset\",\n \"update\"\n ].includes(value.type)) {\n if (isInstanceOfClass(value.value)) {\n createSyncClass(value.value, value.key, currentInstance, newPath);\n } else if (value.type === \"update\" && (isObject(value.value) || Array.isArray(value.value))) {\n createSyncClass(value.value, value.key, currentInstance, newPath);\n } else {\n savePath(newPath, value.value);\n }\n } else if (value.type === \"remove\") {\n savePath(newPath, DELETE_TOKEN);\n }\n }, \"handleObjectSubject\");\n const handleArraySubject = /* @__PURE__ */ __name((value, propPath) => {\n if (value.type === \"reset\" && Array.isArray(value.items)) {\n value.items.forEach((item, index) => {\n const newPath2 = `${propPath}.${index}`;\n if (isInstanceOfClass(item)) {\n createSyncClass(item, value.key, currentInstance, newPath2);\n } else {\n savePath(newPath2, item);\n }\n });\n return;\n }\n const newPath = `${propPath}.${value.index}`;\n const firstItem = value.items?.[0];\n if ([\n \"add\",\n \"update\"\n ].includes(value.type) && firstItem !== void 0) {\n if (isInstanceOfClass(firstItem)) {\n createSyncClass(firstItem, value.key, currentInstance, newPath);\n } else if (value.type === \"update\" && (isObject(firstItem) || Array.isArray(firstItem))) {\n createSyncClass(firstItem, value.key, currentInstance, newPath);\n } else {\n savePath(newPath, firstItem);\n }\n } else if (value.type === \"remove\") {\n savePath(newPath, DELETE_TOKEN);\n }\n }, \"handleArraySubject\");\n const savePath = /* @__PURE__ */ __name((propPath, value) => {\n const transformedValue = transform && value !== DELETE_TOKEN ? transform(value) : value;\n if (syncToClient) {\n currentInstance.$valuesChanges.set(propPath, transformedValue);\n }\n if (persist2 && currentInstance.$path !== void 0) {\n currentInstance.$valuesChanges.setPersist(transformedValue == DELETE_TOKEN ? propPath : currentInstance.$path, transformedValue);\n }\n }, \"savePath\");\n const setupSubscription = /* @__PURE__ */ __name((signal, signalPath) => {\n if (!isSignal(signal)) return;\n if (syncToClient && currentInstance.$valuesChanges) {\n const initialValue = signal();\n const transformedInitialValue = transform ? transform(initialValue) : initialValue;\n currentInstance.$valuesChanges.set(signalPath, transformedInitialValue);\n }\n signal.options = options;\n signal.observable.subscribe((value) => {\n if (init) return;\n if (currentInstance.$path !== void 0) {\n const fullPath = `${currentInstance.$path ? currentInstance.$path + \".\" : \"\"}${signalPath}`;\n if (isComputed(signal)) {\n savePath(fullPath, value);\n } else if (isObjectSubject(signal._subject)) {\n handleObjectSubject(value, fullPath);\n } else if (isArraySubject(signal._subject)) {\n handleArraySubject(value, fullPath);\n } else {\n savePath(fullPath, value);\n }\n }\n });\n if (!currentInstance.$snapshot) {\n currentInstance.$snapshot = /* @__PURE__ */ new Map();\n }\n currentInstance.$snapshot.set(path, signal);\n }, \"setupSubscription\");\n if (!isSignal(_signal)) {\n if (_signal && typeof _signal === \"object\" && !Array.isArray(_signal)) {\n for (const key in _signal) {\n if (Object.prototype.hasOwnProperty.call(_signal, key)) {\n const value = _signal[key];\n const propertyPath = `${path}.${key}`;\n if (isSignal(value)) {\n setupSubscription(value, propertyPath);\n } else if (value && typeof value === \"object\" && !Array.isArray(value)) {\n type(value, propertyPath, options, currentInstance);\n }\n }\n }\n init = false;\n }\n return _signal;\n }\n setupSubscription(_signal, path);\n init = false;\n return _signal;\n}, \"type\");\n\n// src/decorators.ts\nfunction sync(options) {\n let classType;\n let persist2 = true;\n let syncToClient = true;\n let transform;\n if (typeof options === \"function\") {\n classType = options;\n } else if (typeof options === \"object\") {\n classType = options.classType;\n if (options.hasOwnProperty(\"persist\")) {\n persist2 = options.persist;\n }\n if (options.hasOwnProperty(\"syncToClient\")) {\n syncToClient = options.syncToClient;\n }\n if (options.hasOwnProperty(\"transform\")) {\n transform = options.transform;\n }\n }\n return function(target, propertyKey) {\n const privatePropertyKey = `__${propertyKey}`;\n const getter = /* @__PURE__ */ __name(function() {\n return this[privatePropertyKey];\n }, \"getter\");\n const setter = /* @__PURE__ */ __name(function(newVal) {\n this[privatePropertyKey] = type(newVal, propertyKey, {\n classType,\n persist: persist2,\n syncToClient,\n transform\n }, this);\n }, \"setter\");\n Object.defineProperty(target, propertyKey, {\n get: getter,\n set: setter,\n enumerable: true,\n configurable: true\n });\n };\n}\n__name(sync, \"sync\");\nfunction id() {\n return function(target, propertyKey) {\n if (!target.constructor._propertyMetadata) {\n target.constructor._propertyMetadata = /* @__PURE__ */ new Map();\n }\n target.constructor._propertyMetadata.set(\"id\", propertyKey);\n };\n}\n__name(id, \"id\");\nfunction users(options) {\n return function(target, propertyKey) {\n if (!target.constructor._propertyMetadata) {\n target.constructor._propertyMetadata = /* @__PURE__ */ new Map();\n }\n target.constructor._propertyMetadata.set(\"users\", propertyKey);\n sync(options)(target, propertyKey);\n };\n}\n__name(users, \"users\");\nfunction persist() {\n return sync({\n persist: true,\n syncToClient: false\n });\n}\n__name(persist, \"persist\");\nfunction connected() {\n return function(target, propertyKey) {\n if (!target.constructor._propertyMetadata) {\n target.constructor._propertyMetadata = /* @__PURE__ */ new Map();\n }\n target.constructor._propertyMetadata.set(\"connected\", propertyKey);\n sync({\n persist: false\n })(target, propertyKey);\n };\n}\n__name(connected, \"connected\");\n\n// src/load.ts\nimport { isSignal as isSignal2 } from \"@signe/reactive\";\nfunction load(rootInstance, values, valueIsObject) {\n if (valueIsObject) {\n loadFromObject(rootInstance, values);\n } else {\n loadFromPaths(rootInstance, values);\n }\n}\n__name(load, \"load\");\nfunction loadFromPaths(rootInstance, values) {\n for (const [path, value] of Object.entries(values)) {\n const parts = path.split(\".\");\n loadValue(rootInstance, parts, value);\n }\n}\n__name(loadFromPaths, \"loadFromPaths\");\nfunction loadFromObject(rootInstance, values, currentPath = \"\") {\n for (let key in values) {\n const value = values[key];\n const newPath = currentPath ? `${currentPath}.${key}` : key;\n if (typeof value === \"object\" && !Array.isArray(value) && value !== null) {\n loadFromObject(rootInstance, value, newPath);\n } else {\n const parts = newPath.split(\".\");\n loadValue(rootInstance, parts, value);\n }\n }\n}\n__name(loadFromObject, \"loadFromObject\");\nfunction loadValue(rootInstance, parts, value) {\n let current = rootInstance;\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n if (i === parts.length - 1) {\n if (value == DELETE_TOKEN) {\n if (isSignal2(current)) {\n current = current();\n }\n Reflect.deleteProperty(current, part);\n } else if (current[part]?._subject) {\n current[part].set(value);\n } else if (isSignal2(current) && Array.isArray(current()) && !isNaN(Number(part))) {\n current()[Number(part)] = value;\n } else {\n current[part] = value;\n }\n } else {\n if (isSignal2(current)) {\n current = current();\n }\n const currentValue = current[part];\n if (currentValue === void 0) {\n const parentInstance = getByPath(rootInstance, parts.slice(0, i).join(\".\"));\n const classType = parentInstance?.options?.classType;\n if (classType) {\n current[part] = !isClass(classType) ? classType(part) : new classType();\n setMetadata(current[part], \"id\", part);\n } else {\n current[part] = {};\n }\n }\n current = current[part];\n }\n }\n}\n__name(loadValue, \"loadValue\");\nfunction getByPath(root, path) {\n const parts = path.split(\".\");\n let current = root;\n for (const part of parts) {\n if (isSignal2(current)) {\n current = current();\n }\n if (current[part]) {\n current = current[part];\n } else {\n return void 0;\n }\n }\n return current;\n}\n__name(getByPath, \"getByPath\");\nexport {\n DELETE_TOKEN,\n connected,\n createStatesSnapshot,\n createStatesSnapshotDeep,\n createSyncClass,\n generateShortUUID,\n getByPath,\n id,\n isClass,\n isFunction,\n isInstanceOfClass,\n isObject,\n load,\n persist,\n setMetadata,\n sync,\n syncClass,\n type,\n users\n};\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-S74YV6PU.js","names":[],"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"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"chunk-S74YV6PU.js","names":[],"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"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -432,7 +432,8 @@ var handleResult = (ctx, result) => {
432
432
  success: false,
433
433
  get error() {
434
434
  if (this._error) return this._error;
435
- this._error = new ZodError(ctx.common.issues);
435
+ const error = new ZodError(ctx.common.issues);
436
+ this._error = error;
436
437
  return this._error;
437
438
  }
438
439
  };
@@ -2122,9 +2123,10 @@ var ZodObject = class ZodObject extends ZodType {
2122
2123
  _getCached() {
2123
2124
  if (this._cached !== null) return this._cached;
2124
2125
  const shape = this._def.shape();
2126
+ const keys = util.objectKeys(shape);
2125
2127
  return this._cached = {
2126
2128
  shape,
2127
- keys: util.objectKeys(shape)
2129
+ keys
2128
2130
  };
2129
2131
  }
2130
2132
  _parse(input) {
@@ -3611,29 +3613,6 @@ var pipelineType = ZodPipeline.create;
3611
3613
  var ostring = () => stringType().optional();
3612
3614
  var onumber = () => numberType().optional();
3613
3615
  var oboolean = () => booleanType().optional();
3614
- var coerce = {
3615
- string: ((arg) => ZodString.create({
3616
- ...arg,
3617
- coerce: true
3618
- })),
3619
- number: ((arg) => ZodNumber.create({
3620
- ...arg,
3621
- coerce: true
3622
- })),
3623
- boolean: ((arg) => ZodBoolean.create({
3624
- ...arg,
3625
- coerce: true
3626
- })),
3627
- bigint: ((arg) => ZodBigInt.create({
3628
- ...arg,
3629
- coerce: true
3630
- })),
3631
- date: ((arg) => ZodDate.create({
3632
- ...arg,
3633
- coerce: true
3634
- }))
3635
- };
3636
- var NEVER = INVALID;
3637
3616
  var z = /* @__PURE__ */ Object.freeze({
3638
3617
  __proto__: null,
3639
3618
  defaultErrorMap: errorMap,
@@ -3705,7 +3684,28 @@ var z = /* @__PURE__ */ Object.freeze({
3705
3684
  get ZodFirstPartyTypeKind() {
3706
3685
  return ZodFirstPartyTypeKind;
3707
3686
  },
3708
- coerce,
3687
+ coerce: {
3688
+ string: ((arg) => ZodString.create({
3689
+ ...arg,
3690
+ coerce: true
3691
+ })),
3692
+ number: ((arg) => ZodNumber.create({
3693
+ ...arg,
3694
+ coerce: true
3695
+ })),
3696
+ boolean: ((arg) => ZodBoolean.create({
3697
+ ...arg,
3698
+ coerce: true
3699
+ })),
3700
+ bigint: ((arg) => ZodBigInt.create({
3701
+ ...arg,
3702
+ coerce: true
3703
+ })),
3704
+ date: ((arg) => ZodDate.create({
3705
+ ...arg,
3706
+ coerce: true
3707
+ }))
3708
+ },
3709
3709
  any: anyType,
3710
3710
  array: arrayType,
3711
3711
  bigint: bigIntType,
@@ -3745,7 +3745,7 @@ var z = /* @__PURE__ */ Object.freeze({
3745
3745
  union: unionType,
3746
3746
  unknown: unknownType,
3747
3747
  "void": voidType,
3748
- NEVER,
3748
+ NEVER: INVALID,
3749
3749
  ZodIssueCode,
3750
3750
  quotelessJson,
3751
3751
  ZodError