@blamnetwork/blf 1.0.0-alpha.1

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 (235) hide show
  1. package/README.md +82 -0
  2. package/dist/bitstream/enum.d.ts +6 -0
  3. package/dist/bitstream/enum.d.ts.map +1 -0
  4. package/dist/bitstream/enum.js +15 -0
  5. package/dist/bitstream/enums.d.ts +21 -0
  6. package/dist/bitstream/enums.d.ts.map +1 -0
  7. package/dist/bitstream/enums.js +31 -0
  8. package/dist/bitstream/errors.d.ts +5 -0
  9. package/dist/bitstream/errors.d.ts.map +1 -0
  10. package/dist/bitstream/errors.js +11 -0
  11. package/dist/bitstream/index.d.ts +7 -0
  12. package/dist/bitstream/index.d.ts.map +1 -0
  13. package/dist/bitstream/index.js +5 -0
  14. package/dist/bitstream/math.d.ts +28 -0
  15. package/dist/bitstream/math.d.ts.map +1 -0
  16. package/dist/bitstream/math.js +149 -0
  17. package/dist/bitstream/reader.d.ts +81 -0
  18. package/dist/bitstream/reader.d.ts.map +1 -0
  19. package/dist/bitstream/reader.js +400 -0
  20. package/dist/bitstream/writer.d.ts +56 -0
  21. package/dist/bitstream/writer.d.ts.map +1 -0
  22. package/dist/bitstream/writer.js +330 -0
  23. package/dist/blam/common/cache/index.d.ts +2 -0
  24. package/dist/blam/common/cache/index.d.ts.map +1 -0
  25. package/dist/blam/common/cache/index.js +1 -0
  26. package/dist/blam/common/cache/security_functions.d.ts +2 -0
  27. package/dist/blam/common/cache/security_functions.d.ts.map +1 -0
  28. package/dist/blam/common/cache/security_functions.js +19 -0
  29. package/dist/blam/common/index.d.ts +3 -0
  30. package/dist/blam/common/index.d.ts.map +1 -0
  31. package/dist/blam/common/index.js +2 -0
  32. package/dist/blam/common/memory/data_compress.d.ts +10 -0
  33. package/dist/blam/common/memory/data_compress.d.ts.map +1 -0
  34. package/dist/blam/common/memory/data_compress.js +28 -0
  35. package/dist/blam/common/memory/index.d.ts +2 -0
  36. package/dist/blam/common/memory/index.d.ts.map +1 -0
  37. package/dist/blam/common/memory/index.js +1 -0
  38. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_custom_variant.d.ts +37 -0
  39. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_custom_variant.d.ts.map +1 -0
  40. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_custom_variant.js +125 -0
  41. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_custom_variant_au1_settings.d.ts +14 -0
  42. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_custom_variant_au1_settings.d.ts.map +1 -0
  43. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_custom_variant_au1_settings.js +30 -0
  44. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_default.d.ts +114 -0
  45. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_default.d.ts.map +1 -0
  46. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_default.js +292 -0
  47. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_survival_variant.d.ts +70 -0
  48. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_survival_variant.d.ts.map +1 -0
  49. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_survival_variant.js +174 -0
  50. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_traits.d.ts +10 -0
  51. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_traits.d.ts.map +1 -0
  52. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_traits.js +16 -0
  53. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_variant.d.ts +28 -0
  54. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_variant.d.ts.map +1 -0
  55. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_variant.js +109 -0
  56. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_player_traits.d.ts +56 -0
  57. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_player_traits.d.ts.map +1 -0
  58. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_player_traits.js +142 -0
  59. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_string_table.d.ts +27 -0
  60. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_string_table.d.ts.map +1 -0
  61. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_string_table.js +190 -0
  62. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/index.d.ts +10 -0
  63. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/index.d.ts.map +1 -0
  64. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/index.js +9 -0
  65. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_megalo_game_statistic.d.ts +10 -0
  66. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_megalo_game_statistic.d.ts.map +1 -0
  67. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_megalo_game_statistic.js +18 -0
  68. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_megalogamengine_map_permissions.d.ts +8 -0
  69. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_megalogamengine_map_permissions.d.ts.map +1 -0
  70. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_megalogamengine_map_permissions.js +18 -0
  71. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_object_filter.d.ts +13 -0
  72. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_object_filter.d.ts.map +1 -0
  73. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_object_filter.js +39 -0
  74. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_trigger.d.ts +34 -0
  75. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_trigger.d.ts.map +1 -0
  76. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_trigger.js +59 -0
  77. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/index.d.ts +14 -0
  78. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/index.d.ts.map +1 -0
  79. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/index.js +13 -0
  80. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_actions.d.ts +393 -0
  81. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_actions.d.ts.map +1 -0
  82. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_actions.js +1590 -0
  83. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_conditions.d.ts +49 -0
  84. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_conditions.d.ts.map +1 -0
  85. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_conditions.js +216 -0
  86. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_references.d.ts +79 -0
  87. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_references.d.ts.map +1 -0
  88. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_references.js +496 -0
  89. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_text.d.ts +26 -0
  90. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_text.d.ts.map +1 -0
  91. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_text.js +118 -0
  92. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_custom_game_engine_definition.d.ts +29 -0
  93. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_custom_game_engine_definition.d.ts.map +1 -0
  94. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_custom_game_engine_definition.js +116 -0
  95. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_game_engine_player_rating_parameters.d.ts +22 -0
  96. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_game_engine_player_rating_parameters.d.ts.map +1 -0
  97. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_game_engine_player_rating_parameters.js +54 -0
  98. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_user_defined_option.d.ts +22 -0
  99. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_user_defined_option.d.ts.map +1 -0
  100. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_user_defined_option.js +82 -0
  101. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_variable_metadata.d.ts +22 -0
  102. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_variable_metadata.d.ts.map +1 -0
  103. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_variable_metadata.js +85 -0
  104. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_variant_variable.d.ts +13 -0
  105. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_variant_variable.d.ts.map +1 -0
  106. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_variant_variable.js +75 -0
  107. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/index.d.ts +4 -0
  108. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/index.d.ts.map +1 -0
  109. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/index.js +3 -0
  110. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/saved_games/index.d.ts +2 -0
  111. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/saved_games/index.d.ts.map +1 -0
  112. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/saved_games/index.js +1 -0
  113. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/saved_games/saved_game_files.d.ts +66 -0
  114. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/saved_games/saved_game_files.d.ts.map +1 -0
  115. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/saved_games/saved_game_files.js +586 -0
  116. package/dist/blf_chunk.d.ts +41 -0
  117. package/dist/blf_chunk.d.ts.map +1 -0
  118. package/dist/blf_chunk.js +126 -0
  119. package/dist/blffile.d.ts +5 -0
  120. package/dist/blffile.d.ts.map +1 -0
  121. package/dist/blffile.js +23 -0
  122. package/dist/chunk_signature.d.ts +10 -0
  123. package/dist/chunk_signature.d.ts.map +1 -0
  124. package/dist/chunk_signature.js +47 -0
  125. package/dist/chunks/halo3/v12070_08_09_05_2031_halo3_ship/index.d.ts +4 -0
  126. package/dist/chunks/halo3/v12070_08_09_05_2031_halo3_ship/index.d.ts.map +1 -0
  127. package/dist/chunks/halo3/v12070_08_09_05_2031_halo3_ship/index.js +3 -0
  128. package/dist/chunks/halo3/v12070_08_09_05_2031_halo3_ship/s_blf_chunk_compressed_data.d.ts +21 -0
  129. package/dist/chunks/halo3/v12070_08_09_05_2031_halo3_ship/s_blf_chunk_compressed_data.d.ts.map +1 -0
  130. package/dist/chunks/halo3/v12070_08_09_05_2031_halo3_ship/s_blf_chunk_compressed_data.js +112 -0
  131. package/dist/chunks/halo3/v12070_08_09_05_2031_halo3_ship/s_blf_chunk_end_of_file.d.ts +7 -0
  132. package/dist/chunks/halo3/v12070_08_09_05_2031_halo3_ship/s_blf_chunk_end_of_file.d.ts.map +1 -0
  133. package/dist/chunks/halo3/v12070_08_09_05_2031_halo3_ship/s_blf_chunk_end_of_file.js +72 -0
  134. package/dist/chunks/halo3/v12070_08_09_05_2031_halo3_ship/s_blf_chunk_start_of_file.d.ts +13 -0
  135. package/dist/chunks/halo3/v12070_08_09_05_2031_halo3_ship/s_blf_chunk_start_of_file.d.ts.map +1 -0
  136. package/dist/chunks/halo3/v12070_08_09_05_2031_halo3_ship/s_blf_chunk_start_of_file.js +83 -0
  137. package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/index.d.ts +7 -0
  138. package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/index.d.ts.map +1 -0
  139. package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/index.js +6 -0
  140. package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_author.d.ts +26 -0
  141. package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_author.d.ts.map +1 -0
  142. package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_author.js +109 -0
  143. package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_compressed_data.d.ts +4 -0
  144. package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_compressed_data.d.ts.map +1 -0
  145. package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_compressed_data.js +3 -0
  146. package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_content_header.d.ts +8 -0
  147. package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_content_header.d.ts.map +1 -0
  148. package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_content_header.js +78 -0
  149. package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_game_variant.d.ts +24 -0
  150. package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_game_variant.d.ts.map +1 -0
  151. package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_game_variant.js +130 -0
  152. package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_packed_game_variant.d.ts +15 -0
  153. package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_packed_game_variant.d.ts.map +1 -0
  154. package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_packed_game_variant.js +85 -0
  155. package/dist/decorators.d.ts +38 -0
  156. package/dist/decorators.d.ts.map +1 -0
  157. package/dist/decorators.js +68 -0
  158. package/dist/error.d.ts +4 -0
  159. package/dist/error.d.ts.map +1 -0
  160. package/dist/error.js +6 -0
  161. package/dist/index.d.ts +7 -0
  162. package/dist/index.d.ts.map +1 -0
  163. package/dist/index.js +6 -0
  164. package/dist/s_blf_header.d.ts +14 -0
  165. package/dist/s_blf_header.d.ts.map +1 -0
  166. package/dist/s_blf_header.js +113 -0
  167. package/dist/versions/halo3/v12070_08_09_05_2031_halo3_ship.d.ts +5 -0
  168. package/dist/versions/halo3/v12070_08_09_05_2031_halo3_ship.d.ts.map +1 -0
  169. package/dist/versions/halo3/v12070_08_09_05_2031_halo3_ship.js +4 -0
  170. package/dist/versions/halo3odst/v13895_09_04_27_2201_atlas_release.d.ts +5 -0
  171. package/dist/versions/halo3odst/v13895_09_04_27_2201_atlas_release.d.ts.map +1 -0
  172. package/dist/versions/halo3odst/v13895_09_04_27_2201_atlas_release.js +4 -0
  173. package/dist/versions/haloreach/v12065_11_08_24_1738_tu1actual.d.ts +10 -0
  174. package/dist/versions/haloreach/v12065_11_08_24_1738_tu1actual.d.ts.map +1 -0
  175. package/dist/versions/haloreach/v12065_11_08_24_1738_tu1actual.js +9 -0
  176. package/dist-cjs/bitstream/enum.js +19 -0
  177. package/dist-cjs/bitstream/enums.js +34 -0
  178. package/dist-cjs/bitstream/errors.js +16 -0
  179. package/dist-cjs/bitstream/index.js +29 -0
  180. package/dist-cjs/bitstream/math.js +167 -0
  181. package/dist-cjs/bitstream/reader.js +404 -0
  182. package/dist-cjs/bitstream/writer.js +334 -0
  183. package/dist-cjs/blam/common/cache/index.js +17 -0
  184. package/dist-cjs/blam/common/cache/security_functions.js +22 -0
  185. package/dist-cjs/blam/common/index.js +18 -0
  186. package/dist-cjs/blam/common/memory/data_compress.js +33 -0
  187. package/dist-cjs/blam/common/memory/index.js +17 -0
  188. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_custom_variant.js +129 -0
  189. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_custom_variant_au1_settings.js +34 -0
  190. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_default.js +305 -0
  191. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_survival_variant.js +182 -0
  192. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_traits.js +20 -0
  193. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_variant.js +113 -0
  194. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_player_traits.js +151 -0
  195. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_string_table.js +195 -0
  196. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/index.js +25 -0
  197. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_megalo_game_statistic.js +22 -0
  198. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_megalogamengine_map_permissions.js +22 -0
  199. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_object_filter.js +43 -0
  200. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_trigger.js +63 -0
  201. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/index.js +29 -0
  202. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_actions.js +1640 -0
  203. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_conditions.js +224 -0
  204. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_references.js +508 -0
  205. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_text.js +124 -0
  206. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_custom_game_engine_definition.js +120 -0
  207. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_game_engine_player_rating_parameters.js +58 -0
  208. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_user_defined_option.js +87 -0
  209. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_variable_metadata.js +93 -0
  210. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_variant_variable.js +79 -0
  211. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/index.js +19 -0
  212. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/saved_games/index.js +17 -0
  213. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/saved_games/saved_game_files.js +591 -0
  214. package/dist-cjs/blf_chunk.js +139 -0
  215. package/dist-cjs/blffile.js +26 -0
  216. package/dist-cjs/chunk_signature.js +52 -0
  217. package/dist-cjs/chunks/halo3/v12070_08_09_05_2031_halo3_ship/index.js +10 -0
  218. package/dist-cjs/chunks/halo3/v12070_08_09_05_2031_halo3_ship/s_blf_chunk_compressed_data.js +115 -0
  219. package/dist-cjs/chunks/halo3/v12070_08_09_05_2031_halo3_ship/s_blf_chunk_end_of_file.js +75 -0
  220. package/dist-cjs/chunks/halo3/v12070_08_09_05_2031_halo3_ship/s_blf_chunk_start_of_file.js +86 -0
  221. package/dist-cjs/chunks/haloreach/v12065_11_08_24_1738_tu1actual/index.js +23 -0
  222. package/dist-cjs/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_author.js +115 -0
  223. package/dist-cjs/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_compressed_data.js +10 -0
  224. package/dist-cjs/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_content_header.js +81 -0
  225. package/dist-cjs/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_game_variant.js +133 -0
  226. package/dist-cjs/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_packed_game_variant.js +88 -0
  227. package/dist-cjs/decorators.js +75 -0
  228. package/dist-cjs/error.js +10 -0
  229. package/dist-cjs/index.js +53 -0
  230. package/dist-cjs/package.json +1 -0
  231. package/dist-cjs/s_blf_header.js +117 -0
  232. package/dist-cjs/versions/halo3/v12070_08_09_05_2031_halo3_ship.js +20 -0
  233. package/dist-cjs/versions/halo3odst/v13895_09_04_27_2201_atlas_release.js +20 -0
  234. package/dist-cjs/versions/haloreach/v12065_11_08_24_1738_tu1actual.js +25 -0
  235. package/package.json +99 -0
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
3
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
4
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
5
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
6
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
7
+ var _, done = false;
8
+ for (var i = decorators.length - 1; i >= 0; i--) {
9
+ var context = {};
10
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
11
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
12
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
13
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
14
+ if (kind === "accessor") {
15
+ if (result === void 0) continue;
16
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
17
+ if (_ = accept(result.get)) descriptor.get = _;
18
+ if (_ = accept(result.set)) descriptor.set = _;
19
+ if (_ = accept(result.init)) initializers.unshift(_);
20
+ }
21
+ else if (_ = accept(result)) {
22
+ if (kind === "field") initializers.unshift(_);
23
+ else descriptor[key] = _;
24
+ }
25
+ }
26
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
27
+ done = true;
28
+ };
29
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
30
+ var useValue = arguments.length > 2;
31
+ for (var i = 0; i < initializers.length; i++) {
32
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
33
+ }
34
+ return useValue ? value : void 0;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.s_blf_chunk_author = void 0;
41
+ const cstruct_1 = require("@craftycodie/cstruct");
42
+ const package_json_1 = __importDefault(require("../../../../package.json"));
43
+ const blf_chunk_1 = require("../../../blf_chunk");
44
+ /** BLF author chunk (`athr` 3.1) — same layout as Halo 3: ODST Atlas. */
45
+ let s_blf_chunk_author = (() => {
46
+ let _classDecorators = [blf_chunk_1.blf.chunk("athr", 3.1), cstruct_1.c.struct()];
47
+ let _classDescriptor;
48
+ let _classExtraInitializers = [];
49
+ let _classThis;
50
+ let _classSuper = blf_chunk_1.CStructBLFChunk;
51
+ let _program_name_decorators;
52
+ let _program_name_initializers = [];
53
+ let _program_name_extraInitializers = [];
54
+ let _build_number_decorators;
55
+ let _build_number_initializers = [];
56
+ let _build_number_extraInitializers = [];
57
+ let _build_number_sequence_decorators;
58
+ let _build_number_sequence_initializers = [];
59
+ let _build_number_sequence_extraInitializers = [];
60
+ let _build_string_decorators;
61
+ let _build_string_initializers = [];
62
+ let _build_string_extraInitializers = [];
63
+ let _author_name_decorators;
64
+ let _author_name_initializers = [];
65
+ let _author_name_extraInitializers = [];
66
+ var s_blf_chunk_author = class extends _classSuper {
67
+ static { _classThis = this; }
68
+ static {
69
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
70
+ _program_name_decorators = [cstruct_1.c.field(cstruct_1.c.String(16))];
71
+ _build_number_decorators = [cstruct_1.c.field("u32")];
72
+ _build_number_sequence_decorators = [cstruct_1.c.field("u32")];
73
+ _build_string_decorators = [cstruct_1.c.field(cstruct_1.c.String(28))];
74
+ _author_name_decorators = [cstruct_1.c.field(cstruct_1.c.String(16))];
75
+ __esDecorate(null, null, _program_name_decorators, { kind: "field", name: "program_name", static: false, private: false, access: { has: obj => "program_name" in obj, get: obj => obj.program_name, set: (obj, value) => { obj.program_name = value; } }, metadata: _metadata }, _program_name_initializers, _program_name_extraInitializers);
76
+ __esDecorate(null, null, _build_number_decorators, { kind: "field", name: "build_number", static: false, private: false, access: { has: obj => "build_number" in obj, get: obj => obj.build_number, set: (obj, value) => { obj.build_number = value; } }, metadata: _metadata }, _build_number_initializers, _build_number_extraInitializers);
77
+ __esDecorate(null, null, _build_number_sequence_decorators, { kind: "field", name: "build_number_sequence", static: false, private: false, access: { has: obj => "build_number_sequence" in obj, get: obj => obj.build_number_sequence, set: (obj, value) => { obj.build_number_sequence = value; } }, metadata: _metadata }, _build_number_sequence_initializers, _build_number_sequence_extraInitializers);
78
+ __esDecorate(null, null, _build_string_decorators, { kind: "field", name: "build_string", static: false, private: false, access: { has: obj => "build_string" in obj, get: obj => obj.build_string, set: (obj, value) => { obj.build_string = value; } }, metadata: _metadata }, _build_string_initializers, _build_string_extraInitializers);
79
+ __esDecorate(null, null, _author_name_decorators, { kind: "field", name: "author_name", static: false, private: false, access: { has: obj => "author_name" in obj, get: obj => obj.author_name, set: (obj, value) => { obj.author_name = value; } }, metadata: _metadata }, _author_name_initializers, _author_name_extraInitializers);
80
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
81
+ s_blf_chunk_author = _classThis = _classDescriptor.value;
82
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
83
+ __runInitializers(_classThis, _classExtraInitializers);
84
+ }
85
+ /** e.g. `GameData.Reach`, or blf_lib package name from `for_build`. */
86
+ program_name = __runInitializers(this, _program_name_initializers, "");
87
+ /** e.g. 12065 */
88
+ build_number = (__runInitializers(this, _program_name_extraInitializers), __runInitializers(this, _build_number_initializers, 0));
89
+ /** e.g. 2 for Reach title storage exports */
90
+ build_number_sequence = (__runInitializers(this, _build_number_extraInitializers), __runInitializers(this, _build_number_sequence_initializers, 0));
91
+ /** e.g. `12065.11.08.24.1738.tu1actual` */
92
+ build_string = (__runInitializers(this, _build_number_sequence_extraInitializers), __runInitializers(this, _build_string_initializers, ""));
93
+ /** e.g. `davidav`, `dagasca` */
94
+ author_name = (__runInitializers(this, _build_string_extraInitializers), __runInitializers(this, _author_name_initializers, ""));
95
+ /**
96
+ * Default author chunk for Reach TU1 exports.
97
+ * Mirrors `s_blf_chunk_author::for_build` in blf_lib (ODST 3.1 layout).
98
+ */
99
+ static forBuild(options) {
100
+ const chunk = new s_blf_chunk_author();
101
+ chunk.program_name = options?.programName ?? `blf-ts ${package_json_1.default.version}`;
102
+ chunk.build_number = options?.buildNumber ?? 0;
103
+ chunk.build_number_sequence = options?.buildNumberSequence ?? 0;
104
+ chunk.build_string = (options?.buildString ?? "").slice(0, 28);
105
+ chunk.author_name = options?.authorName ?? "";
106
+ return chunk;
107
+ }
108
+ constructor() {
109
+ super(...arguments);
110
+ __runInitializers(this, _author_name_extraInitializers);
111
+ }
112
+ };
113
+ return s_blf_chunk_author = _classThis;
114
+ })();
115
+ exports.s_blf_chunk_author = s_blf_chunk_author;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.s_blf_chunk_start_of_file = exports.e_byte_order_mark = exports.s_blf_chunk_end_of_file = exports.s_blf_chunk_compressed_data = void 0;
4
+ var s_blf_chunk_compressed_data_1 = require("../../halo3/v12070_08_09_05_2031_halo3_ship/s_blf_chunk_compressed_data");
5
+ Object.defineProperty(exports, "s_blf_chunk_compressed_data", { enumerable: true, get: function () { return s_blf_chunk_compressed_data_1.s_blf_chunk_compressed_data; } });
6
+ var s_blf_chunk_end_of_file_1 = require("../../halo3/v12070_08_09_05_2031_halo3_ship/s_blf_chunk_end_of_file");
7
+ Object.defineProperty(exports, "s_blf_chunk_end_of_file", { enumerable: true, get: function () { return s_blf_chunk_end_of_file_1.s_blf_chunk_end_of_file; } });
8
+ var s_blf_chunk_start_of_file_1 = require("../../halo3/v12070_08_09_05_2031_halo3_ship/s_blf_chunk_start_of_file");
9
+ Object.defineProperty(exports, "e_byte_order_mark", { enumerable: true, get: function () { return s_blf_chunk_start_of_file_1.e_byte_order_mark; } });
10
+ Object.defineProperty(exports, "s_blf_chunk_start_of_file", { enumerable: true, get: function () { return s_blf_chunk_start_of_file_1.s_blf_chunk_start_of_file; } });
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
3
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
4
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
5
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
6
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
7
+ var _, done = false;
8
+ for (var i = decorators.length - 1; i >= 0; i--) {
9
+ var context = {};
10
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
11
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
12
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
13
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
14
+ if (kind === "accessor") {
15
+ if (result === void 0) continue;
16
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
17
+ if (_ = accept(result.get)) descriptor.get = _;
18
+ if (_ = accept(result.set)) descriptor.set = _;
19
+ if (_ = accept(result.init)) initializers.unshift(_);
20
+ }
21
+ else if (_ = accept(result)) {
22
+ if (kind === "field") initializers.unshift(_);
23
+ else descriptor[key] = _;
24
+ }
25
+ }
26
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
27
+ done = true;
28
+ };
29
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
30
+ var useValue = arguments.length > 2;
31
+ for (var i = 0; i < initializers.length; i++) {
32
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
33
+ }
34
+ return useValue ? value : void 0;
35
+ };
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.s_blf_chunk_content_header = void 0;
38
+ const cstruct_1 = require("@craftycodie/cstruct");
39
+ const saved_game_files_1 = require("../../../blam/haloreach/v12065_11_08_24_1738_tu1actual/saved_games/saved_game_files");
40
+ const blf_chunk_1 = require("../../../blf_chunk");
41
+ let s_blf_chunk_content_header = (() => {
42
+ let _classDecorators = [blf_chunk_1.blf.chunk("chdr", 10.2), cstruct_1.c.struct()];
43
+ let _classDescriptor;
44
+ let _classExtraInitializers = [];
45
+ let _classThis;
46
+ let _classSuper = blf_chunk_1.CStructBLFChunk;
47
+ let _build_number_decorators;
48
+ let _build_number_initializers = [];
49
+ let _build_number_extraInitializers = [];
50
+ let _map_minor_version_decorators;
51
+ let _map_minor_version_initializers = [];
52
+ let _map_minor_version_extraInitializers = [];
53
+ let _metadata_decorators;
54
+ let _metadata_initializers = [];
55
+ let _metadata_extraInitializers = [];
56
+ var s_blf_chunk_content_header = class extends _classSuper {
57
+ static { _classThis = this; }
58
+ static {
59
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
60
+ _build_number_decorators = [cstruct_1.c.field("u16")];
61
+ _map_minor_version_decorators = [cstruct_1.c.field("u16")];
62
+ _metadata_decorators = [cstruct_1.c.field(saved_game_files_1.s_content_item_metadata)];
63
+ __esDecorate(null, null, _build_number_decorators, { kind: "field", name: "build_number", static: false, private: false, access: { has: obj => "build_number" in obj, get: obj => obj.build_number, set: (obj, value) => { obj.build_number = value; } }, metadata: _metadata }, _build_number_initializers, _build_number_extraInitializers);
64
+ __esDecorate(null, null, _map_minor_version_decorators, { kind: "field", name: "map_minor_version", static: false, private: false, access: { has: obj => "map_minor_version" in obj, get: obj => obj.map_minor_version, set: (obj, value) => { obj.map_minor_version = value; } }, metadata: _metadata }, _map_minor_version_initializers, _map_minor_version_extraInitializers);
65
+ __esDecorate(null, null, _metadata_decorators, { kind: "field", name: "metadata", static: false, private: false, access: { has: obj => "metadata" in obj, get: obj => obj.metadata, set: (obj, value) => { obj.metadata = value; } }, metadata: _metadata }, _metadata_initializers, _metadata_extraInitializers);
66
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
67
+ s_blf_chunk_content_header = _classThis = _classDescriptor.value;
68
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
69
+ __runInitializers(_classThis, _classExtraInitializers);
70
+ }
71
+ build_number = __runInitializers(this, _build_number_initializers, void 0);
72
+ map_minor_version = (__runInitializers(this, _build_number_extraInitializers), __runInitializers(this, _map_minor_version_initializers, void 0));
73
+ metadata = (__runInitializers(this, _map_minor_version_extraInitializers), __runInitializers(this, _metadata_initializers, void 0));
74
+ constructor() {
75
+ super(...arguments);
76
+ __runInitializers(this, _metadata_extraInitializers);
77
+ }
78
+ };
79
+ return s_blf_chunk_content_header = _classThis;
80
+ })();
81
+ exports.s_blf_chunk_content_header = s_blf_chunk_content_header;
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
3
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
4
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
5
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
6
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
7
+ var _, done = false;
8
+ for (var i = decorators.length - 1; i >= 0; i--) {
9
+ var context = {};
10
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
11
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
12
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
13
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
14
+ if (kind === "accessor") {
15
+ if (result === void 0) continue;
16
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
17
+ if (_ = accept(result.get)) descriptor.get = _;
18
+ if (_ = accept(result.set)) descriptor.set = _;
19
+ if (_ = accept(result.init)) initializers.unshift(_);
20
+ }
21
+ else if (_ = accept(result)) {
22
+ if (kind === "field") initializers.unshift(_);
23
+ else descriptor[key] = _;
24
+ }
25
+ }
26
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
27
+ done = true;
28
+ };
29
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
30
+ var useValue = arguments.length > 2;
31
+ for (var i = 0; i < initializers.length; i++) {
32
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
33
+ }
34
+ return useValue ? value : void 0;
35
+ };
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.s_blf_chunk_game_variant = exports.MPVR_PAYLOAD_SIZE = exports.variant_storage_capacity = void 0;
38
+ const bitstream_1 = require("../../../bitstream");
39
+ const security_functions_1 = require("../../../blam/common/cache/security_functions");
40
+ const c_game_variant_1 = require("../../../blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_variant");
41
+ const blf_chunk_1 = require("../../../blf_chunk");
42
+ const error_1 = require("../../../error");
43
+ /** Gametype storage slot size (bytes). */
44
+ exports.variant_storage_capacity = 0x5000;
45
+ /** mpvr body size: hash/header (28) + padded gametype slot. */
46
+ exports.MPVR_PAYLOAD_SIZE = 28 + exports.variant_storage_capacity;
47
+ /**
48
+ * Reach game variant chunk (`mpvr` 54.1).
49
+ *
50
+ * Payload layout matches blf_lib: hash + header fields + gametype bitstream,
51
+ * all read through one big-endian bitstream.
52
+ */
53
+ let s_blf_chunk_game_variant = (() => {
54
+ let _classDecorators = [blf_chunk_1.blf.chunk("mpvr", 54.1)];
55
+ let _classDescriptor;
56
+ let _classExtraInitializers = [];
57
+ let _classThis;
58
+ let _classSuper = blf_chunk_1.BLFChunkBase;
59
+ var s_blf_chunk_game_variant = class extends _classSuper {
60
+ static { _classThis = this; }
61
+ static {
62
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
63
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
64
+ s_blf_chunk_game_variant = _classThis = _classDescriptor.value;
65
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
66
+ __runInitializers(_classThis, _classExtraInitializers);
67
+ }
68
+ hash = new Uint8Array(20);
69
+ unknown04 = -1;
70
+ unknown06 = 0;
71
+ variant_length = 0;
72
+ game_variant = new c_game_variant_1.c_game_variant();
73
+ static create(game_variant) {
74
+ const chunk = new s_blf_chunk_game_variant();
75
+ chunk.game_variant = game_variant;
76
+ return chunk;
77
+ }
78
+ read_body(payload, endian) {
79
+ if (payload.length === 0) {
80
+ throw new error_1.BlfError("mpvr chunk payload is empty");
81
+ }
82
+ const byte_order = endian === "big"
83
+ ? bitstream_1.e_bitstream_byte_order._bitstream_byte_order_big_endian
84
+ : bitstream_1.e_bitstream_byte_order._bitstream_byte_order_little_endian;
85
+ const bitstream = bitstream_1.c_bitstream_reader.new(payload, byte_order);
86
+ bitstream.begin_reading();
87
+ this.hash = bitstream.read_raw_data(20 * 8);
88
+ this.unknown04 = bitstream.read_signed_integer("unknown04", 16);
89
+ this.unknown06 = bitstream.read_integer("unknown06", 16);
90
+ this.variant_length = bitstream.read_integer("variant-length", 32);
91
+ this.game_variant = new c_game_variant_1.c_game_variant();
92
+ this.game_variant.decode(bitstream);
93
+ bitstream.finish_reading();
94
+ }
95
+ write_body(endian) {
96
+ const byte_order = endian === "big"
97
+ ? bitstream_1.e_bitstream_byte_order._bitstream_byte_order_big_endian
98
+ : bitstream_1.e_bitstream_byte_order._bitstream_byte_order_little_endian;
99
+ const gametype_bitstream = bitstream_1.c_bitstream_writer.new(exports.variant_storage_capacity, byte_order);
100
+ gametype_bitstream.begin_writing();
101
+ this.game_variant.encode(gametype_bitstream);
102
+ gametype_bitstream.finish_writing();
103
+ const gametype_data = gametype_bitstream.get_data();
104
+ const gametype_length = gametype_data.length;
105
+ if (gametype_length > exports.variant_storage_capacity) {
106
+ throw new error_1.BlfError(`mpvr gametype too large: ${gametype_length} bytes (max ${exports.variant_storage_capacity})`);
107
+ }
108
+ const hashable_bitstream = bitstream_1.c_bitstream_writer.new(4 + gametype_length, byte_order);
109
+ hashable_bitstream.begin_writing();
110
+ hashable_bitstream.write_integer(gametype_length, 32);
111
+ hashable_bitstream.write_raw_data(gametype_data, gametype_length * 8);
112
+ hashable_bitstream.finish_writing();
113
+ const hash = (0, security_functions_1.security_calculate_hash)(hashable_bitstream.get_data());
114
+ const payload_bitstream = bitstream_1.c_bitstream_writer.new(exports.variant_storage_capacity, byte_order);
115
+ payload_bitstream.begin_writing();
116
+ payload_bitstream.write_raw_data(hash, hash.length * 8);
117
+ payload_bitstream.write_signed_integer(this.unknown04, 16);
118
+ payload_bitstream.write_integer(this.unknown06, 16);
119
+ payload_bitstream.write_integer(gametype_length, 32);
120
+ payload_bitstream.write_raw_data(gametype_data, gametype_length * 8);
121
+ const pad_bytes = exports.variant_storage_capacity - gametype_length;
122
+ if (pad_bytes > 0) {
123
+ payload_bitstream.seek_relative(pad_bytes * 8);
124
+ }
125
+ payload_bitstream.finish_writing();
126
+ this.hash = hash;
127
+ this.variant_length = gametype_length;
128
+ return payload_bitstream.get_data();
129
+ }
130
+ };
131
+ return s_blf_chunk_game_variant = _classThis;
132
+ })();
133
+ exports.s_blf_chunk_game_variant = s_blf_chunk_game_variant;
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
3
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
4
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
5
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
6
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
7
+ var _, done = false;
8
+ for (var i = decorators.length - 1; i >= 0; i--) {
9
+ var context = {};
10
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
11
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
12
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
13
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
14
+ if (kind === "accessor") {
15
+ if (result === void 0) continue;
16
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
17
+ if (_ = accept(result.get)) descriptor.get = _;
18
+ if (_ = accept(result.set)) descriptor.set = _;
19
+ if (_ = accept(result.init)) initializers.unshift(_);
20
+ }
21
+ else if (_ = accept(result)) {
22
+ if (kind === "field") initializers.unshift(_);
23
+ else descriptor[key] = _;
24
+ }
25
+ }
26
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
27
+ done = true;
28
+ };
29
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
30
+ var useValue = arguments.length > 2;
31
+ for (var i = 0; i < initializers.length; i++) {
32
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
33
+ }
34
+ return useValue ? value : void 0;
35
+ };
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.s_blf_chunk_packed_game_variant = void 0;
38
+ const bitstream_1 = require("../../../bitstream");
39
+ const c_game_variant_1 = require("../../../blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_variant");
40
+ const blf_chunk_1 = require("../../../blf_chunk");
41
+ const error_1 = require("../../../error");
42
+ /**
43
+ * Reach matchmaking game variant chunk (`gvar` 54.1).
44
+ *
45
+ * Payload is the gametype bitstream only (no mpvr hash/header wrapper).
46
+ */
47
+ let s_blf_chunk_packed_game_variant = (() => {
48
+ let _classDecorators = [blf_chunk_1.blf.chunk("gvar", 54.1)];
49
+ let _classDescriptor;
50
+ let _classExtraInitializers = [];
51
+ let _classThis;
52
+ let _classSuper = blf_chunk_1.BLFChunkBase;
53
+ var s_blf_chunk_packed_game_variant = class extends _classSuper {
54
+ static { _classThis = this; }
55
+ static {
56
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
57
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
58
+ s_blf_chunk_packed_game_variant = _classThis = _classDescriptor.value;
59
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
60
+ __runInitializers(_classThis, _classExtraInitializers);
61
+ }
62
+ game_variant = new c_game_variant_1.c_game_variant();
63
+ static create(game_variant) {
64
+ const chunk = new s_blf_chunk_packed_game_variant();
65
+ chunk.game_variant = game_variant;
66
+ return chunk;
67
+ }
68
+ read_body(payload, _endian) {
69
+ if (payload.length === 0) {
70
+ throw new error_1.BlfError("gvar chunk payload is empty");
71
+ }
72
+ const bitstream = bitstream_1.c_bitstream_reader.new(payload, bitstream_1.e_bitstream_byte_order._bitstream_byte_order_big_endian);
73
+ bitstream.begin_reading();
74
+ this.game_variant = new c_game_variant_1.c_game_variant();
75
+ this.game_variant.decode(bitstream);
76
+ bitstream.finish_reading();
77
+ }
78
+ write_body(_endian) {
79
+ const bitstream = bitstream_1.c_bitstream_writer.new(0x5028, bitstream_1.e_bitstream_byte_order._bitstream_byte_order_big_endian);
80
+ bitstream.begin_writing();
81
+ this.game_variant.encode(bitstream);
82
+ bitstream.finish_writing();
83
+ return bitstream.get_data();
84
+ }
85
+ };
86
+ return s_blf_chunk_packed_game_variant = _classThis;
87
+ })();
88
+ exports.s_blf_chunk_packed_game_variant = s_blf_chunk_packed_game_variant;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.blf = exports.BLF_CHUNK_META = void 0;
4
+ exports.chunk = chunk;
5
+ exports.getBlfChunkMeta = getBlfChunkMeta;
6
+ exports.createBlfChunk = createBlfChunk;
7
+ exports.chunkMatches = chunkMatches;
8
+ const error_1 = require("./error");
9
+ const s_blf_header_1 = require("./s_blf_header");
10
+ exports.BLF_CHUNK_META = Symbol.for("blf.chunk.meta");
11
+ function attach_chunk_metadata(target, info) {
12
+ Object.defineProperty(target, exports.BLF_CHUNK_META, {
13
+ value: info,
14
+ enumerable: false,
15
+ configurable: false,
16
+ });
17
+ for (const key of ["signature", "version", "major", "minor"]) {
18
+ Object.defineProperty(target.prototype, key, {
19
+ get() {
20
+ return info[key];
21
+ },
22
+ enumerable: true,
23
+ configurable: true,
24
+ });
25
+ }
26
+ }
27
+ function chunk_info(signature, version) {
28
+ if (signature.length !== 4) {
29
+ throw new error_1.BlfError(`BLF chunk signature must be exactly 4 characters, got ${signature.length}: "${signature}"`);
30
+ }
31
+ const parsed = (0, s_blf_header_1.parse_blf_chunk_version)(version);
32
+ return {
33
+ signature,
34
+ version,
35
+ major: parsed.major,
36
+ minor: parsed.minor,
37
+ };
38
+ }
39
+ /**
40
+ * Registers BLF signature/version on the class (runtime getters + constructor meta).
41
+ * Implement {@link BLFChunk} `read_body` / `write_body`, or extend {@link CStructBLFChunk} with `@c.struct`.
42
+ */
43
+ function chunk(signature, version) {
44
+ const info = chunk_info(signature, version);
45
+ return (target, _context) => {
46
+ attach_chunk_metadata(target, info);
47
+ return target;
48
+ };
49
+ }
50
+ /** `@blf.chunk` decorator and namespace. */
51
+ exports.blf = { chunk };
52
+ function getBlfChunkMeta(from) {
53
+ if (typeof from === "function") {
54
+ const meta = from[exports.BLF_CHUNK_META];
55
+ if (!meta) {
56
+ throw new error_1.BlfError(`${from.name} is not decorated with @blf.chunk`);
57
+ }
58
+ return meta;
59
+ }
60
+ const inst = from;
61
+ return {
62
+ signature: inst.signature,
63
+ version: inst.version,
64
+ major: inst.major,
65
+ minor: inst.minor,
66
+ };
67
+ }
68
+ function createBlfChunk(ctor) {
69
+ return new ctor();
70
+ }
71
+ function chunkMatches(header, meta) {
72
+ return (header.signature === meta.signature &&
73
+ header.major === meta.major &&
74
+ header.minor === meta.minor);
75
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BlfError = void 0;
4
+ class BlfError extends Error {
5
+ constructor(message) {
6
+ super(message);
7
+ this.name = "BlfError";
8
+ }
9
+ }
10
+ exports.BlfError = BlfError;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
36
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.s_blf_header = exports.BlfError = exports.write_blffile = exports.search_for_chunk = exports.find_chunk = exports.CStructBLFChunk = exports.blf = exports.BLFChunkBase = exports.bitstream = void 0;
40
+ exports.bitstream = __importStar(require("./bitstream"));
41
+ __exportStar(require("./blam/common"), exports);
42
+ var blf_chunk_1 = require("./blf_chunk");
43
+ Object.defineProperty(exports, "BLFChunkBase", { enumerable: true, get: function () { return blf_chunk_1.BLFChunkBase; } });
44
+ Object.defineProperty(exports, "blf", { enumerable: true, get: function () { return blf_chunk_1.blf; } });
45
+ Object.defineProperty(exports, "CStructBLFChunk", { enumerable: true, get: function () { return blf_chunk_1.CStructBLFChunk; } });
46
+ Object.defineProperty(exports, "find_chunk", { enumerable: true, get: function () { return blf_chunk_1.find_chunk; } });
47
+ Object.defineProperty(exports, "search_for_chunk", { enumerable: true, get: function () { return blf_chunk_1.search_for_chunk; } });
48
+ var blffile_1 = require("./blffile");
49
+ Object.defineProperty(exports, "write_blffile", { enumerable: true, get: function () { return blffile_1.write_blffile; } });
50
+ var error_1 = require("./error");
51
+ Object.defineProperty(exports, "BlfError", { enumerable: true, get: function () { return error_1.BlfError; } });
52
+ var s_blf_header_1 = require("./s_blf_header");
53
+ Object.defineProperty(exports, "s_blf_header", { enumerable: true, get: function () { return s_blf_header_1.s_blf_header; } });
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}