scratch-blocks 2.0.2 → 2.0.4

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 (275) hide show
  1. package/.nvmrc +1 -1
  2. package/commitlint.config.js +2 -2
  3. package/dist/main.mjs +1 -2
  4. package/dist/types/msg/scratch_msgs.d.ts.map +1 -1
  5. package/dist/types/src/block_reporting.d.ts.map +1 -1
  6. package/dist/types/src/blocks/colour.d.ts +0 -19
  7. package/dist/types/src/blocks/colour.d.ts.map +1 -1
  8. package/dist/types/src/blocks/control.d.ts +0 -19
  9. package/dist/types/src/blocks/control.d.ts.map +1 -1
  10. package/dist/types/src/blocks/data.d.ts +0 -19
  11. package/dist/types/src/blocks/data.d.ts.map +1 -1
  12. package/dist/types/src/blocks/event.d.ts +0 -19
  13. package/dist/types/src/blocks/event.d.ts.map +1 -1
  14. package/dist/types/src/blocks/looks.d.ts +0 -19
  15. package/dist/types/src/blocks/looks.d.ts.map +1 -1
  16. package/dist/types/src/blocks/math.d.ts +0 -19
  17. package/dist/types/src/blocks/math.d.ts.map +1 -1
  18. package/dist/types/src/blocks/matrix.d.ts +0 -19
  19. package/dist/types/src/blocks/matrix.d.ts.map +1 -1
  20. package/dist/types/src/blocks/motion.d.ts +0 -19
  21. package/dist/types/src/blocks/motion.d.ts.map +1 -1
  22. package/dist/types/src/blocks/note.d.ts +0 -19
  23. package/dist/types/src/blocks/note.d.ts.map +1 -1
  24. package/dist/types/src/blocks/operators.d.ts +0 -19
  25. package/dist/types/src/blocks/operators.d.ts.map +1 -1
  26. package/dist/types/src/blocks/procedures.d.ts +7 -10
  27. package/dist/types/src/blocks/procedures.d.ts.map +1 -1
  28. package/dist/types/src/blocks/sensing.d.ts +0 -19
  29. package/dist/types/src/blocks/sensing.d.ts.map +1 -1
  30. package/dist/types/src/blocks/sound.d.ts +0 -19
  31. package/dist/types/src/blocks/sound.d.ts.map +1 -1
  32. package/dist/types/src/blocks/text.d.ts +0 -19
  33. package/dist/types/src/blocks/text.d.ts.map +1 -1
  34. package/dist/types/src/blocks/vertical_extensions.d.ts +0 -19
  35. package/dist/types/src/blocks/vertical_extensions.d.ts.map +1 -1
  36. package/dist/types/src/checkable_continuous_flyout.d.ts +2 -7
  37. package/dist/types/src/checkable_continuous_flyout.d.ts.map +1 -1
  38. package/dist/types/src/checkbox_bubble.d.ts +13 -12
  39. package/dist/types/src/checkbox_bubble.d.ts.map +1 -1
  40. package/dist/types/src/colours.d.ts.map +1 -1
  41. package/dist/types/src/constants.d.ts +0 -7
  42. package/dist/types/src/constants.d.ts.map +1 -1
  43. package/dist/types/src/context_menu_items.d.ts +0 -5
  44. package/dist/types/src/context_menu_items.d.ts.map +1 -1
  45. package/dist/types/src/data_category.d.ts +2 -4
  46. package/dist/types/src/data_category.d.ts.map +1 -1
  47. package/dist/types/src/events/events_block_comment_base.d.ts +2 -3
  48. package/dist/types/src/events/events_block_comment_base.d.ts.map +1 -1
  49. package/dist/types/src/events/events_block_comment_change.d.ts +0 -5
  50. package/dist/types/src/events/events_block_comment_change.d.ts.map +1 -1
  51. package/dist/types/src/events/events_block_comment_collapse.d.ts +0 -5
  52. package/dist/types/src/events/events_block_comment_collapse.d.ts.map +1 -1
  53. package/dist/types/src/events/events_block_comment_create.d.ts +0 -5
  54. package/dist/types/src/events/events_block_comment_create.d.ts.map +1 -1
  55. package/dist/types/src/events/events_block_comment_delete.d.ts +0 -5
  56. package/dist/types/src/events/events_block_comment_delete.d.ts.map +1 -1
  57. package/dist/types/src/events/events_block_comment_move.d.ts +0 -5
  58. package/dist/types/src/events/events_block_comment_move.d.ts.map +1 -1
  59. package/dist/types/src/events/events_block_comment_resize.d.ts +0 -5
  60. package/dist/types/src/events/events_block_comment_resize.d.ts.map +1 -1
  61. package/dist/types/src/events/events_block_drag_end.d.ts +1 -2
  62. package/dist/types/src/events/events_block_drag_end.d.ts.map +1 -1
  63. package/dist/types/src/events/events_block_drag_outside.d.ts +1 -2
  64. package/dist/types/src/events/events_block_drag_outside.d.ts.map +1 -1
  65. package/dist/types/src/events/events_scratch_variable_create.d.ts +0 -5
  66. package/dist/types/src/events/events_scratch_variable_create.d.ts.map +1 -1
  67. package/dist/types/src/fields/field_colour_slider.d.ts +7 -9
  68. package/dist/types/src/fields/field_colour_slider.d.ts.map +1 -1
  69. package/dist/types/src/fields/field_matrix.d.ts +0 -19
  70. package/dist/types/src/fields/field_matrix.d.ts.map +1 -1
  71. package/dist/types/src/fields/field_note.d.ts +8 -23
  72. package/dist/types/src/fields/field_note.d.ts.map +1 -1
  73. package/dist/types/src/fields/field_textinput_removable.d.ts +2 -4
  74. package/dist/types/src/fields/field_textinput_removable.d.ts.map +1 -1
  75. package/dist/types/src/fields/field_variable_getter.d.ts +0 -19
  76. package/dist/types/src/fields/field_variable_getter.d.ts.map +1 -1
  77. package/dist/types/src/fields/field_vertical_separator.d.ts +0 -19
  78. package/dist/types/src/fields/field_vertical_separator.d.ts.map +1 -1
  79. package/dist/types/src/fields/scratch_field_angle.d.ts +0 -19
  80. package/dist/types/src/fields/scratch_field_angle.d.ts.map +1 -1
  81. package/dist/types/src/fields/scratch_field_dropdown.d.ts +0 -5
  82. package/dist/types/src/fields/scratch_field_dropdown.d.ts.map +1 -1
  83. package/dist/types/src/fields/scratch_field_number.d.ts +0 -19
  84. package/dist/types/src/fields/scratch_field_number.d.ts.map +1 -1
  85. package/dist/types/src/fields/scratch_field_variable.d.ts +4 -7
  86. package/dist/types/src/fields/scratch_field_variable.d.ts.map +1 -1
  87. package/dist/types/src/flyout_checkbox_icon.d.ts +2 -3
  88. package/dist/types/src/flyout_checkbox_icon.d.ts.map +1 -1
  89. package/dist/types/src/glows.d.ts +1 -3
  90. package/dist/types/src/glows.d.ts.map +1 -1
  91. package/dist/types/src/index.d.ts +50 -55
  92. package/dist/types/src/index.d.ts.map +1 -1
  93. package/dist/types/src/procedures.d.ts +6 -8
  94. package/dist/types/src/procedures.d.ts.map +1 -1
  95. package/dist/types/src/recyclable_block_flyout_inflater.d.ts +3 -5
  96. package/dist/types/src/recyclable_block_flyout_inflater.d.ts.map +1 -1
  97. package/dist/types/src/renderer/bowler_hat.d.ts +2 -3
  98. package/dist/types/src/renderer/bowler_hat.d.ts.map +1 -1
  99. package/dist/types/src/renderer/cat/cat_face.d.ts +6 -5
  100. package/dist/types/src/renderer/cat/cat_face.d.ts.map +1 -1
  101. package/dist/types/src/renderer/cat/constants.d.ts +2 -2
  102. package/dist/types/src/renderer/cat/constants.d.ts.map +1 -1
  103. package/dist/types/src/renderer/cat/drawer.d.ts +3 -4
  104. package/dist/types/src/renderer/cat/drawer.d.ts.map +1 -1
  105. package/dist/types/src/renderer/cat/path_object.d.ts +2 -3
  106. package/dist/types/src/renderer/cat/path_object.d.ts.map +1 -1
  107. package/dist/types/src/renderer/cat/render_info.d.ts +3 -4
  108. package/dist/types/src/renderer/cat/render_info.d.ts.map +1 -1
  109. package/dist/types/src/renderer/cat/renderer.d.ts +6 -7
  110. package/dist/types/src/renderer/cat/renderer.d.ts.map +1 -1
  111. package/dist/types/src/renderer/constants.d.ts +4 -4
  112. package/dist/types/src/renderer/constants.d.ts.map +1 -1
  113. package/dist/types/src/renderer/drawer.d.ts +5 -4
  114. package/dist/types/src/renderer/drawer.d.ts.map +1 -1
  115. package/dist/types/src/renderer/path_object.d.ts +1 -3
  116. package/dist/types/src/renderer/path_object.d.ts.map +1 -1
  117. package/dist/types/src/renderer/render_info.d.ts +3 -4
  118. package/dist/types/src/renderer/render_info.d.ts.map +1 -1
  119. package/dist/types/src/renderer/renderer.d.ts +8 -15
  120. package/dist/types/src/renderer/renderer.d.ts.map +1 -1
  121. package/dist/types/src/scratch_block_paster.d.ts +0 -5
  122. package/dist/types/src/scratch_block_paster.d.ts.map +1 -1
  123. package/dist/types/src/scratch_blocks_utils.d.ts +0 -20
  124. package/dist/types/src/scratch_blocks_utils.d.ts.map +1 -1
  125. package/dist/types/src/scratch_comment_bubble.d.ts +1 -4
  126. package/dist/types/src/scratch_comment_bubble.d.ts.map +1 -1
  127. package/dist/types/src/scratch_comment_icon.d.ts +2 -3
  128. package/dist/types/src/scratch_comment_icon.d.ts.map +1 -1
  129. package/dist/types/src/scratch_connection_checker.d.ts +0 -5
  130. package/dist/types/src/scratch_connection_checker.d.ts.map +1 -1
  131. package/dist/types/src/scratch_continuous_category.d.ts +5 -5
  132. package/dist/types/src/scratch_continuous_category.d.ts.map +1 -1
  133. package/dist/types/src/scratch_continuous_toolbox.d.ts +3 -6
  134. package/dist/types/src/scratch_continuous_toolbox.d.ts.map +1 -1
  135. package/dist/types/src/scratch_dragger.d.ts +3 -12
  136. package/dist/types/src/scratch_dragger.d.ts.map +1 -1
  137. package/dist/types/src/scratch_insertion_marker_previewer.d.ts +0 -5
  138. package/dist/types/src/scratch_insertion_marker_previewer.d.ts.map +1 -1
  139. package/dist/types/src/scratch_variable_map.d.ts +0 -5
  140. package/dist/types/src/scratch_variable_map.d.ts.map +1 -1
  141. package/dist/types/src/scratch_variable_model.d.ts +1 -2
  142. package/dist/types/src/scratch_variable_model.d.ts.map +1 -1
  143. package/dist/types/src/scratch_zoom_controls.d.ts +4 -6
  144. package/dist/types/src/scratch_zoom_controls.d.ts.map +1 -1
  145. package/dist/types/src/shadows.d.ts +2 -2
  146. package/dist/types/src/shadows.d.ts.map +1 -1
  147. package/dist/types/src/status_indicator_label.d.ts +4 -6
  148. package/dist/types/src/status_indicator_label.d.ts.map +1 -1
  149. package/dist/types/src/status_indicator_label_flyout_inflater.d.ts +1 -6
  150. package/dist/types/src/status_indicator_label_flyout_inflater.d.ts.map +1 -1
  151. package/dist/types/src/variables.d.ts +4 -8
  152. package/dist/types/src/variables.d.ts.map +1 -1
  153. package/dist/types/src/xml.d.ts +2 -3
  154. package/dist/types/src/xml.d.ts.map +1 -1
  155. package/dist/types/tests/jsunit/block_test.d.ts.map +1 -1
  156. package/dist/types/tests/jsunit/connection_db_test.d.ts.map +1 -1
  157. package/dist/types/tests/jsunit/connection_test.d.ts.map +1 -1
  158. package/dist/types/tests/jsunit/event_test.d.ts.map +1 -1
  159. package/dist/types/tests/jsunit/extensions_test.d.ts.map +1 -1
  160. package/dist/types/tests/jsunit/field_number_test.d.ts.map +1 -1
  161. package/dist/types/tests/jsunit/field_test.d.ts.map +1 -1
  162. package/dist/types/tests/jsunit/field_variable_getter_test.d.ts.map +1 -1
  163. package/dist/types/tests/jsunit/field_variable_test.d.ts.map +1 -1
  164. package/dist/types/tests/jsunit/gesture_test.d.ts.map +1 -1
  165. package/dist/types/tests/jsunit/input_test.d.ts +1 -0
  166. package/dist/types/tests/jsunit/input_test.d.ts.map +1 -1
  167. package/dist/types/tests/jsunit/json_test.d.ts.map +1 -1
  168. package/dist/types/tests/jsunit/names_test.d.ts.map +1 -1
  169. package/dist/types/tests/jsunit/procedure_test.d.ts.map +1 -1
  170. package/dist/types/tests/jsunit/scratch_block_comment_test.d.ts.map +1 -1
  171. package/dist/types/tests/jsunit/svg_test.d.ts.map +1 -1
  172. package/dist/types/tests/jsunit/test_utilities.d.ts.map +1 -1
  173. package/dist/types/tests/jsunit/utils_test.d.ts.map +1 -1
  174. package/dist/types/tests/jsunit/variable_map_test.d.ts.map +1 -1
  175. package/dist/types/tests/jsunit/variable_model_test.d.ts.map +1 -1
  176. package/dist/types/tests/jsunit/widget_div_test.d.ts.map +1 -1
  177. package/dist/types/tests/jsunit/workspace_comment_test.d.ts.map +1 -1
  178. package/dist/types/tests/jsunit/workspace_test.d.ts.map +1 -1
  179. package/dist/types/tests/jsunit/workspace_undo_redo_test.d.ts.map +1 -1
  180. package/dist/types/tests/jsunit/xml_test.d.ts.map +1 -1
  181. package/dist/types/tests/workspace_svg/workspace_svg_test.d.ts.map +1 -1
  182. package/eslint.config.mjs +69 -0
  183. package/i18n/create_scratch_msgs.js +44 -45
  184. package/i18n/js_to_json.js +40 -32
  185. package/i18n/json_to_js.js +37 -37
  186. package/i18n/sync_tx_translations.js +64 -65
  187. package/i18n/test_scratch_msgs.js +66 -63
  188. package/msg/js/en.js +289 -287
  189. package/msg/json/en.json +284 -284
  190. package/msg/messages.js +289 -287
  191. package/msg/scratch_msgs.js +22959 -22970
  192. package/package.json +13 -10
  193. package/prettier.config.mjs +3 -0
  194. package/release.config.js +7 -7
  195. package/renovate.json5 +7 -9
  196. package/src/block_reporting.ts +15 -18
  197. package/src/blocks/colour.ts +12 -15
  198. package/src/blocks/control.ts +167 -177
  199. package/src/blocks/data.ts +225 -292
  200. package/src/blocks/event.ts +121 -123
  201. package/src/blocks/looks.ts +165 -167
  202. package/src/blocks/math.ts +44 -46
  203. package/src/blocks/matrix.ts +11 -13
  204. package/src/blocks/motion.ts +151 -153
  205. package/src/blocks/note.ts +11 -13
  206. package/src/blocks/operators.ts +158 -160
  207. package/src/blocks/procedures.ts +488 -536
  208. package/src/blocks/sensing.ts +163 -165
  209. package/src/blocks/sound.ts +58 -60
  210. package/src/blocks/text.ts +10 -12
  211. package/src/blocks/vertical_extensions.ts +86 -102
  212. package/src/checkable_continuous_flyout.ts +25 -42
  213. package/src/checkbox_bubble.ts +83 -100
  214. package/src/colours.ts +35 -37
  215. package/src/constants.ts +22 -29
  216. package/src/context_menu_items.ts +56 -81
  217. package/src/css.ts +3 -4
  218. package/src/data_category.ts +136 -250
  219. package/src/events/events_block_comment_base.ts +21 -31
  220. package/src/events/events_block_comment_change.ts +21 -42
  221. package/src/events/events_block_comment_collapse.ts +22 -43
  222. package/src/events/events_block_comment_create.ts +29 -46
  223. package/src/events/events_block_comment_delete.ts +10 -19
  224. package/src/events/events_block_comment_move.ts +27 -52
  225. package/src/events/events_block_comment_resize.ts +28 -55
  226. package/src/events/events_block_drag_end.ts +16 -26
  227. package/src/events/events_block_drag_outside.ts +12 -22
  228. package/src/events/events_scratch_variable_create.ts +33 -56
  229. package/src/fields/field_colour_slider.ts +173 -228
  230. package/src/fields/field_matrix.ts +200 -269
  231. package/src/fields/field_note.ts +272 -377
  232. package/src/fields/field_textinput_removable.ts +25 -40
  233. package/src/fields/field_variable_getter.ts +26 -31
  234. package/src/fields/field_vertical_separator.ts +19 -24
  235. package/src/fields/scratch_field_angle.ts +150 -186
  236. package/src/fields/scratch_field_dropdown.ts +15 -19
  237. package/src/fields/scratch_field_number.ts +123 -180
  238. package/src/fields/scratch_field_variable.ts +52 -73
  239. package/src/flyout_checkbox_icon.ts +18 -28
  240. package/src/glows.ts +51 -58
  241. package/src/index.ts +119 -133
  242. package/src/procedures.ts +144 -211
  243. package/src/recyclable_block_flyout_inflater.ts +14 -25
  244. package/src/renderer/bowler_hat.ts +6 -8
  245. package/src/renderer/cat/cat_face.ts +98 -99
  246. package/src/renderer/cat/constants.ts +67 -87
  247. package/src/renderer/cat/drawer.ts +21 -27
  248. package/src/renderer/cat/path_object.ts +3 -5
  249. package/src/renderer/cat/render_info.ts +5 -8
  250. package/src/renderer/cat/renderer.ts +11 -15
  251. package/src/renderer/constants.ts +34 -49
  252. package/src/renderer/drawer.ts +35 -51
  253. package/src/renderer/path_object.ts +13 -15
  254. package/src/renderer/render_info.ts +36 -56
  255. package/src/renderer/renderer.ts +16 -29
  256. package/src/scratch_block_paster.ts +12 -20
  257. package/src/scratch_blocks_utils.ts +4 -7
  258. package/src/scratch_comment_bubble.ts +70 -101
  259. package/src/scratch_comment_icon.ts +74 -123
  260. package/src/scratch_connection_checker.ts +22 -17
  261. package/src/scratch_continuous_category.ts +24 -28
  262. package/src/scratch_continuous_toolbox.ts +20 -27
  263. package/src/scratch_dragger.ts +54 -86
  264. package/src/scratch_insertion_marker_previewer.ts +6 -11
  265. package/src/scratch_variable_map.ts +5 -12
  266. package/src/scratch_variable_model.ts +4 -11
  267. package/src/scratch_zoom_controls.ts +101 -156
  268. package/src/shadows.ts +32 -37
  269. package/src/status_indicator_label.ts +54 -67
  270. package/src/status_indicator_label_flyout_inflater.ts +11 -21
  271. package/src/variables.ts +89 -138
  272. package/src/xml.ts +21 -35
  273. package/tsconfig.json +2 -6
  274. package/types/continuous-toolbox.d.ts +1 -1
  275. package/dist/main.mjs.LICENSE.txt +0 -163
