bc-minecraft-molang 1.21.100-9 → 1.21.133-0

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 (178) hide show
  1. package/README.md +21 -18
  2. package/{lib/src → dist}/data/animations-controllers.d.ts +2 -1
  3. package/dist/data/animations-controllers.d.ts.map +1 -0
  4. package/{lib/src → dist}/data/animations-controllers.js +2 -2
  5. package/dist/data/animations-controllers.js.map +1 -0
  6. package/{lib/src → dist}/data/animations.d.ts +2 -1
  7. package/dist/data/animations.d.ts.map +1 -0
  8. package/{lib/src → dist}/data/animations.js +2 -2
  9. package/dist/data/animations.js.map +1 -0
  10. package/{lib/src → dist}/data/attachables.d.ts +2 -1
  11. package/dist/data/attachables.d.ts.map +1 -0
  12. package/{lib/src → dist}/data/attachables.js +2 -2
  13. package/dist/data/attachables.js.map +1 -0
  14. package/{lib/src → dist}/data/blocks.d.ts +2 -1
  15. package/dist/data/blocks.d.ts.map +1 -0
  16. package/dist/data/blocks.js.map +1 -0
  17. package/dist/data/data.d.ts +4 -0
  18. package/dist/data/data.d.ts.map +1 -0
  19. package/{lib/src → dist}/data/data.js.map +1 -1
  20. package/{lib/src → dist}/data/entities.d.ts +2 -1
  21. package/dist/data/entities.d.ts.map +1 -0
  22. package/{lib/src → dist}/data/entities.js +2 -2
  23. package/dist/data/entities.js.map +1 -0
  24. package/{lib/src → dist}/data/features-rules.d.ts +2 -1
  25. package/dist/data/features-rules.d.ts.map +1 -0
  26. package/{lib/src → dist}/data/features-rules.js +8 -1
  27. package/dist/data/features-rules.js.map +1 -0
  28. package/{lib/src → dist}/data/general.d.ts +2 -1
  29. package/dist/data/general.d.ts.map +1 -0
  30. package/dist/data/general.js +1807 -0
  31. package/dist/data/general.js.map +1 -0
  32. package/dist/data/index.d.ts +14 -0
  33. package/dist/data/index.d.ts.map +1 -0
  34. package/dist/data/index.js.map +1 -0
  35. package/{lib/src → dist}/data/items.d.ts +2 -1
  36. package/dist/data/items.d.ts.map +1 -0
  37. package/{lib/src → dist}/data/items.js +1 -1
  38. package/dist/data/items.js.map +1 -0
  39. package/{lib/src → dist}/data/molang-data.d.ts +22 -12
  40. package/dist/data/molang-data.d.ts.map +1 -0
  41. package/{lib/src → dist}/data/molang-data.js +34 -2
  42. package/dist/data/molang-data.js.map +1 -0
  43. package/{lib/src → dist}/data/molang-function.d.ts +11 -4
  44. package/dist/data/molang-function.d.ts.map +1 -0
  45. package/{lib/src → dist}/data/molang-function.js +4 -4
  46. package/dist/data/molang-function.js.map +1 -0
  47. package/{lib/src → dist}/data/particles.d.ts +2 -1
  48. package/dist/data/particles.d.ts.map +1 -0
  49. package/dist/data/particles.js +28 -0
  50. package/dist/data/particles.js.map +1 -0
  51. package/{lib/src → dist}/data/render-controllers.d.ts +2 -1
  52. package/dist/data/render-controllers.d.ts.map +1 -0
  53. package/{lib/src → dist}/data/render-controllers.js +2 -2
  54. package/dist/data/render-controllers.js.map +1 -0
  55. package/{lib/src → dist}/graph/index.d.ts +1 -0
  56. package/dist/graph/index.d.ts.map +1 -0
  57. package/dist/graph/index.js.map +1 -0
  58. package/{lib/src → dist}/graph/mermaid.d.ts +3 -2
  59. package/dist/graph/mermaid.d.ts.map +1 -0
  60. package/{lib/src → dist}/graph/mermaid.js +43 -41
  61. package/dist/graph/mermaid.js.map +1 -0
  62. package/dist/index.d.ts +4 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/{lib/src/main.js → dist/index.js} +1 -1
  65. package/dist/index.js.map +1 -0
  66. package/{lib/src → dist}/molang/cache.d.ts +3 -2
  67. package/dist/molang/cache.d.ts.map +1 -0
  68. package/{lib/src → dist}/molang/cache.js +1 -0
  69. package/dist/molang/cache.js.map +1 -0
  70. package/{lib/src → dist}/molang/functions.d.ts +1 -0
  71. package/dist/molang/functions.d.ts.map +1 -0
  72. package/{lib/src → dist}/molang/functions.js +14 -14
  73. package/dist/molang/functions.js.map +1 -0
  74. package/dist/molang/index.d.ts +6 -0
  75. package/dist/molang/index.d.ts.map +1 -0
  76. package/dist/molang/index.js.map +1 -0
  77. package/{lib/src → dist}/molang/molang-set.d.ts +5 -3
  78. package/dist/molang/molang-set.d.ts.map +1 -0
  79. package/{lib/src → dist}/molang/molang-set.js +36 -15
  80. package/dist/molang/molang-set.js.map +1 -0
  81. package/{lib/src → dist}/molang/syntax/builder.d.ts +2 -1
  82. package/dist/molang/syntax/builder.d.ts.map +1 -0
  83. package/{lib/src → dist}/molang/syntax/builder.js +8 -2
  84. package/dist/molang/syntax/builder.js.map +1 -0
  85. package/dist/molang/syntax/collect.d.ts +3 -0
  86. package/dist/molang/syntax/collect.d.ts.map +1 -0
  87. package/dist/molang/syntax/collect.js.map +1 -0
  88. package/{lib/src → dist}/molang/syntax/errors.d.ts +2 -1
  89. package/dist/molang/syntax/errors.d.ts.map +1 -0
  90. package/{lib/src → dist}/molang/syntax/errors.js +4 -2
  91. package/dist/molang/syntax/errors.js.map +1 -0
  92. package/dist/molang/syntax/flatten.d.ts +3 -0
  93. package/dist/molang/syntax/flatten.d.ts.map +1 -0
  94. package/dist/molang/syntax/flatten.js.map +1 -0
  95. package/dist/molang/syntax/index.d.ts +11 -0
  96. package/dist/molang/syntax/index.d.ts.map +1 -0
  97. package/dist/molang/syntax/index.js.map +1 -0
  98. package/{lib/src → dist}/molang/syntax/nodes.d.ts +6 -5
  99. package/dist/molang/syntax/nodes.d.ts.map +1 -0
  100. package/{lib/src → dist}/molang/syntax/nodes.js +4 -5
  101. package/dist/molang/syntax/nodes.js.map +1 -0
  102. package/{lib/src → dist}/molang/syntax/operators.d.ts +2 -1
  103. package/dist/molang/syntax/operators.d.ts.map +1 -0
  104. package/{lib/src → dist}/molang/syntax/operators.js +26 -27
  105. package/dist/molang/syntax/operators.js.map +1 -0
  106. package/dist/molang/syntax/parse.d.ts +5 -0
  107. package/dist/molang/syntax/parse.d.ts.map +1 -0
  108. package/{lib/src → dist}/molang/syntax/parse.js +94 -35
  109. package/dist/molang/syntax/parse.js.map +1 -0
  110. package/dist/molang/syntax/tokens.d.ts +37 -0
  111. package/dist/molang/syntax/tokens.d.ts.map +1 -0
  112. package/{lib/src → dist}/molang/syntax/tokens.js +110 -64
  113. package/dist/molang/syntax/tokens.js.map +1 -0
  114. package/{lib/src → dist}/molang/syntax/util.d.ts +1 -0
  115. package/dist/molang/syntax/util.d.ts.map +1 -0
  116. package/{lib/src → dist}/molang/syntax/util.js +3 -3
  117. package/dist/molang/syntax/util.js.map +1 -0
  118. package/{lib/src → dist}/molang/syntax/walk.d.ts +2 -1
  119. package/dist/molang/syntax/walk.d.ts.map +1 -0
  120. package/dist/molang/syntax/walk.js.map +1 -0
  121. package/{lib/src → dist}/molang/traverse.d.ts +2 -1
  122. package/dist/molang/traverse.d.ts.map +1 -0
  123. package/{lib/src → dist}/molang/traverse.js +6 -6
  124. package/dist/molang/traverse.js.map +1 -0
  125. package/package.json +59 -59
  126. package/LICENSE +0 -29
  127. package/lib/src/data/animations-controllers.js.map +0 -1
  128. package/lib/src/data/animations.js.map +0 -1
  129. package/lib/src/data/attachables.js.map +0 -1
  130. package/lib/src/data/blocks.js.map +0 -1
  131. package/lib/src/data/data.d.ts +0 -3
  132. package/lib/src/data/entities.js.map +0 -1
  133. package/lib/src/data/features-rules.js.map +0 -1
  134. package/lib/src/data/general.js +0 -1522
  135. package/lib/src/data/general.js.map +0 -1
  136. package/lib/src/data/index.d.ts +0 -13
  137. package/lib/src/data/index.js.map +0 -1
  138. package/lib/src/data/items.js.map +0 -1
  139. package/lib/src/data/molang-data.js.map +0 -1
  140. package/lib/src/data/molang-function.js.map +0 -1
  141. package/lib/src/data/particles.js +0 -28
  142. package/lib/src/data/particles.js.map +0 -1
  143. package/lib/src/data/render-controllers.js.map +0 -1
  144. package/lib/src/graph/index.js.map +0 -1
  145. package/lib/src/graph/mermaid.js.map +0 -1
  146. package/lib/src/main.d.ts +0 -3
  147. package/lib/src/main.js.map +0 -1
  148. package/lib/src/molang/cache.js.map +0 -1
  149. package/lib/src/molang/functions.js.map +0 -1
  150. package/lib/src/molang/index.d.ts +0 -5
  151. package/lib/src/molang/index.js.map +0 -1
  152. package/lib/src/molang/molang-set.js.map +0 -1
  153. package/lib/src/molang/syntax/builder.js.map +0 -1
  154. package/lib/src/molang/syntax/collect.d.ts +0 -2
  155. package/lib/src/molang/syntax/collect.js.map +0 -1
  156. package/lib/src/molang/syntax/errors.js.map +0 -1
  157. package/lib/src/molang/syntax/flatten.d.ts +0 -2
  158. package/lib/src/molang/syntax/flatten.js.map +0 -1
  159. package/lib/src/molang/syntax/index.d.ts +0 -10
  160. package/lib/src/molang/syntax/index.js.map +0 -1
  161. package/lib/src/molang/syntax/nodes.js.map +0 -1
  162. package/lib/src/molang/syntax/operators.js.map +0 -1
  163. package/lib/src/molang/syntax/parse.d.ts +0 -4
  164. package/lib/src/molang/syntax/parse.js.map +0 -1
  165. package/lib/src/molang/syntax/tokens.d.ts +0 -35
  166. package/lib/src/molang/syntax/tokens.js.map +0 -1
  167. package/lib/src/molang/syntax/util.js.map +0 -1
  168. package/lib/src/molang/syntax/walk.js.map +0 -1
  169. package/lib/src/molang/traverse.js.map +0 -1
  170. /package/{lib/src → dist}/data/blocks.js +0 -0
  171. /package/{lib/src → dist}/data/data.js +0 -0
  172. /package/{lib/src → dist}/data/index.js +0 -0
  173. /package/{lib/src → dist}/graph/index.js +0 -0
  174. /package/{lib/src → dist}/molang/index.js +0 -0
  175. /package/{lib/src → dist}/molang/syntax/collect.js +0 -0
  176. /package/{lib/src → dist}/molang/syntax/flatten.js +0 -0
  177. /package/{lib/src → dist}/molang/syntax/index.js +0 -0
  178. /package/{lib/src → dist}/molang/syntax/walk.js +0 -0
