-
Notifications
You must be signed in to change notification settings - Fork 3.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add Blockly.Extensions.isRegistered
function
#5500
feat: add Blockly.Extensions.isRegistered
function
#5500
Conversation
Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). 📝 Please visit https://cla.developers.google.com/ to sign. Once you've signed (or fixed any issues), please reply here with What to do if you already signed the CLAIndividual signers
Corporate signers
ℹ️ Googlers: Go here for more info. |
@googlebot I signed it! |
997f981
to
696506e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the PR!
This change looks good to me, it just needs to be updated with the latest changes from develop. This quarter we did a large refactor to migrate to closure modules and the syntax and style of declaring functions has changed slightly.
If it easier to create a new PR, I can also review that instead.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've manually resolved the merge conflict, no action needed.
Thanks again for the PR!
Thank you @moniika! |
* feat: add top level `save` and `load` functions for JSO serialization (#5132) * Add top-level serialization API * Add using JSO system in serializer tests * Make compiler happy * feat: add deserialization of JSO block state (#5137) * Fixup tests * Add deserialization of blocks * Cleanup * PR commnts * feat: add initialization of blocks and event firing (#5166) * Change playground to use JSO system * Add tests for initialization and events * Add initialization of blocks * PR Comments * fix: touch up some deserialization behavior (#5181) * Add parameter for recording undo. This sets up the most common default behavior, but also makes it clear to people that it is happening, because it might not be expected. * Add grouping of events * Add text width caching * Add disabling workspace resizing * Add performance optimizations * Respect nulls from blocks.save * Cleanup from rebase * PR Comments * Cleanup from rebase * feat: upgrade block defs to have JSO serialization hooks (#5329) * Respect nulls from blocks.save * Upgrade list blocks to use JSO serialization * Upgrade logic blocks to use JSO serialization * Upgrade math blocks to use JSO serialization * Upgrade text blocks to use JSO serialization * Upgrade procedure blocks to use JSO serialization * Add more mutator tests * Fix firing enabled events * PR Comments * Add throwing exceptions during deserialization (#5200) * Add exception definitions * Add tests for throwing errors during deserialization * Add actually throwing exceptions * Cleanup * Cleanup * Fix tests * fix: PR Comments * feat: add serialization and deserialization of comments (#5216) * Add tests for (de)seralizing icons * Add logic for (de)serializing icons * fix: add docs for saveIcons * fix: add timeout for setting comment visible * Add serializing shadows as JSOs for the JSO system (#5246) * Move existing tests into new suite * Add tests for setShadowState * Add assertions for serialization * Unskip serialization tests * Add logic to handle shadows in both systems * Uncomment tests * fix: add access modifiers to new comment funcs * fix: fixup types * fix: remove addNextBlocks = true * feat: add real child of shadow errors * fix: types * fix: insertion markers and change events to work with JSO hooks (#5378) * fix: add tests for fixing change events * fix: change events and insertion markers * fix: build: * fix: remove duplicate code * fix: requires * feat: adds hooks for serializing plugins (#5276) * Reformat registry tests * Add tests for plugin hooks * Add plugin hooks for serialization * Switch PluginSerializer to IPluginSerializer * fix: types * fix: PR comments * fix: tests * cleanup: formatting * fix: types * feat: add respecting case in registry * feat: add separate registry for serializers * fix: rename serialiation registry alias * fix: move serializer interface into interface dir * fix: remove some attributes from the JSO system (#5356) * fix: remove some attributes from the JSO system Remove the deletable, movable, and editable attributes. Normally this would be a breaking change, but because this isn't released yet it's just a patch. * fixup: serializer tests * feat: add throwing errors for bad shadows (#5330) * fix: add throwing errors for bad shadows * tests: add tests for setShadowDom * fix: redo disconnect from shadow bug * fix: not being able to specifying variable names in toolbox (#5408) * fix: not being able to specifying variable names in toolbox * fix: id -> ID * feat: add support for defining toolboxes using pure json (#5392) * feat: add recycling to core * feat: add support for json block definitions in flyout * tests: reorganize tests * tests: add tests for generating contents * Fixup reycling * tests: add tests for recycling * fix: types * fix: lint * fix: PR comments * fix: creating blocks from flyout * test: add test block to playground * fix: types * feat: add support for enabled * fix: serializing edited shadows (#5424) * fix: serializing shadows * tests: add tests for serializing editted shadows * fix: cereal backwards compatibility (#5421) * fix: remove duplicate serialization hook implementations * feat: add backwards compatibility to field serialization * feat: add support for serializing old mutator hooks * fix: build * fix: refactor field changes into helpers * fix: typo * fix: removing xmlns * tests: add tests for serialization and deserialization of mutator hooks * fix: switch to early returns * fix: copy paste with json system (#5423) * fix: copy paste w/ json system * fix: pr comments * fix: dragging blocks from the flyout that only have XML hooks (#5422) * fix: positioning of flyout blocks * fix: move flyout to JSON system * cleanup: remove test code from playground * fix: loading blocks in RTL * fix: create and delete events, and the trashcan (#5425) * fix: create and delete events with JSON serialization * fix: trashcan with JSON serialization * fix: build * fix: tests * fix: PR comments * fix: types * fix: tests * fix: update code demo to include JSON (#5444) * fix: update code demo to include JSON * fix: do property renames * fix: change XML to place holder * fix: PR comments * fix: dragging variables from flyout (#5434) * fix: dragging variables from flyout * fix: rename positionBlock_ to positionNewBlock_ * fix: type * fix: try alternative method for handling variables in flyout * fix: project cereal cleanup (#5398) * fix: make exception constructors package * fix: rename blocks.load to blocks.append * fix: inline docs * fix: consistency in block serialization * fix: remove unexported functions * fix: interface requires * fix: tag TODO with issue number * fix: remove eslit disables * chore: rebuild deps after rebase * Make several exported private fields/methods TEST_ONLY (#5479) * refactor: Remove remaining references to Blockly.* from goog.modules (#5505) * Fix jsdoc in core/utils/useragent.js * Fix jsdoc in core/serialization/variables.js * chore: remove deprecated functions (#5509) * Remove declareLegacyNamespace from block-related files. * fix: enable missingRequire in build_tasks (#5510) * chore: remove deprecateLegacyNamespace from keyboard nav files * chore: Remove deprecateLegacyNamespace & fix tests * chore: export from the blockly file * chore: named exports for block* files (#5512) * chore: named export for block.js * chore: named export for block_drag_surface.js * chore: named export for block_dragger.js * chore: named export for block_svg.js * Fix import ordering * chore: fix imports using requireType * Remove extra require * Remove references to fully qualified namespace * Remove duplicate declaration * Fix bug in variable_map that was introduced during merge conflict resolving * chore: named exports for keyboard_nav* files (#5517) * chore: update dev tools dev dependency (#5516) * Update package-lock.json * fix: JSDoc generation for modules without classes * fix: updates the release task to build typings for msgs (#5495) * Migrate core/field_angle.js to to goog.module syntax (#5521) Move angle picker field to goog module and ES6. * chore: Remove declareLegacyNamespace() from toolbox/ files * Remove unecessary deprecation warnings stubs * Catch warnings logged during registry test * Initialize generators in generator tests * Remove usage of deprecated method in onKeyDown handler * Update captureWarnings usages to assertWarnings * Update test block in trashcan_test to not trigger warning log * Remove unecessary block variable block definition * chore: Remove declareLegacyNamespace() from field_* files * chore: Remove declareLegacyNamespace() from files in core (#5525) * chore: Remove declareLegacyNamespace() from files in core * fix: Update missing/errant re-exports in blockly.js * chore: Remove declareLegacyNamespace() from theme files * refactor: Rename Blockly.connectionTypes to Blockly.ConnectionType (#5407) * Renamed Blockly.connectionTypes to Blockly.ConnectionType * Renamed core/connection_types.js to connection_type.js * Add entry to renamings.js for renaming of Blockly.connectionTypes Co-authored-by: Christopher Allen <cpcallen+git@google.com> * chore: Remove declareLegacyNamespace from renderers (#5528) * chore: Remove declareLegacyNamespace from Geras renderer * chore: Remove declareLegacyNamespace from minimalist renderer * chore: Remove declareLegacyNamespace from thrasos renderer * chore: Remove declareLegacyNamespace from zelos renderer * fix: Move debugger functionality out of Blockly.blockRendering to avoid dependency cycle when re-exporting submodules * chore: Remove declareLegacyNamespace from Blockly.blockRendering.* * Fix typo * chore: Remove declareLegacyNamespace() from files under interfaces/* * refactor: Migrate `Blockly.ConnectionType` to named exports (#5533) * refactor: Migrate Blockly.ConnectionType to named exports * Add corresponding information to renamings.js * Reexport global.globalThis as Blockly.utils.global (#5534) Fixes #5503 This makes the value of Blockly.utils.global the same as it was before PR #5451. * refactor: Rename `Blockly.Blocks`, migrate to named exports (#5515) * Rename Blockly.Blocks to Blockly.blocks Because it does not export a type as its default export. Part of #5073. * Name default export of Blockly.blocks Blocks. Use named exports in Blockly.blocks by giving the former default export the name Blocks. Part of #5153. * Reexport Blockly.blocks from blockly.js * Document the format of renamings.js better. * chore: remove declareLegacyNamespace from events (#5532) - Adds an extra events/utils.js file to hold helper methods related to events. * Fix typo in alias * fix: Add hack to copy accessors to global Blockly namespace object (#5536) Ugly, but it works. * fix: blocks dragged from RTL flyout being incorrectly positioned * fix: infinite loop when using defineProperties (#5549) * Add namespace and alias annotations to jsdoc (#5550) * Add annotations to files under core/events * Add annotations to files under core/interfaces * Add annotations to files under core/keyboard_nav * Add annotations to files under core/renderers * Add annotations to files under core/serialization * Add annotations to files under core/theme * Add annotations to files under core/toolbox * Add annotations to files under core/utils * Add annotations to files under core * Add missing @alias annotations (#5559) * Update @package annotations (#5558) * Add JSDoc to theme classes. (#5551) * Add JSDoc to theme classes. * Add missing alias annotations (#5561) * chore: Rollup of all Q3 message changes (#5564) Courtesy of Translatewiki * Replace namespace annotation with class annotation in files that define a class (#5566) * fix: JSDoc improvments for accessors, etc. (#5567) * fix: Revert removal of documentation for get/set accessors. This partially reverts commit 839cb7b, "fix: infinite loop when using defineProperties (#5549)" * docs: Use @name to attach JSDocs to accessors Reintroduce documentation for deprecated properties where it was removed when converting them to accessors. * docs: Remove duplicate @package declarations * fix: Fix eslint and compiler errors/warnings * fix: Minor JSDoc tweaks to address comments on PR #5567 * fix: Use require instead of requireType for interfaces (#5568) But only if the interface is used in an @implements or @extends declaration. Fixes #5450 * fix: Fix JS Spaghetti button. (#5569) * fix: RTL copy-paste and duplicate (#5560) * fix: Fix Block Factory preview (#5571) It's OK to modify the contents of Blockly.Blocks, but it's not OK to try to replace this export with a completely different object. Fixes #5556 * chore: rebuild for release (#5573) * chore: Bump @wdio/selenium-standalone-service from 7.13.0 to 7.13.2 (#5546) Bumps [@wdio/selenium-standalone-service](https://github.com/webdriverio/webdriverio) from 7.13.0 to 7.13.2. - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/compare/v7.13.0...v7.13.2) --- updated-dependencies: - dependency-name: "@wdio/selenium-standalone-service" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: Bump mocha from 9.1.1 to 9.1.2 (#5574) Bumps [mocha](https://github.com/mochajs/mocha) from 9.1.1 to 9.1.2. - [Release notes](https://github.com/mochajs/mocha/releases) - [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md) - [Commits](https://github.com/mochajs/mocha/compare/v9.1.1...v9.1.2) --- updated-dependencies: - dependency-name: mocha dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix: Fix errors in injected CSS (#5587) * feat: add Blockly.Extensions.isRegistered function (#5500) Co-authored-by: Monica Kozbial <6621618+moniika@users.noreply.github.com> * chore: Run clang-format on core/*.js (#5589) * Run clang-format on core/*.js * Revert changes for css formatting * fix: Make update_metadata.sh work on macOS (#5590) * fix: clear dropdown div before rendering content (#5429) * Changes Css.register API to accept string param (#5472) * Chnages Css.register API to accept string param * Address self review comments and nits * Fix code-comment * Address minor review comments and nits * Allow passing an array of strings when registering CSS * Fix lint errors Co-authored-by: Aaron Dodson <adodson@google.com> * Add Croatian to Code demo (#5583) Contributed courtesy of Lidija Kralj. * chore: Convert == to === and != to !== where possible. (#5599) * Remove @author tags (#5601) Our files are up to a decade old, and have churned so much, that the initial author of the file no longer has much meaning. Furthermore, this will encourage developers to post to the developer group, rather than emailing Googlers (usually me) directly. * fix: Don't kludge accessors in compiled mode (#5591) In compiled mode we don't need to add exports to the global Blockly object because they'll already be there - and attempting to do so causes problems when a project imports multiple separate copies of Blockly (which it shouldn't, but many plugins do). This is part of the fix for google/blockly-samples#902. * chore: Bump google-closure-compiler from 20210601.0.0 to 20211006.0.0 (#5592) * Bump google-closure-compiler from 20210601.0.0 to 20211006.0.0 Bumps [google-closure-compiler](https://github.com/google/closure-compiler-npm) from 20210601.0.0 to 20211006.0.0. - [Release notes](https://github.com/google/closure-compiler-npm/releases) - [Commits](https://github.com/google/closure-compiler-npm/compare/v20210601.0.0...v20211006.0.0) --- updated-dependencies: - dependency-name: google-closure-compiler dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> * Remove deleted option from Closure Compiler arguments The closure compiler no longer supports the undefinedNames warning group (and indeed even prior to deletion it didn't do anything for some time). Per @lauraharker, enabling checkVars, missingProperties and strictMissingProperties gives about the same check coverage; we already enable the first two, while the third was already listed but commented out for the time being. * Provide externs for base.js functions Per comment: fixes compiler errors from build:debug. * Fix erroneous import Blockly.serialization.ISerializer uses named exports, so we need to destructure the import. Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Christopher Allen <cpcallen+git@google.com> * fix: group context menu collapse blocks events (#5501) * Add Croatian to Code demo (#5583) (#5611) Contributed courtesy of Lidija Kralj. * fix: Positioning of pasted/duplicated blocks in LTR workspaces (#5613) * Bump yargs from 16.2.0 to 17.2.1 (#5603) Bumps [yargs](https://github.com/yargs/yargs) from 16.2.0 to 17.2.1. - [Release notes](https://github.com/yargs/yargs/releases) - [Changelog](https://github.com/yargs/yargs/blob/main/CHANGELOG.md) - [Commits](https://github.com/yargs/yargs/compare/v16.2.0...v17.2.1) --- updated-dependencies: - dependency-name: yargs dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump webdriverio from 7.13.0 to 7.14.1 (#5594) Bumps [webdriverio](https://github.com/webdriverio/webdriverio) from 7.13.0 to 7.14.1. - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/compare/v7.13.0...v7.14.1) --- updated-dependencies: - dependency-name: webdriverio dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump mocha from 9.1.2 to 9.1.3 (#5616) Bumps [mocha](https://github.com/mochajs/mocha) from 9.1.2 to 9.1.3. - [Release notes](https://github.com/mochajs/mocha/releases) - [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md) - [Commits](https://github.com/mochajs/mocha/compare/v9.1.2...v9.1.3) --- updated-dependencies: - dependency-name: mocha dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: update dependabot messages and labels (#5618) * Bump concurrently from 6.2.0 to 6.3.0 (#5581) Bumps [concurrently](https://github.com/open-cli-tools/concurrently) from 6.2.0 to 6.3.0. - [Release notes](https://github.com/open-cli-tools/concurrently/releases) - [Commits](https://github.com/open-cli-tools/concurrently/compare/v6.2.0...v6.3.0) --- updated-dependencies: - dependency-name: concurrently dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): Bump google-closure-deps from 20210601.0.0 to 20210808.0.0 (#5360) Bumps [google-closure-deps](https://github.com/google/closure-library) from 20210601.0.0 to 20210808.0.0. - [Release notes](https://github.com/google/closure-library/releases) - [Commits](https://github.com/google/closure-library/compare/v20210601...v20210808) --- updated-dependencies: - dependency-name: google-closure-deps dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump typescript from 4.3.2 to 4.4.4 (#5617) Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.3.2 to 4.4.4. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Commits](https://github.com/Microsoft/TypeScript/compare/v4.3.2...v4.4.4) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: create release.yml (#5588) * Create release.yml * chore: update release.yml * refactor: Migrate to named exports (#5623) * refactor: Migrate to named exports * fix: Sort requires * fix: Remove duplicate deps * chore: auto-fix violations of comma-dangle rule (#5625) * chore: replace var with const and let in blocks directory (#5626) * chore: use const and let in blocks/lists.js * chore: use const and let in blocks/logic.js * chore: use const and let in blocks/loops.js * chore: use const and let in blocks/math.js * chore: use const and let in blocks/procedures.js * chore: use const and let in blocks/text.js * chore: use const and let in blocks/variables_dynamic.js * chore: use const and let in blocks/variables.js * fix: updateShape_ variable scoping * fix: declarations in switch clauses * other: change while loops to for loops * fix: fix violation of no-cond-assign * chore: runs clang format on all files (#5627) * Bump selenium-standalone from 7.1.0 to 8.0.3 (#5632) Bumps [selenium-standalone](https://github.com/webdriverio/selenium-standalone) from 7.1.0 to 8.0.3. - [Release notes](https://github.com/webdriverio/selenium-standalone/releases) - [Changelog](https://github.com/webdriverio/selenium-standalone/blob/main/HISTORY.md) - [Commits](https://github.com/webdriverio/selenium-standalone/compare/v7.1.0...v8.0.3) --- updated-dependencies: - dependency-name: selenium-standalone dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: Update deps.js with modified lang values (#5636) This updates should have been included in PR #5626 but were apparently omitted (and the omission not noted by the code reviewer either!) * chore: replace more uses of var with const and let (#5628) * chore: fix uses of var in core/block_dragger * chore: fix uses of var in core/extensions.js * chore: fix uses of var in core/field_multilineinput.js * chore: fix uses of var in assorted core files * chore: fix uses of var in node test runner and playground screenshot code * fix: undefined return from measureFontMetrics * fix: violations of no-const-assign * chore: only one variable declaration per line * chore: run eslint--fix for no-var rule in tests/mocha (#5637) * chore: adds a check for properly formatted files (#5624) * chore: add check for clang format * chore: updates clang format script * fix: Change Marker in blockly.js becuase of the usage of the Marker class as a named export (#5629) Fixed marker as per style guide and the export of tabnavigator as well. Fixes #5606. * chore: replace var with let and const in mocha tests (#5638) * chore: replace var with let and const in mocha tests * chore: change let to const in changed lines * fix: Fix mutators when compiled with renames. (#5644) Previous code not compatible with advanced compilation since 'mutationToDom' and other function names were hardcoded in strings. * chore: update generators/dart.js to const and let (#5646) * Add feedback on expiry page. (#5648) Blank pages are bad for confirming anything happened. * Bump @wdio/selenium-standalone-service from 7.13.2 to 7.16.1 (#5635) Bumps [@wdio/selenium-standalone-service](https://github.com/webdriverio/webdriverio) from 7.13.2 to 7.16.1. - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/compare/v7.13.2...v7.16.1) --- updated-dependencies: - dependency-name: "@wdio/selenium-standalone-service" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: update dependabot messages and labels (#5653) The same as #5618, but against master because dependabot ignores changes on develop. * chore: replace var with const and let in python block generators (#5650) * chore: replace var with const and let in python block generators * chore: update test deps * chore: update bracket usage in switch statements * chore: update language generators to const and let (#5647) * chore: update generators/javascript.js to const and let * chore: update generators/lua.js to const and let * chore: update generators/php.js to const and let * chore: update generators/python.js to const and let * chore: update var to const and let in dart block generators (#5654) * chore: adds an action to assign reviewers from requested reviewers(#5642) * fix(zelos): typo (#5649) * Bump selenium-standalone from 8.0.3 to 8.0.4 (#5651) Bumps [selenium-standalone](https://github.com/webdriverio/selenium-standalone) from 8.0.3 to 8.0.4. - [Release notes](https://github.com/webdriverio/selenium-standalone/releases) - [Changelog](https://github.com/webdriverio/selenium-standalone/blob/main/HISTORY.md) - [Commits](https://github.com/webdriverio/selenium-standalone/compare/v8.0.3...v8.0.4) --- updated-dependencies: - dependency-name: selenium-standalone dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: Fix permissions for Assign requested reviewers workflow (#5666) * refactor: Inline assign_reviewers script to avoid checkout Per https://securitylab.github.com/research/github-actions-preventing-pwn-requests/ it is not safe to do a checkout of the submitter-supplied code AND THEN RUN IT (via require). This is pretty bad. We want to give this script more permissions by running it `on: [pull_request_target]` (instead of `pull_request`); this would give it permission to modify the PR (e.g. add comments, change assignment). While it would be OK to do a checkout with default parameters (which in `pull_request_target` would check out *our* branch rather than the submitted one) it simplest just to inline this small script and thereby obviate the need to do a checkout at all. * chore: Give assign_reviewers action required permissions Changing it from `on: [pull_request]` to `on: [pull_request_review]` will give the action write access to our repository, allowing it to change the assignment of the PR. This is now safe as the script does not ever check out any submitter-supplied code. * docs: Comment tweaks for assign_reviewers.yml * Normalize ++x to x++. (#5660) There are only 10 instances of ++x in our codebase, compared with over 500 instances of x++. The stlye guide has no opinion on which to use, nor do I. But the lack of consistency was making regex searches for bugs more difficult. * chore: Update dependabot labelling config (#5664) Label all dependabot PRs as "PR: dependencies", following @rachel-fenichel's recent rationalisation of issue/PR labels. * fix: Don't crash when unable to post comment to PR (#5669) ... by not ever posting such comments from this workflow. There will be a separate PR for the other workflow that does post comments, because it needs to be in the master branch. Part of #5659. * chore: Create separate report_clang_format workflow in master branch (#5670) The initial version of this workflow just uses `console.log` to report the context of the `context` object. It is hoped that there will be enough information in this context to identify the PR to comment on, without the `check_clang_format` workflow having to upload a 'build artefact' of some kind - see example of what I hoe to avoid starting at `ReceivePR.yml` here: https://securitylab.github.com/research/github-actions-preventing-pwn-requests/ A follow-up PR will (if possible) add the code to create comments when `check_clang_format` fails. Part of #5659. * chore: Remove spurious extra `on` clause in report_clang_format.yml (#5671) Removes an unwanted `on` clause that was overlooked in #5670 by author and reviewer. * chore: More spelunking in GitHub Action data (#5673) Looking for information about PR that triggered original check_clang_format run. * docs: Fix a few typos (#5655) There are small typos in: - closure/goog/base.js - core/contextmenu_items.js - core/insertion_marker_manager.js - core/toolbox/collapsible_category.js - demos/blockfactory/workspacefactory/wfactory_controller.js - demos/blockfactory/workspacefactory/wfactory_view.js - tests/mocha/field_colour_test.js Fixes: - Should read `updates` rather than `udpates`. - Should read `unhighlighting` rather than `unhiglighting`. - Should read `then` rather than `tehn`. - Should read `modified` rather than `modifed`. - Should read `different` rather than `diffferent`. - Should read `currently` rather than `currenly`. - Should read `browser` rather than `broswer`. * chore: update javascript block generators to const and let (#5661) * chore: update php block generators to const and let (#5663) * Bump webdriverio from 7.14.1 to 7.16.3 (#5652) Bumps [webdriverio](https://github.com/webdriverio/webdriverio) from 7.14.1 to 7.16.3. - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/compare/v7.14.1...v7.16.3) --- updated-dependencies: - dependency-name: webdriverio dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: update lua block generators to const and let (#5662) * fix: isPrime block should cast str as num (#5680) Fixes #5678 * fix: bad order of checks for setting flyout visibility (#5681) * chore: fix redeclares in tests * fix: bad order of checks for setting flyout visibility * chore: applies fixes to clang format (#5677) * chore: update the clang-format version * chore: specify the clang format version to use * chore: remove style tag since it will default to file * chore: apply prefer-const rule fixes in mocha tests (#5682) * chore: remove references to JSON extraction (#5683) * chore: revert github action (#5675) * fix: Don't try to set text fields to null on cancel (#5690) Mobile users get a window.prompt as an input, if they press the cancel button the return value is null. Don't attempt to set the value of the field to null. Causes errors in the custom note field which inherits from FieldTextInput. Detected in Blockly Games Music. * fix: Don't try to set text fields to null on cancel (#5692) Mobile users get a window.prompt as an input, if they press the cancel button the return value is null. Don't attempt to set the value of the field to null. Caused errors in the custom note field which inherits from FieldTextInput. Detected in Blockly Games Music. This PR is for the master branch and includes a recompile. The develop branch has changed enough that a cherrypick from develop to master won't work. The bug in question represents a significant number of the errors being reported from Blockly Games. * fix!(blocks): Rename Blockly.Blocks.* modules to Blockly.blocks.* (#5696) Use Blockly.blocks.* for blocks modules, leaving the Blockly.Blocks name for the block dictionary object. This resolves a problem with advanced compilation of Blockly Games, where, in the compressed output, (the minified name of) Blockly.Blocks gets overwritten, with the dictionary object defined in core/blocks.js being replaced by an empty namespace object created by the provides of Blockly.Blocks.* in blocks/*.js. Without this fix, some block definitions end up being created in the dictionary and some on the namespace object—with chaos predictably ensuing. * chore: fix more lint (#5676) * chore: fix assorted lint * chore: clang-format * chore: clang-format * chore: add command to launch mocha tests (#5679) * chore: update deps.js, deps.mocha.js (#5698) * chore: fix more lint (#5700) * chore: fix 918 violations of comma-dangle rule * chore: fix 2 violations of comma-spacing * chore: fix 13 violations of padded-blocks * chore: fix 50 violations of block-spacing * chore: fix one violation of semi-spacing * chore: fix 4 violations of space-before-blocks * chore: fix 38 violations of object-curly-spacing * chore: fix 30 violations of key-spacing * chore: fix 3 violations of quote-props * chore: fix 5 violations of arrow-parens * chore: fix 8 violations of no-tabs * chore: allow uncommented helper functions in mocha tests * chore: fix several more lint errors * chore: tweak eslint configuration in core and tests * chore: rebuild for tests * fix: Quote Msg prop name to survive compile (#5703) * chore(deps): bump webdriverio from 7.16.3 to 7.16.5 (#5701) Bumps [webdriverio](https://github.com/webdriverio/webdriverio) from 7.16.3 to 7.16.5. - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/compare/v7.16.3...v7.16.5) --- updated-dependencies: - dependency-name: webdriverio dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update dependabot.yml (#5705) * chore(deps): bump http-server from 13.0.2 to 14.0.0 (#5657) Bumps [http-server](https://github.com/http-party/http-server) from 13.0.2 to 14.0.0. - [Release notes](https://github.com/http-party/http-server/releases) - [Commits](https://github.com/http-party/http-server/compare/v13.0.2...v14.0.0) --- updated-dependencies: - dependency-name: http-server dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @blockly/theme-modern from 2.1.19 to 2.1.24 (#5630) Bumps [@blockly/theme-modern](https://github.com/google/blockly-samples/tree/HEAD/plugins/theme-modern) from 2.1.19 to 2.1.24. - [Release notes](https://github.com/google/blockly-samples/releases) - [Commits](https://github.com/google/blockly-samples/commits/@blockly/theme-modern@2.1.24/plugins/theme-modern) --- updated-dependencies: - dependency-name: "@blockly/theme-modern" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump webdriverio from 7.16.5 to 7.16.6 (#5704) Bumps [webdriverio](https://github.com/webdriverio/webdriverio) from 7.16.5 to 7.16.6. - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/compare/v7.16.5...v7.16.6) --- updated-dependencies: - dependency-name: webdriverio dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump @wdio/selenium-standalone-service (#5708) Bumps [@wdio/selenium-standalone-service](https://github.com/webdriverio/webdriverio) from 7.16.1 to 7.16.6. - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/compare/v7.16.1...v7.16.6) --- updated-dependencies: - dependency-name: "@wdio/selenium-standalone-service" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump concurrently from 6.3.0 to 6.4.0 (#5710) Bumps [concurrently](https://github.com/open-cli-tools/concurrently) from 6.3.0 to 6.4.0. - [Release notes](https://github.com/open-cli-tools/concurrently/releases) - [Commits](https://github.com/open-cli-tools/concurrently/compare/v6.3.0...v6.4.0) --- updated-dependencies: - dependency-name: concurrently dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: Move functions from utils (#5706) * chore: move functions from utils to more specific files * chore: use new names for utils functions * chore: run clang-format * chore: add deprecation warnings back to utils.js * chore: move remaining functions out of utils.js (#5714) * chore: move arrayRemove to a new utils.array namespace * chore: move getBlockTypeCounts out of utils.js * chore: remove last functions from utils.js * chore: reorder imports * chore: add re-export for runAfterPageLoad * refactor: Update uncompiled-mode dependency loading for playground, tests (#5715) * chore: rename module Blockly.blocks.Lists to ....lists All the other Blockly.blocks modules have lower-case names. This one being named with an upper-case initial appears to have been a typo on my part. This module name is not mentioned anywhere else in the source code (though it will be soon!) so no other files need to be edited. Further, it does not appear anywhere in the last release (which before PR #5696) so it is not necessary to add an entry in renamings.js for this change. * chore(build): Rationalise deps.js, deps.mocha.js * Include blocks/*.js (Blockly.blocks.*) in tests/deps.js, since these modules are used in the playground. (They are goog.provide modules loaded via <script> tags, so their absence from deps.js does not cause errors - but it will when they are migrated to goog.module and must be loaded via goog.require.) * Filter the entries in deps.mocha.js so that it includes only the additional mocha test modules (i.e. those not mentioned in deps.js already). * refactor: Load blocks and generators using goog.require * chore: fix or ignore remaining lint (#5709) * chore: fix or ignore remaining lint * chore: fix bad annotations * chore: use push for array concatenation * chore: revert use of spread for array operations * chore: move remaining function definitions out of blockly.js (#5699) * chore: move remaining function definitions out of blockly.js * chore: record renamings * chore: add aliases to moved function jsdoc * chore: add deprecation warnings in blockly.js * chore: fix bad merge * chore: move functions in response to PR comments * chore: move isNumber to utils.string * chore: enable eslint-config-google (#5717) * chore(deps): update package-lock.json * chore(deps): install eslint-config-google as a dev dependency * chore: enable eslint-config-google * chore: fix missing commas * chore: Record renamings for named exports (#5719) * chore: make Blockly.common.setSelected package and update docs (#5728) * chore: moves the public loop mixin into its own file (#5730) * feat: Enable the creation of concurrent, but not connected, output and previous connectors (#5702) * Add new connection checks and tests * Enable concurrent output and previous connections on blocks * and remove assumption from unplug(). * Make changes compatible with new module system * Fix issue do to Connection class change. . and change some var's to const's now that that appears to be ok ;-) * Fix more code that assumes only one of output and previous connections * Change function name as per PR comment * Fix lint errors * Fix clang format issues * fix: Stop throwing error when PointerEvent.pageX is 0. (#5727) The e.pageX (and .pageY) checks aren't strict enough. 0 is a perfectly valid coordinate. Checking for the existence of changedTouches is an easier way to distinguish a PointerEvent from a TouchEvent. * chore(deps): bump google-closure-deps from 20210808.0.0 to 20211107.0.0 (#5733) Bumps [google-closure-deps](https://github.com/google/closure-library) from 20210808.0.0 to 20211107.0.0. - [Release notes](https://github.com/google/closure-library/releases) - [Commits](https://github.com/google/closure-library/compare/v20210808...v20211107) --- updated-dependencies: - dependency-name: google-closure-deps dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump google-closure-compiler (#5707) Bumps [google-closure-compiler](https://github.com/google/closure-compiler-npm) from 20211006.0.0 to 20211107.0.0. - [Release notes](https://github.com/google/closure-compiler-npm/releases) - [Commits](https://github.com/google/closure-compiler-npm/compare/v20211006.0.0...v20211107.0.0) --- updated-dependencies: - dependency-name: google-closure-compiler dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(build): Use chunked compilation (#5721) * chore(build): Add "all" modules for blocks & generators These modules (Blockly.blocks.all and Blockly.<Generator>.all) will be the entry points for the corresponding chunks. They also make it easier to pull in all the modules in each package (e.g. for playground and tests). It is necessary to set the Closure Compiler dependency_mode to SORT_ONLY as otherwise it tries to compile the "all" modules before their dependencies, which fails. The only impact on the _compressed.js files is the addition of a short string to the very end of each file, e.g.: var module$exports$Blockly$JavaScript$all={}; * chore(deps): Add devDependency on closure-calculate-chunks * feat(build): First pass at chunked complation Add a new buildCompiled gulp target (npm run build:compiled) that uses closure-calculate-chunks to do chunked compliation of core/, blocks/ and generators/ all in a single pass. This work is incomplete: the resulting *_compressed.js files don't (yet) have UMD wrappers. * chore(build): Generate chunk wrappers A first pass; this does not have support for a namespace object yet. * refactor(build): Use chunked compilation by default Remove old "compressed" gulp tasks in favour of new "compiled" task. * chore(build): Remove cruft from buildCompiled Remove unneeded `done` parameter and commented-out options that had been cargo-culted from the old build pipeline. * fix(build): Fix test failures caused by new build pipeline - Exclude closure/goog/base.js from compiler input; use externs/goog-externs.js instead. - Have the build:debug and build:strict targets only build the first chunk (blockly_compressed.js). - Fix namespace entries for blocks and generators. * fix(build): Fix build failures on node v12 closure-calculate-chunks requires node.js v14 or later. When running on node.js v14 or later have getChunkOptions save the output of closure-calculate-chunks to scripts/gulpfiles/chunks.json. When running on older versions of node.js have it use this checked-in, cached output instead of attempting to run closure-calculate-chunks. * chore(build): enable --rename_prefix_namespace This will allow modules in blocks/ and generators/ to use goog.require to obtain the exports object of goog.modules from core/. * fix(build): Always build all chunks The previous commit enabled --rename_prefix_namespace option to Closure Compiler, and this causes the buildCompressed target to work fine when run without --debug or --strict, but adding either of those flags (as for example when `npm test` runs `npm run build:debug`) causes an issue: - Because of many compiler errors in blocks/ and generators/, a previous commit added a hack to only build the first chunk when doing debug/strict builds. - When asked to build only one chunk, Closure Compiler ignores the --rename_prefix_namespace flag, because it 'correctly' infers that there are no later chunks that will need to access global variables from the first chunk. - This causes a test failure, because `npm test` first runs `npm run build`, which generates a valid blockly_compressed.js, but this is then overrwritten by an invalid one when it next runs `npm run build:debug`. (The invalid one is missing all `$.` prefixes on 'global' variables, including on Blockly, so the wrapper's last two lines - "$.Blockly.internal_ = $;" and "return $.Blockly" - fail.) The fix is to add appropriate @suppress annotations to blocks/*.js and generators/**/*.js and then remove the first-chunk-only hack. * refactor(build): Just build once Since the previous commit caused `npm run build:debug` to do everything that `... build:compressed` does - and to produce byte-for-byte identical output - it doesn't make sense to run both when testing. To that end: - Replace the build:debug and build:strict package scripts that did `gulp buildCompressed --...` with new scripts build-debug and build-strict that do `gulp build --...` instead. (The target names are changed so as to extend our existing naming convention as follows: a target named "foo:bar" does some sub-part of the job done by target "foo", but a target named "foo-bar" does all the work of the target "foo" with some extra options.) - build:debug:log and build:strict:log are similarly replaced with build-debug-log and build-strict-log. - Modify run_all_tests.js to just do `npm run build-debug` instead of doing both `npm run build` and `npm run build:debug`. - Also remove the 'build:blocks' script that should have been removed when the buildBlocks gulp task was deleted previously. * refactor(build): Compile with base_minimal.js instead of base.js Introduce a (very!) cut-down version of closure/goog/base.js named base_minimal.js that is used as input to the compiler as an alternative to using externs/goog-externs.js (which will be deleted once the buildAdvancedCompilationTest target has been updated). This will allow use of goog.setTestOnly since it will now exist in compiled mode, and allows the changes made in 5b112db to filter base.js out of the files for the first chunk to be reverted. (It also obliges a change to the compiled-mode check in blockly.js.) * fix(build): Fix buildAdvanceCompilationTest - In build_tasks.js: - Replace the old compile() function with a new one factored out of buildCompiled(). - Update buildAdvancedCompilationTest to use the new compile() and other helpers created in the meantime. - Remove no-longer-used maybeAddClosureLibrary(). - Remove externs/{block,generator,goog}-externs.js, which are no longer used by any compile pipeline. - Update core/blockly.js to fix issue with detection of compiled mode when using ADVANCED_OPTIMISATIONS. - Update only other use of globalThis, in core/utils/xml.js, to consistently treat it as a dictionary object. - Update instructions in tests/compile/index.html. This commit is sort-of-a-prerequisite to #5602; test:compile:advanced was previously working but the generated `main_compresed.js` would throw errors upon loading. * refactor: Rename `ALIGN` to `Align` and move from `constants.js` to `input.js` (#5742) This constant is used to specify the alignment of an Input, so it should live in the same file as the Input class. I've done this as a separate named export, but it could alternatively be made a static member of Input (i.e., Input.Align with only Input being exported by name). Where mocha tests were referring to Blockly.constants.ALIGN.* without actually requiring Blockly.constants, I have reverted them to refer to Blockly.ALIGN_* instead (pending conversion to named requries). Part of #5073. * Migrate `blocks/colour.js` to goog.module syntax (#5738) * Migrate blocks/colour.js to goog.module * Migrate blocks/colour.js named requires This causes an apparently harmless reordering of the files for the first chunk. * clang-format blocks/colour.js * chore(build): Update compiler & linter input language to ES2020 (#5745) Also: - Ensure that the `comma-dangle` rule will not be applied to function parameter lists (even when multi-line). - Update tests/node/.eslintrc.json to make the environment node-specific and not pinned to es6. * refactor: Migrate `blocks/procedures.js` to goog.module syntax (#5736) * Migrate blocks/procedures.js to goog.module * Migrate blocks/procedures.js named requires * clang-format blocks/procedures.js * chore: Factor common methods out of block definitions Addressing comments on PR #5736. * refactor: Migrate `blocks/lists.js` to `goog.module` syntax (#5746) * Migrate blocks/lists.js to goog.module * Migrate blocks/lists.js named requires * clang-format blocks/lists.js * chore: fix missing requires in generators (#5744) * chore: fix some missing requires in generators * chore: fix missing requires in dart block generators * chore: replace Blockly.isNumber with Blockly.utils.string.isNumber in generators * chore: fix more missing requires in block generators * feat: clarify variable and procedure constants (#5743) * chore: move dynamic category names into their respective files * feat: create NameType enum on Names * chore: use NameType enum for Names helper functions * docs: update comments for category names * refactor: Migrate `blocks/logic.js` to `goog.module` syntax (#5748) * refactor: Migrate blocks/logic.js to goog.module * refactor: Migrate blocks/logic.js named requires * chore: clang-format blocks/logic.js * fix: Prevent error when maxTrashcanContents is 0 (#5739) * fix: Prevent error when maxTrashcanContents is 0 Resolves #5729. * Eliminate ’smart’ quotes. * refactor: migrate `generators/dart.js` to `goog.module` syntax (#5749) * chore: migrate generators/dart.js to goog.module * chore: migrate generators/dart.js to named requires * chore: Update generators/dart.js to alphabetize imports Co-authored-by: Christopher Allen <cpcallen+github@gmail.com> Co-authored-by: Christopher Allen <cpcallen+github@gmail.com> * chore: revert #5730 (#5740) * chore: revert #5730 * fix: Fix compile failure due to incorrect visibility The CONTROL_FLOW_IN_LOOP_CHECK_MIXIN is intended to be used outside of blocks/ (it is, in particular, used in generators/) so it should have been marked @public from the beginning. * refactor: convert some js block generators to goog.module (#5750) * chore: migrate generators/javascript/text.js to goog.module * chore: convert generators/javascript/text.js to named requires * refactor: convert generators/javascript/variables.js to goog.module * refactor: convert generators/javascript/variables_dynamic to goog.module * refactor: Migrate `blocks/loops.js` to `goog.module` syntax (#5755) * refactor: Turn .getSurroundLoop into a (Block) method This considerably simplifies the code in the genrators, obviating the need for generators to import Blockly.Constants.Loops, and allowing the compiler to remove blocks/loops.js from the first (Blockly) chunk of the compilation. (The latter could and should have been arranged by making the generator chunks depend on the blocks chunk, but that is no longer necessary.) * refactor: Migrate blocks/loops.js to goog.module * refactor: Migrate blocks/loops.js named requires * chore: clang-format blocks/loops.js * fix: procedure callers now remove inputs properly (#5751) * refactor: convert generators/javascript/procedures.js to goog.module (#5754) * refactor: convert generators/javascript/procedures.js to goog.module * refactor: convert generators/javascript/procedures.js to named requires * chore: run clang-format * refactor: convert some js block generators to goog.module (#5756) * refactor: convert generators/javascript/colour.js to goog.module * refactor: convert generators/javascript/colour.js to named requires * chore: run clang-format * refactor: convert generators/javascript/lists.js to goog.module * refactor: convert generators/javascript/lists.js to named requires * chore: run clang-format * refactor: convert generators/javascript/logic.js to goog.module * refactor: convert generators/javascript/logic.js to named requires * chore: run clang-format * refactor: convert genereators/javascript/math.js to goog.module * refactor: convert generators/javascript/math.js to named requires * chore: rebuild deps.js * refactor: convert generators/javascript/loops.js to goog.module (#5758) * refactor: convert generators/javascript/loops.js to goog.module * refactor: convert generators/javascript/loops.js to named requires * chore: run clang-format * chore: rebuild deps.js * refactor: convert some block generators to goog.module (#5762) * refactor: convert generators/javascript.js to goog.module * refactor: convert generators/javascript.js to named requires * chore: run clang-format * refactor: convert generators/dart/variables.js to goog.module * refactor: convert generators/dart/variables.js to named requires * chore: run clang-format * refactor: convert generators/dart/variables_dynamic.js to goog.module * refactor: convert generators/dart/variables_dynamic.js to named requires * refactor: convert generators/dart/text.js to goog.module * refactor: convert generators/dart/text.js to named requires * chore: run clang-format * refactor: convert generators/dart/procedures.js to goog.module * refactor: convert generators/dart/procedures.js to named requires * chore: run clang-format * refactor: convert generators/dart/math.js to goog.module * refactor: convert generators/dart/math.js to named requires * chore: run clang-format * refactor: convert generators/dart/loops.js to goog.module * refactor: convert generators/dart/loops.js to named requires * chore: run clang-format * refactor: convert generators/dart/logic.js to goog.module * refactor: convert generators/dart/logic.js to named requires * chore: run clang-format * refactor: convert generators/dart/lists.js to goog.module * refactor: convert generators/dart/lists.js to named requires * chore: run clang-format * refactor: convert generators/dart/colour.js to goog.module * refactor: convert generators/dart/colour.js to named requires * chore: rebuild deps.js * chore: lint * refactor: Migrate `blocks/math.js` to `goog.module` syntax (#5765) * refactor: Migrate blocks/math.js to goog.module * refactor: Migrate blocks/math.js named requires * chore: clang-format blocks/math.js * refactor: convert some block generators to goog.module (#5769) * refactor: convert generators/lua/colour.js to goog.module * refactor: convert generators/lua/colour.js to named requires * chore: run clang-format * refactor: convert generators/lua/lists.js to goog.module * refactor: convert generators/lua/lists.js to named requires * chore: run clang-format * fix: use getListIndex helper function in lua list generators * refactor: convert generators/lua/logic.js to goog.module * refactor: convert generators/lua/logic.js to named requires * chore: run clang-format * refactor: convert generators/lua/loops.js to goog.module * refactor: convert generators/lua/loops.js to named requires * chore: run clang-format * refactor: convert generators/lua/math.js to goog.module * refactor: convert generators/lua/math.js to named requires * chore: run clang-format * refcator: convert generators/lua/procedures.js to goog.module * refactor: convert generators/lua/procedures.js to named requires * chore: run clang-format * chore: rebuild deps.js * refactor: convert generators/lua/text.js to goog.module * refactor: convert generators/lua/text.js to named requires * refactor: convert generators/lua/variables_dynamic.js to goog.module * refactor: convert generators/lua/variables_dynamic.js to named requires * chore: run clang-format on text.js * refactor: convert generators/lua/variables.js to goog.module * refactor: convert generators/lua/variables.js to named requires * chore: run clang-format * chore: make a lua generator function internal * chore: rebuild deps.js * refactor: convert some block generators to goog.module (#5770) * refactor: convert generators/lua.js to goog.module * refactor: convert generator/lua.js to named requires * chore: run clang-format * refactor: convert generators/php/colour.js to goog.module * refactor: convert generators/php/colour.js to named requires * chore: run clang-format * refactor: convert generators/php/lists.js to goog.module * refactor: convert generators/php/lists.js to named requires * chore: run clang-format * refactor: convert generators/php/logic.js to goog.module * refactor: convert generators/php/logic.js to named requires * chore: run clang-format * refactor: convert generators/php/loops.js to goog.module * refactor: convert generators/php/loops.js to named requires * chore: run clang-format * refactor: convert generators/php/math.js to goog.module * refactor: convert generators/php/math.js to named requires * chore: run clang-format * refactor: convert generators/php/procedures.js to goog.module * refactor: convert generators/php/procedures.js to named requires * chore: run clang-format * refactor: convert generators/php/text.js to goog.module * refactor: convert generators/php/text.js to named requires * chore: run clang-format * refactor: convert generators/php/variables.js to goog.module * refactor: convert generators/php/variables.js to named requires * chore: run clang-format * refactor: convert generators/php/variables_dynamic.js to goog.module * refactor: convert generators/php/variables_dynamic.js to named requires * refactor: convert generators/php.js to goog.module * refactor: convert generators/php.js to named requires * chore: run clang-format * chore: rebuild deps.js * refactor: convert python block generators to goog.module (#5771) * refactor: convert generators/python/colour.js to goog.module * refactor: convert generators/python/colour.js to named requires * chore: run clang-format * refactor: convert generators/python/lists.js to goog.module * refactor: convert generators/python/lists.js to named requires * chore: run clang-format * refactor: convert generators/python/logic.js to goog.module * refactor: convert generators/python/logic.js to named requires * chore: run clang-format * refactor: convert generators/python/loops.js to goog.module * refactor: convert generators/python/loops.js to named requires * chore: run clang-format * refactor: convert generators/python/math.js to goog.module * refactor: convert generators/python/math.js to named requires * chore: run clang-format * refactor: convert generators/python/procedures.js to goog.module * refactor: convert generators/python/procedures.js to named requires * chore: run clang-format * refactor: convert generators/python/text.js to goog.module * refactor: convert generators/python/text.js to named requires * chore: run clang-format * refactor: convert generators/python/variables_dynamic.js to named requires * refactor: convert generators/python/variables.js to named requires * chore: run clang-format * refactor: convert generators/python.js to goog.module * refactor: convert generators/python.js to named requires * chore: run clang-format * chore: remove spurious @private annotations * chore: rebuild * refactor: Migrate `blocks/text.js` to `goog.module` syntax (#5766) * refactor: Migrate blocks/text.js to goog.module * refactor: Migrate blocks/text.js named requires * refactor: Factor out common properties of text_prompt* blocks * clang-format blocks/text.js * fix: Fix lint warnings for PR #5766 * chore: correctly updates the compiled flag (#5767) * refactor: msg.js: use named export, remove declareLegacyNamespace (#5768) * chore: Remove declareLegacyNamespace from serialization folder (#5757) * refactor: Migrate `blocks/variables.js` to `goog.module` syntax (#5774) * refactor: Migrate blocks/variables.js to goog.module * refactor: Migrate blocks/variables.js named requires * chore: clang-format blocks/variables.js * chore: JSDoc grammar correction * feat: make checkAndDelete a public API (#5772) * fix: the advanced playground to work with dec 2021 release (#5775) * chore: updates the names for parsing (#5778) * chore: Simplify NPM package wrappers, improve chunk wrapper generator (#5777) * chore: Clean up NPM package module wrappers - Slightly improve documentation for each file based on helpful explanations given by @samelhusseini. - Removed redundant code---e.g., loading `javascript_compressed.js` creates and sets Blockly.JavaScript as a side effect, so there is no need to set `Blockly.JavaScript = BlocklyJavaScript` in `dist/javascript.js` (generated from `scripts/package/javascript.js`). - Remove possibly harmful code---e.g., `Blockly.Msg` is initialised with a null-prototype object in `blockly_compressed.js` and that initial object should under no circumstances be replaced. - Remvoe downright misleading code---e.g., `dist/blocks.js` previously _appeared_ to replace Blockly.Blocks with an empty object, but in fact the `Blockly` name referred at that point to the exports object from `blocks_compressed.js`, which would randomly get a useless `{}`-valued `.Blocks` property tacked on to it; similarly, code in `dist/browser.js` (generated from `scripts/package/browser/index.js`) appeared to copy definitions from `BlocklyBlocks` to `Blockly.Blocks`, but the former would always be (the aforementioned) empty object, making this code ineffective. * chore: Improve chunk definition / UMD generation Make several improvements to the chunks global and chunkWrapper function: - Document chunk definition format (and improve the names of of the documented properties). - Replace the chunk `.namespace` property with two others: - `.exports` names the variable/property to be returned by the factory function, and which will be set on the global object if the module is loaded in a browser. - `.importAs` names the parameter that this chunk's exports value is to be passed to the factory function of other chunks which depend on this one. (This needs to be different because e.g. `Blockly.blocks` is not a valid parameter name.) - Change the definition for the blocks chunk to export Blockly.Blocks (i.e., the block definition dictionary) as blocks_compressed.js did previous to PR #5721 (chunked compilation), rather than the (empty and soon to vanish) Blockly.blocks namespace object. This is a win for backwards compatibility, though it does mean that …
The basics
The details
Resolves
Proposed Changes
Adds a
Blockly.Extensions.isRegistered
function.I'm using the block-plus-mins plugin which attempts to
Blockly.Extensions.unregister
an extension calledcontrols_if_mutator
. That extension only exists if you import everything from Blockly (default blocks etc.). However, In my project I'm importing Blockly as:which means the
controls_if_mutator
extension is not there.Currently, any call to
Blockly.Extensions.unregister
will put a warning in the developer console (if the extension doesn't exist).Behavior Before Change
If attempting to unregister an extension that isn't registered, it will emit a warning to the developer's console.
Behavior After Change
This change will allow us to update the block-plus-mins plugin to check whether an extension is registered before unregistering it, so we can prevent the
console.warn
from happening.Reason for Changes
Please see Proposed changes.
Test Coverage
N/A