@@ -1,5 +1,4 @@
1
1
  /**
2
- * @license
3
2
  * Visual Blocks Editor
4
3
  *
5
4
  * Copyright 2018 Google Inc.
@@ -18,11 +17,11 @@
18
17
  * limitations under the License.
19
18
  */
20
19
  /**
21
- * @fileoverview Class for a category header in the flyout for Scratch
20
+ * @file Class for a category header in the flyout for Scratch
22
21
  * extensions which can display a textual label and a status button.
23
22
  * @author ericr@media.mit.edu (Eric Rosenbaum)
24
23
  */
25
- import * as Blockly from "blockly/core";
24
+ import * as Blockly from 'blockly/core';
26
25
  /**
27
26
  * Class for a category header in the flyout for Scratch extensions which can
28
27
  * display a textual label and a status button.
@@ -46,7 +45,6 @@ export declare class StatusIndicatorLabel extends Blockly.FlyoutButton {
46
45
  static statusButtonCallback: (extensionId: string) => void;
47
46
  /**
48
47
  * Creates a new StatusIndicatorLabel.
49
- *
50
48
  * @param workspace The workspace in which to place this header.
51
49
  * @param targetWorkspace The flyout's target workspace.
52
50
  * @param json The JSON specifying the header.
@@ -64,8 +62,8 @@ export declare class StatusIndicatorLabel extends Blockly.FlyoutButton {
64
62
  setImageSrc(src: string): void;
65
63
  /**
66
64
  * Gets the extension state. Overridden externally.
67
- * @param extensionId The ID of the extension in question.
68
- * @return The state of the extension.
65
+ * @param extensionId A string identifying which extension's state to retrieve.
66
+ * @returns Whether the extension is ready to be used.
69
67
  */
