@caspertech/node-metaverse 0.7.50 → 0.7.52

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 (461) hide show
  1. package/dist/examples/Camera/Camera.js +3 -14
  2. package/dist/examples/Camera/Camera.js.map +1 -1
  3. package/dist/examples/ExampleBot.js +66 -87
  4. package/dist/examples/ExampleBot.js.map +1 -1
  5. package/dist/examples/Friends/Friends.js +29 -44
  6. package/dist/examples/Friends/Friends.js.map +1 -1
  7. package/dist/examples/Grid/Name2Key.js +25 -36
  8. package/dist/examples/Grid/Name2Key.js.map +1 -1
  9. package/dist/examples/Groups/Group.js +42 -55
  10. package/dist/examples/Groups/Group.js.map +1 -1
  11. package/dist/examples/Groups/GroupChat.js +55 -68
  12. package/dist/examples/Groups/GroupChat.js.map +1 -1
  13. package/dist/examples/InstantMessages/InstantMessages.js +8 -21
  14. package/dist/examples/InstantMessages/InstantMessages.js.map +1 -1
  15. package/dist/examples/Inventory/Inventory.js +80 -97
  16. package/dist/examples/Inventory/Inventory.js.map +1 -1
  17. package/dist/examples/MFA/MFA.js +24 -40
  18. package/dist/examples/MFA/MFA.js.map +1 -1
  19. package/dist/examples/Money/Money.js +28 -41
  20. package/dist/examples/Money/Money.js.map +1 -1
  21. package/dist/examples/Objects/TaskInventory.js +13 -24
  22. package/dist/examples/Objects/TaskInventory.js.map +1 -1
  23. package/dist/examples/Region/Agents.js +6 -17
  24. package/dist/examples/Region/Agents.js.map +1 -1
  25. package/dist/examples/Region/Estate.js +9 -20
  26. package/dist/examples/Region/Estate.js.map +1 -1
  27. package/dist/examples/Region/Parcels.js +12 -23
  28. package/dist/examples/Region/Parcels.js.map +1 -1
  29. package/dist/examples/Region/Region.js +2 -13
  30. package/dist/examples/Region/Region.js.map +1 -1
  31. package/dist/examples/Region/Settings.js +15 -0
  32. package/dist/examples/Region/Settings.js.map +1 -0
  33. package/dist/examples/Teleports/Teleports.js +22 -35
  34. package/dist/examples/Teleports/Teleports.js.map +1 -1
  35. package/dist/lib/Bot.d.ts +14 -14
  36. package/dist/lib/Bot.js +217 -231
  37. package/dist/lib/Bot.js.map +1 -1
  38. package/dist/lib/LoginHandler.d.ts +3 -3
  39. package/dist/lib/LoginHandler.js +106 -116
  40. package/dist/lib/LoginHandler.js.map +1 -1
  41. package/dist/lib/classes/Agent.d.ts +23 -35
  42. package/dist/lib/classes/Agent.js +96 -108
  43. package/dist/lib/classes/Agent.js.map +1 -1
  44. package/dist/lib/classes/AssetMap.d.ts +18 -95
  45. package/dist/lib/classes/AssetMap.js +86 -16
  46. package/dist/lib/classes/AssetMap.js.map +1 -1
  47. package/dist/lib/classes/AssetRegistry.d.ts +31 -0
  48. package/dist/lib/classes/AssetRegistry.js +26 -0
  49. package/dist/lib/classes/AssetRegistry.js.map +1 -0
  50. package/dist/lib/classes/AssetTypeRegistry.d.ts +21 -0
  51. package/dist/lib/classes/AssetTypeRegistry.js +81 -0
  52. package/dist/lib/classes/AssetTypeRegistry.js.map +1 -0
  53. package/dist/lib/classes/BVH.js.map +1 -1
  54. package/dist/lib/classes/BVHJoint.js.map +1 -1
  55. package/dist/lib/classes/BVHJointKeyframe.d.ts +1 -1
  56. package/dist/lib/classes/BatchQueue.d.ts +2 -2
  57. package/dist/lib/classes/BatchQueue.js +66 -80
  58. package/dist/lib/classes/BatchQueue.js.map +1 -1
  59. package/dist/lib/classes/BatchQueue.spec.js +17 -26
  60. package/dist/lib/classes/BatchQueue.spec.js.map +1 -1
  61. package/dist/lib/classes/BinaryReader.d.ts +66 -0
  62. package/dist/lib/classes/BinaryReader.js +304 -0
  63. package/dist/lib/classes/BinaryReader.js.map +1 -0
  64. package/dist/lib/classes/BinaryReader.spec.js +241 -0
  65. package/dist/lib/classes/BinaryReader.spec.js.map +1 -0
  66. package/dist/lib/classes/BinaryWriter.d.ts +34 -0
  67. package/dist/lib/classes/BinaryWriter.js +192 -0
  68. package/dist/lib/classes/BinaryWriter.js.map +1 -0
  69. package/dist/lib/classes/BinaryWriter.spec.d.ts +1 -0
  70. package/dist/lib/classes/BinaryWriter.spec.js +328 -0
  71. package/dist/lib/classes/BinaryWriter.spec.js.map +1 -0
  72. package/dist/lib/classes/BitPack.d.ts +2 -2
  73. package/dist/lib/classes/BitPack.js +1 -1
  74. package/dist/lib/classes/BitPack.js.map +1 -1
  75. package/dist/lib/classes/BuildMap.d.ts +6 -6
  76. package/dist/lib/classes/BuildMap.js.map +1 -1
  77. package/dist/lib/classes/Caps.d.ts +18 -24
  78. package/dist/lib/classes/Caps.js +278 -297
  79. package/dist/lib/classes/Caps.js.map +1 -1
  80. package/dist/lib/classes/Circuit.d.ts +20 -28
  81. package/dist/lib/classes/Circuit.js +104 -91
  82. package/dist/lib/classes/Circuit.js.map +1 -1
  83. package/dist/lib/classes/ClientCommands.d.ts +3 -3
  84. package/dist/lib/classes/ClientCommands.js.map +1 -1
  85. package/dist/lib/classes/ClientEvents.d.ts +41 -32
  86. package/dist/lib/classes/ClientEvents.js +65 -0
  87. package/dist/lib/classes/ClientEvents.js.map +1 -1
  88. package/dist/lib/classes/CoalescedGameObject.d.ts +2 -2
  89. package/dist/lib/classes/CoalescedGameObject.js +37 -49
  90. package/dist/lib/classes/CoalescedGameObject.js.map +1 -1
  91. package/dist/lib/classes/Color4.d.ts +2 -2
  92. package/dist/lib/classes/Color4.js +42 -42
  93. package/dist/lib/classes/Color4.js.map +1 -1
  94. package/dist/lib/classes/Comms.d.ts +3 -3
  95. package/dist/lib/classes/Comms.js +236 -236
  96. package/dist/lib/classes/Comms.js.map +1 -1
  97. package/dist/lib/classes/ConcurrentQueue.d.ts +3 -3
  98. package/dist/lib/classes/ConcurrentQueue.js +16 -11
  99. package/dist/lib/classes/ConcurrentQueue.js.map +1 -1
  100. package/dist/lib/classes/EventQueueClient.d.ts +6 -6
  101. package/dist/lib/classes/EventQueueClient.js +189 -201
  102. package/dist/lib/classes/EventQueueClient.js.map +1 -1
  103. package/dist/lib/classes/GroupBan.d.ts +3 -3
  104. package/dist/lib/classes/GroupBan.js.map +1 -1
  105. package/dist/lib/classes/GroupMember.d.ts +2 -2
  106. package/dist/lib/classes/GroupRole.d.ts +2 -2
  107. package/dist/lib/classes/IPAddress.d.ts +3 -2
  108. package/dist/lib/classes/IPAddress.js +14 -13
  109. package/dist/lib/classes/IPAddress.js.map +1 -1
  110. package/dist/lib/classes/Inventory.d.ts +7 -15
  111. package/dist/lib/classes/Inventory.js +69 -80
  112. package/dist/lib/classes/Inventory.js.map +1 -1
  113. package/dist/lib/classes/InventoryFolder.d.ts +11 -11
  114. package/dist/lib/classes/InventoryFolder.js +539 -601
  115. package/dist/lib/classes/InventoryFolder.js.map +1 -1
  116. package/dist/lib/classes/InventoryItem.d.ts +15 -11
  117. package/dist/lib/classes/InventoryItem.js +494 -486
  118. package/dist/lib/classes/InventoryItem.js.map +1 -1
  119. package/dist/lib/classes/InventoryTypeRegistry.d.ts +19 -0
  120. package/dist/lib/classes/InventoryTypeRegistry.js +69 -0
  121. package/dist/lib/classes/InventoryTypeRegistry.js.map +1 -0
  122. package/dist/lib/classes/LLGLTFMaterial.d.ts +1 -1
  123. package/dist/lib/classes/LLGLTFMaterial.js +2 -2
  124. package/dist/lib/classes/LLGLTFMaterial.js.map +1 -1
  125. package/dist/lib/classes/LLGLTFMaterial.spec.js +17 -18
  126. package/dist/lib/classes/LLGLTFMaterial.spec.js.map +1 -1
  127. package/dist/lib/classes/LLGLTFMaterialOverride.d.ts +1 -1
  128. package/dist/lib/classes/LLGLTFMaterialOverride.js +119 -118
  129. package/dist/lib/classes/LLGLTFMaterialOverride.js.map +1 -1
  130. package/dist/lib/classes/LLGLTFMaterialOverride.spec.js +70 -71
  131. package/dist/lib/classes/LLGLTFMaterialOverride.spec.js.map +1 -1
  132. package/dist/lib/classes/LLGesture.d.ts +1 -1
  133. package/dist/lib/classes/LLGesture.js +1 -1
  134. package/dist/lib/classes/LLGesture.js.map +1 -1
  135. package/dist/lib/classes/LLGestureAnimationStep.d.ts +1 -1
  136. package/dist/lib/classes/LLGestureAnimationStep.js.map +1 -1
  137. package/dist/lib/classes/LLGestureChatStep.js.map +1 -1
  138. package/dist/lib/classes/LLGestureSoundStep.d.ts +1 -1
  139. package/dist/lib/classes/LLGestureSoundStep.js.map +1 -1
  140. package/dist/lib/classes/LLGestureStep.d.ts +1 -1
  141. package/dist/lib/classes/LLGestureWaitStep.js.map +1 -1
  142. package/dist/lib/classes/LLLindenText.d.ts +2 -4
  143. package/dist/lib/classes/LLLindenText.js +12 -8
  144. package/dist/lib/classes/LLLindenText.js.map +1 -1
  145. package/dist/lib/classes/LLSettings.d.ts +98 -83
  146. package/dist/lib/classes/LLSettings.js +244 -82
  147. package/dist/lib/classes/LLSettings.js.map +1 -1
  148. package/dist/lib/classes/LLSettings.spec.d.ts +1 -0
  149. package/dist/lib/classes/LLSettings.spec.js +27 -0
  150. package/dist/lib/classes/LLSettings.spec.js.map +1 -0
  151. package/dist/lib/classes/LLWearable.d.ts +4 -8
  152. package/dist/lib/classes/LLWearable.js +1 -1
  153. package/dist/lib/classes/LLWearable.js.map +1 -1
  154. package/dist/lib/classes/Logger.d.ts +3 -3
  155. package/dist/lib/classes/Logger.js +1 -1
  156. package/dist/lib/classes/Logger.js.map +1 -1
  157. package/dist/lib/classes/LoginParameters.js.map +1 -1
  158. package/dist/lib/classes/LoginResponse.d.ts +4 -9
  159. package/dist/lib/classes/LoginResponse.js +120 -113
  160. package/dist/lib/classes/LoginResponse.js.map +1 -1
  161. package/dist/lib/classes/MapBlock.d.ts +2 -2
  162. package/dist/lib/classes/MessageBase.d.ts +5 -5
  163. package/dist/lib/classes/MessageClasses.js.map +1 -1
  164. package/dist/lib/classes/ObjectResolver.d.ts +6 -6
  165. package/dist/lib/classes/ObjectResolver.js +127 -152
  166. package/dist/lib/classes/ObjectResolver.js.map +1 -1
  167. package/dist/lib/classes/ObjectStoreFull.d.ts +9 -9
  168. package/dist/lib/classes/ObjectStoreFull.js +176 -192
  169. package/dist/lib/classes/ObjectStoreFull.js.map +1 -1
  170. package/dist/lib/classes/ObjectStoreLite.d.ts +29 -31
  171. package/dist/lib/classes/ObjectStoreLite.js +485 -494
  172. package/dist/lib/classes/ObjectStoreLite.js.map +1 -1
  173. package/dist/lib/classes/Packet.d.ts +2 -2
  174. package/dist/lib/classes/Packet.js +2 -2
  175. package/dist/lib/classes/Packet.js.map +1 -1
  176. package/dist/lib/classes/ParticleSystem.js +1 -1
  177. package/dist/lib/classes/ParticleSystem.js.map +1 -1
  178. package/dist/lib/classes/PrimFacesHelper.d.ts +14 -0
  179. package/dist/lib/classes/PrimFacesHelper.js +75 -0
  180. package/dist/lib/classes/PrimFacesHelper.js.map +1 -0
  181. package/dist/lib/classes/Quaternion.d.ts +31 -6
  182. package/dist/lib/classes/Quaternion.js +237 -49
  183. package/dist/lib/classes/Quaternion.js.map +1 -1
  184. package/dist/lib/classes/Region.d.ts +22 -22
  185. package/dist/lib/classes/Region.js +449 -526
  186. package/dist/lib/classes/Region.js.map +1 -1
  187. package/dist/lib/classes/TarArchive.d.ts +1 -1
  188. package/dist/lib/classes/TarArchive.js.map +1 -1
  189. package/dist/lib/classes/TarFile.js +1 -1
  190. package/dist/lib/classes/TarFile.js.map +1 -1
  191. package/dist/lib/classes/TarReader.d.ts +1 -2
  192. package/dist/lib/classes/TarReader.js +15 -17
  193. package/dist/lib/classes/TarReader.js.map +1 -1
  194. package/dist/lib/classes/TarWriter.d.ts +1 -1
  195. package/dist/lib/classes/TarWriter.js +51 -68
  196. package/dist/lib/classes/TarWriter.js.map +1 -1
  197. package/dist/lib/classes/TextureEntry.d.ts +2 -3
  198. package/dist/lib/classes/TextureEntry.js +12 -12
  199. package/dist/lib/classes/TextureEntry.js.map +1 -1
  200. package/dist/lib/classes/TextureEntryFace.d.ts +4 -4
  201. package/dist/lib/classes/TextureEntryFace.js.map +1 -1
  202. package/dist/lib/classes/UUID.d.ts +2 -2
  203. package/dist/lib/classes/UUID.js +28 -28
  204. package/dist/lib/classes/UUID.js.map +1 -1
  205. package/dist/lib/classes/Utils.d.ts +2 -11
  206. package/dist/lib/classes/Utils.js +72 -328
  207. package/dist/lib/classes/Utils.js.map +1 -1
  208. package/dist/lib/classes/Vector2.d.ts +35 -6
  209. package/dist/lib/classes/Vector2.js +192 -28
  210. package/dist/lib/classes/Vector2.js.map +1 -1
  211. package/dist/lib/classes/Vector3.d.ts +38 -6
  212. package/dist/lib/classes/Vector3.js +230 -49
  213. package/dist/lib/classes/Vector3.js.map +1 -1
  214. package/dist/lib/classes/Vector4.d.ts +36 -6
  215. package/dist/lib/classes/Vector4.js +225 -21
  216. package/dist/lib/classes/Vector4.js.map +1 -1
  217. package/dist/lib/classes/Wearable.d.ts +1 -1
  218. package/dist/lib/classes/Zerocoder.js +2 -2
  219. package/dist/lib/classes/Zerocoder.js.map +1 -1
  220. package/dist/lib/classes/commands/AgentCommands.d.ts +7 -5
  221. package/dist/lib/classes/commands/AgentCommands.js +60 -76
  222. package/dist/lib/classes/commands/AgentCommands.js.map +1 -1
  223. package/dist/lib/classes/commands/AssetCommands.d.ts +5 -10
  224. package/dist/lib/classes/commands/AssetCommands.js +176 -179
  225. package/dist/lib/classes/commands/AssetCommands.js.map +1 -1
  226. package/dist/lib/classes/commands/CommandsBase.d.ts +4 -4
  227. package/dist/lib/classes/commands/CommandsBase.js.map +1 -1
  228. package/dist/lib/classes/commands/CommunicationsCommands.d.ts +3 -3
  229. package/dist/lib/classes/commands/CommunicationsCommands.js +350 -426
  230. package/dist/lib/classes/commands/CommunicationsCommands.js.map +1 -1
  231. package/dist/lib/classes/commands/FriendCommands.d.ts +9 -10
  232. package/dist/lib/classes/commands/FriendCommands.js +238 -236
  233. package/dist/lib/classes/commands/FriendCommands.js.map +1 -1
  234. package/dist/lib/classes/commands/GridCommands.d.ts +3 -3
  235. package/dist/lib/classes/commands/GridCommands.js +299 -336
  236. package/dist/lib/classes/commands/GridCommands.js.map +1 -1
  237. package/dist/lib/classes/commands/GroupCommands.d.ts +2 -2
  238. package/dist/lib/classes/commands/GroupCommands.js +293 -336
  239. package/dist/lib/classes/commands/GroupCommands.js.map +1 -1
  240. package/dist/lib/classes/commands/InventoryCommands.d.ts +4 -4
  241. package/dist/lib/classes/commands/InventoryCommands.js +54 -69
  242. package/dist/lib/classes/commands/InventoryCommands.js.map +1 -1
  243. package/dist/lib/classes/commands/MovementCommands.d.ts +2 -2
  244. package/dist/lib/classes/commands/MovementCommands.js +23 -38
  245. package/dist/lib/classes/commands/MovementCommands.js.map +1 -1
  246. package/dist/lib/classes/commands/NetworkCommands.js +35 -46
  247. package/dist/lib/classes/commands/NetworkCommands.js.map +1 -1
  248. package/dist/lib/classes/commands/ParcelCommands.d.ts +4 -4
  249. package/dist/lib/classes/commands/ParcelCommands.js +64 -77
  250. package/dist/lib/classes/commands/ParcelCommands.js.map +1 -1
  251. package/dist/lib/classes/commands/RegionCommands.d.ts +11 -10
  252. package/dist/lib/classes/commands/RegionCommands.js +1126 -1211
  253. package/dist/lib/classes/commands/RegionCommands.js.map +1 -1
  254. package/dist/lib/classes/commands/TeleportCommands.d.ts +8 -8
  255. package/dist/lib/classes/commands/TeleportCommands.js +58 -58
  256. package/dist/lib/classes/commands/TeleportCommands.js.map +1 -1
  257. package/dist/lib/classes/interfaces/IGameObjectData.d.ts +18 -20
  258. package/dist/lib/classes/interfaces/ILandBlock.d.ts +2 -2
  259. package/dist/lib/classes/interfaces/IObjectStore.d.ts +12 -12
  260. package/dist/lib/classes/interfaces/IResolveJob.d.ts +2 -2
  261. package/dist/lib/classes/interfaces/ITreeBoundingBox.d.ts +2 -2
  262. package/dist/lib/classes/llsd/LLSD.d.ts +12 -0
  263. package/dist/lib/classes/llsd/LLSD.js +135 -0
  264. package/dist/lib/classes/llsd/LLSD.js.map +1 -0
  265. package/dist/lib/classes/llsd/LLSD.spec.d.ts +1 -0
  266. package/dist/lib/classes/llsd/LLSD.spec.js +249 -0
  267. package/dist/lib/classes/llsd/LLSD.spec.js.map +1 -0
  268. package/dist/lib/classes/llsd/LLSDArray.d.ts +26 -3
  269. package/dist/lib/classes/llsd/LLSDArray.js +182 -6
  270. package/dist/lib/classes/llsd/LLSDArray.js.map +1 -1
  271. package/dist/lib/classes/llsd/LLSDBinary.d.ts +7 -0
  272. package/dist/lib/classes/llsd/LLSDBinary.js +114 -0
  273. package/dist/lib/classes/llsd/LLSDBinary.js.map +1 -0
  274. package/dist/lib/classes/llsd/LLSDInteger.d.ts +9 -0
  275. package/dist/lib/classes/llsd/LLSDInteger.js +25 -0
  276. package/dist/lib/classes/llsd/LLSDInteger.js.map +1 -0
  277. package/dist/lib/classes/llsd/LLSDMap.d.ts +16 -5
  278. package/dist/lib/classes/llsd/LLSDMap.js +197 -16
  279. package/dist/lib/classes/llsd/LLSDMap.js.map +1 -1
  280. package/dist/lib/classes/llsd/LLSDNotation.d.ts +11 -0
  281. package/dist/lib/classes/llsd/LLSDNotation.js +271 -0
  282. package/dist/lib/classes/llsd/LLSDNotation.js.map +1 -0
  283. package/dist/lib/classes/llsd/LLSDReal.d.ts +10 -0
  284. package/dist/lib/classes/llsd/LLSDReal.js +71 -0
  285. package/dist/lib/classes/llsd/LLSDReal.js.map +1 -0
  286. package/dist/lib/classes/llsd/LLSDToken.d.ts +1 -1
  287. package/dist/lib/classes/llsd/LLSDTokenContainer.d.ts +2 -2
  288. package/dist/lib/classes/llsd/LLSDTokenGenerator.d.ts +1 -1
  289. package/dist/lib/classes/llsd/LLSDTokenSpec.d.ts +1 -1
  290. package/dist/lib/classes/llsd/LLSDTokenType.d.ts +18 -18
  291. package/dist/lib/classes/llsd/LLSDTokenType.js +18 -18
  292. package/dist/lib/classes/llsd/LLSDTokenType.js.map +1 -1
  293. package/dist/lib/classes/llsd/LLSDType.d.ts +6 -3
  294. package/dist/lib/classes/llsd/LLSDURI.d.ts +7 -0
  295. package/dist/lib/classes/llsd/LLSDURI.js +19 -0
  296. package/dist/lib/classes/llsd/LLSDURI.js.map +1 -0
  297. package/dist/lib/classes/llsd/LLSDXML.d.ts +5 -0
  298. package/dist/lib/classes/llsd/LLSDXML.js +245 -0
  299. package/dist/lib/classes/llsd/LLSDXML.js.map +1 -0
  300. package/dist/lib/classes/messages/ObjectUpdate.d.ts +4 -5
  301. package/dist/lib/classes/messages/ObjectUpdate.js +115 -115
  302. package/dist/lib/classes/messages/ObjectUpdate.js.map +1 -1
  303. package/dist/lib/classes/messages/SimStats.d.ts +3 -2
  304. package/dist/lib/classes/messages/SimStats.js +17 -17
  305. package/dist/lib/classes/messages/SimStats.js.map +1 -1
  306. package/dist/lib/classes/public/Avatar.d.ts +4 -4
  307. package/dist/lib/classes/public/Avatar.js +39 -33
  308. package/dist/lib/classes/public/Avatar.js.map +1 -1
  309. package/dist/lib/classes/public/AvatarQueryResult.d.ts +4 -4
  310. package/dist/lib/classes/public/AvatarQueryResult.js.map +1 -1
  311. package/dist/lib/classes/public/ExtendedMeshData.d.ts +1 -1
  312. package/dist/lib/classes/public/ExtendedMeshData.js.map +1 -1
  313. package/dist/lib/classes/public/ExtraParams.d.ts +6 -6
  314. package/dist/lib/classes/public/ExtraParams.js +36 -39
  315. package/dist/lib/classes/public/ExtraParams.js.map +1 -1
  316. package/dist/lib/classes/public/ExtraParams.spec.js +2 -11
  317. package/dist/lib/classes/public/ExtraParams.spec.js.map +1 -1
  318. package/dist/lib/classes/public/FlexibleData.js.map +1 -1
  319. package/dist/lib/classes/public/Friend.js.map +1 -1
  320. package/dist/lib/classes/public/GameObject.d.ts +23 -21
  321. package/dist/lib/classes/public/GameObject.js +1294 -1306
  322. package/dist/lib/classes/public/GameObject.js.map +1 -1
  323. package/dist/lib/classes/public/GameObject.spec.js +8 -18
  324. package/dist/lib/classes/public/GameObject.spec.js.map +1 -1
  325. package/dist/lib/classes/public/LLMesh.d.ts +5 -7
  326. package/dist/lib/classes/public/LLMesh.js +194 -213
  327. package/dist/lib/classes/public/LLMesh.js.map +1 -1
  328. package/dist/lib/classes/public/LightData.js.map +1 -1
  329. package/dist/lib/classes/public/LightImageData.js.map +1 -1
  330. package/dist/lib/classes/public/Material.js +45 -56
  331. package/dist/lib/classes/public/Material.js.map +1 -1
  332. package/dist/lib/classes/public/MeshData.js.map +1 -1
  333. package/dist/lib/classes/public/Parcel.d.ts +4 -4
  334. package/dist/lib/classes/public/Parcel.js +1 -2
  335. package/dist/lib/classes/public/Parcel.js.map +1 -1
  336. package/dist/lib/classes/public/ReflectionProbeData.d.ts +1 -1
  337. package/dist/lib/classes/public/ReflectionProbeData.js.map +1 -1
  338. package/dist/lib/classes/public/RegionEnvironment.d.ts +14 -13
  339. package/dist/lib/classes/public/RegionEnvironment.js +94 -53
  340. package/dist/lib/classes/public/RegionEnvironment.js.map +1 -1
  341. package/dist/lib/classes/public/RegionEnvironmentSky.d.ts +2 -0
  342. package/dist/lib/classes/public/RegionEnvironmentSky.js +7 -0
  343. package/dist/lib/classes/public/RegionEnvironmentSky.js.map +1 -0
  344. package/dist/lib/classes/public/RegionEnvironmentWater.d.ts +2 -0
  345. package/dist/lib/classes/public/RegionEnvironmentWater.js +7 -0
  346. package/dist/lib/classes/public/RegionEnvironmentWater.js.map +1 -0
  347. package/dist/lib/classes/public/RenderMaterialData.js.map +1 -1
  348. package/dist/lib/classes/public/RenderMaterialParam.d.ts +1 -1
  349. package/dist/lib/classes/public/SculptData.js.map +1 -1
  350. package/dist/lib/classes/public/TextureAnim.js +2 -1
  351. package/dist/lib/classes/public/TextureAnim.js.map +1 -1
  352. package/dist/lib/classes/public/interfaces/GlobalPosition.d.ts +1 -1
  353. package/dist/lib/classes/public/interfaces/LLPhysicsConvex.d.ts +1 -1
  354. package/dist/lib/classes/public/interfaces/LLSkin.d.ts +1 -1
  355. package/dist/lib/classes/public/interfaces/LLSubMesh.d.ts +3 -5
  356. package/dist/lib/classes/public/interfaces/MapLocation.d.ts +3 -3
  357. package/dist/lib/classes/public/interfaces/RegionEnvironmentSkyLLSD.d.ts +26 -0
  358. package/dist/lib/classes/public/interfaces/RegionEnvironmentSkyLLSD.js +3 -0
  359. package/dist/lib/classes/public/interfaces/RegionEnvironmentSkyLLSD.js.map +1 -0
  360. package/dist/lib/classes/public/interfaces/RegionEnvironmentWaterLLSD.d.ts +15 -0
  361. package/dist/lib/classes/public/interfaces/RegionEnvironmentWaterLLSD.js +3 -0
  362. package/dist/lib/classes/public/interfaces/RegionEnvironmentWaterLLSD.js.map +1 -0
  363. package/dist/lib/classes/public/interfaces/SkyPreset.d.ts +3 -3
  364. package/dist/lib/classes/public/interfaces/WaterPreset.d.ts +4 -4
  365. package/dist/lib/deviceToken.json +1 -0
  366. package/dist/lib/enums/AssetType.d.ts +6 -4
  367. package/dist/lib/enums/AssetType.js +5 -3
  368. package/dist/lib/enums/AssetType.js.map +1 -1
  369. package/dist/lib/enums/AttachmentPoint.d.ts +0 -1
  370. package/dist/lib/enums/AttachmentPoint.js +0 -1
  371. package/dist/lib/enums/AttachmentPoint.js.map +1 -1
  372. package/dist/lib/enums/InventoryType.d.ts +3 -5
  373. package/dist/lib/enums/InventoryType.js +2 -4
  374. package/dist/lib/enums/InventoryType.js.map +1 -1
  375. package/dist/lib/enums/LayerType.d.ts +1 -1
  376. package/dist/lib/enums/LayerType.js +1 -1
  377. package/dist/lib/events/AvatarPropertiesReplyEvent.d.ts +1 -1
  378. package/dist/lib/events/BalanceUpdatedEvent.d.ts +2 -2
  379. package/dist/lib/events/BulkUpdateInventoryEvent.d.ts +2 -2
  380. package/dist/lib/events/BulkUpdateInventoryEvent.js.map +1 -1
  381. package/dist/lib/events/ChatEvent.d.ts +5 -5
  382. package/dist/lib/events/FriendOnlineEvent.d.ts +1 -1
  383. package/dist/lib/events/FriendRemovedEvent.d.ts +1 -1
  384. package/dist/lib/events/FriendRequestEvent.d.ts +1 -1
  385. package/dist/lib/events/FriendResponseEvent.d.ts +1 -1
  386. package/dist/lib/events/FriendRightsEvent.d.ts +2 -2
  387. package/dist/lib/events/GroupChatClosedEvent.d.ts +1 -1
  388. package/dist/lib/events/GroupChatEvent.d.ts +1 -1
  389. package/dist/lib/events/GroupChatSessionAgentListEvent.d.ts +1 -1
  390. package/dist/lib/events/GroupChatSessionJoinEvent.d.ts +1 -1
  391. package/dist/lib/events/GroupInviteEvent.d.ts +1 -1
  392. package/dist/lib/events/GroupNoticeEvent.d.ts +1 -1
  393. package/dist/lib/events/GroupProfileReplyEvent.d.ts +2 -2
  394. package/dist/lib/events/InstantMessageEvent.d.ts +3 -3
  395. package/dist/lib/events/InventoryOfferedEvent.d.ts +3 -3
  396. package/dist/lib/events/InventoryResponseEvent.d.ts +1 -1
  397. package/dist/lib/events/LandStatsEvent.d.ts +4 -4
  398. package/dist/lib/events/LandStatsEvent.js.map +1 -1
  399. package/dist/lib/events/LureEvent.d.ts +2 -2
  400. package/dist/lib/events/MapInfoRangeReplyEvent.d.ts +1 -1
  401. package/dist/lib/events/MapInfoReplyEvent.d.ts +2 -2
  402. package/dist/lib/events/NewObjectEvent.d.ts +2 -2
  403. package/dist/lib/events/ObjectKilledEvent.d.ts +2 -2
  404. package/dist/lib/events/ObjectPhysicsDataEvent.d.ts +1 -1
  405. package/dist/lib/events/ObjectResolvedEvent.d.ts +1 -1
  406. package/dist/lib/events/ObjectUpdatedEvent.d.ts +2 -2
  407. package/dist/lib/events/ParcelInfoReplyEvent.d.ts +3 -3
  408. package/dist/lib/events/ParcelPropertiesEvent.d.ts +3 -3
  409. package/dist/lib/events/RegionInfoReplyEvent.d.ts +2 -2
  410. package/dist/lib/events/ScriptDialogEvent.d.ts +1 -1
  411. package/dist/lib/events/SelectedObjectEvent.d.ts +1 -1
  412. package/dist/lib/events/TeleportEvent.d.ts +1 -1
  413. package/dist/lib/index.d.ts +6 -8
  414. package/dist/lib/index.js +4 -7
  415. package/dist/lib/index.js.map +1 -1
  416. package/dist/lib/tsm/common.d.ts +1 -1
  417. package/dist/lib/tsm/common.js +3 -1
  418. package/dist/lib/tsm/common.js.map +1 -1
  419. package/dist/lib/tsm/mat2.d.ts +8 -8
  420. package/dist/lib/tsm/mat2.js +8 -7
  421. package/dist/lib/tsm/mat2.js.map +1 -1
  422. package/dist/lib/tsm/mat3.d.ts +7 -7
  423. package/dist/lib/tsm/mat3.js +8 -7
  424. package/dist/lib/tsm/mat3.js.map +1 -1
  425. package/dist/lib/tsm/mat4.d.ts +9 -9
  426. package/dist/lib/tsm/mat4.js +8 -7
  427. package/dist/lib/tsm/mat4.js.map +1 -1
  428. package/dist/lib/tsm/quat.d.ts +19 -19
  429. package/dist/lib/tsm/quat.js +69 -68
  430. package/dist/lib/tsm/quat.js.map +1 -1
  431. package/dist/lib/tsm/vec2.d.ts +13 -13
  432. package/dist/lib/tsm/vec2.js +30 -29
  433. package/dist/lib/tsm/vec2.js.map +1 -1
  434. package/dist/lib/tsm/vec3.d.ts +16 -16
  435. package/dist/lib/tsm/vec3.js +48 -47
  436. package/dist/lib/tsm/vec3.js.map +1 -1
  437. package/dist/lib/tsm/vec4.d.ts +22 -22
  438. package/dist/lib/tsm/vec4.js +94 -93
  439. package/dist/lib/tsm/vec4.js.map +1 -1
  440. package/eslint.config.mjs +104 -0
  441. package/examples/Inventory/Inventory.ts +4 -2
  442. package/examples/Money/Money.ts +6 -6
  443. package/examples/Objects/TaskInventory.ts +4 -3
  444. package/examples/Region/Settings.ts +19 -0
  445. package/package.json +10 -9
  446. package/.eslintrc +0 -224
  447. package/dist/lib/classes/llsd/LLSDNotationParser.d.ts +0 -9
  448. package/dist/lib/classes/llsd/LLSDNotationParser.js +0 -177
  449. package/dist/lib/classes/llsd/LLSDNotationParser.js.map +0 -1
  450. package/dist/lib/classes/llsd/LLSDNotationParser.spec.js +0 -167
  451. package/dist/lib/classes/llsd/LLSDNotationParser.spec.js.map +0 -1
  452. package/dist/lib/enums/AssetTypeLL.d.ts +0 -27
  453. package/dist/lib/enums/AssetTypeLL.js +0 -32
  454. package/dist/lib/enums/AssetTypeLL.js.map +0 -1
  455. package/dist/lib/enums/HTTPAssets.d.ts +0 -24
  456. package/dist/lib/enums/HTTPAssets.js +0 -29
  457. package/dist/lib/enums/HTTPAssets.js.map +0 -1
  458. package/dist/lib/tsm/test.js +0 -11
  459. package/dist/lib/tsm/test.js.map +0 -1
  460. /package/dist/{lib/classes/llsd/LLSDNotationParser.spec.d.ts → examples/Region/Settings.d.ts} +0 -0
  461. /package/dist/lib/{tsm/test.d.ts → classes/BinaryReader.spec.d.ts} +0 -0
