@blockdia/scratch-blocks 0.1.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.
- package/.nvmrc +1 -0
- package/LICENSE +674 -0
- package/README.md +57 -0
- package/TRADEMARK +1 -0
- package/blockly_compressed_horizontal.js +2268 -0
- package/blockly_compressed_vertical.js +2296 -0
- package/blockly_uncompressed_horizontal.js +1212 -0
- package/blockly_uncompressed_vertical.js +1212 -0
- package/blocks_common/colour.js +61 -0
- package/blocks_common/math.js +159 -0
- package/blocks_common/matrix.js +54 -0
- package/blocks_common/note.js +58 -0
- package/blocks_common/text.js +57 -0
- package/blocks_compressed.js +37 -0
- package/blocks_compressed_horizontal.js +68 -0
- package/blocks_compressed_vertical.js +216 -0
- package/blocks_horizontal/control.js +212 -0
- package/blocks_horizontal/default_toolbox.js +139 -0
- package/blocks_horizontal/event.js +190 -0
- package/blocks_horizontal/wedo.js +325 -0
- package/blocks_vertical/control.js +532 -0
- package/blocks_vertical/data.js +666 -0
- package/blocks_vertical/default_toolbox.js +571 -0
- package/blocks_vertical/event.js +329 -0
- package/blocks_vertical/extensions.js +294 -0
- package/blocks_vertical/looks.js +591 -0
- package/blocks_vertical/motion.js +587 -0
- package/blocks_vertical/operators.js +470 -0
- package/blocks_vertical/procedures.js +1051 -0
- package/blocks_vertical/sensing.js +555 -0
- package/blocks_vertical/sound.js +246 -0
- package/blocks_vertical/vertical_extensions.js +289 -0
- package/build/gen_blocks.js +1 -0
- package/build/test_expect.js +1 -0
- package/build/test_input.js +1 -0
- package/build.py +647 -0
- package/cleanup.sh +101 -0
- package/core/block.js +1837 -0
- package/core/block_animations.js +107 -0
- package/core/block_drag_surface.js +299 -0
- package/core/block_dragger.js +424 -0
- package/core/block_events.js +531 -0
- package/core/block_render_svg_horizontal.js +892 -0
- package/core/block_render_svg_vertical.js +1734 -0
- package/core/block_svg.js +1355 -0
- package/core/blockly.js +620 -0
- package/core/blocks.js +37 -0
- package/core/bubble.js +664 -0
- package/core/bubble_dragger.js +285 -0
- package/core/colours.js +177 -0
- package/core/comment.js +293 -0
- package/core/comment_events.js +539 -0
- package/core/connection.js +776 -0
- package/core/connection_db.js +300 -0
- package/core/constants.js +408 -0
- package/core/contextmenu.js +534 -0
- package/core/css.js +1354 -0
- package/core/data_category.js +490 -0
- package/core/dragged_connection_manager.js +260 -0
- package/core/dropdowndiv.js +408 -0
- package/core/events.js +429 -0
- package/core/events_abstract.js +113 -0
- package/core/extensions.js +450 -0
- package/core/field.js +810 -0
- package/core/field_angle.js +410 -0
- package/core/field_checkbox.js +133 -0
- package/core/field_colour.js +253 -0
- package/core/field_colour_slider.js +387 -0
- package/core/field_date.js +353 -0
- package/core/field_dropdown.js +447 -0
- package/core/field_iconmenu.js +309 -0
- package/core/field_image.js +200 -0
- package/core/field_label.js +136 -0
- package/core/field_label_serializable.js +125 -0
- package/core/field_matrix.js +566 -0
- package/core/field_note.js +850 -0
- package/core/field_number.js +366 -0
- package/core/field_numberdropdown.js +77 -0
- package/core/field_textdropdown.js +164 -0
- package/core/field_textinput.js +675 -0
- package/core/field_textinput_removable.js +105 -0
- package/core/field_variable.js +385 -0
- package/core/field_variable_getter.js +185 -0
- package/core/field_vertical_separator.js +161 -0
- package/core/flyout_base.js +935 -0
- package/core/flyout_button.js +324 -0
- package/core/flyout_dragger.js +83 -0
- package/core/flyout_extension_category_header.js +159 -0
- package/core/flyout_horizontal.js +475 -0
- package/core/flyout_vertical.js +770 -0
- package/core/generator.js +426 -0
- package/core/gesture.js +1010 -0
- package/core/grid.js +227 -0
- package/core/icon.js +205 -0
- package/core/inject.js +496 -0
- package/core/input.js +285 -0
- package/core/insertion_marker_manager.js +678 -0
- package/core/intersection_observer.js +102 -0
- package/core/msg.js +62 -0
- package/core/mutator.js +426 -0
- package/core/names.js +198 -0
- package/core/options.js +244 -0
- package/core/procedures.js +739 -0
- package/core/rendered_connection.js +417 -0
- package/core/scratch_block_comment.js +646 -0
- package/core/scratch_blocks_utils.js +246 -0
- package/core/scratch_bubble.js +699 -0
- package/core/scratch_events.js +131 -0
- package/core/scratch_msgs.js +85 -0
- package/core/scrollbar.js +875 -0
- package/core/toolbox.js +803 -0
- package/core/tooltip.js +337 -0
- package/core/touch.js +226 -0
- package/core/trashcan.js +343 -0
- package/core/ui_events.js +91 -0
- package/core/ui_menu_utils.js +68 -0
- package/core/utils.js +825 -0
- package/core/variable_events.js +259 -0
- package/core/variable_map.js +415 -0
- package/core/variable_model.js +116 -0
- package/core/variables.js +674 -0
- package/core/warning.js +199 -0
- package/core/widgetdiv.js +344 -0
- package/core/workspace.js +673 -0
- package/core/workspace_audio.js +170 -0
- package/core/workspace_comment.js +426 -0
- package/core/workspace_comment_render_svg.js +706 -0
- package/core/workspace_comment_svg.js +609 -0
- package/core/workspace_drag_surface_svg.js +195 -0
- package/core/workspace_dragger.js +132 -0
- package/core/workspace_svg.js +2382 -0
- package/core/xml.js +930 -0
- package/core/zoom_controls.js +301 -0
- package/dist/horizontal.js +222 -0
- package/dist/vertical.js +222 -0
- package/dist/web/horizontal.js +232 -0
- package/dist/web/vertical.js +232 -0
- package/i18n/common.py +234 -0
- package/i18n/create_messages.py +162 -0
- package/i18n/create_scratch_msgs.js +69 -0
- package/i18n/dedup_json.py +73 -0
- package/i18n/js_to_json.js +46 -0
- package/i18n/js_to_json.py +136 -0
- package/i18n/json_to_js.js +52 -0
- package/i18n/json_to_js.py +185 -0
- package/i18n/sync_tx_translations.js +111 -0
- package/i18n/test_scratch_msgs.js +87 -0
- package/i18n/tests.py +47 -0
- package/i18n/xliff_to_json.py +232 -0
- package/local_build.sh +70 -0
- package/media/click.mp3 +0 -0
- package/media/click.ogg +0 -0
- package/media/click.wav +0 -0
- package/media/comment-arrow-down.svg +10 -0
- package/media/comment-arrow-up.svg +10 -0
- package/media/delete-x.svg +10 -0
- package/media/delete.mp3 +0 -0
- package/media/delete.ogg +0 -0
- package/media/delete.wav +0 -0
- package/media/dropdown-arrow-dark.svg +1 -0
- package/media/dropdown-arrow.svg +1 -0
- package/media/extensions/microbit-block-icon.svg +130 -0
- package/media/extensions/music-block-icon.svg +17 -0
- package/media/extensions/pen-block-icon.svg +19 -0
- package/media/extensions/wedo2-block-icon.svg +36 -0
- package/media/eyedropper.svg +22 -0
- package/media/green-flag.svg +17 -0
- package/media/handclosed.cur +0 -0
- package/media/handdelete.cur +0 -0
- package/media/handopen.cur +0 -0
- package/media/icons/arrow.svg +12 -0
- package/media/icons/arrow_button.svg +1 -0
- package/media/icons/control_forever.svg +1 -0
- package/media/icons/control_repeat.svg +1 -0
- package/media/icons/control_stop.svg +1 -0
- package/media/icons/control_wait.svg +1 -0
- package/media/icons/event_broadcast_blue.svg +1 -0
- package/media/icons/event_broadcast_coral.svg +1 -0
- package/media/icons/event_broadcast_green.svg +1 -0
- package/media/icons/event_broadcast_magenta.svg +1 -0
- package/media/icons/event_broadcast_orange.svg +1 -0
- package/media/icons/event_broadcast_purple.svg +1 -0
- package/media/icons/event_when-broadcast-received_blue.svg +1 -0
- package/media/icons/event_when-broadcast-received_coral.svg +1 -0
- package/media/icons/event_when-broadcast-received_green.svg +1 -0
- package/media/icons/event_when-broadcast-received_magenta.svg +1 -0
- package/media/icons/event_when-broadcast-received_orange.svg +1 -0
- package/media/icons/event_when-broadcast-received_purple.svg +1 -0
- package/media/icons/event_whenflagclicked.svg +1 -0
- package/media/icons/remove.svg +19 -0
- package/media/icons/set-led_blue.svg +1 -0
- package/media/icons/set-led_coral.svg +1 -0
- package/media/icons/set-led_green.svg +1 -0
- package/media/icons/set-led_magenta.svg +1 -0
- package/media/icons/set-led_mystery.svg +1 -0
- package/media/icons/set-led_orange.svg +1 -0
- package/media/icons/set-led_purple.svg +1 -0
- package/media/icons/set-led_white.svg +1 -0
- package/media/icons/set-led_yellow.svg +1 -0
- package/media/icons/wedo_motor-clockwise.svg +1 -0
- package/media/icons/wedo_motor-counterclockwise.svg +1 -0
- package/media/icons/wedo_motor-speed_fast.svg +1 -0
- package/media/icons/wedo_motor-speed_med.svg +1 -0
- package/media/icons/wedo_motor-speed_slow.svg +1 -0
- package/media/icons/wedo_when-distance_close.svg +1 -0
- package/media/icons/wedo_when-tilt-backward.svg +1 -0
- package/media/icons/wedo_when-tilt-forward.svg +1 -0
- package/media/icons/wedo_when-tilt-left.svg +1 -0
- package/media/icons/wedo_when-tilt-right.svg +1 -0
- package/media/icons/wedo_when-tilt.svg +1 -0
- package/media/repeat.svg +18 -0
- package/media/rotate-left.svg +1 -0
- package/media/rotate-right.svg +1 -0
- package/media/sprites.png +0 -0
- package/media/status-not-ready.svg +13 -0
- package/media/status-ready.svg +13 -0
- package/media/zoom-in.svg +1 -0
- package/media/zoom-out.svg +1 -0
- package/media/zoom-reset.svg +1 -0
- package/msg/js/en.js +290 -0
- package/msg/json/en.json +285 -0
- package/msg/messages.js +359 -0
- package/msg/scratch_msgs.js +22969 -0
- package/package.json +60 -0
- package/pull_from_blockly.sh +151 -0
- package/renovate.json5 +15 -0
- package/shim/blockly_compressed_horizontal-blocks_compressed.js +1 -0
- package/shim/blockly_compressed_horizontal.Blockly.js +1 -0
- package/shim/blockly_compressed_horizontal.goog.js +1 -0
- package/shim/blockly_compressed_horizontal.js +1 -0
- package/shim/blockly_compressed_vertical-blocks_compressed.js +1 -0
- package/shim/blockly_compressed_vertical.Blockly.js +1 -0
- package/shim/blockly_compressed_vertical.goog.js +1 -0
- package/shim/blockly_compressed_vertical.js +1 -0
- package/shim/blocks_compressed_horizontal-blockly_compressed_horizontal-messages.js +1 -0
- package/shim/blocks_compressed_horizontal.js +1 -0
- package/shim/blocks_compressed_vertical-blockly_compressed_vertical-messages.js +1 -0
- package/shim/blocks_compressed_vertical.js +1 -0
- package/shim/gh-pages.js +1 -0
- package/shim/horizontal.js +1 -0
- package/shim/index.js +17 -0
- package/shim/vertical.js +1 -0
- package/universal-python.js +82 -0
package/package.json
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@blockdia/scratch-blocks",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Blockdia distribution of TurboWarp Scratch Blocks",
|
|
5
|
+
"author": "Massachusetts Institute of Technology",
|
|
6
|
+
"license": "GPL-3.0",
|
|
7
|
+
"homepage": "https://github.com/blockdia/scratch-blocks#readme",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/blockdia/scratch-blocks.git"
|
|
11
|
+
},
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/blockdia/scratch-blocks/issues"
|
|
14
|
+
},
|
|
15
|
+
"publishConfig": {
|
|
16
|
+
"access": "public",
|
|
17
|
+
"registry": "https://registry.npmjs.org/"
|
|
18
|
+
},
|
|
19
|
+
"main": "./dist/vertical.js",
|
|
20
|
+
"browser": "./shim/vertical.js",
|
|
21
|
+
"scripts": {
|
|
22
|
+
"deploy": "rimraf gh-pages/closure-library/scripts/ci/CloseAdobeDialog.exe && gh-pages -t -d gh-pages -m \"Build for $(git log --pretty=format:%H -n1) [skip ci]\"",
|
|
23
|
+
"build": "node universal-python.js build.py && webpack",
|
|
24
|
+
"prepack": "npm run build",
|
|
25
|
+
"test:unit": "node tests/jsunit/test_runner.js",
|
|
26
|
+
"test:lint": "eslint .",
|
|
27
|
+
"test:messages": "npm run translate && node i18n/test_scratch_msgs.js",
|
|
28
|
+
"test": "npm run test:messages && npm run test:unit",
|
|
29
|
+
"version": "json -f package.json -I -e \"this.repository.sha = '$(git log -n1 --pretty=format:%H)'\"",
|
|
30
|
+
"translate": "node i18n/js_to_json.js && node i18n/json_to_js.js",
|
|
31
|
+
"translate:sync:src": "tx-push-src scratch-editor blocks msg/json/en.json",
|
|
32
|
+
"translate:sync:translations": "node i18n/sync_tx_translations.js",
|
|
33
|
+
"translate:update": "npm run translate:sync:src && npm run translate:sync:translations"
|
|
34
|
+
},
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"exports-loader": "0.7.0",
|
|
37
|
+
"imports-loader": "0.8.0"
|
|
38
|
+
},
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"async": "2.6.4",
|
|
41
|
+
"chromedriver": "^118.0.1",
|
|
42
|
+
"copy-webpack-plugin": "4.6.0",
|
|
43
|
+
"eslint": "4.19.1",
|
|
44
|
+
"event-stream": "3.3.5",
|
|
45
|
+
"gh-pages": "0.12.0",
|
|
46
|
+
"glob": "7.2.3",
|
|
47
|
+
"google-closure-compiler": "20180402.0.0",
|
|
48
|
+
"google-closure-library": "20190301.0.0",
|
|
49
|
+
"graceful-fs": "4.2.11",
|
|
50
|
+
"json": "9.0.6",
|
|
51
|
+
"rimraf": "2.7.1",
|
|
52
|
+
"scratch-l10n": "3.16.20231013034330",
|
|
53
|
+
"selenium-webdriver": "4.14.0",
|
|
54
|
+
"transifex": "1.6.6",
|
|
55
|
+
"uglifyjs-webpack-plugin": "1.3.0",
|
|
56
|
+
"webpack": "4.47.0",
|
|
57
|
+
"webpack-cli": "3.3.12",
|
|
58
|
+
"which": "^4.0.0"
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Pull from Blockly into Scratch Blocks and do basic cleanup.
|
|
4
|
+
# Rachel Fenichel (fenichel@google.com)
|
|
5
|
+
|
|
6
|
+
BOLD='\e[1m'
|
|
7
|
+
NOBOLD='\e[21m'
|
|
8
|
+
|
|
9
|
+
# Formatting helper.
|
|
10
|
+
empty_lines() { printf '\n\n'; }
|
|
11
|
+
bold_echo() {
|
|
12
|
+
echo -e "${BOLD}$1${NOBOLD}"
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
stop_on_fail() {
|
|
16
|
+
# Fail if any command fails.
|
|
17
|
+
set -e
|
|
18
|
+
# Even if you're piping the output.
|
|
19
|
+
set -o pipefail
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
# Undo the effects of start_failing.
|
|
23
|
+
continue_on_fail() {
|
|
24
|
+
set +e
|
|
25
|
+
set +o pipefail
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
# Prompt for y/n and put the result in $prompt_result
|
|
29
|
+
# The first argument specifies the text to use in the prompt.
|
|
30
|
+
# The second argument specifies which value to use if we're skipping prompts.
|
|
31
|
+
prompt() {
|
|
32
|
+
if [ $with_prompts ]
|
|
33
|
+
then
|
|
34
|
+
if [ $2 = true ]
|
|
35
|
+
then
|
|
36
|
+
paren_text="(Y/n)"
|
|
37
|
+
else
|
|
38
|
+
paren_text="(y/N)"
|
|
39
|
+
fi
|
|
40
|
+
# Prompt the user and retry if they try any funny business.
|
|
41
|
+
while true; do
|
|
42
|
+
read -p "$1 $paren_text > " yn
|
|
43
|
+
case $yn in
|
|
44
|
+
[Yy]* ) prompt_result=true; break;;
|
|
45
|
+
[Nn]* ) prompt_result=false; break;;
|
|
46
|
+
* ) echo "Please answer yes or no.";;
|
|
47
|
+
esac
|
|
48
|
+
done
|
|
49
|
+
else
|
|
50
|
+
# Running without prompts. Use the default value.
|
|
51
|
+
prompt_result=$2;
|
|
52
|
+
fi
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
# Ask the user for confirmation, then pull from Blockly's develop branch.
|
|
57
|
+
# The default is to do the pull.
|
|
58
|
+
pull_from_develop_fn() {
|
|
59
|
+
empty_lines
|
|
60
|
+
prompt "Do you want to pull from develop?" true
|
|
61
|
+
if [ $prompt_result = false ]
|
|
62
|
+
then
|
|
63
|
+
bold_echo "You don't want to pull from develop. Why are you running this script?"
|
|
64
|
+
exit
|
|
65
|
+
fi
|
|
66
|
+
|
|
67
|
+
bold_echo "Pulling from Blockly's develop branch"
|
|
68
|
+
sleep .5
|
|
69
|
+
# This pull will likely fail with merge conflicts, but that's okay.
|
|
70
|
+
# However, this means that we won't fail on errors other than merge conflicts.
|
|
71
|
+
continue_on_fail
|
|
72
|
+
git pull https://github.com/google/blockly.git develop
|
|
73
|
+
stop_on_fail
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
# Ask the user for confirmation, then run cleanup.
|
|
77
|
+
# The default is to run cleanup.
|
|
78
|
+
run_cleanup_fn() {
|
|
79
|
+
empty_lines
|
|
80
|
+
prompt "Ready to run cleanup.sh. Continue?" true
|
|
81
|
+
if [ $prompt_result = false ]
|
|
82
|
+
then
|
|
83
|
+
bold_echo "Skipping cleanup.sh"
|
|
84
|
+
prompt_for_merge_abort
|
|
85
|
+
empty_lines
|
|
86
|
+
bold_echo "Done"
|
|
87
|
+
exit
|
|
88
|
+
fi
|
|
89
|
+
|
|
90
|
+
bold_echo "Running cleanup.sh"
|
|
91
|
+
sleep .5
|
|
92
|
+
# Cleanup.sh resolves common conflicts.
|
|
93
|
+
./cleanup.sh
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
# Ask the user for confirmation, then possibly abort the merge.
|
|
97
|
+
# The default is to *not* abort the merge.
|
|
98
|
+
# Used to clean up the repo instead of leaving it in a bad state.
|
|
99
|
+
prompt_for_merge_abort() {
|
|
100
|
+
empty_lines
|
|
101
|
+
prompt "Do you want to abort this merge?" false
|
|
102
|
+
if [ $prompt_result = false ]
|
|
103
|
+
then
|
|
104
|
+
bold_echo "Continuing with merge..."
|
|
105
|
+
else
|
|
106
|
+
bold_echo "Running git merge --abort"
|
|
107
|
+
git merge --abort
|
|
108
|
+
display_status_fn
|
|
109
|
+
bold_echo "Done"
|
|
110
|
+
exit
|
|
111
|
+
fi
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
# Ask the user for confirmation, then show the current repo status.
|
|
115
|
+
# The default to to show status.
|
|
116
|
+
display_status_fn() {
|
|
117
|
+
empty_lines
|
|
118
|
+
prompt "Do you want to display the current status?" true
|
|
119
|
+
if [ $prompt_result = true ]
|
|
120
|
+
then
|
|
121
|
+
# Tell the user the current state.
|
|
122
|
+
bold_echo "Current status"
|
|
123
|
+
sleep .5
|
|
124
|
+
git status
|
|
125
|
+
else
|
|
126
|
+
bold_echo "Skipping status display."
|
|
127
|
+
fi
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
# Give the user one more chance to abort the merge, then tell them what their
|
|
131
|
+
# next steps should be.
|
|
132
|
+
finish_fn() {
|
|
133
|
+
prompt_for_merge_abort
|
|
134
|
+
bold_echo "Done. You may need to manually resolve conflicts."
|
|
135
|
+
# Helpful tips about what to do next.
|
|
136
|
+
empty_lines
|
|
137
|
+
sleep .5
|
|
138
|
+
echo "Fix conflicts and run 'git commit'."
|
|
139
|
+
echo "Use 'git add <file>' to mark resolution."
|
|
140
|
+
echo "Use 'git merge --abort' to abort this merge."
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
# Check whether we're running with prompts. If unset, we'll skip all prompts.
|
|
144
|
+
with_prompts=$1
|
|
145
|
+
|
|
146
|
+
# Here we go!
|
|
147
|
+
stop_on_fail
|
|
148
|
+
pull_from_develop_fn
|
|
149
|
+
run_cleanup_fn
|
|
150
|
+
display_status_fn
|
|
151
|
+
finish_fn
|
package/renovate.json5
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
|
3
|
+
|
|
4
|
+
"extends": [
|
|
5
|
+
"github>LLK/scratch-renovate-config"
|
|
6
|
+
],
|
|
7
|
+
|
|
8
|
+
"packageRules": [
|
|
9
|
+
// Closure compiler & library releases are always "major" so separating them leads to PR SPAM
|
|
10
|
+
{
|
|
11
|
+
"matchPackageNames": ["google-closure-compiler", "google-closure-library"],
|
|
12
|
+
"separateMultipleMajor": false
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('imports-loader?Blockly=./shim/blockly_compressed_horizontal.Blockly!exports-loader?Blockly!../blocks_compressed');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('./blockly_compressed_horizontal').Blockly;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('./blockly_compressed_horizontal').goog;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('imports-loader?this=>window!exports-loader?Blockly&goog!../blockly_compressed_horizontal');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('imports-loader?Blockly=./shim/blockly_compressed_vertical.Blockly!exports-loader?Blockly!../blocks_compressed');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('./blockly_compressed_vertical').Blockly;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('./blockly_compressed_vertical').goog;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('imports-loader?this=>window!exports-loader?Blockly&goog!../blockly_compressed_vertical');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('imports-loader?Blockly=../shim/blocks_compressed_horizontal,goog=../shim/blockly_compressed_horizontal.goog!exports-loader?Blockly!../msg/messages');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('imports-loader?Blockly=./shim/blockly_compressed_horizontal-blocks_compressed!exports-loader?Blockly!../blocks_compressed_horizontal');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('imports-loader?Blockly=../shim/blocks_compressed_vertical,goog=../shim/blockly_compressed_vertical.goog!exports-loader?Blockly!../msg/messages');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('imports-loader?goog=./shim/blockly_compressed_vertical.goog,Blockly=./shim/blockly_compressed_vertical-blocks_compressed!exports-loader?Blockly!../blocks_compressed_vertical');
|
package/shim/gh-pages.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
// intentionally left empty
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('imports-loader?Blockly=../shim/blocks_compressed_horizontal-blockly_compressed_horizontal-messages,goog=../shim/blockly_compressed_horizontal.goog!exports-loader?Blockly!../msg/scratch_msgs');
|
package/shim/index.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Webpack shim module
|
|
3
|
+
*
|
|
4
|
+
* Uses webpack imports-loader and exports-loader to provide the horizontal and
|
|
5
|
+
* vertical flavors of Blockly. All of the other files in this directory shim
|
|
6
|
+
* Blockly and goog between blockly_compressed_* and blocks_compressed*.
|
|
7
|
+
*
|
|
8
|
+
* Horizontal and Vertical export Blockly out of
|
|
9
|
+
* blockly_compressed_[horizontal, vertical] +
|
|
10
|
+
* blocks_compressed +
|
|
11
|
+
* blocks_compressed_[horizontal, vertical] +
|
|
12
|
+
* msg/messages
|
|
13
|
+
**/
|
|
14
|
+
module.exports = {
|
|
15
|
+
Horizontal: require('./horizontal'),
|
|
16
|
+
Vertical: require('./vertical')
|
|
17
|
+
};
|
package/shim/vertical.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('imports-loader?Blockly=../shim/blocks_compressed_vertical-blockly_compressed_vertical-messages,goog=../shim/blockly_compressed_vertical.goog!exports-loader?Blockly!../msg/scratch_msgs');
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/* eslint-env node */
|
|
2
|
+
|
|
3
|
+
// There are a lot of different ways that people can install python, and there is no
|
|
4
|
+
// universal name that they use for the actual executable. We can already assume
|
|
5
|
+
// that there is a working Node.js environment, so this script can figure it out.
|
|
6
|
+
|
|
7
|
+
var child_process = require('child_process');
|
|
8
|
+
var _which = require('which');
|
|
9
|
+
|
|
10
|
+
function which(command) {
|
|
11
|
+
return _which.sync(command, {
|
|
12
|
+
nothrow: true
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function run(command, args) {
|
|
17
|
+
console.log('universal-python: Running ' + command + ' with arguments ' + args.join(', '));
|
|
18
|
+
var subprocess = child_process.spawn(command, args, {
|
|
19
|
+
windowsHide: true,
|
|
20
|
+
shell: false,
|
|
21
|
+
stdio: 'inherit'
|
|
22
|
+
});
|
|
23
|
+
subprocess.on('exit', function(code) {
|
|
24
|
+
// Microsoft Store install shim exits with code 9009
|
|
25
|
+
if (process.platform === 'win32' && code === 9009) {
|
|
26
|
+
// eslint-disable-next-line max-len
|
|
27
|
+
console.log('universal-python: Attempted to start python, but got the Microsoft Store installation shim. Install python from the Microsoft Store or python.org. (code 9009)');
|
|
28
|
+
} else if (code === 0) {
|
|
29
|
+
console.log('universal-python: Success');
|
|
30
|
+
} else {
|
|
31
|
+
console.log('universal-python: Failed with code ' + code);
|
|
32
|
+
}
|
|
33
|
+
process.exit(code);
|
|
34
|
+
});
|
|
35
|
+
subprocess.on('error', function(error) {
|
|
36
|
+
console.log('universal-python: Error starting python; please ensure you have python installed: ' + error);
|
|
37
|
+
process.exit(1);
|
|
38
|
+
});
|
|
39
|
+
process.on('SIGINT', function() {
|
|
40
|
+
subprocess.kill('SIGINT');
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
var argv = process.argv.slice(2);
|
|
45
|
+
|
|
46
|
+
if (process.platform === 'win32') {
|
|
47
|
+
// Python in Windows is weird. Most commonly it will be installed using the python.org installers or
|
|
48
|
+
// from the Microsoft Store. Interestingly the Microsoft Store shims always exist on PATH and are
|
|
49
|
+
// also weird fake files so Node.js' fs does not work very well with them.
|
|
50
|
+
// Python.org installers will usually install the py launcher, so we'll try that first so that we
|
|
51
|
+
// don't open up the Microsoft Store for people who installed Python from there.
|
|
52
|
+
var py = which('py.exe');
|
|
53
|
+
if (py) {
|
|
54
|
+
run(py, ['-3'].concat(argv));
|
|
55
|
+
} else {
|
|
56
|
+
// This will either run the python installation from PATH or the Microsoft Store install shim.
|
|
57
|
+
// Don't know what version we'll get, but 2 and 3 both work so it doesn't matter.
|
|
58
|
+
run('python.exe', argv);
|
|
59
|
+
}
|
|
60
|
+
} else {
|
|
61
|
+
// Python 3 is usually installed as python3
|
|
62
|
+
var python3 = which('python3');
|
|
63
|
+
if (python3) {
|
|
64
|
+
run(python3, argv);
|
|
65
|
+
} else {
|
|
66
|
+
// Sometimes it might only be installed as python
|
|
67
|
+
// Don't know what version we'll get, but 2 and 3 both work so it doesn't matter
|
|
68
|
+
var python = which('python');
|
|
69
|
+
if (python) {
|
|
70
|
+
run(python, argv);
|
|
71
|
+
} else {
|
|
72
|
+
// Some old systems might only have python 2
|
|
73
|
+
var python2 = which('python2');
|
|
74
|
+
if (python2) {
|
|
75
|
+
run(python2, argv);
|
|
76
|
+
} else {
|
|
77
|
+
console.log("universal-python: Could not find python on your PATH; please ensure you have python installed.");
|
|
78
|
+
process.exit(1);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|