70
68
  getExtensionState(extensionId: string): StatusButtonState;
71
69
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"status_indicator_label.d.ts","sourceRoot":"","sources":["../../../src/status_indicator_label.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;;GAIG;AAEH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAExC;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,OAAO,CAAC,YAAY;IAC5D;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,YAAY,EAAE,eAAe,CAAC;IAE9B;;OAEG;IACH,cAAc,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;IAE3C;;OAEG;IACH,MAAM,CAAC,oBAAoB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAE3D;;;;;;OAMG;gBAED,SAAS,EAAE,OAAO,CAAC,YAAY,EAC/B,eAAe,EAAE,OAAO,CAAC,YAAY,EACrC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS;IAyDvC;;OAEG;IACH,aAAa;IAWb;;;;OAIG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM;IAUvB;;;;OAIG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB;IAIzD;;OAEG;IACH,OAAO;CAIR;AAED;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,KAAK,UAAU;IACf,SAAS,cAAc;CACxB"}
1
+ {"version":3,"file":"status_indicator_label.d.ts","sourceRoot":"","sources":["../../../src/status_indicator_label.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH;;;;GAIG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,OAAO,CAAC,YAAY;IAC5D;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,YAAY,EAAE,eAAe,CAAA;IAE7B;;OAEG;IACH,cAAc,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI,CAAA;IAE1C;;OAEG;IACH,MAAM,CAAC,oBAAoB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAA;IAE1D;;;;;OAKG;gBAED,SAAS,EAAE,OAAO,CAAC,YAAY,EAC/B,eAAe,EAAE,OAAO,CAAC,YAAY,EACrC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS;IAoDvC;;OAEG;IACH,aAAa;IAWb;;;;OAIG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM;IAMvB;;;;OAIG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB;IAIzD;;OAEG;IACH,OAAO;CAIR;AAED;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,KAAK,UAAU;IACf,SAAS,cAAc;CACxB"}
@@ -1,11 +1,6 @@
1
- /**
2
- * @license
3
- * Copyright 2024 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
1
  export declare const STATUS_INDICATOR_LABEL_TYPE = "status_indicator_label";
7
2
  /**
8
- * Register the status indicator label flyout inflater.
3
+ * Adds the status indicator label flyout inflater to the Blockly component registry.
9
4
  */
10
5
  export declare function registerStatusIndicatorLabelFlyoutInflater(): void;
11
6
  //# sourceMappingURL=status_indicator_label_flyout_inflater.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"status_indicator_label_flyout_inflater.d.ts","sourceRoot":"","sources":["../../../src/status_indicator_label_flyout_inflater.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,eAAO,MAAM,2BAA2B,2BAA2B,CAAC;AA2BpE;;GAEG;AACH,wBAAgB,0CAA0C,SAMzD"}
1
+ {"version":3,"file":"status_indicator_label_flyout_inflater.d.ts","sourceRoot":"","sources":["../../../src/status_indicator_label_flyout_inflater.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,2BAA2B,2BAA2B,CAAA;AAmBnE;;GAEG;AACH,wBAAgB,0CAA0C,SAMzD"}
@@ -1,5 +1,4 @@
1
1
  /**
2
- * @license
3
2
  * Visual Blocks Editor
4
3
  *
5
4
  * Copyright 2012 Google Inc.
@@ -18,24 +17,22 @@
18
17
  * limitations under the License.
19
18
  */
20
19
  /**
21
- * @fileoverview Utility functions for handling variables.
20
+ * @file Utility functions for handling variables.
22
21
  * @author fraser@google.com (Neil Fraser)
23
22
  */
24
- import * as Blockly from "blockly/core";
25
- import { ScratchVariableModel } from "./scratch_variable_model";
23
+ import * as Blockly from 'blockly/core';
24
+ import { ScratchVariableModel } from './scratch_variable_model';
26
25
  type PromptType = (message: string, defaultValue: string, callback: (variableName: string, additionalVars: string[], variableOptions?: {
27
26
  scope?: string;
28
27
  isCloud?: boolean;
29
28
  }) => void, title?: string, varType?: string) => void;
30
29
  /**
31
30
  * Sets the handler for calls to prompt().
32
- *
33
31
  * @param handler The new prompt function.
34
32
  */
35
33
  export declare function setPromptHandler(handler: PromptType): void;
36
34
  /**
37
35
  * Create a new variable on the given workspace.
38
- *
39
36
  * @param workspace The workspace on which to create the variable.
40
37
  * @param opt_callback An optional callback function to act on the id of the
41
38
  * variable that is created from the user's input, or null if the change is
@@ -46,7 +43,6 @@ export declare function setPromptHandler(handler: PromptType): void;
46
43
  export declare function createVariable(workspace: Blockly.WorkspaceSvg, opt_callback?: (id?: string) => void, opt_type?: string): void;
47
44
  /**
48
45
  * Rename a variable with the given workspace, variableType, and oldName.
49
- *
50
46
  * @param workspace The workspace on which to rename the variable.
51
47
  * @param variable Variable to rename.
52
48
  * @param opt_callback A callback. It will be passed an acceptable new variable
@@ -54,5 +50,5 @@ export declare function createVariable(workspace: Blockly.WorkspaceSvg, opt_call
54
50
  * an existing variable was chosen.
55
51
  */
56
52
  export declare function renameVariable(workspace: Blockly.WorkspaceSvg, variable: ScratchVariableModel, opt_callback?: (id?: string) => void): void;
57
- export { getVariablesCategory } from "./data_category";
53
+ export { getVariablesCategory } from './data_category';
58
54
  //# sourceMappingURL=variables.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"variables.d.ts","sourceRoot":"","sources":["../../../src/variables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;GAGG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAKxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAWhE,KAAK,UAAU,GAAG,CAChB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,CACR,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EAAE,EACxB,eAAe,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,KACpD,IAAI,EACT,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,KACb,IAAI,CAAC;AAIV;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,QAEnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,OAAO,CAAC,YAAY,EAC/B,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,EACpC,QAAQ,CAAC,EAAE,MAAM,QAuFlB;AAgJD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,OAAO,CAAC,YAAY,EAC/B,QAAQ,EAAE,oBAAoB,EAC9B,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,QA+DrC;AAED,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"variables.d.ts","sourceRoot":"","sources":["../../../src/variables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH;;;GAGG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAIvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAS/D,KAAK,UAAU,GAAG,CAChB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,CACR,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EAAE,EACxB,eAAe,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,KACpD,IAAI,EACT,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,KACb,IAAI,CAAA;AAIT;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,QAEnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,OAAO,CAAC,YAAY,EAC/B,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,EACpC,QAAQ,CAAC,EAAE,MAAM,QAiElB;AAsID;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,OAAO,CAAC,YAAY,EAC/B,QAAQ,EAAE,oBAAoB,EAC9B,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,QAsDrC;AAED,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA"}
@@ -1,14 +1,13 @@
1
1
  /**
2
- * @license
3
2
  * Copyright 2025 Google LLC
4
3
  * SPDX-License-Identifier: Apache-2.0
5
4
  */
6
- import * as Blockly from "blockly/core";
5
+ import * as Blockly from 'blockly/core';
7
6
  /**
8
7
  * Clears the workspace and loads the given serialized state.
9
- *
10
8
  * @param xml XML representation of a Blockly workspace.
11
9
  * @param workspace The workspace to load the serialized data onto.
10
+ * @returns An array of variable IDs created during loading.
12
11
  */
13
12
  export declare function clearWorkspaceAndLoadFromXml(xml: Element, workspace: Blockly.WorkspaceSvg): string[];
14
13
  //# sourceMappingURL=xml.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"xml.d.ts","sourceRoot":"","sources":["../../../src/xml.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAGxC;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,OAAO,CAAC,YAAY,GAC9B,MAAM,EAAE,CAsCV"}
1
+ {"version":3,"file":"xml.d.ts","sourceRoot":"","sources":["../../../src/xml.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAGvC;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,YAAY,GAAG,MAAM,EAAE,CA6BpG"}
@@ -1 +1 @@
1
- {"version":3,"file":"block_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/block_test.js"],"names":[],"mappings":"AAqBA,wDAoBC;AAED,qDAyBC;AAED,8CAmCC"}
1
+ {"version":3,"file":"block_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/block_test.js"],"names":[],"mappings":"AAqBA,wDAsBC;AAED,qDA+BC;AAED,8CAmCC"}
@@ -1 +1 @@
1
- {"version":3,"file":"connection_db_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/connection_db_test.js"],"names":[],"mappings":"AAqBA,oEAeC;AAED,+CA0BC;AAED,kDAuCC;AAED,+CA6CC;;AAED,2DAiBC;AAED,gDAgBC;AAED,0CAkCC;AAED,+CAyCC;AAGD,iFAIC;;AAED,mGAOC;AAED;;;;;;;;;EAUC;AAED,uHAWC"}
1
+ {"version":3,"file":"connection_db_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/connection_db_test.js"],"names":[],"mappings":"AAqBA,oEAeC;AAED,+CAqBC;AAED,kDAiCC;AAED,+CA2CC;;AAED,2DAWC;AAED,gDAaC;AAED,0CA8BC;AAED,+CAoCC;AAED,iFAEC;;AAED,mGAMC;AAED;;;;;;;;;EAqBC;AAED,uHAUC"}
@@ -1 +1 @@
1
- {"version":3,"file":"connection_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/connection_test.js"],"names":[],"mappings":"AAiCA,8CAgBC;AAED,iDAMC;AAGD;;;GAGG;AACH,6DAOC;AAED,6DAUC;AAED,sEAWC;AAGD,uDASC;AAED,uDAwBC;AAED,6DAaC;AAED;;;GAGG;AACH,kDAYC;AAED,2DAUC;AAED,2DAUC;AAED,4DAUC;AAED,2DAUC;AAED,4DAUC;AAED,2DAUC;AAED,4DAUC;AAED,2DAgBC;AAED,6DAwBC;AAED,yDAmBC;AAED,kEAgBC;AAED,kDAQC;AAED,6EAkBC;AAED,mEAgBC;AAED,6EAmBC;AAzXD,uBAAU;AACV,wBAAW;AACX,0BAAa;AACb,sBAAS;AAET,gCAAmB;AA4BnB,wCAA6C"}
1
+ {"version":3,"file":"connection_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/connection_test.js"],"names":[],"mappings":"AAiCA,8CAcC;AAED,iDAMC;AAKD;;;GAGG;AACH,6DAMC;AAED,6DAWC;AAED,sEASC;AAED,uDAQC;AAED,uDAgBC;AAED,6DASC;AAED;;;GAGG;AACH,kDAYC;AAED,2DAUC;AAED,2DAUC;AAED,4DAUC;AAED,2DAUC;AAED,4DAUC;AAED,2DAUC;AAED,4DAUC;AAED,2DAcC;AAED,6DAuBC;AAED,yDAmBC;AAED,kEAcC;AAED,kDAQC;AAED,6EAiBC;AAED,mEAeC;AAED,6EAkBC;AAjWD,uBAAS;AACT,wBAAU;AACV,0BAAY;AACZ,sBAAQ;AAER,gCAAkB;AA0BlB,wCAEC"}
@@ -1 +1 @@
1
- {"version":3,"file":"event_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/event_test.js"],"names":[],"mappings":"AAgCA,yCAGC;AAED,uDAkBC;AAED,4CAKC;AAED,0DAGC;AAED,qDAcC;AAED,mDAaC;AAED,mDAWC;AAGD,2FAMC;AAGD,2FAMC;AAGD,sEAKC;AAGD,4DAOC;AAED,iDAWC;AAED,sDAYC;AAED,iDAUC;AAED,sDAUC;AAED,iDAcC;AAED,sDAeC;AAED,yDAmBC;AAED,0DAiBC;AAED,8DAkBC;AAED,+DAiBC;AAED,uDAmBC;AAED,wDAuBC;AAED,oDAUC;AAED,+CA8BC;AAED,iDAaC;AAED,mDASC;AAED,qDAQC;AAED,oDAOC;AAED,+CA0BC;AAED,iDAUC;AAED,oDAQC;AAED,qDASC;AAED,oDAOC;AAED,+CAUC;AAED,iDAUC;AAED,mDAQC;AAED,oDAQC;AAED,4CAoBC;AAED,mDAoBC;AAED,oDAoBC;AAED,2DAaC;AAED,+CAWC;AAED,iDAYC;AAED,6CAmBC;AAED;;;GAGG;AACH,gDAaC;AAED;;;;;;;;GAQG;AACH,sDAYC;AAED;;;;;;;GAOG;AACH,6CALY,KAAK,CAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAC/B,OAAO,CAAC,KAAK,QACd,MAAM,QACN,MAAM,QAMhB;AAED,uFAIC;AAED,qDAiCC;AAID,yDAkCC;AAED,yDA4BC;AAxzBD,8BAAiB;AACjB,2BAAc"}
1
+ {"version":3,"file":"event_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/event_test.js"],"names":[],"mappings":"AAgCA,yCAGC;AAED,uDAoBC;AAED,4CAKC;AAED,0DAGC;AAED,qDAaC;AAED,mDAYC;AAED,mDAWC;AAGD,2FAMC;AAGD,2FAMC;AAGD,sEAKC;AAGD,4DAOC;AAED,iDAWC;AAED,sDAYC;AAED,iDAUC;AAED,sDAUC;AAED,iDAaC;AAED,sDAaC;AAED,yDAkBC;AAED,0DAgBC;AAED,8DAkBC;AAED,+DAgBC;AAED,uDAiBC;AAED,wDAqBC;AAED,oDASC;AAED,+CA+CC;AAED,iDAaC;AAED,mDAQC;AAED,qDAQC;AAED,oDAMC;AAED,+CA4CC;AAED,iDAUC;AAED,oDAQC;AAED,qDAQC;AAED,oDAMC;AAED,+CASC;AAED,iDAUC;AAED,mDAQC;AAED,oDAQC;AAED,4CAoBC;AAED,mDAkBC;AAED,oDAkBC;AAED,2DAaC;AAED,+CAWC;AAED,iDAYC;AAED,6CAmBC;AAED;;;GAGG;AACH,gDAaC;AAED;;;;;;;;GAQG;AACH,sDAYC;AAED;;;;;;;GAOG;AACH,6CALY,KAAK,CAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAC/B,OAAO,CAAC,KAAK,QACd,MAAM,QACN,MAAM,QAMhB;AAED,uFAIC;AAED,qDAiCC;AAID,yDAmCC;AAED,yDA4BC;AAx0BD,8BAAgB;AAChB,2BAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"extensions_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/extensions_test.js"],"names":[],"mappings":"AA0BA,wCA8CC;AAED,gDAsBC;AAED,uDAoCC;AAED,yDA6DC;AAED,8CAkCC;AAED,+DAmCC;AAED,6DAmCC;AAED,4CA6CC;AAED,sDAwCC;AAGD,+DAsBC;AAED,6DAsBC;AAED,mEAsBC;AAED,mEAsBC;AAED,6DAyCC;AAED,mEAyCC;AAED,6DAmCC;AAED,0DAwCC"}
1
+ {"version":3,"file":"extensions_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/extensions_test.js"],"names":[],"mappings":"AA0BA,wCAgDC;AAED,gDAwBC;AAED,uDAoCC;AAED,yDA6DC;AAED,8CAoCC;AAED,+DAqCC;AAED,6DAqCC;AAED,4CA8CC;AAED,sDAyCC;AAGD,+DAqBC;AAED,6DAqBC;AAED,mEAqBC;AAED,mEAqBC;AAED,6DA0CC;AAED,mEA0CC;AAED,6DAqCC;AAED,0DA2CC"}
@@ -1 +1 @@
1
- {"version":3,"file":"field_number_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/field_number_test.js"],"names":[],"mappings":"AA0BA,sDAwCC;AAED,mDAaC"}
1
+ {"version":3,"file":"field_number_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/field_number_test.js"],"names":[],"mappings":"AA0BA,sDAoCC;AAED,mDAaC"}
@@ -1 +1 @@
1
- {"version":3,"file":"field_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/field_test.js"],"names":[],"mappings":"AA0BA,sDAMC;AAED,qDAMC;AAED,6DAYC;AAED,mEAaC;AAED,gEAYC;AAED,sEAaC;AAED,+DAyBC"}
1
+ {"version":3,"file":"field_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/field_test.js"],"names":[],"mappings":"AA0BA,sDAKC;AAED,qDAKC;AAED,6DAWC;AAED,mEAYC;AAED,gEAWC;AAED,sEAYC;AAED,+DAyBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"field_variable_getter_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/field_variable_getter_test.js"],"names":[],"mappings":"AA0BA,8DAKC;AAED,6DAMC;AAED,kEAcC;AAED,iEAKC"}
1
+ {"version":3,"file":"field_variable_getter_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/field_variable_getter_test.js"],"names":[],"mappings":"AA0BA,8DAKC;AAED,6DAKC;AAED,kEAaC;AAED,iEAIC"}
@@ -1 +1 @@
1
- {"version":3,"file":"field_variable_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/field_variable_test.js"],"names":[],"mappings":"AAgCA,0DAGC;AAED,6DAGC;AAED;;;EAEC;AAED,uEAOC;AAED,wDAMC;AAED,4DAgBC;AAED,+DAkBC;AAED,yEAgBC;AAED,yDAeC;AAED,oFAWC;AAED,gFAYC;AAED,+EAiBC;AAED,oFAmBC;AA5KD,2BAAc;AACd,8BAAiB"}
1
+ {"version":3,"file":"field_variable_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/field_variable_test.js"],"names":[],"mappings":"AAgCA,0DAGC;AAED,6DAGC;AAED;;;EAOC;AAED,uEAOC;AAED,wDAMC;AAED,4DAeC;AAED,+DAkBC;AAED,yEAeC;AAED,yDAcC;AAED,oFAWC;AAED,gFAWC;AAED,+EAiBC;AAED,oFAmBC;AA7KD,2BAAa;AACb,8BAAgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"gesture_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/gesture_test.js"],"names":[],"mappings":"AA8BA,2CAGC;AAED,8CAGC;AAED,iDAIC;AAED,8DAWC;AAED,4FAeC;AAED,kEAKC;AAED,mEAMC;AA/DD,mBAAM;AACN,2BAAc"}
1
+ {"version":3,"file":"gesture_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/gesture_test.js"],"names":[],"mappings":"AA6BA,2CAGC;AAED,8CAGC;AAED,iDAIC;AAED,8DAWC;AAED,4FAeC;AAED,kEAKC;AAED,mEAMC;AA9DD,mBAAK;AACL,2BAAa"}
@@ -5,4 +5,5 @@ declare function test_appendField_suffix(): void;
5
5
  declare function test_insertFieldAt_simple(): void;