@@ -1,26 +1,17 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.InventoryItem = void 0;
13
4
  const LLSD = require("@caspertech/llsd");
14
5
  const builder = require("xmlbuilder");
15
6
  const crypto = require("crypto");
16
- const __1 = require("..");
17
- const AssetTypeLL_1 = require("../enums/AssetTypeLL");
7
+ const AssetType_1 = require("../enums/AssetType");
18
8
  const FilterResponse_1 = require("../enums/FilterResponse");
19
9
  const InventoryType_1 = require("../enums/InventoryType");
20
10
  const Message_1 = require("../enums/Message");
21
11
  const PacketFlags_1 = require("../enums/PacketFlags");
22
12
  const PermissionMask_1 = require("../enums/PermissionMask");
23
13
  const SaleTypeLL_1 = require("../enums/SaleTypeLL");
14
+ const InventoryFolder_1 = require("./InventoryFolder");
24
15
  const DetachAttachmentIntoInv_1 = require("./messages/DetachAttachmentIntoInv");
25
16
  const MoveInventoryItem_1 = require("./messages/MoveInventoryItem");
26
17
  const MoveTaskInventory_1 = require("./messages/MoveTaskInventory");
@@ -33,7 +24,30 @@ const Utils_1 = require("./Utils");
33
24
  const UUID_1 = require("./UUID");