@@ -16,25 +16,26 @@ var TokenType;
16
16
  TokenType[TokenType["ArrayAccess"] = 0] = "ArrayAccess";
17
17
  TokenType[TokenType["Arrow"] = 1] = "Arrow";
18
18
  TokenType[TokenType["Assignment"] = 2] = "Assignment";
19
- TokenType[TokenType["CloseBrace"] = 3] = "CloseBrace";
20
- TokenType[TokenType["CloseBracket"] = 4] = "CloseBracket";
21
- TokenType[TokenType["CloseParen"] = 5] = "CloseParen";
22
- TokenType[TokenType["Colon"] = 6] = "Colon";
23
- TokenType[TokenType["Comma"] = 7] = "Comma";
24
- TokenType[TokenType["Dot"] = 8] = "Dot";
25
- TokenType[TokenType["Identifier"] = 9] = "Identifier";
26
- TokenType[TokenType["NamespacedIdentifier"] = 10] = "NamespacedIdentifier";
27
- TokenType[TokenType["NullishCoalescing"] = 11] = "NullishCoalescing";
28
- TokenType[TokenType["Number"] = 12] = "Number";
29
- TokenType[TokenType["OpenBrace"] = 13] = "OpenBrace";
30
- TokenType[TokenType["OpenBracket"] = 14] = "OpenBracket";
31
- TokenType[TokenType["OpenParen"] = 15] = "OpenParen";
32
- TokenType[TokenType["Operator"] = 16] = "Operator";
33
- TokenType[TokenType["QuestionMark"] = 17] = "QuestionMark";
34
- TokenType[TokenType["Semicolon"] = 18] = "Semicolon";
35
- TokenType[TokenType["StringLiteral"] = 19] = "StringLiteral";
36
- TokenType[TokenType["UnaryOperator"] = 20] = "UnaryOperator";
37
- TokenType[TokenType["EOF"] = 21] = "EOF";
19
+ TokenType[TokenType["Boolean"] = 3] = "Boolean";
20
+ TokenType[TokenType["CloseBrace"] = 4] = "CloseBrace";
21
+ TokenType[TokenType["CloseBracket"] = 5] = "CloseBracket";
22
+ TokenType[TokenType["CloseParen"] = 6] = "CloseParen";
23
+ TokenType[TokenType["Colon"] = 7] = "Colon";
24
+ TokenType[TokenType["Comma"] = 8] = "Comma";
25
+ TokenType[TokenType["Dot"] = 9] = "Dot";
26
+ TokenType[TokenType["Identifier"] = 10] = "Identifier";
27
+ TokenType[TokenType["NamespacedIdentifier"] = 11] = "NamespacedIdentifier";
28
+ TokenType[TokenType["NullishCoalescing"] = 12] = "NullishCoalescing";
29
+ TokenType[TokenType["Number"] = 13] = "Number";
30
+ TokenType[TokenType["OpenBrace"] = 14] = "OpenBrace";
31
+ TokenType[TokenType["OpenBracket"] = 15] = "OpenBracket";
32
+ TokenType[TokenType["OpenParen"] = 16] = "OpenParen";
33
+ TokenType[TokenType["Operator"] = 17] = "Operator";
34
+ TokenType[TokenType["QuestionMark"] = 18] = "QuestionMark";
35
+ TokenType[TokenType["Semicolon"] = 19] = "Semicolon";
36
+ TokenType[TokenType["StringLiteral"] = 20] = "StringLiteral";
37
+ TokenType[TokenType["UnaryOperator"] = 21] = "UnaryOperator";
38
+ TokenType[TokenType["EOF"] = 22] = "EOF";
38
39
  })(TokenType || (exports.TokenType = TokenType = {}));
