asajs 3.0.7 → 3.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (289) hide show
  1. package/dist/cjs/compilers/BindingCompiler.js +1 -0
  2. package/dist/cjs/compilers/BindingCompiler.js.map +7 -0
  3. package/dist/cjs/compilers/BindingFunctions.js +1 -0
  4. package/dist/cjs/compilers/BindingFunctions.js.map +7 -0
  5. package/dist/cjs/compilers/Compiler.js +1 -0
  6. package/dist/cjs/compilers/Compiler.js.map +7 -0
  7. package/dist/cjs/compilers/Compress.js +1 -0
  8. package/dist/cjs/compilers/Compress.js.map +7 -0
  9. package/dist/cjs/compilers/Config.js +2 -0
  10. package/dist/cjs/compilers/Config.js.map +7 -0
  11. package/dist/cjs/compilers/Encoder.js +1 -0
  12. package/dist/cjs/compilers/Encoder.js.map +7 -0
  13. package/dist/cjs/compilers/Installer.js +1 -0
  14. package/dist/cjs/compilers/Installer.js.map +7 -0
  15. package/dist/cjs/compilers/PreCompile.js +1 -0
  16. package/dist/cjs/compilers/PreCompile.js.map +7 -0
  17. package/dist/cjs/compilers/generator/GenerateDir.js +1 -0
  18. package/dist/cjs/compilers/generator/GenerateDir.js.map +7 -0
  19. package/dist/cjs/compilers/generator/JsonBuilder.js +1 -0
  20. package/dist/cjs/compilers/generator/JsonBuilder.js.map +7 -0
  21. package/dist/cjs/compilers/generator/LangBuilder.js +1 -0
  22. package/dist/cjs/compilers/generator/LangBuilder.js.map +7 -0
  23. package/dist/cjs/compilers/generator/Log.js +1 -0
  24. package/dist/cjs/compilers/generator/Log.js.map +7 -0
  25. package/dist/cjs/compilers/generator/Manifest.js +1 -0
  26. package/dist/cjs/compilers/generator/Manifest.js.map +7 -0
  27. package/dist/cjs/compilers/generator/Save.js +1 -0
  28. package/dist/cjs/compilers/generator/Save.js.map +7 -0
  29. package/dist/cjs/compilers/generator/SearchFiles.js +1 -0
  30. package/dist/cjs/compilers/generator/SearchFiles.js.map +7 -0
  31. package/dist/cjs/compilers/generator/Sounds.js +1 -0
  32. package/dist/cjs/compilers/generator/Sounds.js.map +7 -0
  33. package/dist/cjs/compilers/generator/Template.js +1 -0
  34. package/dist/cjs/compilers/generator/Template.js.map +7 -0
  35. package/dist/cjs/compilers/generator/UIBuilder.js +16 -5
  36. package/dist/cjs/compilers/generator/UIBuilder.js.map +7 -0
  37. package/dist/cjs/compilers/reader/Audio.js +1 -0
  38. package/dist/cjs/compilers/reader/Audio.js.map +7 -0
  39. package/dist/cjs/compilers/reader/Color.js +1 -0
  40. package/dist/cjs/compilers/reader/Color.js.map +7 -0
  41. package/dist/cjs/compilers/reader/CurrentLine.js +1 -0
  42. package/dist/cjs/compilers/reader/CurrentLine.js.map +7 -0
  43. package/dist/cjs/compilers/reader/Env.js +1 -0
  44. package/dist/cjs/compilers/reader/Env.js.map +7 -0
  45. package/dist/cjs/compilers/reader/GlobalVariables.js +1 -0
  46. package/dist/cjs/compilers/reader/GlobalVariables.js.map +7 -0
  47. package/dist/cjs/compilers/reader/Object.js +1 -0
  48. package/dist/cjs/compilers/reader/Object.js.map +7 -0
  49. package/dist/cjs/compilers/reader/ReadBinding.js +1 -0
  50. package/dist/cjs/compilers/reader/ReadBinding.js.map +7 -0
  51. package/dist/cjs/compilers/reader/ReadProperties.js +1 -0
  52. package/dist/cjs/compilers/reader/ReadProperties.js.map +7 -0
  53. package/dist/cjs/components/AddCollectionChill.js +1 -0
  54. package/dist/cjs/components/AddCollectionChill.js.map +7 -0
  55. package/dist/cjs/components/Animation.js +1 -0
  56. package/dist/cjs/components/Animation.js.map +7 -0
  57. package/dist/cjs/components/AnimationKeyFrame.js +1 -0
  58. package/dist/cjs/components/AnimationKeyFrame.js.map +7 -0
  59. package/dist/cjs/components/Class.js +1 -0
  60. package/dist/cjs/components/Class.js.map +7 -0
  61. package/dist/cjs/components/LocalizeText.js +1 -0
  62. package/dist/cjs/components/LocalizeText.js.map +7 -0
  63. package/dist/cjs/components/Modify.js +7 -0
  64. package/dist/cjs/components/Modify.js.map +7 -0
  65. package/dist/cjs/components/Random.js +1 -0
  66. package/dist/cjs/components/Random.js.map +7 -0
  67. package/dist/cjs/components/UI.js +29 -7
  68. package/dist/cjs/components/UI.js.map +7 -0
  69. package/dist/cjs/components/Vanilla.js +1 -0
  70. package/dist/cjs/components/Vanilla.js.map +7 -0
  71. package/dist/cjs/index.js +1 -0
  72. package/dist/cjs/index.js.map +7 -0
  73. package/dist/cjs/template.js +2 -1
  74. package/dist/cjs/template.js.map +7 -0
  75. package/dist/cjs/types/components/ChildIdentifier.js +1 -0
  76. package/dist/cjs/types/components/ChildIdentifier.js.map +7 -0
  77. package/dist/cjs/types/components/Identifier.js +1 -0
  78. package/dist/cjs/types/components/Identifier.js.map +7 -0
  79. package/dist/cjs/types/components/NameCallback.js +1 -0
  80. package/dist/cjs/types/components/NameCallback.js.map +7 -0
  81. package/dist/cjs/types/components/UIIdentifier.js +1 -0
  82. package/dist/cjs/types/components/UIIdentifier.js.map +7 -0
  83. package/dist/cjs/types/components/UIInterface.js +1 -0
  84. package/dist/cjs/types/components/UIInterface.js.map +7 -0
  85. package/dist/cjs/types/enums/Anchor.js +1 -0
  86. package/dist/cjs/types/enums/Anchor.js.map +7 -0
  87. package/dist/cjs/types/enums/AnimTypes.js +1 -0
  88. package/dist/cjs/types/enums/AnimTypes.js.map +7 -0
  89. package/dist/cjs/types/enums/BindingCondition.js +1 -0
  90. package/dist/cjs/types/enums/BindingCondition.js.map +7 -0
  91. package/dist/cjs/types/enums/BindingName.js +1 -0
  92. package/dist/cjs/types/enums/BindingName.js.map +7 -0
  93. package/dist/cjs/types/enums/BindingType.js +1 -0
  94. package/dist/cjs/types/enums/BindingType.js.map +7 -0
  95. package/dist/cjs/types/enums/ClipDirecion.js +1 -0
  96. package/dist/cjs/types/enums/ClipDirecion.js.map +7 -0
  97. package/dist/cjs/types/enums/Collection.js +1 -0
  98. package/dist/cjs/types/enums/Collection.js.map +7 -0
  99. package/dist/cjs/types/enums/Direction.js +1 -0
  100. package/dist/cjs/types/enums/Direction.js.map +7 -0
  101. package/dist/cjs/types/enums/EasingTypes.js +1 -0
  102. package/dist/cjs/types/enums/EasingTypes.js.map +7 -0
  103. package/dist/cjs/types/enums/EnumColor.js +1 -0
  104. package/dist/cjs/types/enums/EnumColor.js.map +7 -0
  105. package/dist/cjs/types/enums/FocusNavigationMode.js +1 -0
  106. package/dist/cjs/types/enums/FocusNavigationMode.js.map +7 -0
  107. package/dist/cjs/types/enums/FontSize.js +1 -0
  108. package/dist/cjs/types/enums/FontSize.js.map +7 -0
  109. package/dist/cjs/types/enums/FontType.js +1 -0
  110. package/dist/cjs/types/enums/FontType.js.map +7 -0
  111. package/dist/cjs/types/enums/GlobalVariables.js +1 -0
  112. package/dist/cjs/types/enums/GlobalVariables.js.map +7 -0
  113. package/dist/cjs/types/enums/InputModeCondition.js +1 -0
  114. package/dist/cjs/types/enums/InputModeCondition.js.map +7 -0
  115. package/dist/cjs/types/enums/ItemAuxID.js +1 -0
  116. package/dist/cjs/types/enums/ItemAuxID.js.map +7 -0
  117. package/dist/cjs/types/enums/JsonUIArrayName.js +1 -0
  118. package/dist/cjs/types/enums/JsonUIArrayName.js.map +7 -0
  119. package/dist/cjs/types/enums/MappingFrom.js +1 -0
  120. package/dist/cjs/types/enums/MappingFrom.js.map +7 -0
  121. package/dist/cjs/types/enums/MappingTo.js +1 -0
  122. package/dist/cjs/types/enums/MappingTo.js.map +7 -0
  123. package/dist/cjs/types/enums/MappingTypes.js +1 -0
  124. package/dist/cjs/types/enums/MappingTypes.js.map +7 -0
  125. package/dist/cjs/types/enums/Orientation.js +1 -0
  126. package/dist/cjs/types/enums/Orientation.js.map +7 -0
  127. package/dist/cjs/types/enums/Renderer.js +1 -0
  128. package/dist/cjs/types/enums/Renderer.js.map +7 -0
  129. package/dist/cjs/types/enums/Rotation.js +1 -0
  130. package/dist/cjs/types/enums/Rotation.js.map +7 -0
  131. package/dist/cjs/types/enums/Scope.js +1 -0
  132. package/dist/cjs/types/enums/Scope.js.map +7 -0
  133. package/dist/cjs/types/enums/TextTypes.js +1 -0
  134. package/dist/cjs/types/enums/TextTypes.js.map +7 -0
  135. package/dist/cjs/types/enums/TextureFileSystem.js +1 -0
  136. package/dist/cjs/types/enums/TextureFileSystem.js.map +7 -0
  137. package/dist/cjs/types/enums/Types.js +1 -0
  138. package/dist/cjs/types/enums/Types.js.map +7 -0
  139. package/dist/cjs/types/objects/Animation.js +1 -0
  140. package/dist/cjs/types/objects/Animation.js.map +7 -0
  141. package/dist/cjs/types/objects/BindingHook.js +1 -0
  142. package/dist/cjs/types/objects/BindingHook.js.map +7 -0
  143. package/dist/cjs/types/objects/BindingInterface.js +1 -0
  144. package/dist/cjs/types/objects/BindingInterface.js.map +7 -0
  145. package/dist/cjs/types/objects/ButtonMapping.js +1 -0
  146. package/dist/cjs/types/objects/ButtonMapping.js.map +7 -0
  147. package/dist/cjs/types/objects/Factory.js +1 -0
  148. package/dist/cjs/types/objects/Factory.js.map +7 -0
  149. package/dist/cjs/types/objects/Installer.js +1 -0
  150. package/dist/cjs/types/objects/Installer.js.map +7 -0
  151. package/dist/cjs/types/objects/Manifest.js +1 -0
  152. package/dist/cjs/types/objects/Manifest.js.map +7 -0
  153. package/dist/cjs/types/objects/Modify.js +1 -0
  154. package/dist/cjs/types/objects/Modify.js.map +7 -0
  155. package/dist/cjs/types/objects/PropertyBag.js +1 -0
  156. package/dist/cjs/types/objects/PropertyBag.js.map +7 -0
  157. package/dist/cjs/types/objects/Sound.js +1 -0
  158. package/dist/cjs/types/objects/Sound.js.map +7 -0
  159. package/dist/cjs/types/objects/Variables.js +1 -0
  160. package/dist/cjs/types/objects/Variables.js.map +7 -0
  161. package/dist/cjs/types/objects/elements/Button.js +1 -0
  162. package/dist/cjs/types/objects/elements/Button.js.map +7 -0
  163. package/dist/cjs/types/objects/elements/CollectionPanel.js +1 -0
  164. package/dist/cjs/types/objects/elements/CollectionPanel.js.map +7 -0
  165. package/dist/cjs/types/objects/elements/Custom.js +1 -0
  166. package/dist/cjs/types/objects/elements/Custom.js.map +7 -0
  167. package/dist/cjs/types/objects/elements/Dropdown.js +1 -0
  168. package/dist/cjs/types/objects/elements/Dropdown.js.map +7 -0
  169. package/dist/cjs/types/objects/elements/EditBox.js +1 -0
  170. package/dist/cjs/types/objects/elements/EditBox.js.map +7 -0
  171. package/dist/cjs/types/objects/elements/Grid.js +1 -0
  172. package/dist/cjs/types/objects/elements/Grid.js.map +7 -0
  173. package/dist/cjs/types/objects/elements/Image.js +1 -0
  174. package/dist/cjs/types/objects/elements/Image.js.map +7 -0
  175. package/dist/cjs/types/objects/elements/InputPanel.js +1 -0
  176. package/dist/cjs/types/objects/elements/InputPanel.js.map +7 -0
  177. package/dist/cjs/types/objects/elements/Label.js +1 -0
  178. package/dist/cjs/types/objects/elements/Label.js.map +7 -0
  179. package/dist/cjs/types/objects/elements/PropertiesType.js +1 -0
  180. package/dist/cjs/types/objects/elements/PropertiesType.js.map +7 -0
  181. package/dist/cjs/types/objects/elements/Screen.js +1 -0
  182. package/dist/cjs/types/objects/elements/Screen.js.map +7 -0
  183. package/dist/cjs/types/objects/elements/ScrollView.js +1 -0
  184. package/dist/cjs/types/objects/elements/ScrollView.js.map +7 -0
  185. package/dist/cjs/types/objects/elements/ScrollbarBox.js +1 -0
  186. package/dist/cjs/types/objects/elements/ScrollbarBox.js.map +7 -0
  187. package/dist/cjs/types/objects/elements/ScrollbarTrack.js +1 -0
  188. package/dist/cjs/types/objects/elements/ScrollbarTrack.js.map +7 -0
  189. package/dist/cjs/types/objects/elements/SelectionWheel.js +1 -0
  190. package/dist/cjs/types/objects/elements/SelectionWheel.js.map +7 -0
  191. package/dist/cjs/types/objects/elements/Slider.js +1 -0
  192. package/dist/cjs/types/objects/elements/Slider.js.map +7 -0
  193. package/dist/cjs/types/objects/elements/SliderBox.js +1 -0
  194. package/dist/cjs/types/objects/elements/SliderBox.js.map +7 -0
  195. package/dist/cjs/types/objects/elements/StackPanel.js +1 -0
  196. package/dist/cjs/types/objects/elements/StackPanel.js.map +7 -0
  197. package/dist/cjs/types/objects/elements/Toggle.js +1 -0
  198. package/dist/cjs/types/objects/elements/Toggle.js.map +7 -0
  199. package/dist/cjs/types/objects/elements/TooltipTrigger.js +1 -0
  200. package/dist/cjs/types/objects/elements/TooltipTrigger.js.map +7 -0
  201. package/dist/cjs/types/objects/elements/panel.js +1 -0
  202. package/dist/cjs/types/objects/elements/panel.js.map +7 -0
  203. package/dist/cjs/types/objects/properties/Buttons.js +1 -0
  204. package/dist/cjs/types/objects/properties/Buttons.js.map +7 -0
  205. package/dist/cjs/types/objects/properties/CollectionIndexs.js +1 -0
  206. package/dist/cjs/types/objects/properties/CollectionIndexs.js.map +7 -0
  207. package/dist/cjs/types/objects/properties/Collections.js +1 -0
  208. package/dist/cjs/types/objects/properties/Collections.js.map +7 -0
  209. package/dist/cjs/types/objects/properties/Controls.js +1 -0
  210. package/dist/cjs/types/objects/properties/Controls.js.map +7 -0
  211. package/dist/cjs/types/objects/properties/Dropdowns.js +1 -0
  212. package/dist/cjs/types/objects/properties/Dropdowns.js.map +7 -0
  213. package/dist/cjs/types/objects/properties/Focus.js +1 -0
  214. package/dist/cjs/types/objects/properties/Focus.js.map +7 -0
  215. package/dist/cjs/types/objects/properties/FocusContainerCustom.js +1 -0
  216. package/dist/cjs/types/objects/properties/FocusContainerCustom.js.map +7 -0
  217. package/dist/cjs/types/objects/properties/Grids.js +1 -0
  218. package/dist/cjs/types/objects/properties/Grids.js.map +7 -0
  219. package/dist/cjs/types/objects/properties/Inputs.js +1 -0
  220. package/dist/cjs/types/objects/properties/Inputs.js.map +7 -0
  221. package/dist/cjs/types/objects/properties/Layouts.js +1 -0
  222. package/dist/cjs/types/objects/properties/Layouts.js.map +7 -0
  223. package/dist/cjs/types/objects/properties/Properties.js +1 -0
  224. package/dist/cjs/types/objects/properties/Properties.js.map +7 -0
  225. package/dist/cjs/types/objects/properties/Renderers.js +1 -0
  226. package/dist/cjs/types/objects/properties/Renderers.js.map +7 -0
  227. package/dist/cjs/types/objects/properties/Screens.js +1 -0
  228. package/dist/cjs/types/objects/properties/Screens.js.map +7 -0
  229. package/dist/cjs/types/objects/properties/ScrollViews.js +1 -0
  230. package/dist/cjs/types/objects/properties/ScrollViews.js.map +7 -0
  231. package/dist/cjs/types/objects/properties/SelectionWheels.js +1 -0
  232. package/dist/cjs/types/objects/properties/SelectionWheels.js.map +7 -0
  233. package/dist/cjs/types/objects/properties/SliderBoxs.js +1 -0
  234. package/dist/cjs/types/objects/properties/SliderBoxs.js.map +7 -0
  235. package/dist/cjs/types/objects/properties/Sliders.js +1 -0
  236. package/dist/cjs/types/objects/properties/Sliders.js.map +7 -0
  237. package/dist/cjs/types/objects/properties/Sounds.js +1 -0
  238. package/dist/cjs/types/objects/properties/Sounds.js.map +7 -0
  239. package/dist/cjs/types/objects/properties/Specials.js +1 -0
  240. package/dist/cjs/types/objects/properties/Specials.js.map +7 -0
  241. package/dist/cjs/types/objects/properties/Sprites.js +1 -0
  242. package/dist/cjs/types/objects/properties/Sprites.js.map +7 -0
  243. package/dist/cjs/types/objects/properties/StackPanels.js +1 -0
  244. package/dist/cjs/types/objects/properties/StackPanels.js.map +7 -0
  245. package/dist/cjs/types/objects/properties/TTS.js +1 -0
  246. package/dist/cjs/types/objects/properties/TTS.js.map +7 -0
  247. package/dist/cjs/types/objects/properties/TextEdits.js +1 -0
  248. package/dist/cjs/types/objects/properties/TextEdits.js.map +7 -0
  249. package/dist/cjs/types/objects/properties/Texts.js +1 -0
  250. package/dist/cjs/types/objects/properties/Texts.js.map +7 -0
  251. package/dist/cjs/types/objects/properties/Toggles.js +1 -0
  252. package/dist/cjs/types/objects/properties/Toggles.js.map +7 -0
  253. package/dist/cjs/types/objects/properties/TooltipTriggers.js +1 -0
  254. package/dist/cjs/types/objects/properties/TooltipTriggers.js.map +7 -0
  255. package/dist/cjs/types/objects/properties/Variables.js +1 -0
  256. package/dist/cjs/types/objects/properties/Variables.js.map +7 -0
  257. package/dist/cjs/types/values/Any.js +1 -0
  258. package/dist/cjs/types/values/Any.js.map +7 -0
  259. package/dist/cjs/types/values/Binding.js +1 -0
  260. package/dist/cjs/types/values/Binding.js.map +7 -0
  261. package/dist/cjs/types/values/Bool.js +1 -0
  262. package/dist/cjs/types/values/Bool.js.map +7 -0
  263. package/dist/cjs/types/values/ColorVector.js +1 -0
  264. package/dist/cjs/types/values/ColorVector.js.map +7 -0
  265. package/dist/cjs/types/values/ElementPath.js +1 -0
  266. package/dist/cjs/types/values/ElementPath.js.map +7 -0
  267. package/dist/cjs/types/values/Hex.js +1 -0
  268. package/dist/cjs/types/values/Hex.js.map +7 -0
  269. package/dist/cjs/types/values/Number.js +1 -0
  270. package/dist/cjs/types/values/Number.js.map +7 -0
  271. package/dist/cjs/types/values/RangeVector.js +1 -0
  272. package/dist/cjs/types/values/RangeVector.js.map +7 -0
  273. package/dist/cjs/types/values/Str.js +1 -0
  274. package/dist/cjs/types/values/Str.js.map +7 -0
  275. package/dist/cjs/types/values/StringVector.js +1 -0
  276. package/dist/cjs/types/values/StringVector.js.map +7 -0
  277. package/dist/cjs/types/values/TargetElementPath.js +1 -0
  278. package/dist/cjs/types/values/TargetElementPath.js.map +7 -0
  279. package/dist/cjs/types/values/Variable.js +1 -0
  280. package/dist/cjs/types/values/Variable.js.map +7 -0
  281. package/dist/cjs/types/values/Vector.js +1 -0
  282. package/dist/cjs/types/values/Vector.js.map +7 -0
  283. package/dist/esm/index.js +317 -280
  284. package/dist/esm/index.js.map +7 -0
  285. package/dist/types/compilers/Config.d.ts +1 -0
  286. package/dist/types/components/UI.d.ts +2 -0
  287. package/dist/types/components/Vanilla.d.ts +4 -4
  288. package/dist/types/template.d.ts +1 -1
  289. package/package.json +2 -2