34
25
  const Vector3_1 = require("./Vector3");
35
26
  const CopyInventoryItem_1 = require("./messages/CopyInventoryItem");
27
+ const AssetTypeRegistry_1 = require("./AssetTypeRegistry");
28
+ const InventoryTypeRegistry_1 = require("./InventoryTypeRegistry");
29
+ const GameObject_1 = require("./public/GameObject");
30
+ const GetScriptRunning_1 = require("./messages/GetScriptRunning");
31
+ const ScriptRunningReply_1 = require("./messages/ScriptRunningReply");
32
+ const SetScriptRunning_1 = require("./messages/SetScriptRunning");
36
33
  class InventoryItem {
34
+ constructor(container, agent) {
35
+ this.container = container;
36
+ this.agent = agent;
37
+ this.assetID = UUID_1.UUID.zero();
38
+ this.permissions = {
39
+ baseMask: 0,
40
+ groupMask: 0,
41
+ nextOwnerMask: 0,
42
+ ownerMask: 0,
43
+ everyoneMask: 0,
44
+ lastOwner: UUID_1.UUID.zero(),
45
+ owner: UUID_1.UUID.zero(),
46
+ creator: UUID_1.UUID.zero(),
47
+ group: UUID_1.UUID.zero(),
48
+ groupOwned: false
49
+ };
50
+ }
37
51
  static fromEmbeddedAsset(lineObj, container, agent) {
38
52
  const item = new InventoryItem(container, agent);
39
53
  let contMetadata = false;
@@ -178,77 +192,20 @@ class InventoryItem {
178
192
  }
179
193
  else if (result.key === 'type') {
180
194
  const typeString = result.value;
181
- item.type = parseInt(AssetTypeLL_1.AssetTypeLL[typeString], 10);
195
+ const type = AssetTypeRegistry_1.AssetTypeRegistry.getTypeFromTypeName(typeString);
196
+ if (type !== undefined) {
197
+ item.type = type.type;
198
+ }
182
199
  }
183
200
  else if (result.key === 'inv_type') {
184
- const typeString = String(result.value);
185
- switch (typeString) {
186
- case 'texture':
187
- item.inventoryType = InventoryType_1.InventoryType.Texture;
188
- break;
189
- case 'sound':
190
- item.inventoryType = InventoryType_1.InventoryType.Sound;
191
- break;
192
- case 'callcard':
193
- item.inventoryType = InventoryType_1.InventoryType.CallingCard;
194
- break;
195
- case 'landmark':
196
- item.inventoryType = InventoryType_1.InventoryType.Landmark;
197
- break;
198
- case 'object':
199
- item.inventoryType = InventoryType_1.InventoryType.Object;
200
- break;
201
- case 'notecard':
202
- item.inventoryType = InventoryType_1.InventoryType.Notecard;
203
- break;
204
- case 'category':
205
- item.inventoryType = InventoryType_1.InventoryType.Category;
206
- break;
207
- case 'root':
208
- item.inventoryType = InventoryType_1.InventoryType.RootCategory;
209
- break;
210
- case 'snapshot':
211
- item.inventoryType = InventoryType_1.InventoryType.Snapshot;
212
- break;
213
- case 'script':
214
- item.inventoryType = InventoryType_1.InventoryType.LSL;
215
- break;
216
- case 'attach':
217
- item.inventoryType = InventoryType_1.InventoryType.Attachment;
218
- break;
219
- case 'wearable':
220
- item.inventoryType = InventoryType_1.InventoryType.Wearable;
221
- break;
222
- case 'animation':
223
- item.inventoryType = InventoryType_1.InventoryType.Animation;
224
- break;
225
- case 'gesture':
226
- item.inventoryType = InventoryType_1.InventoryType.Gesture;
227
- break;
228
- case 'mesh':
229
- item.inventoryType = InventoryType_1.InventoryType.Mesh;
230
- break;
231
- case 'settings':
232
- item.inventoryType = InventoryType_1.InventoryType.Settings;
233
- break;
234
- case 'widget':
235
- item.inventoryType = InventoryType_1.InventoryType.Widget;
236
- break;
237
- case 'person':
238
- item.inventoryType = InventoryType_1.InventoryType.Person;
239
- break;
240
- case 'material':
241
- item.inventoryType = InventoryType_1.InventoryType.Material;
242
- break;
243
- default:
244
- console.error('Unknown inventory type: ' + typeString);
245
- }
201
+ const t = InventoryTypeRegistry_1.InventoryTypeRegistry.getTypeFromTypeName(String(result.value));
202
+ item.inventoryType = t?.type ?? InventoryType_1.InventoryType.Unknown;
246
203
  }
247
204
  else if (result.key === 'flags') {
248
205
  item.flags = parseInt(result.value, 16);
249
206
  }
250
207
  else if (result.key === 'name') {
251
- if (result.value.indexOf('|') !== -1) {
208
+ if (result.value.includes('|')) {
252
209
  item.name = result.value.substring(0, result.value.indexOf('|'));
253
210
  }
254
211
  else {
@@ -257,7 +214,7 @@ class InventoryItem {
257
214
  }
258
215
  }
259
216
  else if (result.key === 'desc') {
260
- if (result.value.indexOf('|') !== -1) {
217
+ if (result.value.includes('|')) {
261
218
  item.description = result.value.substring(0, result.value.indexOf('|'));
262
219
  }
263
220
  else {
@@ -269,7 +226,7 @@ class InventoryItem {
269
226
  item.created = new Date(parseInt(result.value, 10) * 1000);
270
227
  }
271
228
  else if (result.key === 'metadata') {
272
- if (result.value.indexOf('|') !== -1) {
229
+ if (result.value.includes('|')) {
273
230
  item.metadata = result.value.substring(0, result.value.indexOf('|'));
274
231
  }
275
232
  else {
@@ -284,129 +241,116 @@ class InventoryItem {
284
241
  }
285
242
  return item;
286
243
  }
287
- static fromXML(xml) {
288
- return __awaiter(this, void 0, void 0, function* () {
289
- const parsed = yield Utils_1.Utils.parseXML(xml);
290
- if (!parsed['InventoryItem']) {
291
- throw new Error('InventoryItem not found');
292
- }
293
- const inventoryItem = new InventoryItem();
294
- const result = parsed['InventoryItem'];
295
- let prop;
296
- if ((prop = Utils_1.Utils.getFromXMLJS(result, 'Name')) !== undefined) {
297
- inventoryItem.name = prop.toString();
298
- }
299
- if ((prop = Utils_1.Utils.getFromXMLJS(result, 'ID')) !== undefined) {
300
- try {
301
- inventoryItem.itemID = new UUID_1.UUID(prop.toString());
302
- }
303
- catch (error) {
304
- console.error(error);
305
- }
306
- }
307
- if ((prop = Utils_1.Utils.getFromXMLJS(result, 'InvType')) !== undefined) {
308
- inventoryItem.inventoryType = parseInt(prop, 10);
309
- }
310
- if ((prop = Utils_1.Utils.getFromXMLJS(result, 'Type')) !== undefined) {
311
- inventoryItem.type = parseInt(prop, 10);
312
- }
313
- if ((prop = Utils_1.Utils.getFromXMLJS(result, 'CreatorUUID')) !== undefined) {
314
- try {
315
- inventoryItem.permissions.creator = new UUID_1.UUID(prop.toString());
316
- }
317
- catch (err) {
318
- console.error(err);
319
- }
320
- }
321
- if ((prop = Utils_1.Utils.getFromXMLJS(result, 'CreationDate')) !== undefined) {
322
- try {
323
- inventoryItem.created = new Date(parseInt(prop, 10) * 1000);
324
- }
325
- catch (err) {
326
- console.error(err);
327
- }
328
- }
329
- if ((prop = Utils_1.Utils.getFromXMLJS(result, 'Owner')) !== undefined) {
330
- try {
331
- inventoryItem.permissions.owner = new UUID_1.UUID(prop.toString());
332
- }
333
- catch (err) {
334
- console.error(err);
335
- }
244
+ static async fromXML(xml) {
245
+ const parsed = await Utils_1.Utils.parseXML(xml);
246
+ if (!parsed.InventoryItem) {
247
+ throw new Error('InventoryItem not found');
248
+ }
249
+ const inventoryItem = new InventoryItem();
250
+ const result = parsed.InventoryItem;
251
+ let prop = null;
252
+ if ((prop = Utils_1.Utils.getFromXMLJS(result, 'Name')) !== undefined) {
253
+ inventoryItem.name = prop.toString();
254
+ }
255
+ if ((prop = Utils_1.Utils.getFromXMLJS(result, 'ID')) !== undefined) {
256
+ try {
257
+ inventoryItem.itemID = new UUID_1.UUID(prop.toString());
336
258
  }
337
- if ((prop = Utils_1.Utils.getFromXMLJS(result, 'Description')) !== undefined) {
338
- inventoryItem.description = prop.toString();
259
+ catch (error) {
260
+ console.error(error);
339
261
  }
340
- if ((prop = Utils_1.Utils.getFromXMLJS(result, 'AssetType')) !== undefined) {
341
- inventoryItem.type = parseInt(prop, 10);
262
+ }
263
+ if ((prop = Utils_1.Utils.getFromXMLJS(result, 'InvType')) !== undefined) {
264
+ inventoryItem.inventoryType = parseInt(prop, 10);
265
+ }
266
+ if ((prop = Utils_1.Utils.getFromXMLJS(result, 'Type')) !== undefined) {
267
+ inventoryItem.type = parseInt(prop, 10);
268
+ }
269
+ if ((prop = Utils_1.Utils.getFromXMLJS(result, 'ScriptRunning')) !== undefined) {
270
+ inventoryItem.scriptRunning = prop === true;
271
+ }
272
+ if ((prop = Utils_1.Utils.getFromXMLJS(result, 'ScriptMono')) !== undefined) {
273
+ inventoryItem.scriptMono = prop === true;
274
+ }
275
+ if ((prop = Utils_1.Utils.getFromXMLJS(result, 'CreatorUUID')) !== undefined) {
276
+ try {
277
+ inventoryItem.permissions.creator = new UUID_1.UUID(prop.toString());
342
278
  }
343
- if ((prop = Utils_1.Utils.getFromXMLJS(result, 'AssetID')) !== undefined) {
344
- try {
345
- inventoryItem.assetID = new UUID_1.UUID(prop.toString());
346
- }
347
- catch (err) {
348
- console.error(err);
349
- }
279
+ catch (err) {
280
+ console.error(err);
350
281
  }
351
- if ((prop = Utils_1.Utils.getFromXMLJS(result, 'SaleType')) !== undefined) {
352
- inventoryItem.saleType = parseInt(prop, 10);
282
+ }
283
+ if ((prop = Utils_1.Utils.getFromXMLJS(result, 'CreationDate')) !== undefined) {
284
+ try {
285
+ inventoryItem.created = new Date(parseInt(prop, 10) * 1000);
353
286
  }
354
- if ((prop = Utils_1.Utils.getFromXMLJS(result, 'SalePrice')) !== undefined) {
355
- inventoryItem.salePrice = parseInt(prop, 10);
287
+ catch (err) {
288
+ console.error(err);
356
289
  }
357
- if ((prop = Utils_1.Utils.getFromXMLJS(result, 'BasePermissions')) !== undefined) {
358
- inventoryItem.permissions.baseMask = parseInt(prop, 10);
290
+ }
291
+ if ((prop = Utils_1.Utils.getFromXMLJS(result, 'Owner')) !== undefined) {
292
+ try {
293
+ inventoryItem.permissions.owner = new UUID_1.UUID(prop.toString());
359
294
  }
360
- if ((prop = Utils_1.Utils.getFromXMLJS(result, 'CurrentPermissions')) !== undefined) {
361
- inventoryItem.permissions.ownerMask = parseInt(prop, 10);
295
+ catch (err) {
296
+ console.error(err);
362
297
  }
363
- if ((prop = Utils_1.Utils.getFromXMLJS(result, 'EveryonePermissions')) !== undefined) {
364
- inventoryItem.permissions.everyoneMask = parseInt(prop, 10);
298
+ }
299
+ if ((prop = Utils_1.Utils.getFromXMLJS(result, 'Description')) !== undefined) {
300
+ inventoryItem.description = prop.toString();
301
+ }
302
+ if ((prop = Utils_1.Utils.getFromXMLJS(result, 'AssetType')) !== undefined) {
303
+ inventoryItem.type = parseInt(prop, 10);
304
+ }
305
+ if ((prop = Utils_1.Utils.getFromXMLJS(result, 'AssetID')) !== undefined) {
306
+ try {
307
+ inventoryItem.assetID = new UUID_1.UUID(prop.toString());
365
308
  }
366
- if ((prop = Utils_1.Utils.getFromXMLJS(result, 'NextPermissions')) !== undefined) {
367
- inventoryItem.permissions.nextOwnerMask = parseInt(prop, 10);
309
+ catch (err) {
310
+ console.error(err);
368
311
  }
369
- if ((prop = Utils_1.Utils.getFromXMLJS(result, 'Flags')) !== undefined) {
370
- inventoryItem.flags = parseInt(prop, 10);
312
+ }
313
+ if ((prop = Utils_1.Utils.getFromXMLJS(result, 'SaleType')) !== undefined) {
314
+ inventoryItem.saleType = parseInt(prop, 10);
315
+ }
316
+ if ((prop = Utils_1.Utils.getFromXMLJS(result, 'SalePrice')) !== undefined) {
317
+ inventoryItem.salePrice = parseInt(prop, 10);
318
+ }
319
+ if ((prop = Utils_1.Utils.getFromXMLJS(result, 'BasePermissions')) !== undefined) {
320
+ inventoryItem.permissions.baseMask = parseInt(prop, 10);
321
+ }
322
+ if ((prop = Utils_1.Utils.getFromXMLJS(result, 'CurrentPermissions')) !== undefined) {
323
+ inventoryItem.permissions.ownerMask = parseInt(prop, 10);
324
+ }
325
+ if ((prop = Utils_1.Utils.getFromXMLJS(result, 'EveryonePermissions')) !== undefined) {
326
+ inventoryItem.permissions.everyoneMask = parseInt(prop, 10);
327
+ }
328
+ if ((prop = Utils_1.Utils.getFromXMLJS(result, 'NextPermissions')) !== undefined) {
329
+ inventoryItem.permissions.nextOwnerMask = parseInt(prop, 10);
330
+ }
331
+ if ((prop = Utils_1.Utils.getFromXMLJS(result, 'Flags')) !== undefined) {
332
+ inventoryItem.flags = parseInt(prop, 10);
333
+ }
334
+ if ((prop = Utils_1.Utils.getFromXMLJS(result, 'GroupID')) !== undefined) {
335
+ try {
336
+ inventoryItem.permissions.group = new UUID_1.UUID(prop.toString());
371
337
  }
372
- if ((prop = Utils_1.Utils.getFromXMLJS(result, 'GroupID')) !== undefined) {
373
- try {
374
- inventoryItem.permissions.group = new UUID_1.UUID(prop.toString());
375
- }
376
- catch (err) {
377
- console.error(err);
378
- }
338
+ catch (err) {
339
+ console.error(err);
379
340
  }
380
- if ((prop = Utils_1.Utils.getFromXMLJS(result, 'LastOwner')) !== undefined) {
381
- try {
382
- inventoryItem.permissions.lastOwner = new UUID_1.UUID(prop.toString());
383
- }
384
- catch (err) {
385
- console.error(err);
386
- }
341
+ }
342
+ if ((prop = Utils_1.Utils.getFromXMLJS(result, 'LastOwner')) !== undefined) {
343
+ try {
344
+ inventoryItem.permissions.lastOwner = new UUID_1.UUID(prop.toString());
387
345
  }
388
- if ((prop = Utils_1.Utils.getFromXMLJS(result, 'GroupOwned')) !== undefined) {
389
- inventoryItem.permissions.groupOwned = parseInt(prop, 10) > 0;
346
+ catch (err) {
347
+ console.error(err);
390
348
  }
391
- return inventoryItem;
392
- });
393
- }
394
- constructor(container, agent) {
395
- this.container = container;
396
- this.agent = agent;
397
- this.assetID = UUID_1.UUID.zero();
398
- this.permissions = {
399
- baseMask: 0,
400
- groupMask: 0,
401
- nextOwnerMask: 0,
402
- ownerMask: 0,
403
- everyoneMask: 0,
404
- lastOwner: UUID_1.UUID.zero(),
405
- owner: UUID_1.UUID.zero(),
406
- creator: UUID_1.UUID.zero(),
407
- group: UUID_1.UUID.zero(),
408
- groupOwned: false
409
- };
349
+ }
350
+ if ((prop = Utils_1.Utils.getFromXMLJS(result, 'GroupOwned')) !== undefined) {
351
+ inventoryItem.permissions.groupOwned = parseInt(prop, 10) > 0;
352
+ }
353
+ return inventoryItem;
410
354
  }
411
355
  toAsset(indent = '') {
412
356
  const lines = [];
@@ -426,8 +370,8 @@ class InventoryItem {
426
370
  lines.push('\tgroup_id\t' + this.permissions.group.toString());
427
371
  lines.push('}');
428
372
  lines.push('\tasset_id\t' + this.assetID.toString());
429
- lines.push('\ttype\t' + Utils_1.Utils.AssetTypeToHTTPAssetType(this.type));
430
- lines.push('\tinv_type\t' + Utils_1.Utils.InventoryTypeToLLInventoryType(this.inventoryType));
373
+ lines.push('\ttype\t' + AssetTypeRegistry_1.AssetTypeRegistry.getTypeName(this.type));
374
+ lines.push('\tinv_type\t' + InventoryTypeRegistry_1.InventoryTypeRegistry.getTypeName(this.inventoryType));
431
375
  lines.push('\tflags\t' + Utils_1.Utils.numberToFixedHex(this.flags));
432
376
  lines.push('sale_info\t0');
433
377
  lines.push('{');
@@ -473,212 +417,193 @@ class InventoryItem {
473
417
  crc = crc + Math.round(this.created.getTime() / 1000) >>> 0;
474
418
  return crc;
475
419
  }
476
- update() {
477
- return __awaiter(this, void 0, void 0, function* () {
478
- if (this.agent === undefined) {
479
- throw new Error('This inventoryItem is local only and cannot be updated');
480
- }
481
- const msg = new UpdateInventoryItem_1.UpdateInventoryItemMessage();
482
- msg.AgentData = {
483
- AgentID: this.agent.agentID,
484
- SessionID: this.agent.currentRegion.circuit.sessionID,
485
- TransactionID: UUID_1.UUID.random()
486
- };
487
- msg.InventoryData = [{
488
- ItemID: this.itemID,
489
- FolderID: this.parentID,
490
- CreatorID: this.permissions.creator,
491
- OwnerID: this.permissions.owner,
492
- GroupID: this.permissions.group,
493
- BaseMask: this.permissions.baseMask,
494
- OwnerMask: this.permissions.ownerMask,
495
- GroupMask: this.permissions.groupMask,
496
- EveryoneMask: this.permissions.everyoneMask,
497
- NextOwnerMask: this.permissions.nextOwnerMask,
498
- GroupOwned: this.permissions.groupOwned || false,
499
- TransactionID: UUID_1.UUID.zero(),
500
- CallbackID: 0,
501
- Type: this.type,
502
- InvType: this.inventoryType,
503
- Flags: this.flags,
504
- SaleType: this.saleType,
505
- SalePrice: this.salePrice,
506
- Name: Utils_1.Utils.StringToBuffer(this.name),
507
- Description: Utils_1.Utils.StringToBuffer(this.description),
508
- CreationDate: this.created.getTime() / 1000,
509
- CRC: this.getCRC()
510
- }];
511
- const ack = this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
512
- return this.agent.currentRegion.circuit.waitForAck(ack, 10000);
513
- });
420
+ async update() {
421
+ if (this.agent === undefined) {
422
+ throw new Error('This inventoryItem is local only and cannot be updated');
423
+ }
424
+ const msg = new UpdateInventoryItem_1.UpdateInventoryItemMessage();
425
+ msg.AgentData = {
426
+ AgentID: this.agent.agentID,
427
+ SessionID: this.agent.currentRegion.circuit.sessionID,
428
+ TransactionID: UUID_1.UUID.random()
429
+ };
430
+ msg.InventoryData = [{
431
+ ItemID: this.itemID,
432
+ FolderID: this.parentID,
433
+ CreatorID: this.permissions.creator,
434
+ OwnerID: this.permissions.owner,
435
+ GroupID: this.permissions.group,
436
+ BaseMask: this.permissions.baseMask,
437
+ OwnerMask: this.permissions.ownerMask,
438
+ GroupMask: this.permissions.groupMask,
439
+ EveryoneMask: this.permissions.everyoneMask,
440
+ NextOwnerMask: this.permissions.nextOwnerMask,
441
+ GroupOwned: this.permissions.groupOwned ?? false,
442
+ TransactionID: UUID_1.UUID.zero(),
443
+ CallbackID: 0,
444
+ Type: this.type,
445
+ InvType: this.inventoryType,
446
+ Flags: this.flags,
447
+ SaleType: this.saleType,
448
+ SalePrice: this.salePrice,
449
+ Name: Utils_1.Utils.StringToBuffer(this.name),
450
+ Description: Utils_1.Utils.StringToBuffer(this.description),
451
+ CreationDate: this.created.getTime() / 1000,
452
+ CRC: this.getCRC()
453
+ }];
454
+ const ack = this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
455
+ return this.agent.currentRegion.circuit.waitForAck(ack, 10000);
514
456
  }
515
- moveToFolder(targetFolder) {
516
- return __awaiter(this, void 0, void 0, function* () {
517
- if (this.agent !== undefined) {
518
- if (this.container instanceof __1.GameObject) {
519
- const msg = new MoveTaskInventory_1.MoveTaskInventoryMessage();
520
- msg.AgentData = {
521
- AgentID: this.agent.agentID,
522
- SessionID: this.agent.currentRegion.circuit.sessionID,
523
- FolderID: targetFolder.folderID
524
- };
525
- msg.InventoryData = {
526
- LocalID: this.container.ID,
527
- ItemID: this.itemID
528
- };
529
- this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
530
- const response = yield this.agent.currentRegion.circuit.waitForMessage(Message_1.Message.UpdateCreateInventoryItem, 10000, (message) => {
531
- for (const inv of message.InventoryData) {
532
- if (Utils_1.Utils.BufferToStringSimple(inv.Name) === this.name) {
533
- return FilterResponse_1.FilterResponse.Finish;
534
- }
535
- }
536
- return FilterResponse_1.FilterResponse.NoMatch;
537
- });
538
- for (const inv of response.InventoryData) {
457
+ async moveToFolder(targetFolder) {
458
+ if (this.agent !== undefined) {
459
+ if (this.container instanceof GameObject_1.GameObject) {
460
+ const msg = new MoveTaskInventory_1.MoveTaskInventoryMessage();
461
+ msg.AgentData = {
462
+ AgentID: this.agent.agentID,
463
+ SessionID: this.agent.currentRegion.circuit.sessionID,
464
+ FolderID: targetFolder.folderID
465
+ };
466
+ msg.InventoryData = {
467
+ LocalID: this.container.ID,
468
+ ItemID: this.itemID
469
+ };
470
+ this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
471
+ const response = await this.agent.currentRegion.circuit.waitForMessage(Message_1.Message.UpdateCreateInventoryItem, 10000, (message) => {
472
+ for (const inv of message.InventoryData) {
539
473
  if (Utils_1.Utils.BufferToStringSimple(inv.Name) === this.name) {
540
- const item = yield this.agent.inventory.fetchInventoryItem(inv.ItemID);
541
- if (item === null) {
542
- throw new Error('Unable to get inventory item after move');
543
- }
544
- if (!item.parentID.equals(targetFolder.folderID)) {
545
- yield item.moveToFolder(targetFolder);
546
- }
547
- return item;
474
+ return FilterResponse_1.FilterResponse.Finish;
548
475
  }
549
476
  }
550
- throw new Error('Unable to get inventory item after move');
551
- }
552
- else {
553
- const msg = new MoveInventoryItem_1.MoveInventoryItemMessage();
554
- msg.AgentData = {
555
- AgentID: this.agent.agentID,
556
- SessionID: this.agent.currentRegion.circuit.sessionID,
557
- Stamp: false
558
- };
559
- msg.InventoryData = [
560
- {
561
- ItemID: this.itemID,
562
- FolderID: targetFolder.folderID,
563
- NewName: Buffer.alloc(0)
477
+ return FilterResponse_1.FilterResponse.NoMatch;
478
+ });
479
+ for (const inv of response.InventoryData) {
480
+ if (Utils_1.Utils.BufferToStringSimple(inv.Name) === this.name) {
481
+ const item = await this.agent.inventory.fetchInventoryItem(inv.ItemID);
482
+ if (item === null) {
483
+ throw new Error('Unable to get inventory item after move');
484
+ }
485
+ if (!item.parentID.equals(targetFolder.folderID)) {
486
+ await item.moveToFolder(targetFolder);
564
487
  }
565
- ];
566
- const ack = this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
567
- yield this.agent.currentRegion.circuit.waitForAck(ack, 10000);
568
- const item = yield this.agent.inventory.fetchInventoryItem(this.itemID);
569
- if (item === null) {
570
- throw new Error('Unable to find inventory item after move');
488
+ return item;
571
489
  }
572
- return item;
573
490
  }
491
+ throw new Error('Unable to get inventory item after move');
574
492
  }
575
493
  else {
576
- throw new Error('This inventoryItem is local only and cannot be moved to a folder');
577
- }
578
- });
579
- }
580
- delete() {
581
- return __awaiter(this, void 0, void 0, function* () {
582
- if (this.agent !== undefined) {
583
- const msg = new RemoveInventoryItem_1.RemoveInventoryItemMessage();
494
+ const msg = new MoveInventoryItem_1.MoveInventoryItemMessage();
584
495
  msg.AgentData = {
585
496
  AgentID: this.agent.agentID,
586
- SessionID: this.agent.currentRegion.circuit.sessionID
497
+ SessionID: this.agent.currentRegion.circuit.sessionID,
498
+ Stamp: false
587
499
  };
588
500
  msg.InventoryData = [
589
501
  {
590
- ItemID: this.itemID
502
+ ItemID: this.itemID,
503
+ FolderID: targetFolder.folderID,
504
+ NewName: Buffer.alloc(0)
591
505
  }
592
506
  ];
593
507
  const ack = this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
594
- return this.agent.currentRegion.circuit.waitForAck(ack, 10000);
595
- }
596
- else {
597
- throw new Error('This inventoryItem is local only and cannot be deleted');
508
+ await this.agent.currentRegion.circuit.waitForAck(ack, 10000);
509
+ const item = await this.agent.inventory.fetchInventoryItem(this.itemID);
510
+ if (item === null) {
511
+ throw new Error('Unable to find inventory item after move');
512
+ }
513
+ return item;
598
514
  }
599
- });
515
+ }
516
+ else {
517
+ throw new Error('This inventoryItem is local only and cannot be moved to a folder');
518
+ }
519
+ }
520
+ async delete() {
521
+ if (this.agent !== undefined) {
522
+ const msg = new RemoveInventoryItem_1.RemoveInventoryItemMessage();
523
+ msg.AgentData = {
524
+ AgentID: this.agent.agentID,
525
+ SessionID: this.agent.currentRegion.circuit.sessionID
526
+ };
527
+ msg.InventoryData = [
528
+ {
529
+ ItemID: this.itemID
530
+ }
531
+ ];
532
+ const ack = this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
533
+ return this.agent.currentRegion.circuit.waitForAck(ack, 10000);
534
+ }
535
+ else {
536
+ throw new Error('This inventoryItem is local only and cannot be deleted');
537
+ }
600
538
  }
601
539
  exportXML() {
602
- return __awaiter(this, void 0, void 0, function* () {
603
- const document = builder.create('InventoryItem');
604
- document.ele('Name', this.name);
605
- document.ele('ID', this.itemID.toString());
606
- document.ele('InvType', this.inventoryType);
607
- document.ele('CreatorUUID', this.permissions.creator.toString());
608
- document.ele('CreationDate', this.created.getTime() / 1000);
609
- document.ele('Owner', this.permissions.owner.toString());
610
- document.ele('LastOwner', this.permissions.lastOwner.toString());
611
- document.ele('Description', this.description);
612
- document.ele('AssetType', this.type);
613
- document.ele('AssetID', this.assetID.toString());
614
- document.ele('SaleType', this.saleType);
615
- document.ele('SalePrice', this.salePrice);
616
- document.ele('BasePermissions', this.permissions.baseMask);
617
- document.ele('CurrentPermissions', this.permissions.ownerMask);
618
- document.ele('EveryonePermissions', this.permissions.everyoneMask);
619
- document.ele('NextPermissions', this.permissions.nextOwnerMask);
620
- document.ele('Flags', this.flags);
621
- document.ele('GroupID', this.permissions.group.toString());
622
- document.ele('GroupOwned', this.permissions.groupOwned);
623
- return document.end({ pretty: true, allowEmpty: true });
624
- });
540
+ const document = builder.create('InventoryItem');
541
+ document.ele('Name', this.name);
542
+ document.ele('ID', this.itemID.toString());
543
+ document.ele('InvType', this.inventoryType);
544
+ document.ele('CreatorUUID', this.permissions.creator.toString());
545
+ document.ele('CreationDate', this.created.getTime() / 1000);
546
+ document.ele('Owner', this.permissions.owner.toString());
547
+ document.ele('LastOwner', this.permissions.lastOwner.toString());
548
+ document.ele('Description', this.description);
549
+ document.ele('AssetType', this.type);
550
+ document.ele('AssetID', this.assetID.toString());
551
+ document.ele('SaleType', this.saleType);
552
+ document.ele('SalePrice', this.salePrice);
553
+ document.ele('BasePermissions', this.permissions.baseMask);
554
+ document.ele('CurrentPermissions', this.permissions.ownerMask);
555
+ document.ele('EveryonePermissions', this.permissions.everyoneMask);
556
+ document.ele('NextPermissions', this.permissions.nextOwnerMask);
557
+ document.ele('Flags', this.flags);
558
+ document.ele('GroupID', this.permissions.group.toString());
559
+ document.ele('GroupOwned', this.permissions.groupOwned);
560
+ if (this.type === AssetType_1.AssetType.LSLText) {
561
+ document.ele('ScriptRunning', this.scriptRunning);
562
+ document.ele('ScriptMono', this.scriptMono);
563
+ }
564
+ return document.end({ pretty: true, allowEmpty: true });
625
565
  }
626
- detachFromAvatar() {
627
- return __awaiter(this, void 0, void 0, function* () {
566
+ async detachFromAvatar() {
567
+ if (this.agent === undefined) {
568
+ throw new Error('This inventory item was created locally. Please import to the grid.');
569
+ }
570
+ const msg = new DetachAttachmentIntoInv_1.DetachAttachmentIntoInvMessage();
571
+ msg.ObjectData = {
572
+ AgentID: this.agent.agentID,
573
+ ItemID: this.itemID
574
+ };
575
+ const ack = this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
576
+ return this.agent.currentRegion.circuit.waitForAck(ack, 10000);
577
+ }
578
+ async attachToAvatar(attachPoint, timeout = 10000) {
579
+ return new Promise((resolve, reject) => {
628
580
  if (this.agent === undefined) {
629
581
  throw new Error('This inventory item was created locally. Please import to the grid.');
630
582
  }
631
- const msg = new DetachAttachmentIntoInv_1.DetachAttachmentIntoInvMessage();
632
- msg.ObjectData = {
583
+ const rsafi = new RezSingleAttachmentFromInv_1.RezSingleAttachmentFromInvMessage();
584
+ rsafi.AgentData = {
633
585
  AgentID: this.agent.agentID,
634
- ItemID: this.itemID
586
+ SessionID: this.agent.currentRegion.circuit.sessionID
635
587
  };
636
- const ack = this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
637
- return this.agent.currentRegion.circuit.waitForAck(ack, 10000);
638
- });
639
- }
640
- attachToAvatar(attachPoint_1) {
641
- return __awaiter(this, arguments, void 0, function* (attachPoint, timeout = 10000) {
642
- return new Promise((resolve, reject) => {
643
- if (this.agent === undefined) {
644
- throw new Error('This inventory item was created locally. Please import to the grid.');
645
- }
646
- const rsafi = new RezSingleAttachmentFromInv_1.RezSingleAttachmentFromInvMessage();
647
- rsafi.AgentData = {
648
- AgentID: this.agent.agentID,
649
- SessionID: this.agent.currentRegion.circuit.sessionID
650
- };
651
- rsafi.ObjectData = {
652
- ItemID: this.itemID,
653
- OwnerID: this.permissions.owner,
654
- AttachmentPt: 0x80 | attachPoint,
655
- ItemFlags: this.flags,
656
- GroupMask: this.permissions.groupMask,
657
- EveryoneMask: this.permissions.everyoneMask,
658
- NextOwnerMask: this.permissions.nextOwnerMask,
659
- Name: Utils_1.Utils.StringToBuffer(this.name),
660
- Description: Utils_1.Utils.StringToBuffer(this.description)
661
- };
662
- const avatar = this.agent.currentRegion.clientCommands.agent.getAvatar();
663
- if (avatar === undefined) {
664
- throw new Error('Avatar could not be found');
665
- }
666
- let subs = undefined;
667
- let tmout = undefined;
668
- subs = avatar.onAttachmentAdded.subscribe((obj) => {
669
- if (obj.name === this.name) {
670
- if (subs !== undefined) {
671
- subs.unsubscribe();
672
- subs = undefined;
673
- }
674
- if (tmout !== undefined) {
675
- clearTimeout(tmout);
676
- tmout = undefined;
677
- }
678
- resolve(obj);
679
- }
680
- });
681
- setTimeout(() => {
588
+ rsafi.ObjectData = {
589
+ ItemID: this.itemID,
590
+ OwnerID: this.permissions.owner,
591
+ AttachmentPt: 0x80 | attachPoint,
592
+ ItemFlags: this.flags,
593
+ GroupMask: this.permissions.groupMask,
594
+ EveryoneMask: this.permissions.everyoneMask,
595
+ NextOwnerMask: this.permissions.nextOwnerMask,
596
+ Name: Utils_1.Utils.StringToBuffer(this.name),
597
+ Description: Utils_1.Utils.StringToBuffer(this.description)
598
+ };
599
+ const avatar = this.agent.currentRegion.clientCommands.agent.getAvatar();
600
+ if (avatar === undefined) {
601
+ throw new Error('Avatar could not be found');
602
+ }
603
+ let subs = undefined;
604
+ let tmout = undefined;
605
+ subs = avatar.onAttachmentAdded.subscribe((obj) => {
606
+ if (obj.name === this.name) {
682
607
  if (subs !== undefined) {
683
608
  subs.unsubscribe();
684
609
  subs = undefined;
@@ -687,14 +612,25 @@ class InventoryItem {
687
612
  clearTimeout(tmout);
688
613
  tmout = undefined;
689
614
  }
690
- reject(new Error('Attach to avatar timed out'));
691
- }, timeout);
692
- this.agent.currentRegion.circuit.sendMessage(rsafi, PacketFlags_1.PacketFlags.Reliable);
615
+ resolve(obj);
616
+ }
693
617
  });
618
+ setTimeout(() => {
619
+ if (subs !== undefined) {
620
+ subs.unsubscribe();
621
+ subs = undefined;
622
+ }
623
+ if (tmout !== undefined) {
624
+ clearTimeout(tmout);
625
+ tmout = undefined;
626
+ }
627
+ reject(new Error('Attach to avatar timed out'));
628
+ }, timeout);
629
+ this.agent.currentRegion.circuit.sendMessage(rsafi, PacketFlags_1.PacketFlags.Reliable);
694
630
  });
695
631
  }
696
- rezGroupInWorld(position) {
697
- return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
632
+ async rezGroupInWorld(position) {
633
+ return new Promise((resolve, reject) => {
698
634
  if (this.agent === undefined) {
699
635
  reject(new Error('This InventoryItem is local only, so cant rez'));
700
636
  return;
@@ -707,7 +643,7 @@ class InventoryItem {
707
643
  GroupID: UUID_1.UUID.zero()
708
644
  };
709
645
  msg.RezData = {
710
- FromTaskID: (this.container instanceof __1.GameObject) ? this.container.FullID : UUID_1.UUID.zero(),
646
+ FromTaskID: (this.container instanceof GameObject_1.GameObject) ? this.container.FullID : UUID_1.UUID.zero(),
711
647
  BypassRaycast: 1,
712
648
  RayStart: position,
713
649
  RayEnd: position,
@@ -746,17 +682,20 @@ class InventoryItem {
746
682
  let objSub = undefined;
747
683
  const agent = this.agent;
748
684
  const gotObjects = [];
749
- objSub = this.agent.currentRegion.clientEvents.onNewObjectEvent.subscribe((evt) => __awaiter(this, void 0, void 0, function* () {
750
- if (evt.createSelected && !evt.object.resolvedAt) {
751
- yield agent.currentRegion.clientCommands.region.resolveObject(evt.object, {});
752
- }
753
- if (evt.createSelected && !evt.object.claimedForBuild) {
754
- if (evt.object.itemID !== undefined && evt.object.itemID.equals(this.itemID)) {
755
- evt.object.claimedForBuild = true;
756
- gotObjects.push(evt.object);
685
+ objSub = this.agent.currentRegion.clientEvents.onNewObjectEvent.subscribe((evt) => {
686
+ (async () => {
687
+ if (evt.createSelected && !evt.object.resolvedAt) {
688
+ await agent.currentRegion.clientCommands.region.resolveObject(evt.object, {});
757
689
  }
758
- }
759
- }));
690
+ if (evt.createSelected && !evt.object.claimedForBuild) {
691
+ if (evt.object.itemID?.equals(this.itemID)) {
692
+ evt.object.claimedForBuild = true;
693
+ gotObjects.push(evt.object);
694
+ }
695
+ }
696
+ })().catch((_e) => {
697
+ });
698
+ });
760
699
  setTimeout(() => {
761
700
  if (objSub !== undefined) {
762
701
  objSub.unsubscribe();
@@ -771,12 +710,12 @@ class InventoryItem {
771
710
  }, 30000);
772
711
  const camLocation = new Vector3_1.Vector3(position);
773
712
  camLocation.z += (5) + 1;
774
- yield this.agent.currentRegion.clientCommands.agent.setCamera(camLocation, position, 256, new Vector3_1.Vector3([-1.0, 0, 0]), new Vector3_1.Vector3([0.0, 1.0, 0]));
713
+ this.agent.currentRegion.clientCommands.agent.setCamera(camLocation, position, 256, new Vector3_1.Vector3([-1.0, 0, 0]), new Vector3_1.Vector3([0.0, 1.0, 0]));
775
714
  this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
776
- }));
715
+ });
777
716
  }
778
- rezInWorld(position, objectScale) {
779
- return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
717
+ async rezInWorld(position, objectScale) {
718
+ return new Promise((resolve, reject) => {
780
719
  if (this.agent === undefined) {
781
720
  reject(new Error('This InventoryItem is local only, so cant rez'));
782
721
  return;
@@ -789,7 +728,7 @@ class InventoryItem {
789
728
  GroupID: UUID_1.UUID.zero()
790
729
  };
791
730
  msg.RezData = {
792
- FromTaskID: (this.container instanceof __1.GameObject) ? this.container.FullID : UUID_1.UUID.zero(),
731
+ FromTaskID: (this.container instanceof GameObject_1.GameObject) ? this.container.FullID : UUID_1.UUID.zero(),
793
732
  BypassRaycast: 1,
794
733
  RayStart: position,
795
734
  RayEnd: position,
@@ -839,63 +778,69 @@ class InventoryItem {
839
778
  }, 10000);
840
779
  let claimedPrim = false;
841
780
  const agent = this.agent;
842
- objSub = this.agent.currentRegion.clientEvents.onNewObjectEvent.subscribe((evt) => __awaiter(this, void 0, void 0, function* () {
843
- if (evt.createSelected && !evt.object.resolvedAt) {
844
- yield agent.currentRegion.clientCommands.region.resolveObject(evt.object, {});
845
- }
846
- if (evt.createSelected && !evt.object.claimedForBuild && !claimedPrim) {
847
- if (evt.object.itemID !== undefined && evt.object.itemID.equals(this.itemID)) {
848
- if (objSub !== undefined) {
849
- objSub.unsubscribe();
850
- objSub = undefined;
851
- }
852
- if (timeout !== undefined) {
853
- clearTimeout(timeout);
854
- timeout = undefined;
781
+ objSub = this.agent.currentRegion.clientEvents.onNewObjectEvent.subscribe((evt) => {
782
+ (async () => {
783
+ if (evt.createSelected && !evt.object.resolvedAt) {
784
+ await agent.currentRegion.clientCommands.region.resolveObject(evt.object, {});
785
+ }
786
+ if (evt.createSelected && !evt.object.claimedForBuild && !claimedPrim) {
787
+ if (evt.object.itemID?.equals(this.itemID)) {
788
+ if (objSub !== undefined) {
789
+ objSub.unsubscribe();
790
+ objSub = undefined;
791
+ }
792
+ if (timeout !== undefined) {
793
+ clearTimeout(timeout);
794
+ timeout = undefined;
795
+ }
796
+ evt.object.claimedForBuild = true;
797
+ claimedPrim = true;
798
+ resolve(evt.object);
855
799
  }
856
- evt.object.claimedForBuild = true;
857
- claimedPrim = true;
858
- resolve(evt.object);
859
800
  }
860
- }
861
- }));
801
+ })().catch((_e) => {
802
+ });
803
+ });
862
804
  let height = 10;
863
805
  if (objectScale !== undefined) {
864
806
  height = objectScale.z;
865
807
  }
866
808
  const camLocation = new Vector3_1.Vector3(position);
867
809
  camLocation.z += (height / 2) + 1;
868
- yield this.agent.currentRegion.clientCommands.agent.setCamera(camLocation, position, height, new Vector3_1.Vector3([-1.0, 0, 0]), new Vector3_1.Vector3([0.0, 1.0, 0]));
810
+ this.agent.currentRegion.clientCommands.agent.setCamera(camLocation, position, height, new Vector3_1.Vector3([-1.0, 0, 0]), new Vector3_1.Vector3([0.0, 1.0, 0]));
869
811
  this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
870
- }));
812
+ });
871
813
  }
872
- renameInTask(task, newName) {
873
- return __awaiter(this, void 0, void 0, function* () {
874
- this.name = newName;
875
- if (this.agent === undefined) {
876
- return;
877
- }
814
+ async rename(newName) {
815
+ this.name = newName;
816
+ if (this.agent === undefined) {
817
+ return;
818
+ }
819
+ if (this.container instanceof GameObject_1.GameObject) {
878
820
  const msg = new UpdateTaskInventory_1.UpdateTaskInventoryMessage();
821
+ if (this.description == '') {
822
+ this.description = '(No Description)';
823
+ }
879
824
  msg.AgentData = {
880
825
  AgentID: this.agent.agentID,
881
826
  SessionID: this.agent.currentRegion.circuit.sessionID
882
827
  };
883
828
  msg.UpdateData = {
884
829
  Key: 0,
885
- LocalID: task.ID
830
+ LocalID: this.container.ID
886
831
  };
887
832
  msg.InventoryData = {
888
833
  ItemID: this.itemID,
889
834
  FolderID: this.parentID,
890
835
  CreatorID: this.permissions.creator,
891
- OwnerID: this.permissions.owner,
836
+ OwnerID: this.agent.agentID,
892
837
  GroupID: this.permissions.group,
893
838
  BaseMask: this.permissions.baseMask,
894
839
  OwnerMask: this.permissions.ownerMask,
895
840
  GroupMask: this.permissions.groupMask,
896
841
  EveryoneMask: this.permissions.everyoneMask,
897
842
  NextOwnerMask: this.permissions.nextOwnerMask,
898
- GroupOwned: this.permissions.groupOwned || false,
843
+ GroupOwned: this.permissions.groupOwned ?? false,
899
844
  TransactionID: UUID_1.UUID.zero(),
900
845
  Type: this.type,
901
846
  InvType: this.inventoryType,
@@ -908,85 +853,148 @@ class InventoryItem {
908
853
  CRC: this.getCRC()
909
854
  };
910
855
  return this.agent.currentRegion.circuit.waitForAck(this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable), 10000);
856
+ }
857
+ else if (this.container instanceof InventoryFolder_1.InventoryFolder) {
858
+ this.name = newName;
859
+ return this.update();
860
+ }
861
+ else {
862
+ throw new Error('Item has no container, cannot be renamed');
863
+ }
864
+ }
865
+ async isScriptRunning() {
866
+ if (this.type !== AssetType_1.AssetType.LSLText) {
867
+ throw new Error('Item is not a script');
868
+ }
869
+ if (!(this.container instanceof GameObject_1.GameObject)) {
870
+ throw new Error('Script can only be running inside a GameObject container');
871
+ }
872
+ const isr = new GetScriptRunning_1.GetScriptRunningMessage();
873
+ isr.Script = {
874
+ ObjectID: this.container.FullID,
875
+ ItemID: this.itemID
876
+ };
877
+ const objID = this.container.FullID;
878
+ const event = this.container.region.clientEvents.waitForEvent(this.container.region.clientEvents.onScriptRunningReply, (evt) => {
879
+ if (evt.ItemID.equals(this.itemID) &&
880
+ evt.ObjectID.equals(objID)) {
881
+ return FilterResponse_1.FilterResponse.Finish;
882
+ }
883
+ return FilterResponse_1.FilterResponse.NoMatch;
884
+ });
885
+ const legacy = this.container.region.circuit.sendAndWaitForMessage(isr, PacketFlags_1.PacketFlags.Reliable, Message_1.Message.ScriptRunningReply, 10000, (message) => {
886
+ if (message.Script.ItemID.equals(this.itemID) &&
887
+ message.Script.ObjectID.equals(objID)) {
888
+ return FilterResponse_1.FilterResponse.Finish;
889
+ }
890
+ return FilterResponse_1.FilterResponse.NoMatch;
911
891
  });
892
+ const result = await Promise.race([event, legacy]);
893
+ if (result instanceof ScriptRunningReply_1.ScriptRunningReplyMessage) {
894
+ this.scriptRunning = result.Script.Running;
895
+ }
896
+ else {
897
+ this.scriptRunning = result.Running;
898
+ this.scriptMono = result.Mono;
899
+ }
900
+ return this.scriptRunning;
912
901
  }
913
- waitForCallbackID(callbackID) {
914
- return __awaiter(this, void 0, void 0, function* () {
915
- if (!this.agent) {
916
- throw new Error('No active agent');
917
- }
918
- return Utils_1.Utils.waitOrTimeOut(this.agent.currentRegion.clientEvents.onBulkUpdateInventoryEvent, 10000, (event) => {
919
- for (const item of event.itemData) {
920
- if (item.callbackID === callbackID) {
921
- return FilterResponse_1.FilterResponse.Finish;
922
- }
902
+ async copyTo(target, name) {
903
+ const msg = new CopyInventoryItem_1.CopyInventoryItemMessage();
904
+ if (this.agent === undefined) {
905
+ throw new Error('No active agent');
906
+ }
907
+ msg.AgentData = {
908
+ AgentID: this.agent.agentID,
909
+ SessionID: this.agent.currentRegion.circuit.sessionID
910
+ };
911
+ const bytes = crypto.randomBytes(4);
912
+ const callbackID = bytes.readUInt32LE(0);
913
+ msg.InventoryData = [{
914
+ CallbackID: callbackID,
915
+ OldAgentID: this.agent.agentID,
916
+ OldItemID: this.itemID,
917
+ NewFolderID: target.folderID,
918
+ NewName: Utils_1.Utils.StringToBuffer(name)
919
+ }];
920
+ this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
921
+ const cbMsg = await this.waitForCallbackID(callbackID);
922
+ for (const cbItem of cbMsg.itemData) {
923
+ if (cbItem.callbackID === callbackID) {
924
+ const item = await this.agent.inventory.fetchInventoryItem(cbItem.itemID);
925
+ if (item !== null) {
926
+ return item;
923
927
  }
924
- return FilterResponse_1.FilterResponse.NoMatch;
925
- });
926
- });
928
+ }
929
+ }
930
+ throw new Error('Unable to locate inventory item after copy');
927
931
  }
928
- copyTo(target, name) {
929
- return __awaiter(this, void 0, void 0, function* () {
930
- const msg = new CopyInventoryItem_1.CopyInventoryItemMessage();
931
- if (this.agent === undefined) {
932
- throw new Error('No active agent');
932
+ async updateScript(scriptAsset, running = true, target = 'mono') {
933
+ if (this.agent === undefined) {
934
+ throw new Error('This item was created locally and can\'t be updated');
935
+ }
936
+ if (this.container instanceof GameObject_1.GameObject) {
937
+ try {
938
+ const result = await this.agent.currentRegion.caps.capsPostXML('UpdateScriptTask', {
939
+ 'item_id': new LLSD.UUID(this.itemID.toString()),
940
+ 'task_id': new LLSD.UUID(this.container.FullID.toString()),
941
+ 'is_script_running': running ? 1 : 0,
942
+ 'target': target
943
+ });
944
+ if (result.uploader) {
945
+ const uploader = result.uploader;
946
+ const uploadResult = await this.agent.currentRegion.caps.capsRequestUpload(uploader, scriptAsset);
947
+ if (uploadResult.state && uploadResult.state === 'complete') {
948
+ return new UUID_1.UUID(uploadResult.new_asset.toString());
949
+ }
950
+ }
951
+ throw new Error('Asset upload failed');
933
952
  }
953
+ catch (err) {
954
+ console.error(err);
955
+ throw err;
956
+ }
957
+ }
958
+ else {
959
+ throw new Error('Agent inventory not supported just yet');
960
+ }
961
+ }
962
+ async setScriptRunning(running) {
963
+ if (this.agent === undefined) {
964
+ throw new Error('This item was created locally and can\'t be updated');
965
+ }
966
+ if (this.type !== AssetType_1.AssetType.LSLText) {
967
+ throw new Error('This is not a script');
968
+ }
969
+ if (this.container instanceof GameObject_1.GameObject) {
970
+ const msg = new SetScriptRunning_1.SetScriptRunningMessage();
934
971
  msg.AgentData = {
935
972
  AgentID: this.agent.agentID,
936
- SessionID: this.agent.currentRegion.circuit.sessionID
973
+ SessionID: this.agent.currentRegion.circuit.sessionID,
937
974
  };
938
- const bytes = crypto.randomBytes(4);
939
- const callbackID = bytes.readUInt32LE(0);
940
- msg.InventoryData = [{
941
- CallbackID: callbackID,
942
- OldAgentID: this.agent.agentID,
943
- OldItemID: this.itemID,
944
- NewFolderID: target.folderID,
945
- NewName: Utils_1.Utils.StringToBuffer(name)
946
- }];
947
- this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
948
- const cbMsg = yield this.waitForCallbackID(callbackID);
949
- for (const cbItem of cbMsg.itemData) {
950
- if (cbItem.callbackID === callbackID) {
951
- const item = yield this.agent.inventory.fetchInventoryItem(cbItem.itemID);
952
- if (item !== null) {
953
- return item;
954
- }
955
- }
956
- }
957
- throw new Error('Unable to locate inventory item after copy');
958
- });
975
+ msg.Script = {
976
+ ObjectID: this.container.FullID,
977
+ ItemID: this.itemID,
978
+ Running: running
979
+ };
980
+ const ack = this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
981
+ return this.agent.currentRegion.circuit.waitForAck(ack, 10000);
982
+ }
983
+ else {
984
+ throw new Error('Script must be in an object to set state');
985
+ }
959
986
  }
960
- updateScript(scriptAsset) {
961
- return __awaiter(this, void 0, void 0, function* () {
962
- if (this.agent === undefined) {
963
- throw new Error('This item was created locally and can\'t be updated');
964
- }
965
- if (this.container instanceof __1.GameObject) {
966
- try {
967
- const result = yield this.agent.currentRegion.caps.capsPostXML('UpdateScriptTask', {
968
- 'item_id': new LLSD.UUID(this.itemID.toString()),
969
- 'task_id': new LLSD.UUID(this.container.FullID.toString()),
970
- 'is_script_running': true,
971
- 'target': 'mono'
972
- });
973
- if (result['uploader']) {
974
- const uploader = result['uploader'];
975
- const uploadResult = yield this.agent.currentRegion.caps.capsRequestUpload(uploader, scriptAsset);
976
- if (uploadResult['state'] && uploadResult['state'] === 'complete') {
977
- return new UUID_1.UUID(uploadResult['new_asset'].toString());
978
- }
979
- }
980
- throw new Error('Asset upload failed');
981
- }
982
- catch (err) {
983
- console.error(err);
984
- throw err;
987
+ async waitForCallbackID(callbackID) {
988
+ if (!this.agent) {
989
+ throw new Error('No active agent');
990
+ }
991
+ return Utils_1.Utils.waitOrTimeOut(this.agent.currentRegion.clientEvents.onBulkUpdateInventoryEvent, 10000, (event) => {
992
+ for (const item of event.itemData) {
993
+ if (item.callbackID === callbackID) {
994
+ return FilterResponse_1.FilterResponse.Finish;
985
995
  }
986
996
  }
987
- else {
988
- throw new Error('Agent inventory not supported just yet');
989
- }
997
+ return FilterResponse_1.FilterResponse.NoMatch;
990
998
  });
991
999
  }
992
1000
  }