+

+
+
+
+[](https://www.npmjs.com/package/asajs)
+[](https://github.com/AsakiYuki/AsaJS/blob/main/README.md)
+[](https://www.npmjs.com/package/asajs)
+
+
+**AsaJS** is a NodeJS library designed to empower developers to create **JSON-UI** packages for Minecraft: Bedrock Edition using **JavaScript** or **TypeScript**.
+
+Say goodbye to the tedious and repetitive nature of manual JSON editing. AsaJS streamlines your workflow by bringing the programmatic flexibility to Minecraft UI development.
+
+## 🛠 Installation
+
+To use AsaJS, ensure you have **[Node.js](https://nodejs.org/en)** installed on your system.
+
+```bash
+npx create-asajs
+```
+
+## 📖 "Hello World!" Example
+
+Creating a custom UI with AsaJS is straightforward. Here is how you can insert a custom label onto the Minecraft Start Screen:
+
+```javascript
+import { Anchor, Label, Modify } from "asajs"
+
+const label = Label({
+ text: "Hello World from my Custom UI!",
+ shadow: true,
+ anchor: Anchor.TOP_MIDDLE,
+ offset: [0, 10],
+})
+
+// This code injects the label into the top of the start screen
+Modify("start", "start_screen_content").insertChild(label)
+```
+
+
+
+## 🤝 Contributing
+
+Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
diff --git a/assets/discord/style.css b/assets/discord/style.css
deleted file mode 100644
index e98cc9f..0000000
--- a/assets/discord/style.css
+++ /dev/null
@@ -1,7 +0,0 @@
-.winButtons_c38106.winButtonsWithDivider_c38106 {
- display: none;
-}
-
-.trailing_c38106 {
- padding-right: 10px;
-}
diff --git a/assets/firefox/userChrome.css b/assets/firefox/userChrome.css
deleted file mode 100644
index daeaf9e..0000000
--- a/assets/firefox/userChrome.css
+++ /dev/null
@@ -1,11 +0,0 @@
-.titlebar-buttonbox-container {
- display: none;
-}
-
-.titlebar-spacer {
- width: 2.5px !important;
-}
-
-#TabsToolbar {
- padding-left: 2.5px !important;
-}
diff --git a/assets/grub/background.png b/assets/grub/background.png
deleted file mode 100644
index 63a6060..0000000
Binary files a/assets/grub/background.png and /dev/null differ
diff --git a/assets/srgb_to_gamma2p2_400_mhc2.icm b/assets/srgb_to_gamma2p2_400_mhc2.icm
deleted file mode 100644
index cf9ffb5..0000000
Binary files a/assets/srgb_to_gamma2p2_400_mhc2.icm and /dev/null differ
diff --git a/config.d.ts b/config.d.ts
new file mode 100644
index 0000000..aea3149
--- /dev/null
+++ b/config.d.ts
@@ -0,0 +1,50 @@
+import { Variable } from "./src/types/properties/value.ts"
+
+export interface RetBindingValue {
+ generate_bindings?: Array<{ source_property_name: string; target_property_name: string }>
+ return_value: string
+}
+
+export interface Config {
+ compiler?: {
+ enabled?: boolean
+ autoImport?: boolean
+ importToPreview?: boolean
+ autoEnable?: boolean
+ gdkUserId?: string
+ fixInventoryItemRenderer?: boolean
+ buildFolder?: string
+ fileExtension?: string
+ uiBuildFolder?: string
+ obfuscateStringName?: boolean
+ allowRandomStringName?: boolean
+ namespaceCount?: number
+ forceRandomStringLength?: number
+ }
+
+ ui_analyzer?: {
+ enabled?: boolean
+ generate_path?: string
+ imports?: string[]
+ }
+
+ packinfo?: {
+ name?: string
+ description?: string
+ version?: [number, number, number]
+
+ metadata?: {
+ authors?: string[]
+ license?: string
+ url?: string
+ }
+
+ subpacks?: {
+ folder_name?: string
+ name?: string
+ memory_performance_tier?: number
+ }[]
+ }
+ global_variables?: Record