@@ -456,3 +456,4 @@ class BindingCompiler {
456
456
  0 && (module.exports = {
457
457
  BindingCompiler
458
458
  });
459
+ //# sourceMappingURL=BindingCompiler.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/compilers/BindingCompiler.ts"],
4
+ "sourcesContent": ["import { Random } from \"../components/Random\";\r\nimport { UI } from \"../components/UI\";\r\nimport { OverrideInterface } from \"../types/objects/Modify\";\r\nimport { Binding } from \"../types/values/Binding\";\r\nimport { funcObj } from \"./BindingFunctions\";\r\nimport { Log } from \"./generator/Log\";\r\nimport { CurrentLine } from \"./reader/CurrentLine\";\r\n\r\nexport interface BindingFunctionObject {\r\n [key: string]: (arg: UI | OverrideInterface, params: Array<string>) => Binding;\r\n}\r\nexport class BindingCompiler {\r\n static compile(propertyName: string | string[], arg: UI | OverrideInterface) {\r\n return this.build(this.getCompilePart(propertyName), arg).replace(/__BREAK_LINE__/g, \"\\n\");\r\n }\r\n\r\n static getCompilePart(propertyName: string | string[]) {\r\n return Array.isArray(propertyName)\r\n ? propertyName[0]\r\n : propertyName.slice(1, propertyName.length - 1);\r\n }\r\n\r\n static build(propertyName: string, arg: UI | OverrideInterface) {\r\n const tokens = this.lexer(propertyName, arg);\r\n\r\n let build = \"(\";\r\n\r\n for (let index = 0; index < tokens.length; index++) {\r\n let token = tokens[index];\r\n\r\n if (this.isScientificNotation(token)) {\r\n const [left, right] = token.split(\"e\");\r\n token = \"\" + Number(left) * Math.pow(10, Number(right));\r\n }\r\n\r\n if (token === \"!\") build += \"not \";\r\n else {\r\n if (\r\n this.isNegativeNumber(token) &&\r\n !this.isOperator(tokens[index - 1]) &&\r\n tokens[index - 1] !== undefined\r\n ) {\r\n build += `- ${token.slice(1)} `;\r\n } else build += `${token} `;\r\n }\r\n }\r\n\r\n build = `${build.slice(0, build.length - 1)})`;\r\n\r\n return build;\r\n }\r\n\r\n static buildNewPropertyBag(token: string, arg: UI | OverrideInterface) {\r\n const bindingName: any = Random.bindingName();\r\n arg.setProperties({\r\n property_bag: {\r\n [bindingName]: BindingCompiler.build(token, arg),\r\n },\r\n });\r\n return bindingName;\r\n }\r\n\r\n static checkAndBuild(token: string, arg: UI | OverrideInterface) {\r\n return this.isHasBinding(token)\r\n ? this.build(token, arg)\r\n : this.buildNewPropertyBag(token, arg);\r\n }\r\n\r\n static compileSpecialOperator(tokens: Array<string>, arg: UI | OverrideInterface) {\r\n let firstTokens: Array<string> = [];\r\n\r\n if (tokens.includes(\"?\")) {\r\n const startIndex = tokens.indexOf(\"?\");\r\n firstTokens.push(...tokens.slice(0, startIndex));\r\n\r\n let elseCount = 0;\r\n\r\n const secondTokens: Array<string> = [];\r\n const thirdTokens: Array<string> = [];\r\n\r\n let questionCount = 1;\r\n let endIndex = -1;\r\n\r\n for (let index = startIndex + 1; index < tokens.length; index++) {\r\n const token = tokens[index];\r\n\r\n if (token === \"?\") questionCount++;\r\n else if (token === \":\" && --questionCount == 0) {\r\n endIndex = index;\r\n elseCount++;\r\n break;\r\n }\r\n\r\n secondTokens.push(token);\r\n }\r\n\r\n thirdTokens.push(...tokens.slice(endIndex + 1));\r\n\r\n const generateBindingName = <`#${string}`>Random.bindingName();\r\n const firstBinding = this.checkAndBuild(firstTokens.join(\"\"), arg);\r\n const secondBinding = `${generateBindingName}true`;\r\n const thirdBinding = `${generateBindingName}false`;\r\n\r\n arg.addBindings([\r\n {\r\n source_property_name: this.checkAndBuild(secondTokens.join(\"\"), arg),\r\n target_property_name: <any>secondBinding,\r\n },\r\n {\r\n source_property_name: [`'${generateBindingName}{${firstBinding}}'`],\r\n target_property_name: <any>generateBindingName,\r\n },\r\n ]);\r\n\r\n if (elseCount !== 0) {\r\n arg.addBindings({\r\n source_property_name: this.checkAndBuild(thirdTokens.join(\"\"), arg),\r\n target_property_name: <any>thirdBinding,\r\n });\r\n }\r\n\r\n return [generateBindingName];\r\n } else if (tokens.includes(\"==\")) {\r\n const preBuild: Array<string> = [];\r\n\r\n let strToken: Array<string> = [];\r\n\r\n for (const token of tokens) {\r\n if (token === \"==\") {\r\n const binding = this.buildNewBinding(strToken.join(\"\"), arg);\r\n strToken = [];\r\n preBuild.push(...[binding, \"=\"]);\r\n } else {\r\n strToken.push(token);\r\n }\r\n }\r\n\r\n preBuild.push(this.buildNewBinding(strToken.join(\"\"), arg));\r\n strToken = [];\r\n\r\n const build: Array<string> = [];\r\n\r\n for (let i = 0; i < preBuild.length; i++) {\r\n if (preBuild[i] === \"=\") {\r\n if (build.length > 0) build.push(\"&\");\r\n\r\n const [preToken, token, nextToken] = [\r\n preBuild[i - 1],\r\n preBuild[i],\r\n preBuild[i + 1],\r\n ];\r\n build.push(this.buildNewBinding(`${preToken} ${token} ${nextToken}`, arg));\r\n }\r\n }\r\n\r\n return build;\r\n } else {\r\n for (let index = 0; index < tokens.length; index++) {\r\n const token = tokens[index];\r\n\r\n if ([\"&&\", \"||\", \"&\", \"|\"].includes(token)) {\r\n const secondTokens = tokens.slice(index + 1);\r\n\r\n const firstBinding =\r\n firstTokens.length === 1\r\n ? firstTokens[0]\r\n : this.buildNewBinding(firstTokens.join(\" \"), arg);\r\n\r\n const secondBinding =\r\n secondTokens.length === 1\r\n ? secondTokens[0]\r\n : this.buildNewBinding(tokens.slice(index + 1).join(\" \"), arg);\r\n\r\n return [\r\n firstBinding,\r\n [\"&&\", \"&\"].includes(token) ? \"and\" : \"or\",\r\n secondBinding,\r\n ];\r\n } else firstTokens.push(token);\r\n }\r\n\r\n firstTokens = firstTokens.slice(firstTokens.length);\r\n\r\n for (let index = 0; index < tokens.length; index++) {\r\n const token = tokens[index];\r\n if ([\"%\", \">=\", \"<=\", \"!=\"].includes(token)) {\r\n const secondTokens = tokens.slice(index + 1);\r\n\r\n const firstBinding =\r\n firstTokens.length === 1\r\n ? firstTokens[0]\r\n : this.buildNewBinding(firstTokens.join(\"\"), arg);\r\n\r\n const secondBinding =\r\n secondTokens.length === 1\r\n ? secondTokens[0]\r\n : this.buildNewBinding(tokens.slice(index + 1).join(\"\"), arg);\r\n\r\n switch (token) {\r\n case \">=\": {\r\n return [\r\n \"(\",\r\n firstBinding,\r\n \">\",\r\n secondBinding,\r\n \")\",\r\n \"or\",\r\n \"(\",\r\n firstBinding,\r\n \"=\",\r\n secondBinding,\r\n \")\",\r\n ];\r\n }\r\n case \"<=\": {\r\n return [\r\n \"(\",\r\n firstBinding,\r\n \"<\",\r\n secondBinding,\r\n \")\",\r\n \"or\",\r\n \"(\",\r\n firstBinding,\r\n \"=\",\r\n secondBinding,\r\n \")\",\r\n ];\r\n }\r\n case \"!=\": {\r\n return [\r\n \"not\",\r\n this.buildNewBinding(`${firstBinding} = ${secondBinding}`, arg),\r\n ];\r\n }\r\n case \"%\": {\r\n return [\r\n firstBinding,\r\n \"-\",\r\n firstBinding,\r\n \"/\",\r\n secondBinding,\r\n \"*\",\r\n secondBinding,\r\n ];\r\n }\r\n }\r\n } else firstTokens.push(token);\r\n }\r\n }\r\n\r\n return firstTokens;\r\n }\r\n\r\n static lexer(propertyName: string, arg: UI | OverrideInterface) {\r\n const getTokens = this.compileSpecialOperator(\r\n this.readTokens(this.getTokens(this.splitString(propertyName))).map(token => {\r\n if (this.isCodeBlock(token))\r\n return <string>this.buildNewBinding(token.slice(1, token.length - 1), arg);\r\n else if (this.isFunction(token)) {\r\n return <string>this.functionHandler(token, arg);\r\n } else if (this.isString(token)) {\r\n return <string>this.stringHandler(token, arg);\r\n } else return token;\r\n }),\r\n arg\r\n );\r\n\r\n return getTokens;\r\n }\r\n\r\n static splitString(propertyName: string) {\r\n const tokens: Array<string> = [];\r\n let token = \"\",\r\n openFormatCount = 0,\r\n isString: boolean = false;\r\n\r\n for (const char of propertyName) {\r\n if (char === \"'\" && openFormatCount === 0) {\r\n isString = !isString;\r\n\r\n if (token !== \"\" || !isString) tokens.push(isString ? token : `'${token}'`);\r\n\r\n token = \"\";\r\n } else if (char === \"\\n\" && isString) {\r\n token += \"__BREAK_LINE__\";\r\n } else if (char === \"{\" && isString) {\r\n openFormatCount++;\r\n token += \"{\";\r\n } else if (char === \"}\" && isString) {\r\n openFormatCount--;\r\n token += \"}\";\r\n } else if (char !== \" \" || isString) {\r\n token += char;\r\n }\r\n }\r\n\r\n if (token !== \"\") tokens.push(token);\r\n return tokens;\r\n }\r\n\r\n static stringHandler(token: string, arg: UI | OverrideInterface) {\r\n const tokens = this.getStringTokens(token.slice(1, token.length - 1))\r\n .map(token => {\r\n if (this.isStringCode(token))\r\n return BindingCompiler.build(token.slice(1, token.length - 1), arg);\r\n else return `'${token}'`;\r\n })\r\n .filter(token => ![\"'{}'\", \")\"].includes(token));\r\n return tokens.length > 1 ? `(${tokens.join(\" + \")})` : tokens[0] || \"''\";\r\n }\r\n\r\n static getStringTokens(token: string) {\r\n const tokens: Array<string> = [];\r\n let bracketsCount = 0,\r\n strToken = \"\";\r\n\r\n for (const char of token) {\r\n if (char === \"{\") {\r\n if (bracketsCount++ === 0 && strToken !== \"\") {\r\n tokens.push(strToken);\r\n strToken = \"\";\r\n }\r\n strToken += char;\r\n } else if (char === \"}\") {\r\n strToken += char;\r\n if (--bracketsCount === 0 && strToken !== \"\") {\r\n tokens.push(strToken);\r\n strToken = \"\";\r\n }\r\n } else strToken += char;\r\n }\r\n\r\n if (strToken !== \"\") tokens.push(strToken);\r\n\r\n return tokens;\r\n }\r\n\r\n static functionHandler(token: string, arg: UI | OverrideInterface) {\r\n const func = this.readFunctionFromToken(this.getTokens(this.splitString(token)), arg);\r\n\r\n let str: string = \"\";\r\n\r\n if (funcObj[func.name]) {\r\n str = <string>funcObj[func.name](\r\n arg,\r\n func.params.map(token => {\r\n token = token.replace(/__BREAK_LINE__/g, \"\\n\");\r\n return this.isStringPattern(token) ? this.build(`(${token})`, arg) : token;\r\n })\r\n );\r\n } else {\r\n Log.error(`${CurrentLine()} binding function '${func.name}' does not exist!`);\r\n str = `'[Compile Error]: function >>${func.name}<< not found!'`;\r\n }\r\n\r\n return str;\r\n }\r\n\r\n static readFunctionFromToken(tokens: Array<string>, arg: UI | OverrideInterface) {\r\n const name = tokens[0];\r\n tokens = tokens.slice(2, tokens.length - 1);\r\n\r\n const params: Array<string> = [];\r\n let param = \"\",\r\n $ = 0;\r\n\r\n for (const token of tokens) {\r\n if (token === \",\" && !$) {\r\n params.push(param);\r\n param = \"\";\r\n } else if (token === \"(\") {\r\n $++;\r\n param += token;\r\n } else if (token === \")\") {\r\n $--;\r\n param += token;\r\n } else param += token;\r\n }\r\n if (param !== \"\") params.push(param);\r\n\r\n return {\r\n name,\r\n params: params.map(token => {\r\n if (this.getTokens(this.splitString(token)).length > 1)\r\n return this.build(this.isCodeBlock(token) ? token : `(${token})`, arg);\r\n else return token;\r\n }),\r\n };\r\n }\r\n\r\n static readTokens(strTokens: Array<string>) {\r\n const tokens: Array<string> = [];\r\n let strToken = \"\";\r\n let functionName: string | null = null,\r\n brackets = 0;\r\n\r\n for (const token of strTokens) {\r\n if (this.maybeFunctionName(token) && !brackets) {\r\n if (functionName) tokens.push(functionName);\r\n functionName = token;\r\n } else if ([\"(\", \")\"].includes(token)) {\r\n if (functionName) {\r\n strToken += functionName;\r\n functionName = null;\r\n }\r\n if (token === \"(\") brackets++;\r\n else brackets--;\r\n strToken += token;\r\n if (brackets === 0) {\r\n tokens.push(strToken);\r\n strToken = \"\";\r\n }\r\n } else {\r\n if (brackets) strToken += token;\r\n else if (functionName) {\r\n tokens.push(functionName);\r\n functionName = null;\r\n tokens.push(token);\r\n } else tokens.push(token);\r\n }\r\n }\r\n\r\n if (functionName) tokens.push(functionName);\r\n return tokens;\r\n }\r\n\r\n static getTokens(strTokens: Array<string>) {\r\n const tokens: Array<string> = [];\r\n for (const token of strTokens) {\r\n if (this.isString(token)) tokens.push(token);\r\n else\r\n tokens.push(\r\n ...(token.match(\r\n /-?((\\d+\\.)?\\d+)(e-?\\d+)?|[#$]?\\w+|[><=!]?=|(&&|\\|\\|)|[\\[\\]()+\\-*\\/=><!,&%|?:]/gm\r\n ) ?? [])\r\n );\r\n }\r\n return tokens;\r\n }\r\n\r\n static buildNewBinding(token: string, arg: UI | OverrideInterface) {\r\n const rndName = <`#${string}`>Random.bindingName();\r\n\r\n if (this.isHasBinding(token)) {\r\n if (this.isBindingOrVariable(token)) return token;\r\n\r\n arg.addBindings({\r\n source_property_name: [token],\r\n target_property_name: rndName,\r\n });\r\n } else {\r\n arg.setProperties({\r\n property_bag: {\r\n [rndName]: this.compile(token, arg),\r\n },\r\n });\r\n }\r\n\r\n return rndName;\r\n }\r\n\r\n static findSourceBindings(\r\n token: string,\r\n sourceControlsName: string,\r\n lastResourceBindings?: any\r\n ) {\r\n const reSourceBindings: Record<string, string> = lastResourceBindings || {};\r\n const newTokens: string[] = [];\r\n\r\n this.getTokens(this.splitString(token)).forEach(token => {\r\n if (this.isBindingOrVariable(token)) {\r\n newTokens.push(\r\n (reSourceBindings[`${token}:${sourceControlsName}`] ||= <string>(\r\n Random.bindingName()\r\n ))\r\n );\r\n } else if (this.isString(token)) {\r\n newTokens.push(\r\n this.getStringTokens(token)\r\n .map(token => {\r\n if (this.isStringCode(token)) {\r\n const sourceBindings = this.findSourceBindings(\r\n token.slice(1, token.length - 1),\r\n sourceControlsName,\r\n reSourceBindings\r\n );\r\n for (const key in sourceBindings.reSourceBindings)\r\n reSourceBindings[key] = sourceBindings.reSourceBindings[key];\r\n return `{${sourceBindings.newTokens.join(\"\")}}`;\r\n } else return token;\r\n })\r\n .join(\"\")\r\n );\r\n } else newTokens.push(token);\r\n });\r\n\r\n return { reSourceBindings, newTokens };\r\n }\r\n\r\n static isCanCompile(token: string | string[]) {\r\n return Array.isArray(token) || (token.startsWith(\"[\") && token.endsWith(\"]\"));\r\n }\r\n\r\n static isString(token: string) {\r\n return /^'.+'$/.test(token) || token === \"''\";\r\n }\r\n\r\n static isStringCode(token: string) {\r\n return /^{.+}$/.test(token);\r\n }\r\n\r\n static isStringPattern(token: string) {\r\n return this.isString(token) && /\\{.+\\}/.test(token);\r\n }\r\n\r\n static isNegativeNumber(token: string) {\r\n return /^-((\\d+\\.)?\\d+)$/.test(token);\r\n }\r\n\r\n static isScientificNotation(token: string) {\r\n return /^-?((\\d+\\.)?\\d+)(e-?\\d+)$/.test(token);\r\n }\r\n\r\n static isFunction(token: string) {\r\n return /^\\w+\\(.*\\)$/.test(token);\r\n }\r\n\r\n static isArray(token: string) {\r\n return /^\\[.*\\]$/.test(token);\r\n }\r\n\r\n static isCodeBlock(token: string) {\r\n return /^\\(.+\\)$/.test(token);\r\n }\r\n\r\n static maybeFunctionName(token: string) {\r\n return /^\\w+$/.test(token);\r\n }\r\n\r\n static isBindingOrVariable(token: string) {\r\n return /^[#$]\\w+$/.test(token);\r\n }\r\n\r\n static isOperator(token: string) {\r\n return /^[+\\-*\\/%><=!&|]$|^[><=!]=$/.test(token);\r\n }\r\n\r\n static isHasBinding(token: string) {\r\n return /#\\w+/.test(token);\r\n }\r\n\r\n static isNumber(value: string) {\r\n return /^(\\d+|\\d+\\.\\d+|-\\d+|-\\d+\\.\\d+)$/.test(value);\r\n }\r\n}\r\n"],
5
+ "mappings": "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",
6
+ "names": ["token"]
7
+ }
@@ -265,3 +265,4 @@ class BindingFunctions extends import_Class.Class {
265
265
  BindingFunctions,
266
266
  funcObj
267
267
  });