6
6
  declare function test_insertFieldAt_string(): void;
7
7
  declare function test_insertFieldAt_prefix(): void;
8
+ declare function test_insertFieldAt_suffix(): void;
8
9
  //# sourceMappingURL=input_test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"input_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/input_test.js"],"names":[],"mappings":"AAyBA,iDAsBC;AAED,iDAeC;AAED,iDAgBC;AAED,iDAgBC;AAED,mDAsBC;AAED,mDAuBC;AAED,mDAwBC"}
1
+ {"version":3,"file":"input_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/input_test.js"],"names":[],"mappings":"AAyBA,iDAsBC;AAED,iDAeC;AAED,iDAgBC;AAED,iDAgBC;AAED,mDAsBC;AAED,mDAuBC;AAED,mDAwBC;AAED,mDAwBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"json_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/json_test.js"],"names":[],"mappings":"AAqBA,mEAAmE;AACnE,2CAkBC;AAED,0CAA0C;AAC1C,4CAuBC;AAED,6CAA6C;AAC7C,4CA+BC;AAED,+CAA+C;AAC/C,iDA2BC;AAED,4CA4CC;AAED,kDAgFC"}
1
+ {"version":3,"file":"json_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/json_test.js"],"names":[],"mappings":"AAqBA,mEAAmE;AACnE,2CAoBC;AAED,0CAA0C;AAC1C,4CAyBC;AAED,6CAA6C;AAC7C,4CAiCC;AAED,+CAA+C;AAC/C,iDA6BC;AAED,4CA8CC;AAED,kDAkFC"}
@@ -1 +1 @@
1
- {"version":3,"file":"names_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/names_test.js"],"names":[],"mappings":"AAqBA,uCASC;AAED,sCAUC;AAED,8CAWC;AAED,yCAIC"}
1
+ {"version":3,"file":"names_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/names_test.js"],"names":[],"mappings":"AAqBA,uCAQC;AAED,sCAUC;AAED,8CAOC;AAED,yCAIC"}
@@ -1 +1 @@
1
- {"version":3,"file":"procedure_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/procedure_test.js"],"names":[],"mappings":"AA2BA,6CAoCC;AAED,gDAMC;AAED,2DAmBC;AAED,sDAsBC;AAED,yDAuBC;AAED,2DAkBC;AAED,wDAoBC;AAED,2DA0BC;AAED,yDAqBC;AAED,0DAwBC;AAED,wDAsBC;AAED,8DA6BC;AAED,iEAuBC;AA5TD,2BAAc"}
1
+ {"version":3,"file":"procedure_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/procedure_test.js"],"names":[],"mappings":"AA2BA,6CAqCC;AAED,gDAMC;AAED,2DAmBC;AAED,sDAsBC;AAED,yDAuBC;AAED,2DAiBC;AAED,wDAoBC;AAED,2DA0BC;AAED,yDAqBC;AAED,0DAyBC;AAED,wDAsBC;AAED,8DA6BC;AAED,iEAuBC;AA7TD,2BAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"scratch_block_comment_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/scratch_block_comment_test.js"],"names":[],"mappings":"AA2BA,uDAeC;AAED,0DAMC;AAED,uDAUC;AAED,iEAUC;AAED,6DAUC;AAED,gDAWC;AAED,iEAeC;AAED,oEAoBC;AAED,gEAiBC;AAED,iEAiBC;AAzJD,uBAAU;AACV,2BAAc;AACd,oCAAgE"}
1
+ {"version":3,"file":"scratch_block_comment_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/scratch_block_comment_test.js"],"names":[],"mappings":"AA2BA,uDAiBC;AAED,0DAMC;AAED,uDAUC;AAED,iEAUC;AAED,6DAUC;AAED,gDAWC;AAED,iEAeC;AAED,oEAmBC;AAED,gEAgBC;AAED,iEAgBC;AAxJD,uBAAS;AACT,2BAAa;AACb,oCAA+D"}
@@ -1 +1 @@
1
- {"version":3,"file":"svg_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/svg_test.js"],"names":[],"mappings":"AAuBA,uCAGC;AAED,0CAGC;AAED;;;GAGG;AACH,6CAFa,OAAO,CAAC,KAAK,CAqBzB;AAED;;;GAGG;AACH,6CAFa,OAAO,CAAC,KAAK,CAqBzB;AA5DD,mCAAsB"}
1
+ {"version":3,"file":"svg_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/svg_test.js"],"names":[],"mappings":"AAuBA,uCAEC;AAED,0CAGC;AAED;;;GAGG;AACH,6CAFa,OAAO,CAAC,KAAK,CAqBzB;AAED;;;GAGG;AACH,6CAFa,OAAO,CAAC,KAAK,CAqBzB;AA3DD,mCAAqB"}
@@ -1 +1 @@
1
- {"version":3,"file":"test_utilities.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/test_utilities.js"],"names":[],"mappings":"AAmCA;;GAEG;AACH,uDAMC;;AAED;;;;GAIG;AACH,uCAHY,KAAK,CAAE,MAAM,CAAC,UACd,KAAK,CAAE,MAAM,CAAC,QAOzB;AAED;;;;;;;;;;GAUG;AACH,8CARY,IAAI,CAAC,OAAO,CAAC,WAAW,SAExB,MAAM,YACP,MAAO,cACP,KAAK,CAAC,MAAM,CAAC,iBACb,KAAK,CAAE,MAAM,CAAC,GACZ,IAAI,CAAC,OAAO,CAAC,aAAa,CAwBtC;AAED;;;;;;;GAOG;AACH,gDANW,OAAO,CAAC,SAAS,GAAC,OAAO,CAAC,WAAW,QAErC,MAAO,QACP,MAAO,MACP,MAAO,QAQjB;AAED;;;;;;GAMG;AACH,8CAHW,MAAO,GACL,OAAO,CAAC,KAAK,CAYzB;AAED,mEAOC;AAED,8DAGC;AAED,2CAYC;AAED,6CAEC;AAjID;;;GAGG;AACH,+BAAwC"}
1
+ {"version":3,"file":"test_utilities.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/test_utilities.js"],"names":[],"mappings":"AAkCA;;GAEG;AACH,uDAMC;;AAED;;;;GAIG;AACH,uCAHY,KAAK,CAAE,MAAM,CAAC,UACd,KAAK,CAAE,MAAM,CAAC,QAOzB;AAED;;;;;;;;;;GAUG;AACH,8CARY,IAAI,CAAC,OAAO,CAAC,WAAW,SAExB,MAAM,YACP,MAAO,cACP,KAAK,CAAC,MAAM,CAAC,iBACb,KAAK,CAAE,MAAM,CAAC,GACZ,IAAI,CAAC,OAAO,CAAC,aAAa,CAsBtC;AAED;;;;;;;GAOG;AACH,gDANW,OAAO,CAAC,SAAS,GAAC,OAAO,CAAC,WAAW,QAErC,MAAO,QACP,MAAO,MACP,MAAO,QAQjB;AAED;;;;;;GAMG;AACH,8CAHW,MAAO,GACL,OAAO,CAAC,KAAK,CAYzB;AAED,mEAOC;AAED,8DAGC;AAED,2CAcC;AAED,6CAEC;AAjID;;;GAGG;AACH,+BAAuC"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/utils_test.js"],"names":[],"mappings":"AAqBA,qCAOC;AAED,uCAYC;AAED,uCAQE;AAEF,0CAeC;AAED,mDASC;AAED,+CAqBC;AAED,+CAiBC;AAED,oDAiEC;AAED,uDA0BC"}
1
+ {"version":3,"file":"utils_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/utils_test.js"],"names":[],"mappings":"AAqBA,qCAOC;AAED,uCAYC;AAED,uCAQC;AAED,0CAeC;AAED,mDASC;AAED,+CAqBC;AAED,+CAiBC;AAED,oDAiEC;AAED,uDA0BC"}
@@ -1 +1 @@
1
- {"version":3,"file":"variable_map_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/variable_map_test.js"],"names":[],"mappings":"AAiCA,+CAIC;AAED,kDAIC;AAED,wDAmBC;AAED,mDAKC;AAED,sDAaC;AAED,uDAKC;AAED,oDAKC;AAED,0DAmBC;AAED,8DAmBC;AACD,iEAQC;AAED,mDAUC;AAED,wDAUC;AAED,4DAUC;AAED,gEAgBC;AAED,yDAQC;AAED,yDAWC;AAED,sDASC;AAED,6DAOC;AAED,yDAOC;AAED,8DAKC;AAED,uDAUC;AAED,oDAMC;AAED,sDAQC;AAED,mDAKC;AAhRD,8BAAiB;AACjB,8BAAiB;AACjB,2BAAc"}
1
+ {"version":3,"file":"variable_map_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/variable_map_test.js"],"names":[],"mappings":"AAiCA,+CAIC;AAED,kDAIC;AAED,wDAmBC;AAED,mDAKC;AAED,sDAaC;AAED,uDAKC;AAED,oDAKC;AAED,0DAmBC;AAED,8DAmBC;AACD,iEAQC;AAED,mDASC;AAED,wDASC;AAED,4DAUC;AAED,gEAgBC;AAED,yDAQC;AAED,yDAWC;AAED,sDASC;AAED,6DAOC;AAED,yDAOC;AAED,8DAKC;AAED,uDAUC;AAED,oDAMC;AAED,sDAQC;AAED,mDAKC;AA9QD,8BAAgB;AAChB,8BAAgB;AAChB,2BAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"variable_model_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/variable_model_test.js"],"names":[],"mappings":"AA6BA,iDAEC;AAED,oDAGC;AAED;;GAEG;AACH,0CAQC;AAED,2CAKC;AAED,gDAKC;AAED,yCAOC;AAED,8CAOC;AAED,mDAOC;AAhED,0BAAa;AACb,2BAAc"}
1
+ {"version":3,"file":"variable_model_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/variable_model_test.js"],"names":[],"mappings":"AA6BA,iDAEC;AAED,oDAGC;AAED;;GAEG;AACH,0CAOC;AAED,2CAKC;AAED,gDAKC;AAED,yCAOC;AAED,8CAOC;AAED,mDAOC;AA/DD,0BAAY;AACZ,2BAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"widget_div_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/widget_div_test.js"],"names":[],"mappings":"AAuBA;;;;;EAOC;AAED;;;EAKC;AAQD;;;;;EAOC;AAED,oDASC;AAED,uDASC;AAED,oDASC;AAGD,yDASC;AAED,0DAUC;AAED,wDAQC;AAED,yDASC;AAED,0DAUC;AAED,wDAQC;;;;;;;;;;;AA7GD,8CAAmC"}
1
+ {"version":3,"file":"widget_div_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/widget_div_test.js"],"names":[],"mappings":"AAuBA;;;;;EAOC;AAED;;;EAKC;AAQD;;;;;EAOC;AAED,oDAQC;AAED,uDAQC;AAED,oDAQC;AAED,yDAaC;AAED,0DAcC;AAED,wDAYC;AAED,yDAaC;AAED,0DAcC;AAED,wDAYC;;;;;;;;;;;AAjID,8CAAkC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace_comment_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/workspace_comment_test.js"],"names":[],"mappings":"AAyBA,oDAEC;AAED,uDAEC;AAED,kDAWC;AAED,kDAcC;AAED,sDAWC;AAED,oDAUC;AAED,mDAmBC;AAED,0CAiBC;AAED,4CA8BC;AAED,wDAQC;AAED,+DAgBC;AAlKD,2BAAc"}
1
+ {"version":3,"file":"workspace_comment_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/workspace_comment_test.js"],"names":[],"mappings":"AAyBA,oDAEC;AAED,uDAEC;AAED,kDAWC;AAED,kDAcC;AAED,sDAWC;AAED,oDAUC;AAED,mDAkBC;AAED,0CAgBC;AAED,4CAuBC;AAED,wDAQC;AAED,+DAgBC;AAzJD,2BAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/workspace_test.js"],"names":[],"mappings":"AA2BA,6CAIC;AAED,gDAIC;AAED,6CAcC;;AAED,4CAsBC;;AAED,+CAmBC;AAED,2CAiBC;AAED,6DAiBC;AAID,8DAsBC;AAED,4CAiBC;AAED,gDAeC;AAED,yDAiBC;AAED,6DAeC;AAED,kEAoCC;AAED,uEAmBC;AAED,qDAYC;AAED,oEAgDC;AAED,yDAWC;AA1VD,2BAAc;AACd,8BAAiB"}
1
+ {"version":3,"file":"workspace_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/workspace_test.js"],"names":[],"mappings":"AA2BA,6CAIC;AAED,gDAIC;AAED,6CAaC;;AAED,4CAsBC;;AAED,+CAcC;AAED,2CAgBC;AAED,6DAiBC;AAID,8DAsBC;AAED,4CAeC;AAED,gDAaC;AAED,yDAiBC;AAED,6DAeC;AAED,kEAoCC;AAED,uEAmBC;AAED,qDAYC;AAED,oEAgDC;AAED,yDAWC;AA/UD,2BAAa;AACb,8BAAgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace_undo_redo_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/workspace_undo_redo_test.js"],"names":[],"mappings":";AAoCA,uDAMC;AAED,4CAKC;AAED,+CAKC;AAED;;;;;GAKG;AACH,iEAHW,MAAM,QACN,MAAM,QAKhB;AAED,gDAGC;AAED,qDAGC;AAED,yDAWC;AAED,gEAmBC;AAED,0DAcC;AAED,4DAmBC;AAED,iEAqBC;AAED,mEAuBC;AAED,sEAuBC;AAED,wEA6BC;AAED,wEAWC;AAED,0EAcC;AAED,wEAaC;AAED,0EAiBC;AAED,kFAaC;AAED,oFAmBC;AAED,6EAWC;AAED,+EAcC;AA5VD,2BAAc;AACd,8BAAiB;AACjB,+BAAwC"}
1
+ {"version":3,"file":"workspace_undo_redo_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/workspace_undo_redo_test.js"],"names":[],"mappings":";AAmCA,uDAMC;AAED,4CAKC;AAED,+CAKC;AAED;;;;;GAKG;AACH,iEAHW,MAAM,QACN,MAAM,QAKhB;AAED,gDAGC;AAED,qDAGC;AAED,yDAWC;AAED,gEAmBC;AAED,0DAcC;AAED,4DAmBC;AAED,iEAqBC;AAED,mEAuBC;AAED,sEAuBC;AAED,wEA6BC;AAED,wEAWC;AAED,0EAcC;AAED,wEAaC;AAED,0EAiBC;AAED,kFAaC;AAED,oFAmBC;AAED,6EAWC;AAED,+EAcC;AA5VD,2BAAa;AACb,8BAAgB;AAChB,+BAAuC"}
@@ -1 +1 @@
1
- {"version":3,"file":"xml_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/xml_test.js"],"names":[],"mappings":"AAqDA,uCAGC;AAED,qDA4BC;AAED,0CAGC;AAED,wDAGC;AAED;;;;;GAKG;AACH,yDAJY,OAAO,QACR,MAAO,QACP,MAAO,QAOjB;AAED;;;;;;;GAOG;AACH,+DANY,OAAO,QACR,MAAO,QACP,MAAO,MACP,MAAO,QACP,MAAO,QAOjB;AAED;;;;;;GAMG;AACH,6DALY,OAAO,QACR,MAAO,MACP,MAAO,QACP,MAAO,QAMjB;AAED,wCAIC;AAED,wCAKC;AAED,mEAiBC;AAED,4DAuBC;AAED,kFAmBC;AAED,wEAoBC;AAED,8EAqBC;AAED,8CAKC;AAED;;;GAGG;AACH,mDA0BC;;AAED,4DAWC;AAED,gEAiBC;AAED,sEAkBC;AAED,yDAYC;AAED,mEAmBC;AAED,yDAMC;AAED,gDAUC;AAED,mDAWC;AAED,6DAqBC;AAlaD,8BAAiB;AACjB,2BAAc;AACd,6BAyBuB"}
1
+ {"version":3,"file":"xml_test.d.ts","sourceRoot":"","sources":["../../../../tests/jsunit/xml_test.js"],"names":[],"mappings":"AAuDA,uCAGC;AAED,qDA8BC;AAED,0CAGC;AAED,wDAGC;AAED;;;;;GAKG;AACH,yDAJY,OAAO,QACR,MAAO,QACP,MAAO,QAOjB;AAED;;;;;;;GAOG;AACH,+DANY,OAAO,QACR,MAAO,QACP,MAAO,MACP,MAAO,QACP,MAAO,QAOjB;AAED;;;;;;GAMG;AACH,6DALY,OAAO,QACR,MAAO,MACP,MAAO,QACP,MAAO,QAMjB;AAED,wCAIC;AAED,wCAIC;AAED,mEAkBC;AAED,4DAwBC;AAED,kFAcC;AAED,wEAqBC;AAED,8EAsBC;AAED,8CAIC;AAED;;;GAGG;AACH,mDA2BC;;AAED,4DAUC;AAED,gEAiBC;AAED,sEAoBC;AAED,yDAYC;AAED,mEAiBC;AAED,yDAMC;AAED,gDAUC;AAED,mDAWC;AAED,6DAiBC;AA/ZD,8BAAgB;AAChB,2BAAa;AACb,6BA2BY"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace_svg_test.d.ts","sourceRoot":"","sources":["../../../../tests/workspace_svg/workspace_svg_test.js"],"names":[],"mappings":"AAwBA,0DAGC;AAED,8CAGC;;AAED,6CAaC;;AAED,4CAyBC;;AAED,qEAAqE;AACrE,mDAoBC;AAED,2DAeC;AAED,sEAkBC"}
1
+ {"version":3,"file":"workspace_svg_test.d.ts","sourceRoot":"","sources":["../../../../tests/workspace_svg/workspace_svg_test.js"],"names":[],"mappings":"AAwBA,0DAGC;AAED,8CAGC;;AAED,6CAaC;;AAED,4CAyBC;;AAED,qEAAqE;AACrE,mDAyBC;AAED,2DAcC;AAED,sEAiBC"}
@@ -0,0 +1,69 @@
1
+ import { eslintConfigScratch } from 'eslint-config-scratch'
2
+ import { globalIgnores } from 'eslint/config'
3
+ import tseslint from 'typescript-eslint'
4
+
5
+ export default eslintConfigScratch.defineConfig(
6
+ eslintConfigScratch.recommended,
7
+ {
8
+ languageOptions: {
9
+ globals: {
10
+ Blockly: 'readonly',
11
+ goog: 'readonly',
12
+ },
13
+ },
14
+ },
15
+ {
16
+ // TypeScript rule overrides (type-checked rules must be scoped to TS files)
17
+ files: ['**/*.{ts,tsx,mts,cts}'],
18
+ plugins: { '@typescript-eslint': tseslint.plugin },
19
+ rules: {
20
+ // TODO: improve TypeScript type annotations to remove `any` usage
21
+ '@typescript-eslint/no-explicit-any': 'warn',
22
+ '@typescript-eslint/no-unsafe-argument': 'warn',
23
+ '@typescript-eslint/no-unsafe-assignment': 'warn',
24
+ '@typescript-eslint/no-unsafe-call': 'warn',
25
+ '@typescript-eslint/no-unsafe-enum-comparison': 'warn',
26
+ '@typescript-eslint/no-unsafe-member-access': 'warn',
27
+ '@typescript-eslint/no-unsafe-return': 'warn',
28
+ '@typescript-eslint/unbound-method': 'warn',
29
+
30
+ // TODO: fix incrementally
31
+ '@typescript-eslint/no-non-null-assertion': 'warn',
32
+ '@typescript-eslint/no-unnecessary-condition': 'warn',
33
+ '@typescript-eslint/prefer-nullish-coalescing': 'warn',
34
+ '@typescript-eslint/no-base-to-string': 'warn',
35
+ '@typescript-eslint/no-empty-function': 'warn',
36
+ '@typescript-eslint/no-floating-promises': 'warn',
37
+ '@typescript-eslint/no-unnecessary-type-assertion': 'warn',
38
+ '@typescript-eslint/no-unused-vars': 'warn',
39
+ '@typescript-eslint/only-throw-error': 'warn',
40
+ '@typescript-eslint/prefer-optional-chain': 'warn',
41
+ '@typescript-eslint/require-await': 'warn',
42
+ '@typescript-eslint/restrict-plus-operands': 'warn',
43
+ '@typescript-eslint/prefer-for-of': 'warn',
44
+ '@typescript-eslint/restrict-template-expressions': 'warn',
45
+ },
46
+ },
47
+ globalIgnores([
48
+ '*_compressed*.js',
49
+ '*_uncompressed*.js',
50
+ 'msg/**',
51
+ 'core/css.js',
52
+ 'i18n/**',
53
+ 'tests/jsunit/**',
54
+ 'tests/workspace_svg/**',
55
+ 'tests/blocks/**',
56
+ 'demos/**',
57
+ 'accessible/**',
58
+ 'appengine/**',
59
+ 'shim/**',
60
+ 'dist/**',
61
+ 'gh-pages/**',
62
+ 'commitlint.config.js',
63
+ 'release.config.js',
64
+ 'webpack.config.js',
65
+ 'build/**',
66
+ 'github-pages/**',
67
+ 'node_modules/**',
68
+ ]),
69
+ )
@@ -1,44 +1,43 @@
1
- const fs = require('fs');
2
- const path = require('path');
3
- const glob = require('glob');
4
- const assert = require('assert');
1
+ const fs = require('fs')
2
+ const path = require('path')
3
+ const glob = require('glob')
4
+ const assert = require('assert')
5
5
 
6
6
  // Globals
7
- const PATH_INPUT = path.resolve(__dirname, '../msg/json/*.json');
8
- const PATH_OUTPUT = path.resolve(__dirname, '../msg');
7
+ const PATH_INPUT = path.resolve(__dirname, '../msg/json/*.json')
8
+ const PATH_OUTPUT = path.resolve(__dirname, '../msg')
9
9
 
10
- let en = fs.readFileSync(path.resolve(__dirname, '../msg/json/en.json'));
11
- en = JSON.parse(en);
12
- const enKeys = Object.keys(en).sort().toString();
10
+ let en = fs.readFileSync(path.resolve(__dirname, '../msg/json/en.json'))
11
+ en = JSON.parse(en)
12
+ const enKeys = Object.keys(en).sort().toString()
13
13
 
14
14
  // Check that translation is valid:
15
15
  // entry: array [key, translation] corresponding to a single string from <locale>.json
16
16
  // - messages with placeholders have the same number of placeholders
17
17
  // - messages must not have newlines embedded
18
18
  const validateEntry = function (entry) {
19
- const re = /(%\d)/g;
20
- const [key, translation] = entry;
21
- const enMatch = en[key].match(re);
22
- const tMatch = translation.match(re);
23
- const enCount = enMatch ? enMatch.length : 0;
24
- const tCount = tMatch ? tMatch.length : 0;
25
- assert.strictEqual(tCount, enCount, `${key}:${en[key]} - "${translation}" placeholder mismatch`);
26
- if (enCount > 0) {
27
-
28
- assert.notStrictEqual(tMatch, null, `${key} is missing a placeholder: ${translation}`);
29
- assert.strictEqual(
30
- tMatch.sort().toString(),
31
- enMatch.sort().toString(),
32
- `${key} is missing or has duplicate placeholders: ${translation}`
33
- );
34
- }
35
- assert.strictEqual(translation.match(/[\n]/), null, `${key} contains a newline character ${translation}`);
36
- };
19
+ const re = /(%\d)/g
20
+ const [key, translation] = entry
21
+ const enMatch = en[key].match(re)
22
+ const tMatch = translation.match(re)
23
+ const enCount = enMatch ? enMatch.length : 0
24
+ const tCount = tMatch ? tMatch.length : 0
25
+ assert.strictEqual(tCount, enCount, `${key}:${en[key]} - "${translation}" placeholder mismatch`)
26
+ if (enCount > 0) {
27
+ assert.notStrictEqual(tMatch, null, `${key} is missing a placeholder: ${translation}`)
28
+ assert.strictEqual(
29
+ tMatch.sort().toString(),
30
+ enMatch.sort().toString(),
31
+ `${key} is missing or has duplicate placeholders: ${translation}`,
32
+ )
33
+ }
34
+ assert.strictEqual(translation.match(/[\n]/), null, `${key} contains a newline character ${translation}`)
35
+ }
37
36
 
