@rpgjs/client 5.0.0-beta.8 → 5.0.0-beta.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.
- package/CHANGELOG.md +13 -0
- package/dist/Game/AnimationManager.js.map +1 -1
- package/dist/Game/Event.js.map +1 -1
- package/dist/Game/Map.d.ts +9 -1
- package/dist/Game/Map.js +61 -4
- package/dist/Game/Map.js.map +1 -1
- package/dist/Game/Object.js.map +1 -1
- package/dist/Game/Player.js.map +1 -1
- package/dist/Gui/Gui.js +1 -1
- package/dist/Gui/Gui.js.map +1 -1
- package/dist/Gui/NotificationManager.js.map +1 -1
- package/dist/Resource.js.map +1 -1
- package/dist/RpgClientEngine.js +7 -2
- package/dist/RpgClientEngine.js.map +1 -1
- package/dist/Sound.js.map +1 -1
- package/dist/_virtual/{_@oxc-project_runtime@0.128.0 → _@oxc-project_runtime@0.130.0}/helpers/decorate.js +1 -1
- package/dist/_virtual/{_@oxc-project_runtime@0.128.0 → _@oxc-project_runtime@0.130.0}/helpers/decorateMetadata.js +1 -1
- package/dist/components/animations/animation.ce.js.map +1 -1
- package/dist/components/animations/hit.ce.js.map +1 -1
- package/dist/components/animations/index.js.map +1 -1
- package/dist/components/character.ce.js +34 -3
- package/dist/components/character.ce.js.map +1 -1
- package/dist/components/dynamics/bar.ce.js.map +1 -1
- package/dist/components/dynamics/image.ce.js.map +1 -1
- package/dist/components/dynamics/parse-value.js.map +1 -1
- package/dist/components/dynamics/shape-utils.js.map +1 -1
- package/dist/components/dynamics/shape.ce.js.map +1 -1
- package/dist/components/dynamics/text.ce.js.map +1 -1
- package/dist/components/gui/box.ce.js.map +1 -1
- package/dist/components/gui/dialogbox/index.ce.js +3 -3
- package/dist/components/gui/dialogbox/index.ce.js.map +1 -1
- package/dist/components/gui/gameover.ce.js +1 -1
- package/dist/components/gui/gameover.ce.js.map +1 -1
- package/dist/components/gui/hud/hud.ce.js +1 -1
- package/dist/components/gui/hud/hud.ce.js.map +1 -1
- package/dist/components/gui/menu/equip-menu.ce.js.map +1 -1
- package/dist/components/gui/menu/exit-menu.ce.js.map +1 -1
- package/dist/components/gui/menu/items-menu.ce.js.map +1 -1
- package/dist/components/gui/menu/main-menu.ce.js.map +1 -1
- package/dist/components/gui/menu/options-menu.ce.js.map +1 -1
- package/dist/components/gui/menu/skills-menu.ce.js.map +1 -1
- package/dist/components/gui/mobile/index.js.map +1 -1
- package/dist/components/gui/mobile/mobile.ce.js.map +1 -1
- package/dist/components/gui/notification/notification.ce.js.map +1 -1
- package/dist/components/gui/save-load.ce.js.map +1 -1
- package/dist/components/gui/shop/shop.ce.js +1 -1
- package/dist/components/gui/shop/shop.ce.js.map +1 -1
- package/dist/components/gui/title-screen.ce.js +2 -2
- package/dist/components/gui/title-screen.ce.js.map +1 -1
- package/dist/components/player-components-utils.js.map +1 -1
- package/dist/components/player-components.ce.js.map +1 -1
- package/dist/components/prebuilt/hp-bar.ce.js.map +1 -1
- package/dist/components/prebuilt/light-halo.ce.js.map +1 -1
- package/dist/components/scenes/canvas.ce.js +147 -4
- package/dist/components/scenes/canvas.ce.js.map +1 -1
- package/dist/components/scenes/draw-map.ce.js +2 -8
- package/dist/components/scenes/draw-map.ce.js.map +1 -1
- package/dist/components/scenes/event-layer.ce.js.map +1 -1
- package/dist/core/inject.js +1 -1
- package/dist/core/inject.js.map +1 -1
- package/dist/core/setup.js +1 -1
- package/dist/core/setup.js.map +1 -1
- package/dist/decorators/spritesheet.d.ts +1 -0
- package/dist/decorators/spritesheet.js +11 -0
- package/dist/decorators/spritesheet.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -2
- package/dist/module.js +1 -1
- package/dist/module.js.map +1 -1
- package/dist/node_modules/.pnpm/{@signe_di@2.10.0 → @signe_di@3.0.1}/node_modules/@signe/di/dist/index.js +1 -1
- package/dist/node_modules/.pnpm/@signe_di@3.0.1/node_modules/@signe/di/dist/index.js.map +1 -0
- package/dist/node_modules/.pnpm/{@signe_reactive@2.10.0 → @signe_reactive@3.0.1}/node_modules/@signe/reactive/dist/index.js +1 -1
- package/dist/node_modules/.pnpm/@signe_reactive@3.0.1/node_modules/@signe/reactive/dist/index.js.map +1 -0
- package/dist/node_modules/.pnpm/@signe_room@3.0.1/node_modules/@signe/room/dist/chunk-EUXUH3YW.js +13 -0
- package/dist/node_modules/.pnpm/@signe_room@3.0.1/node_modules/@signe/room/dist/chunk-EUXUH3YW.js.map +1 -0
- package/dist/node_modules/.pnpm/{@signe_room@2.10.0 → @signe_room@3.0.1}/node_modules/@signe/room/dist/index.js +124 -39
- package/dist/node_modules/.pnpm/@signe_room@3.0.1/node_modules/@signe/room/dist/index.js.map +1 -0
- package/dist/node_modules/.pnpm/{@signe_sync@2.10.0 → @signe_sync@3.0.1}/node_modules/@signe/sync/dist/client/index.js +1 -1
- package/dist/node_modules/.pnpm/@signe_sync@3.0.1/node_modules/@signe/sync/dist/client/index.js.map +1 -0
- package/dist/node_modules/.pnpm/{@signe_sync@2.10.0 → @signe_sync@3.0.1}/node_modules/@signe/sync/dist/index.js +36 -13
- package/dist/node_modules/.pnpm/@signe_sync@3.0.1/node_modules/@signe/sync/dist/index.js.map +1 -0
- package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-HAC622V3.js.map +1 -1
- package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-S74YV6PU.js.map +1 -1
- package/dist/node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/index.js.map +1 -1
- package/dist/presets/animation.js.map +1 -1
- package/dist/presets/faceset.js.map +1 -1
- package/dist/presets/icon.js.map +1 -1
- package/dist/presets/index.js.map +1 -1
- package/dist/presets/lpc.js.map +1 -1
- package/dist/presets/rmspritesheet.js.map +1 -1
- package/dist/services/AbstractSocket.js.map +1 -1
- package/dist/services/keyboardControls.js.map +1 -1
- package/dist/services/loadMap.js +1 -1
- package/dist/services/loadMap.js.map +1 -1
- package/dist/services/mmorpg.js +7 -3
- package/dist/services/mmorpg.js.map +1 -1
- package/dist/services/save.js.map +1 -1
- package/dist/services/standalone.js +1 -1
- package/dist/services/standalone.js.map +1 -1
- package/dist/utils/getEntityProp.js.map +1 -1
- package/package.json +10 -10
- package/src/Game/Map.ts +79 -0
- package/src/RpgClientEngine.ts +10 -1
- package/src/components/character.ce +37 -8
- package/src/components/scenes/canvas.ce +165 -6
- package/src/components/scenes/draw-map.ce +2 -15
- package/src/components/scenes/event-layer.ce +1 -2
- package/src/decorators/spritesheet.ts +8 -0
- package/src/index.ts +1 -0
- package/src/services/mmorpg.ts +8 -2
- package/dist/node_modules/.pnpm/@signe_di@2.10.0/node_modules/@signe/di/dist/index.js.map +0 -1
- package/dist/node_modules/.pnpm/@signe_reactive@2.10.0/node_modules/@signe/reactive/dist/index.js.map +0 -1
- package/dist/node_modules/.pnpm/@signe_room@2.10.0/node_modules/@signe/room/dist/index.js.map +0 -1
- package/dist/node_modules/.pnpm/@signe_sync@2.10.0/node_modules/@signe/sync/dist/client/index.js.map +0 -1
- package/dist/node_modules/.pnpm/@signe_sync@2.10.0/node_modules/@signe/sync/dist/index.js.map +0 -1
package/dist/node_modules/.pnpm/@signe_sync@2.10.0/node_modules/@signe/sync/dist/client/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../../../../../../node_modules/.pnpm/@signe+sync@2.10.0/node_modules/@signe/sync/dist/client/index.js"],"sourcesContent":["// 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: (key, value) => {\n conn.send(\n JSON.stringify({\n action: key,\n value\n })\n );\n },\n on: (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 },\n off: (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 },\n close: () => conn.close(),\n conn\n };\n}\nasync function connectionRoom(options, roomInstance) {\n return createConnection(options, roomInstance);\n}\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}\nasync function getOptimalShard(worldOptions) {\n const {\n host,\n room,\n worldId = \"world-default\",\n // Default World ID is \"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(() => ({ error: \"Unknown error\" }));\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}\nexport {\n PartySocket,\n connectionRoom,\n connectionWorld\n};\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0],"mappings":";;;;AAGA,SAAS,iBAAiB,SAAS,cAAc;CAC/C,MAAM,OAAO,IAAI,YAAY,QAAQ;CACrC,KAAK,iBAAiB,YAAY,UAAU;EAC1C,MAAM,SAAS,KAAK,MAAM,MAAM,KAAK;EACrC,QAAQ,OAAO,MAAf;GACE,KAAK;IACH,KAAK,cAAc,OAAO,OAAO,KAAK;IACtC;;GAEJ;CACF,OAAO;EACL,OAAO,KAAK,UAAU;GACpB,KAAK,KACH,KAAK,UAAU;IACb,QAAQ;IACR;IACD,CAAC,CACH;;EAEH,KAAK,KAAK,OAAO;GACf,KAAK,iBAAiB,YAAY,UAAU;IAC1C,MAAM,SAAS,KAAK,MAAM,MAAM,KAAK;IACrC,IAAI,OAAO,SAAS,KAClB,GAAG,OAAO,MAAM;KAElB;;EAEJ,MAAM,KAAK,OAAO;GAChB,KAAK,oBAAoB,YAAY,UAAU;IAC7C,MAAM,SAAS,KAAK,MAAM,MAAM,KAAK;IACrC,IAAI,OAAO,SAAS,KAClB,GAAG,OAAO,MAAM;KAElB;;EAEJ,aAAa,KAAK,OAAO;EACzB;EACD;;AAEH,eAAe,eAAe,SAAS,cAAc;CACnD,OAAO,iBAAiB,SAAS,aAAa"}
|
package/dist/node_modules/.pnpm/@signe_sync@2.10.0/node_modules/@signe/sync/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["isSignal2"],"sources":["../../../../../../../../../../node_modules/.pnpm/@signe+sync@2.10.0/node_modules/@signe/sync/dist/index.js"],"sourcesContent":["// src/core.ts\nimport {\n isArraySubject,\n isObjectSubject,\n isSignal,\n isComputed\n} from \"@signe/reactive\";\n\n// src/utils.ts\nfunction isFunction(val) {\n return {}.toString.call(val) === \"[object Function]\";\n}\nfunction isClass(obj) {\n return typeof obj === \"function\" && obj.prototype && obj.prototype.constructor === obj;\n}\nvar isObject = (item) => item && typeof item === \"object\" && !Array.isArray(item) && item !== null;\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}\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\n// src/core.ts\nvar DELETE_TOKEN = \"$delete\";\nvar syncClass = (instance, options = {}) => {\n const cacheSync = /* @__PURE__ */ new Map();\n const cachePersist = /* @__PURE__ */ new Map();\n instance.$valuesChanges = {\n set: (path, value) => {\n cacheSync.set(path, value);\n options.onSync?.(cacheSync);\n },\n setPersist: (path, value) => {\n if (path == \"\") path = \".\";\n cachePersist.set(path, value);\n options.onPersist?.(cachePersist);\n },\n has: (path) => {\n return cacheSync.has(path);\n },\n get: (path) => {\n return cacheSync.get(path);\n }\n };\n createSyncClass(instance);\n};\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}\nvar SNAPSHOT_SKIP = Symbol(\"snapshot-skip\");\nvar serializeSnapshotDeep = (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(\n ([key]) => isInstanceOfClass(value) ? key.startsWith(\"__\") || (idKey ? key === idKey : false) : true\n );\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};\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(\n value,\n key,\n options,\n /* @__PURE__ */ new WeakSet()\n );\n if (serialized !== SNAPSHOT_SKIP) {\n persistObject[key] = serialized;\n }\n }\n }\n return persistObject;\n}\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}\nvar createSyncClass = (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 = { ...signalValue };\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)\n 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};\nvar type = (_signal, path, options = {}, currentInstance) => {\n const { syncToClient = true, persist: persist2 = true, transform } = options;\n let init = true;\n const handleObjectSubject = (value, propPath) => {\n const newPath = `${propPath}${value.key ? `.${value.key}` : \"\"}`;\n if ([\"add\", \"reset\", \"update\"].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 };\n const handleArraySubject = (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 ([\"add\", \"update\"].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 };\n const savePath = (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(\n transformedValue == DELETE_TOKEN ? propPath : currentInstance.$path,\n transformedValue\n );\n }\n };\n const setupSubscription = (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 };\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};\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 = function() {\n return this[privatePropertyKey];\n };\n const setter = function(newVal) {\n this[privatePropertyKey] = type(\n newVal,\n propertyKey,\n { classType, persist: persist2, syncToClient, transform },\n this\n );\n };\n Object.defineProperty(target, propertyKey, {\n get: getter,\n set: setter,\n enumerable: true,\n configurable: true\n });\n };\n}\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}\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}\nfunction persist() {\n return sync({\n persist: true,\n syncToClient: false\n });\n}\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\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}\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}\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}\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(\n rootInstance,\n parts.slice(0, i).join(\".\")\n );\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}\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}\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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"}
|