39
40
  function isDigit(ch) {
40
41
  const code = ch.charCodeAt(0);
@@ -44,7 +45,7 @@ function isAlpha(ch) {
44
45
  const code = ch.charCodeAt(0);
45
46
  return ((code >= 65 && code <= 90) || // A-Z
46
47
  (code >= 97 && code <= 122) || // a-z
47
- ch === "_");
48
+ ch === '_');
48
49
  }
49
50
  function isAlphaNumeric(ch) {
50
51
  return isAlpha(ch) || isDigit(ch);
@@ -57,45 +58,69 @@ function tokenize(input) {
57
58
  const char = input[pos];
58
59
  // Skip whitespace
59
60
  switch (char) {
60
- case " ":
61
- case "\t":
62
- case "\r":
63
- case "\n":
61
+ case ' ':
62
+ case '\t':
63
+ case '\r':
64
+ case '\n':
64
65
  pos++;
65
66
  continue;
66
67
  }
67
68
  // Numbers
68
69
  if (isDigit(char)) {
69
- let value = "";
70
+ let value = '';
70
71
  const start = pos;
71
- while (pos < input.length && (isDigit(input[pos]) || input[pos] === ".")) {
72
+ while (pos < input.length && (isDigit(input[pos]) || input[pos] === '.')) {
72
73
  value += input[pos];
73
74
  pos++;
74
75
  }
75
- if (input[pos] === "f") {
76
+ if (input[pos] === 'f') {
76
77
  value += input[pos];
77
78
  pos++;
78
79
  }
79
80
  tokens.push({ type: TokenType.Number, value, position: start });
80
81
  continue;
81
82
  }
83
+ //Boolean: true
84
+ if (char === 't' && input.slice(pos, pos + 4) === 'true') {
85
+ tokens.push({ type: TokenType.Boolean, value: 'true', position: pos });
86
+ pos += 4;
87
+ continue;
88
+ }
89
+ //Boolean: false
90
+ if (char === 'f' && input.slice(pos, pos + 5) === 'false') {
91
+ tokens.push({ type: TokenType.Boolean, value: 'false', position: pos });
92
+ pos += 5;
93
+ continue;
94
+ }
82
95
  // Identifiers (including namespaced ones like math.sin and minecraft:state)
83
96
  if (isAlpha(char)) {
84
- let value = "";
97
+ let value = '';
85
98
  const start = pos;
86
99
  while (pos < input.length) {
87
100
  const ch = input[pos];
88
- // Allow alphanumeric, dots, underscores, and colons in identifiers
89
- if (isAlphaNumeric(ch) || ch === "." || ch === ":") {
101
+ // Allow alphanumeric, dots, underscores in identifiers
102
+ if (isAlphaNumeric(ch) || ch === '.') {
90
103
  value += ch;
91
104
  pos++;
92
105
  }
106
+ else if (ch === ':') {
107
+ // Only include colon if it's followed by an alphanumeric character (for namespacing like minecraft:state)
108
+ // This prevents colons from ternary operators being included in identifiers
109
+ // Check bounds before accessing input[pos + 1] to avoid out-of-bounds access
110
+ if (pos + 1 < input.length && isAlphaNumeric(input[pos + 1])) {
111
+ value += ch;
112
+ pos++;
113
+ }
114
+ else {
115
+ break;
116
+ }
117
+ }
93
118
  else {
94
119
  break;
95
120
  }
96
121
  }
97
122
  // If it contains a dot, it's a namespaced identifier
98
- if (value.includes(".")) {
123
+ if (value.includes('.')) {
99
124
  tokens.push({ type: TokenType.NamespacedIdentifier, value: value.toLowerCase(), position: start });
100
125
  }
101
126
  else {
@@ -105,24 +130,24 @@ function tokenize(input) {
105
130
  }
106
131
  // Multi-character operators
107
132
  const threeCharOp = input.slice(pos, pos + 3);
108
- if (threeCharOp === "???") {
133
+ if (threeCharOp === '???') {
109
134
  tokens.push({ type: TokenType.NullishCoalescing, value: threeCharOp, position: pos });
110
135
  pos += 3;
111
136
  continue;
112
137
  }
113
138
  const twoCharOp = input.slice(pos, pos + 2);
114
139
  switch (twoCharOp) {
115
- case "&&":
116
- case "||":
117
- case "==":
118
- case "!=":
119
- case "<=":
120
- case ">=":
121
- case "->":
140
+ case '&&':
141
+ case '||':
142
+ case '==':
143
+ case '!=':
144
+ case '<=':
145
+ case '>=':
146
+ case '->':
122
147
  tokens.push({ type: TokenType.Operator, value: twoCharOp, position: pos });
123
148
  pos += 2;
124
149
  continue;
125
- case "??":
150
+ case '??':
126
151
  tokens.push({ type: TokenType.NullishCoalescing, value: twoCharOp, position: pos });
127
152
  pos += 2;
128
153
  continue;
@@ -130,51 +155,51 @@ function tokenize(input) {
130
155
  }
131
156
  // Single-character operators and punctuation
132
157
  switch (char) {
133
- case "(":
158
+ case '(':
134
159
  tokens.push({ type: TokenType.OpenParen, value: char, position: pos });
135
160
  break;
136
- case ")":
161
+ case ')':
137
162
  tokens.push({ type: TokenType.CloseParen, value: char, position: pos });
138
163
  break;
139
- case "{":
164
+ case '{':
140
165
  tokens.push({ type: TokenType.OpenBrace, value: char, position: pos });
141
166
  break;
142
- case "}":
167
+ case '}':
143
168
  tokens.push({ type: TokenType.CloseBrace, value: char, position: pos });
144
169
  break;
145
- case "[":
170
+ case '[':
146
171
  tokens.push({ type: TokenType.OpenBracket, value: char, position: pos });
147
172
  break;
148
- case "]":
173
+ case ']':
149
174
  tokens.push({ type: TokenType.CloseBracket, value: char, position: pos });
150
175
  break;
151
- case ";":
176
+ case ';':
152
177
  tokens.push({ type: TokenType.Semicolon, value: char, position: pos });
153
178
  break;
154
- case "?":
179
+ case '?':
155
180
  tokens.push({ type: TokenType.QuestionMark, value: char, position: pos });
156
181
  break;
157
- case ":":
182
+ case ':':
158
183
  tokens.push({ type: TokenType.Colon, value: char, position: pos });
159
184
  break;
160
- case ".":
185
+ case '.':
161
186
  tokens.push({ type: TokenType.Dot, value: char, position: pos });
162
187
  break;
163
- case "=":
188
+ case '=':
164
189
  tokens.push({ type: TokenType.Assignment, value: char, position: pos });
165
190
  break;
166
- case "!":
191
+ case '!':
167
192
  tokens.push({ type: TokenType.UnaryOperator, value: char, position: pos });
168
193
  break;
169
- case "+":
170
- case "-":
171
- case "*":
172
- case "/":
173
- case "<":
174
- case ">":
194
+ case '+':
195
+ case '-':
196
+ case '*':
197
+ case '/':
198
+ case '<':
199
+ case '>':
175
200
  tokens.push({ type: TokenType.Operator, value: char, position: pos });
176
201
  break;
177
- case ",":
202
+ case ',':
178
203
  tokens.push({ type: TokenType.Comma, value: char, position: pos });
179
204
  break;
180
205
  case "'":
@@ -183,7 +208,7 @@ function tokenize(input) {
183
208
  const quote = char;
184
209
  const start = pos;
185
210
  pos++;
186
- let value = "";
211
+ let value = '';
187
212
  while (pos < input.length && input[pos] !== quote) {
188
213
  // Capture everything inside quotes including special characters
189
214
  value += input[pos];
@@ -206,17 +231,19 @@ function tokenize(input) {
206
231
  continue;
207
232
  }
208
233
  // Always add an EOF token at the end
209
- tokens.push({ type: TokenType.EOF, value: " ", position: pos });
234
+ tokens.push({ type: TokenType.EOF, value: ' ', position: pos });
210
235
  // Check for unary operators
211
236
  tokens.forEach(checkUnaryOperators);
212
237
  return tokens;
213
238
  }
214
239
  function checkUnaryOperators(item, index, items) {
215
- if (item.type === TokenType.Identifier && item.value === "return") {
240
+ if (item.type === TokenType.Identifier && item.value === 'return') {
216
241
  item.type = TokenType.UnaryOperator;
217
242
  return;
218
243
  }
219
- if (item.type !== TokenType.Operator && item.value !== "-")
244
+ if (item.type !== TokenType.Operator)
245
+ return;
246
+ if (item.value !== '-' && item.value !== '+')
220
247
  return;
221
248
  if (index === 0) {
222
249
  item.type = TokenType.UnaryOperator;
@@ -224,11 +251,30 @@ function checkUnaryOperators(item, index, items) {
224
251
  }
225
252
  const previous = items[index - 1];
226
253
  switch (previous.type) {
254
+ case TokenType.CloseBrace:
255
+ case TokenType.CloseBracket:
256
+ case TokenType.CloseParen:
257
+ case TokenType.Identifier:
258
+ case TokenType.NamespacedIdentifier:
259
+ case TokenType.Number:
260
+ case TokenType.Boolean:
261
+ case TokenType.StringLiteral:
262
+ break;
263
+ case TokenType.ArrayAccess:
264
+ case TokenType.Arrow:
265
+ case TokenType.Assignment:
266
+ case TokenType.Colon:
227
267
  case TokenType.Comma:
228
- case TokenType.Operator:
268
+ case TokenType.Dot:
269
+ case TokenType.EOF:
270
+ case TokenType.NullishCoalescing:
229
271
  case TokenType.OpenBrace:
230
272
  case TokenType.OpenBracket:
231
273
  case TokenType.OpenParen:
274
+ case TokenType.Operator:
275
+ case TokenType.QuestionMark:
276
+ case TokenType.Semicolon:
277
+ case TokenType.UnaryOperator:
232
278
  item.type = TokenType.UnaryOperator;
233
279
  break;
234
280
  default:
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/molang/syntax/tokens.ts"],"names":[],"mappings":"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"}
@@ -6,3 +6,4 @@ import { Token } from './tokens';
6
6
  * @returns
7
7
  */
8
8
  export declare function getMatchingTokenSlice(tokens: Token[], startIndex: number): Token[];
9
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/molang/syntax/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAa,MAAM,UAAU,CAAC;AAE5C;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,KAAK,EAAE,CAuDlF"}
@@ -10,7 +10,7 @@ const tokens_1 = require("./tokens");
10
10
  */
11
11
  function getMatchingTokenSlice(tokens, startIndex) {
12
12
  if (startIndex >= tokens.length) {
13
- throw new Error("Start index is out of bounds");
13
+ throw new Error('Start index is out of bounds');
14
14
  }
15
15
  const startToken = tokens[startIndex];
16
16
  let targetType;
@@ -50,8 +50,8 @@ function getMatchingTokenSlice(tokens, startIndex) {
50
50
  }
51
51
  // Validate that we found the matching closing token
52
52
  if (endIndex === -1) {
53
- const tokenName = startToken.type === tokens_1.TokenType.OpenBrace ? "{" : startToken.type === tokens_1.TokenType.OpenParen ? "(" : "[";
54
- const closingName = targetType === tokens_1.TokenType.CloseBrace ? "}" : targetType === tokens_1.TokenType.CloseParen ? ")" : "]";
53
+ const tokenName = startToken.type === tokens_1.TokenType.OpenBrace ? '{' : startToken.type === tokens_1.TokenType.OpenParen ? '(' : '[';
54
+ const closingName = targetType === tokens_1.TokenType.CloseBrace ? '}' : targetType === tokens_1.TokenType.CloseParen ? ')' : ']';
55
55
  throw new Error(`Couldn't find the matching closing ${closingName} for ${tokenName} at index ${startIndex}`);
56
56
  }
57
57
  // Return the slice including both opening and closing tokens
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/molang/syntax/util.ts"],"names":[],"mappings":";;AAQA,sDAuDC;AA/DD,qCAA4C;AAE5C;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAC,MAAe,EAAE,UAAkB;IACvE,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACtC,IAAI,UAAqB,CAAC;IAC1B,IAAI,WAAsB,CAAC;IAE3B,+DAA+D;IAC/D,QAAQ,UAAU,CAAC,IAAI,EAAE,CAAC;QACxB,KAAK,kBAAS,CAAC,SAAS;YACtB,UAAU,GAAG,kBAAS,CAAC,UAAU,CAAC;YAClC,WAAW,GAAG,kBAAS,CAAC,SAAS,CAAC;YAClC,MAAM;QACR,KAAK,kBAAS,CAAC,SAAS;YACtB,UAAU,GAAG,kBAAS,CAAC,UAAU,CAAC;YAClC,WAAW,GAAG,kBAAS,CAAC,SAAS,CAAC;YAClC,MAAM;QACR,KAAK,kBAAS,CAAC,WAAW;YACxB,UAAU,GAAG,kBAAS,CAAC,YAAY,CAAC;YACpC,WAAW,GAAG,kBAAS,CAAC,WAAW,CAAC;YACpC,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,kBAAkB,UAAU,mDAAmD,CAAC,CAAC;IACrG,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,yDAAyD;IACxE,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;IAElB,wCAAwC;IACxC,KAAK,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAExB,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC/B,KAAK,EAAE,CAAC;QACV,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACrC,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBAChB,QAAQ,GAAG,CAAC,CAAC;gBACb,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,oDAAoD;IACpD,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,MAAM,SAAS,GACb,UAAU,CAAC,IAAI,KAAK,kBAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,kBAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACtG,MAAM,WAAW,GAAG,UAAU,KAAK,kBAAS,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,KAAK,kBAAS,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAChH,MAAM,IAAI,KAAK,CAAC,sCAAsC,WAAW,QAAQ,SAAS,aAAa,UAAU,EAAE,CAAC,CAAC;IAC/G,CAAC;IAED,6DAA6D;IAC7D,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;AAChD,CAAC"}
@@ -1,2 +1,3 @@
1
- import { ExpressionNode } from "./nodes";
1
+ import { ExpressionNode } from './nodes';
2
2
  export declare function walk(exp: ExpressionNode, callback: (node: ExpressionNode) => void): void;
3
+ //# sourceMappingURL=walk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walk.d.ts","sourceRoot":"","sources":["../../../src/molang/syntax/walk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,wBAAgB,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,GAAG,IAAI,CAUxF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walk.js","sourceRoot":"","sources":["../../../src/molang/syntax/walk.ts"],"names":[],"mappings":";;AAEA,oBAUC;AAZD,mCAAyC;AAEzC,SAAgB,IAAI,CAAC,GAAmB,EAAE,QAAwC;IAChF,MAAM,IAAI,GAAqB,CAAC,GAAG,CAAC,CAAC;IAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QACjC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC,IAAI,CAAC,GAAG,sBAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC;AACH,CAAC"}
@@ -1,7 +1,8 @@
1
- import { MolangType } from "./functions";
1
+ import { MolangType } from './functions';
2
2
  /**
3
3
  * Traverses the object and returns all the molang strings
4
4
  * @param obj The object to traverse
5
5
  * @param callbackfn The callback to call when a molang string is found
6
6
  */
7
7
  export declare function traverse(obj: any, callbackfn: (molang: string, type: MolangType, path: string) => void, path?: string): void;
8
+ //# sourceMappingURL=traverse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../src/molang/traverse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,UAAU,EAAE,MAAM,aAAa,CAAC;AAEvD;;;;GAIG;AACH,wBAAgB,QAAQ,CACtB,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,EACpE,IAAI,GAAE,MAAY,GACjB,IAAI,CAwBN"}
@@ -7,15 +7,15 @@ const functions_1 = require("./functions");
7
7
  * @param obj The object to traverse
8
8
  * @param callbackfn The callback to call when a molang string is found
9
9
  */
10
- function traverse(obj, callbackfn, path = "$") {
11
- if (!path.endsWith("/"))
12
- path += "/";
10
+ function traverse(obj, callbackfn, path = '$') {
11
+ if (!path.endsWith('/'))
12
+ path += '/';
13
13
  switch (typeof obj) {
14
14
  default:
15
15
  return;
16
- case "string":
16
+ case 'string':
17
17
  return StringCheck(obj, callbackfn, path);
18
- case "object":
18
+ case 'object':
19
19
  if (Array.isArray(obj)) {
20
20
  for (let I = 0; I < obj.length; I++) {
21
21
  traverse(obj[I], callbackfn, path + I);
@@ -31,7 +31,7 @@ function traverse(obj, callbackfn, path = "$") {
31
31
  }
32
32
  }
33
33
  /** */
34
- function StringCheck(data, callbackfn, path = "") {
34
+ function StringCheck(data, callbackfn, path = '') {
35
35
  const type = (0, functions_1.isMolangType)(data);
36
36
  if (type !== functions_1.MolangType.unknown)
37
37
  callbackfn(data, type, path);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traverse.js","sourceRoot":"","sources":["../../src/molang/traverse.ts"],"names":[],"mappings":";;AAOA,4BA4BC;AAnCD,2CAAuD;AAEvD;;;;GAIG;AACH,SAAgB,QAAQ,CACtB,GAAQ,EACR,UAAoE,EACpE,OAAe,GAAG;IAElB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,IAAI,IAAI,GAAG,CAAC;IAErC,QAAQ,OAAO,GAAG,EAAE,CAAC;QACnB;YACE,OAAO;QAET,KAAK,QAAQ;YACX,OAAO,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAE5C,KAAK,QAAQ;YACX,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACpC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBAE7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM;AACN,SAAS,WAAW,CAClB,IAAY,EACZ,UAAoE,EACpE,OAAe,EAAE;IAEjB,MAAM,IAAI,GAAG,IAAA,wBAAY,EAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,IAAI,KAAK,sBAAU,CAAC,OAAO;QAAE,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAChE,CAAC"}
package/package.json CHANGED
@@ -1,59 +1,59 @@
1
- {
2
- "name": "bc-minecraft-molang",
3
- "version": "1.21.100-9",
4
- "description": "The library designed to deal with minecraft bedrock molang",
5
- "main": "./lib/src/main.js",
6
- "types": "./lib/src/main.d.ts",
7
- "scripts": {
8
- "compile": "tsc -b",
9
- "build": "npm run clean && npm run compile",
10
- "format": "prettier --write \"src/**/*.ts\" \"src/**/*.js\"",
11
- "test": "jest",
12
- "lint": "eslint",
13
- "clean": "rimraf lib",
14
- "pretest": "npm run compile",
15
- "prepublishOnly": "npm test && npm run compile",
16
- "preversion": "",
17
- "postversion": "git push && git push --tags",
18
- "version": "git add -A src",
19
- "watch": "tsc -w -p ./src"
20
- },
21
- "repository": {
22
- "type": "git",
23
- "url": "git+https://github.com/Blockception/BC-Minecraft-Molang.git"
24
- },
25
- "keywords": [
26
- "ts",
27
- "library",
28
- "minecraft",
29
- "molang"
30
- ],
31
- "author": "Blockception Ltd",
32
- "license": "BSD-3-Clause",
33
- "bugs": {
34
- "url": "https://github.com/Blockception/BC-Minecraft-Molang/issues"
35
- },
36
- "homepage": "https://github.com/Blockception/BC-Minecraft-Molang#readme",
37
- "files": [
38
- "lib/src/**/*.js",
39
- "lib/src/**/*.js.map",
40
- "lib/src/**/*.d.ts"
41
- ],
42
- "devDependencies": {
43
- "@eslint/js": "^9.35.0",
44
- "@types/eslint__js": "^8.42.3",
45
- "@types/jest": "^30.0.0",
46
- "@types/node": "^24.3.1",
47
- "eslint": "^9.35.0",
48
- "eslint-plugin-jest": "^29.0.1",
49
- "rimraf": "^6.0.1",
50
- "ts-jest": "^29.4.1",
51
- "ts-loader": "^9.5.0",
52
- "ts-node": "^10.9.1",
53
- "typescript": "^5.9.2",
54
- "typescript-eslint": "^8.42.0"
55
- },
56
- "dependencies": {
57
- "bc-minecraft-bedrock-types": "^1.22.1-16"
58
- }
59
- }
1
+ {
2
+ "name": "bc-minecraft-molang",
3
+ "version": "1.21.133-0",
4
+ "description": "The library designed to deal with minecraft bedrock molang",
5
+ "author": {
6
+ "name": "Blockception Ltd",
7
+ "url": "https://www.blockception.com/"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/Blockception/minecraft-bedrock-language-server",
12
+ "directory": "packages/molang"
13
+ },
14
+ "bugs": {
15
+ "url": "https://github.com/Blockception/minecraft-bedrock-language-server/issues"
16
+ },
17
+ "homepage": "https://github.com/Blockception/minecraft-bedrock-language-server#readme",
18
+ "license": "BSD-3-Clause",
19
+ "main": "./dist/index.js",
20
+ "typings": "./dist/index.d.ts",
21
+ "files": [
22
+ "./dist",
23
+ "../../../LICENSE"
24
+ ],
25
+ "keywords": [
26
+ "ts",
27
+ "library",
28
+ "minecraft",
29
+ "molang"
30
+ ],
31
+ "scripts": {
32
+ "compile": "tsc -b --pretty ./tsconfig.json",
33
+ "format": "prettier --write \"src/**/*.{ts,js}\"",
34
+ "test": "jest --config ./jest.config.ts",
35
+ "lint": "eslint --config ../../eslint.config.mjs .",
36
+ "clean": "rimraf ./dist tsconfig.tsbuildinfo",
37
+ "pretest": "npm run compile",
38
+ "prepublishOnly": "npm test && npm run compile",
39
+ "preversion": "",
40
+ "postversion": "git push && git push --tags",
41
+ "version": "git add -A src",
42
+ "watch": "tsc -w -p ./tsconfig.json"
43
+ },
44
+ "devDependencies": {
45
+ "@eslint/js": "^9.35.0",
46
+ "@types/eslint__js": "^8.42.3",
47
+ "@types/node": "^24.3.1",
48
+ "eslint": "^9.35.0",
49
+ "rimraf": "^6.1.2",
50
+ "ts-loader": "^9.5.0",
51
+ "ts-node": "^10.9.1",
52
+ "typescript": "^5.9.2",
53
+ "typescript-eslint": "^8.42.0"
54
+ },
55
+ "dependencies": {
56
+ "@blockception/packages-shared": "*",
57
+ "bc-minecraft-bedrock-types": "*"
58
+ }
59
+ }
package/LICENSE DELETED
@@ -1,29 +0,0 @@
1
- BSD 3-Clause License
2
-
3
- Copyright (c) 2021, Blockception Ltd
4
- All rights reserved.
5
-
6
- Redistribution and use in source and binary forms, with or without
7
- modification, are permitted provided that the following conditions are met:
8
-
9
- 1. Redistributions of source code must retain the above copyright notice, this
10
- list of conditions and the following disclaimer.
11
-
12
- 2. Redistributions in binary form must reproduce the above copyright notice,
13
- this list of conditions and the following disclaimer in the documentation
14
- and/or other materials provided with the distribution.
15
-
16
- 3. Neither the name of the copyright holder nor the names of its
17
- contributors may be used to endorse or promote products derived from
18
- this software without specific prior written permission.
19
-
20
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -1 +0,0 @@
1
- {"version":3,"file":"animations-controllers.js","sourceRoot":"","sources":["../../../src/data/animations-controllers.ts"],"names":[],"mappings":";;;AAEA,2CAA2C;AAC3C,IAAiB,qBAAqB,CAOrC;AAPD,WAAiB,qBAAqB;IACpC,wDAAwD;IAC3C,+BAAS,GAAW,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;IACzD,gEAAgE;IACnD,8BAAQ,GAAW,CAAC,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAC/E,6DAA6D;IAClD,2BAAK,GAAW,EAAE,CAAC;AAClC,CAAC,EAPgB,qBAAqB,qCAArB,qBAAqB,QAOrC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"animations.js","sourceRoot":"","sources":["../../../src/data/animations.ts"],"names":[],"mappings":";;;AAEA,gCAAgC;AAChC,IAAiB,UAAU,CAO1B;AAPD,WAAiB,UAAU;IACzB,wDAAwD;IAC3C,oBAAS,GAAW,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;IACzD,gEAAgE;IACnD,mBAAQ,GAAW,CAAC,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IACjF,6DAA6D;IAChD,gBAAK,GAAW,EAAE,CAAC;AAClC,CAAC,EAPgB,UAAU,0BAAV,UAAU,QAO1B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"attachables.js","sourceRoot":"","sources":["../../../src/data/attachables.ts"],"names":[],"mappings":";;;AAEA,2CAA2C;AAC3C,IAAiB,WAAW,CAO3B;AAPD,WAAiB,WAAW;IAC1B,wDAAwD;IAC3C,qBAAS,GAAW,CAAC,EAAC,EAAE,EAAE,cAAc,EAAC,CAAC,CAAC;IACxD,gEAAgE;IACnD,oBAAQ,GAAW,CAAC,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IACjF,6DAA6D;IAChD,iBAAK,GAAW,EAAE,CAAC;AAClC,CAAC,EAPgB,WAAW,2BAAX,WAAW,QAO3B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../../src/data/blocks.ts"],"names":[],"mappings":";;;AAEA,2BAA2B;AAC3B,IAAiB,MAAM,CAOtB;AAPD,WAAiB,MAAM;IACrB,wDAAwD;IAC3C,gBAAS,GAAW,EAAE,CAAC;IACpC,gEAAgE;IACnD,eAAQ,GAAW,EAAE,CAAC;IACjC,6DAA6D;IAClD,YAAK,GAAW,EAAE,CAAC;AAClC,CAAC,EAPgB,MAAM,sBAAN,MAAM,QAOtB"}
@@ -1,3 +0,0 @@
1
- import { Types } from "bc-minecraft-bedrock-types";
2
- /**The base type of a molang data item*/
3
- export type Data = Types.Identifiable & Types.Documentated;
@@ -1 +0,0 @@
1
- {"version":3,"file":"entities.js","sourceRoot":"","sources":["../../../src/data/entities.ts"],"names":[],"mappings":";;;AAEA,6BAA6B;AAC7B,IAAiB,QAAQ,CAOxB;AAPD,WAAiB,QAAQ;IACvB,wDAAwD;IAC3C,kBAAS,GAAW,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;IACzD,gEAAgE;IACnD,iBAAQ,GAAW,CAAC,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAC/E,6DAA6D;IAClD,cAAK,GAAW,EAAE,CAAC;AAClC,CAAC,EAPgB,QAAQ,wBAAR,QAAQ,QAOxB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"features-rules.js","sourceRoot":"","sources":["../../../src/data/features-rules.ts"],"names":[],"mappings":";;;AAEA,kCAAkC;AAClC,IAAiB,aAAa,CAO7B;AAPD,WAAiB,aAAa;IAC5B,wDAAwD;IAC3C,uBAAS,GAAW,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjJ,gEAAgE;IACnD,sBAAQ,GAAW,EAAE,CAAC;IACjC,6DAA6D;IAClD,mBAAK,GAAW,EAAE,CAAC;AAClC,CAAC,EAPgB,aAAa,6BAAb,aAAa,QAO7B"}