268
+ //# sourceMappingURL=BindingFunctions.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/compilers/BindingFunctions.ts"],
4
+ "sourcesContent": ["import { Class } from \"../components/Class\";\r\nimport { Random } from \"../components/Random\";\r\nimport { UI } from \"../components/UI\";\r\nimport { OverrideInterface, ModificationBindingsInterface } from \"../types/objects/Modify\";\r\nimport { Binding } from \"../types/values/Binding\";\r\nimport { BindingCompiler, BindingFunctionObject } from \"./BindingCompiler\";\r\nimport { Log } from \"./generator/Log\";\r\nimport { CurrentLine } from \"./reader/CurrentLine\";\r\n\r\nexport const funcObj: BindingFunctionObject = {\r\n sum: (arg, params) => {\r\n const bindingName = Random.bindingName();\r\n arg.addBindings({\r\n source_property_name: `(${params.join(\" + \")})`,\r\n target_property_name: bindingName,\r\n });\r\n return bindingName;\r\n },\r\n\r\n sumAvg: (arg, params) => {\r\n const bindingName = Random.bindingName();\r\n\r\n arg.addBindings({\r\n source_property_name: `((${params.join(\" + \")}) / ${params.length})`,\r\n target_property_name: bindingName,\r\n });\r\n\r\n return bindingName;\r\n },\r\n\r\n max: (arg, params) => {\r\n let current: Binding = <any>params[0];\r\n\r\n for (const nextBinding of params.slice(1)) {\r\n arg.addBindings({\r\n source_property_name: [\r\n `(${current} >= ${nextBinding}) * ${current} + (${current} < ${nextBinding}) * ${nextBinding}`,\r\n ],\r\n target_property_name: (current = Random.bindingName()),\r\n });\r\n }\r\n\r\n return current;\r\n },\r\n\r\n min: (arg, params) => {\r\n let current: Binding = <any>params[0];\r\n\r\n for (const nextBinding of params.slice(1)) {\r\n arg.addBindings({\r\n source_property_name: [\r\n `(${current} <= ${nextBinding}) * ${current} + (${current} > ${nextBinding}) * ${nextBinding}`,\r\n ],\r\n target_property_name: (current = Random.bindingName()),\r\n });\r\n }\r\n\r\n return current;\r\n },\r\n\r\n abs: (arg, [binding]) => {\r\n const bindingName = Random.bindingName();\r\n arg.addBindings({\r\n source_property_name: `((-1 + (${binding} > 0) * 2) * ${binding})`,\r\n target_property_name: bindingName,\r\n });\r\n return bindingName;\r\n },\r\n\r\n isEven: (arg, params) => {\r\n const bindingName = Random.bindingName();\r\n if (params.length > 1) {\r\n params.map(binding => {\r\n const bindingName = Random.bindingName();\r\n arg.addBindings({\r\n source_property_name: [`(${binding} % 2) == 0`],\r\n target_property_name: bindingName,\r\n });\r\n return bindingName;\r\n });\r\n arg.addBindings({\r\n source_property_name: `(${params.join(\" and \")})`,\r\n target_property_name: bindingName,\r\n });\r\n } else {\r\n arg.addBindings({\r\n source_property_name: [`(${params[0]} % 2) == 0`],\r\n target_property_name: bindingName,\r\n });\r\n }\r\n\r\n return bindingName;\r\n },\r\n\r\n isOdd: (arg, params) => {\r\n const bindingName = Random.bindingName();\r\n if (params.length > 1) {\r\n params.map(binding => {\r\n const bindingName = Random.bindingName();\r\n arg.addBindings({\r\n source_property_name: [`(${binding} % 2) == 1`],\r\n target_property_name: bindingName,\r\n });\r\n return bindingName;\r\n });\r\n arg.addBindings({\r\n source_property_name: `(${params.join(\" and \")})`,\r\n target_property_name: bindingName,\r\n });\r\n } else {\r\n arg.addBindings({\r\n source_property_name: [`(${params[0]} % 2) == 1`],\r\n target_property_name: bindingName,\r\n });\r\n }\r\n\r\n return bindingName;\r\n },\r\n\r\n int: (arg, [float, intLength]) => {\r\n const sumBnd: Array<string> = [];\r\n const _intLength = Number.isNaN(+intLength) ? -1 : +intLength;\r\n let bindingName: any = Random.bindingName();\r\n\r\n if (_intLength < 0) {\r\n arg.setProperties({\r\n property_bag: {\r\n [bindingName]: 0,\r\n },\r\n });\r\n\r\n arg.addBindings({\r\n source_property_name: `(${bindingName} + (${bindingName} < ${float}) - (${bindingName} > ${float}))`,\r\n target_property_name: bindingName,\r\n });\r\n } else {\r\n let calcBindingName: any = Random.bindingName();\r\n\r\n arg.addBindings({\r\n source_property_name: [`abs(${float})`],\r\n target_property_name: <any>(calcBindingName = Random.bindingName()),\r\n });\r\n\r\n for (let i = _intLength - 1; i >= 0; i--) {\r\n arg.addBindings({\r\n source_property_name: `(${Math.pow(10, i)} * (${Array.from(\r\n {\r\n length: 10,\r\n },\r\n (v, c) => `(${calcBindingName} > ${(c + 1) * Math.pow(10, i) - 1})`\r\n ).join(\" + \")}))`,\r\n target_property_name: <any>(bindingName = Random.bindingName()),\r\n });\r\n sumBnd.push(bindingName);\r\n if (i !== 0)\r\n arg.addBindings({\r\n source_property_name: `(${calcBindingName} - ${bindingName})`,\r\n target_property_name: <any>(calcBindingName = Random.bindingName()),\r\n });\r\n }\r\n\r\n arg.addBindings([\r\n {\r\n source_property_name: `(${sumBnd.join(\" + \")})`,\r\n target_property_name: <any>(bindingName = Random.bindingName()),\r\n },\r\n {\r\n source_property_name: `(${bindingName} * (1 - (${float} < 0) * 2))`,\r\n target_property_name: <any>(bindingName = Random.bindingName()),\r\n },\r\n ]);\r\n }\r\n\r\n return bindingName;\r\n },\r\n\r\n slice: (arg, [str, start, end]) => {\r\n const bindingName: any = Random.bindingName();\r\n if (!(BindingCompiler.isString(str) || BindingCompiler.isHasBinding(str))) str = `'${str}'`;\r\n if (end) {\r\n arg.addBindings({\r\n source_property_name: [` '%.{${end} - ${start}}s' * slice(${str}, ${start}) `],\r\n target_property_name: bindingName,\r\n });\r\n } else {\r\n arg.addBindings({\r\n source_property_name: [\r\n Number.isNaN(+start)\r\n ? ` '__START__{ ${str} }' - '__START__{ '%.{ ${start} }s' * ${str} }' `\r\n : ` '__START__{ ${str} }' - '__START__{ '%.${start}s' * ${str} }' `,\r\n ],\r\n target_property_name: bindingName,\r\n });\r\n }\r\n return bindingName;\r\n },\r\n\r\n pow: (arg, [num1, num2]) => {\r\n const bindingName: any = Random.bindingName();\r\n\r\n if (BindingCompiler.isNumber(num2)) {\r\n const $2 = +num2;\r\n\r\n if (BindingCompiler.isNumber(num1)) return Math.pow(+num1, $2);\r\n else {\r\n if ($2 === 0) return 1;\r\n else if ($2 > 0) return Array.from({ length: $2 }, () => num1).join(\" * \");\r\n else return `1 / ${Array.from({ length: $2 * -1 }, () => num1).join(\" / \")}`;\r\n }\r\n } else {\r\n for (let i = 1; i <= 32; i++) {\r\n arg.addBindings({\r\n source_property_name: `(${num2} / ((${num1} < ${i}) * ${num2}))`,\r\n target_property_name: <any>`${bindingName}${i}`,\r\n });\r\n\r\n arg.addBindings({\r\n source_property_name: `(${num2} / ((${num1} > ${i * -1}) * ${num2}))`,\r\n target_property_name: <any>`${bindingName}_${i}`,\r\n });\r\n }\r\n\r\n arg.addBindings({\r\n source_property_name: `( ${Array.from(\r\n { length: 32 },\r\n (v, i) => `${bindingName}${i + 1}`\r\n ).join(\" * \")} / ${Array.from(\r\n { length: 32 },\r\n (v, i) => `${bindingName}_${i + 1}`\r\n ).join(\" / \")})`,\r\n target_property_name: bindingName,\r\n });\r\n }\r\n\r\n return bindingName;\r\n },\r\n\r\n sqrt: (arg, [num]) => {\r\n const bindingName: any = Random.bindingName();\r\n\r\n if (BindingCompiler.isNumber(num)) {\r\n return `${Math.sqrt(+num)}`;\r\n } else {\r\n const binding2: any = Random.bindingName();\r\n\r\n const x = 100;\r\n\r\n arg.addBindings([\r\n {\r\n source_property_name: `(${num} * ${x} / 2)`,\r\n target_property_name: bindingName,\r\n },\r\n {\r\n source_property_name: `[ abs((${bindingName} * ${bindingName}) - ${num}) > 1 ]`,\r\n target_property_name: binding2,\r\n },\r\n {\r\n source_property_name: `( (${num} < 0) * -1 + (${num} > -1) * (${binding2} * ((${bindingName} + ${num} / ${bindingName}) / 2) + (not ${binding2}) * ${bindingName}) )`,\r\n target_property_name: bindingName,\r\n },\r\n ]);\r\n }\r\n\r\n return bindingName;\r\n },\r\n};\r\n\r\nexport type BindingFunctionsCallback<T = UI | OverrideInterface | ModificationBindingsInterface> = (\r\n element: T,\r\n params: Array<string>\r\n) => Binding | string;\r\n\r\nexport class BindingFunctions extends Class {\r\n static register<T = UI | OverrideInterface | ModificationBindingsInterface>(\r\n name: string,\r\n callback: BindingFunctionsCallback<T>,\r\n override?: boolean\r\n ) {\r\n const n = name;\r\n if (override || !funcObj[n]) {\r\n funcObj[n] = <any>callback;\r\n } else\r\n Log.error(\r\n `${CurrentLine()} '${n}' function already exists, do you want to override it?`\r\n );\r\n }\r\n}\r\n"],
5
+ "mappings": "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",
6
+ "names": ["bindingName"]
7
+ }
@@ -156,3 +156,4 @@ process.on("beforeExit", () => {
156
156
  0 && (module.exports = {
157
157
  installer
158
158
  });
159
+ //# sourceMappingURL=Compiler.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/compilers/Compiler.ts"],
4
+ "sourcesContent": ["import fs from \"fs\";\r\nimport { Manifest } from \"./generator/Manifest\";\r\nimport { UIBuilder } from \"./generator/UIBuilder\";\r\nimport { Configs } from \"./Config\";\r\nimport { CompressPack } from \"./Compress\";\r\nimport { SoundHandler as Sounds } from \"./generator/Sounds\";\r\nimport { FormatAudio } from \"./reader/Audio\";\r\nimport { Logs } from \"./generator/Log\";\r\nimport { Encoder } from \"./Encoder\";\r\nimport { UIWriteJson } from \"./PreCompile\";\r\nimport { localizeText } from \"../components/LocalizeText\";\r\nimport { LangBuilder } from \"./generator/LangBuilder\";\r\nimport { Minecraft, ResourcePack } from \"../types/objects/Installer\";\r\nimport { ResourcePacks } from \"./Installer\";\r\n\r\nconst config = Configs.getConfig();\r\n\r\nexport const installer = new ResourcePacks({\r\n installGame: config.installer.previewVersion ? Minecraft.Preview : Minecraft.Stable,\r\n installFolder: config.installer.developEvironment\r\n ? ResourcePack.Development\r\n : ResourcePack.Production,\r\n});\r\n\r\nfunction manifestBuild(installPath: string): void {\r\n const { name, description, uuid, version, baseGameVersion } = config.manifest;\r\n const manifest = new Manifest({ name, description, uuid, version });\r\n manifest.manifest.header.min_engine_version = baseGameVersion;\r\n\r\n UIWriteJson(`${installPath}/manifest.json`, manifest.manifest, \"utf-8\");\r\n}\r\n\r\nlet isRunned = false;\r\nprocess.on(\"beforeExit\", () => {\r\n if (isRunned) return;\r\n isRunned = true;\r\n\r\n const installPath = installer.getInstallPath();\r\n\r\n config.installer.autoInstall =\r\n config.installer.autoInstall && fs.existsSync(installer.installPath);\r\n\r\n const buildPath = config.installer.autoInstall ? installPath : \".build\";\r\n\r\n // Clean up temporary build directories\r\n UIBuilder.delete(buildPath);\r\n if (fs.existsSync(\".build\")) fs.rmSync(\".build\", { recursive: true });\r\n if (fs.existsSync(\".minecraft\")) fs.unlinkSync(\".minecraft\");\r\n\r\n // Create necessary directories if they do not exist\r\n if (!fs.existsSync(`.bedrock`)) fs.mkdirSync(\".bedrock\");\r\n if (!fs.existsSync(`${buildPath}`)) fs.mkdirSync(`${buildPath}`);\r\n if (!fs.existsSync(`${buildPath}/@`)) fs.mkdirSync(`${buildPath}/@`);\r\n\r\n try {\r\n console.log(\"---------- COMPILING ----------\");\r\n\r\n FormatAudio();\r\n\r\n // Perform actions depending on whether the build is within the project or external\r\n if (config.installer.autoInstall) {\r\n installer.packLink();\r\n console.timeLog(\"COMPILER\", \"Symlink completed!\");\r\n console.log();\r\n }\r\n\r\n // Copy bedrock resources to build path\r\n fs.cpSync(\".bedrock\", buildPath, { recursive: true });\r\n console.timeLog(\"COMPILER\", \"Copy bedrock resources completed!\");\r\n console.log();\r\n\r\n // Compile various UI files\r\n console.timeLog(\"COMPILER\", `${UIBuilder.jsonUI(buildPath)} custom file(s) compiled!`);\r\n console.log();\r\n console.timeLog(\"COMPILER\", `${UIBuilder.modify(buildPath)} modify file(s) compiled!`);\r\n console.log();\r\n if (Object.keys(localizeText).length) {\r\n console.timeLog(\"COMPILER\", `${LangBuilder.build(buildPath)} lang file(s) compiled!`);\r\n console.log();\r\n }\r\n\r\n // Generate and save the manifest\r\n manifestBuild(buildPath);\r\n console.timeLog(\"COMPILER\", `Manifest file has been compiled!`);\r\n\r\n // Compile UI and other required resources\r\n console.timeLog(\r\n \"COMPILER\",\r\n `ui/_ui_defs.json ${UIBuilder.uiDefs(buildPath)} files path(s) found!`\r\n );\r\n console.timeLog(\r\n \"COMPILER\",\r\n `ui/_global_variables.json ${UIBuilder.globalVariables(\r\n buildPath\r\n )} variable(s) compiled!`\r\n );\r\n console.timeLog(\r\n \"COMPILER\",\r\n `textures/textures_list.json ${UIBuilder.texturesList(buildPath)} files path(s) found!`\r\n );\r\n\r\n const soundLength = Sounds.compile(buildPath);\r\n if (soundLength)\r\n console.timeLog(\r\n \"COMPILER\",\r\n `sounds/sound_definitions.json ${soundLength} sound id has regisrer!`\r\n );\r\n\r\n console.timeLog(\r\n \"COMPILER\",\r\n `contents.json ${UIBuilder.contents(buildPath)} file path(s) found!`\r\n );\r\n\r\n // Install the resource pack if not building within the project\r\n if (config.installer.autoInstall) {\r\n installer.installPack(config.manifest.uuid, config.manifest.version);\r\n console.timeLog(\"COMPILER\", `Resource Pack has been installed!`);\r\n }\r\n\r\n // Compress the pack if enabled in the config\r\n if (config.compiler.autoCompress) {\r\n CompressPack(buildPath);\r\n console.timeLog(\"COMPILER\", \"Minecraft-UIBuild.mcpack Pack compress completed!\");\r\n }\r\n\r\n // Encode json code\r\n if (config.compiler.encodeJson) {\r\n Encoder.start();\r\n console.timeLog(\"COMPILER\", `Encoded ${Encoder.count} JSON file(s) successfully!`);\r\n }\r\n\r\n // Final log of compilation completion\r\n console.log();\r\n console.timeLog(\"COMPILER\", \"Compile completed!\");\r\n\r\n // Warning log\r\n if (Logs.length) {\r\n console.log(\"\\n---------- Build Log ----------\");\r\n\r\n for (const log of Logs) {\r\n if (log.type === \"warning\") console.warn(log.message);\r\n else if (log.type === \"error\") console.error(log.message);\r\n }\r\n }\r\n\r\n // Display relevant information\r\n console.log(\"\\n---------- INFO ----------\");\r\n console.log(`Name: \\x1b[96m${config.manifest.name}\\x1b[0m`);\r\n console.log(`Description: \\x1b[96m${config.manifest.description}\\x1b[0m`);\r\n console.log(`UUID: \\x1b[96m${config.manifest.uuid}\\x1b[0m`);\r\n console.log(\r\n `Pack Version: \\x1b[96m${config.manifest.version[0]}.${config.manifest.version[1]}.${config.manifest.version[2]}\\x1b[0m`\r\n );\r\n console.log(\r\n `Base Game Version: \\x1b[96m${config.manifest.baseGameVersion[0]}.${config.manifest.baseGameVersion[1]}.${config.manifest.baseGameVersion[2]}\\x1b[0m`\r\n );\r\n\r\n // Print install path if not building within the project\r\n if (config.installer.autoInstall)\r\n console.log(`Install Path: \\x1b[96m${installPath}\\x1b[0m`);\r\n } catch (error) {\r\n // Handle any errors during the compilation process\r\n console.timeLog(\"COMPILER\", \"An error occurred while compiling!\");\r\n console.error(error);\r\n }\r\n});\r\n\r\nexport {};\r\n"],
5
+ "mappings": "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",
6
+ "names": ["import_Installer", "fs", "Sounds"]
7
+ }
@@ -53,3 +53,4 @@ function CompressPack(buildPath) {
53
53
  0 && (module.exports = {
54
54
  CompressPack
55
55
  });
56
+ //# sourceMappingURL=Compress.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/compilers/Compress.ts"],
4
+ "sourcesContent": ["import fs from \"fs\";\r\nimport AdmZip from \"adm-zip\";\r\nimport { SearchFiles } from \"./generator/SearchFiles\";\r\n\r\nexport function CompressPack(buildPath: string): void {\r\n\tif (fs.existsSync(\"Minecraft-UIBuild.mcpack\"))\r\n\t\tfs.rmSync(\"Minecraft-UIBuild.mcpack\");\r\n\r\n\tconst zip = new AdmZip(undefined, {\r\n\t\tfs,\r\n\t});\r\n\r\n\tSearchFiles.forEach(buildPath, (path) => {\r\n\t\tconst pathSplit = path.path.split(\"/\");\r\n\t\tzip.addLocalFile(\r\n\t\t\t`${buildPath}/${path.path}`,\r\n\t\t\tpathSplit.length !== 1\r\n\t\t\t\t? pathSplit.slice(0, pathSplit.length - 1).join(\"/\")\r\n\t\t\t\t: undefined\r\n\t\t);\r\n\t});\r\n\r\n\tzip.writeZip(\"Minecraft-UIBuild.mcpack\");\r\n}\r\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAe;AACf,qBAAmB;AACnB,yBAA4B;AAErB,SAAS,aAAa,WAAyB;AACrD,MAAI,UAAAA,QAAG,WAAW,0BAA0B;AAC3C,cAAAA,QAAG,OAAO,0BAA0B;AAErC,QAAM,MAAM,IAAI,eAAAC,QAAO,QAAW;AAAA,IACjC,cAAAD;AAAA,EACD,CAAC;AAED,iCAAY,QAAQ,WAAW,CAAC,SAAS;AACxC,UAAM,YAAY,KAAK,KAAK,MAAM,GAAG;AACrC,QAAI;AAAA,MACH,GAAG,kBAAS,KAAI,YAAK;AAAA,MACrB,UAAU,WAAW,IAClB,UAAU,MAAM,GAAG,UAAU,SAAS,CAAC,EAAE,KAAK,GAAG,IACjD;AAAA,IACJ;AAAA,EACD,CAAC;AAED,MAAI,SAAS,0BAA0B;AACxC;",
6
+ "names": ["fs", "AdmZip"]
7
+ }
@@ -38,6 +38,7 @@ const defaultConfig = {
38
38
  nameLength: 32,
39
39
  namespaceAmount: 16,
40
40
  namespaceLength: 32,
41
+ optimizeControls: true,
41
42
  obfuscateName: false,
42
43
  obfuscateType: false
43
44
  }
@@ -136,3 +137,4 @@ Configs.getConfig();
136
137
  config,
137
138
  readObject
138
139
  });
