<commit_before># Scratch 3.0 Extensions

This document describes technical topics related to Scratch 3.0 extension development, including the Scratch 3.0
extension specification.

For documentation regarding other aspects of Scratch 3.0 extensions see [this Extensions page on the
wiki](https://github.com/LLK/docs/wiki/Extensions).

## Types of Extensions

There are four types of extensions that can define everything from the Scratch's core library (such as the "Looks" and
"Operators" categories) to unofficial extensions that can be loaded from a remote URL.

**Scratch 3.0 does not yet support unofficial extensions.**

For more details, see [this Extensions page on the wiki](https://github.com/LLK/docs/wiki/Extensions).

|                                | Core | Team | Official | Unofficial |
| ------------------------------ | ---- | ---- | -------- | ---------- |
| Developed by Scratch Team      | √    | √    | O        | X          |
| Maintained by Scratch Team     | √    | √    | O        | X          |
| Shown in Library               | X    | √    | √        | X          |
| Sandboxed                      | X    | X    | √        | √          |
| Can save projects to community | √    | √    | √        | X          |

## JavaScript Environment

Most Scratch 3.0 is written using JavaScript features not yet commonly supported by browsers. For compatibility we
transpile the code to ES5 before publishing or deploying. Any extension included in the `scratch-vm` repository may
use ES6+ features and may use `require` to reference other code within the `scratch-vm` repository.

Unofficial extensions must be self-contained. Authors of unofficial extensions are responsible for ensuring browser
compatibility for those extensions, including transpiling if necessary.<commit_msg>remove links to older extensions page<commit_after># Scratch 3.0 Extensions

This document describes technical topics related to Scratch 3.0 extension development, including the Scratch 3.0
extension specification.

## Types of Extensions

There are four types of extensions that can define everything from the Scratch's core library (such as the "Looks" and
"Operators" categories) to unofficial extensions that can be loaded from a remote URL.

**Scratch 3.0 does not yet support unofficial extensions.**

|                                | Core | Team | Official | Unofficial |
| ------------------------------ | ---- | ---- | -------- | ---------- |
| Developed by Scratch Team      | √    | √    | O        | X          |
| Maintained by Scratch Team     | √    | √    | O        | X          |
| Shown in Library               | X    | √    | √        | X          |
| Sandboxed                      | X    | X    | √        | √          |
| Can save projects to community | √    | √    | √        | X          |

## JavaScript Environment

Most Scratch 3.0 is written using JavaScript features not yet commonly supported by browsers. For compatibility we
transpile the code to ES5 before publishing or deploying. Any extension included in the `scratch-vm` repository may
use ES6+ features and may use `require` to reference other code within the `scratch-vm` repository.

Unofficial extensions must be self-contained. Authors of unofficial extensions are responsible for ensuring browser
compatibility for those extensions, including transpiling if necessary.
{'fraction_non_alphanumeric': 0.0992275698158051, 'fraction_numerical': 0.007724301841948901, 'mean_word_length': 2.2531400966183575, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 8, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5066637', 'n_tokens_mistral': 883, 'n_tokens_neox': 832, 'n_words': 388}