@dcl/protocol 1.0.0-2731649607.commit-890a990 → 1.0.0-27574288540.commit-f0df3e0

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 (529) hide show
  1. package/README.md +269 -0
  2. package/out-js/about.gen.d.ts +1 -0
  3. package/out-js/about.gen.js +6 -0
  4. package/out-js/about.gen.js.map +1 -0
  5. package/out-js/comms.gen.d.ts +1 -0
  6. package/out-js/comms.gen.js +6 -0
  7. package/out-js/comms.gen.js.map +1 -0
  8. package/out-js/decentraland/common/border_rect.gen.d.ts +49 -0
  9. package/out-js/decentraland/common/border_rect.gen.js +201 -0
  10. package/out-js/decentraland/common/border_rect.gen.js.map +1 -0
  11. package/out-js/decentraland/common/colors.gen.d.ts +59 -0
  12. package/out-js/decentraland/common/colors.gen.js +260 -0
  13. package/out-js/decentraland/common/colors.gen.js.map +1 -0
  14. package/out-js/decentraland/common/content_mapping.gen.d.ts +31 -0
  15. package/out-js/decentraland/common/content_mapping.gen.js +80 -0
  16. package/out-js/decentraland/common/content_mapping.gen.js.map +1 -0
  17. package/out-js/decentraland/common/sdk/user_data.gen.d.ts +63 -0
  18. package/out-js/decentraland/common/sdk/user_data.gen.js +330 -0
  19. package/out-js/decentraland/common/sdk/user_data.gen.js.map +1 -0
  20. package/out-js/decentraland/common/texture.gen.d.ts +105 -0
  21. package/out-js/decentraland/common/texture.gen.js +475 -0
  22. package/out-js/decentraland/common/texture.gen.js.map +1 -0
  23. package/out-js/decentraland/common/vectors.gen.d.ts +71 -0
  24. package/out-js/decentraland/common/vectors.gen.js +338 -0
  25. package/out-js/decentraland/common/vectors.gen.js.map +1 -0
  26. package/out-js/decentraland/kernel/apis/comms_api.gen.d.ts +206 -0
  27. package/out-js/decentraland/kernel/apis/comms_api.gen.js +792 -0
  28. package/out-js/decentraland/kernel/apis/comms_api.gen.js.map +1 -0
  29. package/out-js/decentraland/kernel/apis/communications_controller.gen.d.ts +105 -0
  30. package/out-js/decentraland/kernel/apis/communications_controller.gen.js +400 -0
  31. package/out-js/decentraland/kernel/apis/communications_controller.gen.js.map +1 -0
  32. package/out-js/decentraland/kernel/apis/dev_tools.gen.d.ts +58 -0
  33. package/out-js/decentraland/kernel/apis/dev_tools.gen.js +142 -0
  34. package/out-js/decentraland/kernel/apis/dev_tools.gen.js.map +1 -0
  35. package/out-js/decentraland/kernel/apis/engine_api.gen.d.ts +338 -0
  36. package/out-js/decentraland/kernel/apis/engine_api.gen.js +1452 -0
  37. package/out-js/decentraland/kernel/apis/engine_api.gen.js.map +1 -0
  38. package/out-js/decentraland/kernel/apis/environment_api.gen.d.ts +283 -0
  39. package/out-js/decentraland/kernel/apis/environment_api.gen.js +1122 -0
  40. package/out-js/decentraland/kernel/apis/environment_api.gen.js.map +1 -0
  41. package/out-js/decentraland/kernel/apis/ethereum_controller.gen.d.ts +225 -0
  42. package/out-js/decentraland/kernel/apis/ethereum_controller.gen.js +878 -0
  43. package/out-js/decentraland/kernel/apis/ethereum_controller.gen.js.map +1 -0
  44. package/out-js/decentraland/kernel/apis/parcel_identity.gen.d.ts +146 -0
  45. package/out-js/decentraland/kernel/apis/parcel_identity.gen.js +557 -0
  46. package/out-js/decentraland/kernel/apis/parcel_identity.gen.js.map +1 -0
  47. package/out-js/decentraland/kernel/apis/permissions.gen.d.ts +100 -0
  48. package/out-js/decentraland/kernel/apis/permissions.gen.js +360 -0
  49. package/out-js/decentraland/kernel/apis/permissions.gen.js.map +1 -0
  50. package/out-js/decentraland/kernel/apis/players.gen.d.ts +127 -0
  51. package/out-js/decentraland/kernel/apis/players.gen.js +372 -0
  52. package/out-js/decentraland/kernel/apis/players.gen.js.map +1 -0
  53. package/out-js/decentraland/kernel/apis/portable_experiences.gen.d.ts +178 -0
  54. package/out-js/decentraland/kernel/apis/portable_experiences.gen.js +607 -0
  55. package/out-js/decentraland/kernel/apis/portable_experiences.gen.js.map +1 -0
  56. package/out-js/decentraland/kernel/apis/restricted_actions.gen.d.ts +303 -0
  57. package/out-js/decentraland/kernel/apis/restricted_actions.gen.js +1056 -0
  58. package/out-js/decentraland/kernel/apis/restricted_actions.gen.js.map +1 -0
  59. package/out-js/decentraland/kernel/apis/runtime.gen.d.ts +217 -0
  60. package/out-js/decentraland/kernel/apis/runtime.gen.js +801 -0
  61. package/out-js/decentraland/kernel/apis/runtime.gen.js.map +1 -0
  62. package/out-js/decentraland/kernel/apis/scene.gen.d.ts +59 -0
  63. package/out-js/decentraland/kernel/apis/scene.gen.js +171 -0
  64. package/out-js/decentraland/kernel/apis/scene.gen.js.map +1 -0
  65. package/out-js/decentraland/kernel/apis/signed_fetch.gen.d.ts +139 -0
  66. package/out-js/decentraland/kernel/apis/signed_fetch.gen.js +615 -0
  67. package/out-js/decentraland/kernel/apis/signed_fetch.gen.js.map +1 -0
  68. package/out-js/decentraland/kernel/apis/social_controller.gen.d.ts +72 -0
  69. package/out-js/decentraland/kernel/apis/social_controller.gen.js +207 -0
  70. package/out-js/decentraland/kernel/apis/social_controller.gen.js.map +1 -0
  71. package/out-js/decentraland/kernel/apis/testing.gen.d.ts +249 -0
  72. package/out-js/decentraland/kernel/apis/testing.gen.js +1073 -0
  73. package/out-js/decentraland/kernel/apis/testing.gen.js.map +1 -0
  74. package/out-js/decentraland/kernel/apis/user_action_module.gen.d.ts +56 -0
  75. package/out-js/decentraland/kernel/apis/user_action_module.gen.js +128 -0
  76. package/out-js/decentraland/kernel/apis/user_action_module.gen.js.map +1 -0
  77. package/out-js/decentraland/kernel/apis/user_identity.gen.d.ts +86 -0
  78. package/out-js/decentraland/kernel/apis/user_identity.gen.js +236 -0
  79. package/out-js/decentraland/kernel/apis/user_identity.gen.js.map +1 -0
  80. package/out-js/decentraland/kernel/comms/rfc4/comms.gen.d.ts +334 -0
  81. package/out-js/decentraland/kernel/comms/rfc4/comms.gen.js +2093 -0
  82. package/out-js/decentraland/kernel/comms/rfc4/comms.gen.js.map +1 -0
  83. package/out-js/decentraland/kernel/comms/rfc5/ws_comms.gen.d.ts +183 -0
  84. package/out-js/decentraland/kernel/comms/rfc5/ws_comms.gen.js +906 -0
  85. package/out-js/decentraland/kernel/comms/rfc5/ws_comms.gen.js.map +1 -0
  86. package/out-js/decentraland/kernel/comms/v3/archipelago.gen.d.ts +224 -0
  87. package/out-js/decentraland/kernel/comms/v3/archipelago.gen.js +1204 -0
  88. package/out-js/decentraland/kernel/comms/v3/archipelago.gen.js.map +1 -0
  89. package/out-js/decentraland/quests/definitions.gen.d.ts +541 -0
  90. package/out-js/decentraland/quests/definitions.gen.js +2728 -0
  91. package/out-js/decentraland/quests/definitions.gen.js.map +1 -0
  92. package/out-js/decentraland/realm/about.gen.d.ts +229 -0
  93. package/out-js/decentraland/realm/about.gen.js +1185 -0
  94. package/out-js/decentraland/realm/about.gen.js.map +1 -0
  95. package/out-js/decentraland/sdk/components/animator.gen.d.ts +62 -0
  96. package/out-js/decentraland/sdk/components/animator.gen.js +192 -0
  97. package/out-js/decentraland/sdk/components/animator.gen.js.map +1 -0
  98. package/out-js/decentraland/sdk/components/audio_source.gen.d.ts +61 -0
  99. package/out-js/decentraland/sdk/components/audio_source.gen.js +151 -0
  100. package/out-js/decentraland/sdk/components/audio_source.gen.js.map +1 -0
  101. package/out-js/decentraland/sdk/components/audio_stream.gen.d.ts +50 -0
  102. package/out-js/decentraland/sdk/components/audio_stream.gen.js +138 -0
  103. package/out-js/decentraland/sdk/components/audio_stream.gen.js.map +1 -0
  104. package/out-js/decentraland/sdk/components/avatar_attach.gen.d.ts +76 -0
  105. package/out-js/decentraland/sdk/components/avatar_attach.gen.js +262 -0
  106. package/out-js/decentraland/sdk/components/avatar_attach.gen.js.map +1 -0
  107. package/out-js/decentraland/sdk/components/avatar_base.gen.d.ts +36 -0
  108. package/out-js/decentraland/sdk/components/avatar_base.gen.js +129 -0
  109. package/out-js/decentraland/sdk/components/avatar_base.gen.js.map +1 -0
  110. package/out-js/decentraland/sdk/components/avatar_emote_command.gen.d.ts +37 -0
  111. package/out-js/decentraland/sdk/components/avatar_emote_command.gen.js +95 -0
  112. package/out-js/decentraland/sdk/components/avatar_emote_command.gen.js.map +1 -0
  113. package/out-js/decentraland/sdk/components/avatar_equipped_data.gen.d.ts +36 -0
  114. package/out-js/decentraland/sdk/components/avatar_equipped_data.gen.js +90 -0
  115. package/out-js/decentraland/sdk/components/avatar_equipped_data.gen.js.map +1 -0
  116. package/out-js/decentraland/sdk/components/avatar_modifier_area.gen.d.ts +60 -0
  117. package/out-js/decentraland/sdk/components/avatar_modifier_area.gen.js +153 -0
  118. package/out-js/decentraland/sdk/components/avatar_modifier_area.gen.js.map +1 -0
  119. package/out-js/decentraland/sdk/components/avatar_shape.gen.d.ts +82 -0
  120. package/out-js/decentraland/sdk/components/avatar_shape.gen.js +298 -0
  121. package/out-js/decentraland/sdk/components/avatar_shape.gen.js.map +1 -0
  122. package/out-js/decentraland/sdk/components/billboard.gen.d.ts +54 -0
  123. package/out-js/decentraland/sdk/components/billboard.gen.js +128 -0
  124. package/out-js/decentraland/sdk/components/billboard.gen.js.map +1 -0
  125. package/out-js/decentraland/sdk/components/camera_mode.gen.d.ts +36 -0
  126. package/out-js/decentraland/sdk/components/camera_mode.gen.js +70 -0
  127. package/out-js/decentraland/sdk/components/camera_mode.gen.js.map +1 -0
  128. package/out-js/decentraland/sdk/components/camera_mode_area.gen.d.ts +48 -0
  129. package/out-js/decentraland/sdk/components/camera_mode_area.gen.js +85 -0
  130. package/out-js/decentraland/sdk/components/camera_mode_area.gen.js.map +1 -0
  131. package/out-js/decentraland/sdk/components/common/camera_type.gen.d.ts +10 -0
  132. package/out-js/decentraland/sdk/components/common/camera_type.gen.js +46 -0
  133. package/out-js/decentraland/sdk/components/common/camera_type.gen.js.map +1 -0
  134. package/out-js/decentraland/sdk/components/common/id.gen.d.ts +1 -0
  135. package/out-js/decentraland/sdk/components/common/id.gen.js +6 -0
  136. package/out-js/decentraland/sdk/components/common/id.gen.js.map +1 -0
  137. package/out-js/decentraland/sdk/components/common/input_action.gen.d.ts +41 -0
  138. package/out-js/decentraland/sdk/components/common/input_action.gen.js +209 -0
  139. package/out-js/decentraland/sdk/components/common/input_action.gen.js.map +1 -0
  140. package/out-js/decentraland/sdk/components/common/loading_state.gen.d.ts +11 -0
  141. package/out-js/decentraland/sdk/components/common/loading_state.gen.js +57 -0
  142. package/out-js/decentraland/sdk/components/common/loading_state.gen.js.map +1 -0
  143. package/out-js/decentraland/sdk/components/common/raycast_hit.gen.d.ts +45 -0
  144. package/out-js/decentraland/sdk/components/common/raycast_hit.gen.js +163 -0
  145. package/out-js/decentraland/sdk/components/common/raycast_hit.gen.js.map +1 -0
  146. package/out-js/decentraland/sdk/components/common/texts.gen.d.ts +23 -0
  147. package/out-js/decentraland/sdk/components/common/texts.gen.js +120 -0
  148. package/out-js/decentraland/sdk/components/common/texts.gen.js.map +1 -0
  149. package/out-js/decentraland/sdk/components/engine_info.gen.d.ts +41 -0
  150. package/out-js/decentraland/sdk/components/engine_info.gen.js +95 -0
  151. package/out-js/decentraland/sdk/components/engine_info.gen.js.map +1 -0
  152. package/out-js/decentraland/sdk/components/gltf_container.gen.d.ts +41 -0
  153. package/out-js/decentraland/sdk/components/gltf_container.gen.js +101 -0
  154. package/out-js/decentraland/sdk/components/gltf_container.gen.js.map +1 -0
  155. package/out-js/decentraland/sdk/components/gltf_container_loading_state.gen.d.ts +35 -0
  156. package/out-js/decentraland/sdk/components/gltf_container_loading_state.gen.js +70 -0
  157. package/out-js/decentraland/sdk/components/gltf_container_loading_state.gen.js.map +1 -0
  158. package/out-js/decentraland/sdk/components/gltf_node_modifiers.gen.d.ts +57 -0
  159. package/out-js/decentraland/sdk/components/gltf_node_modifiers.gen.js +164 -0
  160. package/out-js/decentraland/sdk/components/gltf_node_modifiers.gen.js.map +1 -0
  161. package/out-js/decentraland/sdk/components/material.gen.d.ts +108 -0
  162. package/out-js/decentraland/sdk/components/material.gen.js +536 -0
  163. package/out-js/decentraland/sdk/components/material.gen.js.map +1 -0
  164. package/out-js/decentraland/sdk/components/mesh_collider.gen.d.ts +130 -0
  165. package/out-js/decentraland/sdk/components/mesh_collider.gen.js +471 -0
  166. package/out-js/decentraland/sdk/components/mesh_collider.gen.js.map +1 -0
  167. package/out-js/decentraland/sdk/components/mesh_renderer.gen.d.ts +104 -0
  168. package/out-js/decentraland/sdk/components/mesh_renderer.gen.js +382 -0
  169. package/out-js/decentraland/sdk/components/mesh_renderer.gen.js.map +1 -0
  170. package/out-js/decentraland/sdk/components/nft_shape.gen.d.ts +74 -0
  171. package/out-js/decentraland/sdk/components/nft_shape.gen.js +259 -0
  172. package/out-js/decentraland/sdk/components/nft_shape.gen.js.map +1 -0
  173. package/out-js/decentraland/sdk/components/player_identity_data.gen.d.ts +37 -0
  174. package/out-js/decentraland/sdk/components/player_identity_data.gen.js +83 -0
  175. package/out-js/decentraland/sdk/components/player_identity_data.gen.js.map +1 -0
  176. package/out-js/decentraland/sdk/components/pointer_events.gen.d.ts +110 -0
  177. package/out-js/decentraland/sdk/components/pointer_events.gen.js +306 -0
  178. package/out-js/decentraland/sdk/components/pointer_events.gen.js.map +1 -0
  179. package/out-js/decentraland/sdk/components/pointer_events_result.gen.d.ts +42 -0
  180. package/out-js/decentraland/sdk/components/pointer_events_result.gen.js +133 -0
  181. package/out-js/decentraland/sdk/components/pointer_events_result.gen.js.map +1 -0
  182. package/out-js/decentraland/sdk/components/pointer_lock.gen.d.ts +35 -0
  183. package/out-js/decentraland/sdk/components/pointer_lock.gen.js +69 -0
  184. package/out-js/decentraland/sdk/components/pointer_lock.gen.js.map +1 -0
  185. package/out-js/decentraland/sdk/components/raycast.gen.d.ts +79 -0
  186. package/out-js/decentraland/sdk/components/raycast.gen.js +274 -0
  187. package/out-js/decentraland/sdk/components/raycast.gen.js.map +1 -0
  188. package/out-js/decentraland/sdk/components/raycast_result.gen.d.ts +48 -0
  189. package/out-js/decentraland/sdk/components/raycast_result.gen.js +132 -0
  190. package/out-js/decentraland/sdk/components/raycast_result.gen.js.map +1 -0
  191. package/out-js/decentraland/sdk/components/realm_info.gen.d.ts +43 -0
  192. package/out-js/decentraland/sdk/components/realm_info.gen.js +151 -0
  193. package/out-js/decentraland/sdk/components/realm_info.gen.js.map +1 -0
  194. package/out-js/decentraland/sdk/components/text_shape.gen.d.ts +81 -0
  195. package/out-js/decentraland/sdk/components/text_shape.gen.js +345 -0
  196. package/out-js/decentraland/sdk/components/text_shape.gen.js.map +1 -0
  197. package/out-js/decentraland/sdk/components/tween.gen.d.ts +220 -0
  198. package/out-js/decentraland/sdk/components/tween.gen.js +1213 -0
  199. package/out-js/decentraland/sdk/components/tween.gen.js.map +1 -0
  200. package/out-js/decentraland/sdk/components/tween_sequence.gen.d.ts +39 -0
  201. package/out-js/decentraland/sdk/components/tween_sequence.gen.js +122 -0
  202. package/out-js/decentraland/sdk/components/tween_sequence.gen.js.map +1 -0
  203. package/out-js/decentraland/sdk/components/tween_state.gen.d.ts +40 -0
  204. package/out-js/decentraland/sdk/components/tween_state.gen.js +122 -0
  205. package/out-js/decentraland/sdk/components/tween_state.gen.js.map +1 -0
  206. package/out-js/decentraland/sdk/components/ui_background.gen.d.ts +63 -0
  207. package/out-js/decentraland/sdk/components/ui_background.gen.js +197 -0
  208. package/out-js/decentraland/sdk/components/ui_background.gen.js.map +1 -0
  209. package/out-js/decentraland/sdk/components/ui_dropdown.gen.d.ts +45 -0
  210. package/out-js/decentraland/sdk/components/ui_dropdown.gen.js +187 -0
  211. package/out-js/decentraland/sdk/components/ui_dropdown.gen.js.map +1 -0
  212. package/out-js/decentraland/sdk/components/ui_dropdown_result.gen.d.ts +30 -0
  213. package/out-js/decentraland/sdk/components/ui_dropdown_result.gen.js +69 -0
  214. package/out-js/decentraland/sdk/components/ui_dropdown_result.gen.js.map +1 -0
  215. package/out-js/decentraland/sdk/components/ui_input.gen.d.ts +44 -0
  216. package/out-js/decentraland/sdk/components/ui_input.gen.js +172 -0
  217. package/out-js/decentraland/sdk/components/ui_input.gen.js.map +1 -0
  218. package/out-js/decentraland/sdk/components/ui_input_result.gen.d.ts +32 -0
  219. package/out-js/decentraland/sdk/components/ui_input_result.gen.js +83 -0
  220. package/out-js/decentraland/sdk/components/ui_input_result.gen.js.map +1 -0
  221. package/out-js/decentraland/sdk/components/ui_text.gen.d.ts +50 -0
  222. package/out-js/decentraland/sdk/components/ui_text.gen.js +177 -0
  223. package/out-js/decentraland/sdk/components/ui_text.gen.js.map +1 -0
  224. package/out-js/decentraland/sdk/components/ui_transform.gen.d.ts +238 -0
  225. package/out-js/decentraland/sdk/components/ui_transform.gen.js +1547 -0
  226. package/out-js/decentraland/sdk/components/ui_transform.gen.js.map +1 -0
  227. package/out-js/decentraland/sdk/components/video_player.gen.d.ts +51 -0
  228. package/out-js/decentraland/sdk/components/video_player.gen.js +177 -0
  229. package/out-js/decentraland/sdk/components/video_player.gen.js.map +1 -0
  230. package/out-js/decentraland/sdk/components/visibility_component.gen.d.ts +39 -0
  231. package/out-js/decentraland/sdk/components/visibility_component.gen.js +83 -0
  232. package/out-js/decentraland/sdk/components/visibility_component.gen.js.map +1 -0
  233. package/out-js/decentraland/sdk/development/local_development.gen.d.ts +70 -0
  234. package/out-js/decentraland/sdk/development/local_development.gen.js +283 -0
  235. package/out-js/decentraland/sdk/development/local_development.gen.js.map +1 -0
  236. package/out-js/decentraland/sdk/ecs6/components_ecs6.gen.d.ts +1005 -0
  237. package/out-js/decentraland/sdk/ecs6/components_ecs6.gen.js +7842 -0
  238. package/out-js/decentraland/sdk/ecs6/components_ecs6.gen.js.map +1 -0
  239. package/out-js/decentraland/sdk/ecs6/engine_interface_ecs6.gen.d.ts +398 -0
  240. package/out-js/decentraland/sdk/ecs6/engine_interface_ecs6.gen.js +2512 -0
  241. package/out-js/decentraland/sdk/ecs6/engine_interface_ecs6.gen.js.map +1 -0
  242. package/out-js/decentraland/social_service/errors.gen.d.ts +96 -0
  243. package/out-js/decentraland/social_service/errors.gen.js +405 -0
  244. package/out-js/decentraland/social_service/errors.gen.js.map +1 -0
  245. package/out-js/decentraland/social_service/v1/social_service_v1.gen.d.ts +501 -0
  246. package/out-js/decentraland/social_service/v1/social_service_v1.gen.js +2517 -0
  247. package/out-js/decentraland/social_service/v1/social_service_v1.gen.js.map +1 -0
  248. package/out-js/decentraland/social_service/v2/social_service_v2.gen.d.ts +1827 -0
  249. package/out-js/decentraland/social_service/v2/social_service_v2.gen.js +9308 -0
  250. package/out-js/decentraland/social_service/v2/social_service_v2.gen.js.map +1 -0
  251. package/out-js/google/protobuf/descriptor.gen.d.ts +436 -0
  252. package/out-js/google/protobuf/descriptor.gen.js +3173 -0
  253. package/out-js/google/protobuf/descriptor.gen.js.map +1 -0
  254. package/out-js/google/protobuf/empty.gen.d.ts +38 -0
  255. package/out-js/google/protobuf/empty.gen.js +54 -0
  256. package/out-js/google/protobuf/empty.gen.js.map +1 -0
  257. package/out-js/quests.gen.d.ts +1 -0
  258. package/out-js/quests.gen.js +6 -0
  259. package/out-js/quests.gen.js.map +1 -0
  260. package/out-js/sdk-apis.gen.d.ts +1 -0
  261. package/out-js/sdk-apis.gen.js +6 -0
  262. package/out-js/sdk-apis.gen.js.map +1 -0
  263. package/out-js/sdk-components.gen.d.ts +1 -0
  264. package/out-js/sdk-components.gen.js +6 -0
  265. package/out-js/sdk-components.gen.js.map +1 -0
  266. package/out-js/sdk-development.gen.d.ts +1 -0
  267. package/out-js/sdk-development.gen.js +6 -0
  268. package/out-js/sdk-development.gen.js.map +1 -0
  269. package/out-js/social.gen.d.ts +1 -0
  270. package/out-js/social.gen.js +6 -0
  271. package/out-js/social.gen.js.map +1 -0
  272. package/out-ts/about.gen.ts +3 -0
  273. package/out-ts/comms.gen.ts +3 -0
  274. package/out-ts/decentraland/common/border_rect.gen.ts +230 -0
  275. package/out-ts/decentraland/common/colors.gen.ts +293 -0
  276. package/out-ts/decentraland/common/content_mapping.gen.ts +93 -0
  277. package/out-ts/decentraland/common/sdk/user_data.gen.ts +370 -0
  278. package/out-ts/decentraland/common/texture.gen.ts +539 -0
  279. package/out-ts/decentraland/common/vectors.gen.ts +377 -0
  280. package/out-ts/decentraland/kernel/apis/comms_api.gen.ts +884 -0
  281. package/out-ts/decentraland/kernel/apis/communications_controller.gen.ts +434 -0
  282. package/out-ts/decentraland/kernel/apis/dev_tools.gen.ts +161 -0
  283. package/out-ts/decentraland/kernel/apis/engine_api.gen.ts +1587 -0
  284. package/out-ts/decentraland/kernel/apis/environment_api.gen.ts +1264 -0
  285. package/out-ts/decentraland/kernel/apis/ethereum_controller.gen.ts +982 -0
  286. package/out-ts/decentraland/kernel/apis/parcel_identity.gen.ts +608 -0
  287. package/out-ts/decentraland/kernel/apis/permissions.gen.ts +397 -0
  288. package/out-ts/decentraland/kernel/apis/players.gen.ts +415 -0
  289. package/out-ts/decentraland/kernel/apis/portable_experiences.gen.ts +668 -0
  290. package/out-ts/decentraland/kernel/apis/restricted_actions.gen.ts +1150 -0
  291. package/out-ts/decentraland/kernel/apis/runtime.gen.ts +911 -0
  292. package/out-ts/decentraland/kernel/apis/scene.gen.ts +192 -0
  293. package/out-ts/decentraland/kernel/apis/signed_fetch.gen.ts +691 -0
  294. package/out-ts/decentraland/kernel/apis/social_controller.gen.ts +230 -0
  295. package/out-ts/decentraland/kernel/apis/testing.gen.ts +1270 -0
  296. package/out-ts/decentraland/kernel/apis/user_action_module.gen.ts +146 -0
  297. package/out-ts/decentraland/kernel/apis/user_identity.gen.ts +264 -0
  298. package/out-ts/decentraland/kernel/comms/rfc4/comms.gen.ts +2389 -0
  299. package/out-ts/decentraland/kernel/comms/rfc5/ws_comms.gen.ts +1029 -0
  300. package/out-ts/decentraland/kernel/comms/v3/archipelago.gen.ts +1338 -0
  301. package/out-ts/decentraland/quests/definitions.gen.ts +3020 -0
  302. package/out-ts/decentraland/realm/about.gen.ts +1415 -0
  303. package/out-ts/decentraland/sdk/components/animator.gen.ts +240 -0
  304. package/out-ts/decentraland/sdk/components/audio_source.gen.ts +209 -0
  305. package/out-ts/decentraland/sdk/components/audio_stream.gen.ts +182 -0
  306. package/out-ts/decentraland/sdk/components/avatar_attach.gen.ts +289 -0
  307. package/out-ts/decentraland/sdk/components/avatar_base.gen.ts +149 -0
  308. package/out-ts/decentraland/sdk/components/avatar_emote_command.gen.ts +115 -0
  309. package/out-ts/decentraland/sdk/components/avatar_equipped_data.gen.ts +105 -0
  310. package/out-ts/decentraland/sdk/components/avatar_modifier_area.gen.ts +188 -0
  311. package/out-ts/decentraland/sdk/components/avatar_shape.gen.ts +383 -0
  312. package/out-ts/decentraland/sdk/components/billboard.gen.ts +148 -0
  313. package/out-ts/decentraland/sdk/components/camera_mode.gen.ts +86 -0
  314. package/out-ts/decentraland/sdk/components/camera_mode_area.gen.ts +115 -0
  315. package/out-ts/decentraland/sdk/components/common/camera_type.gen.ts +43 -0
  316. package/out-ts/decentraland/sdk/components/common/id.gen.ts +3 -0
  317. package/out-ts/decentraland/sdk/components/common/input_action.gen.ts +206 -0
  318. package/out-ts/decentraland/sdk/components/common/loading_state.gen.ts +54 -0
  319. package/out-ts/decentraland/sdk/components/common/raycast_hit.gen.ts +204 -0
  320. package/out-ts/decentraland/sdk/components/common/texts.gen.ts +117 -0
  321. package/out-ts/decentraland/sdk/components/engine_info.gen.ts +119 -0
  322. package/out-ts/decentraland/sdk/components/gltf_container.gen.ts +127 -0
  323. package/out-ts/decentraland/sdk/components/gltf_container_loading_state.gen.ts +89 -0
  324. package/out-ts/decentraland/sdk/components/gltf_node_modifiers.gen.ts +204 -0
  325. package/out-ts/decentraland/sdk/components/material.gen.ts +655 -0
  326. package/out-ts/decentraland/sdk/components/mesh_collider.gen.ts +536 -0
  327. package/out-ts/decentraland/sdk/components/mesh_renderer.gen.ts +454 -0
  328. package/out-ts/decentraland/sdk/components/nft_shape.gen.ts +288 -0
  329. package/out-ts/decentraland/sdk/components/player_identity_data.gen.ts +102 -0
  330. package/out-ts/decentraland/sdk/components/pointer_events.gen.ts +415 -0
  331. package/out-ts/decentraland/sdk/components/pointer_events_result.gen.ts +170 -0
  332. package/out-ts/decentraland/sdk/components/pointer_lock.gen.ts +85 -0
  333. package/out-ts/decentraland/sdk/components/raycast.gen.ts +333 -0
  334. package/out-ts/decentraland/sdk/components/raycast_result.gen.ts +168 -0
  335. package/out-ts/decentraland/sdk/components/realm_info.gen.ts +183 -0
  336. package/out-ts/decentraland/sdk/components/text_shape.gen.ts +470 -0
  337. package/out-ts/decentraland/sdk/components/tween.gen.ts +1336 -0
  338. package/out-ts/decentraland/sdk/components/tween_sequence.gen.ts +134 -0
  339. package/out-ts/decentraland/sdk/components/tween_state.gen.ts +136 -0
  340. package/out-ts/decentraland/sdk/components/ui_background.gen.ts +223 -0
  341. package/out-ts/decentraland/sdk/components/ui_dropdown.gen.ts +231 -0
  342. package/out-ts/decentraland/sdk/components/ui_dropdown_result.gen.ts +80 -0
  343. package/out-ts/decentraland/sdk/components/ui_input.gen.ts +215 -0
  344. package/out-ts/decentraland/sdk/components/ui_input_result.gen.ts +97 -0
  345. package/out-ts/decentraland/sdk/components/ui_text.gen.ts +219 -0
  346. package/out-ts/decentraland/sdk/components/ui_transform.gen.ts +1775 -0
  347. package/out-ts/decentraland/sdk/components/video_player.gen.ts +231 -0
  348. package/out-ts/decentraland/sdk/components/visibility_component.gen.ts +108 -0
  349. package/out-ts/decentraland/sdk/development/local_development.gen.ts +316 -0
  350. package/out-ts/decentraland/sdk/ecs6/components_ecs6.gen.ts +8957 -0
  351. package/out-ts/decentraland/sdk/ecs6/engine_interface_ecs6.gen.ts +2886 -0
  352. package/out-ts/decentraland/social_service/errors.gen.ts +442 -0
  353. package/out-ts/decentraland/social_service/v1/social_service_v1.gen.ts +2799 -0
  354. package/out-ts/decentraland/social_service/v2/social_service_v2.gen.ts +10674 -0
  355. package/out-ts/google/protobuf/descriptor.gen.ts +3470 -0
  356. package/out-ts/google/protobuf/empty.gen.ts +72 -0
  357. package/out-ts/quests.gen.ts +3 -0
  358. package/out-ts/sdk-apis.gen.ts +3 -0
  359. package/out-ts/sdk-components.gen.ts +3 -0
  360. package/out-ts/sdk-development.gen.ts +3 -0
  361. package/out-ts/social.gen.ts +3 -0
  362. package/package.json +29 -10
  363. package/proto/decentraland/common/border_rect.proto +18 -0
  364. package/proto/decentraland/common/colors.proto +21 -0
  365. package/proto/decentraland/common/content_mapping.proto +7 -0
  366. package/proto/decentraland/common/entity.proto +13 -0
  367. package/proto/decentraland/common/floats.proto +8 -0
  368. package/proto/decentraland/common/options.proto +30 -0
  369. package/proto/decentraland/common/quantization_example.proto +132 -0
  370. package/{kernel/apis/UserIdentity.proto → proto/decentraland/common/sdk/user_data.proto} +1 -17
  371. package/proto/decentraland/common/texture.proto +45 -0
  372. package/proto/decentraland/common/vectors.proto +26 -0
  373. package/proto/decentraland/kernel/apis/comms_api.proto +61 -0
  374. package/proto/decentraland/kernel/apis/communications_controller.proto +29 -0
  375. package/{kernel/apis/DevTools.proto → proto/decentraland/kernel/apis/dev_tools.proto} +3 -0
  376. package/proto/decentraland/kernel/apis/engine_api.proto +118 -0
  377. package/proto/decentraland/kernel/apis/environment_api.proto +76 -0
  378. package/{kernel/apis/EthereumController.proto → proto/decentraland/kernel/apis/ethereum_controller.proto} +12 -1
  379. package/{kernel/apis/ParcelIdentity.proto → proto/decentraland/kernel/apis/parcel_identity.proto} +6 -5
  380. package/proto/decentraland/kernel/apis/permissions.proto +36 -0
  381. package/proto/decentraland/kernel/apis/players.proto +35 -0
  382. package/proto/decentraland/kernel/apis/portable_experiences.proto +55 -0
  383. package/proto/decentraland/kernel/apis/restricted_actions.proto +100 -0
  384. package/proto/decentraland/kernel/apis/runtime.proto +71 -0
  385. package/proto/decentraland/kernel/apis/scene.proto +16 -0
  386. package/{kernel/apis/SignedFetch.proto → proto/decentraland/kernel/apis/signed_fetch.proto} +9 -0
  387. package/proto/decentraland/kernel/apis/social_controller.proto +19 -0
  388. package/proto/decentraland/kernel/apis/testing.proto +100 -0
  389. package/{kernel/apis/UserActionModule.proto → proto/decentraland/kernel/apis/user_action_module.proto} +2 -0
  390. package/proto/decentraland/kernel/apis/user_identity.proto +22 -0
  391. package/proto/decentraland/kernel/comms/rfc4/comms.proto +176 -0
  392. package/proto/decentraland/kernel/comms/rfc5/ws_comms.proto +104 -0
  393. package/proto/decentraland/kernel/comms/v1/broker.proto +114 -0
  394. package/proto/decentraland/kernel/comms/v1/comms.proto +68 -0
  395. package/proto/decentraland/kernel/comms/v2/comms.proto +61 -0
  396. package/proto/decentraland/kernel/comms/v3/archipelago.proto +86 -0
  397. package/proto/decentraland/kernel/comms/v3/comms.proto +64 -0
  398. package/proto/decentraland/pulse/pulse_client.proto +77 -0
  399. package/proto/decentraland/pulse/pulse_server.proto +138 -0
  400. package/proto/decentraland/pulse/pulse_shared.proto +48 -0
  401. package/proto/decentraland/quests/definitions.proto +185 -0
  402. package/proto/decentraland/realm/about.proto +138 -0
  403. package/{ecs → proto/decentraland/sdk}/components/README.md +3 -3
  404. package/proto/decentraland/sdk/components/animator.proto +31 -0
  405. package/proto/decentraland/sdk/components/asset_load.proto +10 -0
  406. package/proto/decentraland/sdk/components/asset_load_loading_state.proto +16 -0
  407. package/proto/decentraland/sdk/components/audio_analysis.proto +44 -0
  408. package/proto/decentraland/sdk/components/audio_event.proto +12 -0
  409. package/proto/decentraland/sdk/components/audio_source.proto +31 -0
  410. package/proto/decentraland/sdk/components/audio_stream.proto +22 -0
  411. package/proto/decentraland/sdk/components/avatar_attach.proto +51 -0
  412. package/proto/decentraland/sdk/components/avatar_base.proto +15 -0
  413. package/proto/decentraland/sdk/components/avatar_emote_command.proto +13 -0
  414. package/proto/decentraland/sdk/components/avatar_equipped_data.proto +13 -0
  415. package/proto/decentraland/sdk/components/avatar_locomotion_settings.proto +21 -0
  416. package/proto/decentraland/sdk/components/avatar_modifier_area.proto +32 -0
  417. package/proto/decentraland/sdk/components/avatar_shape.proto +49 -0
  418. package/proto/decentraland/sdk/components/billboard.proto +29 -0
  419. package/proto/decentraland/sdk/components/camera_mode.proto +12 -0
  420. package/proto/decentraland/sdk/components/camera_mode_area.proto +25 -0
  421. package/proto/decentraland/sdk/components/common/camera_transition.proto +11 -0
  422. package/proto/decentraland/sdk/components/common/camera_type.proto +9 -0
  423. package/{ecs → proto/decentraland/sdk}/components/common/id.proto +1 -0
  424. package/proto/decentraland/sdk/components/common/input_action.proto +37 -0
  425. package/proto/decentraland/sdk/components/common/loading_state.proto +10 -0
  426. package/proto/decentraland/sdk/components/common/media_state.proto +13 -0
  427. package/proto/decentraland/sdk/components/common/raycast_hit.proto +16 -0
  428. package/proto/decentraland/sdk/components/common/texts.proto +21 -0
  429. package/proto/decentraland/sdk/components/engine_info.proto +15 -0
  430. package/proto/decentraland/sdk/components/gltf_container.proto +19 -0
  431. package/proto/decentraland/sdk/components/gltf_container_loading_state.proto +13 -0
  432. package/proto/decentraland/sdk/components/gltf_node_modifiers.proto +25 -0
  433. package/proto/decentraland/sdk/components/input_modifier.proto +22 -0
  434. package/proto/decentraland/sdk/components/light_source.proto +28 -0
  435. package/proto/decentraland/sdk/components/main_camera.proto +11 -0
  436. package/proto/decentraland/sdk/components/map_pin.proto +16 -0
  437. package/proto/decentraland/sdk/components/material.proto +57 -0
  438. package/proto/decentraland/sdk/components/mesh_collider.proto +62 -0
  439. package/proto/decentraland/sdk/components/mesh_renderer.proto +43 -0
  440. package/proto/decentraland/sdk/components/nft_shape.proto +48 -0
  441. package/proto/decentraland/sdk/components/particle_system.proto +133 -0
  442. package/proto/decentraland/sdk/components/physics_combined_force.proto +21 -0
  443. package/proto/decentraland/sdk/components/physics_combined_impulse.proto +23 -0
  444. package/proto/decentraland/sdk/components/player_identity_data.proto +13 -0
  445. package/proto/decentraland/sdk/components/pointer_events.proto +64 -0
  446. package/proto/decentraland/sdk/components/pointer_events_result.proto +19 -0
  447. package/proto/decentraland/sdk/components/pointer_lock.proto +11 -0
  448. package/proto/decentraland/sdk/components/primary_pointer_info.proto +39 -0
  449. package/proto/decentraland/sdk/components/raycast.proto +58 -0
  450. package/proto/decentraland/sdk/components/raycast_result.proto +21 -0
  451. package/proto/decentraland/sdk/components/realm_info.proto +15 -0
  452. package/proto/decentraland/sdk/components/skybox_time.proto +20 -0
  453. package/proto/decentraland/sdk/components/text_shape.proto +45 -0
  454. package/proto/decentraland/sdk/components/trigger_area.proto +23 -0
  455. package/proto/decentraland/sdk/components/trigger_area_result.proto +34 -0
  456. package/proto/decentraland/sdk/components/tween.proto +117 -0
  457. package/proto/decentraland/sdk/components/tween_sequence.proto +18 -0
  458. package/proto/decentraland/sdk/components/tween_state.proto +18 -0
  459. package/proto/decentraland/sdk/components/ui_background.proto +34 -0
  460. package/proto/decentraland/sdk/components/ui_canvas_information.proto +30 -0
  461. package/proto/decentraland/sdk/components/ui_dropdown.proto +22 -0
  462. package/proto/decentraland/sdk/components/ui_dropdown_result.proto +11 -0
  463. package/proto/decentraland/sdk/components/ui_input.proto +20 -0
  464. package/proto/decentraland/sdk/components/ui_input_result.proto +12 -0
  465. package/proto/decentraland/sdk/components/ui_text.proto +26 -0
  466. package/proto/decentraland/sdk/components/ui_transform.proto +178 -0
  467. package/proto/decentraland/sdk/components/video_event.proto +25 -0
  468. package/proto/decentraland/sdk/components/video_player.proto +24 -0
  469. package/proto/decentraland/sdk/components/virtual_camera.proto +18 -0
  470. package/proto/decentraland/sdk/components/visibility_component.proto +16 -0
  471. package/proto/decentraland/sdk/development/local_development.proto +29 -0
  472. package/proto/decentraland/sdk/ecs6/components_ecs6.proto +678 -0
  473. package/proto/decentraland/sdk/ecs6/engine_interface_ecs6.proto +151 -0
  474. package/proto/decentraland/social_service/errors.proto +30 -0
  475. package/proto/decentraland/social_service/v1/social_service_v1.proto +163 -0
  476. package/proto/decentraland/social_service/v2/social_service_v2.proto +721 -0
  477. package/protoc-gen-bitwise/generator_csharp.js +215 -0
  478. package/protoc-gen-bitwise/options.js +108 -0
  479. package/protoc-gen-bitwise/plugin.js +87 -0
  480. package/protoc-gen-bitwise/runtime/cs/BitReader.cs +112 -0
  481. package/protoc-gen-bitwise/runtime/cs/BitWriter.cs +117 -0
  482. package/protoc-gen-bitwise/runtime/cs/Quantize.cs +35 -0
  483. package/protoc-gen-bitwise/wire.js +239 -0
  484. package/public/about.proto +5 -0
  485. package/public/comms.proto +5 -0
  486. package/public/quests.proto +5 -0
  487. package/public/sdk-apis.proto +25 -0
  488. package/public/sdk-components.proto +43 -0
  489. package/public/sdk-development.proto +5 -0
  490. package/public/social.proto +6 -0
  491. package/ecs/components/Animator.proto +0 -18
  492. package/ecs/components/AudioSource.proto +0 -12
  493. package/ecs/components/AudioStream.proto +0 -10
  494. package/ecs/components/AvatarAttach.proto +0 -16
  495. package/ecs/components/AvatarModifierArea.proto +0 -16
  496. package/ecs/components/AvatarShape.proto +0 -20
  497. package/ecs/components/Billboard.proto +0 -10
  498. package/ecs/components/BoxShape.proto +0 -11
  499. package/ecs/components/CameraModeArea.proto +0 -15
  500. package/ecs/components/CylinderShape.proto +0 -12
  501. package/ecs/components/GLTFShape.proto +0 -11
  502. package/ecs/components/NFTShape.proto +0 -16
  503. package/ecs/components/OnPointerDown.proto +0 -12
  504. package/ecs/components/OnPointerDownResult.proto +0 -17
  505. package/ecs/components/OnPointerUp.proto +0 -12
  506. package/ecs/components/OnPointerUpResult.proto +0 -17
  507. package/ecs/components/PlaneShape.proto +0 -11
  508. package/ecs/components/SphereShape.proto +0 -10
  509. package/ecs/components/TextShape.proto +0 -33
  510. package/ecs/components/UiTransform.proto +0 -159
  511. package/ecs/components/common/ActionButton.proto +0 -18
  512. package/ecs/components/common/Color3.proto +0 -8
  513. package/ecs/components/common/Vector3.proto +0 -7
  514. package/kernel/apis/CommunicationsController.proto +0 -11
  515. package/kernel/apis/EngineAPI.proto +0 -180
  516. package/kernel/apis/EnvironmentAPI.proto +0 -70
  517. package/kernel/apis/ExperimentalAPI.proto +0 -16
  518. package/kernel/apis/Permissions.proto +0 -30
  519. package/kernel/apis/Players.proto +0 -28
  520. package/kernel/apis/PortableExperiences.proto +0 -40
  521. package/kernel/apis/RestrictedActions.proto +0 -25
  522. package/kernel/apis/SceneStateStorageController.proto +0 -114
  523. package/kernel/apis/SocialController.proto +0 -15
  524. package/kernel/comms/v1/broker.proto +0 -114
  525. package/kernel/comms/v1/comms.proto +0 -68
  526. package/kernel/comms/v2/comms.proto +0 -59
  527. package/renderer-protocol/RendererProtocol.proto +0 -24
  528. /package/{ecs → proto/decentraland/sdk}/components/Transform.md +0 -0
  529. /package/{ecs → proto/decentraland/sdk}/components/common/id.md +0 -0