140
+ //# sourceMappingURL=Config.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/compilers/Config.ts"],
4
+ "sourcesContent": ["import { UUID } from \"crypto\";\r\nimport { Save } from \"./generator/Save\";\r\nimport { Obj } from \"./reader/Object\";\r\nimport { firstRun } from \"./generator/Template\";\r\nimport { SemverString, Version } from \"../types/objects/Manifest\";\r\n\r\nfirstRun();\r\n\r\nconst defaultConfig: Config = {\r\n compiler: {\r\n encodeJson: false,\r\n autoCompress: false,\r\n fileExtension: \"json\",\r\n UI: {\r\n nameLength: 32,\r\n namespaceAmount: 16,\r\n namespaceLength: 32,\r\n optimizeControls: true,\r\n obfuscateName: false,\r\n obfuscateType: false,\r\n },\r\n },\r\n installer: {\r\n autoInstall: true,\r\n developEvironment: true,\r\n previewVersion: false,\r\n customPath: false,\r\n installPath: undefined,\r\n },\r\n manifest: {\r\n name: \"AsaJS\",\r\n description: \"Build with AsaJS <3\",\r\n uuid: Save.uuid()[0],\r\n version: [1, 0, 0],\r\n baseGameVersion: [1, 21, 80],\r\n },\r\n};\r\n\r\n/**\r\n * Interface representing the structure of a config manifest.\r\n * This is used to define the metadata of the resource pack.\r\n */\r\ninterface ConfigManifest {\r\n name: string;\r\n description: string;\r\n version: Version | SemverString;\r\n baseGameVersion: Version;\r\n uuid: UUID;\r\n}\r\n\r\ninterface ConfigCompilerUI {\r\n obfuscateName: boolean;\r\n obfuscateType: boolean;\r\n optimizeControls: boolean;\r\n nameLength: number;\r\n namespaceLength: number;\r\n namespaceAmount: number;\r\n}\r\n\r\ninterface ConfigCompiler {\r\n UI: ConfigCompilerUI;\r\n autoCompress: boolean;\r\n fileExtension: string;\r\n encodeJson: boolean;\r\n}\r\n\r\ninterface ConfigInstaller {\r\n autoInstall: boolean;\r\n developEvironment: boolean;\r\n previewVersion: boolean;\r\n customPath: boolean;\r\n installPath?: string;\r\n}\r\n\r\nexport interface Config {\r\n installer: ConfigInstaller;\r\n compiler: ConfigCompiler;\r\n manifest: ConfigManifest;\r\n}\r\n\r\n/**\r\n * Reads an object and applies default values where necessary.\r\n *\r\n * This function allows deeply nested objects to be filled with default values when they are undefined.\r\n *\r\n * @param {object} [obj] - The object to read and apply the default values to.\r\n * @param {object} [defaultObjValue] - The default values to use if any properties in `obj` are undefined.\r\n * @returns {object} - The object with default values applied.\r\n */\r\nexport function readObject(obj?: object, defaultObjValue?: object) {\r\n if (Array.isArray(defaultObjValue)) {\r\n if (!obj) obj = [];\r\n defaultObjValue.forEach((value, index) => {\r\n (<any>obj)[index] = (<any>obj)[index] ?? value;\r\n });\r\n return obj;\r\n } else {\r\n if (!obj) obj = {};\r\n Obj.forEach(defaultObjValue || {}, (key, value) => {\r\n if (typeof value === \"object\") {\r\n (<any>obj)[key] = readObject((<any>obj)[key], (<any>defaultObjValue)[key]);\r\n } else {\r\n (<any>obj)[key] = (<any>obj)[key] ?? (<any>defaultObjValue)[key];\r\n }\r\n });\r\n return obj;\r\n }\r\n}\r\n\r\n/**\r\n * A class to manage and load configuration settings.\r\n *\r\n * The class allows reading from a configuration file and merging the saved configuration\r\n * with default values when necessary.\r\n */\r\nexport class Configs {\r\n /**\r\n * The current loaded configuration saved to disk.\r\n */\r\n save: Config;\r\n\r\n /**\r\n * The statically cached configuration.\r\n */\r\n static config: Config;\r\n\r\n /**\r\n * Loads the configuration file and parses it into the `save` property.\r\n */\r\n constructor() {\r\n this.save = require(`${process.cwd()}/asakiyuki.config.cjs`).config;\r\n }\r\n\r\n /**\r\n * Retrieves the current configuration, either from the saved configuration or the default values.\r\n *\r\n * @returns {Config} - The configuration object.\r\n */\r\n static getConfig(): Config {\r\n if (Configs.config === undefined) {\r\n const defaultConfig = Configs.getDefaultConfig();\r\n const saveConfig = new Configs().save;\r\n return readObject(saveConfig, defaultConfig) as Config;\r\n } else return Configs.config;\r\n }\r\n\r\n /**\r\n * Retrieves the default configuration values.\r\n *\r\n * @returns {Config} - The default configuration object.\r\n */\r\n static getDefaultConfig(): Config {\r\n return defaultConfig;\r\n }\r\n\r\n // Static helper methods not directly related to config loading/handling.\r\n private static apply() {}\r\n private static arguments = \"\";\r\n private static bind() {}\r\n private static call() {}\r\n private static caller = \"\";\r\n private static length = \"\";\r\n private static name = \"\";\r\n private static toString() {}\r\n}\r\n\r\n/**\r\n * Exporting the Configs class to be used globally.\r\n *\r\n * This allows other modules to access the configuration settings through `config`.\r\n */\r\nexport const config = Configs;\r\n\r\nConfigs.getConfig();\r\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,kBAAqB;AACrB,oBAAoB;AACpB,sBAAyB;AAAA,IAGzB,0BAAS;AAET,MAAM,gBAAwB;AAAA,EAC1B,UAAU;AAAA,IACN,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,IAAI;AAAA,MACA,YAAY;AAAA,MACZ,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,kBAAkB;AAAA,MAClB,eAAe;AAAA,MACf,eAAe;AAAA,IACnB;AAAA,EACJ;AAAA,EACA,WAAW;AAAA,IACP,aAAa;AAAA,IACb,mBAAmB;AAAA,IACnB,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ,aAAa;AAAA,EACjB;AAAA,EACA,UAAU;AAAA,IACN,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,iBAAK,KAAK,EAAE,CAAC;AAAA,IACnB,SAAS,CAAC,GAAG,GAAG,CAAC;AAAA,IACjB,iBAAiB,CAAC,GAAG,IAAI,EAAE;AAAA,EAC/B;AACJ;AAqDO,SAAS,WAAW,KAAc,iBAA0B;AAC/D,MAAI,MAAM,QAAQ,eAAe,GAAG;AAChC,QAAI,CAAC,IAAK,OAAM,CAAC;AACjB,oBAAgB,QAAQ,CAAC,OAAO,UAAU;AA5FlD;AA6FY,MAAM,IAAK,KAAK,KAAU,SAAK,KAAK,MAAV,YAAe;AAAA,IAC7C,CAAC;AACD,WAAO;AAAA,EACX,OAAO;AACH,QAAI,CAAC,IAAK,OAAM,CAAC;AACjB,sBAAI,QAAQ,mBAAmB,CAAC,GAAG,CAAC,KAAK,UAAU;AAlG3D;AAmGY,UAAI,OAAO,UAAU,UAAU;AAC3B,QAAM,IAAK,GAAG,IAAI,WAAiB,IAAK,GAAG,GAAS,gBAAiB,GAAG,CAAC;AAAA,MAC7E,OAAO;AACH,QAAM,IAAK,GAAG,KAAU,SAAK,GAAG,MAAR,YAAmB,gBAAiB,GAAG;AAAA,MACnE;AAAA,IACJ,CAAC;AACD,WAAO;AAAA,EACX;AACJ;AAQO,MAAM,WAAN,MAAM,SAAQ;AAAA;AAAA;AAAA;AAAA,EAcjB,cAAc;AAVd;AAAA;AAAA;AAAA;AAWI,SAAK,OAAO,QAAQ,GAAG,eAAQ,IAAI,GAAC,wBAAuB,EAAE;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,YAAoB;AACvB,QAAI,SAAQ,WAAW,QAAW;AAC9B,YAAMA,iBAAgB,SAAQ,iBAAiB;AAC/C,YAAM,aAAa,IAAI,SAAQ,EAAE;AACjC,aAAO,WAAW,YAAYA,cAAa;AAAA,IAC/C,MAAO,QAAO,SAAQ;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,mBAA2B;AAC9B,WAAO;AAAA,EACX;AAAA;AAAA,EAGA,OAAe,QAAQ;AAAA,EAAC;AAAA,EAExB,OAAe,OAAO;AAAA,EAAC;AAAA,EACvB,OAAe,OAAO;AAAA,EAAC;AAAA,EAIvB,OAAe,WAAW;AAAA,EAAC;AAC/B;AAAA;AAAA;AAAA;AAxCI,cATS,UASF;AAiCP,cA1CS,UA0CM,aAAY;AAG3B,cA7CS,UA6CM,UAAS;AACxB,cA9CS,UA8CM,UAAS;AACxB,cA/CS,UA+CM,QAAO;AA/CnB,IAAM,UAAN;AAwDA,MAAM,SAAS;AAEtB,QAAQ,UAAU;",
6
+ "names": ["defaultConfig"]
7
+ }
@@ -88,3 +88,4 @@ let Encoder = _Encoder;
88
88
  0 && (module.exports = {
89
89
  Encoder
90
90
  });