38
37
  const validate = function (json, name) {
39
- assert.strictEqual(Object.keys(json).sort().toString(), enKeys, `${name}: Locale json keys do not match en.json`);
40
- Object.entries(json).forEach(validateEntry);
41
- };
38
+ assert.strictEqual(Object.keys(json).sort().toString(), enKeys, `${name}: Locale json keys do not match en.json`)
39
+ Object.entries(json).forEach(validateEntry)
40
+ }
42
41
 
43
42
  let file = `// This file was automatically generated. Do not modify.
44
43
 
@@ -48,22 +47,22 @@ goog.provide('Blockly.ScratchMsgs.allLocales');
48
47
 
49
48
  goog.require('Blockly.ScratchMsgs');
50
49
 
51
- `;
50
+ `
52
51
 
53
- let files = glob.sync(PATH_INPUT);
52
+ let files = glob.sync(PATH_INPUT)
54
53
  files.forEach(function (uri) {
55
- const name = path.parse(uri).name;
56
- if (name !== 'qqq' && name !== 'synonyms') {
57
- let body = fs.readFileSync(uri);
58
- // Convert file body into an object (let this throw if invalid JSON)
59
- body = JSON.parse(body);
60
- validate(body, name);
61
- file += '\n';
62
- file += `Blockly.ScratchMsgs.locales["${name}"] =\n`;
63
- file += JSON.stringify(body, null, 4);
64
- file += ';\n';
65
- }
66
- });
54
+ const name = path.parse(uri).name
55
+ if (name !== 'qqq' && name !== 'synonyms') {
56
+ let body = fs.readFileSync(uri)
57
+ // Convert file body into an object (let this throw if invalid JSON)
58
+ body = JSON.parse(body)
59
+ validate(body, name)
60
+ file += '\n'
61
+ file += `Blockly.ScratchMsgs.locales["${name}"] =\n`
62
+ file += JSON.stringify(body, null, 4)
63
+ file += ';\n'
64
+ }
65
+ })
67
66
 
68
67
  // write combined file
69
- fs.writeFileSync(`${PATH_OUTPUT}/scratch_msgs.js`, file);
68
+ fs.writeFileSync(`${PATH_OUTPUT}/scratch_msgs.js`, file)
@@ -1,46 +1,54 @@
1
- const es = require('event-stream');
2
- const fs = require('fs');
3
- const path = require('path');
4
- const assert = require('assert');
1
+ const es = require('event-stream')
2
+ const fs = require('fs')
3
+ const path = require('path')
4
+ const assert = require('assert')
5
5
 
6
6
  // Storage object
7
- const storage = {};
7
+ const storage = {}
8
8
 
9
9
  // File paths
10
- const PATH_INPUT = path.resolve(__dirname, '../msg/messages.js');
11
- const PATH_OUTPUT = path.resolve(__dirname, '../msg/json/en.json');
10
+ const PATH_INPUT = path.resolve(__dirname, '../msg/messages.js')
11
+ const PATH_OUTPUT = path.resolve(__dirname, '../msg/json/en.json')
12
12
 
13
13
  // Match function
14
14
  const match = function (str) {
15
- if (str.indexOf('Blockly.Msg.') !== 0) return false;
16
- assert.notStrictEqual(str.indexOf('";'), str.length - 2, `[${str}] uses double quoted string, should use single quotes.`);
17
- if (str.indexOf("';") !== str.length - 2) return false;
18
- return true;
15
+ if (str.indexOf('Blockly.Msg.') !== 0) return false
16
+ assert.notStrictEqual(
17
+ str.indexOf('";'),
18
+ str.length - 2,
19
+ `[${str}] uses double quoted string, should use single quotes.`,
20
+ )
21
+ if (str.indexOf("';") !== str.length - 2) return false
22
+ return true
19
23
  }
20
24
 
21
25
  // Extract key and value from message definition
22
26
  const extract = function (str) {
23
- str = str.split('Blockly.Msg.')[1].split(' ');
24
- return {
25
- key: str[0],
26
- value: str
27
- .splice(2, str.length)
28
- .join(' ')
29
- .slice(1, -2) // strip off initial ', and ending ';
30
- .replace(/\\'/g, "'")
31
- };
32
- };
27
+ str = str.split('Blockly.Msg.')[1].split(' ')
28
+ return {
29
+ key: str[0],
30
+ value: str
31
+ .splice(2, str.length)
32
+ .join(' ')
33
+ .slice(1, -2) // strip off initial ', and ending ';
34
+ .replace(/\\'/g, "'"),
35
+ }
36
+ }
33
37
 
34
38
  // Stream input and push each match to the storage object
35
- const stream = fs.createReadStream(PATH_INPUT);
39
+ const stream = fs.createReadStream(PATH_INPUT)
36
40
  stream
37
- .pipe(es.split('\n'))
38
- .pipe(es.mapSync(function (str) {
39
- if (!match(str)) return;
40
- const result = extract(str);
41
- storage[result.key] = result.value;
42
- }))
43
- .pipe(es.wait(function (err) {
44
- if (err) throw new Error(err);
45
- fs.writeFileSync(PATH_OUTPUT, JSON.stringify(storage, null, 4));
46
- }));
41
+ .pipe(es.split('\n'))
42
+ .pipe(
43
+ es.mapSync(function (str) {
44
+ if (!match(str)) return
45
+ const result = extract(str)
46
+ storage[result.key] = result.value
47
+ }),
48
+ )
49
+ .pipe(
50
+ es.wait(function (err) {
51
+ if (err) throw new Error(err)
52
+ fs.writeFileSync(PATH_OUTPUT, JSON.stringify(storage, null, 4))
53
+ }),
54
+ )