@@ -0,0 +1,215 @@
1
+ 'use strict'
2
+
3
+ /**
4
+ * C# code generator for the protoc-gen-bitwise plugin.
5
+ *
6
+ * For every proto message that contains at least one uint32 field annotated
7
+ * with [(quantized)], this module emits a C# partial class that adds a computed
8
+ * float property named {FieldName}Quantized. The getter decodes the stored
9
+ * uint32 to a float; the setter encodes a float back to a uint32. Standard
10
+ * protobuf handles serialization of the uint32 wire field; this class adds a
11
+ * typed float accessor on top.
12
+ *
13
+ * Only uint32 fields are supported. bit_packed and unannotated fields are
14
+ * passed through without generating any accessor.
15
+ *
16
+ * Port of the original generator_csharp.py — output is intended to be
17
+ * byte-for-byte identical.
18
+ */
19
+
20
+ const { getFieldOptions } = require('./options')
21
+
22
+ // FieldDescriptorProto type/label constants.
23
+ const TYPE_UINT32 = 13
24
+ const LABEL_REPEATED = 3
25
+
26
+ // ---------------------------------------------------------------------------
27
+ // Helpers
28
+ // ---------------------------------------------------------------------------
29
+
30
+ /** Mirrors Python str.capitalize(): upper-first, lowercase the rest. */
31
+ function capitalize(word) {
32
+ if (word.length === 0) return ''
33
+ return word[0].toUpperCase() + word.slice(1).toLowerCase()
34
+ }
35
+
36
+ /** position_x -> PositionX */
37
+ function snakeToPascal(name) {
38
+ return name.split('_').map(capitalize).join('')
39
+ }
40
+
41
+ /** decentraland.kernel.comms.v3 -> Decentraland.Kernel.Comms.V3 */
42
+ function packageToNamespace(pkg) {
43
+ if (!pkg) return 'Generated'
44
+ return pkg.split('.').map(capitalize).join('.')
45
+ }
46
+
47
+ /**
48
+ * Format a number with C printf %g semantics at `precision` significant digits:
49
+ * shortest of fixed/scientific, with trailing zeros and a trailing dot removed.
50
+ * Reproduces Python's `f'{value:.{precision}g}'`.
51
+ */
52
+ function formatG(value, precision) {
53
+ if (precision <= 0) precision = 1
54
+ if (value === 0) return '0'
55
+ if (!Number.isFinite(value)) return value > 0 ? 'inf' : 'nan'
56
+
57
+ const negative = value < 0
58
+ const v = Math.abs(value)
59
+
60
+ // Correctly-rounded scientific form yields the decimal exponent X (handling
61
+ // carry such as 9.999 -> 1.0e+1).
62
+ const sci = v.toExponential(precision - 1)
63
+ const eIdx = sci.indexOf('e')
64
+ const X = parseInt(sci.slice(eIdx + 1), 10)
65
+
66
+ let result
67
+ if (X >= -4 && X < precision) {
68
+ // Fixed notation with (precision - 1 - X) fraction digits.
69
+ const fractionDigits = precision - 1 - X
70
+ result = v.toFixed(fractionDigits >= 0 ? fractionDigits : 0)
71
+ if (result.indexOf('.') !== -1) {
72
+ result = result.replace(/0+$/, '').replace(/\.$/, '')
73
+ }
74
+ } else {
75
+ // Scientific notation; printf prints at least two exponent digits.
76
+ let mantissa = sci.slice(0, eIdx)
77
+ if (mantissa.indexOf('.') !== -1) {
78
+ mantissa = mantissa.replace(/0+$/, '').replace(/\.$/, '')
79
+ }
80
+ const expSign = X < 0 ? '-' : '+'
81
+ let expDigits = String(Math.abs(X))
82
+ if (expDigits.length < 2) expDigits = '0' + expDigits
83
+ result = mantissa + 'e' + expSign + expDigits
84
+ }
85
+
86
+ return (negative ? '-' : '') + result
87
+ }
88
+
89
+ /** Format a value as a C# float literal (e.g. -100.0f). */
90
+ function formatFloat(value) {
91
+ let text = formatG(value, 8)
92
+ if (text.indexOf('.') === -1 && text.indexOf('e') === -1 && text.indexOf('E') === -1) {
93
+ text += '.0'
94
+ }
95
+ return text + 'f'
96
+ }
97
+
98
+ /** Format a quantization step size for a doc comment (e.g. "≈ 0.003"). */
99
+ function formatStep(step) {
100
+ return '≈ ' + formatG(step, 6)
101
+ }
102
+
103
+ // ---------------------------------------------------------------------------
104
+ // Per-message code generation
105
+ // ---------------------------------------------------------------------------
106
+
107
+ /**
108
+ * Generate a C# partial class for a proto message, or null if it has no
109
+ * quantized uint32 fields. Returns an array of lines (no trailing newline).
110
+ */
111
+ function generateMessage(msgProto, indent) {
112
+ const i = indent || ' '
113
+ const props = []
114
+
115
+ for (const field of msgProto.field) {
116
+ // Repeated/map fields are not supported.
117
+ if (field.label === LABEL_REPEATED) continue
118
+ // Only uint32 fields are candidates for quantized accessors.
119
+ if (field.type !== TYPE_UINT32) continue
120
+
121
+ const { quantized } = getFieldOptions(field.optionsRaw)
122
+ if (quantized === null) continue
123
+
124
+ const step = (quantized.max - quantized.min) / ((1 << quantized.bits) - 1)
125
+
126
+ props.push({
127
+ propName: snakeToPascal(field.name),
128
+ mn: formatFloat(quantized.min),
129
+ mx: formatFloat(quantized.max),
130
+ bits: quantized.bits,
131
+ step,
132
+ })
133
+ }
134
+
135
+ if (props.length === 0) return null
136
+
137
+ const backings = []
138
+ const lines = []
139
+ lines.push(`public partial class ${msgProto.name}`)
140
+ lines.push('{')
141
+
142
+ for (const { propName, mn, mx, bits, step } of props) {
143
+ const backing = '_' + propName[0].toLowerCase() + propName.slice(1)
144
+ backings.push(backing)
145
+ lines.push(`${i}private float? ${backing};`)
146
+ lines.push(
147
+ `${i}/// <summary>Float accessor for <see cref="${propName}"/>. Range [${mn}, ${mx}], ${bits} bits, step ${formatStep(step)}.</summary>`,
148
+ )
149
+ lines.push(`${i}public float ${propName}Quantized`)
150
+ lines.push(`${i}{`)
151
+ lines.push(`${i}${i}get => ${backing} ??= Quantize.Decode(${propName}, ${mn}, ${mx}, ${bits});`)
152
+ lines.push(`${i}${i}set { ${backing} = value; ${propName} = Quantize.Encode(value, ${mn}, ${mx}, ${bits}); }`)
153
+ lines.push(`${i}}`)
154
+ lines.push('')
155
+ }
156
+
157
+ lines.push(`${i}/// <summary>Clears all cached decoded values. Call after mutating raw uint32 fields directly.</summary>`)
158
+ lines.push(`${i}public void ResetDecodedCache()`)
159
+ lines.push(`${i}{`)
160
+ for (const backing of backings) {
161
+ lines.push(`${i}${i}${backing} = null;`)
162
+ }
163
+ lines.push(`${i}}`)
164
+
165
+ lines.push('}')
166
+ return lines
167
+ }
168
+
169
+ // ---------------------------------------------------------------------------
170
+ // Per-file code generation (public entry point)
171
+ // ---------------------------------------------------------------------------
172
+
173
+ /**
174
+ * Generate a C# source file for a FileDescriptorProto, or null if the file
175
+ * contains no quantized uint32 fields.
176
+ * @returns {{name: string, content: string} | null}
177
+ */
178
+ function generateCsharp(fileProto) {
179
+ const namespace = packageToNamespace(fileProto.package)
180
+
181
+ const protoFile = fileProto.name.split('/').pop()
182
+ const stem = snakeToPascal(protoFile.replace('.proto', ''))
183
+ const outName = `${stem}.Bitwise.cs`
184
+
185
+ const header = [
186
+ '// <auto-generated>',
187
+ '// Generated by protoc-gen-bitwise. DO NOT EDIT.',
188
+ `// Source: ${fileProto.name}`,
189
+ '// </auto-generated>',
190
+ '',
191
+ 'using Decentraland.Networking.Bitwise;',
192
+ '',
193
+ `namespace ${namespace}`,
194
+ '{',
195
+ ]
196
+ const footer = ['', `} // namespace ${namespace}`]
197
+
198
+ const body = []
199
+ for (const msg of fileProto.messageType) {
200
+ const msgLines = generateMessage(msg)
201
+ if (msgLines === null) continue
202
+ // Indent each line by 4 spaces (inside the namespace block).
203
+ for (const line of msgLines) {
204
+ body.push(line ? ' ' + line : '')
205
+ }
206
+ body.push('')
207
+ }
208
+
209
+ if (body.length === 0) return null
210
+
211
+ const content = header.concat(body, footer).join('\n') + '\n'
212
+ return { name: outName, content }
213
+ }
214
+
215
+ module.exports = { generateCsharp }
@@ -0,0 +1,108 @@
1
+ 'use strict'
2
+
3
+ /**
4
+ * Parser for the custom bitwise field options defined in options.proto.
5
+ *
6
+ * The descriptor decoder hands us the raw serialized FieldOptions bytes (it
7
+ * declares `options` as opaque bytes). We walk those bytes looking for the two
8
+ * custom extension field numbers — protobuf preserves unknown/unregistered
9
+ * extension bytes, so they are always present even though no runtime here knows
10
+ * the extension schema. This mirrors the original options_pb2.py.
11
+ *
12
+ * Wire format: tag = (field_number << 3) | wire_type
13
+ * wire_type 0 = varint, 1 = 64-bit, 2 = length-delimited, 5 = 32-bit
14
+ */
15
+
16
+ const { readVarint, skipField } = require('./wire')
17
+
18
+ // Extension field numbers as defined in options.proto.
19
+ const QUANTIZED_FIELD_NUMBER = 50001
20
+ const BIT_PACKED_FIELD_NUMBER = 50002
21
+
22
+ /** Parse a serialized QuantizedFloatOptions message: { min, max, bits }. */
23
+ function parseQuantized(data) {
24
+ const opts = { min: 0.0, max: 0.0, bits: 0 }
25
+ let pos = 0
26
+ while (pos < data.length) {
27
+ let tag
28
+ ;[tag, pos] = readVarint(data, pos)
29
+ const fieldNum = tag >>> 3
30
+ const wireType = tag & 0x7
31
+ if (fieldNum === 1 && wireType === 5) {
32
+ // min (float)
33
+ opts.min = data.readFloatLE(pos)
34
+ pos += 4
35
+ } else if (fieldNum === 2 && wireType === 5) {
36
+ // max (float)
37
+ opts.max = data.readFloatLE(pos)
38
+ pos += 4
39
+ } else if (fieldNum === 3 && wireType === 0) {
40
+ // bits (uint32)
41
+ ;[opts.bits, pos] = readVarint(data, pos)
42
+ } else {
43
+ pos = skipField(data, pos, wireType)
44
+ }
45
+ }
46
+ return opts
47
+ }
48
+
49
+ /** Parse a serialized BitPackedOptions message: { bits }. */
50
+ function parseBitPacked(data) {
51
+ const opts = { bits: 0 }
52
+ let pos = 0
53
+ while (pos < data.length) {
54
+ let tag
55
+ ;[tag, pos] = readVarint(data, pos)
56
+ const fieldNum = tag >>> 3
57
+ const wireType = tag & 0x7
58
+ if (fieldNum === 1 && wireType === 0) {
59
+ // bits (uint32)
60
+ ;[opts.bits, pos] = readVarint(data, pos)
61
+ } else {
62
+ pos = skipField(data, pos, wireType)
63
+ }
64
+ }
65
+ return opts
66
+ }
67
+
68
+ /**
69
+ * Extract custom bitwise options from raw FieldOptions bytes.
70
+ *
71
+ * @param {Buffer|null} optionsRaw serialized FieldOptions, or null when unset.
72
+ * @returns {{quantized: object|null, bitPacked: object|null}}
73
+ */
74
+ function getFieldOptions(optionsRaw) {
75
+ if (!optionsRaw || optionsRaw.length === 0) {
76
+ return { quantized: null, bitPacked: null }
77
+ }
78
+
79
+ let quantized = null
80
+ let bitPacked = null
81
+ let pos = 0
82
+
83
+ while (pos < optionsRaw.length) {
84
+ let tag
85
+ ;[tag, pos] = readVarint(optionsRaw, pos)
86
+ const fieldNum = tag >>> 3
87
+ const wireType = tag & 0x7
88
+
89
+ if (wireType === 2) {
90
+ let len
91
+ ;[len, pos] = readVarint(optionsRaw, pos)
92
+ const valueBytes = optionsRaw.subarray(pos, pos + len)
93
+ pos += len
94
+ if (fieldNum === QUANTIZED_FIELD_NUMBER) {
95
+ quantized = parseQuantized(valueBytes)
96
+ } else if (fieldNum === BIT_PACKED_FIELD_NUMBER) {
97
+ bitPacked = parseBitPacked(valueBytes)
98
+ }
99
+ // else: unknown length-delimited field — already consumed.
100
+ } else {
101
+ pos = skipField(optionsRaw, pos, wireType)
102
+ }
103
+ }
104
+
105
+ return { quantized, bitPacked }
106
+ }
107
+
108
+ module.exports = { getFieldOptions }
@@ -0,0 +1,87 @@
1
+ #!/usr/bin/env node
2
+ 'use strict'
3
+
4
+ /**
5
+ * protoc-gen-bitwise — protoc plugin that generates C# bitwise serialization code.
6
+ *
7
+ * Protocol:
8
+ * 1. protoc writes a serialised CodeGeneratorRequest to this process's stdin.
9
+ * 2. This plugin reads it, generates C# partial classes with float accessor
10
+ * properties for every message that carries [(quantized)] field annotations.
11
+ * 3. A serialised CodeGeneratorResponse is written to stdout.
12
+ *
13
+ * Implemented in plain Node with a self-contained protobuf wire codec (see
14
+ * wire.js) so it runs with only `node` on PATH — no npm install required, even
15
+ * when invoked directly from a sibling checkout.
16
+ *
17
+ * Usage (from project root):
18
+ * protoc \
19
+ * --proto_path=proto \
20
+ * --bitwise_out=generated/ \
21
+ * --plugin=protoc-gen-bitwise=protoc-gen-bitwise/plugin.js \
22
+ * proto/my_messages.proto
23
+ *
24
+ * On Windows, protoc needs an executable wrapper, e.g. a .cmd that runs:
25
+ * node "<path>\protoc-gen-bitwise\plugin.js" %*
26
+ */
27
+
28
+ const { decodeRequest, encodeResponse } = require('./wire')
29
+ const { generateCsharp } = require('./generator_csharp')
30
+
31
+ // CodeGeneratorResponse.Feature.FEATURE_PROTO3_OPTIONAL — advertised so protoc
32
+ // does not reject the plugin when the schema uses proto3 `optional` fields.
33
+ const FEATURE_PROTO3_OPTIONAL = 1
34
+
35
+ function readStdin() {
36
+ return new Promise((resolve, reject) => {
37
+ const chunks = []
38
+ process.stdin.on('data', (chunk) => chunks.push(chunk))
39
+ process.stdin.on('end', () => resolve(Buffer.concat(chunks)))
40
+ process.stdin.on('error', reject)
41
+ })
42
+ }
43
+
44
+ async function main() {
45
+ const requestBytes = await readStdin()
46
+ const request = decodeRequest(requestBytes)
47
+
48
+ // Lookup map for all file descriptors (parity with the Python plugin).
49
+ const fileByName = new Map()
50
+ for (const file of request.protoFile) fileByName.set(file.name, file)
51
+
52
+ const files = []
53
+ let error = null
54
+
55
+ for (const fileName of request.fileToGenerate) {
56
+ // Skip the options definition file itself — it has no messages to generate.
57
+ if (fileName === 'decentraland/common/options.proto') continue
58
+
59
+ const fileProto = fileByName.get(fileName)
60
+ if (!fileProto) continue
61
+
62
+ try {
63
+ const generated = generateCsharp(fileProto)
64
+ if (generated) files.push(generated)
65
+ } catch (exc) {
66
+ error = `protoc-gen-bitwise: error processing ${fileName}: ${exc && exc.message ? exc.message : exc}`
67
+ }
68
+ }
69
+
70
+ const response = encodeResponse({
71
+ error,
72
+ supportedFeatures: FEATURE_PROTO3_OPTIONAL,
73
+ files,
74
+ })
75
+
76
+ // Let the write flush before the process exits (do not call process.exit()).
77
+ process.stdout.write(response)
78
+ }
79
+
80
+ main().catch((exc) => {
81
+ const response = encodeResponse({
82
+ error: `protoc-gen-bitwise: ${exc && exc.stack ? exc.stack : exc}`,
83
+ supportedFeatures: FEATURE_PROTO3_OPTIONAL,
84
+ files: [],
85
+ })
86
+ process.stdout.write(response)
87
+ })
@@ -0,0 +1,112 @@
1
+ // Decentraland.Networking.Bitwise — BitReader
2
+ // Copy this file into your Unity project alongside generated *.Bitwise.cs files.
3
+
4
+ using System;
5
+
6
+ namespace Decentraland.Networking.Bitwise
7
+ {
8
+ /// <summary>
9
+ /// Reads bits from a byte buffer, MSB first within each byte (big-endian bit
10
+ /// order). Symmetric counterpart of <see cref="BitWriter"/>: every
11
+ /// Write… call has a corresponding Read… call with identical arguments that
12
+ /// reproduces the original value.
13
+ /// </summary>
14
+ public sealed class BitReader
15
+ {
16
+ private readonly byte[] _buffer;
17
+ private int _bitPos;
18
+
19
+ /// <param name="buffer">Source buffer filled by a <see cref="BitWriter"/>.</param>
20
+ public BitReader(byte[] buffer)
21
+ {
22
+ _buffer = buffer ?? throw new ArgumentNullException(nameof(buffer));
23
+ _bitPos = 0;
24
+ }
25
+
26
+ /// <summary>Current read position in bits.</summary>
27
+ public int BitPosition => _bitPos;
28
+
29
+ /// <summary>
30
+ /// Returns <c>true</c> when all written bits have been consumed
31
+ /// (i.e. <see cref="BitPosition"/> has reached the end of the buffer).
32
+ /// </summary>
33
+ public bool IsAtEnd => _bitPos >= _buffer.Length * 8;
34
+
35
+ // -----------------------------------------------------------------
36
+ // Core primitive
37
+ // -----------------------------------------------------------------
38
+
39
+ /// <summary>
40
+ /// Reads <paramref name="bits"/> bits and returns them as the
41
+ /// least-significant bits of a <see cref="uint"/>, MSB first.
42
+ /// </summary>
43
+ public uint ReadBits(int bits)
44
+ {
45
+ uint value = 0;
46
+ for (int i = bits - 1; i >= 0; i--)
47
+ {
48
+ int byteIdx = _bitPos / 8;
49
+ int bitIdx = 7 - (_bitPos % 8);
50
+
51
+ if ((_buffer[byteIdx] >> bitIdx & 1) == 1)
52
+ value |= 1u << i;
53
+
54
+ _bitPos++;
55
+ }
56
+ return value;
57
+ }
58
+
59
+ // -----------------------------------------------------------------
60
+ // Quantized float
61
+ // -----------------------------------------------------------------
62
+
63
+ /// <summary>
64
+ /// Reads a quantized float encoded with <see cref="BitWriter.WriteQuantizedFloat"/>.
65
+ /// Arguments must match those used during encoding exactly.
66
+ /// </summary>
67
+ public float ReadQuantizedFloat(float min, float max, int bits)
68
+ {
69
+ uint maxQ = (1u << bits) - 1;
70
+ uint quantized = ReadBits(bits);
71
+ float normalized = (float)quantized / maxQ;
72
+ return min + normalized * (max - min);
73
+ }
74
+
75
+ // -----------------------------------------------------------------
76
+ // Standard IEEE 754 helpers
77
+ // -----------------------------------------------------------------
78
+
79
+ /// <summary>Reads a 32-bit IEEE 754 float written by <see cref="BitWriter.WriteFloat"/>.</summary>
80
+ public float ReadFloat()
81
+ {
82
+ uint bits = ReadBits(32);
83
+ byte[] bytes =
84
+ {
85
+ (byte)(bits & 0xFF),
86
+ (byte)((bits >> 8) & 0xFF),
87
+ (byte)((bits >> 16) & 0xFF),
88
+ (byte)((bits >> 24) & 0xFF),
89
+ };
90
+ return BitConverter.ToSingle(bytes, 0);
91
+ }
92
+
93
+ /// <summary>Reads a 64-bit IEEE 754 double written by <see cref="BitWriter.WriteDouble"/>.</summary>
94
+ public double ReadDouble()
95
+ {
96
+ uint hi = ReadBits(32);
97
+ uint lo = ReadBits(32);
98
+ byte[] bytes =
99
+ {
100
+ (byte)(lo & 0xFF),
101
+ (byte)((lo >> 8) & 0xFF),
102
+ (byte)((lo >> 16) & 0xFF),
103
+ (byte)((lo >> 24) & 0xFF),
104
+ (byte)(hi & 0xFF),
105
+ (byte)((hi >> 8) & 0xFF),
106
+ (byte)((hi >> 16) & 0xFF),
107
+ (byte)((hi >> 24) & 0xFF),
108
+ };
109
+ return BitConverter.ToDouble(bytes, 0);
110
+ }
111
+ }
112
+ }
@@ -0,0 +1,117 @@
1
+ // Decentraland.Networking.Bitwise — BitWriter
2
+ // Copy this file into your Unity project alongside generated *.Bitwise.cs files.
3
+
4
+ using System;
5
+
6
+ namespace Decentraland.Networking.Bitwise
7
+ {
8
+ /// <summary>
9
+ /// Writes bits into a pre-allocated byte buffer, MSB first within each byte
10
+ /// (big-endian bit order). This matches the layout expected by
11
+ /// <see cref="BitReader"/> so that encode → decode is always a round-trip no-op.
12
+ /// </summary>
13
+ public sealed class BitWriter
14
+ {
15
+ private readonly byte[] _buffer;
16
+ private int _bitPos;
17
+
18
+ /// <param name="buffer">Destination buffer (must be large enough for all writes).</param>
19
+ public BitWriter(byte[] buffer)
20
+ {
21
+ _buffer = buffer ?? throw new ArgumentNullException(nameof(buffer));
22
+ _bitPos = 0;
23
+ }
24
+
25
+ /// <summary>Current write position in bits.</summary>
26
+ public int BitPosition => _bitPos;
27
+
28
+ /// <summary>Number of bytes written (rounded up to the nearest byte).</summary>
29
+ public int ByteLength => (_bitPos + 7) / 8;
30
+
31
+ /// <summary>Returns a copy of the written bytes (trimmed to <see cref="ByteLength"/>).</summary>
32
+ public byte[] ToArray()
33
+ {
34
+ var result = new byte[ByteLength];
35
+ Array.Copy(_buffer, result, ByteLength);
36
+ return result;
37
+ }
38
+
39
+ // -----------------------------------------------------------------
40
+ // Core primitive
41
+ // -----------------------------------------------------------------
42
+
43
+ /// <summary>
44
+ /// Writes the <paramref name="bits"/> least-significant bits of
45
+ /// <paramref name="value"/>, MSB first.
46
+ /// </summary>
47
+ public void WriteBits(uint value, int bits)
48
+ {
49
+ for (int i = bits - 1; i >= 0; i--)
50
+ {
51
+ int byteIdx = _bitPos / 8;
52
+ int bitIdx = 7 - (_bitPos % 8);
53
+
54
+ if ((value >> i & 1u) == 1u)
55
+ _buffer[byteIdx] |= (byte)(1 << bitIdx);
56
+ else
57
+ _buffer[byteIdx] &= (byte)~(1 << bitIdx);
58
+
59
+ _bitPos++;
60
+ }
61
+ }
62
+
63
+ // -----------------------------------------------------------------
64
+ // Quantized float
65
+ // -----------------------------------------------------------------
66
+
67
+ /// <summary>
68
+ /// Quantizes <paramref name="value"/> into <paramref name="bits"/> bits
69
+ /// using the range [<paramref name="min"/>, <paramref name="max"/>] and
70
+ /// writes it to the buffer.
71
+ ///
72
+ /// Uses <c>Math.Round</c> (banker's rounding → ties-to-even) to guarantee
73
+ /// that encode → decode is a round-trip no-op.
74
+ /// </summary>
75
+ public void WriteQuantizedFloat(float value, float min, float max, int bits)
76
+ {
77
+ uint maxQ = (1u << bits) - 1;
78
+ float clamped = Math.Clamp(value, min, max);
79
+ float normalized = (clamped - min) / (max - min);
80
+ uint quantized = (uint)Math.Round(normalized * maxQ);
81
+ WriteBits(quantized, bits);
82
+ }
83
+
84
+ // -----------------------------------------------------------------
85
+ // Standard IEEE 754 helpers (used for un-annotated float/double fields)
86
+ // -----------------------------------------------------------------
87
+
88
+ /// <summary>Writes a 32-bit IEEE 754 float (4 bytes).</summary>
89
+ public void WriteFloat(float value)
90
+ {
91
+ byte[] bytes = BitConverter.GetBytes(value);
92
+ // GetBytes is little-endian on all platforms; write MSB first.
93
+ uint bits = (uint)bytes[0]
94
+ | ((uint)bytes[1] << 8)
95
+ | ((uint)bytes[2] << 16)
96
+ | ((uint)bytes[3] << 24);
97
+ WriteBits(bits, 32);
98
+ }
99
+
100
+ /// <summary>Writes a 64-bit IEEE 754 double (8 bytes).</summary>
101
+ public void WriteDouble(double value)
102
+ {
103
+ byte[] bytes = BitConverter.GetBytes(value);
104
+ uint lo = (uint)bytes[0]
105
+ | ((uint)bytes[1] << 8)
106
+ | ((uint)bytes[2] << 16)
107
+ | ((uint)bytes[3] << 24);
108
+ uint hi = (uint)bytes[4]
109
+ | ((uint)bytes[5] << 8)
110
+ | ((uint)bytes[6] << 16)
111
+ | ((uint)bytes[7] << 24);
112
+ // Write high 32 bits first so the bit stream is big-endian at word level too.
113
+ WriteBits(hi, 32);
114
+ WriteBits(lo, 32);
115
+ }
116
+ }
117
+ }
@@ -0,0 +1,35 @@
1
+ // Decentraland.Networking.Bitwise — Quantize
2
+ // Copy this file into your project alongside generated *.Bitwise.cs files.
3
+ // ReSharper disable once RedundantUsingDirective
4
+
5
+ using System;
6
+
7
+ namespace Decentraland.Networking.Bitwise
8
+ // ReSharper disable once ArrangeNamespaceBody
9
+ {
10
+ /// <summary>
11
+ /// Static helpers for quantizing float values to/from unsigned integers.
12
+ /// Intended for use with protobuf uint32 fields: the integer is transmitted
13
+ /// as a protobuf varint, while the float accessor lives in a generated partial class.
14
+ /// </summary>
15
+ public static class Quantize
16
+ {
17
+ /// <summary>
18
+ /// Encodes <paramref name="value" /> to a quantized <see cref="uint" />.
19
+ /// Values outside [<paramref name="min" />, <paramref name="max" />] are clamped.
20
+ /// </summary>
21
+ public static uint Encode(float value, float min, float max, int bits)
22
+ {
23
+ var steps = (1u << bits) - 1;
24
+ var t = Math.Clamp((value - min) / (max - min), 0f, 1f);
25
+ return (uint)MathF.Round(t * steps);
26
+ }
27
+
28
+ /// <summary>Decodes a quantized <see cref="uint" /> back to a float.</summary>
29
+ public static float Decode(uint encoded, float min, float max, int bits)
30
+ {
31
+ var steps = (1u << bits) - 1;
32
+ return (float)encoded / steps * (max - min) + min;
33
+ }
34
+ }
35
+ }