91
+ //# sourceMappingURL=Encoder.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/compilers/Encoder.ts"],
4
+ "sourcesContent": ["import fs from \"fs\";\r\nimport { Class } from \"../components/Class\";\r\nimport { jsonFilePath, WritePreComment } from \"./PreCompile\";\r\nimport { Obj } from \"./reader/Object\";\r\n\r\nexport class Encoder extends Class {\r\n static count: number = 0;\r\n\r\n static start() {\r\n for (const path of jsonFilePath) {\r\n const code = Encoder.readCode(path);\r\n const encode = Encoder.encode(code);\r\n Encoder.replaceCode(path, encode);\r\n Encoder.count++;\r\n }\r\n }\r\n\r\n static replaceCode(path: string, code: any) {\r\n fs.writeFileSync(path, WritePreComment(code).replaceAll(\"\\\\\\\\\", \"\\\\\"), \"utf-8\");\r\n }\r\n\r\n static encode(code: any): any {\r\n return Array.isArray(code) ? Encoder.encodeArray(code) : Encoder.encodeObject(code);\r\n }\r\n\r\n static encodeArray(code: any[]): any[] {\r\n return code.map(value => {\r\n const valueType = typeof value;\r\n\r\n if (valueType === \"object\") {\r\n return Encoder.encode(value);\r\n } else if (valueType === \"string\") return Encoder.encodeString(value);\r\n else return value;\r\n });\r\n }\r\n\r\n static encodeObject(code: any): object {\r\n return Obj.map(code, (key, value): any => {\r\n const valueType = typeof value;\r\n key = Encoder.encodeString(key);\r\n\r\n if (valueType === \"object\") {\r\n return {\r\n key,\r\n value: Encoder.encode(value),\r\n };\r\n } else if (valueType === \"string\") {\r\n return { key, value: Encoder.encodeString(value) };\r\n } else return { key, value };\r\n });\r\n }\r\n\r\n static encodeString(code: string) {\r\n return Array.from(code)\r\n .map(char => `\\\\u${char.charCodeAt(0).toString(16).padStart(4, \"0\")}`)\r\n .join(\"\");\r\n }\r\n\r\n static readCode(path: string) {\r\n return JSON.parse(fs.readFileSync(path, \"utf-8\"));\r\n }\r\n}\r\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAe;AACf,mBAAsB;AACtB,wBAA8C;AAC9C,oBAAoB;AAEb,MAAM,WAAN,MAAM,iBAAgB,mBAAM;AAAA,EAG/B,OAAO,QAAQ;AACX,eAAW,QAAQ,gCAAc;AAC7B,YAAM,OAAO,SAAQ,SAAS,IAAI;AAClC,YAAM,SAAS,SAAQ,OAAO,IAAI;AAClC,eAAQ,YAAY,MAAM,MAAM;AAChC,eAAQ;AAAA,IACZ;AAAA,EACJ;AAAA,EAEA,OAAO,YAAY,MAAc,MAAW;AACxC,cAAAA,QAAG,cAAc,UAAM,mCAAgB,IAAI,EAAE,WAAW,QAAQ,IAAI,GAAG,OAAO;AAAA,EAClF;AAAA,EAEA,OAAO,OAAO,MAAgB;AAC1B,WAAO,MAAM,QAAQ,IAAI,IAAI,SAAQ,YAAY,IAAI,IAAI,SAAQ,aAAa,IAAI;AAAA,EACtF;AAAA,EAEA,OAAO,YAAY,MAAoB;AACnC,WAAO,KAAK,IAAI,WAAS;AACrB,YAAM,YAAY,OAAO;AAEzB,UAAI,cAAc,UAAU;AACxB,eAAO,SAAQ,OAAO,KAAK;AAAA,MAC/B,WAAW,cAAc,SAAU,QAAO,SAAQ,aAAa,KAAK;AAAA,UAC/D,QAAO;AAAA,IAChB,CAAC;AAAA,EACL;AAAA,EAEA,OAAO,aAAa,MAAmB;AACnC,WAAO,kBAAI,IAAI,MAAM,CAAC,KAAK,UAAe;AACtC,YAAM,YAAY,OAAO;AACzB,YAAM,SAAQ,aAAa,GAAG;AAE9B,UAAI,cAAc,UAAU;AACxB,eAAO;AAAA,UACH;AAAA,UACA,OAAO,SAAQ,OAAO,KAAK;AAAA,QAC/B;AAAA,MACJ,WAAW,cAAc,UAAU;AAC/B,eAAO,EAAE,KAAK,OAAO,SAAQ,aAAa,KAAK,EAAE;AAAA,MACrD,MAAO,QAAO,EAAE,KAAK,MAAM;AAAA,IAC/B,CAAC;AAAA,EACL;AAAA,EAEA,OAAO,aAAa,MAAc;AAC9B,WAAO,MAAM,KAAK,IAAI,EACjB,IAAI,UAAQ,MAAM,YAAK,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,EAAG,EACpE,KAAK,EAAE;AAAA,EAChB;AAAA,EAEA,OAAO,SAAS,MAAc;AAC1B,WAAO,KAAK,MAAM,UAAAA,QAAG,aAAa,MAAM,OAAO,CAAC;AAAA,EACpD;AACJ;AAvDI,cADS,UACF,SAAgB;AADpB,IAAM,UAAN;",
6
+ "names": ["fs"]
7
+ }
@@ -121,3 +121,4 @@ class ResourcePacks {
121
121
  0 && (module.exports = {
122
122
  ResourcePacks
123
123
  });
124
+ //# sourceMappingURL=Installer.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/compilers/Installer.ts"],
4
+ "sourcesContent": ["import fs from \"fs\";\r\nimport { SemverString, UUID, Version } from \"./../types/objects/Manifest\";\r\nimport { Save } from \"./generator/Save\";\r\nimport { UIBuilder } from \"./generator/UIBuilder\";\r\nimport { Configs } from \"./Config\";\r\nimport { GlobalResourcePacks, ResourcePackInterface } from \"../types/objects/Installer\";\r\n\r\nexport class ResourcePacks {\r\n gamePath: string;\r\n gameDataPath: string;\r\n installPath: string;\r\n globalResoucePacksPath: string;\r\n\r\n constructor(data: ResourcePackInterface) {\r\n const config = Configs.getConfig();\r\n\r\n if (config.installer.installPath && config.installer.customPath) {\r\n this.gamePath = config.installer.installPath;\r\n } else {\r\n switch (process.platform) {\r\n case \"win32\":\r\n this.gamePath = `${process.env.LOCALAPPDATA}/Packages/${data.installGame}/LocalState`;\r\n break;\r\n case \"linux\":\r\n this.gamePath = `${process.env.HOME}/.local/share/mcpelauncher`;\r\n if (!fs.existsSync(this.gamePath))\r\n this.gamePath = `${process.env.HOME}/.var/app/io.mrarm.mcpelauncher/data/mcpelauncher`;\r\n break;\r\n default:\r\n this.gamePath = \"\";\r\n }\r\n }\r\n\r\n this.gameDataPath = `${this.gamePath}/games/com.mojang`;\r\n this.installPath = `${this.gameDataPath}/${data.installFolder}`;\r\n this.globalResoucePacksPath = `${this.gameDataPath}/minecraftpe/global_resource_packs.json`;\r\n }\r\n\r\n isPackInstalled(uuid: UUID, version: Version | SemverString) {\r\n const globalResourcePacks: Array<GlobalResourcePacks> = fs.existsSync(\r\n this.globalResoucePacksPath\r\n )\r\n ? JSON.parse(fs.readFileSync(this.globalResoucePacksPath, \"utf-8\"))\r\n : [];\r\n const versionIsArray = Array.isArray(version);\r\n if (versionIsArray) version = <SemverString>JSON.stringify(version);\r\n for (const packData of globalResourcePacks) {\r\n if (\r\n packData.pack_id === uuid &&\r\n (versionIsArray ? JSON.stringify(packData.version) : packData.version) === version\r\n )\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n installPack(uuid: UUID, version: Version | SemverString) {\r\n if (this.isPackInstalled(uuid, version)) return;\r\n const globalResourcePacks: Array<GlobalResourcePacks> = fs.existsSync(\r\n this.globalResoucePacksPath\r\n )\r\n ? JSON.parse(fs.readFileSync(this.globalResoucePacksPath, \"utf-8\"))\r\n : [];\r\n\r\n fs.writeFileSync(\r\n this.globalResoucePacksPath,\r\n JSON.stringify([\r\n {\r\n pack_id: uuid,\r\n version,\r\n },\r\n ...globalResourcePacks,\r\n ]),\r\n \"utf-8\"\r\n );\r\n }\r\n\r\n uninstallPack(uuid: UUID, version: Version | SemverString) {\r\n const globalResourcePacks: Array<GlobalResourcePacks> = fs.existsSync(\r\n this.globalResoucePacksPath\r\n )\r\n ? JSON.parse(fs.readFileSync(this.globalResoucePacksPath, \"utf-8\"))\r\n : [];\r\n const versionIsArray = Array.isArray(version);\r\n if (versionIsArray) version = <SemverString>JSON.stringify(version);\r\n let i = -1;\r\n for (const packData of globalResourcePacks) {\r\n i++;\r\n if (\r\n packData.pack_id === uuid &&\r\n (versionIsArray ? JSON.stringify(packData.version) : packData.version) === version\r\n ) {\r\n globalResourcePacks.splice(i, 1);\r\n break;\r\n }\r\n }\r\n fs.writeFileSync(this.globalResoucePacksPath, JSON.stringify(globalResourcePacks));\r\n }\r\n\r\n getInstallPath() {\r\n return `${this.installPath}/${Save.getBuildID()}`;\r\n }\r\n\r\n packLink() {\r\n UIBuilder.delete(\".minecraft\");\r\n fs.symlinkSync(this.getInstallPath(), \".minecraft\", \"junction\");\r\n }\r\n}\r\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAe;AAEf,kBAAqB;AACrB,uBAA0B;AAC1B,oBAAwB;AAGjB,MAAM,cAAc;AAAA,EAMvB,YAAY,MAA6B;AALzC;AACA;AACA;AACA;AAGI,UAAM,SAAS,sBAAQ,UAAU;AAEjC,QAAI,OAAO,UAAU,eAAe,OAAO,UAAU,YAAY;AAC7D,WAAK,WAAW,OAAO,UAAU;AAAA,IACrC,OAAO;AACH,cAAQ,QAAQ,UAAU;AAAA,QACtB,KAAK;AACD,eAAK,WAAW,GAAG,eAAQ,IAAI,cAAY,cAAa,YAAK,aAAW;AACxE;AAAA,QACJ,KAAK;AACD,eAAK,WAAW,GAAG,eAAQ,IAAI,MAAI;AACnC,cAAI,CAAC,UAAAA,QAAG,WAAW,KAAK,QAAQ;AAC5B,iBAAK,WAAW,GAAG,eAAQ,IAAI,MAAI;AACvC;AAAA,QACJ;AACI,eAAK,WAAW;AAAA,MACxB;AAAA,IACJ;AAEA,SAAK,eAAe,GAAG,YAAK,UAAQ;AACpC,SAAK,cAAc,GAAG,YAAK,cAAY,KAAI,YAAK;AAChD,SAAK,yBAAyB,GAAG,YAAK,cAAY;AAAA,EACtD;AAAA,EAEA,gBAAgB,MAAY,SAAiC;AACzD,UAAM,sBAAkD,UAAAA,QAAG;AAAA,MACvD,KAAK;AAAA,IACT,IACM,KAAK,MAAM,UAAAA,QAAG,aAAa,KAAK,wBAAwB,OAAO,CAAC,IAChE,CAAC;AACP,UAAM,iBAAiB,MAAM,QAAQ,OAAO;AAC5C,QAAI,eAAgB,WAAwB,KAAK,UAAU,OAAO;AAClE,eAAW,YAAY,qBAAqB;AACxC,UACI,SAAS,YAAY,SACpB,iBAAiB,KAAK,UAAU,SAAS,OAAO,IAAI,SAAS,aAAa;AAE3E,eAAO;AAAA,IACf;AACA,WAAO;AAAA,EACX;AAAA,EAEA,YAAY,MAAY,SAAiC;AACrD,QAAI,KAAK,gBAAgB,MAAM,OAAO,EAAG;AACzC,UAAM,sBAAkD,UAAAA,QAAG;AAAA,MACvD,KAAK;AAAA,IACT,IACM,KAAK,MAAM,UAAAA,QAAG,aAAa,KAAK,wBAAwB,OAAO,CAAC,IAChE,CAAC;AAEP,cAAAA,QAAG;AAAA,MACC,KAAK;AAAA,MACL,KAAK,UAAU;AAAA,QACX;AAAA,UACI,SAAS;AAAA,UACT;AAAA,QACJ;AAAA,QACA,GAAG;AAAA,MACP,CAAC;AAAA,MACD;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,cAAc,MAAY,SAAiC;AACvD,UAAM,sBAAkD,UAAAA,QAAG;AAAA,MACvD,KAAK;AAAA,IACT,IACM,KAAK,MAAM,UAAAA,QAAG,aAAa,KAAK,wBAAwB,OAAO,CAAC,IAChE,CAAC;AACP,UAAM,iBAAiB,MAAM,QAAQ,OAAO;AAC5C,QAAI,eAAgB,WAAwB,KAAK,UAAU,OAAO;AAClE,QAAI,IAAI;AACR,eAAW,YAAY,qBAAqB;AACxC;AACA,UACI,SAAS,YAAY,SACpB,iBAAiB,KAAK,UAAU,SAAS,OAAO,IAAI,SAAS,aAAa,SAC7E;AACE,4BAAoB,OAAO,GAAG,CAAC;AAC/B;AAAA,MACJ;AAAA,IACJ;AACA,cAAAA,QAAG,cAAc,KAAK,wBAAwB,KAAK,UAAU,mBAAmB,CAAC;AAAA,EACrF;AAAA,EAEA,iBAAiB;AACb,WAAO,GAAG,YAAK,aAAW,KAAI,wBAAK,WAAW;AAAA,EAClD;AAAA,EAEA,WAAW;AACP,+BAAU,OAAO,YAAY;AAC7B,cAAAA,QAAG,YAAY,KAAK,eAAe,GAAG,cAAc,UAAU;AAAA,EAClE;AACJ;",
6
+ "names": ["fs"]
7
+ }
@@ -84,3 +84,4 @@ function UIWriteJson(file, data, options) {
84
84
  WritePreComment,
85
85
  jsonFilePath
86
86
  });
87
+ //# sourceMappingURL=PreCompile.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/compilers/PreCompile.ts"],
4
+ "sourcesContent": ["import fs from \"fs\";\r\nimport { Configs } from \"./Config\";\r\n\r\nif (!fs.existsSync(\"comment.txt\")) {\r\n fs.writeFileSync(\"comment.txt\", \"\", \"utf-8\");\r\n}\r\n\r\nconst timeMap: Record<string, number> = {};\r\n\r\nconsole.time = function (label: string) {\r\n timeMap[label] = performance.now();\r\n};\r\n\r\nconsole.timeLog = function (tag: string, ...data) {\r\n const now = performance.now();\r\n const time = now - timeMap[tag];\r\n console.log(\r\n `\\x1b[90m[${time.toFixed(2)}ms]`,\r\n `\\x1b[32m[${tag}]\\x1b[0m`,\r\n \">>\",\r\n ...data,\r\n \"\\x1b[0m\"\r\n );\r\n};\r\n\r\nconsole.timeEnd = function (label: string) {\r\n delete timeMap[label];\r\n};\r\n\r\nexport function WritePreComment(data: any) {\r\n const comment = \"This file is generated by the AsaJS compiler. Do not edit it directly.\";\r\n\r\n if (fs.readFileSync(\"comment.txt\", \"utf-8\").trim() !== \"\") {\r\n const info = fs.readFileSync(\"comment.txt\", \"utf-8\").replaceAll(\"\\n\", \"\\n * \");\r\n return `/*\\n * ${comment}\\n * ----------------------------------------------------------------------\\n * ${info}\\n */\\n${JSON.stringify(\r\n data\r\n )}`;\r\n } else {\r\n return `// ${comment}\\n${JSON.stringify(data)}`;\r\n }\r\n}\r\n\r\nexport const jsonFilePath: string[] = [];\r\nexport function UIWriteJson(file: string, data: any, options?: fs.WriteFileOptions) {\r\n const writeData = JSON.stringify(data);\r\n\r\n if (writeData == \"{}\") return;\r\n\r\n if (Configs.getConfig().compiler.encodeJson) {\r\n fs.writeFileSync(file, writeData, options);\r\n } else {\r\n fs.writeFileSync(file, WritePreComment(data), options);\r\n }\r\n jsonFilePath.push(file);\r\n}\r\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAe;AACf,oBAAwB;AAExB,IAAI,CAAC,UAAAA,QAAG,WAAW,aAAa,GAAG;AAC/B,YAAAA,QAAG,cAAc,eAAe,IAAI,OAAO;AAC/C;AAEA,MAAM,UAAkC,CAAC;AAEzC,QAAQ,OAAO,SAAU,OAAe;AACpC,UAAQ,KAAK,IAAI,YAAY,IAAI;AACrC;AAEA,QAAQ,UAAU,SAAU,QAAgB,MAAM;AAC9C,QAAM,MAAM,YAAY,IAAI;AAC5B,QAAM,OAAO,MAAM,QAAQ,GAAG;AAC9B,UAAQ;AAAA,IACJ,YAAY,YAAK,QAAQ,CAAC,GAAC;AAAA,IAC3B,YAAY,YAAG;AAAA,IACf;AAAA,IACA,GAAG;AAAA,IACH;AAAA,EACJ;AACJ;AAEA,QAAQ,UAAU,SAAU,OAAe;AACvC,SAAO,QAAQ,KAAK;AACxB;AAEO,SAAS,gBAAgB,MAAW;AACvC,QAAM,UAAU;AAEhB,MAAI,UAAAA,QAAG,aAAa,eAAe,OAAO,EAAE,KAAK,MAAM,IAAI;AACvD,UAAM,OAAO,UAAAA,QAAG,aAAa,eAAe,OAAO,EAAE,WAAW,MAAM,OAAO;AAC7E,WAAO,UAAU,gBAAO,oFAAmF,aAAI,WAAU,YAAK;AAAA,MAC1H;AAAA,IACJ;AAAA,EACJ,OAAO;AACH,WAAO,MAAM,gBAAO,MAAK,YAAK,UAAU,IAAI;AAAA,EAChD;AACJ;AAEO,MAAM,eAAyB,CAAC;AAChC,SAAS,YAAY,MAAc,MAAW,SAA+B;AAChF,QAAM,YAAY,KAAK,UAAU,IAAI;AAErC,MAAI,aAAa,KAAM;AAEvB,MAAI,sBAAQ,UAAU,EAAE,SAAS,YAAY;AACzC,cAAAA,QAAG,cAAc,MAAM,WAAW,OAAO;AAAA,EAC7C,OAAO;AACH,cAAAA,QAAG,cAAc,MAAM,gBAAgB,IAAI,GAAG,OAAO;AAAA,EACzD;AACA,eAAa,KAAK,IAAI;AAC1B;",
6
+ "names": ["fs"]
7
+ }
@@ -49,3 +49,4 @@ function GenerateDir(installPath, path) {
49
49
  0 && (module.exports = {
50
50
  GenerateDir
51
51
  });
52
+ //# sourceMappingURL=GenerateDir.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/compilers/generator/GenerateDir.ts"],
4
+ "sourcesContent": ["import fs from \"fs\";\r\n\r\nexport function GenerateDir(installPath: string, path?: string): void {\r\n path = path ? `${installPath}/${path}` : installPath;\r\n\r\n if (!fs.existsSync(path)) {\r\n let lastPath = \"\";\r\n const folderPath = path.split(\"/\") || [];\r\n folderPath.pop();\r\n for (const folder of folderPath) {\r\n if (!(folder === \"\" || fs.existsSync(`${lastPath}${folder}`)))\r\n fs.mkdirSync(`${lastPath}${folder}`);\r\n lastPath = `${lastPath}${folder}/`;\r\n }\r\n }\r\n}\r\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAe;AAER,SAAS,YAAY,aAAqB,MAAqB;AAClE,SAAO,OAAO,GAAG,oBAAW,KAAI,eAAS;AAEzC,MAAI,CAAC,UAAAA,QAAG,WAAW,IAAI,GAAG;AACtB,QAAI,WAAW;AACf,UAAM,aAAa,KAAK,MAAM,GAAG,KAAK,CAAC;AACvC,eAAW,IAAI;AACf,eAAW,UAAU,YAAY;AAC7B,UAAI,EAAE,WAAW,MAAM,UAAAA,QAAG,WAAW,GAAG,iBAAW,cAAQ;AACvD,kBAAAA,QAAG,UAAU,GAAG,iBAAW,cAAQ;AACvC,iBAAW,GAAG,iBAAW,eAAM;AAAA,IACnC;AAAA,EACJ;AACJ;",
6
+ "names": ["fs"]
7
+ }
@@ -64,3 +64,4 @@ __publicField(JsonBuilder, "save", {
64
64
  0 && (module.exports = {
65
65
  JsonBuilder
66
66
  });
67
+ //# sourceMappingURL=JsonBuilder.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/compilers/generator/JsonBuilder.ts"],
4
+ "sourcesContent": ["import { AnimationKeyFrame } from \"../../components/AnimationKeyFrame\";\r\nimport { Class } from \"../../components/Class\";\r\nimport { Modify } from \"../../components/Modify\";\r\nimport { UI } from \"../../components/UI\";\r\nimport { Configs } from \"../Config\";\r\nimport { CurrentLine } from \"../reader/CurrentLine\";\r\nimport { Log } from \"./Log\";\r\n\r\ninterface JsonObject {\r\n build: {\r\n [file: string]: {\r\n namespace: string;\r\n [element: string]: any;\r\n };\r\n };\r\n modify: {\r\n [modifyFilePath: string]: {\r\n [path: string]: Modify;\r\n };\r\n };\r\n globalVariables: {\r\n [key: `$${string}`]: any;\r\n };\r\n}\r\n\r\nexport class JsonBuilder extends Class {\r\n static save: JsonObject = {\r\n build: {},\r\n globalVariables: {},\r\n modify: {},\r\n };\r\n\r\n static registerGlobalVariable(key: string, value: any): void {\r\n this.save.globalVariables[`$${key}`] = value;\r\n }\r\n\r\n static registerElement(namespace: string, element: UI | AnimationKeyFrame): void {\r\n const extension = Configs.getConfig().compiler.fileExtension;\r\n const buildFile = (this.save.build[\r\n `${namespace}${extension === \"\" ? \"\" : `.${extension}`}`\r\n ] ||= { namespace });\r\n\r\n for (const e in buildFile) {\r\n if (e.split(\"@\")[0] === element.getFullPath().split(\"@\")[0]) {\r\n Log.error(\r\n `${CurrentLine()} element has a duplicate name and namespace, which can be override.`\r\n );\r\n break;\r\n }\r\n }\r\n\r\n buildFile[element.getFullPath()] = element;\r\n }\r\n\r\n static getModify(modifyFile: string, modifyElement: string): Modify {\r\n return this.save.modify[modifyFile]?.[modifyElement];\r\n }\r\n\r\n static registerModify(modifyFile: string, modifyElement: string, modify: Modify): Modify {\r\n const modifyFileSave = (this.save.modify[modifyFile] ??= {});\r\n return (modifyFileSave[modifyElement] = modify);\r\n }\r\n}\r\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAsB;AAGtB,oBAAwB;AACxB,yBAA4B;AAC5B,iBAAoB;AAmBb,MAAM,oBAAoB,mBAAM;AAAA,EAOnC,OAAO,uBAAuB,KAAa,OAAkB;AACzD,SAAK,KAAK,gBAAgB,IAAI,WAAK,IAAI;AAAA,EAC3C;AAAA,EAEA,OAAO,gBAAgB,WAAmB,SAAuC;AApCrF;AAqCQ,UAAM,YAAY,sBAAQ,UAAU,EAAE,SAAS;AAC/C,UAAM,aAAa,UAAK,KAAK,OAAV,KACf,GAAG,kBAAY,qBAAc,KAAK,KAAK,IAAI,wBAD5B,SAEb,EAAE,UAAU;AAElB,eAAW,KAAK,WAAW;AACvB,UAAI,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM,QAAQ,YAAY,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG;AACzD,uBAAI;AAAA,UACA,GAAG,2CAAY,GAAC;AAAA,QACpB;AACA;AAAA,MACJ;AAAA,IACJ;AAEA,cAAU,QAAQ,YAAY,CAAC,IAAI;AAAA,EACvC;AAAA,EAEA,OAAO,UAAU,YAAoB,eAA+B;AAtDxE;AAuDQ,YAAO,UAAK,KAAK,OAAO,UAAU,MAA3B,mBAA+B;AAAA,EAC1C;AAAA,EAEA,OAAO,eAAe,YAAoB,eAAuB,QAAwB;AA1D7F;AA2DQ,UAAM,kBAAkB,gBAAK,KAAK,QAAV,6CAAiC,CAAC;AAC1D,WAAQ,eAAe,aAAa,IAAI;AAAA,EAC5C;AACJ;AApCI,cADS,aACF,QAAmB;AAAA,EACtB,OAAO,CAAC;AAAA,EACR,iBAAiB,CAAC;AAAA,EAClB,QAAQ,CAAC;AACb;",
6
+ "names": []
7
+ }
@@ -63,3 +63,4 @@ class LangBuilder extends import_Class.Class {
63
63
  0 && (module.exports = {
64
64
  LangBuilder
65
65
  });
66
+ //# sourceMappingURL=LangBuilder.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/compilers/generator/LangBuilder.ts"],
4
+ "sourcesContent": ["import fs from \"fs\";\r\nimport { Class } from \"../../components/Class\";\r\nimport { localizeText } from \"../../components/LocalizeText\";\r\n\r\nexport class LangBuilder extends Class {\r\n static build(buildPath: string) {\r\n fs.mkdirSync(`${buildPath}/texts`, { recursive: true });\r\n\r\n for (const langFile in localizeText) {\r\n const langContent: Record<string, string> = localizeText[langFile];\r\n let text = \"## The entire text below is built entirely using AsaJS!\";\r\n\r\n for (const key in langContent) {\r\n text += `\\n${key}=${langContent[key]}`;\r\n }\r\n\r\n if (fs.existsSync(`.bedrock/texts/${langFile}.lang`)) {\r\n const content = fs.readFileSync(`.bedrock/texts/${langFile}.lang`, \"utf-8\");\r\n fs.writeFileSync(\r\n `${buildPath}/texts/${langFile}.lang`,\r\n `${content}\\n\\n${text}`,\r\n \"utf-8\"\r\n );\r\n console.timeLog(\"COMPILER\", `${langFile}.lang has been updated!`);\r\n } else {\r\n fs.writeFileSync(`${buildPath}/texts/${langFile}.lang`, text, \"utf-8\");\r\n console.timeLog(\"COMPILER\", `${langFile}.lang has been generated!`);\r\n }\r\n }\r\n\r\n return Object.keys(localizeText).length;\r\n }\r\n}\r\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAe;AACf,mBAAsB;AACtB,0BAA6B;AAEtB,MAAM,oBAAoB,mBAAM;AAAA,EACnC,OAAO,MAAM,WAAmB;AAC5B,cAAAA,QAAG,UAAU,GAAG,kBAAS,WAAU,EAAE,WAAW,KAAK,CAAC;AAEtD,eAAW,YAAY,kCAAc;AACjC,YAAM,cAAsC,iCAAa,QAAQ;AACjE,UAAI,OAAO;AAEX,iBAAW,OAAO,aAAa;AAC3B,gBAAQ,KAAK,YAAG,KAAI,mBAAY,GAAG;AAAA,MACvC;AAEA,UAAI,UAAAA,QAAG,WAAW,kBAAkB,iBAAQ,QAAO,GAAG;AAClD,cAAM,UAAU,UAAAA,QAAG,aAAa,kBAAkB,iBAAQ,UAAS,OAAO;AAC1E,kBAAAA,QAAG;AAAA,UACC,GAAG,kBAAS,WAAU,iBAAQ;AAAA,UAC9B,GAAG,gBAAO,QAAO;AAAA,UACjB;AAAA,QACJ;AACA,gBAAQ,QAAQ,YAAY,GAAG,iBAAQ,0BAAyB;AAAA,MACpE,OAAO;AACH,kBAAAA,QAAG,cAAc,GAAG,kBAAS,WAAU,iBAAQ,UAAS,MAAM,OAAO;AACrE,gBAAQ,QAAQ,YAAY,GAAG,iBAAQ,4BAA2B;AAAA,MACtE;AAAA,IACJ;AAEA,WAAO,OAAO,KAAK,gCAAY,EAAE;AAAA,EACrC;AACJ;",
6
+ "names": ["fs"]
7
+ }
@@ -43,3 +43,4 @@ class Log extends import_Class.Class {
43
43
  Log,
44
44
  Logs
45
45
  });
46
+ //# sourceMappingURL=Log.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/compilers/generator/Log.ts"],
4
+ "sourcesContent": ["import { Class } from \"../../components/Class\";\r\n\r\nexport const Logs: Array<{ type: \"warning\" | \"error\"; message: string }> = [];\r\n\r\nexport class Log extends Class {\r\n static warning(message: string) {\r\n Logs.push({\r\n type: \"warning\",\r\n message: `\\x1b[93m[Warning]\\x1b[0m >> ${message}`,\r\n });\r\n }\r\n\r\n static error(message: string) {\r\n Logs.push({\r\n type: \"error\",\r\n message: `\\x1b[31m[Error]\\x1b[0m >> ${message}`,\r\n });\r\n }\r\n}\r\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAsB;AAEf,MAAM,OAA8D,CAAC;AAErE,MAAM,YAAY,mBAAM;AAAA,EAC3B,OAAO,QAAQ,SAAiB;AAC5B,SAAK,KAAK;AAAA,MACN,MAAM;AAAA,MACN,SAAS,+BAA+B;AAAA,IAC5C,CAAC;AAAA,EACL;AAAA,EAEA,OAAO,MAAM,SAAiB;AAC1B,SAAK,KAAK;AAAA,MACN,MAAM;AAAA,MACN,SAAS,6BAA6B;AAAA,IAC1C,CAAC;AAAA,EACL;AACJ;",
6
+ "names": []
7
+ }
@@ -61,3 +61,4 @@ class Manifest {
61
61
  0 && (module.exports = {
62
62
  Manifest
63
63
  });
64
+ //# sourceMappingURL=Manifest.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/compilers/generator/Manifest.ts"],
4
+ "sourcesContent": ["import { UUID } from \"crypto\";\r\nimport { ManifestInterface, SemverString, Type, Version } from \"../../types/objects/Manifest\";\r\nimport { Save } from \"./Save\";\r\n\r\ninterface ManifestHeader {\r\n\tname: string;\r\n\tdescription?: string;\r\n\tuuid?: UUID;\r\n\tversion?: Version | SemverString;\r\n}\r\n\r\ninterface ManifestMetadata {\r\n\tauthors?: Array<string>;\r\n\tlicense?: string;\r\n\turl?: string;\r\n\tproducType?: string;\r\n\tgeneratedWith?: object;\r\n}\r\n\r\nexport class Manifest {\r\n\tmanifest: ManifestInterface;\r\n\r\n\tconstructor(header: ManifestHeader, type: Type = Type.Resources, metadata?: ManifestMetadata) {\r\n\t\tconst uuid = Save.uuid();\r\n\r\n\t\tthis.manifest = {\r\n\t\t\tformat_version: 2,\r\n\t\t\theader: {\r\n\t\t\t\tname: header.name,\r\n\t\t\t\tuuid: header.uuid || uuid[0],\r\n\t\t\t\tdescription: header.description,\r\n\t\t\t\tversion: header.version || [1, 0, 0],\r\n\t\t\t},\r\n\t\t\tmodules: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttype: type,\r\n\t\t\t\t\tuuid: uuid[1],\r\n\t\t\t\t\tversion: [1, 0, 0],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tmetadata: metadata && {\r\n\t\t\t\tauthors: metadata.authors,\r\n\t\t\t\tlicense: metadata.license,\r\n\t\t\t\turl: metadata.url,\r\n\t\t\t\tproduct_type: metadata.producType,\r\n\t\t\t\tgenerated_with: metadata.generatedWith,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tbuildJson() {\r\n\t\treturn JSON.stringify(this.manifest, null, 4);\r\n\t}\r\n}\r\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAA+D;AAC/D,kBAAqB;AAiBd,MAAM,SAAS;AAAA,EAGrB,YAAY,QAAwB,OAAa,qBAAK,WAAW,UAA6B;AAF9F;AAGC,UAAM,OAAO,iBAAK,KAAK;AAEvB,SAAK,WAAW;AAAA,MACf,gBAAgB;AAAA,MAChB,QAAQ;AAAA,QACP,MAAM,OAAO;AAAA,QACb,MAAM,OAAO,QAAQ,KAAK,CAAC;AAAA,QAC3B,aAAa,OAAO;AAAA,QACpB,SAAS,OAAO,WAAW,CAAC,GAAG,GAAG,CAAC;AAAA,MACpC;AAAA,MACA,SAAS;AAAA,QACR;AAAA,UACC;AAAA,UACA,MAAM,KAAK,CAAC;AAAA,UACZ,SAAS,CAAC,GAAG,GAAG,CAAC;AAAA,QAClB;AAAA,MACD;AAAA,MACA,UAAU,YAAY;AAAA,QACrB,SAAS,SAAS;AAAA,QAClB,SAAS,SAAS;AAAA,QAClB,KAAK,SAAS;AAAA,QACd,cAAc,SAAS;AAAA,QACvB,gBAAgB,SAAS;AAAA,MAC1B;AAAA,IACD;AAAA,EACD;AAAA,EAEA,YAAY;AACX,WAAO,KAAK,UAAU,KAAK,UAAU,MAAM,CAAC;AAAA,EAC7C;AACD;",
6
+ "names": []
7
+ }
@@ -85,3 +85,4 @@ let Save = _Save;
85
85
  0 && (module.exports = {
86
86
  Save
87
87
  });
88
+ //# sourceMappingURL=Save.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/compilers/generator/Save.ts"],
4
+ "sourcesContent": ["import fs from \"fs\";\r\nimport { Class } from \"../../components/Class\";\r\nimport { Random } from \"../../components/Random\";\r\nimport { UUID } from \"../../types/objects/Manifest\";\r\ntype ReturnValue = () => any;\r\n\r\n\r\nexport class Save extends Class {\r\n static isSaveCreated: boolean = false;\r\n\r\n private static write(file: fs.PathOrFileDescriptor, data: string | NodeJS.ArrayBufferView, options?: fs.WriteFileOptions) {\r\n fs.writeFileSync(file, JSON.stringify(data), options);\r\n }\r\n\r\n private static read(path: fs.PathOrFileDescriptor, options?: {\r\n encoding?: null | undefined;\r\n flag?: string | undefined;\r\n } | null) {\r\n return JSON.parse(fs.readFileSync(path, options) as any);\r\n }\r\n\r\n static createFile(\r\n path: string,\r\n data: ReturnValue,\r\n write: Function = fs.writeFileSync,\r\n read: Function = fs.readFileSync\r\n ) {\r\n if (!Save.isSaveCreated && !fs.existsSync(\".save\")) fs.mkdirSync(\".save\");\r\n Save.isSaveCreated = true;\r\n if (!fs.existsSync(`.save/${path}`)) {\r\n const $ = data();\r\n write(`.save/${path}`, $, \"utf-8\");\r\n return $;\r\n } else return read(`.save/${path}`, \"utf-8\");\r\n }\r\n\r\n static createJson(path: string, data: ReturnValue) {\r\n return Save.createFile(path, data, this.write, this.read);\r\n }\r\n\r\n static updateFile(\r\n path: string,\r\n data: ReturnValue,\r\n write: Function = fs.writeFileSync,\r\n read: Function = fs.readFileSync\r\n ) {\r\n if (!Save.isSaveCreated && !fs.existsSync(\".save\")) fs.mkdirSync(\".save\");\r\n const backup = read(`.save/${path}`, \"utf-8\");\r\n write(`.save/${path}`, data());\r\n return backup;\r\n }\r\n\r\n static updateJson(path: string, data: ReturnValue) {\r\n return Save.updateFile(path, data, fs.read, fs.readFileSync);\r\n }\r\n\r\n static uuid(): [UUID, UUID] {\r\n return <[UUID, UUID]>Save.createJson(\"uuid\", () => ({\r\n uuid: [Random.getUUID(), Random.getUUID()],\r\n })).uuid;\r\n }\r\n\r\n static resource(mcVersion: \"stable\" | \"preview\" = \"stable\") {\r\n return Save.createJson(`compile-${mcVersion}`, () => ({\r\n isDevelopment: true,\r\n folderName: Random.getName(),\r\n }));\r\n }\r\n\r\n static getBuildID() {\r\n return Save.createJson(\"buildID\", () => [Random.genString(16)])[0];\r\n }\r\n}\r\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAe;AACf,mBAAsB;AACtB,oBAAuB;AAKhB,MAAM,QAAN,MAAM,cAAa,mBAAM;AAAA,EAG5B,OAAe,MAAM,MAA+B,MAAuC,SAA+B;AACtH,cAAAA,QAAG,cAAc,MAAM,KAAK,UAAU,IAAI,GAAG,OAAO;AAAA,EACxD;AAAA,EAEA,OAAe,KAAK,MAA+B,SAGzC;AACN,WAAO,KAAK,MAAM,UAAAA,QAAG,aAAa,MAAM,OAAO,CAAQ;AAAA,EAC3D;AAAA,EAEA,OAAO,WACH,MACA,MACA,QAAkB,UAAAA,QAAG,eACrB,OAAiB,UAAAA,QAAG,cACtB;AACE,QAAI,CAAC,MAAK,iBAAiB,CAAC,UAAAA,QAAG,WAAW,OAAO,EAAG,WAAAA,QAAG,UAAU,OAAO;AACxE,UAAK,gBAAgB;AACrB,QAAI,CAAC,UAAAA,QAAG,WAAW,SAAS,YAAM,GAAG;AACjC,YAAM,IAAI,KAAK;AACf,YAAM,SAAS,cAAQ,GAAG,OAAO;AACjC,aAAO;AAAA,IACX,MAAO,QAAO,KAAK,SAAS,cAAQ,OAAO;AAAA,EAC/C;AAAA,EAEA,OAAO,WAAW,MAAc,MAAmB;AAC/C,WAAO,MAAK,WAAW,MAAM,MAAM,KAAK,OAAO,KAAK,IAAI;AAAA,EAC5D;AAAA,EAEA,OAAO,WACH,MACA,MACA,QAAkB,UAAAA,QAAG,eACrB,OAAiB,UAAAA,QAAG,cACtB;AACE,QAAI,CAAC,MAAK,iBAAiB,CAAC,UAAAA,QAAG,WAAW,OAAO,EAAG,WAAAA,QAAG,UAAU,OAAO;AACxE,UAAM,SAAS,KAAK,SAAS,cAAQ,OAAO;AAC5C,UAAM,SAAS,cAAQ,KAAK,CAAC;AAC7B,WAAO;AAAA,EACX;AAAA,EAEA,OAAO,WAAW,MAAc,MAAmB;AAC/C,WAAO,MAAK,WAAW,MAAM,MAAM,UAAAA,QAAG,MAAM,UAAAA,QAAG,YAAY;AAAA,EAC/D;AAAA,EAEA,OAAO,OAAqB;AACxB,WAAqB,MAAK,WAAW,QAAQ,OAAO;AAAA,MAChD,MAAM,CAAC,qBAAO,QAAQ,GAAG,qBAAO,QAAQ,CAAC;AAAA,IAC7C,EAAE,EAAE;AAAA,EACR;AAAA,EAEA,OAAO,SAAS,YAAkC,UAAU;AACxD,WAAO,MAAK,WAAW,WAAW,mBAAa,OAAO;AAAA,MAClD,eAAe;AAAA,MACf,YAAY,qBAAO,QAAQ;AAAA,IAC/B,EAAE;AAAA,EACN;AAAA,EAEA,OAAO,aAAa;AAChB,WAAO,MAAK,WAAW,WAAW,MAAM,CAAC,qBAAO,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC;AAAA,EACrE;AACJ;AAhEI,cADS,OACF,iBAAyB;AAD7B,IAAM,OAAN;",
6
+ "names": ["fs"]
7
+ }
@@ -68,3 +68,4 @@ class SearchFiles extends import_Class.Class {
68
68
  0 && (module.exports = {
69
69
  SearchFiles
70
70
  });
71
+ //# sourceMappingURL=SearchFiles.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/compilers/generator/SearchFiles.ts"],
4
+ "sourcesContent": ["import { Class } from \"../../components/Class\";\r\nimport fs from \"fs\";\r\n\r\ninterface CallbackValue {\r\n folder?: string;\r\n file: string;\r\n path: string;\r\n}\r\n\r\n\r\nfunction searchForEachFileRecursion(\r\n path: string,\r\n callback: (value: CallbackValue) => void,\r\n $1: string = \"\",\r\n $2: string = \"\",\r\n $3: string = \"\"\r\n) {\r\n if (fs.statSync(path).isDirectory())\r\n for (const file of fs.readdirSync(path))\r\n searchForEachFileRecursion(\r\n `${path}/${file}`,\r\n callback,\r\n file,\r\n `${$2}/${file}`,\r\n $2.match(/(?<=\\/)\\w+$/)?.[0]\r\n );\r\n else\r\n callback({\r\n file: $1,\r\n folder: $3 === \"\" ? undefined : $3,\r\n path: $2.slice(1),\r\n });\r\n}\r\n\r\n\r\nexport class SearchFiles extends Class {\r\n static array(folderPath: string, prefix?: string): Array<string> {\r\n const paths: Array<string> = [];\r\n SearchFiles.forEach(folderPath, value =>\r\n paths.push(`${prefix ? `${prefix}/` : \"\"}${value.path}`)\r\n );\r\n return paths;\r\n }\r\n\r\n static forEach(folderPath: string, callback: (value: CallbackValue) => void): void {\r\n searchForEachFileRecursion(folderPath, callback);\r\n }\r\n}\r\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAsB;AACtB,gBAAe;AASf,SAAS,2BACL,MACA,UACA,KAAa,IACb,KAAa,IACb,KAAa,IACf;AAhBF;AAiBI,MAAI,UAAAA,QAAG,SAAS,IAAI,EAAE,YAAY;AAC9B,eAAW,QAAQ,UAAAA,QAAG,YAAY,IAAI;AAClC;AAAA,QACI,GAAG,aAAI,KAAI;AAAA,QACX;AAAA,QACA;AAAA,QACA,GAAG,WAAE,KAAI;AAAA,SACT,QAAG,MAAM,aAAa,MAAtB,mBAA0B;AAAA,MAC9B;AAAA;AAEJ,aAAS;AAAA,MACL,MAAM;AAAA,MACN,QAAQ,OAAO,KAAK,SAAY;AAAA,MAChC,MAAM,GAAG,MAAM,CAAC;AAAA,IACpB,CAAC;AACT;AAGO,MAAM,oBAAoB,mBAAM;AAAA,EACnC,OAAO,MAAM,YAAoB,QAAgC;AAC7D,UAAM,QAAuB,CAAC;AAC9B,gBAAY;AAAA,MAAQ;AAAA,MAAY,WAC5B,MAAM,KAAK,GAAG,gBAAS,GAAG,eAAM,OAAM,IAAK,aAAM,KAAM;AAAA,IAC3D;AACA,WAAO;AAAA,EACX;AAAA,EAEA,OAAO,QAAQ,YAAoB,UAAgD;AAC/E,+BAA2B,YAAY,QAAQ;AAAA,EACnD;AACJ;",
6
+ "names": ["fs"]
7
+ }
@@ -89,3 +89,4 @@ class SoundHandler extends import_Class.Class {
89
89
  0 && (module.exports = {
90
90
  SoundHandler
91
91
  });
92
+ //# sourceMappingURL=Sounds.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/compilers/generator/Sounds.ts"],
4
+ "sourcesContent": ["import fs from \"fs\";\r\nimport { parse } from \"jsonc-parser\";\r\nimport { Class } from \"../../components/Class\";\r\nimport { Random } from \"../../components/Random\";\r\nimport { UIWriteJson } from \"../PreCompile\";\r\n\r\ninterface SoundID {\r\n [path: string]: string;\r\n}\r\n\r\nconst sounds: SoundID = {};\r\n\r\nexport class SoundHandler extends Class {\r\n static get(path: string) {\r\n if (sounds[path]) {\r\n return sounds[path];\r\n } else {\r\n return (sounds[path] = `jsonui_scripting.${Random.getName()}`);\r\n }\r\n }\r\n\r\n static compile(installPath: string) {\r\n const soundIds = Object.keys(sounds);\r\n\r\n if (soundIds.length) {\r\n if (!fs.existsSync(`${installPath}/sounds`)) fs.mkdirSync(`${installPath}/sounds`);\r\n\r\n const soundDefinitions: any = {};\r\n\r\n for (const soundPath of soundIds) {\r\n const soundId = sounds[soundPath];\r\n\r\n soundDefinitions[soundId] = {\r\n category: \"ui\",\r\n sounds: [\r\n {\r\n load_on_low_memory: true,\r\n name: soundPath,\r\n stream: true,\r\n volume: 1,\r\n },\r\n ],\r\n };\r\n }\r\n\r\n let bak;\r\n if (fs.existsSync(`.bedrock/sounds/sound_definitions.json`)) {\r\n bak = parse(\r\n fs.readFileSync(`.bedrock/sounds/sound_definitions.json`, \"utf-8\")\r\n ).sound_definitions;\r\n }\r\n\r\n UIWriteJson(\r\n `${installPath}/sounds/sound_definitions.json`,\r\n {\r\n format_version: \"1.20.20\",\r\n sound_definitions: {\r\n ...bak,\r\n ...soundDefinitions,\r\n },\r\n },\r\n \"utf-8\"\r\n );\r\n }\r\n\r\n return soundIds.length;\r\n }\r\n}\r\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAe;AACf,0BAAsB;AACtB,mBAAsB;AACtB,oBAAuB;AACvB,wBAA4B;AAM5B,MAAM,SAAkB,CAAC;AAElB,MAAM,qBAAqB,mBAAM;AAAA,EACpC,OAAO,IAAI,MAAc;AACrB,QAAI,OAAO,IAAI,GAAG;AACd,aAAO,OAAO,IAAI;AAAA,IACtB,OAAO;AACH,aAAQ,OAAO,IAAI,IAAI,oBAAoB,4BAAO,QAAQ;AAAA,IAC9D;AAAA,EACJ;AAAA,EAEA,OAAO,QAAQ,aAAqB;AAChC,UAAM,WAAW,OAAO,KAAK,MAAM;AAEnC,QAAI,SAAS,QAAQ;AACjB,UAAI,CAAC,UAAAA,QAAG,WAAW,GAAG,oBAAW,UAAS,EAAG,WAAAA,QAAG,UAAU,GAAG,oBAAW,UAAS;AAEjF,YAAM,mBAAwB,CAAC;AAE/B,iBAAW,aAAa,UAAU;AAC9B,cAAM,UAAU,OAAO,SAAS;AAEhC,yBAAiB,OAAO,IAAI;AAAA,UACxB,UAAU;AAAA,UACV,QAAQ;AAAA,YACJ;AAAA,cACI,oBAAoB;AAAA,cACpB,MAAM;AAAA,cACN,QAAQ;AAAA,cACR,QAAQ;AAAA,YACZ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAEA,UAAI;AACJ,UAAI,UAAAA,QAAG,WAAW,wCAAwC,GAAG;AACzD,kBAAM;AAAA,UACF,UAAAA,QAAG,aAAa,0CAA0C,OAAO;AAAA,QACrE,EAAE;AAAA,MACN;AAEA;AAAA,QACI,GAAG,oBAAW;AAAA,QACd;AAAA,UACI,gBAAgB;AAAA,UAChB,mBAAmB;AAAA,YACf,GAAG;AAAA,YACH,GAAG;AAAA,UACP;AAAA,QACJ;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO,SAAS;AAAA,EACpB;AACJ;",
6
+ "names": ["fs"]
7
+ }
@@ -52,3 +52,4 @@ function firstRun() {
52
52
  0 && (module.exports = {
53
53
  firstRun
54
54
  });
55
+ //# sourceMappingURL=Template.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/compilers/generator/Template.ts"],
4
+ "sourcesContent": ["import { config, env, globalVariables, gitignore } from \"../../template\";\r\nimport { GenerateDir } from \"./GenerateDir\";\r\nimport fs from \"fs\";\r\n\r\nexport function firstRun() {\r\n // Template Object\r\n const template: { [file: string]: string } = {\r\n \".gitignore\": gitignore,\r\n \"asakiyuki.config.cjs\": config\r\n .replace(\"{packname}\", \"AsaJS\")\r\n .replace(\"{packdescription}\", \"Build with AsaJS <3\")\r\n .replace(\"{autoinstall}\", \"true\")\r\n .replace(\"{development}\", \"true\")\r\n .replace(\"{preview}\", \"false\"),\r\n \"asakiyuki.global_variables.cjs\": globalVariables,\r\n \"asakiyuki.env.cjs\": env,\r\n };\r\n\r\n // Generator\r\n for (const file in template) {\r\n if (!fs.existsSync(file)) {\r\n GenerateDir(file);\r\n fs.writeFileSync(file, template[file], \"utf-8\");\r\n }\r\n }\r\n}\r\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAwD;AACxD,yBAA4B;AAC5B,gBAAe;AAER,SAAS,WAAW;AAEvB,QAAM,WAAuC;AAAA,IACzC,cAAc;AAAA,IACd,wBAAwB,uBACnB,QAAQ,cAAc,OAAO,EAC7B,QAAQ,qBAAqB,qBAAqB,EAClD,QAAQ,iBAAiB,MAAM,EAC/B,QAAQ,iBAAiB,MAAM,EAC/B,QAAQ,aAAa,OAAO;AAAA,IACjC,kCAAkC;AAAA,IAClC,qBAAqB;AAAA,EACzB;AAGA,aAAW,QAAQ,UAAU;AACzB,QAAI,CAAC,UAAAA,QAAG,WAAW,IAAI,GAAG;AACtB,0CAAY,IAAI;AAChB,gBAAAA,QAAG,cAAc,MAAM,SAAS,IAAI,GAAG,OAAO;AAAA,IAClD;AAAA,EACJ;AACJ;",
6
+ "names": ["fs"]
7
+ }
@@ -37,6 +37,8 @@ var import_JsonBuilder = require("./JsonBuilder");
37
37
  var import_SearchFiles = require("./SearchFiles");
38
38
  var import_GenerateDir = require("./GenerateDir");
39
39
  var import_PreCompile = require("../PreCompile");
40
+ var import_UI = require("../../components/UI");
41
+ var import_Config = require("../Config");
40
42
  class UIBuilder {
41
43
  static delete(installPath) {
42
44
  try {
@@ -47,15 +49,23 @@ class UIBuilder {
47
49
  }
48
50
  static jsonUI(installPath) {
49
51
  const build = import_JsonBuilder.JsonBuilder.save.build;
52
+ const config = import_Config.Configs.getConfig();
50
53
  let count = 0;
51
54
  for (const file in build) {
52
55
  const namespace = build[file].namespace;
53
56
  delete build[file].namespace;
54
- for (const jsonUI in build[file]) build[file][jsonUI] = build[file][jsonUI].getUI();
55
- console.timeLog(
56
- "COMPILER",
57
- "".concat(file, " ").concat(Object.keys(build[file]).length, " elements has generated!")
58
- );
57
+ let compileElementsCount = 0;
58
+ for (const jsonUI in build[file]) {
59
+ const element = build[file][jsonUI];
60
+ if (element instanceof import_UI.UI && element.addCount < 2 && !element.isExtended && config.compiler.UI.optimizeControls)
61
+ build[file][jsonUI] = void 0;
62
+ else {
63
+ build[file][jsonUI] = element.getUI();
64
+ compileElementsCount++;
65
+ }
66
+ }
67
+ if (!compileElementsCount) continue;
68
+ console.timeLog("COMPILER", "".concat(file, " ").concat(!compileElementsCount, " elements has generated!"));
59
69
  build[file].namespace = namespace;
60
70
  (0, import_PreCompile.UIWriteJson)("".concat(installPath, "/@/").concat(file), build[file], "utf-8");
61
71
  delete build[file];
@@ -121,3 +131,4 @@ class UIBuilder {
121
131
  0 && (module.exports = {
122
132
  UIBuilder
123
133
  });
134
+ //# sourceMappingURL=UIBuilder.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/compilers/generator/UIBuilder.ts"],
4
+ "sourcesContent": ["import fs from \"fs\";\r\nimport { parse } from \"jsonc-parser\";\r\nimport { JsonBuilder } from \"./JsonBuilder\";\r\nimport { SearchFiles } from \"./SearchFiles\";\r\nimport { GenerateDir } from \"./GenerateDir\";\r\nimport { UIWriteJson } from \"../PreCompile\";\r\nimport { UI } from \"../../components/UI\";\r\nimport { Configs } from \"../Config\";\r\n\r\nexport class UIBuilder {\r\n static delete(installPath: string): void {\r\n try {\r\n fs.unlinkSync(installPath);\r\n } catch (error) {\r\n if (fs.existsSync(installPath)) fs.rmSync(installPath, { recursive: true });\r\n }\r\n }\r\n\r\n static jsonUI(installPath: string): number {\r\n const build = <any>JsonBuilder.save.build;\r\n const config = Configs.getConfig();\r\n let count = 0;\r\n for (const file in build) {\r\n const namespace = build[file].namespace;\r\n delete build[file].namespace;\r\n\r\n let compileElementsCount = 0;\r\n for (const jsonUI in build[file]) {\r\n const element = build[file][jsonUI];\r\n if (\r\n element instanceof UI &&\r\n element.addCount < 2 &&\r\n !element.isExtended &&\r\n config.compiler.UI.optimizeControls\r\n )\r\n build[file][jsonUI] = undefined;\r\n else {\r\n build[file][jsonUI] = element.getUI();\r\n compileElementsCount++;\r\n }\r\n }\r\n\r\n if (!compileElementsCount) continue;\r\n\r\n console.timeLog(\"COMPILER\", `${file} ${!compileElementsCount} elements has generated!`);\r\n\r\n build[file].namespace = namespace;\r\n UIWriteJson(`${installPath}/@/${file}`, build[file], \"utf-8\");\r\n delete build[file];\r\n count++;\r\n }\r\n return count;\r\n }\r\n\r\n static modify(installPath: string): number {\r\n if (!fs.existsSync(`${installPath}/ui`)) fs.mkdirSync(`${installPath}/ui`);\r\n let count = 0;\r\n const modify = JsonBuilder.save.modify;\r\n for (const key in modify) {\r\n GenerateDir(installPath, key);\r\n for (const element in modify[key]) modify[key][element] = modify[key][element].getUI();\r\n\r\n console.timeLog(\r\n \"COMPILER\",\r\n `${key} ${Object.keys(modify[key]).length} modify element(s) has generated!`\r\n );\r\n\r\n UIWriteJson(`${installPath}/${key}`, modify[key], \"utf-8\");\r\n delete modify[key];\r\n count++;\r\n }\r\n return count;\r\n }\r\n\r\n static uiDefs(installPath: string): number {\r\n const arr = SearchFiles.array(`${installPath}/@`, \"@\");\r\n UIWriteJson(`${installPath}/ui/_ui_defs.json`, { ui_defs: arr }, \"utf-8\");\r\n return arr.length;\r\n }\r\n\r\n static contents(installPath: string): number {\r\n const arr = SearchFiles.array(installPath);\r\n\r\n UIWriteJson(\r\n `${installPath}/contents.json`,\r\n {\r\n content: arr.map(v => ({ path: v })),\r\n },\r\n \"utf-8\"\r\n );\r\n\r\n return arr.length;\r\n }\r\n\r\n static texturesList(installPath: string): number {\r\n const arr = SearchFiles.array(installPath)\r\n .filter(v => /\\.(png|jpg|jpeg)$/.test(v))\r\n .map(v => v.replace(/\\.(png|jpg|jpeg)$/, \"\"));\r\n\r\n let textureList: Array<string> = [];\r\n\r\n if (fs.existsSync(`.bedrock/textures/textures_list.json`)) {\r\n const texturesList = fs.readFileSync(`.bedrock/textures/textures_list.json`, \"utf-8\");\r\n textureList = parse(texturesList);\r\n }\r\n\r\n if (!fs.existsSync(`${installPath}/textures`)) fs.mkdirSync(`${installPath}/textures`);\r\n UIWriteJson(\r\n `${installPath}/textures/textures_list.json`,\r\n [...arr, ...textureList],\r\n \"utf-8\"\r\n );\r\n\r\n return arr.length;\r\n }\r\n\r\n static globalVariables(installPath: string): number {\r\n const globalVariables = JsonBuilder.save.globalVariables;\r\n\r\n UIWriteJson(`${installPath}/ui/_global_variables.json`, globalVariables, \"utf-8\");\r\n\r\n return Object.keys(globalVariables).length;\r\n }\r\n}\r\n"],
5
+ "mappings": "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",
6
+ "names": ["fs"]
7
+ }
@@ -79,3 +79,4 @@ function FormatAudio() {
79
79
  0 && (module.exports = {
80
80
  FormatAudio
81
81
  });
82
+ //# sourceMappingURL=Audio.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/compilers/reader/Audio.ts"],
4
+ "sourcesContent": ["import fs from \"fs\";\r\nimport { SearchFiles } from \"../generator/SearchFiles\";\r\nimport { spawnSync, execSync } from \"child_process\";\r\nimport { Log } from \"../generator/Log\";\r\n\r\nexport function FormatAudio() {\r\n\tconst reg = /\\.(mp3|m4a|mp4|mov|opus|acc|flac)$/;\r\n\tconst files = SearchFiles.array(\".bedrock\", \".bedrock\").filter((path) =>\r\n\t\treg.test(path)\r\n\t);\r\n\r\n\tif (!files.length) return;\r\n\r\n\ttry {\r\n\t\tspawnSync(\"ffmpeg\", [\"-version\"], {\r\n\t\t\tstdio: [\"ignore\", \"ignore\", \"ignore\"],\r\n\t\t}).error;\r\n\r\n\t\tconsole.timeLog(\r\n\t\t\t\"Compiler\",\r\n\t\t\t\">> Starting to convert all found audio files to WAV format\"\r\n\t\t);\r\n\r\n\t\tfor (const file of files) {\r\n\t\t\tconst out = file.replace(reg, \".wav\");\r\n\t\t\texecSync(`ffmpeg -i ${file} ${out}`, {\r\n\t\t\t\tstdio: \"ignore\",\r\n\t\t\t});\r\n\t\t\tfs.rmSync(file);\r\n\r\n\t\t\tconsole.timeLog(\r\n\t\t\t\t\"Compiler\",\r\n\t\t\t\t`>> Reformatting of ${file.replace(\r\n\t\t\t\t\t/^\\.bedrock\\//,\r\n\t\t\t\t\t\"\"\r\n\t\t\t\t)} is complete.`\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tconsole.timeLog(\r\n\t\t\t\"Compiler\",\r\n\t\t\t`>> Successfully reformatted ${files.length} audio file(s).`\r\n\t\t);\r\n\t\tconsole.log();\r\n\t} catch (error) {\r\n\t\tLog.warning(\r\n\t\t\t\"You need to install 'ffmpeg' to your system environment variables to automatic convert all audio files to a format minecraft can read.\"\r\n\t\t);\r\n\t\tconsole.log();\r\n\t}\r\n}\r\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAe;AACf,yBAA4B;AAC5B,2BAAoC;AACpC,iBAAoB;AAEb,SAAS,cAAc;AAC7B,QAAM,MAAM;AACZ,QAAM,QAAQ,+BAAY,MAAM,YAAY,UAAU,EAAE;AAAA,IAAO,CAAC,SAC/D,IAAI,KAAK,IAAI;AAAA,EACd;AAEA,MAAI,CAAC,MAAM,OAAQ;AAEnB,MAAI;AACH,wCAAU,UAAU,CAAC,UAAU,GAAG;AAAA,MACjC,OAAO,CAAC,UAAU,UAAU,QAAQ;AAAA,IACrC,CAAC,EAAE;AAEH,YAAQ;AAAA,MACP;AAAA,MACA;AAAA,IACD;AAEA,eAAW,QAAQ,OAAO;AACzB,YAAM,MAAM,KAAK,QAAQ,KAAK,MAAM;AACpC,yCAAS,aAAa,aAAI,KAAI,aAAO;AAAA,QACpC,OAAO;AAAA,MACR,CAAC;AACD,gBAAAA,QAAG,OAAO,IAAI;AAEd,cAAQ;AAAA,QACP;AAAA,QACA,sBAAsB,YAAK;AAAA,UAC1B;AAAA,UACA;AAAA,QACD,GAAC;AAAA,MACF;AAAA,IACD;AAEA,YAAQ;AAAA,MACP;AAAA,MACA,+BAA+B,aAAM,QAAM;AAAA,IAC5C;AACA,YAAQ,IAAI;AAAA,EACb,SAAS,OAAO;AACf,mBAAI;AAAA,MACH;AAAA,IACD;AACA,YAAQ,IAAI;AAAA,EACb;AACD;",
6
+ "names": ["fs"]
7
+ }
@@ -63,3 +63,4 @@ class ColorHandler extends import_Class.Class {
63
63
  0 && (module.exports = {
64
64
  ColorHandler
65
65
  });
66
+ //# sourceMappingURL=Color.js.map